จำนวน RAM สูงสุดที่ฉันสามารถใช้กับฮาร์ดแวร์เฉพาะคืออะไร


26

ฉันเป็นโน้ตบุ๊ค Asus U31SD ที่มีซีพียูi5-2430M เว็บไซต์ Asus บอกว่า RAM สูงสุดคือ 8 GB แต่ Intel บอกว่า CPU ของฉันรองรับ 16 GB RAM สูงสุดที่ฉันสามารถใช้บนระบบนี้ใน Ubuntu คืออะไร


3
เพื่อสรุปสิ่งที่ทุกคนพูดโน้ตบุ๊คของคุณสามารถใช้ RAM ได้ 8GB เท่านั้นเนื่องจากข้อ จำกัด ของมาเธอร์บอร์ด คุณสามารถตรวจสอบได้โดยดูที่คำถามนี้: askubuntu.com/questions/140322/...
reverendj1

สำหรับทุกคนฉันอยากจะชี้ให้เห็นว่า บริษัท ผู้ผลิตหน่วยความจำ "โจรสลัด" มีตัวระบุตำแหน่งหน่วยความจำที่สามารถบอกคุณได้ว่า RAM สูงสุดที่ระบบของคุณสามารถใช้ได้คืออะไร นอกจากนี้คุณยังสามารถไปอ่านแผ่นข้อมูลทางเทคนิคสำหรับระบบรุ่นของคุณโดยค้นหาแบบออนไลน์มันจะบอกคุณถึง RAM สูงสุดที่คุณสามารถใช้ได้
Thomas Ward

@The Lord of Time: ลิงค์ใด ๆ
0xC0000022L

