ЭУМК по дисциплине "Проектирование проблемно-ориентированных вычислительных средств" › Теория › Тема 3. Операционное устройство процессоров платформы с5000

# Электронный учебно-методический
комплекс по дисциплине
"Проектирование проблемно-ориентированных вычислительных средств"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

Тема 3. Операционное устройство процессоров платформы с5000
3.1. Внутренняя память процессоров TMS320C5х
3.1.1. Организация внутренней памяти программ и данных процессоров TMS320C5х, управление блоками памяти
Общая организация памяти процессора TMS320VC5402

Память C54x DSP организована в три индивидуально выбираемых пространства: программы, данных и ввода/вывода. Внутри любого из этих пространств ОЗУ, ПЗУ, ППЗУ, СППЗУ или периферийные устройства с отображением на память могут находиться на или вне кристалла.
Пространство памяти программ содержит выполняемые команды и таблицы, используемые при вычислении. Пространство памяти данных сохраняет данные, используемые командами. Интерфейс пространства памяти ввода/вывода и устройства с отображением на память также могут использоваться как дополнительное пространство для хранения данных.
В зависимости от версии DSP, доступны несколько типов памяти: ОПЕРАТИВНАЯ ПАМЯТЬ с двойным доступом (DARAM), ОПЕРАТИВНАЯ ПАМЯТЬ с одиночным доступом (SARAM), двусторонняя общедоступная ОЗУ или ПЗУ. ОЗУ всегда отображаются в пространство данных, но могут также быть отображены в пространство программ. ПЗУ может быть активизировано и отображено в пространство программ и частично в пространство данных.
Имеются три бита регистра состояния ЦЕНТРАЛЬНОГО ПРОЦЕССОРА, которые воздействуют на конфигурацию памяти. Действие этих битов зависит от устройства.
Биты MP/#MC, OVLY и DROM размещены в регистре состояния режима процессора (PMST).
На рис. 3.1 показано состояние карты памяти процессора TMS320VC5402 в зависимости от битов MP/#MC, OVLY и DROM.

######

###### Рисунок 3.1 – Карта памяти процессора TMS320VC5402

Организация памяти программ

Большинство процессоров C54x могут адресовать до 64К 16-разрядных слов внешней памяти программ. Они имеют расположенные на кристалле ROM, DARAM, SARAM, которые могут быть отображены на пространство памяти программ. Когда ячейки памяти отображены на пространство программ, C54x автоматически обращается к этим ячейкам памяти, когда адреса попадают в границы внутренней памяти. Когда генератор адресов программы (PAGEN) генерирует адрес за пределами границы внутренней памяти, процессор автоматически генерирует внешние сигналы доступа к памяти.
Биты MP/#MC и OVLY определяют, какие внутренние блоки памяти включаются в пространство памяти программ.
При сбросе логический уровень с вывода MP/#MC копируется в бит состояния MP/#MC в регистре PMST и определяет доступ к внутреннему ПЗУ. Если MP/#MC=1 – устройство сконфигурировано как микропроцессор и ПЗУ недоступно. Если вывод MP/#MC=0 – устройство сконфигурировано как микроЭВМ и ПЗУ доступно. Состояние вывода MP/#MC имеет значение только при сбросе, однако, Вы можете отключать или включить ПЗУ программно установкой или сбросом бита MP/#MC в регистре PMST.
ПЗУ большого объема разделяется на части и организовано в виде блоков, чтобы повысить эффективность. Например, блочная организация дает возможность Вам выбирать команду из одного блока ПЗУ, выбирая при этом данные из другого блока ПЗУ. В зависимости от устройства ПЗУ разбивается на блоки 2К, 4К или 8К (в процессоре 5402 ПЗУ на блоки не разбивается).
При начальном сбросе процессора вектора сброса, прерываний и ловушек отображаются на страницу длиной 128 слов с начальным адресом FF80h в пространстве памяти программ. Однако эти вектора могут быть повторно переопределены на начало любой страницы длиной 128 слов в пространстве программы после сброса устройства. Это облегчает перемещение таблицы векторов из ПЗУ начальной загрузки в ОЗУ и затем удаление ПЗУ из карты памяти.
ПЗУ в зависимости от процессора может содержать один или несколько следующих элементов:
программа-загрузчик, которая выполняет загрузку из последовательных портов, внешней памяти, портов ввода/вывода или главного портового интерфейса (HPI);
таблица преобразования M-law длиной 256 слов;
таблица преобразования A-law длиной 256 слов;
таблица значений синуса длиной 256 слов;
таблица векторов прерываний.
На рис. 3.2 показано распределение ПЗУ для процессора 5402.

######

###### Рисунок 3.2 – Внутреннее ПЗУ программ процессора TMS320VC5402

