หน่วยความจำ 64 บิตที่อยู่เครื่องได้เท่าใดในแต่ละครั้ง?


32

หากหน่วยความจำสามารถระบุตำแหน่งหน่วยความจำแบบไบท์ได้

2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB ?

การค้นหาโดยทั่วไปของ Google ระบุว่าสูงสุด 8GB หรือ 16GB

เป็นความจริงได้อย่างไร นอกจากนี้มันขึ้นอยู่กับระบบปฏิบัติการอย่างไร


เห็นได้ชัดว่า 8 GB อยู่นอกกำแพงเพราะเครื่องทำงานของฉันมีขนาด 12 GB และสามารถจัดการได้ทั้งหมดรวมถึง RAM วิดีโอหนึ่ง GB และฮาร์ดแวร์ของฉันทั้งหมดรวมถึงหน่วยความจำเสมือนทั้งหมดของฉันด้วย

Newegg ขาย RAM ขนาด 32GB แพคเกจสำหรับคอมพิวเตอร์หนึ่งเครื่อง รองรับ 32- บิต 3.2GB และ 128- บิตจะรองรับเทราไบต์นับล้านดังนั้นฉันคิดว่า 64- บิตเป็นมากกว่าสองเท่าที่ 32- บิตมี
tkbx

คำตอบ:


53

มีหลายปัจจัย interleaving

ก่อนอื่นคุณจะไม่สามารถรวบรวมระบบที่มีRAM จริง2 64ไบต์ (16 exibytes)

ประการที่สองเพียงเพราะสถาปัตยกรรมใช้พอยน์เตอร์แบบ 64 บิตไม่ได้หมายความว่าบิตทั้งหมดของพอยน์เตอร์นั้นถูกใช้งานจริง โดยเฉพาะอย่างยิ่งซีพียู x86-64 ปัจจุบัน (หรือที่รู้จักกันว่า AMD64 และชิป 64 บิตปัจจุบันของ Intel) ใช้เส้นที่อยู่แบบ 48 บิต (AMD64) และที่อยู่แบบ 42 บิต (Intel) (ดูที่) http://en.wikipedia.org/wiki / X86_64 # Virtual_address_space_details ) ตามหลักวิชาอนุญาตให้มีฟิสิคัลแรม 256 เทราไบต์

ประการที่สองมาเธอร์บอร์ดมีข้อ จำกัด เกี่ยวกับจำนวน RAM ที่สามารถรองรับได้ทั้งทางกายภาพและทางตรรกะ ในทางกายภาพจะมีเพียงสล็อตจำนวนมากที่พร้อมใช้งานสำหรับ RAM สำหรับข้อ จำกัด "ทางตรรกะ" ฉันไม่เข้าใจว่าทำไมเรื่องนี้ถึงยังคงเป็นกรณีสำหรับ x86-64 (ตัวควบคุมหน่วยความจำที่มีความยาวตั้งแต่ถูกย้ายไปยังซีพียูเอง) แต่ก็มีอยู่ มุมที่น่าจะถูกตัดในบรรทัดที่อยู่เพื่อประหยัดไม่กี่ bucks ในการออกแบบและการผลิต

ประการที่สามระบบปฏิบัติการอาจมีข้อ จำกัด ภายในว่า RAM สามารถรองรับได้อย่างมีประสิทธิภาพเท่าใด ส่วนนี้เป็นจริงเพื่อป้องกันความต้องการโครงสร้างข้อมูลขนาดใหญ่เกินไปเพื่อติดตามการใช้งานสำหรับหน่วยความจำที่ไม่ได้มีจริง ๆ ล่าสุดฉันตรวจสอบลินุกซ์ช่วยให้พื้นที่ที่อยู่เสมือน 128TB ต่อกระบวนการใน x86-64 และในทางทฤษฎีสามารถสนับสนุน 64TB แรมทางกายภาพ

ประการที่สี่ระบบปฏิบัติการบางระบบ (เช่น Windows) จะ จำกัด ปริมาณการใช้ RAM เป็นกลยุทธ์เพื่อให้ผู้ใช้อัปเกรดเป็นรุ่นที่แพงกว่าหากพวกเขาต้องการ RAM มากกว่า (Windows 7 Starter จำกัด เพียง 2GB, Home Basic ถึง 8, Home Premium ถึง 16 และ Professional และสูงกว่าคือ 192GB และ Windows Server รีลีสมีขีด จำกัด สูงกว่ามาก)


