RU2411575C1 - Connected portable coprocessor with varied system of commands and method of its application - Google Patents

Connected portable coprocessor with varied system of commands and method of its application Download PDF

Info

Publication number
RU2411575C1
RU2411575C1 RU2009133427/08A RU2009133427A RU2411575C1 RU 2411575 C1 RU2411575 C1 RU 2411575C1 RU 2009133427/08 A RU2009133427/08 A RU 2009133427/08A RU 2009133427 A RU2009133427 A RU 2009133427A RU 2411575 C1 RU2411575 C1 RU 2411575C1
Authority
RU
Russia
Prior art keywords
coprocessor
procedure
integrated circuit
programmable logic
logic integrated
Prior art date
Application number
RU2009133427/08A
Other languages
Russian (ru)
Inventor
Олег Анатольевич Стриков (RU)
Олег Анатольевич Стриков
Original Assignee
Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд."
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." filed Critical Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд."
Priority to RU2009133427/08A priority Critical patent/RU2411575C1/en
Application granted granted Critical
Publication of RU2411575C1 publication Critical patent/RU2411575C1/en

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

FIELD: information technologies. ^ SUBSTANCE: device comprises joined programmable logical integral circuit, microcontroller and controller of peripheral bus. Microcontroller is arranged with the possibility of analysis at the stage of initialisation of configuration pack received from central processor, and re-configuration of programmable logical internal circuit, and with the possibility to forward arguments of procedure call, included into composition of "execution request" pack received from central processor, to the inlet of programmable logical integral circuit. ^ EFFECT: higher efficiency of processor operation by simplification of integration of coprocessor activity control procedures into existing software of basic digital computer. ^ 3 cl, 3 dwg

Description

Данное изобретение относится к области вычислительной техники, а именно к подключаемым портативным сопроцессорам с изменяемой системой команд и способам их применения, и может быть использовано в цифровых вычислительных системах, особенно в маломощных и портативных, таких как лэптопы, нетбуки, портативные компьютеры и т.д. Время от времени пользователям подобных устройств необходимо выполнять разнообразные ресурсоемкие, но в то же время хорошо параллелизуемые задачи (например, в ходе выполнения специализированных функций графических редакторов или криптографического программного обеспечения). В этом случае особенно ощущается недостаток производительности.This invention relates to the field of computer technology, namely to plug-in portable coprocessors with a variable system of instructions and methods for their use, and can be used in digital computing systems, especially in low-power and portable ones, such as laptops, netbooks, laptop computers, etc. . From time to time, users of such devices need to perform a variety of resource-intensive, but at the same time well-parallelizable tasks (for example, in the course of performing specialized functions of graphic editors or cryptographic software). In this case, the lack of performance is especially felt.

Существующие средства повышения скорости выполнения хорошо параллелизуемых вычислительных задач, предоставляемые графическими процессорами (GPU - graphical processing units) видеоадаптеров высокого уровня, в большинстве случаев недоступны, поскольку в маломощных (низкопроизводительных) и дешевых компьютерных системах в подавляющем большинстве случаев находят применение лишь специализированные встроенные версии GPU, не располагающие подобным функционалом.The existing means of increasing the speed of well-parallelizable computing tasks provided by the graphic processors (GPUs) of high-level video adapters are in most cases unavailable, since in the vast majority of cases only low-cost (specialized) integrated GPU versions are used that do not have such functionality.

Наборы инструкций современных центральных процессоров предоставляют множество расширений, позволяющих обеспечить параллелизм на уровне данных (так называемые SIMD - "single instruction, multiply data" инструкции), ориентированных на требования мультимедийных приложений, однако их использование не столь эффективно из-за невозможности одновременной обработки действительно больших объемов данных (более 10-15 «машинных слов»). Кроме того, инструкции, предоставляемые подобными расширениями, формируют ортогональный набор базовых команд, что приводит к необходимости исполнения большой последовательности инструкций для выполнения комплексных операций (например, криптографического преобразования блока данных). Исполнение подобного набора операций требует большого количества времени, что ведет лишь к малому повышению производительности за счет параллелизации, особенно в случае скалярной организации вычислительного конвейера центрального процессора (подобные системы часто используются во встроенных и недорогих цифровых компьютерах), которая не предоставляет дополнительные блоки исполнения для инструкций мультимедийных расширений.The instruction sets of modern central processors provide many extensions that allow for parallelism at the data level (the so-called SIMD - "single instruction, multiply data" instructions), focused on the requirements of multimedia applications, but their use is not so effective due to the impossibility of simultaneously processing really large data volumes (more than 10-15 "machine words"). In addition, the instructions provided by such extensions form an orthogonal set of basic commands, which makes it necessary to execute a large sequence of instructions to perform complex operations (for example, cryptographic transformation of a data block). The execution of such a set of operations requires a large amount of time, which leads only to a small increase in productivity due to parallelization, especially in the case of scalar organization of the computing pipeline of the central processor (such systems are often used in embedded and inexpensive digital computers), which does not provide additional execution units for instructions multimedia extensions.

