Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Выполнение операций на векторном АЛУ




Арифметические и логические операции на векторном АЛУ выполняются над наборами 64-х разрядных слов, подаваемых на входы Xи Yоперационного узла ВП. Эти наборы подаются на входы из буферов ram, afifo, либо из памяти (data). Данные, хранящиеся, например, в ram, могут быть переданы на обработку в операционное устройство как через вход X, так и через Y. Кроме этого в качестве входов могут выступать так называемые "нулевые" устройства, что означает, что данные на вход не поступают. Результат вычислений всегда попадает в afifo.

Входы Xи Yвекторного АЛУ являются равноправными. Разбиение данных, поступающих на эти входы, на элементы определяется регистром nb2. Регистр sb2 не оказывает никакого влияния на вычисления в векторном АЛУ. В этом состоит особенность работы векторного АЛУ по сравнению с рабочей матрицей.

Операции на векторном АЛУ выполняются с учетом разбиения входных данных на элементы (см. Рис. 1-6). Это означает, что в местах разбиения 64-х разрядных слов на элементы ставятся "перегородки", которые в случае переполнения блокируют перенос старшего бита в соседнее поле, занимаемое другим элементом, а также препятствуют распространению знака за пределы границ элемента. При блокировках переноса переносимый бит теряется.

Рис. 1-6 Выполнение вычислений на векторном АЛУ.

На Рис. 1-7 приведен пример сложения двух 64-х разрядных слов, разбитых на 8 элементов по 8 бит каждый, на векторном АЛУ процессора NM6403.

Рис. 1-7 Сложение двух 64-х разрядных слов на векторном АЛУ.

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

Операция маскирования

Для выполнения маскирования в операционном узле ВП существует специальное устройство. Оно имеет три входа и два выхода (см. Рис. 1-8). Данные подаваемые на входы Хи Yрабочей матрицы или векторного АЛУ сначала проходят через это устройство, и только после этого попадают в рабочую матрицу или на векторное АЛУ. Если код векторной ко­манды не включает операцию маскирования, то данные, поступающие на входы Xи Yуст­ройства, пропускаются на выход без изменений. Если в коде команды присутствует запрос на маскирование, то используется также третий вход в устройство, на который подается вектор масок. Он может подчитываться из памяти (data), либо из буферов ram или afifo.

Векторные команды маскирования, как и все остальные векторные команды процессора NM6403, выполняются от 1 до 32 тактов. На каждом такте на входы X, Y и на вход вектора масок подаётся по одному 64-х разрядному слову.

Маскирование с векторным умножением

В системе команд процессора существует векторная команда, например:

маска X Y

rep 32 data = [ar0++] with vsum ram, data, afifo;

которая совмещает выполнение операции маскирования с обработкой результатов на рабочей матрице. В этом случае над данными выполняются следующие преобразования:

  • побитовая операция AND слова со входа Xи слова маски: X and MASK. Эта операция оставляет в результирующем векторе Xтолько те биты, которые в маске были равны единице;
  • побитовая операция AND слова со входа Yи инвертированного слова маски: Y and not MASK. Эта операция оставляет в результирующем векторе Yтолько те биты, которые в маске были равны нулю;
  • выполнение операции взвешенного суммирования над маскированными данными.

Рис. 1-8 Положение устройство маскирования в ОУ ВП.

Логическое маскирование

В случае совмещения операции маскирования с обработкой на векторном АЛУ, задаваемой командой:

маска X Y

rep 32 data = [ar0++] with mask ram, data, afifo;

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

(X and MASK) or (Y and not MASK)

Сложно записанная формула вероятно скрывает простоту и пользу данного преобразования. На Рис. 1-9 дается пояснение в графической форме:

Рис. 1-9 Выполнение операции маскирования.

В тех позициях, на которых в маске стоят единицы, в слово результата будут записаны биты слова со входа X, на остальные места попадут биты слова со входа Y. Таким образом, операция маскирования позволяет за один такт из двух длинных слов собрать одно, взяв нужные биты из одного слова и из другого.










Последнее изменение этой страницы: 2018-05-10; просмотров: 274.

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