Устройство для хранения и формирования микрокоманд

Иллюстрации

Показать все

Реферат

 

о п и -а-е

ИЗОБРЕТЕНИЯ иц 4740 07

Союз Советских

Социалистических

Республик

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) Зависимое от авт. свидетельства (22) Заявлено 13.03.73 (21) 1893238/18-24 (51) М. Кл. G 06f 9/00 с присоединением заявки №

Совета Министров СССР (53) УДК 681.325(088,8) Опубликовано 14.06.75. Бюллетень ¹ 22

Дата опубликования описания 08.09.75 па делам изобретений и аткрытиГв (72) Авторы изобретения

В. Д. Вероцкий, В. Д. Лосев и С. Б. Погребинский

Ордена Ленина институт кибернетики AH Украинской ССР (71) Заявитель (54) УСТРОЙСТВО ДЛЯ ХРАНЕНИЯ

И ФОРМИРОВАНИЯ МИКРОКОМАНД

Государственный комитет (32) Приоритет

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

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

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

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

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

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

20 страниц оперативной памяти, в которых записаны сегменты.

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

Известному устройству присущи сложность изменения и дополнения микропрограммного обеспечения. Изменения и дополнения, затра30 гивающис микропрограммы, фиксированные в

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

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

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

Еще один недостаток состоит в недостаточной жизнеспособности устройства.

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

Целью изобретения является увеличение гибкости при наладке и эксплуатации устройства.

Для этого в него введены блок сравнения, блок задания множеств сегментов, блок обнаружения смены сегментов. Выход блока задания множеств сегментов соединен с первым входом блока сравнения, выход регистра номера сегмента — со входом блока обнаружения смены сегментов, а выходы блоков сравнения и обнаружения смены сегментов, а выходы блоков сравнения и обнаружения смены сегментов соединены с соответствующими входами блока управления. Регистр номера сег474007

4 мента, кроме того, соединен со вторым входом блока сравнения. Второй блок ассоциативных регистров соединен соответствующими входами с регистром адреса микрокоманд и шиной кодовой магистрали, а выходом — с блоком управления, выход последнего соединен с регистрами адреса микрокоманд и номера сегмента и вторым блоком ассоциативных регистров. Кроме того, входы блоков сравнения и управления соединены с шиной контроля и

10 диагностики вычислительной машины.

На чертеже представлена блок-схема предлагаемого устройства.

В состав предлагаемого устройства входит

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

20 Блок постоянной памяти 2 предназначен для хранения сегментов микрокоманд, составляющих ядро микропрограммного обеспечения вычислительной машины; блок внешней памяти 3 — для хранения информации, с которой

25 работает вычислительная машина, включая сегменты микрокоманд. Регистр микрокоманд

4 служит для хранения выполняемой микрокоманды, регистр адреса микрокоманд 5— для указания микрокоманды относительно на50 чала сегмента. Регистр номера сегмента 6 предназначен для указания номера сегмента, в которой входит микрокомапда, блок ассоциативных регистров 7 — для определения по номеру сегмента адреса страницы блока опе35 ративцой памяти 1, в которой записан данный сегмент. В олоке ассоциативных регистров 7 хранится таблица распределения оперативной памяти, устанавливающая соответствие между номерами сегментов и адресами страниц

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

Блок сравнения 8 предназначен для определения принадлежности запрошенного сегмента

45 одному из следующих непересекающихся множеств сегментов: множеству М сегментов, фиксированных в блоке постоянной памяти 2, в которых нет изменений, множеству N> сегментов, фиксированных в блоке постоянной памяти 2, в которых имеются изменения, множеству М, сегментов, отсутствующих в блоке постоянной памяти 2.

