А. В. Комаров цифровые сигнальные процессоры

Вид материалаДокументы
1.5. Функциональная схема ALU
1.6. Функциональная схема МАС
1.7. Функциональная схема SHIFTER
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   26

Таблица 1.1


Выбор номера оверлея с помощью содержимого РСН PMOVLAY

PMOVLAY

Память

ADDR13

ADDR[12:0]

0

Внутренняя





1

Внешний оверлей 1

0

13 младших битов

адреса формируют коды 0х0000…0x3FFF

2

Внешний оверлей 2

1

Тоже самое


Табл. 1.1 показывает, что в PMOVLAY хранится номер банка (оверлея) программ, а адресный бит ADDR13 является селектирующим (наряду с PMS# (см. п. 1.1)). Следует проявлять осторожность при использовании оверлейной памяти. Возможно, в ней лучше всего держать подпрограммы, которые вызываются из программы, функционирующей во внутренней ПП.




Если MMAP = 1, то 8К младших адресов принадлежат внешней памяти (см. рис. 1.4 б). Обычно, это ПЗУ, поэтому загрузка программы во время старта не нужна. Старшие 8К адресов принадлежат внутренней оперативной памяти, а содержимое PMOVLAY не может отличаться от нуля.


1.4. Память данных


ПД представляет собой ОЗУ объемом 16352 х 16. Кроме этого возможно использование 8К х 16 внешней памяти оверлеев. При использовании этой памяти всегда вставляются такты ожидания, число которых определяется содержимым битовой группы DWAIT регистра Data Memory Waitstate Register (РСН, расположенный в ПД по адресу 0х3FFE, см. п. П1.2).

Организация адресного пространства ПД (рис. 1.5) управляется содержимым программно доступного РСН DMOVLAY. Как показывает рис.1.5, с помощью DMOVLAY можно сменить размещение только млад­ших 8К адресов ПД. Если DMOVLAY = 0, то они назначены на внутреннюю память, а если DMOVLAY = 1 или 2, то – на внешнюю ПД процессора. Табл. 1.2 показывает выбор номера оверлея с помощью содержимого РСН DMOVLAY.


Таблица 1.2


Выбор номера оверлея с помощью содержимого РСН DMOVLAY

DMOVLAY

Память

ADDR13

ADDR[12:0]

0

Внутренняя





1

Внешний оверлей 1

0

13 младших битов

адреса формируют коды 0х0000…0x3FFF

2

Внешний оверлей 2

1

Тоже самое


Табл. 1.2 показывает, что в DMOVLAY хранится номер банка (оверлея) данных, а адресный бит ADDR13 является селектирующим (наряду с DMS# (см. п. 1.1)).




Старшие 8К адресов всегда принадлежат внутренней оперативной памяти, причем, старшие 32 ячейки используются в качестве РСН (см. пп. П1.1-П1.16).


1.5. Функциональная схема ALU


Основу ALU (рис. 1.6) составляет собственно ALU, которое выполняет арифметико-логические операции (см. п. 1.17.5) над 16-битными кодами, присутствующими на его Х- и Y- входах. Результат операции появляется на 16-битном выходе R(esult) и может быть запомнен в регистре результата AR (через мультиплексор MUX 4) или в регистре обратной связи AF (Alu Feedback).

Кроме этого ALU формирует различные признаки (флаги, см. п. 1.10) результата, в частности: флаг нуля AZ (Alu Zero), флаг отрицательного результата AN (Alu Negative), флаг переноса AC (Alu Carry), флаг переполнения AV (Alu oVerflow), флаг знака Х-операнда AS (Alu Sign), значение бита частного AQ (Alu Quotient). Все флаги сохраняются в регистре арифметического состояния ASTAT (см. п. 1.10). Для выполнения команд, использующих перенос/заем, ALU использует значение флага переноса CI, который хранится в ASTAT.

Мультиплексор MUX 2 выбирает значение Х-операнда (хор). Таковым может быть содержимое одного из АХ регистров (АХ0 или АХ1) или код, находящийся на шине результатов R BUS.




Поскольку с шиной результата связаны регистры результата всех арифметических устройств, то хор (кроме АХ0, АХ1) могут быть AR, MR0, MR1, MR2 (см. п. 1.6) и SR0, SR1 (см. п. 1.7).

АХ регистры связаны с шиной данных ПД (DMD BUS), поэтому в них может быть записан код из ПД и считан – в ПД. Система команд процессора (см. п. 1.17) позволяет чтение содержимого этих регистров в ПП, но это не прямой путь, а через BUS EXCH (см. рис. 1.2). Все АХ регистры двух портовые. Это означает, что в одном регистре находятся данные для ALU, а другой регистр одновременно взаимодействует с DMD BUS, т.е. выполнение команды может быть совмещено с чтением следующего операнда.

Мультиплексор MUX 3 выбирает значение Y-операнда (yор). Таковым может быть содержимое одного из АY регистров (АY0 или АY1) или содержимое регистра AF.

С помощью мультиплексора MUX 1 АY регистры связаны и с шиной данных ПД (DMD BUS), и с шиной данных ПП (PMD BUS). Поэтому в них может быть записан код из ПД и считан – в ПД, а также записан – из ПП. Система команд процессора (см. п. 1.17) позволяет чтение содержимого этих регистров в ПП, но это не прямой путь, а через BUS EXCH (см. рис. 1.2). Все АY регистры двух портовые.

С помощью мультиплексора MUX 4 АR регистр связан с шиной дан­ных ПД (DMD BUS), поэтому в него может быть записан код из ПД и счи­тан – в ПД. Система команд процессора (см. п. 1.17) позволяет чтение содержимого этого регистра в ПП, но это не прямой путь, а через BUS EXCH (см. рис. 1.2).

Любой регистр ALU может быть сосчитан и записан в одном и том же машинном цикле. Считывание регистра происходит в начале машинного цикла, в то время как запись – в конце. Это позволяет, например, считать из AR предыдущий результат и записать в него текущий в одном и том же машинном цикле.

ALU содержит двойной банк регистров. На рис. 1.6 это отражено тенью. В одно и то же время доступен только один банк регистров. Дополнительный банк регистров может быть использован для быстрого переключения контекста задачи, например, в обработчиках прерываний. При этом не требуется сохранение контекста путем пересылки данных в память, например, в стек, как это делается во многих видах процессоров. Выбор номера банка регистров обеспечивает бит 0 в регистре состояния процессора MSTAT (см. п. 1.10). Если этот бит сброшен, то выбран первый банк регистров, в противном случае – второй.


1.6. Функциональная схема МАС


Основу MAC (рис. 1.7) составляют умножитель MULTIPLIER и сумматор/вычитатель ADD/SUBTRACT. Умножитель выполняет операции умножения (см. п. 1.17.6) над 16-битными кодами, присутствующими на его Х- и Y- входах. Результат операции (произведение) появляется на 32-битном выходе P(roduct) и подается на один вход сумматора/вычитателя, на второй вход которого подается содержимое регистра результата MR (Mac Result).




Регистр результата представляет собой совокупность трех регистров MR2…MR0, первый из которых (MR2) 8-битный, второй и третий – 16-битные.

В зависимости от команды (см. п. 1.17.6) сумматор/вычитатель может просто передать произведение в регистры MR1, MR0 (с выходов R1, R0 через мультиплексоры MUX 5, MUX 6), а также может сложить/ вычесть произведение с/из содержимым/содержимого регистра результата MR.

Произведение может быть запомнено не только в регистрах результата МR2…MR0 (через мультиплексоры MUX 4…MUX 6), но и в регистре обратной связи МF (Мас Feedback). При этом используется выход R1 сумматора/вычитателя, поскольку – это выход старшего слова произведения. Выход R0 содержит младшее слово произведения (наименее значимое), а выход R2 служит для вывода переносов/заемов, которые могут возникнуть при операциях сложения/вычитания.

При появлении переполнения МАС формирует признак MV (Mac oVerflow), который запоминается в регистре ASTAT.

Регистры результата MR2…MR0 связаны с шиной результата R BUS, поэтому их содержимое может быть использовано в качестве xop других арифметических устройств (см. пп. 1.5, 1.7). Кроме этого, они могут загружаться не только из сумматора/вычитателя, но и с шины данных ПД (DMD BUS). Через мультиплексор MUX 7 содержимое регистров результата MR2…MR0 также может быть считано на шину данных ПД (DMD BUS).

В качестве хор умножителя может выступать содержимое одного из МХ регистров (МХ1 или МХ0) или любого из регистров результата AR, MR2…MR0, SR1, SR0. Выбор хор обеспечивается мультиплексором MUX 2. В качестве yор умножителя может выступать содержимое одного из МY регистров (МY1 или МY0) или регистра обратной связи MF. Выбор yор обеспечивается мультиплексором MUX 3.

Регистры МХ1, МХ0 могут загружаться и считываться через шину данных ПД (DMD BUS). Регистры МY1, МY0 могут загружаться и считываться через шину данных ПД (DMD BUS) и загружаться с шины данных ПП (PMD BUS). Выбор шины обеспечивает мультиплексор MUX 1.

По свойствам все регистры МАС аналогичны регистрам ALU (см. п. 1.5).


1.7. Функциональная схема SHIFTER


Устройство сдвига (УС, рис. 1.8) поддерживает выполнение команд ариф­метического сдвига, логического сдвига и нормализации (см. п. 1.17.7). Кроме этого, УС позволяет извлекать экспоненту числа, а также извлекать общую экспоненту целого блока чисел. Эти функции наиболее полезны при операциях с числами в формате с плавающей точкой.

УС может быть разделено на следующие блоки: сдвигатель (SHIF­TER ARRAY), блок OR/PASS, детектор экспоненты EXP DET, блок сравнения экспонент COMPARE.

Сдвигатель может поместить 16-битный входной код (I) в любое место 32-битного выхода (О). Всего существует 49 размещений входного кода в 32-битном пространстве выходного кода. Размещение (число сдвигов и направление сдвигов) определяются кодом на входе С и сигналом HI/LO сдвигателя.





В состав УС входят также регистры: входной (SI – Shifter Input), экспоненты (SE – Shifter Exponent) и блочной экспоненты (Shifter Block). Во входном регистре хранится входной 16-битный код сдвигателя и детектора экспоненты. С помощью DMD-шины можно считать и изменить (записать) содержимое этого регистра. Входным кодом для сдвигателя и детектора экспоненты может быть содержимое AR (см. п. 1.5), SR или MR (см. п. 1.6), поскольку все эти регистры связаны с R-шиной. Выбор производится мультиплексором MUX 2, который управляется кодом команды сдвига (см. п. 1.17.7).

Результат сдвига через блок OR/PASS помещается в 32-битный регистр SR (Shifter Result), который разделен на два 16-битных регистра SR0 и SR1. Кроме блока OR/PASS источниками кода для загрузки этих регистров могут быть DMD- и R-шины (через MUX 2, сдвигатель и блок OR/PASS). Выбор источника осуществляют мультиплексоры MUX 5, MUX 6. Выход SR регистра связан с одним из входов блока OR/PASS для реализации операций сдвига двойной точности, а также с DMD-шиной (через мультиплексор MUX 7)..

Во время выполнения операций нормализации и денормализации (см. п. 1.17.7) 8-битный регистр SE хранит экспоненту. Экспонента является целым числом со знаком и может быть загружена (и прочитана) через младшие 8 бит DMD-шины.

Во время выполнения операций над блоком чисел в формате с плавающей точкой (см. п. 1.17.7) 5-битный регистр SB хранит блочную экспоненту, т. е. число на которое должны быть сдвинуты все числа блока (обычно – это максимальная экспонента блок чисел). Блочная экспонента является целым числом со знаком и может быть загружена (и прочитана) через младшие 5 бит DMD-шины.

Когда содержимое регистров SE и SB считывается через DMD-шину, происходит расширение знака до 16 бит. По свойствам все регистры УС аналогичны регистрам ALU (см. п. 1.5).

Направление сдвига и число сдвигов определяется управляющим кодом на входе С сдвигателя. Положительное управляющее число определяет сдвиг влево, а отрицательное – вправо. Имеется три источника такого кода: содержимое регистра SE, инвертированное (через инвертор NEG) содержимое регистра SE и непосредственное значение из команды CMD. Выбор источника осуществляется мультиплексором MUX 4.

Значение сигнала HI/LO определяет размещение сдвинутого входного кода в 32-битном пространстве выходного кода. В частности, значение HI определяет размещение кода в регистре SR1, а LO – в регистре SR0. Табл. 1.3 показывает значения выходного кода сдвигателя при различных значениях управляющего кода и сигнала HI/LO.