Читайте также:
|
|
Два генератора адреса данных DAG выставляют адреса памяти, когда данные памяти пересылаются в или из регистров ввода или вывода. Каждый генератор адреса сохраняет до четырех указателей адреса. Генератор адреса данных 1 может генерировать адреса только для памяти данных (DM - Data Memory). Генератор адреса даннных 2 может генерировать адреса либо для памяти данных, либо для памяти программ (PM - Program Memory). В данном процессоре используется модифицированная Гарвардская архитектура (SHARC - Super Harvard ARChitecture), которая предполагает разделение памяти и шин команд и данных, но по шине команд могут передаваться как инструкции, так и данные. Имея два генератора адреса данных процессор может одновременно генерировать два адреса для выборки двух операндов.
Для работы нейросети характерны операции с двумя операндами (например, самая часто используемая операция - умножение значения на входе нейрона и соответствующего ему весового коэффициента), поэтому возможность выборки двух операндов за один машинный цикл позволяет значительно увеличить скорость, эмуляции нейросети. Для этого, конечно, требуется распределение перемножаемых чисел по разным банкам внутренней памяти, но это ограничение для нейросети легко выполнить, так как операции с весами проводятся отдельно от операций с входными величинами. Кроме выборки операндов необходимо проводить выборку очередной инструкции. Если шина адреса команд (PM address bus) и шина команд (PM data bus) заняты, то выборка второго операнда в этом же цикле невозможна. Поэтому микропроцессор содержит кэш команд на 32 48-ми битных инструкции. Если текущая инструкция находится в кэше, то выборки из памяти команд не происходит и шины свободны для выбора второго операнда в этом же цикле.
Таким образом используемая модифицированная Гарвардская архитектура позволяет эффективно работать с большими объемами обрабатываемых данных с малыми потерями на обращение к памяти. Объем внутренней памяти 1 Мбит позволяет реализовывать нейросети, достаточно большие для широкого применения.
Система команд ADSP-21161 как и большинства других цифровых сигнальных микропроцессоров содержит арифметическую команду умножения с накоплением (C = A · B + C), причем можно указать число выполнений в цикле и правила изменения индексов для адресации A и B. Эта команда должна быть выполнена для каждого входа нейрона при просчете реакции сети. Данный микропроцессор поддерживает циклические буферы, при работе с которыми обеспечивается автоматическое изменение адресов.
Подобная работа обеспечивается наличием индексных регистров I, регистров модификации M, регистров длины буфера L и базовых регистров B. Всего существует по 16 регистров каждого из перечисленных типов, причем первые восемь (I 0¼ I 7, M 0¼ M 7, ¼) связаны с DAG1, а вторые (I 8¼ I 15, M 8¼ M 15, ¼) - с DAG2. При адресации с циклическим буфером регистр L инициализируется длиной буфера. Регистр L связан с соответствующим регистром I (I 0 связан с L 0 и т.д.). Каждый раз, когда выбирается регистр I, соответствующий регистр L обеспечивает устройство адресации по модулю информацией о длине буфера. Если сумма значений регистра M и регистра I пересекает границу буфера, модифицированное значение регистра I вычисляется логическим устройством адресации по модулю с использованием значения длины L.
В таблице описана работа циклического буфера.
M > 0 | I = I + M | При I + M < B + L |
I = I + M - L | При I + M ³ B + L | |
M < 0 | I = I + M | При I + M ³ B + L |
I = I + M + L | При I + M < B + L |
Таблица 1: Работа циклического буфера
Подобная архитектура позволяет гибко управлять порядком обращения к элементам циклического буфера.
Дата добавления: 2015-09-05; просмотров: 63 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Применение DSP для построения нейросред. | | | Возможность работы в мультимикропроцессорных конфигурациях. |