Устройство для трансляции логических адресов в адреса памяти на магнитных дисках

Иллюстрации

Показать все

Реферат

 

ОЛ ИСАНИЕ

ИЗОБРЕТЕН ИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ

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

Социаписткческик

Республик (iii966695 (6I ) Дополнительное к авт. свил-ву (22) Заявлено 09.01.81 (21) 3260104/18-24 м с присоединением заявки J% (5t)IVL. Кл..

606 F 9/36 Ъоударотеенный комитет

СССР аю делам нзобретеннй н открытей (23) Приоритет (53) УДК 681.325 (088. 8) Опубликовано 15.10.82. Бюллетень ¹ 38

Дата опубликования описания 25 10 82

««

В. Н. Забпоцкий и Б. В. Бесии (72) Авторы изобретения (71) Заявитель (54) УСТРОЙСТВО ДЛЯ ТРАНСЛЯЦИИ ЛОГИЧЕСКИХ

АДРЕСОВ В АДРЕСА ПАМЯТИ НА МАГНИТНЫХ

ДИСКАХ

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

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

Лля управления распределением внешней памяти известны следуюшие виртуаль-15 ны@ методы доступа, используемые операционными системами, которые управляют виртуальной памятью: виртуальный последовательный, виртуальный индекснопоследовательный, виртуальный библиотеч- 20 ный.

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

Виртуальный индексно-последовательный метод доступа использует наборы данных трех типов: страницы справочнИка, страницы данных, страницы переполнения.

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

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

Виртуальный библиотечный метод доступа используется для хранения информации в системной библиотеке. Набор данных с библиотечной виртуальной организацией вклю, чает страницы справочника и страницы 1О элементов. Страница справочника задаег адрес страницы каждого элемента набора данных с библиотечной виртуальной организацией, Страница элемента может быть организована либо как страница в виртуальном последовательном методе доступа, либо как страница в виртуальном индексцо-последовательном методе доступа $l).

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

Наиболее близким к предлагаемому изобретению является устройство для трансляции адресов, содержашее регистр логи- 30 ческого адреса, регистр физического адреса, группы элементов памяти, коммугBтор, счетчик, компарагор, элемент И, блок управления (2).

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

Кель изобретения — расширение функциональных возможностей устройства за счет возможности работы в вычислительных cncreMax с одиночной и множественной виртуальной памятью.

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

:>ac II!»ra памяти, с первыми входами коммутатора и схемы сравнения, второй вход и вькод которой соединены соотвегствен Ho с выходом первого элемента памяти и с первым входом элемента И, второй вход и выход которого соединены соответственно с выходом второго элемента памяти и с управляюшим входом регистра физического адреса, второй вход которого соединен с выходом третьего элемента памяти, вход которого соединен с информационным входом устройства, адресные входы элементов памяти соединены с выходом коммутатора второй вход которого соединен с выходом счетчика, первый и второй входы блока управления соединены соответственно с входами кода операции и синхронизации устройства, выход блока управления является выходом прерывания устройства, выходы группы выходов блока управления соответственно соединены .с третьим входом элемента И и с управляюшими входами элементов памяти, коммутатора и счетчика, первый вход группы входов блока управления соединен с выходом элемента И, введены управляющий регистр, блок вычитателей, блок назначения, генератор расстановки, блок памяти состояния внешней памяти, счетчик адреса устройств, регистр адреса устройства, регистр адреса страницы, причем выходы регистра логического адреса и управляющего регистра соединены соответственно с первым и вторым входами блока вычитателей, первый выход которого соединен с первыми входами блока назначения и генератора расстановки, выход которого соединен с вторым входом блока назначения, первый выход которого соединен с первым входом регистра логического адреса, информационный вход устройства соединен с первыми. входами счетчика адреса устройств и блока памяти состояния внешней памяти, выход которого соединен со вторыми входами генератора расстановки и счетчика адреса устройств, выход которого соединен с входом регистра адреса устройства, выход которого соединен с .третьими входами генератора расстановки и блока назнаI чения, соответствующие выходы группы выходов блока управления соединены с управляюшими входами генератора рас» становки, блока назначения, счетчика адреса устройств, блока памяти состояния внешней памяти, регистра адреса устрой«.ства и регистра адреса страницы, вторые выходы блока вычитателей, блока назначения и выходы блока памяти состояния внешней памяти и регистра адреса устройства соединены соответственно с вхо

