Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Перевод CPU Reference Guide часть 1.doc
Скачиваний:
6
Добавлен:
21.09.2019
Размер:
1.4 Mб
Скачать

3-1

Память и пространство I/O

TMS320C55x (C55x) DSP обеспечивает доступ к унифицированному пространству данных/программ и пространству I/O (ввода/вывода). Адреса пространства данных используются для доступа к универсальной памяти и к ЦП регистрам, отображенным в карте памяти. Адреса пространства программ применяются ЦП для чтения инструкций из памяти. Пространство I/O доступно для двусторонней связи с периферией. Загрузчик операционной системы на кристалле предоставляет пути помощи загрузки кода и данных во внутреннюю память.

Тема

Страница

3.1

Карта памяти

3-2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2

Пространство программ

3-3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.3

Пространство данных

3-5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.4

Пространство I/O

3-8

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.5

Загрузчик системы

3-9

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Глава 3

Карта памяти

3-2

3.1

Карта памяти

Все 16M байты памяти адресуемы как пространство программ или данных (смотрите рисунок 3-1). Когда ЦП использует пространство программ для чтения программного кода из памяти, он применяет адреса в 24 бита для обращения к байтам. Когда ваша программа получает доступ к пространству данных, она использует адреса в 23 бита для обращения к 16 - разрядным словам. В обоих случаях шины адреса переносят значения в 24 бита, но в течение доступа к пространству данных, младший бит на шине адреса приравнивается к 0.

Пространство данных делится на 128 основных страниц данных (с 0 по 127). Каждая основная страница данных имеет 64К адресов. Инструкция, ссылающаяся на основную страницу данных, объединяет 7- разрядную страницу данных с 16 - разрядным офсетом.

На странице данных 0 первые 96 адресов (00 0000h-00 005Fh) зарезервированы под регистры, отображенные в карте памяти (MMR). Существует соответствующий блок из 192-х адресов (00 0000h-00 00BFh) в пространстве программ. Не рекомендуется хранить (запоминать) программный код в этих адресах.

Для того, чтобы посмотреть, как адреса распределяются между внутренней памятью и внешней памятью, и ,чтобы получить информацию о внутренней памяти, обратитесь к технической документации вашего C55x DSP.

Рисунок 3-1. Карта памяти

Пространство программ

3-3

Память и пространство I/O

3.2

Пространство программ

Доступ к пространству программ осуществляется, когда ЦП считывает инструкции из памяти программ. ЦП применяет байтовые адреса (смотрите секцию 3.2.1) для выборки инструкций различных размеров (секция 3.2.2). Выборка инструкций выравнивается по четным адресам 32 - разрядной границы (секция 3.2.3).

3.2.1

Байтовые адреса (24 бита)

Когда ЦП производит выборку инструкций из памяти программ, он использует байтовые адреса, которые являются адресами, относящимися к индивидуальным байтам. Эти адреса 24 - разрядные. Следующий рисунок показывает строку 32 - разрядной памяти. Каждый байт соотносится с адресом. Например, байт 0 соответствует адресу 00 0100h, а байт 2 - адресу 00 0102h.

Байтовые адреса

Байт 0

Байт 1

Байт 2

Байт 3

00 0100h-00 0103h

3.2.2

Организация инструкций в пространстве программ

DSP поддерживает 8 -, 16 -, 24 -, 32- и 48 - разрядные инструкции. Следующая таблица и рисунок приводят пример организации инструкций в пространстве программ. Пять инструкций различных размеров хранятся в 32 - разрядной памяти. Адресом для каждой инструкции является адрес старшего байта (код операции). Коды не хранятся в затененных байтах.

Инструкция

Размер

Адрес

A

24 бита

00 0101h

B

16 бита

00 0104h

C

32 бита

00 0106h

D

8 бита

00 010Ah

E

24 бита

00 010Bh

Байтовые адреса

Байт 0

Байт 1

Байт 2

Байт 3

00 0100h-00 0103h

A(23-16)

A(15-8)

A(7-0)

00 0104h-00 0107h

B(15-8)

B(7-0)

C(31-24)

C(23-16)

00 0108h-00 010Bh

C(15-8)

C(7-0)

D(7-0)

E(23-16)

