RU2819403C1 - Векторное вычислительное ядро - Google Patents

Векторное вычислительное ядро Download PDF

Info

Publication number
RU2819403C1
RU2819403C1 RU2023135025A RU2023135025A RU2819403C1 RU 2819403 C1 RU2819403 C1 RU 2819403C1 RU 2023135025 A RU2023135025 A RU 2023135025A RU 2023135025 A RU2023135025 A RU 2023135025A RU 2819403 C1 RU2819403 C1 RU 2819403C1
Authority
RU
Russia
Prior art keywords
bus
data
output
instruction
switch
Prior art date
Application number
RU2023135025A
Other languages
English (en)
Inventor
Валерий Николаевич Конотопцев
Игорь Сергеевич Сергеев
Original Assignee
Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант"
Filing date
Publication date
Application filed by Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" filed Critical Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант"
Application granted granted Critical
Publication of RU2819403C1 publication Critical patent/RU2819403C1/ru

Links

Abstract

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

Description

ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к области вычислительной техники, в частности, к проблемно-ориентированным векторным процессорам со специализированной системой команд и быстродействующей аппаратной реализацией вычислительно-сложных преобразований данных и может быть применено для построения многоядерных высокопроизводительных процессоров и вычислителей на их основе, предназначенных для выполнения алгоритмов трудоемких научно-технических задач, допускающих распараллеливание по данным на большое число независимых подзадач.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Известен проблемно-ориентированный программируемый вычислительный модуль (ВМ) многопоточной обработки для многостадийной многопоточной обработки цифровых данных и способ обработки с использованием данного модуля (RU №2681365 С1, МПК G06F 15/80, G06F 15/16 заявлено 03.08.2018, опубликовано 06.03.2019, Бюл. №7), который содержит С блоков управления, содержащих двухпортовую память команд, стек циклов и подпрограмм, также содержит матрицу, содержащую в качестве элементов разделяемую память, командный регистр, шину коротких сообщений, процессорные элементы, в свою очередь содержащие регистровую память, каналы доступа к разделяемой памяти, группу из S портов чтения операндов, группу из М многовходовых арифметико-логических устройств первого уровня, группу из Р многовходовых арифметико-логических устройств второго уровня, селектор результатов арифметико-логических устройств и данных из памяти, группу из X портов записи в регистровый файл, шину управления и контроллер шины коротких сообщений. ВМ содержит множество идентичных процессорных элементов (ПЭ), предназначенных для выполнения одной и той же программы обработки с различными данными. Проблемная ориентация заключается в выборе состава операций, объемов памяти на разных иерархических уровнях ВМ, пропускной способности коммуникационной сети исходя из вычислительных свойств целевого класса алгоритмов.
Недостатком подобных вычислительных устройств является низкая производительность обработки данных для выполнения трудоемких научно-технических задач.
Причины, препятствующие достижению технического результата, заключаются в том, что система команд и набор функциональных узлов ПЭ, образующих вычислительный ресурс ВУ многопоточной обработки, предусматривают выполнение только элементарных логических и арифметических операций со скалярными операндами. Для получения результатов вычислительно-сложных преобразований данных (ВСПД) в ВУ используются подпрограммы, которые содержат большое число элементарных операций и выполняются длительное время.
Известен процессор нейронной сети (US 11586920 В2, МПК G06N 3/08, G06F 15/80, заявлен 21.01.2021, опубликован 21.02.2023) содержащей множество слоев нейронной сети, причем процессор содержит блок матричных вычислений, сконфигурированный для того, чтобы для каждого из множества слоев нейронной сети принимать множество входных весовых значений и множество входных данных активации для слоя нейронной сети и генерировать множество накопленных значений на основе множества входных весовых значений и множества входных данных активации, и блок векторных вычислений, соединенный с блоком матричных вычислений и сконфигурированный для того, чтобы для каждого из множества слоев нейронной сети применять функцию активации к каждому накопленному значению, сгенерированному блоком матричных вычислений, чтобы генерировать множество активированных значений для слоя нейронной сети. Данный процессор нейронной сети является узкоспециализированным ВУ, в котором для выполнения ВСПД используются быстродействующие аппаратно реализованные блоки для умножения матриц и для операций с векторами. Эффективность узкоспециализированного ВУ достигается за счет выбора при проектировании состава выполняемых операций, маршрутов перемещения, типов и разрядности обрабатываемых данных исходя исключительно из характеристик реализуемого алгоритма.
Недостаток данного устройства заключается в узком множестве решаемых научно-технических задач.
Причины, препятствующие достижению технического результата, заключаются в специализации блоков вычислений, ориентированных на ограниченный класс (группу) алгоритмов.
Наиболее близким устройством того же назначения к заявленному изобретению, по совокупности признаков является принятый за прототип реконфигурируемый вычислительный модуль (RU №168565 U1, МПК G06F 15/177, заявлено 21.11.2016, опубликовано 08.02.2017, Бюл. №4), построенный на основе композитных ВУ, и содержащий внешний порт для обмена информацией 4, коммутатор PCI-Express 1, интерфейсную ПЛИС 2, группу из N вычислительных ПЛИС 31 32, ..., 3N, высокоскоростные интерфейсы PCI-Express 5 и 61, 62, ..., 6N, блок 9 оперативного конфигурирования интерфейсной ПЛИС, блок контроля и управления питанием 15, блок мониторинга 17, внешний порт контроля и управления JTAG 11, память 16 конфигурации интерфейсной ПЛИС, двунаправленную общую шину 14, группу из N вычислительных СБИС 81, 82, ..., 8N, группу из N памятей 101, 102, ..., 10N стартовых конфигураций вычислительных ПЛИС, блок 13 оперативного реконфигурирования памятей стартовых конфигураций вычислительных ПЛИС и блок синхронизации 20. В данном модуле вычисления осуществляются на N композитных ВУ, содержащих вычислительную ПЛИС, узкоспециализированную вычислительную СБИС и память конфигураций ПЛИС.Узкоспециализированная СБИС обеспечивает высокую производительность выполнения общих для группы прикладных задач ВСПД, а ПЛИС обеспечивает возможность реализации увеличенного числа прикладных задач за счет реализации специфических для прикладных задач ВСПД.
Недостатками реконфигурируемого ВМ является более низкая производительность, чем у узкоспециализированных ВУ, и высокая сложность программирования ПЛИС, входящей в состав композитного ВУ.
Причиной, препятствующей достижению технического результата, является использование с целью расширения множества решаемых научно-технических задач композитного ВУ, включающего узкоспециализированную СБИС и ПЛИС с памятью конфигураций.
ЗАДАЧА ИЗОБРЕТЕНИЯ
Задача, на решение которой направлено предлагаемое изобретение, заключается в создании высокопроизводительного проблемно-ориентированного вычислительного ядра, осуществляющего вычисления в виде программируемой последовательности векторных операций, выполняемых с использованием быстродействующих устройств с аппаратной реализацией вычислительно-сложных преобразований данных, и предназначенного для построения вычислителей, обеспечивающих возможность решения целевого множества трудоемких научно-технических задач.
Техническим результатом предлагаемого изобретения является повышение производительности за счет конвейерной обработки векторных операций и расширение множества решаемых научно-технических задач.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Указанный технический результат при осуществлении изобретения достигается тем, что векторное вычислительное ядро содержит буфер ввода данных 1, блок памяти инструкций 2, блок управления инструкциями 3, устройство памяти 4, в которое введены входной коммутатор 5, блоки памяти векторов данных 61, ..., 6N, выходной коммутатор 7 и коммутатор операндов 8, устройство вычислений 9, в которое введены демультиплексор выбора операции 10, арифметико-логическое устройство 11, блоки выполнения вычислительно-сложных преобразований данных 121, ..., 12M и мультиплексор выбора результата 13, а также введены шина входных данных 14, шина выходных данных 15, внешняя шина управления 16, выходная шина управления 17 и выходная шина статуса 18,
причем шина входных данных 14 соединена с буфером ввода данных 1, который соединен шиной управления 19 с блоком управления инструкциями 3 и шиной управления 20 с блоком памяти инструкций 2,
шина выходных данных 15 соединена с выходом коммутатора 7, внешняя шина управления 16 соединена с соответствующими портами буфера ввода данных 1, выходная шина управления 17 и выходная шина статуса 18 соединены с блоком управления инструкциями 3,
кроме того, шина загружаемых данных 21 соединена с соответствующим выходом буфера ввода данных 1 и соответствующими входами блока памяти инструкций 2 и входного коммутатора 5 устройства памяти 4, который первой шиной управления 22 соединен с буфером ввода данных 1 и второй шиной управления 23 соединен с блоком управления инструкциями 3,
блок памяти инструкций 2 также соединен соответствующими шиной адреса инструкции 24 и шиной кода инструкции 25 с блоком управления инструкциями 3,
блок управления инструкциями 3 шиной управления 26 соединен с коммутатором операндов 8, шиной задания операции 27 соединен с демультиплексором выбора операции 10, шиной выбора результата 28 соединен с мультиплексором выбора результата 13, шиной управления 29 соединен с выходным коммутатором 7 устройства памяти 4, а соответствующие выходы блока управления инструкциями 3 являются шинами регистровых операндов 301, ..., 30X, которые соединены с соответствующими группами входов коммутатора операндов 8,
кроме того, выходная шина 31 входного коммутатора 5 устройства памяти 4 соединена с первыми входами блоков памяти векторов данных 61, ..., 6N, вторые входы которых соответствующими одноименными шинами управления 321, ..., 32N также соединены с входным коммутатором 5,
причем первые шины 331, ..., 33N вывода данных из одноименных блоков памяти векторов данных 61, ..., 6N соединены с соответствующими входами выходного коммутатора 7, который соответствующими шинами управления чтением 341, ..., 34N также соединен с одноименными блоками памяти векторов данных 61, ..., 6N,
вторые шины 351, ..., 35N вывода данных из блоков памяти векторов данных 61, ..., 6N соединены с соответствующими группами входов коммутатора операндов 8, который шиной операнда 36 соединен с первыми входами арифметико-логического устройства 11 и блоков выполнения вычислительно-сложных преобразований данных 121, ..., 12M,
шины выбора операций 370, ..., 37M соединяют соответствующие выходы демультиплексора выбора операции 10 с соответствующими входами арифметико-логического устройства 11 и блоков выполнения вычислительно-сложных преобразований данных 121, ..., 12M,
шины результатов вычислений 380, ..., 38M соединяют выходы арифметико-логического устройства 11 и блоков выполнения вычислительно-сложных преобразований данных 121, ..., 12M с соответствующими входами мультиплексора выбора результата 13, выход которого по шине текущего результата 39 соединен с входным коммутатором 5 устройства памяти 4.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На фиг. 1 приведена функциональная схема предлагаемого векторного вычислительного ядра.
На фиг. 1 и в тексте приняты следующие обозначения:
ВЯ - вычислительное ядро;
АЛУ - арифметико-логическое устройство;
1 - буфер ввода данных;
2 - блок памяти инструкций;
3 - блок управления инструкциями;
4 - устройство памяти;
5 - входной коммутатор;
61, ..., 6N - блоки памяти векторов данных;
7 - выходной коммутатор;
8 - коммутатор операндов;
9 - устройство вычислений;
10 - демультиплексор выбора операции;
11 - арифметико-логическое устройство (АЛУ);
121, ..., 12M - блоки выполнения вычислительно-сложных преобразований данных (ПД);
13 - мультиплексор выбора результата;
14 - шина входных данных;
15 - шина выходных данных;
16 - внешняя шина управления;
17 - выходная шина управления;
18 - выходная шина статуса;
19 - шина управления блоком управления инструкциями 3;
20 - шина управления блоком памяти инструкций 2;
21 - шина загружаемых данных;
22 - первая шина управления входным коммутатором 5;
23 - вторая шина управления входным коммутатором 5;
24 - шина адреса инструкции;
25 - шина кода инструкции;
26 - шина управления коммутатором операндов 8;
27 - шина задания операции;
28 - шина выбора результата;
29 - шина управления выходным коммутатором 7;
301, ..., 30X - шины регистровых операндов;
31 - выходная шина входного коммутатора 5;
321, ..., 32N - шины управления блоками памяти векторов данных 61, ..., 6N;
331, ..., 33N - первые шины вывода данных из блоков памяти векторов данных 61, ..., 6N;
341, ..., 34N - шины управления чтением из блоков памяти векторов данных 61, ..., 6N на выходную шину 15;
351, ..., 35N - вторые шины вывода данных из блоков памяти векторов данных 61, ..., 6N;
36 - шина операнда;
370, ..., 37M - шины выбора операций;
380, ..., 38M - шины результатов вычислений;
39 - шина текущего результата.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Предлагаемое векторное вычислительное ядро (ВЯ) предназначено для выполнения алгоритмов обработки цифровых данных, включающих вычислительно-сложные преобразования данных, арифметические операции, поразрядные логические операции и сдвиги. Обработка выполняется векторами, состоящими из L слов данных разрядности Q байтов. Вектора обрабатываемых данных загружаются с шины входных данных 14 разрядности А байтов. Последовательность операций определяется исполняемой программой, загружаемой в блок памяти инструкций 2. Входные данные, промежуточные значения и результаты обработки хранятся в виде векторов данных в блоках памяти векторов данных 61, ..., 6N, каждый из которых содержит вектор из L элементов (слов).
Вектора данных результатов обработки передаются из блоков памяти векторов данных 61, ..., 6N на шину выходных данных 15 разрядности В байтов через выходной коммутатор 7.
Внешний интерфейс ВЯ содержит шину входных данных 14 разрядности А байтов, шину выходных данных 15 разрядности В байтов, внешнюю шину управления 16, выходную шину управления 17 и выходную шину статуса 18.
Шина управления 16 передает внешние команды для записи программы и входных данных, начала и возобновления вычислений, выдает соответствующие управляющие сигналы для чтения данных с входной шины данных 14. Выходная шина управления 17 сопровождает валидные выходные данные на шине выходных данных 15 соответствующими управляющими сигналами.
Выходная шина статуса 18 отражает состояние основных внутренних устройств и блоков ВЯ на каждом такте работы. Выходная шина статуса 18 содержит признаки загрузки данных с шины 14, выдачи данных на шину 15 и сигнал, отражающий отсутствие простоев в ВЯ.
Буфер входных данных 1 предназначен для формирования данных требуемой разрядности и их выдачу на шину загружаемых данных 21 разрядности С байтов. Буфер входных данных 1 обрабатывает данные с шины входных данных 14 в соответствии с сигналами с внешней шины управления 16. В буфер входных данных 1 по шине 16 поступает внешняя команда, задающая соответствующий блок, в который необходимо записать исполняемую программу или вектор входных данных. Буфер входных данных 1 декодирует поступившую внешнюю команду, по которой формирует данные с шины входных данных 14 в заданных форматах, передает их на шину загружаемых данных 21, подает управляющие сигналы по шине управления 20 для записи данных в блок памяти инструкций 2 или по шине управления 22 для записи данных в устройство памяти 4, подает управляющие сигналы по шине 19 в блок управления инструкциями 3.
Блок памяти инструкций 2 предназначен для хранения кодов инструкций исполняемой программы, которые управляют процессом вычислений. Запись программы в блок памяти инструкций 2 осуществляется с шины загружаемых данных 21 по управляющим сигналам с шины управления 20. По адресу текущей инструкции с шины 24 от блока управления инструкциями 3 блок памяти инструкций 2 выдает соответствующий код инструкции на шину 25.
Блок управления инструкциями 3 предназначен для выполнения программы, хранящейся в блоке памяти инструкций 2, которая может содержать условные переходы. Блок управления инструкциями 3 управляет последовательностью выборки кодов инструкций из блока памяти инструкций 2, формируя адреса текущих инструкций на шину адреса 24, декодирует коды инструкции с шины 25, формирует исполнительные адреса данных из блоков памяти векторов данных 61, ..., 6N и формирует управляющие сигналы на соответствующих шинах управления 23 и 26 - 29. Блок управления инструкциями 3 по внешней команде с шины управления 19 может начинать или возобновлять работу. Блок управления инструкциями 3 содержит регистровый файл из X регистров разрядности D байтов. Данные из регистров используются для внутренних операций блока управления инструкциями 3 и могут быть выданы в коммутатор операндов 8 по соответствующим одноименным шинам 301, ..., 30X. Блок управления инструкциями 3 формирует и выдает на шину управления 17 сигналы валидности данных на шине выходных данных 15. В блоке управления инструкциями 3 формируется информация о статусе блоков ВЯ, которая передается на выходную шину статуса 18.
Устройство памяти 4 хранит входные данные, промежуточные и окончательные результаты вычислений при выполнении алгоритмов обработки данных. Устройство памяти 4 состоит из входного коммутатора 5, блоков памяти векторов данных 61, ..., 6N, выходного коммутатора 7 и коммутатора операндов 8.
Блоки памяти векторов данных 61, ..., 6N содержат по два соответствующих одноименных порта для чтения на первые шины 341, ..., 34N разрядности В байтов и на вторые шины 351, ..., 35N разрядности Q байтов с возможностью параллельного чтения по обоим портам. Также блоки памяти векторов данных 61, ..., 6N содержат один порт для записи с выходной шины 31 входного коммутатора 5 разрядности Q байтов. Входной коммутатор 5 обрабатывает управляющие сигналы с первой 22 и второй 23 шин управления и формирует управляющие сигналы на шинах 321, ..., 32N, которые управляют передачей данных с шин 21 или 39 на выходную шину 31 в блоки памяти векторов данных 61, ..., 6N. Выходной коммутатор 7 обрабатывает управляющие сигналы с шины управления 29 и формирует управляющие сигналы на шинах 341, ..., 34N, которые управляют чтением данных из блоков памяти векторов данных 61, ..., 6N на шину выходных данных 15 разрядности В байтов.
Устройство вычислений 9 выполняет основную вычислительную работу. Устройство вычислений 9 содержит АЛУ 11 и группу из М блоков выполнения вычислительно-сложных преобразований данных 121, ..., 12M, осуществляющих конвейерную обработку операндов из векторов данных, а также демультиплексор выбора операции 10 и мультиплексор выбора результата 13.
В АЛУ 11 и блоки выполнения вычислительно-сложных преобразований данных 121, ..., 12M поступает соответствующий сигнал выбора операции с шин 370, ..., 37M от демультиплексора выбора операции 10, а входные данные поступают по шине операнда 36 из коммутатора операндов 8. После выполнения вычислений значения результатов передаются на соответствующие (М+1) шины 380, ..., 38M, которые передаются на соответствующие информационные входы мультиплексора выбора результатов 13.
Мультиплексор выбора результатов 13 по управляющим сигналам с шины 28 передает значения результатов с шин 380, ..., 38M на шину текущего результата 39 разрядности Q байтов.
Предлагаемое векторное вычислительное ядро работает следующим образом.
Для выполнения вычислений необходимо загрузить обрабатываемые данные в блоки памяти векторов данных 61, ..., 6N и программу вычислений в блок памяти инструкций 2. В начале работы на внешнюю шину управления 16 подаются внешние команды для загрузки программы вычислений и обрабатываемых данных. После выставления на шине управления 16 соответствующей команды на шину входных данных 14 подаются данные в соответствующем формате. Программа вычислений загружается с шины входных данных 14 в блок памяти инструкций 2, а обрабатываемые данные загружаются с шины входных данных 14 в блоки памяти векторов данных 61, ..., 6N.
После загрузки программы вычислений и обрабатываемых данных по внешней шине управления 16 приходит внешняя команда начала вычислений, которая передается в блок управления инструкциями 3 по шине управления 19. Блок управления инструкциями 3 декодирует пришедшую команду и начинает считывание инструкций из блока памяти инструкций 2, обрабатывает считанную инструкцию, управляет последовательностью выборки инструкций и формирует сигналы на выходных шинах управления.
Инструкции подразделяются на вычислительные и служебные. Служебные инструкции управляют последовательностью выборки инструкций, вычислительные определяют сигналы, формируемые на выходных шинах блока управления инструкциями 3.
Поля вычислительной инструкции включают признак завершения вычислений, параметры управления записью в блоки памяти векторов данных 61, ..., 6N и чтением из блоков памяти векторов данных 61, ..., 6N, параметры компоновки операнда, двоичный код вычислительной операции и признак выдачи выходных данных.
При выполнении вычислительной инструкции производится последовательная передача слов векторов данных из блоков памяти векторов данных 61, ..., 6N на соответствующие шины данных 351, ..., 35N коммутатора операндов 8 и опционально на шины 331, ..., 33N выходного коммутатора 7. Запись и чтение данных из блоков памяти векторов данных 61, ..., 6N всегда выполняются полными векторами данных, состоящими из L элементов (слов).
Коммутатор операндов 8 по управляющим сигналам с шины управления 26 выбирает данные, поступающие по X шинам регистровых операндов 301, ..., 30X из блока управления инструкциями 3 и N шинам 351, ..., 35N выходных данных из блоков памяти векторов данных 61, ..., 6N, компонует составной R-байтовый операнд и подает его на шину 36 для обработки в устройстве вычислений 9.
Устройство вычислений 9 в зависимости от заданного в инструкции кода вычислительной операции выполняет обработку составного операнда в АЛУ 11 или в одном из блоков выполнения вычислительно-сложных преобразований данных 121, ..., 12M. АЛУ И является двухвходовым, операнд представляется как два операнда одинаковой разрядности, над которыми выполняется заданная в инструкции операция. Обработка операндов в блоках выполнения вычислительно-сложных преобразований данных происходит по принципу конвейера - параллельное выполнение вычислений с различными операндами на различных этапах конвейера.
Полученный результат вычислительной операции в зависимости от выполнявшего операцию блока, АЛУ 11 или одного из 121, ..., 12M, передается на соответствующую шину 380, ..., 38M и по сигналу с шины управления 28 передается на шину текущего результата 39. Данные с шины текущего результата 39 передаются на вход входного коммутатора 5 устройства памяти 4 и по сигналам управления с шины 23 могут быть одновременно записаны в любое подмножество блоков памяти векторов данных 61, ..., 6N.
Конечные или промежуточные результаты вычислений в виде полных векторов данных считываются из блоков памяти векторов данных 61, ..., 6N устройства памяти 4 на шину выходных данных 15 под управлением сигналов на шинах 341, ..., 34N, которые формируются выходным коммутатором 7 при обработке сигналов с шины управления 29, при этом блок управления инструкциями 3 формирует управляющие сигналы валидности данных на шине выходных данных 15 и выставляет их на выходной шине управления 17.
Работа ВЯ продолжается до тех пор, пока не будут обработаны все инструкции из блока памяти инструкций 2, либо пока в обрабатываемой инструкции не встретится признак завершения вычислений.
ПРИМЕР ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Предлагаемое векторное вычислительное ядро может быть реализовано в качестве основной вычислительной компоненты проблемно-ориентированных многоядерных процессоров обработки данных, изготавливаемых в виде сверхбольших интегральных схем (СБИС) по различным (без ограничения) полупроводниковым технологиям, например, КМОП технологии с любыми доступными технологическими нормами. В многоядерном процессоре должны поддерживаться интерфейсы предлагаемого векторного вычислительного ядра, к другим компонентам и функциональным возможностям целевого процессора (внешние интерфейсы, организация взаимодействия вычислительных ядер, подсистема управления и т.п.) требования со стороны предлагаемого векторного вычислительного ядра не предъявляются.
Корректность функционирования вычислительного ядра была подтверждена с использованием разработанной на языке SystemC программной модели ВЯ и представительного множества тестовых задач.
Для приведенного выше структурно-функционального проекта векторного вычислительного ядра разработано формализованное описание на языке описания аппаратного обеспечения, выполнена верификация формализованного описания вычислительного ядра с использованием поведенческого моделирования и осуществлены логическое и топологическое проектирование в системе автоматизированного проектирования СБИС с подтверждением корректности функционирования и заданных временных ограничений на задержки в сигнальных цепях. Выполненные этапы проектирования достаточны для вывода о реализуемости предлагаемого вычислительного ядра в виде составной части процессорной СБИС.
С использованием программной модели ВЯ и поведенческого моделирования ВЯ, специфицированном на языке описания аппаратного обеспечения, были выполнены с получением корректного результата более десяти тестовых научно-технических задач. В силу того, что тестовые задачи, выполнимость которых на предлагаемом ВЯ подтверждена моделированием, являются представительным подмножеством целевого класса научно-технических задач, можно утверждать, что предлагаемое векторное вычислительное ядро обеспечивает выполнение более широкого множества научно-технических задач.
Потактовое моделирование выполнения тестовых научно-технических задач позволило определить число тактов работы ВЯ, затраченных для выполнения задач, а результаты топологического проектирования позволили с высокой вероятностью прогнозировать допустимую рабочую тактовую частоту ВЯ. Совокупность полученных экспериментальных результатов позволила оценить производительность ВЯ как достаточную для выполнения трудоемких научно-технических задач. В сравнении с известными оценками производительности узкоспециализированных СБИС, ВМ многопоточной обработки данных и реконфигурируемых ВУ при выполнении таких же задач производительность предлагаемого векторного ВЯ при равных объемах оборудования и идентичных технологиях изготовления близка к уровню производительности узкоспециализированных СБИС и кратно превышает производительность ВМ многопоточной обработки данных и реконфигурируемых ВУ.
Таким образом, вышеизложенные сведения позволяют сделать вывод, что предлагаемое векторное вычислительное ядро соответствует заявляемому техническому результату - повышение производительности за счет выполнения вычислительно-сложных преобразований данных с использованием векторной обработки на быстродействующих конвейерных устройствах и расширение множества решаемых научно-технических задач.

