แสดงบทความที่มีป้ายกำกับ PAE แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ PAE แสดงบทความทั้งหมด

วันอังคารที่ 8 พฤษภาคม พ.ศ. 2555

มีการสนับสนุนหน่วยความจำขนาดใหญ่ใน Windows 2003 และ Windows Server 2000

บทความนี้จะอธิบายเกี่ยวกับ Physical Address Extension (PAE) และ Address Windowing Extensions (AWE) และอธิบายวิธีการทำงานร่วมกันของทั้งสองส่วน นอกจากนี้ ยังกล่าวถึงข้อจำกัดในการใช้หน่วยความจำเกินกว่า 4 กิกะไบต์ (GB) ซึ่งมีอยู่ในระบบปฏิบัติการแบบ 32 บิต

PAE เป็นความสามารถของหน่วยประมวลผล IA32 ที่ได้รับการเพิ่มขึ้นมา เพื่อจัดการกับหน่วยความจำกายภาพที่มากกว่า 4 GB ระบบปฏิบัติการต่อไปนี้สามารถใช้ PAE เพื่อจะได้ใช้ประโยชน์จากหน่วยความจำกายภาพได้มากกว่า 4 GB
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows Server 2003, Enterprise Edition
  • Microsoft Windows Server 2003, Datacenter Edition
เมื่อต้องการเปิดใช้งาน PAE ให้ใช้สวิตช์ /PAE ในแฟ้ม Boot.ini

หมายเหตุ ใน Windows Server 2003 ส่วน PAE จะเปิดใช้งานโดยอัตโนมัติก็ต่อเมื่อเซิร์ฟเวอร์ใช้อุปกรณ์ที่มีคุณสมบัติ hot-add memory ในกรณีนี้ คุณไม่ต้องใช้สวิตช์ /PAE ในระบบที่ถูกกำหนดให้ใช้อุปกรณ์ที่มีคุณสมบัติ hot-add memory ในกรณีอื่น คุณต้องใช้สวิตช์ /PAE ในแฟ้ม Boot.ini เพื่อจะได้ใช้ประโยชน์จากหน่วยความจำมากกว่า 4 GB

โดยทั่วไปแล้ว กระบวนการที่ทำงานใน Windows 2000 หรือ Windows Server 2003 อาจใช้พื้นที่หน่วยความจำถึง 2 GB (สันนิษฐานว่าไม่ได้ใช้สวิตช์ /3GB) โดยที่หน่วยความจำบางส่วนเป็นหน่วยความจำกายภาพและบางส่วนเป็นหน่วยความจำเสมือน ยิ่งมีโปรแกรมทำงานมากเท่าใด (และจึงมีกระบวนการมากขึ้น) ก็ยิ่งต้องใช้หน่วยความจำจนเต็มมากถึง 2 GB มากขึ้นเท่านั้น

เมื่อเกิดสถานการณ์นี้ขึ้น กระบวนการใช้เพจจะเพิ่มขึ้นมากและอาจส่งผลกระทบในทางลบต่อประสิทธิภาพการทำงาน ตัวจัดการหน่วยความจำของ Windows 2000 และ Windows Server 2003 จะใช้ PAE เพื่อเพิ่มหน่วยความจำกายภาพให้กับโปรแกรม ซึ่งจะช่วยลดความจำเป็นในการสลับหน่วยความจำของแฟ้มเพจและส่งผลให้ประสิทธิภาพการทำงานเพิ่มขึ้น ตัวโปรแกรมเองจะไม่ทราบขนาดของหน่วยความจำที่แท้จริง ทั้งการจัดการหน่วยความจำและการจัดสรรหน่วยความจำ PAE จะถูกจัดการอย่างอิสระโดยตัวจัดการหน่วยความจำซึ่งไม่ขึ้นกับโปรแกรมที่ทำงาน

