RU2819403C1 - Vector computing core - Google Patents
Vector computing core Download PDFInfo
- 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
Links
- 239000013598 vector Substances 0.000 title claims abstract description 63
- 230000015654 memory Effects 0.000 claims abstract description 66
- 238000013501 data transformation Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 abstract description 19
- 238000006243 chemical reaction Methods 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 239000002131 composite material Substances 0.000 description 6
- 238000000034 method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 244000309464 bull Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Abstract
Description
ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD
Изобретение относится к области вычислительной техники, в частности, к проблемно-ориентированным векторным процессорам со специализированной системой команд и быстродействующей аппаратной реализацией вычислительно-сложных преобразований данных и может быть применено для построения многоядерных высокопроизводительных процессоров и вычислителей на их основе, предназначенных для выполнения алгоритмов трудоемких научно-технических задач, допускающих распараллеливание по данным на большое число независимых подзадач.The invention relates to the field of computer technology, in particular, to problem-oriented vector processors with a specialized instruction system and high-speed hardware implementation of computationally complex data transformations and can be used to build multi-core high-performance processors and computers based on them, designed to perform labor-intensive scientific algorithms -technical problems that can be parallelized based on data into a large number of independent subtasks.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИBACKGROUND ART
Известен проблемно-ориентированный программируемый вычислительный модуль (ВМ) многопоточной обработки для многостадийной многопоточной обработки цифровых данных и способ обработки с использованием данного модуля (RU №2681365 С1, МПК G06F 15/80, G06F 15/16 заявлено 03.08.2018, опубликовано 06.03.2019, Бюл. №7), который содержит С блоков управления, содержащих двухпортовую память команд, стек циклов и подпрограмм, также содержит матрицу, содержащую в качестве элементов разделяемую память, командный регистр, шину коротких сообщений, процессорные элементы, в свою очередь содержащие регистровую память, каналы доступа к разделяемой памяти, группу из S портов чтения операндов, группу из М многовходовых арифметико-логических устройств первого уровня, группу из Р многовходовых арифметико-логических устройств второго уровня, селектор результатов арифметико-логических устройств и данных из памяти, группу из X портов записи в регистровый файл, шину управления и контроллер шины коротких сообщений. ВМ содержит множество идентичных процессорных элементов (ПЭ), предназначенных для выполнения одной и той же программы обработки с различными данными. Проблемная ориентация заключается в выборе состава операций, объемов памяти на разных иерархических уровнях ВМ, пропускной способности коммуникационной сети исходя из вычислительных свойств целевого класса алгоритмов.A problem-oriented programmable computing module (VM) of multi-threaded processing for multi-stage multi-threaded processing of digital data and a processing method using this module are known (RU No. 2681365 C1, IPC G06F 15/80, G06F 15/16 declared 08/03/2018, published 03/06/2019 , Bull. No. 7), which contains C control units containing a dual-port command memory, a stack of cycles and subroutines, also contains a matrix containing shared memory, a command register, a short message bus, and processor elements, which in turn contain register memory. , shared memory access channels, a group of S operand reading ports, a group of M multi-input arithmetic-logical devices of the first level, a group of P multi-input arithmetic-logical devices of the second level, a selector of results of arithmetic-logical devices and data from memory, a group of X write ports to the register file, control bus and short message bus controller. The VM contains many identical processing elements (PEs) designed to execute the same processing program with different data. The problem orientation consists in choosing the composition of operations, memory volumes at different hierarchical levels of the VM, and the throughput of the communication network based on the computational properties of the target class of algorithms.
Недостатком подобных вычислительных устройств является низкая производительность обработки данных для выполнения трудоемких научно-технических задач.The disadvantage of such computing devices is the low data processing performance for performing labor-intensive scientific and technical tasks.
Причины, препятствующие достижению технического результата, заключаются в том, что система команд и набор функциональных узлов ПЭ, образующих вычислительный ресурс ВУ многопоточной обработки, предусматривают выполнение только элементарных логических и арифметических операций со скалярными операндами. Для получения результатов вычислительно-сложных преобразований данных (ВСПД) в ВУ используются подпрограммы, которые содержат большое число элементарных операций и выполняются длительное время.The reasons preventing the achievement of a technical result are that the command system and the set of functional nodes of the PE, which form the computing resource of the computer for multi-threaded processing, provide for the performance of only elementary logical and arithmetic operations with scalar operands. To obtain the results of computationally complex data transformations (CSDC), the computer uses subroutines that contain a large number of elementary operations and are performed for a long time.
Известен процессор нейронной сети (US 11586920 В2, МПК G06N 3/08, G06F 15/80, заявлен 21.01.2021, опубликован 21.02.2023) содержащей множество слоев нейронной сети, причем процессор содержит блок матричных вычислений, сконфигурированный для того, чтобы для каждого из множества слоев нейронной сети принимать множество входных весовых значений и множество входных данных активации для слоя нейронной сети и генерировать множество накопленных значений на основе множества входных весовых значений и множества входных данных активации, и блок векторных вычислений, соединенный с блоком матричных вычислений и сконфигурированный для того, чтобы для каждого из множества слоев нейронной сети применять функцию активации к каждому накопленному значению, сгенерированному блоком матричных вычислений, чтобы генерировать множество активированных значений для слоя нейронной сети. Данный процессор нейронной сети является узкоспециализированным ВУ, в котором для выполнения ВСПД используются быстродействующие аппаратно реализованные блоки для умножения матриц и для операций с векторами. Эффективность узкоспециализированного ВУ достигается за счет выбора при проектировании состава выполняемых операций, маршрутов перемещения, типов и разрядности обрабатываемых данных исходя исключительно из характеристик реализуемого алгоритма.A neural network processor is known (US 11586920 B2, IPC G06N 3/08, G06F 15/80, declared 01/21/2021, published 02/21/2023) containing many layers of a neural network, and the processor contains a matrix calculation unit configured so that for each of the plurality of neural network layers, receive a plurality of input weight values and a plurality of activation input data for the neural network layer, and generate a plurality of accumulated values based on the plurality of input weight values and the plurality of activation input data, and a vector computing unit coupled to the matrix computing unit and configured to to, for each of the plurality of neural network layers, apply an activation function to each accumulated value generated by the matrix computation unit to generate a plurality of activated values for the neural network layer. This neural network processor is a highly specialized computer in which high-speed hardware-implemented blocks for matrix multiplication and operations with vectors are used to perform VSPD. The effectiveness of a highly specialized computer is achieved by choosing, when designing, the composition of the operations to be performed, movement routes, types and bit depth of the processed data, based solely on the characteristics of the algorithm being implemented.
Недостаток данного устройства заключается в узком множестве решаемых научно-технических задач.The disadvantage of this device is the narrow range of scientific and technical problems that can be solved.
Причины, препятствующие достижению технического результата, заключаются в специализации блоков вычислений, ориентированных на ограниченный класс (группу) алгоритмов.The reasons preventing the achievement of a technical result lie in the specialization of computational blocks focused on a limited class (group) of algorithms.
Наиболее близким устройством того же назначения к заявленному изобретению, по совокупности признаков является принятый за прототип реконфигурируемый вычислительный модуль (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 композитных ВУ, содержащих вычислительную ПЛИС, узкоспециализированную вычислительную СБИС и память конфигураций ПЛИС.Узкоспециализированная СБИС обеспечивает высокую производительность выполнения общих для группы прикладных задач ВСПД, а ПЛИС обеспечивает возможность реализации увеличенного числа прикладных задач за счет реализации специфических для прикладных задач ВСПД.The closest device of the same purpose to the claimed invention, in terms of the totality of features, is the reconfigurable computing module (RU No. 168565 U1, IPC G06F 15/177, declared 11.21.2016, published 02.08.2017, Bulletin No. 4), adopted as a prototype, built on based on composite CPUs, and containing an external port for information exchange 4, a PCI-Express switch 1, an interface FPGA 2, a group of N computing FPGAs 3 1 3 2 , ..., 3 N , high-speed PCI-Express interfaces 5 and 6 1 , 6 2 , ..., 6 N , unit 9 for operational configuration of the interface FPGA, power monitoring and control unit 15, monitoring unit 17, external monitoring and control port JTAG 11, interface FPGA configuration memory 16, bidirectional common bus 14, group of N computing VLSI 8 1 , 8 2 , ..., 8 N , a group of N memories 10 1 , 10 2 , ..., 10 N starting configurations of computing FPGAs, unit 13 for online reconfiguration of memories of starting configurations of computing FPGAs and synchronization unit 20. In this module, calculations are carried out on N composite computers containing a computing FPGA, a highly specialized computing VLSI and a memory of FPGA configurations. A highly specialized VLSI provides high performance for executing common VSPD application tasks for a group of applications, and the FPGA provides the ability to implement an increased number of applied tasks by implementing application-specific ones VSPD tasks.
Недостатками реконфигурируемого ВМ является более низкая производительность, чем у узкоспециализированных ВУ, и высокая сложность программирования ПЛИС, входящей в состав композитного ВУ.The disadvantages of a reconfigurable VM are lower performance than that of highly specialized VMs and the high complexity of programming the FPGA that is part of the composite VM.
Причиной, препятствующей достижению технического результата, является использование с целью расширения множества решаемых научно-технических задач композитного ВУ, включающего узкоспециализированную СБИС и ПЛИС с памятью конфигураций.The reason preventing the achievement of a technical result is the use of a composite computer, including a highly specialized VLSI and an FPGA with configuration memory, to expand the variety of scientific and technical problems being solved.
ЗАДАЧА ИЗОБРЕТЕНИЯOBJECTIVE OF THE INVENTION
Задача, на решение которой направлено предлагаемое изобретение, заключается в создании высокопроизводительного проблемно-ориентированного вычислительного ядра, осуществляющего вычисления в виде программируемой последовательности векторных операций, выполняемых с использованием быстродействующих устройств с аппаратной реализацией вычислительно-сложных преобразований данных, и предназначенного для построения вычислителей, обеспечивающих возможность решения целевого множества трудоемких научно-технических задач.The problem to be solved by the proposed invention is to create a high-performance problem-oriented computing core that performs calculations in the form of a programmable sequence of vector operations performed using high-speed devices with hardware implementation of computationally complex data transformations, and is intended for building computers that provide the ability solving a target set of labor-intensive scientific and technical problems.
Техническим результатом предлагаемого изобретения является повышение производительности за счет конвейерной обработки векторных операций и расширение множества решаемых научно-технических задач.The technical result of the proposed invention is to increase productivity due to pipeline processing of vector operations and expand the variety of scientific and technical problems that can be solved.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯBRIEF DESCRIPTION OF THE INVENTION
Указанный технический результат при осуществлении изобретения достигается тем, что векторное вычислительное ядро содержит буфер ввода данных 1, блок памяти инструкций 2, блок управления инструкциями 3, устройство памяти 4, в которое введены входной коммутатор 5, блоки памяти векторов данных 61, ..., 6N, выходной коммутатор 7 и коммутатор операндов 8, устройство вычислений 9, в которое введены демультиплексор выбора операции 10, арифметико-логическое устройство 11, блоки выполнения вычислительно-сложных преобразований данных 121, ..., 12M и мультиплексор выбора результата 13, а также введены шина входных данных 14, шина выходных данных 15, внешняя шина управления 16, выходная шина управления 17 и выходная шина статуса 18,The specified technical result in the implementation of the invention is achieved in that the vector computing core contains a data input buffer 1, an instruction memory unit 2, an instruction control unit 3, a memory device 4 into which an input switch 5 is inserted, data vector memory units 6 1 , ... , 6 N , output switch 7 and operand switch 8, computing device 9, into which an operation selection demultiplexer 10 is introduced, an arithmetic-logical unit 11, blocks for performing computationally complex data transformations 12 1 , ..., 12 M and a result selection multiplexer 13, and also introduced an input data bus 14, an output data bus 15, an external control bus 16, an output control bus 17 and an output status bus 18,
причем шина входных данных 14 соединена с буфером ввода данных 1, который соединен шиной управления 19 с блоком управления инструкциями 3 и шиной управления 20 с блоком памяти инструкций 2,wherein the input data bus 14 is connected to the data input buffer 1, which is connected by the control bus 19 to the instruction control unit 3 and the control bus 20 to the instruction memory unit 2,
шина выходных данных 15 соединена с выходом коммутатора 7, внешняя шина управления 16 соединена с соответствующими портами буфера ввода данных 1, выходная шина управления 17 и выходная шина статуса 18 соединены с блоком управления инструкциями 3,the output data bus 15 is connected to the output of the switch 7, the external control bus 16 is connected to the corresponding ports of the data input buffer 1, the output control bus 17 and the output status bus 18 are connected to the instruction control unit 3,
кроме того, шина загружаемых данных 21 соединена с соответствующим выходом буфера ввода данных 1 и соответствующими входами блока памяти инструкций 2 и входного коммутатора 5 устройства памяти 4, который первой шиной управления 22 соединен с буфером ввода данных 1 и второй шиной управления 23 соединен с блоком управления инструкциями 3,in addition, the load data bus 21 is connected to the corresponding output of the data input buffer 1 and the corresponding inputs of the instruction memory unit 2 and the input switch 5 of the memory device 4, which is connected by the first control bus 22 to the data input buffer 1 and the second control bus 23 is connected to the control unit instructions 3,
блок памяти инструкций 2 также соединен соответствующими шиной адреса инструкции 24 и шиной кода инструкции 25 с блоком управления инструкциями 3,the instruction memory block 2 is also connected by the corresponding instruction address bus 24 and the instruction code bus 25 to the instruction control unit 3,
блок управления инструкциями 3 шиной управления 26 соединен с коммутатором операндов 8, шиной задания операции 27 соединен с демультиплексором выбора операции 10, шиной выбора результата 28 соединен с мультиплексором выбора результата 13, шиной управления 29 соединен с выходным коммутатором 7 устройства памяти 4, а соответствующие выходы блока управления инструкциями 3 являются шинами регистровых операндов 301, ..., 30X, которые соединены с соответствующими группами входов коммутатора операндов 8,the instruction control unit 3 is connected by a control bus 26 to the operand switch 8, the operation task bus 27 is connected to the operation selection demultiplexer 10, the result selection bus 28 is connected to the result selection multiplexer 13, the control bus 29 is connected to the output switch 7 of the memory device 4, and the corresponding outputs instruction control unit 3 are buses of register operands 30 1 , ..., 30 X , which are connected to the corresponding groups of inputs of the operand switch 8,
кроме того, выходная шина 31 входного коммутатора 5 устройства памяти 4 соединена с первыми входами блоков памяти векторов данных 61, ..., 6N, вторые входы которых соответствующими одноименными шинами управления 321, ..., 32N также соединены с входным коммутатором 5,in addition, the output bus 31 of the input switch 5 of the memory device 4 is connected to the first inputs of the memory blocks of data vectors 6 1 , ..., 6 N , the second inputs of which by corresponding control buses of the same name 32 1 , ..., 32 N are also connected to the input switch 5,
причем первые шины 331, ..., 33N вывода данных из одноименных блоков памяти векторов данных 61, ..., 6N соединены с соответствующими входами выходного коммутатора 7, который соответствующими шинами управления чтением 341, ..., 34N также соединен с одноименными блоками памяти векторов данных 61, ..., 6N,wherein the first buses 33 1 , ..., 33 N for outputting data from the same memory blocks of data vectors 6 1 , ..., 6 N are connected to the corresponding inputs of the output switch 7, which is connected to the corresponding read control buses 34 1 , ..., 34 N is also connected to data vector memory blocks of the same name 6 1 , ..., 6 N ,
вторые шины 351, ..., 35N вывода данных из блоков памяти векторов данных 61, ..., 6N соединены с соответствующими группами входов коммутатора операндов 8, который шиной операнда 36 соединен с первыми входами арифметико-логического устройства 11 и блоков выполнения вычислительно-сложных преобразований данных 121, ..., 12M,the second buses 35 1 , ..., 35 N for outputting data from the memory blocks of data vectors 6 1 , ..., 6 N are connected to the corresponding groups of inputs of the operand switch 8, which is connected by an operand bus 36 to the first inputs of the arithmetic-logical unit 11 and blocks for performing computationally complex data transformations 12 1 , ..., 12 M ,
шины выбора операций 370, ..., 37M соединяют соответствующие выходы демультиплексора выбора операции 10 с соответствующими входами арифметико-логического устройства 11 и блоков выполнения вычислительно-сложных преобразований данных 121, ..., 12M,operation selection buses 37 0 , ..., 37 M connect the corresponding outputs of the operation selection demultiplexer 10 with the corresponding inputs of the arithmetic-logical unit 11 and blocks for performing computationally complex data transformations 12 1 , ..., 12 M ,
шины результатов вычислений 380, ..., 38M соединяют выходы арифметико-логического устройства 11 и блоков выполнения вычислительно-сложных преобразований данных 121, ..., 12M с соответствующими входами мультиплексора выбора результата 13, выход которого по шине текущего результата 39 соединен с входным коммутатором 5 устройства памяти 4.calculation result buses 38 0 , ..., 38 M connect the outputs of the arithmetic-logical unit 11 and blocks for performing computationally complex data transformations 12 1 , ..., 12 M with the corresponding inputs of the result selection multiplexer 13, the output of which is via the current result bus 39 is connected to the input switch 5 of the memory device 4.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
На фиг. 1 приведена функциональная схема предлагаемого векторного вычислительного ядра.In fig. Figure 1 shows a functional diagram of the proposed vector computing core.
На фиг. 1 и в тексте приняты следующие обозначения:In fig. 1 and the following notations are used in the text:
ВЯ - вычислительное ядро;VYa - computing core;
АЛУ - арифметико-логическое устройство;ALU - arithmetic-logical unit;
1 - буфер ввода данных;1 - data input buffer;
2 - блок памяти инструкций;2 - instruction memory block;
3 - блок управления инструкциями;3 - instruction control unit;
4 - устройство памяти;4 - memory device;
5 - входной коммутатор;5 - input switch;
61, ..., 6N - блоки памяти векторов данных;6 1 , ..., 6 N - memory blocks of data vectors;
7 - выходной коммутатор;7 - output switch;
8 - коммутатор операндов;8 - operand switch;
9 - устройство вычислений;9 - computing device;
10 - демультиплексор выбора операции;10 - operation selection demultiplexer;
11 - арифметико-логическое устройство (АЛУ);11 - arithmetic-logical unit (ALU);
121, ..., 12M - блоки выполнения вычислительно-сложных преобразований данных (ПД);12 1 , ..., 12 M - blocks for performing computationally complex data transformations (TD);
13 - мультиплексор выбора результата;13 - result selection multiplexer;
14 - шина входных данных;14 - input data bus;
15 - шина выходных данных;15 - output data bus;
16 - внешняя шина управления;16 - external control bus;
17 - выходная шина управления;17 - output control bus;
18 - выходная шина статуса;18 - status output bus;
19 - шина управления блоком управления инструкциями 3;19 - control bus for instruction control unit 3;
20 - шина управления блоком памяти инструкций 2;20 - control bus for instruction memory unit 2;
21 - шина загружаемых данных;21 - download data bus;
22 - первая шина управления входным коммутатором 5;22 - first control bus of input switch 5;
23 - вторая шина управления входным коммутатором 5;23 - second control bus of input switch 5;
24 - шина адреса инструкции;24 - instruction address bus;
25 - шина кода инструкции;25 - instruction code bus;
26 - шина управления коммутатором операндов 8;26 - control bus for operand switch 8;
27 - шина задания операции;27 - operation task bus;
28 - шина выбора результата;28 - result selection bus;
29 - шина управления выходным коммутатором 7;29 - control bus for output switch 7;
301, ..., 30X - шины регистровых операндов;30 1 , ..., 30 X - register operand buses;
31 - выходная шина входного коммутатора 5;31 - output bus of input switch 5;
321, ..., 32N - шины управления блоками памяти векторов данных 61, ..., 6N;32 1 , ..., 32 N - control buses for memory blocks of data vectors 6 1 , ..., 6 N ;
331, ..., 33N - первые шины вывода данных из блоков памяти векторов данных 61, ..., 6N;33 1 , ..., 33 N - the first data output buses from memory blocks of data vectors 6 1 , ..., 6 N ;
341, ..., 34N - шины управления чтением из блоков памяти векторов данных 61, ..., 6N на выходную шину 15;34 1 , ..., 34 N - control buses for reading from memory blocks of data vectors 6 1 , ..., 6 N to output bus 15;
351, ..., 35N - вторые шины вывода данных из блоков памяти векторов данных 61, ..., 6N;35 1 , ..., 35 N - second data output buses from memory blocks of data vectors 6 1 , ..., 6 N ;
36 - шина операнда;36 - operand bus;
370, ..., 37M - шины выбора операций;37 0 , ..., 37 M - operation selection buses;
380, ..., 38M - шины результатов вычислений;38 0 , ..., 38 M - calculation result buses;
39 - шина текущего результата.39 - current result bus.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION
Предлагаемое векторное вычислительное ядро (ВЯ) предназначено для выполнения алгоритмов обработки цифровых данных, включающих вычислительно-сложные преобразования данных, арифметические операции, поразрядные логические операции и сдвиги. Обработка выполняется векторами, состоящими из L слов данных разрядности Q байтов. Вектора обрабатываемых данных загружаются с шины входных данных 14 разрядности А байтов. Последовательность операций определяется исполняемой программой, загружаемой в блок памяти инструкций 2. Входные данные, промежуточные значения и результаты обработки хранятся в виде векторов данных в блоках памяти векторов данных 61, ..., 6N, каждый из которых содержит вектор из L элементов (слов).The proposed vector computing core (VC) is designed to perform digital data processing algorithms, including computationally complex data transformations, arithmetic operations, bitwise logical operations and shifts. Processing is performed with vectors consisting of L data words of Q bytes. The vectors of the processed data are loaded from the input data bus of 14-bit A bytes. The sequence of operations is determined by the executable program loaded into instruction memory block 2. Input data, intermediate values and processing results are stored as data vectors in data vector memory blocks 6 1 , ..., 6 N , each of which contains a vector of L elements ( words).
Вектора данных результатов обработки передаются из блоков памяти векторов данных 61, ..., 6N на шину выходных данных 15 разрядности В байтов через выходной коммутатор 7.The data vectors of the processing results are transferred from the data vector memory blocks 6 1 , ..., 6 N to the output data bus of 15 bits B bytes through the output switch 7.
Внешний интерфейс ВЯ содержит шину входных данных 14 разрядности А байтов, шину выходных данных 15 разрядности В байтов, внешнюю шину управления 16, выходную шину управления 17 и выходную шину статуса 18.The external interface of the VY contains an input data bus of 14 bits A bytes, an output data bus of 15 bits B bytes, an external control bus 16, an output control bus 17 and an output status bus 18.
Шина управления 16 передает внешние команды для записи программы и входных данных, начала и возобновления вычислений, выдает соответствующие управляющие сигналы для чтения данных с входной шины данных 14. Выходная шина управления 17 сопровождает валидные выходные данные на шине выходных данных 15 соответствующими управляющими сигналами.The control bus 16 transmits external commands for writing the program and input data, starting and resuming calculations, and issues the corresponding control signals for reading data from the input data bus 14. The output control bus 17 accompanies valid output data on the output data bus 15 with the corresponding control signals.
Выходная шина статуса 18 отражает состояние основных внутренних устройств и блоков ВЯ на каждом такте работы. Выходная шина статуса 18 содержит признаки загрузки данных с шины 14, выдачи данных на шину 15 и сигнал, отражающий отсутствие простоев в ВЯ.Output status bus 18 reflects the state of the main internal devices and VY units at each operating cycle. Output status bus 18 contains signs of loading data from bus 14, issuing data to bus 15, and a signal indicating the absence of downtime in the VL.
Буфер входных данных 1 предназначен для формирования данных требуемой разрядности и их выдачу на шину загружаемых данных 21 разрядности С байтов. Буфер входных данных 1 обрабатывает данные с шины входных данных 14 в соответствии с сигналами с внешней шины управления 16. В буфер входных данных 1 по шине 16 поступает внешняя команда, задающая соответствующий блок, в который необходимо записать исполняемую программу или вектор входных данных. Буфер входных данных 1 декодирует поступившую внешнюю команду, по которой формирует данные с шины входных данных 14 в заданных форматах, передает их на шину загружаемых данных 21, подает управляющие сигналы по шине управления 20 для записи данных в блок памяти инструкций 2 или по шине управления 22 для записи данных в устройство памяти 4, подает управляющие сигналы по шине 19 в блок управления инструкциями 3.Input data buffer 1 is designed to generate data of the required width and output it to the load data bus of 21 bits of C bytes. Input data buffer 1 processes data from the input data bus 14 in accordance with signals from the external control bus 16. An external command is received into the input data buffer 1 via bus 16, specifying the corresponding block into which the executable program or input data vector must be written. Input data buffer 1 decodes an incoming external command, according to which it generates data from the input data bus 14 in specified formats, transfers them to the load data bus 21, and supplies control signals via the control bus 20 to write data to the instruction memory unit 2 or via the control bus 22 to write data to the memory device 4, it supplies control signals via bus 19 to the instruction control unit 3.
Блок памяти инструкций 2 предназначен для хранения кодов инструкций исполняемой программы, которые управляют процессом вычислений. Запись программы в блок памяти инструкций 2 осуществляется с шины загружаемых данных 21 по управляющим сигналам с шины управления 20. По адресу текущей инструкции с шины 24 от блока управления инструкциями 3 блок памяти инструкций 2 выдает соответствующий код инструкции на шину 25.Instruction memory block 2 is designed to store instruction codes of the executable program that control the computation process. The program is written to the instruction memory block 2 from the load data bus 21 using control signals from the control bus 20. At the address of the current instruction from bus 24 from the instruction control unit 3, the instruction memory block 2 issues the corresponding instruction code to bus 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.Instruction control unit 3 is designed to execute a program stored in instruction memory unit 2, which may contain conditional branches. Instruction control unit 3 controls the sequence of sampling instruction codes from instruction memory block 2, forming the addresses of current instructions on address bus 24, decodes instruction codes from bus 25, and generates executive data addresses from data vector memory blocks 61, ..., 6N and generates control signals on the corresponding control buses 23 and 26 - 29. The instruction control unit 3, upon an external command from the control bus 19, can start or resume operation. Instruction control block 3 contains a register file of X registers with a width of D bytes. Data from the registers is used for internal operations of the instruction control unit 3 and can be output to the operand switch 8 via the corresponding buses of the same name 301, ..., thirtyX. The instruction control unit 3 generates and issues data validity signals on the output data bus 15 to the control bus 17. In the instruction control unit 3, information about the status of the VY blocks is generated, which is transmitted to the output status bus 18.
Устройство памяти 4 хранит входные данные, промежуточные и окончательные результаты вычислений при выполнении алгоритмов обработки данных. Устройство памяти 4 состоит из входного коммутатора 5, блоков памяти векторов данных 61, ..., 6N, выходного коммутатора 7 и коммутатора операндов 8.Memory device 4 stores input data, intermediate and final results of calculations when executing data processing algorithms. The memory device 4 consists of an input switch 5, memory blocks of data vectors 6 1 , ..., 6 N , an output switch 7 and an operand switch 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 разрядности В байтов.Memory blocks of data vectors 6 1 , ..., 6 N contain two corresponding ports of the same name for reading to the first buses of 34 1 , ..., 34 N bytes of width and to the second buses of 35 1 , ..., 35 N of width Q bytes with the possibility of parallel reading on both ports. Also, the memory blocks of data vectors 6 1 , ..., 6 N contain one port for writing from the output bus 31 of the input switch of 5 bits of Q bytes. Input switch 5 processes control signals from the first 22 and second 23 control buses and generates control signals on buses 32 1 , ..., 32 N , which control the transfer of data from buses 21 or 39 to output bus 31 to data vector memory units 6 1 , ..., 6 N. The output switch 7 processes control signals from the control bus 29 and generates control signals on buses 34 1 , ..., 34 N , which control reading data from memory blocks of data vectors 6 1 , ..., 6 N to the 15-bit output data bus In bytes.
Устройство вычислений 9 выполняет основную вычислительную работу. Устройство вычислений 9 содержит АЛУ 11 и группу из М блоков выполнения вычислительно-сложных преобразований данных 121, ..., 12M, осуществляющих конвейерную обработку операндов из векторов данных, а также демультиплексор выбора операции 10 и мультиплексор выбора результата 13.The computing device 9 performs the main computing work. The computing device 9 contains an ALU 11 and a group of M blocks for performing computationally complex data transformations 12 1 , ..., 12 M , which perform pipeline processing of operands from data vectors, as well as an operation selection demultiplexer 10 and a result selection multiplexer 13.
В АЛУ 11 и блоки выполнения вычислительно-сложных преобразований данных 121, ..., 12M поступает соответствующий сигнал выбора операции с шин 370, ..., 37M от демультиплексора выбора операции 10, а входные данные поступают по шине операнда 36 из коммутатора операндов 8. После выполнения вычислений значения результатов передаются на соответствующие (М+1) шины 380, ..., 38M, которые передаются на соответствующие информационные входы мультиплексора выбора результатов 13.The ALU 11 and the blocks for performing computationally complex data transformations 12 1 , ..., 12 M receive the corresponding operation selection signal from the buses 37 0 , ..., 37 M from the operation selection demultiplexer 10, and the input data arrives via the operand bus 36 from the operand switch 8. After performing the calculations, the result values are transmitted to the corresponding (M+1) buses 38 0 , ..., 38 M , which are transmitted to the corresponding information inputs of the results selection multiplexer 13.
Мультиплексор выбора результатов 13 по управляющим сигналам с шины 28 передает значения результатов с шин 380, ..., 38M на шину текущего результата 39 разрядности Q байтов.The result selection multiplexer 13 uses control signals from bus 28 to transmit result values from buses 38 0 , ..., 38 M to the current result bus of 39 bits of Q bytes.
Предлагаемое векторное вычислительное ядро работает следующим образом.The proposed vector computing kernel works as follows.
Для выполнения вычислений необходимо загрузить обрабатываемые данные в блоки памяти векторов данных 61, ..., 6N и программу вычислений в блок памяти инструкций 2. В начале работы на внешнюю шину управления 16 подаются внешние команды для загрузки программы вычислений и обрабатываемых данных. После выставления на шине управления 16 соответствующей команды на шину входных данных 14 подаются данные в соответствующем формате. Программа вычислений загружается с шины входных данных 14 в блок памяти инструкций 2, а обрабатываемые данные загружаются с шины входных данных 14 в блоки памяти векторов данных 61, ..., 6N.To perform calculations, it is necessary to load the processed data into memory blocks of data vectors 6 1 , ..., 6 N and the calculation program into instruction memory block 2. At the beginning of work, external commands are sent to the external control bus 16 to load the calculation program and processed data. After setting the corresponding command on the control bus 16, data in the appropriate format is supplied to the input data bus 14. The calculation program is loaded from the input data bus 14 into the instruction memory block 2, and the processed data is loaded from the input data bus 14 into the data vector memory blocks 6 1 , ..., 6 N.
После загрузки программы вычислений и обрабатываемых данных по внешней шине управления 16 приходит внешняя команда начала вычислений, которая передается в блок управления инструкциями 3 по шине управления 19. Блок управления инструкциями 3 декодирует пришедшую команду и начинает считывание инструкций из блока памяти инструкций 2, обрабатывает считанную инструкцию, управляет последовательностью выборки инструкций и формирует сигналы на выходных шинах управления.After loading the calculation program and the processed data, an external command to start calculations comes via the external control bus 16, which is transmitted to the instruction control unit 3 via the control bus 19. The instruction control unit 3 decodes the incoming command and begins reading instructions from the instruction memory block 2, processes the read instruction , controls the sequence of instruction fetching and generates signals on the output control buses.
Инструкции подразделяются на вычислительные и служебные. Служебные инструкции управляют последовательностью выборки инструкций, вычислительные определяют сигналы, формируемые на выходных шинах блока управления инструкциями 3.Instructions are divided into computational and service. Service instructions control the sequence of instruction fetching; computational instructions determine the signals generated on the output buses of the instruction control unit 3.
Поля вычислительной инструкции включают признак завершения вычислений, параметры управления записью в блоки памяти векторов данных 61, ..., 6N и чтением из блоков памяти векторов данных 61, ..., 6N, параметры компоновки операнда, двоичный код вычислительной операции и признак выдачи выходных данных.Computational instruction fields include a sign of completion of calculations, control parameters for writing data vectors 6 1 , ..., 6 N to memory blocks and reading data vectors 6 1 , ..., 6 N from memory blocks, operand layout parameters, binary code of the computational operation and a sign for output data.
При выполнении вычислительной инструкции производится последовательная передача слов векторов данных из блоков памяти векторов данных 61, ..., 6N на соответствующие шины данных 351, ..., 35N коммутатора операндов 8 и опционально на шины 331, ..., 33N выходного коммутатора 7. Запись и чтение данных из блоков памяти векторов данных 61, ..., 6N всегда выполняются полными векторами данных, состоящими из L элементов (слов).When executing a computational instruction, words of data vectors are sequentially transferred from data vector memory blocks 6 1 , ..., 6 N to the corresponding data buses 35 1 , ..., 35 N of the operand switch 8 and optionally to buses 33 1 , ... , 33 N of output switch 7. Writing and reading data from memory blocks of data vectors 6 1 , ..., 6 N are always performed by complete data vectors consisting of L elements (words).
Коммутатор операндов 8 по управляющим сигналам с шины управления 26 выбирает данные, поступающие по X шинам регистровых операндов 301, ..., 30X из блока управления инструкциями 3 и N шинам 351, ..., 35N выходных данных из блоков памяти векторов данных 61, ..., 6N, компонует составной R-байтовый операнд и подает его на шину 36 для обработки в устройстве вычислений 9.The operand switch 8, using control signals from the control bus 26, selects data arriving along the X buses of register operands 30 1 , ..., 30 X from the instruction control unit 3 and N buses 35 1 , ..., 35 N output data from memory blocks data vectors 6 1 , ..., 6 N , assembles a composite R-byte operand and supplies it to bus 36 for processing in computing device 9.
Устройство вычислений 9 в зависимости от заданного в инструкции кода вычислительной операции выполняет обработку составного операнда в АЛУ 11 или в одном из блоков выполнения вычислительно-сложных преобразований данных 121, ..., 12M. АЛУ И является двухвходовым, операнд представляется как два операнда одинаковой разрядности, над которыми выполняется заданная в инструкции операция. Обработка операндов в блоках выполнения вычислительно-сложных преобразований данных происходит по принципу конвейера - параллельное выполнение вычислений с различными операндами на различных этапах конвейера.The computing device 9, depending on the computational operation code specified in the instruction, processes the composite operand in the ALU 11 or in one of the blocks for performing computationally complex data transformations 12 1 , ..., 12 M. The AND ALU is a two-input one, the operand is represented as two operands of the same width, on which the operation specified in the instruction is performed. Processing of operands in blocks for performing computationally complex data transformations occurs according to the pipeline principle - parallel execution of calculations with various operands at different stages of the pipeline.
Полученный результат вычислительной операции в зависимости от выполнявшего операцию блока, АЛУ 11 или одного из 121, ..., 12M, передается на соответствующую шину 380, ..., 38M и по сигналу с шины управления 28 передается на шину текущего результата 39. Данные с шины текущего результата 39 передаются на вход входного коммутатора 5 устройства памяти 4 и по сигналам управления с шины 23 могут быть одновременно записаны в любое подмножество блоков памяти векторов данных 61, ..., 6N.The resulting result of the computational operation, depending on the block that performed the operation, ALU 11 or one of 12 1 , ..., 12 M , is transmitted to the corresponding bus 38 0 , ..., 38 M and, according to a signal from the control bus 28, is transmitted to the current bus result 39. Data from the current result bus 39 is transmitted to the input of the input switch 5 of the memory device 4 and, using control signals from bus 23, can be simultaneously written to any subset of memory blocks of data vectors 6 1 , ..., 6 N.
Конечные или промежуточные результаты вычислений в виде полных векторов данных считываются из блоков памяти векторов данных 61, ..., 6N устройства памяти 4 на шину выходных данных 15 под управлением сигналов на шинах 341, ..., 34N, которые формируются выходным коммутатором 7 при обработке сигналов с шины управления 29, при этом блок управления инструкциями 3 формирует управляющие сигналы валидности данных на шине выходных данных 15 и выставляет их на выходной шине управления 17.The final or intermediate results of calculations in the form of complete data vectors are read from the memory blocks of data vectors 6 1 , ..., 6 N of the memory device 4 onto the output data bus 15 under the control of signals on the buses 34 1 , ..., 34 N that are formed output switch 7 when processing signals from the control bus 29, while the instruction control unit 3 generates data validity control signals on the output data bus 15 and sets them on the output control bus 17.
Работа ВЯ продолжается до тех пор, пока не будут обработаны все инструкции из блока памяти инструкций 2, либо пока в обрабатываемой инструкции не встретится признак завершения вычислений.The work of the VY continues until all instructions from instruction memory block 2 are processed, or until a sign of completion of calculations is encountered in the instruction being processed.
ПРИМЕР ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯEXAMPLE OF IMPLEMENTATION OF THE INVENTION
Предлагаемое векторное вычислительное ядро может быть реализовано в качестве основной вычислительной компоненты проблемно-ориентированных многоядерных процессоров обработки данных, изготавливаемых в виде сверхбольших интегральных схем (СБИС) по различным (без ограничения) полупроводниковым технологиям, например, КМОП технологии с любыми доступными технологическими нормами. В многоядерном процессоре должны поддерживаться интерфейсы предлагаемого векторного вычислительного ядра, к другим компонентам и функциональным возможностям целевого процессора (внешние интерфейсы, организация взаимодействия вычислительных ядер, подсистема управления и т.п.) требования со стороны предлагаемого векторного вычислительного ядра не предъявляются.The proposed vector computing core can be implemented as the main computing component of problem-oriented multi-core data processors manufactured in the form of very large integrated circuits (VLSI) using various (without limitation) semiconductor technologies, for example, CMOS technologies with any available technological standards. The multi-core processor must support the interfaces of the proposed vector computing core; other components and functionality of the target processor (external interfaces, organization of interaction of computing cores, control subsystem, etc.) are not required by the proposed vector computing core.
Корректность функционирования вычислительного ядра была подтверждена с использованием разработанной на языке SystemC программной модели ВЯ и представительного множества тестовых задач.The correct functioning of the computing core was confirmed using a program model of the computer language developed in the SystemC language and a representative set of test tasks.
Для приведенного выше структурно-функционального проекта векторного вычислительного ядра разработано формализованное описание на языке описания аппаратного обеспечения, выполнена верификация формализованного описания вычислительного ядра с использованием поведенческого моделирования и осуществлены логическое и топологическое проектирование в системе автоматизированного проектирования СБИС с подтверждением корректности функционирования и заданных временных ограничений на задержки в сигнальных цепях. Выполненные этапы проектирования достаточны для вывода о реализуемости предлагаемого вычислительного ядра в виде составной части процессорной СБИС.For the above structural and functional design of a vector computing core, a formalized description was developed in a hardware description language, a formalized description of the computing core was verified using behavioral modeling, and logical and topological design was carried out in a VLSI computer-aided design system, confirming the correct functioning and specified time limits on delays in signal circuits. The completed design stages are sufficient to conclude the feasibility of the proposed computational core as an integral part of a processor VLSI.
С использованием программной модели ВЯ и поведенческого моделирования ВЯ, специфицированном на языке описания аппаратного обеспечения, были выполнены с получением корректного результата более десяти тестовых научно-технических задач. В силу того, что тестовые задачи, выполнимость которых на предлагаемом ВЯ подтверждена моделированием, являются представительным подмножеством целевого класса научно-технических задач, можно утверждать, что предлагаемое векторное вычислительное ядро обеспечивает выполнение более широкого множества научно-технических задач.Using the software model of the VL and the behavioral modeling of the VL, specified in the hardware description language, more than ten test scientific and technical problems were performed with obtaining the correct result. Due to the fact that test tasks, the feasibility of which on the proposed VL is confirmed by simulation, are a representative subset of the target class of scientific and technical problems, it can be argued that the proposed vector computing kernel ensures the execution of a wider variety of scientific and technical problems.
Потактовое моделирование выполнения тестовых научно-технических задач позволило определить число тактов работы ВЯ, затраченных для выполнения задач, а результаты топологического проектирования позволили с высокой вероятностью прогнозировать допустимую рабочую тактовую частоту ВЯ. Совокупность полученных экспериментальных результатов позволила оценить производительность ВЯ как достаточную для выполнения трудоемких научно-технических задач. В сравнении с известными оценками производительности узкоспециализированных СБИС, ВМ многопоточной обработки данных и реконфигурируемых ВУ при выполнении таких же задач производительность предлагаемого векторного ВЯ при равных объемах оборудования и идентичных технологиях изготовления близка к уровню производительности узкоспециализированных СБИС и кратно превышает производительность ВМ многопоточной обработки данных и реконфигурируемых ВУ.Cycle-by-cycle modeling of the execution of test scientific and technical tasks made it possible to determine the number of cycles of operation of the VC spent to complete the tasks, and the results of topological design made it possible to predict with high probability the permissible operating clock frequency of the VC. The totality of the obtained experimental results made it possible to evaluate the performance of the VL as sufficient to perform labor-intensive scientific and technical tasks. In comparison with known performance assessments of highly specialized VLSIs, VMs for multi-threaded data processing and reconfigurable VUs when performing the same tasks, the performance of the proposed vector VYA with equal volumes of equipment and identical manufacturing technologies is close to the performance level of highly specialized VLSIs and is multiple times higher than the performance of VMs for multi-threaded data processing and reconfigurable VUs .
Таким образом, вышеизложенные сведения позволяют сделать вывод, что предлагаемое векторное вычислительное ядро соответствует заявляемому техническому результату - повышение производительности за счет выполнения вычислительно-сложных преобразований данных с использованием векторной обработки на быстродействующих конвейерных устройствах и расширение множества решаемых научно-технических задач.Thus, the above information allows us to conclude that the proposed vector computing core corresponds to the claimed technical result - increasing productivity by performing computationally complex data transformations using vector processing on high-speed conveyor devices and expanding the variety of scientific and technical problems being solved.
Claims (11)
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2819403C1 true RU2819403C1 (en) | 2024-05-20 |
Family
ID=
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU124013U1 (en) * | 2012-07-11 | 2013-01-10 | Федеральное государственное бюджетное учреждение науки Институт проблем проектирования в микроэлектронике Российской академии наук (ИППМ РАН) | STREAM COMPUTER SYSTEM |
| RU168565U1 (en) * | 2016-11-21 | 2017-02-08 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" | RECONFIGURABLE COMPUTER MODULE |
| US20190026250A1 (en) * | 2017-07-24 | 2019-01-24 | Tesla, Inc. | Vector computational unit |
| RU2781355C1 (en) * | 2021-11-03 | 2022-10-11 | Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС») | Scalar-vector processor |
| US20230195458A1 (en) * | 2018-02-01 | 2023-06-22 | Tesla, Inc. | Instruction set architecture for a vector computational unit |
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU124013U1 (en) * | 2012-07-11 | 2013-01-10 | Федеральное государственное бюджетное учреждение науки Институт проблем проектирования в микроэлектронике Российской академии наук (ИППМ РАН) | STREAM COMPUTER SYSTEM |
| RU168565U1 (en) * | 2016-11-21 | 2017-02-08 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" | RECONFIGURABLE COMPUTER MODULE |
| 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 (en) * | 2021-11-03 | 2022-10-11 | Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС») | Scalar-vector processor |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109213723B (en) | A processor, method, device, and non-transitory machine-readable medium for data flow graph processing | |
| CN109213523B (en) | Processor, method and system for configurable spatial accelerator with memory system performance, power reduction and atomic support features | |
| CN109597459B (en) | Processor and method for privilege configuration in a spatial array | |
| CN111512292A (en) | Apparatus, method and system for unstructured data streaming in a configurable spatial accelerator | |
| CN117762484A (en) | Processor, method and system with configurable spatial accelerator | |
| US11436186B2 (en) | High throughput processors | |
| JPH06195322A (en) | Information processing device used as a general-purpose neurocomputer | |
| CN113330466A (en) | Systems and methods involving aspects and/or other features of hybrid quantum machines, quantum information techniques | |
| Verdoscia et al. | A Data‐Flow Soft‐Core Processor for Accelerating Scientific Calculation on FPGAs | |
| Khan et al. | Accelerating SpMV multiplication in probabilistic model checkers using GPUs | |
| RU2819403C1 (en) | Vector computing core | |
| Stepchenkov et al. | Recurrent data-flow architecture: features and realization problems | |
| Raza et al. | An optimum design and implementation of a 16-bit alu on cadence using risc-v architecture | |
| Lysaght et al. | Guest editors' introduction: Advances in configurable computing | |
| Yeniceri et al. | An emulated digital wave computer core implementation | |
| JP2001256048A (en) | Simulation of data processor | |
| Nguyen et al. | Design and implementation of a coarse-grained dynamically reconfigurable multimedia accelerator | |
| Saldana et al. | Using Partial Reconfiguration and Message Passing to Enable FPGA‐Based Generic Computing Platforms | |
| Fellman | Design issues and an architecture for the monolithic implementation of a parallel digital signal processor | |
| US11829321B2 (en) | General-purpose systolic array | |
| Sano et al. | Hardware Algorithms | |
| JP7582505B2 (en) | DEEP LEARNING INFERENCE SYSTEM AND INFERENCE SERVING METHOD | |
| JP2654451B2 (en) | Data output method | |
| Sadad et al. | Hardware Acceleration of Scalable Artificial Neural Network Inference on FPGA | |
| Kartashev et al. | Evolution in dynamic architectures |