Сколько бит нужно для того, чтобы адресовать столько памяти? - PullRequest
2 голосов
/ 25 сентября 2011

Я изучаю основы программирования, и в настоящее время я нахожусь в главе, где говорится об организации компьютера и операциях с битами - как работает процессор (ALU, CU, регистры и т. Д.).

У меня довольно хорошее понимание бинарного языка.Я понимаю формат знака / величины / дополнение 1, дополнение 2 и т. Д.

В книге я узнал, что полубайт = 4 бита, 8 бит = 1 байт, следующее слово - обычно в группах: 8 бит, 16 бит, 32 бита или 64 бита (и так далее), и все это имеет смысл для меня.Вот мой домашний вопрос, который меня немного смущает:

"Компьютер имеет 64 МБ памяти, каждое слово составляет 4 байта. Сколько бит требуется для адресации каждого отдельного слова в памяти?"

Ну, я сейчас в замешательстве.Книга только что сказала мне, что слово, как правило, кратно 8. Однако я знаю, что 1 байт = 8 бит, поэтому, поскольку имеется 4 байта и 1 байт = 8 байтов, было бы правильно думать, что 4 байта x 8 бит= 32 бита?Это ответ?

Ответы [ 3 ]

5 голосов
/ 25 сентября 2011

1-битный адрес может содержать два слова (0, 1).

2-битный адрес может содержать четыре слова (00, 01, 10, 11).

3-битный адрес может адресовать восемь слов (000, 001, 010, 011, 100, 101, 110, 111).

Итак, первый ответ: сколько у вас слов? Затем ответьте: сколько бит нужно вашему адресу для их адреса?

3 голосов
/ 25 сентября 2011

64MB = 67108864 байта / 4 байта = 16777216 слов в памяти, и, таким образом, каждое отдельное слово может быть адресовано в 24 битах (первое слово имеет адрес 000000000000000000000000, а последнее имеет адрес 111111111111111111111111)Также значение 2 повышается до 24 = 16777216, поэтому для адресации каждого слова в памяти требуется 24 бита.

Требуется представить каждое слово в памяти с помощью адреса в битах таким образом, чтобы каждый икаждое слово может быть представлено.

Например, чтобы представить 4 слова, вам нужно 4 адреса, 2 поднятых до 2 - это 4, поэтому вам нужно два бита.00 - адрес первого слова, 01 - адрес второго слова, 10 - адрес третьего слова и 11 - адрес 4-го слова.

Для 8 слов вам нужно 8адреса, а от 2 до 3 равно 8, поэтому необходимо 3 бита.000, 001, 010, 011, 100, 101, 110, 111 - это 8 адресов.

2 голосов
/ 25 сентября 2011

1 байт = 8 битов, так как имеется 4 байта и 1 байт = 8 битов Было бы правильно думать, что 4 байта x 8 битов = 32 бита? быть ответом ???

Нет, это не ответ. Если на вашем компьютере 64 МБ памяти, а каждое слово занимает 4 байта, сколько слов в вашей памяти? Сколько бит вам нужно для адресации каждого слова (биты, необходимые для представления числа от 0 до количества слов - 1).

...