เหตุใด Windows จึงแสดง RAM ขนาด 4 GB เพียง 3.5 GB เท่านั้น


90

ฉันเพิ่งอัพเกรด RAM คอมพิวเตอร์ของฉันเป็น 4 GB การติดตั้ง Windows แบบ 32 บิตของฉันแสดงหน่วยความจำเพียง 3574 MB ฉันจะทำให้ Windows ใช้ RAM เต็มจำนวนได้อย่างไร


2
นี่ตอบเพียงเช้านี้ในsuperuser.com/questions/27006/…
Tom

3
สิ่งนี้จะต้องมีการยกระดับด้วยคะแนนเสียง 2,000 คะแนนดูเหมือนว่าทุกวันที่ฉันพบบุคคลอื่นที่ถามว่า "ความทรงจำของฉันอยู่ที่ไหน" Microsoft ควรนำสิ่งนั้นออกจากกล่องโต้ตอบ . .
surfasb

2
เพื่อนคุณต้องใช้ระบบปฏิบัติการ 64 บิต เริ่มบันทึกเงินของคุณอย่างจริงจัง จากนั้นคำถามนี้จะกลายเป็นจุดที่สงสัยเมื่อคุณมีระบบที่จะรองรับหน่วยความจำทั้งหมดที่คุณสามารถทำได้ในเมนบอร์ด
Fiasco Labs

1
รู้สึกอย่างระมัดระวังรอบยูนิตระบบเพื่อรับความชื้นหรือความชื้น อาจเป็น 'การรั่วไหลของหน่วยความจำ'
EleventhDoctor

@ala: เนื่องจากการแยกหน่วยความจำเคอร์เนล ... (1Gb จัดสรรโดยเคอร์เนล) ดูเหมือนว่าคุณกำลังใช้สวิตช์ /
3gb

คำตอบ:


71

คุณไม่สามารถ:

ดูDude, RAM 4 กิกะไบต์ของฉันอยู่ที่ไหน

หากคุณต้องการปรับหน่วยความจำและอุปกรณ์ให้อยู่ในช่วงที่อยู่แบบ 32 บิต: พื้นที่ที่อยู่ 4GB ที่มีอยู่ทั้งหมดไม่สามารถให้กับหน่วยความจำได้
จะเกิดอะไรขึ้นถ้าคุณออกไปซื้อหน่วยความจำ 4GB สำหรับพีซีของคุณ
มีรูในแผนที่หน่วยความจำของคุณสำหรับ IO (ตอนนี้เหลือเพียง 25% ของพื้นที่ที่อยู่ทั้งหมด แต่ก็ยังเป็นช่องใหญ่) ดังนั้นหน่วยความจำ 3GB ด้านล่างของคุณจะพร้อมใช้งาน แต่มีปัญหา 1GB ล่าสุด

ทางออกที่เป็นไปได้เพียงทางเดียวคือการติดตั้งระบบปฏิบัติการ 64 บิต ใน Windows Vista และใหม่กว่านั้นคีย์ใบอนุญาต 32- บิตและ 64- บิตนั้นสามารถใช้แทนกันได้ หากคุณสามารถรับสื่อการติดตั้ง Windows สำหรับระบบปฏิบัติการรุ่น 64 บิตคุณสามารถติดตั้งใหม่โดยใช้รหัสลิขสิทธิ์ดั้งเดิมของคุณ


ฉันไม่เข้าใจ - ไม่ใช่ 2 ^ 32 4 กิกะไบต์
Matt

6
อ่าไม่เป็นไรอ่านบทความที่เชื่อมโยงกันจริง ๆ แล้ว
แมตต์


@VonC: แล้วเรื่องนี้ล่ะ?
2284570

@ user2284570 จริง PAE สามารถช่วยได้ แต่ใครยังอยู่บน WXp ;)
VonC

8

ก่อนอื่น Windows XP (32 บิต) รองรับ 4 GB เท่านั้น ไม่เพียงแค่ใช้กับ Windows XP แต่จะใช้กับเดสก์ท็อป Windows แบบ 32 บิต - ระบบ Linux 32 บิตที่มี PAE และ Windows Server 32 บิตหลายรุ่นรองรับมากกว่า 4GB ต่อบทความที่เชื่อมโยง คุณจะไม่เห็นมากกว่า 4 GB หากคุณใช้ Windows XP แบบ 32 บิต อย่างไรก็ตามฉันพบเหตุผลรายละเอียดเพิ่มเติมว่าทำไมระบบของคุณจึงแสดง RAM น้อยกว่าที่ติดตั้งจริง

จากปัญหา RAM 3GB-not-4GB (บล็อก Microsoft MSDN):

เนื่องจากการตัดสินใจทางสถาปัตยกรรมเมื่อนานมาแล้วหากคุณมี RAM จริง 4GB ติดตั้ง Windows จะสามารถรายงาน RAM 4GB ได้เพียงบางส่วนเท่านั้น (ช่วงจาก 2.75GB ถึง 3.5GB ขึ้นอยู่กับอุปกรณ์ที่ติดตั้งชิปเซ็ตเมนบอร์ด & BIOS)