96ОВ95 дами с второго по пятый группы входов блока управления.

Кроме того, блок назначения содержит элементы памяти таблицы, элементы памяти переходов, узел индикации свободных расстановок, два узла приоритета, регистры, сдвигающий регистр, коммутатор, блок элементов И, элементы И и ИЛИ, причем первые входы элементов памяти таблиц соединены с первым входом блока, второй вход блока соединен с первыми входами коммутатора и элементов памяти переходов, первый выход каждого из. которых соединен с соответствующим входом коммутатора, выход которого соединен с входом первого регистра, выход которого соединен со вторыми входами элементов памяти таблиц и с первым входом узла индикации свободных расстановок, первый выход которого соединен с вторы. ми входами элементов памяти переходов, вторые выходы которых соединены с входом второго регистра, выход которого соединен с входами первого элемента И, с первым входом блока элементов И и с входом первого узла приоритета, выход которого соединен с входом сдвигающего регистра и с третьими входами элементов памяти переходов, первый и второй выходы элементов памяти таблиц соеди- ЗО иены соответственно с первым выходом блока, с входами элемента ИЛИ и с входом третьего регистра, выход которогс соединен с вторым входом узла индикации свободных расстановок, с входами З5 второго элемента И и с входом второго узла приоритета, выход которого соединен с третьими- входами элементов памя» ти таблиц, выход сдвигающего регистра соединен с вторым входом блока элемен- gp тов И, выход которого соединен с четвертыми входами элементов памяти переходов и с управляющим входом коммутатора, выходы элементов И, ИЛИ и второй выход узла индикации свободных расстановок соединены с вторым выходом олока, управляющий вход блока соединен с чет- вертыми входами элементов памяти таблиц, с пятыми входами элементов памяти переходов с третьим входом узла индикации свободных расстановок и с управляющими входами регистров, четвертый вход узла индикации свободных расста- . новок является третьим входом блока, выход первого регистра соединен с первым выходом блока.

Генератор расстановки содержит бло.ки элементов ИСКЛЮЧАЮШЕЕ ИЛИ, вычитатели, дешифраторы, регистр, причем первый вход генератора соединен с входами блоков элементов HCKlIIG×AIÎØI:.Å

1!ЛИ, выход первого блока элел1ентои

ИСКЛЮЧАIОШЕЕ ИЛИ соединен с входом уменьшаемого первого вычитатоля и с входом первого дешифратора, выход которого соединен с входом вычитаемого первого вычптателя, выход второго блока элементов ИСКЛIОЧАЮЩЕЕ ИЛИ соединен с входом уменьшаемого второго вычитателя и с входом второго дешифратора, выход которого соединен с входом вычитаемого второго вычитателя, выходы вычитателей и третий вход блока соединены с информационным входом регистра, тактовый вход которого является тактовым входом генератора расстановки, выходом которого является выход регистра.

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

Узел индикации свободных расстановок

