ฉันเป็นโน้ตบุ๊ค Asus U31SD ที่มีซีพียูi5-2430M เว็บไซต์ Asus บอกว่า RAM สูงสุดคือ 8 GB แต่ Intel บอกว่า CPU ของฉันรองรับ 16 GB RAM สูงสุดที่ฉันสามารถใช้บนระบบนี้ใน Ubuntu คืออะไร
ฉันเป็นโน้ตบุ๊ค Asus U31SD ที่มีซีพียูi5-2430M เว็บไซต์ Asus บอกว่า RAM สูงสุดคือ 8 GB แต่ Intel บอกว่า CPU ของฉันรองรับ 16 GB RAM สูงสุดที่ฉันสามารถใช้บนระบบนี้ใน Ubuntu คืออะไร
คำตอบ:
ขีด จำกัด อยู่ระหว่างฮาร์ดแวร์ของคุณ (รองรับหน่วยความจำเมนบอร์ดและจำนวนสล็อตในนั้น) และรุ่นของ 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 บิต
สำหรับ 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
ฉันเพิ่งซื้อ 8GB พิเศษเพื่อป๊อปอัพใน U31SD ของฉันรวมเป็น 12GB แม้จะมีหน้าข้อมูลจำเพาะของ Asus ที่บอกว่า 8GB นั้นเป็นขีด จำกัด แต่ก็ใช้งานได้ดี ผ่าน memtest86 และสามารถดูได้ที่ 64 บิต Ubuntu
ฉันติดตั้งไบออสอัพเดตล่าสุดแล้วไม่แน่ใจว่าจะสร้างความแตกต่างได้หรือไม่
FYI, การส่งออกของบ่งชี้sudo dmidecode -t 16
Maximum Capacity: 16 GB
มันเป็นข้อ จำกัด ในเมนบอร์ดที่ไม่ได้อยู่ในซีพียู ซีพียูอาจรองรับได้สูงสุด 16GB แต่หากเมนบอร์ดสามารถรับ 8GB เท่านั้นนั่นคือข้อ จำกัด ของคุณ
ใน Ubuntu ถ้าคุณใช้ 32- บิตแล้วขีด จำกัด ของคุณคือ 4GB และถ้าคุณใช้ 64- บิตมันสูงกว่ามาก (จำไม่ได้แน่นอน แต่มันเป็นหนทางที่สูงกว่า 16GB
แต่คุณจะถูก จำกัด โดยฮาร์ดแวร์ของคุณ คุณต้องเปรียบเทียบการ จำกัด มาเธอร์บอร์ดและการ จำกัด ซีพียูและใช้ค่าต่ำสุดเป็นขีด จำกัด ของพีซี
ในกรณีเฉพาะของคุณ 8 GB เกิดจากเมนบอร์ดของคุณไม่รองรับ RAM มากกว่านั้น
แต่อูบุนตูเองรองรับ 4 GB สูงสุดสำหรับ 32 บิต, 64 GB สำหรับPAE 32- บิตและ 128 GB ใน 64 บิต (แม้ว่าตามหลักเหตุผลแล้วแคปจะสูงกว่า 64 บิต)
มีคำถามมากมายที่กำหนดขนาดของตัวชี้ โดยพื้นฐานแล้วเป็นกฎง่ายๆคุณสามารถพูดได้ว่านี่คือสถาปัตยกรรมโปรเซสเซอร์
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 ที่แมปหน่วยความจำซึ่งอนุญาตให้บางที่อยู่เพื่ออ้างถึงหน่วยความจำในขณะที่คนอื่นอ้างถึงการลงทะเบียนอุปกรณ์ของอุปกรณ์อื่น ๆ ในคอมพิวเตอร์ มีแนวคิดแบบอะนาล็อกเช่นออฟเซ็ตไฟล์ดัชนีอาเรย์และการอ้างอิงวัตถุระยะไกลที่ให้บริการบางส่วนของวัตถุประสงค์เดียวกันเป็นที่อยู่สำหรับวัตถุประเภทอื่น ๆ
(เพิ่มเติมที่นี่ )