Я вижу, что есть много мест, упоминающих ограничение ОЗУ 16 EB ... Однако разве современный регистр не 64-битный? и если да, то 2 ^ 64 должно указывать на количество возможных регистров, и, поскольку каждый из них составляет 8 байтов, фактический предел должен составлять 128 EB ((2 ^ 64) * 8 байтов). Пример: 32 бита поступают на один декодер 32X (2 ^ 32), а остальные 32 бита - на другой 32X (2 ^ 32) декодер, чтобы включить правильные провода в каждом декодере и, следовательно, получить доступ к определенному регистру (2 ^ 32) ^ 2 доступных регистра, каждый из которых имеет 64-битные данные (для сохранения 64-битной шины).

Очевидно, что я либо что-то упустил, либо есть странный шанс, что я прав, и 16 EB - это не предел ...

2 ответа2

1

В 32-разрядной архитектуре указатели содержат 32 (используемых) бита и могут адресовать 2 ^ 32 (= 4294967296) различных адресов. Каждый адрес указывает на байт, поэтому ваше адресное пространство составляет 4294967296 байт или 4 ГиБ.

В 64-разрядной архитектуре действует тот же аргумент: вы можете адресовать 2 ^ 64 разных адресов, и каждый адрес указывает на байт, поэтому ваше адресное пространство имеет размер 2 ^ 64 байта, что в точности равно 16 EiB.

Однако обратите внимание, что на (текущем) x86_64 указатели имеют только 48 используемых адресных битов, чтобы сэкономить немного кремния. Попытка получить доступ к недопустимым адресам приведет к исключению процессора, так как он не реализует другие биты. Однако архитектура будет расширена, когда дополнительная память станет практичной.

0

Хорошо, я исследовал дальше, и кажется, что регистр адресов указывает на 8-битные регистры (байтово-адресуемые), и если данные слишком велики, чтобы их можно было хранить в одном байте, остальная часть помещается в последовательные адреса ... Тем не менее, существуют типы ОЗУ, которые имеют больший регистр на адресное место (адресуемый словом), что увеличило бы объем памяти ОЗУ, но заставило бы ЦП разделить "слово" на несколько отдельных байтов, если требуется ASCII. ... если бы современные компьютеры были созданы с использованием этого метода, емкость увеличилась бы в 8 раз для 64-битного регистра, но потребовала бы больше обработки и большего количества кода для управления значениями, чтобы разделить их или сохранить их вместе ... Спасибо за помощь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .