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

Иллюстрации

Показать все

Реферат

 

(72) Авторы изобретеяяя

В.П.Кошелев и Ю.В.Сидоров (7l) Заввятедь (54) ИИКРОПРОГРАИИНОЕ УСТРОЙСТВО ДЛЯ АНАЛИЗА

ПРОГРАИИ

Изобретение относится к вычислительной технике и может применяться в вычислительных машинах, ориентиро. ванных на выполнение программ на алгоритмических языках, в качестве устройства преобразования программ.

Программы, записанные на алгоритмических языках (например АЛГОЛ или фОРТРАН1, характеризуются сложными взаимосвязями, определяющими порядок выполнения входящих в них операций, KoTopblH 8 большинстве случаев не совпадает с порядком записи этих one раций в программе. Непосредственное выполнение программ,. записанных на алгоритмических языках, требует пере. упорядочивания операций, записанных в программе, в соответствии с последовательностью их выполнения.

Известны устройства, которые основаны на использовании стека операций, схемы сравнения приоритетов операций, стека операндов и ряда управляющих схем и регистров (1) и 1.21.

Недостатком данных устройств явяяется низкая скорость выполнения программ на алгоритмических языках.

Наиболее близким по технической сущности к изобретению является устройство микропрограммного управления,< содержащее блок постоянной памяти, выход которого соединен с регистром микрокоманды, дешифратор микроопера-, . ций, выход которого соединен с первым входом формирователя функциональных сигналов, регистр кода операции, выход которого соединен с первым входом регистра адреса, блок синхрог низации, выход которого соединен со

15 вторыми входами формирователя функциональных сигналов-и регистра адре" са, с первым входом блока постоянной памяти, причем первый, второй выходы

20 регистра микрокоманды соединены соответственно со входом дешифратора микроопераций и с третьим входом регистра адреса, выход которого сое динен со вторым входом блока постоян"

3 94372 ной памяти, а выход формирователя функциональных сигналов является пер.вым выходом устройства, первый и вто рой блоки стековой памяти и блок сравнения приоритетов символов, причем выход формирователя функциональных сигналов соединен с первыми входами второго блока стековой памяти и блока сравнения приоритетов символов, второй вход и первый и второй выходы которого соединены соответственно с выходом и входом первого блока стековой памяти и со входом регистра кода операций, третий вход блока сравнения приоритетов символов, второй вход и выход второго блока стековой памяти являются соответственно первым и вторым входами и вторым выходом устройства (3) .

В этом устройстве выполняется запись операндов в стек операндов, анализ приоритета очередного функционального символа программы и формирование последовательностй управ ляющих сигналов.для выполнения операции, если это позволяет приоритет символа, При выполнении операции ре зультат записывается в стек операндов и происходит переход к анализу приоритета очередного функционального символа. Все эти действия выполняются последовательно,что увели чивает время выполнения программы.

Цель изобретения - повышение быстродействия устройства и сокращение времени выполнения программ, записанных на алгоритмических языках.

Поставленная цель достигается тем, что в устройство, содержащее блок сравнения приоритетов, блок стековой памяти операций, первый регистр кода операции, первый блок управления и блок стековой памяти операндов, при этом первые вход и

4Я выход блока сравнения приоритетов соединены соответственно с выходом и входом блока стековой памяти операций, а второй выход блока сравнения приоритетов подключен к информационному входу первого регистра ко. да операции, выход которогд соединен с первым входом первого управления,, первый выход которого подключен к первому входу блока стековой памяти N операндов, введены блок анализа сим,волов, второй блок управления, первый и второй регистры операнда, второй

9, С регистр кода операции, первый и второй триггеры упоавления и блок буферизации команд, причем информационный вход устройства соединен с информационным входом блока анализа символов, первый и второй информационный выходы которого подключены соответственно ко входам второго регистра операнда и второго регистра кода операции, управляющий вход— к нулевому выходу второго триггера управления, а первый и второй управляющие выходы - соответственно к единичному входу второго триггера управления и выходу управления приемом символов устройства, первый, втоРой и третий входы второго блока управления соединены соответственно с единичными выходами первого и второго триггеров управления и третьим выходом блока сравнения приоритетов, а первый, второй, третий, четвертый и пятый выходы второго блока управления подключены соответственно ко вторым входам блока сравнения приоритетов и блока стековой памяти операндов, нулевым входам первого и второго триггеров управления и управляющему входу блока стековой памяти операций, третий вход блока сравнения приоритетов соединен с выходом второго регистра кода операции, выход второго регистра операнда подключен к третьему входу блока стековой памяти операндов, выход которого соединен со входом первого регистра операнда, второй, третий и четвертый входы первого блока управления подключены со ответственно к выходу первого регистра операнда, нулевому выходу первого триггера управления и первому управлякнцему выходу блока буферизации команд, второй, третий, четвертый, пятый и шестой выходы первого блока управления соединены соответственно с единичным входом первого триггера управления, управляющими входами первого регистра операнда и первого регистра кода операций, первйм управлякпцим и первым информационным входами блока буферизации команд, второй и третий информационные входы которого подключены соответственно к выходам первого регистра операнда и первого регистра кода операции, вход управления чтением команд устройства соединен со вторым управляющим входом блока буферизации команд, информационный выход и.второй управляю9437 щий выход которого подключены сооТ ветственно к информационному выходу и выходу управления выдачей команд устройства.

При этом первый блок управления s содержит регистр адреса, память микропрограмм, регистр микрокоманды, дешифратор микроопераций, узел элементов И, коммутатор адреса перехода и генератор синхроимпульсов, причем >0 к первому входу блока подключен первый вход регистра адреса, выход которого соединен со входом памяти микропрограмм, вход регистра микрокоманды .подключен к выходу памяти микропро- 15 грамм, первый выход - ко входу дешифратора микроопераций, а второй выход - к первому входу коммутатора адреса,а ко второму, третьему и четвертому входам блока подключены вто- 20 рой, третий и четвертый входы коммутатора адреса перехода, выход генератора синхроимпульсов соединен с управляющими входами регистра адреса памяти микропрограмм и узла элементов И, вход которого подключен к выходу дешифратора микроопераций, а выходы - к первому, второму, третьему, четвертому, пятому и шестому выходам блока.

Второй блок управления также содержит регистр адреса, память микропрограмм, регистр микрокоманды,дешифратор микроопераций, узел элементов И, коммутатор адреса перехода и

35 генератор синхроимпульсов, причем к третьему входу блока подключен первый вход Р=гистра адреса, выход которого соединен со входом памяти микропрограмм, вход регистра микроб0 команды подключен к выходу памяти микропрограмм, первый выход - к входу дешифратора микроопераций, а второй выход " к первому входу коммутатора адреса перехода выход коУ бЗ торого соединен со вторым входом регистра адреса, а к первому и второму входам блока подключены второй и третий входы коммутатора адреса перехода,. выход генератора синхроимпульсоа соединен с управляющими вхо50 дами регистра адреса, памяти микропрограмм и узла элементов И, вход которого подключен к выходу дешифратора микроопераций, а выходы - к первому, второму, третьему, четверто- му и пятому выходам блока.

Кроме того, блок анализа символов содержит входной регистр, дешиф29 6 ратор, два узла элементов И, элемент

ИЛИ, триггер анализа, элемент И и три линии задержки, причем информационный вход блока соединен со входом входного регистра, выход которого подключен ко входу дешифратора и первым входам первого и второго узлов элементов И, выходы которых соединены с первым и вторым информационными выходами блока, первый выход дешифратора подключен к управляющему входу второго узла элементов И и первому входу элемента ИЛИ,а второй выход дешифратора соединен с управляющим входом первого узла элементов И, вторым входом элемента ИЛИ и первым управляющим выходом блока, единичный вход триггера анализа подключен к выходу элемента ИЛИ, а единичный выход — к входу первой линии задержки, выход которой соединен с первым входом элемента И, управляющий вход блока подключен к второму входу элемента И, выход которого соединен со входами второй и третьей линий за держки и вторым управляющим выходом блока, выход второй линии задержки подключен к нулевому входу триггеРа анализа, а третьей линии задержки - к управляющему входу входного регистра.

Причем блок буферизации команд содержит регистр команд, память команд, элемент ИЛИ, два узла элементов И, счетчик адреса записи, схему сравнения, счетчик адреса чтения, коммутатор, триггеры блокировки записи и чтения, триггер занятости и выходной регистр, причем пе®вый, второй и третий информационные входы блока соединены с первым, вторым и третьим входами регистра команд,выход которого подключен к первому входу памяти команд, первый и второй управляющие входы блока соединены с первым и вторым управляющими входами коммутатора, первый и второй управляющие выходы которого подключены к первому и второму управляющим выходам блока, первый, второй, тре- тий и четвертый входы коммутатора . соединены соответственно с выходами триггера блокировки записи, триггера блокировки чтения и схемы сравнения, первый, второй, третий,четвертый и пятый выходы коммутатора подключены соответственно ко второL му и третьему входам памяти команд, входам счетчиков адреса записи и

9437 чтения и управляющему входу выходного регистра, выход счетчика адреса записи соединен с первым входом схемы сравнения и первым входом первого узла элементов И; второй вход которого подключен к первому выходу коммутатора, а выход - к первому входу элемента ИЛИ, выход счетчика адреса чтения соединен со вторым входом схемы сравнения и первым вхо- >в дом второго узла элементов И, второй вход которого. подключен ко второму выходу коммутатора, а выходко второму входу элемента ИЛИ, выход которого соединен с четвертым входом 15 памяти команд, вход выходного регистра подключен к выходу памяти команд, а выход - к информационному выходу блока.

Кроме того, необходимо.,чтобы блок в сравнения приоритетов содержал постоянную память и регистр адреса, причем первый,: второй и третий входы блока подключены соответственно к первому информационному входу, перво- 2$ му управляющему входу и второму инфор мационному входу регистра адреса,первый, второй и третий выходы которого соединены соответственно с первым и вторым выходами блока и адресным вхо- зф дом постоянной памяти, информационный выход которой подключен к третьему выходу блока, а второй вход блока соединен со входом разрешения считывания постоянной памяти.

„35

Введение в устройство дополнитель". ных блоков и элементов позволяет совместить во времени выполняемые им действия и, в частности, анализ прио" ритета очередного функционального сим вола с подготовкой следующего символа и формированием команд для выполнения действий, определяемых предыдущим символом. Кроме того, наличие . блока буферизации команд обеспечивает совмещение рабоТы данного устройства .с работой процессора, выполняющего заданные программой действия. В ре! зультате увеличивается быстродей50 ствие устройства и сокращается время выполнения программ, На фиг.! приведена структурная схема микропрограммного устройства анализа программ; на фиг.2 .и 3примеры реализации первого и второго блоков управления; на фиг.4,5,6 и и 7 - примеры реализации схемы анализа символов, блока буферизации

29 8 команд блока сравнения приоритетов и коммутатора блока буферизации команд.

Устройство содержит блок сравнения приоритетов, блок 2 стековой памяти операций, первый регистр

3 кода операции, первый блок 4 управления и блок 5 стековой памяти операндов (фиг.1) . Первые вход и выход блока 1 соединены соответственНо с выходом и входом блока 2, а второй выход блока 1 подключен к информационному входу регистра 3. Выход регистра 3 соединен с первым входом блока 4, первый выход которого подключен к первому входу блока 5.

Кроме того, устройство содержит блок

6 анализа символов, второй блок 7 управления, первый регистр 8 операнда, второй регистр 9.операнда, второй регистр 10 кода операции, первый триггер 11 управления, второй триггер 12 управления и блох 13 буферизации команд. Информационный вход

14 устройства соединен с информационным входом блока 6, первый и второй информационные выходы которого подключены соответственно ко входам регистра 9 и регистра 10, управляющий вход — к нулевому выходу триггера !2, а первый и,второй управляющие выходы -, соответственно к единичному входу триггера 12 и выходу 15 управления приемом символов устройства. Первый, второй и третий входы блока 7 соединены соответственно с единичными выходами триггера 11, триггера 12 и третьим выходом блока 1. Первый", второй, третий, четвертый и пятый выходы блока 7 подключены соответственно ко вторым входам блока 1 и блока

5, нулевым входам триггера 11 и триггера 12 и управляющему входу блока 2.

Третий вход блока соединен с выходом регистра 10, Выход регистра 9 подключен к третьему входу блока"5, выход которого соединен со входом регистра 8, второй, третий и четвертый входы блока 4 подключены соот ветственно к выходу регистра 8, нулевому выходу триггера 11 и первому управляющему выходу блока 13. Второй, третий, четвертый, пятый и шестой выходы блока 4 соединены соответственно с единичным входом триггера

ll, управляющими входами регистра 3, первым управляющим и первым информационным входами блока 13. Второй и третий информационные входы блока

9 9437

13 подключены соответственно к выхо дам регистра 8 и регистра 3. Вход

16 управления чтением команд устройства соединен со вторым управляющим входом блока 13, информационный выход и второй управляющий выход которого подключены соответственно к информационному выходу 17 и выходу 18 управления выдачей команд устройства.

Первый блок 4 управления содержит регистр 19 адреса, память 20 микропрограмм, регистр 21 микропрограммы, дешифратор 22 микроопераций, узел 23 элементов И, коммутатор 24 адреса перехода и генаратор 25 синхроимпульсов (фиг.2). Первый вход регистра 19 подключен к первому входу блока 4, выход регистра 19,соединен со входом памяти 20. Вход регистра

21 подключен к выходу памяти 20, пер- 10 вый выход - ко входу дешифратора 22, а второй выход - к первому входу ком мутатора 24. Выход коммутатора 24 соединен со вторым входом регистра

19, а второй,: третий и четвертый вхо- 2$ ды коммутатора 24 подключены ко второму, третьему и четвертому входам блока 4. Выход генератора 25 соединен с управляющими входами регистра 19, памяти 20 и узла 23, вход которого зе подключен .к выходу дешифратора 22, а выходы - к первому, второму,.третьему, четвертому, пятому и шестому выходам блока 4.

3$

Второй блок 7 управления содержит регистр 26 адреса, память 27 микропрограмм, регистр 28 микрокоманды,де шифратор 29 микроопеарций, узел 30

l элементов И, коммутатор 31 адреса перехода и генератор 32 синхроимпульсов (фиг.3). Первый вход регистра 26 подключен к третьему входу блока 7, а выход регистра 26 соединен со входом памяти 27. Вход регистра

4$

28 подключен к выходу памяти 27, пер еый выход - ко входу дешифратора 29, а второй выход - к первому входу коммутатора 31, выход которого соединен со вторым входом регистра 26; а второй и третий

Ю входы подключены к первому и второму входам блока 7. Выход генератора 32 соединен с управляющими входами регистра 26, памяти 27 и узла 30 выход которого подключен к выходу дешифратора 29, а выходык первому, второму, третьему, четвертому и пятому выходам блока 7.

29 10

Блок 6 анализа символов содержит входной регистр 33, дешифтратор 34, два узла 35,36 элементов И, элемент

37 ИЛИ, триггер 38 анализа, элемент

И 39 и три линии 40,41 и 42 задержки (фиг.4). Информационный вход блока

6 соединен со входом регистра 33, выход которого подключен ко входу дешифратора 34 и первым входам узлов

35 и 36. Выходы узлов 35 и 36 соединены с первым и вторым информационными входами блока б, первый выход дешифратора 34 подключен к управляющему входу узла 36 и первому входу элемента 37, а второй выход дешифратора 34 соединен с управляющим входом узла 35, вторым входом элемента

37 и первым управляющим выходом блока 6. Единичный вход триггера 38 подключен к выходу элемента 37, а единичный выход - ко входу линии 40 задержки, выход которой соединен с первым входом элемента 39. Управляющий вход блока 6- подключен ко второму входу элемента 39, выход которого соединен со входами линий 41 и. 42задержки и вторым управляющим выхОдом блока 6. Выход линии 41 задержкй подключен к нулевому входу триггера

38, а третьей линии 42 задержки - к управляющему входу регистра 33. .Блок 13 буферизации команд содержит регистр 43 команд, память 44 команд, элемент 45 ИЛИ, два узла 46, 47 элементов И, счетчик 48 адреса записи, схему 49 сравнения, счетчик

50 адреса чтения, коммутатор 51, триггер 52 блокировки записи, триггер 53 блокировки чтения, триггер ,54 занятости и выходной регистр 55 (фиг,5). Первый, второй и третий информационные входы блока 13 соеди.нены с первым, вторым и третьим вхо-.. дами регистра 43 команд, выход которого подключен к первому входу памяти 44. Первый и второй управляющие входы блока 13 соединены с первым и вторым управляющими входами коммутатора 51. Первый и второй управляющие выходы коммутатора 51 подключены к первому и второму управляющим выходам блока 13. Первый,второй, третий и четвертый входы коммутатора 51 соединены соответственно с выходами триггера 52, триггера 53, триггера 54 и схемы 49. Первый, второй, третий, четвертый и пятым выходы коммутатора 51 подключены соответственно ко второму и третьему

9437

11 входам памяти 44, входам счетчика

48 и счетчика 50 и управляющему входу регистра 55. Выход счетчика 48 соединен с первым входом схемы 49 и первым входом узла 46, второй вход которого подключен к первому выходу коммутатора 51, выход, - к первому входу элемента 45 . Выход счетчика 50 соединен со вторым входом схемы 49 и первым входом узла 47, второй вход которого подключен ко второму выходу коммутатора 51, а выход — ко второму входу элемента 45, выход которого соединен с четвертым входом памяти

44. Вход 56 регистра 55 подключен к выходу памяти 44, а выход 57 — к информационному выходу блока 13.

Блок 1 сравнения приоритетов содержит постоянную память 58 и регистр 59 адреса(фиг.б). Первый, вто- 20 рой и третий входы блока 1 подключены соответственно к первому информационному входу, первому управляющему входу и второму информационному входу регистра 59. Первый, второй 2з и третий выходы регистра 59 соединены соответственно с первым и вторым выходами блока 1 и адресным входом памяти 58, информационный выход которой подключен к третьему выходу блока 36

1, а второй вход блока 1 соединен со входом разрешения считывания памяти 58.

В состав коммутатора 51 входят триггеры 60-67, элементы И 63,64, 69-77, элемент 65 ИЛИ, и генераторы

62,68 тактовых сигналов. Триггеры 60 и и 61 служат для фиксации запросов на чтение и запись в блок t3 на время выполнения предыдущего запроса. Запрос на запись поступает из блока 4 на единичный вход триггера 61, а запрос на чтение - со входа 16 устройства на единичный вход триггера

60. Единичные выходы этих триггеров соединены со входами элементов 63 и 64, которые вырабатывают сигналы разрешения соответственно чтения и записи. Входы элемента 63 соединены также с выходом триггера 53, который соответствует состоянию "чтение разрешено" выходом триггера 54, который соответствует состоянию "свободен", и первым выходом генератора

62. Входы элемента 64 подключены к выходу триггера 52, который соответствует состоянию "запись разрешена", выходу триггера 54, который соответствует состоянию "свободен", и ко

29 12 второму выходу генератора 62. Генератор 62 используется для временной селекции поступающих одновременно ,запросов на запись и чтение команды.

Этот генератор вырабатывает поочередно на одном из двух выходов тактовый сигнал, который разрешает выполнение записи или чтения. Интервал между появлением сигналов на выходах генератора 62 выбирается с учетом времени, необходимого для надежного изменения состояния триггеров 54,60,61,66 и 67.

Устройство работает следующим образом.

Программа, записанная на алгоритмическом языке, последовательно символ за символом подается на вход

14 устройства (см.фиг.l) . .При этом. очередной символ передается в устройство при появлении разрешающего сигнала на управляющем входе 15 устройства. Предполагается, что програм. ма предварительно подвергается лексической обработке и состоит только из символов четырех типов, которые отличаются значением специального признака: идентификаторов переменных, констант, функциональных символов и разделителей. Символы выполняемой программы поступают из оперативной памяти (не показана) на вход схемы

6 анализа. символов, которая выделяет символы двух видов; операнды (идентификаторы переменных и константы) и операции (функциональные символы и разделители) . Операнд передается схемой 6 на второй регистр 9 операнда, а операция - на регистр 10. После передачи операции на регистр 10 схема 6 устанавливает в единичное состояние триггер 12 и переходит в режим ожидания, в котором находится до тех пор, пока триггер 12 не установлен в нулевое состояние. Установка этого триггера в нулевое состояние осуществляется блоком 7. В режиме ожидания схема 6 не разрешает передачу на вход 14 устройства очередного символа программы, используя управляющий выход 15 устройства. После уста новки триггера 12 в нулевое состояние схема 6 выходит из режима ожидания, выдает сигнал на выход 15 для приема очередного символа, принимает этот символ по входу 14 и начинает его обработку. Установка триггера 12 .в единичное состояние является условием

943729

13 рля начала очередного цикла работы блока 7 при условии окончания преды"

;дущего цикла его работы. Этот цикл начинается с проверки состояния триггера 11. Если этот триггер находится в нулевом состоянии, то блок 7 переходит в режим ожидания, в котором постоянно проверяется состояние триггера 11. Когда триггер 11 установится в единичное состояние, блок 7 выдает сигналы, разрешающие запись операнда с регистра 9 в блок 5 и прием кода . операции из регистра 10 в блок 1.

После завершения этих действий блок

7 устанавливает триггер 12 в нулевое состояние, что позволяет схеме б начать анализ очередного символа программы. Одновременно с этим блок 7 выдает в блок 1 сигнал для сравнения приоритета очередной операции программы на регистре 10 с приоритетом операции в блоке 2 (при начальном включении .устройства в блок 2 зано- iсится специальный начальный симвосф .

Результат сравнения приоритетов 2 поступает в блок 7. Если приоритет очередной операции выше приоритета операции в блоке 2, по сигналу из блока 7 ее код записывается в блок 2 и проверяется состояние триг- зв гера 12. Если он находится в нулевом состоянии, т.е. очередная операция не подготовлена схемой 6, то блок 7 переходит в режим ожидания, в противном случае начинается новый цикл работы блока 7; В том случае, когда приоритет очередной операции ниже или равен приоритету операции в блоке 2, второй блок 7 управления проверяет состояние триггера 11.Если этот триггер находится в нулевом состоянии, то блок 7 переходит в ре" жим ожидания, в котором находится до установки триггера 11 в единичное состояние. После этого блок 7. выдает сигнал для записи кода операции из блока 2 в регистр 3; устанавливает триггер 11 в нулевое состояние и выполняется сравнение приорите. тов очередной операции в регистре 10 и следующей операции в блоке 2. Установка триггера 11 в нулевое состояние служит сигналом для начала работы блока 4. Этот блок реализует действия по формированию команд проI И цессора (не показан), выполняющего заданные в программе действия;определяемые кодом операции, поступившим в регистр 3.

14

Рассмотрим работу блока 4 для слу чая процессора с одноадресной системой команд, использующего блок ств ( ковой памяти для хранения промежуточ- ных результатов. Выполняемые блоком

4 действия зависят от числа операндов, необходимых для выполнения операции, код которой находится на регист ре 3. В случае одноместной операции блок 4 выдает сигнал чтения операнда из блока 5 в регистр 8, а затем производится запись содержимого регистров 3 и 8 в блок 13. Содержимое этих регистров образует соответственно операционную и адресную часть команды процессора.Да" лее блок 4 выдает в блок 13 сигнал записи и анализирует вид результата сформированной команды. Если результат является промежуточным, то в блок. 5 выдается сигнал для записи признака промежуточного результата, который указывает, что операнд находится в стеке промежуточных результатов процессора (не показан),. После

I этого триггер 11 устанавливается в единичное состояние, что является сигналом готовности блока 4 к формированию очередной команды. В том случае, когда для выполнения операции требуется более одного операнда, блок 4 выдает сигнал чтения операнда иэ блока 5 в регистр 8. После приема операнда на регистр 8 блок 4 анализирует его значение. Если операнд сопровождается признаком промежуточного результата, то блок 4 выдает сигнал на чтение следующего операнда из блока 5. В противном случае содержимое регистра 8 записывается в качестве адресной части очередной команды в блок 13. При этом в качест" ве операционной части команды в блоке

13 по сигналу из блока 4 устанавливается код операции засылки операнда в блок стековой памяти промежуточных результатов процессора. После этого блок 4 выдает сигнал записи в блок

13 и ожидает конца записи. Далее блок

4 выдает сигнал на чтение следующего операнда из блока 5. Эти действия выполняются для всех операндов опера" ции, кроме последнего. Обработка последнего операнда выполняется как и в случае одноместной операции.

Пример реализации первого блока

4 управления приведен на фиг.2, Этот блок работает следующим образом. На регистр 19 адреса поступает код one-

15 9437 рации из регистра 3, который интерпретируется как адрес памяти 20 микро программ, начиная с которого записана микропрограмма, обработки данной операции. По этому адресу из памяти.

20 выбирается микрокоманда на регистр .

21, которая дешифрируется дешифратором 22 в совокупность микроопераций, для выполнения которых узел 23 формирует управляющие сигналы, Эти сигналы 10 поступают на управляющие входы регистра 3; блока 5, регистра 8, блока 13, на единичный вход триггера 11 и ин, формационный вход блока 13 (для задания кода операции) . Выборка микро- 15 программ из памяти 20 осуществляется последовательно. Для изменения этой последовательности используется коммутатор 23 адреса перехода, который формирует адрес очередной микро- 2в команды в зависимости от содержимо-, го регистра 8 и состояния триггера

11 и блока 13, который сигнализирует об окончании записи команды. Синхронизация элементов блока 4 обеспечи- 25 вается генератором 25. Второй блок

7 управления работает аналогично бло ку 4.

Схема б анализа символов работает следующим образом (фиг.4). При зо поступлении на регистр 33 кода операнда вырабатывается сигнал на первом выходе дешифратора 34, который обеспечивает передачу кода операнда из регистра 33 через узел 36 в регистр 9. Этот же сигнал через элемент 37 поступает на единичный вход триггера 38, единичный выход которого подключен через линию 40 задержки к первому входу элемента 39, второй выход которого соединен с нулевым выходом триггера 12. На выходе элемента 39 вырабатывается сигнал, разре шающий передачу на вход 14 очередного символа программы. Этот же сигнал 45 разрешает прием информации на регистр

33 и установку в нулевое состояние триггера 38. Необходимые при этом задержки обеспечиваются линиями задержки 41 и 42, причем параметры линии 42 задержки определяют время выборки очередного символа из памяти, а параметры линии задержки 42 - дли.тельность сигйала на входе 15. При поступлении на регистр 33 кода опера55 ции вырабатывается сигнал на втором выходе дешифратора З4, который обеспечивает передачу кода операции из регистра 33 через узел 35 в регистр

29 16

10. Этот же сигнал поступает на единичный вход триггера 12 и через элемент 37 на единичный вход триггера

38. Задержанный сигнал с единичного выхода триггера 38 поступает на вход элемента 39 после установки триггера

12 в единичное состояние. В результате, разрешающий сигнал на выходе элемента 39 появляется только после установки триггера 12 в нулевое состояние. Это обеспечивает блокировку приема очередного символа программы после приема кода операции до уста-. новки триггера 12 в нулевое состояние.

6лок 13 буферизации команд 1 фиг.5 ) имеет кольцевую адресацию, т.е. после записи или чтения в последнюю ячейку памяти 44 команд осуществляется за лись или чтение в первую ячейку памяти. Для задания адреса ячейки памяти, в которую должна быть записана команда, используется счетчик 48 адреса записи. Йри чтении из памяти используется счетчик 50, Для исключения записи информации в занятые ячейки памяти, а также чтения из пустых weек используется схема 49 сравнения.

Состояние полного заполнения памяти и отсутствие информации фиксируется триггерами 52 и 53. Триггер 54 занятости используется для разделения во времени действий по записи и чтеwe информации. Единичное состояние этого триггера разрешает. запись или чтение команд, а нулевое состояние блокирует обращения к блоку 13. Необходимые сигналы управления вырабатывает коммутатор 51. Элементы 46, 47 и 45 используются для передачи на адресный вход памяти 44 содержимого одного иэ счетчиков. При записи информации в блок 13 на регистр 43 поступают коды операнда и операции.

Регистр 43 разбит на две части: в первую часть записывается код операнда из регистра 8, а во вторую - код операции из регистра 3 или блока 4.

В начальный момент времени регистр

43 устанавливается в нулевое состояние, счетчики 48 и 50 содержат адрес первой ячейки памяти 44, триггер 54 в положение "свободен", триггер 52в состояние "запись разрешена", триггер 53 - в состояние "чтение запрещено". По сигналу из блока 4 запускается коммутатор 51, триггер 54 из положения "свободен" устанавливается в положение "занят". Ао адресу на

9437

17 счетчике 48 производится запись содержимого регистра 43 в память

44. Триггер 53 устанавливается в положение "чтение разрешено", содер,жимое счетчика 49 увеличивается на единицу, сигнал "Конец записи" комму. татора 51 передается в блок 4, триггер 54 переводится в состояние "свободен".

Зались последующих команд произво- 16 дится по сигналу из блока 4 при наличии в памяти 44 свободной ячейки.

В противном случае выполнение записи откладывается до изменения состояния триггера 52, которое имеет мес- ts то при чтении команды. Если в памяти имеется свободная ячейка, то следующим шагом является проверка занятости блока 13. В том случае, когда этот блок не занят выполнением чтения, эв триггер 54 устанавливается в состоя-.

we "занят", что блокирует обращение по чтению. Если блок 13 выполняет чтение команды, то запись задерживается до завершения чтения. Последующая запись производится в память ло адресу, который указан в счетчике 48. Одновременно с записью в память триггер 53 устанавливается в состояние "чтение разрешено" и разрешается чтение из блока 13, затем содержимое счетчика 48 увеличивается на единицу.. Если после этого значтение счетчика 48 совпадает со-значением счетчика 50, такое совпадение

33 фиксируется схемой 49 и свидетельствует о полном заполнении 44, при этом триггер 52 устанавливается в состояние "запись запрещена", блокируя дальнейшую запись в блок 13.После этого, а также если в памяти 4 имеется свободное место, триггер 54 устанавливается в состояние "свободен", а блок 4 получает сигнал окончания записи. Чтение команды из блока 13 осуществляется по сигналу из процессора, поступающему на вход 16, и возможно только при наличии команд в памяти 44. Если триггер 53 находится в состоянии "чтение запрещено", то

Зв выполнение чтения задерживается до изменения состояния триггера 53, которое происходит в результате записи в блок 13 очередной команды. Если в памяти 44 имеются команды, то, как и в случае записи, в начале проверяется состояние триггера 54 и блокируются обращения по записи путем установки этого триггера в сос29 18 тояние "занят".После этого осуществляется чтение из памяти 44 по адресу, укаэанном счетчиком 50. Одновременно с чтением из памяти триггер

52 устанавливается в состояние "запись разрешена", т.е. допускается запись в блок l3. Содержимое счетчика 50 увеличивается на единицу. Если после этого значение счетчика 50 совпадает со значением счетчика 48, что означает отсутствие информации

s памяти 44, то триггер 53 устанавливается в состояние "чтение запрещено", блокируя последующие считывания из блока 13. После этого, а также, если в памяти 44 имеются команды, триггер 54 устанавливается в состояние "свободно". В процессор с выхода 18 выдается сигнал конца чтения. Считанная из памяти 44 команда поступает на регистр 55, а ,затем с выхода 17 -в процессор. блок 1 сравнения приоритетов содержит постоянную память 58 и регистр 59 адреса (Фиг.6) . Постоянная память содержит информацию о взаимном приоритете всех возможных пар операций. Для этого каждой паре операций языка в памяти 58 поставлено в соответствие слово длиной в один бит, в котором указано соотношение приоритетов данных операций.

Адрес слова в памяти 58 задается регистром 59. 8 старшие разряды регистра 59 записывается код очередной операции из регистра 10, а младшие -. код операции из блока 2, После записи кодов операции в регистр

59 содержимое. этого регистра выдается на адресный вход памяти 58, на управляющий вход которой поступает сигнал разрешения чтения из блока 7.

Считанный код, определяющий соотношение приоритетов операций, передается с информационного выхода памяти

58 в блок 7. В том случае, когда приоритет очередной операции выше приоритета операции в блоке 2, второй блок 7 управления разрешает за- пись кода очередной операции в блок.

2. Для этого код младших рвзрядоа регистра 59 передается в блок 2,а код старших раэрядав регистра 59 записывается в его младшие разряды. Иладшие разряды регистра

59 играют в данном случае роль вершины Ьлока 2 стековой памяти one": .раций, в которой находится последний записанный в стек код операции. После

9ч 3729 20 программ формирует следующую послеи довательность команд

19 этого блок 1 готов к приему очередно го кода операции из регистра 10, Есл приоритет очередной операции ниже или равен приоритету операции в блоке 2. находящейся в младших разрядах ре- 5 гистра 59, блок 7 после проверки необходимых условий разрешает передачу кода операции из блока 2 в регистр

3. Для этого код младших разрядов регистра 59 передается на вход регистра 3, а в младшие разряды регистра 59 записывается очередной код из блока 2. После этого блок 1 готов к сравнению приоритетов очередной пары операций. Действия по приему и выдаче информации произво- дится по сигналам блока 7, Для пояснения работы устройства рассмотрим пример обработки оператора А: 8 х С + Е; Предположим,что пе- 2в ред обработкой этого оператора триггер 11 находится в единичном состояI нии, а триггер 12 - в нулевом состоянии. Последовательность действий, выполняемых под управлением схемы 6 И анализа символов, второго блока 7 управления и первого блока ч. управления при обработке оператора, приведена в таблице. В таблице приняты следующие обозначения: « » содержи- зо мое вершины блока 2 стековой памяти перед обработкой оператора, ПрПРпризнак промежуточного результата.

8 результате обработки опера