Для выполнения комплексных, определяемых конкретным пользователем инструкций, без затрат времени центрального процессора применяют сопроцессоры с изменяемой системой команд.To carry out complex, user-defined instructions, without the need for a central processor, coprocessors with a variable system of instructions are used.

Известен перестраиваемый сопроцессор, приведенный в патенте US 6298366 [1], предназначенный для выполнения множественных операций умножения с накоплением, который содержит несколько пар умножителей, несколько сумматоров, получающих соответствующие выходные данные от умножителей, и, по меньшей мере, один вторичный сумматор, получающий выходные данные от первичных сумматоров. Один умножитель из каждой пары имеет фиксированный блок сдвига влево результата умножения. Другой умножитель в каждой паре содержит блок сдвига вправо результата умножения. На выходе первого умножителя находится мультиплексор, осуществляющий передачу на дальнейшую обработку либо результата умножения после сдвига, либо знакового расширения результата. На выходе второго умножителя находится мультиплексор, осуществляющий передачу на дальнейшую обработку либо результата умножения, либо его версии с осуществленным сдвигом вправо, либо одного из операндов блока умножения. Данные с выходов мультиплексоров поступают на первичный набор сумматоров. Промежуточный результат затем передают на вторичный суммирующий блок.Known tunable coprocessor, is shown in patent US 6298366 [1], designed to perform multiple operations of multiplication with accumulation, which contains several pairs of multipliers, several adders receiving the corresponding output data from the multipliers, and at least one secondary adder receiving the output data from primary adders. One multiplier from each pair has a fixed left shift block of the multiplication result. Another multiplier in each pair contains a right shift block of the multiplication result. At the output of the first multiplier is a multiplexer that transfers for further processing either the result of the multiplication after the shift, or a sign extension of the result. At the output of the second multiplier is a multiplexer that transfers for further processing either the result of the multiplication, or its version with a shift to the right, or one of the operands of the multiplication block. Data from the outputs of the multiplexers is fed to the primary set of adders. The intermediate result is then transmitted to the secondary summing unit.

Недостаток данного сопроцессора заключается в том, что в нем отсутствует возможность применения программируемой логической интегральной схемы (PLD) общего назначения. Предложенный в патенте процесс реконфигурирования вычислительного конвейера устройства ограничен вследствие фиксированной структуры внутренних элементов - только малый набор арифметических операций может быть организован в единую инструкцию высокого уровня. В патенте также нет указания на возможность организации сопроцессора в качестве независимого устройства, подключаемого к периферийной шине цифрового компьютера.The disadvantage of this coprocessor is that it lacks the possibility of using a general-purpose programmable logic integrated circuit (PLD). The process of reconfiguring the computing pipeline of the device proposed in the patent is limited due to the fixed structure of internal elements - only a small set of arithmetic operations can be organized into a single high-level instruction. The patent also does not indicate the possibility of organizing a coprocessor as an independent device connected to the peripheral bus of a digital computer.

В патенте US 6467009 [2] описана реконфигурируемая сопроцессорная система, содержащая процессор и программируемую логическую интегральную схему, соединенные между собой внутренней системной шиной и располагающиеся на единой интегральной схеме.US Pat. No. 6,467,009 [2] describes a reconfigurable coprocessor system comprising a processor and a programmable logic integrated circuit interconnected by an internal system bus and located on a single integrated circuit.

Недостатком данного аналога является то, что сопроцессорная система расположена на единой интегральной схеме (подложке) с центральным процессором (CPU) и внутренней системной шиной. Это делает сопроцессор постоянным элементом системы, что значительно снижает его портативность и делает невозможным его подключение лишь по необходимости.The disadvantage of this analogue is that the coprocessor system is located on a single integrated circuit (substrate) with a central processing unit (CPU) and an internal system bus. This makes the coprocessor a permanent element of the system, which significantly reduces its portability and makes it impossible to connect it only when necessary.