ข้อมูลก่อนหน้าเป็นข้อมูลที่ใช้ได้สำหรับโปรแกรมที่ทำงานเมื่อใช้สวิตช์ /3GBโปรแกรมที่ร้องขอหน่วยความจำ 3 GB มักจะมีหน่วยความจำเหลืออยู่ในหน่วยความจำกายภาพมากกว่าจะถูกใช้เพจหมดไป ซึ่งจะเพิ่มประสิทธิภาพการทำงานของโปรแกรมที่สามารถใช้สวิตช์ /3GBยกเว้นในกรณีที่ใช้สวิตช์ /3GB ร่วมกับสวิตช์ /PAEในกรณีนี้ ระบบปฏิบัติการจะไม่ใช้หน่วยความจำชนิดใดเกินกว่า 16 GB ลักษณะการทำงานเช่นนี้เป็นผลมาจากการพิจารณาเนื้อที่หน่วยความจำเสมือนของเคอร์เนล ดังนั้น หากระบบเริ่มการทำงานใหม่โดยมีรายการ /3GB ในแฟ้ม Boot.ini และระบบมีหน่วยความจำกายภาพมากกว่า 16 GB ระบบปฏิบัติการจะไม่ใช้หน่วยความจำ Random Access Memory (RAM) ในส่วนที่เพิ่มขึ้น การเริ่มการทำงานคอมพิวเตอร์ใหม่โดยไม่มีสวิตช์ /3GB จะเป็นการเปิดใช้งานหน่วยความจำกายภาพทั้งหมด

AWE คือชุดของ Application Programming Interfaces (API) ที่อยู่ในฟังก์ชันตัวจัดการหน่วยความจำ ซึ่งทำให้โปรแกรมสามารถจัดการกับหน่วยความจำได้มากกว่า 4 GB ซึ่งสามารถกระทำได้ในการจัดการมาตรฐานในระบบ 32 บิต AWE ทำให้โปรแกรมสามารถสงวนหน่วยความจำกายภาพไว้เป็นหน่วยความจำที่ไม่ใช่แบบเพจ จากนั้นแมปส่วนของหน่วยความจำที่ไม่ใช่แบบเพจกับชุดของหน่วยความจำที่ทำงานของโปรแกรมในแบบไดนามิก กระบวนการนี้ทำให้โปรแกรมที่บริโภคหน่วยความจำอย่างหนัก เช่น ระบบฐานข้อมูลขนาดใหญ่ สามารถสงวนพื้นที่หน่วยความจำกายภาพขนาดใหญ่สำหรับข้อมูลโดยไม่จำเป็นต้องเอาเพจเข้าและออกจากแฟ้มเพจเมื่อจะใช้งาน แต่ข้อมูลจะสลับไปมาในชุดการทำงานและหน่วยความจำที่สงวนไว้มีขนาดเกินกว่า 4 GB นอกจากนี้ PAE จะแสดงขนาดของหน่วยความจำที่เกินกว่า 4 GB แก่ตัวจัดการหน่วยความจำและฟังก์ชัน AWE ถ้าไม่มี PAE แล้ว AWE ก็ไม่สามารถสงวนหน่วยความจำเกินกว่า 4 GB ได้

ต่อไปนี้คือตัวอย่างของแฟ้ม Boot.ini ซึ่งเพิ่มสวิตช์ PAE เข้าไป
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE


