Регистровое арифметико-логическое устройство

RALU содержит 17-битовое арифметико-логическое устройство (ALU), слово состояния программы (Program Status Word - PSW), главный программный счетчик (Master Program Counter - PC), регистр команд (Instruction Register), дешифратор команд (Microcode Engine), регистр констант (Constants), 3-битовый регистр выбора константы (3-Bit Select Register), счетчик циклов (6-Bit Loop Counter) и три временных регистра: старшего слова (Upper Word Register), младшего слова (Lower Word Register) и регистр второго операнда (2nd Operand Register). Все регистры, за исключением 3-битового регистра выбора, являются 16- или 17-битовыми (16 битов плюс расширение знака).

ALU ускоряет вычисления, сохраняя константы (0,1,2) в регистре констант, поэтому они легко доступны и эффективно используются при дополнении, приращении, уменьшении байтов или слов.

Слово состояния пpогpаммы состоит из 2-х байтов. Младший байт - это маска пpеpываний INT_MASK (см. Приложение). Стаpший байт - это сбоpка булевых флагов (ST, I, PSE, C, VT, V, N, Z, с восьмого по пятнадцатый бит сответственно), котоpые сохpаняют инфоpмацию относительно состояния пpогpаммы пользователя. Только байт пpеpываний INT_MASK может быть доступен пpямой адpесации. Hе существует SFR для флагов PSW.

Программный счетчик содержит адрес следующей команды и имеет встроенный инкремент адреса, который автоматически загружает адрес следующей выполняемой команды. Если переход, прерывание, вызов подпрограммы или возврат из подпрограммы изменяют последовательность адресов, ALU загружает соответствующий адрес в PC.

Регистры старшего и младшего слова используются совместно для 32-битовых команд и как временные регистры для большого количества команд. Так как они имеют собственную логику сдвига, RALU также использует их для операций, которые требуют логических сдвигов (например, нормализация, умножение и деление). Регистр младшего слова используется только тогда, когда сдвигаются двойные слова. Регистр старшего слова используется при любом типе сдвига.

Циклические сдвиги считаются 6-битовым счетчиком циклов.

В регистре второго операнда хранится второй операнд при выполнении команд с двумя операндами. Например, он хранит множитель во время выполнения умножения или делитель во время выполнения деления.

RALU связывается со всей памятью, за исключением регистрового файла, через контроллер памяти (он связывается с верхним регистровым файлом через контроллер памяти, за исключением того случая, когда используются вертикальные окна). Контроллер памяти содержит регистры адреса (Address Register) и данных (Data Register), 4-байтовую очередь команд (4-Byte Queue), подчиненный программный счетчик (Slave PC) и контроллер шины (Bus Controller). Контроллер шины управляет доступом к 4 областям памяти:
- 256-байтовому внутреннему ОЗУ (IRAM) (для кода или данных);
- 16 килобайтам ПЗУ (IROМ/ЕРRОМ), расположенным на кристалле;
- регистрам спецфункций периферийных устройств на кристалле;
- внешней памяти.

Контроллер шины получает запросы доступа к памяти или из RALU, или из 4-байтовой очереди команд с упреждением; запросы очереди имеют приоритет. Очередь прозрачна для RALU и пользователя. Когда контроллер шины получает запрос из очереди, он выбирает код адреса из подчиненного PC. Это увеличивает быстродействие выполнения, так как следующий байт команды доступен немедленно и процессор может не ждать пересылки адреса из главного PC в контроллер памяти. Если переход, прерывание, вызов подпрограммы или возврат из подпрограммы изменяют последовательность адресов, главный PC загружает новый адрес в подчиненный PC, очередь обновляется, и обработка продолжается.

Доступ к внешней памяти осуществляется через шину адреса/данных, которая может функционировать в 8- или 16-битовом режиме. Для поддержки многообразия конфигурации внешней памяти могут быть выбраны несколько сигналов управления шиной.

<<< Содержание >>>