Cтраница 4
При выполнении инструкции DO в регистр счетчика цикла загружается количество повторений цикла, а в регистр адреса цикла - адрес последней инструкции цикла, и устанавливает флаг цикла в регистре статуса. Перед выполнением инструкции DO содержимое регистров LA, LC и SR сохраняется в стеке. Под управлением механизма выполнения циклов адрес первой инструкции цикла помещается в стек. Пока флаг цикла в регистре статуса не сброшен, механизм выполнения циклов сравнивает содержимое PC с содержимым LA для определения последней инструкции цикла. Если равенство не выполняется, содержимое LC декрементируется и из SS читается адрес первой инструкции цикла. [46]
Используется структура гибкого приоритета прерываний. Уровень 0 - дамый низкий, а уровни 1 и 2 маскируются. Уровень 3 является высшим и не маскируется. Биты маски прерываний в регистре статуса ( SR) показывают текущий уровень приоритета прерываний в процессоре. Прерывания, имеющие уровень приоритета меньше текущего, не учитываются при арбитраже. Уровень приоритета 3 всегда вызывает прерывание процессора. [47]
Если прерывание приемника возникает, когда ROE1, то формируется запрос прерывания со статусом исключения. Если прерывание приемника возникает, когда ROE0, то формируется запрос прерывания без возникновения ошибки. Аппаратный и программный сброс, а также сброс по STOP очищают бит ROE. Этот бит сбрасывается также при чтении регистра статуса. [48]
Регистр статуса доступен для любой команды так же, как любой другой регистр. Однако если регистр STATUS является регистром назначения для команды, влияющей на биты Z, DC или С, то запись в эти три бита запрещается. Кроме того, биты / ТО и / PD устанавливаются аппаратно и не могут быть записаны в статус программно. Это следует иметь в виду при выполнении команды с использованием регистра статуса. Например, команда CLRF STATUS обнулит все биты, кроме битов / ТО и / PD, а затем установит бит Zl. После выполнения этой команды регистр статуса может и не иметь нулевого значения ( из-за битов / ТО и / PD) STATUSOOOuuluu, где и - неизменяемое состояние. Поэтому рекомендуется для изменения регистра статуса использовать только команды битовой установки BCF, BSF, MOVWF, которые не изменяют остальные биты статуса. [49]
JSR, адрес возврата ( PC) автоматически заносится в SSH, а содержимое регистра статуса - в SSL. Если выход из прерывания осуществляется с помощью команды RTI, тогда содержимое верхушки SSH заносится в PC, а содержимое верхушки SSL заносится в SR. SS также используется для реализации вложенных аппаратных циклов DO. При инициализации аппаратного цикла с использованием команды DO, предыдущее содержимое регистра счетчика циклов LC автоматически заносится в SSL, содержимое регистра циклического адреса - в SSH, а указатель стека инкрементируется. Адрес первой команды цикла ( PC) также заносится в SSH, а содержимое регистра статуса - в SSL. SS может быть расширен в памяти данных посредством управляющего аппаратного обеспечения, которое отвечает за доступ к SS. [50]
Регистр статуса доступен для любой команды так же, как любой другой регистр. Однако если регистр STATUS является регистром назначения для команды, влияющей на биты Z, DC или С, то запись в эти три бита запрещается. Кроме того, биты / ТО и / PD устанавливаются аппаратно и не могут быть записаны в статус программно. Это следует иметь в виду при выполнении команды с использованием регистра статуса. Например, команда CLRF STATUS обнулит все биты, кроме битов / ТО и / PD, а затем установит бит Zl. После выполнения этой команды регистр статуса может и не иметь нулевого значения ( из-за битов / ТО и / PD) STATUSOOOuuluu, где и - неизменяемое состояние. Поэтому рекомендуется для изменения регистра статуса использовать только команды битовой установки BCF, BSF, MOVWF, которые не изменяют остальные биты статуса. [51]
Регистр статуса доступен для любой команды так же, как любой другой регистр. Однако если регистр STATUS является регистром назначения для команды, влияющей на биты Z, DC или С, то запись в эти три бита запрещается. Кроме того, биты / ТО и / PD устанавливаются аппаратно и не могут быть записаны в статус программно. Это следует иметь в виду при выполнении команды с использованием регистра статуса. Например, команда CLRF STATUS обнулит все биты, кроме битов / ТО и / PD, а затем установит бит Zl. После выполнения этой команды регистр статуса может и не иметь нулевого значения ( из-за битов / ТО и / PD) STATUSOOOuuluu, где и - неизменяемое состояние. Поэтому рекомендуется для изменения регистра статуса использовать только команды битовой установки BCF, BSF, MOVWF, которые не изменяют остальные биты статуса. [52]
При этом может выполняться умножение 24 х 24-бита, параллельное умножение или умножение дробей, умножение знаковых или беззнаковых операндов. Операции умножения / сложения являются полностью конвейеризованными и занимают два такта. В течение первого такта производится умножение, а произведение сохраняется в регистре конвейера. Во втором такте содержимое аккумулятора складывается или вычитается. Если умножение производится с помощью специальной команды ( MPY), то MAC очищает аккумулятор и затем добавляет содержимое к произведению. Когда 56-битовый результат запоминается как 24-битовый операнд, то содержимое LSP может быть отброшено или может быть произведено округление MSP. Тип округления определяется с помощью бита округления в регистре статуса. [53]
Структурная схема кэш-памяти команд. [54] |
За счет наличия двух ограничителей можно независимо ограничивать операнды размером в двойное слово в одном и том же командном цикле. Если содержимое выбранного аккумулятора-источника может быть представлено без переполнения в размере операнда-приемника, то ограничение данных запрещается, и операнд не модифицируется. Если содержимое выбранного аккумулятора источника не может быть представлено без переполнения в размере операнда-приемника, то ограничитель будет подставлять ограниченные значения данных, имеющих максимальное насыщение и тот же знак, что и содержимое источника: 7FFFFF для 24-битовых или 7FFFFF FFFFFF для 48-битовых положительных чисел, 800000 для 24-битовых или 800000 000000 для 48-битовых отрицательных чисел. Этот процесс называется насыщением передачи. Значение в аккумуляторном регистре не сдвигается, не ограничивается и может быть повторно использовано через АЛУ данных. Когда выполняется ограничение, то флаг устанавливается и защелкивается в регистре статуса. [55]
При возникновении данной ошибки предыдущие данные, которые находятся в ТХ, передаются еще раз. В сетевом режиме может быть до 32 временных слотов передачи на фрейм. TUE не вызывает прерываний, но вызывает смену вектора прерывания передатчика. Если прерывание передатчика возникает, когда TUE 1, то возникает запрос прерывания со статусом исключения. Если прерывание передатчика возникает, когда TUE 0, то формируется запрос прерывания без возникновения ошибки. Аппаратный и программный сброс, а также сброс по STOP очищают бит TUE. Этот бит сбрасывается также при чтении регистра статуса. [56]
В ядре DSP56600 аккумуляторы А и В в АЛУ данных имеют восемь дополнительных бит. Ограничение будет происходить, когда задействованы дополнительные биты и если А или В являются источниками, содержимое которых читается через XDB или YDB. Ограничители в DSP56600 размещают сдвинутые или ограниченные значения на XDB или YDB без изменения содержимого регистров А или В. За счет наличия двух ограничителей можно независимо ограничивать операнды размером в двойное слово в одном и том же командном цикле. Если содержимое выбранного аккумулятора-источника может быть представлено без переполнения в размере операнда-приемника, то ограничение данных запрещается, и операнд не модифицируется. Если содержимое выбранного аккумулятора источника не может быть представлено без переполнения в размере операнда-преемника, то ограничитель будет подставлять ограниченные значения данных, имеющих максимальное насыщение и тот же знак, что и содержимое источника: 7FFF для 16-битовых или 7FFF FFFF для 32-битовых положительных чисел, 8000 для 16-битовых или 8000 0000 для 32-битовых отрицательных чисел. Этот процесс называется насыщением передачи. Значение в аккумуляторном регистре не сдвигается, не ограничивается и может быть повторно использовано через АЛУ данных. Когда выполняется ограничение, то флаг устанавливается и защелкивается в регистре статуса. [57]