Большинство людей модернизируются от 32-разрядных вычислений до 64-разрядных вычислений, чтобы выполнить пропускную способность RAM 4 ГБ, но какдалеко можете ли вы пробить этот предел, как только вы войдете в сферу 64-битных компьютеров?
Сегодня сессия вопросов и ответов приходит к нам с любезностью подразделения SuperUser под управлением Stack Exchange, основанной на сообществах групп вопросов и ответов. Изображение Петра Кратохвила.
Вопрос
Считыватель SuperUser KingNestor интересуется, сколько оперативной памяти может хранить 64-битный компьютер:
I’m reading through my computer architecture book and I see that in an x86, 32bit CPU, the program counter is 32 bit.
So, the number of bytes it can address is 2^32 bytes, or 4GB. So it makes sense to me that most 32 bit machines limit the amount of ram to 4gb (ignoring PAE).
Am I right in assuming that a 64bit machine could theoretically address 2^64 bytes, or 16 exabytes of ram?!
Exabytes вы говорите? Теперь, теперь, давайте не будем жадными. Мы будем рады начать с терабайта или двух.
Ответ
Ответы на запрос KingNestor - интересное сочетание практических и теоретических соображений. Мэтт Болл прыгает прямо с теоретическим ответом:
Theoretically: 16.8 million terabytes. In practice: your computer case is a little too small to fit all that RAM.
https://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors
Конрад Дин вскакивает с запиской о том, как совершенно непрактично было бы максимизировать теоретический предел RAM с использованием сегодняшней технологии:
To supplement Matt Ball’s answer, the current largest stick of RAM I can find on one particular online retailer is 32GB. It would take 32 of these to reach 1 terabyte. At about a half inch per stick this brings us to a devoted 16 inches of space on your motherboard for a terabyte of commercial ram. To reach 16.8 million terabytes would require a motherboard 4,242.42 miles. The distance from LA to NYC is about 2141 miles, so the motherboard would stretch across the country and back to accomodate that much RAM.
Clearly this is impractical.
How about we didn’t put our RAM all in one row like on most motherboards, but instead placed them side-by-side. I want to say the average stick of ram is about six inches long, so if we allow a half an inch for width, you can have a square unit of 12 sticks of ram in a 6 inch square. Let’s call this square a RAM-tile. A RAM-tile then holds 384GB of RAM. To reach the required 16.8 million terabytes in 384GB tiles would take 44.8 million tiles. Let’s be messy, and use square root of that to conclude that this will fit in a square of 6693 by 6694 tiles, or 13,386 by 13,388 feet, which is close enough to 2.5 feet squared, enough to cover downtown Seattle in shadow, as if they didn’t already have enough to complain about.
Наконец, Дэвид Шварц отмечает, что даже теоретический предел увязывается текущей архитектурой процессора:
Note that no existing x86 64-bit processor can actually do this. Their caches don’t have enough tag bits, their address buses don’t have enough width, and so on. 46-bits (8TB) is the maximum for many modern x86 CPUs.
Есть что добавить к объяснению? Звучит в комментариях. Хотите узнать больше ответов от других пользователей Windows? Посмотрите здесь полную дискуссионную тему.