Claims (11)

  1. Векторное вычислительное ядро, содержащее буфер ввода данных (1), блок памяти инструкций (2), блок управления инструкциями (3), устройство памяти (4), в которое введены входной коммутатор (5), блоки памяти векторов данных (61, ..., 6N), выходной коммутатор (7) и коммутатор операндов (8), устройство вычислений (9), в которое введены демультиплексор выбора операции (10), арифметико-логическое устройство (11), блоки выполнения вычислительно-сложных преобразований данных (121, ..., 12M) и мультиплексор выбора результата (13), а также введены шина входных данных (14), шина выходных данных (15), внешняя шина управления (16), выходная шина управления (17) и выходная шина статуса (18),
  2. причем шина входных данных (14) соединена с буфером ввода данных (1), который соединен шиной управления (19) с блоком управления инструкциями (3) и шиной управления (20) с блоком памяти инструкций (2),
  3. шина выходных данных (15) соединена с выходом коммутатора (7), внешняя шина управления (16) соединена с соответствующими портами буфера ввода данных (1), выходная шина управления (17) и выходная шина статуса (18) соединены с блоком управления инструкциями (3),
  4. кроме того, шина загружаемых данных (21) соединена с соответствующим выходом буфера ввода данных (1) и соответствующими входами блока памяти инструкций (2) и входного коммутатора (5) устройства памяти (4), который первой шиной управления (22) соединен с буфером ввода данных (1) и второй шиной управления (23) соединен с блоком управления инструкциями (3),
  5. блок памяти инструкций (2) также соединен соответствующими шиной адреса инструкции (24) и шиной кода инструкции (25) с блоком управления инструкциями (3),
  6. блок управления инструкциями (3) шиной управления (26) соединен с коммутатором операндов (8), шиной задания операции (27) соединен с демультиплексором выбора операции (10), шиной выбора результата (28) соединен с мультиплексором выбора результата (13), шиной управления (29) соединен с выходным коммутатором (7) устройства памяти (4), а соответствующие выходы блока управления инструкциями (3) являются шинами регистровых операндов (301, ..., 30X), которые соединены с соответствующими группами входов коммутатора операндов (8),
  7. кроме того, выходная шина (31) входного коммутатора (5) устройства памяти (4) соединена с первыми входами блоков памяти векторов данных (61, ..., 6N), вторые входы которых соответствующими одноименными шинами управления (321, ..., 32N) также соединены с входным коммутатором (5),
  8. причем первые шины (331, ..., 33N) вывода данных из одноименных блоков памяти векторов данных (61, ..., 6N) соединены с соответствующими входами выходного коммутатора (7), который соответствующими шинами управления чтением (341, ..., 34N) также соединен с одноименными блоками памяти векторов данных (61, ..., 6N),
  9. вторые шины (351, ..., 35N) вывода данных из блоков памяти векторов данных (61, ..., 6N) соединены с соответствующими группами входов коммутатора операндов (8), который шиной операнда (36) соединен с первыми входами арифметико-логического устройства (11) и блоков выполнения вычислительно-сложных преобразований данных (121, ..., 12M),
  10. шины выбора операций (370, ..., 37M) соединяют соответствующие выходы демультиплексора выбора операции (10) с соответствующими входами арифметико-логического устройства (11) и блоков выполнения вычислительно-сложных преобразований данных (121, ..., 12M),
  11. шины результатов вычислений (380, ..., 38M) соединяют выходы арифметико-логического устройства (11) и блоков выполнения вычислительно-сложных преобразований данных (121, ..., 12M) с соответствующими входами мультиплексора выбора результата (13), выход которого по шине текущего результата (39) соединен с входным коммутатором (5) устройства памяти (4).
