Багатопроцесорна система на ПЛІС

⇓Завантажити PDF

Зб. тез, доповідей VIII наук. конф. магістрантів та аспірантів «Прикладна математика та комп’ютинг», ПМК-2016. – К.: Вид. НТУУ «КПІ» ВПІ ВПК «Політехніка». — 2016. – С. 124-127

УДК 004.383

Д.т.н., с.н.с. Сергієнко А.М., студент Сергієнко П.А.

Національний технічний університет України «Київський політехнічний інститут ім. Ігоря Сікорського»

БАГАТОПРОЦЕСОРНА СИСТЕМА НА ПЛІС

Abstract

Anatoliy M. Sergiyenko, senior sci., PhD; Pavlo Serhiienko, student

Manycore processor system in FPGA
A soft IP core of the 16-bit RISC microprocessor for the FPGA implementation is considered. The core instruction set is adapted to implement the lossless compression, and control algorithms.

Вступ

Для досягнення великої продуктивності компʼютерних систем в них використовують багатопроцесорні системи на кристалі, кількість процесорних ядер в яких постійно збільшується[1,2]. Рівень розвитку програмованих логічних інтегральних схем (ПЛІС) дає змогу реалізувати в них великі багатопроцесорні системи [2]. Але нові серії ПЛІС мають ряд особливостей, що впливають на вибір архітектури модулів, які в них конфігуруються. У нових поколіннях ПЛІС, якщо число транзисторів збільшується учетверо, то обʼєм ресурсів для трасування сигналів збільшується лише удвічі. Затримки у лініях звʼязку стали в 1−3 рази більшими за затримки у логічних таблицях (ЛТ) та інших логічних елементах. Як результат, конфігуровані модулі мають бути компактними, щоби їх внутрішні сигнали далеко не поширювались.

Вимозі компактності не відповідають ядра мікропроцесорів з поширеною архітектурою, такі як Nios, Microblaze, Mico32, OpenRISC, MIPSFPGA. Для досягнення прийнятної тактової частоти ці процесори мають багатоступеневий конвеєр (5 і більше ступенів). Для виконання кількох незалежних програмних потоків у такому ядрі реалізуються система переривання та зміни контексту, віртуальна памʼять, кеш-ОЗП, швидкісний інтерфейс до зовнішньої динамічної памʼяті. Для реалізації мультипроцесорної архітектури, яка є звичною для програмістів, необхіднікомутатори з високою пропускною здатністю та система підтримки режиму когерентності доступу памʼяті.

У роботі пропонується будувати багатопроцесорну систему в ПЛІС, що реалізує модель синхронних потоків даних, завдяки чому зменшуються апаратні витрати та збільшується швидкодія. Розроблений RISC-процесор має стати процесорним елементом такої системи.

Багатопроцесорна система синхронних потоків даних

Модель синхронних потоків даних є зручною моделлю для завдання багатьох алгоритмів з циклічною природою, таких як алгоритми цифрової обробки сигналів. Граф синхронних потоків даних (ГСПД) складається з вершин, які виконують обчислювальні функції або актори і які зʼєднані між собою дугами у систему. Кожен потік-дуга може мати буферну памʼять типу FIFO. Актор спрацьовує негайно, як тільки є дані на його входах і видає результати на свої виходи. На відміну від графу потоків даних, в ГСПД протягом кожного циклу виконання алгоритму кожен актор споживає і видає на свої виходи одну і ту саму кількість даних.

Модель ГСПД має такі корисні властивості, як відсутність блокувань, статичне складання розкладу, можливість виконання великої множини алгоритмів, простота побудови алгоритмів для неї. Завдяки цьому, вона широко використовується як для програмування багатопроцесорних систем [3], так і для проектування структур конвеєрних обчислювачів [4].

При одиничному відображенні алгоритму, який задано на ГСПД, структура системи є ізоморфною цьому графу. Кожен процесорний елемент (ПЕ) такої структури виконує єдиний процес обчислення відповідної функції-актора. При появі чергової групи даних у вхідних портах процес запускається, обчислює функцію, записує результати у вихідні порти і зупиняється.