Э блока назначения содержит коммутатор, сдвигающие регистры, вычитатели, элементы памяти, дешифраторы, узлы йриоритета, шифраторы, регистры, вычитатели, элементы И, блок элементов И, элементы ИЛИ,. причем информационный, управляющий и адресный входы и выхбд каждого элемента памяти соединены с выходами соответствующих элемента И, дешифратора, коммутатора и с входом соответствующего узла приоритета соответственно, входы элементов И, кроме йервого, соединены с выходом соответ966 ствующего элемента памяти, входы первого- элемента И являются вторым входом узла, первым входом и первым выходом которого являются первый вход коммутатора и выходы регистров, входы которых соединены с выходами соответствующих шифраторов, входы которых соединены с выходами соответствующих узлов приоритета, первый и второй входы дешифраторов соединены с выходами бло- 10 ка элементов И и коммутатора, второй вход которого соединен с выходами регистров, управляющие входы которых соединены с выходом первого сдвигающего регистра, выход второго сдвигающего регистра соединен с первым входом блока элементов И, управляющие входы сдвигающих регистров, коммутатора и второй вход блока элементов И являются третьим входом узла, вторым выходом которого явля-щ ются выход элемента ИЛИ, входы которого соединены с выходом посЛеднего элемента И и с выходами знакового разряда вычитателей, входы уменьшаемого которых соединены с выходами регистров, чет-д вертым входом узла являются входы вычитаемого вычитателей, На фиг l приведена структурная схема устройства для трансляции логических адресов в адреса памяти на магнитных дисках; на фиг. 2 - структурная схема блока назначения; на фиг. 3 - функциональпая схема генератора расстановки; на фиг. 4 - функциональная схема блока управления; на фиг. 5 - функциональная схема узла индикации свободных расстановок; на фиг. 6 — функциональная схема узла приоритета, Устройство для трансляции логических адресов в адреса памяти на магнитных дисках (фиг. 1) содержит регистр 1 логического адреса, регистр 2 физического адреса, группы элементов памяти 3-5, коммутатор 6, счетчик 7, схему сравнения 8, элемент И 9, блок 10 управления, управляющий регистр 11, блок 12 вычитателей, блок 13 назначения, генератор расстановки 14 блок 15 памяти состояния внешней:памяти, счетчик 16 адреса

$0 устройств, регистр 17 адреса устройства, информационный вход 18 устройства, регистр 19 адреса страницы, вход 20 кода операции устройства, вход 21 синхронизации устройства, выход 22 прерывания устройства, группу 23 входов, группу 24

И выходов блока управления 10, входы 2529 группы входов 23 и выходы 30-36 группы выходов 24 блока управления 10, 695 8 выход 37 генератора расстановки 14, выход 38 блока вычитателей 12.

Блок назначения 13 (фиг. 2) содержит вычитатели, группу элементов памяти таблиц 39, группу элементов памяти переходов 40, элемент И 41, элемент ИЛИ 42, узлы приоритета 43 и 44, элемент И 45, узел 46 индикации свободных расстановок, регистр 47 сдвига, блок 48 элементов

И, регистр 49, коммутатор 50, регистр

51 и 52, выход 53 и вход 54 узла 46.

Генератор расстановки 14 (фиг. 3) содержит блоки элементов ИСКЛЮЧАЮШЕЕ

ИЛИ 55 и 56, вычитатели 57 и 58, ре- . гистр 59, дешифраторы 60,.

Блок управления 10 (фиг. 4) содержит память 61 микропрограмм, дешифратор 62 микропрограмм, элемент задерж ки 63, регистр 64 адреса, дешифратор 65 условий, регистр 66 микрокоманды.

Узел индикации свободных расстановок

46 (фиг. 5) содержит коммутатор 67, элементы И 68„элементы памяти 69, узлы приоритета 70, дешифраторы 71, шифраторы 72, регистры 73, вычитатели 74, элемент ИЛИ 75, блок 76 элементов И

У регистры сдвига 77.

Узел приоритета (фиг. 6) содержит., группу элементов И-И-НЕ 78, группу элементов И 79.

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

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

Для обеспечения этих возможностей в управляющем регистре 11 хранятся следующие системные параметры: номер виртуальной машины, работающей в данный момент времени (поступает с выхода регистра 11.); номер виртуальной памяти из множественной виртуальной памяти, которая реализуется в данный момент времени (поступает с выхода регистра 11); количество сегментов, образующих виртуаль-! ную память из множественной виртуальной памяти, которая реализуется в данный момент времени (поступает с выхода ре9 9666 гистра 11); величина, определяющая число сегментов оперативной памяти, отведенных для области ядра операционной системы, обеспечивающей множественную виртуальную память (поступает с выхода регистра 1) .

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

