Пространство внутренней памяти ADSP-21060

Пространство внутренней памяти ADSP_21060 показано на рис. 5.6. Эта память состоит из трех областей адреса:

Регистры IOP с 0x0000 0000 по 0x0000 00FF

Адреса нормальных слов с 0x0002 0000 по 0x0003 FFFF

Таблица векторов прерываний с 0x0002 0000 по 0x0002 007F

Адреса коротких слов с 0x0004 0000 по 0x0007 FFFF

Регистры IOP _ это 256 отображенных в карте памяти регистров, которые управляют конфигурацией системы ADSP_2106x, а также различными операциями ввода_вывода. Адресное пространство между адресами регистров IOP и адресами нормальных слов с 0x0000 0100 по 0x0001 FFFF является не используемой памятью, и в него нельзя производить запись.

Блок 0 располагается в начале пространства адресов нормальных слов _ с адреса

0x0002 0000. Блок 1 располагается в середине _ с адреса 0x0003 0000.

0x0000 0000 _ 0x0000 00FF Регистры IOP (регистры управления/состояния)

0x0000 0100 _ 0x0001 FFFF Зарезервированные адреса

0x0002 0000 _ 0x0002 FFFF Блок 0 – Адреса нормальных слов (32_разрядные,48_разрядные слова)

0x0003 0000 _ 0x0003 FFFF Блок 1 – Адреса нормальных слов (32_разрядные, 48_разрядные слова)

0x0004 0000 _ 0x0005 FFFF Блок 0 – Адреса коротких слов (16_разрядные слова)

0x0006 0000 _ 0x0007 FFFF Блок 1 – Адреса коротких слов (16_разрядные слова)

Таблица 5.1. Адреса внутренней памяти ADSP-21060

Адресное пространство нормальных слов и адресное пространство коротких слов, фактически, занимают одну и ту же физическую память. Например, адрес нормального слова 0x0002 0000 (при обращении к 32_разрядным данным в адресном пространстве нормальных слов) обозначает то же самое местоположение, что и адреса короткого слова 0x0004 0000 и 0x0004 0001.

К 4 Мбитам памяти процессора ADSP_21060 можно обращаться с использованием адресации нормальных слов, адресации коротких слов или их комбинации. Адреса нормальных слов лежат в диапазоне от 0x0002 0000 до 0x0003 FFFF и занимают 4 Мбита памяти, если слова 32_разрядные (128 К x 32). Диапазон адресов нормальных слов, если слова 48_разрядные (80 К x 48), также занимает 4 Мбита памяти, но в конце блока 0 и блока 1 есть «несуществующие»

адреса (более подробно о физическом расположении 48_разрядных и 32_ разрядных слов в памяти см. в разделе «Организация внутренней памяти и размер слова»). Адреса коротких слов лежат в диапазоне от 0x0004 0000 до 0x0007 FFFF и занимают точно 4 Mбита памяти (256 К x 16).

Для адресации нормальных слов каждый 2_Мбитный блок памяти содержит 64 К адресуемого пространства (для 32_разрядных слов данных), а для адресации коротких слов каждый 2_Мбитный блок содержит 128 К адресуемого пространства.

Адреса нормальных и коротких слов могут генерироваться по всем трем шинам:

DM, РМ и I/O. Генерация адреса коротких слов выполняется по шине I/O, когда внешнее устройство считывает из внутренней памяти ADSP_2106x или записывает в нее (это не относится к передачам по DMA).

Возможность адресации коротких слов позволяет увеличить объем 16_разрядных данных, которые могут храниться во внутренней памяти, а также позволяет адресовать 32_разрядные данные, разделяя их на старшее слово (MSW) и младшее слово (LSW). При считывании из памяти 16_разрядные короткие слова расширяются до 32_разрядных и могут либо дополняться по знаку в старших разрядах, либо заполняться нулями в младших разрядах (это определяется

битом SSE в регистре MODE1).

Таблица векторов прерываний ADSP_2106x размещается в начале адресного

пространства нормальных слов (с 0x0002 0000 по 0x0002 007F), когда начальная загрузка процессора выполняется из внешнего источника (из EPROM, хост_процессора или через линк_порт). Если процессор находится в режиме «нет начальной загрузки», то таблица векторов прерываний размещается во внешней памяти (с 0x0040 0000 по 0x0040 007F). Если бит

IIVT в регистре SYSCON установлен, то таблица векторов прерываний постоянно находится во внутренней памяти независимо от режима начальной загрузки.

Физическая организация памяти:

Каждый 2_Мбитный блок памяти процессора ADSP_21060 физически организован как шестнадцать 16_разрядных столбцов объемом 8 Кслов каждый. Для 48_разрядных команд

требуются три смежных столбца памяти, для 32_разрядных слов данных требуются два смежных столбца. Для 16 требуется 1 столбец.

При чтении из памяти или записи в память нужные столбцы выбираются в зависимости от разрядности слова, к которому происходит обращение. Для 48_разрядных слов 16_разрядные столбцы группируются по три. В блоке памяти, состоящем целиком из 48_разрядных слов, получается: 16 столбцов + 3 столбца в группе = 5 групп.

В итоге имеется пять доступных групп; один столбец (16_й) не используется.

Т. о., 2_Мбитный блок памяти ADSP_21060, который полностью состоит из 48_разрядных слов, обеспечивает:8 К × 5 групп = 40 Кслов для хранения команд.

Для 32_разрядных слов данных столбцы группируются по два. В блоке памяти, целиком состоящем из 32_разрядных слов: 16 столбцов + 2 столбца в группе = 8 групп.

Получается 8 доступных групп; неиспользуемых столбцов нет. Таким образом, 2_Мбитный блок памяти ADSP_21060, который полностью состоит из 32_разрядных слов, обеспечивает:

8 К × 8 групп = 64 Кслова для хранения данных.

Память ADSP_21061 размещается в восьми 16_разрядных столбцах, следовательно, подобные вычисления можно проделать и для этого процессора:

4 К × 2 группы = 8 Кслов (для хранения команд)

4 К × 4 группы = 16 Кслов (для хранения данных).

На рис. 5.8 показано расположение 16_разрядных слов внутри 48_разрядных и

32_разрядных слов, а также начальные адреса для каждого столбца памяти

ADSP_21060. Конфигурация памяти для ADSP_21062 показана на рис. 5.9а, для

ADSP_21061 – на рис. 5.9б.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: