Организация памяти СП. Доступ к памяти. Блоки памяти
Федеральное Агентство образования Российской Федерации Пензенский государственный университет Кафедра "Информационная безопасность систем и технологий"
РЕФЕРАТ
по теме:
"Организация памяти СП. Доступ к памяти. Блоки памяти.
Внешняя память. Кэш-память "
Дисциплина: ЦиМПТ
Группа:
Выполнил:
Руководитель работы:
Пенза 2006
Содержание
Введение
Метод двойного доступа к памяти
Кэш-команды и обращение к данным по шине памяти
Шины памяти и генерация адресов
Обращение к блоку памяти и конфликты
Ограничения при обращении к пространству памяти
Интерфейс внешней памяти
Банки внешней памяти
Небанковая память
Выбор начальной загрузки памяти
Синхронизация обращения к внешней памяти
Внешняя память
Шины памяти и генерация адресов
Обмен данными между шинами памяти
Пространство внутренней памяти ADSP-21062
Пространство внутренней памяти ADSP-21061
Пространство памяти многопроцессорной системы
Заключение
Введение
Для хранения программ и данных процессоры ADSP-2106x имеют большой объем двухпортовой памяти, расположенной на кристалле. Память делится на два блока, которые называются блок 0 и блок 1. Объем памяти, доступной в процессорах ADSP-2106x, приведен ниже:
Характеристики SRAM |
ADSP-21060 |
ADSP-21062 |
ADSP-21061 |
Полный объем |
4 Мбит |
2 Мбит |
1 Мбит |
Объем блока |
2Мбит |
1 Мбит |
0.5 Мбит |
число 48-разрядных слов |
|||
на блок |
40 Кслов |
20 Кслов |
8 Кслов |
число 32-разрядных слов |
|||
на блок |
64 Кслова |
32 Кслова |
16 Кслов |
число 16-разрядных слов |
|||
на блок |
128 Кслов |
64 Кслова |
32 Кслова |
Через внешний порт процессора ADSP-2106x можно адресовать до 4 гигаслов дополнительной памяти, находящейся вне кристалла.
32-разрядные слова используются для представления данных с плавающей точкой одиночной точности стандарта IEEE.48-разрядные слова содержат команды или 40-разрядные данные с плавающей точкой повышенной точности. Кроме того, для представления целочисленных или дробных данных ADSP-2106х поддерживает формат 16-разрядных коротких слов.
В каждом процессоре ADSP-2106x память соединяется с другими функциональными устройствами через три внутренние шины: шину памяти программы (РМ), шину памяти данных (DM), шину ввода-вывода (I/O). Шина РМ и шина DM совместно используют один порт памяти, а шина I/O - другой. Внутренние шины РМ и DM управляются ядром процессора, шина I/O управляется устройством ввода-вывода (ЮР), расположенным на кристалле ADSP-2106x. Шина I/O позволяет осуществлять параллельную передачу данных между любым блоком памяти и портами связи ADSP-2106x (линк-портами, последовательными портами и внешним портом).
При такой двухпортовой структуре обращения к внутренней памяти ядра процессора и устройства ввода-вывода осуществляются независимо по отношению друг к другу. В одном цикле к каждому блоку памяти могут обращаться и ядро процессора, и устройство ввода-вывода, причем когда ядро процессора и устройство ввода-вывода обращаются к одному и тому же блоку, то дополнительных циклов не требуется.
Ядро процессора и устройство ввода-вывода имеют доступ к внешним шинам (DATA>47> >0>, ADDR>310>) через внешний порт ADSP-2106x. Внешний порт обеспечивает доступ к памяти, размещенной вне кристалла, и к периферийным устройствам. Через него можно обращаться к внутренней памяти других ADSP-2106х, соединенных в многопроцессорную систему. Схема соединения с общей шиной позволяет реализовывать одно объединенное адресное пространство, в котором могут храниться и код, и данные.
Внешняя память может быть 16-, 32 - или 48-разрядная; контроллер прямого доступа в память (DMA) автоматически упаковывает внешние данные в слова соответствующей разрядности: 48-разрядные команды или 32-разрядные данные. Заметим, что внутренняя память разделена на два блока, называемые блок 0 и блок 1, а внешнее пространство памяти разделено на четыре банка.
Метод двойного доступа к памяти
В процессорах семейства ADSP-2100 и ADSP-21000 память традиционно разделяется на память программы (для хранения команд) и на память данных (для хранения данных). Для модифицированной гарвардской архитектуры процессоров характерна возможность хранения данных в памяти программы. В ADSP-2106x поддерживается разделение расположенных на кристалле шин на отдельные шины: для памяти программы и памяти данных (как в семействе ADSP-21000), но не ограничивается использование одного из двух блоков памяти для хранения программы, а другого - для хранения данных. Такая организация позволяет свободно конфигурировать память для хранения различных комбинаций кода и данных.
Наличие независимых шин памяти программы и памяти данных позволяют ядру процессора ADSP-2106x одновременно обращаться к командам и данным в обоих блоках памяти. Если необходимо обратиться к двум словам в одном и том же блоке памяти (по одной и той же шине) с помощью одной команды, то потребуется дополнительный цикл. Команды выбираются из памяти по шине памяти программы или из кэша команд. К данным можно обращаться по шине памяти данных (используя DAG1) и по шине памяти программы (используя DAG2). Схема соединения шин в ADSP-2106x показана на рис.5.1.
Два блока памяти процессоров ADSP-2106x могут быть сконфигурированы для хранения различных комбинаций 48-разрядных команд и 32-разрядных данных. Тем не менее, максимальная эффективность (т.е. выполнение двух команд доступа к данным за один цикл) достигается, когда в одном блоке находятся команды и данные памяти программы, а в другом блоке - только данные памяти данных. Это означает, что для команды, требующей двух обращений к данным, шина РМ (и DAG2) будет использоваться для обращения к данным из блока, содержащего и команды, и данные, а шина DM (и DAG1) будет использоваться для обращения к данным из блока, содержащего только данные, причем выбираемая команда должна быть доступна из кэша. Другой способ состоит в том, чтобы хранить один операнд во внешней памяти, а другой - в любом блоке внутренней памяти.
При реализации цифровых фильтров и быстрого преобразования Фурье (FFT) с использованием процессоров при выполнении некоторых команд должны быть доступны два операнда данных. В цифровом фильтре, например, коэффициенты фильтра могут храниться в виде 32-разрядных слов в том же самом блоке памяти, который содержит 48-разрядные команды, в то время как 32-разрядные выборки данных хранятся в другом блоке. Это позволяет выполнить в одном цикле команду с двойным доступом к данным, когда коэффициенты фильтра выбираются по шине РМ с использованием DAG2, а команда - из кэша.
Чтобы обеспечить параллельный доступ к двум областям памяти за один цикл, необходимо выполнить следующие условия:
два адреса должны размещаться в различных блоках памяти (т.е. один в блоке 0, другой в блоке 1);
один адрес должен генерироваться DAG1, а другой - DAG2;
адрес DAG1 не должен указывать на тот же самый блок памяти, из которого будет выбрана команда;
команда должна быть следующего типа:
Compute, Rx=DM (10-17, М0-М7), Ry=PM (18-115, М8-М15); (Заметим, что чтение и запись взаимозаменяемы).
Запомните, что если в течение передачи с использованием DAG2 выбираемой команды нет в кэше, то произойдет неудачное обращение к кэшу.
Кэш-команды и обращение к данным по шине памяти
Обычно в ADSP-2106x команды выбираются по 48-разрядной шине данных памяти программы (PMD). Однако когда процессор выполняет команду с двойным доступом к данным, которая требует, чтобы данные считывались или записывались по шине PMD, то возникает конфликт при использовании этой шины. Кэш команд позволяет разрешить этот конфликт, обеспечивая команду (если только она сохранилась в кэше после того, как была выполнена первый раз).
Обеспечивая команду, кэш позволяет ядру процессора обратиться к данным по шине PMD; ядро процессора выбирает команду из кэша вместо того, чтобы выбирать ее из памяти, так что в процессоре одновременно с выбором команды могут передаваться данные по шине PMD. В кэш помещаются только те команды, при выборе которых из памяти возникает конфликт с обращением к данным по шине PMD.
Кэш команд позволяет осуществлять обращение к данным по шине РМ без дополнительных циклов, если команда, которая должна быть выбрана, уже кэширована. Даже если команда и данные находятся в различных блоках памяти, но для их выборки используется одна и та же шина, то в случае неудачного обращения к кэшу всегда будет добавляться дополнительный цикл.
Шины памяти и генерация адресов
В процессоре ADSP-2106x есть три внутренние шины, соединенные с его двухпортовой памятью: шины РМ, DM и шина I/O. Шины РМ и DM совместно используют один порт памяти, а шина I/O - другой порт.
Программный автомат и генераторы адреса данных (DAG1 и DAG2) формируют адреса памяти. Программный автомат выводит 24-разрядный адрес на шину РМ для выбора команды. DAG1 и DAG2 обеспечивают адреса для чтения и записи данных (см. рис.5.1).
Два генератора адреса данных позволяют выполнять косвенную адресацию данных. DAG1 выводит 32-разрядный адрес на шину адреса DM. DAG2 вырабатывает 24-разрядный адрес для обращения к данным по шине данных РМ. DAG1 и DAG2 могут генерировать адреса одновременно - по шине РМА и шине DMA - для двойных операндов чтения/записи, если команда, которая должна быть выбрана, доступна из кэша.
48-разрядная шина PMD используется для передачи команд (и данных), 40-разрядная шина DMD используется для передачи данных. Разрядность шины PMD - 48 бит в соответствие с длиной командного слова. Когда эта шина используется для передачи 32-разрядных данных с плавающей точкой или 32-разрядных данных с фиксированной точкой, то данные выравниваются к 32 старшим разрядам шины.
40-разрядная шина DMD обеспечивает путь для передачи за один цикл содержимого любого регистра в процессоре в любой другой регистр или в любую ячейку внешней памяти. Адреса данных берутся из одного из двух источников: абсолютной величины, определенной в команде (прямая адресация), или с выхода генератора адреса данных (косвенная адресация).32-разрядные данные с фиксированной точкой и 32-разрядные данные с плавающей точкой одиночной точности также выравниваются к 32 старшим разрядам шины.
Регистры РХ, соединяющие шины, позволяют выполнять обмен данными между 48-разрядной шиной PMD и 40-разрядной шиной DMD или между 40-разрядным регистровым файлом и шиной PMD. Эти регистры содержат аппаратные средства для устранения различия в разрядности шин.
Три шины: РМ, DM и I/O - объединяются во внешнем порте процессора, образуя вне кристалла одиночные шины данных (DATA47_0) и адреса (ADDR31 _0)
Обращение к блоку памяти и конфликты
По любой из трех внутренних шин ADSP-2106x можно обращаться к одному из блоков внутренней памяти в любое время. К каждому блоку двухпортовой памяти может обратиться и ядро процессора (по шине РМ или шине DM), и устройство ввода-вывода (по шине I/O) за один цикл. Если ядро процессора и устройство ввода-вывода обращаются к одному и тому же блоку памяти, то дополнительных циклов не требуется.
Однако когда ядро процессора осуществляет два обращения к одному блоку памяти в одном и том же цикле, например, по шине РМ (используя программный автомат или DAG2) и по шине DM (используя DAG1), то возникает конфликт. Если это происходит, то требуется дополнительный цикл. Сначала выполняется обращение по шине DM, а затем в дополнительном цикле выполняется обращение по шине РМ.
Ограничения при обращении к пространству памяти
Три внутренних шины (DM, РМ и I/O) ADSP-2106x могут использоваться для обращения к карте памяти процессора согласно следующим правилам:
По шине DM можно обращаться ко всему пространству памяти.
По шине РМ можно обращаться только к пространству внутренней памяти и к 12 младшим мегасловам пространства внешней памяти.
По шине I/O можно обращаться ко всему пространству памяти, за исключением отображенных в карте памяти регистров ЮР (в пространстве внутренней памяти).
Заметим, что в Версии кристалла 1.0 (Silicon Revision 1.0) и более ранних версиях при операции адресации с предмодификацией не должно изменяться пространство памяти адреса. Например, предмодификация адреса в пространстве внутренней памяти не должна давать адрес в пространстве внешней памяти. Есть одно исключение из этого правила: команда косвенного перехода (JUMP) или команда вызова (CALL) с пред-модификацией адреса могут вызывать переход из внутренней памяти во внешнюю. Версии кристалла 2.0 (Silicon Revision 2.0) и более поздние версии не имеют ограничений на предмодификацию.
Интерфейс внешней памяти
Процессор ADSP-2106x обеспечивает адресацию через внешний порт до 4 гигаслов памяти, расположенной вне кристалла. Это внешнее адресное пространство включает пространство памяти многопроцессорной системы (память на кристалле других ADSP-2106x, объединенных в многопроцессорную систему), а также пространство внешней памяти (область памяти, расположенной вне кристалла).
Сигналы управления памятью позволяют осуществлять прямое соединение с быстрыми статическими устройствами памяти (SRAM). Могут также использоваться отображенные в карте памяти периферийные устройства и более медленная память с определяемой пользователем комбинацией программируемых состояний ожидания и аппаратных сигналов подтверждения связи. Выводы SBTS (перевод шины в третье состояние) и PAGE (граница страницы) могут использоваться для интерфейса с динамической памятью (DRAM).
Во внешней памяти могут храниться и команды, и данные. Внешняя шина данных (DATA47) должна быть 48-разрядной для передачи команд и/или 40-разрядных данных с плавающей точкой повышенной точности, или 32-разрядной для передачи данных с плавающей точкой одиночной точности. Если внешняя память содержит только данные или упакованные команды, которые будут передаваться по DMA, то внешняя шина данных может быть 16 - или 32-разрядной. В системе такого типа устройство ввода-вывода процессора ADSP-2106х осуществляет распаковку входящих данных и упаковку выходящих данных.
Банки внешней памяти
Внешняя память разделена на четыре равных банка; каждый из этих банков связан с собственным генератором состояний ожидания. Это позволяет отображать более медленные периферийные устройства в карту памяти того банка, для которого определено конкретное число состояний ожидания. Отображая периферийные устройства в различных банках, вы можете обеспечить работу устройств I/O, которые имеют различные требования к синхронизации.
Банк 0 начинается с адреса 0x0040 0000 во внешней памяти, за ним следуют банки 1, 2 и 3. Когда ADSP-2106x генерирует адрес, находящийся внутри одного из четырех банков, то активизируются соответствующие линии выбора памяти MSo.
Выводы могут использоваться как выбор кристалла для памяти или других внешних устройств, устраняя тем самым необходимость во внешней декодирующей логике. MSo обеспечивает линию выбора банка динамической памяти DRAM, когда он используется в комбинации с сигналом PAGE (см. "Обнаружение границы страницы DRAM").
Размер банков памяти может быть от 8 килослов до 256 мегаслов и должен быть равен степени двойки. Выбор размера банка памяти выполняется с помощью поля бит MSIZE регистра SYSCON следующим образом:
MSIZE = log, (желаемый размер банка) - 13.
Линии MSi-o ~ линии декодированного адреса памяти, состояние которых изменяется в то же самое время, что и у других линий адреса. Когда нет обращения к внешней памяти, то линии MS-i-o неактивны. Однако они активны, когда выполняется условная команда обращения к памяти, независимо от того, истинно условие или нет.д.ля обеспечения правильной работы условные команды записи в память не должны применяться в системах, использующих сигнал SW > если такое обращение в память не может быть прервано.
Заметим, что внутренняя память ADSP-2106x разделена на два блока, называемые блок 0 и блок 1, в то время как пространство внешней памяти разделено на четыре банка.
Небанковая память
Область памяти выше банков 0-3 называется небанковым пространством внешней памяти. Для доступа в это адресное пространство линии выбора памяти MS>X> не выставляются. Доступ к небанковому пространству памяти может также иметь состояния ожидания, определенные в полях UBWS и UBWM регистра WAIT.
Выбор начальной загрузки памяти
Сигнал на линии выбора памяти J3MS выставляется (низкий уровень), только когда ADSP-2106x сконфигурирован для начальной загрузки из EPROM. Это позволяет осуществлять начальную загрузку из отдельного внешнего пространства памяти. Состояния ожидания небанковой памяти и режим состояния ожидания используются для обращения устройств, определяемых сигналом J3MS.
Вывод J3JV1S управляется только ведущим ADSP-2106x.
Синхронизация обращения к внешней памяти
Синхронизация доступа к памяти для пространства внешней памяти и пространства памяти многопроцессорной системы описана ниже. Для получения точных технических данных по синхронизации обращайтесь к Перечню технических характеристик ADSP-2106x.
Внешняя память
ADSP-2106x может взаимодействовать с внешней памятью и с отображенными в карте памяти периферийными устройствами асинхронно, т.е. независимо от CLKIN. В многопроцессорной системе ADSP-2106x должен быть ведущим для того, чтобы обращаться к внешней памяти.
Чтение из внешней памяти происходит в следующей последовательности ADSP-2106x выводит адрес чтения и выставляет сигнал выбора памяти (MSj-o) чтобы указать выбранный банк. Сигнал выбора памяти не сбрасывается междупоследовательными обращениями в один и тот же банк памяти.
ADSP-2106x выставляет строб чтения (если обращение в память не прерывается из-за условной команды).
ADSP-2106x проверяет, необходимы ли состояния ожидания. Если да, то сигнал выбора памяти и строб чтения остаются активными на дополнительный (ые) цикл (ы). Наличие состояний ожидания определяется состоянием сигнала внешнего подтверждения (АСК), внутренним программируемым счетчиком состояний ожидания или комбинацией обоих.
ADSP-2106x фиксирует данные.
ADSP-2106x сбрасывает строб чтения.
При инициализации другого обращения к памяти ADSP-2106x выводит адрес и сигнал выбора памяти в следующем цикле.
Заметим, что если считывание из памяти является частью условной команды, которая не выполняется из-за того, что условие ложно, то ADSP-2106x выводит адрес и сигнал выбора памяти для чтения, но не выставляет строб чтения и не считывает данные.
Запись во внешнюю память, режим ведущего Запись во внешнюю память происходит в следующей последовательности:
ADSP-2106x выводит адрес записи и выставляет сигнал выбора памяти, чтобы указать выбранный банк. Сигнал выбора памяти не сбрасывается между последовательными обращениями в один и тот же банк памяти.
ADSP-2106x выставляет строб записи и выводит данные (если обращение в память не прерывается из-за условной команды).
ADSP-2106x проверяет, необходимы ли состояния ожидания. Если да, то сигнал выбора памяти и строб записи остаются активными на дополнительный (ые) цикл (ы). Наличие состояний ожидания определяется состоянием сигнала внешнего подтверждения (АСК), внутренним программируемым счетчиком состояний ожидания или комбинацией обоих.
ADSP-2106x сбрасывает строб записи в конце цикла.
ADSP-2106x переводит свои выводы данных в третье состояние.
При инициализации другого обращения к памяти ADSP-2106x выводит адрес и сигнал выбора памяти в следующем цикле.
Заметим, что если запись в память является частью условной команды, которая не выполняется из-за того, что условие ложно, то ADSP-2106x выводит адрес и сигнал выбора памяти для записи, но не выставляет строб записи и не выводит никаких данных.
Шины памяти и генерация адресов
В процессоре ADSP-2106x есть три внутренние шины, соединенные с его двухпортовой памятью: шины РМ, DM и шина I/O. Шины РМ и DM совместно используют один порт памяти, а шина I/O - другой порт.
Программный автомат и генераторы адреса данных (DAG1 и DAG2) формируют адреса памяти. Программный автомат выводит 24-разрядный адрес на шину РМ для выбора команды. DAG1 и DAG2 обеспечивают адреса для чтения и записи данных (см. рис.5.1).
Два генератора адреса данных позволяют выполнять косвенную адресацию данных. DAG1 выводит 32-разрядный адрес на шину адреса DM. DAG2 вырабатывает 24-разрядный адрес для обращения к данным по шине данных РМ. DAG1 и DAG2 могут генерировать адреса одновременно - по шине РМА и шине DMA - для двойных операндов чтения/записи, если команда, которая должна быть выбрана, доступна из кэша.
48-разрядная шина PMD используется для передачи команд (и данных), 40-разрядная шина DMD используется для передачи данных. Разрядность шины PMD - 48 бит в соответствие с длиной командного слова. Когда эта шина используется для передачи 32-разрядных данных с плавающей точкой или 32-разрядных данных с фиксированной точкой, то данные выравниваются к 32 старшим разрядам шины.
40-разрядная шина DMD обеспечивает путь для передачи за один цикл содержимого любого регистра в процессоре в любой другой регистр или в любую ячейку внешней памяти. Адреса данных берутся из одного из двух источников: абсолютной величины, определенной в команде (прямая адресация), или с выхода генератора адреса данных (косвенная адресация).32-разрядные данные с фиксированной точкой и 32-разрядные данные с плавающей точкой одиночной точности также выравниваются к 32 старшим разрядам шины.
Регистры РХ, соединяющие шины, позволяют выполнять обмен данными между 48-разрядной шиной PMD и 40-разрядной шиной DMD или между 40-разрядным регистровым файлом и шиной PMD. Эти регистры содержат аппаратные средства для устранения различия в разрядности шин.
Три шины: РМ, DM и I/O - объединяются во внешнем порте процессора, образуя вне кристалла одиночные шины данных (DATA47_0) и адреса (ADDR31 _0).
Обмен данными между шинами памяти
Регистр РХ обеспечивает обмен данными между внутренними шинами: между 48-разрядной шиной PMD и 40-разрядной шиной данных DMD.48-разрядный регистр РХ состоит из двух регистров: 16-разрядного РХ1 и 32-разрядного РХ2. РХ1 и РХ2 могут независимо использоваться в командах, а также рассматриваться как объединенный регистр РХ.
Любой из двух регистров РХ1 и РХ2 или объединенный регистр РХ могут использоваться при передаче данных между универсальными регистрами или между памятью и регистром. Эта передача данных может выполняться по шине PMD или по шине DMD. Регистры РХ могут считываться в регистровый файл данных или записываться из него по шине PMD или по шине DMD.
При передаче данных с использованием регистра РХ данные выравниваются в нем так, как показано на рис.5.3. Когда данные передаются между РХ2 и шиной PMD, то используются 32 старших разряда шины. При передаче данных из РХ2 16 младших разрядов шины PMD заполняются нулями. Когда данные передаются между РХ1 и шиной PMD, то используются 16 средних разрядов шины РМ. При передаче данных из РХ1 биты 15-0 и биты 47-32 заполняются нулями. Когда объединенный регистр РХ используется для передачи данных по шине PMD, то все 48 разрядов могут считываться из памяти программы или записываться в нее. РХ2 содержит 32 старших разряда, а РХ1 содержит 16 младших разрядов 48-разрядного слова.
Например, если необходимо записать по шине PMD 48-разрядное слово в область памяти, называемую Portl, то можно использовать следующие команды:
R0=0x9A00; /* загрузка в R0 16 младших бит */
Rl=0xl2345678; /* загрузка в R1 32 старших бита */ PX1=RO; PX2=R1;
РМ (Portl) =РХ; /* запись 16 младших бит битами 15-0 */
/*и 32 старших бита битами 47-16 шины PMD */
Пространство внутренней памяти ADSP-21062
Объем памяти процессоров ADSP-21062 и ADSP-21060 различен (см. ниже)
Процессор Общий
Объем Максимальный
Объем Максимальный объем памяти
памяти данных памяти программы ADSP-21060 4Мбита128 К х 3280 К х 48
ADSP-21062 2Мбита64 К х 3240 К х 48
Память в ADSP-21062 разделена на два равных блока - блок 0 и блок 1, таким же образом, как и в ADSP-21060. Пространство памяти многопроцессорной системы и пространство внешней памяти у процессоров ADSP-21062 и ADSP-21060 одинаковы.
Блок 0 в ADSP-21062 располагается в адресном пространстве нормальных слов, начиная с адреса 0x0002 0000, блок 1-е адреса 0x0002 8000. Карта 2-х Мбит внутренней памяти ADSP-21062 приведена на рис.5.7а и в табл.5.2а. Диапазон адресов псевдонимов блока 1 будет фактически располагаться в блоке 1, 0x0002 8000 - 0x0002 FFFF в адресном пространстве нормальных слов, 0x0005 0000 - 0x0005 FFFF в адресном пространстве коротких слов.
Пространство внутренней памяти ADSP-21061
Объем памяти у процессоров ADSP-21061 и ADSP-21060 различен (см. ниже).
Процессор |
Общий объем |
Максимальный объем |
Максимальный объем |
памяти |
памяти данных |
памяти программы |
|
ADSP-21060 |
4 Мбита |
128 К х 32 |
80 К х 48 |
ADSP-21062 |
1 Мбит |
32 К х 32 |
16 К х 48 |
Память, расположенная на кристалле процессора ADSP-21061, разделена на два равных блока, блок 0 и блок 1, так же как и память ADSP-21060. Пространство памяти многопроцессорной системы и пространство внешней памяти у процессоров ADSP-21061 и ADSP-21060 одинаковы.
Блок 0 процессора ADSP-21061 располагается в адресном пространстве нормальных слов, начиная с адреса 0x0002 0000, блок 1-е адреса 0x0002 4000. Карта памяти для 1 Мбита внутренней памяти ADSP-21061 показана на рис.5.7б и в таблице 5.2б. Диапазон адресов псевдонимов блока 1 будет фактически располагаться в блоке 1, 0x0002 4000 - 0x0002 7FFF в адресном пространстве нормальных слов, 0x0004 8000 - 0x0004 FFFF в адресном пространстве коротких слов.
Для облегчения перенесения кодов между процессорами ADSP-2106x используется система создания псевдонимов блока 1, которая устраняет необходимость в изменении кодов. Например, блок 0 в ADSP-21062 начинается в пространстве адресов нормальных слов с адреса 0x0002 0000. Блок 1 в ADSP-21062 начинается в конце блока 0 со смежными (продолжающимися) адресами. Остающиеся адреса во внутренней памяти делятся на блоки, называемые псевдонимами блока 1. Создание псевдонимов позволяет сохранять любой код или данные из блока 1 в ADSP-21060 по тем же самым адресам в ADSP-21062 - эти адреса будут псевдонимами фактического блока 1 процессора. Подобная структура создания псевдонимов формируется и в ADSP-21061. (см. карты памяти для процессоров ADSP-21061 и ADSP-21062).
Пространство памяти многопроцессорной системы
Пространство памяти многопроцессорной системы отображается во внутреннюю память других процессоров ADSP-2106x в многопроцессорной системе. Это позволяет каждому ADSP-2106x обращаться к внутренней памяти и к отображенным в карте памяти регистрам ЮР других процессоров.
Когда поле адреса Е нулевое, а поле М ненулевое, то образуется адрес пространства памяти многопроцессорной системы, как показано на рис.5.5. Значение поля М определяет идентификатор (Ш, о) того внешнего процессора ADSP-2106x, к которому будет осуществляться обращение, и только этот процессор будет реагировать на циклы чтения/записи. Если поле М=111, то выполняется широковещательная запись во все процессоры. Все процессоры реагируют на этот адрес, как если бы использовался идентификатор, разрешающий запись в их внутреннюю память.
Вместо прямого обращения к собственной внутренней памяти ADSP-2106x может также обращаться к ней через пространство памяти многопроцессорной системы, используя собственный ID. В этом случае процессор просто считывает из собственной внутренней памяти или записывает в нее и не делает попытку доступа по внешней системной шине, (заметим, что это обращение к собственной внутренней памяти через пространство памяти многопроцессорной системы осуществляется только по адресу, сгенерированному ядром процессора, а не по адресу, сгенерированному контроллером DMA).
Если оба поля Е и М адреса на внешней шине нулевые, тогда адрес будет игнорироваться. Исключение составляет только случай, когда ID процессора также не равен нулю, т.е. М=Ш, 0=000. Адреса с М=Ш, 0=000 разрешены только в системах с одним процессором.
Если ADSP-2106x пытается обратиться по ошибочному адресу в пространство памяти многопроцессорной системы, то запись данных будет проигнорирована, а при считывании будут получены неправильные данные.
Организация внутренней памяти и размер слова Во внутренней SRAM размещаются следующие типы слов:
48-разрядные команды, 32-разрядные данные с плавающей точкой, 16-разрядные короткие слова данных.
40-разрядные слова данных с плавающей точкой повышенной точности размещаются в 48-разрядных словах.40 бит выравниваются по левому краю (биты 47-8).
Если ядро процессора обращается к своей внутренней памяти, то размер слова определяется согласно следующим правилам:
При выборке команды всегда считывается 48-разрядное слово;
При чтении/записи с использованием адресации нормальных слов производятся операции с 32-разрядными или 48-разрядными словами в зависимости от того, как блок памяти сконфигурирован в регистре SYSCON;
При чтении/записи с использованием адресации коротких слов всегда производятся операции с 16-разрядными словами;
При чтении/записи регистра РХ по шине РМ (DAG 2) всегда производятся операции с 48-разрядными словами (если не используется адресация коротких слов);
При чтении/записи регистра РХ по шине DM (DAG 1) всегда производятся операции с 40-разрядными словами (если не используется адресация коротких слов).
В программе не должно выполняться обращение к одной и той же физической ячейке памяти как к 32-разрядному слову и как к 48-разрядному слову. Во внутренней памяти используется схема обратной записи, в результате чего возникают ошибки, если происходит такой вид обращения.
Ограничения при обращении к пространству памяти Три внутренние шины (РМ, DM и I/O) могут использоваться для обращения к карте памяти процессора в соответствии со следующими правилами:
По шине памяти данных (DM) можно обращаться во все пространства памяти.
По шине памяти программы (РМ) можно обращаться только к пространству внутренней памяти и младшим 12 мегасловам пространства внешней памяти.
По шине ввода-вывода (I/O) можно обращаться во все пространства памяти, за исключением отображенных в карте памяти регистров ЮР (в пространстве внутренней памяти).
Заметим, что в Версии кристалла 1.0 (Silicon Revision 1.0) и ранее операция адресации с пред-модификацией не должна изменять адресуемое пространство памяти. Например, пред-модификация адреса в пространстве внутренней памяти ADSP-2106x не должна генерировать адрес в пространстве внешней памяти. Есть одно исключение из этого правила: команда косвенного перехода (JUMP) или команда вызова (CALL) с пред-модификацией адреса могут вызывать переход из внутренней памяти во внешнюю. Версии кристалла 2. x (Silicon Revision 2. x) и позднее не имеют этих ограничений.
Смешивание 32-х и 48-разрядных слов в блоке памяти 32-разрядные данные и 48-разрядные команды могут храниться в одном блоке памяти при условии, что адреса всех команд младше адресов данных. Ни одна команда не может храниться по адресу старше, чем самый младший адрес любого слова данных. Это ограничение необходимо для предотвращения перекрытия адресов 32-разрядных и 48-разрядных слов. Команды должны храниться, начиная с младшего адреса блока.
Короткие 16-разрядные слова При считывании 16-разрядных коротких слов в регистры ADSP-2106x слова автоматически расширяются до 32-разрядных чисел.16 старших разрядов заполняются нулями или дополняются по знаку. Это определяется значением бита SSE в регистре MODEL Если SSE=0, то 16 старших разрядов заполняются нулями. Если SSE=1, то 16 старших разрядов дополняются по знаку (исключением является считывание короткого слова из регистра РХ - в этом случае старшие разряды всегда заполняются нулями).
Заключение
Процессор ADSP-21060 содержит 4 Мбита статической оперативной памяти, организованной как два блока по 2 Мбита, которые могут конфигурироваться для различных комбинаций хранения кода и данных. ADSP-21062 содержит 2 Мбита памяти, 2 блока по 1 Мбиту В одном цикле к каждому блоку памяти могут независимо обращаться ядро процессора и устройство ввода-вывода или контроллер DMA. Использование двухпортовой памяти и отдельных шин позволяет выполнить за один цикл две передачи данных из ядра и одну из устройства ввода-вывода.
Обращение к памяти может выполняться к 16-разрядным, 32-разрядным или 48-разрядным словам. В ADSP-21060 память может содержать максимум 128 килослов 32-разрядных данных, 256 килослов 16-разрядных данных, 80 килослов 48-разрядных команд (и 40-разрядных данных) или комбинацию слов различной разрядности объемом до 4 Мбит. В ADSP-21062 память может содержать максимум 64 килослова 32-разрядных данных, 128 килослов 16-разрядных данных, 40 килослов 48-разрядных команд (и 40-разрядных данных) или комбинацию слов различной разрядности объемом до 2 Мбит. В ADSP-21061 память может содержать максимум 32 килослова 32-разрядных данных, 64 килослова 16-разрядных данных, 16 килослов 48-разрядных команд (и 40-разрядных данных) или комбинацию слов различной разрядности, объемом до 1 Мбита.
Поддерживается формат хранения 16-разрядных данных с плавающей точкой, что удваивает количество данных, которые могут храниться на кристалле. Преобразование между 32-разрядным форматом с плавающей точкой и 16-разрядным форматом с плавающей точкой выполняется с помощью одной команды.
Хотя каждый блок памяти может хранить комбинации кода и данных, обращение к памяти выполняется наиболее эффективно, когда в одном блоке хранятся данные и для их передачи используется шина DM, а в другом блоке - команды и данные, а для их передачи используется шина РМ. Такое использование шины DM и шины РМ - где каждой выделен блок памяти - гарантирует выполнение за один цикл двух передач данных. В этом случае команда должна быть доступна из кэша. Передача операнда данных через внешний порт также происходит за один цикл.
Интерфейс внешней памяти и периферийных устройств Внешний порт процессора ADSP-2106x обеспечивает интерфейс с внешней памятью и периферийными устройствами.4 гигаслова внешнего адресного пространства включаются в объединенное адресное пространство ADSP-2106x. Раздельные шины на кристалле - адреса РМ, данных РМ, адреса DM, данных DM, адреса I/O и данных I/O - объединяются во внешнем порте и образуют внешнюю системную шину с одной 32-разрядной шиной адреса и одной 48-разрядной шиной данных. Внешняя SRAM может быть как 16, 32, так и 48-разрядной; расположенный на кристалле контроллер DMA автоматически упаковывает внешние данные в слова соответствующей разрядности: либо 48-разрядные команды, либо 32-разрядные данные.
Адресация внешней памяти облегчается за счет декодирования старших адресных линий для генерирования сигналов выбора банка памяти. Для упрощения адресации динамической оперативной памяти (DRAM) со страничной организацией генерируются отдельные сигналы управления. Процессор ADSP-2106x использует программируемые состояния ожидания при обращении к внешней памяти и сигналы квитирования для внешней памяти, чтобы обеспечить интерфейс с DRAM и периферийными устройствами с различным быстродействием.