Що таке максимальна кількість оперативної пам'яті, яку можна теоретично помістити в 64-бітний комп'ютер?
Більшість людей оновлюється з 32-розрядних обчислень до 64-бітних обчислень, щоб пробити через 4 Гб оперативної пам'яті, але як далеко ви можете пробити цей ліміт після того, як ви ввійшли до 64-розрядних комп'ютерів?
Сьогоднішня сесія Питання та Відповіді приходить до нас люб'язно SuperUser - підрозділ Stack Exchange, групування веб-сайтів Q&A, орієнтованого на громаду. Зображення Петра Кратохвіля.
Питання
Читач SuperUser KingNestor цікавиться, скільки RAM 64-розрядного комп'ютера може містити:
Я читаю через книгу архітектури комп'ютера, і я бачу, що в процесорі x86, 32-бітному процесорі лічильник програм є 32-бітним.
Таким чином, кількість байтів, на які він може звертатися, становить 2 ^ 32 байти або 4 Гб. Так що для мене є сенс, що більшість 32-бітних машин обмежують кількість оперативної пам'яті до 4 Гб (не враховуючи PAE).
Я правий, припускаючи, що 64-бітна машина може теоретично адресувати 2 ^ 64 байта, або 16 exabytes барана?!
Ви говорите екзабайт? Тепер, тепер, не будемо жадібними. Ми будемо раді почати з терабайт або двох.
Відповідь
Відповіді на запит KingNestor є цікавим поєднанням практичних і теоретичних міркувань. Метт Бал скакує прямо з теоретичної відповіді:
Теоретично: 16,8 мільйонів терабайт. На практиці: корпус комп'ютера занадто малий, щоб відповідати всім цим оперативним пам'яттю.
http://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors
Конрад Дін входить до записки про те, наскільки цілком непрактично було б досягти максимального теоретичного обмеження оперативної пам'яті за допомогою сучасних технологій:
На додаток до відповіді Matt Ball, поточна найбільша палиця оперативної пам'яті, яку я можу знайти на одному конкретному інтернет-магазині, становить 32 ГБ. Для цього потрібно 32 з них, щоб досягти 1 терабайт. Приблизно на половину дюйма на палку це приводить нас до присвячених 16 дюймів місця на вашій материнській платі для терабайт комерційного барана. Щоб досягти 16,8 мільйонів терабайт, потрібно мати материнську плату 4,442.42 милі. Відстань від Лос-Анджелеса до Нью-Йорка складає близько 2141 миль, тому материнська плата буде розтягуватися по всій країні та назад, щоб розмістити стільки оперативної пам'яті..
Зрозуміло, це непрактично.
Як щодо того, щоб ми не поставили нашу оперативну пам'ять в один ряд, як на більшості материнських плат, а замість цього розмістили їх поруч. Я хочу сказати, що середня палиця барана становить близько шести дюймів у довжину, тому, якщо ми дозволимо половину дюйма для ширини, ви можете мати квадратну одиницю з 12 паличок барана на площі 6 дюймів. Назвемо цей квадрат RAM-плиткою. RAM-плитка потім містить 384 Гб оперативної пам'яті. Щоб досягти необхідних 16,8 мільйонів терабайт в 384 ГБ плитки, потрібно 44,8 мільйона плиток. Давайте будемо брудними, і використовуйте квадратний корінь, щоб зробити висновок, що це буде відповідати площі 6693 на 6694 плитки, або 13 386 на 13 388 футів, що досить близько до 2,5 футів в квадрат, достатньо, щоб покрити центр міста Сіетла в тіні, як ніби вони вже не мали достатньо, щоб поскаржитися.
Нарешті, Девід Шварц зазначає, що навіть теоретична межа заважається поточною архітектурою ЦП:
Зауважте, що жоден з 64-розрядних процесорів x86 не може цього зробити. Їх кеші не мають достатньої кількості бітів, їхні шини адреси не мають достатньої ширини і так далі. 46-біт (8TB) є максимальним для багатьох сучасних процесорів x86.
Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.