Я читал на моделях памяти в книге блока, которую я забрал, и у меня есть вопрос или два. Скажем, то, что адресная шина имеет 32 строки, шина данных имеет 32 строки, и ЦП является 32-разрядным (для простоты). Теперь, если ЦП выполняет запрос чтения и отправляет адрес на 32 бита, но только нуждается в 8 битах, все 32 бита возвращаются так или иначе? Кроме того, адреса в памяти все еще обращены на корректный байт? Таким образом, выбирающий один байт возвратил бы 0000 0001 для обращения 0000 0004?
В общем, да. Чтение части слова из автобуса ничего не дает, поэтому читается целое слово. Инструкции указывают, какие части слов им нужно фактически загрузить или сохранить в регистрах.
Тем не менее, в наши дни редко можно читать прямо из памяти. У процессоров есть кеши, с которыми вы взаимодействуете 99% времени, и когда данных нет в кеше, вводится целая строка (несколько слов), а затем вы все равно читаете из кеша.
Также обратите внимание, что многие современные процессоры фактически имеют 64-битные шины.
Вы действительно должны прочитать это: Что каждый программист должен знать о памяти