Параллельные команды используют только регистровую и косвенную адресацию. Из четырех источников операндов два должны быть в регистрахR0-R7 (регистры R8-R11 не используются этими командами), а два должны использовать косвенную адресацию с disp = 0, 1, IR0, IR1. Приемниками результатов операций могут быть только регистры. Для первой операции - R0 или R1, для второй - R2 или R3.
Рис. 6 Основной набор шин процессора коммуникационных портов
Процессор TMS320C4x содержит шесть идентичных высокоскоростных коммуникационных портов, каждый из которых обеспечивает двунаправленный параллельный полудуплексный интерфейс с другими процессорами или внешней периферией. Внутренняя архитектура одного порта показана на рис.1.6.Каждый коммуникационный порт содержит следующие компоненты:*Входной канал - восьмиуровневый 32-разрядный буфер FIFO (первым при-шел - первым вышел) со схемами управления и состояния для приема данных, поступающих с внешней шины порта;*Выходной канал - восьмиуровневый 32-разрядный буфер FIFO для временного хранения данных, передаваемых на внешнюю шину порта;*Арбитр порта - устройство, определяющее использование внешней шины порта (направление передачи данных); Регистр управления коммуникационным портом .
Коммуникационный порт взаимодействует с внешним устройством или коммуникационным портом другого процессора с использованием 8-разряднойшины данных CxD(0-7) и двунаправленных сигналов управления CREQx,CACKx, CSTRBx, CRDYx. В каждый момент времени коммуникационный порт может находиться только в одном из режимов: прием данных или их передача(полудуплексный обмен). Режим работы порта определяется его арбитром и отражается в бите PORT DIR регистра управления. Арбитр переводит порт в ре-жим передачи данных, если получает право ( маркер ) на использование шины данных. На рис. 7 показано назначение и направление сигналов внешней шины в зависимости от режима работы порта.
По сигналу сброса RESET порты 0, 1 и 2 процессора устанавливаются в режим передачи данных, а порты 3, 4 и 5 - в режим приема. Логику работы коммуникационного порта рассмотрим на примере связи двух процессоров TMS320C4x (рис. 1.7). Порт 0 процессора A, установленный сигналом сброса в режим передачи, связан с одноименными линиями порта 3 процессора В, находящегося после сброса в режиме приема (порт 0 процессора A владеет маркером шины).
Рис. 7 Архитектура коммуникационного порта
Если в выходном буфере коммуникационного пор-та 0 процессора A имеется хотя бы одно слово данных, начинается передача слова. Байты слова выставляются на шину данных, начиная с младшего. Байт сопровождается сигналом CSTRB0 низкого уровня. Порт 3 процессора B принимает байт с шины данных и отвечает сигналом CRDY3 низкого уровня. Если в выходном буфере порта 3 процессора B появится слово данных, арбитр порта3 выработает сигнал CREQ3 запроса маркера шины. После передачи очередного слова арбитр порта 0 процессора A проанализирует сигнал CREQ0=CREQ3, выдаст сигнал передачи маркера шины CACK0 на порт 3 процессора B и переведет порт 0 процессора A в режим приема. Арбитр порта 3 процессора B примет сигнал CACK3=CACK0 и переведет свой порт в режим передачи. Передача данных пойдет аналогично, но из процессора B в процессор A. Если у процессора A еще есть данные в выходном буфере, его арбитр выработает запрос маркера шины на процессор B и все повторится.
Рис. 8 Направление сигналов внешней шины
Проверка запроса маркера CREQx производится арбитром порта, осуществляющего передачу (владеющего маркером), после передачи каждого слова данных для избежания монополизации шины данных одним из портов.
Рис. 9 Пример связи процессоров через коммуникационные порты
Логика работы коммуникационного порта незаметна для программиста, и, с его точки зрения, коммуникационный порт представляет из себя двунаправленный 32-разрядный интерфейс, имеющий три регистра в адресном пространстве периферийных устройств: регистр управления, входной порт и выходной порт. Распределение адресов коммуникационных портов в адресном пространстве показано на рис. 1.8, а назначение битов регистра управления. Следует отметить, что программно могут изменяться только биты ICH иOCH регистра управления. Поля OUTPUT LEVEL иINPUT LEVEL изменяются косвенно. Поле OUTPUTLEVEL увеличивается на единицу при записи слова в регистр выходного порта, поле INPUT LEVEL уменьшается на единицу при считывании регистра входного порта. Синхронизация коммуникационных портов с CPUи DMA поддерживается двумя способами. Простейшей формой синхронизации является использование внутренних сигналов готовности. Если CPU или DMA сопроцессор пытаются прочитать пустой входной буфер или записать в заполненный выходной буфер, вырабатывается сигнал неготовности, переводящий CPU или DMA в состояние ожидания. В этом случае цикл доступа к буферу растягивается до появления сигнала готовности. Сигналами готовности являются внутренние сигналы OCRDY для выходного буфера и ICRDY для входного буфера. Для синхронизации по прерываниям коммуникационный порт генерирует четыре внутренних сигнала, перечисленных на рис. 10
Рис. 10 Регистры управления коммуникационных портов
Прерываниями CPU от коммуникационных портов управляют биты 1-24регистра разрешения внутренних прерываний IIE (см. п.1.3), вектора прерываний коммуникационных портов приводятся в табл.1.3. Примечательно, что внутренние сигналы ICFULL, ICRDY, OCRDY и OCEMPTY не отражаются в регистре IIF. Информация о состоянии этих сигналов может быть получена из полей OUTPUT LEVEL и INPUT LEVEL регистра управления соответствующего коммуникационного порта. Для синхронизации коммуникационных портов и каналов сопроцессора ПДП используются только сигналы ICRDY и OCRDY.
Рис. 11 Внутренние сигналы прерывания от коммуникационных портов
2. Практическая часть
В практической части используется программа C4x Simulator Composer
Целью данной курсовой работы в практической части заключается рассмотрение команды LDI||STI проверка её при разных значениях.
На рисунке видно, как работает данная программа.
Рис. 12 рассмотрение команды LDI|| STI
*************************************************************
* Test Name
* ldi.asm
*************************************************************
* Test Intent
* Тестирование инструкций LDI||STI с различной адресацией
*************************************************************
* Test Notes
* Адрес вектора reset - 80000000h
* Адрес вектора ошибок - 80000050h
*************************************************************
* Test Results
* В случаи правильного прохождения теста по адресу 80000050h записывается 1.
При возобновлении ошибки по адресу 80000050h записывается 2
*************************************************************
Выполнил:
Студент гр. Belov Semyon
*************************************************************
.version 40
.global _c_int00
_myvect: .sect "vectors"
RESET.word _c_int00
_stack .usect "MyStack", 50 ; stack
.sect "var"
ERROR: .space 1
.text
stacka .word _stack ; stack adr
ivta .word _myvect ; int table adr
data0 .word 111h ; test data
data1 .word 222h
data3 .word 333h
data4 .word 444h
data5 .word 555h
data6 .word 666h
data7 .word 777h
data8 .word 888h
data9 .word 999h
dataA .word 0aaah
dataB .word 0bbbh
dataC .word 0ccch
dataD .word 0dddh
dataE .word 0eeeh
dataF .word 0fffh
fAdr .word dataF
*************************************************************
************************* Init Prog ****************************
_c_int00:
LDPK 8000h
LDI @stacka, SP
LDI 0h, R1 ; Clear Registers
LDI 0h, R0
LDI 0h, AR0
LDI 0h, IR0
LDI 0h, IR1
STI R0, @50h ; Reset result
LDI 100h,IR1
LDI 100h,R2
LDI 100h,R3
LDI 100h,IR0
*************************************************************
; src - Register
ldi @fAdr, AR7
ldi *AR7,R0
|| sti R3,*AR7 ; Instruction
xor R2,R4 ; test
bnz ERR
BR STOP
*************************************************************
ERR:
ldi 2h, R0
STI R0, @50h ; store result test FALL
STOP:
BR $
nop
nop
nop
.end
Заключение
В ходе выполнения данной курсовой работы были представлены коммуникационные порты разработан микропроцессор фирмы Texas Instruments семейства TMS320c4x. Была описана его архитектура, структура памяти. Был описан список регистров.
В рамках курсовой были разработаны основные способы адресации в памяти. В практической части по основным способам адресации было реализована команда LDI|| STI. Был получен результат для различных ответов команды XOR.
Список используемой литературы
1. TMS320C4x User's Guide (SPRU063A).- Dallas, Texas: Texas Instruments, Inc., 1994.- 712 p.
2. TMS320 Floating-Point DSP Assembly Language Tools User's Guide (SPRU035B).- Dallas, Texas: Texas Instruments, Inc., 1995.- 450 p.
3. TMS320C4x C Source Debugger (SPRU054).- Dallas, Texas: Texas Instruments, Inc., 1992.- 344 p.
4. Транспьютеры. Архитектура и программное обеспечение: Пер. с англ./Под ред. Г.Харпа.-М.: Радио связь, 1993.- 304 с.
5. Шоу А. Логическое проектирование операционных систем: Пер. с англ.- М.: Мир, 1981.- 360 с.
6. Сверхбольшие интегральные схемы и современная обработка сигналов: Пер. с англ./Под ред. С. Гуна, Х. Уайтхауса, Т. Кайлата. - М.: Радио и связь, 1989.- 472 с.
7. Оппенгейм А.В., Шафер Р.В. Цифровая обработка сигналов: Пер. с англ./ Под ред. С.Я.Шаца.- М.: Связь, 1979.- 416с.
8. Мотоока Т., Томита С., Танака Х. и др. Компьютеры на СБИС: В 2 кн.: Пер. с япон.- М.: Мир, 1988.- 392 с.
9. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах:-М.: Наука, 1972.- 368 с