1
+1 สำหรับการกล่าวถึงบรรทัดที่อยู่ทางกายภาพโดยทั่วไปแล้วคือ << จำนวนบิตในการลงทะเบียนที่อยู่บนสถาปัตยกรรม 64- บิต
Paul R

3
แหล่งที่มาสำหรับบรรทัดที่อยู่แบบ 42 บิต (เพิ่มโดยการแก้ไขแบบไม่ระบุชื่อ) จะได้รับการชื่นชม จนถึงตอนนั้นฉันเองก็ไม่ได้พิจารณาข้อมูลที่น่าเชื่อถือ
Bob

21
ไม่เคยพูดไม่เคย กฎของมัวร์ยังคงมีผลบังคับใช้ระบบล่าสุดที่ฉันได้ยินดังนั้นระบบที่มี RAM ขนาด 16 เมกะไบต์อาจปรากฏขึ้นภายในช่วงอายุของเรา จากนั้นเราทุกคนจะต้องย้ายไปที่ระบบปฏิบัติการ 128 บิต ...
ไมเคิลแฮมป์ตัน

ฟิสิคัลแอดเดรสยังถูก จำกัด ด้วยจำนวนบิตที่จัดเตรียมไว้สำหรับฟิสิคัลแอดเดรสใน TLBs (และขนาดของแท็กแคชที่กำหนดฟิสิคัลแอดเดรสการแท็ก) และบิตที่พร้อมใช้งานสำหรับฟิสิคัลแอดเดรสในรายการตารางหน้า (หากถูกกำหนดโดย สถาปัตยกรรมเช่นเดียวกับใน x86-64 ซึ่งรองรับพื้นที่ที่อยู่ทางกายภาพ 52- บิตที่มีหน้าเว็บ 4KiB) ส่วนหลังเป็นข้อ จำกัด ที่เข้มงวดกว่า (ไม่ใช่การยึดตามสถาปัตยกรรม) แม้ว่าจะสามารถเปลี่ยนสถาปัตยกรรมได้ก็ตาม
Paul A. Clayton

2
@MichaelHampton - NecroReply แต่ไม่สามารถต้านทาน :) เพิ่มเป็นสองเท่าทุก ๆ 2 ปี (ซึ่งเร็วกว่าแนวโน้มล่าสุด) จะยังคงใช้เวลา 60 ปีที่จะได้รับจาก 16GB ถึง 16EB จากนั้นฉันสงสัย "กฎหมาย" เกี่ยวกับทรานซิสเตอร์ซิลิคอนจะมีความเกี่ยวข้องใด ๆ )
MatBailie

9

หากคุณใช้ MS Windows หน่วยความจำสูงสุดจะถูก จำกัด โดยระบบปฏิบัติการ

สำหรับ Windows 7 ค่าสูงสุดคือ:

  • เริ่มต้น: 2GB
  • พื้นฐานที่บ้าน: 8GB
  • พรีเมี่ยมที่บ้าน: 16GB
  • ระดับมืออาชีพ: 192GB
  • องค์กร: 192GB
  • ขั้นสูงสุด: 192GB

Windows Server 2008 มีตั้งแต่ 8GB สำหรับรายการระดับถึง 2TB สำหรับด้านบนของบรรทัด

ดูhttp://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspxสำหรับรายการแบบเต็ม

ข้อ จำกัด เหล่านี้ใช้เพื่อเหตุผลทางการตลาดเป็นหลัก ด้วยการ จำกัด รุ่นที่ราคาถูกกว่าจะทำให้รุ่นที่มีคุณภาพสูง

ฉันคิดว่าลินุกซ์บิลด์เมื่อเร็ว ๆ นี้ทำงานได้กับ RAM ขนาด 32TB ถึงแม้ว่าฮาร์ดแวร์บางตัวอาจไม่รองรับก็ตาม


4
นี่ไม่ใช่ข้อ จำกัด ทางเทคนิคจริงๆ สิ่งเหล่านี้เป็นข้อ จำกัด ที่ประดิษฐ์ขึ้นเพื่อเหตุผลทางธุรกิจ
kasperd

8