ลักษณะการทำงานนี้เกิดจาก "การจองหน่วยความจำที่แมป IO" การจองเหล่านั้นซ้อนทับพื้นที่ที่อยู่จริงและปกปิดที่อยู่ทางกายภาพเหล่านั้นเพื่อไม่ให้สามารถใช้สำหรับหน่วยความจำที่ใช้งานได้ สิ่งนี้ไม่ขึ้นอยู่กับระบบปฏิบัติการที่ทำงานบนเครื่อง

พื้นที่ว่างที่อยู่ต่ำกว่า 4GB (ที่อยู่สูงสุดสามารถเข้าถึงได้ผ่าน 32 บิต) ได้รับการสงวนไว้สำหรับการใช้งานโดยฮาร์ดแวร์ของระบบ:

  • BIOS - รวมถึง ACPI และการรองรับวิดีโอแบบเดิม
  • PCI บัสรวมถึงบริดจ์ ฯลฯ
  • การสนับสนุน PCI Express จะสำรองอย่างน้อย 256MB สูงสุด 768MB ขึ้นอยู่กับหน่วยความจำที่ติดตั้งกราฟิกการ์ด

สิ่งนี้หมายความว่าเป็นระบบทั่วไปอาจเห็นระหว่าง ~ 256MB และ 1GB ของพื้นที่ที่อยู่ด้านล่าง 4GB สงวนไว้สำหรับการใช้งานฮาร์ดแวร์ที่ระบบปฏิบัติการไม่สามารถเข้าถึงได้ รายละเอียดชิปเซ็ต Intel นั้นค่อนข้างดีในการอธิบายช่วงที่อยู่ที่ได้รับการจองเป็นค่าเริ่มต้นและในบางกรณีเรียกได้ว่ามีการจอง 1.5GB เสมอและทำให้ Windows ไม่สามารถเข้าถึงได้

มีข้อมูลเพิ่มเติมถ้าคุณตรวจสอบแหล่งที่มา แต่คุณอาจจะสามารถใช้ประโยชน์จากเต็ม 8 GBs ติดตั้งถ้าคุณทำตามเหล่านี้คำแนะนำ

เมื่อพูดถึงประสบการณ์ส่วนตัวนี่ไม่ใช่ปัญหาใหม่ ฉันพบปัญหาเดียวกันนี้เมื่อไม่กี่ปีที่ผ่านมาเมื่อฉันสร้างระบบ Windows Vista 4 GB แบบ 32 บิตเมื่อเปิดตัวครั้งแรก มีกระทู้ในฟอรัมนับไม่ถ้วนออนไลน์ที่เกี่ยวข้องกับหัวข้อเดียวกันนี้

อ่านยัง Microsoft KB 929605 - หน่วยความจำระบบที่มีการรายงานในกล่องโต้ตอบข้อมูลระบบของ Windows Vista จะน้อยกว่าที่คุณคาดหวังว่าหาก RAM 4 GB มีการติดตั้ง


เอกสารของ Microsoft ที่นี่ที่ Windows XP รองรับ RAM ได้สูงสุด 128GB หากสถาปัตยกรรมพื้นฐานเป็น 64 บิต คุณช่วยอัพเดทคำตอบของคุณได้ไหม
Dan Dascalescu

@SgtOJ: แล้วเรื่องนี้ล่ะ?
2284570

1
@SgtOJ: ขีด จำกัด RAM 4 GB ไม่สามารถใช้ได้กับ "ระบบปฏิบัติการ 32 บิตทั้งหมด" ระบบปฏิบัติการ 32 บิตที่รองรับ PAE (เช่น Windows Server 2003) อย่างเต็มที่สามารถใช้ RAM มากกว่า 4 GB ได้อย่างมีความสุข "32 บิต" จำกัด พื้นที่ที่อยู่เสมือนไม่ใช่ทางกายภาพ
Jamie Hanrahan

@JamieHanrahan ที่ยังคงหมายถึงโปรแกรมเดียวไม่สามารถใช้มากกว่า 4GB และฉันคิดว่าเขาหมายถึงค่าใช้จ่ายการจอง IO เป็นระบบปฏิบัติการอิสระ
jiggunjer

@ jiggunjer ไม่มีที่ไหนในคำถามหรือคำตอบที่ฉันแสดงความคิดเห็นในขณะที่มันพูดหรือบอกเป็นนัยว่าสิ่งที่ถูกถามเกี่ยวกับสิ่งที่เป็น "โปรแกรมเดียว" สามารถใช้ หรือการสำรอง I / O อย่างเคร่งครัดเป็นอิสระจากระบบปฏิบัติการ
Jamie Hanrahan

3

หากคุณใช้ 32Bit Windows XP แสดงว่าเป็นไปไม่ได้ เนื่องจากมีที่อยู่ไม่เพียงพอสำหรับการใช้แรมเสริม

