Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AiPSP_ekzamen_main.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.38 Mб
Скачать

9. Карта памяти adsp-2106x. Пространства внутренней памяти, памяти многопроцессорной системы и внешней памяти. Пространство памяти iop-регистров.

Общее пространство памяти разбито на 3 части:

  1. Internal memory. Внутреннее статическое ОЗУ на кристалле (SRAM). Имеет размер 4 Мбит, который могут быть сконфигурированы для доступа к 16,32,48 разрядным физических ячейкам памяти. Организовано в виде двух блоков Block0 и Block1. Память называется внутренней двух портовой, т.к. имеется возможность независимого доступа от процессорного ядра и процессора ввода вывода к этой памяти. За один такт возможно два обращения к памяти.Имеет независимые доступ от процессорного ядра (Core) и IOP-процессора

  2. Multiprocessor memory. Пространство памяти многопроцессорной системы. Отображает внутреннюю память других процессоров. Используется в многопроцессорной системе

  3. External memory. Внешняя память. Адресное пространство для подключения микросхем ОЗУ (DRAM) и ПЗУ (или Flash).

Карта памяти ADSP-21060:

Физически не существует адресного пространства многопроцессорной системы. Это адресное пространство, на которое отображается адресное пространство других процессоров. Этот интервал адресов используется, если в системе несколько процессоров. У каждого свой идентификатор. Для каждого процессора выделен диапазон интервалов адресов. Размер этого интервала совпадает с размером внутренней физической памяти.

Последний слот – адреса широковещательной записи. Используется для синхронизации. При записи значения в этом слоте – значение будет записано во все процессоры по одному и тому же адресу.

Пространство внешней памяти используется для подключения внешних микросхем памяти (ОЗУ) и ПЗУ/Flash. Имеется возможность взаимодействия с микросхемами типа SRAM и DRAM. Внешняя память организована в виде 4-х банков одинакового размера и «небанкируемой» (unbanked) памяти. Каждый банк – отдельная микросхема.

Банк № 0 начинается с адреса 0x0040 0000. Область небанкируемой памяти – сюда отображается флэш память или ПЗУ из которой загружается наша программа.

Все банки имеют одинаковый размер. Размер кодируется 4-битовым полем MSIZE:

Размер_банка = 2(MSIZE + 13)

Выбор необходимого банка памяти (микросхемы) осуществляется сигналом на линиях MS3-0.

Общий размер адресной памяти 4Гслова.- мы может адресовать столько слов.

Адресное пространство внутренней памяти(более углублённо):

Первая – область памяти процессоров ввода/вывода, большая часть которой зарезервирована. Работа с этими регистрами осуществляется просто как запись/чтение в/из памяти.

BLOCK0, BLOCK1 : Физически эта область памяти ОДНА, но доступ к этой памяти может осуществляться разными способами:

-доступ к 32/48 разрядным значениям – пространство нормальных слов

-доступ как к 16 разрядным значениям – пространство коротких слов

Физически не существуют пространства коротких слов – оно проецируется на пространство нормальных слов.

10. Физическая организация внутренней памяти. Блоки памяти. Возможные виды конфликтов при обращении к внутренней памяти и способы их устранения. Адресация нормальных и коротких слов.

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

Вся внутренняя память организована в виде столбцов. Каждый столбец имеет ширину 16 битов. Каждый столбец может быть склеен либо с соседним, либо с двумя соседними столбцами, в зависимости от того, как мы хотим конфигурировать ячейки физической памяти, т.е. либо 48-разрядные(тогда можно хранить инструкции, данные повышенной точности), либо 32. Если мы работаем с 48 разрядными словами, то мы склеиваем вместе три столбца и т.п. Если один столбец уже склеен с другим, то нельзя использовать его часть для склейки с другим столбцом. Из этого возможны случаи, когда отдельные столбцы выпадают из обращения. Например, если склеиваем по 3 группы(48 разрядов), то выпадает последний столбец. Как правило в блоке 0 располагаются инструкции, т.к. программный секвенсор обращается к памяти по шине PM.

48-битные слова: 3 столбца на группу -> 5 групп -> 8К х 5 = 40К слов

32-битные слова: 2 столбца на группу -> 8 групп -> 8К х 8 = 64К слов

16-битные слова: 1 столбец на группу -> 16 групп -> 8К х 16 = 128К слов

