Опубликован: 01.10.2013 | Уровень: для всех | Доступ: платный
Лекция 7:

Инструментальные платформы МКМД-бит-потоковых вычислительных технологий

Описанным способом можно сгенерировать любое операционное, интерфейсное, адресное или управляющее устройство, поддерживающее систему команд МКМД-бит-потокового субпроцессора векторно-матричной обработки данных (табл. 6.3).

Таблица 6.2. Описание условных графических отображений бит-процессоров в MatrixDesigner
Условное изображение Комментарий

В канале АЛУ бит-процессора выполняется операция ADD над операндами, поступающими на первом такте слева и снизу. Результирующий операнд выдается на 3 такте вправо. В канале транзита входной операнд поступает снизу на 1 такте и подается с задержкой на один такт вверх, а с задержкой на 3 такта - вниз

В канале АЛУ выполняется операция "расширенный транзит"(WTR), в которой по каналам "слева-вниз" и "снизу-вправо" операнды распространяются с задержкой на 1 такт, а по каналу "справа-налево" - с задержкой на 2 такта

В канале АЛУ выполняется операция "запоминание единицей", в которой информационный операнд подается на 0 такте слева, а управляющий операнд - на 2 такте справа и, если он имеет вид циклической константы 00…01, то на выходе с дополнительной задержкой на 2 такта по отношению к управляющему входу запоминается содержимое (n-3) -го бита информационного операнда. Канал транзита не используется

В каналах АЛУ и транзита выполняется слияние потоков по "ИЛИ" по правилу: x(t+1)\lor x(t+2)\lor x(t+3), где \lor - операция "ИЛИ", а результирующий операнд поступает на правый выход бит-процессора с задержкой на 1, 2 и 3 такта