ทางออกที่ดีที่สุดคือการอัพเกรดเป็น Windows รุ่น 64 บิตเนื่องจากรองรับ RAM 4+ GB


2^32"พื้นที่ที่อยู่" เพียงพอสำหรับ 4 GiB คุณผิดที่อยู่ในพื้นที่และหน่วยความจำกายภาพ ทุกกระบวนการใน Windows รุ่นที่ทันสมัยจะเห็นพื้นที่ที่อยู่ 4 GiB เต็มแม้ว่าปกติเพียง 2 GiB จะสามารถใช้งานได้เนื่องจากการแบ่งพาร์ติชัน UM / KM ของพื้นที่ที่อยู่เสมือน
0xC0000022L

@ 0xC0000022L: นั่นไม่ใช่ปัญหาที่กล่าวถึงที่นี่
Ben Voigt

Microsoftระบุว่า Windows 7 ส่วนใหญ่ (รวมถึง 32 บิต) รองรับ RAM ได้สูงสุด 192GB ข้อกำหนดเพียงอย่างเดียวคือสถาปัตยกรรมพื้นฐานคือ 64- บิต ดังนั้นทางออกที่ดีที่สุดคือการอัพเกรดจาก XP เป็น Windows 7 คุณช่วยปรับปรุงคำตอบของคุณได้ไหม?
Dan Dascalescu

@Shaharyar: แล้วเรื่องนี้ล่ะ?
2284570

3

อย่างที่คนอื่นพูดมันเป็นไปไม่ได้

คำอธิบาย:

หน่วยความจำแต่ละชิ้นมีที่อยู่ ระบบปฏิบัติการจะระบุความยาวของที่อยู่ สำหรับระบบปฏิบัติการรุ่นเก่าความยาวของที่อยู่คือ 32 บิตซึ่งอนุญาตให้ใช้ที่อยู่ 2 ^ 32 (4 294 967 296) เท่านั้น ตอนนี้เมื่อดูจากหมายเลขนั้นดูเหมือนว่าระบบปฏิบัติการของคุณควรรองรับ 4 GB แต่ฮาร์ดแวร์อื่น ๆ ทั้งหมด (ที่สำคัญที่สุดคือหน่วยความจำวิดีโอในการ์ดวิดีโอของคุณ) ที่มีหน่วยความจำภายในจะถูกแมปลงในพื้นที่ที่อยู่นั้น

มันเหมือนกับว่าคุณกำลังพยายามแจกจ่ายหมายเลขโทรศัพท์หกหลัก 1,200,000


คุณกำลังผสม RAM และพื้นที่ที่อยู่
0xC0000022L

@ 0xC0000022L: ไม่ใช่เขาไม่ใช่ เขากำลังพูดถึงพื้นที่ที่อยู่ทางกายภาพในขณะที่ RAM จะต้องถูกแมปเพื่อให้สามารถใช้งานได้
Ben Voigt

@BenVoigt: แล้วเรื่องนี้ล่ะ?
2284570

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

@BenVoigt: ตั้งแต่ปี 1997 ไดรเวอร์ที่ถือว่ามีหน่วยความจำ <4GB นั้นหายากเพราะไดรเวอร์ WDM ทั้งหมดสามารถติดตั้งบน Windows 2000/2003 ...
user2284570

3

มาเธอร์บอร์ดรุ่นเก่ารองรับ RAM ที่มีอยู่จริง 4Gb เท่านั้นเมนบอร์ดที่ทันสมัยรองรับได้มากขึ้น Intel P4 CPU สามารถระบุตำแหน่งได้มากกว่า 4Gb (โดยใช้สิ่งที่เรียกว่า Physical Address Extension หรือ PAE)

Microstoft ทำการตัดสินใจทางการตลาดโดยไม่สนับสนุนพื้นที่ที่อยู่ทางกายภาพ 4Gb มากขึ้นในระบบปฏิบัติการเวอร์ชัน 32 บิตของไคลเอนต์ซึ่งรวมถึงทั้งหมดตั้งแต่ w2k ถึง 32 บิต Windows 8 (ถ้าคุณเยี่ยมชม MS KB หน้าคุณจะทราบว่ารุ่นของเซิร์ฟเวอร์ 32 บิตสามารถรองรับได้มากขึ้น - มากถึง 128Gb ฉันเชื่อกับ 32 บิต 'Enterprise Edition') - ซึ่งเป็นเหตุผลที่ '32 บิตระบบปฏิบัติการ (Linux ฯลฯ ) ที่ถูกต้องบนฮาร์ดแวร์เดียวกันสามารถเข้าถึงทั้งหมดได้เสมอ แรมทางกายภาพ

(หมายเหตุด้านข้าง - ผู้ใช้ Win7 32 บิตได้เบื่อหน่ายกับข้อ จำกัด 'โง่' ที่พวกเขา 'แฮ็ค' Kernal เพื่อให้ ascces กับ RAM แบบเต็มทางกายภาพ .. ไม่จำเป็นต้องพูดนี่เป็นการทำลายใบอนุญาตของคุณและผิดกฎหมายในสหรัฐอเมริกา (DCMA) )

