RU2359315C2 - Hybrid microprocessor - Google Patents
Hybrid microprocessor Download PDFInfo
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
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
В качестве блока управления памятью 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
В качестве блока управления буферами 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
Кэш-память второго уровня 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
Вход 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 соответственно.
Вход 10 блока 13 - линии адреса - связан с входом 157 блока управления кэш-памятью второго уровня 136; вход 11 блока 13 - линии адреса - связан с входом 158 блока управления кэш-памятью второго уровня 136; вход 12 блока 13 - линии адреса - связан с входом 159 блока управления кэш-памятью второго уровня 136.The
Выход 160 входного мультиплексора 121 связан линией данных с входом 161 группы памятей 125. Выход 162 входного мультиплексора 122 связан линией данных с входом 163 группы памятей 126. Выход 164 входного мультиплексора 123 связан линией данных с входом 165 группы памятей 127. Выход 166 входного мультиплексора 124 связан линией данных с входом 167 группы памятей 128.The
Выход 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
Выход 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
Выход 219 блока регистров 135 связан линией данных с входом 220 блока управления кэш-памятью второго уровня 136. Выход 221 блока регистров 135 связан линией данных с входом 222 блока управления кэш-памятью второго уровня 136.The
Блоки 121, 122, 123 и 124 представляют собой стандартные 128-разрядные мультиплексоры 4 в 1. Блоки 125, 126, 127 и 128 представляют собой стандартные 128-разрядные блоки памяти. Блоки 129, 130, 131, 132, 133 и 134 представляют собой стандартные 128-разрядные мультиплексоры 4 в 1, объединенные с выходными буферами. Блок 135 представляет собой набор регистров. Блок 136 представляет собой стандартный контроллер ЗУ, формирующий адресные сигналы, сигналы разрешения работы входных мультиплексоров и выходных буферов.
Блок вещественной арифметики 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
Блоки 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 выполнены на основе стандартной многопортовой памяти.
Буфер инструкций 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
Запрошенные инструкции выставляются кэш-памятью инструкций на вход 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
Из буфера выполнения 94 по линии 95-96 инструкции выбираются (вычитываются) парами в блок выборки/декодирования команд 80. Количество инструкций, необходимых для чтения (читать 1 или 2 команды), определяется управляющими сигналами 78-79. В блоке выборки/декодирования команд 80 происходит предварительное декодирование типов инструкций, и на основе этого по линии 101-100 в блок предсказания перехода 72 выставляется информация о декодировании инструкции перехода, на основании которой рассчитывается целевой адрес перехода, помещаемый по линии 102-103 в счетчик перехода 104.From the
Из блока выборки/декодирования команд 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
Данные на входы блока кэш-памяти второго уровня 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
Адрес на входы блока кэш-памяти второго уровня 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
При запросе от блока управления памятью 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,
При запросе от блока управления памятью 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
При выполнении команды загрузки в режиме прямого доступа к памяти блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 129 на основе информации, хранящейся в регистрах блока 135. Затребованная информация передается выходным буфером 129 на выход 65.When the download command is executed in direct memory access mode, the
При выполнении команды загрузки блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 130 на основе адреса, поступающего на вход 10. Затребованная информация передается выходным буфером 130 на выход 18.When the download command is executed, the
При выполнении команды загрузки в векторном режиме блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 133 на основе информации, хранящейся в регистрах блока 135. Затребованная информация передается выходным буфером 133 на выход 57.When the download command is executed in vector mode, the
При выполнении команды загрузки в режиме цифровой обработки сигналов блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 134 на основе адреса, поступающего на вход 12. Затребованная информация передается выходным буфером 134 на выход 58.When the download command is executed in the digital signal processing mode, the
При выполнении команды сохранения в режиме прямого доступа к памяти блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе информации, хранящейся в регистрах блока 135. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 10.When the save command is executed in the direct memory access mode, the
При выполнении команды сохранения блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе адреса, поступающего на вход 29. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 15.When the save command is executed, the
При выполнении команды сохранения в векторном режиме блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе информации, хранящейся в регистрах блока 135. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 63.When the save command is executed in vector mode, the
При выполнении команды сохранения в режиме цифровой обработки сигналов блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе адреса, поступающего на вход 33. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 64.When the save command is executed in the digital signal processing mode, the
Инструкции процессора поступают на входы 28, 33 и 36 блока вещественной арифметики 29. Данные при загрузке в блок вещественной арифметики 29 из внешних блоков поступают на входы 42, 54, 59 и 60 блока вещественной арифметики 29. Выгрузка данных из блока вещественной арифметики 29 во внешние блоки осуществляется с выходов 55,43, 61 и 62.The processor instructions go to the
Входы данных 42, 54 и 59 блока вещественной арифметики 29 подключены ко входам 223, 224, 225 схемы входного интерфейса 226. На вход 254 этого же блока по линии 253-254 поступают данные из регистрового файла 293. Схема входного интерфейса 226 осуществляет коммутацию входных данных и подготовку операндов для арифметических блоков. Набор управляющих сигналов для схемы входного интерфейса 226 поступает с декодера инструкций процессора 257 по линии 256-255. Выход 250 схемы входного интерфейса 226 соединен с входом 251 регистрового файла 252.The
С входов 28, 33, 36 блока вещественной арифметики 29 инструкции процессора поступают на входы 258, 259, 260 декодера инструкций процессора 257. В этом блоке осуществляется декодирование инструкций процессора и вырабатываются наборы управляющих сигналов.From the
Блоки 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 соответственно.
Данные преимущества позволяют универсальному микропроцессору выполнять до 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)
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)
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 |
-
2007
- 2007-04-28 RU RU2007116220/09A patent/RU2359315C2/en active
Non-Patent Citations (1)
Title |
---|
RM 7065A 64-Bit MIPS RISC Microprocessor with Integrated L2 Cache. * |
Cited By (10)
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 |