11 операционной системой, реализующей эту возможность. Операционная система, не реализующая, множественную виртуальную память, работает при обнуленных соответствуюших полях регистра 11. Номер 1$ .виртуальной машины помещается в регистр

ll операционной системой, реализующей .эту возможность. Для других типов операционных систем эти разряды регистра 11 игнорируются. Если в вычислительной сис-20 теме не реализуются виртуальные машины, то соответствующее поле регистра 11 обнулено.,При работе с операционной системой, реализующей виртуальные машины, загрузка регистра 11 осушествпяется толь 2$ ко под ее управлением.

Блок отображения 12 предназначен для формирования полного виртуального адреса, который учитывает номер множественной виртуальной памяти, и номер реализуемЮ,фд в данный момент виртуальной машины

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

При работе с множественной виртуальной памятью область ядра операционной системы переносится в каждую виртуальную память. Для того, чтобы иметь толь» ко одну копию ядра операционной системы, используется блок 1 2 и группа элементов. Ядро такой операционной системы отображается на виртуальную па4$ мять с номером нуль. С помощью вычитателей блока 12 сравнивается номер cer мента, находящийся в регистре 1 логического адреса, с величиной ядра операционной системы, находящейся в регистре 11.

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

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

Для определения местонахождения виртуальной страницы в оперативной памяти используются регистр 1, регистр 2, группы элементов .памяти 3-5, коммутатор 6, счетчик 7, схема сравнения 8 и элемент И 9. .В группе элементов памяти 3 хранится значение логического адреса той виртуальной памяти, которая реализуется в данный момент.

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

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

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

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

Адрес страницы во внешней памяти оп— ределяется с помощью блока 13, генератора расстановки 14, блока 15, счетчика

16 и регистров 17 и 19.

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

Генератор расстановки 14 предназначен для расстановки (перемешивания) случайным образом определенных битов виртуального адреса. Заполнение сегментной таблицы, находящейся в элементах. памяти

39 блока 13, управляется генератором расстановки 14, элементами памяти 40 блока 13. Генератор расстановки 14 пе.- ремешивает случайным образом биты виртуального адреса, чтобы выбрать одноименные ячейки памяти из каждого элемента 39, в которых с наибольшей вероятностью находится требуемый логический адрес, поскольку несколько значений виртуальных адресов могут иметь одно и т<>

Блок 10 предназначен для выработки управляющих сигналов. вает формирование адреса входа в микропрограмму, соответствующую поступившему коду операции. Этот адрес размещается в регистре 64. По адресу, находящемуся в регистре 64, производится чтение информации из памяти микропрограммы

61. Микрокоманда, считанная из памяти манд. С помощью дешифратора 62 микрокоманд дешифрируется поле микрокоманды и формируются управляющие сигналь . Адустанавливается в регистре 66 микрокоI манд сразу же после окончания выполнения текущей микрокоманды.

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

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

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

По .окончании инициализации счетчика

16 выполняется инициализация элементов памяти блока 13. Для инициализации строк элементов памяти, имеюших один и тот же адрес для каждого пакета магнитных дисков, в регистре 1 размещается логический адрес, определяющий строку элементов памяти. Регистр 11 обнуляется. В блоке 12 формируется виртуальный адрес, а в генераторе расстановки 14 — значение расстановки.так, как это описано выше. . Блок управления 10, получив команду инициализировать блок назначения 13, выполняет циклическую последовательность микрокоманд, включаюшую обнуление элементов памяти узлов 39 и 40 и коррекцию информации в узле индикации свободных расстановок 46. Число циклов определяется макИ

Блок 16 предназначен для указания адреса внешнего устройства, на котором установлен пакет магнитных дисков. В блоке 16 для каждого пакета магнитных дисков определяются номер канала ввода- °