Блок задания множеств сегментов 9 предназначен для сообщения блоку сравнения 8 информации, позволяющей определить принадлежность любого сегмента одному из вышеуказанных множеств. Блок обнаружения смены сегментов 10 предназначен для определения момента перехода к следующему сегвп менту. Блок ассоциативных регистров 11 предназначен для хранения таблицы изменений текущего сегмента, записанного в блоке постоянной памяти 2, и обеспечивает ассоциативный поиск требуемой строки таблицы изменений (полная таблица изменений, в кото474007 рой указаны все изменения микропрограмм, хранящихся в блоке постоянной памяти 2, записана В Олоке оператиВнОЙ памяти 1; В каждой строке таблицы изме1 ений указан адрес микрокоманды, после выполнения которой необходим переход к микрокоманде, адрес которой указан в той же строке таблицы).

Блок управления 12 предназначен для Bbiполнения следующих функций: задание режима выборки микрокоманд из блока постоянной памяти 2, задание режима выборки микрокоманд из блока оперативной памяти 1, формирование сигналов запроса прерывания при переходе к сегменту, принадле>кащему мц М, или к сегменту множества М, отсутствующему в огеративной памяти, а также в случае обнару>кения ошибки в считанной микрокоманде, выпочнение переходов в соответствии с таблицей изменений.

Перечисленные блоки связаны между собой, а также с другими устройствами вычислительной машины, посредством шин 13 — 29. Шины

13 кодовой магистрали 13 предназначены для обмена информацией между блоком оперативной памяти 1, блоком внешней памяти 3, регистром адреса микрокоманд 5, регистром номера сегмента 6, блоком ассоциативных регистров 7, блоком ассоциативных регистров 11 и блоками других устройств вычислительной машины, Шины 14 служат для передачи в регисто адреса микрокоманд 5 сигналов перехода к следу1ощей микрокоманде. Кодовые шины 15 предназначены для передачи адреса микрокоманды относительно начала сегмента в блок оперативной памяти 1, блок постоянной памяти 2 и блоке ассоциативнь х регисчров 11. Кодов.1е ши11ь1 16 служат для передачи номера сегмента треб1емой MHKpoKoìàíäû в блок гостоянной памяти 2, блок ассоциативных регистров 7, блок сравнения 8 и блок обнаружения смены сегментов 10, а кодовые ши ы 17 — для передачи в блок оперативной памяти 1 адреса страницы требуемой микрокоманды.

Кодовые п1ины 18 предназначены для выдачи микроко.1анды из блока оперативной памяти 1 в пегистр микрокомацды 4, кодовые ц1игь1 19 — для в1.1дачи микрокоманд из блока постоя:llio-."., ",,àìÿòè 2 в регистр микрокоМанч 4, КОдОГЬ1Е ШИНЫ 20 СЛужат дЛя ПЕРЕдачи микрокоманд в устройство управления вычислительной машины, шины 21 — для перелачи г, блок сравнения 8 сигналов, позволяющих определить принадлежность любого сегмента одному из трех вышеуказанных мно?кеств М вЂ” М .

Кпоме того. устройство содер>кит шины 22 сигналов свавнения, указь BВ1оп их на Iip;»Iaa,— лежност1, тек .ц:его сегмента к одномх из трех м11ожес-в. шинь1 23 сигналов сравнечия номеоа треб немого сегмента с одним из номерог, сегментов, хранящимся в блоке ассоциатпBных регистров 7, шины 24 сигналов запуска блока управления 12 при переходе к очередному сегменту и шины 25 сигналов запуска

6 блока управления при совпадении содержимого регистра адреса мпкрокоманд 5 и одного из регистров блока ассоциативных регистров 11.

Шины 26 служат;1ля передачи в устройство управления гычислительной машины сигналов задания одного из следующих режимов: режима выборки микрокоманд из блока