เครื่อง 64 บิตควรสามารถระบุแอดเดรสที่สามารถกำหนดแอดเดรสได้สูงสุด 2 64หน่วย (ในสถาปัตยกรรมที่ออกแบบมาในช่วงสองสามทศวรรษที่ผ่านมา หากคุณกำหนด "กิกะไบต์" เป็น 2 หน่วยที่สามารถกำหนดแอดเดรสได้30 30ดังนั้นใช่ 2 34กิกะไบต์จะเป็นอีกวิธีหนึ่งในการแสดงจำนวนเดียวกัน

การค้นหาของ Google ใดที่สร้างผลลัพธ์เล็ก ๆ ที่น่าหัวเราะ? บางทีหน้าเว็บที่คุณพบกำลังพูดถึงจำนวน RAM ที่คุณสามารถซื้อในกล่องราคาถูกของรุ่นที่แน่นอน - คุณสามารถมี RAM ได้มากขึ้น (แน่นอนว่าแอดเดรสทั้งหมด) แม้ในกล่องที่ห่างไกลจากราคาแพงมาก .

ระบบปฏิบัติการสามารถ จำกัด จำนวนหน่วยความจำที่อยู่ได้อย่างแน่นอนที่สุด (ตัวอย่างเช่นพวกเขาสามารถทำได้โดย จำกัด ขนาดของหน้าตารางซึ่งอาจกำหนดได้สูงสุดที่กำหนดได้โดยการคอมไพล์ใหม่หรือกำหนดค่าระบบปฏิบัติการใหม่ - ยากที่จะ มีความเฉพาะเจาะจงมากขึ้นโดยไม่ต้องมุ่งเน้นไปที่กลุ่ม OS ที่เฉพาะเจาะจง )


ทำไมหน่วยที่สามารถกำหนดแอดเดรส 2 ^ 30 ได้ 1 GB ที่อยู่หน่วยแต่ละแห่งจะเก็บ 1 บิตดังนั้นหน่วยที่อยู่ 2 ^ 30 จะเก็บค่าบิตจำนวนมากซึ่งมีจำนวน 0.134217728 กิกะไบต์ ฉันพลาดอะไรไป
Darshan Chaudhary

1
@DarshanChaudhary 2 ^ 30 เป็นจำนวนที่อยู่ที่แตกต่างกัน ที่อยู่แต่ละรายการระบุหน่วยความจำหนึ่งไบต์ไม่ใช่หนึ่งบิต
David Moles

3

คุณสามารถมี RAM ได้มากเท่าที่คุณต้องการ แต่ทุกอย่างขึ้นอยู่กับระบบปฏิบัติการและแอพพลิเคชั่นที่คุณใช้งาน

หากคุณกำลังใช้งานแอพพลิเคชั่นที่ใช้ CPU มาก ๆ และฮาร์ดแวร์อื่น ๆ เช่นฮาร์ดดิสก์ของคุณคุณควรพิจารณาซีพียูตัวที่สองในเครื่องแยกต่างหาก ตัวอย่างเช่นการรันแอปพลิเคชันฐานข้อมูลและเซิร์ฟเวอร์อีเมลทั้งสองเครื่อง

ไม่สำคัญว่าคุณมีหน่วยความจำเท่าไหร่ - ในตลาดทุกวันนี้ระบบทั้งหมดจะหยุดชะงัก ซีพียูเดี่ยวก็ไม่สามารถจัดการมัลติทาสกิ้งในแบบที่คุณคาดหวังได้

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

หากคุณจริงจังกับประสิทธิภาพการทำงานจริงๆแล้วไปที่ 64 บิต แต่ให้ลองพิจารณาการปรับสมดุลโหลดด้วยเซิร์ฟเวอร์ที่สอง

ฉันได้ไปตามถนนสายนั้นแล้ว - การกำหนดค่าเครื่องเดียวด้วย RAM สูงสุด แต่เมื่อใช้งานแอพพลิเคชั่นหลายตัวมันยังคงทำงานเหมือนสุนัข นั่นเป็นเพราะ CPU เองไม่สามารถจัดการได้

คำแนะนำของฉันคือการบันทึก bucks ของคุณในหน่วยความจำและซื้อเซิร์ฟเวอร์ที่สองแล้วโหลดทั้งสอง มันง่ายกว่ามาก ๆ บวกกับเมื่อคุณเข้าไปในที่จับแล้วมันจะขยายได้ง่ายเมื่อคุณต้องการพลังการประมวลผลและความเร็วที่มากขึ้น

นอกจากนี้เครื่องสถาปัตยกรรม 64 บิตสามารถรับมือกับซอฟต์แวร์ 32 บิตได้ แต่ด้วยเครื่อง 32 บิตคุณจะถูก จำกัด ให้ใช้เพียง 32 บิตหรือน้อยกว่าซึ่งรวมถึงระบบปฏิบัติการ

เนื่องจากตลาดทั้งระบบกำลัง 64 บิตทั้งในแง่ของฮาร์ดแวร์และซอฟต์แวร์ฉันขอแนะนำให้ใช้ 64 บิตในระยะยาว แต่ลืมความคิดในการบีบอัดข้อมูลทั้งหมดลงในเครื่องเดียวโดยมีหน่วยความจำเต็มถังเพราะคุณจะผิดหวัง

หากคุณไม่แน่ใจว่า "การปรับสมดุลโหลด" คืออะไร Google จะให้มัน


2

ฉันคิดว่ามันอาจใช้เวลามากกว่า exabyte "EB"

ดูโปรเซสเซอร์ 32 บิตตัวนี้ใช้เวลา 2 32 B = 4 GB แต่ส่วนใหญ่จะใช้เวลา 3 GB "เพราะพวกเขาเป็น 1 GB สำหรับที่อยู่ย้อนกลับ"

นั่นหมายความว่าโปรเซสเซอร์ 64 บิตสามารถใช้ 2 64 B = 16 EB ได้ แต่ฉันไม่สามารถระบุที่อยู่ที่ถูกล็อกเพื่อใช้งานแบบย้อนกลับได้ ดังนั้นเราจึงสามารถพูดได้ว่าโปรเซสเซอร์ 64 บิตใช้เวลามากกว่า 1 EB และสเปคนี้ไม่ได้ขึ้นอยู่กับระบบปฏิบัติการที่พีซีใช้หรือรุ่นของมัน


1
ในทางปฏิบัติโปรเซสเซอร์ 64 บิตมักจะมีพื้นที่ที่อยู่ 48 บิตซึ่งเพียงพอสำหรับหน่วยความจำ 256 เทราไบต์
465544

ฉันคิดว่าคุณหมายถึงexbibyteไม่Exabyte
martineau

1

ยกตัวอย่าง Intel หรือ AMD CPU มีข้อ จำกัด หลายประการสำหรับหน่วยความจำกายภาพและหน่วยความจำเสมือน คนอื่นพูดถึงข้อ จำกัด ด้านฮาร์ดแวร์และข้อ จำกัด ของมาเธอร์บอร์ด แต่ก็มีข้อ จำกัด ภายในเช่นกัน

รายการตารางหน้าเทอร์มินัลใน MMU มีฟิสิคัลแอดเดรสจำนวน 52 บิตและสามารถแม็พฟิสิคัล RAM ได้สูงสุด 4096 TB

MMU ใช้ตารางหน้า 4 ระดับซึ่งระดับบนสุดประกอบด้วยรายการ 512 × 512 GB หน่วยความจำเสมือนจึง จำกัด อยู่ที่ 256 TB

เท่าที่ฉันรู้ระบบปฏิบัติการ 64 บิตทั้งหมดใช้ DMAP (แผนที่ตรง) ซึ่งสะดวกมาก อย่างไรก็ตามเนื่องจากหน่วยความจำเสมือนถูก จำกัด ไว้ที่ 256 TB ขนาดของ DMAP จึง จำกัด เช่นกัน โดยทั่วไปแล้ว 128 TB จะสงวนไว้สำหรับโหมดผู้ใช้และ 128 TB สำหรับเคอร์เนล จาก 128 TB สำหรับเคอร์เนลอาจมีการสำรองมากถึงครึ่งหนึ่งสำหรับ DMAP เนื่องจากประโยชน์ของ DMAP ระบบปฏิบัติการมักจะ จำกัด หน่วยความจำทางกายภาพกับสิ่งที่ DMAP สามารถจัดการได้

ดังนั้นระบบปฏิบัติการ 64 บิตส่วนใหญ่สำหรับ Intel / AMD หน่วยความจำกายภาพที่รองรับนั้น จำกัด อยู่ที่ประมาณ 64 TB เหลือ 64 TB สำหรับหน่วยความจำเสมือนเคอร์เนลทั่วไปและ 128 TB สำหรับหน่วยความจำเสมือนของผู้ใช้

-

ภายใน CPU นั้น CPU แคชยังมีข้อ จำกัด เกี่ยวกับจำนวนบิตที่อยู่ทางกายภาพที่จัดเก็บเนื่องจากบิตที่อยู่เพิ่มเติมแต่ละบิตจะกินทรานซิสเตอร์จำนวนมากไปยังแท็กแคช ข้อ จำกัด ของตัวควบคุม DRAM ไม่จำเป็นต้องเป็นคำพูดสุดท้ายเนื่องจากหน่วยความจำสามารถแก้ไขได้ผ่านการเชื่อมโยง DMI

สถาปัตยกรรม CPU ที่แตกต่างกัน (เช่น ARM, PowerPC และอื่น ๆ ) จะมีข้อ จำกัด ที่แตกต่างกัน

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