При использовании ALU и умножителя для многофункциональных вычислений каждый из четырех входных операндов ограничен своим набором из четырех регистров регистрового файла (см. ниже рис.2.9). Например, операнд X в ALU может быть только R8, R9, R10 или R11. Во всех других операциях входной операнд может быть любым регистром регистрового файла.
Двойное сложение/вычитание
Ra=Rx+Ry, Rs=Rx-RyFa=Fx+Fy, Fs=Fx-Fy
Умножение/накопление и сложение, вычитание или усреднение с фиксированной точкой
Ra = RH-8 + R15-12 Ra = Rll-8-R15-12 Ra = (Rll-8 + R15-12) /2
Rm = R3-0 * R7-4 (SSFR) MRF = MRF + R3-0 * R7-4 (SSF) Rm = MRF + R3-0 * R7-4 (SSFR) MRF = MRF - R3-0 * R7-4 (SSF) Rm = MRF - R3-0 * R7-4 (SSFR)
Умножение и операция ALU с плавающей точкой
Fm = F3-0 * F7-4,Fa = FH-8 + F15-12
Fa = Fll-8-F15-12
Fa = FLOAT Rll-8 by R15-12
Ra = FIX Fl 1 - 8 by R15-12
Fa = (Fll-8 + F15-12) /2
Fa = ABSFH-8
Fa = MAX (Fll-8, F15-12)
Fa = MIN (FH-8, F15-12)
Умножение и двойное сложение/вычитание
Rm = R3-0 * R7-4 (SSFR), Fm = F3-0 * F7-4,Ra = Rll-8 + R15-12, Fa = FH-8 + F15-12,Rs = Rll-8-R15-12 Fs = FH-8-F15-12
Rm, Ra, Rs, Rx, Ry - любой регистр регистрового файла; операнд с фиксированной точкой Fm, Fa, Fs, Fx, Fy - любой регистр регистрового файла; операнд с плавающей точкой
SSFR - операнд Х знаковый, операнд Y знаковый, дробные входные данные, результат округлен к ближайшему
SSF - операнд X знаковый, операнд Y знаковый, дробные входные данные
Регистровый файл обеспечивает интерфейс между внутренними шинами данных процессора и вычислительными устройствами. Он также служит для хранения операндов и локальных результатов. Регистровый файл состоит из 16 первичных и 16 дополнительных (вторичных) регистров. Все регистры - 40-разрядные.32-разрядные данные из вычислительного устройства всегда выравниваются влево; при считывании регистра 8 младших разрядов игнорируются, при записи - заполняются нулями.
Обмен данными между памятью программы или памятью данных с регистровым файлом происходит по шине данных памяти программы (РМ) и по шине данных памяти данных (DM) соответственно. Одно обращение по шине данных РМ и по шине данных DM может происходить за один цикл. Между регистровым файлом и 40-разрядной шиной данных DM всегда передается 40-разрядное слово. Регистровый файл передает данные по 48-разрядной шине данных РМ в 40 старших разрядах, заполняя нулями младшие.
Если один и тот же регистр регистрового файла определен как источник операнда и как место помещения результата или выборки данных из памяти, то считывание происходит в первую половину цикла, а запись - во вторую. Т.о., старые данные используются как операнды перед тем, как регистр обновляется новыми данными результата. Если осуществляется несколько записей в один тот же регистр регистрового файла одновременно, то запись происходит в соответствие с приоритетом операций. Реально запишутся данные операции с наивысшим приоритетом. Приоритет операций определяется источником записываемых данных. Ниже перечислены устройства в порядке уменьшения приоритета:
память данных или универсальный регистр;
память программы;
ALU;
умножитель;
устройство сдвига.
Один и тот же регистр в регистровом файле начинается с префикса F (в исходном коде ассемблера), когда он используется в вычислениях с плавающей точкой. И начинается с префикса R, когда используется в вычислениях с фиксированной точкой. Например, следующие команды используют одни и те же регистры:
FO=F1 * F2; умножение с плавающей точкой R0=R1 * R2; умножение с фиксированной точкой
Префиксы F и R не влияют на передачу 32-разрядных (или 40-разрядных) данных; они только определяют, как ALU, умножитель, или устройство сдвига обрабатывают данные. F и R могут быть прописными и строчными; в ассемблере не учитывается регистр клавиатуры.
Для облегчения быстрого контекстного переключения в регистровом файле имеется дополнительный набор регистров. Каждая половина регистрового файла: младшая - R0-R7 - и старшая - R8-R15 - может независимо подключать свой дополнительный набор. Активный набор определяется двумя битами в регистре MODEL Бит M0DE1 Имя
Описание:
7SRRFH дополнительный набор регистрового файла выбран для R15-R8 (F15-F8) 10SRRFL дополнительный набор регистрового файла выбран для R7-R0 (F7-F0). Замечание: после установки бита в регистре MODE1 дополнительный набор регистров становится доступным через один цикл. Например: BIT SET MODE1 SRRFL; /* активизация дополнительных регистров */ NOP; /* ожидание, пока активизируются */ /* дополнительные регистры */ R0=7.