ส่วน 'สำรอง' Windows XP รุ่น 32 บิตของพื้นที่แอดเดรส 4Gb แท้จริงสำหรับการใช้งานไดรเวอร์ ไม่มีเหตุผลใดที่คุณไม่สามารถ 'ที่อยู่' RAM จริงเกิน 4Gb (โดยใช้ PAE) ได้ แต่ OLDER DRIVERS หลาย ๆ ตัวในช่วงเวลาที่ Windows XP Pro ไม่สามารถทำได้และคุณจะได้รับข้อผิดพลาด 'BSOD' (ไดรเวอร์สมัยใหม่ใช้ PAE อย่างถูกต้องและในทฤษฎีมีเหตุผลว่าทำไมพวกเขาต้องการมากกว่า 32Mb ของพื้นที่หน้า 'lo' (เป็น 'หน้าต่าง') โดยรวมแม้เพื่อรองรับการ์ดกราฟิก 2Gb (2gb จะอยู่ในพื้นที่ 'hi' เช่น 4Gb ข้างต้น เครื่องหมาย)

ใน XP SP2, MS เกือบสามเท่าของจำนวนพื้นที่ที่อยู่ 'สงวน' สำหรับไดรเวอร์ในความพยายามที่จะกำจัด BSOD และมันเป็นเช่นนั้นมาตั้งแต่ (MS ไม่ต้องการไดรเวอร์ 'debug' == พวกเขาต้องการขาย 64 บิตให้คุณ ระบบปฏิบัติการแทน) ฮาร์ดแวร์จริงมีผลเกือบเป็นศูนย์ต่อพื้นที่ 'สงวน' นี้

ดังนั้นถ้าคุณมี RAM จริงหรือ 4Gb RAM XP Pro sp2 + ส่วนใหญ่จะเห็นประมาณ 3.25Gb .. ส่วนที่เหลือสามารถเข้าถึงได้โดยใช้ไดรเวอร์ดิสก์ RAM ที่แตกต่างกัน (ไม่ใช่ MS แน่นอน) = ไปหาสิ่งที่ ใช้ 'Invisible Address space' หรือ 'high 4gb space' บน XP Pro) .. ใช้ '.75Gb' ที่หายไป 'ซึ่งเป็นส่วนหนึ่งของ' หน่วยความจำเสมือน 'ของคุณสามารถเพิ่มความเร็วของระบบ ...

โปรดทราบว่าสวิตช์ / 3G สามารถอนุญาตให้แอปพลิเคชัน 32 บิตเข้าถึง 3Gb ได้สูงสุดบนระบบปฏิบัติการ 32 บิต (หากมีการตั้งค่าสถานะ LargeAddressAware ในส่วนหัวของ. exe - ซึ่งในกรณีนี้พวกเขาสามารถเข้าถึง 4Gb บนระบบปฏิบัติการ 64 บิต) ได้ บน XP คุณต้องระบุ / USERVA เช่นกันเพื่อหยุดระบบปฏิบัติการที่ 'บีบออก' ของ RAM :-)


รองรับ Windows XP SP1> RAM 4GB หากคุณเพิ่มสวิตช์ / PAE ลงใน boot.ini
user2284570

0

หากคุณต้องการใช้ประโยชน์จาก 4GB ทั้งหมดตัวเลือกเดียวคือการอัพเกรดเป็นระบบปฏิบัติการ 64 บิต:

  • Windox XP 64
  • Windows Vista 64
  • ลินุกซ์
  • Max OS / X (ตกลงคุณอาจต้องใช้พีซีเครื่องใหม่สำหรับสิ่งนั้นด้วย)

Windows XP ปกติเป็น 32 บิตเท่านั้นและนี่เป็นการ จำกัด หน่วยความจำให้สูงสุด 3.5GB ตรวจสอบลิงค์ VonC ที่โพสต์เพื่อดูรายละเอียดเกี่ยวกับหัวข้อนี้


การเป็น 32 บิตไม่ จำกัด หน่วยความจำสูงสุด 3.5Gb เป็นอุปกรณ์อื่นที่กินพื้นที่ที่อยู่ที่มีอยู่ดังนั้น 3.75Gb จึงเป็นไปได้เช่นกัน -1
MaxVT

นั่นเป็นเหตุผลที่ผมกล่าวว่า "การตรวจสอบการเชื่อมโยงสำหรับรายละเอียด" :-)
แฟรงค์

แก้ไข. ไมโครซอฟท์จะแสดงรายการที่XP 64 บิตรองรับได้ถึง 128GB แรม
Dan Dascalescu

0

หากคุณใช้กราฟิกรวมคุณสามารถปิดใช้งานและนั่นหมายความว่าระบบจะสามารถระบุ RAM ระบบของคุณได้มากขึ้น

