Научная статья на тему 'Семейство процессоров обработки сигналов с векторно-матричной архитектурой NeuroMatrix'

Семейство процессоров обработки сигналов с векторно-матричной архитектурой NeuroMatrix Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
512
152
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Черников Владимир, Виксне Павел, Шелухин Александр, Шевченко Павел, Косоруков Дмитрий

Данная статья описывает отечественные процессоры семейства NeuroMatrix®, ориентированные на матрично-векторную обработку большого потока данных относительно небольшой разрядности (от 2 до 32 бит) в реальном масштабе времени. Характерными областями применения этих процессоров являются: обработка изображений, MPEG кодирование и декодирование, обработка радиолокационных сигналов, в том числе различные виды цифровой фильтрации, преобразование Фурье и Адамара; высокопроизводительная коммутация сигналов и т. д. Перечисленные виды обработки данных входят в широкий класс задач, называемый мультимедийными приложениями. В статье изложены основные особенности мультимедийной обработки, дается краткий обзор архитектур современных высокопроизводительных процессоров, которые используются для поддержки мультимедийных приложений, приводится краткое описание процессоров семейства NeuroMatrix®: Л1879ВМ1 (NM6403), 1879ВМ2 (NM6404) и 1879ВМ4 (NM6405).

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Черников Владимир, Виксне Павел, Шелухин Александр, Шевченко Павел, Косоруков Дмитрий

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Семейство процессоров обработки сигналов с векторно-матричной архитектурой NeuroMatrix»

Владимир ЧЕРНИКОВ, к. т. н. Павел ВИКСНЕ Александр ШЕЛУХИН Павел ШЕВЧЕНКО Аркадий ПАНФИЛОВ, к. т. н.

Дмитрий КОСОРУКОВ Антон ЧЕРНИКОВ

Основные особенности мультимедийной обработки

Считается, что в ближайшие годы основной задачей в области разработки компьютерных архитектур будет поддержка широкого класса приложений, относящихся к мультимедийной обработке [13]: 2D/3D графика, аудио- и видеосигнальная обработка, навигация, 2,5G и 3G сотовая телефония, программный приемник (Software-Defined Radio). Эти приложения характеризуются тем, что требуют обрабатывать большие потоки регулярных данных с производительностью до 10-100 млрд операций в секунду [8, 11], при этом они имеют некоторые общие особенности, которые существенно отличают их от приложений, характерных для универсальных процессоров [1, 2]:

• Обработка непрерывных потоков данных в реальном времени. При этом данные поступают на вычислитель непосредственно с приемного устройства или через внешнюю память относительно большого объема.

• Вследствие небольшого объема программного кода для его хранения обычно используется внутренняя память вычислителя.

• Значительный параллелизм на уровне данных (возможно выполнение одновременно до нескольких тысяч однотипных операций над разными данными).

Семейство процессоров обработки сигналов

с векторно-матричной архитектурой NeuroMatrix®

Данная статья описывает отечественные процессоры семейства NeuroMatrix®, ориентированные на матрично-векторную обработку большого потока данных относительно небольшой разрядности (от 2 до 32 бит) в реальном масштабе времени. Характерными областями применения этих процессоров являются: обработка изображений, MPEG кодирование и декодирование, обработка радиолокационных сигналов, в том числе различные виды цифровой фильтрации, преобразование Фурье и Адамара; высокопроизводительная коммутация сигналов и т. д. Перечисленные виды обработки данных входят в широкий класс задач, называемый мультимедийными приложениями. В статье изложены основные особенности мультимедийной обработки, дается краткий обзор архитектур современных высокопроизводительных процессоров, которые используются для поддержки мультимедийных приложений, приводится краткое описание процессоров семейства NeuroMatrix®: Л1879ВМ1 (NM6403), 1879ВМ2 ^6404) и 1879ВМ4 ^6405).

Большое количество операций по реорганизации данных (упаковка, распаковка, перестановка и т. д.), что делает затруднительным использование традиционных 8ШО-архитектур, где данные затраты могут быть слишком велики.

Небольшие циклы с вложенностью от 2 до 6 уровней. Причем 95% времени вычислений тратится на выполнение циклов с одним и двумя уровнями вложенности. Итераций циклов обычно насчитывается 10 и больше, а некоторые циклы имеют сотни и тысячи итераций.

Большое количество одновременно выполняемых обращений не только к внутренней, но и к внешней памяти.

40% и 51% используемых в приложениях данных представлены соответственно в 8-разрядном и 16-разрядном целочисленных форматах. Только 9% используемых данных являются 32-разрядными (как целочисленными, так и с плавающей точкой одинарной точности).

Не более 3-4% от общего числа команд — это команды с плавающей точкой одинарной точности. Причем используются они в основном только для 2Б/30 графики. Плавающая точка двойной точности практически не применяется.

Большее количество арифметических операций, приходящихся на одну операцию

ввода/вывода по сравнению с приложениями для универсальных процессоров.

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

Архитектуры современных процессоров, предназначенных для работы с мультимедийными приложениями

В настоящем разделе рассматриваются особенности реализации мультимедийных приложений на различных архитектурах современных высокопроизводительных процессоров. pSIMD-архитектура Данное название применяется для SIMD-расширений систем команд универсальных суперскалярных процессоров, таких как MMX, SSE1 и SSE2 (Intel), VIS (Sun), 3D Now! (AMD), AltiVec (Motorola). В систему команд этих процессоров введены операции над векторами В-, 1б- или 32-разрядных данных, упакованных в б4- или 12В-разрядные слова. Тем самым за один такт производится несколько

вычислений над данными небольшой разрядности. Для мультимедийных приложений такие SIMD-расширения позволяют ускорить вычисления в 1,0-5,5 раза в зависимости от конкретной задачи [3]. Однако вычислительные возможности аппаратуры, вводимой для поддержки SIMD-расширений, используются всего лишь на 1-12% [2]. Это объясняется тем, что аппаратно поддерживаются только арифметические операции. Остальные же операции (ввод/вывод данных, упаковка/распаковка, перестановка, организация циклов), доля которых достигает 75-85% от общего числа команд, эффективно не реализуются. Кроме того, SIMD-расширения не поддерживаются компиляторами языков высокого уровня, поэтому основные функции для мультимедийных приложений пишутся на языке ассемблера. Появление новых расширений, таких как SSE1 и SSE2, позволило увеличить пиковую производительность в два раза (например, байтовых операций за такт можно сделать 16, а не 8, как было при использовании MMX), поддержать вычисления с плавающей точкой. Но в основном ситуация осталась той же. Так, Pentium 4 на мультимедийных приложениях показывает ускорение всего в 1,139-2,362 раза в зависимости от конкретной задачи, если использует SSE2-расширение [4].

^SIMD-расширения, несмотря на ограниченное использование параллелизма на уровне данных, довольно широко распространены, поскольку требуют относительно небольших аппаратных затрат для своей реализации. В настоящее время они используются не только в универсальных процессорах, но и в микропроцессорах для встроенных применений (архитектуры MIPS и ARM), а также в высокопроизводительных VLIW DSP (TigerSharc фирмы Analog Devices, StarCore фирм Motorola и Lucent, TMS320C6x фирмы Texas Instruments).

Известно несколько архитектурных решений, позволяющих существенно повысить производительность универсальных процессоров при выполнении мультимедийных приложений. Так, в работе [16] предлагается MediaBreeze-расширение, которое поддерживает не только арифметические операции над упакованными данными небольшой разрядности, но и обеспечивает организацию циклов, а также ввод/вывод потоков данных. При этом достигается ускорение в 1,05-16,7 раза по сравнению с универсальным процессором с обычным SIMD-расширением. В ряде работ [5, 6] описывается переход от одномерного SIMD-расширения к двухмерному, когда операции задаются не над векторными регистрами, а над матрицами (несколькими векторными регистрами) и аккумулятором, хранящим матрицу промежуточных результатов. Это расширение получило название MOM (Matrix Oriented Multimedia). Его использование дает ускорение до 3,3 раз [5], а общее число используемых команд уменьшается в среднем на 45%, поскольку одна MOM команда заме-

