микропроцессор гибридный
Классы МПК: | G06F9/30 устройства для выполнения машинных команд, например декодирование команды G06F7/483 для вычислений над числами, представленными нелинейной комбинацией машинных чисел, например рациональными числами, системами с логарифмами, числами с плавающей запятой G06F7/57 арифметико-логические устройства (ALU), те оборудование или устройства для выполнения двух или более операций, относящихся к группам 7/483 |
Автор(ы): | Бобков Сергей Геннадиевич (RU), Аряшев Сергей Иванович (RU), Барских Михаил Евгеньевич (RU), Бычков Константин Сергеевич (RU), Зубковский Павел Сергеевич (RU) |
Патентообладатель(и): | Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) (RU) |
Приоритеты: |
подача заявки:
2007-04-28 публикация патента:
20.06.2009 |
Изобретение относится к вычислительной технике и может найти применение в системах обработки сигналов. Техническим результатом является расширение функциональных возможностей устройства за счет обработки сигналов и изображений при работе с вещественной арифметикой. Устройство содержит буфер инструкций, блок управления памятью, кэш-память второго уровня, целочисленное арифметико-логическое устройство (АЛУ), блок вещественной арифметики и системный контроллер. 3 з.п. ф-лы, 4 ил.
Формула изобретения
1. Микропроцессор гибридный, содержащий буфер инструкций, блок управления памятью, кэш-память второго уровня, целочисленное арифметико-логическое устройство (АЛУ), блок вещественной арифметики и контроллер, отличающийся тем, что буфер инструкций выполнен с возможностью предсказания переходов для компенсации потерь при выполнении команды перехода и с возможностью выставлять на выполнение до четырех инструкций в режиме обработки сигналов с аппаратным контролем возможности одновременного выполнения инструкций в режиме динамического переупорядочивания, блок управления памятью содержит кэш-память инструкций первого уровня и кэш-память данных первого уровня, кэш-память второго уровня выполнена в виде внутренней памяти для сокращения потерь при обмене с внешней памятью, имеет восемь входов и шесть выходов и разделена на 16 отдельных банков памяти с дополнительными шинами, целочисленное АЛУ выполнено с возможностью выполнения двух целочисленных команд за такт и вычисления адреса для 128-разрядной загрузки/сохранения, блок вещественной арифметики выполнен с возможностью выполнения двух сдвоенных операций умножения, сложения и вычитания вещественных чисел одинарной точности за такт и операций умножения и сложения чисел двойной точности, контроллер выполнен в виде встроенного системного контроллера, выход буфера инструкций, на котором формируется сигнал запроса и адреса, соединен с первым входом блока управления памятью, выход блока управления памятью, на котором формируется сигнал «входные инструкции», соединен с первым входом буфера инструкций, выход буфера инструкций, на котором формируется сигнал «целочисленная инструкция», соединен с первым входом целочисленного АЛУ, выход буфера инструкций, на котором формируется сигнал «целочисленная инструкция или инструкция загрузки/сохранения», соединен со вторым входом целочисленного АЛУ, первым входом блока вещественной арифметики и пятым входом блока управления памятью, выход буфера инструкций, на котором формируется сигнал «инструкция расширенной загрузки/сохранения», соединен с третьим входом целочисленного АЛУ, вторым входом блока вещественной арифметики и шестым входом блока управления памятью, выход буфера инструкций, на котором формируется сигнал «инструкция вещественной арифметики или инструкция расширенной вещественной арифметики», соединен с четвертым входом целочисленного АЛУ и третьим входом блока вещественной арифметики, выход данных целочисленного АЛУ соединен с четвертым входом блока вещественной арифметики, выход данных которого соединен с шестым входом целочисленного АЛУ, адресный выход которого соединен с седьмым входом блока управления памятью, адресный выход которого соединен с пятым входом целочисленного АЛУ, выходы блока управления памятью, на которых формируются сигналы запросов и адресов данных, инструкций и операций сохранения, а также данные для сохранения соединены соответственно с первым, вторым, третьим и четвертым входами кэш-памяти второго уровня, выходы кэш-памяти второго уровня, на которых формируются сигналы данных загрузки кэш-памяти инструкций и данных первого уровня, а также выходные данные в режиме внутренней памяти, соединены соответственно со вторым, третьим и четвертым входами блока управления памятью, выход данных которого соединен с первым входом системного контроллера, выход которого, предназначенный для формирования сигнала контроля когерентности, соединен с восьмым входом блока управления памятью, выход системного контроллера, на котором формируется сигнал «входные данные», соединен с девятым входом блока управления памятью и пятым входом кэш-памяти второго уровня, выход которой соединен дополнительной шиной со вторым входом системного контроллера, выход которого соединен второй дополнительной шиной с восьмым входом кэш-памяти второго уровня, по которым осуществляется прямой доступ к памяти без загрузки процессора, выход блока управления памятью соединен с пятым входом блока вещественной арифметики, выход которого соединен с десятым входом блока управления памятью линиями связи, предназначенными для передачи данных, два выхода кэш-памяти второго уровня соединены с шестым и седьмым входами блока вещественной арифметики, два выхода которого соединены с шестым и седьмым входами кэш-памяти второго уровня четырьмя дополнительными 128 - разрядными шинами данных.
2. Микропроцессор по п.1, отличающийся тем, что буфер инструкций содержит буфер перехода, выполненный с одним входом и одним выходом, блок управления буферами, выполненный с двумя входами и четырьмя выходами, буфер выполнения, выполненный с одним входом и одним выходом, блок выборки/декодирования команд, выполненный с двумя входами и двумя выходами, блок предсказания перехода, выполненный с тремя входами и тремя выходами, блок анализа зависимостей, выполненный с одним входом и двумя выходами, счетчик команд и счетчик перехода, выполненные каждый с одним входом и одним выходом, блок выбора потока выполнения, выполненный с двумя входами и четырьмя выходами, и два мультиплексора, при этом вход буфера перехода соединен с первым входом буфера инструкций, а выход - с первым входом первого мультиплексора, второй вход которого соединен с первым входом буфера инструкций, первый выход блока управления буферами соединен с первым входом блока предсказания перехода, второй выход блока управления буферами - с управляющим входом первого мультиплексора, третий выход блока управления буферами - с входом счетчика команд, а четвертый выход блока управления буферами - со вторым входом блока выборки/декодирования команд, и первый вход блока управления буферами соединен с первым выходом блока предсказания перехода, а второй вход блока управления буферами - с первым выходом блока анализа зависимостей, вход буфера выполнения соединен с выходом первого мультиплексора, а выход буфера выполнения - с первым входом блока выборки/декодирования команд, выход счетчика команд соединен с первым входом второго мультиплексора и со вторым входом блока предсказания перехода, выход счетчика перехода соединен со вторым входом второго мультиплексора, вход счетчика перехода - с третьим выходом блока предсказания перехода, второй выход которого соединен с управляющим входом второго мультиплексора, первый выход блока выборки/декодирования команд соединен с третьим входом блока предсказания перехода, а второй выход блока выборки/декодирования команд соединен с первым входом блока выбора потока выполнения и с входом блока анализа зависимостей, второй выход которого соединен со вторым входом блока выбора потока выполнения, выходы которого соединены соответственно с вторым, третьим, четвертым и пятым выходами буфера инструкций, первый выход которого соединен с выходом второго мультиплексора.
3. Микропроцессор по п.1, отличающийся тем, что кэш-память второго уровня, содержит четыре входных мультиплексора, каждый из которых выполнен с шестью входами и одним выходом, блок управления кэш-памятью второго уровня, выполненный с пятью входами и тремя выходами, блок регистров ПДП и векторного режима, выполненный с одним входом и двумя выходами, четыре группы памятей, каждая из которых выполнена с двумя входами и одним выходом, и шесть выходных буферов, выполненных каждый с пятью входами и одним выходом, при этом, пятый, восьмой, четвертый, шестой и седьмой входы кэш-памяти второго уровня соединены, соответственно, с первыми, вторыми, третьими, четвертыми и пятыми входами входных мультиплексоров, шестые входы которых соединены с первым выходом блока управления кэш-памятью второго уровня, на котором формируются сигналы управления, выходы входных мультиплексоров, на которых формируются сигналы данных, соединены с первыми входами групп памятей, первый, второй и третий входы кэш-памяти второго уровня, на которых формируются сигналы адреса, соединены соответственно с первым, вторым и третьим входами блока управления кэш-памятью второго уровня, второй и третий выходы которого, на которых формируются сигналы управления и адреса, соединены соответственно со вторыми входами групп памятей и первыми входами выходных буферов, выходы групп памятей соединены соответственно со вторыми, третьим, четвертыми и пятыми входами выходных буферов, выходы которых соединены соответственно с выходами кэш-памяти второго уровня, соединенными с первой дополнительной шиной, с выходами кэш-памяти второго уровня, соединенными со вторым, третьим и четвертым входами блока управления памятью, с выходами кэш-памяти второго уровня, соединенными с шестым и седьмым входами блока вещественной арифметики, выходы блока регистров ПДП и векторного режима, на которых формируются сигналы данных, соединены с четвертым и пятым входами блока управления кэш-памятью второго уровня, а выход блока регистров ПДП и векторного режима соединен с четвертым входом кэш-памяти второго уровня.
4. Микропроцессор по п.1, отличающийся тем, что блок вещественной арифметики, содержит две несимметричные схемы входного интерфейса, первая из которых выполнена с пятью входами и девятью выходами, а вторая - с тремя входами и пятью выходами, декодер инструкций процессора, выполненный с тремя входами и двенадцатью выходами, два сдвоенных блока умножения одинарной точности, каждый из которых выполнен с тремя входами и одним выходом, блок умножения двойной точности, выполненный с тремя входами и одним выходом, два сдвоенных блока сложения одинарной точности, каждый из которых выполнен с четырьмя входами и одним выходом, два сдвоенных блока вычитания одинарной точности, каждый из которых выполнен с четырьмя входами и одним выходом, блок сложения двойной точности, выполненный с четырьмя входами и одним выходом, две несимметричные схемы выходного интерфейса, первая из которых выполнена с шестью входами и четырьмя выходами, а вторая - с четырьмя входами и двумя выходами, два регистровых файла, каждый из которых выполнен с двумя входами и одним выходом, при этом, первый, второй и третий входы первой схемы входного интерфейса соединены, соответственно, с четвертым, пятым и шестым входами блока вещественной арифметики, на которые поступают входные данные, первый и второй выходы данных первой схемы входного интерфейса соединены соответственно с первым и вторым входами первого сдвоенного блока умножения одинарной точности, третий и четвертый выходы данных первой схемы входного интерфейса соединены соответственно с первым и вторым входами блока умножения двойной точности, пятый и шестой выходы данных первой схемы входного интерфейса соединены соответственно с первым и вторым входами первого сдвоенного блока сложения одинарной точности и с первым и вторым входами первого сдвоенного блока вычитания одинарной точности, седьмой и восьмой выходы данных первой схемы входного интерфейса соединены соответственно с первым и вторым входами блока сложения двойной точности, девятый выход данных первой схемы входного интерфейса соединен с первым входом первого регистрового файла, выход данных которого соединен с четвертым входом первой схемы входного интерфейса, пятый вход которого соединен с первым выходом декодера инструкций процессора, на котором формируются управляющие сигналы, первый, второй и третий входы декодера инструкций процессора соединены соответственно с первым, вторым и третьим входами блока вещественной арифметики, второй и третий выходы сигналов управления декодера инструкций процессора соединены с третьими входами соответственно первого сдвоенного блока умножения одинарной точности и блока умножения двойной точности, четвертый выход сигналов управления декодера инструкций соединен с первым входом второй схемы входного интерфейса, пятый выход сигналов управления декодера инструкций соединен с первым входом второго сдвоенного блока умножения одинарной точности, второй вход второй схемы входного интерфейса соединен с седьмым входом блока вещественной арифметики, первый и второй выходы данных второй схемы входного интерфейса соединены соответственно со вторым и третьим входами второго сдвоенного блока умножения одинарной точности, третий и четвертый выходы данных второй схемы входного интерфейса соединены соответственно с первым и вторым входами второго сдвоенного блока сложения одинарной точности и с первым и вторым входами второго сдвоенного блока вычитания одинарной точности, пятый выход данных второй схемы входного интерфейса соединен с первым входом второго регистрового файла, выход которого соединен с третьим входом второй схемы входного интерфейса, выход первого сдвоенного блока умножения одинарной точности, формирующий сигнал двойного результата умножения одинарной точности, соединен с первым входом первой схемы выходного интерфейса и третьими входами первого сдвоенного блока сложения одинарной точности и первого сдвоенного блока вычитания одинарной точности, выход блока умножения двойной точности соединен с третьим входом блока сложения двойной точности и со вторым входом первой схемы выходного интерфейса, выход второго сдвоенного блока умножения одинарной точности соединен с первым входом второй схемы выходного интерфейса и третьими входами соответственно второго сдвоенного блока сложения одинарной точности и второго сдвоенного блока вычитания одинарной точности, четвертый, пятый и шестой выходы декодера инструкций процессора, на которых формируются управляющие сигналы, соединены с четвертыми входами соответственно первого сдвоенного блока сложения одинарной точности, первого сдвоенного блока вычитания одинарной точности и блока сложения двойной точности, седьмой и восьмой выходы декодера инструкций процессора, формирующие управляющие сигналы, соединены с четвертыми входами соответственно второго сдвоенного блока вычитания одинарной точности и второго сдвоенного блока сложения одинарной точности, выходы первых сдвоенных блоков сложения и вычитания одинарной точности и блока сложения двойной точности соединены соответственно с третьим, четвертым и пятым входами первой схемы выходного интерфейса, выходы вторых сдвоенных блоков сложения и вычитания одинарной точности соединены соответственно со вторым и третьим входами второй схемы выходного интерфейса, девятый и десятый выходы декодера инструкций процессора, на которых формируются сигналы управления, соединены соответственно с шестым входом первой схемы выходного интерфейса и четвертым входом второй схемы выходного интерфейса, первый, второй и третий выходы данных первой схемы выходного интерфейса и первый выход данных второй схемы выходного интерфейса соединены соответственно с выходами блока вещественной арифметики, четвертый выход данных первой схемы выходного интерфейса и второй выход данных второй схемы выходного интерфейса соединены со вторыми входами соответственно первого и второго регистровых файлов.
Описание изобретения к патенту
Изобретение относится к вычислительной технике и может найти применение в системах обработки сигналов и другой информации, где необходима высокая производительность при работе с вещественной арифметикой.
Прототипом устройства может служить любой процессор с 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).
Описанный прототип может выполнять до двух команд за такт, но не позволяет эффективно решить задачи обработки сигналов и изображения при работе с вещественной арифметикой.
Задачей изобретения является создание на основе универсального микропроцессора высокопроизводительного микропроцессора гибридного, позволяющего осуществить обработку сигналов и изображения при работе с вещественной арифметикой.
Указанная задача осуществляется микропроцессором гибридным, содержащим буфер инструкций, блок управления памятью, кэш-память второго уровня, целочисленное арифметико-логическое устройство (АЛУ), блок вещественной арифметики и контроллер, при этом буфер инструкций выполнен с возможностью предсказания переходов для компенсации потерь при выполнении команды перехода и с возможностью выставлять на выполнение до четырех инструкций в режиме обработки сигналов с аппаратным контролем возможности одновременного выполнения инструкций в режиме динамического переупорядочивания, имеет один вход и пять выходов и связан с блоком управления памятью, целочисленным АЛУ и блоком вещественной арифметики, блок управления памятью содержит кэш-память инструкций первого уровня и кэш-память данных первого уровня, десять входов и семь выходов и связан со всеми блоками микропроцессора, кэш-память второго уровня выполнена в виде внутренней памяти для сокращения потерь при обмене с внешней памятью, имеет восемь входов и шесть выходов и разделена на 16 отдельных банков памяти с дополнительными шинами, связывающими ее с блоком управления памятью, блоком вещественной арифметики и системным контроллером, выполненными с возможностью работы с банками памяти по отдельности и загрузки данными обоих сдвоенных блоков вещественной арифметики, целочисленное АЛУ выполнено с возможностью выполнения двух целочисленных команд за такт и вычисления адреса для 128-разрядной загрузки/сохранения, имеет шесть входов и два выхода и связано с буфером инструкций, блоком управления памятью и блоком вещественной арифметики, блок вещественной арифметики выполнен с возможностью выполнения двух сдвоенных операций умножения, сложения и вычитания вещественных чисел одинарной точности за такт и операций умножения и сложения чисел двойной точности, имеет семь входов и четыре выхода и связан с буфером инструкций, с блоком управления памятью, целочисленным АЛУ и кэш-памятью второго уровня, контроллер выполнен в виде встроенного системного контроллера, имеет два входа и три выхода и связан с блоком управления памятью и кэш-памятью второго уровня.
Указанная задача осуществляется также тем, что связь блока вещественной арифметики с кэш-памятью второго уровня выполнена по четырем дополнительным 128-разрядным шинам данных, а связь кэш-памяти второго уровня с системным контроллером - по двум дополнительным 64-разрядным шинам данных.
Указанная задача осуществляется также тем, что буфер инструкций содержит буфер перехода, блок управления буферами, буфер выполнения, блок выборки/декодирования команд, блок предсказания перехода, блок анализа зависимостей, счетчик команд, счетчик перехода, блок выбора потока выполнения и два мультиплексора, при этом буфер перехода выполнен с одним входом и одним выходом и связан с блоком управления памятью и через мультиплексор с буфером выполнения, блок управления буферами выполнен с четырьмя выходами и двумя входами и связан с блоком предсказания переходов, блоком выборки/декодирования команд, блоком анализа зависимостей, регистром счетчика программ, управляющим мультиплексором буфера выполнения, буфер выполнения выполнен с одним входом и одним выходом и связан с блоком выборки/декодирования команд, блок выборки/декодирования команд выполнен с двумя входами и двумя выходами и связан с буфером выполнения, блоком анализа зависимостей, блоком выбора потока выполнения, блоком управления буферами и блоком предсказания перехода, блок предсказания перехода выполнен с тремя входами и тремя выходами и связан с блоком управления буферами, блоком выборки/декодирования команд, с счетчиком команд, с счетчиком перехода и с мультиплексором, связанным с блоком управления памятью, блок анализа зависимостей выполнен с одним входом и двумя выходами и связан с блоком управления буферами, блоком выборки/декодирования команд и блоком выбора потока выполнения, счетчик команд выполнен с одним входом и одним выходом и связан с блоком управления буферами, блоком предсказания перехода и мультиплексором, связанным с блоком управления памятью, счетчик перехода выполнен с одним входом и одним выходом и связан с блоком предсказания перехода и мультиплексором, связанным с блоком управления памятью, блок выбора потока выполнения выполнен с двумя входами и четырьмя выходами и связан с блоком выборки/декодирования команд, блоком анализа зависимостей, с блоком управления памятью, целочисленным АЛУ и блоком вещественной арифметики.
Указанная задача осуществляется также тем, что кэш-память второго уровня содержит четыре входных мультиплексора, блок управления кэш-памятью второго уровня, блок регистров ПДП и векторного режима, четыре группы памятей 4×16 Кбайт и шесть выходных буферов, при этом каждый из четырех входных мультиплексоров выполнен с шестью входами и одним выходом и связан с системным контроллером, блоком управления памятью и блоком вещественной арифметики, с блоком управления кэш-памятью второго уровня и соответствующей группой памятей 4×16 Кбайт, блок управления кэш-памятью второго уровня выполнен с пятью входами и тремя выходами и связан с входными мультиплексорами, группами памятей 4×16 Кбайт, выходными буферами и блоком регистров ПДП и векторного режима, блок регистров ПДП и векторного режима выполнен с одним входом и двумя выходами и связан с блоком управления памятью, с блоком управления кэш-памятью второго уровня и выходными буферами, каждая из четырех групп памятей 4×16 Кбайт выполнена с двумя входами и одним выходом и связана с входными мультиплексорами, блоком управления кэш-памятью второго уровня и выходными буферами, шесть выходных буферов, каждый из которых выполнен с пятью входами и одним выходом и связан с системным контроллером, блоком управления памятью, с блоком вещественной арифметики, с блоком управления памятью и группами памятей 4×16 Кбайт.
Указанная задача осуществляется также тем, что блок вещественной арифметики, содержит две несимметричные схемы входного интерфейса, декодер инструкций процессора, два сдвоенных блока умножения одинарной точности, блок умножения двойной точности, два сдвоенных блока сложения одинарной точности, два сдвоенных блока вычитания одинарной точности, блок сложения двойной точности, две несимметричные схемы выходного интерфейса, два регистровых файла, при этом две несимметричные схемы входного интерфейса, одна из которых выполнена с пятью входами и девятью выходами, а другая - с тремя входами и пятью выходами, и связаны с блоком управления памятью, целочисленным АЛУ и кэш-памятью второго уровня, с декодером инструкций микропроцессора, двумя сдвоенными блоками умножения одинарной точности, блоком умножения двойной точности, двумя сдвоенными блоками сложения одинарной точности, двумя сдвоенными блоками вычитания одинарной точности, блоком сложения двойной точности и двумя регистровыми файлами, декодер инструкций микропроцессора выполнен с тремя входами и двенадцатью выходами и связан с буфером инструкций, двумя схемами входного интерфейса, двумя сдвоенными блоками умножения одинарной точности, блоком умножения двойной точности, двумя сдвоенными блоками сложения одинарной точности, двумя сдвоенными блоками вычитания одинарной точности, блоком сложения двойной точности и двумя схемами выходного интерфейса, два сдвоенных блока умножения одинарной точности, каждый из которых выполнен с тремя входами и одним выходом и связан со схемами входного интерфейса, декодером инструкций микропроцессора, схемами выходного интерфейса со сдвоенным блоком сложения одинарной точности, со сдвоенным блоком вычитания одинарной точности, блок умножения двойной точности выполнен с тремя входами и одним выходом и связан со схемами входного интерфейса, декодером инструкций микропроцессора, схемами выходного интерфейса и с блоком сложения двойной точности, два сдвоенных блока сложения одинарной точности, каждый из которых выполнен с четырьмя входами и одним выходом и связан со схемами входного интерфейса, декодером инструкций микропроцессора, схемами выходного интерфейса, со сдвоенными блоками умножения одинарной точности, два сдвоенных блока вычитания одинарной точности, каждый из которых выполнен с четырьмя входами и одним выходом и связан со схемами входного интерфейса, декодером инструкций микропроцессора, схемами выходного интерфейса, со сдвоенными блоками умножения одинарной точности, блок сложения двойной точности выполнен с четырьмя входами и одним выходом и связан со схемами входного интерфейса, декодером инструкций процессора, схемами выходного интерфейса, с блоком умножения двойной точности, две несимметричные схемы выходного интерфейса, одна из которых выполнена с шестью входами и четырьмя выходами, а другая - с четырьмя входами и двумя выходами и связаны соответственно с блоком управления памятью, целочисленным АЛУ и кэш-памятью второго уровня, с декодером инструкций микропроцессора, двумя сдвоенными блоками умножения одинарной точности, блоком умножения двойной точности, двумя сдвоенными блоками сложения одинарной точности, двумя сдвоенными блоками вычитания одинарной точности, блоком сложения двойной точности и двумя регистровыми файлами, два регистровых файла, каждый из которых выполнен с двумя входами и одним выходом и связан со схемами входного интерфейса и схемами выходного интерфейса.
На фиг.1 представлена блок-схема микропроцессора гибридного.
На фиг.2 - блок-схема буфера инструкций.
На фиг.3 - блок-схема кэш-памяти второго уровня.
На фиг.4 - блок-схема блока вещественной арифметики.
Микропроцессор гибридный (фиг.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 - канал прямого доступа к памяти.
В качестве блока управления памятью 4 может использоваться любой блок управления памятью микропроцессора с RISC архитектурой, содержащий кэш-память данных и инструкций первого уровня, например блок управления памятью MIPS подобного микропроцессора типа прототипа или любого другого, или SPARC V8 подобного процессора. В качестве целочисленного АЛУ 24 может использоваться любое целочисленного АЛУ микропроцессора с RISC архитектурой, позволяющее выполнять две целочисленные команды за такт, обработку адреса и пересылку. В качестве системного контроллера может использоваться любой из существующих системных контроллеров, позволяющий подключать дополнительные каналы данных и имеющий совместимую локальную шину с используемым блоком управления памяти.
Буфер инструкций 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.
В качестве блока управления буферами 69 может быть использован блок управления буферами типа FIFO (first input first output, очередь). Буфер перехода 87 и буфер выполнения 94 - регистры для хранения 4-х 32-разрядных инструкций. Блок предсказания перехода 72 - стандартный блок предсказания переходов RISC процессора с предсказанием перехода, управляющий выставлением запроса на шину адреса и формирующий сигналы о выставлении предсказанного запроса и подтверждения или отмены предсказанного перехода. Блок выборки/декодирования 80 - стандартный блок декодирования инструкций микропроцессора с RISC архитектурой (например, блок декодирования MIPS подобного микропроцессора типа прототипа или любого другого), декодирующий полученные команды. Счетчик команд перехода 104 - регистр, хранящий значение целевого адреса перехода предсказанного перехода. Счетчик команд 83 - регистр, хранящий текущее значение счетчика команд. Блок анализа зависимостей 86 - стандартный блок анализа зависимостей, выбранных для выполнения инструкций микропроцессора с RISC архитектурой, выполняющего 2 команды за такт (например, блок декодирования микропроцессора типа прототипа или любого другого). Блок выбора потока выполнения 110 - стандартный блок микропроцессора с RISC архитектурой с 4-мя потоками выполнения (например, блок выдачи инструкций микропроцессора типа прототипа), распределяющий выбранные и декодированные инструкции по потокам выполнения.
Кэш-память второго уровня 13 состоит из четырех входных мультиплексоров 121, 122, 123 и 124; четырех групп памятей 125, 126, 127 и 128 емкостью 4×16 килобайт каждая; шести выходных буферов 129, 130, 131, 132, 133 и 134; блока регистров 135, хранящих параметры работы блока кэш-памяти второго уровня в режимах векторном и прямого доступа к памяти (ПДП); блока управления кэш-памятью второго уровня 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 соответственно.
Вход 10 блока 13 - линии адреса - связан с входом 157 блока управления кэш-памятью второго уровня 136; вход 11 блока 13 - линии адреса - связан с входом 158 блока управления кэш-памятью второго уровня 136; вход 12 блока 13 - линии адреса - связан с входом 159 блока управления кэш-памятью второго уровня 136.
Выход 160 входного мультиплексора 121 связан линией данных с входом 161 группы памятей 125. Выход 162 входного мультиплексора 122 связан линией данных с входом 163 группы памятей 126. Выход 164 входного мультиплексора 123 связан линией данных с входом 165 группы памятей 127. Выход 166 входного мультиплексора 124 связан линией данных с входом 167 группы памятей 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 соответственно.
Выход 213 выходного буфера 129 - линия данных - связан с выходом 65 блока 13; выход 214 выходного буфера 130 - линия данных - связан с выходом 18 блока 13; выход 215 выходного буфера 131 - линия данных - связан с выходом 16 блока 13; выход 216 выходного буфера 132 - линия данных - связан с выходом 17 блока 13; выход 217 выходного буфера 133 - линия данных - связан с выходом 57 блока 13; выход 218 выходного буфера 134 - линия данных - связан с выходом 58 блока 13.
Выход 219 блока регистров 135 связан линией данных с входом 220 блока управления кэш-памятью второго уровня 136. Выход 221 блока регистров 135 связан линией данных с входом 222 блока управления кэш-памятью второго уровня 136.
Блоки 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.
Блоки 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).
Наличие байтовых стробов записи во всех кэш-памятях и механизма обратной записи в кэш-памяти второго уровня позволяет отказаться от сбора данных при невыровненных операциях загрузок/сохранений без потери производительности. При некэшируемых операциях внутренняя шина не поддерживает невыровненные операции, но наличие встроенного контроллера памяти снижает потери сбора данных.
Буфер инструкций 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.
Запрошенные инструкции выставляются кэш-памятью инструкций на вход 5 буфера инструкций 11. Далее, по линии 88 полученные инструкции записываются в буфер перехода 87, в котором инструкции хранятся до принятия решения о переписывании их в буфер выполнения 94. Основным буфером для работы является буфер выполнения 94, инструкции в который записываются через мультиплексор 77 по линии 92-93. Мультиплексор 77 управляется сигналом управления 75-76 от блока управления буферами 69 и выбирает для записи в буфер выполнения 94 или полученные инструкции с линии 5-91, или инструкции, предварительно записанные в буфер перехода 87, по линии 89-90.
Из буфера выполнения 94 по линии 95-96 инструкции выбираются (вычитываются) парами в блок выборки/декодирования команд 80. Количество инструкций, необходимых для чтения (читать 1 или 2 команды), определяется управляющими сигналами 78-79. В блоке выборки/декодирования команд 80 происходит предварительное декодирование типов инструкций, и на основе этого по линии 101-100 в блок предсказания перехода 72 выставляется информация о декодировании инструкции перехода, на основании которой рассчитывается целевой адрес перехода, помещаемый по линии 102-103 в счетчик перехода 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).
Данные на входы блока кэш-памяти второго уровня 13 поступают от следующих блоков: от системного контроллера 47 данные для заполнения строки кэш-памяти поступают на вход 52; от системного контроллера 47 данные в режиме прямого доступа к памяти поступают на вход 68; от блока управления памятью 4 при выполнении команды сохранения данные поступают на вход 15; от блока вещественной арифметики 29 при выполнении команды сохранения в векторном режиме данные поступают на вход 63; от блока вещественной арифметики 29 при выполнении команды сохранения в режиме цифровой обработки сигналов данные поступают на вход 64.
Адрес на входы блока кэш-памяти второго уровня 13 поступает от следующих блоков: адрес команды загрузки/сохранения поступает из блока управления памятью 4 на вход 10; адрес команды, запрошенной буфером инструкций 1, поступает из блока управления памятью 4 на вход 11; адрес команды загрузки/сохранения режима цифровой обработки сигналов поступает из блока управления памятью 4 на вход 12.
Данные с выходов блока кэш-памяти второго уровня 13 поступают в следующие блоки: в системный контроллер 47 в режиме прямого доступа к памяти данные поступают с выхода 65; в блок управления памятью 4 при выполнении команды загрузки данные поступают с выхода 18; в блок управления памятью 4 для заполнения строки кэш-памяти инструкций первого уровня данные поступают с выхода 16; в блок управления памятью 4 для заполнения строки кэш-памяти данных первого уровня данные поступают с выхода 17; в блок вещественной арифметики 29 при выполнении команды загрузки в векторном режиме данные поступают с выхода 57; в блок вещественной арифметики 29 при выполнении команды загрузки в режиме цифровой обработки сигналов данные поступают с выхода 58.
При запросе от блока управления памятью 4 на заполнение строки кэш-памяти данных первого уровня на вход 10 поступает физический адрес, блок управления 136 анализирует физический адрес, определяет, находится ли запрашиваемая информация в кэш-памяти второго уровня, и при наличии информации в кэш-памяти передает управляющие сигналы на блоки групп памятей 125, 126, 127 и 128 и на выходной буфер 132. Затребованная информация передается выходным буфером 132 на выход 17. При отсутствии в кэш-памяти второго уровня затребованной информации соответствующая строка подгружается в один из блоков 125, 126, 127 или 128 из системного контроллера 47 через вход 52 и один из входных мультиплексоров 121, 122, 123 или 124.
При запросе от блока управления памятью 4 на заполнение строки кэш-памяти команд первого уровня на вход 11 поступает физический адрес, блок управления 136 анализирует физический адрес, определяет, находится ли запрашиваемая информация в кэш-памяти второго уровня, и при наличии информации в кэш-памяти передает управляющие сигналы на блоки групп памятей 125, 126, 127 и 128 и на выходной буфер 131. Затребованная информация передается выходным буфером 131 на выход 16. При отсутствии в кэш-памяти второго уровня затребованной информации соответствующая строка подгружается в один из блоков 125, 126, 127 или 128 из системного контроллера 47 через вход 52 и один из входных мультиплексоров 121, 122, 123 или 124.
При выполнении команды загрузки в режиме прямого доступа к памяти блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 129 на основе информации, хранящейся в регистрах блока 135. Затребованная информация передается выходным буфером 129 на выход 65.
При выполнении команды загрузки блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 130 на основе адреса, поступающего на вход 10. Затребованная информация передается выходным буфером 130 на выход 18.
При выполнении команды загрузки в векторном режиме блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 133 на основе информации, хранящейся в регистрах блока 135. Затребованная информация передается выходным буфером 133 на выход 57.
При выполнении команды загрузки в режиме цифровой обработки сигналов блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и выходного буфера 134 на основе адреса, поступающего на вход 12. Затребованная информация передается выходным буфером 134 на выход 58.
При выполнении команды сохранения в режиме прямого доступа к памяти блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе информации, хранящейся в регистрах блока 135. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 10.
При выполнении команды сохранения блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе адреса, поступающего на вход 29. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 15.
При выполнении команды сохранения в векторном режиме блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе информации, хранящейся в регистрах блока 135. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 63.
При выполнении команды сохранения в режиме цифровой обработки сигналов блок управления 136 формирует управляющие сигналы для блоков групп памятей 125, 126, 127 и 128 и входных мультиплексоров 121, 122, 123 и 124 на основе адреса, поступающего на вход 33. Информация, предназначенная для записи в кэш-память второго уровня, поступает на вход 64.
Инструкции процессора поступают на входы 28, 33 и 36 блока вещественной арифметики 29. Данные при загрузке в блок вещественной арифметики 29 из внешних блоков поступают на входы 42, 54, 59 и 60 блока вещественной арифметики 29. Выгрузка данных из блока вещественной арифметики 29 во внешние блоки осуществляется с выходов 55,43, 61 и 62.
Входы данных 42, 54 и 59 блока вещественной арифметики 29 подключены ко входам 223, 224, 225 схемы входного интерфейса 226. На вход 254 этого же блока по линии 253-254 поступают данные из регистрового файла 293. Схема входного интерфейса 226 осуществляет коммутацию входных данных и подготовку операндов для арифметических блоков. Набор управляющих сигналов для схемы входного интерфейса 226 поступает с декодера инструкций процессора 257 по линии 256-255. Выход 250 схемы входного интерфейса 226 соединен с входом 251 регистрового файла 252.
С входов 28, 33, 36 блока вещественной арифметики 29 инструкции процессора поступают на входы 258, 259, 260 декодера инструкций процессора 257. В этом блоке осуществляется декодирование инструкций процессора и вырабатываются наборы управляющих сигналов.
Блоки 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 команд вещественной арифметики с одинарной точностью за такт с одновременными обработкой управляющей информации и обменом данными между внутренней памятью и ОЗУ.
Предлагаемые решения позволяют объединить в одной микросхеме высокопроизводительный универсальный процессор, специализированный вычислитель и системный контроллер, что ведет к возможности создавать дешевые высокопроизводительные системы для обработки изображения и сигналов и принятия решений на основе универсального микропроцессора.
Класс G06F9/30 устройства для выполнения машинных команд, например декодирование команды
Класс G06F7/483 для вычислений над числами, представленными нелинейной комбинацией машинных чисел, например рациональными числами, системами с логарифмами, числами с плавающей запятой
устройство предсказания исключительной ситуации "потеря точности" блока операции "умножение с накоплением" - патент 2498392 (10.11.2013) | |
арифметический вычислитель - патент 2292580 (27.01.2007) |
Класс G06F7/57 арифметико-логические устройства (ALU), те оборудование или устройства для выполнения двух или более операций, относящихся к группам 7/483