Двойной доступ к данным

В процессорах семейства ADSP_2100 и ADSP_21000 память традиционно разделяется на память программы (для хранения команд) и на память данных (для хранения данных). Для модифицированной гарвардской архитектуры процессоров характерна возможность хранения данных в памяти программы. В ADSP_2106х поддерживается разделение расположенных на кристалле шин на отдельные шины: для памяти программы и памяти данных (как в семействе ADSP_21000), но не ограничивается использование одного из двух блоков памяти для хранения программы, а другого — для хранения данных. Такая организация позволяет свободно конфигурировать память для хранения различных комбинаций кода и данных.

Наличие независимых шин памяти программы и памяти данных позволяют ядру процессора ADSP_2106х одновременно обращаться к командам и данным в обоих блоках памяти. Если необходимо обратиться к двум словам в одном и том же блоке памяти (по одной и той же шине) с помощью одной команды, то потребуется дополнительный цикл. Команды выбираются из памяти по шине памяти программы или из кэша команд. К данным можно обращаться по шине памяти данных (используя DAG1) и по шине памяти программы (используя DAG2). Схема соединения шин в ADSP_2106х показана на рис. 5.1. Два блока памяти процессоров ADSP_2106х могут быть сконфигурированы для хранения различных комбинаций 48_разрядных команд и 32_разрядных данных. Тем не менее, максимальная эффективность (т. е. выполнение двух команддоступа к данным за один цикл) достигается, когда в одном блоке находятся команды и данные памятипрограммы, а в другом блоке – только данные памяти данных. Это означает, что для команды, требующей двух обращений к данным, шина PM (и DAG2) будет использоваться для обращения к данным из блока, содержащего и команды, и данные, а шина DM (и DAG1) будет использоваться для обращения к данным из блока, содержащего только данные, причем

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

При реализации цифровых фильтров и быстрого преобразования Фурье (FFT) с использованием процессоров при выполнении некоторых команд должны быть доступны два операнда данных. В цифровом фильтре, например, коэффициенты фильтра могут храниться в виде 32_разрядных слов в том же самом блоке памяти, который содержит 48_разрядные команды, в то время как 32_разрядные выборки данных хранятся в другом блоке. Это позволяет выполнить в одном цикле команду с двойным доступом к данным, когда коэффициенты фильтра выбираются по шине РМ с использованием DAG2, а команда – из кэша.

Возможные конфликты:


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



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