00 010Ch-00 010Fh

E(15-8)

E(7-0)

Пространство программ

3-4

3.2.3

Выравнивание выборки из пространства программ

Нет необходимости выравнивания инструкций при хранении их в памяти программ, но выборка инструкций выравнивается к четным адресам 32- разрядной границы. В течение выборки инструкции ЦП считывает 32 бита из адреса, чьи два младших бита (LSB) равны 0. Иными словами, цифра самого младшего разряда шестнадцатиричной выборки адреса всегда равна 0h, 4h, 8h или Ch.

Когда ЦП прерывает исполнение основной программы, адрес, записанный в счетчик команд (PC), должен быть тем же, что и адрес выборки. Адрес PC и адрес выборки одинаковы только, если два LSB адреса PC равны 0. Примите во внимание следующий сегмент кода ассемблера, который вызывает подпрограмму:

CALL #subroutineB

Предположим, что первой инструкцией подпрограммы является инструкция С по байтовому адресу 00 0106h, как это показано на рисунке (код не хранится в затененных байтах).

Байтовые адреса

Байт 0

Байт 1

Байт 2

Байт 3

00 0100h-00 0103h

A(23-16)

A(15-8)

A(7-0)

00 0104h-00 0107h

B(15-8)

B(7-0)

C(31-24)

C(23-16)

00 0108h-00 010Bh

C(15-8)

C(7-0)

D(7-0)

E(23-16)

00 010Ch-00 010Fh

E(15-8)

E(7-0)

PC содержит 00 0106h, но шина адреса чтения программ (PAB) переносит байтовые адреса на предыдущую 32 - разрядную границу 00 0104h. ЦП считывает 4 - байтовые пакеты кода, начиная с адреса 00 0104h. Инструкция С является первой исполняемой инструкцией.

Пространство данных

3-5

Память и пространство I/O

3.3

Пространство данных

Когда программы считывают данные из памяти или регистров (записывают в них), осуществляется доступ к пространству данных. ЦП использует адреса слов (смотрите секцию 3.3.1) для чтения или записи 8 -, 16 - или 32- разрядных значений (секция 3.3.2). Адрес, который должен быть сгенерирован для конкретного значения, зависит от того, как он хранится внутри границ слова в пространстве данных (секция 3.3.3).

3.3.1

Адреса слов (23 бит)

Когда ЦП производит доступ к пространству данных, он использует адреса слов, которые соответствуют определенным 16 - разрядным словам. Данные адреса 23 - разрядные. Следующий рисунок показывает строку 32- разрядной памяти. Каждое слово соответствует адресу. Слово 0 располагается по адресу 00 0100h, а слово 1 по адресу 00 0101h.

Адреса слов

Слово 0

Слово 1

00 0100h-00 0101h

Шины адреса являются 24 - разрядными шинами. Когда ЦП считывает из пространства данных (или записывает в него), адрес в 23 бита объединяется с 0. Например, допустим, что инструкция считывает слово по 23 - разрядному адресу 00 0102h. Соответствующая шина адреса чтения данных пересылает 24 - разрядное значение 00 0204h:

Адрес слова:

000 0000 0000 0001 0000 0010

Шина адреса чтения данных:

0000 0000 0000 0010 0000 0100

3.3.2

Типы данных

Набор инструкций управляет следующими типами данных:

Байт

8 бит

Слово

16 бит

Длинное слово

32 бита

Определенный синтаксис инструкции (смотрите таблицу 3-1) позволяет выбрать старшие или младшие байты конкретных слов. Инструкция загрузки байта считывает байты и загружает их в регистры. Считанные байты дополняются нулями (если использован операнд uns()) или дополняются знаковыми разрядами до сохранения (запоминания). Инструкции хранения байта сохраняет 8 младших бит регистра в определенный байт в памяти.

Пространство данных

3-6

Замечание:

В пространстве данных ЦП использует адреса в 23 бита для доступа к словам. Для доступа к байтам ЦП должен манипулировать словом, которое содержит данный байт.

Таблица 3-1. Инструкции загрузки и хранения байта

Синтаксис инструкции

Доступные байты

Функционирование

MOV [uns(]high_byte(Smem)[)], dst

Smem(15-8)

