Яка максимальна кількість оперативної пам'яті, на яку теоретично може відповідати 64-бітова машина?


21

Я читаю книгу архітектури комп'ютера і бачу, що в процесорі x86, 32 біт лічильник програм - 32 біт.

Отже, кількість байтів, на які вона може адресуватись, становить 2 ^ 32 байти або 4 ГБ. Тому для мене є сенс, що більшість 32-бітних машин обмежують об'єм оперативної пам'яті до 4 Гб (ігноруючи PAE).

Я маю рацію припускати, що 64-бітова машина теоретично може адресувати 2 ^ 64 байти або 16 екзабайтів оперативної пам'яті ?!


4
Зауважте, що жоден існуючий 64-розрядний процесор x86 насправді не може цього зробити. У їх кешах недостатньо бітів тегів, їх адресні шини не мають достатньої ширини тощо. 46-біт (8 ТБ) - це максимум для багатьох сучасних процесорів x86.
Девід Шварц

4
Теоретично обмеження немає. Навіть 32-бітні процесори можуть мати адресний простір вище 4 Гб. Це залежить від того, як система управління пам’яттю реалізована в апаратному забезпеченні , яке зазвичай не залежить від довжини слова ЦП. Покажчики в програмах завжди мають довжину слова, але це віртуальні адреси в будь-якому випадку (а не фізичні), тому вони надалі відображаються в інший адресний простір.
Прорив

Це старе запитання зі старими відповідями, але я вважаю, що більшість схвалених відповідей на це питання є дуже оманливими, і вони відповідають на те, скільки оперативної пам’яті могла б мати машина з 64-бітовою адресою шини адрес . Як вказували Девід і Прорив вище, "біт" архітектури відображає розмір первинних регістрів, а не розмір шини адреси.
Себі

Чому б ви ігнорували PAE?
Джеймі Ханрахан

Відповіді:


28

Теоретично: 16,8 мільйона терабайт. На практиці: корпус комп'ютера трохи замалий, щоб вмістити всю цю оперативну пам’ять.

http://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors


13
Занадто мало .... сьогодні !!!!
snicker

2
16,777216 мільйонів тебібайт. Якщо ви хочете бути точними.
totymedli

Я читав в інших джерелах, що процесор не може використовувати кожен біт для доступу до пам'яті, це враховується у вашій відповіді?
Андрій

17

Щоб доповнити відповідь Метта Балла, найбільший накопичувач оперативної пам’яті, який я можу знайти в одному конкретному інтернет-магазині, становить 32 Гб. 32 з них потрібно, щоб досягти 1 терабайт. Приблизно півтора дюйма на паличку це приносить нам виділений 16 дюймів місця на вашій материнській платі для терабайт комерційного барана. Щоб досягти 16,8 мільйонів терабайт, материнській платі потрібно 4242,42 милі. Відстань від LA до Нью-Йорка становить приблизно 2141 миль, тому материнська плата буде розтягнута по всій країні і назад, щоб розмістити стільки оперативної пам’яті.

Очевидно, що це недоцільно.

Як щодо того, що ми не ставили нашу оперативну пам’ять все в один ряд, як на більшості материнських плат, а замість цього розміщували їх поруч. Я хочу сказати, що середня палиця барана становить близько шести дюймів, тож якщо ми допустимо півсантиметра на ширину, ви можете мати квадратну одиницю з 12 паличок баранів на 6 дюймовому квадраті. Назвемо цю площу RAM-плиткою. Потім RAM-плитка вміщує 384 Гб оперативної пам’яті. Для досягнення необхідних 16,8 мільйонів терабайт в плитках 384 ГБ потрібно 44,8 мільйона плиток. Будьмо безладним, і скористайтеся квадратним коренем для того, щоб зробити висновок, що це поміститься в квадраті площею 6693 на 6694, або 13 386 на 13 388 футів, що досить близько до квадрата в 2,5 милі, достатньо, щоб покрити центр міста Сіетл в тіні, ніби їм уже не вистачило скарги.


2
Занадто великий. Чому ви укладаєте їх плоско? Ви можете отримати все це в кубі 100 '. Напевно, вам знадобиться рідкий азот, щоб він охолоджувався!
Лорен Печтел

1
кількість азотного газу, яка кипить, становитиме небезпеку для безпеки для великих людей Сіетла
Conrad.Dean

Одне можливе виправлення. Оскільки плитка дорівнює 6 "на 6", це не зробить площу 3346,5 на 3347 футів (половина кількості плитки), а не цитовану 13,386, що вдвічі більше. Також ще одне питання, про яке, схоже, ніхто не згадував. Припустимо, найкраще розташування: коло, радіус повинен бути близько 1890 футів, щоб укласти необхідну площу. Як зазначив Адм, Грейс Хоппер, затримка передачі міді становить приблизно наносекунд / фут. Це означає, що затримка в зворотному напрямку до зовнішнього кільця складе ~ 3,78 мікросекунди. Це трохи на повільній стороні для основної пам'яті. IMEHO.
dgnuff

4

Ефективно, так - процеси теоретично можуть зайняти 2 ^ 64 байти пам'яті. Але, як ви вказали, існують шляхи подолання цієї межі.


3

