Я работаю над этим для домашней работы, и, кажется, все мои одноклассники и различные онлайн-источники говорят, что простое вычисление 2 ^ 24-бит приводит к ~ 16 000 000 байтов вместо битов. Почему это? Насколько я понимаю, ответом будет ~ 16 000 000 битов, которые будут преобразованы в ~ 2 000 000 байтов, потому что 1 байт равен 8 битам.
2 ответа
Как говорит @DragonLord, это потому, что вы не можете адресовать отдельные биты; каждый адрес указывает на начало байта, и все операции работают как минимум с одним байтом.
Точно так же, если бы к машине обращались по словам (как это было в прошлом), объем памяти также был бы выражен аналогично:
Базовая конфигурация PDP-8 имела основную память из 4096 двенадцатибитовых слов
Другая причина адресации байтов, а не битов, заключается в том, что это также дает немедленное увеличение объема данных, которые могут быть сохранены и доступны. Это также улучшает общую пропускную способность памяти, поскольку данные всегда извлекаются из памяти в виде нескольких байтовых блоков, а не побитно. Доступ к памяти по одному биту за раз неэффективен, если вы знаете, что минимальный полезный блок, который вам понадобится для выполнения чего-либо полезного, - это один байт.
Даже тогда, когда у компьютеров было небольшое количество памяти и малое количество адресов, возможность извлекать байт за раз была бы повышением производительности, а доступ к 16 мегабайтам означал бы создание гораздо более крупных программ, чем если бы у вас было только доступ к 16 мегабитам (2 мегабайта) памяти.