=Paper= {{Paper |id=Vol-1576/010 |storemode=property |title=The highly reliable modular-logarithmic processor with reconfigurable architecture |pdfUrl=https://ceur-ws.org/Vol-1576/010.pdf |volume=Vol-1576 |authors=Ilya Osinin }} ==The highly reliable modular-logarithmic processor with reconfigurable architecture== https://ceur-ws.org/Vol-1576/010.pdf
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt




  Высоконадежный модулярно-логарифмический процессор
           с реконфигурируемой архитектурой
                                          И.П. Осинин
      ФГУП «Российский федеральный ядерный центр  Всероссийский научно-
            исследовательский институт экспериментальной физики»

        В статье представлена организация перспективного арифметического модулярно-
        логарифмического процессора. Ключевое отличие от аналогов состоит в использова-
        нии непозиционной системы счисления на базе однородных вычислительных сред,
        что распараллелило вычисления вплоть до разрядов операнда, существенно повысив
        скорость вычислений, а также привнесло ряд уникальных свойств, значительно по-
        высив надежность процесса счета. Применение системы остаточных классов сов-
        местно с логарифмической системой счисления вместо плавающей точки позволило
        использовать диапазон представления чисел аналогичный формату IEEE-754, отка-
        завшись при этом от медленных операций округления и выравнивания порядков.
        Прототип процессора реализован в виде IP-блока софт-процессора на базе ПЛИС.

        Ключевые слова: процессор, система остаточных классов, логарифмическая система
        счисления, реконфигурируемая архитектура, высоконадежные вычисления.


1. Введение
    Крупные задачи, критичные к скорости вычислений, возникают в самых разнообразных
областях: в различных сферах промышленности, моделирования климата, в физике, космоло-
гии и многих других. Их решение с использованием средств вычислительной техники требует
постоянного повышения скорости вычислений, что особенно актуально при создании систем
рекордной производительности. На сегодняшний день большинство этих задач решается с ис-
пользованием кластерных решений.
    При этом известны такие традиционные пути повышения быстродействия, как совершен-
ствование техпроцесса, например, создание трехмерных транзисторов, совершенствование ал-
горитмов выполнения программ, например, распараллеливание вычислений. Однако резерв по-
вышения производительности, заложен в ускорении выполнения самих вычислительных опе-
раций, например, при применении модулярной арифметики на базе системы остаточных клас-
сов (СОК). Естественный параллелизм устройств, функционирующих на основе СОК, позволя-
ет распараллелить процесс вычислений, как на программном, так и на аппаратном уровне, а
модульность и однородность обеспечивает эффективное проектирование структур в сверх-
большом интегральном исполнении (СБИС). Научные работы Червякова Н.И., Акушского И.Я.,
Akio Sasaki, Garner H., Omondi A. посвящены этому направлению [1, 2].
    При этом у СОК имеются и недостатки, среди которых медленное выполнение операций
округление и деление, что существенно затрудняет применение плавающей точки. Решение,
описанное в данной работе, состоит в применении логарифмической системы счисления (ЛСС),
в которой отсутствует операция выравнивания порядков, а деление исходных чисел заменяется
вычитанием их логарифмов. Основополагающий вклад внесли ученые Coleman J., Arnold M.,
Chester E., Lewis D. [3].
    С другой стороны, конвейерным параллелизмом обладают однородные вычислительные
среды (ОВС), то есть среды, аппаратура которых может реконфигурироваться, меняя свои
функции, в зависимости от решаемых вычислительной системой задач. Это позволяет эффек-
тивно адаптировать архитектуру системы под структуру решаемой задачи, обеспечивая тем са-
мым высокий уровень скорости вычислений. Данной тематике посвящен ряд работ отечествен-
ных и зарубежных ученых Варшавского В.И., Каляева И.А., Князькова В.С., Flynn M., Moore
G., MacSorley L. [4]. В общем случае ОВС представляет собой массив вычислительных ячеек
структуры, которые объединены регулярными связями. Её применение в вычислительном ядре


                                               642
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                          agora.guru.ru/pavt



СБИС-процессора позволило практически пропорционально повышать производительность с
увеличением числа ячеек в силу естественного параллелизма их работы.
    Объединение в единой процессорной архитектуре рассмотренных форм естественного па-
раллелизма приведено далее в данной статье:
     в пункте 1 (введение) приведена проблематика исследования и обзор близких по тема-
тике работ;
     в пункте 2 рассмотрена общая организация архитектуры процессора, включающая
арифметическое устройство, вычислительные ядра и преобразователи кодов;
     в пункте 3 рассмотрены средства повышения надежности вычислений на уровне архи-
тектуры модулярно-логарифмического процессора;
     в пункте 4 описан прототип предлагаемого процессора, рассчитана его производитель-
ность и проведено сравнение с аналогами;
     в пункте 5 (заключение) приведено обобщение результатов, полученных в ходе данного
исследования.

2. Организация архитектуры процессора
     Параллелизм на уровне разрядов чисел в случае использования позиционной системы
счисления (ПСС) существенно ограничен фактом распространения межразрядных переносов,
что негативно сказывается на скорости его работы. Данный недостаток отсутствует в системе
остаточных классов (СОК), где вычисления по каждому модулю (основанию) из базиса
{p1,p2,...,pn} осуществляются независимо друг от друга.
     Пример. Пусть СОК состоит из двух оснований {p1=5, p2=7}. Диапазон чисел ограничен про-
изведением модулей P  in1 pi  5  7  35. Преобразуем число – найдем остатки от деления на
p1 и p2, например, картеж {2,3} является уникальным представлением числа 17. Остатки, обладая
существенно меньшей разрядностью, могут суммироваться, либо умножаться параллельно:
                                        1710  {2 mod 5 ,3mod 7 }
                                       
                                        1210  {2 mod 5 ,5 mod 7 }
                                          2910  {4 mod 5 ,1mod 7 }

2.1 Арифметическое устройство
     В разработанном и запатентованном арифметическом устройстве [5] именно эта особен-
ность стала первой плоскостью распараллеливания арифметических операций. Например, си-
стема модулей из рассмотренного примера ложится в два независимых вычислительных кана-
ла. В общем случае каналов может быть n – по количеству остатков СОК (рис. 1).
              Входная таблица       x1
   а1                                                                 z1
            подстановок модуля p1            Однородная                      Выходная таблица
                                                                                                   c1
              Входная таблица       y1   вычислительная среда              подстановок модуля p1
   b1
            подстановок модуля p1

              Входная таблица       x2
   а2                                                                 z2
            подстановок модуля p2            Однородная                      Выходная таблица
                                                                                                   c2
              Входная таблица       y2   вычислительная среда              подстановок модуля p2
   b2
            подстановок модуля p2
                     ...




                                                  ...




                                                                                    ...




              Входная таблица       xn
   аn                                                                 zn
            подстановок модуля pn            Однородная                      Выходная таблица
                                                                                                   cn
              Входная таблица       yn   вычислительная среда              подстановок модуля pn
   bn
            подстановок модуля pn

                           Рис. 1. Организация арифметического устройства




                                                 643
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                                          agora.guru.ru/pavt



    Важным преимуществом СОК является также то, что все основные арифметические опера-
ции могут выполняться также быстро как обычное суммирование. Для операций умножение и
деление нацело это становится возможным при использовании входных и выходных таблиц под-
становок (Look up table – LUT), осуществляющих однотактные преобразования операндов, вы-
числяя соответственно дискретные логарифмы xi  log g ai                                 и антилогарифмы ci  g z i        в полях
                                                                                    pi                                pi

Галуа GF(p), где ai и zi – i-ые остатки по модулю pi, xi и ci – результаты преобразования i-ой вход-
ной и i-ой выходной таблицей соответственно, g – порождающий элемент поля GF(p), i[1,n].
    Так как операция сложение остатков является основополагающей в разработанном арифме-
тическом устройстве, её выполнение распараллелено во второй плоскости с помощью ОВС –
квадратной матрицы размерностью m+1, где m – разрядность модуля i-го вычислительного кана-
ла. В такой систолической структуре (рис. 2 (а)) базовые элементы (рис. 2 (б)) соединены регу-
лярными связями, образуя вычислительный конвейер.
                     0                                0
                              a
                                           Q1
 x1          БЭ                    БЭ                          БЭ
                              b                                                z1
                                                ..
                                                 .


 y1          1, 1                  1, 2    Q2                1, m+1
                                                ..
                                                 .




  x2         БЭ                    БЭ                          БЭ              z2
                                                ..
                                                 .




  y2         2, 1                  2, 2                      2, m+1

                         ..                      ..
                          .                       .
                                                                                            a          =1
                                                                                                                  D T         Q1
  xm         БЭ                    БЭ                         БЭ                            b                     R
                                                                               zm
                                                ..
                                                 .




  ym         m, 1                  m, 2                      m,m+1                                                C
                                                                                                       &
                                                                                                                  D T         Q2
  0                                                            БЭ                                                 R
             БЭ                    БЭ
                                                              m+1,             zm+1                               C
                                                ..
                                                 .




  0         m+1, 1                m+1, 2                                                    c
                                                              m+1                           r
                                  (а)                                                                       (б)
          Рис. 2. Организация: (а) однородной вычислительной среды, (б) базового элемента
   Базовый элемент (БЭ) оптимизирован по аппаратным затратам, при этом время заполнения
вычислительного конвейера ОВС составляет Tконв  tБЭ  (m  1) , где m – разрядность модуля i-го
вычислительного канала, tБЭ  max{t XOR, t AND}  tDFF ) – время срабатывания БЭ, которое складыва-
ется из времени работы логического элемента и D-триггера, i[1,n], n  количество остатков СОК.
    После заполнения конвейера время выполнения арифметической операции равно tБЭ. Таким
образом, первый уровень распараллеливания обеспечен независимым счетом по каждому моду-
лю, второй уровень – конвейерным выполнением операций в ОВС. Ускорение в общем случае
достигает k раз для операций сложение и вычитание и k2 раз для операций умножение и деление
нацело по сравнению с последовательными алгоритмами ПСС, где k – разрядность позиционных
операндов.

2.2 Вычислительное ядро
    Рассмотренное арифметическое устройство является частью вычислительного ядра (рис. 3),
где для снижения задержек доступа к памяти используется иерархическая структура памяти с
многократным расслоением доступа по каждому модулю. Помимо трехпортовой кэш-памяти
(два порта – чтение, один – запись), имеются буферные очереди операндов и результата. Благо-
даря линейной структуре FIFO, они обладают высоким быстродействием, обеспечивая свое-
временную подкачку данных в арифметическое устройство.




                                                                644
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                             agora.guru.ru/pavt



         A      Очередь данных
                первого операнда                Арифмическое                   Очередь данных    C
         B      Очередь данных                   устройство                      результата
                второго операнда




                  КЭШ-память                      Устройство                      Очередь
                    данных                        управления                      команд




                                   Оперативная память, преобразователь кодов

                               Рис. 3. Организация вычислительного ядра
    В разработанном модулярно-логарифмическом MIMD-процессоре таких вычислительных
ядер может быть несколько. Рассмотрим вариант, когда их четыре, как представлено на рис 4.
На исходные коды четырехядерного 32-разрядного процессора получено свидетельство о реги-
страции программы на языке программирования аппаратуры [6].

             Вычислительное                                                     Вычислительное
                  ядро                                                               ядро
                                                Оперативная
                                                  память




                                              Преобразователь
                                                  кодов
             Вычислительное                                                     Вычислительное
                  ядро                                                               ядро


                    Рис. 4. Организация модулярно-логарифмического процессора
    В системе команд процессора используется универсальный 64-разрядный формат (рис. 5), в
котором присутствуют следующие поля:
     смещение в сегменте данных исходных операндов и результата;
     вид адресации;
     код операции;
     флаг векторной команды (команда будет применена к строке данных из 8 операндов).
             31      24 23      16 15       9 8        7 6      1         0
             Смещение Смещение Смещение          Вид       Код    Векторная
             результата операнда 2 операнда 1 адресации операции  операция

                                         Рис. 5. Формат команды
   Используются следующие виды адресации:
    непосредственная (операнд в команде);
    регистровая прямая (первый операнд в регистре константы);
    относительная прямая (смещение указано в команде);
    индексная автоинкрементная (смещение в адресном счетчике).
   Задействовано порядка 30 команд, среди которых:
    арифметические операции;
    управление процессом вычислений;
    передача управления прерываниям.


                                                   645
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                              agora.guru.ru/pavt



    Ключевой особенностью процессора является динамическая реконфигурация числа ядер за
счет уникальности набора оснований каждого вычислительного ядра. Ядра могут работать либо
параллельно и независимо (32 бита), либо объединяться парами для удвоения точности (64 бита),
либо объединяться в одно ядро для учетверения точности вычислений (128 бит). Это бывает
необходимо для устранения ошибки переполнения разрядной сетки в процессе счета с помощью
увеличения диапазона представления чисел.
    Принадлежность числа в СОК к одному из четырех наборов оснований определяется двух-
разрядным полем группа модулей в 32-разрядном формате данных (рис. 6).
                    31      24 23      16 15       9 8        2 1         0
                    Остаток по Остаток по Остаток по Остаток по   Группа
                    модулю p4 модулю p3 модулю p2 модулю p1       модулей

                                         Рис. 6. Формат данных
    Для преобразования из одной группы модулей в другую (при передаче данных для вычис-
ления на другом ядре) применяется преобразователь кодов, рассмотренный далее.

2.3 Преобразователь кодов
    Наиболее значительным фактором, сдерживающим широкое распространение СОК, является
медленное выполнение операций преобразования из позиционной системы и обратно, вычисле-
ние позиционной характеристики числа и некоторых других. Поэтому особую важность имеет
повышение скорости их выполнения. Рассмотрим, за счет чего в процессоре происходит их уско-
рение на примере операции преобразования кодов СОК в ПСС. Одним из методов преобразова-
ния кода системы остаточных классов в позиционный код является способ преобразования через
интервальную характеристику. Для этого используется выражение:
                                                 n
                                        A   l i  ai             pi  ai ,
                                                i 1         Pi

                                                       pi ( pi )  1
где A – позиционное представление числа, li                          , ai – i-ый остаток числа в СОК, n – коли-
                                                             pi
чество оснований СОК, φ(pi) – функция Эйлера модуля pi, i[1;n]. Данный способ удобен тем,
что позволяет вычислять интервальную характеристику числа. Она необходима при выполне-
нии немодульных операций, требующих позиционного представления числа. Имея такую ха-
рактеристику числа в СОК, преобразование в ПСС осуществляется за одну операцию умноже-
ние с суммированием (рис. 7). Как и коррекция по модулю, эта операция является частным слу-
чаем мультиоперандного суммирования, то есть суммирования нескольких слагаемых одно-
временно.
                          x1        Умножитель
                                                                                              Позиционная
                                    Умножитель                          Мультиоперандный
      Память констант     x2                                                                характеристика
                                        ...                                 сумматор
                                                                                                 числа
                          xn        Умножитель



                                     Устройство                                               Результат
                                                                           Умножитель с
                                коррекции по модулю                                         преобразования
                                                                            сумматором
                                      p1·…·pn-1                                                 в ПСС

                        Рис. 7. Организация преобразователя кодов из СОК в ПСС
    Разработанный мультиоперандный сумматор представляет собой систолическую структу-
ру, функционирующую на базе арифметики разрядных срезов, которая также обладает есте-
ственным параллелизмом.
    Массив слагаемых M представим приведенной ниже битовой матрицей A размерностью m
строк и n столбцов, где m - число слагаемых, n – разрядность модулей чисел.




                                                       646
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                                 agora.guru.ru/pavt




                                                a1,n ,..., a1, 2 , a1,1 
                                                                            
                                                a 2,n ,..., a 2, 2 , a 2,1 
                                             A                             .
                                                          ...               
                                                a ,..., a , a 
                                                m ,n         m,2       m ,1 

    Предлагается выполнять обработку матрицы A не по строкам – скалярным значением сла-
гаемых в двоичном представлении, как это реализуется в известных способах суммирования, а
по столбцам – разрядным срезам SRi чисел массива M, i[1;n]. Каждый разрядный срез является
одномерным булевым вектором из m элементов.
    Специализированная ОВС (рис. 8 (а)) выполняет подсчет количества единичных бит в раз-
рядном срезе, подаваемом на входы xi в параллельно-конвейерном режиме, после чего младший
разряд подсчета становится разрядом искомой суммы (выход s), а остальные являются разря-
дами переноса в следующий разрядный срез SRi+1, i[1;n], n – разрядность модулей. Такая ор-
ганизация вычислений позволяет добиться повышения скорости вычислений в k раз по сравне-
нию с традиционным последовательным способом, где k – количество слагаемых [7].
                          0            0
                     a
                 b    БЭ      Q2      БЭ
          x1
                      1, 1            1, 2
                     Q1

          x2          БЭ              БЭ
                      2, 1            2, 2
                                                                         a        =1
                                                                                             D T   Q1
                                                                         b                   R
                      БЭ              БЭ                                                     C
                      3, 1            3, 2                                        &
                                                                                             D T   Q2
                                                                                             R
                              Блок переносов                             c
                                                                                             C
                          s                                              r
                              (а)                                                      (б)
 Рис. 8. Организация: (а) фрагмента ОВС для мультиоперандного суммирования, (б) базового элемента
     Пример. Требуется вычислить сумму модулей четырех двоичных чисел:
a1=001112, a2=001012, a3=000012, a4=001112. Тогда:
                                              00111 
                                                    
                                              00101 
                                         A          .
                                               00001 
                                                    
                                              00111 
                                                    
     Битовая матрица A массива слагаемых содержит пять разрядных срезов:
SR1=11112, SR2=10012, SR3=11012, SR4=00002, SR5=00002. На первом этапе выполняется парал-
лельное вычисление количества единиц Bi в них: B1=1002, B2=0102, B3=0112, B4=0002, B5=0002.
Младший разряд B1 является младшим разрядом s1=0 итоговой суммы чисел. Затем вычисляет-
ся значение B*2=(B1→)+B2=1002, где → обозначает операцию сдвига двоичного числа на один
разряд вправо. Младший разряд полученной суммы B*2 является вторым s2=0 разрядом искомой
суммы S. В итоге серии аналогичных вычислений вычисляется искомая сумма
S(s5,s4,s3,s2,s1)=101002.
     Важным моментом является использование тех же БЭ (рис. 8(б)), что и в ОВС, входящей в
состав арифметического устройства. Это позволяет значительно повысить регулярность эле-
ментов процессора, что, в конечном счете, обеспечивает высокую технологичность в случае
массового производства на базе СБИС. Однако, помимо естественного параллелизма, СОК об-
ладает свойствами, повышающими надежность процесса вычислений. Средства, которые их
реализуют в разработанном процессоре, приведены в следующем разделе.


                                                          647
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                           agora.guru.ru/pavt




3. Надежность вычислений
    Надежность является одним из основных свойств любого вычислительного устройства, во
многом определяющим его пригодность для использования по назначению. На сегодняшний
день в супер-ЭВМ содержатся сотни тысяч и даже миллионы процессорных ядер. Сбои и отка-
зы в таких системах приводят к тому, что алгоритм программы становится недетерминирован-
ным и в результате расчета можно получить разный результат при одинаковых наборах вход-
ных данных. Кроме того, существуют области вычислений, где ошибка в вычислениях может
привести к фатальным последствиям. Например, к ним относятся задачи наведения ракет,
управления атомной электростанцией, функционирования космических аппаратов и другие.
    Существуют такие традиционные пути повышения надежности, как:
     резервирование на уровне компонент системы;
     дублирование вычислений;
     дополнительная обработка исключительных ситуаций и т.п.
    Их недостаток состоит в том, что часть оборудования простаивает, либо дублирует работу,
вплоть до отказа одного из компонентов системы. Данного недостатка можно избежать, внед-
рив средства повышения надежности на уровне архитектуры. Рассмотрим более подробно, как
это реализовано в предлагаемом процессоре.

3.1 Средства повышения надежности модулярно-логарифмического процессора
    Сочетание корректирующих свойств системы остаточных классов и динамической рекон-
фигурации ОВС позволили реализовать следующие средства повышения надежности.
    Во-первых, это выявление и исправление ошибок за счет расширения вычислительного
диапазона путем назначения одного или нескольких вычислительных каналов в качестве кон-
трольных (рис. 9). Доказано [1], что при возникновении ошибки, результат операции окажется в
запрещенном контрольном интервале. Причем, в процессоре применен механизм, локализующий
вычислительный канал, где произошел сбой. В случае подобного сбоя происходит исправление
ошибки путем вычисления верного остатка результата в канале и инкремент счетчика ошибок вы-
числительного канала.
                              31                         8   7          0
                                     Рабочий                 Контрольный
                                     диапазон                  диапазон

                   Рис. 9. Отображение областей чисел динамического диапазона
    Во-вторых, при превышении заданного порога в счетчике ошибок возникает ситуация отказа и
канал блокируется. Однако в отличие от повсеместно распространенных универсальных вычисли-
тельных устройств, модулярно-логарифмический процессор (МЛП) продолжает работу, сокраща-
ется лишь диапазон представления чисел. Если при этом нельзя снижать точность вычислений, то
можно использовать вычислительные каналы другого ядра, в том числе и контрольные (рис. 10).
Такая реконфигурация позволяет создать процессор, устойчивый к постепенной деградации. В
пределе, вычисления будут продолжаться, пока хотя бы один вычислительный канал будет рабо-
тоспособен. При этом разрядность обрабатываемых чисел будет равна разрядности канала.
                                                         Вычислительное ядро 1
                         31        24 23        16 15           8 7          0
                                        Отказ                        Отказ
                           Канал 4                      Канал 2
                                       канала 3                     канала 1


                         31        24 23        16 15           8 7         0
                                                         Отказ
                           Канал 4     Канал 3                     Канал 1
                                                        канала 2
                                                         Вычислительное ядро 2
             Рис. 10. Замена отказавших вычислительных каналов путем реконфигурации


                                                  648
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt



    В-третьих, рассмотренная в п.2.2 динамическая реконфигурация числа ядер позволяет управ-
лять разрядностью операндов для устранения ошибок переполнения разрядной сетки. Затем, при
необходимости, разрядность чисел может быть понижена до исходной.
    В-четвертых, на базе предложенного процессора имеется возможность реализовать совер-
шенно новые подходы в области аппаратного шифровании данных, например, можно настолько
быстро менять параметры остатков, чтобы период действия ключа на базе текущих параметров
был меньше минимального времени его вскрытия [2].
    Кроме того, в процессе счета могут возникать неявные ошибки, связанные с округлением
чисел в процессе вычислений по стандарту IEEE-754. К тому же работа с плавающей точкой
связана с делением чисел, что негативно сказывается на скорости выполнения операций в СОК,
так как данная операция является немодульной. Эти причины привели к необходимости приме-
нении аналога плавающей точки  логарифмической системы счисления (ЛСС), где в процессе
вычислений отсутствуют фазы нормализации и денормализации, что избавляет от ошибок округ-
ления и необходимости деления на степень двойки.

3.2 Модулярно-логарифмический формат данных
    Любое вещественное число a представлено в ЛСС его знаком и двоичным логарифмом его
абсолютной величины:
                                          log 2 с  a , если a  c 1 ,
                                 L(a )                      1
                                           0, если a  c ,
где с  константа для представления чисел диапазона (0,1). Такое представление чисел позво-
ляет производить вычисления не с вещественными числами, а с их логарифмами, причем опе-
рации умножение и деление заменяются операциями сложение и вычитание логарифмов соот-
ветственно, а возведение в степень и извлечение корня  операциями умножение и деление ло-
гарифмов соответственно. Этот факт позволяет значительно ускорить выполнение перечислен-
ных операций по сравнению с плавающей точкой.
    Однако за это приходится расплачиваться более сложным выполнением операций сложе-
ние и вычитание вещественных чисел x и y:
                            log 2 ( x ± y)  log 2 x  log 2 (1 ± 2log2 ylog2 x ),
которые реализованы в предложенном процессоре с помощью аппаратной реализации алгорит-
ма квадратичной интерполяции.
    Перевод вещественного числа в модулярно-логарифмический формат (рис. 11) проходит в
два этапа:
     порядок числа с плавающей точкой становится целой частью двоичного логарифма;
     вычисляется логарифм мантиссы вещественного числа, который является дробной ча-
стью логарифма;
     логарифмический код числа, состоящий из целой и дробной части логарифма, преобразу-
ется в СОК как единое целое число;
     в старший разряд числа записывается знак вещественного числа без изменений.
              31   30       24 23     16 15        9 8       2 1         0
                   Остаток по Остаток по Остаток по Остаток по
                                                                 Группа
              Знак модулю p4 модулю p3 модулю p2 модулю p1
                                                                 модулей
                      Логарифм       Дробная часть логарифма
              31   30          23 22                         2 1         0
                        Рис. 11. Модулярно-логарифмический формат данных

3.3 Оценка надежности модулярно-логарифмического процессора
    При построении надежностных характеристик предположим, что:
     в начальный момент времени в каждом из 4 вычислительных ядер имеется n=k+r каналов,
где k=4  количество информационных каналов, r=1  количество контрольных каналов;


                                               649
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                                         agora.guru.ru/pavt



     минимальное количество каналов, необходимых для функционирования процессора k;
     отказ более чем 3k+4r каналов является отказом всего процессора;
     отказавшие каналы не восстанавливают работоспособность;
     отказы каналов являются статистически независимыми событиями.
    Таким образом, надежностная структура процессора соответствует модели скользящего ре-
зервирования, где резервные элементы находятся в нагруженном состоянии [1]. Тогда вероят-
ности безотказной работы:
                                                            3k + 4r
                                                  R МЛП   P 4( k  r )i  (1  P ) i ,
                                                               0

где P(t )  e t  вероятность безотказной работы канала,   интенсивность его отказа.

    Определение и оперативная коррекция ошибок в ПСС возможна лишь при условии одно-
временной работы нескольких устройств по принципу голосования, например, «2 из 3». Веро-
ятность безотказной работы такой системы:
                                  R ПСС  3  PПСС
                                               2
                                                    2  PПСС
                                                          3
                                                              ,
где PПСС (t )  e  nПСС t , ПСС  интенсивность отказа одного разряда, n  разрядность позиционно-
го процессора.
    Результаты расчета надежности в течении t=2000 часов функционирования представлены
графически на рис. 12. Анализ полученных зависимостей свидетельствует о преимуществе в
надежности модулярно-логарифмического процессора. Например, при интенсивности отказов
=210-6 он обеспечивает вероятность безотказной работы R=0,5; тогда как позиционный процес-
сор R=0,1. Избыточность аппаратурных затрат составляет 25% и 66% соответственно.
                              1
   Вероятность безотказной




                             0,8
          работы, R




                             0,6
                                                                                                     МЛП
                             0,4
                                                                                                     ПСС
                             0,2

                              0
                                   0    1        2         3          4                      5   6
                                              Интенсивность отказов , 10-6
                                       Рис. 12. Модулярно-логарифмический формат данных

4. Прототип и оценка производительности процессора
     На данный момент модулярно-логарифмический процессор существует в виде прототипа 
IP-блока RISC-процессора NIOS на базе программируемой логической интегральной схемы
(ПЛИС). Данный выбор обусловлен простотой реализации, так как можно использовать уже готовые
функциональные блоки процессора NIOS, дополняя его систему команд и используя уже готовый
компилятор, для написания и отладки программ.
     Проектирование функциональных схем процессора проводилось в САПР Quartus II Web Edition
фирмы Altera. Отладка и тестирование выполнялось на базе платы с ПЛИС Altera Cyclone V.
     Так как элементные базы ПЛИС и СБИС существенно отличаются по скоростным характе-
ристикам, то при сравнительной оценке целесообразно использовать количество операций за
такт работы устройства. Аппаратные затраты блоков векторных расширений универсальных
процессоров оценены приблизительно по изображениям планировки функциональных блоков
(floorplan).



                                                                        650
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                                    agora.guru.ru/pavt



    Предложенный процессор выполняет до четырех операций за такт и при увеличении вы-
числительных каналов способен догнать по числу операций за такт блок векторного расшире-
ния Intel AVX семейства Sandy Bridge при сопоставимых аппаратных затратах (рис. 13 (а)) [8].
    Кроме того, на рис. 13 (б) проведено сравнение характеристик одного вычислительного яд-
ра МЛП (32 бита) с софт-процессором NIOS, к которому подключен разработанный IP-блок. Из
рисунка видно, что процессору NIOS требуется 3 такта для выполнения целочисленной опера-
ции и пять тактов для вещественной, тогда как вычислительному ядру МЛП необходим один
такт для выполнения арифметической операции за такт, независимо от типа данных. Аппарат-
ные затраты приведены в количестве адаптивных логических модулей (adaptive logic module -
ALM), необходимых для генерации устройства на базе ПЛИС Cyclone V.
  Операций                            Intel Sandy Bridge         Операций
   за такт                                                        за такт
                                           AVX-256                                                   МЛП-32
         8                                                              1

                           МЛП-128
                            4 ядра
        4                                                                      Altera
               ARM Cortex A15                                                 NIOS-32     Altera
                 NEON-128                                            0,33               NIOS_FP-32
        2
                                                                      0,2
        0                                                                0
       2,2                                                           629
                                                                    1543
       8,3




      18,9                                                          6874
    Млн.
транзисторов                                                       ALM, шт.
                                (а)                                                       (б)
                 Рис. 13. Оценка временных и аппаратных затрат МЛП в сравнении с:
     (а) векторными расширениями СБИС-процессоров Intel и ARM, (б) ПЛИС-процессором NIOS
    Помимо универсальных процессоров, у МЛП существуют специализированные аналоги.
Например, модулярный нейропроцессор, разработанный в Ставропольском военном институте
связи [1]. Ключевое отличие МЛП от него состоит в применении ОВС вместо нейросетей, а
также наличии блока обработки вещественных чисел на базе логарифмической системы счис-
ления. Другой аналог – «European Logarithmic Microprocessor», разработанный в университете
Ньюкасл [3] и функционирующий на базе ЛСС. Ключевое отличие МЛП состоит в применении
СОК и ОВС для распараллеливания вычислений на уровне разрядов чисел.

5. Заключение
    Таким образом, в представленном модулярно-логарифмическом процессоре заложен потенци-
ал параллельного счета и обеспечения отказоустойчивости на уровне архитектуры, что делает ак-
туальным его применение для расчета задач, критичных не только к скорости, но и к надежно-
сти вычислений.
    Высокая производительность достигается за счет:
     распараллеливания арифметических операций на уровне остатков непозиционной систе-
мы счисления;
     параллельно-конвейерной обработки каждого модуля в однородной вычислительной среде;
     замены операций умножение и деление вещественных чисел операциями сложение и вы-
читание соответственно, благодаря свойствам логарифмов.
    Надежность вычислений обеспечивается:
     обнаружением и коррекцией ошибок;
     устойчивостью к постепенной деградации оборудования;


                                                           651
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt



     динамической реконфигурацией числа ядер для управления разрядностью вычислений;
     отсутствием ошибок округления за счет применения ЛСС.
    Текущая реализация в виде IP-блока софт-процессора подтверждает реализуемость архи-
тектурных особенностей, описанных в данной статье. В перспективе такой процессор может
быть создан не только в качестве дополнения системы на кристалле, но и как самостоятельное
устройство. Например, в виде арифметического ускорителя, подключаемого к компьютеру с
традиционной архитектурой, либо в качестве центрального процессора на базе СБИС. В любом
из этих вариантов высокая производительность, масштабируемость и реконфигурируемость
достигается за счет применения однородных вычислительных сред, функционирующих в бази-
се системы остаточных классов и логарифмической системы счисления.
    Сферами применения МЛП являются:
      высокопроизводительные вычисления, требующие работы с большой разрядностью
данных (задачи моделирования климата, исследование электромагнитного рассеяния, исследо-
вание орбитальной эволюции небесных тел и другие), где за счет распараллеливания счёта на
множество независимых остатков достигается прирост производительности по сравнению с
известными аналогами;
      высоконадёжные вычисления, требующие постоянного контроля правильности вычис-
лений (задачи наведения ракет, управления атомной электростанцией, функционирования кос-
мических аппаратов и подобные), где за счёт применения корректирующих свойств СОК до-
стигается уменьшение аппаратных затрат по сравнению с аналогами.

Литература
1. Червяков Н.И. Модулярные параллельные вычислительные структуры нейропроцессорных
   систем. Москва: Изд-во Физматлит, 2003. 288 с.
2. Магометов Ш.Г. Передача и прием данных в вычислительных устройствах с использовани-
   ем системы остаточных классов. URL: http://www.mathnet.ru/vagtu355 (дата обращения:
   24.10.2015).
