Почему адресное пространство 32-битного процессора 4Gibibytes, а не 4Gibibits?

32-битный регистр может хранить 232 различных значения. Диапазон целых значений со знаком, которые можно сохранить в 32 битах, составляет от -2 147 483 648 до 2 147 483 647 (без знака: от 0 до 4 294 967 295). Следовательно, процессор с 32-битными адресами памяти может напрямую обращаться к 4 Гбайт байтово-адресуемой памяти.

https://en.wikipedia.org/wiki/32-bit

Что меня смущает, так это то, что мы говорим о 32- битном процессоре, который может адресовать 2^32 разных адреса. Но теперь 2^32 в байтах, а не битах, почему?

2 ответа

Решение

Наименьшая адресуемая единица в памяти - это байт (существуют исключения из этого правила, но вы спрашивали конкретно о x86). Поэтому, если ваши адреса N-битные, вы можете представлять 2^N разных адресов, что означает, что вы можете адресовать 2^N отдельных байтов.

Каждый уникальный адрес указывает на байт памяти в карте адресов, а не бит. Другими словами, память адресуется в байтах, поэтому 32 бита могут адресовать 4 Гбайт.

Другие вопросы по тегам