RU2023135025A 2023-12-25 Векторное вычислительное ядро RU2819403C1 (ru)

Publications (1)

Publication Number Publication Date
RU2819403C1 true RU2819403C1 (ru) 2024-05-20

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU124013U1 (ru) * 2012-07-11 2013-01-10 Федеральное государственное бюджетное учреждение науки Институт проблем проектирования в микроэлектронике Российской академии наук (ИППМ РАН) Потоковая вычислительная система
RU168565U1 (ru) * 2016-11-21 2017-02-08 Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" Реконфигурируемый вычислительный модуль
US20190026250A1 (en) * 2017-07-24 2019-01-24 Tesla, Inc. Vector computational unit
RU2781355C1 (ru) * 2021-11-03 2022-10-11 Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС») Скалярно-векторный процессор
US20230195458A1 (en) * 2018-02-01 2023-06-22 Tesla, Inc. Instruction set architecture for a vector computational unit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU124013U1 (ru) * 2012-07-11 2013-01-10 Федеральное государственное бюджетное учреждение науки Институт проблем проектирования в микроэлектронике Российской академии наук (ИППМ РАН) Потоковая вычислительная система
RU168565U1 (ru) * 2016-11-21 2017-02-08 Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" Реконфигурируемый вычислительный модуль
US20190026250A1 (en) * 2017-07-24 2019-01-24 Tesla, Inc. Vector computational unit
US20230195458A1 (en) * 2018-02-01 2023-06-22 Tesla, Inc. Instruction set architecture for a vector computational unit
RU2781355C1 (ru) * 2021-11-03 2022-10-11 Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС») Скалярно-векторный процессор

