Процессор с совмещением операций
Иллюстрации
Показать всеРеферат
1. ПРОЦЕССОР С СОВМЕЩЕНИЕМ ОПЕРАЦИЙ, содержащий блок основной памяти, регистр команд, счетчик .команд, коммутатор команд, три буферных регистра, регистр форматного кода, первьй блок регистров, блок местной памяти операндов, арифметический блок, два блока сравнения, регистр адреса базы-индекса, блок местной памяти базы-индекса, селектор-мультиплексор базы-индекса, регистр базы-индекса, коммутатор индекса , коммутатор смещения, сумматор адреса, блок модификации адреса микрокоманды , первый блок памяти микрокоманд , первый регистр микрокоманды , регистр адреса микрокоманды, второй блок памяти микрокоманд, второй регистр микрокоманды, регистры первого и второго адреса, счетчик адреса команды, счетчик продвижения адреса и коммутатор адреса, первьй, второй, третий и четвертьй входы данных, первый и второй управляющие входы и выход которого соединены соответственно с выходами счетчика продвижения адреса, регистра первого адреса, регистра второго адреса. счетчика адреса, первыми выходами первого и второго регистров микрокоманды и адресным входом блока основной памяти, вход данных, первый и второй управляющие входы и выход которого подключены соответственно к выходу данных арифметического блока, первым выходам первого и второго регистров микрокоманды и. входу данных регистра команд, синхровход и выход регистра команд соединены соответственно с первым выходом первого регистра микрокоманды и входом данных коммутатора команд , управляющий вход и выход которого подключены соответственно к выходу счетчика команд и входу (Л данных первого буферного регистра, выход первого буферного регистра соединен с входами данных второго буферного регистра и регистра форматного кода и первыми входами данных регистра адреса базы-индекса, селектора-мультиплексора , базы-индекса и Коммутатора смещения, вход дан X ных и выход третьего буферного регистра подключены соответственно к выходу второго буферного регисто :л ра и входу данных первого блока регистров , синхровходы счетчика команд , регистра форматного кода, первого , второго и третьего буферных регистров соединены с первым выходом первого регистра микрокоманды, а выход первого блока регистров подключен к первым входам данных первого блока сравнения, блока местной памяти базы-индекса и блока местной памяти операндов, первый и второй входы данных и выход адреса записи
СОЮЗ СОВЕТСНИХ
СОЦИАЛИСТИЧЕСНИХ
PECllYEillHH (19) (11) 4(51) G 06 Р 15/00
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Н АВТОРСКОМУ СВИДЕТЕЛЬСТВУ
ГОСУДАРСТВЕННЫЙ НОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ (21) 3500748/18-24 (22) 15. 10 .82
М (46) 07.02,85.Вюл. ¹ 5 (72) А.А.Елисеев, В.И.Мацуев, А.Н.Петушков и Т.И.Роговская (53) 68 1. 325(088.8) (56) 1. Патент Великобритании № 1107429, кл. G 4 А, опублик. 1969.
2. Патент CEA № 3651476, кл. 340172.5, опублик. 1972, 3. Патент Великобритании ¹1582815, кл. С 4 А, опублик. 1981 (прототип). (54) (57) i . ПРОЦЕССОР С СОВМЕЩЕНИEN ОПЕРАЦИЙ, содержащий блок основной памяти, регистр команд, счетчик команд, коммутатор команд, три буферных регистра, регистр форматного кода, первый блок регистров, блок местной памяти операндов, арифметический блок, два блока сравнения, регистр адреса базы-индекса, блок местной памяти базы-индекса, селектор-мультиплексор базы †индек, регистр базы-индекса, коммутатор индекса, коммутатор смещения, сумматор адреса, блок модификации адреса микрокоманды, первый блок памяти микрокоманд, первый регистр микрокоманды, регистр адреса микрокоманды, второй блок памяти микрокоманд, второй регистр микрокоманды, регистры первого и второго адреса, счетчик адреса команды, счетчик продвижения адреса и коммутатор адреса, первый, второй, третий и четвертый входы данных, первый и второй управляющие входы и выход которого соединены соответственно с выходами счетчика продвижения адреса, регистра первого адреса, регистра второго адреса, счетчика адреса, первыми выходами первого и второго регистров микрокоманды и адресным входом блока основной памяти, вход данных, первый и второй управляющие входы и выход которого подключены соответственно к выходу данных арифметического блока, первым выходам первого и второго регистров микрокоманды и входу данных регистра команд, синхровход и выход регистра команд соединены соответственно с первым выходом первого регистра микрокоманды и входом данных коммутатора команд, управляющий вход и выход которого подключены соответственно к выходу счетчика команд и входу данных первого буферного регистра, выход первого буферного регистра соединен с входами данных второго буферного регистра и регистра форматного кода и первыми входами данных регистра адреса базы-индекса, селектора-мультиплексора, базы-индекса и коммутатора смещения, вход данных и выход третьего буферного регистра подключены соответственно к выходу второго буферного регистра и входу данных первого блока регистров, синхровходы счетчика команд, регистра форматного кода, первого, второго и третьего буферных регистров соединены с первым выходом первого регистра микрокоманды, а выход первого блока регистров подключен к первым входам данных первого блока сравнения, блока местной памяти базы-индекса и блока местной памяти операндов, первый и второй входы данных и выход адреса записи
1I арифметического блока соединены соответственно с выходом блока основной памяти, выходом и вторым входом данных блока местной памяти операндов, а вход управления обращением блока местной памяти операндов и вход кода операции арифметическо -о блока подключены к первому выходу второго регистра микрокоманды, выход р;— гистра адреса базы-индекса соединен с вторым входом данных первого блока сравнения и адресным входом блока местной памяти базы-индекса,. вход управления обращением, второй вход данных и выход которого подключены соответственно к первому выходу второго регистра микрокоманды, вы-ходу адреса записи арифметического блока и входу данных регистра ба:-ииндекса, выход и синхровхоц которого соединены соответственно с первым входом данных коммутатора индекса и выходом селектора-мультиплексора базы-индекса, второй вход данных которого подключен к выходу регистра форматного кода., вторые входы данных коммутаторов индекса и смещения подключены к выходам регистров первого и второго адреса и выходу счетчика адреса команды, я выходы коммутаторов индекса и смещения соединены соответственно с первым .
B T opbIYi ВхОдами д ян нъ|х c ììBT o ç ÿ адреса, выход которого подключен к входам данных рег::.стров первого и второго адреса и установочному входу счетчика адреса командь ., третий вход данных коммутатора индекса соединен с выходом адреса записи арифметического блока, а управляющий вход коммутатора смещения подключен к первому выходу первого регистра микрокоманды, первый адресный вход, первый, ВТОрой и третий упвявляющие вхОды и выход блока модификации адреса микрокоманды соединены соответственно с выходом регистра форматного кода, пер— вым и вторым выходами rrepooI.o регистра микрокоманды, первым выходом второго регистра микрокомяпды и адресным ВхОдом первОГo Ьлокя пя мяти микрокоманд, выход которого подключен к входу данных первого регистра микрокоманды, первый -,,. Bторой входы данных и выход регистра адреса микрокоманды соединены соответственно с выходом третьего буферного регистра, вторым выходом второго ре38805 гистра микрокоманды и адресным вхоцом второго блока памяти микрокоманд, выход которого подключен к входу данных второго регистра микрокоманды, управляющий вход,. первый и второй входы данных второго блока сравнения соединены с выходами соответственно счетчика продвижения адреса, регистра первого адреса и счетчика ад— реса команды, второй вход данных регистра первого адреса подключен к выходу регистра второго адреса, установочный вхоп счетчика продвиже— ния адреса соединен с выходом счетчика адреса команды. а синхровходы с-Iåò÷èêîâ адреса команды и продвиже— ния адреса и регистров первого и второго адреса подключены к первому выходу первого регистра микрокоманды, отличающийся тем, что, с целью повышения производительности, он содержит второй блок регистров, блок триггеров, мульти— плексный регистр кода коррекции коммутатор адреса коррекции, регистр смещения и два шифратора адрес=, r ри этом первььй и второй BxopbI H выход первого шифратора адреса соединены соответственно с первым выходом .-:ервого регистра микрокоманды. Вьходом мультиплексного регистра кода коррекции и управляющим входом коммутатора индекса, управляющий вход и вход данных коммутатора адре— ся коррекции подключены соответ-. ственно к первому выходу первого регистра микрокомянды и Выходу мультиплексного регистра. кода коррекции, первый выход коммутатора адреса кор-рекции соединеп с синхровходами первого блока регистров и регис .-a адреса микрокоманды, а второй выход коммута-ора адреса коррекции подключен к BToðoìó адресному входу блока модификации адреса микрокоманды, первому входу данных мультиплс ксного регистра кода коррекции и первому скнхровходу регистра смещения, второй синхровход, вход данных и выход которого соединены соответственно с первым выходом первого регистра микрокоманды, вь1ходом псрвого буферного регистра и третьим входом данных коммутатора смещения, первый и второй входы второго шифратора адреса подключены соответственно к выходу мультиплексного регистра кода коррекции и первому
1 138805 та И соединены с первым выходом коммутатора, выход третьего элемента
ИЛИ подключен к первому входу третьего элемента И и входу второго элемента НЕ, выход четвертого элемента И соединен с вторым выходом коммутатора, выход второго элемента HE подключен к первому входу четвертого элемента И, а вторые входы третьего и четвертого элементов И соединены с управляющим входом блока. выходу первого регистра микрокоманды, выход второго шифратора адреса соединен с третьим входом данных селектора-мультиплексора базы-индекса, первым входом блока триггеров, вторым входом данных регистра адреса базы-индекса и первым входом второго блока регистров, второй вход, первый и второй выходы которого подключены соответственно к выходу регистра адреса базы-индекса, управляющему входу первого блока сравнения и синхровходу регистра адреса базы-индекса, второй вход и первый выход блока триггеров соединены соответственно с выходом и управляющим . входом се.-ектора-мультиплексора базы †индек, а синхровход, второй, третий, четвертый и пятый входы данных мультиплексного регистра кода коррекции подключены соответственно к первому выходу второго регист— ра микрокоманды, выходу селекторамультиплексора базы †индек, второму выходу блока триггеров и выходам первого и второго блоков сравнения.
2. Процессор по п:1, о т л ич а ю шийся тем, что коммутатор адреса коррекции содержит два элемента НЕ, четыре элемента И и три элемента ИЛИ., причем вход первого элемента НЕ соединен с входом данных коммутатора, а выход этого элемента НЕ подключен к первым входам первого и второго элементов И, вторые входы которых соединены с входом данных коммутатора, первые входы всех элементов ИЛИ подключены к выходу второго элемента И, вторые входы первого и третьего элементов ИЛИ соединены с входом данных коммутатора, а второй вход второго элемента ИЛИ и третий вход третьего элемента ИЛИ подключены к выходу первого элемента И, выходы первого и второго элементов ИЛИ и третьего элемен3. Процессор по п.1, о т л и ч аю шийся тем, что первыи шифратор адреса содержит два элемента ИЛИ, элемент НЕ и элемент И, первый и второй входы которого соединены соответственно с первым входом шифратора и выходом элемента НЕ, входы и выход первого элемента ИЛИ подключены соответственно к второму входу шифратора и входу элемента НЕ, первый и второй входы и выход второго элемента ИЛИ соединены соответственно с выходом элемента И, вторым входом и выходом блока.
4. Процессор по п.1, о т л и ч аю шийся тем, что, второй шифратор .адреса содержит два сумматора по модулю два, дешифратор, элемент ИЛИ и элемент НЕ, вход и выход которого соединены соответственно с выходом элемента ИЛИ и выходом дешифратора, первые и вторые входы обоих сумматоров по модулю два подключены соответственно к первому и второму входам шифратора, выходы обоих сумматоров по модулю два соединены с входом дешифратора и выходом шифратора, первый и второй входы элемента ИЛИ подключены соответственно к второму входу шифратора и первому выходу дешифратора, другие выходы которого соединены с выходом шифратора.
Изобретение относится к вычисли- Известны процессоры с совмещением тельной технике и может быть исполь- операций, каждый из которых содержит зовано в быстродействующей ЭВМ. основную память, память микрокоманд, 1138805 4 блок адреса и регистр микрокоманды, локальную память операндов, арифметический блок, коммутатор, буфер команд, блок регистров адреса с узлом сравнения, блок компараторов.
При выполнении загрузки информации в локальную память операндов или записи в основную память и при необходимости одновременного вылолнения считывания из той или иной другой памяти на вход арифметического блока поступает адрес ячейки, в которую производится загрузка, или запись сравнивается с адресом считываемой ячейки в блоке компараторов или в узле сравнения соответственно. При сравнении адресов вместо считывания адресованной ячейки на вход арифметического блока передается записываемая информация (1J и Я, За счет такой передачи обеспеч.»вается некоторое повышение быстродействия процессора, однако оно является незначительным из-за низкой степени совмещения операций в 25 данных процессорах, т.е. низкой вероятности возникновения конфликтной ситуации по одновременному считыванию †запи одной и той же ячейки (коммутация записываемых данных вместо считываемых выполняется редко). Кроме того недостатком данных процессоров чвляется функциональная ограниченность технического решения, поскольку оно эффективнс только при одновременности выполнения операций считывания и записи — более или менее значительное фактическое запаздывание операции записи относительно алгоритмически последующих
40 одной или нескольких операций считывания (что характерно для быстродействующих процессоров с совмещением операций) приводит к необходимости использовать другие техни45 ческие решения, например повторное выполнение операций в режиме, когда фактическая последовательность действий совпадает с алгоритмической
{отмена совмещений).
Наиболее близким к предлагаемому техническим решением является процессор с совмещением операций, содержащий блок основной памяти, блок местной памяти, арифметический блок, первый блок сравнения, блок регистров адреса с вторым блоком сравнения, блок обработки команд, два блока памяти микрокоманд, блок адреса микрокоманды, регистр адреса микрокоманды, два регистра микрокоманды, сумматор адреса и два коммутатора.
В известном процессоре второй блок сравнения в блоке регистров адреса и первый блок сравнения используются для отслеживания конфликтных ситуаций, когда запись или загрузка информации происходит в ту же ячейку блоков основнои или местной памяти, из которой ранее осуществлено считывание в блок обработки команд или на вход арифметического блока соответственно. При обнаружении кояфликта выполнение в процессоре операций повторяется, начиная с команды, следующей за командой, в которой производилась запись, вызвавшая конфликт (3j .
Такое повторение выполняется в известном процессоре в режиме от— мены совмещений и требует длительных действий IIQ выполнению блока обработ—
KI. команд, Высокая степень совмещения операций Приводит в известном процессоре к тому, что вероятность возни.сновения конфликтной ситуации по считыванию-записи повышается, поэтому его быстродействие является низким из-за относительно частых и длительных операций по заполнению блока обработки команд.
Цель изобретения — повышение быстродействия процессора. указанная цель достигается тем, что процессор с совмещением операций, содержащий блок основной памяти, регистр коь анд, счетчик команд, коммутатор команд, три буферньгх регистра, регистр форматного кода, первый блок регистров, блок местной памяти опе".:андов,. арифметический блок, два олока сравнения, регистр адреса базы-индекса, блок местной памяти базы-индекса, селектор-мультиплексор базы-индекса, регистр базы-индек."а, коммутатор индекса, коммутатор смещения, сумматор адреса, блок модификации адреса микрокоманды, первый блок памяти микрокоманд, первый регистр миквокоманды, регистр адреса микрокоманды, второи блок памяти микрокоманд, второй регистр микрокоманды, регистры первого и второго адреса счетчик адреса команды, счетчик продвижения адреса и коммутатор адреса „ первый, второй, третий и четf 138805
25 вертый входы данных, первый и второй управляющие входы и выход которого соединены соответственно с выходами счетчика продвижения адреса, регистра первого адреса, регистра 5 второго адреса, счетчика адреса, первыми выходами первого и второго регистров микрокоманды и адресным входом блока основной памяти, вход данных, первый и второй управляющие 10 входы и выход которого подключены соответственно к выходу данных арифметического блока, первым выходам первого и второго регистров микрокоманды и входу данных регистра ко- 15 манд, синхровход и выход регистра команд соединены соответственно с первым выходом первого регистра микрокоманды и входом данных коммутатора команд, управляющий вход и выход 20 которого подключены соответственно к выходу счетчика команд и входу данных первого буферного регистра, выход первого буферного регистра соединен с входами данных второго буферного регистра и регистра форматного кода и первыми входами данных регистра адреса базы-индек-! са, селектора-мультиплексора, базыиндекса и коммутатора смещения, вход данных и выход третьего буферного регистра подключены соответственно к выходу второго буферного регистра и входу данных первого блока регистров, синхровходы счетчика команд, 35 регистра форматного кода, первого, второго и третьего буферных регистров соединены с первым выходом первого регистра микрокоманды, а выход первого блока регистров подключен 40 к первым входам данных первого блока сравнения, блока местной памяти базы-индекса и блока местной памяти операндов, первый и второй входы данных и выход адреса записи ариф-. 45 метического блока соединены соответI ственно с выходом блока оперативной памяти, выходом и вторым входом данных блока местной памяти операндов, а вход управления обращением . блока местной памяти операндов и вход кода операции арифметического блока подключены к первому выходу второго регистра микрокоманды, выход регистра адреса базы-индекса соединен с55 вторым входом данных первого блока сравнения и адресным входом блока местной памяти базы-индекса, вход управления обраще нием, второй вход данных и выход которого подключены соответственно к первому выходу второго регистра микрокоманды, выходу адреса записи арифметического блока и входу данных регистра базы-индекса, выход и синхровход.которого соединены соответственно с первым вхоцом данных коммутатора индекса и выходом селектора-мультиплексора базы-индекса, второй вход данных которого подключен к выходу регистра форматного кода, вторые входы данных коммутаторов индекса и смещения подключены к выходам регистров первого и второго адреса и выхо= ду счетчика адреса команды, а выходы коммутаторов индекса и смещения соединены соответственно с первым и вторым входами данных сумматора адреса, выход которого подключен к входам данных регистров первого и, второго адреса и установочному входу счетчика адреса команды, третий вход данных коммутатора индекса соединен с выходом адреса записи арифметического блока, а управляющий вход коммутатора смещения подключен к первому выходу первого регистра микрокоманды, первый адресный вход, первый, второй и третий управляющие входы и выход блока модификации адреса соединены соответственно с выходом
I регистра форматного кода, первым и вторым выходами первого регистра микрокоманды, первым выходом второго регистра микрокоманды и адресным входом первого блока памяти микрокоманд, выход которого подключен к входу данных первого регистра микрокоманды, первый и второй входы данных и выход регистра адреса микрокоманды соединены соответственно с выходом третьего буферного регистра, вторым выходом второго регистра микрокоманды и адресным входом второго блока памяти микрокоманд, выход которого подключен к входу данных второго регистра микрокоманды, управляющий вход, первый и второй входы данных второго блока сравнения соединены с выходами соответственно счетчика продвижения адреса, регистра первого адреса и счетчика адреса команды, второй вход данных регистра первого адреса подключен к выходу регистра второго адреса, установочный вход счетчика продвижения адреса соединен с выходом счетчика адреса команды, а. Синхравходы счетчиков адреса команды: продви1138805 8 типлексар"; базы-индекса, а синхронход, второ", третий, четвертый и пятый входы данных мультиплексножения адреса и регистров первого и второго адреса подключены к первому выходу первого регистра микрокоманды, cop!rржит второ 1 блок регистров, блок триггеров, мульти»я;к.;bM регистр кода коррекции, =.0."- ут. тор cl!— реса коррекции, регистр смеще»ия и два шифратора адреса, пp» 3TOBI r;ep вый и второй входы и а, ход «ер Ioi а шифратора адреса саед»не»ь1 соответственно с первым выходам первого ции и управляющим входом коммутатора индекса, упранляющии вход и в од да»ных коммутатора адреса коррекции -«дключены соответствен»а K первому
20 выходу первого регистра микракоманды и выходу мультиплексногo perèñTра кода коррекции,:-ергый выход коммутат«ра адреса коррекции саеди— нен с синхровходами первога блока рег1стран и регистра адреса микито†команд:л, .а второй ныхс,,-:. коммутатора
25 адреса коррекции подключен к второму адресному нхад блока модифика— ции адреса,, первому нхацу данных мульЗО ти.".лe c i! 0!.0 perèñ Tpà кода коррекции и первому синхровхаду регистра сме— щения, второй си;-гхровход, вход вЂ,а»в выход OT«p«»0 саеди»е»ы ае; с нe н»0 с пе рв -.. l Выхода. 1 -Ie pa or l!
0cгистра микроко I»i r!bi, abri.oä«M .. =р— нога буфер»ого регистра ч треч ьнм нхо— дом дан»ых коммутатора смеще»ия, первый и второй входы второго шифратора адреса подключены соответственно к выходу мультиплексного регистра кода коррекции и первому выходу первого
peгистра мик1эоксман, „ ы,, Быхад BTopoi"0 шифрато«а адреса соединен с третьим - х ДОм да»ных c . 1ектс1 с мультиллек
45 сора базы-индекса, первым нхадсм бл ка таиггерсв,. вторым входам данi»з1х регистра а реса базы индекса и парным входом второго б. ака pei- .-стран, второй вход,. псрный и второй
НЫХОДЫ КОТОРОГО ПОДКЛЮЧЕНЫ .СОТВЕТ ственно к выходу регистра адреса базы-индекса, управляющему входу первого блока сравнения и синхровходу ре— истра адреса базы-индекса, второй 55 вход и первый выход блока триггеров
=.0eqr»e»b! соотзет-"твенно с выходом и управляющим входом селектора-мульрегистра микрокоманды выходам муль—
1с типлекснаго регис Tpà код=; коррекга регистра кода коррекции подключены соответственна к первому выходу второго регистра микрокоманды, выхо— ду селектора-мультиплексора базыиндекса, зтарому выходу блока тригrepов и выхода I rlepaorа и второго блоков сран ения.
Кроме того„коммутатор адреса коррекции содержит дна элемента НЕ, четыре элемента И и три элемента ИЛИ, причем вход первого элемента HE coeдине» с входом данных коммутатора, а Bbixo» э гого элемент- НГ подключен к первь м входам первого и второго элементов И, вторые входы которых соединены с входом даннь|х коммута,ора, первые входы всех элементов HJIH подключены к выходу второго элемен— та И, вторые нходы первого и тре— тьего элементов ИЛИ соединены с входом данных коммутатора, а второй вход второго элемента ИЛИ и третий в:0;! треть го элемента И.IH подключе»ы . . нь.ходу первого элемента И, выходы перв эга и BTopàrî элементов
1 Л11 и третьего элеме»та И соединены с первым выходом коммутатора, выход третьего элемента ИЛИ подключен к первому входу третьего элемента И и входу второго элемента НЕ, выход че-.aepToro элемента И соединен с вторым выходом коммутатора, выход второго элемента НЕ подключен к первому входу четвертого элемента H,а. вторые входы
T-påTBår0 и четнертого элементов И соеди»ены с управляющим входом блока.
При этом первый шифратор адреса содержит два элемента ИЛИ, элемент НЕ и элемент И, первый и второй входы катарога соединены соответственно с .-.ервым входом шифратора и выходом элемента НЕ, входы и выход первого элемента ИЛИ подключены соответственно к второму входу шидзратopa и входу элемента HE,ïåðâûé и второй входы выход второго элемента ИЛИ соединены соответственно с выходом элемента И,.
BTopbm входом и выходом блока, Причем второй шифратор адреса с.сдержит два сумматора по модулю два, дешифратор, элемент И11И и эле1ент НЕ, вход и выход которого соеДИНЕНЫ СООТНЕТСТВЕННО С ЗЫХОДОМ ЭЛЕмента ИЛИ и выходом дешифратара, первые и вторые гхады обоих суммато1) 388 команд.
Процессор с совмещением операций содержит (фиг.1) блок 1 основной памяти, блок 2 обработки команд, арифров по модулю два подключены соот— ветственно к первому и второму входам шифратора, выходы обоих сумматоров по модулю два соединены с входом дешифратора и выходом шифратора, первый и второй входы элемента ИЛИ подключены соответственно к второму входу шифратора и первому выходу дешифратора, другие выходы которого соединены с выходом шифрато-10 ра.
Введение в процессор дополнительных блоков и узлов позволяет выде— лить уровень совмещения, на котором обнаружена конфликтная ситуация 15 по загрузке одной командной информации в я ейку базы или индекса, предварительно использованную для . формирования адреса операнда последующей команды (уровень искажения), и после выделения выполнить, без отмены совмещения, кратковременную операцию коррекции искажения, характер и длительность которой определяются только самим уровнем 25 искажения. В частности, коррекция может состоять из одного или нескольких тактов повторного вычисления адреса операнда, либо может выполняться автоматически, вообще без по- ЗО терь времени.
Введение мультиплексного регистра кода коррекции позволяет выделить уровень искажения и сформировать совокупность управляющих сиг35 налов коррекции, причем формирование управляющих сигналов выполняется заранее до фактического искажения (записи, загрузки).
Введение коммутатора адреса коррекции позволяет для каждой конкретной совокупности управляющих сигналов коррекции сформировать начальный адрес микрокрограммы, выполняющей соответствующую операцию коррекции, в результате чего выполняется микропрограмма с минимальным для выделенного уровня количеством микроВведение второго блока регистров 50 и блока триггеров позволяет сохранить адреса базовых и индексных ячеек, фактически использованных для формирования адресов операндов на разных уровнях совмещения, причем последовательность размещения сохраняемых адресов во втором блоке регистров позволяет выполнить операцию коррек05 1О ции единым образом, независимо от уровня искажения.
Введение первого шифратора адреса позволяет осуществить автоматическую коррекцию базовой или индексной компонент вычисляемого адреса операнда без дополнительных потерь времени для такого уровня искажения, когда загрузка в соответствующую базовую или индексную ячейку выполняется одновременно с использованием содержимого этой ячейки для формирования адреса. Автоматическая коррекция выполняется путем подключения загружаемых данных вместо соответствующей компоненты адреса.
Введение второго шифратора адреса позволяет ускорить выполнение микропрограммы коррекции путем заблаговременного формирования адреса ячейки, которая будет использована при коррекции.
Введение регистра смещения позволяет сохранить компоненту смещения адреса операнда для обеспечения возможности выполнения микропрограммы коррекции с повторным вычислением адреса операнда.
На фиг. 1 представлена блок — схема процессора с совмещением операций; на фиг.2 — схема мультиплексного регистра кода коррекции; на фиг.3 схема коммутатора адреса коррекции; на фиг.4 — схема второго блока регистров; на фиг.5 — схема блока триггеров; на фиг.б — схема первого шифратора адреса; на фиг.7 — схема второго шифратора адреса; на фиг.в— схема селектора-мультиплексора базыиндекса; на фиг.9 — схема блока модификации адреса микрокоманды; на фиг. 10 — схема второго блока сравнения; на фиг.11 — схема первого блока регистров; на фиг.12 схема арифметического блока; на фиг. 13 — временная диаграмма работы процессора на примере выполнения команд загрузки и записи; на фиг.14 алгоритм работы микропрограммы выборки на примере выполнения команд загрузки и записи1 на фиг.15 алгоритм работы микропрограммы обработки операндов.
11 1138805 12 метический блок 3, блок 4 местной которой выполняется памяти операндов, блок 5 регистров подается на адресный адреса, первый блок 6 регистров, основной памяти. блок 7 местной памяти базы-индекса, Выход б гока 1 осн сумматор 8 адреса, коммутатор 9 ин- 5 соединен с первым в декса, коммутатор 10 смещения, ре- ческого блока 3 и в гистр 11 бЙзы-индекса, первый блок 12 ки команд с информац памяти микрокоманд, первый регистр 13 данных регистра 28 к микрокоманды, блок 14 модификации Блок 2 обработки адреса микрокоманды, второй блок 15 10 чен для приема и про памяти микрокоманд, регистр 16 адреса выполняемых процессо микрокоманды,второй регистр 17 микроко- совмещения и состоит манды, селектор-мультиплексор 18 ба- команд, коммутатора зы-индекса, регистр 19 адреса базы- буферных регистров 3 индекса, мультиплексный регистр 20 команд и регистра 34 кода коррекции, коммутатор 21 адреса Регистр 28 команд пр коррекции, второй блок 22 регистров, приема и хранения во блок 23 триггеров, первый блок 24 информационного слов сравнения, первый шифратор 25 адре- команды первого уров са, второй шифратор 26 адреса, Выходы регистра 28 к регистр 27 смещения, регистр 28 ко- с соответствующими и манд, коммутатор 29 команд, три бу- входами данных комму ферных регистра 30-32, счетчик ЗЗ манд. Коммутатор 29 команд, регистр 34 форматного кода, начен для выбора из счетчики 35 адреса команды, счет- 2 инфоРмационного .слов чик 36 продвижения адреса, регист— байт выполняемой ком ры 37 и 38 первого и второго адре- ся на втором уровне са, коммутатор 39 адреса, второй мой на второй уровен блок 40 сравнения. ход коммутатора 29 к
Блок основной памяти 1 предназ- входом данных первог начен для хранения программы процес- регистра 30. Первый сора (команд и операндов для этих ные регистры 30 и 31 команд) и выполняет операции считы— два байта каждый пре вания команд и операндов или записи хранения команд втор результатов выпогнения команд, при— совмещения. На выход чем запись и считывание производятся . ного регистра 30 пос
35 восьмибайтовыми информационными жения команды на вто словами. Время считывания или запи- формируются разряды си (цикла) блока 1 основной памяти (старшая тетрада код
40 мени трех тактов процессора
55 является несущественным, для определенности положим его равным вреОперация записи в блок 1 основной памяти задается сигналом микрооперации "Запись" на управляющем входе блока 1 основной памяти, операция считывания задается по сигналу любой микрооперации поля "Память" на втором управляющем входе блока 1 основной памяти 1. При выполнении записи информация, подлежащая записи, подается на вход данных блока 1 основной памяти. При выполнении операции считывания считываемая информация формируется на выходе блока 1 основной памяти. Адрес ячейки блока 1 основной памяти, в которую производится запись или из считывание, вход блока 1 овной памяти ходом арифметиблоке 2 обработ— ионным входом оманд. команд предназнадвижения команд, ром по уровням из регистра 28
29 команд, Π— 32, счетчика 33 форматного кода. едназначен для сьмибайтового а, содержащего ня совмещения. оманд соединены нформационными татора 29 кокоманд предназвосьмибайтного а очередных двух анды, находящейили продвигаеь совмещения. Выоманд соединен с о буферного и второй буферразрядностью по дназначены для ого уровня е первого буферле первого поодвирой уровень форматного кода а операции} и разряды адреса индекса после второго или третьего продвижения на второй уровень — разряды смещения и адреса базы.
Выход первого буферного регистра 30 соединен с входами данных второго буферного регистра 31 и регистра 34 форматного кода и первыми входами данных коммутатора 10 смещения, селектора-мультиплексора 18 базы-индекса, регистра 19 адреса базы-индекса и регистра 27 смещения.
Выход второго буферного регистра 31 соединен с входом данных третьего буферного регистра 32. Третий буферный регистр 32 предназначен для хранения двух старших байт команды третьего уровня совмещения, на его выходе формируются разряды
1138805 14 кода операции и адресов регистровых операндов для этой команды. Выход третьего буферного регистра 32 соединен с первым входом данных первого блока 6 регистров и с первым входом регистра 16 адреса микрокоманды. Двухразрядный счетчик 33 команд предназначен для указания места расположения в восьмибайтовом слове очередных двух байт команды, подлежащих продвижению на второй уровень-совмещения. Счетчик 33 команды загружается
I разрядами адреса команды и модифицируется на плюс единицу при каждом продвижении очередных двух байт. 15
Выход счетчика 33 команд соединен с управляющим входом коммутатора 29 команд. Регистр 34 форматного кода предназначен для хранения тетрады форматного кода команды второго уров- 20 ня совмещения и загружается после первого продвижения команды на второй уровень. Выход регистра 34 форматного кода соединен с вторым входом данных селектора-мультиплек- 25 сора 18 базы индекса и первым ад— ресным входом блока 14 модификации адреса микрокоманд.
Арифметический блок 3 предназначен для приема операндов, поданных на первый и второй входы, и их арифметической и логической обработки в соответствии с кодом функции на входе кода операции арифметического блока 3. Результаты обработки, под— лежащие записи в блок 1 основной памяти, или загрузка в блок 4 местной памяти операндов формируются, соответственно, на выходе данных и на выходе адреса записи арифметичес-, 40 кого блока 3.
Время такта арифметического блока 3 соответствует времени такта процессора, причем операнды принимаются на входы в начале текущего такта, 4> результаты обработки вырабатываются на выходе адреса записи в течение следующего такта, а на выходе данных при записи в блок 1 основной памяти — в течение, как минимум, трех тактов цикла записи. Разрядность арифметического блока 3 не является существенной, для определенности положим, что за один такт в арифметическом блоке 3 может быть обра- 55 ботано четырехбайтовое слово, а информация на первом входе данных и выходе данных (связь с блоком основной памяти) формируется в виде восьмибайтовых слов.
В соответствии с кодом, поданным на вход кода операции арифметического блока 3, могут быть заданы следующие операции арифметического блока 3: формирование первого операнда (и, независимо, второго операнда) либо в соответствии с информацией, поданной из блока 1 оперативной памяти 1 на первый вход данных арифметического блока 3, либо в соответствии с результатом выполнения операции арифметического блока 3 в предыдущем такте процессора, либо в соответствии с операндом, поданным из блока 4 местной памяти one— рандов на второй вход данных арифме тического блока 3, выполнение одной из арифметическо-логических функций по обработке (сложение, вычитание, И, ИЛИ и т.д.) сформированных операндов, формирование информации, под лежащей записи в блок 1 основной памяти в соответствии с результатом выполнения операции арифметического блока 3 в текущем такте процессора.
Если арифметическому блоку 3 задано формирование информации, подлежащей записи, то эта информация запоминается в арифметическом блоке 3 и хранится до задания нового формирования.
Сформированный после приема иэ блока 1 основной памяти или блока 4 ме