แต่ทางออกที่ดีที่สุดคือการได้ x64 OS แน่นอน

ไม่มีเหตุผลใดที่จะไม่ยุ่งเกินไป โปรแกรมส่วนใหญ่ทำงานใน x64 ด้วย XP / Vista / 7 ที่มีเลเยอร์จำลอง x86 มันเป็นเพียงไดรเวอร์ที่อาจเป็นปัญหา


1
ไดรเวอร์ x64 ใน Windows XP Pro x64 เป็นขยะ แต่ไดรเวอร์ Vista และ 7 x64 นั้นมีอายุการใช้งานนานมากแล้ว
MDMarra

0

มันเป็นคำถามที่ค่อนข้างซับซ้อนเนื่องจากต้องใช้องค์ประกอบหลายอย่างในการทำงาน ส่วนประกอบเหล่านั้นคือ:

  • หน่วยประมวลผลกลาง
  • หน่วยควบคุมหน่วยความจำ
  • BIOS / (U) EFI
  • ระบบปฏิบัติการ
  • ใบสมัคร

รายการสุดท้ายไม่เกี่ยวข้องกับปัญหาโดยตรง แต่ฉันได้เพิ่มเพื่อความสมบูรณ์

โดยสรุปส่วนประกอบทั้งหมดข้างต้นต้องรองรับหน่วยความจำมากกว่า 4 GB เพื่อให้สำเร็จ

หน่วยประมวลผลกลาง

เริ่มต้นด้วย CPU แต่ก่อนอื่นสิ่งสำคัญคือต้องทราบว่า CPU ไม่มีความสามารถใด ๆ ในการใช้หน่วยความจำใด ๆเลย แต่มันสามารถเข้าถึงที่อยู่ใดก็ได้ภายในพื้นที่ที่สามารถกำหนดแอดเดรสได้ ตอนนี้มาถึงสิ่งที่เป็นพยาน CPU แบบ 32 บิตสามารถเข้าถึง ที่อยู่ในช่วงตั้งแต่ 0 ถึง 4 GiB ช่วงนี้จะต้องรองรับไม่เพียง แต่ RAM, ROM, SMRAM , ตาราง Remapping ที่อยู่กราฟิกที่มีอยู่แต่ยังรวมถึงI / O หน่วยความจำที่แมปและอื่น ๆ อีกมากมายซึ่งอาจต้องการส่วนสำคัญของช่วงที่อยู่นี้ ดังนั้นจึงอาจเป็นไปได้อย่างสมบูรณ์ว่าที่อยู่หน่วยความจำบางส่วนถูกแชโดว์ด้วยการใช้งานเหล่านั้นและดังนั้นจึงไม่พร้อมใช้งานสำหรับการดำเนินการบน RAM เพื่อที่จะฟื้นหน่วยความจำที่ซ่อนอยู่ก็เป็นสิ่งจำเป็นที่จะขยายซีพียูพื้นที่ที่อยู่ที่สามารถเข้าถึงได้ ในกรณีที่ส่วนขยายที่อยู่ทางกายภาพของ CPU 32 บิตสามารถช่วยได้ ซึ่งอนุญาตให้ระบุที่อยู่ได้สูงสุด 64 GiB ซีพียู 64 บิตทำงานในโหมดเนทิฟ 64 บิตโดยค่าเริ่มต้นสามารถเข้าถึงได้มากถึง 16 EiB ซึ่งค่อนข้างใหญ่และไม่ต้องการใช้เทคนิคดังกล่าว แต่ในทางกลับกันมันเป็นไปไม่ได้ที่ CPU 64 บิตจะใช้การกำหนดแอดเดรส 64- บิตดังนั้นในความเป็นจริงพวกเขายังคงถูก จำกัด โดยบัสแอดเดรสของพวกเขาจนถึงช่วงที่น้อยกว่า 16 EiB

หน่วยควบคุมหน่วยความจำ

เริ่มแรกนั้นตั้งอยู่ที่Northbridgeแต่ถูกย้ายไปยังตัวประมวลผลโดย AMD เริ่มต้นด้วยตัวประมวลผล AMD64 และโดย Intel ด้วยตัวประมวลผล Nehalem แม้ว่า CPU ที่มี PAE สามารถเข้าถึง 64 GiB ได้ด้วยตัวเอง แต่ก็ยังต้องการ MCU ในการเข้าถึง RAM กล่าวง่ายๆ: CPU ที่เข้าถึงที่อยู่เฉพาะจะได้รับการตอบกลับจากอุปกรณ์ PCI, แฟลช BIOS ROM หรือ MCU หากที่อยู่ที่ร้องขอนั้นอยู่ใน RAM และอื่น ๆ อย่างไรก็ตามไม่ใช่เรื่องแปลกสำหรับ MCU (ไม่ว่าจะเป็นใน Northbridge หรือใน CPU) เพื่อสนับสนุนพื้นที่ที่สามารถกำหนดแอดเดรสได้น้อยกว่า 64 GiB สำหรับเหตุผลทางการตลาดเช่น

