Процессоры ориентированные на матрично – векторную обработку большого потока данных

Автор работы: Пользователь скрыл имя, 30 Октября 2014 в 18:59, реферат

Краткое описание

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

Содержание

ВВЕДЕНИЕ 3
Основные особенности мультимедийной обработки 4
Архитектуры современных процессоров, предназначенных для работы с мультимедийными приложениями 5
Описание архитектуры процессоров семейства NeuroMatrix 10
Процессор Л1879ВМ1 11
RISC-процессор 13
Система команд 16
Область применения и оценка производительности 18
Заключение 19
Литература 20

Вложенные файлы: 1 файл

Реферат.doc

— 266.50 Кб (Скачать файл)

 


 


Федеральное государственное бюджетное образовательное учреждение  
высшего профессионального образования  
«Уфимский государственный нефтяной технический университет»

 

Кафедра «Вычислительная техника и инженерная кибернетика»

 

 

 

 

 

 

 

 

 

 

Домашняя работа №1 
Реферат на тему «Процессоры ориентированные на матрично – векторную обработку большого потока данных»

Вариант 13

 

 

 

Выполнил: студ. гр. БПО -12-01     <подпись, дата>  Б.С. Советкали

 

Проверил: доцент                           <подпись, дата>  М.Н. Каданцев

 

 

 

 

 

 

 

УФА 2014

 

ОГЛАВЛЕНИЕ

 

 

 

ВВЕДЕНИЕ

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

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

 

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

В настоящее время основная задача в области разработки компьютерных архитектур является поддержка широкого класса приложений, относящихся к мультимедийной обработки: 2D/3D графики, аудио- и видеосигнальная обработка, навигация, 3G и 4G сотовая телефония, программный приемник. Эти приложения требуют обработку больших потоков регулярных данных с производительностью до 10 – 100 млрд. операций в секунду, при этом они имеют некоторые общие особенности, которые существенно отличают их от приложений, характерных для универсальных процессоров:

  1. Обработка непрерывных потоков данных большого объема в реальном времени
  2. Вследствие небольшого объема программного кода для его хранения обычно используется внутренняя память вычислителя.
  3. Возможно, выполнение одновременно до нескольких тысяч однотипных операций над разными данными.
  4. Большое количество операций по реорганизации данных, что делает затруднительным использование традиционных SIMD-архитектур.
  5. 95% времени вычислений тратится на выполнение циклов с одним и двумя уровнями вложенности. Итераций циклов обычно насчитывается 10 и больше, а некоторые циклы имеют сотни и тысячи итераций.
  6. Большое количество одновременно выполняемых обращений не только к внутренней, но и к внешней памяти.
  7. Не более 3–4% от общего числа команд — это команды с плавающей точкой одинарной точности. Причем используются они в основном только для 2D/3D графики.

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

Данное название применяется для SIMD-расширений систем команд универсальных суперскалярных процессоров, таких как MMX, SSE1 и SSE2 (Intel), VIS (Sun), 3D Now! (AMD), AltiVec (Motorola). В систему команд этих процессоров введены операции над векторами 8-, 16- или 32-разрядных данных, упакованных в 64- или 128-разрядные слова. За один такт производится несколько вычислений над данными небольшой разрядности. Для мультимедийных приложений такие SIMD-расширения позволяют ускорить вычисления в 1,0–5,5 раза в зависимости от конкретной задачи. Вычислительные возможности аппаратуры, вводимой для поддержки SIMD-расширений, используются всего лишь на 1–12%. Это объясняется тем, что аппаратно поддерживаются только арифметические операции. Остальные операции (ввод/вывод данных, упаковка/распаковка, перестановка, организация циклов), доля которых достигает 75–85% от общего числа команд, эффективно не реализуются. SIMD-расширения не поддерживаются компиляторами языков высокого уровня, поэтому основные функции для мультимедийных приложений пишутся на языке ассемблера. Появление новых расширений, таких как SSE1 и SSE2, позволило увеличить пиковую производительность в два раза (например, байтовых операций за такт можно сделать 16, а не 8, как было при использовании MMX), поддержать вычисления с плавающей точкой. Так, Pentium 4 на мультимедийных приложениях показывает ускорение всего в 1,139–2,362 раза в зависимости от конкретной задачи, если использует SSE2-расширение.

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

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

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

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