คำเตือน เนื้อหาของแฟ้ม Boot.ini ของคุณจะแตกต่างกันออกไปตามการกำหนดค่า สำหรับข้อมูลเพิ่มเติม ให้คลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
317526 (http://support.microsoft.com/kb/317526/ ) วิธีการแก้ไขแฟ้ม Boot.ini ใน Windows Server 2003 (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
โดยสรุป PAE คือ ฟังก์ชันของตัวจัดการหน่วยความจำของ Windows 2000 และ Windows Server 2003 ซึ่งเพิ่มหน่วยความจำกายภาพให้กับโปรแกรมที่ร้องขอหน่วยความจำ โปรแกรมจะไม่ทราบว่าหน่วยความจำใดที่ใช้มีขนาดเกินกว่า 4 GB เหมือนเช่นที่โปรแกรมไม่ทราบว่าหน่วยความจำที่โปรแกรมร้องขอนั้นแท้จริงแล้วอยู่ในแฟ้มเพจ

AWE คือ ชุด API ซึ่งช่วยให้โปรแกรมสามารถสงวนพื้นที่หน่วยความจำขนาดใหญ่ได้ หน่วยความจำที่สงวนไว้เป็นแบบไม่ใช้เพจ และเข้าถึงได้เฉพาะโปรแกรมนั้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ AWE และ PAE ให้คลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
268363 (http://support.microsoft.com/kb/268363/ ) Intel Physical Addressing Extensions (PAE) ใน Windows 2000 (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
สำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adminsql/ad_1_server_1fnd.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adminsql/ad_1_server_1fnd.asp)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dngenlib/html/awewindata.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dngenlib/html/awewindata.asp)
หากคุณเพิ่มหน่วยความจำลงในระบบ อาจเป็นไปได้ที่ BIOS จะทราบพื้นที่หน่วยความจำทั้งหมดของ RAM ที่ติดตั้งไว้ในเซิร์ฟเวอร์ แต่ Windows จะทราบเฉพาะส่วนหนึ่งของ RAM หากเซิร์ฟเวอร์มีคุณลักษณะหน่วยความจำซ้ำซ้อนหรือคุณลักษณะการมิเรอร์หน่วยความจำที่เปิดใช้งานอยู่ Windows อาจไม่เห็นหน่วยความจำทั้งหมด หน่วยความจำซ้ำซ้อนจะทำให้ระบบมีที่เก็บหน่วยความจำที่ใช้งานไม่ได้เมื่อที่เก็บหน่วยความจำไม่ทำงาน การมิเรอร์หน่วยความจำจะแยกที่เก็บหน่วยความจำเป็นชุดที่มิเรอร์ คุณลักษณะทั้งสองจะถูกเปิดใช้งานหรือปิดใช้งานใน BIOS และไม่สามารถเข้าถึงผ่านทาง Windows เมื่อต้องการปรับเปลี่ยนการตั้งค่าคุณลักษณะเหล่านี้ คุณอาจต้องดูคู่มือผู้ใช้ระบบหรือเว็บไซต์ OEM หรือคุณอาจต้องติดต่อบริษัทผู้จำหน่ายฮาร์ดแวร์

ตัวอย่างเช่น หากคุณกำลังใช้งานระบบที่ติดตั้ง RAM ขนาด 4 GB แล้วคุณเพิ่ม RAM อีก 4 GB Windows อาจรู้จักหน่วยความจำกายภาพเพียง 4 GB หรืออาจจะเป็น 6 GB แทนที่จะเป็น 8 GB คุณลักษณะหน่วยความจำซ้ำซ้อน หรือคุณลักษณะการมิเรอร์หน่วยความจำอาจถูกเปิดใช้งานในที่เก็บหน่วยความจำใหม่โดยที่คุณไม่ทราบ อาการเหล่านี้เหมือนกับอาการที่เกิดขึ้นเมื่อคุณไม่ได้เพิ่มสวิตช์ /PAE ลงในแฟ้ม Boot.ini

ต้องใช้ CPU ที่รองรับ PAE แล้วตกลง PAE คือไรครับ


PAE นี้ทำให้ os 32 bit สามารถใช้งานแรมได้มากกว่า 4 GB ถ้าเป็น 64 bit ก็ใช้แรมได้มากกว่า 4 GB อยู่แล้ว

PAE คือความสามารถของ CPU บางตัว ทำให้เห็น RAM ได้ถึง 64GB ครับ (64 บิตแท้ได้เป็นล้านครับ แต่อันที่จริง amd64 ได้ไม่ถึง) ทั้งนี้มีข้อจำกัดคือ
  1. OS จะต้องรองรับความสามารถนี้
  2. แม้ OS จะเห็นเต็ม แต่โปรแกรม 1 ตัว ใช้ได้แค่ 2GB นะครับ (อ๋อ มิน่า PulseAudio ผมมันกินแรมไป 2GB เพราะหมดแล้วนี่เอง แต่มันก็เหลือแรมให้ผมใช้ไม่ถึง GB)
  3. CPU ต้องรองรับครับ (ตั้งแต่ Pentium Pro ขึ้นไป)
สำหรับ Ubuntu เองมีให้เลือกครับ ไม่บังคับใช้ และจะไม่เปิดใช้มาตั้งแต่ต้น เป็นของเล่นใหม่ใน 9.10 (สำหรับ Ubuntu Server มีนานแล้วครับ) ทั้งนี้ใครจะติดตั้ง PAE kernel ใน VirtualBox ต้องไปเปิดให้ VirtualBox แสดง PAE ใน Settings ของ Guest ก่อนนะครับไม่อย่างนั้นจะบูทไม่ได้
 
แล้ว PAE มันทำงานอย่างไรทำไม Windows ไม่เปิดใช้งานมาเลยต้องให้เราไปทำเพื่ออะไร
 
