Меня сбивает с толку ситуация, когда у меня 4 ГБ адресного пространства ЦП и 4 ГБ оперативной памяти.
Теперь можно ли отобразить все эти 4 ГБ оперативной памяти в адресное пространство ЦП, и если да, то где будут отображаться регистры периферийных устройств в адресном пространстве ЦП?
Существуют ли ограничения на объем оперативной памяти, который может быть отображен в 32-битном адресном пространстве ЦП?
решение1
Я думаю, вы на правильном пути и по сути уже ответили на свой вопрос. 32-битный процессор может адресовать 4 294 967 296 ячеек памяти. 4 ГБ ОЗУ — это в общей сложности 4 294 967 296 байт, так как же процессор может получить доступ ко всей этой памяти и при этом иметь адресное пространство для доступа к оборудованию (регистры не отображаются в ячейки памяти)? Ну, не может. Он просто игнорирует часть ОЗУ и отображает игнорируемые адреса на ввод-вывод. Вот почему вы никогда не увидите полных 4 ГБ ОЗУ на 32-битной машине/ОС.