<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Ускоритель численных расчетов на базе модулярно-систолического микропроцессора</article-title>
      </title-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <fpage>656</fpage>
      <lpage>661</lpage>
      <abstract>
        <p>В статье представлено описание основных технических решений ускорителя численных расчетов на базе разработанного четырехядерного модулярно-систолического микропроцессора с MIMD-архитектурой, распределенной кэш-памятью, ориентированного на массовую арифметико-логическую обработку чисел с фиксированной точкой. Ему присущ ряд уникальных особенностей, например, динамическая группировка процессорных ядер для наращивания разрядности обрабатываемых чисел. При этом время выполнения операций одинаково, а сама обработка предельно распараллелена, что достигается благодаря выполнению операций в параллельноконвейерном режиме над непозиционными числами.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Даная группировка возможна как для ПСС, так и для СОК, причем, она не требует
временных затрат, так как реконфигурация процессора происходит динамически и может выполняться
с приходом каждой следующей пары операндов. Подобное техническое решение отсутствует
как в современных универсальных микропроцессорах, так и в сопроцессорах.</p>
      <p>Другой отличительной особенностью микропроцессора является распараллеливание
обработки каждой пары операндов на двух уровнях.</p>
      <p>Первый уровень обеспечивается независимостью обработки по каждому основанию числа
в СОК. Так, например, время вычисления 128-разрядного числа сокращается в 16 раз за счет
одновременного вычисления по 20 восьмиразрядным остаткам исходных чисел (модулярность
структуры).</p>
      <p>Второй уровень обеспечивается пространственно-временным параллелизмом вычислений
по каждому основанию на базе ОВС (систоличность структуры).</p>
      <p>Таким образом, параллельно-конвейерное выполнение операций над независимыми
остатками чисел позволяет сократить время вычислений до времени срабатывания одного
логического элемента. Например, вычисления над числами разрядности 128, 64 и 32 бита
выполняются одинаково быстро и на предельной частоте работы, что недостижимо в известных аналогах,
функционирующих в ПСС. В них высокая скорость работы обеспечивается наращиванием
количества ядер, что в итоге сильно сужает класс задач, так как необходимо избегать
зависимостей по данным. Для обеспечения своевременной подачи исходных операндов на входы
арифметико-логического устройства предусмотрено повышение скорости работы кэш-памяти за
счет 96-кратного расслоения доступа и частично-ассоциативного доступа, а также
одновременного доступа в распределенные банки памяти, которые соответствуют независимым
основаниям СОК.</p>
      <p>Основные технические характеристики МСП представлены в таблице 1.</p>
      <p>Таблица 1. Основные технические характеристики МСП
Теоретическая пиковая производительность, Гоп/с
Количество вычислительных ядер, шт.
Рабочая тактовая частота, ГГц
Поддерживаемый объём оперативной памяти, Гбайт
Количество видов адресации, шт.
Размер кэш-памяти одного ядра, кбайт
Уровней вложенности прерываний, шт.
Разрядность операндов в ПСС, бит
Разрядность операндов в СОК, бит
Разрядность команды, бит
Ширина выборки из оперативной памяти, бит
Потребляемая мощность, Вт
2
4
0,5
32
4
80
16
32/64/128
40/80/160
64
64
2
Представление разрядной сетки для чисел в ПСС стандартно: старший бит определяет знак
числа, остальные биты содержат само число. Для кодирования чисел в СОК необходимо
большее число двоичных разрядов, чем в ПСС, поэтому 32-,64-,128-разрядным сеткам позиционных
чисел соответствуют 40-,80-,160-разрядные сетки чисел в СОК. Пример 40-разрядной сетки
приведен на Рис. 1. Она содержит остатки числа по пяти различным основаниям, разрядность
которых не превышает восьми бит. При этом два младших бита разрядной сетки определяют
группу оснований. Сочетания различных групп оснований позволяют кодировать числа
большей разрядности. Таким образом, для представления 128-разрядного числа в СОК потребуется
задействовать 160-разрядную сетку, содержащую двадцать остатков, входящих в четыре
различные группы оснований.</p>
      <p>Рис. 1. Остаточное представление 32-х битного числа в процессоре