BIOS / (U) EFI

BIOS / (U) EFI ก็มีความสำคัญเนื่องจากเป็นหน้าที่ในการกำหนดค่าฮาร์ดแวร์ก่อนที่จะสามารถใช้งานได้จริง เหนือสิ่งอื่นใดพวกเขามีหน้าที่รับผิดชอบในการทำแผนที่พื้นที่ที่อยู่หน่วยประมวลผลทั้งหมดที่มีช่วงหน่วยความจำของอุปกรณ์ฮาร์ดแวร์, รถโดยสาร, RAM และอื่น ๆ เป็นที่น่าสนใจว่า RAM ทั้งหมดแยกเป็นชิ้น ๆ และจับคู่กับจุดที่ไม่ต่อเนื่องกันหลายจุด ปัญหาเกี่ยวกับ BIOS คือว่านักพัฒนาอาจไม่คาดหวังการใช้ RAM มากกว่า 3 GiB ภายในระบบของพวกเขาและ BIOS ดังกล่าวจะแมปหน่วยความจำทั้งหมดที่จะใช้ไม่ถูกต้อง เป็นไปได้ว่าจะไม่เกิดขึ้นกับ (U) EFI

ระบบปฏิบัติการ

ระบบปฏิบัติการควรสนับสนุนการระบุแอดเดรสหน่วยความจำมากกว่า 4 GiB หากต้องการเจาะจงมากขึ้นควรกำหนดค่า CPU เพื่อใช้ PAE OS 32 บิตบางตัวสามารถใช้ PAE ได้อย่างสมบูรณ์และเข้าถึงมากกว่า 4 GiB ส่วนอื่น ๆ นั้นมีขีด จำกัด ซอฟต์แวร์ในหน่วยความจำสูงสุดถึงแม้ว่าจะเปิดใช้ PAE เพื่อเพิ่มความปลอดภัย (Windows XP เป็นตัวอย่าง) อีกครั้งที่ระบบปฏิบัติการ 64 บิตโดยธรรมชาติไม่มีปัญหาดังกล่าวและโดยปกติจะรองรับหน่วยความจำมากกว่า 4GB

ใบสมัคร

จุดสุดท้ายมาจากโลกที่แตกต่างกันเนื่องจากแอปพลิเคชันมักใช้งานในพื้นที่ที่อยู่เสมือนฉันได้เพิ่มมันเพื่อความสมบูรณ์ อย่างไรก็ตามจะมีขั้นตอนเพิ่มเติมในขณะที่รวบรวมแอปพลิเคชันเพื่อให้สามารถใช้หน่วยความจำได้มากขึ้น โดยค่าเริ่มต้นแอปพลิเคชัน 32 บิตสามารถใช้หน่วยความจำ 2 GiB เท่านั้น แอปพลิเคชัน 32 บิตเดียวกันสามารถจัดการหน่วยความจำได้สูงสุด 4 GiB โดยที่ระบบปฏิบัติการรองรับและเปิดใช้งาน CPU PAE โดยเฉพาะอย่างยิ่งมันสามารถใช้สูงสุด 3 GiB ของหน่วยความจำ 1 GiB อื่น ๆ สามารถกำหนดแอดเดรสได้เหมือนกับไลบรารีทั่วไปและเคอร์เนลระบบปฏิบัติการ แต่ไม่สามารถเขียนได้ (ท้ายที่สุดนี้ขึ้นอยู่กับสถาปัตยกรรมระบบปฏิบัติการมากกว่าแอปพลิเคชันเอง) อีกครั้งแอปพลิเคชัน 64 บิตสนับสนุนการระบุแอดเดรสหน่วยความจำมากกว่า 4 GiB และไม่มีปัญหาดังกล่าวตั้งแต่แรก

ในการทำให้ทั้งหมดนี้เป็นมุมมองลองพิจารณาตัวอย่างต่างๆ

พิจารณาIntel® 82945G ตัวควบคุมความจำ เว็บไซต์ของ Intel ระบุว่าไม่รองรับ PAE และ RAM ไม่เกิน 4 GB ให้ดูที่ย่อหน้า9 System Address Mapของแผ่นข้อมูล มันมีข้อมูลมากมาย สิ่งที่น่าสนใจที่สุดคือFigure 9-3. Main Memory Address Range: รูปที่ 9-3  ช่วงที่อยู่หน่วยความจำหลัก และย่อหน้า9.2 Main Memory Address Range (1 MB to TOLUD)ซึ่งอ่านได้ดังนี้:

