модульное вычислительное устройство с раздельным микропрограммным управлением арифметико-логическими секциями
Классы МПК: | G06F15/16 сочетание двух или более вычислительных машин, каждая из которых снабжена по меньшей мере арифметическим устройством, программным устройством и регистром, например для одновременной обработки нескольких программ |
Патентообладатель(и): | Андреев Алексей Евгеньевич |
Приоритеты: |
подача заявки:
1994-03-14 публикация патента:
20.05.1997 |
Изобретение относится к вычислительной технике и может быть использовано в электронной цифровой вычислительной машине. Целью изобретения является повышение производительности вычислительного устройства. Указанная цель достигается тем, что вычислительное устройство содержит: блок центрального процессора, N блоков микропрограммного управления, блок N-портовой постоянной памяти микропрограмм, блок формирования заданий для АЛУ. Сущность изобретения состоит в том, что арифметико-логические секции, входящие в состав процессорного блока, управляются микропрограммно независимо друг от друга, позволяя тем самым выделять для обработки операнда число секций, суммарная разрядность которых в точности соответствует разрядности этого операнда, а также совмещать обработку нескольких операндов одновременно, суммарная разрядность которых равна или меньше суммарной разрядности не занятых в данный момент арифметико-логических секций. 1 з.п. ф-лы, 4 ил.
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6
Формула изобретения
1. Модульное вычислительное устройство с раздельным микропрограммным управлением арифметико-логическими секциями, содержащее блок центрального процессора, блок микропрограммного управления, блок постоянной памяти микропрограмм, отличающееся тем, что в него введены N 1 блоков микропрограммного управления, блок формирования заданий для АЛУ, причем вход операндов устройства является входом операндов блока формирования заданий для АЛУ, вход команд устройства является входом команд блока формирования заданий для АЛУ, синхровход устройства является синхровходом блока формирования заданий для АЛУ, выход данных блока центрального процессора является выходом данных устройств, выход признаков блока центрального процессора соединен с первыми группами входов признаков всех блоков микропрограммного управления, первые группы выходов признаков всех блоков микропрограммного управления соединены с входом признаков блока центрального процессора, вторые группы выходов признаков всех блоков микропрограммного управления соединены с входом занятости блока формирования заданий для АЛУ, выходы адреса микрокоманд всех блоков микропрограммного управления соединены с входом адресов микрокоманд блока N-портовой постоянной памяти микропрограмм, выход микроопераций блока N-портовой постоянной памяти микропрограмм соединен с входом микроопераций блока центрального процессора, выход управления адресов блока N-портовой постоянной памяти микропрограмм соединен с входами управления адресом всех блоков микропрограммного управления, выход операндов блока формирования заданий для АЛУ соединен с входом операндов блока центрального процессора, выход команд блока формирования заданий для АЛУ соединен с входами команд всех блоков микропрограммного управления, выход признаков блока формирования заданий для АЛУ соединен с вторыми группами входов признаков всех блоков микропрограммного управления, выход блока формирования заданий для АЛУ является выходом управления устройства. 2. Устройство по п.1, отличающееся тем, что блок формирования заданий для АЛУ содержит узел формирования очереди заданий, N регистров очереди заданий, узел вывода заданий, причем вход операндов блока формирования заданий для АЛУ является входом операндов узла формирования очереди заданий, вход команд блока формирования заданий для АЛУ является входом команд узла формирования очереди заданий, синхровход блока формирования заданий для АЛУ является синхровходом для всех регистров очереди заданий, вход занятости блока формирования заданий для АЛУ является входом занятости узла заданий, выход заданий узла формирования очереди заданий соединен с входами информационными всех регистров очереди заданий, выход разрешения узла формирования очереди заданий соединен с входами разрешения всех регистров очереди заданий, выход синхронного сброса узла формирования очереди заданий является выходом блока формирования заданий для АЛУ, выходы информационные регистров с 2 по N очереди заданий соединены с группами с 2 по N информационного входа узла формирования очереди заданий, выходы информационные всех регистров очереди заданий соединены с входом информационным узла вывода заданий, выход заданий узла вывода заданий соединен с выходом операндов блока формирования заданий для АЛУ, выходом команд блока формирования заданий для АЛУ, выходом признаков блока формирования заданий для АЛУ, выход сброса узла вывода заданий соединен с входом сброса узла формирования очереди заданий.Описание изобретения к патенту
Изобретение относится к вычислительной технике и может быть использовано в электронной цифровой вычислительной машине. Известно вычислительное устройство, содержащее блок центрального процессора, блок микропрограммного управления, включающий в себя регистр команд и регистр микрокоманд, блок постоянной памяти микропрограмм, включающий в себя регистр микрокоманд [1]В известном устройстве код выполняемой микрооперации поступает параллельно на все арифметико-логические (вычислительные) секции, входящие в состав блока центрального процессора. Код микрооперации дешифрируется в каждой арифметико-логической секции, определяя настройку всего процессорного блока на выполнение одной микрооперации. Причиной низкой производительности известного устройства является необходимость настройки одновременно всех арифметико-логических секций процессорного блока на обработку операндов, разрядность которых составляет половину, четверть и т.д. от длины операнда, для которого существует возможность его единовременной обработки процессорным блоком. Задачей изобретения является создание устройства, позволяющего за счет раздельного микропрограммного управления арифметико-логическими секциями, входящими в состав процессорного блока, выделять для обработки операндов число вычислительных секций, суммарная разрядность в точности соответствует разрядности этих операндов, а также совмещать обработку нескольких операндов одновременно, в случае отсутствия зависимости между этими операндами по требуемым для их обработки вычислительным секциям. В результате, созданное устройство обладает более высокой производительностью за счет того, что арифметико-логические секции, входящие в состав процессорного блока, управляются микропрограммно независимо друг от друга, позволяя тем самым выделять для обработки операндов число вычислительных секций, суммарная разрядность которых в точности соответствует разрядности этих операндов, а также совмещать обработку нескольких операндов одновременно, в случае отсутствия зависимости между этими операндами по требуемым для их обработки вычислительным секциям. Сущность изобретения состоит в том, что модульное вычислительное устройство с раздельным микропрограммным управлением арифметико-логическими секциями, содержит блок центрального процессора, блок микропрограммного управления, блок постоянной памяти микропрограмм, отличается тем, что в него введены (N-1) блоков микропрограммного управления, блок формирования заданий для АЛУ, причем вход операндов устройства является входом операндов блока формирования заданий для АЛУ, вход команд устройства является входом команд блока формирования заданий для АЛУ, синхровход устройства является синхровходом блока формирования заданий для АЛУ, выход данных блока центрального процессора является выходом данных устройства, выход признаков блока центрального процессора соединен с первыми группами входов признаков всех блоков микропрограммного управления, первые группы выходов признаков всех блоков микропрограммного управления соединены с входом признаков блока центрального процессора, вторые группы выходов признаков всех блоков микропрограммного управления соединены с входом занятости блока формирования заданий для АЛУ, выходы адреса микрокоманд всех блоков микропрограммного управления соединены с входом адресов микрокоманд блока N-портовой постоянной памяти микропрограмм, выход микроопераций блока N-портовой постоянной памяти микропрограмм соединен с входом микроопераций блока центрального процессора, выход управления адресом блока N-портовой постоянной памяти микропрограмм соединен с входами управления адресом всех блоков микропрограммного управления, выход операндов блока формирования заданий для АЛУ соединен с входом операндов блока центрального процессора, выход команд блока формирования заданий для АЛУ соединен с входами команд всех блоков микропрограммного управления, выход признаков блока формирования заданий для АЛУ соединен со вторыми группами входов признаков всех блоков микропрограммного управления, выход блока формирования заданий для АЛУ является выходом управления устройства, в результате чего арифметико-логические вычислительные секции, входящие в состав процессорного блока, управляются микропрограммно независимо друг от друга, позволяя тем самым выделять для обработки операндов число секций суммарная разрядность которых в точности соответствует разрядности этих операндов, а также совмещать обработку нескольких операндов одновременно, в случае отсутствия зависимости между этими операндами по требуемым для их обработки вычислительным секциям. Введение в устройство (N-1) блоков микропрограммного управления позволяет обеспечить раздельное микропрограммное управление N арифметико-логическими секциями, входящими в состав процессорного блока. Использование в устройстве блока N-портовой постоянной памяти микропрограмм позволяет обеспечить бесконфликтную адресацию постоянной памяти микропрограмм со стороны N блоков микропрограммного управления и параллельную выдачу микроопераций на N арифметико-логическими секциями в составе блока центрального процессора. Введение в устройство блока формирования заданий для АЛУ, позволяет обеспечить загрузку всех арифметико-логических секций с максимально возможным коэффициентом их использования для конкретного случая выполнения операций и форматов обрабатываемых операндов. Блок формирования заданий для АЛУ содержит узел формирования очереди заданий, N регистров очереди заданий, узел вывода заданий, причем вход операндов блока формирования заданий для АЛУ является входом операндов узла формирования очереди заданий, вход команд блока формирования заданий для АЛУ входом команд узла формирования очереди заданий, синхровход блока форсирования заданий для АЛУ является синхровходом для всех регистров очереди заданий, вход занятости блока формирования заданий для АЛУ является входом занятости узла вывода заданий, выход заданий узла формирования очереди заданий соединен с входами информационными всех регистров очереди заданий, выход разрешения узла формирования очереди заданий соединен с входами разрешения всех регистров очереди зданий, выход синхронного сброса узла формирования очереди заданий соединен с входами сброса всех регистров очереди заданий и является выходом блока формирования заданий для АЛУ, выходы информационные регистров со 2 по N очереди заданий соединены с группами со 2 по N входа информационного узла формирования очереди заданий, выходы информационные всех регистров очереди заданий соединены с входом информационным узла вывод заданий, выход заданий узла вывода заданий соединен с выходом операнда блока формирования заданий для АЛУ, выходом команд блока формирования заданий для АЛУ, выходом признаков блока формирования заданий для АЛУ, выход сброса узла вывода заданий соединен с входом сброса узла формирования очереди заданий. На фиг. 1 представлена структурная блок-схема модульного вычислительного устройства с раздельным микропрограммным управлением арифметико-логическими секциями; на фиг. 2 схема блока формирования заданий для АЛУ; на фиг. 3 - пример реализации узла формирования очереди заданий; на фиг. 4 пример реализации узла вывода заданий. На фиг. 1 обозначены блок центрального процессора 1, N блоков микропрограммного управления 2, блок N-поротовой постоянной памяти микропрограмм 3, блок формирования заданий для АЛУ 4. Вход операндов устройства является входом 5 операндов блока формирования заданий для АЛУ 4, вход команд устройства является входом 6 команд блока формирования заданий для АЛУ 4, синхровход устройства является синхровходом 7 блока формирования заданий для АЛУ 4. Выход 8 данных блока центрального процессора 1 формируется из N выходных операндов (частей операндов) и является выходом данных устройства. Выход 9 признаков блока центрального процессора 1 формируется из выходных признаков всех вычислительных секций блока центрального процессора 1 и соединен с первыми группами входов 10 признаков всех блоков микропрограммного управления 2. Первые группы выходов 11 признаков всех блоков микропрограммного управления 2 формируются из входных признаков для вычислительных секций блока центрального процессора 1 и соединены с входом 12 признаков блока центрального процессора 1. Вторые группы выходов 11 признаков всех блоков микропрограммного управления 2 формируются из признаков занятости вычислительных секций блока центрального процессора 1 в следующем такте работы вычислительного устройства и соединены с входом 13 занятости блока формирования заданий для АЛУ 4. Выходы 14 адреса микрокоманд всех блоков микропрограммного управления 2 формируются из адреса микрокоманд и соединены с входом адресов микрокоманд блока N-портовой постоянной памяти микропрограмм 3. Выход 15 микроопераций блока N-портовой постоянной памяти микропрограмм 3 формируется из N микрокоманд и соединен с входом микроопераций блока центрального процессора 1. Выход 16 управления адресом блока N-портовой постоянной памяти микропрограмм 3 формируется из N групп управления адресом и соединен с входами 17 управления адресом всех блоков микропрограммного управления 2. Выход 18 операндов блока формирования заданий для АЛУ 4 формируется из N секционных операндов для N секций блока центрального процессора с1 и соединен с входом операндов блока центрального процессора 1. Выход 19 команд блока формирования заданий для АЛУ 4 формируется из N секционных кодов операций команд и соединен с входами 20 команд всех блоков микропрограммного управления 2. Выход 21 признаков блока формирования заданий для АЛУ 4 формируется из N секционных признаков для управления N секциями блока центрального процессора 1 и соединен со вторыми группами входов 10 признаков всех блоков микропрограммного управления 2. Выход 22 блока формирования заданий для АЛУ 4 формируется из сигнала, разрешающего поступление в вычислительное устройство очередной команды с относящимся к ней операндом и является выходом управления устройства. На фиг. 2 обозначены узел формирования очереди заданий 23, N регистров очереди заданий 24, узел вывода заданий 25. Вход 5 операндов блока формирования заданий для АЛУ 4 является входом операндов узла формирования очереди заданий 23 вход 6 команд блока формирования заданий для АЛУ 4 является входом команд узла формирования очереди заданий 23, синхровход 7 блока формирования заданий для АЛУ 4 является синхровходом для всех регистров очереди заданий 24, вход 13 занятости блока формирования заданий для АЛУ 4 является входом узла вывода заданий 25. Выход 26 заданий узла формирования очереди заданий 23 формируется из операндов N заданий, кодов операций команд N заданий, тэгов N заданий и соединен с входами 27 информационными всех регистров очереди заданий 24. Выход 28 разрешения узла формирования очереди заданий 23 формируется из сигналов разрежения записи N заданий в N регистров очереди заданий 24 и соединен с входами 29 разрешения всех регистров очереди заданий 24. Выход 22 синхронного сброса узла формирования очереди заданий 23 формируется из N+1 сигналов сброса, N из которых соединены с входами 30 сброса всех регистров очереди заданий 24, а N+1-ый является выходом блока формирования заданий для АЛУ 4. Выходы 31 информационные всех регистров очереди заданий 24 соединены с входом 32 информационным узла формирования очереди заданий 23 и с входом 33 информационным узла вывода заданий 25. Выход 34 заданий узла вывода заданий 25 формируется из N секционных операндов для N вычислительных секций блока центрального процессора 1, являющихся выходом 18 операндов блока формирования заданий для АЛУ 4, N секционных кодов операций команд для всех блоков микропрограммного управления 2, являющихся выходом 19 команд блока формирования заданий для А У 4, N секционных признаков для всех блоков микропрограммного управления 2, являющихся выходом 21 признаков блока формирования заданий для АЛУ 4. Выход 35 сброса узла вывода заданий 25 формируется из N сигналов сброса и соединен с входом 36 сброса узла формирования очереди заданий 23. На фиг. 3 обозначены элемент начального формирования задания 37, N входных мультиплексоров 38, N схем N-ИЛИ 39, элемент уплотнения очереди заданий 40, N мультиплексоров 41. Вход 32 информационный узла формирования очереди заданий 23 является первой группой входов 42 информационных всех мультиплексоров 41 и входами 43 информационными всех систем схем N-ИЛИ 39, вход 5 операндов узла формирования очереди заданий 23 является входами информационными всех входных мультиплексоров 38, первая группа входа 6 команд узла формирования очереди заданий 23 является третьей группой 44 входов 42 информационных всех мультиплексоров 41, вторая группа входом 45 числа требуемых секций элемента начального формирования задания 37, третья группа - входом 46 номера первой требуемой секции элемента начального формирования задания 37. Вход 36 сброса узла формирования очереди заданий 23 является входом сброса элемента уплотнения очереди заданий 40. Выход 47 адреса элемента начального формирования задания 37 формируется их N адресов и соединен с входами 48 адреса всех входных мультиплексоров 38. Выход 49 информационный элемента начального формирования задания 37 формируется из тэгов задания и является четвертой группой входов 42 информационных всех мультиплексоров 41. Выходы 50 информационные всех входных мультиплексоров 38 формируются из операнда нового задания и являются второй группой входов 42 информационных всех мультиплексоров 38. Выходы 51 информационные всех схем N-ИЛИ 39 формируются из признаков занятости регистров очереди заданий 24 и соединены с входом 52 информационным элемента уплотнения очереди заданий 40. Выход 53 адреса элемента уплотнения очереди заданий 40 формируется из N адресов и соединен с входами 54 адреса всех мультиплексоров 41. Выход 28 разрешения элемента уплотнения очереди заданий 40 формируется из N сигналов разрешения и является выходом разрешения узла формирования очереди заданий 23. Выход 22 синхронного сброса элемента уплотнения очереди заданий 40 формируется из N+1 сигналов синхронного сброса и является выходом синхронного сброса узла формирования очереди заданий 23. Выходы 26 информационные всех мультиплексоров 41 формируются из N заданий и являются выходом заданий узла формирования очереди заданий 23. На фиг. 4 обозначены элемент анализа возможности вывода заданий 55, N выходных мультиплексоров 56. Первая группа входа 33 информационного узла вывода заданий 25 является первой группой входов 57 информационных всех выходных мультиплексоров 57, вторая группа входом 58 тэгов элемента анализа возможности вывода заданий 55. Вход 13 занятости узла вывода заданий 25 является входом занятости элемента анализа возможности вывода заданий 55. Выход 59 информационный элемента анализа возможности вывода заданий 55 формируется из N относительных номеров операндов, которые начнут обрабатываться в блоке центрального процессора 1 в следующем такте работы вычислительного устройства, и является второй группой входов 57 информационных всех выходных мультиплексоров 56. Выход 60 адреса элемента анализа возможности вывода заданий 55 формируется из N адресов и соединен с выходами 61 адреса всех выходных мультиплексоров 56. Выход 35 разрешения элемента анализа возможности вывода заданий 55 формируется из N сигналов разрешения и соединен с входами 62 разрешения всех выходных мультиплексоров 56 и является выходом сброса узла вывода заданий 25. Выходы 34 информационные всех выходных мультиплексоров 56 формируются из N заданий для N вычислительных секций блока центрального процесса 1 и являются выходом заданий узла вывода заданий 25. Работа вычислительного устройства с раздельным микропрограммным управлением арифметико-логическими секциями (фиг. 1) заключается в выполнении последовательности поступающих в устройство команд над поступающими в устройство операндами. На вход 5 операндов устройства подается входной операнд. Вход 5 операндов устройства состоит из N равных групп разрядности m по числу вычислительных секций в блоке центрального процессора 1. Блок центрального процессора 1 вычислительного устройства взят без изменений из состава модульного микропроцессора с микропрограммным управлением [1] Он содержит N идентичных по выполняемым функциям арифметико-логических вычислительных секций. Каждый из входов и выходов блока центрального процессора 1 состоит из N групп. Каждая группа входов и выходов блока центрального процессора 1 соединена с одной из N входящих в блок центрального процессора 1 вычислительных секций. Минимальная разрядность входного операнда равна разрядности m одной вычислительной секции, входящей в состав блока центрального процессора 1, а максимальная суммарной разрядности N вычислительных секций, т.е. m*N бит (в случае, когда разрядность входного операнда меньше максимальной разрядности операнда, входной операнд поступает в вычислительное устройство, прижатый к правому краю входа 5 операндов устройства (разрядной сетки). Не является существенным, как конкретно формируются поступающие в устройство операнды, поэтому соответствующие цепи и устройства не показаны. Каждый операнд поступает на вход 1 операндов устройства одновременно с командой, к которой он относится. Входные команды поступают в вычислительное устройство на вход 6 команд устройства. Не являются существенным, как конкретно формируются поступающие в устройство команды, поэтому соответствующие цепи и устройства не показаны. Каждая входящая в вычислительное устройство команда состоит из трех групп: группы кода операции команды; группы, определяющей количество арифметико-логических секций блока центрального процессора 1, требуемых для обработки относящегося к команде операнда; группы, определяющей номер первой арифметико-логической; секции, начиная с которой будет выделяться требуемое количество последовательно расположенных секций блока центрального процессора 1 для обработки относящегося к команде операнда. Разрядность группы кода операции команды выбирается исходя из размера системы команд конкретно реализуемого вычислительного устройства и равна Log2 от этого количества (ближайшему целому сверху от Log2 от этого количества в случае неравенства нулю дробной части Log2 от этого количества). Разрядность группы, определяющей количество арифметико-логических секций блока центрального процессора 1, требуемых для обработки относящегося к команде операнда, равна Log2 (N) (ближайшему целому сверху от Log2(N) в случае неравенства нулю дробной части Log2 (N)). Разрядность группы, определяющей номер первой арифметико-логической секции, начиная с которой будет выделяться требуемое количество секций блока центрального процессора 1 для обработки относящегося к команде операнда, равна Log2(N) (ближайшему целому сверху от Log2(N) в случае неравенства нулю дробной части Log2(N)). На синхровход 7 устройства подаются синхроимпульсы от внешнего источника синхросигналов. Не является существенным, как конкретно формируются синхроимпульсы, поэтому соответствующие цепи и источник синхросигналов не показаны. С входа операндов устройства новые операнды, входа команд устройства новые команды, синхровхода устройства синхроимпульсы поступают на вход 5 операндов, вход 6 команд, синхровход 7 блока формирования заданий для АЛУ 4, соответственно. Внутри блока формирования заданий для АЛУ 4 существует очередь заданий, состоящая из N регистров очереди заданий. Каждый из регистров очереди заданий может содержать только одно задание. При этом каждое задание содержит в себе информацию о номерах вычислительных секций блока центрального процессора 1, необходимых для обработки входящего в это задание операнда. Формирование и постановка нового заданий в очередь заданий осуществляется только в случае появления в очереди заданий хотя бы одного свободного места. Новое задание составляется определенным образом из команды, поступающей на вход 6 команд блока формирования заданий для АЛУ 4 и операнда, относящегося к этой команде и поступающего на вход 5 операндов блока формирования заданий для АЛУ 4. О наличии в очереди заданий хотя бы одного свободного места сигнализирует появление логической "1" на одноразрядном выходе 22 блока формирования заданий для АЛУ 4, который является выходом управления устройства. Логическая "1" на одноразрядном выходе управления устройства используется как сигнал, разрешающий поступление в устройство очередной команды с относящимся к ней операндом. Не является существенным, куда конкретно подается сигнал с выхода управления устройства, поэтому соответствующие цепи и устройства не показаны. Для выдачи заданий из очереди заданий на выполнение в АЛУ необходимо, чтобы в блоке центрального процессора 1 были бы свободными в следующем такте работы вычислительного устройства те арифметико-логические секции, которые потребуются для выполнения заданий из очереди заданий, не перекрывающихся по требуемым им вычислительным секциям (приоритет выполнения задания определяется местоположением этого задания в очереди заданий относительно ее начала)). О занятости в следующем такте работы вычислительного устройства арифметико-логических секций блока центрального процессора 1, на вход 13 занятости блока формирования заданий для АЛУ 4 поступают сигналы со вторых групп выходов 11 признаков всех блоков микропрограммного управления 2 (от каждого из N блоков микропрограммного управления 2 поступает одноразрядный сигнал о занятости (логическая "1")) в следующем такте работы вычислительного устройства управляемой им арифметико-логической секции в блоке центрального процессора 1). На основе информации о занятости вычислительных секций в следующем такте работы вычислительного устройства и информации о требуемых вычислительных секциях заданиям, находящимся в очереди заданий (обработка операнда одного задания для АЛУ может потребовать от одной до N вычислительных секций, в зависимости от формата этого операнда), в блоке формирования заданий для АЛУ 4 принимается решение о выдаче заданий на выполнение в АЛУ. При этом для каждой из вычислительных секций, которые будут заняты в следующем такте работы вычислительного устройства выдаваемыми заданиями, формируется свое секционное задание. Каждое секционное задание состоит из трех составляющих: секционного операнда, секционного кода операции команды, секционного признака. Разрядность секционного операнда равна разрядности одной вычислительной секции m. Разрядность секционного кода операции команды повторяет разрядность группы операции поступающей в вычислительное устройство команды. Разрядность секционного признака равна Log2(N) (ближайшему целому сверху от Log2(N) в случае неравенства нулю дробной части Log2(N). Секционные операнды с выхода 18 операндов блока формирования заданий для АЛУ 4 поступают через вход операндов блока центрального процессора 1 на требуемые для их обработки арифметико-логические секции. Одновременно с этим секционные коды операций команд с выхода 19 команд блока формирования заданий для АЛУ 4 поступают на входы 20 команд соответствующих блоков микропрограммного управления 2. В то же время секционные признаки с выхода 21 признаков блока формирования заданий для АЛУ 4 поступают на вторые группы входов 10 признаков соответствующих блоков микропрограммного управления 2. Каждый из N блоков микропрограммного управления 2 работает независимо от остальных N-1 блоков микропрограммного управления 2, входящих в модульное вычислительное устройство, и независимо осуществляет микропрограммное управления относящейся к нему арифметико-логической секцией в составе блока центрального процессора 1, при этом конкретная реализация блоков микропрограммного управления 2 не является существенной [2]
В процессе микропрограммного управления работой вычислительного устройства секционные коды операций команд, поступившие на входы 20 команд соответствующих блоков микропрограммного управления 2, преобразуются в этих блоках в адреса первых микрокоманд, определяющих начала последовательностей микрокоманд, выполнение которых приведет к выполнению поступивших в соответствующие блоки микропрограммного управления 2 секционных кодов операций команд. Затем адреса первых микрокоманд, в общем случае текущих, поступают через выходы 14 адреса микрокоманд соответствующих блоков микропрограммного управления 2 на вход адресов микрокоманд блока N-портовой постоянной памяти микропрограмм 3. Блок N-портовой постоянной памяти микропрограмм 3 вычислительного устройства содержит память микропрограмм, полностью повторяющую память микропрограмм блока постоянной памяти микропрограмм модульного микропроцессора с микропрограммным управлением [1] Число входных портов в блоке N-портовой постоянной памяти микропрограмм 3 равно N, что позволяет всем блокам микропрограммного управления 2 независимо друг от друга обращаться к памяти микропрограмм блока N-портовой постоянной памяти микропрограмм 3 без возникновения конфликтных ситуаций между ними. При этом разрядность каждого из входных портов блока N-портовой постоянной памяти микропрограмм 3 совпадает с разрядностью единственного входного порта в блоке постоянной памяти микропрограмм модульного микропроцессора с микропрограммным управлением [1] Через каждый из N регистров микрокоманд блока N-портовой постоянной памяти микропрограмм 3, разрядность каждого из которых совпадает с разрядностью единственного регистра микрокоманд блока постоянной памяти микропрограмм модульного микропроцессора с микропрограммным управлением [1] осуществляется независимая настройка каждой из N арифметико-логических секций, входящих в состав блока центрального процессора 1, на выполнение своей микрокоманды. Через каждый из N портов выхода управления адресом блока N-портовой постоянной памяти микропрограмм 3, разрядность каждого из которых совпадает с разрядностью единственного выхода управления адресом блока постоянной памяти микропрограмм модульного микропроцессора с микропрограммным управлением [1] осуществляется независимая передача признаков управления адресом N блокам микропрограммного управления [2] Конкретная реализация блока N-портовой постоянной памяти микропрограмм 3 не является существенной [3, 4]
В блоке N-портовой постоянной памяти микропрограмм 3 происходит преобразование адресов текущих микропрограмм в адресуемые ими текущие микропрограммы и информацию для формирования адресов следующих микрокоманд, в рамках выполнения поступивших в соответствующие блоки микропрограммного управления 2 секционных кодов операций команд. Микрокоманды через выход 15 микроопераций блока N-портовой постоянной памяти микропрограмм 3 поступают через вход микроопераций блока центрального процессора 1 на соответствующие вычислительные секции. Одновременно с этим с первых групп выходов 11 признаков соответствующих блоков микропрограммного управления 2 на вход 12 признаков блока центрального процессора 1 поступают признаки, однозначно настраивающие соответствующие вычислительные секции на реализацию конкретных микрокоманд. Совместно с информацией для формирования адресов, поступающей с выхода 16 управления адресом блока N-портовой постоянной памяти микропрограмм 3 на входы 17 управления адресом соответствующих блоков микропрограммного управления 2, в процессе выработки адресов следующих микроопераций (в рамках выполнения текущих секционных кодов операций команд) участвуют также признаки, поступающие от соответствующих вычислительных секций (после выполнения ими текущих микрокоманд) с выхода 9 признаков блока центрального процессора 1 на первые группы входов 10 признаков соответствующих блоков микропрограммного управления 2. Процесс в рамках каждого из N блоков микропрограммного управления 2 повторяется до тех пор, пока не будут выполнены все микрокоманды, выполнение которых определяет выполнение поступившего в этот блок микропрограммного управления 2 секционного коды операции команды. На выход данных устройства поступают операнды с выхода 8 данных блока центрального процессора 1. Не является существенным, куда конкретно затем поступают выходные данные, поэтому соответствующие цепи и устройства не показаны. Работа блока формирования заданий для АЛУ 4 (фиг. 2) заключается в определении наличия свободного места в очереди заданий, формировании заданий из впервые поступающих в вычислительное устройство команд с относящимися к ним операндами, постановке сформированных новых заданий в очередь заданий, продвижении заданий по очереди заданий, выделении для обработки операнда, входящего в состав первого в очереди задания, требуемы для его обработки вычислительных секций, а также выяснения возможности одновременной обработки нескольких операндов, относящихся к разным, не перекрывающимся по требуемым им вычислительным секциям, заданиям. Блок формирования заданий для АЛУ 4 содержит очередь заданий, выполненную из N регистрах очереди заданий 24. Каждое задание из очереди заданий содержит в своем составе: операнд, код операции команды, тэги. Операнд задания имеет разрядность, равную максимальную формату операнда, который мог быть единовременно обработан в конкретной реализации вычислительного устройства (N*m бит). Операнд, в свою очередь, подразделяется на N равны групп разрядности m по числу вычислительных секций в блоке центрального процессора 1. Разрядность кода операции команды задания равна разрядности группы кода операции входящей в вычислительное устройство команды. Тэги задания имеют разрядность N бит (в рамках задания каждый из битов тэгов ответственен за одну из групп операнда). Присутствие в разряде тэгов логической "1" говорит о том, что соответствующая этому разряду группа в операнде занята операндом или его частью, если разрядность этого операнда превышает разрядность одной вычислительной секции m. Первая группа выхода 32 информационного одного регистра очереди заданий 24 является операндом задания, записанного в этом регистре. Вторая группа выхода 31 информационного одного регистра очереди заданий 24 является кодом операции команды задания, записанного в этом регистре. Третья группа выхода 31 информационного одного регистра очереди заданий 24 является тэгами задания, записанного в этом регистре. С выходов 31 информационных всех регистров очереди заданий 24 N заданий поступают на вход 33 информационный узла вывода заданий 25. Одновременно с этим на вход занятости узла вывода заданий 25 с входа 13 занятости блока формирования заданий для АЛУ 4 поступают N Одноразрядных сигналов о занятости в следующем такте работы вычислительного устройства N арифметико-логических секций блока центрального процессора 1. Работа узла вывода заданий 25 (фиг. 4) заключается в анализе занятости N арифметико-логических секций в следующем такте работы вычислительного устройства, генерации и выдаче на выполнение до N секционных заданий одновременно, в зависимости от требуемых заданиям из очереди заданий вычислительных секций. C входа 33 информационного узла вывода заданий 25 тэги N заданий поступают на вход 58 тэгов элемента анализа возможности вывода заданий 55. С входа 13 занятости вывода заданий 25 N одноразрядных сигналов о занятости N вычислительных секций в следующем такте работы вычислительного устройства поступают на вход занятости элемента анализа возможности вывода заданий 55 (при этом присутствие логической "1" в соответствующем бите говорит о занятости соответствующей вычислительной секции в следующем такте работы вычислительного устройства). В элементе анализа возможности вывода заданий 55 происходит определение множества заданий, которые могут быть выданы на выполнение из очереди заданий в следующем такте работы вычислительного устройства. Выход 59 информационный элемента анализа возможности вывода заданий 55 состоит из N относительных номеров групп операндов, выдаваемых на обработку в АЛУ в следующем такте работы вычислительного устройства. Разрядность относительного номера группы операнда равна Log2(N) (ближайшему целому сверху от Log2(N) в случае неравенства нулю дробной части Log2 (N). Наличие относительных номеров групп операндов внутри операндов необходимо при единовременной обработке операнда, разрядность которого превышает разрядность одной вычислительной секции m. Операнды, коды операций команд N заданий с входа 33 информационного узла вывода заданий 25, N групп выхода 59 информационного элемента анализа возможности вывода заданий 55 поступают на входы 57 информационные всех выходных мультиплексоров 56.Причем, на 1-ую группу входа информационного j-го выходного мультиплексора 56 поступают: j-ая группа j-го операнда из N заданий; i-ый код операции команды из N заданий; i-ая группа выхода 59 информационного элемента анализа возможности вывода заданий 55. В результате этого, с выхода j-ого выходного мультиплексора 56 снимается секционное задание для j-ой вычислительной секции блока центрального процессора 1, которое, в принципе, может быть сформировано из: j-ой группы любого операнда из N заданий; любого кода операции команды из N заданий; любой группы выхода 59 информационного элемента анализа возможности вывода заданий 55. С выхода 60 адреса элемента анализа возможности вывода заданий 55 N адресов, задающие выдаваемые секционные задания, поступают на входы 61 адреса всех выходных мультиплексоров 56. Разрядность входа 61 адреса одного выходного мультиплексора 56 равна Log2 (N)(ближайшему целому сверху от Log2(N) в случае неравенства нулю дробной части Log2(N). С выхода 35 разрешения элемента анализа возможности вывода заданий 55 N одноразрядных сигналов разрешения поступают на входы разрешения всех выходных мультиплексоров 56 и на выход сброса узла вывода заданий 25, рассматриваемые уже как информация о заданиях, которые начнут выполняться в А У в следующем такте работы вычислительного устройства. Секционные задания для N вычислительных секций блока центрального процессора 1 поступают с выходов 34 информационных всех выходных мультиплексоров 56 на выход заданий узла вывода заданий 25. С выхода 34 заданий узла вывода заданий 25 секционные задания поступают, разделяясь, на выход 18 операндов, выход 19 команд, выход 21 признаков блока формирования заданий для АЛУ 4. Задания, которые начнут выполняться в АЛУ в следующем такте работы вычислительного устройства, должны после выдачи их на выполнение быть удалены из очереди заданий. С выхода 35 сброса узла вывода заданий 25 информация о заданиях, которые начнут выполняться в АЛУ в следующем такте работы вычислительного устройства, поступает на вход 36 сброса узла формирования очереди заданий 23 (наличие логической "1" в бите, ответственном за задание из соответствующего регистра очереди заданий 24 означает, что это задание начнет выполняться в АЛУ в следующем такте работы вычислительного устройства)). С выходов 31 информационных со 2 по N-ый регистров очереди заданий 24 задания поступают также на вход 32 информационный узла формирования очереди заданий 23, (поступление в узел формирования очереди заданий 23 задания из первого регистра очереди заданий 24 не требуется, поскольку его нет необходимости перемещать по направлению к началу очереди заданий). Работа узла формирования очереди заданий 23 (фиг. 3) заключается в анализе текущего состояния очереди заданий, формировании заданий из впервые поступающих в вычислительное устройство команд с относящимися к ним операндами, выработке управляющих сигналов, согласно которым происходит движение заданий по очереди заданий. С входа 32 информационного узла формирования очереди заданий 23 тэги N заданий поступают на входы 43 информационные всех схем N-ИЛИ 39. В каждой из N-ИЛИ 39 осуществляется проверка тэгов задания из соответствующего регистра очереди заданий 24 на ненулевое состояние и вырабатывается одноразрядной признак занятости соответствующего регистра очереди заданий 24 на выходе 51 информационном соответствующей схемы N-ИЛИ 39 (при этом присутствие логической "1" в соответствующем бите говорит о занятости соответствующего регистра очереди заданий 24). С выходов 51 информационных всех схем N-ИЛИ 39 N одноразрядных признаков занятости всех регистров очереди заданий 24 поступают на N-разрядный вход 52 информационный элемента уплотнения очереди заданий 40. С выхода 36 сброса узла формирования очереди заданий 23 информация, о выбранных узлом вывода заданий 25 заданиях из очереди заданий для выполнения в АЛУ, поступает на N-разрядный вход сброса элемента уплотнения очереди заданий 40. Таким образом, в элементе уплотнения очереди заданий 40 имеется полная информация о текущем состоянии измененной очереди заданий и имеется возможность (при наличии в измененной очереди хотя бы одного свободного места) уплотнить измененную очередь заданий и/или добавить в измененную очередь новое задание. Выработка элементом уплотнения очереди заданий 40 N+1-огно сигнала синхронного сброса, равного логической "1", соответствует факту наличия в измененной очереди заданий хотя бы одного свободного места. С выхода 22 синхронного сброса элемента уплотнения очереди заданий 40 N+1 одноразрядных сигналов синхронного сброса поступают на выход синхронного сброса узла формирования очереди заданий 23. Таким образом, еще до начала процесса уплотнения измененной очереди заданий с выхода 22 синхронного сброса узла формирования очереди заданий 23 (фиг. 2) N+1-ый сигнал поступает на выход блока формирования заданий для АЛУ 4, а с него (фиг. 1) на выход управления устройства, что вызывает появление новой команды через вход 6 команд устройства на входе команд блока формирования заданий для АЛУ 4 с относящимся к ней операндом, поступающим через вход 5 операндов устройства на вход операндов блока формирования заданий для АЛУ 4. С входа 6 команд, входа 5 операндов блока формирования заданий для АЛУ 4 новая команда с относящимся к ней операндом (фиг. 2) поступает на вход команд, вход операндов узла формирования очереди заданий 23, соответственно, и в узле формирования очереди заданий 3 начинается процесс преобразования новой команды с относящимся к ней операндом в новое задание. Операнд, впервые поступающий с входа 5 операндов узла формирования очереди заданий 23 (фиг. 3), подается на входы информационные всех входных мультиплексоров 38. Вторая группа команды, определяющая количество арифметико-логических секций, требуемое для обработки относящегося к команде операнда и третья группа команды, определяющая номер первой арифметико-логической секции, начиная с которой будет выделяться требуемое количество секций для обработки относящегося к команде операнда, подаются с входа 6 команд узла формирования очереди заданий 23 на вход 45 числа требуемых секций и вход 46 номера первой требуемой секции элемента начального формирования задания 37, соответственно. Прохождение нового операнда через N входных мультиплексоров 38 осуществляется под управлением N адресов, поступающих с выхода 47 адреса элемента начального формирования задания 37 на соответствующие входы 48 адреса N входных мультиплексоров 38. Разрядность входа 48 адреса одного входного мультиплексора 38 равна Log2(N) (ближайшему целому сверху от Log2(N) в случае неравенства нулю дробной части Log2(N)). В результате прохождения через входные мультиплексоры 38, новый операнд, изначально прижатый к правому краю разрядной сетки, располагается в тех группах операнда задания, которые соответствуют требуемым для обработки этого операнда вычислительным секциям блока центрального процессора 1. В тэгах формируемого нового задания, поступающего с выхода 49 информационного элемента начального формирования задания 37, содержится информация о размещении нового операнда по группам операнда нового задания (присутствие в разряде тэгов логической "1" говорит о том, что соответствующая этому разряду группа операнда занята операндом или его частью, если разрядность этого операнда превышает разрядность одной вычислительной секции m). С выходов 50 информационных всех входных мультиплексоров 38 снимается расположенный напротив требуемых для его обработки вычислительных секций новый операнд, который соединяясь с кодом операции команды, которым является первая группа входа 6 команд узла формирования очереди заданий 23, и тэгами, поступающим с выхода 49 информационного элемента начального формирования задания 37, образует новое задание. Задания для АЛУ из регистров очереди заданий 24 со 2 по N-ый с входа 32 информационного узла формирования очереди заданий 23 одновременно с новым заданием поступают на входу 42 информационные всех мультиплексоров 41. С выхода 53 адреса элемента уплотнения очереди заданий 40 N адресов поступают на входы 54 адреса всех мультиплексоров 41, задавая тем самым перемещения заданий по очереди заданий. Разрядность входа 54 адреса одного мультиплексора 41 равна Log2(N) (ближайшему целому сверху от Log2(N) в случае неравенства нулю дробной части Log2(N)). N одноразрядных сигналов разрешения поступают с выхода 28 разрешения элемента уплотнения очереди заданий 40 на выход разрешения узла формирования очереди заданий 23. Задания уплотненной очереди заданий поступают с выходов 26 информационных всех мультиплексоров 41 на выход заданий узла формирования очереди заданий 23. С выхода 26 заданий узла формирования очереди заданий 28 (фиг. 2) задания поступают на входы 27 информационные соответствующих регистров очереди заданий 24. Запись заданий уплотненной очереди заданий в регистры очереди заданий 24 обеспечивается присутствием логических "1" на одноразрядных входах 29 разрешения соответствующих регистров очереди заданий 24, поступающих с N-разрядного выхода 28 разрешения узла формирования очереди заданий 23. Для обеспечения корректного содержимого очереди заданий необходимо сбросить в нулевое состояние те регистры очереди заданий 24, которые не были модифицированы в процессе уплотнения очереди и записи в очередь нового задания и не находясь в нулевом состоянии остались за логическим окончанием уплотненной очереди. N одноразрядных сигналов сброса поступают с выхода 22 синхронного сброса узла формирования очереди заданий 213 на одноразрядные входы 30 сброса соответствующих регистров очереди заданий 24. Все операции по записи заданий в соответствующие регистры очереди заданий 24, а также сброс соответствующих регистров очереди заданий 24, осуществляются с приходом разрешающего уровня синхроимпульса с синхровхода 7 блока формирования заданий для АЛУ 4 на cинхровходы всех регистров очереди заданий 24. Представленная табл. 1 задает пример закона функционирования элемента начального формирования задания 37 для случая, когда число вычислительных секций N равно четырем. В табл. 1 обозначены сигналы: "0" логический ноль; "1" логическая единица; "X" конкретное логическое значение сигнала не является существенным. Возможные значения входа 45 числа требуемых секций элемента начального формирования задания 37:
01 для обработки нового операнда требуется одна вычислительная секция;
10 для обработки нового операнда требуются две вычислительные секции;
11 для обработки нового операнда требуются четыре вычислительные секции. Возможные значения входа 46 номера первой требуемой секции элемента начального формирования задания 37:
00 первой секцией должна быть первая вычислительная секция блока центрального процесса 1;
01 первой секцией должна быть вторая вычислительная секция блока центрального процессора 1;
10 первой секцией должна быть третья вычислительная секция блока центрального процессора 1;
11 первой секцией должна быть четвертая вычислительная секция блока центрального процессора 1. Возможные значения компонентов выхода 47 адреса элемента начального формирования задания 37:
00 на выходы 50 информационные входных мультиплексоров 38 проходит информация с первых групп входов 5 информационных этих входных мультиплексоров 38;
01 на выходы 50 информационные входных мультиплексоров 38 проходит информация со вторых групп входов 5 информационных этих входных мультиплексоров 38;
10 на выходы 50 информационные входных мультиплексоров 38 проходит информация с третьих групп входов 5 информационных этих входных мультиплексоров 38;
11 на выходы 50 информационные входных мультиплексоров 38 проходит информация с четвертых групп входов 5 информационных этих входных мультиплексоров 38. Возможные значения компонентов выхода 49 информационного элемента начального формирования задания 37:
0 группа выхода не содержит операнда или его части;
1 группа выхода содержит операнд или его часть. Представленная табл. 2 задает пример закона функционирования элемента уплотнения очереди заданий 40 для случая, когда число вычислительных секций N равно четырем. В табл. 2 обозначены сигналы: "0" логический ноль; "1" - логическая единица; "X" конкретное логическое значение сигнала не является существенным. Возможные значения компонентов входа 52 информационного элемента уплотнения очереди заданий 40:
0 в регистре очереди заданий 24 задания нет;
1 в регистре очереди заданий 24 задание есть. Возможные значения компонентов входа 36 сброса элемента уплотнения очереди заданий 40:
0 задание осталось в очереди заданий;
1 задание будет выдано в АЛУ для выполнения в следующем такте работы вычислительного устройства;
X начальное значение компонента равного логическому "0", однако, значение компонента может быть установлено в логическую "1" в других строках таблицы. Возможные значения компонентов выхода 53 адреса элемента уплотнения очереди заданий 40:
00 на выходы 26 информационные мультиплексоров 41 проходит информация с первых групп входов 42 информационных этих мультиплексоров 41;1 01 на выходы 26 информационные мультиплексоров 41 проходит информация со вторых групп входов 42 информационных этих мультиплексоров 41;
10 на выходы 26 информационные мультиплексоров 41 проходит информация с третьих групп входов 42 информационных этих мультиплексоров 41;
11 на выходы 26 информационные мультиплексоров 41 проходит информация с четвертых групп входов 42 информационных этих мультиплексоров 41. Возможные значения компонентов выхода 28 разрешения элемента уплотнения очереди заданий 40:
0 задание не может пройти через мультиплексор 41;
1 задание может пройти через мультиплексор 41. Возможные значения с 1 по 4 компонентов выхода 22 синхронного сброса элемента уплотнения очереди заданий 40:
0 регистр очереди заданий 24 не должен быть сброшен в нулевое состояние;
1 регистр очереди заданий 24 должен быть сброшен в нулевое состояние. Возможные значения пятого компонента выхода 22 синхронного сброса элемента уплотнения очереди заданий 40:
0 в вычислительное устройство не может быть принята новая команда с относящимся к ней операндом;
1 в вычислительное устройство может быть принята новая команда с относящимся к ней операндом. Представленная табл. 3 задает пример закона функционирования элемента анализа возможности вывода заданий 55 для случая, когда число вычислительных секций N равно четырем. В табл. 3 обозначены сигналы: "0" логический ноль; "1" логическая единица; "X" конкретное логическое значение сигнала не является x существенным. Возможные значения частей компонентов входа 58 тэгов элемента анализа возможности вывода заданий 55:
0 группа входа не содержит операнда или его части;
1 группа входа содержит операнд или его часть. Возможные значения компонентов входа 13 занятости элемента анализа возможности вывода заданий 55:
0 вычислительная секция блока 1 центрального процессора будет свободна в следующем такте работы вычислительного устройства. Возможные значения компонентов выхода 59 информационного элемента анализа возможности вывода заданий 55:
00 группа выхода операнда содержит первую часть операнда;
01 группа выхода операнда содержит вторую часть операнда;
10 группа выхода операнда содержит третью часть операнда;
11 группа выхода операнда содержит четвертую часть операнда. Возможные значения компонентов выхода 60 адреса элемента анализа возможности вывода заданий 55:
00 на выходы 34 информационные выходных мультиплексоров 56 проходит информация с первых групп входов 57 информационных этих выходных мультиплексоров 56;
01 на выходы 34 информационные выходных мультиплексоров 56 проходит информация со вторых групп входов 57 информационных этих выходных мультиплексоров 56;
10 на выходы 34 информационные выходных мультиплексоров 56 проходит информация с третьих групп входов 57 информационных этих выходных мультиплексоров 56;
11 на выходы 34 информационные выходных мультиплексоров 56 проходит информация с четвертых групп входов 57 информационных этих выходных мультиплексоров 56. Возможные значения компонентов выхода 35 разрешения элемента анализа возможности вывода заданий 55:
1 секционное задание может пройти через выходной мультиплексор 56;
X начальное значение компонента равно логическому "0" и секционное задание не может пройти через выходной мультиплексор 56, однако, значение компонента может быть установлено в логическую "1" в других строках таблицы. Список литературы
1. Каган Б.М. Сташин В.В. "Микропроцессоры в цифровых системах", М. Энергия, 1979, 182 с. ил. 2. Каган Б.М. "Электронные вычислительные машины и системы" М. Энергоатомиздат, 1985, 552 с. ил. 3. Лилвик С.Л. Вурхейс Х.Т. Скиннер М.Л. "Разработка многопортовой памяти"/ВЦП. N PE-65149. 22 c. ил. (S.L. Lillevik, H.T. Voorheiss, M.L. Skinner "Multiport Memory Design". International Journal of Mini and Microcomputers, 1982, Vol.4, N 1, p. 18 22). 4. Кантрелл Т. "Статическая микросхема ЗУПВ использует интеллектуальные средства для управления двухпортовым доступом"/ВЦП. N M-42015. 13 c. ил. (Cantrell T. "Statis RAM Uses Smarts to Control Dual-Port Access". - Electronic Design, 1986, Vol 34, N 15, p. 115 -118, 120).
Класс G06F15/16 сочетание двух или более вычислительных машин, каждая из которых снабжена по меньшей мере арифметическим устройством, программным устройством и регистром, например для одновременной обработки нескольких программ