няет группу |iSIMD команд. При этом сильно уменьшаются затраты на организацию циклов [6]. Оба упомянутых выше решения предполагают переход от обработки коротких векторов к векторно-конвейерной обработке, а сами архитектурные принципы построения таких расширений очень похожи на решения, используемые в архитектуре процессоров семейства NeuroMatrix®.

VLIW-архитектура

Данная архитектура характеризуется тем, что содержит команды, каждая из которых задает одновременное выполнение нескольких операций на различных функциональных узлах процессора. При этом поиск операций, одновременное выполнение которых можно задать с помощью одной команды, возлагается на компилятор, а не реализуется аппаратно, как в динамических суперскалярных процессорах. VLIW-архитектура позволяет существенно упростить управляющую аппаратуру и достичь производительности, сравнимой с производительностью динамических супер-скалярных процессоров. Исследования показывают, что VLIW DSP (TMS320C6x фирмы Texas Instruments) выполняет мультимедийные задачи в 0,63-9 раз быстрее, чем супер-скалярный процессор Pentium II без |iSIMD-расширения на той же тактовой частоте [3]. Вместе с тем, динамические суперскалярные процессоры с ^SIMD-расширением имеют в среднем на 64% выше производительность на мультимедийных приложениях, чем VLIW-процессоры [6]. Это объясняется тем, что современные компиляторы не способны обеспечить параллелизм на уровне команд и данных на том же уровне, что и динамические суперскалярные процессоры. Кроме того, наличие большого количества функциональных узлов, работающих одновременно, предполагает использование большого многопортового регистрового файла, который занимает много места на кристалле, ограничивает быстродействие процессора и заметно увеличивает его потребляемую мощность. Поэтому по аппаратным затратам высокопроизводительные VLIW-процессоры сравнимы с су-перскалярными процессорами.

В настоящее время микропроцессоры и DSP с VLIW-архитектурой широко используются для встроенных применений, поскольку для решения конкретной задачи можно разработать свой VLIW-процессор, использующий необходимое число функциональных вычислительных узлов и узлов ввода/вывода, и тем самым обеспечить необходимую производительность при заданных ограничениях на потребляемую мощность. Однако для разных приложений требуются VLIW-процессоры с различным составом функциональных узлов, что затрудняет эффективное использование одного и того же VLIW-процессора для решения широкого класса задач.

Потоковая архитектура

Специально для решения мультимедийных приложений была предложена архитектура

потокового процессора (Stream Processor) [8]. Данный процессор содержит управляющий RISC-процессор, 8 кластеров, каждый из которых состоит из набора функциональных устройств и локальных регистров, большого потокового регистрового файла и нескольких каналов ввода/вывода для работы с внешней памятью. Обмен между кластерами, а также между конкретным кластером и памятью осуществляется только через потоковый регистровый файл. Считается, что введение такого регистрового файла в качестве дополнительного уровня иерархии памяти способно значительно снизить требования к пропускной способности внешней памяти. Управление осуществляется SIMD-командами, способными задать одновременное выполнение до 48 арифметических операций во всех кластерах. Программирование осуществляется на языке высокого уровня, после чего компилятор в программе выделяет куски программного кода, содержащие однородную обработку данных — так называемые потоки (streams), которые затем выполняются на отдельных кластерах.

На частоте 180 МГц такой процессор достиг производительности 2,8-6,2 млрд операций в секунду на реальных мультимедийных задачах, обойдя на порядок Pentium 4 по показателю производительность/потребляемая мощность. Основной проблемой для потокового процессора является отсутствие компиляторных технологий, способных эффективно задействовать его вычислительные ресурсы. В настоящее время для написания программ используется специальное расширение языка Си.

Векторно-конвейерная архитектура

До недавнего времени процессоры с векторно-конвейерной архитектурой использовались в суперкомпьютерах для решения больших научных задач. После того как было обнаружено, что мультимедийные приложения хорошо векторизуются, было предложено использовать данный тип процессоров для решения этого класса задач. Представителями таких процессоров являются VIRAM университета в Беркли [10] и EVP (Embedded Vector Processor) фирмы Philips [11]. Считается, что по сравнению с процессорами других архитектур векторно-конвейерные процессоры могут наиболее эффективно решать мультимедийные задачи [1, 9, 11, 13]. Это объясняется тем, что для указанных процессоров уже существуют большие наработки в области компиляторов, а также тем, что они могут обеспечить требуемую производительность при небольшом потреблении питания. Так, VIRAM в 2 раза быстрее 4-way динамического суперскалярного процессора, работающего на частоте в 5 раз больше и потребляющего на порядок больше [10]. Это достигается тем, что векторно-конвейерные процессоры более приспособлены решать задачи с высокой степенью параллелизма по данным, чем универсальные вычислители [9, 10].

Несмотря на то, что первые запускают на выполнение одну команду за такт, благодаря использованию многотактовых векторных команд реально одновременно может выполняться большое количество операций на множестве функциональных устройств либо независимо, либо с «зацеплением», когда результат одной команды нужен для второй. При этом управляющая логика оказывается гораздо проще, чем у суперскалярных процессоров, что позволяет наращивать производительность векторно-конвейерных процессоров за счет использования большего числа функциональных устройств без уменьшения тактовой частоты и практически без потери эффективности использования аппаратуры. Хочется отметить, что при добавлении некоторых свойств универсальных процессоров, таких как переименование векторных регистров и внеочередное выполнение команд (out-of-order execution), векторноконвейерные процессоры способны работать с памятью, имеющей задержку выборки данных в 1GG тактов, с падением производительности всего на б% [12].

Одной из основных трудностей для векторно-конвейерной архитектуры является реализация большого количества многопортовых векторных регистров (обычно 1б—32 векторных регистра, содержащих до 12В 1б-разряд-ных элемента), что требует больших аппаратных затрат. Кроме того, имеются трудности с анализом запуска команды на выполнение и синхронизации выполнения различных команд, использующих одни и те же векторные регистры.

Процессоры семейства NeuroMatrix® также относятся к классу векторно-конвейерных вычислителей, поскольку используют многотактовые векторные команды аналогичным образом. Отличие в том, что вместо векторных регистров общего назначения применяются специализированные FIFO и входные векторные регистры, что позволяет значительно сократить аппаратные затраты, упростить логику управления и синхронизации выполняемых операций. Использование FIFO дает возможность легко организовать «зацепление» по данным для двух одновременно выполняемых команд, одна из которых готовит результат для другой. Для их синхронизации достаточно отследить флаги FIFO: первая команда выполняется, пока FIFO не полно, а вторая — пока не пусто. Похожее архитектурное решение используется в MediaBreeze-расширении для универсальных процессоров, а наличие в процессорах NeuroMatrix® аккумуляторного FIFO, хранящего матрицу промежуточных или окончательных результатов, делает их похожими на MOM (Matrix Oriented Multimedia) расширение.

Вместе с тем, использование FIFO для синхронизации вычислительных процессов характерно для архитектуры с «расщеплением» потока команд (decoupled architecture) [14]. Эта архитектура обеспечивает механизм дина-

мического внеочередного выполнения команд (out-of-order execution), как в суперскаляр-ных процессорах, с гораздо меньшими затратами на управление, также она способна не терять производительность при увеличении времени доступа в память. Считается, что ее широкому распространению мешает неэффективная работа с программами, содержащими большой процент команд управления. Одно из решений предлагает использовать мультитредовость [15]. Мы, как и авторы статьи [16], считаем, что для мультимедийных приложений использование многотактовых векторных команд позволит преодолеть данный недостаток, поскольку команды управления могут выполняться на фоне работы векторных команд.

