Глинченко А.С. Принципы организации и программирования сигнальных процессоров ADSP-21xx (2000) (1264223), страница 4
Текст из файла (страница 4)
Когда этот битравен 0, то выбирается основной ряд регистров; когда равен 1, выбираетсяальтернативный ряд регистров.Программно доступные регистры SI, SE, SB, SR0, SR1 основного итеневого ряда представляют устройство сдвига на общей программнойрегистровой модели процессора (рис. 11).Управляющий код С представляет собой 8-разрядную знаковуювеличину, показывающую направление и число позиций, на котороесдвигается входное значение. Положительный код означает сдвиг влево, аотрицательный код – вправо. Управляющий код поступает непосредственноиз команды или из регистра порядка SE.Внутренний опорный сигнал HI/LO определяет опорную точку сдвига.
Всостоянии HI все сдвиги происходят относительно SR1 (старших битрезультата), а в состоянии LO – относительно SR0 (младших бит результата).Сигнал HI/LO, являющийся модификатором инструкций устройства сдвига,полезен при сдвиге 32-разрядных значений, так как позволяет осуществлятьсдвиг и старших и младших бит числа при одном и том же управляющемкоде.Все биты справа от входного значения в области результата заполняютсянулями, а биты слева − в соответствии с видом сдвига.20шина DMD16SIРЕГИСТРXMUXHI/LOIR8XМассивСдвигателейCO3232OR/PASS1616MUXSR1РЕГИСТРSR0РЕГИСТР1616шина RMUXMUX16Рис. 5. Блок-схема устройства сдвига.Логическое устройство OR/PASS позволяет соединять части числа сповышенной точностью после их сдвига в одно число.
Когда выбираетсярежим PASS (ПЕРЕДАЧА), массив данных устройства сдвига простопередается в регистр результата SR без изменений. Когда выбирается режимOR (ИЛИ), массив данных перед загрузкой в SR подвергается логическойоперации ИЛИ с текущим содержимым регистра SR.21Определитель порядка находит порядок (число лишних знаковыхразрядов) входного значения с учетом его интерпретации, определяемоймодификатором HI/LO и битом переполнения AV.В режиме HI входное значение интерпретируется как число с одинарнойточностью или как старшие биты числа с двойной точностью. Емусоответствуют значения порядка от 0 до −15.В режиме HI, AV (обозначаемом как HIX) при установленном бите AVвыводится порядок +1.В режиме LO входное значение интерпретируется как младшие битычисла с двойной точностью.
Ему соответствуют значения порядка от −15 до−31, которые записываются в регистр SE, если все старшие биты числа сдвойной точностью знаковые.Логическое устройство сравнения порядка совместно с определителемпорядка находит значение порядка блока чисел, сохраняемое в регистре SB.Оно соответствует порядку максимального по модулю числа в блоке.Операции устройства сдвигаУстройство сдвига выполняет следующие операции:арифметический сдвиг (ASHIFT);логический сдвиг (LSHIFT);нормализация (NORM);определение порядка (EXP);нахождение блочного порядка (EXPADJ),где в скобках указана мнемоника соответствующих им инструкций.Нормализация представляет преобразование числа с фиксированнойточкой в число с плавающей точкой, при котором генерируется его мантиссаи порядок.Для чисел с одинарной точностью нормализация выполняется в дваэтапа: определение порядка и собственно нормализация, т.
е. сдвиг. Ониреализуются парой инструкций устройства сдвига SE=EXP AR (HI); SR=NORM AR; где AR – один из возможных регистров-источников устройствасдвига (смотри ниже).Числа с двойной точностью нормализуются в четыре этапа: определениепорядка старшего слова, младшего слова и их нормализация. Если ARрегистр-источник старшего слова, а SI младшего, то этому соответствуетпоследовательность инструкций устройства сдвига: SE = EXP AR (HI);SE=EXP SI (LO); SR=NORM AR (HI); SR= SR OR NORM SI (LO);.С помощью одной или двух (для чисел с двойной точностью) операцийсдвига осуществляется также денормализация чисел, соответствующаяпреобразованию числа с плавающей точкой в число с фиксированной точкой.Для числа с двойной точностью, мантисса которого для примера размещена врегистрах AR (старшее слово) и SI (младшее слово), а порядок в регистре SE,денормализацию можно выполнить следующей последовательностью22инструкций: SR=ASHIFT AR (HI); SR=SR OR LSHIFT SI (LO);.
Здесьвначале сдвигаются старшие биты числа, а затем младшие. Возможен иобратный порядок сдвигов, реализуемый следующим образом: SR=LSHIFTSI (LO); SR=SR OR ASHIFT AR (HI); (обратите внимание на закономерностьчередования арифметического и логического сдвигов и использованиямодификатора SR OR). Для беззнаковых входных значений используютсялогические сдвиги для обоих слов.Источниками и приемниками данных для устройства сдвига являются:Источники ввода данныхНаправление вывода результатовSR (SR0, SR1)SIARMR0, MR1, MR2SR0, SR1Ниже приведены примеры некоторых операций устройства сдвига иреализующих их ассемблерных инструкций.Первый пример показывает непосредственный логический сдвигвправо относительно старших бит SR (SR1), т.
е. в режиме HI.SI = 0xB6A3;SR = LSHIFT SI BY –5 (HI);{Входное значение 10110110 10100011Величина сдвига –5SR = 00000101 10110101 00011000 00000000}А теперь то же самое значение сдвигается в другом направленииотносительно младших бит SR в режиме LO.SI=0xB6A3;SR=LSHIFT SI BY 5 (LO);{Входное значение 10110110 10100011Величина сдвига +5SR=00000000 00010110 11010100 01100000}Следующий пример соответствуетарифметического сдвига в режиме HI:операцииSI=0xB6A3;SR=ASHIFT SI BY –5 (HI);{Входное значение 10110110 10100011Величина сдвига –5SR=11111101 10110101 00011000 00000000}23непосредственногоОперация нормализации для входного значения с одинарной точностьюиллюстрируется следующим примером:AR = 0xF6D4;SE = EXP AR (HI);{Определяет порядок с модификатором HIВходное значение 1111011011010100SE устанавливается на –3}SR = NORM AR (HI);{Нормализация с модификатором HI: сдвиг значения AR на величину,содержащуюся в SEВходное значение 1111011011010100SR = 1011011010100000 00000000 00000000}КОНТРОЛЬНЫЕ ВОПРОСЫ К ПАРАГРАФАМ 3.1, 3.21.
Каковы форматы чисел вычислительных устройств сигнальных процессоров?2. Что означают форматы чисел 1.15, 16.0, 2.30, 1.31, 32.0. 31.1?3. Приведите примеры операций сложения, вычитания чисел в дробном формате 1.15.4. Каково назначение элементов структурной схемы AЛУ?5. Какова программная модель AЛУ?6. Какие арифметические и логические функции реализует AЛУ?7. Что дает наличие теневого набора регистров AЛУ?8. Какие признаки (состояния) AЛУ генерируются и где они фиксируются?9. Как используются состояния AЛУ?10. Что такое режим насыщения AЛУ и как он реализуется?11.
Приведите пример выполнения операции AЛУ с насыщением.12. Какие регистры являются X и Y-операндами AЛУ?13. В чем различие регистров AR и AF?14. Откуда и как могут загружаться операнды в регистры AX, AY?15. Куда могут считываться результаты AЛУ?КОНТРОЛЬНЫЕ ВОПРОСЫ К ПАРАГРАФУ 3.31. Каковы основные компоненты структуры умножителя-накопителя и ихфункциональное назначение?2.
Какие операции реализует умножитель-накопитель?3. Какова программная модель умножителя-накопителя?4. Какие регистры являются X иY-операндами умножителя-накопителя?5. Какова разрядность и структура регистра MR?6. В чем различие регистров MR и MF?7. В чем различие выполнения операций умножителя-накопителя в целочисленномбеззнаковом формате и формате 1.15?8. Каков формат результата умножения умножителя-накопителя в зависимости отформатов X иY-операндов?9.
Как программно учитываются знаки операндов в операциях умножителянакопителя?10. Приведите примеры выполнения операции умножения для чисел в формате 1.15.11. Приведите примеры выполнения операции умножения для знакового ибеззнакового операндов.12. Приведите примеры выполнения операции умножения для чисел в формате 16.0.2413. Откуда и как могут загружаться операнды в регистры MX, MY?14.
Куда могут считываться результаты умножителя-накопителя?15. Что такое режим насыщения умножителя-накопителя и как он реализуется?16. Приведите пример операции умножителя-накопителя с насыщением.17. Что такое режим округления умножителя-накопителя и как он реализуется?18. Приведите пример операции умножителя-накопителя с округлением.19.
Что дает наличие теневого набора регистров умножителя-накопителя?20. Какие признаки (состояния) генерируются умножителем-накопителем и где онисохраняются? Что такое переполнение умножителя-накопителя?21. Приведите пример операции умножителя-накопителя с переполнением.22. Как используются состояния умножителя-накопителя?23. Что означает умножение с накоплением и где эта операция используется в ЦОС?КОНТРОЛЬНЫЕ ВОПРОСЫ К ПАРАГРАФУ 3.41. Каковы основные компоненты структуры устройства сдвига и их функциональноеназначение?2.
Какие операции реализует устройство сдвига?3. Какова программная модель устройства сдвига?4. Какие регистры являются операндами устройства сдвига?5. В чем различие арифметического и логического сдвигов?6. Что является указателем знака и числа сдвигов?7. Что такое непосредственный сдвиг?8. Что означает сдвиг относительно старших (HI) и относительно младших (LO)разрядов регистра SR?9. Приведите примеры выполнения операций арифметического сдвига типа HI и LO.10. Приведите примеры выполнения операций логического сдвига типа HI и LO.11. Как осуществляется нормализация и денормализация чисел?12. Как используется устройство сдвига для реализации вычислений с повышеннойточностью?13.
Приведите пример вычисления с удвоенной точностью с использованиемустройства сдвига.14. Как используется устройство сдвига для реализации вычислений с плавающейточкой?15. Что такое режим сдвига HIX?254. УСТРОЙСТВO УПРАВЛЕНИЯ ПРОГРАММОЙ4.1. ФУНКЦИИ И БЛОК-СХЕМА ПРОГРАММНОГО АВТОМАТАУстройство управления программой представляет программный автомат(рис. 6), который генерирует адреса команд и обеспечивает гибкоеуправление программой. Он позволяет осуществлять последовательноевыполнение команд, обработку прерываний и реализовать за один циклкоманды вызова, условного и безусловного перехода.4.2. ЛОГИЧЕСКОЕ УСТРОЙСТВО ВЫБОРА АДРЕСА СЛЕДУЮЩЕЙ КОМАНДЫПока процессор выполняет текущую команду, программный автоматзагружает из памяти программ следующую.
Адрес ее выбирается логическимустройством выбора адреса следующей команды из одного из следующихисточников:инкрементора счетчика команд (PC);стека счетчика команд;регистра команд;контроллера прерываний;Выбор источника адреса основывается на данных, поступающих изрегистра команд (инструкций), логического устройства условия, компараторациклов и контроллера прерываний. Полученный в результате адрес командывыводится на шину адреса памяти программ PMA для загрузки следующейинструкции.Инкрементор РС является источником следующего адреса инструкциипри последовательном исполнении программы.