В процессоре используются основные типы адресации, при этом задействовано 80 команд,
среди которых арифметико-логические команды, передачи управления и другие
При этом в процессоре используется иерархическая структура памяти. Существует как
предвыборка команд в очередь команд из оперативной памяти, так и предвыборка операндов в
очереди данных (ОД) из КЭШ-памяти для повышения скорости их обработки. После
выполнения операции в арифметико-логическом устройстве (АЛУ), её результат поступает в очередь
результатов, откуда записываются в КЭШ память по адресу, извлеченному из очереди адресов
результатов (ОАР). Подобные очереди представляют собой высокоскоростные буферы FIFO.</p>
      <p>Так как процессор работает не только в ПСС, но и в СОК, то он содержит аппаратный
быстродействующий преобразователь кодов, который в параллельно-конвейерном режиме
преобразуют числа из ПСС в СОК и параллельно с этим из СОК в ПСС.</p>
      <p>Структурная схема процессора представлена на Рис. 2.</p>
      <p>Вычислительное
ядро 1
Вычислительное</p>
      <p>ядро 2
Оперативная</p>
      <p>память
Преобразователь</p>
      <p>кодов
Вычислительное
ядро 3
Вычислительное</p>
      <p>ядро 4
Рис. 2. Структурная схема процессора
Обработка информации в процессоре конвейеризирована на двух уровнях для
оптимального распределения частот синхронизации, соответствующих узлам процессора:
- микроконвейер арифметико-логических преобразований операндов (предельное
распараллеливание позволяет установить частоту синхронизации, равную времени срабатывания
элемента ИСКЛЮЧАЮЩЕЕ ИЛИ);</p>
      <p>- макроконвейер стадий подготовки операндов и записи результата (частота синхронизации
определяется временем срабатывания самой медленной ступени макроконвейера).</p>
      <p>В связи с этим устройство управления процессора децентрализовано. Каждое ядро
содержит три устройства управления (УУ), все они отвечают за соответствующие ступени работы
макроконвейера. Причем, микроконвейер АЛУ не нуждается в собственном УУ.</p>
      <p>При этом АЛУ каждого ядра может выполнять операции, как в СОК, так и в ПСС,
благодаря универсальному вычислительному полю ОВС, задача которого – суммирование пар
операндов в параллельно-конвейерном режиме. В связи с этим все арифметические операции сводятся
к суммированию в дополнительном коде. При этом операции «умножение» и «деление»
выполняются итерационно.
3. Вычислительное ядро</p>
      <p>Условимся называть часть АЛУ, выполняющую только арифметические операции,
вычислительным ядром.</p>
      <p>
        Свойства модулярной арифметики позволяют свести выполнение таких операций, как
«сложение», «вычитание», «умножение» и «деление нацело» к операции «суммирование
остатков». Для этого используются таблицы подстановок (ТП), представляющие собой
ассоциативную память, которая выполняет однотактную табличную выборку. Общая структурная схема
вычислительного ядра [
        <xref ref-type="bibr" rid="ref1">4</xref>
        ] в общем виде представлена на Рис. 3.
      </p>
      <p>a1
b1
a2
b2
an
bn
Входная ТП осн. p1
Входная ТП осн. p1
Входная ТП осн. p2
Входная ТП осн. p2
.
.</p>
      <p>.
Входная ТП осн. pn
Входная ТП осн. pn</p>
      <p>Рис. 3. Структурная схема вычислительного ядра
Вычислительное ядро состоит из вычислительных модулей, число которых равно n, где n –
число оснований СОК. Каждый вычислительный модуль ведет вычисления по заранее
определенному основанию и содержит две входные таблицы подстановок, выходную таблицу
подстановок и ОВС.</p>
      <p>ОВС имеет размерность m+1 строк и m+1 столбцов базовых элементов (БЭ) и