3. Coleman J.N., Chester E.I. Arithmetic on the European Logarithmic Microprocessor // IEEE
   Transactions on Computers. 2000. Vol. 49, No. 7. P. 702–715.
4. Каляев И.А. Реконфигурируемые мультиконвейерные вычислительные структуры. Ростов-
   на-Дону: Изд-во ЮНЦ РАН, 2008, 320 с.
5. Осинин И.П., Князьков В.С. Ячейка однородной вычислительной среды, однородная вы-
   числительная среда и устройство для конвейерных арифметических вычислений по задан-
   ному модулю // Патент 2477513 РФ. МПК G06F7/72. опубл. 10.03.2013г. Бюл. №7.
6. Осинин И.П., Князьков В.С. Организация параллельно-конвейерной СБИС-структуры с ре-
   конфигурируемой микроядерной архитектурой // Известия высших учебных заведений. По-
   волжский регион. Серия: Технические науки. 2013. №3. С. 74–83.
7. Осинин И.П., Князьков В.С. Способ организации вычислений суммы n m-разрядных чисел
   // Патент 2491612 РФ. МПК G06F7/50. опубл. 27.08.2013г., Бюл. №24.
8. Осинин И. П., Князьков В.С. Концепция разрядно-параллельного арифметико-логического
   устройства на базе СБИС-структур. Супервычисления и математическое моделирование:
   Труды международной научной конференции (Саров, 15 октября 2012 г.). Саров: Изда-
   тельский центр РФЯЦ-ВНИИЭФ, 2013. С. 449-458.




                                               652
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                            agora.guru.ru/pavt




       The highly reliable modular-logarithmic processor with
                     reconfigurable architecture
                                               I.P. Osinin
     The Russian Federal Nuclear Center – All-Russian Scientific Research Institute of
                         Experimental Physics (RFNC-VNIIEF)

        The article describes the organization of perspective modular-logarithmic processor. The
        key difference from analogues is to use non-positional number system based on homogene-
        ous computing environments that parallelize computations until operand bits, increasing the
        speed of calculations, and also has introduced a number of unique properties that signifi-
        cantly improve the reliability of computations. Application of residual classes in conjunc-
        tion with the logarithmic number system instead of the floating-point allowed us to use
        range of the representation the same IEEE-754 format, while refusing the slow operation of
        rounding and smoothing orders. The prototype of processor is implemented in the view of
        IP-block of soft processor based on FPGA.

        Keywords: processor, RNS, LNS, reconfigurable architecture, highly reliable computing.