Наиболее близким к заявленному изобретению является сопроцессор, описанный в патентной заявке US 2008/0028186 [3] и предназначенный для ускоренного выполнения вычислений, который содержит программируемую пользователем вентильную матрицу (FPGA - Field Programmable Gate Array) и программируемую логическую интегральную схему (PLD - Programmable Logic Device), соединенную с FPGA и предназначенную для ее конфигурирования. Долговременная память соединена с PLD и предназначена для хранения начального потока двоичных данных конфигурации FPGA. После завершения начального цикла конфигурирования вентильная матрица FPGA напрямую взаимодействует, по меньшей мере, с одним микропроцессором через специализированную микропроцессорную шину. Данный сопроцессор выбран в качестве прототипа заявленного изобретения.Closest to the claimed invention is the coprocessor described in patent application US 2008/0028186 [3] and intended for accelerated computation, which contains a user-programmable gate array (FPGA - Field Programmable Gate Array) and programmable logic integrated circuit (PLD - Programmable Logic Device), connected to the FPGA and designed to configure it. Long-term memory is connected to the PLD and is designed to store the initial stream of binary FPGA configuration data. After completing the initial configuration cycle, the FPGA gate array communicates directly with at least one microprocessor via a dedicated microprocessor bus. This coprocessor is selected as a prototype of the claimed invention.

Недостаток организации сопроцессора прототипа заключается в отсутствии возможности его подключения к периферийной шине цифрового компьютера, что ведет к невозможности достижения высокой портативности и динамического подключения по требованию. Более того, предложенное прямое соединение «центральный процессор - сопроцессор» и «сопроцессор - память» посредством шины микропроцессора делает невозможным применение изобретения для портативных низкопроизводительных систем, таких как лэптопы или ноутбуки (они не позволяют пользователю извне присоединять устройства к микропроцессорной шине).The disadvantage of organizing a prototype coprocessor is the inability to connect it to the peripheral bus of a digital computer, which leads to the inability to achieve high portability and dynamic connection on demand. Moreover, the proposed direct connection “central processor - coprocessor” and “coprocessor - memory” via the microprocessor bus makes it impossible to use the invention for portable low-performance systems such as laptops or laptops (they do not allow the user to connect devices to the microprocessor bus from the outside).

Задачей заявленного изобретения является создание подключаемого портативного сопроцессора с изменяемой системой команд, предназначенного для увеличения скорости вычислений, например, за счет передачи хорошо параллелизуемых задач от центрального процессора цифрового компьютера сопроцессору с изменяемой высокоуровневой системой команд, за счет упрощения интеграции процедур управления деятельностью сопроцессора в существующее программное решение базового цифрового компьютера, а также с улучшенной функциональностью и удобством использования за счет возможности подключения сопроцессора к базовому цифровому компьютеру, по желанию, через одну из периферийных шин.The objective of the claimed invention is the creation of a plug-in portable coprocessor with a variable system of instructions designed to increase the speed of calculations, for example, by transferring well-parallelized tasks from the central processor of a digital computer to a coprocessor with a variable high-level system of commands, by simplifying the integration of procedures for controlling the activity of the coprocessor in an existing software solution of a basic digital computer, as well as improved functionality and usability use due to the possibility of connecting the coprocessor to the base digital computer, if desired, through one of the peripheral buses.

Технический результат достигается за счет создания подключаемого портативного сопроцессора с изменяемой системой команд, содержащего соединенные между собой программируемую логическую интегральную схему, микроконтроллер и контроллер периферийной шины, причем контроллер периферийной шины выполнен с возможностью динамического присоединения к цифровому компьютеру через периферийную шину и с возможностью обеспечения передачи данных между сопроцессором и цифровым компьютером, при этом микроконтроллер выполнен с возможностью анализа, на стадии инициализации, пакета конфигурации, получаемого от центрального процессора, и выполнения переконфигурирования программируемой логической интегральной схемы или ее части в соответствии с данными пакета конфигурации, а на стадии выполнения программы в цифровом компьютере, когда необходимо выполнение переданной сопроцессору процедуры, микропроцессор выполнен с возможностью подачи аргументов вызова процедуры, входящих в состав пакета «запрос выполнения», получаемого от центрального процессора, на вход программируемой логической интегральной схемы, с возможностью инициирования выполнения процедуры программируемой логической интегральной схемой, с возможностью оповещения центрального процессора об окончании выполнения процедуры, а также с возможностью получения результатов выполнения запрошенной процедуры с выходов программируемой логической интегральной схемы и передачи пакета результатов выполнения процедуры в центральный процессор, при этом программируемая логическая интегральная схема выполнена с возможностью выполнения процедуры под контролем микропроцессора и с возможностью подачи результатов выполнения на выходы, связанные с микропроцессором.The technical result is achieved by creating a portable portable coprocessor with a variable system of instructions, containing interconnected programmable logic integrated circuit, a microcontroller and a peripheral bus controller, and the peripheral bus controller is configured to dynamically connect to a digital computer via a peripheral bus and with the possibility of data transfer between the coprocessor and the digital computer, while the microcontroller is configured to analyze a, at the initialization stage, the configuration package received from the central processor and the reconfiguration of the programmable logic integrated circuit or its part in accordance with the configuration package data, and at the program execution stage in a digital computer, when the procedure transferred to the coprocessor is necessary, the microprocessor is executed with the ability to submit arguments to the procedure call, which are part of the package "request execution", received from the central processor, to the input of the programmable log integrated circuit, with the possibility of initiating the execution of the programmable logic integrated circuit, with the ability to notify the central processor of the completion of the procedure, as well as the ability to obtain the results of the requested procedure from the outputs of the programmable logic integrated circuit and transmitting the packet of the results of the procedure to the central processor, this programmable logic integrated circuit is configured to perform the procedure under control a microprocessor element and with the possibility of feeding the execution results to the outputs associated with the microprocessor.