IIOCTOSIIIHOH памяти 2 II pC?411312 выбо1?ки M III(рокоманд из блока оперативной памяти 1.

Имеются шины 27 сигналов выдачи из блока ассоциативных регистров 11 на шины 13 кодовой магистрали адреса микрокоманды в соответствии с таблицей изменений и приема этого адреса в регистр адреса микрокоманды 5; шины 28 сигналов запроса прерывания для перехода к служебной микропрограмме и шины 29 сигналов обнаружения ошибки в считанной микрокоманде, поступающих от устрОйстВа контроля и диагностики вычислительной машины.

Подготовка предлагаемого устройства к работе производится следующим образом.

В блоке задания м1гожеств сегментов 9 в соответствии с множествами М1 и М производится переключение (например, посредством включения тумблеров, предусмотренных в блоке заданий множеств сегментов 9, или установки перемычек). что обеспечивает передачу по шинам 21 в блок сравнения 8 сигналов, указывающих множество NI сегментов, фиксированных в блоке постоянной памяти 2, В которых IIe F изменений, и мпожестВО М2 сегментов, фпксировагн1ых в блоке постоянной памяти 2, в которых имеются измене1гия. При этом сегменты, которые претерпели существепнь1е изменения и, хотя фактически присутствуют в блоке постоянной памяти 2, не могут быть использованы при выполнении программы, в вышеуказанные множества не включаются, в результате чего доступ к таким сегментам блокируется.

Под управлением программы, хранящейся в блоке постоянной памяти 2, производится начальная загрузка: в память микрокоманд из внешнего накопителя или устройства ввода (магнитные ленты. перфоленты, перфокарты и т. д.) по шинам 13 кодовой магистрали передается необходимая информация (микропрограммное обеспечение, исправления микропрограмм, хранящихся в блоке постоянной памяти 2, указания с комплекте оборудования, имеющегося в составе вычислительной машины, и т. д.). При этом в блоке оперативной памяти 1 составляется таблица распределения памяти, в которой отражается распределение внешней и оперативной памяти для хране1ия сегментов, составляется таблица исправления микропрограмм, хранящихся в блоке постоянной га. .1яти 2, происходит запись сл; жебной IIIIÔooìÿililè и фиксированные ячейки блока оперативной памяти 1.

Обычно сегменты мпкрокоманд BB"ðóæàþòся только в блок внешней памяти 3. Однако в случае, если некоторое количество микропрограмм, необходимых для работы памяти ми1474007

7 рокоманд (например, микропрограмма переписи информации из блока внешней памяти 3 в блок оперативной памяти 1), отсутствует в блоке постоянной памяти 2, то в блок оперативной памяти 1 записывается некоторое количество сегментов, которые затем постоя11но присутствуют в оперативной памяти, называеMLIx резидентными, а в блок ассоциативных регистров 7 — соответствующие этим сегментам строки таблицы распределения памяти.

Устройство для хранения и формирования микрокомаид рабо1ает следуIoIIIIIiI ооразом.

Математический адрес текущей микрокоманды, состоящий из номера сегмента и адреса микрокоманды относительно начала сегмента, поступает в регистр адреса микрокоманд 5 If регистр номера сегмента 6 по шинам 13 кодовой магистрали, лиоо формируется с помощью сигна IQB перехода к следующей микрокоманде, поступающих в регистр адреса мпкрокоманд 5 по шинам 14. Номер сегмента по кодовым шинам 16 передается в блок сравнения 8, где определяется IIvo>«депие данного сегме11та в одно из трех вышеуказанны:< множеств, и B блок управления 12 по шинам 22 поступают сигналы сравнения. Номер сегмента поступает также в блок обнару>кения смены сегментов 10, вырабатывающий в момент изменения кода в регистре номера сегмента 6 сигнал запуска блока управления 12. Процедура перехода к участку микропрограммы, принадле>кащему следующему сегменту, зависит от результата операции сравнения, выполняемой блоком сравнения 8.

Если сегмент входит в множество М1, с помощью сигналов, передаваемых в устройство управления вычислительной машины по шинам 26, устанавливается режим выборки микрокоманд из блока постоянной памяти 2 до момента обращения к следующему сегменту.

Выборка требуемой ячейки постоянной па.. 1TH осуществляется непосредственно с помощью математического адреса микрокоманды, совпадающего с ее физическим адресом в блоке постоянной памяти 2. Считанный код по кодовым шинам 20 поступает в устройство управления вычислительной машины, Если сегмент входит в множество М, с помощью сигналов, передаваемых по шинам 28, осуществляется переход к служебной микропрограмме, обеспечивающей перепись из блока оперативной памяти 1 в блок ассоциативных регистров 11 таблицы изменений текущего сегмента, после чего прерванная микропрограмма продол>кает выполняться в режиме выборки микрокоманд из блока постоянчой памяти 2 до момента обращения к следущему сегменту либо до момента окончания выполнения микроком анды, адрес которой указан в блоке ассоциативных регистров 11.

В этот момент в блок управления 12 по шинам

25 поступает сигнал запуска, в результате чего вырабатываются сигналы, передаваемые по шинам 27 в блок ассоциативных регистров 11, регистр номера сегмента 6, регистр

55 бО

8 адреса микрокоманды 5 и обеспечивающие перепись из блока ассоциативных регистров 11 и регистр номера сегмента G и †регис 3;I,— реса микрокоманды 5 математического адреса очередной микрокоманды в соответствии с таблицей исправлений.

Если сегмент входит в множество М, IIeмедленный доступ к нему возможен только в случае наличия номера требуемого сегмента в блоке ассоциативных регистров 7. B этом случае блок ассоциативных регистров 7 вырабатывает сигнал сравнения, который совмсстс сигналом запуска поступает в блок управления 12 и переключает устройство в ре «IIiI выборки микро«оманд из блока оператив1юй памяти 1. B этом режиме физический адрес микрокоманды в блоке оперативной памяти 1 задается адресом страницы, передаваемым го кодовым шинам 17, и адресом относитель1ю начала страниць1, передаваемым по кодовым

1иинам 15. Считанный код по кодовым ши11ам

18 принимается в регистр микрокомапды 4, откуда по кодовым шинам 20 поступает в устройство управления вычислительной машины.

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

Предварительно информация, хранящаяся в

pcI èñòðà вычислительной машины, записывается в специально отведенные ячейки блока оперативной памяти 1, после чего в таблице распределения памяти по номеру сегмента отыскивается физический адрес страницы памяти, в которой записан требуемый сегмент.

Если эта страница принадлежит оло«у оперативной памяти 1, номер сегмента и адрес занимаемой им страницы записываются в один из регистров блока ассоциативных регистров

7, определямый по некоторому правилу (например, циклически, либо на основании информации об интенсивности использования регистров, накапливаемой в специальном поле каждого регистра), затем происходит восстановление состояния процессора. Поскольку теперь в блоке ассоциативных регистров 7 происходит сравнение номера сегмента требуемой микрокоманды с содер>кимым одного из регистров, выполнение прерванной микропрограммы продолжается. Если требуемый сегмент находится в блоке внешней памяти

3, то он переписывается в оперативную память. Если для хранения этого сегмента не мо>кет быть выделена свободная страницы оперативной памяти, то в соответствии с некоторым правилом определяется сегмент, подлежащий удалению из блока оперативной памяти 1, и на его место записывается требуемый сегмент, при этом производится корректировка таблицы распределения памяти в блоке оперативной памяти 1 и в блоке ассоциативных регистров 7.

474007

15

9

Строки таблицы распределения памяти, относящиеся к резидентным сегментам, снабжаются специальным признаком, который обеспечивает постоянное нахождение этих строк в блоке ассоциативных регистров 7, а резидентных сегментов — в блоке оперативной памяти 1.

Каждая вновь считанная микрокоманда поступает в устройство контроля и диагностики вычислительной машины, где с помощью кодовых методов происходит ее контроль. В случае выявления ошибки по шинам 29 из устройства контроля и диагностики поступают c»Iпалы, в результате чего блок управления 12 вырабатывает сигнал запроса прерывания но ошибке, и предлагаемое устройство переходит к работе в соответствии со следующи»1 алгоритмом: определяется блок памяти, из которого было неправильно считана микрокоманда; если микрокоманда неправильно считана из блока оперативной памяти 1, происходит повторная перепись соответствующего сегмента из внешней памяти в оперативную память, а затем микрокоманда снова считывается, и в случае отсутствия ошибки работа вычислительной машины продолжается, при этом устройство контроля и диагностики сигнализирует наличие сбоев. В случае ooнаружения ошибки при повторном считывании микрокомацды с помощью служебной микропрограммы определяются неработоспособные ячейки оперативной памяти, и на устройство вывода вычислительной машины выводится соответствующее сообщение, блокируется доступ к некоторой совокупности ячеек, включающей неработоспособные ячейки, производится перераспределение оперативной памяти и выполнение рабочей программы продолжается.

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

При неправильном повторном считывании с помощью устройства контроля и диагностики определяются неработоспособные ячейки loстоянной памяти, и на устройство вывода вычислительной машины выводится соответствующее сообщение, по шинам 29 в блок сравнения 8 поступают сигналы, исключающие из множеств М1 и М2 те сегменты, в которые входят неработоспособные ячейки, и присоединяющие эти сегменты к множеству Мз, при необходимости производится корректировка таблицы исправлений. Затем вычислительная машина продолжает выполнение рабочей программы.

Таким образом, предлагаемое устройство допускает внесение необходимого количества изменений и дополнений в микропрограммное обеспечение, фиксированное в блоке постоянной памяти 1, без фактического изменения ко25

10 дов, записанных в блоке постоянной памяти 2, что позволяет, дополняя ядро микропрограммного обеспечения, фиксированное в блоке постоянной памяти 2, тем или иным комплектом дополнительных микропрограмм, осуществлять проблемную переориентацию вычислительной машины. Обеспечиваются широкие возможности усовершенствования и расширения микропрограммного обеспечения, следовательно, повышения эффективности и расширения функциональных возможностей вычислительнои машины. Предлагаемое устройство позволяет использовать общее микропрограммное обеспечение в вычислительных машинах различного класса, от малых вы шслительных машин с небольшим объемом оперативной и постоянной памяти и невысокой стоимостью до больших вычислительных машин, Достигается высокая жизнеспособность устройств.

Предмет изобрстения

Устройство для хранения и формирования микрокоманд, содержащее блок оперативной памяти, блок постоянной памяти, регистр м1!кроном анд, регIIcTp адреса микрокоманд, регистр номера сегмента, блок ассоциативных регистров, блок управления, причем входы блоков оперативной памяти, внешней памяти и ассоциативных регистров, регистров адреса микрокоманд и номера сегмента соединены с шиной кодовой магистрали, выход регистра номера сегмента соединен с блоками постоянной памяти и ассоциативных регистров, а выход регистра адреса микрокоманд — с блоками оперативной и постоянной памяти, которые, в свою очередь, соединены с регистром микрокоманд, блок ассоциативных регистров, кроме того, соединен с блоками оперативной памят и управления, о т 1 и ч а 10 щ е ес я тем, что, с целью увеличения гибкости при наладке и эксплуаташш, в него введены блок сравнения, блок задания множеств сегмен,03, блок обнаружения смены сегментов, причем выход блока задания множеств сегментов соединен с первым входом блока сравнения, выход регистра номера сегмента — со входом блока обнаружения смены сегментов, а выходы блоков сравнения и обнаружения смены сегментов соединены с соответствующими входами блока управления, регистр номера сегмента, кроме того, соединен со вторым входом блока сравнения, и второй блок ассоциативных регистров, соединенный соответствующими входами с регистром адреса микрокоманд и шиной кодовой магистрали, а выходом — с блоком управления, выход последнего соединен с регистрами адреса микрокоманд и номера сегмента и вторым блоком ассоциативных регистров, кроме того, входы блоков сравнения и управления соединены с шиной контроля и диагностики вычислительной машины.

474007

Составитель М. Аршавский

Техред М. Семенов

Корректор Л. Котова

Редактор Е. Семанова

Типография, пр. Сапунова, 2

Заказ 2191 6 Изд № 1509 Тираж 679 Пол писное

Ц11ИИГ/И Государственного комитета Совета Министро з СССР по делам изобретений и открытий

Москва, Ж-35, Раушская наб., д. 475