Similar Documents

Publication Publication Date Title
Hayes Computer architecture and organisation
CN108268278B (zh) 具有可配置空间加速器的处理器、方法和***
CN110135581B (zh) 用于执行人工神经网络反向运算的装置和方法
CN111512292A (zh) 用于可配置空间加速器中的非结构化数据流的装置、方法和***
CN111566623A (zh) 用于可配置空间加速器中的集成性能监视的装置、方法和***
Sklyarov et al. High-performance implementation of regular and easily scalable sorting networks on an FPGA
CN111767080A (zh) 用于可配置空间加速器中的操作的设备、方法和***
JPH06195322A (ja) 汎用型ニューロコンピュータとして用いられる情報処理装置
JPH07219919A (ja) 数値演算処理装置
US11436186B2 (en) High throughput processors
CN113330466A (zh) 涉及混合量子机器、量子信息技术的方面和/或其他特征的***和方法
CN111027690A (zh) 执行确定性推理的组合处理装置、芯片和方法
Verdoscia et al. A Data‐Flow Soft‐Core Processor for Accelerating Scientific Calculation on FPGAs
JP7507304B2 (ja) レジスタデータの消去
Stepchenkov et al. Recurrent data-flow architecture: features and realization problems
RU2819403C1 (ru) Векторное вычислительное ядро
Khan et al. Accelerating SpMV multiplication in probabilistic model checkers using GPUs
Yeniceri et al. An emulated digital wave computer core implementation
Lysaght et al. Guest editors' introduction: Advances in configurable computing
JP2001256048A (ja) データ処理装置のシミュレーション
Raza et al. An optimum design and implementation of a 16-bit alu on cadence using risc-v architecture
Shahsavani et al. Efficient compilation and mapping of fixed function combinational logic onto digital signal processors targeting neural network inference and utilizing high-level synthesis
Sano et al. Hardware Algorithms
Fellman Design issues and an architecture for the monolithic implementation of a parallel digital signal processor
US11829321B2 (en) General-purpose systolic array