Автор работы: Пользователь скрыл имя, 30 Октября 2014 в 18:59, реферат
Цель работы: изучить принципы работы процессоров ориентированных на матрично-векторную обработку большого потока данных в реальном масштабе времени.
Актуальность темы заключается в том, что характерными областями применения этих процессоров являются: обработка изображения, MPEG кодирования и декодирования, обработка радиолокационных сигналов, в том числе различные виды цифровой фильтрации, высокопроизводительная коммутация сигналов и т.д.
ВВЕДЕНИЕ 3
Основные особенности мультимедийной обработки 4
Архитектуры современных процессоров, предназначенных для работы с мультимедийными приложениями 5
Описание архитектуры процессоров семейства NeuroMatrix 10
Процессор Л1879ВМ1 11
RISC-процессор 13
Система команд 16
Область применения и оценка производительности 18
Заключение 19
Литература 20
Процессор представляет собой 5-ступенчатый 32-разрядный RISC с оригинальной системой команд. Он использует 32- и 64-разрядные команды (одна команда обычно задает две операции: арифметическую и ввода/вывода). Все узлы RISC 32-разрядные.
Архитектура NeuroMatrix дает уникальную возможность варьировать между производительностью и точностью вычислений для базовой процедуры:
В зависимости от приложения можно выбрать необходимую разрядность входных данных и результата (точность вычислений). Число умножений и сложений (MAC), выполняемых за один такт, зависит от разрядности операндов. Наибольшая производительность — 8960 MMAC — достигается при работе с 2-разрядными операндами на частоте 40 МГц. Имеется возможность поднять точность вычислений, если увеличить разрядность операндов до 32. В этом случае достигается производительность 80 MMAC с получением 64-разрядного результата. Векторный узел содержит операционное устройство регулярной структуры, похожее на матричный умножитель (рис. 3).
Рис. 3. Операционное устройство векторного узла
Данное устройство состоит из ячеек, содержащих 1-разрядную память (триггер) и некоторую комбинационную логику. Пользователь может поделить матрицу ячеек на макроячейки, используя два программно доступных 64-разрядных конфигурационных регистра. Эти регистры задают границы между строками и столбцами макроячеек таким образом, что каждая макроячейка выполняет операцию умножения элемента входного вектора Xi на заранее загруженный вес Wij, а затем результат прибавляется к выходному значению верхней макроячейки, расположенной в том же столбце. Таким образом, за один такт в каждом столбце независимо вычисляется свой результат. Пример конфигурации векторного узла для работы с 8-разрядными входными данными (Xi) и весами (Wij) приведен на рис. 4. В этом случае достигается пиковая производительность в 960 MMAC (за один 25 нс процессорный такт производятся 24 операции умножений с накоплением (MAC) с получением 21-разрядных результатов).
Рис. 4. Пример работы векторного узла с 8-разрядными входными данными и весами
Число операций умножений с накоплением зависит от разрядности входных операндов и весов. Конфигурация векторного узла может меняться динамически в процессе вычислений. Можно начать вычисления с небольшой разрядностью и с большой производительностью, а затем по мере накопления разрядности в промежуточных результатах перейти к обработке данных большей разрядности за счет снижения быстродействия. На рис. 5 можно наглядно видеть, как зависит производительность от разрядности входных операндов и весов.
Рис. 5. Зависимость производительности от разрядности входных операндов и весов
Операционное устройство достигает еще большей производительности при выполнении булевого умножения, когда разрядность входных операндов и весов равна 1. В этом случае она равна 40,96 GMOPS на частоте 40 МГц. Имеется еще одно интересное свойство использования 1-разрядных коэффициентов. В этом случае операционное устройство превращается в мощный коммутатор, когда перестановка битов в 64-разрядном входном операнде происходит за один такт.
Загрузка новых весовых коэффициентов в операционное устройство осуществляется за 32 такта. Чтобы скомпенсировать задержку при изменении весов, используется теневая матрица. Новые коэффициенты грузятся в теневую матрицу в фоновом режиме и затем за один такт переписываются в рабочую.
Для предотвращения переполнения аппаратно реализована функция насыщения (рис. 6) над 64-разрядными словами упакованных данных, причем границы насыщения задаются с помощью программно доступных регистров управления этой функцией. Функция насыщения не уменьшает разрядность входных операндов, но уменьшает число значащих разрядов в каждом элементе входного вектора.
Рис. 6. Функция насыщения
Команды процессора делятся на две основные группы: скалярные команды (рис. 7) и векторные (рис. 8).
Рис. 7. Кодировка скалярных команд
Рис. 8. Кодировка векторных команд
Скалярные команды являются обычными RISC-командами, которые также задают условные переходы/переходы к подпрограмме и возвраты из подпрограммы/прерывания. Процессор поддерживает работу с 32-разрядными константами, которые могут грузиться в регистры или использоваться для задания адреса или смещения при обращении к памяти. Векторные команды содержат специальное поле, задающее число повторов выполнения данной команды (от 1 до 32). Это позволяет аппаратно поддержать организацию коротких циклов и значительно увеличить плотность кода.
Конвейер Л1879ВМ1 состоит из нескольких подконвейеров. Любая скалярная или векторная команда в данный момент времени занимает один или несколько подконвейеров. Если имеются необходимые свободные подконвейеры, очередная команда может пойти на выполнение (но не более одной команды за такт). При использовании многотактовых векторных команд до четырех векторных, включая два доступа в память, и одной скалярной команды могут выполняться одновременно. Синхронизация различных подконвейеров осуществляется с помощью механизма блокировок. Если команда требует некоторый ресурс, который в данный момент занят, формируется блокировка, и выполнение команды приостанавливается. Принадлежащие команде подконвейеры блокируются, остальные же могут продолжать свою работу. Таким образом, несмотря на последовательный запуск команды в конвейер на выполнение, использование векторных команд позволяет достичь производительности суперскалярных процессоров. Завершение команд поддерживается не в том порядке, в котором они выбирались из памяти (out-of-order execution). Вместе с тем достигается высокий уровень загрузки аппаратуры на кристалле, поскольку скалярные и векторные команды используют единый конвейер и одни и те же исполнительные устройства. При этом требуется небольшое количество управляющей логики (менее 5% от 115 000 используемых на кристалле вентилей).
Процессор Л1879ВМ1 используется в целом ряде применений, требующих большую производительность при умеренном потреблении питания:
Отечественные процессоры семейства NeuroMatrix являются представителями нового класса векторно-конвейерных DSP. Их отличает высокая производительность на задачах обработки больших потоков данных при относительно небольших аппаратных затратах и малом потреблении питания. Просматриваются пути дальнейшего повышения вычислительной мощности процессоров семейства за счет углубления конвейера и реализации на других технологиях, имеющих меньшие топологические нормы проектирования. Благодаря аппаратной поддержке матрично-векторных операций и возможности увеличения производительности при обработке данных меньшей разрядности, процессоры NeuroMatrix могут найти применение для решения широкого класса задач в таких областях, как видеообработка, распознавание образов, сигнальная обработка, радиолокация, телекоммуникация, навигация и многих других. Благодаря встроенным средствам для построения многопроцессорных систем, они могут использоваться как базовые блоки для создания параллельных вычислительных систем.