Не існує особливої ​​фіксованої залежності між розміром біта процесора та кількістю адресної пам'яті. Більшість 8-бітних машин кінця 1970-х років могли легко отримати доступ до 65 536 байт, 16-бітні 8088 та 8086 могли отримати доступ до 1,048,576 байт безпосередньо. Крім того, можна додати апаратне забезпечення, яке дозволяє машинам непрямо отримувати доступ до будь-якої кількості ОЗУ; багато машин з 8-бітовими процесорами мали 128 Кб або більше, а блоки розширення пам’яті для ПК на базі 8088 могли отримати доступ понад 16 мег. Хоча Microsoft увімкнула таку функцію лише у "серверних" версіях Windows, для 32-бітного коду можна було отримати доступ до пам'яті за межами позначки 4GiB, використовуючи аналогічні підходи.


2

Ви були б правильні. Ви можете адресувати до 16 екзабайтів оперативної пам’яті. Тепер .. чи може операційна система впоратися з цим було б інше питання ....


2

Було б також добре зазначити, що операційна система має власне обмеження щодо пам’яті в 64-бітній архітектурі.

Наприклад, подивіться, що в Вікіпедії написано про Windows Vista 64:

Всі 64-бітні версії операційних систем Microsoft наразі встановлюють обмеження в 16 ТБ на адресний простір. Процеси, створені в 64-розрядних версіях Windows Vista, можуть мати 8 ТБ у віртуальній пам'яті для користувачів-процесів і 8 ТБ для процесів ядра для створення віртуальної пам'яті в 16 ТБ. [29] Що стосується фізичної пам’яті, Windows Vista 64-бітний Basic підтримує до 8 ГБ оперативної пам’яті, 64-розрядна операційна пам’ять Windows Vista підтримує до 16 ГБ оперативної пам’яті, а 64-розрядна операційна система Windows Vista підтримує до 128 ГБ оперативної пам’яті. [8]


Уточнені деталі для Windows: msdn.microsoft.com/en-us/library/windows/desktop/aa366778.aspx
Арьян

1

Найбільша перевага для 64 біт - це не оперативна пам'ять, якою вона може адресуватись, а все інше. Наприклад, ви можете визначити адресу кожного байта на диску, і збільшення ємності диска не призведе до недійсності протягом десятиліть.


Звичайно, оскільки поточні процесори мають цей адресний простір штучно обмеженим, може пройти лише десятиліття, перш ніж вже не вистачить бітів для адреси кожного байта на диску. Сподіваємось, що на цьому етапі ліміти будуть підвищені, оскільки шлях SSD-дисків, завдяки чому весь диск виглядає як розділ пам'яті, може значно підвищити продуктивність. Я б не проти підключити SSD до слота оперативної пам'яті замість кабелю SATA!
Malvineous

@Malvineous Я говорив про щось більш фундаментальне, навіть якщо ви обмежилися 63 бітами, можна безпосередньо звернутися до 9223372 ТБ. А SSD у слоті оперативної пам’яті вже є, див. Sandisk .
Позначте викуп

Я з вами не погоджувався, я просто вказував, що в сучасних технологіях існують штучні обмеження щодо того, що ви пропонуєте (наприклад, лише 48 або 51 біт адреси, винесеної на фізичну шину). Якщо ці DIMM-SSD накопичуються, ми можемо втратити адреси пам'яті раніше, ніж ви пропонуєте, якщо тільки ці штучні обмеження не можна буде підвищити або зняти. Я погоджуюся, якби було доступно повних 64-бітових версій, то це пройшло б десятиліттями, перш ніж це стане проблемою.
Malvineous

Тільки для запису я переглянув посилання SanDisk UlltraDIMM, але, на жаль, це технічно не SSD-як-ОЗУ. Це 6Gbps SATA SSD, з адаптером DDR3-SATA, що дозволяє йому отримувати доступ, як ніби це пам'ять. Додаткове перетворення запитів на пам'ять у протокол SATA вносить деяку затримку і здається трохи безладним. Сподіваємось, хтось побачить користь від цього і незабаром випустить справжній інтерфейс пам’яті, щоб миготіти без зайвих адаптерів між ними!
Malvineous

0

Більшість сучасних процесорів сьогодні мають якусь штучну межу щодо розміру адреси. Наприклад, архітектура AMD64 має 52-бітове обмеження фізичної пам'яті і на даний момент підтримує лише 48-бітний віртуальний адресний простір. (Через Вікіпедію). Однак так, фізично можливо 16,4 мільйонів терабайт.


-1

за реалістичну фізичну відповідь 1536 Гб із 48 оперативними картками, що управляють 32 ГБ одиночними палицями та 4 x lga2011 ксеонами

це для ПК-есаїста, який хтось може придбати, не порушуючи прихованих хардкор-северів, думаю, терези 64 Гбіт одиночних стиків приносять .... 3072gb 128gb be 6144gb 256gb be 12288gb

просто викинути туди, що є способи подолати обмеження os за допомогою оперативної пам'яті, якщо ур ОС може бачити лише 4 ГБ оперативної пам'яті, перетворити залишок на таранний диск і використовувати диск для оперативної пам’яті як файл сторінки XD XD XD XD просто питання створення передзавантаження ОС Система якась така симультанна річ була зроблена ще в перші дні дос / windows 3.11 тощо

і можуть бути інші маленькі хаки для подолання обмежень на процесор

Шестерня ми можемо побачити хіба що Ватс там є більш потужний матеріал, у мене був ПК із 98, що працює на 8 процесорах, і щось таке, як 32 ГБ оперативної пам'яті, але це дорогі сервіси привітного кінця

Я дивлюся на сервери як настільні комп’ютери, тому що їм нудні комп'ютери для загальнодоступних XD

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.