Corsair Memory Finder / Configurator สำหรับระบบที่อ้างอิงในคำถาม: www2.corsair.com/configurator/… || Corsair Memory Finder (หน้าเริ่มต้น): corsair.com/us/learn_n_explore (พวกเขาจะโฆษณาผลิตภัณฑ์ของพวกเขา แต่ฉันสามารถใช้มันเป็นฐานทั่วไปสำหรับการค้นหารายละเอียดกึ่งแม่นยำสำหรับหน่วยความจำสูงสุด
Thomas Ward

คำตอบ:


29

ขีด จำกัด อยู่ระหว่างฮาร์ดแวร์ของคุณ (รองรับหน่วยความจำเมนบอร์ดและจำนวนสล็อตในนั้น) และรุ่นของ Ubuntu (32 บิต, 32 บิต + PAE, x32ABI, 64 บิต)

หากคุณมีเมนบอร์ดที่รองรับสูงสุด 4GB มันไม่สำคัญว่าคุณจะใช้ 32 บิต, 32 บิต PAE หรือ 64 บิตเนื่องจากคุณจะมีขีด จำกัด ของฮาร์ดแวร์ที่ 4GB

แต่ถ้าคุณซื้อมาเธอร์บอร์ดที่รองรับจำนวนหน่วยความจำที่สูงกว่าคุณสามารถเล่นกับอูบุนตูเวอร์ชันที่มีหน่วยความจำสูงสุดที่รองรับดังต่อไปนี้:

Ubuntu 32 บิต - RAM 4GB

Ubuntu 32 บิต + PAE (ส่วนขยายที่อยู่ทางกายภาพ) - RAM 64GB

Ubuntu x32ABI - RAM 4GB (สำหรับสถาปัตยกรรม 32 บิตที่ปรับปรุงด้วยการปรับปรุง 64 บิตที่ทำงานบนฮาร์ดแวร์ 64 บิตยังไม่พร้อมให้บริการ)

Ubuntu 64 บิต - มากมาย! (จริง 2 ^ 64) แต่เนื่องจากขีด จำกัด ของฮาร์ดแวร์และคอมพิวเตอร์ในโลกแห่งความจริงขีด จำกัด อยู่ที่ประมาณ 1TB (1024GB RAM)

ดังนั้นควรใช้คำถามเกี่ยวกับขีด จำกัด หน่วยความจำเมื่อคุณใช้ RAM มากกว่า 4GB ในกรณีนี้คุณต้องใช้ทั้ง 32 บิต PAE หรือ 64 BIT ซึ่งรองรับขนาดหน่วยความจำขนาดใหญ่จริงๆ

โปรดทราบว่าหากคุณมี 4GB เช่นในตอนนี้และคุณซื้อ RAM 16GB ไม่จำเป็นต้องติดตั้ง Ubuntu ใหม่หรือทำการเปลี่ยนแปลงใด ๆ เพียงแค่เปลี่ยนความทรงจำและอูบุนตูควรอ่านและทำงานร่วมกับพวกเขานอกกรอบ ไม่จำเป็นต้องกำหนดค่า หากคุณมี 32 บิตพร้อม RAM 4 GB และติดตั้ง 16GB หรือ RAM Ubuntu จะเปลี่ยนจาก 32 บิตเป็น 32 บิต PAE โดยอัตโนมัติ ฉันสามารถรับรองสิ่งนี้ได้ตั้งแต่ฉันย้ายจาก 4GB เป็น 16 GB ในต้นปีนี้

นี่คือลิงค์ไปยังคำอธิบายที่ดีมากสำหรับ Ubuntu เกี่ยวกับหน่วยความจำใน 32/64: https://help.ubuntu.com/community/32bit_and_64bit#Memory

อัพเดท - ลืมที่จะเพิ่มว่าเมนบอร์ดบางตัวมีอัพเดต BIOS ที่เปิดใช้งานแก้ไขหรือปรับปรุงหน่วยความจำสูงสุดที่รองรับ ตัวอย่างเช่นมาเธอร์บอร์ด Intel บางรุ่นในอดีตมีปัญหาในการทำงานกับจำนวนสูงสุดที่รองรับ อัพเดต BIOS ได้แก้ไขสิ่งนี้ มาเธอร์บอร์ดตัวอื่นรองรับ 4GB ได้เนื่องจากปัญหา BIOS หลังจากอัพเกรดพวกเขารองรับมากกว่า 4GB

นอกจากนี้การเปรียบเทียบหน่วยความจำสูงสุดที่รองรับสำหรับ CPU และเมนบอร์ดจำนวนสูงสุดที่คุณสามารถมีได้คือค่าต่ำสุดของค่าใด ๆ ตัวอย่างเช่น:

CASE 1
CPU หน่วยความจำสูงสุดที่รองรับ - เมนบอร์ด16GBหน่วยความจำ
สูงสุดที่รองรับ - 8GB
หน่วยความจำที่รองรับสูงสุดของคุณ - 8GB (เนื่องจากค่าต่ำสุดระหว่าง CPU และเมนบอร์ด)

CASE 2
CPU หน่วยความจำสูงสุดที่รองรับ - เมนบอร์ด16GBหน่วยความจำ
สูงสุดที่รองรับ - 32GB
หน่วยความจำสูงสุดที่รองรับ - 16GB (เพราะค่าต่ำสุดระหว่าง CPU และเมนบอร์ด)

CASE 3
CPU หน่วยความจำสูงสุดที่รองรับ - เมนบอร์ด16GBหน่วยความจำ
สูงสุดที่รองรับ - 64GB
หน่วยความจำสูงสุดที่รองรับ - 16GB (เพราะเป็นค่าต่ำสุดระหว่าง CPU และเมนบอร์ด)

เหตุผลที่อยู่เบื้องหลังข้อ จำกัด หน่วยความจำนี้เกี่ยวข้องกับ CPU เป็นเพราะการดัดแปลงทางเทคนิคโดย Intel กับ Core CPU ล่าสุด

ดังนั้นในกรณีของคุณคุณมีมาเธอร์บอร์ดที่รองรับ 8GB และ CPU ที่รองรับ 16GB ซึ่งหมายความว่าจำนวนสูงสุดที่คุณสามารถมีได้คือ 8GB ซึ่งคุณสามารถใช้ได้ขึ้นอยู่กับจำนวนสล็อตในเมนบอร์ด ใน Asus นั้นคุณมี 2 สล็อตซึ่งหมายความว่าคุณสามารถมี RAM 4GB สองตัวเพื่อทำ 8GB สูงสุดให้เสร็จสมบูรณ์

ข้อมูลเพิ่มเติมเกี่ยวกับ x32abi:

KernelNewbies - http://kernelnewbies.org/Linux_3.4#head-039c9d273884c9639937c10d68b4a3214869eb4b

LWN - https://lwn.net/Articles/456731/ (แนะนำให้อ่านความคิดเห็นเพื่อง่ายต่อการเรียนรู้คำอธิบายเกี่ยวกับการ จำกัด หน่วยความจำ)

Google - http://sites.google.com/site/x32abi/

สุดท้ายตั้งแต่ Ubuntu 12.04 Ubuntu รุ่น 32 บิตทั้งหมดมาพร้อมกับ PAE ที่เปิดใช้งานโดยค่าเริ่มต้นดังนั้น 32 บิตทั้งหมดจะรองรับ RAM สูงสุด 64 GB ในกรณีที่คุณใช้ 12.04+ และต้องการทราบว่าจะใช้สถาปัตยกรรมใดตอนนี้คุณจะรู้ว่าคุณสามารถใช้สิ่งใดก็ได้ตราบใดที่คุณทำตามคำแนะนำ:

  • หากคุณมี RAM 512 MB หรือน้อยกว่าขอแนะนำให้ใช้ 32 บิต

  • หากคุณมี RAM น้อยกว่า 4 GB แต่มากกว่า 512 MB ขอแนะนำให้ใช้ 32 บิต (แต่คุณยังคงสามารถใช้ 64 บิต)

  • หากคุณมี RAM 4 GB ขอแนะนำให้ใช้ 32 บิต (แต่คุณยังสามารถใช้ 64 บิตได้)

  • หากคุณมีระหว่าง 4 GB หรือ RAM และ 64 GB ของ RAM คุณสามารถใช้ทั้ง 32 บิตหรือ 64 บิต แต่ขอแนะนำให้ใช้ 64 บิต

  • หากคุณมี RAM มากกว่า 64 GB คุณต้องใช้ 64 บิต


หลุยส์คุณแน่ใจเกี่ยวกับขีด จำกัด 4 GB ใน x32 หรือไม่ มันคงจะเศร้า ฉันอ่านในบทความ (นิตยสารภาษาเยอรมัน) ว่า x32 รองรับมากกว่า 4 GB แล้ว PAE ล่ะ?
เทอร์โบ

@ เทอร์โบ - นั่นเป็นคำถามที่ดีมากที่ใช้เวลาสักครู่ในการค้นหา ฉันตอบด้วย 4GB เพราะส่วนหนึ่งของคำอธิบายของ "What is x32abi?": X32 ABI อนุญาตให้เรียกใช้โปรแกรมในโหมด 64 บิตพร้อมตัวชี้ 32 บิต เนื่องจากใช้งานได้กับพอยน์เตอร์ 32 บิตซึ่งหมายความว่าหน่วยความจำสูงสุดที่สามารถใช้งานได้จริงคือ 4GB แน่นอนฉันไม่รู้ว่ามีโหมด x32abi PAE หรือไม่ แต่เนื่องจากเป็นวิธีการรันโปรแกรม 32 บิตเพื่อใช้ประโยชน์จาก 64 บิตโดยไม่ใช้ ram สองเท่าสำหรับงานฉันสรุปได้ว่ามันถูก จำกัด ด้วย 32 บิต ถึง 4GB of ram
Luis Alvarado

1
ที่จริงแล้วขีด จำกัด สำหรับ 64 บิตคือ 2 ^ 48 ไบต์และ x32 เหมือนกัน จำกัด เพียง 4 GB ต่อกระบวนการสำหรับกระบวนการ x32 x32 รันเคอร์เนล 64 บิตดังนั้นจึงสามารถเรียกใช้โปรแกรม 64 บิตเต็มรูปแบบได้ แต่ x32 สร้างโปรแกรมส่วนใหญ่เพื่อใช้ 32 บิตเท่านั้น
psusi

6

สำหรับ 32 บิตขีด จำกัด ทางทฤษฎีคือ 2 ^ 32 = 4096 MB แต่จาก Ubuntu 12.04 บน PAE (ส่วนขยายที่อยู่ทางกายภาพ) จะเปิดใช้งานตามค่าเริ่มต้นโดยมีขีด จำกัด 2 ^ 36 = 64 GB

สำหรับ 64 บิตควรเป็น 2 ^ 64 = 16 777 216 TB (ใช่เทราไบต์) ตามลำดับ ในความเป็นจริงปริมาณของ RAM ถูก จำกัด ไว้ที่ 2 ^ 48 aka 256 TB ของ RAM

เนื่องจากข้อ จำกัด ทางทฤษฎีไม่สามารถเข้าถึงได้ในแล็ปท็อปปกติข้อ จำกัด จริงคือจำนวนสล็อตหน่วยความจำ (ปกติ 1-2) ในโน้ตบุ๊กของคุณและการสนับสนุนจากชิปเซ็ต 8-16 GB เป็นจริงที่นี่ถ้าคุณยินดีจ่ายเงินอย่างจริงจังสำหรับโมดูล 8 GB


ดังนั้นฉันสามารถซื้อโมดูล 2x 8gb อย่างปลอดภัยและคาดหวังว่ามันจะทำงานได้หรือไม่ (ฉันใช้ 64 บิตปัจจุบันมีหน่วยความจำ 8GB)
crond

ดีอย่างปลอดภัย ... ; P โน้ตบุ๊คอื่น ๆ ที่มีชิป Intel HM65 Express รองรับ 16 GB (Asus G74SX-TZ293V) ใช่
เทอร์โบ

6

ฉันเพิ่งซื้อ 8GB พิเศษเพื่อป๊อปอัพใน U31SD ของฉันรวมเป็น 12GB แม้จะมีหน้าข้อมูลจำเพาะของ Asus ที่บอกว่า 8GB นั้นเป็นขีด จำกัด แต่ก็ใช้งานได้ดี ผ่าน memtest86 และสามารถดูได้ที่ 64 บิต Ubuntu

ฉันติดตั้งไบออสอัพเดตล่าสุดแล้วไม่แน่ใจว่าจะสร้างความแตกต่างได้หรือไม่

FYI, การส่งออกของบ่งชี้sudo dmidecode -t 16Maximum Capacity: 16 GB


1

มันเป็นข้อ จำกัด ในเมนบอร์ดที่ไม่ได้อยู่ในซีพียู ซีพียูอาจรองรับได้สูงสุด 16GB แต่หากเมนบอร์ดสามารถรับ 8GB เท่านั้นนั่นคือข้อ จำกัด ของคุณ

ใน Ubuntu ถ้าคุณใช้ 32- บิตแล้วขีด จำกัด ของคุณคือ 4GB และถ้าคุณใช้ 64- บิตมันสูงกว่ามาก (จำไม่ได้แน่นอน แต่มันเป็นหนทางที่สูงกว่า 16GB

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


0

ในกรณีเฉพาะของคุณ 8 GB เกิดจากเมนบอร์ดของคุณไม่รองรับ RAM มากกว่านั้น

แต่อูบุนตูเองรองรับ 4 GB สูงสุดสำหรับ 32 บิต, 64 GB สำหรับPAE 32- บิตและ 128 GB ใน 64 บิต (แม้ว่าตามหลักเหตุผลแล้วแคปจะสูงกว่า 64 บิต)


0

มีคำถามมากมายที่กำหนดขนาดของตัวชี้ โดยพื้นฐานแล้วเป็นกฎง่ายๆคุณสามารถพูดได้ว่านี่คือสถาปัตยกรรมโปรเซสเซอร์

x86 -> 4 bytes pointer -> can address 4,294,967,296 locations = 4GB (it is the limit)

x64 -> 8 bytes pointer -> can address 1.84467440737e+19 locations (it is the limit, big, eh)

ในการจัดการกับ RAM ขนาด 8GB คุณต้องใช้การแมปและตัวชี้ขนาด 4 ไบต์ 8,589,934,592 ขนาดไม่สามารถระบุค่าที่เป็นไปได้ทั้งหมด นี่คือเหตุผลที่ฉันไม่สามารถมี RAM 4GB มากกว่าบนสถาปัตยกรรม x86 ได้

มีความเป็นไปได้อื่น ๆ อยู่บ้าง:

จำนวน RAM ไม่ถูก จำกัด โดยสถาปัตยกรรม (32 หรือ 64 บิต) สถาปัตยกรรมตัดสินใจเฉพาะจำนวนหน่วยความจำที่สามารถแก้ไขได้ในแต่ละครั้งโดยระบบปฏิบัติการและโปรแกรมที่ทำงานอยู่ บนเครื่อง 32 บิตนั่นคือเครื่องที่มีบัสหน่วยความจำกว้าง 32 บิตระบบปฏิบัติการและโปรแกรมสามารถ "ดู" หน่วยความจำเพียง 4 GB แต่นั่นไม่ได้หมายความว่ามี RAM เพียง 4 GB หากผู้ผลิตจัดหามาให้คุณสามารถมี RAM ขนาด 16 GB หรือ 4x4 GB ในกรณีนั้นจะมีบรรทัดที่อยู่ "ซ่อนอยู่" อีก 2 บรรทัดและจะมีตรรกะฮาร์ดคอร์เพื่อตัดสินใจระดับของ 2 บรรทัดดังกล่าวด้วยดังนั้นการเลือก RAM 4 GB ที่มีอยู่ - 00 01 10 11 บิตที่อยู่ "ซ่อน" เหล่านี้ไม่ได้ใช้โดยเลเยอร์ซอฟต์แวร์ดังนั้นสำหรับเลเยอร์เหล่านี้พวกเขาสามารถใช้ตัวชี้ 4 ไบต์เท่านั้น จำนวนของ "ซ่อน"

นี่เป็นเพียงตัวอย่างเดียว ขึ้นอยู่กับผู้ขายว่าพวกเขาตัดสินใจจัดหา RAM เพิ่มเติมอย่างไร

ดูสิ่งนี้ด้วย:

ในกรณีปกติตัวชี้มีขนาดใหญ่พอที่จะเก็บที่อยู่ได้มากกว่าหน่วยความจำในระบบ สิ่งนี้นำเสนอความเป็นไปได้ที่โปรแกรมอาจพยายามเข้าถึงที่อยู่ซึ่งสอดคล้องกับหน่วยความจำไม่ว่าจะเนื่องจากมีการติดตั้งหน่วยความจำไม่เพียงพอ (เช่นอยู่นอกช่วงของหน่วยความจำที่มีอยู่) หรือสถาปัตยกรรมไม่สนับสนุนที่อยู่ดังกล่าว กรณีแรกอาจในบางแพลตฟอร์มเช่นสถาปัตยกรรม Intel x86 เรียกว่าการแบ่งส่วนความผิดพลาด (segfault) กรณีที่สองเป็นไปได้ในการใช้งานปัจจุบันของ AMD64 โดยที่พอยน์เตอร์มีความยาว 64 บิตและที่อยู่ขยายได้ถึง 48 บิตเท่านั้น พอยน์เตอร์จะต้องปฏิบัติตามกฎบางอย่าง (ที่อยู่แบบบัญญัติ) ดังนั้นหากมีการยกเลิกการลงตัวชี้แบบ noncanonical ตัวประมวลผลจะเกิดข้อผิดพลาดในการป้องกันโดยทั่วไป

ในขณะที่บางระบบมีหน่วยความจำมากกว่าหน่วยที่อยู่ ในกรณีนี้รูปแบบที่ซับซ้อนมากขึ้นเช่นการแบ่งส่วนหน่วยความจำหรือเพจจิ้งจะใช้ส่วนต่าง ๆ ของหน่วยความจำในเวลาที่ต่างกัน ชาติล่าสุดของสถาปัตยกรรม x86 รองรับหน่วยความจำฟิสิคัลแอดเดรสได้สูงสุด 36 บิตซึ่งถูกแมปไปยังพื้นที่แอดเดรสเชิงเส้นแบบ 32 บิตผ่านกลไกการสลับหน้า PAE ดังนั้นสามารถเข้าถึงหน่วยความจำรวม 1/16 ของหน่วยความจำที่เป็นไปได้ในแต่ละครั้งเท่านั้น อีกตัวอย่างในตระกูลคอมพิวเตอร์เดียวกันคือโหมดป้องกัน 16 บิตของโปรเซสเซอร์ 80286 ซึ่งแม้ว่าสนับสนุนหน่วยความจำกายภาพเพียง 16 MiB เท่านั้นที่สามารถเข้าถึงหน่วยความจำเสมือนสูงสุด 1 GiB แต่การรวมที่อยู่ 16 บิตและส่วน รีจิสเตอร์เข้าถึงมากกว่า 64 KiB ในโครงสร้างข้อมูลเดียวที่ยุ่งยาก

เพื่อให้อินเทอร์เฟซที่สอดคล้องกันสถาปัตยกรรมบางอย่างมี I / O ที่แมปหน่วยความจำซึ่งอนุญาตให้บางที่อยู่เพื่ออ้างถึงหน่วยความจำในขณะที่คนอื่นอ้างถึงการลงทะเบียนอุปกรณ์ของอุปกรณ์อื่น ๆ ในคอมพิวเตอร์ มีแนวคิดแบบอะนาล็อกเช่นออฟเซ็ตไฟล์ดัชนีอาเรย์และการอ้างอิงวัตถุระยะไกลที่ให้บริการบางส่วนของวัตถุประสงค์เดียวกันเป็นที่อยู่สำหรับวัตถุประเภทอื่น ๆ

(เพิ่มเติมที่นี่ )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.