Метод двойного доступа к памяти — КиберПедия 

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Метод двойного доступа к памяти

2020-04-01 73
Метод двойного доступа к памяти 0.00 из 5.00 0 оценок
Заказать работу

Метод двойного доступа к памяти

 

В процессорах семейства 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 можно обращаться к одному из блоков внутренней памяти в любое время. К каждому блоку двухпортовой памяти может обратиться и ядро процессора (по шине РМ или шине DM), и устройство ввода-вывода (по шине I/O) за один цикл. Если ядро процессора и устройство ввода-вывода обращаются к одному и тому же блоку памяти, то дополнительных циклов не требуется.

Однако когда ядро процессора осуществляет два обращения к одному блоку памяти в одном и том же цикле, например, по шине РМ (используя программный автомат или DAG2) и по шине DM (используя DAG1), то возникает конфликт. Если это происходит, то требуется дополнительный цикл. Сначала выполняется обращение по шине DM, а затем в дополнительном цикле выполняется обращение по шине РМ.

 

Интерфейс внешней памяти

 

Процессор 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 называется небанковым пространством внешней памяти. Для доступа в это адресное пространство линии выбора памяти MSX не выставляются. Доступ к небанковому пространству памяти может также иметь состояния ожидания, определенные в полях UBWS и UBWM регистра WAIT.

 

Внешняя память

 

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-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 и периферийными устройствами с различным быстродействием.

Метод двойного доступа к памяти

 

В процессорах семейства 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 выбираемой команды нет в кэше, то произойдет неудачное обращение к кэшу.



Поделиться с друзьями:

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.03 с.