Для функционирования подключаемого портативного сопроцессора с изменяемой системой команд важно, чтобы пакет «запрос выполнения» содержал название процедуры, набор аргументов и уникальный идентификатор вызова для случаев нахождения более одной команды в очереди на выполнение сопроцессором.For a portable portable coprocessor to function with a variable system of commands, it is important that the “execution request” package contains the name of the procedure, a set of arguments, and a unique call identifier for cases when more than one command is in the queue for execution by the coprocessor.

Технический результат достигается также за счет разработки способа применения подключаемого портативного сопроцессора с изменяемой системой команд. В соответствии с заявляемым способом предусматривается выполнение следующих операций:The technical result is also achieved by developing a method of using a plug-in portable coprocessor with a variable system of commands. In accordance with the claimed method provides for the following operations:

- присоединяют сопроцессор к периферийной шине цифрового компьютера, содержащего центральный процессор;- attach the coprocessor to the peripheral bus of a digital computer containing a central processor;

- выполняют инициализацию, при этом формируют в цифровом компьютере, по меньшей мере, один пакет конфигурации программируемой логической интегральной схемы сопроцессора, который состоит из поставленных в соответствие битовых потоков конфигурации программируемой логической интегральной схемы и названия процедуры;- initialization is performed, at the same time, at least one configuration packet of the programmable logic integrated circuit of the coprocessor is formed in the digital computer, which consists of the associated bit streams of the configuration of the programmable logic integrated circuit and the name of the procedure;

- отправляют посредством центрального процессора пакет конфигурации в сопроцессор;- send a configuration packet to the coprocessor through the central processor;

- анализируют посредством микроконтроллера сопроцессора пакет конфигурации и выполняют переконфигурирование программируемой логической интегральной схемы или ее части в соответствии с данными пакета конфигурации;- analyze the configuration package by means of the microcontroller of the coprocessor and reconfigure the programmable logic integrated circuit or its part in accordance with the data of the configuration package;

- при выполнении программы в цифровом компьютере, когда необходимо выполнение процедуры, переданной сопроцессору из цифрового компьютера, выполняют следующие операции:- when executing a program in a digital computer, when it is necessary to perform the procedure transferred to the coprocessor from the digital computer, the following operations are performed:

посредством центрального процессора отправляют в сопроцессор пакет «запрос выполнения» от приложения;by means of the central processor send to the coprocessor the package "request execution" from the application;

посредством микроконтроллера сопроцессора подают аргументы вызова процедуры, входящие в состав пакета «запрос выполнения», получаемого от центрального процессора, на вход программируемой логической интегральной схемы, инициируют выполнение процедуры программируемой логической интегральной схемой;by means of the microcontroller of the coprocessor, the arguments of the procedure call are included, which are part of the package "request execution", received from the central processor, to the input of the programmable logic integrated circuit, initiate the execution of the procedure by the programmable logic integrated circuit;

посредством программируемой логической интегральной схемы под контролем микропроцессора выполняют процедуру;by means of a programmable logic integrated circuit under the control of a microprocessor perform the procedure;

посредством микроконтроллера оповещают центральный процессор об окончании выполнения процедуры;through the microcontroller notify the central processor of the completion of the procedure;

посредством центрального процессора отправляют в сопроцессор пакет «запрос результатов»;by means of the central processor send a packet "query results" to the coprocessor;

посредством микроконтроллера сопроцессора получают результаты выполнения запрошенной процедуры с выходов программируемой логической интегральной схемы и передают пакет результатов выполнения процедуры в центральный процессор,by means of the coprocessor microcontroller, the results of the requested procedure are obtained from the outputs of the programmable logic integrated circuit and the result package of the procedure is transmitted to the central processor,

при этом в описанных выше операциях пересылают данные между процессором и сопроцессором по периферийной шине посредством контроллера периферийной шины.however, in the operations described above, data is transferred between the processor and the coprocessor on the peripheral bus via the peripheral bus controller.

Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими чертежами.For a better understanding of the claimed invention the following is a detailed description with the corresponding drawings.