Кроме того, процессоры NeuroMatrix® используют команды типа VLIW, задающие одновременно операции обмена с памятью, модификацию адресных регистров и арифметическую операцию, причем это относится как к скалярным, так и к векторным командам. Объединение в одной команде операций ввода/вывода и арифметической операции позволяет увеличить производительность скалярных команд на реальных задачах до 40% [17], но для векторных команд это решение, по нашим оценкам, особый выигрыш не дает.

Все вышесказанное позволяет отнести процессоры семейства NeuroMatrix® к новому классу вычислителей, а именно — к векторно-конвейерным DSP. Они обладают высокой производительностью при обработке больших потоков данных, требуют меньших аппаратных затрат, чем универсальные векторно-конвейерные процессоры, и, как следствие, имеют меньшее потребление питания. Платой за это является невозможность использования векторных команд компилятором языка высокого уровня. Так же как для ^SIMD-расширений универсальных процессоров, на ассемблере пишется библиотека функций, использующих векторные команды, и затем эти функции вызываются программами пользователя, написанными на языке высокого уровня.

Описание архитектуры процессоров семейства NeuroMatrix®

Научно-техническим центром «Модуль» разработано семейство цифровых процессоров сигналов NeuroMatrix, в том числе Л1879ВМ1 (NM6403) и 1879ВМ2 (NM6404). Дальнейшее развитие семейства связано с завершением разработки и запуском на изготовление в 2006 году процессора третьего поколения 1879ВМ4 (NM6405). Особенностью данного семейства является оригинальная, запатентованная векторно-матричная архитектура, обеспечивающая высокое соотношение производительности и цены устройств. Следует особо подчеркнуть, что это полностью отечественная разработка.

Процессоры семейства ІВ79ВМх представляют собой высокопроизводительные вычислительные устройства, имеющие RISC-архитектуру с элементами VLIW (Very Long Instruction Word), SIMD (Single Instruction Multiple Data) и суперскаляра. Архитектура и структура обеспечивают: аппаратную поддержку матричных и векторных операций над векторами, представляющими собой б4-разрядные слова, в которых упакованы данные, представленные в дополнительном коде с фиксированной точкой; программную настройку исполнительных узлов для работы с векторами данных, содержащих необходимое количество элементов требуемой разрядности (в общем случае количество элементов в векторе и их разрядность должны принимать любое значение в пределах от 1 до б4, суммарная разрядность всех элементов каждого вектора должна составлять б4 разряда); исполнение векторных команд в течение нескольких процессорных тактов, число которых (от 1 до 32) определяется специальным полем команды.

Процессор Л1879ВМ1 В течение уже более семи лет выпускается и широко применяется цифровой микропроцессор сигналов Л1В79ВМ1. Этот процессор изготавливается по КМОП технологии G,5 мкм фирмой Samsung. Он работает на частотах до 4G МГц в диапазоне температур от -4G до +В5 °С и напряжений от 3,G до 3,б В. Количество операций «умножение с накоплением», выполняемых за один процессорный такт, от 2 (32-разрядные данные) до 224 (2-разрядные данные), поэтому пиковая производительность процессора в указанных условиях составляет В,9б млрд умножений с накоплением (GMAC). В 1999 году лицензия на использование микропроцессорного ядра этого процессора была приобретена фирмой Fujitsu.

Л1В79ВМ1 поддерживает работу с 32-разрядными скалярными данными и векторными данными программируемой разрядности от 1 до б4, упакованными в б4-разрядные блоки данных. Структурная схема процессора представлена на рис. 1, а его карта памяти изображена на рис. 2.

Процессор состоит из следующих функциональных узлов:

• RISC CORE — RISC-процессор, имеющий 5-ступенчатый конвейер и выполняющий скалярные арифметические, логические операции и операции сдвига над 32-разрядными данными, а также осуществляющий управление выполнением программ.

• VECTOR UNIT — векторный узел, выполняющий арифметические и логические операции над б4-разрядными векторами данных, упакованных в б4-разрядные блоки данных произвольной разрядности.

• LMI и GMI — два идентичных б4-разряд-ных интерфейса во внешнюю память — локальную и глобальную. Каждый интерфейс имеет возможность работать с двумя банками внешней памяти типа SRAM/DRAM

LD63...LDO Л LA15...1-A1 4 LRASO/LCSO« LRAS1/LCS1 < LCASL/LWEL < LCASH/LWEH LOE« LWE/LA16 <

LHOLDO/LA17 -« LHOLDI/LA18 * LRDY/LA19ч

LOCAL DATA BUS <63 )>

GLOBAL DATA BUS <63:0>

Г

DATA BUS SWITCH

Л Л А

US V

V £9 ей г Q, , 8

►GD63...GD03

►GA15...GA1

►GRASO/GCSO

►GRAS1/GCS1

►GCASL/GWEL

►GCASH/GWEH

► GOE

►GWE/GA16

►GHOLDO/GA17

►GHOLDI/GA18

*GRDY/GA19

BOOTM, MVOE . RESET ■ CLK ■ Int" ■

INTA *4-

TIMER

RISC- -CORE CONTROL VECTOR 1 IMIT

U INN

DMA COPROCESSOR

COM. PORT 0 COM. PORT 1

гтттттп

COD7 CSTRBO, CREQO, CDIRO C1D7 CSTRB1, CREQ1, CDIR1 ... CRDYO CACKO ... CRDY1 CACK1

CODO C1D0

Рис. 1. Структурная схема процессора Л1879ВМ1

и поддерживает режим работы с общей памятью с другим процессором. Л1879ВМ1 использует 32-разрядный адрес, причем обмен данными с памятью осуществляется по 32 или 64 разряда. Таким образом, доступное адресное пространство равно 16 Гбайт. Если старший разряд адреса равен нулю, идет обращение в локальную память, если равен единице — в глобальную. Младший разряд адреса используется только при обмене 32-разрядными данными.

• COM. PORT0 и COM. PORT1 — два байтовых коммуникационных порта ввода/вывода для межпроцессорного обмена, аппаратно совместимые с портами DSP TMS320C4x фирмы Texas Instruments.

• DMA COPROCESSOR — сопроцессор ПДП, осуществляющий обмен 64-разрядными данными между памятью и портами.

• DATA BUS SWITCH — коммутатор шин данных, позволяющий динамически связать одну из внешних шин с одной из шести внутренних: команд IB<63:0>, входных SDIB<63:0> и выходных скалярных данных SDOB<63:0>, входных VDIB<63:0> и выходных векторных данных VDOB<63:0>, а также с входной шиной весов WB<63:0>. RISC-процессор

Процессор представляет собой 5-ступенчатый 32-разрядный RISC с оригинальной системой команд. Он использует 32- и 64-разрядные команды (одна команда обычно задает две операции: арифметическую и ввода/вывода). Все узлы RISC 32-разрядные.

LOCAL М EMORY GLOBAL М EMORY

Рис. 2. Карта памяти процессора Л1879ВМ1

Векторный узел

Архитектура NeuroMatrix® дает уникальную возможность варьировать между производительностью и точностью вычислений для базовой процедуры:

rt=l

В зависимости от приложения можно выбрать необходимую разрядность входных данных и результата (точность вычислений). Число умножений и сложений (MAC), выполняемых за один такт, зависит от разрядности операндов. Наибольшая производительность — 8960 MMAC — достигается при работе с 2-разрядными операндами на частоте 40 МГц. Имеется возможность поднять точность вычислений, если увеличить разрядность операндов до 32. В этом случае достигается производительность 80 MMAC с получением 64-разрядного результата. Векторный узел содержит операционное устройство