Ряд процессоров имеют расширенную память программ и используют страничную схему дополнительной памяти программ до 8192К слов. Для этого процессор C5402 включает несколько дополнительных элементов:
20 линий адреса, вместо 16;
дополнительный регистр с отображением на память, для расширения счетчика программы (XPC);
шесть дополнительных команд для адресации расширенного программного пространства.
Значение в XPC определяет страницу. Этот регистр доступен в пространстве памяти данных по адресу 001Eh. При аппаратном сбросе XPC устанавливается в 0.
Программная память в C5402 организована в 16 страниц, каждая длиной 64К слов (рис. 3.3).

######

† Структура 0-й страницы представлена на рис. 3.2.
‡ Младшие 16K слов страниц с 1 по 15 доступны только если бит OVLY сброшен в 0. Если бит OVLY установлен в 1, внутренняя RAM отображается на младшие 16K слов на всех страницах памяти команд.

###### Рисунок 3.3 – Внешняя память программ процессора TMS320VC5402

Чтобы облегчить коммутацию страниц программным обеспечением C5402 имеет шесть специальных команд, которые воздействуют на XPC:
FB - дальний переход;
FBACC - дальний переход по адресу из аккумулятора;
FCALA - дальний вызов подпрограммы по адресу из аккумулятора (;
FCALL - дальний вызов подпрограммы;
FRET - дальний возврат;
FRETE - дальний возврат с разрешением прерываний.
Следующие команды расширены, чтобы использовать 20 битов адреса:
READA - читать память программ, адресованную аккумулятором А и сохранить в памяти данных;
WRITA - записать данные в память программ, адресованную аккумулятором A.
Все другие команды не изменяют XPC и обращаются только к памяти внутри текущей страницы.
Организация памяти данных

Память данных процессоров C54x содержит до 64К 16-разрядных слов. Они имеют ПЗУ, которое может быть отображено в память данных (DROM), в дополнение к ОПЕРАТИВНОЙ ПАМЯТИ с двойным доступом (DARAM) и ОПЕРАТИВНОЙ ПАМЯТИ с одиночным доступом (SARAM). Процессор C5402 имеет 4К ROM и 16К DARAM.
Обращение к ОПЕРАТИВНОЙ ПАМЯТИ и данным ROM (когда это допускается) выполняется, когда адреса попадают в диапазон пределов, соответствующих внутренним блокам памяти. Когда схема генерации адресов данных (DAGEN) генерирует адрес за пределами внутренней памяти, процессор автоматически генерирует сигналы доступа к внешней памяти.
Память данных может находиться на кристалле или вне его. Память на кристалле DARAM отображена на пространство памяти данных. Для некоторых процессоров C54x Вы можете отображать часть внутреннего ПЗУ (ROM) в пространство данных установкой бита DROM, размещенного в регистре PMST. Допускается нахождение этой части ПЗУ и в пространстве данных (DROM бит) и в пространстве программы (MP/#MC бит), что позволяет командам использовать область ПЗУ как данные, постоянно находящиеся в пространстве данных. При сбросе процессор сбрасывает бит DROM в 0.
Внутренняя ОПЕРАТИВНАЯ ПАМЯТЬ разделена и организована в блоки, чтобы повысить эффективность. Например, блочная организация дает возможность выбрать Вам два операнда из одного блока DARAM и записать в другой блок DARAM в том же самом цикле. В процессоре C5402 эта память разбита на два одинаковых блока.
Организация первого 1К DARAM во всех процессорах C54x включает регистры центрального процессора и периферийных устройств с отображением на память, 32 слова сверхоперативной памяти с двойным доступом и 896 слов DARAM.

Память ввода-вывода

Процессоры C54x имеют пространство памяти ввода-вывода в дополнение к памяти программ и данных. Пространство памяти ввода-вывода - адресное пространство в 64K-слов (0000h-FFFFh) и является внешним по отношению к процессору. Только две команды, PORTR и PORTW, используются, чтобы обратиться к этому пространству.

3.1.2. Регистры процессора с отображением на память

64К слова пространства памяти данных включают регистры с отображением на память, которые постоянно находятся на 0-й странице данных (адреса 0000h-007Fh). Страница 0 памяти данных включает:
регистры центрального процессора (всего 26) доступны без состояний ожидания (табл. 3.1);
регистры периферийных устройств, которые используются как регистры данных и управления в периферийных цепях. Эти регистры постоянно доступны по адресам 0020h-005F через специализированную периферийную шину;
блок сверхоперативной памяти RAM (адреса 60h-7Fh в памяти данных) включает 32 слова DARAM для хранения рабочих переменных.
Таблица 3.1. Регистры ЦП с отображением на память

Адрес (16-чный) | Имя | Описание
0 | IMR | Регистр масок прерывания
1 | IFR | Регистр флажков прерывания
2-5 | - | Зарезервировано для испытаний
6 | ST0 | Регистр состояния 0
7 | ST1 | Регистр состояния 1
8 | AL | Аккумулятор А младшее слово (биты 15-0)
9 | AH | Аккумулятор А младшее слово (биты 31-16)
A | AG | Аккумулятор А биты защиты (биты 39-32)
B | BL | Аккумулятор B младшее слово (биты 15-0)
C | BH | Аккумулятор B младшее слово (биты 31-16)
D | BG | Аккумулятор B биты защиты (биты 39-32)
E | T | Временный регистр
F | TRN | Регистр перехода
10 | AR0 | Вспомогательный регистр 0
11 | AR1 | Вспомогательный регистр 1
12 | AR2 | Вспомогательный регистр 2
13 | AR3 | Вспомогательный регистр 3
14 | AR4 | Вспомогательный регистр 4
15 | AR5 | Вспомогательный регистр 5
16 | AR6 | Вспомогательный регистр 6
17 | AR7 | Вспомогательный регистр 7
18 | SP | Указатель вершины стека
19 | BK | Регистр размера кольцевого буфера
1A | BRC | Счетчик повторения блока
1B | RSA | Регистр начального адреса повторяемого блока
1C | REA | Регистр конечного адреса повторяемого блока
1D | PMST | Регистр состояния режима процессора
1E | XPC | Регистр расширения программного счетчика (C548,C549, C5402, C5410, и C5420)
1F | - | Зарезервировано

Регистры прерывания (IMR, IFR)
Регистр масок прерывания (IMR) индивидуально маскирует отдельные прерывания в требуемое время. Регистр флажков прерывания (IFR) указывает текущее состояние прерываний.
Регистры состояния (ST0, ST1)
Регистры состояния ST0 и ST1 содержат значения различных состояний и режимов процессора. ST0 содержит флажки АЛУ (OVA, OVB, C и TC) и поля DP и ARP. ST1 отражает состояние режимов выполнения процессором отдельных команд.
Аккумуляторы (A, B)
Процессоры C54x имеют два 40-разрядных аккумулятора А и B. Каждый аккумулятор отображается на память и разбит на части: младшее слово аккумулятора (AL, BL) старшее слово аккумулятора (AH, BH) и биты защиты аккумулятора (AG, BG).
Временный регистр (T)
Временный регистр (T) имеет много использований. Например:

- один из сомножителей для команд умножения;
- динамический (одноразовый программируемый) сдвиг в командах со сдвигом типа ADD, LD, SUB;
- динамический адрес разряда для команды BITT.

Кроме того, команда EXP сохраняет величину вычисленной экспоненты в регистре T и затем команда NORM использует величину из регистра T, чтобы нормализовать число.
Регистр перехода (TRN)
16-разрядный регистр перехода (TRN) сохраняет решение о пути перехода к новой метрике при выполнении алгоритма Viterbi. Команда CMPS (сравнение, выбор максимального и сохранение) модифицирует содержимое регистра TRN на основе сравнения старшего и младшего слова аккумулятора.
Вспомогательные регистры (AR0-AR7)
К восьми 16-разрядным вспомогательным регистрам (AR0-AR7) обращается ЦП и они могут изменяться арифметическими устройствами вспомогательных регистров (ARAUs). Основная функция вспомогательных регистраторов – генерация 16-разрядных адресов для пространства данных. Однако эти регистры могут также действовать как универсальные регистры или счетчики.
Регистр указателя стека (SP)
16-разрядный регистр указателя вершины стека (SP) содержит адрес верхней ячейки стека системы. SP всегда указывает на последний элемент, помещенный в стек. Стек управляется прерываниями, вызовами, возвратами и командами PSHD, PSHM, POPD и POPM. Помещение и извлечение из стека, предекрементирует и постинкрементирует, соответственно, 16-разрядное значение в указателе вершины стека.
Регистр размера кольцевого буфера (BK)
ARAUs используют значения 16-разрядного регистра размера кольцевого буфера (BK) при круговой адресации, чтобы определить размер блока данных.
Регистры повторения блока (BRC, RSA, REA)
16-разрядный счетчик повторения блока (BRC) определяет число раз повторения блока команд, когда выполняется блочное повторение. 16-разрядный регистр адреса начала повторяемого блока (RSA) содержит пусковой адрес блока программной памяти, который будет повторен. 16-разрядный регистр конечного адреса повторяемого блока (REA) содержит адрес окончания блока программной памяти, который будет повторен.
Регистр состояния режима процессора (PMST)
Регистр состояния режима процессора (PMST) управляет конфигурацией памяти процессоров C54x.
Регистр расширения счетчика программы (XPC)
Регистр расширения счетчика программы (XPC) содержит старшие 7 битов текущего адреса памяти программ.

Оглавление | Программа | Теория| Практика | Контроль знаний | Об авторах
© БГУИР , 2012