После того как было обнаружено, что мультимедийные приложения хорошо векторизуются, было предложено использовать данный тип процессоров для решения этого класса задач. Считается, что по сравнению с процессорами других архитектур векторно-конвейерные процессоры могут наиболее эффективно решать мультимедийные задачи. Это объясняется тем, что для указанных процессоров уже существуют большие наработки в области компиляторов, а также тем, что они могут обеспечить требуемую производительность при небольшом потреблении питания. Так, VIRAM в 2 раза быстрее 4-way динамического суперскалярного процессора, работающего на частоте в 5 раз больше и потребляющего на порядок больше. Это достигается тем, что векторно-конвейерные процессоры более приспособлены решать задачи с высокой степенью параллелизма по данным, чем универсальные вычислители. Несмотря на то, что первые запускают на выполнение одну команду за такт, благодаря использованию многотактовых векторных команд реально одновременно может выполняться большое количество операций на множестве функциональных устройств либо независимо, либо с "зацеплением", когда результат одной команды нужен для второй. При этом управляющая логика оказывается гораздо проще, чем у суперскалярных процессоров, что позволяет наращивать производительность векторно-конвейерных процессоров за счет использования большего числа функциональных устройств без уменьшения тактовой частоты и практически без потери эффективности использования аппаратуры. Хочется отметить, что при добавлении некоторых свойств универсальных процессоров, таких как переименование векторных регистров и внеочередное выполнение команд (out-of-order execution), векторно-конвейерные процессоры способны работать с памятью, имеющей задержку выборки данных в 100 тактов, с падением производительности всего на 6%.

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

Процессоры семейства NeuroMatrix также относятся к классу векторно-конвейерных вычислителей, поскольку используют многотактовые векторные команды аналогичным образом. Отличие в том, что вместо векторных регистров общего назначения применяются специализированные FIFO и входные векторные регистры, что позволяет значительно сократить аппаратные затраты, упростить логику управления и синхронизации выполняемых операций. Использование FIFO дает возможность легко организовать "зацепление" по данным для двух одновременно выполняемых команд, одна из которых готовит результат для другой. Для их синхронизации достаточно отследить флаги FIFO: первая команда выполняется, пока FIFO не полно, а вторая — пока не пусто.

Вместе с тем, использование FIFO для синхронизации вычислительных процессов характерно для архитектуры с "расщеплением"; потока команд (decoupled architecture). Эта архитектура обеспечивает механизм динамического внеочередного выполнения команд (out-of-order execution), как в суперскалярных процессорах, с гораздо меньшими затратами на управление, также она способна не терять производительность при увеличении времени доступа в память. Считается, что ее широкому распространению мешает неэффективная работа с программами, содержащими большой процент команд управления. Одно из решений предлагает использовать мультитредовость.

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

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

 

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

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

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

Процессор Л1879ВМ1

Он работает на частотах до 40 МГц в диапазоне температур от –40 до +85 °С и напряжений от 3,0 до 3,6 В. Количество операций "умножение с накоплением", выполняемых за один процессорный такт, от 2 (32-разрядные данные) до 224 (2-разрядные данные), поэтому пиковая производительность процессора в указанных условиях составляет 8,96 млрд умножений с накоплением (GMAC). В 1999 году лицензия на использование микропроцессорного ядра этого процессора была приобретена фирмой Fujitsu.

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

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

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

 

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

  1. RISC CORE — RISC-процессор, имеющий 5-ступенчатый конвейер и выполняющий скалярные арифметические, логические операции и операции сдвига над 32-разрядными данными, а также осуществляющий управление выполнением программ.
  2. VECTOR UNIT — векторный узел, выполняющий арифметические и логические операции над 64-разрядными векторами данных, упакованных в 64-разрядные блоки данных произвольной разрядности.
  3. LMI и GMI — два идентичных 64-разрядных интерфейса во внешнюю память — локальную и глобальную. Каждый интерфейс имеет возможность работать с двумя банками внешней памяти типа SRAM/DRAM и поддерживает режим работы с общей памятью с другим процессором. Л1879ВМ1 использует 32-разрядный адрес, причем обмен данными с памятью осуществляется по 32 или 64 разряда. Таким образом, доступное адресное пространство равно 16 Гбайт. Если старший разряд адреса равен нулю, идет обращение в локальную память, если равен единице — в глобальную. Младший разряд адреса используется только при обмене 32-разрядными данными.
  4. COM. PORT0 и COM. PORT1 — два байтовых коммуникационных порта ввода/вывода для межпроцессорного обмена, аппаратно совместимые с портами DSP TMS320C4x фирмы Texas Instruments.
  5. DMA COPROCESSOR — сопроцессор ПДП, осуществляющий обмен 64-разрядными данными между памятью и портами.
  6. DATA BUS SWITCH — коммутатор шин данных, позволяющий динамически связать одну из внешних шин с одной из шести внутренних: команд IB, входных SDIB и выходных скалярных данных SDOB, входных VDIB и выходных векторных данных VDO;, а также с входной шиной весов WB.

Информация о работе Процессоры ориентированные на матрично – векторную обработку большого потока данных