2. 3. Модули за обработка на данни в CPU
На фиг. 2-2 са показани модулите за обработка на данни на серията 'C62x, а на фиг.2-3 - модулите за обработка на данни на серията 'C67x, които се състоят от:
Фиг.2-2.Модули за обработка на данни в CPU на TMS320C62x
Фиг.2-3. Модули за обработка на данни в CPU на TMS320C67x
Табл.2-1.Функционални устройства и изпълнявани
от тях операции
|
|
|
.L модул (.L1,.L2) | 32/40-битови аритметични
операции и сравнения
Нормализация на 32/40-битови числа 32-битови логически операции |
Аритметични операции
Преобразувания: DP® SP, INT® DP, INT® SP |
.S модул (.S1,.S2) | 32-битови аритметични
операции
32/40-битови премествания и 32-битови побитови операции 32-битови логически операции Разклонения Генериране на константи Трансфер от/към регистровия файл за управление (само .S2) |
Сравнения и извличане
на квадратен корен
Операции по абсолютна стойност Преобразуване SP към DP |
.M модул (.M1,.M2) | 16 х 16 бита умножение | Умножение на 32
х 32 бита
Умножение на операнди с плаваща запетая |
.D модул (.D1,.D2) | 32-битово събиране,изваждане,
линейно и кръгово изчисляване на адрес Зареждане и разполагане с 5-битово константно отместване Зареждане и разполагане с 15-битово константно отместване (само за .D2) |
Зареждане на двойна дума с 5-битово константно oтместване |
SP - число с единична точност
DP - число с двойна точност
INT - цяло число
2.3.3. Регистри за управление на TMS320C62x/C67x
Устройство .S2 може да чете и записва регистрите за управление, показани на фиг. 2-2 и фиг. 2-3. Таблица 2-2 показва отделните регистри за управление и функциите им. Всеки от регистрите за управление е достъпен чрез инструкцията MVC.
Табл.2-2.Регистри за управление
|
|
|
AMR | Регистър за режима на адресиране | Указва дали да се използва линейно или кръгово адресиране за всеки от осемте регистъра.Съдържа и размерите при кръгово адресиране. |
CSR | Регистър за статус и управление | Съдържа бит за общо разрешение на прекъсванията, битове за управление на кеша и други битове за управление и статус. |
IFR | Регистър за флаговете на прекъсвания | Отразява състоянието на прекъсванията. |
ISR | Регистър за установяване на прекъсвания | Позволява да се установят чакащи прекъсвания от потребителя. |
ICR | Регистър за изчистване на прекъсванията | Позволява на потребителя да изчиства чакащи прекъсвания. |
IER | Регистър за разрешение на прекъсванията | Позволява индивидуално разрешаване/забраняване на прекъсванията. |
ISTP | Указател към таблицата за обслужване на прекъсванията | Сочи началотo на таблицата за обслужване на прекъсванията. |
IRP | Указател за връщане от прекъсване | Съдържа адрес,който трябва да се използва за връщане от маскируемо прекъсване. |
NRP | Указател за връщане от немаскируемо прекъсване | Съдържа адрес,който трябва да се използва за връщане от немаскируемо прекъсване. |
PCE1 | Програмен брояч,фаза E1 | Съдържа адреса на пакет с инструкции за изпълнение във фаза 1. |
'C67x има три допълнителни конфигурационни
регистъра за поддръжка на операциите с
плаваща запетая (табл.2-3). Тези регистри определят желания режим на закръгляване
при операции с плаваща запетая за модулите .L и .M . Те съдържат също и
битови полета за сигнализиране на следните състояния:
- src1 и src2 не са нормализирани числа
- резултатът от операция предизвиква препълване,незапълване на разредната
решетка, когато е неточен, безкрайност или е невалиден.
Има и полета за сигнализиране на делене на нула или опит за непозволено
сравнение.
Tабл.2-3. Разширения на регистровия файл за управление на TMS320C67x
|
|
|
FADCR | Конфигурационен регистър за събиране с плаваща запетая | Определя режима на незапълване на разрядната решетка , режима на закръгляване, NaNs (невалидни числа) и други изключения за устройство .L . |
FAUCR | Конфигурационен регистър за междинни операции с плаваща запетая | Определя режима на незапълване на разрядната решетка , режима на закръгляване, NaNs (невалидни числа) и други изключения за устройство .S . |
FMCR | Конфигурационен регистър за умножение с плаваща запетая | Определя режима на незапълване на разрядната решетка ,режима на закръгляване, NaNs (невалидни числа) и други изключения за устройство .M . |
Всяко функционално устройство чете и записва директно
регистровия файл от съответния му модул за обработка на данни. Устройствата
.L1, .S1, .D1 и .M1 записват в регистров файл А, а устройствата .L2, .S2,
.D2 и .M2 записват в регистров файл В.
Всеки регистров файл е свързан с функционалните устройства на другия регистров
файл чрез магистрала (1X и 2X). Тези кръстосани
магистрали позволяват на функционалните устройства
от единия модул за обработка на данни
достъп до 32-битов операнд от регистровия файл на другия модул за
обработка на данни. Магистралата 1X позволява на
функционалните устройства от модул А за
обработка на данни да четат от регистровия файл В. Магистралата
2X позволява на функционалните устройства от модул В
за обработка на данни да четат от регистровия
файл А. Шест от функционалните устройства
имат достъп до регистровия файл на другата страна чрез такава
магистрала.
Входовете src2 на .M1, .M2, .S1, .S2
се мултиплексират между кръстосаните магистрали
и съответните на модулите
регистрови файлове. Входовете src1 и src2 на .L1 и .L2 се мултиплексират
по същия начин.
При 'C62x/C67x съществуват само две кръстосани
магистрали 1X и 2X. Това позволява
само едно функционално устройство от даден модул за обработка
на данни да чете от регистровия файл на другия модул за обработка на данни
по време на един такт или две кръстосани четения за един такт.
Има две 32-битови магистрали за зареждане
от паметта в регистровите файлове: LD1 за
регистров файл А, LD2 за регистров
файл В. Серията 'C67x има още по
една 32-битова магистрала за
всеки от регистровите файлове А и В, което
позволява на инструкцията LDDW едновременно да зареди два 32-битови регистъра
в страна А и два 32-битови регистъра
в страна В. Има и две 32-битови магистрали ST1 и ST2 за съхраняване
на съдържанието на регистрите в паметта.
Тези магистрали служат и за четене на 40-битови
данни от устройства .L и .S.
Адресните магистрали DA1 и DA2, показани
на фиг. 2-2 и фиг. 2-3, излизат от устройствата
.D. Те позволяват генерираните от единия регистров файл адреси
да се използват от другия регистров файл за четене и запис
в паметта. Обаче генерираните едновременно от .D1
и .D2 могат да се насочат към съответните им магистрали DA1 и DA2
или да се кръстосат, т. е. от .D1 към DA2 и от .D2 към DA1.