Что такое байт?
Байт - это блок памяти для хранения, а микросхема памяти заполнена такими байтами. Блоки памяти являются адресуемыми. Это единственный способ, которым мы можем использовать память.
В реальности память адресуется только в байтах. Это означает, что двоичный адрес всегда указывает только на один байт. Слово - это просто группа байтов - 2, 4, 8 в зависимости от размера шины данных ЦП.
Как нужно понимать ?
Чтобы полностью понять работу с памятью, вы должны быть знакомы с различными регистрами ЦП и портами памяти ОЗУ. Я предполагаю, что вы знаете значение «регистр адреса памяти MAR», «регистр данных памяти MDR», «регистр счетчика программ ПК», «регистр буфера памяти MBR». ОЗУ имеет два порта памяти: 32-битный для данных / адресов, 8-битный для OPCODE.
Предположим, что CPU хочет прочитать слово (скажем, 4 байта) с адреса xyz и далее. CPU поместит адрес в MAR, отправит сигнал считывания памяти на чип контроллера памяти. При получении адреса и сигнала чтения контроллер памяти подключит шину данных к 32-битному порту, и 4 байта, начиная с адреса xyz, будут выходить из порта в MDR.
Если процессор хочет извлечь следующую инструкцию, он поместит адрес в регистр ПК и отправит сигнал выборки в контроллер памяти. При получении адреса и сигнала выборки контроллер памяти будет подключать шину данных к 8-битному порту, и однобайтовый длинный код операции, расположенный по полученному адресу, будет вытекать из ОЗУ в MDR ЦП.
Вот что это значит, когда мы говорим, что определенный регистр является «адресуемым в памяти» или «адресуемым байтом». Теперь, что произойдет, если вы поставите, скажем, десятичную 2 в двоичном виде на MAR с намерением прочитать «слово» 2, а не (байт № 2)?
Слово № 2 означает байты 4, 5, 6, 7 для 32-битного компьютера. На самом деле физическая память адресуется только в байтах. Так что есть хитрость для обработки «адресации слов».
Когда MAR размещен на адресной шине, его 32 бита не отображаются на 32 адресные линии 0-31 соответственно. Вместо этого бит 0 MAR связан с адресом шины 2, бит 1 MAR связан с адресом шины 3 и так далее. Старшие 2 бита MAR отбрасываются, так как они нужны только для слов с адресом выше 2 ^ 32, ни один из которых не подходит для нашей 32-битной машины.
Используя это отображение, когда MAR равен 1, адрес 4 помещается на шину, когда MAR равен 2, адрес 8 помещается на шину и так далее.