предназначена для суммирования операндов с распараллеливанием конвейерного типа вплоть до разряда
операнда, где m – разрядность остатка СОК.</p>
      <p>Базовый элемент, осуществляющий суммирование бита операнда с битом переноса,
построен на базе полусумматора, содержащего логический элемент «И» и логический элемент
«ИСКЛЮЧАЮЩЕЕ ИЛИ», буферные триггерах Т1 и Т2 для фиксации текущего состояния
бита операнда и бита переноса в старший разряд (Рис. 4).</p>
      <p>Рис. 4. Структурная схема базового элемента
В случае конвейерного режима работы результат операции будет выдаваться каждый такт
работы устройства, независимо от типа арифметической операции.</p>
      <p>В результате оценки эффективности [5] предлагаемого арифметического устройства
установлено, что при одинаковых аппаратурных затратах скорость вычислений в СОК после
заполнения m+1 ступеней конвейера будет в n/(m+1) раз выше для операций «сложение» и
«вычитание» и в n2/(m+1) раз выше для операций «умножение» и «деление нацело» по сравнению с
ПСС, где n – разрядность операндов, m – разрядность оснований СОК.</p>
      <p>ОВС
ОВС
Выходная ТП
основания p1
Выходная ТП
основания p2
.
.</p>
      <p>.
Выходная ТП
основания pn
d1
d2
dn
4. Заключение</p>
      <p>Разработанный модулярно-систолический четырехядерный микропроцессор имеет
MIMDархитектуру с распределенной кэш-памятью и ориентирован на массовую
арифметикологическую обработку чисел с фиксированной точкой.</p>
      <p>Ему присущ ряд уникальных особенностей, например, динамическая группировка
процессорных ядер для наращивания разрядности обрабатываемых чисел. При этом время
выполнения операций одинаково, а сама обработка предельно распараллелена, что достигается
благодаря выполнению операций в параллельно-конвейерном режиме над непозиционными числами.</p>
      <p>Прототип МСП реализован на базе ПЛИС. Пиковая производительность составляет 2 Гоп/с
при энергопотреблении 2 Вт. При этом стоит учитывать, что скорость выполнения
вычислительных операций ограничивается максимальной тактовой частотой кристалла, а количество
ядер – его площадью, поэтому при реализации МСП на СБИС ожидается повышение
производительности, как за счет увеличения тактовой частоты (вплоть до 4 ГГц), так и за счет
количества ядер (до 16 штук). В этом случае расчетная пиковая производительность составляет
64 Гоп/с.</p>
      <p>МСП ориентирован на высокопроизводительные вычисления в виде сопроцессора, либо в
качестве универсального процессора. При этом следует подчеркнуть, что создание
отечественного микропроцессора является важнейшей стратегической задачей государства.
Литература
1. Барский А. Б. Параллельные процессы в вычислительных системах // М.: Радио и связь,
1990. – 255 c.
Accelerator numerical calculations based on modular-systolic
microprocessor
Ilya Osinin
The article describes the main technical solutions accelerator numerical calculations of the
developed based on quad-systolic modular microprocessor MIMD-architecture, with the
distributed cache, oriented to the mass-balanced, arithmetic and logical processing of
fixedpoint numbers. He has a number of unique features, such as dynamic group-rangement
processor cores to build the capacity of processed numbers. At the same time, the same
operations and the processing itself is extremely parallelized, which is achieved through the
implementation of operations in parallel-pipelined over nonpositional numbers.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          4.
          <string-name>
            <surname>Осинин</surname>
            <given-names>И. П.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Князьков</surname>
            <given-names>В</given-names>
          </string-name>
          . С.
          <article-title>Однородная модулярно-систолическая структура для массо- вых арифметических вычислений // IV международная научная конференция «Суперком- пьютерные системы и их применение (SSA-</article-title>
          <year>2012</year>
          )»
          <article-title>: сборник материалов</article-title>
          .
          <source>- Минск: ОИПИ НАН Беларуси</source>
          ,
          <year>2012</year>
          . -
          <fpage>С</fpage>
          .
          <fpage>122</fpage>
          -
          <lpage>126</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>