หากหน่วยความจำสามารถระบุตำแหน่งหน่วยความจำแบบไบท์ได้
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
การค้นหาโดยทั่วไปของ Google ระบุว่าสูงสุด 8GB หรือ 16GB
เป็นความจริงได้อย่างไร นอกจากนี้มันขึ้นอยู่กับระบบปฏิบัติการอย่างไร
หากหน่วยความจำสามารถระบุตำแหน่งหน่วยความจำแบบไบท์ได้
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
การค้นหาโดยทั่วไปของ Google ระบุว่าสูงสุด 8GB หรือ 16GB
เป็นความจริงได้อย่างไร นอกจากนี้มันขึ้นอยู่กับระบบปฏิบัติการอย่างไร
คำตอบ:
มีหลายปัจจัย 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 รีลีสมีขีด จำกัด สูงกว่ามาก)
หากคุณใช้ MS Windows หน่วยความจำสูงสุดจะถูก จำกัด โดยระบบปฏิบัติการ
สำหรับ Windows 7 ค่าสูงสุดคือ:
Windows Server 2008 มีตั้งแต่ 8GB สำหรับรายการระดับถึง 2TB สำหรับด้านบนของบรรทัด
ดูhttp://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspxสำหรับรายการแบบเต็ม
ข้อ จำกัด เหล่านี้ใช้เพื่อเหตุผลทางการตลาดเป็นหลัก ด้วยการ จำกัด รุ่นที่ราคาถูกกว่าจะทำให้รุ่นที่มีคุณภาพสูง
ฉันคิดว่าลินุกซ์บิลด์เมื่อเร็ว ๆ นี้ทำงานได้กับ RAM ขนาด 32TB ถึงแม้ว่าฮาร์ดแวร์บางตัวอาจไม่รองรับก็ตาม
เครื่อง 64 บิตควรสามารถระบุแอดเดรสที่สามารถกำหนดแอดเดรสได้สูงสุด 2 64หน่วย (ในสถาปัตยกรรมที่ออกแบบมาในช่วงสองสามทศวรรษที่ผ่านมา หากคุณกำหนด "กิกะไบต์" เป็น 2 หน่วยที่สามารถกำหนดแอดเดรสได้30 30ดังนั้นใช่ 2 34กิกะไบต์จะเป็นอีกวิธีหนึ่งในการแสดงจำนวนเดียวกัน
การค้นหาของ Google ใดที่สร้างผลลัพธ์เล็ก ๆ ที่น่าหัวเราะ? บางทีหน้าเว็บที่คุณพบกำลังพูดถึงจำนวน RAM ที่คุณสามารถซื้อในกล่องราคาถูกของรุ่นที่แน่นอน - คุณสามารถมี RAM ได้มากขึ้น (แน่นอนว่าแอดเดรสทั้งหมด) แม้ในกล่องที่ห่างไกลจากราคาแพงมาก .
ระบบปฏิบัติการสามารถ จำกัด จำนวนหน่วยความจำที่อยู่ได้อย่างแน่นอนที่สุด (ตัวอย่างเช่นพวกเขาสามารถทำได้โดย จำกัด ขนาดของหน้าตารางซึ่งอาจกำหนดได้สูงสุดที่กำหนดได้โดยการคอมไพล์ใหม่หรือกำหนดค่าระบบปฏิบัติการใหม่ - ยากที่จะ มีความเฉพาะเจาะจงมากขึ้นโดยไม่ต้องมุ่งเน้นไปที่กลุ่ม OS ที่เฉพาะเจาะจง )
คุณสามารถมี RAM ได้มากเท่าที่คุณต้องการ แต่ทุกอย่างขึ้นอยู่กับระบบปฏิบัติการและแอพพลิเคชั่นที่คุณใช้งาน
หากคุณกำลังใช้งานแอพพลิเคชั่นที่ใช้ CPU มาก ๆ และฮาร์ดแวร์อื่น ๆ เช่นฮาร์ดดิสก์ของคุณคุณควรพิจารณาซีพียูตัวที่สองในเครื่องแยกต่างหาก ตัวอย่างเช่นการรันแอปพลิเคชันฐานข้อมูลและเซิร์ฟเวอร์อีเมลทั้งสองเครื่อง
ไม่สำคัญว่าคุณมีหน่วยความจำเท่าไหร่ - ในตลาดทุกวันนี้ระบบทั้งหมดจะหยุดชะงัก ซีพียูเดี่ยวก็ไม่สามารถจัดการมัลติทาสกิ้งในแบบที่คุณคาดหวังได้
สำหรับเครื่องเดียวที่มีหน่วยความจำโหลดเยอะจะดีกว่า แต่ก็ไม่ได้ยอดเยี่ยมถ้าคุณมีแอพพลิเคชั่นหลายตัวที่ทำงานในระบบเดียวกันโดยไม่คำนึงถึงจำนวนหน่วยความจำที่ติดตั้ง นี่คือเหตุผลที่ว่าทำไม บริษัท ใหญ่ ๆ ไม่เพียง แต่ใช้สถาปัตยกรรม 64 บิตเพื่อจัดการกับหน่วยความจำมากขึ้น แต่พวกเขายังทำการโหลดจำนวนมากด้วยเซิร์ฟเวอร์สองเครื่องขึ้นไป
หากคุณจริงจังกับประสิทธิภาพการทำงานจริงๆแล้วไปที่ 64 บิต แต่ให้ลองพิจารณาการปรับสมดุลโหลดด้วยเซิร์ฟเวอร์ที่สอง
ฉันได้ไปตามถนนสายนั้นแล้ว - การกำหนดค่าเครื่องเดียวด้วย RAM สูงสุด แต่เมื่อใช้งานแอพพลิเคชั่นหลายตัวมันยังคงทำงานเหมือนสุนัข นั่นเป็นเพราะ CPU เองไม่สามารถจัดการได้
คำแนะนำของฉันคือการบันทึก bucks ของคุณในหน่วยความจำและซื้อเซิร์ฟเวอร์ที่สองแล้วโหลดทั้งสอง มันง่ายกว่ามาก ๆ บวกกับเมื่อคุณเข้าไปในที่จับแล้วมันจะขยายได้ง่ายเมื่อคุณต้องการพลังการประมวลผลและความเร็วที่มากขึ้น
นอกจากนี้เครื่องสถาปัตยกรรม 64 บิตสามารถรับมือกับซอฟต์แวร์ 32 บิตได้ แต่ด้วยเครื่อง 32 บิตคุณจะถูก จำกัด ให้ใช้เพียง 32 บิตหรือน้อยกว่าซึ่งรวมถึงระบบปฏิบัติการ
เนื่องจากตลาดทั้งระบบกำลัง 64 บิตทั้งในแง่ของฮาร์ดแวร์และซอฟต์แวร์ฉันขอแนะนำให้ใช้ 64 บิตในระยะยาว แต่ลืมความคิดในการบีบอัดข้อมูลทั้งหมดลงในเครื่องเดียวโดยมีหน่วยความจำเต็มถังเพราะคุณจะผิดหวัง
หากคุณไม่แน่ใจว่า "การปรับสมดุลโหลด" คืออะไร Google จะให้มัน
ฉันคิดว่ามันอาจใช้เวลามากกว่า exabyte "EB"
ดูโปรเซสเซอร์ 32 บิตตัวนี้ใช้เวลา 2 32 B = 4 GB แต่ส่วนใหญ่จะใช้เวลา 3 GB "เพราะพวกเขาเป็น 1 GB สำหรับที่อยู่ย้อนกลับ"
นั่นหมายความว่าโปรเซสเซอร์ 64 บิตสามารถใช้ 2 64 B = 16 EB ได้ แต่ฉันไม่สามารถระบุที่อยู่ที่ถูกล็อกเพื่อใช้งานแบบย้อนกลับได้ ดังนั้นเราจึงสามารถพูดได้ว่าโปรเซสเซอร์ 64 บิตใช้เวลามากกว่า 1 EB และสเปคนี้ไม่ได้ขึ้นอยู่กับระบบปฏิบัติการที่พีซีใช้หรือรุ่นของมัน
ยกตัวอย่าง 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 และอื่น ๆ ) จะมีข้อ จำกัด ที่แตกต่างกัน