ช่วงที่อยู่นี้ขยายจาก 1 MB ไปจนถึงด้านบนของหน่วยความจำกายภาพที่ได้รับอนุญาตให้เข้าถึงได้โดย (G) MCH (ตามที่โปรแกรมไว้ในการลงทะเบียน TOLUD) การเข้าถึงที่อยู่ทั้งหมดภายในช่วงนี้จะถูกส่งต่อโดย (G) MCH ไปยังหน่วยความจำหลักเว้นแต่ว่าจะอยู่ใน TSEG เสริม ISA Hole เสริมหรือหน่วยความจำ VGA ที่ถูกขโมย IGD เสริม MCH (G) ให้ที่อยู่หน่วยความจำหลักสูงสุดในการถอดรหัสพื้นที่ 4 GB (2 GB สำหรับ 82945GC / 82945GZ / 82945PL) MCH (G) ไม่ทำการแมปพื้นที่หน่วยความจำ APIC หรือ PCI Express อีกครั้ง ซึ่งหมายความว่าเมื่อปริมาณหน่วยความจำกายภาพที่บรรจุในระบบถึง 4 GB (2 GB สำหรับ 82945GC / 82945GZ / 82945PL) จะมีหน่วยความจำกายภาพที่มีอยู่ แต่ยังไม่สามารถกำหนดแอดเดรสได้ดังนั้นจึงไม่สามารถใช้ระบบได้

ตามที่ระบุไว้เนื่องจากไม่รองรับ PAE ในที่สุดจึงไม่สามารถทำการแมป PCI และ MMIO อื่น ๆ ที่อยู่เหนือ 4 GiB ในที่สุดดังนั้นหน่วยความจำบางส่วนจะมีเงาและไม่ได้ใช้งาน ซึ่งหมายความว่าแม้ว่าจะใช้กับ CPU ที่รองรับการกำหนดแอดเดรสแบบ 36 บิตหน่วยความจำที่สูงกว่า 4 GiB จะยังไม่สามารถใช้งานได้และหน่วยความจำบางส่วนที่อยู่ใกล้กับขีด จำกัด 4 GiB ก็จะไม่ถูกใช้เช่นกัน

ในทางกลับกันลองพิจารณาIntel® 82955X Memory Controllerซึ่งเกี่ยวข้องกับอันก่อนหน้านี้ แต่มีการระบุให้รองรับ 8 GB ตรงกันข้ามกับอันก่อน! ย่อหน้าแผ่นข้อมูล2.1 Host Interface Signalsแนะนำว่ามันใช้บัสแอดเดรส 36- บิตกับซีพียูซึ่งเป็นสัญญาณที่ดี ย่อหน้า 7 System Address Mapมีข้อมูลเชิงลึกเพิ่มเติม เปรียบเทียบFigure 7-1. System Address Rangesกับที่เราเห็นก่อนหน้ารูปที่ 7-1  ช่วงที่อยู่ระบบ นี้: นี่แสดงให้เห็นอย่างชัดเจนว่ามันสามารถใช้ RAM มากกว่า 4 GiB ได้หากว่าใช้กับซีพียูก็สามารถกำหนดแอดเดรส 36 บิตได้ นอกจากนี้ยังเป็นที่น่าสังเกตว่าวรรคระบุว่า7 System Address Map MCH supports 64 GB of addressable memory spaceอย่างไรก็ตามมีการชี้แจงเพิ่มเติมว่าRAM ที่ใช้งานได้สูงสุดจะถูก จำกัด ที่ 8 GB นี้อีกครั้งประกาศความแตกต่างระหว่างแอดเดรสและใช้งานได้ในขณะที่ฉันพยายามถ่ายทอดในส่วน CPU

เพื่อสรุปสิ่งนี้ฉันต้องการทราบว่าชิปเซ็ตที่เกี่ยวข้องสองอันนั้นมีความแตกต่างอย่างมากในการจัดการหน่วยความจำ

ให้ตรวจสอบIntel®Pentium® Processor Extreme Edition 840 รองรับชุดคำสั่ง 64 บิต แต่ไม่รองรับ PAE ซึ่งหมายความว่าหากทำงานในโหมด 32 บิตจะไม่สามารถใช้ RAM มากกว่า 4 GiB ได้ (โปรดแก้ไขให้ถูกต้องหากฉันผิดกับข้อสันนิษฐานนี้) Table 4-3. Signal Descriptionให้ตรวจสอบแผ่นข้อมูลและตาราง แม้ว่า CPU นี้มีความสามารถ 64- บิต แต่ก็ยังถูก จำกัด โดยที่อยู่บัสที่มีความกว้าง 36- บิตดังนั้นจึง จำกัด ให้อยู่ในช่วงที่อยู่ที่เข้าถึงได้ตั้งแต่ 0 ถึง 64 GiB