References
   1. Chervyakov N.I. Modulyarnye parallel'nye vychislitel'nye struktury neyroprotses-sornykh sis-
      tem [Modular structure of the parallel computing systems neuroprocessor]. Moscow:
      Publishing Fizmatlit, 2003. 288 p.
   2. Magometov Sh.G. Peredacha i priem dannykh v vychislitel'nykh ustroystvakh s ispol'zovaniem
      sistemy ostatochnykh klassov [Sending and receiving data in computing devices using residue
      number system]. URL: http:// www.mathnet.ru/vagtu355 (accessed: 24.10.2015).
   3. Coleman J.N., Chester E.I. Arithmetic on the European Logarithmic Microprocessor // IEEE
      Transactions on Computers. 2000. Vol. 49, No. 7. P. 702–715.
   4. Kalyaev I.A. Rekonfiguriruemye mul'tikonveyernye vychislitel'nye struktury [Reconfigurable
      computing multipipelined structure]. // Rostov-na-Donu: Publishing Southern Scientific Cen-
      ter of the Russian Academy of Sciences, 2008. 320 p.
   5. Osinin I.P., Knyaz'kov V.S. Yacheyka odnorodnoy vychislitel'noy sredy, odnorodnaya vychis-
      litel'naya sreda i ustroystvo dlya konveyernykh arifmeticheskikh vychisleniy po zadannomu
      modulyu [Cell homogeneous computing environment, homogeneous computing environment
      and a device for conveying arithmetic for a given module]. Patent 2477513 Russian Federa-
      tion. G06F7/72. Published 10.03.2013. Vol. 7.
   6. Osinin I.P., Knyaz'kov V.S. Organizatsiya parallel'no-konveyernoy SBIS-struktury s rekon-
      figuriruemoy mikroyadernoy arkhitekturoy [The organization of parallel-pipelined VLSI
      structures with reconfigurable microkernel architecture]. Izvestiya vysshikh uchebnykh
      zavedeniy. Povolzhskiy region. Seriya: Tekhnicheskie nauki. [Proceedings of the higher edu-
      cational institutions. Volga region. Series: Technical science]. 2013. Vol. 3. P. 74–83.
   7. Osinin I.P., Knyaz'kov V.S. Sposob organizatsii vychisleniy summy n m-razryadnykh chisel
      [A method of computing the amount of the organization n m-bit numbers]. Patent 2491612
      Russian Federation. G06F7/50. Published 27.08.2013. Vol. 24.
   8. Osinin I. P., Knyaz'kov V.S. Kontseptsiya razryadno-parallel'nogo arifmetiko-logicheskogo
      ustroystva na baze SBIS-struktur [Osinin SP., Knyazkov VS Concept-bit parallel ALU based
      on VLSI structures]. Supervychisleniya i matematicheskoe modelirovanie: Trudy mezhdu-
      narodnoy nauchnoy konferentsii (Sarov, 15 oktyabrya 2012) [Supercomputing and Mathe-



                                                  653
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt



       matical Modeling: Proceedings of the International Scientific Conference (Sarov, Russia, Oc-
       tober, 15, 2012)]. Sarov: Publishing of the RFNC-VNIIEF, 2013. P. 449-458.




                                               654