Конфликты при доступе к внутренней памяти (приводят к дополнительным циклам ожидания):

  • конфликт использования одной шины;

  • конфликт использования одного блока;

  • Примеры нежелательного размещения сегментов и организации доступа к памяти в программе:

Размещение

Пример инструкции

Комментарии

Буфер № 1 (I1, M1) в Block0, Инструкции в Block0

compute, Rx = DM(I1, M1);

Конфликт доступа по разным шинам к одному блоку

Буфер № 2 (I8, M8) в Block1, Инструкции в Block0

compute, Rx = PM(I8, M8);

Конфликт доступа по одной шине к разным блокам

При выполнении 1 команды выполняет две операции доступа к памяти. Одна явно- обращение за данными по шине DM. Вторая неявная, связанная с работой программного секвенсора, который пытается извлечь следующую инструкцию, которая тоже располагается в блоке 0. Решением является расположение данных в блоке 1.

При выполнении 2 команды. Выполняет чтение данных по шине PM, вторая операция выполняется в неявном виде -> извлекается инструкция программным секвенсором, который всегда использует шину PM/

11. Структура адреса памяти. Пространство памяти мультипроцессорной системы ADSP-2106x. Пространство внешней памяти. Организация работы с внешней памятью ADSP-2106x. Банки памяти. Реализация задержек при обращении к внешней памяти.

Структура адреса памяти подробно изображена на рисунке

где:

0-16 биты – сам адрес

17-18 биты – в каком пространстве находится ( 00 – адрес IOP (I/O Processor) регистра, 01 – в пространстве нормальных слов, 1х (х значит неважно 0 или 1) – в пространстве коротких слов)

19-21 биты – во внутренней памяти какого процессора находится ( 000 – этого же процессора, <>0 – ID процессора во внутренней памяти которого находится, 111 – во внутренней памяти всех процессоров)

22-23 для PM 22-31 для DM биты – внешняя или внутренняя память ( =0 – во внутренней этого или другого процессора, <>0 - во внешней памяти.

Пространство памяти мультипроцессорной системы (Multiprocessor Memory Space) используется для отображения на единое адресное пространство (в многопроцессорной системе) внутренней памяти каждого процессора. Для доступа к области памяти другого процессора через Multiprocessor Memory Space используется общая внешняя шина.

Процессор определяет, что выставленный на внешнюю шину адрес попадает в его внутреннюю память если ID2-0 = M (смотрим схему структуры адреса памяти). При обращении к собственной памяти через MMS внешняя шина не используется.

Если поле M адреса = 111, то выполняется операция “broadcast write”, т.к. 111 это значит, что адрес находится во внутренней памяти всех процессоров. MMS доступен только с использованием процессорного ядра.

Пространство внешней памяти (External Memory Space) используется для подключения внешних микросхем памяти (ОЗУ) и ПЗУ/Flash. Имеется возможность взаимодействия с микросхемами типа SRAM и DRAM. Пространство внешней памяти доступно для процессорного ядра и IOP-процессора. Передача данных по внешней шине изображена на рисунке ниже

Внешняя память организована в виде 4-х банков одинакового размера и «небанкируемой» (unbanked) памяти. Банк № 0 начинается с адреса 0x0040 0000. Все банки имеют одинаковый размер. Размер кодируется 4-битовым полем MSIZE:

Размер_банка = 2(MSIZE + 13)

Выбор необходимого банка памяти (микросхемы) осуществляется сигналом на линиях MS3-0. Область небанкируемой памяти расположена после последнего банка (доступ к ней – при MS3-0 = 0000). Поле MSIZE (в IOP-регистре SYSCON) находится на 5 позиции слева (0xuuuuXuuu).

При взаимодействии с «медленными» микросхемами внешней памяти для описания времени задержки и режима доступа могут использоваться поля EBxWM и EBxWS:

- EBxWS – количество дополнительных тактов ожидания (wait states) при доступе к банку внешней памяти (000b...110b);

- EBxWM – режим доступа к банку внешней памяти (00b...11b):

Режим

EBxWM

Описание

External

00

Ожидание сигнала ACK

Internal

01

Доступ всегда выполняется (EBxWS+1) тактов

Both

10

Ожидание совместного выполнения первых двух условий

Either

11

Ожидание выполнения хотя бы одного из первых двух условий

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]