Фиг.1. Схема портативного сопроцессора с изменяемой системой команд, выполненная согласно изобретению.Figure 1. A portable coprocessor circuit with a variable instruction system made in accordance with the invention.

Фиг.2. Диаграмма функционирования портативного сопроцессора с изменяемой системой команд со стороны цифрового компьютера, выполненная согласно изобретению.Figure 2. Functional diagram of a portable coprocessor with a variable system of commands from the side of a digital computer, made according to the invention.

Фиг.3. Диаграмма функционирования портативного сопроцессора с изменяемой системой команд со стороны сопроцессора, выполненная согласно изобретению.Figure 3. Functional diagram of a portable coprocessor with a variable instruction system from the coprocessor side, made according to the invention.

Сопроцессор 100 состоит из трех основных элементов (Фиг.1): контроллера 101 интерфейса периферийной шины 104 (PBIC - Peripheral bus interface controller), который обеспечивает возможность взаимодействия с центральным процессором по периферийной шине 104, микроконтроллера 102 (MD - Microcontroller device), который отвечает за реконфигурацию программируемой логической интегральной схемы и обработку входных и выходных пакетов данных, и программируемой логической интегральной схемы 103 (PLD - Programmable Logic Device), которая может быть выполнена в виде CPLD, FPGA и т.д. и отвечает за параллельное, с использованием или нет подхода вычислительного конвейера, выполнение изменяемого набора инструкций в соответствии с заданным соединением внутренних логических элементов.The coprocessor 100 consists of three main elements (Fig. 1): peripheral bus interface controller 101 (PBIC - Peripheral bus interface controller), which allows the central processor to communicate with peripheral bus 104, microcontroller 102 (MD - Microcontroller device), which is responsible for reconfiguring a programmable logic integrated circuit and processing input and output data packets, and programmable logic integrated circuit 103 (PLD - Programmable Logic Device), which can be performed in the form of CPLD, FPGA, etc. and is responsible for parallel, using or not the computing pipeline approach, the execution of a variable set of instructions in accordance with a given connection of internal logic elements.

Заявленный портативный сопроцессор с изменяемой системой команд применяют следующим образом (Фиг.1-3). Сначала присоединяют сопроцессор 100 к периферийной шине 104 цифрового компьютера. Перед постановкой задачи на выполнение сопроцессором 100 производят инициализацию, при этом выполняют следующие операции. Потенциально параллелизуемые блоки кода программы преобразовывают в пакет (файл) конфигурации программируемой логической интегральной схемы 103 сопроцессора одним из следующих методов: посредством трансляции кода приложения из высокоуровневого языка программирования (PL - programming language) в язык описания организации аппаратной части (HDL - hardware description language), а затем - в битовый поток настройки программируемой логической интегральной схемы 103; посредством написания кода HDL вручную на основе требуемого алгоритма и применения транслятора HDL или посредством доступного программного обеспечения. Пакет (файл) конфигурации содержит битовый поток настройки программируемой логической интегральной схемы, а именно информацию о соединении внутренних цифровых элементов, необходимом для корректного выполнения запрашиваемой процедуры. Если в приложении требуется выполнение нескольких различных процедур с использованием сопроцессора 100, то последовательно формируют несколько конфигурационных файлов или один объединенный конфигурационный файл, содержащий описание всех необходимых процедур.The claimed portable coprocessor with a variable system of instructions is used as follows (Fig.1-3). First, a coprocessor 100 is connected to the peripheral bus 104 of the digital computer. Before setting the task for execution by the coprocessor 100, initialization is performed, and the following operations are performed. Potentially parallelizable blocks of program code are converted into a package (file) of the configuration of the programmable logic integrated circuit 103 of the coprocessor using one of the following methods: by translating the application code from a high-level programming language (PL - programming language) to the hardware organization description language (HDL - hardware description language) and then into the bitstream settings of the programmable logic integrated circuit 103; by writing HDL code manually based on the required algorithm and using the HDL translator, or through available software. The configuration package (file) contains the bit stream for setting the programmable logic integrated circuit, namely, information about the connection of the internal digital elements necessary for the correct execution of the requested procedure. If the application requires the implementation of several different procedures using the coprocessor 100, then several configuration files or one combined configuration file containing the description of all necessary procedures are sequentially generated.