При відображенні ГСПД з N акторів у систему з n ПЕ кожен з них виконує послідовно до k = ]N/n[ процесів обчислення суміжних акторів. При цьому програмування ПЕ виконується за методами, які обґрунтовані в [3]. Отже, ПЕ системи виконують лише по одному програмному потоку. Їм не потрібна операційна система, система переривань, віртуальна памʼять, тощо. Тобто, такі ПЕ можуть мати невеликі апаратні витрати і вони будуть компактними.

Цикл обчислення алгоритму ГСПД у такій паралельній системі визначається критичним шляхом передачі і обчислення даних, який проходить через максимально завантажені ПЕ. Решта ПЕ, через які не проходить критичний шлях, будуть недовантаженими. Тому необхідно ретельно балансувати завантаженність її ПЕ.

125

Архітектура ПЕ багатопроцесорної системи

Як ПЕ багатопроцесорної системи синхронних потоків даних було розроблене 16-розрядне процесорне ядро RISC-ST2. За основу було взяте ядро RISC-ST, яке описане в [4]. Довжина команди була збільшена до 18 розрядів, що дало змогу оптимізувати систему команд та краще задіяти обʼєм вбудованої памʼяті ПЛІС. До ядра додано команди обробки окремих бітів слів, виділення бітових полів заданої довжини, злиття полів, зсуву слів, підрахунку числа нульових старших розрядів. Для реалізації швидкого доступу до асоціативної таблиці введено команду обчислення хеш-функції. Як результат, одержуються програмні коди скороченого обʼєму, тому що програма повинна повністю вміщуватись всередині ПЛІС.

Регістрова памʼять процесора має 32 регістри, але командно доступними є 16 молодших регістрів. Щоби максимально задіяти можливості регістрової памʼяті, яка реалізована на ЛТ, у процесорі протягом одного такту виконується читання з трьох регістрів та запис у один регістр.

Використовуються такі види адресації, як регістрова, базова, індексна з преінкрементом. Памʼять даних розбита на сторінки по 256 байт і має максимальну ємність 16 мегабайт. Для доступу до памʼяті даних використовується стандартний відкритий інтерфейс Wishbone.

Адресно доступні до 256 периферійних регістрів. Такі регістри можуть слугувати регістрами вводу-виводу спецпроцесорів, які виконують швидкісні обчислення, як наприклад, обчислення елементарних функцій, цифрову обробку сигналів, шифрування. Кілька ядер можуть бути обʼєднані у систему через їхні регістри вводу-виводу та систему переривань.

Завдяки тому, що конвеєр команд є трьохступеневим, більшість команд виконується за один такт, а команди переходу та читання памʼяті – за два такти. Виклик підпрограм виконується також за два такти, під час чого адреса повернення та прапорці умов зберігаються у апаратному стеку.

Ядро мікропроцесора описане мовою VHDL і не має обмежень для синтезу та конфігурування у ПЛІС будь-якої серії. Модель процесора має вбудований дизасемблер, який спрощує тестування та відлагодження програм. Розроблено програму кросасемблера на мові Java, виходом якої є VHDL-файли блоків памʼяті даних та програм процесора.

У таблиці показані результати синтезу процесора для ПЛІС Xilinx Kintex-7 та його найближчих поширених аналогів. У порівнянні з аналогами розроблене ядро має менші апаратні витрати і більшу швидкодію. Слід відмітити, що на затримку у лініях міжзʼєднання у даному процесорі припадає 75% затримки критичного шляху.

126

Компактність ядра дає змогу розмістити близько трьохсот ядер у ПЛІС середнього обʼєму Xilinx xc7k480t, кожне з яких матиме власну памʼять у 12 кілобайт.

Ядро мікропроцесора Розрядність Апаратні витрати, ЛТ Максимальна тактова частота, МГц
RISC-ST2 16 827 200
OpenMSP430 16 1387 150
OpenRISC1200 32 4945 107

Висновки

Запропоновано підхід до створення багатопроцесорних систем на кристалі на основі відображення ГСПД, який дає змогу отримати програмовану високопродуктивну систему для обробки потоків даних зі зменшеними апаратними витратами.

Розроблено ядро RISC-процесора зі спеціалізованою системою команд. Завдяки тому, що процесор орієнтований на виконання лише одного обчислювального процесу та обробки переривань, він має невеликі апаратні витрати та високу швидкодію.

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

Література

1. Mittal S. A survey Of Techniques for Architecting and Managing Asymmetric Multicore Processors // ACM Computing Surveys. − V.48. − No3. − 2016.

2. Processor Design. System-on-Chip Computing for ASICs and FPGAs / Edited by J. Nurmi. − Springer. −2007. − 525 p.

3. Bhattacharyya S.S., Murthy P.K., Lee E.A. Software Synthesis from Dataflow Graphs. − Springer. − 1996. − 190 p.

4. Сергиенко А.М. VHDL для проектирования вычислительных устройств. −К.: −”ДиаСофт”. −2003. −210 с.

5. Сергієнко П. А., Сергієнко А. М., Сімоненко А. В. Ядро RISC-процесора для реалізації у ПЛІС // I Міжн. Конф. Infocom Advanced Solution, 24-25 лист. 2015. – К.: Вид-во НТУУ “КПІ” ВПІ ВПК
“Політехніка”. − 2015. − С. 54-55.

127

⇓Завантажити PDF