Правильная ссылка на эту страницу
http://az-design.ru/Support/HardWare/TI/D19890421Elc011.shtml

Превращение персонального компьютера в суперЭВМ при помощи съемных плат

УДК 681.323

Рон Драфц (Ron Drafz)
Фирма Texas Instruments Inc.

Кен Смит (Ken Smith)
Фирма Texas Instruments Inc.

Эрик Даулинг (Eric Dowling)
Флоридский университет

Майкл Гриффин (Michael Griffin)
Флоридский университет

Майкл Линч (Michel Lynch)
Флоридский университет

Фред Тейлор (Fred Taylor)
Флоридский университет

Ron Drafz, Ken Smith, Eric Dowling, Michael Griffin, Michel Lynch, Fred Taylor. Turn a PC into a supercomputer with plug-in boards, ED, 1988, No.26, pp.89—93.

Платы параллельного процессора, построенные на базе ИС для выполнения операций с плавающей точкой, придают обычному персональному компьютеру PC вычислительную мощность суперЭВМ.

Разработчики, которым приходится регулярно решать такие задачи, как расчеты фильтров с импульсной характеристикой конечной и бесконечной длительности (FIR/IIR), двумерные свертки, дискретные преобразования Фурье и матричные вычисления, знают, что даже персональные компьютеры PC AT корпорации IBM, работающие с тактовыми частотами 20 МГц и без периодов ожидания, обладают недостаточной производительностью, чтобы быстро получать результаты. Что же делать в подобной ситуации? Один из возможных выходов — причем традиционный — приобрести дорогое АРМ или мини-суперкомпьютер.

Сейчас, однако, появляется альтернатива: разработчики могут существенно повысить производительность компьютера PC AT, используя схемные платы параллельной обработки, которые вместе реализуют архитектуру типа суперкомпьютерной. Параллелизм — основной подход, лежащий в основе построения современных высокопроизводительных вычислительных систем,— это принцип, согласно которому ряд небольших и недорогих элементов, соединенных параллельно, позволяют довести общее быстродействие системы до уровня суперкомпьютера. Например, введение матрицы из девяти процессоров с плавающей точкой в персональный компьютер PC AT обеспечивает колоссальный выигрыш в скорости решения задач — от 500 до нескольких тысяч раз.

Подобный матричный процессор разработали научные сотрудники лаборатории архитектур высокопроизводительных цифровых ЭВМ (HSDAL) факультета электротехники Флоридского университета. Их матричный процессор с плавающей точкой (FPAP) состоит из четырех схемных плат — платы контроллера и трех идентичных процессорных плат, каждая из которых содержит одну строку (1*3) матрицы 3*3 процессора с плавающей точкой (рис.1). Идея состоит в том, чтобы главный компьютер (в нашем случае PC AT) передавал данные в FPAP для высокоскоростной обработки и получал от него результаты вычислений. Платы контроллера координируют работу матрицы процессорных элементов, взаимодействуя с главным персональным компьютером через интерфейс канала ввода-вывода компьютера PC AT. Поскольку управлять четырьмя платами может либо микро-программируемая контроллерная плата, либо персональный компьютер, выполнение микропрограммы может запускаться и приостанавливаться этим главным компьютером. Матричный процессор построен по двумерной архитектуре с одним потоком команд и многими потоками данных (SIMD)1{Single-instruction multiple-data} с ортогональной схемой межсоединений — между процессорными элементами строк и столбцов матрицы имеются локальные связи. Такая микропроцессорная система способна работать в четырех режимах: скалярном, векторном, с полным использованием (полной загрузкой) процессорных элементов или с имитацией систолической архитектуры. В скалярном режиме система похожа на один сопроцессор с плавающей точкой, работающий параллельно с центральным процессором (ЦП). В векторном режиме три процессорных элемента, расположенные по диагонали матрицы, работают как трехуровневый векторный процессор (3*1). Режим полного использования обеспечивает, как говорит само название, 100%-ное использование всех процессорных элементов матрицы — все девять процессоров работают параллельно. Это наиболее эффективный режим, он позволяет достичь максимального быстродействия 90 млн. операций с плавающей точкой в секунду (Мфлопс). Матрица процессорных элементов предусматривает также возможность имитировать систолическую архитектуру или почти любые варианты прохождения данных.