Загрузка байта

MOV [uns(]low_byte(Smem)[)], dst

Smem(7-0)

(Инструкции загрузки буферного, вспомогательного регистра и регистра аккумулятора)

MOV high_byte(Smem) << #SHIFTW, ACx

Smem(15-8)

MOV low_byte(Smem) << #SHIFTW, ACx

Smem(7-0)

MOV src, high_byte(Smem)

Smem(15-8)

Хранение байта

MOV src, low_byte(Smem)

Smem(7-0)

(Инструкции хранения буферного, вспомогательного регистра и регистра аккумулятора)

Когда ЦП обращается к длинному слову, адрес, применяемый для доступа, является адресом старшего слова (MSW) 32 - разрядного значения. Адрес младшего слова (LSW) зависит от адреса MSW:

 Если адрес MSW четный, то доступ к LSW осуществляется по следующему адресу. Например:

Адреса слов

00 0100h-00 0101h

MSW

LSW

 Если адрес MSW нечетный, то доступ к LSW производится по предыдущему адресу. Например:

Адреса слов

00 0100h-00 0101h

LSW

MSW

Заданный адрес MSW (LSW) дополняет свой младший бит для нахождения адреса LSW (MSW).

Пространство данных

3-7

Память и пространство I/O

3.3.3

Организация данных в пространстве данных

Далее следующие таблица и рисунок приводят пример организации данных в пространстве данных. Семь значений данных различного размера хранятся в 32 - разрядной памяти. Значения данных не хранятся по адресу 00 0100h. Важные замечания о примере:

 Для доступа к длинному слову вы должны обратиться к старшему слову (MSW). С доступно по адресу 00 0102h. D доступно по адресу 00 0105h.

 Адреса слов применяются для доступа к байтам в пространстве данных. Например, адрес 00 0107h используется как для F (старший байт), так и для G (младший байт). Инструкции специальных байтов показывают, к какому из двух байтов был совершен доступ (старшему или младшему).

Значение данных

Тип данных

Адрес

A

Байт

00 0100h (младший байт)

B

Слово

00 0101h

C

Длинное слово

00 0102h

D

Длинное слово

00 0105h

E

Слово

00 0106h

F

Байт

00 0107h (старший байт)

G

Байт

00 0107h (младший байт)

Адреса слов

Слово 0

Слово 1

00 0100h-00 0101h

A

B

00 0102h-00 0103h

MSW C (биты 31-16)

LSW C (биты 15-0)

00 0104h-00 0105h

LSW D (биты 15-0)

MSW D (биты 31-16)

00 0106h-00 0107h

E

F

G

Пространство I/O

3-8

3.4

Пространство I/O

Пространство I/O обособленно от пространства данных/программ и доступно лишь для регистров периферии на DSP. Разрядность адресных слов – 16, таким образом адресуемое пространство составляет 64К.

Пространство I/O

Адреса

0000h-FFFFh

64K слова

ЦП использует шину адреса чтения данных DAB для чтения и шину адреса записи данных EAB для записи. Когда ЦП считывает из пространства I/O (или записывает в него), адрес в 16 бит объединяется с начальным 0. Например, предположим, что инструкция считывает слово по 16 - разрядному адресу 0102h. DAB переносит 24 - разрядное значение 00 0102h.

Загрузчик системы

3-9

Память и пространство I/O

3.5

Загрузчик системы

Загрузчик системы на кристалле обеспечивает опции для передачи кода и данных из внешнего источника в ОЗУ внутри C55x DSP по сбросу/включению питания. Например, загрузчик системы TMS320VC5510 DSP позволяет вам загрузить ОЗУ по одному из следующих способов:

 Из внешней 16 - или 32 - разрядной асинхронной памяти

 Через усовершенствованный интерфейс хост порта (EHPI)

 Через многоканальный буферный последовательный порт 0 (с 8 - или 16 - разрядными элементами)

Для просмотра списка опций загрузки для конкретного C55x DSP и для получения информации о выборе опций обращайтесь к технической документации DSP. Чтобы понять, как утилита шестнадцатиричного преобразования C55x может помочь вам с загрузкой системы, смотрите TMS320C55x Руководство пользователя инструментов языка ассемблера (SPRU280).