Б вывода, к которому подключено внешнее устройство; номер контроллера; номер внешнего устройства на контроллере; код, определяющий тип пакета; бит, определяю11 966695 же значение расстановки. Алгоритм рас- щий действительность перечисленной инстановки, применяемый в генераторе рао- формации. становки 14 для определения адреса входа в блок 13, использует блоки элементов

" ИСКЛЮЧАЮШЕЕ ИЛИ 55 и 56, на первый s Блок 10 работает следующим образом. вход которых поступают в обратном поряд- Код операции, поступающий на вход ке группа младших разрядов виртуального дешифратора 65 условий перехода, вызыадреса, на второй вход поступают в прямом порядке следующая группа разрядов виртуального адреса. Блок элементов ИС- 0

КЛЮЧАЮШЕЕ ИЛИ 55 используется для формирования старших разрядов номера цилиндра магнитного диска (формируется шесть разрядов номера). Блок элементов ИСКЛЮЧАЮШЕЕ ИЛИ 56 используется для форми- микропрограммы 61 через время, опрерования номера записи группы цилиндров маг- деляемое величиной элемента задержки нитного диска, где расположены страницы 63, размещается в регистре 66 микрокоодного сегмента (формируется четыре раз-. ряда). Число записей на дорожке пакета. магнитного диска определяется его ти- щ пом. рес следующей микрокоманды формируетС помощью дешифраторов 60 и вычи- ся дешифратором 65 условий перехода. тателей 57 и 58 формируется код, лежа- Регистр 64 адреса устанавливается во щий в заданных пределах. время выполнения второго такта текущей

Код номера цилиндра лежит в преде- 25 . микрокоманды, а следующая микрокоманда лах от 0 до 199 (шесть старших разрядов номера дилинга находятся в пределах от 0 до 49). 8 оэтому, если дешифратором 60 определен код, сформированный блоком 55 больше 49, то из сфор- М мированного кода вычитается константа

49 с помощью вьгчитателя 57.

Если определен пакет типа, то дешиф» ратором 60 определяется код, íà единт цу меньший кода, сформированного бло- у ком 56.

Если с помощью генератора расстанов. ки 14 не удается разместить требуемый сегмент в сегментной таблице 10, с по»мощью узла 46 блока 13 формируется знаю чение свободной расстановки, которое помещается в свободную строку элемента 62 блока 13 и определяет свободную группу строк сегментной таблицы.

Блок 1 5 предназначен для перехода на другой пакет магнитных дисков в случае переполнения одного из пакетов или невозможности разместить на нем информацию.

966695

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

Для обнуления элементов памяти 39 и 40 выбирается микрокоманда, выполняющая следующее.

В первом такте микрокоманды в каж- 10 дом цикле, кроме первого, выполняется увеличение содержимого блока 15 на единицу. Кроме того, в первом такте каж дой микрокомапды код, сформированный в генераторе расстановки 14, заносится в 15 регистр 5 1 блока 13 с выхода генератора расстановки 14. Код с выхода 37 генератора расстановки 14 поступает в регистр

51 через коммутатор 50 блока 13 при наличии сигнала, поступающего на управляю-20 ший вход коммутатора 50 с выхода обнуленного сдвигающего регистра 47 через блок элементов И 48 блока 13. Во втором такте микрокоманды производится запись нулевых кодов в группу элементов 25 памяти 39 и в группу элементов памяти 40.

После обнуления элементов памяти узлов 39 и 40 выполняется последовательность микфокоманд коррекции информации в узле 46. Число микрокоманд определя- щ ется количеством элементов памяти 69.

Для этого значение расстановки с выхода регистра 51 через коммутатор 67 узла

46 поступает на адресный вход элементов памяти 69 и на вход дешифраторов 71.

Коррекция информации в элементах памяти узла 46 осуществляется следующим образом.

