-2

Простите за наивность, чтобы задать этот вопрос.

Как 4 ГБ могут быть равны 32-битному адресу памяти? Если я не ошибаюсь, 4 ГБ * 1024 * 1024 * 1024 = 4 294 697 296 байт ячеек памяти. Итак, почему мы не умножаем это на 8, чтобы привести его к битам, при условии, что 1 байт = 8 бит.

1 ответ1

2

Потому что нет смысла обращаться к памяти постепенно. Гораздо быстрее и эффективнее запрашивать байт памяти сразу, чем запрашивать каждый бит по отдельности.

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

Учитывая, что вам потребуется 8-кратная задержка для получения полного байта пригодных для использования данных, если вы используете битовую адресацию, это приводит к неоправданному количеству дополнительной работы и задержке при получении данных. Все время, пока вы ожидаете получения битов данных, ваша программа фактически останавливается.

Используя более крупную базовую единицу (байт), мы сокращаем время доступа к данным на порядок меньше и переносим больше полезных данных одновременно.

Это было бы первоначальной причиной выбора адресации памяти с использованием байтов.

Мы по-прежнему используем байтовую адресацию ради простоты, это все еще очень полезный небольшой блок данных, но современная память теперь передает большие блоки данных в пакетах для поддержания производительности, поскольку мы вышли за пределы точки, в которой передача отдельных байтов является " эффективным».

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