Если процессору необходимо прочитать слово по нечетному адресу, то он сделает это за 2 обращения к основной памяти(сначала младший байт по нечетному адресу и старший байт по четному). Эта проблема носит название проблема перестановки байт.
Нарисуем эти 32 бита и разделим на 4 адреса.
Так вот если у нас по любому адресу с точностью до байта младший байт будет располагаться в том месте куда заводиться в регистр команд. Схема ЗУ следующая
Этот демультиплексор, в зависимости от двух младших разрядов адреса, выполнит маршрутизацию с нужного места 32 слова в этот регистр команд. Возникает интересная проблема: для того чтобы выполнить 4 последовательно расположенные команды мы гарантировано 4 раза читаем из основной памяти одно и тоже слово по такой схеме. Это приводит к неэффективному использованию системного интерфейса. Поэтому для решения такой проблемы делается очередь команд, которая представляет собой сдвиговый регистр который заполняется всякий раз, когда читается полное слово из основной памяти, а потом команды побайтно сдвигаются в регистр команд.
Каждая 4-я команда вызывает обращение к основной памяти.
Допустим у нас не команды байтовые, а имееются данные 32 разрядное слово расположенные по адресу не кратному 4. В этом случае основная память может поставить данные, которые расположены начиная с 0 адреса по 3, причем этот 0 адрес есть остаток от деления адреса на 4. И поэтому чтобы взять тот операнд, который находится по адресу не кратному 4 нам все равно необходимо сделать 2 обращения к памяти, потому что основная память по схеме, что мы нарисовали не выполняет эту комутацию перестановку байт. Поэтому все процессоры должны содержать схему, которая обнаруживает что требуемая порция данных не находится по адресу кратному 4 и если это так то произвольное обращение к памяти реализовывать за 2 цикла. В 1 цикле читается, то что находится в предыдущем слове ту часть маршрутизируется в младшую часть нашего опреанда.
Так вот получается что если требуемые данные у нас находятся по адресу не кратному 4, то мы должны сначало прочитать 1 часть этого данного, занести его в тот регистр, где это данное будет подготовлено, а потом за 2 обращение прочитать вторую часть, но при этом происходит перепутывание трассы доставки этих данных в этот регистр которой занмается специальный мультиплексор. Сколько разрядов адреса столько и перепутывания. Такие сложные решения для RISC архитектуры не годятся, поэтому там решают эту проблему следующим образом: младшие 2 разряда вообще не выводят из процессора; это означает, что все данные могут находится на границе слова.То есть, вывод следующий: для решения проблемы перестановки байт в RISC архитектуре данные могут располагаться только на границе слова. Это значит, что 2 младших разряда адреса А0-А1 во внешних схемах не используются.