В первом такте каждой микрокоманды производится чтение инициализированных > ячеек элементов памяти 39 и запись содержимого в регистр 52. Кроме того, производится сдвиг информации в сдвигаюшем регистре 77 узла 46 при наличии управляющего сигнала на входе сдвигающего регистра 77 (в первой микрокоманде, производится установка старше о разряда сдвигающего регистра 77). Разряд сдвигающего регистра 77.определяют один; из элементов памяти 69 узла 46, Во вто ром такте каждой микрокоманды производится запись информации в элемент памяти 69, определяемый разрядом сдвигающего регистра 77, в разряд, определяемый дешифратором 71. Информация, записывае, 5 мая в следующий элемент памяти 69 orr) ределяется коньюнкцией значений разрядов, хранящихся в предыдущем элементе памяти 69.

Описанный процесс инициализации элементов памяти блока 13 выполняется для всех элементов памяти блока 13 после замены значения в регистре логического адреса 1.

После выполнения загрузки системы осуществляется назначение для каждого пакета магнитных дисков соответствуюmего ему накопителя. Для этого подготавливается информация, содержащая номер пакета, номера канала, контроллера и накопителя, где установлен данный пакет, а также код, определяющий тип магнитного диска. Эта информация поступает по входу 18. Блок 10, получив команду назначить устройство, выполняет микрокоманду, в первом такте которой в блок 15 производится прием кода, определяющего номер пакета, и проверка бита действительности выбираемой строки счетчика 16. Эта информация в первом такте микрокоманды считывается в регистр 17 (возбужден управляющий выход 34 блока

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

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

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

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

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

При проверке выполняется следующее.

В первом такте первый микрокоманды

1 производится обнуление блока 15 и чте15 966 йие информации из счетчика 16 в регистр

17 (возбуждается выход 34 блока управления 10). Далее производится анализ, установлен ли бит действительности в ре гистре 17). Если бит действительности не установлен, то первая микрокоманда выполняется повторно. B этом случае производится наращивание содержимого блока 15 путем возбуждения его управляющего входа 33.

Если бит действительности установлен, то 16 выполняется вторая микрокоманда, где производится запись значения расстановки, сформированного генератором расстаяовки 14 так, как это описано выше, в регистр 59 генератора расстановки 14 и в3

3 регистр: 51 блока 13. По значению раостановки, находящейся в регистре 5 1, производится чтение соответствующей строки сегментной таблицы в элементах памяти 39. По значению, находящемуся в ре- 20 гистре 59 генератора расстановки 14 производится чтение соответствующей строки из таблицы переходов, находящейся в каждом элементе 40. Кроме„того, производится продвижение единицы в сдви-д гающем регистре 47 (возбуждается управляющий вход 31 сдвигающего регистра 47).

Информация, прочитанная из элементов памяти 39 и 40 записывается в регистры 49 и 52 соответственно. Далее, если щ хотя бы в одном иэ элементов 39 установлен сегмент с данным виртуальным адресом, то этот адрес записывается в регистр 19 страницы 19 при возбуждении выхода 36 блока 10. Таким образом, определена ошибочная ситуация, и во втором такте микрокоманды формируется запрос на прерывайие.

Далее производится анализ бита действительности в элементе 40, номер которого выбирается сдвигаюшим регистром 47. Если бит действительности, находящийся в регистре 49, выбранного элемента 62 не установлен, то в первом такте следующей микрокоманды производится продвижение единицы в сдвигающем регистре 47 и повторное выполнение анализа. Если бит действительности, находящийся в регистре 49, выбранного элемента 40 установлен, то открывается соответствую|ций вход коммутатора 50 и в первом такте следующей микрокоманды новое значение расстановки из выбранного элемента памяти узла 40.помещается в регистр 51 и описанные выше

SS действия повторяются.

Такая проверка выполняется для всех значений расстановок, находящихся в эле695 16 ментах 40, для каждого из пакетов маг« нитных дисков, номер которого определяется значением содеркимого блока 15.

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

В первом такте первой микрокоманды производится обнуление блока 15 (возбуждается) и чтение из счетчика