Затем приложение отправляет посредством центрального процессора сформированный пакет конфигурации, состоящий из поставленных в соответствие битовых потоков конфигурации программируемой логической интегральной схемы и названий процедуры, в сопроцессор (с использованием предоставляемой операционной системой или написанной вручную подпрограммы доступа к периферийной шине 104) (шаг 200).Then the application sends through the central processor the generated configuration package, consisting of the mapped configuration bitmaps of the programmable logic integrated circuit and the procedure names, to the coprocessor (using the access to the peripheral bus 104 provided by the operating system or a manually written subroutine) (step 200).

Получая пакет конфигурации через периферийную шину 104 цифрового компьютера с использованием PBIC, микроконтроллер 102 анализирует его и производит конфигурирование программируемой логической интегральной схемы 103 или ее части в соответствии с полученными данными (шаг 304). С этого момента программируемая логическая интегральная схема 103 или ее часть может выполнять требуемый набор команд (процедур) самостоятельно.Having received the configuration packet through the peripheral bus 104 of the digital computer using PBIC, the microcontroller 102 analyzes it and configures the programmable logic integrated circuit 103 or part of it in accordance with the received data (step 304). From this moment on, the programmable logic integrated circuit 103 or its part can execute the required set of commands (procedures) independently.

При дальнейшем выполнении программы, когда необходимо выполнение переданной сопроцессору 100 процедуры, приложение посредством центрального процессора посылает пакет «запрос выполнения» сопроцессору 100 (пакет «запрос выполнения» содержит название процедуры, набор аргументов и уникальный идентификатор вызова) (шаг 202).Upon further execution of the program, when it is necessary to execute the procedure passed to the coprocessor 100, the application sends the “execution request” packet to the coprocessor 100 through the central processor (the “execution request” packet contains the procedure name, a set of arguments, and a unique call identifier) (step 202).

Микроконтроллер 102 анализирует пакет «запрос выполнения» и планирует его выполнение предварительно сконфигурированной программируемой логической интегральной схемой 103 (шаг 306).The microcontroller 102 analyzes the “request for execution” packet and schedules its execution by a pre-configured programmable logic integrated circuit 103 (step 306).

После завершения выполнения запрошенной процедуры с использованием программируемой логической интегральной схемы 103 микроконтроллер 102 уведомляет инициатора запроса (исходное приложение) с помощью команд, предоставляемых протоколом периферийной шины 104 (например, с помощью системного прерывания) (шаг 306).After completing the requested procedure using the programmable logic integrated circuit 103, the microcontroller 102 notifies the requestor (source application) using the commands provided by the peripheral bus protocol 104 (for example, using a system interrupt) (step 306).

Затем приложение может запросить результаты вызова процедуры у сопроцессора 100 с помощью пакета «запрос результатов» (шаг 204). Результаты выполнения возвращают посредством сопроцессора 100 по периферийной шине 104 с помощью пакета «результаты выполнения», который содержит уникальный идентификатор вызова, полученный на этапе запроса выполнения, и результаты вызова процедуры (шаг 307). После получения результатов выполнения центральный процессор переходит к выполнению последующих процедур с использованием данных результатов (шаг 206).Then, the application can request the results of the procedure call from the coprocessor 100 using the “request results” package (step 204). The execution results are returned by the coprocessor 100 via the peripheral bus 104 using the “execution results” packet, which contains the unique call identifier obtained at the execution request stage and the results of the procedure call (step 307). After receiving the results of the execution, the central processor proceeds to the execution of the following procedures using these results (step 206).

Заявленное изобретение обеспечивает дополнительный прирост вычислительной производительности для задач, допускающих параллельное выполнение (которые часто возникают, например, в ходе выполнения специализированных функций графических редакторов или криптографического программного обеспечения).The claimed invention provides an additional increase in computational performance for tasks that can be executed in parallel (which often arise, for example, during the performance of specialized functions of graphic editors or cryptographic software).

Благодаря упрощенному протоколу взаимодействия для эффективного применения заявляемого устройства требуется лишь небольшое изменение кода исходного программного продукта, поэтому многие производители программного обеспечения могут адаптировать свою продукцию для поддержки сопроцессора.Due to the simplified interaction protocol for the effective use of the inventive device, only a small change in the code of the source software product is required, therefore, many software manufacturers can adapt their products to support the coprocessor.

Следует отметить, что приведенный выше вариант выполнения изобретения изложен, в основном, с целью иллюстрации изобретения, и специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.It should be noted that the above embodiment of the invention is set forth mainly to illustrate the invention, and it is clear to those skilled in the art that various modifications, additions and substitutions are possible without departing from the scope and meaning of the present invention disclosed in the attached claims.

Claims (3)