Матричный процессор с плавающей точкой (FPAP) состоит из схемной платы контроллера и трех идентичных плат процессорных элементов. Главный компьютер (з
Рис.1. Матричный процессор с плавающей точкой (FPAP) состоит из схемной платы контроллера и трех идентичных плат процессорных элементов. Главный компьютер (здесь это персональный компьютер PC AT корпорации IBM) передает данные в FPAP для высокоскоростных вычислений и получает от него результаты.

В состав схемной платы микропрограммируемого контроллера входит блок последовательного управления (БПУ), микропрограммная память и шины, посредством которых осуществляется связь плат процессорных элементов друг с другом и с каналом ввода-вывода компьютера PC AT. Однокристальный микропрограммный БПУ SN74AGT8818 реорганизует код матричного процессора, разделяя его на секции, допускающие параллельное выполнение. Этот 16-бит микропрограммный БПУ адресует 64 Кслов микропрограммной памяти и содержит стек на 64 слова по 16 бит для хранения адресов возврата из подпрограмм, начальных адресов и счетчиков циклов. Микропрограммная память, в которой содержится код программы, выполняемой матрицей процессорных элементов, имеет емкость 8096 слов по 75 бит.

На каждой из трех схемных плат три процессорных элемента соединяются как одна строка 9-процессорной матрицы. В этих платах в качестве процессорных элементов применяются 64-разрядные однокристальные процессоры с плавающей точкой SN74ACT8847 фирмы TI. Каждый кристалл имеет 32-разрядную выходную и две 32-разрядные входные шины. Наличие рабочего буферного регистра позволяет за один цикл производить загрузку двух 64-бит операндов.

Кроме трех процессоров каждая из схемных плат матрицы содержит довольно большую по емкости память данных, что сводит к минимуму вероятность потерь времени из-за недостаточной пропускной способности каналов обмена между главным ЦП и процессорными элементами матрицы. Эта память данных на каждой плате по конфигурации представляет два блока по 32*32 кбит — память X и память Y. Таким образом, комплект из трех плат содержит три блока памяти X и три блока памяти Y, т.е. всего шесть структур памяти со своей 32-разрядной шиной каждая.

Один блок памяти данных (блок X или Y) строится из четырех однокристальных ЗУПВ с организацией 32К*8 бит. Регистр адресов управляет работой памяти, когда адреса поступают из микропрограммной памяти платы контроллера, а не с шины компьютера PC AT под микропрограммным управлением.

Каждый процессорный элемент может принимать данные с одной двунаправленной шины памяти X и одной одноправленной шины памяти Y. Эти тракты памяти данных образуют двумерную сетку соединений. Данные памяти могут также поступать на шину компьютера PC под управлением этого главного компьютера (рис.2).

Структурная схема матричного процессора с плавающей точкой. Платы контроллера, микропрограммные памяти, матричные процессоры, ЗУ данных и главный комп
Рис.2. Структурная схема матричного процессора с плавающей точкой. Платы контроллера, микропрограммные памяти, матричные процессоры, ЗУ данных и главный компьютер соединяются посредством системы шин.

Шесть выходов памяти данных системы (по два на каждой плате) соединяются общей 32-разрядной шиной. В этой шине данные и результаты могут передаваться между блоками памяти и процессорными элементами, которые не связаны шиной X или Y, без необходимости возвращаться в компьютер PC по его 16-разрядной шине с малой пропускной способностью.

Каждая область памяти матричного процессора с плавающей точкой может отображаться на неиспользуемое адресное пространство персонального компьютера выше шестнадцатеричного адреса D00000H (рис.3). Такое отображение осуществляется под управлением регистра конфигурации, значение которого задается по программе перемещения данных, размещаемой в персональном компьютере PC. С точки зрения главного PC эта память представляет собой два блока по 32 16-бит Кслова; их она может загружать с темпом 800 нс/слово. Всю область микропрограммной памяти можно заполнить примерно за 35 мс. Таким образом, загрузка микропрограмм для решения различных прикладных задач может производиться из PC в микропрограммный контроллер очень быстро.

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

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

Загрузка памяти может осуществляться по 16-разрядной шине PC с темпом около 1,6 мкс на 32-разрядное слово. Заполнить все шесть ЗУ данных заново можно приблизительно за 300 мс.

Сигналы управления для ЗУ данных вырабатывает пара дешифраторов X-Y. Сигналы X и Y поступают в блоки памяти X и Y соответственно. Дешифраторы строятся с использованием приборов программируемой матричной логики (ПМЛ) BRAL22V10 фирмы TI.

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

Цикл записи в памяти занимает 200 нс и называется одним «периодом состояния» (state time). Он образуется по базовому периоду синхронизации конечного автомата для системы (соответствующие сигналы синхронизации генерируются средствами платы контроллера). Перенос данных из процессорного элемента в основную память занимает один такой период состояния из-за принятой структуры синхронизации процессора с плавающей точкой.

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

Такая схема обеспечивает возможность последовательного доступа к 32-разрядным словам данных, начиная с произвольного адреса с темпом одно слово на микроцикл для каждого ЗУ данных. Другими словами, такой последовательный доступ осуществляется с независимым управлением для каждого ЗУ данных. Последовательный доступ к данным позволяет с очень высокой скоростью выполнять программы, данные которых четко упорядочены, например программы умножения матриц.

Микрокод

Все четыре платы могут работать под управлением либо платы микропрограммного контроллера, либо персонального компьютера PC. Режим управления задается посредством того же самого регистра конфигурации PC, который упоминался выше при описании управления ЗУ данных. Таким образом, персональный компьютер PC AT может в любой момент запустить и приостановить выполнение микропрограммы (рис.4).

Высокая скорость вычислений FPAP. Процедура взаимодействия главного компьютера с матричным процессором состоит из ряда определенных шагов. Матрица про
Рис.4. Высокая скорость вычислений FPAP. Процедура взаимодействия главного компьютера с матричным процессором состоит из ряда определенных шагов. Матрица процессорных элементов выполняет подготовленный процесс и возвращает данные и результаты главному компьютеру PC AT, который затем дает команду начать новый процесс.

Когда начинается выполнение микропрограммы, микропрограммный контроллер сбрасывается (переходит) на конкретную микрокоманду. Контроллер сигнализирует об окончании микропрограммы, устанавливая в 1 соответствующий бит-признак в регистре конфигурации. Это по сути процедура установления связи между PC AT и микропрограммным контроллером.

Персональный компьютер PC AT пересылает данные в ЗУ данных платы FPAP для конкретных вычислений. Данные, записываемые в памяти, передаются по шести 32-разрядным шинам матриц и загружаются в процессорные элементы для обработки. Поскольку шины Y процессорных элементов являются однонаправленными, а шины X — двунаправленными, данные операндов могут поступать из памятей X и Y, однако результаты конкретных вычислений загружаются только в памяти X. Поэтому для вычислений, требующих двух операндов, загрузка может быть выполнена за один цикл, с использованием шин X и Y, а для выдачи результатов из всех девяти процессорных элементов требуются три цикла. Когда результаты находятся в памяти X, главный компьютер может их прочитать. Во время обработки данных в FPAD компьютер PC может готовить новые данные и воспроизводить результаты предыдущих вычислений, возвращаемые из матричного процессора.

Как и следовало ожидать, начальное проектирование и окончательная отладка столь сложной схемы, как четырехплатный FPAP, требует активного применения машинного моделирования. Поскольку основные элементы схемы — процессор с плавающей точкой 74ACT8847 и микропрограммный контроллер 74ACT8818, моделирование производится преимущественно «вокруг» этих компонентов.

Для создания файлов объектного микрокода и поддержки работы с листингами для программ, которые выполняются в рамках архитектур без стандартных наборов команд, фирма TI предлагает свой мета-ассемблер TIM (TI MetaAssembler). Подсистема TIM — это перемещаемый макро-мета-ассемблер, который генерирует модуль объектного кода в абсолютных адресах в формате, пригодном для загрузки в программируемые ПЗУ или памяти эмуляторов систем проектирования.

Имеются инструментальные средства программирования, помогающие разработчикам проектировать, отлаживать, программировать и применять матричный процессор с плавающей точкой. Научные сотрудники HSDAL написали программу моделирования процессора FPAP на уровне выводов приборов, чтобы можно было решать схемные вопросы, выявлять и устранять ошибки монтажа плат и отлаживать программные средства. Данная программа использует возможности, предоставляемые функциональной моделью ВВ прибора SN74ACT8847 фирмы TI для своей процессорной матрицы 3*3. В качестве исходных данных программа моделирования принимает файл, сформированный при помощи мета-ассемблера TIM и содержащий последовательность микрокоманд, которые составляют микропрограмму FPAP.

Программирование матричного процесса

Конечные пользователи FPAP могут программировать данную матрицу процессорных элементов либо на языке ассемблера, либо на высокоуровневом языке матричных вычислений и обработки сигналов Сиглаб (Siglab). Этот язык — часть макета проектирования цифровых фильтров под названием Monarch, распространяемого через компанию Athena Group Inc. (Гейнсвилл, шт.Флорида). При помощи языка Сиглаб пользователи могут вызвать ряд заранее закодированных подпрограмм матричного процессора, из которых составляются конкретные программы для реализации соответствующих алгоритмов. Средства моделирования FPAP принимают файлы, генерируемые системой языка Сиглаб, заполняют памяти и выдают окончательное содержимое последних в выходной файл, читаемый средствами языка Сиглаб.

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

Для демонстрации высокого быстродействия матричного процессора в режиме полного использования процессорных элементов были проведены его сравнительные испытания с персональным компьютером PC AT корпорации IBM, содержащим сопроцессор 80287, на контрольных задачах, написанных на языке Сиглаб. Были запрограммированы два алгоритма, а именно умножение матриц и линейная фильтрация. Для линейной фильтрации вычислялись свертки последовательностей на 256 и 4096 точек.

Умножение матриц 30*30 и 90*90 чисел длиной 32 разряда с одинарной точностью заняло у компьютера PC AT около 3,7 с и 1 мин соответственно, а у FPAP — 5,22 и 58 мс соответственно, т.е. выигрыш в быстродействии составил 709 и 1034 раза. Что касается линейной фильтрации, то эта задача решалась на компьютере PC AT приблизительно 1 мин, а на FPAP — 26 мс. Во всех трех случаях свыше 50 % машинного времени было затрачено на ввод-вывод.

Систолические матрицы

Примером параллельной структуры может служить систолическая матрица. Подобная структура повышает скорость вычислений, поскольку уменьшает накладные расходы на взаимодействие процессорных элементов. Систолическая матрица по существу представляет собой n-мерный «сборочный конвейер» процессорных элементов, каждый из которых выполняет небольшую часть общей крупной задачи. При этом любой процессорный элемент поддерживает связь только со своим ближайшим соседом.

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

Об авторах

Рон Драфц — ответственный за применение СБИС в объединении полупроводниковых приборов фирмы TI. Он получил степени бакалавра по вычислительной технике в Иллинойсском университете (Шампейн-Эрбана) и магистра в Далласском университете. Драфц — автор патента на цифровой фильтр с фазовой автоподстройкой частоты.

Кен Смит — инженер по стратегическому маркетингу в подразделении по маркетингу логических СБИС объединения полупроводниковых приборов фирмы TI. Получил степень бакалавра по электротехнике в технологическом институте штата Джорджия.

Эрик Даулинг — получил научные степени бакалавра и магистра электротехники во Флоридском университете, где сейчас готовит диссертацию доктора философии. Его научные интересы охватывают цифровую обработку сигналов и архитектуры матричных процессоров.

Майкл Гриффин — пишет научную работу на соискание степени доктора философии во Флоридском университете. Он получил степени бакалавра и магистра электротехники в Университете Цинциннати. Его научные интересы охватывают цифровую обработку сигналов и архитектуры высокопроизводительных ЭВМ.

Майкл Линч — преподаватель факультета электротехники во Флоридском университете. Имеет опыт научных исследований в области радиоастрономии и разработки микропроцессоров, а также ведет учебный курс проектирования цифровых систем.

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

Выходные данные:

Журнал "Электроника" том 61, No.25 (804), 1988г - пер. с англ. М.: Мир, 1988, стр.33

Electronic Design No.26 November 23, 1988 VNU Business Publication Inc.

Ron Drafz, Ken Smith, Eric Dowling, Michael Griffin, Michel Lynch, Fred Taylor. Turn a PC into a supercomputer with plug-in boards, ED, 1988, No.26, pp.89—93.

Раздел: МЕТОДЫ, СХЕМЫ, АППАРАТУРА

Тема:     Вычислительная техника





Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:44 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/HardWare/TI/D19890421Elc011.shtml