16 в регистр 17 (возбуждается выход

34 блока управления 10). Далее производится анализ: установлен ли бит действительности в регистре 17. Если бит действительности не установлен, то первая микрокоманда выполняется повторно.

В этом случае производится наращивание содержимого блока 15 путем возбуждения его управляющего входа 33 (выход

33 блока 10).

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

l4 так, как описано выше в регистр 59 генератора расстановки 14 и в регистр

51 блока назначения 13. По значению расстановки, находящемуся в регистре

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

39. По значению, находящемуся в регистре 59 генератора расстановки 14, производится чтение соответствующей строки из таблицы перехода, находящейся в элементах 40. Информация, прочитанная из элементов памяти 39 и 40, записывается в регистры 49 и 52 соответственно. Крсьме того, производится продвижение единицы в сдвигаюшем регистре 47. С помощью элемента И 45 блока 13 определяется наличие свободной строки, а узел приоритета 43 определяет наименьший номер узла сегментной таблицы, где обнаружена свободная строка. После этого процесс поиска свободной строки в таблице сегментов закончен.

Если с помощью элемента И определено отсутствие свободной строки (открытое состояние элемента И 45), то с помощью элемента И 41 определяется наличие свободной строки в таблице перехода в элементах 40, а узел приоритета 44 определяет наименьший номер элемента 40, где обнаружена свободная строка. Если свободная строка в таблице перехода обнаружена (закрытое состояние элемента И 41), то во вто9666 ром такте микрокоманды осуществляется переход к выполнению поиска зна: чений свободной расстановки для рассматриваемого пакета магнитных дисков, который осуществляется следующим образом.

Поиск значений свободных расстановок осуществляется в узле 46 индикации свободных расстановок. В первом такте первой микрокоманды осуществляется 10

18

В последующих микрокомандах устанавливается сигнал на управляющем 31 узла

46, который, обеспечивает передачу содержимого регистров 73 через коммутатор 67 на адресные входы элементов памяти 69. В первом такте каждой из этих микрокоманд осуществляется сдвиг инфорMGJIHH в сдвигаюшем регистре 77. Кроме этого, производится чтение информации

Ll из соответствующих элементов памяти

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

Ъ помощью соответствуюШего узла приори, тета 70 определяется наименьший номер группы цилиндров, которая является свободной для назначения сегментов. С .

SS помощью соответствующих шифраторов 72 формируется двоичный код номера группы цилиндров. Во втором такте каждой из этих микрокоманд сформированный код.установка старшего разряда сдвигающего регистра 77. Кроме этого, производится чтение информации из последнего группы элемента памяти 69, каждый разряд которой определяет номер записи на од- 15 ной дорожке магнитных дисков. (Запись с номером нуль на каждой дорожке магнитных дисков описывает состояние дорожки и не используется для назначения сегментов). С помощью соответству- 20 ющего узла приоритета 70 определяется наименьший номер записи на дорожках магнитных дисков, которая является свободной для назначения сегментов. С помощью соответствующего шифратора 25

72 формируется двоичный код номера записи. Во втором такте первой микрокоманды сформированный код номера записи устанавливается в соответствующем регистре 73. Если свободных номеров 50 записей нет, то открывается последний элемент И 68, сигнал с выхода которого указывает, что значений свободных расстановок нет. номера группы цилиндров устанавливается в регистрах 73. Общее число выполняемых микрокоманд определяется количеством элементов памяти 69.

После установки всех регистров 73 производится определение — находится ли полученное значение свободной расстановки, определяющее местонахождение сегмента на пакете, в пределах пакета магнитных дцсков заданного типа. Код определяющий тип пакета магнитных дис ков, считывается из счетчика 16 в регистр 17 и поступает с выхода соответствующих разрядов регистра 17 на входы уменьшаемого вычитателей 74 и 78..

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

199(4o ), определяющей максимальный номер цилиндра магнитных дисков. На входе уменьщаемого вычитателя 78 устанавливается двоичный код константы 1 для пакетов объемом 29 Мбайт или двоичный код константы 6 о1 дл