Как определить объем адресуемой памяти в байтах, зная биты для адреса операнда? - PullRequest
0 голосов
/ 29 октября 2019

Если я скажу 64-битную инструкцию, которая имеет 2 байта (16 бит) для кода операции и остаток для адреса операнда, я могу определить, что у меня есть 48 бит для адреса (64-16). Максимальное значение, которое может отображаться с 48 битами плюс 1 для учета адреса 0, - это мой номер перехода. Это было бы 2^48. Однако у меня есть проблема с пониманием этого в единицах iB.

2^48 - это 2^40 (TiB) x 2^8 = 256TiB. Но начиная с TiB = 2^40 БАЙТОВ , когда 2^48 стал БАЙТ ? Я обычно полагал, что для получения количества байтов мне придется разделить на 8, но, похоже, это не так.

Может кто-нибудь объяснить, почему это работает?

1 Ответ

0 голосов
/ 29 октября 2019

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

...