SU943729A1 - Микропрограммное устройство дл анализа программ - Google Patents

Микропрограммное устройство дл анализа программ Download PDF

Info

Publication number
SU943729A1
SU943729A1 SU803221601A SU3221601A SU943729A1 SU 943729 A1 SU943729 A1 SU 943729A1 SU 803221601 A SU803221601 A SU 803221601A SU 3221601 A SU3221601 A SU 3221601A SU 943729 A1 SU943729 A1 SU 943729A1
Authority
SU
USSR - Soviet Union
Prior art keywords
block
register
input
output
trigger
Prior art date
Application number
SU803221601A
Other languages
English (en)
Inventor
Владимир Павлович Кошелев
Юрий Владимирович Сидоров
Original Assignee
Предприятие П/Я Г-4677
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Предприятие П/Я Г-4677 filed Critical Предприятие П/Я Г-4677
Priority to SU803221601A priority Critical patent/SU943729A1/ru
Application granted granted Critical
Publication of SU943729A1 publication Critical patent/SU943729A1/ru

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

1
Изобретение относитс  к вычислительной технике и может примен тьс  в вычислительных машинах, ориентированных на выполнение программ на алгоритмических  зыках, в качестве устройства преобразовани  программ.
Программы, записанные на алгоритмических  зыках (например АЛГОЛ или ФОРТРАН, характеризуютс  сложными взаимосв з ми, определ ющими пор док выполнени  вход щих в них операций, который в большинстве случаев не совпадает с пор дком записи этих операций в программе. Непосредственное выполнение программ, записанных на алгоритмических  зыках, требует переупор дочивани  операций, записанных в программе, в соответствии с последовательностью их выполнени .
Известны устройства, которые основаны на использовании стека операций , схемы сравнени  приоритетов операций , стека операндов и р да управл ющих схем и регистров Ijt и 23.
Недостатком данных устройств  в  етс  низка  скорость выполнени  программ на алгоритмических  зыках.
Наиболее близким по технической сущности к изобретению  вл етс  устройство микропрограммного управлени , содержащее блок посто нной пам ти, выход которого соединен с регистром микрокоманды, дешифратор микроопера- v ций, выход которого соединен с первым входом формировател  функциональных сигналов, регистр кода операции, выход которого соединен с первым входом регистра адреса, блок синхрог низации, выход которого соединен со вторыми входами формировател  функциональных сигналов и регистра адре- са, с первым входом блока посто нной пам ти, причем первый, второй выходы регистра микрокоманды соединены соответственно со входом дешифратора микроопераций и с третьим входом регистра адреса, выход которого соединен со вторым входом блбка посто м ной пам ти, а выход формировател  функциональных сигналов  вл етс  пе . вым выходом устройства, первый и вт рой блоки стековой пам ти и блок сравнени  приор1 тетов символов, пр чем выход формировател  функциональ ных сигналов соединён с первыми вхо дами .второго блока стековой пам ти и блока сравнени  приоритетов символов , второй вход и первый и второ выходы которого соединены соответдтвенно с выходом и входом первого блока стековой пам ти и со входом регистра кода операций, третий вход блока сравнени  приоритетов символов, второй вход и выход второ го блока стековой пам ти  вл ютс  соответственно первым и вторым входами и вторым выходом устройства 3. В этом устройстве выполн етс  запись операндов в стек операндов, анализ приоритета очередного функционального символа программы и фор мирование последовательности управл ющих сигналов.дл  выполнени  операции , если это позвол ет приоритет символа. При выполнении операции ре зультат записываетс  в стек операндов и происходит переход к анализу приоритета очередного функционального символа. Все эти действи  выполн ютс  последовательно,что уве чивает врем  выполнени  программы. Цель изобретени  - повышение быстродействи  устройства и сокраще ние времени выполнени  программ, записанных на алгоритмических  зыках . Поставленна  цель достигаетс  тем, что в устройство, содержащее блок сравнени  приоритетов, блок стековой пам ти операций, первый ре гистр кода операции, первый блок управлени  и блок стековой пам ти операндов, при этом первые вход и выход блока сравнени  приоритетов соединены соответственно с выходом и входом блока стековой пам ти операций , а второй выход блока сравнени  приоритетов подключен к информа ционному входу первого регистра кода операции, выход которого соединен с первым входом первого управлени , первый выход которого подключен к первому входу блока стековой пам ти операндов, введены блок анализа сим , волов, второй блок управлени , перв и второй регистры операнда, второй регистр кода операции, -первый и второй триггеры управлени  и блок буферизации команд, причем информационный вход устройства соединен с информационным входом блока анализа символов , первый и второй информационный выходы которого подключены соответственно ко входам второго регистра операнда и второго регистра кода операции, управл ющий вход к нулевому выходу второго триггера управлени , а первый и второй управл ющие выходы - соответственно к единичному входу второго триггера управлени  и выходу управлени  приемом символов устройства,первый, второй и третий входы второго блока управлени  соединены соответственно с единичными выходами первого и второго триггеров управлени  и третьим выходом блока сравнени  приоритетов, а первый, второй, третий, четвертый и п тый выходы второго блока управлени  подключены соответственно ко вторым входам блока сравнени  приоритетов и блока стековой пам ти операндов , нулевым входам первого и второго триггеров управлени  и управл ющему входу блока стековой пам ти операций, третий вход блока сравнени  приоритетов соединен с выходом второго регистра кода операции, выход второго регистра операнда подключен к третьему входу блока стековой пам ти операндов, выход которого соединен со входом первого регистра операнда, второй, третий и четвертый входы первого блока управлени  подключены соответственно к выходу первого регистра операнда, нулевому выходу первого триггера управлени  и первому управл ющему выходу блока буферизации команд , второй, третий, четвертый, п тый и шестой выходы первого блока управлени  соединены соответственно с единичным входом первого триггера управлени , управл щими входами первого регистра операнда и первого регистра кода операций, первйм управл кндим и первым информационным входами блока буферизации команд, второй и третий информационные входь которого подключены соответственно к выходам первого регистра операнда и первого регистра кода операции, вход управлени  чтением команд устройства соединен со вторым управл ющим входом блока буферизации команд, информационный выход и.второй управл ю1ЦИЙ выход которого подключены соответственно к информационному выходу и выходу управлени  выдачей команд устройства. При этом первый блок управлени  содержит регистр адреса, пам ть микропрограмм , регистр микрокоманды, дешифратор микроопераций, узел элементов И, коммутатор адреса перехода и генератор синхроимпульсов, причем к первому входу блока подключен первый вход регистра адреса, выход кото рого соединен со входом пам ти микро программ , вход регистра микрокоманд подключен к выходу пам ти микропрограмм , первый выход - ко входу дешифратора микроопераций, а второй выход - к первому входу коммутатора адреса ,а ко второму, третьему и чет вертому входам блока подключены второй , третий и четвертый входы коммутатора адреса перехода, выход генера тора синхроимпульсов соединен с управл ющими входами регистра 1адреса пам ти микропрограмм и узла элементов И, вход которого подключен к выходу дешифратора микроопераций, а выходы - к первому, второму, треть ему, четвертому, п тому и шестому выходам блока. Второй блок управлени  также содержит регистр адреса, пам ть микропрограмм , регистр микрокоманды,дешифратор микроопераций, узел элементов И, коммутатор адреса перехода и генератор синхроимпульсов, причем к третьему входу блока подключен первый вход р::;гистра адреса, выход которого соединен со входом пам ти микропрограмм, вход регистра микрокоманды подключен к выходу пам ти микропрограмм, первый выход - к входу дешифратора микроопераций, а второй выход - к первому входу коммутатора адреса перехода, выход которого соединен со вторым входом регистра адреса, а к первому и второ му входам блока подключены второй и третий входы коммутатора адреса перехода, выход генератора синхроимпульсов соединен с управл ющими вхо дами регистра адреса, пам ти микропрограмм и узла элементов И, вход которого подключен к выходу дешифратора микроопераций, а выходы - к первому, второму, третьему, четверто му и п тому выходам блока. Кроме того, блок анализа символов содержит входной регистр, дешифратор , два узла элементов И, элемент ИЛИ, триггер анализа, элемент И и три линии задержки, причем информационный вход блока соединен со входом входного регистра, выход которого подключен ко входу дешифратора и первым входам первого и второго узлов элементов И, выходы которых соединены с первым и вторым информационными выходами блока, первый выход дешифрато ра подключен к управл ющему входу второго узла элементов И и первому входу элемента ИЛИ,а второй выход дешифратора соединен с управл ющим входом первого узла элементов И, вторым входом элемента ИЛИ и первым управл ющим выходом блока, единиМный вход триггера анализа подключен к выходу элемента ИЛИ, а единичный выход - к входу первой линии задержки , выход которой соединен с первым входом элемента И, управл ющий вход блока подключен к второму входу элемента И, выход которого соединен со входами второй и третьей линий за держки и вторым управл ющим выходом блока, выход второй линии задержки подключен к нулевому входу триггера анализа, а третьей линии задержки - к управл ющему входу входного регистра. Причем блок буферизации команд содержит регистр команд, пам ть команд , элемент ИЛИ, два узла элементов И, счетчик адреса записи, схему сравнени , счетчик чтени , коммутатор, триггеры блокировки записи и чтени , триггер зан тости и выходной регистр, причем пе}&вый, второй и третий информационные входы блока соединены с первым, вторым и третьим входами регистра команд,выход которого подключен к первому входу пам ти команд, первый и второй управл ющие входы блока соединены с первым и вторым управл ющими входами коммутатора, первый и второй управл ющие выходы которого подключены к первому и второму управл ющим выходам блока, первый, второй, третий и четвертый входы коммутатора соединены соответственно с выходами триггера блокировки записи, триггера блокировки чтени  и схемы сравнени , первый, второй, третий,четвертый и п тый выходы коммутатора подключены соответственно ко второ ,му и третьему входам пам ти команд, входам счетчиков адреса записи и чтени  и управл ющему входу выходного регистра, выход счетчика адреса записи соединен с первым входом схемы сравнени  и первым входом первого узла элементов И, второй вход которого подключен к первому выходу коммутатора, а выход - к первому входу элемента ИЛИ, выход счетчика адреса мтени соединен со вторым входом схемы сравнени  и первым входом второго узла элементов И, второй вход которого подключен ко второму выходу коммутатора, а выход ко второму входу элемента ИЛИ, выход которого соединен с четвертым входом пам ти команд, вход выходного регистра подключен к выходу пам ти команд, а выход - к информационному выходу блока. Кроме того, необходимо,чтобы блок сравнени  приоритетов содержал посто нную пам ть и регистр адреса, причем первый, второй V) третий входы блока подключены соответственно к первому информациойному входу, первому управл ющему входу и второму инфор мационному входу регистра адреса,первый , второй и третий выходы которого соединены соответственно с первым и вторым выходами блока и адресным входом посто нной пам ти, информационный выход которой подключен к третьем выходу блока, а второй вход блока сое динен со входом разрешени  считывани  посто нной пам ти. Введение в устройство дополнительных блоков и элементов позвол ет совместить во времени выполн емые им действи  и, в частности, анализ приоритета очередного функционального си вола с подготовкой следующего символа и формированием команд дл  выпол нени  действий, определ емых предыду щим символом. Кроме, того, наличие блока буферизации команд обеспечивае совмещение работы данного устройства с работой процессора, выполн кадего заданные программой действи . В рё зультате увеличиваетс  быстродействие устройства и сокращаетс  врем  выполнени  программ. На фиг.1 приведена структурна  схема микропрограммного устройства анализа программ; на фиг.2 и 3 примеры реализации первого и второго блоков управлени ; на фиг.,5,б и И 7 - примеры реализации схемы анализа символов, блока буферизации 9 98 команд блока сравнени  приоритетов и коммутатора блока буферизации команд. Устройство содержит блок 1 сравнени  приоритетов, блок 2 стековой пам ти операций, первый регистр 3 кода операции, первый блок Ц управлени  и блок 5 стековой пам ти операндов (фиг.1) , Первые вход и выход блока 1 соединены соответственно с выходом и входом блока 2, а второй выход блока 1 подключен к информационному входу регистра 3. Выход регистра 3 соединен с первым входом блока , первый выход которого подключен к входу блока 5. Кроме того, устройство содержит блок б анализа символов, второй блок 7 управлени , первый регистр 8 операнда , второй регистр 9 операнда, второй регистр 10 кода операции, первый триггер t1 управлени , второй триггер 12 управлени  и блок 13 буферизации команд. Информационный вход I устройства соединен с информационным входом блока б, первый и второй информационные а 1ходы которого подключены соответственно ко входам регистра 9 и регистра 10, управл ющий вход - к нулевому выходу триггера 12, а первый и второй управл ющие выходы -. соответственно к единичному в соду триггера 12 и выходу 15 управлени  приемом символов устройства. Первый, второй и третий входы блока 7 соединены соответственно с единичными выходами триггера 11, триггера 12 и третьим выходом блока 1. ПервыЯТ второй, третий, четвертый и п тый выходы блока 7 подключены соответственНО ко вторым входам блока 1 и блока 5, нулевым входам триггера 11 и триггера 12 и управл ющему входу блока 2. Третий вход блока 1 соединен с выходом регистра 10, Выход регистра 9 . подключен к третьему входу блока5, выход которого соединен со входом регистра 8, второй, третий и четвертый входы блока k подключены соответственно к выходу регистра 8, нулевому выходу триггера 11 и первому управл ющему выходу блока 13. Второй , третий, четвертый, п тый и шестой выходы блока Ц соединены соответственно с единичным входом триггера 11, управл ющими входами регистра 3, первым управл ющим и первым информационным входами блока 13. Второй и третий информационные входы блока
13 подключены соответственно к выходам регистра 8 и регистра 3. Вход 16 управлени  чтением команд устройства соединен со вторым управл ющим входом блока 13, информационный выход и второй управл ющий выход которого подключены соответственно к информационному выходу 17 и выходу 18 управлени  выдачей команд устройства
Первый блок k управлени  содержит регистр 19 адреса, пам ть 20 микропрограмм, регистр 21 микропрограммы , дешифратор 22 микроопераций, узел 23 элементов И, коммутатор 2А адреса перехода и генаратор 25 синхроимпульсов .2|. Первый вход регистра 19 подключен к первому входу блока 4, выход регистра 19,соединё со входом пам ти 20, Вход регистра 21 подключен к выходу пам ти 20, пер вый эыход - ко входу дешифратора 22, а второй выход - к первому входу ком мутатора 2. Выход коммутатора 24 соединен со вторым входом регистра 19, а второй, третий и четвертый вхо ды коммутатора 2k подключены ко втброму , третьему и четвертому входам блока . Выход генератора 25 соедине с управл ющими входами регистра 19 пам ти 20 и узла 23, вход которого подключен к выходу дешифратора 22, а выходы - к первому, второму,.третьему , четвертому, п тому и шестому выходс1М блока .
второй блок. 7 управлени  содержит
регистр 26 адреса, пам ть 27 микропрограмм , регистр 28 микрокоманды,дешифратор 29 микроопеарций, узел 30 зле ментов И, коммутатор 31 адреса перехода и генератор 32 синхроимпульсов (фиг.З). Первый вход регистра 26 подключен к третьему входу блока 7, а выход регистра 26 соединен со входом пам ти 27. Вход регистра 2.8 подключен к выходу пам ти 27 первый выход - ко входу дешифратора 29, а второй выход - к первому входу коммутатора 31, выход которого соединен со вторым входом регистра 26; а второй и третий входы подключены к первому и второму входам блока 7- Выход генератора 32 соединен с управл ющими входами регистра 26, пам ти 27 и узла 30выход которого подключен к выходу дешифратора 29, а выходы к первому, второму, третьему, четвертому и п тому выходам блока 7Блок 6 анализа символов содержит входной регистр 33, дешифтратор З, два узла 35.36 элементов И, элемент 37 ИЛИ, триггер 38 анализа, элемент И 39 и три линии А0, и k2 задержки {фиг.(). Информационный вход блок 6 соединен со входом регистра 33, выход которого подключен ко входу дешифратора 3 и первым входам узлов 35 и 36. Выходы узлов 35 и 36 соединены с первым и вторым информационными входами блока 6, первый выход дешифратора 3 подключен к управл ющему входу узла Зб и первому входу элемента 37, а второй выход дешифратора 3 соединен с управл ющим входом узла 35, вторым входом элемента 37 и первым управл ющим выходом блока 6. Единичный вход триггера 38 подключен к выходу элемента 37, а единичный выход - ко входу линии ЦО задержки, выход которой соединен с первым входом элемента 39. Управл ющий вход блока 6 - подключен ко второму входу элемента 39, выход которого соединен со входами линий 41 и 4задержки и вторым управл ющим выхйдо блока 6. Выход линии 41 задержки подключен к нулевому входу триггера 38, а третьей линии 42 задержки - к управл ющему входу регистра 33.
Блок 13 буферизации команд содержит регистр 43 команд, пам ть 44 команд , элемент 45 ИЛИ, два узла 46, 47 элементов И, счетчик 48 адреса зэписи, схему 49 сравнени , счетчик 50 адреса чтени , коммутатор 51, триггер 52 блокировки записи, триггер 53 блокировки чтени , триггер ,54 зан тости и выходной регистр 55 (фиг.5). Первый, второй и третий информационные входы блока 13 соединены с первым, вторым и третьим вхрдами регистра 43 команд, выход которого подключен к первому входу пам ти 44. Первый и второй управл ющие входы блока 13 соединены с первым и вторым управл ющими входами коммутатора 5 J. Первый и второй управл ющие выходы коммутатора 51 подключены к первому и второму управл ющим выходам блока 13. Первый,второй , третий и четвертый входы коммутатора 51 соединены соответственно с выходами триггера 52, триггера 53, триггера 54 и схемы 49. Первый, второй , третий, четвертый и п тый выходы коммутатора 51 подключены соответственно ко второму и третьему
входам 4А, входам счетчика 8 и счетчика 50 и управл ющему входу регистра 55. Выход счетчика соединен с первым входом схемы 9 и первым входом узла k6, второй вход которого подключен к первому выходу коммутатора 51, выходj - к первому входу элемента 451 Выход счетчика 50 соединен со вторым входом схемы 9 и первым входом узла 47, второй вход которого подключен ко второму выходу коммутатора 51, а выход - ко второму входу элемента 45, выход которого соединен с четвертым входом пам ти 44. Вход 56 регистра 55 подключен к выходу пам ти 44, а выход 57 - к информационному выходу блЬка 13.
Блок 1 сравнени  приоритетов содержит посто нную пам ть 58 и регистр 59 адреса(фиг.6). Первый, второй и третий входы блока 1 подключены соответственно к первому информационному входу, первому управл ющему входу и второму информационному входу регистра 59. Первый, второй и третий выходы регистра 59 соединены соответственно с первым и вторым выходами блока 1 и адресным входом пам ти 58, информационный выход которой подключен к третьему выходу блока 1, а второй вход блока 1 соединен со входом разрешени  считывани  пам ти 58.
В состав коммутатора 51 вход т триггеры 60-67, элементы И 63,64, .69-77, элемент 65 ИЛИ, и генераторы 62,68 тактовых сигналов,Триггеры 60 и и 6t служат дл  фиксации запросов на чтение и запись в блок 13 на врем  выполнени  предыдущего запроса. Зап-; рос на запись поступает из блока 4 на единичный вход триггера 61, а запрос на чтение - со входа 1б устройства на единичный вход триггера 60, Единичные выходы этих триггеров соединены со входами элементов 63 и 64, которые вырабатывают сигналы разрешени  соответственно чтени  и записи. Входы элемента 63 соединены также с выходом триггера 53, который соответствует состо нию чтение разрешено выходом триггера 54, который соответствует состо нию свободен , и первым выходом генератора 62, Входы э eмe+ тa 64 подключены к выходу триггера 52, который соответствует состо нию запись разрешена, выходу триггера 54, который соответствует состо нию свободен, и ко
второму выходу генератора б2. Генератор 62 используетс  дл  временной селекции поступающих одновременно запросов на запись и чтение команды. Этот генератор вырабатывает поочередно на одном из двух выходов тактовый сигнал, который разрешает выполнение записи или чтени . Интервал между по влением сигналов на выходах генератора 62 выбираетс  с учетом времени, необходимого дл  надежного изменени  состо ни  триггеров 54,60,61,66 и 67.
Устройство работает следующим образом .
Программа, записанна  на алгоритмическом  зыке, последовательно символ за символом подаетс  на вход 14 устройства (см.фиг. 1), При этомочередной символ передаетс  в устройство при по влении разрешающего сигнала на управл ющем входе 15 устройства . Предполагаетс , что программа предварительно подвергаетс  лексической обработке и состоит только из символов четырех типов, которые отличаютс  значением специального признака: идентификаторов переменных, констант, функциональных символов и разделителей. Символы выполн емой программы поступают из оперативной пам ти (не показана) на вход схемы 6 анализа символов, котора  выдел ет символы двух видов; операнды (идентификаторы переменных и константы) и операции (функциональные символы и разделители. Операнд передаетс  схемой 6 на второй регистр 9 операнда, а операци  - на регистр 10, После передачи операции на регистр 10 схема 6 устанавливает в единичное состо ние триггер 12 и переходит в режим ожидани , в котором находитс  до тех пор, пока триггер 12 не установлен в нулевое состо ние. Установка этого триггера в нулевое состо ние осуще.ствл етс  блоком7. В режиме ожидани  схема 6 не разрещаеГ передачу на вход 14 устройства очередного символа программы, использу  управ- л ющ|1Й выход 15 устройства,После установки триггера 12 в нулевое состо ние схема 6 выходит из режима ожидани , выдает сигнал на выход 15 дл  приема очередного символа, принимает этот символ по входу 14 и начинает его обработку . Установка триггера 12 в единичное состо ние  вл етс  условием , 139 ал  .начала очередного цикла работы блока 7 при условии окончани  преды .дущего цикла его работы. Этот цикл начинаетс  с проверки состо ни  триг гера П. Если этот триггер находитс  в нулевом состо нии, то блок 7 переходит в режим ожидани , в котором по сто нно провер етс  состо ние триггера П. Когда триггер 11 установитс в единичное состо ние, блок 7 выдает сигналы,разрешающие запись операнда с р&гистра 9 в блок 5 и прием кода операции из регистра 10 в блок 1. После завершени  этих действий блок 7 устанавливает триггер 12 в нулевое состо ние, что позвол ет схеме 6 начать анализ очередного символа про граммы. Одновременно с этим блок 7 выдает в блок 1 сигнал дл  сравнени  приоритета очередной операции программы на регистре 10 с приоритетом операции в блоке 2 (при начальном включении устройства в блок 2 заноситс  специальный начальный символ). Результат сравнени  приоритетов поступает в блок 7. Если приоритет очередной операции выше приоритета операции в блоке 2, по сигналу из блока 7. ее код записываетс  в блок 2 и провер етс  состо ние три1- гера 12. Если он находитс  в нулевом состо нии, т.е. очередна  операци  не подготовлена схемой 6, то блок 7 переходит в режим ожидани , в противном случае начинаетс  новый цикл работы блока 7. В том случае, когда приоритет очередной операции ниже или равен приоритету операции в блоке 2, второй блок 7 управлени  провер ет состо ние триггера 11.Если этот триггер находитс  в нулевом состо нии, то блок 7 переходит в режим ожидани , в котором находитс  до установки триггера 11 в единичное состо ние. После этого блок 7 выдает сигнал дл  записи кода операции из блока. 2 в регистр 3, устанавливает триггер Ив нулевое состо ние и выполн етс  сравнение приорите тов очередной операции в регистре 10 и следующей операции в блоке 2. Установка триггера П в нулевое состо ние служит сигналом дл  начала работы блока . Этот блок реализует действи  ПС формированию команд процессора (не показан), выполн ющего заданные в программе действи ,определ емые кодом операции,поступившим в регистр 3. 9 Рассмотрим работу блока дл  случ ча  процессора с одноадресной системой команд, использующего блок ств козой пам ти дл  хранени  промежуточ-v ных результатов. Выполн емые блоком k действи  завис т от числа операндов , необходимых дл  выполнени  операции , код которой находитс  на регист-ре 3. В случае одноместной опера блок «выдает сигнал чтени  операнда из блока 5 в регистр о, а затем производитс  запись содержимого регистров 3 и 8 в блок 13. Содержимое этих регистров образует соответственно операционную и адресную часть команды процессора.Далее блок k выдает в блок 13 сигнал записи и анализирует вид результата сформированной команды. Если результат  вл етс  промежуточным, то в блок. 5 выдаетс  сигнал дл  записи признака промежуточного результата, который указывает, что операнд находитс  в стеке промежуточных результатов процессора (не показан . После этого триггер 11 устанавливаетс  в единичное состо ние, что  вл етс  сигналом готовности блока k к формированию очередной команды. 8 том случае, когда дл  выполнени  операции требуетс  более одного операнда, блок k выдает сигнал чтени  операнда из блока 5 в регистр 8. После приема операнда нарегистр В блок k анализирует его значение. Если операнд сопровождаетс  признаком промежуточного результата, то блок Ц выдает сигнал на чтение следующего операнда из блока 5. В противном случае содержимое регистра 8 записываетс  в качестве адресной части очередной команды в блок 13- При этом в качест ве операционной части команды в блоке 13 по сигналу из блока устанавливаетс  код операции засылки операнда в блок стековой пам ти промежуточных результатов процессора. После этого блок k выдает сйгна11 записи в 15лок 13 и ожидает конца записи. Далее блок Ц выдает сигнал на чтение следующего операнда из блока 3 Эти действи  выполн ютс  дл  всех операндов операции , кроме последнего. Обработка последнего операнда выполн етс  как и в случае одноместной операции. Пример реализации первого блока k управлени  приведен на фиг.2. Этот блок работает следующим образом. На регистр 19 адреса поступает код операции из регистра 3, который интерпретируетс  как адрес пам ти 20 микр программ, начина  с которого записана микропрограмма.обработки данной операции. По этому адресу из пам ти. 20выбираетс  микрокоманда на регист 21,котора  дешифрируетс  дешифратором 22в совокупность микроопераций, дл  выполнени  которых узел 23 формирует управл кщие сигналы. Эти сигналы поступают на управл ющие входы регис ра 3i блока 5, регистра 8, блока 13, на единичный вход триггера Т1 и ин формационный вход блока 13 (дл  задани  кода операции). Выборка микропрограмм из пам ти 20 осуществл етс  последовательна. Дл  изменени  этой последовательности используетс  коммутатор 23 адреса перехода, который формирует адрес очередной микрокоманды в Зависимости от содержимог го регистра 8 и состо ни  триггера 11 и блока 13f который сигнализирует 06окончании записи команды. Синхронизаци  элементов блока t обеспечиваетс  reHepafTopoM 25. Второй блок 7управлени  работает аналогично бло ку . . Схема 6 анализа символов работает следующим образом (фигД).При поступлении на регистр 33 кода операнда вырабатываетс  сигнал на первом выходе дешифратора 3, который обеспечивает передачу кода операнда из регистра 33 через узел 3$ в регистр Э- Этот же сигнал через элемент 37 поступает на единичный вход триггера 38, единичный выход которого подключен через линию 0 задержки к первому входу элемента 39 второй выход которого соединен с нулевым выходом триггера 12. На выходе элемента 39 вырабатываетс  сигнал, разр щающий передачу на вход 1 очередного символа программы. Зтот же сигнал разрешает прием информации на регист 33 и установку в нулевое состо ние триггера 38. Необходимые при этом задержки обеспечиваютс  лини ми задержки и А2, причем параметры линии 42 задержки определ ют врем  выборки очередного символа из пам ти а параметра линии задержки 42 - длительность сигнала на входе 15- При поступлении на Ьегистр 33 кода опера ции вырабатываетс  сигнал на втором выходе дешифратора 4, который обеспечивает передачу кода операции из регистра 33 через узел 35 в регистр 10. Этот же сигнал поступает на единичный вход триггера 12 и через элемент 37 на единичный вход триггера 38. Задержанный сигнал с единичного выхода триггера 38 поступает на вход элемента 39 после установки триггера 12 в единичное состо ние, В результате , разрешающий сигнал на выходе элемента 39 по вл етс  только после установки триггера 12 в нулевое состо ние . Это обеспечивает блокировку приёма очередного символа программы после приема кода операции до установки триггера 12 в нулевое состо ние . , Блок 13 буферизации команд /фиг.5) имеет кольцевую адресацию, т.е. после записи или чтени  в последнюю  чейку пам ти 44 команд осуществл етс  аа пись или чтение а иервую  чейку пам ти . Дл  задани  адреса  чейки пам ти, а которую должна быть записана команда , используетс  счетчик 48 адреса записи. Ьри чтении из пам ти используетс  счетчик 50. Дл  исключени  записи информации в зан тые  чейки пам ти, а также мтеми  из пустых  чеек используетс  схема 49 сравнени . Состо ние полного заполнени  пам ти и отсутствие информации фиксируетс  триггерами 52 и 53. Триггер 54 зан тости используетс  дл  разделени  во времени действий по записи и чтению информации. Единичное состо ние этого триггера разрешает запись или чтение команд а нулевое состо ние блокирует обращени  к блоку: 13. Необходимые сигналы управлени  вырабатывает коммутатор 51. Элементы 46, 47 и 45 используютс  дл  передачи на адресный вход пам ти 44 содержимого одного из счетчиков. При записи информации в блок 13 на pierncTp 43 поступают коды операнда и операции. Регистр 43 разбит на две части: в первую часть записываетс  код операнда из регистра 8, а во вторую - код операции из регистра 5 или блока 4. В Начальный момент времени регистр 43 устанавливаетс  в нулевое состо ние , счетчики 48 и 50 содержат адрес первой  чейки пам ти 44, триггер 54в положение свободен, триггер 52 В состо ние запись разрешена, триггер 53-8 состо ние чтение запрещено . По сигналу из блока 4 запускаетс  коммутатор 51, триггер 54 из положени  свободен устанавливаетс  в положение зан т. По адресу на счетмике 8 производитс  запись содержимого регистра ii3 в пам ть 4. Триггер 53 устанавливаетс  в положение чтение разрешено, содер .жимое счетчика 9 увеличиваетс  на единицу, сигнал Конец записи комму татора 51 передаетс  в блок k, три1- гер 5 переводитс  в состо ние свободен . Запись последующих команд произво дитс  по сигналу из блока при наличии в пам ти j свободной  чейки. В противном случае выполнение записи откладываетс  до изменени  состо ни  триггера 52, которое имеет место при чтении команды. Если в пам т имеетс  свободна   чейка, то следую щим шагом  вл етс  проверка зан тос ти блока 13. В том случае, когда этот блок не зан т выполнением чтени , триггер 5 устанавливаетс  в состо  ние зан т, что блокирует обрйщение по чтению. Если блок 13 выполн ет чтение команды, то запись задер живаетс  до завершени  чтени . Последующа  запись производитс  в пам ть по адресу, который указан в счетчике В. Одновременно с записью в пам ть Триггер 53 устанавливаетс  в состо ние чтение разрешено и раз решаетс  чтение из блока 13, затем содержимое счетчика 48 увеличиваетс  на единицу. Если после этого зна чтение счетчика 48 совпадает со значением счетчика 50, такое совпадение фиксируетс  схемой 49 и свидетельствует о полном заполнении 44, при этом триггер 52 устанавливаетс  в состо ние запись запрещена, блокиру  дальнейшую запись в блок 13. Посл этого, а также если в пам ти 4 имеет с , свободное место, триггер 54 устанавливаетс  в состо ние свободен, а блок 4 получает сигнал окончани  записи. Чтение команды из блока 13 осуществл етс  по сигналу из прочее сора, поступающему на вход 16, и воз можно только при наличии команд в пам ти 44. Если триггер 53 находитс  в состо нии чтение запрещено, т выполнение чтени  задерживаетс  до изменени  состо ни  триггера 53, которое происходит в результате записи в блок 13 очередной команды. Если в пам ти 44 имеютс  команды, то, как и в случае записи, в начале провер етс  состо ние триггера 54 и блокируютс  обращени  по записи путем установки этого триггера в сос 918 то ние зан т.После этого осуществл етс  чтение из пам ти k по адресу , указанном счетчиком 50. Одновременно с чтением из пам ти триггер 52 устанавливаетс  в состо ние за .11 пись разрешена , т.е. допускаетс  запись в блок 13- Содержимое счетчика 50 увеличиваетс  на единицу. Если после этого значение счетчика 50 совпадает со значением счетчика , что означает отсутствие информации в пам ти , то триггер 53 устанавливаетс  в состо ние чтение запрещено , блокиру  последующие считыеани  из блока 13. После этого, а также, если в пам ти 44 имеютс  команды , триггер 54 устанавливаетс  в состо ние свободно. В процессор с выхода 18 выдаетс  сигнал конца чтени . Считанна  из пам ти 44 команда поступает на регистр 55, а .затем с выхода 17 -в процессор. Блок t сравнени  приоритетов содержит посто нную пам ть 58 и регистр 59 адреса (фиг.6) . Посто нна  пам ть содержит информацию о взаимном приоритете всех возможных пар операций. Дл  этого каждой паре операций  зыка в пам ти 58 поставлено в соответствие слово длиной в один бит, в котором указано соотношение приоритетов данных операций. Адрес слова в пам ти 58 задаетс  регистром 59. В старшие разр ды регистра 59 записываетс  код очередной операции из регистра 10, а младшие код операции из блока 2, После записи кодов операции в регистр 5Э содержимое этого регистра выдаетс  на адресный вход пам ти 58, на управл ю11)ии вход которой поступает сигнал разрешени  чтени  из блока 7. Считанный код, определ ющий соотношение приоритетов операций, передаетс  с информационного выхода пам ти блок 7. В том случае, когда приоритет очередной операции выше приоритета операции в блоке 2, второй блок 7 управлени  разрешает запись кода очередной операции в блок 2. Дл  этого код младших разр дов регистра 59 передаетс  в блок 2,а код старших разр дов регистра 59 записываетс  в его младшие разр ды . Младшие разр ды регистра 59 играют в данном случае роль вершины блока 2 стековой пам ти one- раций, в которой находитс  последний записанный в стек код операции. После
этого блок 1 готов к приему очередного кода операции из регистра 10, Есл приоритет очередной операции ниже ил равен приоритету операции в блоке 2. наход щейс  в младших разр дах регистра 59, блок 7 после проверки необходимых условий разрешает передачу кода операции из блока 2 в регистр 3. Дл  этого код младших разр дов регистра 59 передаетс  на вход регистра 3, а в младшие разр ды регистра 59 записываетс  очередной код из блока 2. После этого блок 1 готов к сравнению приоритетов очередной пары операций. Действи  по приему и выдаче информаци  произво дитс  по сигналам блока 7.
Дл  по снени  работы устройства рассмотрим пример обработки оператора X С + Е; Предположим,мто перед обработкой этого оператора триггер 11 находитс  в единичном состо нии , а триггер 12-е нулевом состо нии . Последовательность действий, выполн емых под управлением схемы 6 анализа символов, второго блока 7 управлени  и первого блока k управлени  при обработке оператора, приведена в таблице. В таблице прин ты следующие обозначени : L содержимое вершины блока 2 стековой пам ти перед обработкой оператора, ПрПр признак промежуточного результата.
В результате обработки оператора А: В X С + Е; устройство анализа
программ формирует следующую последовательность команд
ЗасылкаС
+.Е
Приведенный пример показывает, что предлагаемое микропрограммное устройство анализа программ по сравнению с известными устройствами обеспечивает: совмещение подготовки инj формации (кодов операнда и операции} дл  рчередной операции с обработкой предыдущей операции; совмещение запи-си информации в блок 5 и в блок сравнени  приоритетов; совмещение -срав нени  приоритетов очередной опера|ции и второй операции из вершины блока 2 стековой пам ти операций с формированием команды дл  первой операции из вершины блока 2, а также запись в блок 2 очередной операции; совмещение подготовки очередных команд с выполнением предыдущих команд процессором.
Анализ работы предложенного устройства при обработке реальных программ на  зыке высокого уровн  показывает , что его применение сокращает врем  выполнени  программ в полтора раза по сравнению с известными устройствами.
Запись А во второй регистр 9 операнда
Запись: во второй регистр 10 кода операции
Установка .второго триггера 12 управлени  в единичное состо ние
Проверка состо ни  первого триггера 11 управлени 
Запись В во второй регистр 9 операнда
Запись X во второй регистр 10 кода операции
Установка второго триггера 12 управлени  в единичное состо ние
10
11
12
13 Запись С на второй регистр 9 операнда
Запись + на второй
регистр 10 кода операции
15 Установка второго
триггера 12 управлени  в единичное состо ние
Запись А в блок 5 и : в блок 1 сравнени  приоритетов
Установка второго триггера 12 управлени  в нулевое состо  ние
Сравнение приоритетов в блоке 1 сравнени  приоритетов
Запись : в блок 2
Проверка состо ни  второго триггера 12 управлени 
Проверка состо ни  первого триггера 11 управлени 
Запись В в блок 5 и X в блок 1 сравнени  приоритетов
Установка второго триггера.12 управлени  в.нулевое состо ние
Сравнение приоритетов X и : в блоке 1 сравнени  приоритетов
Запись X в блок 2
Проверка состо ни  второго триггера 12 управлени 
I
16
Проверка состо ни  первого триггера 11 управлени 
17
Запись С в блок 5 и + в блок 1 сравнени  приоритетов
18
Установка второго триггера 12 управлени  в нулевое состо ние
Запись Е на второй
Сравнение приоритетов регистр 9 операнда + и X в блоке 1 сравнени  приоритетов
Запись на второй
Проверка состо ни  пер регистр 10 кода вого триггера t1 управоперации лени 
Установка второго
Запись X из блока 2 в триггера 12 управпервый регистр 3 кода лени  в единичное операции состо ние
Установка первого триггера 11 управлени  в нулевое состо ние
Сравнение приоритетов -«- и : в блоке 1 сравнени  приоритетов
Запись + в блок 2
25
Проберка состо ни  второго триггера 12 управлени 
26
Проверка состо ни  первого триггера 11 управлени 
.
Чтение С из блока 5 в первый регистр 8 операнда
Анализ числа в пе{эвом регистре 8 операнда
Запись С из первого регистра 8 операнда и кода операций Засылка в блок 13
Чтение 8 из блока 5 в первый регистр 8 операнда
25
27
Запись Е в блок 5 и ; в блок 1 сравнени  приоритетов
Установка второго триггера 12 управлени  в нулевое состо ние
Сравнение приоритетов ; и 4- в блоке 1 сравнени  приоритетов
Проверка состо ни  первого триггера 11 управлени 
Запись из блока 2 в регистр 3 кода операции .
Установка первого триггера 11 управлени  в нулевое состо ние
Сравнение приоритетов; и:. в блоке 1 сравнени  приоритетов
Проверка состо ни  первого триггера 11 управлени 
26
Продолжение таблицы
I
4
Запись В из первого регистра 8 операнда и X из первого регистра 3 кода операции в блок 13
Анализ результата операции
Запись ПрПр в блок 5
Установка первого триггера 11 управлени  в единичное состо ние
Чтение ПрПр из блока 5 в пере1ый регистр 8 операнда
Анализ значени  в пер- вон регистре 8 операнда
Чтение Е из блока 5 в первый регистр 8 операнда
27
1
ko
k
k2 A3
Запись : из блока
Ai
2в первый регистр
3кода операции
Установка первого триггера 11 управлени  в нулевое состо ние
k6
i
48
Э
50
51
28 Продолжение таблицы
I
14 . .
Запись Е из первого регистра 8 операнда и 4- из первого регистра 3 кода операции в блок 13
Анализ результата операции
Запись ПрПр в блок 5
Установка первого триггера 11 управлени  в единичное состо ние
Чтение ПрПр из блока 5 в первый регистр 8 операнда
Анализ числа в первом регистре 8 операнда
Чтение А из блока 5 в первый регистр 8 операнда
Запись А из первого о регистра 8 операнда и: из первого регистра 3 кода операции в блок 13
Анализ результата операции

Claims (3)

1.Авторское свидетельство СССР N- 2090«tO, кл. G 06 F 9/00, 1968.
2,Авторское свидетельство СССР Н 513715, кл. G 06 F 15/0, 1976.
3. Авторское свидетельство СССР Н- , кл. G 06 F 9/16, 1977 (прототип).
Фм.1
-i 1
Vl.itt.St
fifj.w
HW}
-f
W
-
jj
.f
«
SU803221601A 1980-10-15 1980-10-15 Микропрограммное устройство дл анализа программ SU943729A1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SU803221601A SU943729A1 (ru) 1980-10-15 1980-10-15 Микропрограммное устройство дл анализа программ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SU803221601A SU943729A1 (ru) 1980-10-15 1980-10-15 Микропрограммное устройство дл анализа программ

Publications (1)

Publication Number Publication Date
SU943729A1 true SU943729A1 (ru) 1982-07-15

Family

ID=20933316

Family Applications (1)

Application Number Title Priority Date Filing Date
SU803221601A SU943729A1 (ru) 1980-10-15 1980-10-15 Микропрограммное устройство дл анализа программ

Country Status (1)

Country Link
SU (1) SU943729A1 (ru)

Similar Documents

Publication Publication Date Title
US4390969A (en) Asynchronous data transmission system with state variable memory and handshaking protocol circuits
US4276595A (en) Microinstruction storage units employing partial address generators
US4814761A (en) Method and apparatus for communication control in loop communication network
US4047245A (en) Indirect memory addressing
US4156909A (en) Structured data files in a data driven digital data processor
US3886522A (en) Vocabulary and error checking scheme for a character-serial digital data processor
SU943729A1 (ru) Микропрограммное устройство дл анализа программ
US3512134A (en) Apparatus for performing file search in a digital computer
JPS62208171A (ja) 論理装置の自動設計装置
US3905021A (en) Circuit arrangement for interpreting the content of a register as an instruction
JPS6326907B2 (ru)
SU1425607A1 (ru) Устройство дл программного управлени
SU696454A1 (ru) Асинхронное устройство управлени
SU857994A1 (ru) Устройство дл определени старшинства операций
SU1213485A1 (ru) Процессор
SU1005047A1 (ru) Микропрограммное устройство управлени каналом ввода-вывода
SU1144099A1 (ru) Микропрограммное устройство дл ввода-вывода информации
SU960789A1 (ru) Устройство дл контрол записи в накопител х на магнитных дисках
SU985793A1 (ru) Устройство дл преобразовани кодов с одного зыка на другой
SU840869A1 (ru) Устройство дл контрол канала ввода-вы-ВОдА ВычиСлиТЕльНОй МАшиНы
SU851391A1 (ru) Адаптер канал-канал
SU860045A1 (ru) Устройство дл сопр жени
SU357558A1 (ru) УСТРОЙСТВО дл ВВОДА ИНФОРМАЦИИ
SU1187173A1 (ru) Устройство дл лексического анализа символьного текста
JPS6391756A (ja) 記憶装置の部分書き込み命令処理方式