1. Подключаемый портативный сопроцессор с изменяемой системой команд, содержащий соединенные между собой программируемую логическую интегральную схему, микроконтроллер и контроллер периферийной шины, причем контроллер периферийной шины выполнен с возможностью динамического присоединения к цифровому компьютеру через периферийную шину и с возможностью обеспечения передачи данных между сопроцессором и цифровым компьютером, при этом микроконтроллер выполнен с возможностью анализа на стадии инициализации пакета конфигурации, получаемого от центрального процессора, и выполнения переконфигурирования программируемой логической интегральной схемы или ее части в соответствии с данными пакета конфигурации, причем микропроцессор выполнен с возможностью подачи, на стадии выполнения программы в цифровом компьютере, когда необходимо выполнение переданной сопроцессору процедуры, аргументов вызова процедуры, входящих в состав пакета «запрос выполнения», получаемого от центрального процессора, на вход программируемой логической интегральной схемы, с возможностью инициирования выполнения процедуры программируемой логической интегральной схемой, с возможностью оповещения центрального процессора об окончании выполнения процедуры, а также с возможностью получения результатов выполнения запрошенной процедуры с выходов программируемой логической интегральной схемы и передачи пакета результатов выполнения процедуры в центральный процессор, при этом программируемая логическая интегральная схема выполнена с возможностью выполнения процедуры под контролем микропроцессора и с возможностью подачи результатов выполнения на выходы, связанные с микропроцессором.1. A portable portable coprocessor with a variable system of instructions, containing interconnected programmable logic integrated circuit, a microcontroller and a peripheral bus controller, the peripheral bus controller being configured to dynamically connect to a digital computer via a peripheral bus and with the possibility of data transfer between the coprocessor and digital computer, while the microcontroller is configured to analyze at the stage of initialization of the configuration package, received from the central processor, and reconfiguring the programmable logic integrated circuit or part thereof in accordance with the configuration package data, the microprocessor being configured to supply, at the program execution stage in a digital computer, when it is necessary to execute the procedure passed to the coprocessor, the procedure call arguments included in the composition of the package "request execution", received from the central processor, to the input of a programmable logic integrated circuit, with the possibility of initiating the execution of the procedure by a programmable logic integrated circuit, with the possibility of notifying the central processor of the completion of the procedure, as well as the possibility of obtaining the results of the requested procedure from the outputs of the programmable logic integrated circuit and transmitting the packet of the results of the procedure to the central processor, while the programmable logic integrated circuit is executed with the ability to perform the procedure under the control of the microprocessor and with the possibility of filing a cut ltats run on outputs associated with a microprocessor. 2. Подключаемый портативный сопроцессор с изменяемой системой команд по п.1, отличающийся тем, что пакет «запрос выполнения» содержит название процедуры, набор аргументов и уникальный идентификатор вызова, необходимый в случае нахождения более одной команды в очереди на выполнение сопроцессора.2. A plug-in portable coprocessor with a variable system of instructions according to claim 1, characterized in that the “execution request” package contains the name of the procedure, a set of arguments, and a unique call identifier required if more than one command is in the queue for the execution of the coprocessor. 3. Способ применения подключаемого портативного сопроцессора с изменяемой системой команд, заключающийся в выполнении следующих операций: присоединяют сопроцессор к периферийной шине цифрового компьютера, содержащего центральный процессор; выполняют инициализацию, формируя при этом в цифровом компьютере, по меньшей мере, один пакет конфигурации программируемой логической интегральной схемы сопроцессора, который состоит из поставленных в соответствие битовых потоков конфигурации программируемой логической интегральной схемы и названия процедуры; отправляют посредством центрального процессора пакет конфигурации в сопроцессор; анализируют посредством микроконтроллера сопроцессора пакет конфигурации и выполняют переконфигурирование программируемой логической интегральной схемы или ее части в соответствии с данными пакета конфигурации; при выполнении программы в цифровом компьютере, когда необходимо выполнение процедуры, переданной сопроцессору из цифрового компьютера, выполняют следующие операции: отправляют в сопроцессор посредством центрального процессора пакет «запрос выполнения» от приложения; подают посредством микроконтроллера сопроцессора аргументы вызова процедуры, входящие в состав пакета «запрос выполнения», получаемого от центрального процессора, на вход программируемой логической интегральной схемы и инициируют выполнение процедуры программируемой логической интегральной схемой; выполняют процедуру посредством программируемой логической интегральной схемы под контролем микропроцессора; оповещают центральный процессор посредством микроконтроллера об окончании выполнения процедуры; отправляют в сопроцессор посредством центрального процессора пакет «запрос результатов»; получают посредством микроконтроллера сопроцессора результаты выполнения запрошенной процедуры с выходов программируемой логической интегральной схемы и передают пакет результатов выполнения процедуры в центральный процессор, при этом в описанных выше операциях пересылают данные между процессором и сопроцессором по периферийной шине посредством контроллера периферийной шины. 3. A method of using a plug-in portable coprocessor with a variable system of commands, which consists in the following operations: attach the coprocessor to the peripheral bus of a digital computer containing a central processor; perform initialization, forming at the same time in a digital computer, at least one configuration package of the programmable logic integrated circuit of the coprocessor, which consists of matched bit streams of the configuration of the programmable logic integrated circuit and the name of the procedure; send a configuration packet to the coprocessor via the central processor; analyze the configuration package by means of the coprocessor microcontroller and reconfigure the programmable logic integrated circuit or part thereof in accordance with the data of the configuration package; when executing a program in a digital computer, when it is necessary to carry out the procedure transferred to the coprocessor from the digital computer, the following operations are performed: send the “execution request” packet from the application to the coprocessor using the central processor; submit, by means of the coprocessor microcontroller, the arguments of the procedure call, which are part of the “execution request” packet received from the central processor, to the input of the programmable logic integrated circuit and initiate the execution of the procedure by the programmable logic integrated circuit; performing the procedure by means of a programmable logic integrated circuit under the control of a microprocessor; notify the central processor via the microcontroller of the completion of the procedure; send to the coprocessor by means of the central processor a packet "query results"; receive, by means of a coprocessor microcontroller, the results of the requested procedure from the outputs of the programmable logic integrated circuit and transmit the packet of the results of the procedure to the central processor, while in the above operations, data is transferred between the processor and the coprocessor via the peripheral bus via the peripheral bus controller.
RU2009133427/08A 2009-09-08 2009-09-08 Connected portable coprocessor with varied system of commands and method of its application RU2411575C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2009133427/08A RU2411575C1 (en) 2009-09-08 2009-09-08 Connected portable coprocessor with varied system of commands and method of its application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2009133427/08A RU2411575C1 (en) 2009-09-08 2009-09-08 Connected portable coprocessor with varied system of commands and method of its application

