Курсовая работа: Основные способы адресации в памяти

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Параллельные команды используют только регистровую и косвенную адресацию. Из четырех источников операндов два должны быть в регистрах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 с

Источник: https://otherreferats.allbest.ru/download/1150494/