PAE Mode
PAE is the second method supported to access memory above 4 GB; this method has been widely implemented. PAE maps up to 64 GB of physical memory into a 32-bit (4 GB) virtual address space using either 4-KB or 2-MB pages. The Page directories and the page tables are extended to 8 byte formats, allowing the extension of the base addresses of page tables and page frames to 24 bits (from 20 bits). This is where the extra four bits are introduced to complete the 36-bit physical address.
การ PAE คือการทำให้ วินโดวส์ของเรานั้นที่เป็นระบบปฏิบัติการ 32 บิต = 2 ^ 32 Bit (4 GB) กลายเป็น 36 บิต = 2 ^ 36 Bit (64 GB) ทำให้ CPU มันทำ RAS กับ CAS ที่ 36 bit ได้ จึงทำให้ระบบปฎิบัติการสามารถมองเห็นหน่วยความจำทางกายภาพได้ภายในขอบเขตที่เพิ่มขึ้นโดยที่ไม่เกิน 64 GB ซึ่งเราจะเห็นกับการใช้งานกับ Windows Server 2003 ซะส่วนใหญ่ (ผมได้ทำการทดลองกับ Windows Vista/7 แล้วปรากฎว่าไม่ได้ผลครับ กลายเป็นว่าระบบมองหน่วยความจำที่ไม่สามารถใช้ได้เป็นพื้นที่ใช้ในการ Swap เท่านั้นเอง)

สรุปก็คือ PAE คือ Physical Address Extension หรือการเพิ่ม Address ของ Windows 32bit จาก 32bit เป็น 36 bit ทำให้อ้าง RAM ได้สูงสุด 64GB นั่นเองนะครับ (เห็นใช้ใน Windows Server 2003 ซะส่วนใหญ่แล้ว แต่ทดลองกับ Windows Vista/7 ไม่ได้ผลครับ กลายเป็น Swap แทน) และที่ร้ายกว่านั้นเวลา Boot เครื่องก็จอสีดำ หรือบางครับทำงานได้แต่เครื่องจะกระตุก เป็นระยะจนรำคาญต้องไป 64Bit แทน
 

อ้างอิง
 http://www.raymond.cc/blog/archives/...an-4gb-memory/ --ใช้กับ Windows 7 32 บิต
 http://www.remkoweijnen.nl/blog/2009...-gb-of-memory/ -- อันนี้ค่อนข้างยากนิดหนึ่ง
 http://www.monavista.com/webboard/sh...40&postcount=2 -- เครดิดคุณ BluMarry ผมทำแล้วครับ ทำได้จริง 100% ใน Windows Vista 32 บิตนะ
 
จากที่ทดลองมาก็ยกเลิกไป 64Bit เลยจะดีกว่าครับ เพราะผมใช้เครื่องในการเขียนโปรแกรมเป็นหลักมีปัญหาให้แก้อยู่บ่อยๆ


เรื่องของ RAM ที่เกินจาก 4GB

ในระบบ Windows XP,Vista,7 ในแบบ 32Bit (x86) แล้วไม่สามารถใช้ RAM ได้เกิน 4GB ครับ แต่จะใช้ได้เท่าไรนั้นเครื่องของแต่ละผู้ผลิต จะใช้ได้ไม่เท่ากัน เช่น Notebook HP/g4 ใช้ได้ประมาณ 2.45 หากดูที Control Panel->System จะแจ้ง RAM ที่เห็นและวงเล็ษที่สามารถใช้ได้มา (สำหรับ Windows 7)

8GB(2.45 Usable) ประมาณนี้ครับ  หากเป็น Vista จะไม่มีวงเล็บครับต้องไปตรวจสอบที่ Task Manager->Performance

ดูในส่วนของ Physicak Memory(MB)
Total 8139 (Ram ที่ใช้ได้ทั้งหมดครับจะน้อยกว่าที่พบ)

วิธีแก้ก็มีหลายรายเสนอมาแต่เป็นการเปิด PAE มาใช้มักมีข้อเสียตามมาสำหรับเครื่องที่จะใช้งาน พัฒนาครับ แต่หากเพื่อเล่นเกมและทำงานทั่วไปไม่มีปัญหาครับ

แต่การแก้ที่ดีคือไปใช้ 64Bit(x64) ครับแต่สำหรับงานบางอย่างเครื่องมือต้องลง 32Bit ก็ไปใช้วิธี Virtual PC แทนครับ