RU2359315C2 - Hybrid microprocessor - Google Patents

Hybrid microprocessor Download PDF

Info

Publication number
RU2359315C2
RU2359315C2 RU2007116220/09A RU2007116220A RU2359315C2 RU 2359315 C2 RU2359315 C2 RU 2359315C2 RU 2007116220/09 A RU2007116220/09 A RU 2007116220/09A RU 2007116220 A RU2007116220 A RU 2007116220A RU 2359315 C2 RU2359315 C2 RU 2359315C2
Authority
RU
Russia
Prior art keywords
input
output
inputs
block
unit
Prior art date
Application number
RU2007116220/09A
Other languages
Russian (ru)
Other versions
RU2007116220A (en
Inventor
Сергей Геннадиевич Бобков (RU)
Сергей Геннадиевич Бобков
Сергей Иванович Аряшев (RU)
Сергей Иванович Аряшев
Михаил Евгеньевич Барских (RU)
Михаил Евгеньевич Барских
Константин Сергеевич Бычков (RU)
Константин Сергеевич Бычков
Павел Сергеевич Зубковский (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 RU2007116220/09A priority Critical patent/RU2359315C2/en
Publication of RU2007116220A publication Critical patent/RU2007116220A/en
Application granted granted Critical
Publication of RU2359315C2 publication Critical patent/RU2359315C2/en

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: present invention relates to computer engineering and can be used in signal processing systems. The device contains an instruction buffer, memory control unit, second level cache memory, integral arithmetic-logic unit (ALU), floating point arithmetic unit and a system controller.
EFFECT: more functional capabilities of the device due to processing signals and images when working with floating point arithmetic.
4 cl, 4 dwg

Description

Изобретение относится к вычислительной технике и может найти применение в системах обработки сигналов и другой информации, где необходима высокая производительность при работе с вещественной арифметикой.The invention relates to computer technology and can find application in signal processing systems and other information where high performance is required when working with material arithmetic.

Прототипом устройства может служить любой процессор с RISC архитектурой, но максимально близким является микропроцессор RM7065A фирмы PMC-Sierra, содержащий буфер инструкций, блок управления памятью, кэш-память второго уровня, целочисленное арифметико-логическое устройство (АЛУ), блок вещественной арифметики и контроллер шины (см., например. Short Form Data Sheet PMC-2011599 RM7065A 64-Bit MIPS RISC Microprocessor with Integrated L2 Cache, http://www.pmc-sierra.com).The prototype of the device can be any processor with a RISC architecture, but the PMC-Sierra microprocessor RM7065A, containing the instruction buffer, a memory control unit, a second level cache, an integer arithmetic logic unit (ALU), a real arithmetic unit, and a bus controller, is as close as possible. (see, for example. Short Form Data Sheet PMC-2011599 RM7065A 64-Bit MIPS RISC Microprocessor with Integrated L2 Cache, http://www.pmc-sierra.com).

Описанный прототип может выполнять до двух команд за такт, но не позволяет эффективно решить задачи обработки сигналов и изображения при работе с вещественной арифметикой.The described prototype can execute up to two instructions per cycle, but it does not allow to efficiently solve the problems of signal and image processing when working with real arithmetic.

Задачей изобретения является создание на основе универсального микропроцессора высокопроизводительного микропроцессора гибридного, позволяющего осуществить обработку сигналов и изображения при работе с вещественной арифметикой.The objective of the invention is the creation on the basis of a universal microprocessor of a high-performance microprocessor hybrid, which allows the processing of signals and images when working with material arithmetic.

Указанная задача осуществляется микропроцессором гибридным, содержащим буфер инструкций, блок управления памятью, кэш-память второго уровня, целочисленное арифметико-логическое устройство (АЛУ), блок вещественной арифметики и контроллер, при этом буфер инструкций выполнен с возможностью предсказания переходов для компенсации потерь при выполнении команды перехода и с возможностью выставлять на выполнение до четырех инструкций в режиме обработки сигналов с аппаратным контролем возможности одновременного выполнения инструкций в режиме динамического переупорядочивания, имеет один вход и пять выходов и связан с блоком управления памятью, целочисленным АЛУ и блоком вещественной арифметики, блок управления памятью содержит кэш-память инструкций первого уровня и кэш-память данных первого уровня, десять входов и семь выходов и связан со всеми блоками микропроцессора, кэш-память второго уровня выполнена в виде внутренней памяти для сокращения потерь при обмене с внешней памятью, имеет восемь входов и шесть выходов и разделена на 16 отдельных банков памяти с дополнительными шинами, связывающими ее с блоком управления памятью, блоком вещественной арифметики и системным контроллером, выполненными с возможностью работы с банками памяти по отдельности и загрузки данными обоих сдвоенных блоков вещественной арифметики, целочисленное АЛУ выполнено с возможностью выполнения двух целочисленных команд за такт и вычисления адреса для 128-разрядной загрузки/сохранения, имеет шесть входов и два выхода и связано с буфером инструкций, блоком управления памятью и блоком вещественной арифметики, блок вещественной арифметики выполнен с возможностью выполнения двух сдвоенных операций умножения, сложения и вычитания вещественных чисел одинарной точности за такт и операций умножения и сложения чисел двойной точности, имеет семь входов и четыре выхода и связан с буфером инструкций, с блоком управления памятью, целочисленным АЛУ и кэш-памятью второго уровня, контроллер выполнен в виде встроенного системного контроллера, имеет два входа и три выхода и связан с блоком управления памятью и кэш-памятью второго уровня.The indicated task is carried out by a hybrid microprocessor containing an instruction buffer, a memory control unit, a second level cache, an integer arithmetic logic unit (ALU), a real arithmetic unit, and a controller, while the instruction buffer is capable of predicting transitions to compensate for losses when the instruction is executed transition and with the ability to set up to four instructions in the signal processing mode with hardware control for simultaneous execution of instructions in the mode having dynamic reordering, has one input and five outputs and is connected to a memory control unit, integer ALU and a real arithmetic unit, the memory control unit contains a cache of instructions of the first level and a cache of data of the first level, ten inputs and seven outputs and is connected with all microprocessor units, the cache of the second level is made in the form of internal memory to reduce losses during the exchange with external memory, has eight inputs and six outputs and is divided into 16 separate memory banks with additional with the buses connecting it to the memory control unit, the real arithmetic unit and the system controller, configured to work with memory banks separately and load data of both dual units of the real arithmetic, the integer ALU is configured to execute two integer instructions per cycle and calculate the address for 128-bit load / save, has six inputs and two outputs and is associated with an instruction buffer, a memory management unit and a real arithmetic block, a real arith block Metrics is configured to perform two double operations of multiplying, adding and subtracting single precision real numbers per cycle and multiplying and adding double precision numbers, has seven inputs and four outputs and is connected to the instruction buffer, memory control unit, integer ALU and cache memory of the second level, the controller is made in the form of an integrated system controller, has two inputs and three outputs and is connected with the memory control unit and the cache of the second level.

Указанная задача осуществляется также тем, что связь блока вещественной арифметики с кэш-памятью второго уровня выполнена по четырем дополнительным 128-разрядным шинам данных, а связь кэш-памяти второго уровня с системным контроллером - по двум дополнительным 64-разрядным шинам данных.The indicated task is also carried out by the fact that the connection of the material arithmetic unit with the cache of the second level is performed via four additional 128-bit data buses, and the connection of the cache of the second level with the system controller via two additional 64-bit data buses.

Указанная задача осуществляется также тем, что буфер инструкций содержит буфер перехода, блок управления буферами, буфер выполнения, блок выборки/декодирования команд, блок предсказания перехода, блок анализа зависимостей, счетчик команд, счетчик перехода, блок выбора потока выполнения и два мультиплексора, при этом буфер перехода выполнен с одним входом и одним выходом и связан с блоком управления памятью и через мультиплексор с буфером выполнения, блок управления буферами выполнен с четырьмя выходами и двумя входами и связан с блоком предсказания переходов, блоком выборки/декодирования команд, блоком анализа зависимостей, регистром счетчика программ, управляющим мультиплексором буфера выполнения, буфер выполнения выполнен с одним входом и одним выходом и связан с блоком выборки/декодирования команд, блок выборки/декодирования команд выполнен с двумя входами и двумя выходами и связан с буфером выполнения, блоком анализа зависимостей, блоком выбора потока выполнения, блоком управления буферами и блоком предсказания перехода, блок предсказания перехода выполнен с тремя входами и тремя выходами и связан с блоком управления буферами, блоком выборки/декодирования команд, с счетчиком команд, с счетчиком перехода и с мультиплексором, связанным с блоком управления памятью, блок анализа зависимостей выполнен с одним входом и двумя выходами и связан с блоком управления буферами, блоком выборки/декодирования команд и блоком выбора потока выполнения, счетчик команд выполнен с одним входом и одним выходом и связан с блоком управления буферами, блоком предсказания перехода и мультиплексором, связанным с блоком управления памятью, счетчик перехода выполнен с одним входом и одним выходом и связан с блоком предсказания перехода и мультиплексором, связанным с блоком управления памятью, блок выбора потока выполнения выполнен с двумя входами и четырьмя выходами и связан с блоком выборки/декодирования команд, блоком анализа зависимостей, с блоком управления памятью, целочисленным АЛУ и блоком вещественной арифметики.The indicated task is also carried out by the fact that the instruction buffer contains a transition buffer, a buffer control unit, a execution buffer, a block for selecting / decoding instructions, a transition prediction block, a dependency analysis unit, a command counter, a transition counter, a execution flow selection block, and two multiplexers, while the transition buffer is made with one input and one output and is connected to the memory control unit and through the multiplexer with the execution buffer, the buffer control unit is made with four outputs and two inputs and connected to the block transition prediction, instruction fetch / decode block, dependency analysis block, program counter register controlling the execution buffer multiplexer, the execution buffer is made with one input and one output and is connected with the command fetch / decode block, the fetch / decode block is made with two inputs and two outputs and is connected with the execution buffer, the dependency analysis unit, the execution flow selection unit, the buffer control unit and the transition prediction block, the transition prediction block is made with It has inputs and three outputs and is connected to a buffer control unit, a command fetch / decode unit, an instruction counter, a transition counter, and a multiplexer connected to a memory control unit, a dependency analysis unit is made with one input and two outputs and connected to a control unit with buffers, a block for selecting / decoding instructions and a block for selecting a thread of execution, the instruction counter is made with one input and one output and is connected with a buffer control block, a transition prediction block, and a multiplexer associated with the block memory management, the transition counter is made with one input and one output and is connected with the transition prediction unit and the multiplexer associated with the memory control unit, the execution flow selection block is made with two inputs and four outputs and is connected with the sample / decode unit, the dependency analysis unit , with a memory management unit, an integer ALU, and a unit of real arithmetic.

Указанная задача осуществляется также тем, что кэш-память второго уровня содержит четыре входных мультиплексора, блок управления кэш-памятью второго уровня, блок регистров ПДП и векторного режима, четыре группы памятей 4×16 Кбайт и шесть выходных буферов, при этом каждый из четырех входных мультиплексоров выполнен с шестью входами и одним выходом и связан с системным контроллером, блоком управления памятью и блоком вещественной арифметики, с блоком управления кэш-памятью второго уровня и соответствующей группой памятей 4×16 Кбайт, блок управления кэш-памятью второго уровня выполнен с пятью входами и тремя выходами и связан с входными мультиплексорами, группами памятей 4×16 Кбайт, выходными буферами и блоком регистров ПДП и векторного режима, блок регистров ПДП и векторного режима выполнен с одним входом и двумя выходами и связан с блоком управления памятью, с блоком управления кэш-памятью второго уровня и выходными буферами, каждая из четырех групп памятей 4×16 Кбайт выполнена с двумя входами и одним выходом и связана с входными мультиплексорами, блоком управления кэш-памятью второго уровня и выходными буферами, шесть выходных буферов, каждый из которых выполнен с пятью входами и одним выходом и связан с системным контроллером, блоком управления памятью, с блоком вещественной арифметики, с блоком управления памятью и группами памятей 4×16 Кбайт.This task is also carried out by the fact that the second-level cache memory contains four input multiplexers, a second-level cache memory control unit, a block of RAP and vector mode registers, four 4 × 16 Kbyte memory groups and six output buffers, each of four input buffers multiplexers is made with six inputs and one output and connected to the system controller, memory control unit and material arithmetic unit, to the second level cache control unit and the corresponding memory group 4 × 16 Kbytes, unit The second level cache cache is made with five inputs and three outputs and is connected to input multiplexers, memory groups 4 × 16 Kbytes, output buffers and a block of registers DAP and vector mode, the block of registers RAP and vector mode is made with one input and two outputs and associated with a memory control unit, with a second-level cache control unit and output buffers, each of the four 4 × 16 Kbyte memory groups is made with two inputs and one output and is associated with input multiplexers, a cache control unit second level and output buffers, six output buffers, each of which is made with five inputs and one output and connected to the system controller, memory management unit, with the unit of real arithmetic, with the memory management unit and memory groups 4 × 16 Kbytes.

Указанная задача осуществляется также тем, что блок вещественной арифметики, содержит две несимметричные схемы входного интерфейса, декодер инструкций процессора, два сдвоенных блока умножения одинарной точности, блок умножения двойной точности, два сдвоенных блока сложения одинарной точности, два сдвоенных блока вычитания одинарной точности, блок сложения двойной точности, две несимметричные схемы выходного интерфейса, два регистровых файла, при этом две несимметричные схемы входного интерфейса, одна из которых выполнена с пятью входами и девятью выходами, а другая - с тремя входами и пятью выходами, и связаны с блоком управления памятью, целочисленным АЛУ и кэш-памятью второго уровня, с декодером инструкций микропроцессора, двумя сдвоенными блоками умножения одинарной точности, блоком умножения двойной точности, двумя сдвоенными блоками сложения одинарной точности, двумя сдвоенными блоками вычитания одинарной точности, блоком сложения двойной точности и двумя регистровыми файлами, декодер инструкций микропроцессора выполнен с тремя входами и двенадцатью выходами и связан с буфером инструкций, двумя схемами входного интерфейса, двумя сдвоенными блоками умножения одинарной точности, блоком умножения двойной точности, двумя сдвоенными блоками сложения одинарной точности, двумя сдвоенными блоками вычитания одинарной точности, блоком сложения двойной точности и двумя схемами выходного интерфейса, два сдвоенных блока умножения одинарной точности, каждый из которых выполнен с тремя входами и одним выходом и связан со схемами входного интерфейса, декодером инструкций микропроцессора, схемами выходного интерфейса со сдвоенным блоком сложения одинарной точности, со сдвоенным блоком вычитания одинарной точности, блок умножения двойной точности выполнен с тремя входами и одним выходом и связан со схемами входного интерфейса, декодером инструкций микропроцессора, схемами выходного интерфейса и с блоком сложения двойной точности, два сдвоенных блока сложения одинарной точности, каждый из которых выполнен с четырьмя входами и одним выходом и связан со схемами входного интерфейса, декодером инструкций микропроцессора, схемами выходного интерфейса, со сдвоенными блоками умножения одинарной точности, два сдвоенных блока вычитания одинарной точности, каждый из которых выполнен с четырьмя входами и одним выходом и связан со схемами входного интерфейса, декодером инструкций микропроцессора, схемами выходного интерфейса, со сдвоенными блоками умножения одинарной точности, блок сложения двойной точности выполнен с четырьмя входами и одним выходом и связан со схемами входного интерфейса, декодером инструкций процессора, схемами выходного интерфейса, с блоком умножения двойной точности, две несимметричные схемы выходного интерфейса, одна из которых выполнена с шестью входами и четырьмя выходами, а другая - с четырьмя входами и двумя выходами и связаны соответственно с блоком управления памятью, целочисленным АЛУ и кэш-памятью второго уровня, с декодером инструкций микропроцессора, двумя сдвоенными блоками умножения одинарной точности, блоком умножения двойной точности, двумя сдвоенными блоками сложения одинарной точности, двумя сдвоенными блоками вычитания одинарной точности, блоком сложения двойной точности и двумя регистровыми файлами, два регистровых файла, каждый из которых выполнен с двумя входами и одним выходом и связан со схемами входного интерфейса и схемами выходного интерфейса.The indicated task is also carried out by the fact that the block of real arithmetic contains two asymmetric input interface circuits, a processor instruction decoder, two double units of single precision multiplication, a block of double precision multiplication, two double units of single precision addition, two double units of single precision subtraction, an addition block double precision, two asymmetric schemes of the output interface, two register files, while two asymmetric schemes of the input interface, one of which is made with five inputs dams and nine outputs, and the other with three inputs and five outputs, and are connected to a memory control unit, integer ALU and second level cache memory, with a microprocessor instruction decoder, two double units of multiplication of single precision, block of multiplication of double precision, two double single precision addition blocks, two double single precision subtraction blocks, double precision addition block and two register files, the microprocessor instruction decoder is made with three inputs and twelve outputs and it is connected with the instruction buffer, two input interface circuits, two double single precision multiplication blocks, double precision multiplication block, two double single precision addition blocks, two double single precision subtraction blocks, double precision addition blocks and two output interface circuits, two dual single precision multiplication unit, each of which is made with three inputs and one output and is connected to input interface circuits, microprocessor instruction decoder, output circuits one interface with a double unit of addition of single precision, with a double unit of subtraction of single precision, the unit of multiplication of double precision is made with three inputs and one output and is connected to the circuitry of the input interface, the decoder of the instructions of the microprocessor, the circuitry of the output interface and the unit of addition of double precision, two dual single precision addition unit, each of which is made with four inputs and one output and is connected to input interface circuits, microprocessor instruction decoder, output circuits interface, with double units of multiplication of single precision, two double units of subtraction of single precision, each of which is made with four inputs and one output and connected to circuits of the input interface, decoder instructions of the microprocessor, circuits of the output interface, with double blocks of multiplication of single precision, block double precision addition is made with four inputs and one output and is connected with input interface circuits, processor instruction decoder, output interface circuits, with a multiplication unit double precision, two asymmetric circuits of the output interface, one of which is made with six inputs and four outputs, and the other with four inputs and two outputs and are connected respectively to the memory control unit, integer ALU and second level cache memory, with a microprocessor instruction decoder , two double blocks of multiplication of single precision, block of multiplication of double precision, two double blocks of addition of single precision, two double blocks of subtraction of single precision, block of addition double accuracy and two register files, two register files, each of which is made with two inputs and one output and is connected with the input interface circuits and output interface circuits.

На фиг.1 представлена блок-схема микропроцессора гибридного.Figure 1 presents a block diagram of a hybrid microprocessor.

На фиг.2 - блок-схема буфера инструкций.Figure 2 is a block diagram of an instruction buffer.

На фиг.3 - блок-схема кэш-памяти второго уровня.Figure 3 - block diagram of the cache of the second level.

На фиг.4 - блок-схема блока вещественной арифметики.Figure 4 is a block diagram of a block of real arithmetic.

Микропроцессор гибридный (фиг.1) состоит из буфера инструкций 1, выход 2 которого - линии запроса и адреса - связан с входом 3 блока управления памятью 4, вход 5 - входные инструкции - связан с выходом 6 блока управления памятью 4. Выходы 7, 8 и 9 блока управления памятью 4 - запросы и адреса данных, инструкций и операций сохранения - связаны с входами 10, 11 и 12 кэш-памяти второго уровня 13. Выход 14 блока управления памятью 4 - данные сохранения - связан с входом 15 кэш-памяти второго уровня 13, а выходы 16, 17 - данные загрузки кэш-памяти инструкций и данных первого уровня и 18 - выходные данные в режиме внутренней памяти - кэш-памяти второго уровня 13 связаны с входами 19, 20 и 21 блока управления памятью 4. Выход 22 буфера инструкций 1 - целочисленная инструкция - связан с входом 23 целочисленного АЛУ 24, выход 25 - целочисленная инструкция или инструкция загрузки/сохранения - связан с входом 26 целочисленного АЛУ 24, входом 27 блока управления памятью 4 и входом 28 блока вещественной арифметики 29, выход 30 буфера инструкций 1 - инструкция расширенной загрузки/сохранения - связан с входом 31 целочисленного АЛУ 24, входом 32 блока управления памятью 4 и входом 33 блока вещественной арифметики 29, выход 34 буфера инструкций 1 - инструкция вещественной арифметики или инструкция расширенной вещественной арифметики - связан с входом 35 целочисленного АЛУ 24 и входом 36 блока вещественной арифметики 29. Выход 37 блока управления памятью 4 связан с входом 38 целочисленного АЛУ 24, а выход 39 целочисленного АЛУ 24 связан с входом 40 блока управления памятью 4 - линии взаимодействия целочисленного АЛУ и блока управления памятью. Выход 41 целочисленного АЛУ 24 связан с входом 42 блока вещественной арифметики 29, а выход 43 блока вещественной арифметики 29 связан с входом 44 целочисленного АЛУ 24 - линии обмена данными целочисленного АЛУ и блока вещественной арифметики. Выход 45 блока управления памятью 4 - выходные данные - связан с входом 46 системного контроллера 47, выход 48 системного контроллера 47 - линии контроля когерентности - связан с входом 49 блока управления памятью 4, выход 50 системного контроллера 47 - входные данные - связан с входом 51 управления памятью 4 и входом 52 кэш-памяти второго уровня 13. Выход 53 блока управления памятью 4 связан с входом 54 блока вещественной арифметики 29, а выход 55 блока вещественной арифметики 29 связан с входом 56 блока управления памятью 4 - линии обмена данными блока управления памятью и блока вещественной арифметики. Выходы 57 и 58 кэш-памяти второго уровня 13 связаны с входами 59 и 60 блока вещественной арифметики 29, а выходы 61 и 62 блока вещественной арифметики 29 связаны с входами 63 и 64 кэш-памяти второго уровня 13 - дополнительные 128-разрядные шины данных. Выход 65 кэш-памяти второго уровня 13 связан с входом 66 системного контроллера 47, а выход 67 системного контроллера 47 связан с входом 68 кэш-памяти второго уровня 13 - канал прямого доступа к памяти.The hybrid microprocessor (Fig. 1) consists of an instruction buffer 1, the output of which 2, the request and address lines, is connected to the input 3 of the memory control unit 4, the input 5, the input instructions, is connected to the output 6 of the memory control unit 4. Outputs 7, 8 and 9 of the memory control unit 4 - requests and addresses of data, instructions and save operations - are connected to the inputs 10, 11 and 12 of the cache of the second level 13. Output 14 of the memory control unit 4 - save data - is connected to the input 15 of the cache of the second level 13, and outputs 16, 17 - data load cache instructions and data of the first level 18 - output in the internal memory mode - second level cache 13 is connected to the inputs 19, 20 and 21 of the memory control unit 4. Output 22 of the instruction buffer 1 - integer instruction - is connected to the input 23 of the integer ALU 24, output 25 - integer instruction or loading / saving instruction - connected to input 26 of integer ALU 24, input 27 of memory control unit 4 and input 28 of block of arithmetic 29, output 30 of instruction buffer 1 - extended loading / saving instruction - connected to input 31 of integer ALU 24, input 32 b the memory control window 4 and the input 33 of the block of real arithmetic 29, the output 34 of the instruction buffer 1 — the instruction of real arithmetic or the instruction of extended real arithmetic — is connected to the input 35 of integer ALU 24 and the input 36 of the block of real arithmetic 29. The output 37 of the control block of memory 4 the input 38 of the integer ALU 24, and the output 39 of the integer ALU 24 is connected to the input 40 of the memory control unit 4 - the interaction line of the integer ALU and the memory control unit. The output 41 of integer ALU 24 is connected to the input 42 of the block of real arithmetic 29, and the output 43 of the block of real arithmetic 29 is connected to the input 44 of the integer ALU 24 - data exchange line of the integer ALU and the block of real arithmetic. The output 45 of the memory control unit 4 - the output data - is connected to the input 46 of the system controller 47, the output 48 of the system controller 47 - the coherence control line - is connected to the input 49 of the memory control unit 4, the output 50 of the system controller 47 - input data - is connected to the input 51 memory control 4 and the input 52 of the cache of the second level 13. The output 53 of the memory control unit 4 is connected to the input 54 of the real arithmetic unit 29, and the output 55 of the real arithmetic unit 29 is connected to the input 56 of the memory control unit 4 - data exchange lines of the control unit memory and block of real arithmetic. The outputs 57 and 58 of the cache of the second level 13 are connected to the inputs 59 and 60 of the block of real arithmetic 29, and the outputs 61 and 62 of the block of real arithmetic 29 are connected to the inputs 63 and 64 of the cache of the second level 13 - additional 128-bit data buses. The output 65 of the cache of the second level 13 is connected to the input 66 of the system controller 47, and the output 67 of the system controller 47 is connected to the input 68 of the cache of the second level 13 - a channel for direct access to memory.

В качестве блока управления памятью 4 может использоваться любой блок управления памятью микропроцессора с RISC архитектурой, содержащий кэш-память данных и инструкций первого уровня, например блок управления памятью MIPS подобного микропроцессора типа прототипа или любого другого, или SPARC V8 подобного процессора. В качестве целочисленного АЛУ 24 может использоваться любое целочисленного АЛУ микропроцессора с RISC архитектурой, позволяющее выполнять две целочисленные команды за такт, обработку адреса и пересылку. В качестве системного контроллера может использоваться любой из существующих системных контроллеров, позволяющий подключать дополнительные каналы данных и имеющий совместимую локальную шину с используемым блоком управления памяти.As memory control unit 4, any microprocessor memory control unit with RISC architecture can be used, containing a cache of data and first-level instructions, for example, MIPS memory control unit of a similar microprocessor such as a prototype or any other, or SPARC V8 similar processor. As an integer ALU 24, any integer ALU microprocessor with RISC architecture can be used, which allows two integer instructions to be executed per clock, address processing, and forwarding. As a system controller, any of the existing system controllers can be used, which allows you to connect additional data channels and has a compatible local bus with the used memory control unit.

Буфер инструкций 1 состоит из блока управления буферами 69, вход 70 которого связан с выходом 71 блока предсказания перехода 72, выход 73 - с входом 74 блока предсказания перехода 72, выход 75 - с управляющим входом 76 мультиплексора 77, выход 81 - с входом 82 счетчика команд 83, вход 84 - с выходом 85 блока анализа зависимостей 86; буфера перехода 87, вход 88 которого связан с входом 2 буфера инструкций 1, выход 89 - с входом 90 мультиплексора 77; мультиплексора 77, вход управления 76 которого связан с выходом 75 блока управления буферами 69, вход 90 - с выходом 89 буфера перехода 87, вход 91 - с входом 2 буфера инструкций 11, выход 92 - с входом 93 буфера выполнения 94; буфера выполнения 94, вход 93 которого связан с выходом 92 мультиплексора 77, выход 95 - с входом 96 блока выборки/декодирования 80; блока предсказания перехода 72, выход 71 которого связан с входом 70 блока управления буферами 69, вход 74 - с выходом 73 блока управления буферами 69, выход 97 - с управляющим входом 98 мультиплексора 99, выход 102 - с входом 103 счетчика перехода 104, вход 105 - с выходом 106 счетчика команд 83, вход 100 - с выходом 101 блока выборки/декодирования 80; блока выборки/декодирования 80, вход 96 которого связан с выходом 95 буфера выполнения 94, вход 79 - с выходом 78 блока управления буферами 69, выход 101 с входом 100 блока предсказания перехода 72, выход 107 - с входами 108 блока анализа зависимостей 86 и 109 блока выбора потока выполнения 110; мультиплексора 99, вход управления 98 которого связан с выходом 97 блока предсказания перехода 72, выход 111 - с выходом 5 буфера инструкций 1, вход 112 - с выходом 106 счетчика команд 83, вход 113 - с выходом 114 счетчика перехода 104; счетчика команд 83, вход 82 которого связан с выходом 81 блока управления буферами 69, выход 106 - с входом 112 мультиплексора 99; блока анализа зависимостей 86, выход 85 которого связан с входом 84 блока управления буферами 69, вход 108 - с выходом 107 блока выборки/декодирования 80, выход 115 - с входом 116 блока выбора потока выполнения 110; блока выбора потока выполнения 110, выход 116 которого связан с выходом 115 блока анализа зависимостей 86, вход 109 - с выходом 107 блока выборки/декодирования 80, выход 117 - с выходом 22 буфера инструкций 1, выход 118 - с выходом 25 буфера инструкций 1, выход 119 - с выходом 30 буфера инструкций 1, выход 120 - с выходом 34 буфера инструкций 1.The instruction buffer 1 consists of a buffer control unit 69, the input 70 of which is connected to the output 71 of the transition prediction unit 72, the output 73 - to the input 74 of the transition prediction unit 72, the output 75 - to the control input 76 of the multiplexer 77, the output 81 - to the counter input 82 commands 83, input 84 — with output 85 of the dependency analysis block 86; transition buffer 87, input 88 of which is connected to input 2 of instruction buffer 1, output 89 - to input 90 of multiplexer 77; a multiplexer 77, the control input 76 of which is connected to the output 75 of the buffer control unit 69, the input 90 - with the output 89 of the transition buffer 87, the input 91 - with the input 2 of the instruction buffer 11, the output 92 - with the input 93 of the execution buffer 94; execution buffer 94, the input 93 of which is connected to the output 92 of the multiplexer 77, the output 95 - with the input 96 of the sample / decode block 80; transition prediction block 72, the output 71 of which is connected to the input 70 of the buffer control unit 69, the input 74 - with the output 73 of the buffer control unit 69, the output 97 - with the control input 98 of the multiplexer 99, the output 102 - with the input 103 of the transition counter 104, the input 105 - with the output 106 of the instruction counter 83, the input 100 - with the output 101 of the block sampling / decoding 80; a sampling / decoding unit 80, the input 96 of which is connected to the output 95 of the execution buffer 94, the input 79 - with the output 78 of the buffer control unit 69, the output 101 with the input 100 of the transition prediction block 72, the output 107 - with the inputs 108 of the dependency analysis block 86 and 109 block execution thread selection 110; a multiplexer 99, the control input 98 of which is connected with the output 97 of the transition prediction block 72, the output 111 - with the output 5 of the instruction buffer 1, the input 112 - with the output 106 of the instruction counter 83, the input 113 - with the output 114 of the transition counter 104; a command counter 83, the input 82 of which is connected to the output 81 of the buffer control unit 69, the output 106 to the input 112 of the multiplexer 99; the dependency analysis unit 86, the output 85 of which is connected to the input 84 of the buffer control unit 69, the input 108 - with the output 107 of the sample / decode unit 80, the output 115 - with the input 116 of the execution flow selection block 110; block execution thread selection 110, the output 116 of which is connected to the output 115 of the dependency analysis block 86, the input 109 - with the output 107 of the sample / decode block 80, the output 117 - with the output 22 of the instruction buffer 1, the output 118 - with the output 25 of the instruction buffer 1, output 119 with output 30 of instruction buffer 1, output 120 with output 34 of instruction buffer 1.

В качестве блока управления буферами 69 может быть использован блок управления буферами типа FIFO (first input first output, очередь). Буфер перехода 87 и буфер выполнения 94 - регистры для хранения 4-х 32-разрядных инструкций. Блок предсказания перехода 72 - стандартный блок предсказания переходов RISC процессора с предсказанием перехода, управляющий выставлением запроса на шину адреса и формирующий сигналы о выставлении предсказанного запроса и подтверждения или отмены предсказанного перехода. Блок выборки/декодирования 80 - стандартный блок декодирования инструкций микропроцессора с RISC архитектурой (например, блок декодирования MIPS подобного микропроцессора типа прототипа или любого другого), декодирующий полученные команды. Счетчик команд перехода 104 - регистр, хранящий значение целевого адреса перехода предсказанного перехода. Счетчик команд 83 - регистр, хранящий текущее значение счетчика команд. Блок анализа зависимостей 86 - стандартный блок анализа зависимостей, выбранных для выполнения инструкций микропроцессора с RISC архитектурой, выполняющего 2 команды за такт (например, блок декодирования микропроцессора типа прототипа или любого другого). Блок выбора потока выполнения 110 - стандартный блок микропроцессора с RISC архитектурой с 4-мя потоками выполнения (например, блок выдачи инструкций микропроцессора типа прототипа), распределяющий выбранные и декодированные инструкции по потокам выполнения.As a buffer control unit 69, a FIFO type buffer control unit (first input first output, queue) can be used. The jump buffer 87 and the execution buffer 94 are registers for storing 4 32-bit instructions. Transition prediction block 72 is a standard transition prediction block of a RISC processor with a transition prediction that controls the issuing of a request to the address bus and generates signals about the issuing of a predicted request and confirmation or cancellation of the predicted transition. Sampling / decoding unit 80 is a standard microprocessor instruction decoding unit with a RISC architecture (for example, an MIPS decoding unit of a similar microprocessor such as a prototype or any other) that decodes the received commands. Transition instruction counter 104 is a register that stores the value of the transition destination address of the predicted transition. Command counter 83 is a register that stores the current value of the command counter. Dependency Analysis Block 86 is a standard block of dependency analysis selected for executing microprocessor instructions with a RISC architecture that executes 2 instructions per clock cycle (for example, a microprocessor decoding block of the prototype type or any other). The execution flow selection block 110 is a standard microprocessor unit with RISC architecture with 4 execution threads (for example, a microprocessor instruction issuing unit of the prototype type), which distributes the selected and decoded instructions to the execution threads.

Кэш-память второго уровня 13 состоит из четырех входных мультиплексоров 121, 122, 123 и 124; четырех групп памятей 125, 126, 127 и 128 емкостью 4×16 килобайт каждая; шести выходных буферов 129, 130, 131, 132, 133 и 134; блока регистров 135, хранящих параметры работы блока кэш-памяти второго уровня в режимах векторном и прямого доступа к памяти (ПДП); блока управления кэш-памятью второго уровня 136.The cache memory of the second level 13 consists of four input multiplexers 121, 122, 123 and 124; four groups of memories 125, 126, 127 and 128 with a capacity of 4 × 16 kilobytes each; six output buffers 129, 130, 131, 132, 133 and 134; a block of registers 135 storing the operation parameters of the second-level cache block in the vector and direct memory access (DMA) modes; second level cache control unit 136.

Вход 52 блока 13 - входные данные - связан с входами 137, 138, 139 и 140 входных мультиплексоров 121, 122, 123 и 124 соответственно; вход 68 блока 13 - входные данные - связан с входами 141, 142, 142 и 144 входных мультиплексоров 121, 122, 123 и 124 соответственно; вход 15 блока 13 - входные данные - связан с входами 145, 146, 147 и 148 входных мультиплексоров 121, 122, 123 и 124 соответственно; вход 63 блока 13 - входные данные - связан с входами 149, 150, 151 и 152 входных мультиплексоров 121, 122, 123 и 124 соответственно; вход 64 блока 13 - входные данные - связан с входами 153, 154, 155 и 156 входных мультиплексоров 121, 122, 123 и 124 соответственно.Input 52 of block 13 — input data — is connected to inputs 137, 138, 139, and 140 of input multiplexers 121, 122, 123, and 124, respectively; the input 68 of block 13 - the input data - is connected to the inputs 141, 142, 142 and 144 of the input multiplexers 121, 122, 123 and 124, respectively; input 15 of block 13 — input data — is connected to inputs 145, 146, 147, and 148 of input multiplexers 121, 122, 123, and 124, respectively; the input 63 of the block 13 - the input data - is connected to the inputs 149, 150, 151 and 152 of the input multiplexers 121, 122, 123 and 124, respectively; input 64 of block 13 — input data — is connected to the inputs 153, 154, 155, and 156 of input multiplexers 121, 122, 123, and 124, respectively.

Вход 10 блока 13 - линии адреса - связан с входом 157 блока управления кэш-памятью второго уровня 136; вход 11 блока 13 - линии адреса - связан с входом 158 блока управления кэш-памятью второго уровня 136; вход 12 блока 13 - линии адреса - связан с входом 159 блока управления кэш-памятью второго уровня 136.The input 10 of the block 13 - line address - is connected to the input 157 of the control block cache second level 136; the input 11 of the block 13 - line address - is connected to the input 158 of the control block cache second level 136; the input 12 of the block 13 - the address line - is connected to the input 159 of the cache control unit of the second level 136.

Выход 160 входного мультиплексора 121 связан линией данных с входом 161 группы памятей 125. Выход 162 входного мультиплексора 122 связан линией данных с входом 163 группы памятей 126. Выход 164 входного мультиплексора 123 связан линией данных с входом 165 группы памятей 127. Выход 166 входного мультиплексора 124 связан линией данных с входом 167 группы памятей 128.The output 160 of the input multiplexer 121 is connected by a data line to the input 161 of the memory group 125. The output 162 of the input multiplexer 122 is connected by a data line to the input 163 of the memory group 126. The output 164 of the input multiplexer 123 is connected by a data line to the input 165 of the memory group 127. The output 166 of the input multiplexer 124 connected by a data line to input 167 of memory group 128.

Выход 168 блока управления кэш-памятью второго уровня 136 связан с управляющими входами 169, 170, 171 и 172 входных мультиплексоров 121, 122, 123 и 124 соответственно. Выход 173 связан с входами адреса и управляющих сигналов 174, 175, 176 и 177 групп памятей 125, 126, 127 и 128 соответственно. Выход 178 группы памятей 125 связан линией данных с входами 179, 180, 181, 182, 183 и 184 выходных буферов 129, 130, 131, 132, 133 и 134 соответственно. Выход 185 группы памятей 126 связан линией данных с входами 186, 187, 188, 189, 190 и 191 выходных буферов 129, 130, 131, 132, 133 и 134 соответственно. Выход 192 группы памятей 127 связан линией данных с входами 193, 194, 195, 196, 197 и 198 выходных буферов 129, 130, 131, 132, 133 и 134 соответственно. Выход 199 группы памятей 128 связан линией данных с входами 200, 201, 202, 203, 204 и 205 выходных буферов 129, 130, 131, 132, 133 и 134 соответственно. Выход 206 блока управления кэш-памятью второго уровня 136 связан с управляющими входами 207, 208, 209, 210, 211 и 212 выходных буферов 129, 130, 131, 132, 133 и 134 соответственно.The output 168 of the second-level cache control unit 136 is connected to the control inputs 169, 170, 171 and 172 of the input multiplexers 121, 122, 123 and 124, respectively. The output 173 is connected to the inputs of the address and control signals 174, 175, 176 and 177 of the memory groups 125, 126, 127 and 128, respectively. The output 178 of the memory group 125 is connected by a data line with the inputs 179, 180, 181, 182, 183, and 184 of the output buffers 129, 130, 131, 132, 133 and 134, respectively. The output 185 of the group of memories 126 is connected by a data line with the inputs 186, 187, 188, 189, 190 and 191 of the output buffers 129, 130, 131, 132, 133 and 134, respectively. Output 192 of memory group 127 is connected by a data line to inputs 193, 194, 195, 196, 197, and 198 of output buffers 129, 130, 131, 132, 133, and 134, respectively. The output 199 of the group of memories 128 is connected by a data line with the inputs 200, 201, 202, 203, 204 and 205 of the output buffers 129, 130, 131, 132, 133 and 134, respectively. The output 206 of the second-level cache control unit 136 is connected to the control inputs 207, 208, 209, 210, 211 and 212 of the output buffers 129, 130, 131, 132, 133 and 134, respectively.

Выход 213 выходного буфера 129 - линия данных - связан с выходом 65 блока 13; выход 214 выходного буфера 130 - линия данных - связан с выходом 18 блока 13; выход 215 выходного буфера 131 - линия данных - связан с выходом 16 блока 13; выход 216 выходного буфера 132 - линия данных - связан с выходом 17 блока 13; выход 217 выходного буфера 133 - линия данных - связан с выходом 57 блока 13; выход 218 выходного буфера 134 - линия данных - связан с выходом 58 блока 13.The output 213 of the output buffer 129 — data line — is connected to the output 65 of block 13; output 214 of output buffer 130 — data line — is connected to output 18 of block 13; output 215 of the output buffer 131 — data line — is connected to output 16 of block 13; output 216 of output buffer 132 — data line — is connected to output 17 of block 13; output 217 of the output buffer 133 — data line — is connected to the output 57 of block 13; the output 218 of the output buffer 134 — the data line — is connected to the output 58 of block 13.

Выход 219 блока регистров 135 связан линией данных с входом 220 блока управления кэш-памятью второго уровня 136. Выход 221 блока регистров 135 связан линией данных с входом 222 блока управления кэш-памятью второго уровня 136.The output 219 of the register block 135 is connected by a data line to the input 220 of the second-level cache control unit 136. The output 221 of the register block 135 is connected by a data line to the input 222 of the second-level cache control unit 136.

Блоки 121, 122, 123 и 124 представляют собой стандартные 128-разрядные мультиплексоры 4 в 1. Блоки 125, 126, 127 и 128 представляют собой стандартные 128-разрядные блоки памяти. Блоки 129, 130, 131, 132, 133 и 134 представляют собой стандартные 128-разрядные мультиплексоры 4 в 1, объединенные с выходными буферами. Блок 135 представляет собой набор регистров. Блок 136 представляет собой стандартный контроллер ЗУ, формирующий адресные сигналы, сигналы разрешения работы входных мультиплексоров и выходных буферов.Blocks 121, 122, 123, and 124 are standard 128-bit 4 in 1 multiplexers. Blocks 125, 126, 127, and 128 are standard 128-bit memory blocks. Blocks 129, 130, 131, 132, 133 and 134 are standard 128-bit 4-in-1 multiplexers combined with output buffers. Block 135 is a collection of registers. Block 136 is a standard memory controller that generates address signals, enable signals for input multiplexers and output buffers.

Блок вещественной арифметики 29 состоит из блоков, описанных ниже. Данные от внешних устройств поступают на входы 223, 224 и 225 схемы входного интерфейса 226 с входов 42, 54 и 59 блока 29 соответственно. Данные с выходов 227 и 228 блока 226 поступают на входы операндов 229 и 230 сдвоенного блока умножения одинарной точности 231. Данные с выходов 232 и 233 поступают соответственно на входы операндов 234 и 235 блока умножения двойной точности 236. Данные с выходов 237 и 238 блока 226 поступают соответственно на входы операндов 239 и 240 сдвоенного блока сложения одинарной точности, а также соответственно на входы операндов 242 и 243 сдвоенного блока вычитания одинарной точности 244. Данные с выходов 245 и 246 блока 226 поступают на входы операндов 247 и 248 блока сложения двойной точности 249 соответственно. С выхода 250 блока 226 данные поступают на вход 251 регистрового файла 252, с выхода 253 которого данные приходят на вход 254 блока 226. На вход 255 блока 226 поступает набор управляющих сигналов с выхода 256 декодера инструкций процессора 257. На входы 258, 259 и 260 блока 257 поступают инструкции процессора с входов 28, 33 и 36 блока 29. Наборы сигналов управления поступают на вход 261 блока 231 с выхода 262 блока 257 и на вход 263 блока 237 с выхода 264 блока 257. С выхода 265 блока 257 управляющие сигналы поступают на вход 266 схемы входного интерфейса 267, а с выхода 268 блока 257 - на вход 269 сдвоенного блока умножения одинарной точности 270. На вход 271 блока 270 с выхода 53 блока 54 поступают данные от внешних устройств. С выходов 272 и 273 операнды поступают на входы 274 и 275 блока 270 соответственно. Операнды с выходов 276 и 277 блока 267 соответственно поступают на входы 278 и 279 сдвоенного блока сложения одинарной точности 280, а также на входы 281 и 282 сдвоенного блока вычитания одинарной точности. С выхода 284 блока 267 данные поступают на вход 285 регистрового файла 286, с выхода 287 которого данные приходят на вход 288 блока 267. С выхода 289 блока 231 двойной результат умножения одинарной точности подается на вход 290 блока 241, вход 291 блока 244 и на вход 292 схемы выходного интерфейса 293. С выхода 294 блока 236 результат умножения двойной точности подается на вход 295 блока 249 и на вход 296 блока 293. С выхода 297 блока 270 двойной результат умножения одинарной точности подается на вход 298 блока 280, на вход 299 блока 283 и на вход 300 схемы входного интерфейса 301. Управляющие сигналы для блока 241 поступают на его вход 302 с выхода 303 блока 257. Управляющие сигналы для блока 244 поступают на его вход 304 с выхода 305 блока 257. Управляющие сигналы для блока 249 поступают на его вход 306 с выхода 307 блока 257. С выхода 308 блока 257 управляющие сигналы подаются на вход 309 блока 283, а с выхода 310 блока 257 - на вход 311 блока 280. С выхода 312 блока 241 двойной результат сложения одинарной точности поступает на вход 313 блока 293. С выхода 314 блока 244 двойной результат вычитания одинарной точности поступает на вход 315 блока 293. С выхода 316 блока 249 результат сложения двойной точности поступает на вход 317 блока 293. С выхода 318 блока 280 двойной результат сложения одинарной точности поступает на вход 319 блока 301. С выхода 320 блока 283 двойной результат вычитания одинарной точности поступает на вход 321 блока 301. Сигналы управления поступают на вход 322 блока 293 с выхода 323 блока 257. С выхода 324 блока 257 сигналы управления поступают на вход 325 блока 301. Данные с выходов 326, 325 и 328 блока 293 подаются на входы внешних блоков соответственно через выходы 55, 43 и 61 блока 29. С выхода 329 блока 293 данные поступают на вход 330 блока 252. С выхода 331 блока 301 данные поступают на входы внешних блоков через выход 62 блока 29. С выхода 332 данные поступают на вход 333 блока 286.The block of real arithmetic 29 consists of the blocks described below. Data from external devices is fed to inputs 223, 224 and 225 of the input interface circuit 226 from inputs 42, 54 and 59 of block 29, respectively. Data from the outputs 227 and 228 of block 226 is fed to the inputs of the operands 229 and 230 of the double unit of multiplication of single precision 231. Data from outputs 232 and 233 are respectively supplied to the inputs of the operands 234 and 235 of the unit of multiplication of double precision 236. Data from the outputs 237 and 238 of block 226 arrive respectively at the inputs of the operands 239 and 240 of the double unit of addition of single precision, as well as respectively the inputs of the operands 242 and 243 of the dual unit of subtraction of single precision 244. Data from the outputs 245 and 246 of unit 226 are received at the inputs of the operands 247 and 248 of the unit of addition double accuracy 249 respectively. From the output 250 of block 226, the data goes to the input 251 of the register file 252, from the output 253 of which the data goes to the input 254 of the block 226. To the input 255 of the block 226, a set of control signals from the output 256 of the decoder of the processor instructions 257. The inputs 258, 259 and 260 block 257 receives processor instructions from inputs 28, 33 and 36 of block 29. The sets of control signals are input to 261 of block 231 from output 262 of block 257 and to input 263 of block 237 from output 264 of block 257. From output 265 of block 257, control signals are sent to input 266 of the input interface circuit 267, and from output 268 of block 257 - to input 269 s double unit multiplication single precision 270. At the input 271 of block 270 from the output 53 of block 54 receives data from external devices. From the outputs 272 and 273, the operands arrive at the inputs 274 and 275 of the block 270, respectively. The operands from the outputs 276 and 277 of the block 267, respectively, are input to the inputs 278 and 279 of the double unit of addition of single precision 280, as well as to the inputs 281 and 282 of the double unit of subtraction of single precision. From the output 284 of the block 267, the data go to the input 285 of the register file 286, the output 287 of which the data goes to the input 288 of the block 267. From the output 289 of the block 231, the double result of single precision multiplication is fed to the input 290 of the block 241, the input 291 of the block 244 and to the input 292 of the output interface circuit 293. From output 294 of block 236, the result of double precision multiplication is fed to input 295 of block 249 and to input 296 of block 293. From output 297 of block 270, the double result of multiplying single precision is fed to input 298 of block 280, to input 299 of block 283 and input 300 of the input interface circuit 301. Driving These signals for block 241 are received at its input 302 from the output 303 of block 257. The control signals for block 244 are fed to its input 304 from the output 305 of block 257. The control signals for block 249 are received at its input 306 from the output 307 of block 257. From the output 308 of block 257, control signals are fed to input 309 of block 283, and from output 310 of block 257 to input 311 of block 280. From output 312 of block 241, the double result of addition of single precision goes to input 313 of block 293. From output 314 of block 244 is a double subtraction result single accuracy is fed to input 315 of block 293. From output 316 of block 249, the result The double precision addition signal is input to the input 317 of the block 293. From the output 318 of the block 280, the double result of the single precision addition is sent to the input 319 of the block 301. From the output 320 of the block 283, the double result of subtracting the single precision is sent to the input 321 of the block 301. The control signals are input 322 of block 293 from the output 323 of block 257. From the output 324 of block 257, control signals are fed to the input 325 of block 301. Data from the outputs 326, 325 and 328 of block 293 are fed to the inputs of the external blocks, respectively, through the outputs 55, 43 and 61 of block 29. C output 329 of block 293, data is input 330 b eye 252. The output unit 331 receives the data 301 to the inputs of the external units via the unit 29. The output 62 from the output data 332 are input to block 333 286.

Блоки 226, 267, 293 и 301 состоят из стандартных 64-разрядных мультиплексоров. Блоки 231 и 270 состоят из двух стандартных 32-разрядных устройств умножения вещественных чисел одинарной точности. Блок 236 является стандартным 64-разрядным устройством умножения вещественных чисел двойной точности. Каждый из блоков 241, 244, 280 и 283 состоит из двух стандартных 32-разрядных устройств суммирования вещественных чисел одинарной точности. Блок 249 является стандартным 64-разрядным устройством суммирования вещественных чисел двойной точности. Архитектура блоков 231, 236, 241, 244, 249, 270, 280, 283 отвечает требованиям стандарта IEEE-754. Блок 257 является стандартной комбинационной схемой декодирования инструкций процессора. Регистровые файлы 252 и 286 выполнены на основе стандартной многопортовой памяти.Blocks 226, 267, 293, and 301 are comprised of standard 64-bit multiplexers. Blocks 231 and 270 consist of two standard 32-bit single-precision real-number multipliers. Block 236 is a standard 64-bit double precision real multiplier. Each of blocks 241, 244, 280, and 283 consists of two standard 32-bit single-precision real-valued summation devices. Block 249 is a standard 64-bit double precision real-valued summation device. The architecture of blocks 231, 236, 241, 244, 249, 270, 280, 283 meets the requirements of the IEEE-754 standard. Block 257 is a standard processor instruction decoding combinational circuit. Register files 252 and 286 are based on standard multi-port memory.

Буфер инструкций 1 контролирует запрос инструкций, обеспечивает их временное хранение во внутренних буферах, выставляет команды на выполнение и обрабатывает команды переходов. Буфер инструкций 1 выставляет запрос с адресом блоку управления памятью 4 по линиям связи (выход 2 - вход 3). Блок управления памятью 4 является связующим звеном между блоками 1, 13, 24 и 47, получив запрос от блока 1, он проверяет наличие инструкций в собственной кэш-памяти инструкций первого уровня, при отсутствии обращается в кэш-память второго уровня 13, а при отсутствии их и там - в системный контроллер 47. Инструкции из системного контроллера 47 по линии связи (выход 50 - вход 51 и 52) поступают в кэш-память второго уровня 13 и блок управления памятью 4, откуда затем в буфер инструкций 1. Буфер инструкций 1, проанализировав полученные инструкции на возможность одновременного выполнения, выставляет их по одной, парами или четверками в целочисленное АЛУ 24 по линиям связи (выход 22 - вход 23), в целочисленное АЛУ 24, блок управления памятью 4 и блок вещественной арифметики 29 по линиям связи (выход 25 - входы 26, 27 и 28), (выходы 30 - вход 31, 32 и 33), в целочисленное АЛУ 24 и блок вещественной арифметики 29 по линиям связи и (выход 34 - входы 35 и 36). Целочисленное АЛУ выполняет одновременно либо две целочисленные инструкции, либо целочисленную инструкцию и вычисляет адрес для целочисленной или вещественной загрузки/сохранения, одновременно с этим вычисляется адрес для 128-разрядной загрузки/сохранения команд обработки сигналов. Вычисленные адреса по линиям (выход 40 - вход 39) поступают в блок 4. Служебная информация или данные при выполнении команды передачи данных передаются по линиям (выход 41 - вход 42) в блок 29. Блок вещественной арифметики 29, предназначенный для выполнения арифметических операций над числами с плавающей запятой, содержит выделенные блоки одинарной точности, дополненные командами обработки сигналов. Блок вещественной арифметики 29 выполняет до двух инструкций - арифметическую и загрузки/сохранения - за такт, получая их по линиям: (выход 34 - вход 36) арифметическую инструкцию, (выход 25 - вход 28) инструкцию вещественную загрузки/сохранения и (выход 30 - вход 33) инструкцию 128-разрядной загрузки/сохранения команд обработки сигналов. Блок вещественной арифметики 29 связан 64-разрядными шинами данных, используемыми для обычных загрузки/сохранения, с блоком управления памятью 4, линии связи (выход 53 - вход 54) используются для передачи данных в блок управления памятью 4, а по линиям (выход 55 - вход 56) данные поступают в блок вещественной арифметики 29. Четыре 128-разрядные шины данных (выход 57 - вход 59), (выход 58 - вход 60), (выход 61 - вход 63) и (выход 62 - вход 64) связывают блок вещественной арифметики 29 с кэш-памятью второго уровня 13. Кэш-память второго уровня 13 используется как кэш-память в обычном режиме или как внутренняя память данных в режиме обработки сигналов. Кэш-память второго уровня 13 разделена на 16 отдельных банков памяти, объединенных в четыре группы памятей, которые могут работать независимо. По линиям связи (выход 7 - вход 10), (выход 8 - вход 11) и (выход 9 - вход 12) в кэш-память второго уровня 13 поступают адреса и запросы из блока управления памятью 4 на данные, инструкции и отображенную память. По линии связи (выход 14 - вход 15) поступают данные для сохранения. По линиям связи (выход 16 - вход 19), (выход 17 - вход 20) и (выход 18 - вход 21) в блок управления памятью 4 из кэш-памяти второго уровня 13 поступают данные. Блок управления памятью 4 связан линиями (выход 48 - вход 49) с системным контроллером 47, по которым может выполняться контроль когерентности подсистемы памяти. Данные из блока управления памятью 4 в системный контроллер 47 передаются по линиям (выход 45 - вход 46), а данные из системного контроллера 47 поступают одновременно в блок управления памятью 4 и кэш-память второго уровня (выход 50 - входы 51, 52). Кэш-память второго уровня связана дополнительными шинами, по которым осуществляется прямой доступ к памяти без загрузки процессора, с системным контроллером 47 по линиям (выход 65 - вход 66), (выход 67 - вход 68).The instruction buffer 1 controls the request for instructions, provides for their temporary storage in internal buffers, sets the execution commands and processes the jump instructions. The instruction buffer 1 issues a request with an address to the memory control unit 4 via communication lines (output 2 - input 3). The memory control unit 4 is the link between blocks 1, 13, 24 and 47, having received a request from block 1, it checks for the presence of instructions in its own cache of instructions of the first level, in the absence of turns to the cache of the second level 13, and in the absence they are there - to the system controller 47. Instructions from the system controller 47 via the communication line (output 50 - input 51 and 52) enter the second level cache 13 and memory control unit 4, from where they are then sent to the instruction buffer 1. Instructions buffer 1 Having analyzed the received instructions for the possibility of simultaneous execution, exposes them one by one, in pairs or fours, to the integer ALU 24 along the communication lines (output 22 - input 23), to the integer ALU 24, the memory control unit 4 and the real arithmetic unit 29 along the communication lines (output 25 - inputs 26, 27 and 28), (outputs 30 - input 31, 32 and 33), to the integer ALU 24 and the block of real arithmetic 29 along the communication lines and (output 34 - inputs 35 and 36). An integer ALU executes either two integer instructions or an integer instruction at the same time and calculates the address for integer or material load / save, at the same time it computes the address for 128-bit load / save signal processing instructions. The calculated addresses on the lines (output 40 - input 39) are sent to block 4. Service information or data when executing a data transfer command is transmitted along the lines (output 41 - input 42) to block 29. The block of real arithmetic 29, designed to perform arithmetic operations on floating-point numbers, contains selected single-precision blocks, supplemented by signal processing commands. The block of arithmetic arithmetic 29 executes up to two instructions - arithmetic and load / save - per cycle, receiving them along the lines: (output 34 - input 36) arithmetic instruction, (output 25 - input 28) the material load / save instruction and (output 30 - input 33) instruction of 128-bit download / save signal processing commands. The block of material arithmetic 29 is connected by 64-bit data buses used for conventional loading / saving, with the memory control unit 4, communication lines (output 53 - input 54) are used to transfer data to the memory control unit 4, and along the lines (output 55 - input 56) the data enters the block of real arithmetic 29. Four 128-bit data buses (output 57 - input 59), (output 58 - input 60), (output 61 - input 63) and (output 62 - input 64) connect the block real arithmetic 29 with a cache of the second level 13. The cache of the second level 13 is used as a cache memory in in batch mode or as internal data memory in signal processing mode. The cache of the second level 13 is divided into 16 separate memory banks, combined into four groups of memories that can work independently. On the communication lines (output 7 - input 10), (output 8 - input 11) and (output 9 - input 12), addresses and requests from the memory control unit 4 for data, instructions and mapped memory are received in the cache of the second level 13. The communication line (output 14 - input 15) receives data for storage. On the communication lines (output 16 - input 19), (output 17 - input 20) and (output 18 - input 21), data is transferred to the memory control unit 4 from the cache of the second level 13. The memory control unit 4 is connected by lines (output 48 - input 49) with the system controller 47, through which the coherence of the memory subsystem can be controlled. Data from the memory control unit 4 to the system controller 47 is transmitted through the lines (output 45 - input 46), and data from the system controller 47 is transmitted simultaneously to the memory control unit 4 and the second-level cache memory (output 50 - inputs 51, 52). The cache of the second level is connected by additional buses, which provide direct access to the memory without loading the processor, with the system controller 47 along the lines (output 65 - input 66), (output 67 - input 68).

Наличие байтовых стробов записи во всех кэш-памятях и механизма обратной записи в кэш-памяти второго уровня позволяет отказаться от сбора данных при невыровненных операциях загрузок/сохранений без потери производительности. При некэшируемых операциях внутренняя шина не поддерживает невыровненные операции, но наличие встроенного контроллера памяти снижает потери сбора данных.The presence of byte write strobes in all cache memories and a writeback mechanism in the second level cache allows you to refuse to collect data during unbalanced load / save operations without loss of performance. For non-cached operations, the internal bus does not support unbalanced operations, but the presence of an integrated memory controller reduces data loss.

Буфер инструкций 1 выставляет запрос на выход 2 с выхода 111 мультиплексора выбора адреса 99. Мультиплексор 99 управляется блоком предсказания перехода 72 (сигналом выбора адреса с выхода 97 на вход 98): выбирается или адрес следующего по порядку запроса с линии 106-112, хранящегося в счетчике команд 83, или целевой адрес перехода с линии 114-113, хранящийся в счетчике перехода 104. Значение счетчика перехода 104 записывается из блока предсказания ветвления 72 по линии 102-103. Для расчета целевого адреса перехода в качестве базового адреса берется адрес следующего запроса (значение счетчика команд 83, получаемое по линии 106-105). Решения по предсказанию принимаются на основе информации, получаемой от блока управления буферами 69 по линии 73-74 и от блока выборки/декодирования команд 80 по линии 101-100. Сам блок предсказания перехода 72, помимо управления мультиплексором выбора адреса 99, по линии 71-70 выдает информацию о выставлении запроса по предсказанному адресу блоку управления буферами 69.The instruction buffer 1 issues a request for output 2 from the output 111 of the address selection multiplexer 99. The multiplexer 99 is controlled by the transition prediction unit 72 (the address selection signal from output 97 to input 98): either the address of the next order request from line 106-112, stored in a command counter 83, or a transition destination address from line 114-113 stored in the transition counter 104. The value of the transition counter 104 is recorded from the branch prediction block 72 on line 102-103. To calculate the destination address of the transition, the address of the next request is taken as the base address (the value of the command counter 83, received on line 106-105). Prediction decisions are made based on information received from the buffer control unit 69 on line 73-74 and from the sample / decode unit 80 on line 101-100. Transition prediction block 72 itself, in addition to controlling the address selection multiplexer 99, sends information on the request to the predicted address to the buffer control unit 69 along the line 71-70.

Запрошенные инструкции выставляются кэш-памятью инструкций на вход 5 буфера инструкций 11. Далее, по линии 88 полученные инструкции записываются в буфер перехода 87, в котором инструкции хранятся до принятия решения о переписывании их в буфер выполнения 94. Основным буфером для работы является буфер выполнения 94, инструкции в который записываются через мультиплексор 77 по линии 92-93. Мультиплексор 77 управляется сигналом управления 75-76 от блока управления буферами 69 и выбирает для записи в буфер выполнения 94 или полученные инструкции с линии 5-91, или инструкции, предварительно записанные в буфер перехода 87, по линии 89-90.The requested instructions are set by the instruction cache for input 5 of the instruction buffer 11. Then, along line 88, the instructions received are written to the transition buffer 87, in which the instructions are stored until the decision is made to rewrite them to the execution buffer 94. The main buffer for operation is the execution buffer 94 , instructions to which are written through the multiplexer 77 along the line 92-93. The multiplexer 77 is controlled by a control signal 75-76 from the buffer control unit 69 and selects for writing to the execution buffer 94 either the received instructions from line 5-91, or the instructions previously written to the transition buffer 87, along line 89-90.

Из буфера выполнения 94 по линии 95-96 инструкции выбираются (вычитываются) парами в блок выборки/декодирования команд 80. Количество инструкций, необходимых для чтения (читать 1 или 2 команды), определяется управляющими сигналами 78-79. В блоке выборки/декодирования команд 80 происходит предварительное декодирование типов инструкций, и на основе этого по линии 101-100 в блок предсказания перехода 72 выставляется информация о декодировании инструкции перехода, на основании которой рассчитывается целевой адрес перехода, помещаемый по линии 102-103 в счетчик перехода 104.From the execution buffer 94, on line 95-96, instructions are selected (subtracted) by pairs in the block 80 for sample selection / decoding. The number of instructions needed to read (read 1 or 2 commands) is determined by control signals 78-79. In the block of fetching / decoding instructions 80, preliminary decoding of instruction types takes place, and based on this, information on decoding the jump instruction 72 is set on line 101-100 to jump prediction block, based on which the target jump address is calculated, placed on line 102-103 in the counter transition 104.

Из блока выборки/декодирования команд 80 инструкции передаются: по линии 107-108 в блок анализа зависимостей 86, который определяет возможность их выполнения в текущий момент времени; по линии 107-109 в блок выбора потока выполнения 110. Блок анализа зависимостей 86 формирует информацию о количестве инструкций, которые могут быть выполнены. Эта информация по линии 115-116 передается в блок управления буферами 69, который, основываясь на этой информации, по линии 81-82 управляет увеличением счетчика счетчиком команд 83 для запроса инструкций. Информация о зависимости выбранных в данный момент инструкций из блока анализа зависимостей 86 по линии 115-116 передается в блок выбора потока выполнения 110, который распределяет две полученный по линии 107-109 из блока выборки/декодирования команд 80 инструкции по 4-м потокам выполнения. В зависимости от типа инструкции, определяемого при ее декодировании в блоке выборки/декодирования команд 80, инструкция направляется на один из выходов блока выбора потока выполнения 110. На выход 117 (на линии 117-22) выставляются инструкции целочисленной арифметики, которые должны выполняться в блоке целочисленного АЛУ 24 (передаются по линии 22-23); на выход 118 (на линию 118-25) выставляются инструкции обмена с памятью, которые должны выполняться в блоке целочисленного АЛУ 24 (передаются по линии 25-26), в блоке управления памятью 4 (передаются по линии 25-27) и в блоке вещественной арифметики 29 (передаются по линии 25-28); на выход 119 (на линию 119-30) выставляются инструкции двойного блока вещественной арифметики 29, которые должны выполняться в блоке целочисленного АЛУ 24 (передаются по линии 30-31), в блоке управления памятью 4 (передаются по линии 30-32) и в блоке вещественной арифметики 29 (передаются по линии 30-33); на выход 120 (на линию 120-34) выставляются инструкции вещественной арифметики или обмена данными между целочисленным АЛУ 24 и блоком вещественной арифметики 29, которые выполняться в блоке вещественной арифметики 29 (передаются по линии 34-36) и в целочисленном АЛУ 24 (передаются по линии 34-35).From the sample / decode block of instructions 80, instructions are transmitted: on line 107-108 to the block of dependency analysis 86, which determines the possibility of their execution at the current time; along line 107-109 to the execution flow selection block 110. The dependency analysis block 86 generates information about the number of instructions that can be executed. This information is transmitted via line 115-116 to the buffer control unit 69, which, based on this information, controls the increase of the counter by the instruction counter 83 on the line 81-82 to request instructions. The information about the dependence of the currently selected instructions from the dependency analysis unit 86 on line 115-116 is transmitted to the execution thread selection block 110, which distributes the two instructions received on line 107-109 from the sample / decode block 80 of the instructions for the 4th execution threads. Depending on the type of instruction that is determined when it is decoded in the sample / decode block of instructions 80, the instruction is sent to one of the outputs of the block for selecting the execution thread 110. The output 117 (on line 117-22) contains integer arithmetic instructions that must be executed in the block integer ALU 24 (transmitted on the line 22-23); output 118 (on line 118-25) sets memory exchange instructions that must be executed in the integer ALU 24 block (transmitted on line 25-26), in memory control unit 4 (transmitted on line 25-27) and in the real block arithmetic 29 (transmitted along the line 25-28); the output 119 (on line 119-30) sets the instructions of the double block of real arithmetic 29, which must be executed in the integer block ALU 24 (transmitted on the line 30-31), in the memory control unit 4 (transmitted on the line 30-32) and block real arithmetic 29 (transmitted along the line 30-33); output 120 (on line 120-34) is issued with instructions for material arithmetic or data exchange between integer ALU 24 and block of material arithmetic 29, which are executed in block of material arithmetic 29 (transmitted along line 34-36) and in integer ALU 24 (transmitted via lines 34-35).

Данные на входы блока кэш-памяти второго уровня 13 поступают от следующих блоков: от системного контроллера 47 данные для заполнения строки кэш-памяти поступают на вход 52; от системного контроллера 47 данные в режиме прямого доступа к памяти поступают на вход 68; от блока управления памятью 4 при выполнении команды сохранения данные поступают на вход 15; от блока вещественной арифметики 29 при выполнении команды сохранения в векторном режиме данные поступают на вход 63; от блока вещественной арифметики 29 при выполнении команды сохранения в режиме цифровой обработки сигналов данные поступают на вход 64.The data at the inputs of the cache block of the second level 13 come from the following blocks: from the system controller 47, data to fill the cache line is received at input 52; from the system controller 47, data in direct memory access mode is input 68; from the memory control unit 4, when the save command is executed, the data is fed to input 15; from the block of real arithmetic 29, when the save command is executed in vector mode, the data are input 63; from the block of real arithmetic 29 when the save command is executed in the digital signal processing mode, the data is fed to input 64.

Адрес на входы блока кэш-памяти второго уровня 13 поступает от следующих блоков: адрес команды загрузки/сохранения поступает из блока управления памятью 4 на вход 10; адрес команды, запрошенной буфером инструкций 1, поступает из блока управления памятью 4 на вход 11; адрес команды загрузки/сохранения режима цифровой обработки сигналов поступает из блока управления памятью 4 на вход 12.The address of the inputs of the cache block of the second level 13 comes from the following blocks: the address of the load / save command comes from the memory control unit 4 to input 10; the address of the command requested by the instruction buffer 1 comes from the memory control unit 4 to input 11; the address of the command to load / save the digital signal processing mode comes from the memory control unit 4 to input 12.

Данные с выходов блока кэш-памяти второго уровня 13 поступают в следующие блоки: в системный контроллер 47 в режиме прямого доступа к памяти данные поступают с выхода 65; в блок управления памятью 4 при выполнении команды загрузки данные поступают с выхода 18; в блок управления памятью 4 для заполнения строки кэш-памяти инструкций первого уровня данные поступают с выхода 16; в блок управления памятью 4 для заполнения строки кэш-памяти данных первого уровня данные поступают с выхода 17; в блок вещественной арифметики 29 при выполнении команды загрузки в векторном режиме данные поступают с выхода 57; в блок вещественной арифметики 29 при выполнении команды загрузки в режиме цифровой обработки сигналов данные поступают с выхода 58.The data from the outputs of the cache block of the second level 13 are received in the following blocks: in the system controller 47 in the direct access to memory mode, the data comes from the output 65; in the memory control unit 4, when the download command is executed, the data comes from output 18; in the memory control unit 4 to fill in the cache line of instructions of the first level, the data comes from output 16; in the memory control unit 4 to fill the cache line of the data of the first level, the data comes from output 17; in the block of real arithmetic 29 when the load command is executed in vector mode, the data comes from output 57; in the block of material arithmetic 29 when the download command is executed in the digital signal processing mode, the data comes from the output 58.

При запросе от блока управления памятью 4 на заполнение строки кэш-памяти данных первого уровня на вход 10 поступает физический адрес, блок управления 136 анализирует физический адрес, определяет, находится ли запрашиваемая информация в кэш-памяти второго уровня, и при наличии информации в кэш-памяти передает управляющие сигналы на блоки групп памятей 125, 126, 127 и 128 и на выходной буфер 132. Затребованная информация передается выходным буфером 132 на выход 17. При отсутствии в кэш-памяти второго уровня затребованной информации соответствующая строка подгружается в один из блоков 125, 126, 127 или 128 из системного контроллера 47 через вход 52 и один из входных мультиплексоров 121, 122, 123 или 124.Upon request from the memory control unit 4 to fill in the cache line of the first level data, input 10 receives a physical address, the control unit 136 analyzes the physical address, determines whether the requested information is in the second level cache, and if there is information in the cache the memory transmits control signals to blocks of memory groups 125, 126, 127 and 128 and to the output buffer 132. The requested information is transmitted by the output buffer 132 to the output 17. In the absence of the second level of the requested information in the cache, the corresponding It is loaded into one of the blocks 125, 126, 127 or 128 from the system controller 47 through the input 52 and one of the input multiplexers 121, 122, 123 or 124.

При запросе от блока управления памятью 4 на заполнение строки кэш-памяти команд первого уровня на вход 11 поступает физический адрес, блок управления 136 анализирует физический адрес, определяет, находится ли запрашиваемая информация в кэш-памяти второго уровня, и при наличии информации в кэш-памяти передает управляющие сигналы на блоки групп памятей 125, 126, 127 и 128 и на выходной буфер 131. Затребованная информация передается выходным буфером 131 на выход 16. При отсутствии в кэш-памяти второго уровня затребованной информации соответствующая строка подгружается в один из блоков 125, 126, 127 или 128 из системного контроллера 47 через вход 52 и один из входных мультиплексоров 121, 122, 123 или 124.Upon request from the memory control unit 4 to fill out the cache line of the first level commands, a physical address is input 11, the control unit 136 analyzes the physical address, determines whether the requested information is in the second level cache, and if there is information in the cache the memory transmits control signals to blocks of memory groups 125, 126, 127 and 128 and to the output buffer 131. The requested information is transmitted by the output buffer 131 to output 16. In the absence of the second level of requested information in the cache, the corresponding It is loaded into one of the blocks 125, 126, 127 or 128 from the system controller 47 through the input 52 and one of the input multiplexers 121, 122, 123 or 124.

При выполнении команды загрузки в режиме прямого доступа к памяти блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 129 на основе информации, хранящейся в регистрах блока 135. Затребованная информация передается выходным буфером 129 на выход 65.When the download command is executed in direct memory access mode, the control unit 136 generates control signals for the blocks of memory groups 125, 126, 127 and 128 and the output buffer 129 based on the information stored in the registers of the block 135. The requested information is transmitted by the output buffer 129 to the output 65 .

При выполнении команды загрузки блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 130 на основе адреса, поступающего на вход 10. Затребованная информация передается выходным буфером 130 на выход 18.When the download command is executed, the control unit 136 generates control signals for the blocks of memory groups 125, 126, 127 and 128 and the output buffer 130 based on the address received at input 10. The requested information is transmitted by the output buffer 130 to output 18.

При выполнении команды загрузки в векторном режиме блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 133 на основе информации, хранящейся в регистрах блока 135. Затребованная информация передается выходным буфером 133 на выход 57.When the download command is executed in vector mode, the control unit 136 generates control signals for the blocks of memory groups 125, 126, 127 and 128 and the output buffer 133 based on the information stored in the registers of the block 135. The requested information is transmitted by the output buffer 133 to the output 57.

При выполнении команды загрузки в режиме цифровой обработки сигналов блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 134 на основе адреса, поступающего на вход 12. Затребованная информация передается выходным буфером 134 на выход 58.When the download command is executed in the digital signal processing mode, the control unit 136 generates control signals for the blocks of memory groups 125, 126, 127 and 128 and the output buffer 134 based on the address received at the input 12. The requested information is transmitted by the output buffer 134 to the output 58.

При выполнении команды сохранения в режиме прямого доступа к памяти блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе информации, хранящейся в регистрах блока 135. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 10.When the save command is executed in the direct memory access mode, the control unit 136 generates control signals for blocks of memory groups 125, 126, 127 and 128 and input multiplexers 121, 122, 123 and 124 based on information stored in the registers of block 135. Information intended to write to the cache memory of the second level, it goes to input 10.

При выполнении команды сохранения блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе адреса, поступающего на вход 29. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 15.When the save command is executed, the control unit 136 generates control signals for blocks of memory groups 125, 126, 127 and 128 and input multiplexers 121, 122, 123 and 124 based on the address received at input 29. Information intended for writing to the cache memory of the second level, goes to input 15.

При выполнении команды сохранения в векторном режиме блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе информации, хранящейся в регистрах блока 135. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 63.When the save command is executed in vector mode, the control unit 136 generates control signals for blocks of memory groups 125, 126, 127 and 128 and input multiplexers 121, 122, 123 and 124 based on the information stored in the registers of block 135. Information intended for recording in L2 cache goes to input 63.

При выполнении команды сохранения в режиме цифровой обработки сигналов блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе адреса, поступающего на вход 33. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 64.When the save command is executed in the digital signal processing mode, the control unit 136 generates control signals for blocks of memory groups 125, 126, 127 and 128 and input multiplexers 121, 122, 123 and 124 based on the address received at input 33. Information for recording into the cache of the second level, it goes to input 64.

Инструкции процессора поступают на входы 28, 33 и 36 блока вещественной арифметики 29. Данные при загрузке в блок вещественной арифметики 29 из внешних блоков поступают на входы 42, 54, 59 и 60 блока вещественной арифметики 29. Выгрузка данных из блока вещественной арифметики 29 во внешние блоки осуществляется с выходов 55,43, 61 и 62.The processor instructions go to the inputs 28, 33 and 36 of the block of real arithmetic 29. Data when loading into the block of real arithmetic 29 from external blocks goes to the inputs 42, 54, 59 and 60 of the block of real arithmetic 29. Unloading data from the block of real arithmetic 29 blocks are carried out with outputs 55,43, 61 and 62.

Входы данных 42, 54 и 59 блока вещественной арифметики 29 подключены ко входам 223, 224, 225 схемы входного интерфейса 226. На вход 254 этого же блока по линии 253-254 поступают данные из регистрового файла 293. Схема входного интерфейса 226 осуществляет коммутацию входных данных и подготовку операндов для арифметических блоков. Набор управляющих сигналов для схемы входного интерфейса 226 поступает с декодера инструкций процессора 257 по линии 256-255. Выход 250 схемы входного интерфейса 226 соединен с входом 251 регистрового файла 252.The data inputs 42, 54 and 59 of the block of arithmetic 29 are connected to the inputs 223, 224, 225 of the input interface circuit 226. The input 254 of the same block receives data from the register file 293 through the line 253-254. The input interface circuit 226 commits the input data and preparing operands for arithmetic blocks. The set of control signals for the input interface circuit 226 is received from the processor instruction decoder 257 along line 256-255. The output 250 of the input interface circuit 226 is connected to the input 251 of the register file 252.

С входов 28, 33, 36 блока вещественной арифметики 29 инструкции процессора поступают на входы 258, 259, 260 декодера инструкций процессора 257. В этом блоке осуществляется декодирование инструкций процессора и вырабатываются наборы управляющих сигналов.From the inputs 28, 33, 36 of the block of real arithmetic 29, the processor instructions go to the inputs 258, 259, 260 of the decoder of the processor instructions 257. In this block, the processor instructions are decoded and sets of control signals are generated.

Блоки 231 и 270 предназначены для одновременного выполнения четырех операций умножения вещественных чисел одинарной точности. Блоки 241 и 280 позволяют одновременно выполнять четыре операции сложения, а блоки 244 и 283 - четыре операции вычитания вещественных чисел одинарной точности. Блоки 231, 241, 244, 270, 280 и 283 имеют полностью конвейеризированную архитектуру, что позволяет начинать выполнение новой инструкции на каждом такте. При выполнении инструкций умножения с накоплением и вычитанием операнды для блока 231 поступают из блока 226 по линиям 227-229 и 228-230. Результаты умножения из блока 231 подаются на блок 241 по линии 289-290 для сложения с третьим операндом и на блок 244 по линии 289-291 для вычитания третьего операнда. Третий операнд поступает на блоки 241 и 244 из блока 226 по линиям 238-240 и 238-243 соответственно. В векторном режиме при выполнении той же инструкции происходит вычисление двух произведений вещественных чисел одинарной точности в блоке 270. Операнды для блока 270 поступают из блока 267 по линиям 272-274 и 273-275. Результаты умножения из блока 270 подаются на блок 280 по линии 297-298 для сложения с третьим операндом и на блок 283 по линии 297-299 для вычитания третьего операнда. Третий операнд поступает на блоки 280 и 283 из блока 267 по линиям 277-279 и 277-282 соответственно.Blocks 231 and 270 are designed to simultaneously perform four operations of multiplying real numbers of single precision. Blocks 241 and 280 allow you to simultaneously perform four operations of addition, and blocks 244 and 283 - four operations of subtracting real numbers of single precision. Blocks 231, 241, 244, 270, 280, and 283 have a fully pipelined architecture, which allows you to start executing a new instruction at each beat. When executing instructions of multiplication with accumulation and subtraction, the operands for block 231 come from block 226 along lines 227-229 and 228-230. The multiplication results from block 231 are supplied to block 241 along line 289-290 for addition with the third operand and to block 244 along line 289-291 to subtract the third operand. The third operand arrives at blocks 241 and 244 from block 226 along lines 238-240 and 238-243, respectively. In vector mode, when the same instruction is executed, two products of single precision real numbers are calculated in block 270. The operands for block 270 come from block 267 along lines 272-274 and 273-275. The multiplication results from block 270 are supplied to block 280 along line 297-298 for addition to the third operand and to block 283 along line 297-299 to subtract the third operand. The third operand arrives at blocks 280 and 283 from block 267 along lines 277-279 and 277-282, respectively.

Данные преимущества позволяют универсальному микропроцессору выполнять до 12 команд вещественной арифметики с одинарной точностью за такт с одновременными обработкой управляющей информации и обменом данными между внутренней памятью и ОЗУ.These advantages allow the universal microprocessor to execute up to 12 material arithmetic instructions with single precision per cycle with simultaneous processing of control information and data exchange between the internal memory and RAM.

Предлагаемые решения позволяют объединить в одной микросхеме высокопроизводительный универсальный процессор, специализированный вычислитель и системный контроллер, что ведет к возможности создавать дешевые высокопроизводительные системы для обработки изображения и сигналов и принятия решений на основе универсального микропроцессора.The proposed solutions allow combining a high-performance universal processor, a specialized computer and a system controller in one chip, which leads to the possibility of creating cheap high-performance systems for image and signal processing and decision making based on a universal microprocessor.

Claims (4)

1. Микропроцессор гибридный, содержащий буфер инструкций, блок управления памятью, кэш-память второго уровня, целочисленное арифметико-логическое устройство (АЛУ), блок вещественной арифметики и контроллер, отличающийся тем, что буфер инструкций выполнен с возможностью предсказания переходов для компенсации потерь при выполнении команды перехода и с возможностью выставлять на выполнение до четырех инструкций в режиме обработки сигналов с аппаратным контролем возможности одновременного выполнения инструкций в режиме динамического переупорядочивания, блок управления памятью содержит кэш-память инструкций первого уровня и кэш-память данных первого уровня, кэш-память второго уровня выполнена в виде внутренней памяти для сокращения потерь при обмене с внешней памятью, имеет восемь входов и шесть выходов и разделена на 16 отдельных банков памяти с дополнительными шинами, целочисленное АЛУ выполнено с возможностью выполнения двух целочисленных команд за такт и вычисления адреса для 128-разрядной загрузки/сохранения, блок вещественной арифметики выполнен с возможностью выполнения двух сдвоенных операций умножения, сложения и вычитания вещественных чисел одинарной точности за такт и операций умножения и сложения чисел двойной точности, контроллер выполнен в виде встроенного системного контроллера, выход буфера инструкций, на котором формируется сигнал запроса и адреса, соединен с первым входом блока управления памятью, выход блока управления памятью, на котором формируется сигнал «входные инструкции», соединен с первым входом буфера инструкций, выход буфера инструкций, на котором формируется сигнал «целочисленная инструкция», соединен с первым входом целочисленного АЛУ, выход буфера инструкций, на котором формируется сигнал «целочисленная инструкция или инструкция загрузки/сохранения», соединен со вторым входом целочисленного АЛУ, первым входом блока вещественной арифметики и пятым входом блока управления памятью, выход буфера инструкций, на котором формируется сигнал «инструкция расширенной загрузки/сохранения», соединен с третьим входом целочисленного АЛУ, вторым входом блока вещественной арифметики и шестым входом блока управления памятью, выход буфера инструкций, на котором формируется сигнал «инструкция вещественной арифметики или инструкция расширенной вещественной арифметики», соединен с четвертым входом целочисленного АЛУ и третьим входом блока вещественной арифметики, выход данных целочисленного АЛУ соединен с четвертым входом блока вещественной арифметики, выход данных которого соединен с шестым входом целочисленного АЛУ, адресный выход которого соединен с седьмым входом блока управления памятью, адресный выход которого соединен с пятым входом целочисленного АЛУ, выходы блока управления памятью, на которых формируются сигналы запросов и адресов данных, инструкций и операций сохранения, а также данные для сохранения соединены соответственно с первым, вторым, третьим и четвертым входами кэш-памяти второго уровня, выходы кэш-памяти второго уровня, на которых формируются сигналы данных загрузки кэш-памяти инструкций и данных первого уровня, а также выходные данные в режиме внутренней памяти, соединены соответственно со вторым, третьим и четвертым входами блока управления памятью, выход данных которого соединен с первым входом системного контроллера, выход которого, предназначенный для формирования сигнала контроля когерентности, соединен с восьмым входом блока управления памятью, выход системного контроллера, на котором формируется сигнал «входные данные», соединен с девятым входом блока управления памятью и пятым входом кэш-памяти второго уровня, выход которой соединен дополнительной шиной со вторым входом системного контроллера, выход которого соединен второй дополнительной шиной с восьмым входом кэш-памяти второго уровня, по которым осуществляется прямой доступ к памяти без загрузки процессора, выход блока управления памятью соединен с пятым входом блока вещественной арифметики, выход которого соединен с десятым входом блока управления памятью линиями связи, предназначенными для передачи данных, два выхода кэш-памяти второго уровня соединены с шестым и седьмым входами блока вещественной арифметики, два выхода которого соединены с шестым и седьмым входами кэш-памяти второго уровня четырьмя дополнительными 128 - разрядными шинами данных.1. A hybrid microprocessor containing an instruction buffer, a memory control unit, a second level cache, an integer arithmetic logic unit (ALU), a real arithmetic unit, and a controller, characterized in that the instruction buffer is capable of predicting transitions to compensate for losses during execution transition commands and with the ability to issue up to four instructions in the signal processing mode with hardware control for the simultaneous execution of instructions in dynamic mode reordering, the memory control unit contains the cache of instructions of the first level and the cache of data of the first level, the cache of the second level is made in the form of internal memory to reduce losses during the exchange with external memory, has eight inputs and six outputs and is divided into 16 separate memory banks with additional buses, the integer ALU is configured to execute two integer instructions per cycle and calculate the address for 128-bit load / save, the block of real arithmetic is configured to performing two double operations of multiplication, addition and subtraction of single precision real numbers per cycle and operations of multiplication and addition of double precision numbers, the controller is made as an integrated system controller, the output of the instruction buffer, on which the request and address signal is generated, is connected to the first input of the control unit memory, the output of the memory control unit, on which the signal "input instructions" is generated, is connected to the first input of the instruction buffer, the output of the instruction buffer, on which the signal " integer instruction ”, connected to the first input of the integer ALU, the output of the instruction buffer, on which the signal“ integer instruction or load / save instruction ”is generated, is connected to the second input of the integer ALU, the first input of the block of real arithmetic and the fifth input of the memory control unit, the output of the buffer instructions, which generates the signal "instruction extended loading / saving" is connected to the third input of the integer ALU, the second input of the block of real arithmetic and the sixth input of the block of control memory, the output of the instruction buffer, on which the signal “material arithmetic instruction or extended material arithmetic instruction” is generated, is connected to the fourth input of the integer ALU and the third input of the unit of arithmetic, the data output of the integer ALU is connected to the fourth input of the material arithmetic, whose data output connected to the sixth input of an integer ALU, the address output of which is connected to the seventh input of the memory control unit, the address output of which is connected to the fifth input m of integer ALU, the outputs of the memory control unit, on which signals of requests and addresses of data, instructions and save operations are generated, as well as data for storage are connected respectively to the first, second, third and fourth inputs of the second-level cache memory, the outputs of the second cache memory the level at which the data signals for loading the cache memory of instructions and data of the first level are formed, as well as the output data in the internal memory mode, are connected respectively to the second, third and fourth inputs of the memory control unit w, the data output of which is connected to the first input of the system controller, the output of which, designed to generate a coherence control signal, is connected to the eighth input of the memory control unit, the output of the system controller, on which the "input data" signal is generated, is connected to the ninth input of the memory control unit and the fifth input of the cache of the second level, the output of which is connected by an additional bus to the second input of the system controller, the output of which is connected by a second additional bus with the eighth input of the cache the second level, which provides direct access to memory without loading the processor, the output of the memory control unit is connected to the fifth input of the real arithmetic unit, the output of which is connected to the tenth input of the memory control unit by communication lines for data transmission, two cache outputs of the second level are connected to the sixth and seventh inputs of the block of real arithmetic, two outputs of which are connected to the sixth and seventh inputs of the cache of the second level with four additional 128 - bit data buses x 2. Микропроцессор по п.1, отличающийся тем, что буфер инструкций содержит буфер перехода, выполненный с одним входом и одним выходом, блок управления буферами, выполненный с двумя входами и четырьмя выходами, буфер выполнения, выполненный с одним входом и одним выходом, блок выборки/декодирования команд, выполненный с двумя входами и двумя выходами, блок предсказания перехода, выполненный с тремя входами и тремя выходами, блок анализа зависимостей, выполненный с одним входом и двумя выходами, счетчик команд и счетчик перехода, выполненные каждый с одним входом и одним выходом, блок выбора потока выполнения, выполненный с двумя входами и четырьмя выходами, и два мультиплексора, при этом вход буфера перехода соединен с первым входом буфера инструкций, а выход - с первым входом первого мультиплексора, второй вход которого соединен с первым входом буфера инструкций, первый выход блока управления буферами соединен с первым входом блока предсказания перехода, второй выход блока управления буферами - с управляющим входом первого мультиплексора, третий выход блока управления буферами - с входом счетчика команд, а четвертый выход блока управления буферами - со вторым входом блока выборки/декодирования команд, и первый вход блока управления буферами соединен с первым выходом блока предсказания перехода, а второй вход блока управления буферами - с первым выходом блока анализа зависимостей, вход буфера выполнения соединен с выходом первого мультиплексора, а выход буфера выполнения - с первым входом блока выборки/декодирования команд, выход счетчика команд соединен с первым входом второго мультиплексора и со вторым входом блока предсказания перехода, выход счетчика перехода соединен со вторым входом второго мультиплексора, вход счетчика перехода - с третьим выходом блока предсказания перехода, второй выход которого соединен с управляющим входом второго мультиплексора, первый выход блока выборки/декодирования команд соединен с третьим входом блока предсказания перехода, а второй выход блока выборки/декодирования команд соединен с первым входом блока выбора потока выполнения и с входом блока анализа зависимостей, второй выход которого соединен со вторым входом блока выбора потока выполнения, выходы которого соединены соответственно с вторым, третьим, четвертым и пятым выходами буфера инструкций, первый выход которого соединен с выходом второго мультиплексора.2. The microprocessor according to claim 1, characterized in that the instruction buffer contains a transition buffer made with one input and one output, a buffer control unit made with two inputs and four outputs, a execution buffer made with one input and one output, block fetching / decoding instructions executed with two inputs and two outputs, a transition prediction block made with three inputs and three outputs, a dependency analysis block executed with one input and two outputs, a command counter and a transition counter executed as each with one input and one output, the execution flow selection block, made with two inputs and four outputs, and two multiplexers, while the input of the transition buffer is connected to the first input of the instruction buffer, and the output is connected to the first input of the first multiplexer, the second input of which is connected with the first input of the instruction buffer, the first output of the buffer control unit is connected to the first input of the transition prediction unit, the second output of the buffer control unit is connected to the control input of the first multiplexer, the third output of the buffer control unit and - with the input of the instruction counter, and the fourth output of the buffer control unit - with the second input of the sample / decode unit, and the first input of the buffer control unit is connected to the first output of the transition prediction unit, and the second input of the buffer control unit - with the first output of the dependency analysis unit , the input of the execution buffer is connected to the output of the first multiplexer, and the output of the execution buffer is connected to the first input of the sample / decode unit, the output of the command counter is connected to the first input of the second multiplexer and to the second input m of the transition prediction block, the output of the transition counter is connected to the second input of the second multiplexer, the input of the transition counter is connected to the third output of the transition prediction block, the second output of which is connected to the control input of the second multiplexer, the first output of the sample / decode block is connected to the third input of the transition prediction block and the second output of the sample / decode block is connected to the first input of the execution flow selection block and to the input of the dependency analysis block, the second output of which is connected to the second performing th input stream selection unit which outputs are connected respectively to the second, third, fourth and fifth outputs instruction buffer, a first output of which is connected to the output of the second multiplexer. 3. Микропроцессор по п.1, отличающийся тем, что кэш-память второго уровня, содержит четыре входных мультиплексора, каждый из которых выполнен с шестью входами и одним выходом, блок управления кэш-памятью второго уровня, выполненный с пятью входами и тремя выходами, блок регистров ПДП и векторного режима, выполненный с одним входом и двумя выходами, четыре группы памятей, каждая из которых выполнена с двумя входами и одним выходом, и шесть выходных буферов, выполненных каждый с пятью входами и одним выходом, при этом, пятый, восьмой, четвертый, шестой и седьмой входы кэш-памяти второго уровня соединены, соответственно, с первыми, вторыми, третьими, четвертыми и пятыми входами входных мультиплексоров, шестые входы которых соединены с первым выходом блока управления кэш-памятью второго уровня, на котором формируются сигналы управления, выходы входных мультиплексоров, на которых формируются сигналы данных, соединены с первыми входами групп памятей, первый, второй и третий входы кэш-памяти второго уровня, на которых формируются сигналы адреса, соединены соответственно с первым, вторым и третьим входами блока управления кэш-памятью второго уровня, второй и третий выходы которого, на которых формируются сигналы управления и адреса, соединены соответственно со вторыми входами групп памятей и первыми входами выходных буферов, выходы групп памятей соединены соответственно со вторыми, третьим, четвертыми и пятыми входами выходных буферов, выходы которых соединены соответственно с выходами кэш-памяти второго уровня, соединенными с первой дополнительной шиной, с выходами кэш-памяти второго уровня, соединенными со вторым, третьим и четвертым входами блока управления памятью, с выходами кэш-памяти второго уровня, соединенными с шестым и седьмым входами блока вещественной арифметики, выходы блока регистров ПДП и векторного режима, на которых формируются сигналы данных, соединены с четвертым и пятым входами блока управления кэш-памятью второго уровня, а выход блока регистров ПДП и векторного режима соединен с четвертым входом кэш-памяти второго уровня.3. The microprocessor according to claim 1, characterized in that the cache of the second level contains four input multiplexers, each of which is made with six inputs and one output, the control unit of the cache of the second level, made with five inputs and three outputs, block registers RAP and vector mode, made with one input and two outputs, four groups of memories, each of which is made with two inputs and one output, and six output buffers made each with five inputs and one output, while the fifth, eighth fourth, w The ninth and seventh inputs of the second-level cache are connected, respectively, with the first, second, third, fourth and fifth inputs of the input multiplexers, the sixth inputs of which are connected to the first output of the second-level cache control unit, on which control signals are generated, the outputs of the input the multiplexers on which the data signals are generated are connected to the first inputs of the memory groups, the first, second and third inputs of the second level cache, on which the address signals are generated, are connected respectively to the first, second the second and third inputs of the second-level cache control unit, the second and third outputs of which, on which control signals and addresses are generated, are connected respectively to the second inputs of the memory groups and the first inputs of the output buffers, the outputs of the memory groups are connected respectively to the second, third, fourth and fifth inputs of output buffers, the outputs of which are connected respectively to the outputs of the cache memory of the second level, connected to the first additional bus, with the outputs of the cache memory of the second level, connected to the second , the third and fourth inputs of the memory control unit, with second-level cache outputs connected to the sixth and seventh inputs of the real arithmetic block, the outputs of the RAP register block and the vector mode, on which data signals are generated, are connected to the fourth and fifth inputs of the cache control unit -memory of the second level, and the output of the block of registers RAP and vector mode is connected to the fourth input of the cache of the second level. 4. Микропроцессор по п.1, отличающийся тем, что блок вещественной арифметики, содержит две несимметричные схемы входного интерфейса, первая из которых выполнена с пятью входами и девятью выходами, а вторая - с тремя входами и пятью выходами, декодер инструкций процессора, выполненный с тремя входами и двенадцатью выходами, два сдвоенных блока умножения одинарной точности, каждый из которых выполнен с тремя входами и одним выходом, блок умножения двойной точности, выполненный с тремя входами и одним выходом, два сдвоенных блока сложения одинарной точности, каждый из которых выполнен с четырьмя входами и одним выходом, два сдвоенных блока вычитания одинарной точности, каждый из которых выполнен с четырьмя входами и одним выходом, блок сложения двойной точности, выполненный с четырьмя входами и одним выходом, две несимметричные схемы выходного интерфейса, первая из которых выполнена с шестью входами и четырьмя выходами, а вторая - с четырьмя входами и двумя выходами, два регистровых файла, каждый из которых выполнен с двумя входами и одним выходом, при этом, первый, второй и третий входы первой схемы входного интерфейса соединены, соответственно, с четвертым, пятым и шестым входами блока вещественной арифметики, на которые поступают входные данные, первый и второй выходы данных первой схемы входного интерфейса соединены соответственно с первым и вторым входами первого сдвоенного блока умножения одинарной точности, третий и четвертый выходы данных первой схемы входного интерфейса соединены соответственно с первым и вторым входами блока умножения двойной точности, пятый и шестой выходы данных первой схемы входного интерфейса соединены соответственно с первым и вторым входами первого сдвоенного блока сложения одинарной точности и с первым и вторым входами первого сдвоенного блока вычитания одинарной точности, седьмой и восьмой выходы данных первой схемы входного интерфейса соединены соответственно с первым и вторым входами блока сложения двойной точности, девятый выход данных первой схемы входного интерфейса соединен с первым входом первого регистрового файла, выход данных которого соединен с четвертым входом первой схемы входного интерфейса, пятый вход которого соединен с первым выходом декодера инструкций процессора, на котором формируются управляющие сигналы, первый, второй и третий входы декодера инструкций процессора соединены соответственно с первым, вторым и третьим входами блока вещественной арифметики, второй и третий выходы сигналов управления декодера инструкций процессора соединены с третьими входами соответственно первого сдвоенного блока умножения одинарной точности и блока умножения двойной точности, четвертый выход сигналов управления декодера инструкций соединен с первым входом второй схемы входного интерфейса, пятый выход сигналов управления декодера инструкций соединен с первым входом второго сдвоенного блока умножения одинарной точности, второй вход второй схемы входного интерфейса соединен с седьмым входом блока вещественной арифметики, первый и второй выходы данных второй схемы входного интерфейса соединены соответственно со вторым и третьим входами второго сдвоенного блока умножения одинарной точности, третий и четвертый выходы данных второй схемы входного интерфейса соединены соответственно с первым и вторым входами второго сдвоенного блока сложения одинарной точности и с первым и вторым входами второго сдвоенного блока вычитания одинарной точности, пятый выход данных второй схемы входного интерфейса соединен с первым входом второго регистрового файла, выход которого соединен с третьим входом второй схемы входного интерфейса, выход первого сдвоенного блока умножения одинарной точности, формирующий сигнал двойного результата умножения одинарной точности, соединен с первым входом первой схемы выходного интерфейса и третьими входами первого сдвоенного блока сложения одинарной точности и первого сдвоенного блока вычитания одинарной точности, выход блока умножения двойной точности соединен с третьим входом блока сложения двойной точности и со вторым входом первой схемы выходного интерфейса, выход второго сдвоенного блока умножения одинарной точности соединен с первым входом второй схемы выходного интерфейса и третьими входами соответственно второго сдвоенного блока сложения одинарной точности и второго сдвоенного блока вычитания одинарной точности, четвертый, пятый и шестой выходы декодера инструкций процессора, на которых формируются управляющие сигналы, соединены с четвертыми входами соответственно первого сдвоенного блока сложения одинарной точности, первого сдвоенного блока вычитания одинарной точности и блока сложения двойной точности, седьмой и восьмой выходы декодера инструкций процессора, формирующие управляющие сигналы, соединены с четвертыми входами соответственно второго сдвоенного блока вычитания одинарной точности и второго сдвоенного блока сложения одинарной точности, выходы первых сдвоенных блоков сложения и вычитания одинарной точности и блока сложения двойной точности соединены соответственно с третьим, четвертым и пятым входами первой схемы выходного интерфейса, выходы вторых сдвоенных блоков сложения и вычитания одинарной точности соединены соответственно со вторым и третьим входами второй схемы выходного интерфейса, девятый и десятый выходы декодера инструкций процессора, на которых формируются сигналы управления, соединены соответственно с шестым входом первой схемы выходного интерфейса и четвертым входом второй схемы выходного интерфейса, первый, второй и третий выходы данных первой схемы выходного интерфейса и первый выход данных второй схемы выходного интерфейса соединены соответственно с выходами блока вещественной арифметики, четвертый выход данных первой схемы выходного интерфейса и второй выход данных второй схемы выходного интерфейса соединены со вторыми входами соответственно первого и второго регистровых файлов. 4. The microprocessor according to claim 1, characterized in that the unit of real arithmetic contains two asymmetric input interface circuits, the first of which is made with five inputs and nine outputs, and the second with three inputs and five outputs, the processor instruction decoder, executed with three inputs and twelve outputs, two double units of multiplication of single precision, each of which is made with three inputs and one output, a block of multiplication of double precision, made with three inputs and one output, two double blocks of addition one accuracy, each of which is made with four inputs and one output, two double units of single precision subtraction, each of which is made with four inputs and one output, double precision addition unit, made with four inputs and one output, two asymmetric output interface circuits , the first of which is made with six inputs and four outputs, and the second - with four inputs and two outputs, two register files, each of which is made with two inputs and one output, while the first, second and third the first inputs of the first input interface circuit are connected, respectively, with the fourth, fifth and sixth inputs of the real arithmetic unit, to which the input data is received, the first and second data outputs of the first input interface circuit are connected with the first and second inputs of the first dual single precision multiplication unit, the third and fourth data outputs of the first input interface circuit are connected respectively to the first and second inputs of the double precision multiplication unit, the fifth and sixth data outputs of the first input circuit interface are connected respectively to the first and second inputs of the first dual single precision addition unit and to the first and second inputs of the first dual single precision subtraction unit, the seventh and eighth data outputs of the first input interface circuit are connected respectively to the first and second inputs of the dual precision addition unit, ninth the data output of the first input interface circuit is connected to the first input of the first register file, the data output of which is connected to the fourth input of the first input interface circuit isa, the fifth input of which is connected to the first output of the processor instruction decoder, on which control signals are generated, the first, second, and third inputs of the processor instruction decoder are connected respectively to the first, second, and third inputs of the material arithmetic block, the second and third outputs of control signals of the processor instruction decoder connected to the third inputs of the first double unit of multiplication of single precision and the unit of multiplication of double precision, the fourth output of the control signals of the decoder inst the manual is connected to the first input of the second input interface circuit, the fifth output of the instruction decoder control signals is connected to the first input of the second dual single precision multiplication unit, the second input of the second input interface circuit is connected to the seventh input of the real arithmetic unit, the first and second data outputs of the second input interface circuit connected to the second and third inputs of the second double unit of multiplication of single precision, respectively, the third and fourth data outputs of the second input interface circuit connected respectively with the first and second inputs of the second double unit of addition of single precision and with the first and second inputs of the second double unit of subtraction of single precision, the fifth data output of the second input interface circuit is connected to the first input of the second register file, the output of which is connected to the third input of the second input circuit interface, the output of the first double unit of multiplication of single precision, forming a signal of a double result of multiplication of single precision, is connected to the first input of the first circuit in the input interface and the third inputs of the first dual single precision addition block and the first dual single precision subtraction unit, the output of the double precision multiplication unit is connected to the third input of the double precision addition unit and with the second input of the first output interface circuit, the output of the second dual single precision multiplication unit is connected to the first input of the second circuit of the output interface and the third inputs, respectively, of the second dual unit of addition of single precision and the second dual unit you single precision reading, the fourth, fifth and sixth outputs of the processor instruction decoder, on which the control signals are generated, are connected to the fourth inputs of the first double unit of addition of single precision, the first double unit of subtraction of single precision and the block of addition of double precision, seventh and eighth outputs of the instruction decoder the processor forming the control signals are connected to the fourth inputs of the second dual unit of subtraction of single precision and the second dual respectively about a single precision addition unit, the outputs of the first double addition and subtraction units of a single precision and a double precision addition unit are connected to the third, fourth and fifth inputs of the first output interface circuit respectively, the outputs of the second double addition and subtraction single accuracy units are connected to the second and third inputs, respectively the second output interface circuit, the ninth and tenth outputs of the processor instruction decoder, on which control signals are generated, are connected respectively to the sixth input m of the first output interface circuit and the fourth input of the second output interface circuit, the first, second and third data outputs of the first output interface circuit and the first data output of the second output interface circuit are connected respectively to the outputs of the real arithmetic unit, the fourth data output of the first output interface circuit and the second output data of the second output interface circuitry are connected to the second inputs of the first and second register files, respectively.
RU2007116220/09A 2007-04-28 2007-04-28 Hybrid microprocessor RU2359315C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2007116220/09A RU2359315C2 (en) 2007-04-28 2007-04-28 Hybrid microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2007116220/09A RU2359315C2 (en) 2007-04-28 2007-04-28 Hybrid microprocessor

Publications (2)

Publication Number Publication Date
RU2007116220A RU2007116220A (en) 2008-11-10
RU2359315C2 true RU2359315C2 (en) 2009-06-20

Family

ID=41026136

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2007116220/09A RU2359315C2 (en) 2007-04-28 2007-04-28 Hybrid microprocessor

Country Status (1)

Country Link
RU (1) RU2359315C2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2475817C1 (en) * 2011-12-08 2013-02-20 Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Apparatus for buffering data streams read from ram
RU2475822C1 (en) * 2011-12-08 2013-02-20 Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Microprocessor core memory subsystem
RU2504000C1 (en) * 2012-07-20 2014-01-10 Открытое акционерное общество "КОНСТРУКТОРСКОЕ БЮРО "КОРУНД-М" (ОАО КБ "КОРУНД-М") Method of copying data in cache memory and apparatus for realising said method
RU2503996C1 (en) * 2012-07-20 2014-01-10 Открытое акционерное общество "КОНСТРУКТОРСКОЕ БЮРО "КОРУНД-М" (ОАО КБ "КОРУНД-М") Apparatus for dynamic prediction of microprocessor conditional jump commands
RU2556364C1 (en) * 2014-03-18 2015-07-10 Федеральное государственное бюджетное учреждение науки Научно-исследовательский институт системных исследований Российской академии наук (НИИСИ РАН) Hybrid microprocessor
RU2584470C2 (en) * 2014-03-18 2016-05-20 Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук" (ФГУ ФНЦ НИИСИ РАН) Hybrid flow microprocessor
RU2592465C2 (en) * 2014-07-24 2016-07-20 Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук" (ФГУ ФНЦ НИИСИ РАН) Method of filling cache memory and commands output to execute and device for filling cache memory and commands output to execute
RU2666458C1 (en) * 2017-11-27 2018-09-07 Акционерное общество "МЦСТ" Microprocessor
RU185002U1 (en) * 2018-06-18 2018-11-16 Федеральное государственное бюджетное образовательное учреждение высшего образования "Тульский государственный университет" DATA FLOW BUFFERING DEVICE
RU204275U1 (en) * 2021-01-26 2021-05-18 Межрегиональное общественное учреждение "Институт инженерной физики" FAIL-SAFE PROCESSOR WITH ERROR CORRECTION IN THE DATA BYTE

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RM 7065A 64-Bit MIPS RISC Microprocessor with Integrated L2 Cache. *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2475817C1 (en) * 2011-12-08 2013-02-20 Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Apparatus for buffering data streams read from ram
RU2475822C1 (en) * 2011-12-08 2013-02-20 Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Microprocessor core memory subsystem
RU2504000C1 (en) * 2012-07-20 2014-01-10 Открытое акционерное общество "КОНСТРУКТОРСКОЕ БЮРО "КОРУНД-М" (ОАО КБ "КОРУНД-М") Method of copying data in cache memory and apparatus for realising said method
RU2503996C1 (en) * 2012-07-20 2014-01-10 Открытое акционерное общество "КОНСТРУКТОРСКОЕ БЮРО "КОРУНД-М" (ОАО КБ "КОРУНД-М") Apparatus for dynamic prediction of microprocessor conditional jump commands
RU2556364C1 (en) * 2014-03-18 2015-07-10 Федеральное государственное бюджетное учреждение науки Научно-исследовательский институт системных исследований Российской академии наук (НИИСИ РАН) Hybrid microprocessor
RU2584470C2 (en) * 2014-03-18 2016-05-20 Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук" (ФГУ ФНЦ НИИСИ РАН) Hybrid flow microprocessor
RU2592465C2 (en) * 2014-07-24 2016-07-20 Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук" (ФГУ ФНЦ НИИСИ РАН) Method of filling cache memory and commands output to execute and device for filling cache memory and commands output to execute
RU2666458C1 (en) * 2017-11-27 2018-09-07 Акционерное общество "МЦСТ" Microprocessor
RU185002U1 (en) * 2018-06-18 2018-11-16 Федеральное государственное бюджетное образовательное учреждение высшего образования "Тульский государственный университет" DATA FLOW BUFFERING DEVICE
RU204275U1 (en) * 2021-01-26 2021-05-18 Межрегиональное общественное учреждение "Институт инженерной физики" FAIL-SAFE PROCESSOR WITH ERROR CORRECTION IN THE DATA BYTE

Also Published As

Publication number Publication date
RU2007116220A (en) 2008-11-10

Similar Documents

Publication Publication Date Title
RU2359315C2 (en) Hybrid microprocessor
JP3983857B2 (en) Single instruction multiple data processing using multiple banks of vector registers
US9952875B2 (en) Microprocessor with ALU integrated into store unit
KR101020430B1 (en) Dynamic range adjusting floating point execution unit
US6009511A (en) Apparatus and method for tagging floating point operands and results for rapid detection of special floating point numbers
US5931943A (en) Floating point NaN comparison
US6560697B2 (en) Data processor having repeat instruction processing using executed instruction number counter
US6167507A (en) Apparatus and method for floating point exchange dispatch with reduced latency
KR20240011204A (en) Apparatuses, methods, and systems for instructions of a matrix operations accelerator
US7464255B1 (en) Using a shuffle unit to implement shift operations in a processor
JPH10124391A (en) Processor and method for executing store convergence by merged store operation
EP1089167A2 (en) Processor architecture for executing two different fixed-length instruction sets
US20120204008A1 (en) Processor with a Hybrid Instruction Queue with Instruction Elaboration Between Sections
US5913054A (en) Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
US6449712B1 (en) Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions
US6873184B1 (en) Circular buffer using grouping for find first function
EP2267596B1 (en) Processor core for processing instructions of different formats
US10133571B1 (en) Load-store unit with banked queue
EP0992896A1 (en) Pipeline protection
JPH09237184A (en) Instruction executing method and its device
US5761713A (en) Address aggregation system and method for increasing throughput to a multi-banked data cache from a processor by concurrently forwarding an address to each bank
US7080170B1 (en) Circular buffer using age vectors
EP1122688A1 (en) Data processing apparatus and method
US7107302B1 (en) Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units

Legal Events

Date Code Title Description
PD4A Correction of name of patent owner
PC41 Official registration of the transfer of exclusive right

Effective date: 20160815

PC41 Official registration of the transfer of exclusive right

Effective date: 20180813