Z"=F°"00 20_' -20 “П о

20—1 Y -20

Рис. 6. Функция насыщения

INPUT

DATA[63:0]

Х,[7

Х2[7

Х3[7

Х4[7

Х5[7

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Х6[7

Х,[7

Х8[7

MB

63

COEFFICIENTS [63:0]

42 41_____________21_

20

МАСЗ

У3 [20:0]

МАС2

МАС 1

U,

U3+X,*W31 U2+X,*W21 u,+x,*w„

+X2*W32 +X2*W22 +x2*w12

+X3*W33 +x3*w23 +x3*w13

+x4*w34 +x4*w24 +x4*w14

+x5*w35 +x5*w25 +X5*W15

+x6*w36 +x6*w26 +x6*w16

+x7*w37 +x7*w27 +x,*w17

+X8*w38 +x8*w28 +Xe*w18

Y2 [20:0]

У, [20:0]

SATURATION SATURATION SATURATION

3 2 ' 1

Z3 [S*14, 7:0] Z2 [S*14, 7:0] RESULT [63:0] Z, [S*14, 7:0]

Рис. 4. Пример работы векторного узла с 8-разрядными входными данными и весами

регулярной структуры, похожее на матричный умножитель (рис. 3).

Данное устройство состоит из ячеек, содержащих 1-разрядную память (триггер) и некоторую комбинационную логику. Пользователь может поделить матрицу ячеек на макроячейки, используя два программно доступных 64-разрядных конфигурационных регистра. Эти регистры задают границы между строками и столбцами макроячеек таким образом, что каждая макроячейка выполняет операцию умножения элемента входного вектора XI на заранее загруженный вес ”^1, а затем результат прибавляется к выходному значению верхней макроячейки, расположенной в том же столбце. Таким образом, за один такт в каждом столбце независимо вычисляется свой результат. Пример конфигурации векторного узла для работы с 8-разрядными входными данными (XI) и весами ^у) приведен на рис. 4. В этом случае достигается пиковая производительность в 960 ММАС (за один 25 нс процессорный такт производятся 24 операции умножений с накоплением (МАС) с получением 21-разрядных результатов).

Число операций умножений с накоплением зависит от разрядности входных операндов и весов. Конфигурация векторного узла может меняться динамически в процессе вычислений. Можно начать вычисления с небольшой разрядностью и с большой производительностью, а затем по мере накопления разрядности в промежуточных результатах перейти к обработке данных большей разрядности за счет снижения быстродействия. На рис. 5 можно наглядно видеть, как зависит производительность от разрядности входных операндов и весов.

Операционное устройство достигает еще большей производительности при выполне-

нии булевого умножения, когда разрядность входных операндов и весов равна 1. В этом случае она равна 40,96 GMOPS на частоте 40 МГц. Имеется еще одно интересное свойство использования 1-разрядных коэффициентов. В этом случае операционное устройство превращается в мощный коммутатор, когда перестановка битов в 64-разрядном входном операнде происходит за один такт.

Загрузка новых весовых коэффициентов в операционное устройство осуществляется за 32 такта. Чтобы скомпенсировать задержку при изменении весов, используется теневая матрица. Новые коэффициенты грузятся в теневую матрицу в фоновом режиме и затем за один такт переписываются в рабочую.

Для предотвращения переполнения аппаратно реализована функция насыщения (рис. 6) над 64-разрядными словами упакованных данных, причем границы насыщения

Рис. 5. Зависимость производительности от разрядности входных операндов и весов

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

Система команд

Команды процессора делятся на две основные группы: скалярные команды (рис. 7) и векторные (рис. 8).

30 16 15 0

1

MOVE | OPER

63 32

! CONST i

Рис. 7. Кодировка скалярных команд

30 17 12

1 19 8 13_________________1

VM CO УО

OVE UNT PER

Рис. 8. Кодировка векторных команд

Скалярные команды являются обычными ИКС-командами, которые также задают условные переходы/переходы к подпрограмме и возвраты из подпрограммы/прерывания. Процессор поддерживает работу с 32-разрядными константами, которые могут грузиться в регистры или использоваться для задания адреса или смещения при обращении к памяти. Векторные команды содержат специальное поле, задающее число повторов выполнения данной команды (от 1 до 32). Это позволяет аппаратно поддержать организацию коротких циклов и значительно увеличить плотность кода.

Конвейер Л1879ВМ1 состоит из нескольких подконвейеров. Любая скалярная или векторная команда в данный момент времени занимает один или несколько подконвейеров. Если имеются необходимые свободные под-конвейеры, очередная команда может пойти на выполнение (но не более одной команды за такт). При использовании многотактовых векторных команд до четырех векторных, включая два доступа в память, и одной скалярной команды могут выполняться одновременно. Синхронизация различных подконвейеров

осуществляется с помощью механизма блокировок. Если команда требует некоторый ресурс, который в данный момент занят, формируется блокировка, и выполнение команды приостанавливается. Принадлежащие команде подконвейеры блокируются, остальные же могут продолжать свою работу. Таким образом, несмотря на последовательный запуск команды в конвейер на выполнение, использование векторных команд позволяет достичь производительности суперскалярных процессоров. Завершение команд поддерживается не в том порядке, в котором они выбирались из памяти (out-of-order execution). Вместе с тем достигается высокий уровень загрузки аппаратуры на кристалле, поскольку скалярные и векторные команды используют единый конвейер и одни и те же исполнительные устройства. При этом требуется небольшое количество управляющей логики (менее 5% от 115 000 используемых на кристалле вентилей).

В качестве примера приведем программу на ассемблере вычисления фильтра-свертки 3x3:

nb1 = 80008000h; sb = 02020202h;

<L>

rep 24 wfifo = [ar6++], ftw;

WTW_REG(gr2);

rep 32 data = [ar0++],ftw with vsum , data, 0;

WTW_REG(gr2);

rep 32 data = [ar1++],ftw with vsum , data, afifo;

WTW_REG(gr2);

rep 32 data = [ar2++] with vsum , data, afifo; if > delayed goto L with gr7--; ar6 = gr6;

rep 32 [ar4++gr4] = afifo;

Первые две команды делят операционное устройство на 4 колонки по 16 разрядов и 8 строк по 8 разрядов. Третья загружает веса в теневую матрицу, а четвертая переписывает теневую матрицу в рабочую. Затем происходит вычисление промежуточного результата свертки с использованием трех элементов первой строки маски 3x3. Шестая команда переписывает новые веса из теневой матрицы в рабочую. Потом вычисляется промежуточный результат свертки с использованием трех элементов второй строки маски 3x3 с прибавлением результата пятой команды. Восьмая команда снова меняет веса в рабочей матрице. По девятой вычисляется промежуточный результат свертки с использованием трех элементов третьей строки маски 3x3 с прибавлением результата седьмой команды. Десятая команда задает отложенный переход на начало цикла. Термин «отложенный переход» означает, что следующие две команды будут выполнены, прежде чем произойдет сам переход. Первая отложенная команда восстанавливает указатель памяти весов, а вторая пишет результат вычислений в память.

Результат сравнения производительности Л1879ВМ1 и DSP TMS320C80 фирмы Texas Instruments на задачах вычисления фильтра свертки приведен в таблице 1. Данные для TMS320C80 взяты из [18]. Важно отметить,

Таблица 1. Вычисление сверток

Свертка Л1879ВМ1 Циклы/пиксель TMS320C80 Циклы/пиксель

3x3 1,8 2,1

5x5 2,6 7,3

lxl 4,3 Нет данных

9x9 5,l Нет данных

что число циклов для Л1879ВМ1 с увеличением размера маски свертки растет линейно. Область применения и оценка производительности

Процессор Л1879ВМ1 используется в целом ряде применений, требующих большую производительность при умеренном потреблении питания:

• цифровая обработка сигналов (БПФ, ДПФ, преобразование Уолша-Адамара);

• видеообработка (фильтрация);

• эмуляция нейронных сетей и матричновекторные операции;

• телекоммуникация;

• встроенные системы;

• многопроцессорные вычислительные комплексы.

Производительность Л1879ВМ1 на тестовых задачах для DSP приведена в таблице 2. Параметры задач следующие: для фильтра Собеля размер кадра 384 288 байт; БПФ для 256 точек, разрядность — 32; преобразование Уолша-Адамара — 2 М точек, входные данные — 5 разрядов, результат — 32 разряда. Более подробно об оценке производительности Л1879ВМ1 на различных задачах можно познакомиться в работах [19-25].

Процессор 1879ВМ2

В настоящее время разработана и запущена в промышленное производство микросхема процессора цифровой обработки сигналов 1879ВМ2. Этот процессор изготавливается по более современной КМОП технологии 0,25 мкм фирмой Бщйш и отличается в два раза большей производительностью по сравнению со своим предшественником. Он работает на частотах до 80 МГц в диапазоне температур от -40 до +85 °С и напряжений для ядра процессора от 2,3 до 2,7 В и периферии от 3,0 до 3,6 В. Пиковая производительность процессора в указанных условиях составляет 17,92 млрд умножений с накоплением ^МАС). Новый процессор имеет в своем составе внутреннюю память объемом

2 Мбит и богатый набор периферийных блоков различного назначения.

По структурной организации и программным моделям отдельных узлов 1879ВМ2 практически идентичен процессору Л1879ВМ1. Структурная схема процессора представлена на рис. 9. 1879ВМ2 полностью программно совместим с процессором Л1879ВМ1. Это позволяет использовать в новом процессоре созданное для Л1879ВМ1 системное и прикладное программное обеспечение без изменений.

Ниже приводятся основные архитектурные и структурные особенности 1879ВМ2, отличающие его от своего предшественника.

1879ВМ2 содержит внутреннюю оперативную память статического типа (SRAM) общим объемом 2 Мбит, расположенную на одном кристалле с процессорными узлами (рис. 9). Наличие в 1879ВМ2 быстродействующей внутренней памяти достаточно большого объема позволяет существенно сократить количество микросхем внешней памяти, использовать более дешевые медленные микросхемы памяти, а для многих применений процессора вообще исключить использование внешней памяти. Тем самым резко снижается стоимость изделий на базе процессора 1879ВМ2.

• Внутренняя память состоит из двух одинаковых блоков памяти, каждый из которых представляет собой однопортовую синхронную SRAM, имеющую организацию 16 Кх64 бит, и может использоваться для оперативного хранения 32- и 64-разрядных слов данных, коэффициентов и команд.

• Любой цикл обращения к внутренней памяти процессора выполняется за один процессорный такт.

• В каждом такте происходит до двух обращений к внутренней или внешней памяти.

• Один банк внутренней памяти расположен в адресном пространстве локальной шины (Internal Local Memory), второй — в адресном пространстве глобальной шины (Internal Global Memory).

Карта памяти 1879ВМ2 представлена на рис. 10. Она включает в себя два адресных пространства — область адресов локальной шины и область адресов глобальной шины.

• Область адресов локальной шины охватывает:

- банк Internal Local Memory внутренней оперативной памяти данного процессора;

- до двух банков внешней памяти, подключенных к локальной шине процессора.

• Область адресов глобальной шины охватывает:

- банк Internal Global Memory внутренней оперативной памяти данного процессора;

- до двух банков внешней памяти, подключенных к глобальной шине процессора.

• Каждый банк внутренней оперативной памяти 1879ВМ2 занимает 32 K 32-разрядных или 16 К 64-разрядных ячеек. Банки внутренней памяти не доступны извне.

Таблица 2. Производительность

на тестовых задачах для DSP

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Pentium II, 300 MHz Pentium MMX, 200 MHz TMS320C40, 50 MHz ей = Л

Фильтр Собеля (кадров/с) Нет данных 21 6,8 68

БПФ (мкс) 200 Нет данных 464 102

Преобразование Уолша-Адамара (с) 2,58 2,80 Нет данных 0,45

LD63...LDO

LA19...LA0

LRASO/LCSO

LRAS1/LCS1

LCASL/LWEL

LCASH/LWEH

[oi

LWE

LRDY

INTRERNAL INTRERNAL

LOCAL GLOBAL

MEMORY MEMORY

16К*64 16K*64

ADDR DATA ADDR DATA

BOOTM, MVOE, GBIS

► GD63...GD03

► GA19...GA0

► GRASO/GCSO

► GRAS1/GCS1 ►GCASL/GWEL

► GCASH/GWEH

► GOE

► GWE

► GRDY

J 4 'TRST

4 tms

T ^ ТГК

A 4 TDI

—►TDO

G

ТТТТТТП

C0D7 CSTRBO, CREQQ, CDIRO C1D7 CSTRB1, CREQ1, CDIR1 ... CRDYO CACKO ... CRDY1 CACK1

Рис. 9. Структурная схема процессора 1879ВМ2

LOCAL MEMORY

GLOBAL MEMORY

7FFF FFFFh

8GByte-

128 KByte

External

Local

Bank

0000 8000h

Inner 0000 7FFFh

Local 128 KByte

Bank

0000 OOOOh

FFFF FFFFh

8GByte-

128 KByte

External

Global

Bank

8000 8000h

Inner 8000 7FFFh

Global 128 KByte

Bank

8000 OOOOh

Рис. 10. Карта памяти процессора 1879ВМ2

1879ВМ2 поддерживает до двух банков внешней памяти и те же режимы работы с общей памятью на внешних шинах, что и Л1879ВМ1. Отличием является лишь то, что 0-й банк внешней памяти становится на 32 К 32-разрядных или 16 К 64-разрядных ячеек

меньше, так как эти ячейки принадлежат теперь внутренней памяти.

16-19 разряды шины адресов интерфейсов с внешней памятью больше не выполняют других функций, таких как арбитраж шины, сигнал готовности, признак цикла (запись/чтение) для динамического ОЗУ, для чего добавлены соответствующие выводы. Кроме того, выводы сигналов готовности внешнего устройства (СКВУ и 1КВУ) использовались в Л1879ВМ1 как таковые только в однопроцессорной конфигурации шины, для многопроцессорной конфигурации с помощью них разрешался захват шины другим процессором. Теперь они выполняют только свою основную функцию независимо от конфигурации шины, а вторая функция реализуется с помощью двух новых выводов СИО1ВЛ и 1ИО1ВЛ.

В 1879ВМ2 используются такие же два коммуникационных порта, что и в Л1879ВМ1. Разница только в том, что 1879ВМ2 работает с 3 В сигналами и не может принимать 5 В сигналы. Это приводит к тому, что он может непосредственно обмениваться данными через коммуникационный порт с Л1879ВМ1, но не с ТМ8320С4х, поскольку последний использует питание 5 В. Кроме того, снимаются все ограничения на использование коммуникационного порта 1 во всех режимах работы, которые были введены для Л1879ВМ1 из-за аппаратной ошибки.

Вместе с тем, наличие у 1879ВМ2 внутренней памяти позволяет гарантированно принимать/передавать пакеты размером до 16 К 64-разрядных слов.

Добавлены 4 входа внешних прерываний (ШТ0-ШТ3) вместо одного, при этом таблица адрес-векторов прерываний осталась неизменной. Это означает, что любому из четырех внешних прерываний соответствует один адрес-вектор. Какое именно внешнее прерывание (или несколько внешних прерываний) обрабатывается в данный момент времени, программист может определить с помощью битов 20-26 регистра ШТИ, где теперь фиксируется состояние всех входов внешних прерываний при фиксации обобщенного запроса на внешние прерывания. Условием фиксации обобщенного запроса является появление низкого уровня на любом из входов внешних прерываний или на нескольких из них при условии, что выход подтверждения внешнего прерывания ШТЛ находится в пассивном состоянии (выдается высокий уровень). При инициализации процессора по внешнему прерыванию можно использовать любой из четырех входов внешних прерываний.

В 1879ВМ2 имеется возможность аппаратного тестирования внутренней памяти. Чтобы его активировать, необходимо во время системного сброса подать на вход режима тестирования внутренней памяти ТМ высокий

Рис. 11. Структурная схема процессора 1879ВМ4

уровень. После системного сброса запускается тест внутренней памяти, и, если он пойдет удачно, на выходе флага тестирования памяти МТБ низкий уровень сменится высоким. После этого возможна нормальная работа процессора.

Добавлен JTAG-порт (рис. 9), позволяющий существенно упростить процедуры тестирования аппаратных средств и отладки прикладного программного обеспечения.

Процессор 1879ВМ4

Дальнейшее развитие процессоров ЫеигоМа^и® связано с завершением разработки и запуском на изготовление в 2006 году процессора третьего поколения, являющегося дальнейшим развитием семейства. Он будет изготовлен по той же технологии, что и 1879ВМ2, но за счет более глубокого конвейера достигнет частоты 150 МГц в диапазоне температур от -40 до +85 °С и напряжений для ядра процессора от 2,3 до 2,7 В и периферии от 3,0 до 3,6 В. Пиковая производительность процессора в указанных условиях составляет 33,6 млрд умножений с накоплением ^МАС). Новый процессор имеет в своем составе внутреннюю память объемом 2 Мбит и богатый набор периферийных блоков различного назначения. Сохраняя программную совместимость с предшественниками и их основные архитектурные особенности, процессор 1879ВМ4 имеет процессорное ядро усовершенствованной архитектуры, ряд отличий которой позволяет не только сохранить программную

совместимость, но и увеличить производительность устройства при той же частоте тактового сигнала.

Структурная схема 1879ВМ4 представлена на рис. 11. По структурной организации и программным моделям отдельных узлов 1879ВМ4 практически идентичен процессорам Л1879ВМ1 и 1879ВМ2.

1879ВМ4 имеет минимальные отличия по системе команд по сравнению с процессорами Л1879ВМ1 и 1879ВМ2. Это позволяет использовать в новом процессоре созданное для Л1879ВМ1 и 1879ВМ2 системное и прикладное программное обеспечение после перекомпиляции программ, написанных на ассемблере.

Ниже приводятся основные архитектурные и структурные особенности 1879ВМ4, отличающие его от своих предшественников.

1879ВМ4 содержит внутреннюю оперативную память статического типа (вИАМ) общим объемом 2 Мбит, расположенную на одном кристалле с процессорными узлами.

• Внутренняя память состоит из четырех одинаковых банков памяти, каждый из которых представляет собой однопортовую синхронную память (8ИАМ), имеющую организацию 8Кх64 бит, и может использоваться для оперативного хранения 32- и 64-разрядных слов данных, коэффициентов и команд. Все банки памяти работают как псевдодвухпортовые, что позволяет одновременно производить доступ к памяти как со стороны процессорного ядра, так и со стороны каналов ПДП.

• Любой цикл обращения к внутренней памяти процессора выполняется за один процессорный такт.

• В каждом такте происходит до четырех обращений к внутренней памяти и до двух обращений к внешней памяти:

- выборка команды,

- чтение или запись по скалярной команде,

- чтение весов по векторной команде,

- чтение данных для выполнения над ними арифметической операции по векторной команде (данные на проходе),

- чтение данных для их сохранения в векторном регистре по векторной команде,

- запись результата арифметической операции по векторной команде.

Кроме того, имеются два канала ПДП «внешняя-внутренняя память» (DMA COPR.), которые работают в фоновом режиме. Одновременно могут выполняться только те из указанных циклов, при которых адресуются различные блоки внутренней памяти и различные внешние памяти (локальная или глобальная).

Таким образом, всего в процессоре поддерживается до шести доступов во внутреннюю память и до двух доступов во внешнюю память в каждом такте.

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

1879ВМ4 имеет внутрикристальный кэш команд (ICACHE) объемом 8 Кбит (1 Кх 64) с организацией 8-way и с отсутствием блокировок при промахах. При обращении во внешнюю память выбранные команды попадают одновременно в процессорное ядро (PROCESSOR CORE) и в кэш. При повторном обращении по тому же адресу команды будут выбираться из кэш, а не из внешней памяти. Программы, расположенные во внутренней памяти, не кэшируются. Кэш команд в 1879ВМ4 позволяет эффективно работать с программами, расположенными во внешней памяти, и освободить программиста от дополнительной работы по трансляции программного кода из внешней во внутреннюю память.

1879ВМ4 содержит аппаратные средства, позволяющие без использования дополнительного внешнего контроллера подключить к любой внешней шине (локальной или глобальной) еще один процессор NM6405, работающий с общей памятью, подключенной к данной шине, в режиме Shared Memory. Данная способность 1879ВМ4 позволяет строить на его основе мультипроцессорные системы с линейной структурой.

• К одной внешней шине могут быть подключены как локальные, так и глобальные шины процессоров 1879ВМ4. Дополнительные конфигурационные выводы определяют, какой из процессоров владеет шиной после системного сброса.

• В адресное пространство каждого 1879ВМ4 мультипроцессорной системы входят:

- все четыре банка внутренней памяти данного процессора;

- вся внешняя память, подключенная к локальной и глобальной шинам данного процессора;

- два банка внутренней памяти соседних процессоров, подключенных к локальной и глобальной шинам данного процессора.

Включение в адресное пространство каждого 1879ВМ4 банков внутренней памяти соседних процессоров позволяет даже в отсутствие микросхем внешней памяти увеличить объем памяти каждого процессора до 4 Мбит.

• В 1879ВМ4 поддерживается только один режим Shared Memory, в соответствии с которым:

- в каждый момент времени управление внешней шиной осуществляет только один из подключенных к ней процессоров, являющийся «ведущим» (другой процессор, подключенный к данной шине, является «ведомым» в этот момент времени);

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- «ведущий» процессор может непосредственно обращаться как к своей внутренней памяти, так и к внешней памяти или к внутренней памяти соседнего «ведомого» процессора;

- «ведомый» процессор может непосредственно обращаться только к своей внутренней памяти;

- для обращения к микросхемам внешней памяти или к внутренней памяти одного из соседних процессоров «ведомый» процессор должен предварительно стать «ведущим», взяв управление внешней шиной на себя;

- передача управления внешней шиной выполняется автоматически следующим образом:

1) при обращении к микросхемам внешней памяти или к внутренней памяти одного из соседних процессоров «ведомый» процессор выставляет запрос на захват шины,

2) по окончании текущих операций на внешней шине «ведущий» процессор выставляет сигнал разрешения на захват шины и становится «ведомым»,

3) «»ведомый» процессор становится «ведущим»;

- процедура передачи управления внешней шиной может контролироваться программистом с помощью битов «разрешение передачи управления локальной (глобальной) шиной» регистра PSWR.

• Каждый 1879ВМ4 может обращаться к ячейкам внутренней памяти соседнего процес-

сора как в программном режиме, так и в режиме ПДП.

Карта памяти 1879ВМ4 представлена на рис. 12 и включает в себя два адресных пространства — область адресов локальной шины и область адресов глобальной шины.

• Область адресов локальной шины охватывает:

- банки Inner Local Bank 0 и Inner Local Bank 1 внутренней оперативной памяти данного процессора;

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

• Область адресов глобальной шины охватывает:

- банки Inner Global Bank 0 и Inner Global Bank 1 внутренней оперативной памяти данного процессора;

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

• Каждый банк внутренней оперативной памяти 1879ВМ4 занимает 16 K 32-разрядных или 8 К 64-разрядных ячеек. Он состоит из двух подбанков (блоков) по 4Кх64, к каждому из которых может быть осуществлен одновременный доступ как за 32-разрядными, так и 64-разрядными данными. Один доступ осуществляется со стороны процессорного ядра NMC2, а второй — со стороны канала ПДП.

• Адреса векторов прерываний 1879ВМ4 расположены в начальных адресах банка Inner Local Bank 0 его внутренней памяти. Блоки программируемого интерфейса

1879ВМ4 позволяют использовать в качестве внешней памяти микросхемы SRAM, ROM,

Flash ROM и микросхемы синхронной памяти (SSRAM, SDRAM).

• Микросхемы памяти указанных типов подключаются непосредственно к выводам 1В79ВМ4 без применения дополнительных контроллеров памяти.

• Разные банки внешней памяти одного процессора могут быть реализованы на микросхемах памяти различного типа. 1В79ВМ4 имеет развитую систему внутренних шин, что позволяет увеличить количество одновременно выполняемых циклов обращения к памяти и тем самым повысить производительность процессора.

• Коммутатор шин (COMMUTATOR 6->5) динамически объединяет одну из шести шин данных внешней или внутренней памяти с одной из пяти внутренних шин ядра и кэш:

- шиной MEM_IB для пересылки команд из памяти в кэш, а через кэш в процессорное ядро по шине команд IB;

- шиной скалярных данных (SDB) для чтения скалярных данных из памяти в процессорное ядро;

- шиной входных векторных данных (VDIB) для чтения векторных данных из памяти в векторный узел (VECTOR UNIT) процессорного ядра с последующим выполнением над ними арифметической операции;

- шиной весов (WB) для загрузки весов из памяти в векторный узел;

- шиной векторного регистра (VRB) для пересылки данных из памяти в векторный регистр векторного узла.

Шина скалярных данных (SDB) также используется для записи скалярных данных в память или в регистры периферийных узлов.

• Шина выходных векторных данных (VOB) позволяет записать результат работы векторного узла в память без остановки других операций чтения/записи процессорного ядра.

• Имеется встроенный сопроцессор ПДП (DMA COPR.), который обслуживает два коммуникационных порта (CP0 и CP1), а также два программно настраиваемых канала ПДП «память-память». Он управляет коммутатором BUS SWITCH для организации обмена блоками данных между коммуникационными портами и банками памяти или между самими банками памяти и использует для этого две специальные шины данных ПДП: шину данных ПДП в локальную (DMA LDB) и глобальную память (DMA GDB) и две специальные шины адреса ПДП: шину адреса ПДП в локальную (DMA LAB) и глобальную память (DMA GAB).

В 1В79ВМ4 количество генераторов адреса (блок AGU) увеличивается до семи (один для команд и шесть для данных), что позволяет в одном такте формировать до семи запросов на работу с памятью: на выборку команды,

LOCAL MEMORY

--------7FFFFFFFh

External

Local

ВапкЗ

External Local Bank 2

External Local Bank 1

External

Local

BankO

Inner Local Bank 1

Inner Local Bank 0

GLOBAL MEMORY

FFFF FFFFh

2GByte

6000 OOOOh 5FFF FFFFh

2GByte

4000 OOOOh 3FFF FFFFh

2GByte

2000 OOOOh 1FFFFFFFh 2 GByte-128 KByte

0000 8000h 0000 7FFFh 64KByte 0000 4000h 0000 3FFFh 64KByte 0000 OOOOh

Global Bank 3

Global Bank 2

Global Bank 1

Global

BankO

Inner Global Bank 1

Inner Global Bank 0

2GByte

E000 OOOOh DFFF FFFFh

2GByte

C000 OOOOh BFFF FFFFh

2GByte

A000 OOOOh 9FFF FFFFh 2GByte— 128 KByte

8000 8000h 8000 7FFFh 64KByte 8000 4000h 8000 3FFFh 64KByte 8000 OOOOh

Рис. 12. Карта памяти процессора 1879ВМ4

Таблица 3. Пиковая производительность процессоров семейства NeuroMatrix® и DSP TigerSHARC ADSP-TS001

Процессор TigerSHARC ADSP-TS001, Analog Devices Л1В79ВМ1, НТЦ «Модуль» 1В79ВМ2, НТЦ «Модуль» 1В79ВМ4, НТЦ «Модуль»

Тактовая частота 150 МГц 40 МГц 80 МГц 150 МГц

Пиковая произво- дительность 2-разр. данные 1200 MMAC/s 8960 MMAC/s 17 920 MMAC/s 33 600 MMAC/s

4-разр. данные 1200 MMAC/s 3200 MMAC/s 6400 MMAC/s 12 000 MMAC/s

8-разр. данные 1200 MMAC/s 960 MMAC/s 1920 MMAC/s 3600 MMAC/s

16-разр. данные 1200 MMAC/s 160 MMAC/s 320 MMAC/s 600 MMAC/s

32-разр. данные 300 MMAC/s 80 MMAC/s 160 MMAC/s 300 MMAC/s

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

Для 1879ВМ4 изменяются правила выполнения команд на первом, втором и третьем уровнях конвейера:

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

• Векторная команда при запуске занимает общую часть первого уровня конвейера на один процессорный такт. За это время она вычисляет адрес первого обращения в память. Одновременно на специальном арифметическом устройстве, содержащем умножитель 5x32 разряда и 32-разрядный сумматор, формируется новое значение адресного регистра, использующегося в качестве базы. Это значение совпадает с тем, что должно получиться после завершения выполнения векторной команды.

• В следующем такте векторная команда освобождает общую часть и занимает один из шести адресных генераторов, находящихся вне процессорного ядра. При этом выдается адрес первого обращения в память по шине ADDR и значение смещения по шине BIAS. Далее адресный генератор работает самостоятельно, не занимая ресурсов процессорного ядра.

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

• На третьем уровне конвейера команды из очереди последовательно попадают на свои исполнительные конвейеры (один для скалярных операций и пять для векторных операций) и ожидают своих данных. Причем векторная команда может занять один или несколько исполнительных конвейеров в зависимости от кода операции. После получения своих данных скалярные команды выполняют АЛУ операцию, если она задана, и заканчивают свое выполнение. Если в скалярной команде задан один и тот же регистр в качестве приемника для АЛУ операции и операции ввода/вывода, более приоритетна по-

следняя операция. Конвейеры для векторных операций далее имеют переменную глубину в зависимости от типа выполняемой операции. Данные изменения в 1879ВМ4 позволяют одновременно выполнять одну скалярную и до пяти векторных команд, в том числе четыре обмена с памятью, а также эффективно работать с конвейером доступа в память переменной глубины от 1 до 8 тактов.

В 1879ВМ4 предусмотрена загрузка матрицы весов по принципу один вектор весов — за один такт. Это позволит существенно уменьшить минимально эффективную величину пакета (раньше он был равен 32) обрабатываемых векторов, что в свою очередь приведет к значительному росту производительности процессора при решении широкого круга задач в области цифровой обработки сигналов.

В 1879ВМ4 введена аппаратная вершина системного стека. Она копирует содержимое ячейки памяти системного стека, хранящей последний адрес возврата из подпрограммы или прерывания и значение регистра PSWR при входе в подпрограмму/прерывание. Поддержка аппаратной вершины системного стека в 1879ВМ4 позволяет резко ускорить выполнение команд возврата из подпрограммы или прерывания, особенно если системный стек расположен во внешней памяти.

В 1879ВМ4 предусмотрены следующие режимы начальной загрузки:

• загрузка через коммуникационный порт 1 256-ти 64-разрядных слов в банк 0 внутренней локальной памяти (Inner Local Bank 0) и затем старт по нулевому адресу из этого банка;

• загрузка через коммуникационный порт 0 256-ти 64-разрядных слов в банк 0 внутренней локальной памяти (Inner Local Bank 0) и затем старт по нулевому адресу;

• загрузка из нулевого банка внешней локальной памяти 256-ти 64-разрядных слов в банк 0 внутренней локальной памяти (Inner Local Bank 0) в режиме ПДП и затем старт по нулевому адресу;

• старт по нулевому адресу из банка 0 внутренней локальной памяти (Inner Local Bank 0), информация в который должна быть предварительно записана внешним процессором, подключенным к локальной шине.

• Выбор способа начальной загрузки процессора определяется значениями сигналов на его входах B00TM0 и BOOTM1.

В 1879ВМ4 добавлены два программируемых канала ПДП типа «память-память».

В 1879ВМ4 используются два коммуникационных порта синхронного типа, что позволит поднять скорость обмена до 75-150 Мбайт/с по каждому порту вместо 20 Мбайт/с у Л1879ВМ1 и 1879ВМ2.

В 1879ВМ4 введены 8 программируемых входов/выходов.

Добавлены немаскируемое прерывание, 4 внешних прерывания вместо одного, а также прерывания от каналов ПДП.

1879ВМ4 имеет JTAG-порт, позволяющий существенно упростить процедуры тестирования аппаратных средств и отладки прикладного программного обеспечения.

Благодаря указанным выше архитектурным и структурным усовершенствованиям реальная производительность 1879ВМ4 по сравнению с Л1879ВМ1 и 1879ВМ2 должна повыситься соответственно в 3-12 и 1,5-6 раз в зависимости от класса решаемых задач. Оценка производительности процессоров семейства NeuroMatrix® и одного из наиболее высокопроизводительных зарубежных DSP, поддерживающего векторные операции, приведена в таблице 3.

Заключение

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Отечественные процессоры семейства NeuroMatrix® являются представителями нового класса векторно-конвейерных DSP. Их отличает высокая производительность на задачах обработки больших потоков данных при относительно небольших аппаратных затратах и малом потреблении питания. Просматриваются пути дальнейшего повышения вычислительной мощности процессоров семейства за счет углубления конвейера и реализации на других технологиях, имеющих меньшие топологические нормы проектирования. Благодаря аппаратной поддержке матрично-векторных операций и возможности увеличения производительности при обработке данных меньшей разрядности, процессоры NeuroMatrix® могут найти применение для решения широкого класса задач в таких областях, как видеообработка, распознавание образов, сигнальная обработка, радиолокация, телекоммуникация, навигация и многих других. Благодаря встроенным средствам для построения многопроцессорных систем, они могут использоваться как базовые блоки для создания параллельных вычислительных систем. ■

Литература

1. Shahbahrami A., Juurlink B., Vassiliadis S. A Comparison Between Processor Architectures for Multimedia Applications. Proc. 15th Annual Workshop on Circuits, System and Signal Processing (ProRISC 2004), the Netherlands, November, 2004.

2. Talla D., John L. K., Burger D. Bottlenecks in Multimedia Processing with SIMD Style Extensions and Architectural Enhancements. IEEE Transactions on Computers, August, 2003. Vol. 52, No. 8.

3. Talla D., John L. K., Lapinskii V., Evans B. L. Evaluating Signal Processing and Multimedia Applications on SIMD VLIW and Superscalar Architectures. Proc. IEEE International Conference on Computer Design: VLSI in Computers and Processors, September 17-20, 2000.

4. Law J. Characterization of Native Signal Processing Extensions. EE382C Embedded Software Systems, 2002.

5. Sanchez F., et. al. On the Scalability of 1- and 2Dimensional SIMD Extentions for Multimedia Applications. IEEE International Symposium on Performance Analysis of Systems and Software, Austin, Texas, March, 2005.

6. Corbal J., Espasa R., Valero M. On the Efficiency of the Reductions in ^SIMD Media Extensions. 10th International Conference of Parallel Architecture and Compilation Technologies (PACT 2001), Barcelona, Spain, September 8-12, 2001.

7. Lee C., Potkonjak M., Mangione-Smith W. H. MediaBench: A Tool for Evaluating and Synthesizing Multimedia and Communication Systems. IEEE Micro, June, 1997.

8. Kapasi U. J., et. al. Programmable Stream Processors. IEEE Computer, August, 2003. Vol. 36, No. 8.

9. Lee C. G., DeVries D. J. Initial Results on the Performance and Cost of Vector Microprocessors. Proc. Thirtieth Annual IEEE/ACM International Symposium on Microarchitecture, December, 1997.

10. Kozyrakis C., Patterson D. Vector vs. Superscalar and VLIW Architectures for Embedded Multimedia Benchmarks. Proc. of the 35th International Symposium on Microarchitecture, Instabul, Turkey, Nov., 2002.

11. (Kees) van Bercel C.H., et. al. Vector Processing as Enabler for Software-defined Radio in Handsets from 3G+WLAN Onwards. Software Defined Radio Technical Conference, Scottsdale, Arizona, November 16-18, 2004.

12. Espasa R., Valero M., Smith J. E. Out-of-Order Vector Architectures. 30th International Symposium on Microarchitecture, December, 1997.

13. Espasa R., Valero M., Smith J. E. Vector Architectures: Past, Present and Future. International Conference on Supercomputing, June, 1998.

14. Smith J. E. Decoupled Access/Execute Computer Architectures. ACM Transactions on Computer Systems, November, 1984. Vol. 2, No. 4.

15. Sung M., Krashinsky R., Asanovic K. Multithreading Decoupled Architectures for Complexity-Effective General Purpose Computing. Workshop on Memory Access Decoupled Architectures, PACT-01, Barcelona, Spain, September, 2001.

16. Talla D., John L. K. MediaBreeze: A Decoupled Architecture for Accelerating Multimedia Applications. SIGARCH Computer Architecture News, 2001. Vol. 29, No. 5.

17. Виксне П. Е., Каталов Ю. Т., Корнеев В. В., Панфилов А. П., Черников В. М. Транспьютероподобный 32-разрядный RISC-процессор с масштабируемой архитектурой // Вопросы радиоэлектроники: серия ЭВТ, вып. 2, 1994.

18. Texas Instruments Europe. Implementation of an Image Processing Library for the TMS320C8X (MVP). BPRA059, July, 1997.

19. Борисов Ю. Комплекс «Трафик-Монитор» на базе процессора Л1879ВМ1. Особенности разработки // Электроника: НТБ. 2003. № 6.

20. Мушкаев С. Оценка производительности корреляционных мер сходства в задачах полного поиска движения на процессоре NM6403. Сборник докладов научно-технической конференции «Молодежь в науке». 2005.

21. Мушкаев С. К вычислению квадратов и абсолютных значений на процессоре NM6403 (Л1879ВМ1) // Цифровая обработка сигналов. 2005. № 1.

22. Мушкаев С. Реализация ранжирующих и медианных фильтров на процессоре NM6403 (Л1879ВМ1) // Цифровая обработка сигналов. 2005. № 1.

23. Миронов С., Дударев В., Богатов А. Цифровая обработка радиолокационных сигналов // Электроника: НТБ. 2003. № 3.

24. Мушкаев C., Ландышев C. Применение процессора Л1879ВМ1 для сжатия изображений // Цифровая обработка сигналов. 2002. № 1.

25. Кашкаров В., Мушкаев С. Организация параллельных вычислений в алгоритмах БПФ на процессоре NM6403 // Цифровая обработка сигналов. 2002. № 1.

i Надоели баннеры? Вы всегда можете отключить рекламу.