В канале АЛУ реализуется операция NOP, то есть он не используется, а в канале транзита входной операнд поступает слева и передается вправо с дополнительной задержкой на 2 такта, а вниз - с дополнительной задержкой на 1 такт
Таблица 6.3. Команды генерации основных устройств
Команда Описание
MLT Умножитель
ADD Сумматор
DCC Трансформатор кода
DIV Делитель
С[1,m] Генератор константы вида С[1,m]
С[n,m\ Генератор константы вида C[n,m]
С+1 Счетчик +1 (инкремент)
С-1 Счетчик -1 (декремент)
С+1S Счетчик +1 с предустановкой
С -1S Счетчик -1с предустановкой
In Параллельно-последовательный интерфейс
Out Последовательно-параллельный интерфейс

Команда " Импортировать " (рис. 6.35) позволяет разместить нестандартное устройство на матрице, которое должно быть предварительно создано в файле специального формата ( *.PGM ) или вручную, или с помощью среды Designer.

Меню "Нестандартное устройство"

Рис. 6.35. Меню "Нестандартное устройство"
Коммутатор выходных портов ОЗУ

Рис. 6.36. Коммутатор выходных портов ОЗУ

В частности, "нестандартным" устройством является коммутатор, который обеспечивает перераспределение 8 выходов ОЗУ между 2 входами операционного устройства субпроцессора векторно-матричной обработки данных (рис. 6.36). "Нестандартность" такого коммутатора обусловлена пространственным совмещением FIFO -регистровых шин передачи входных данных и адресов, управляющих обменом с ОЗУ.

Чтобы добавить в проект это нестандартное устройство, достаточно в файл *.PGM этого устройства добавить строки с описанием, например:

0088 CE87 7E87 0083 0083 0083 0083 0083 0083 0083 0083 6531 6734 64F1
0088 C98D 4A47 C9B8 C9B8 C9B8 C9B8 C9B8 C9B8 C9B8 C9B4 66F1 6E58 66F9
0088 C60F 0041 4D20 4D28 4D28 4D28 4D28 4D28 4D28 4D28 6632 6D1E 6639
62E1 6261 6261 6221 62E1 62E1 62E1 62E1 62E1 62E1 62F1 7631 62F1 7847
6263 6261 6261 6261 6221 62E1 62E1 62E1 62E1 62F1 66F1 6631 62F1 7847
62E1 6261 6261 6261 6261 6221 62E1 62E1 62F1 66F1 66F1 6631 62F1 7847
6263 6261 6261 6261 6261 6261 6221 62F1 66F1 66F1 66F1 6631 62F1 7B4B
62E1 6261 6261 6261 6261 6263 6232 6631 66F1 66F1 66F1 6631 62F1 6263
6263 6261 6261 6261 6263 6223 6263 6263 6631 66F1 66F1 6631 62F1 6253
62E1 6261 6261 6263 6223 6263 6263 6263 6263 6631 66F1 6631 62F1 6253
6263 6263 6263 6223 6263 6263 6263 6263 6263 6263 6631 6631 62F1 6253
0088 CE05 00C3 4720 4728 4728 4728 4728 4728 4728 4728 6263 6E39 6043
0088 CB87 4ACD CB98 CB98 CB98 CB98 CB98 CB98 CB98 CB9C 6263 6594 0054
0088 C68D 768D 0081 0081 0081 0081 0081 0081 0081 0081 0044 0000 0000

C $INPORT(0,3,0,<Порт 1>)
C $INPORT(0,4,0,<Порт 2>)
C $INPORT(0,5,0,<Порт 3>)
C $INPORT(0,6,0,<Порт 4>)
C $INPORT(0,7,0,<Порт 5>)
C $INPORT(0,8,0,<Порт 6>)
C $INPORT(0,9,0,<Порт 7>)
C $INPORT(0,10,0,<Порт 8>)

C $INPORT(11,0,1,<Управление 1: Циклическая константа>)
C $INPORT(12,0,1,<Управление 2: Адрес порта по входу 1 ОУ>)
C $INPORT(13,0,1,<Управление 3: Адрес порта по входу 2 ОУ>)

C $INPORT(13,3,2,<Вход  адреса  ОЗУ порта 1>)
C $INPORT(13,4,2,<Вход  адреса  ОЗУ порта 2>)
C $INPORT(13,5,2,<Вход  адреса  ОЗУ порта 3>)
C $INPORT(13,6,2,<Вход  адреса  ОЗУ порта 4>)
C $INPORT(13,7,2,<Вход  адреса  ОЗУ порта 5>)
C $INPORT(13,8,2,<Вход  адреса  ОЗУ порта 6>)
C $INPORT(13,9,2,<Вход  адреса  ОЗУ порта 7>) 
C $INPORT(13,10,2,<Вход адреса ОЗУ порта 8>)

C $OUTPORT(0,3,0,<Адрес  порта ОЗУ 1>)
C $OUTPORT(0,4,0,<Адрес  порта ОЗУ 2>)
C $OUTPORT(0,5,0,<Адрес  порта ОЗУ 3>)
C $OUTPORT(0,6,0,<Адрес  порта ОЗУ 4>)
C $OUTPORT(0,7,0,<Адрес  порта ОЗУ 5>)
C $OUTPORT(0,8,0,<Адрес  порта ОЗУ 6>)
C $OUTPORT(0,9,0,<Адрес  порта ОЗУ 7>) 
C $OUTPORT(0,10,0,<Адрес порта ОЗУ 8>)

C $OUTPORT(12,0,1,<Информационный выход первого входа 2 ОУ>) 
C $OUTPORT(13,0,1,<Информационный выход первого входа 1 ОУ>),

где первые 14 строк - шестнадцатеричное представление бит-инструкций файла *.PGM.

Команда " Импорт " позволяет добавить это устройство в проект (рис. 6.37).

Отображение "нестандартного" интерфейса в рабочем поле

Рис. 6.37. Отображение "нестандартного" интерфейса в рабочем поле

Пользователь может по своему усмотрению изменить положение устройства или группы устройств на матрице. Чтобы это сделать, сначала необходимо указать набор объектов (или один объект), которые будут перемещены (выделить объекты). Сделать это можно несколькими способами:

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

цвет которой задается пользователем.

Чтобы изменить положение объекта на матрице, нужно нажать на нем левую кнопку мыши, и, не отпуская ее, перемещать мышь. Чтобы объект зафиксировался в новом положении, отпустите кнопку. Чтобы переместить несколько объектов, необходимо удерживать в нажатом положении

клавишу " Shift ". Если в выбранном новом положении устройство выходит за границы матрицы, то перемещение не будет выполнено. Разрешается наложение объектов. Эта возможность предусмотрена для удобства компоновки устройств в случае очень "плотной" схемы. Построение оптимальной топологической схемы проектируемого сопроцессора невозможно без аффинных преобразований. Для этого предусмотрена панель, показанная на рис. 6.38.

"Окно" "Аффинные преобразования"

Рис. 6.38. "Окно" "Аффинные преобразования"

Кнопки (слева направо) выполняют следующие действия:

  • поворот объекта на 90° по часовой стрелке, при этом в общем случае изменяются размеры устройства - длина и ширина меняются местами, меняется расположение бит-процессоров, составляющих устройство, и, кроме того, выполняется их поворот на 90° по часовой стрелке;
  • поворот объекта на 90° против часовой стрелки;
  • отображение относительно горизонтальной оси (оси OX ), при этом устройство делится пополам на верхнюю и нижнюю половину и каждая половина отображается зеркально;
  • отображение относительно вертикальной оси (выполняется аналогично);
  • отображение относительно главной диагонали, в этом случае устройство делится пополам вдоль главной диагонали и тоже меняются линейные размеры устройства;
  • отображение относительно побочной диагонали;
  • удаление устройства.

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

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

"Окно" "Масштаб"

Рис. 6.39. "Окно" "Масштаб"

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

Евгений Акимов
Евгений Акимов

Добрый день!

 

Скажите, пожалуйста,планируется ли продолжение курсов по нанотехнологиям?

Спасибо,

Евгений

 

Nozimjon Fayziev
Nozimjon Fayziev
Таджикистан, Душанбе
Анна Волкова
Анна Волкова
Россия, г. Новосибирск