ตอนนี้ให้ตรวจสอบ CPU ล่าสุด ยกตัวอย่างเช่นใช้โปรเซสเซอร์Intel® Core ™ i7-7700 โฆษณานี้สนับสนุน RAM สูงสุด 64 GB ตอนนี้ให้ตรวจสอบแผ่นข้อมูลของมัน ย่อหน้า2.3 System Address Mapทำให้เรามั่นใจว่าช่วงที่แอดเดรสของ CPU นี้อยู่ระหว่าง 0 ถึง 512 GiB เนื่องจากบัสแอดเดรส 39 บิต โปรดทราบว่ามันยังห่างไกลจากช่วง EiB ตามทฤษฎี 16 สำหรับ CPU 64 บิต น่าแปลกที่ว่า CPU นี้รองรับRAM สูงสุดที่ใช้งานได้สูงสุด32 GiB (ตรงกันข้ามกับ 64 GB บนเว็บไซต์) นอกจากนี้ยังมีภาพที่น่าสนใจที่นี่Figure 2-2. System Address Range Example: รูปที่ 2-2  ตัวอย่างช่วงที่อยู่ระบบ มันใช้งานได้ดีในการอธิบายปัญหาเกี่ยวกับหน่วยความจำเงาโดยอุปกรณ์ PCI ฯลฯ นอกจากนี้ยังแนะนำวิธีการเอาชนะปัญหานี้โดยการจับคู่ช่วงจาก RAM ที่แท้จริงให้กับช่วงที่อยู่บนภายใน CPU- แอดเดรสช่วง ดังนั้นการเรียกคืนหน่วยความจำที่ซ่อนอยู่สำหรับการใช้งาน โปรดทราบว่าการแมปใหม่นี้ดำเนินการโดย BIOS / (U) EFI เมื่อทำการเริ่มต้นฮาร์ดแวร์และด้วยเหตุผลนี้ฉันจึงได้รวม BIOS / (U) EFI ไว้ในรายการย่อยด้านบน

ฉันได้นำผลิตภัณฑ์ Intel มาเป็นตัวอย่าง แต่สิ่งเดียวกันนั้นเป็นจริงสำหรับ AMD

ตอนนี้ให้อภิปรายว่าระบบปฏิบัติการเกี่ยวข้องกันอย่างไร เคอร์เนล Linux ประกอบด้วยการรองรับโหมด PAE เต็มรูปแบบเริ่มต้นด้วยรุ่น 2.3.23 และเป็นไปได้อย่างสมบูรณ์แบบที่จะมีหน่วยความจำมากกว่า 4GB ที่สามารถใช้งานได้กับ Linux kernel บนระบบ 32 บิต อย่างไรก็ตามควรตระหนักถึงปัญหาที่ไม่ได้ตั้งใจกับเคอร์เนล 32 บิตบนระบบที่มี RAM มากกว่า 4 GiB บนฮาร์ดแวร์บางตัว (จากประสบการณ์ของฉันมันมีบางอย่างเกี่ยวกับการถ่ายภาพ TLB) อย่างไรก็ตามวิกิพีเดียมีข้อมูลที่ดีในการสนับสนุน PAE สิ่งที่น่าสนใจคือวิธีที่ Windows XP ถูก จำกัด ไว้ที่ 4 GB ในขณะที่ Windows Server 2003 Enterprise / Datacenter SP2 นั้นมีความสามารถเต็ม 64 GB เหมือนกันสำหรับคู่ Windows Desktop Server อื่น ๆ

อย่างที่คุณเห็นมีส่วนประกอบหลายอย่างรวมอยู่ในรายการและในบางกรณีการเปลี่ยนซีพียูหรือระบบปฏิบัติการอาจช่วยได้ เป็นการยากที่จะจัดการกับ BIOS / (U) EFI หรือ MCU เนื่องจากเดิมมีกรรมสิทธิ์และมีอยู่แล้วในระบบและไม่สามารถแก้ไขได้อย่างง่ายดายส่วนหลังถูกสร้างขึ้นใน CPU หรือบัดกรีบนบอร์ด


-4

มันแสดง RAM ขนาด 3574 เมกะไบต์เพราะนั่นคือจำนวน RAM ที่ว่างและพร้อมให้คอมพิวเตอร์ใช้งานได้ตลอดเวลา รูปนี้เป็น RAM ที่คอมพิวเตอร์ของคุณมีการเข้าถึงทั้งหมดเนื่องจากโปรแกรมและการตั้งค่าที่ติดตั้งไว้ล่วงหน้าบนพีซีใช้จำนวน RAM ที่กำหนดซึ่งในกรณีของคุณจะเป็น 426mb พีซี 6GB 64 บิตของฉันแสดงว่า RAM ที่มีอยู่ 5.8GB นั้นไม่ใช่ 6GB เต็มรูปแบบ ทางออกที่ดีที่สุดของคุณคือดูการอัพเกรดพีซีของคุณ


ถ้า 3.5 GB เป็น RAM ว่างทำไม Windows ยังคงแบ่งมันเป็น RAM ว่างและ RAM ที่ใช้? มันเป็นระบบปฏิบัติการที่ควรรู้ทุกอย่างโดยเฉพาะอย่างยิ่งหากมีบางอย่างใช้หน่วยความจำมากถึง 0.5 GB โปรแกรมที่ติดตั้งจะไม่ใช้ RAM จนกว่าจะเริ่มขึ้น
gronostaj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.