Publications (1)

Publication Number Publication Date
RU2411575C1 true RU2411575C1 (en) 2011-02-10

Family

ID=46309380

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009133427/08A RU2411575C1 (en) 2009-09-08 2009-09-08 Connected portable coprocessor with varied system of commands and method of its application

Country Status (1)

Country Link
RU (1) RU2411575C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2816836C1 (en) * 2023-11-10 2024-04-05 Общество с ограниченной ответственностью "НМ-ТЕХ" Coprocessor in cryptography processing systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2816836C1 (en) * 2023-11-10 2024-04-05 Общество с ограниченной ответственностью "НМ-ТЕХ" Coprocessor in cryptography processing systems

Similar Documents

Publication Publication Date Title
US10380063B2 (en) Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US10445098B2 (en) Processors and methods for privileged configuration in a spatial array
US10445451B2 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10467183B2 (en) Processors and methods for pipelined runtime services in a spatial array
US5815715A (en) Method for designing a product having hardware and software components and product therefor
So et al. A unified hardware/software runtime environment for FPGA-based reconfigurable computers using BORPH
Karam et al. Trends in multicore DSP platforms
US20190101952A1 (en) Processors and methods for configurable clock gating in a spatial array
US7926060B2 (en) iMEM reconfigurable architecture
Jain et al. Virtualized execution and management of hardware tasks on a hybrid ARM-FPGA platform
US7856632B2 (en) iMEM ASCII architecture for executing system operators and processing data operators
So et al. Improving usability of FPGA-based reconfigurable computers through operating system support
Pham et al. Microkernel hypervisor for a hybrid ARM-FPGA platform
US7908603B2 (en) Intelligent memory with multitask controller and memory partitions storing task state information for processing tasks interfaced from host processor
Nunez-Yanez et al. Simultaneous multiprocessing in a software-defined heterogeneous FPGA
CN110998513A (en) High throughput processor
Wolf Multiprocessor system-on-chip technology
Jain et al. Coarse Grained FPGA Overlay for Rapid Just-In-Time Accelerator Compilation
RU2411575C1 (en) Connected portable coprocessor with varied system of commands and method of its application
Kosciuszkiewicz et al. Run-time management of reconfigurable hardware tasks using embedded linux
Werner et al. Virtualized on-chip distributed computing for heterogeneous reconfigurable multi-core systems
Diamantopoulos et al. Helmgemm: Managing gpus and fpgas for transprecision gemm workloads in containerized environments
Bîră et al. OPINCAA: A Light-Weight and Flexible Programming Environment For Parallel SIMD Accelerators
Mayer-Lindenberg High-level FPGA programming through mapping process networks to FPGA resources
Xia et al. Microkernel dedicated for dynamic partial reconfiguration on arm-fpga platform

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20180909