второму информационному выходу ариф.метическо-логнчбского блока, второй информационный выход блока управляющих регистров подключен ко второму информационному входу арифметическо-логического блока, унравляюЩИЙ вход блока управляющих регистров соединен непосредственно, а адресиый вход через регистр номера управляющих регистров со вторым управляющим и первым адресным выходами блока управления, третий и четвертый управляющие выходы которого подключены к управляющнм входам блока постоянной памяти и арифметическо-логического блока, управляющий выход и третий информационный вход которого подключены к первому информационному входу блока управления и второму информационному выходу блока постоянной памяти 3. Одпако при работе известного процессора мультиобработки данных в ипформациоилопоисковых системах, нредназначепных для решения широкого класса задач управления, где необходима работа с большими массивами информации, обработка такого рода информации осуществляется программными средствами, что обуславливает неэкономиое расходование главной намяти вычислительной системы и низкую скорость выполнения алгоритмов обработки больших массивов данных. Цель изобретеция состоит в иовышении быстродейетвия процессора мультиобработки данных при решении информационно-поисковых задач, игровых задач, требующих обработки больших массивов информации. Поставленная цель достигается тем, что процессор мультиобработки данных содержит блок статусов процессов, адресный, управляющий и информационный входы которого подключены соответственно к третьему информацнонному выходу блока управляющих регистров, пятому управляющему и второму информационным выходам блока управления, а информационный и управляющий выходы соединены с пятым информационным входом блока уиравляющих регистров и вторым информациоипым входом блока управления, а также тем, что блок статусов процессов содержит регистр маски, входной регистр, регистр адреса, узел характеристик статусов процессов, узел индикации совпадения, узел обработки нриоритетов и узел выдачи номера процесса, выход которого соедииен с информационным выходом блока статусов процессов, управляющий вход которого с первыми входами узла характеристик статусов процессов и регистров адреса, подключенного вторым входом к адресному входу блока статусов процессов и соединенного выходом со вторым входом узла характеристик статусов процессов, третий и четвертый входы которого через регистр масK:I и входной регистр, соответственно, соединены с ииформациоииым входом блока статусов процессов, управляющий выход которого соединен с первым выходом узла индикации совпадепия, иодключенного входом к выходу узла характеристик статусов процессов и соединенного вторым выходом через узел обработки приоритетов со входом узла выдачи номера процесса. Процессор мультиобработки данных содержит аипаратную реализацию фуикций оиерациоциой системы по организации мультиирограммной (мультипроцессной) работы и обмеца информацией между главной памятью и внешними носителями. Система команд процессора мультиобработки данных ориеитирована на организацию иараллельных вычислительных и обменных процедур в вычислительной системе, в состав которой он входит. Процессор мультиобработки данных подключается к универсальной вычислительной системе как некоторое внещнее устройство (как, например, терминал, диск и т. д.) через стандартное сопряжение. Собственной оперативной памяти процессор мультиобработки не имеет, а использует главную память системы. Для обеспечения эффективной организации мультипроцессной работы и обмена с внешними носителями информации процессор мультиобработки данных содержит справочную статусов процессов. Основные функции ироцессора мультиобработки данных следующие; а)ведение одновременно большого числа параллельных процессов; б)обеспечение работы с виртуальной памятью большого объема. При наличии в вычислительной системе процессора мультиобработки данных одновременно в состоянии работы (т. е. в процессе выполнения) могут находиться большое число процессов (сотни и тысячи). Образование новых процессов, уничтожение процессов, взаимодействие и синхронизация процессов осуществляется специальными командами. Операпионные таблицы описывающие обрабатываемые процессы, находятся в процессоре мультиобработки данных в справочных, хранящих основную информацию о выполняемых процессах. Благодаря этому переключение одного процесса па другой осуществляется за тактов главной памяти вычислительной системы. В известных операционных системах, на процедуру переключения процессов (программы) уходят сотпи команд или порядка 1000 циклов главной памяти вычислительиой системы, т. е. процессор мультиобработки данных позволяет сократить время переключения процессов па 1-4-2 порядка. Таким образом, появляется возможпость без значительных затрат процессорного времени образовывать в вычислительной системе большое число параллельных процессов («Параллельных в том смысле, что одновременно в вычислительной системе существует большое число процессов готовых к выполнению). Естественно, что они образуют некоторую последовательную очередь к арифметическо-логическому устройству процессора мультиобработки данных или к процессорам классического типа,
Входящих Б состав вычислительной системы. .ли п системе будет несколько процессоров мультиобработки данных или ироцессоров классического типа, то и число одновредменно работаюн их ироцеесов (работающих уже фактически параллельно) будет равно чйслу этих ироцессоров. Таким образом, аппаратная реализаийЯ в ироцесеоре мультиобработки данных некоторых функций операциоииой системы по образованию, уничтожению и переключению процесеов, позволяет в вычислительной системе, имеющей в своем составе процессор мультиобработки данных, эффективно вести одновременно обработку большого числа процессов.
Если учесть, что при обычном (не аппаратиом) построении операционной системы при мультипрограммной работе значительиая часть процессорного времени тратится именно на деятельность по переходу от одиих процессов к друг1:м, то такое сокращение времени переключения процеесов должно привести к существенному росту реальной производительпости вычислительиой системы в целом.
Сиособмость процессора мультиобработки данных обеспечивать одновременное выполпеиие в вычислительной системе большого числа процессов (до нескольких сот или тысяч) открывает новые возможности в рещении таких оспоБпых вопросов мультиобработки, как обеепечение эффективного обмена между главной памятью вычислительной системы и внешними .носителями и активного взаимодействия с развитой системой терминалов (в режиме разделения времени).
Организация эффективного обмена с внешни.ми носителями основана на том, что в каждый текущий момент работы вычислительной систе.мы нроцессор мультиобработки данных раснолагает информацией о всех запросах процессов (существующих в системе) на обмен. (Эта информация содержится в наспортах и статусах каждого из процессов). Тем самым, появляется возможность выбора оптимальной последовательности заявок к внешним носителям, т. е. например, за один проход магнитной ленты можно удовлетворить все заявки к данной ленте, выбранные к текущему моменту. Получаемый при этом эффект определяется числом одновре.менно выполняемых процессов. (Чем больше запущено процессов, тем меньше возвратов ленты). При работе с магнитными лентами можно ожидать, что среднее время удовлетворения заявок может быть уменьшено на 1,5ч-2 порядка по сравнению с организацией обменов принятых в обычных операционных системах (системы типа ИБМ, ИСЛ и т. д.) Если учесть, что во многих задачах, например, информационно-поисковых, обмен с внешними носителя.ми является основной функцией, то резкое сокращение времени на обмен приводит к столь же резкому повышению реальной производительности вычислительной систем) в целом на данном классе .задач.
Активное взаимодействие с |)азиитой системой терм11па.;1ьных устройств (в режиме разделения времени) обеспечивается организацией п вычислительной системе (за счет наГ/ора специальных команд) развитого «аппарата событий. Предусматривается широкий набор «элементарных событий (например, считывание заданного блока информации с внешнего носителя в главную память вычислительной
системы, окончание работь; одного или группы процессов, запросы от терминальных устройств, сообщение одиого ироцееса другим процессам, изменение содержимого заданных ячеек главной памяти и т. д.). Эти элементарные события могут образовывать комбинации событий - «сложные события.
Взаимодействие и синхронизация процессов обеспечивается этим аппаратом событий. Наличие развитого аппарата событий (реализуемого аппаратурой процессора мультиобработки данных обеспечивает:
а)упрощение нрограммирования и процедур отладки программ (сокращается длипа программ и упрощается описаиие различных
условий и событий),
б)аппаратурную реализацию некоторых функций операционной системы (создание и уничтожение процессов, пуск процессов по приоритетам, приостанов процессов по ожиданию каких-либо событий и т. д.),
в)эффективное решение задач в режиме разделения времени.
Главная трудность в организации режима разделения времени состоит в выборе интервалов времени, которые отводятся каждой задаче. Этот интервал времени определяется:
а)временем перестройки вычислительной системы па очередную задачу (изменение соответствующих операционных таблиц, смена
содержимого управляющих регистров и т. д.),
б)временем загрузки в главную память информации с внешних носителей, необходимой для решения очередной задачи,
в)временем, выделяемым на собственно вычисления.
Наличие в вычислительной системе процессора мультиобработки данных позволяет фактически вести «исевдопараллельное выполнение задач за счет существенного сокращения интервала смены задач, т. е. вести каждый нроцесс небольшими порциями.
Это возможно потому, что в данном случае запуск новых процессов требует время, соответствующее циклов обращении к главной цамяти вычислительной системы. В обычных вычислительных системах для этого требуется время, соответствующее нескольким сотням цИКлов памяти.
На чертеже приведена блок-схема процессора мультиобработки данных.
Процессор содержит блок сопряжения 1, регистр номера управляющих регистров 2, блок управляющих регистров 3, арифметическо-логический блок 4, блок постоянной памяти 5,
блок статусов процессов 6 и блок управления 7.
Блок управляющих регистров 3 содержит выходной регистр 8, регистр распределения памяти 9, регистр базового адреса страницы 10, регистр остатка 11, регистр начального адреса страницы 12, регистр границы 13, регистр начального адреса таблицы блоков информации
14,регистр номера работающего процесса
15,регистры текущего состояния процесса и входной регистр 17.
Блок статусов процессов 6 содержит регистр адреса 18, узел характеристик статусов процессов 19, узел индикации совпадения 20, узел обработки приоритетов 21, узел выдачи номера процесса 22, регистр маски 23 и входной регистр 24.
Первый, второй, третий, четвертый и пятый управляющие выходы блока управления 7 соединены соответственно со вторым управляющим входом блока сопрялсения 1, с управляющим входом блока управляющих регистров 3, управляющим входом постоянной памяти 5, с управляющим входом арифметическо-логического устройства 4 и управляющим входом блока статусов процессов 6, адресный вь1ход подключен к адресному входу регистра номера управляющих регистров 2, первый и второй информационные выходы подключены соответственно к третьему информационному входу блока управляющих регистров 3 и информациопному входу блока статусов процессов 6, а первый и второй информационные входы подключены соответственно к управляющим выходам арифметическо-логического блока 4 и блока статусов процессов 6, управляющий вход цодключен ко второму управляющему выходу блока сопряжепия 1. Первый, второй и третий информационные входы арифметическо-логического блока 4 соединены соответственно со вторым информационпым выходом блока сопряжения 1, со вторым информационным выходом блока управляющих регистров 3 и со вторым информационным выходом блока постоянной памяти 5, а первый и второй информационные выходы подключены соответственно ко второму информационному входу блока сопряжения 1 и к четвертому информационному входу блока управляющих регистров 3. Адресный, первый управляющий и первый информационный входы и выходы блока сопряжения 1 подключены соответственно к управляющему, информационному и адресному входам и выходам процессора мультиобработки данных. Третий информационный выход блока соиряжения 1 подключен к первому информационному.входу блока управляющих регистров 3, а третий информационный вход подключен к первому информационному выходу блока управляющих регистров 3. Второй и пятый информационные входы блока управляющих регистров соединены соответственно с первым информационным выходом постоянной памяти 5 и информационпым выходом блока статусов процессов 6, а третий ипформациопиый выход соединен с адресным входом блока статусов процессов 6.
Процессор мультиобработки даниых работает следующим образом. В режиме выполнения некоторого процесса работа процессора мультиобработки дапных аналогична работе известных процессоров, входящих в состав вычислительной системы. Особенности работы процессора мультиобработки данных проявляются при переключении одного процесса на другой, при образовании новых и уничтожении старых процессов, при организации обмена информацией между внеЩними носителями и главной памятью вычислительной системы.
Процесс - это программа или ее часть, функционирующая самостоятельно. Процесс, создающий в ходе вычисления другие процессы, будем называть .порождающим процессом, а созданные им процессы - порожденными процессами.
Паспорт процесса - эта информация, необходимая для автономного функционирования процесса.
Структура паспорта представлена в виде таблицы. Процессу при его создании могут не придаваться функции создания новых паспортов и не выделяться самостоятельные рабочие ячейки, а указываться границы и количество рабочих ячеек цорождающего процесса, которыми может пользоваться создаваемый процесс. В этом случае паспорт не будет содержать таблицу созданных данным процессом паспортов и таблицу номеров страниц, запятых рабочими ячейка.ми, а в заготовке паспорта будет находиться ссылка на таблицу номеров страниц, занятых рабочими ячейками порождающего ироцесса. Но может быть и так, что иаспорт будет содержать как выщеперечисленные таблипы, так и ссылки па таблицу рабочих ячеек порождающего процесса.
Заголовок паспорта процесса содержит следующее:
-физический адрес главной памяти вычислительной системы, где хранится начало программы данного процесса и код ее длины;
-математический адрес страницы (номер) области паспортов, в которой хранится таблица номеров страниц (в области иаспортов) рабочих ячеек, принадлежащих данному процессу;
-математический адрес страницы, где содержится таблица созданных паспортов;
- области адресов в главной памяти, обп;ие для создаваемого и некоторых других процессов и задаваемые процессу при его создании (таких областей может быть четыре). Каждая область может иметь два вида адресации. Вид адресации указывается признаком. В первом случае (признак-1)-физическими адресами начала и конца области, во втором (признак- 0)-математическим адресом страницы, в которой хранится таблица номеров страииц рабочих ячеек порождающего процесса и номерами рабочих ячеек «от и «до);
)
Формат заголовка паспорта
Адрес программы
Номер страницы, в которой хранится таблица номеров страниц рабочих ячеек
Физический адрес глашэй намяти,
признак
1 указывающий начало области общей памяти или
о
Номер страницы, где хранится таблица рабочих ячеек порождающего
с процесса
CJ
Номер статуса иорождающего процессаСодержимое Isl Содержимое -номер статуса порождающего процесса п блоке статусов процессов 6; -место для хранения содержимых регистром текущего состояния процесса 16|Ч-16кПри 5
Приоритет нроцесса РСП ПР )С .МЗ
.NO статуса норождающего Адрес наснорта нроцесса
Содержи.мое буферного регистра
Приоритет процесса - приоритет да.нного процесса в системе.
РСП - признак работоспособности процесса. Наличие «1 в этом разряде указывает на то, что данный процесс ждет какого-то события, указанного в типе ожидания и информации об ожидании.
ПР - признак, указывающий на то, что данный пропе-сс был прерван процессом с более высоким приоритетом.
ОС - признак, указывающий на то, что окончил работу один из порожденных процессов. .V13 - служебная метка. Определяет занятость строки справочной статусов процессов 6. Тип ожидания - указывает код события, до выполнения которого, данный процесс считается не работоспособным.
К этим событиям относятся: ввод в главную память вычислительной системы с внешних носителей информации необходимого блока инфор.мации, обработка супервизором заявки, изданной данным процессом и т. д.
Информация об ожидании - это дополнительная информация об ожидаемом событии, например, номер блока, который необ.ходимо
10
Длина iipoi-раммы
Физический адрес главной намяти,
указывающий конец области общей
намяти
Конечный номер
рабочих ячеек
норождающего
нроцесса
Номер страницы, где содержится таблица созданных наснортов
Формат статуса
Иифор.мация об ожидании
Тин ожидания
Количество работосиособных порожденных процессов ПС
Текущая точка нрогра.м.мы
ввести в главную память с внешних носителе информации.
№ статуса порождающего процесса-номер строки блока статусов процессов 6, в которо хранится статус порождающего процесса.
Адрес паспорта - номер страницы в области паспорта, где хранится паспорт данного процесса.
Бывает необходимость работы .нескольких процессов по одной программе. Такие процессы ссылаются на один паспорт, но имеют разные статусы. Подобные процессы отличаются друг от друга содержимым буферного регистра (некоторым полем в неоперативной части статуса) и текущей точкой программы.
Первые 6 байтов статуса (прпоритет, все признаки, тип и информация об ожидании, № статуса порождающего процесса служит для синхронизации и взаимодействия процессов друг с другом. Эта часть статуса называется оперативной. Остальная часть статуса служит для приостановки и запуска процесса в работу. Эта часть называется неоперативной.
Оперативная часть статуса хранится в блоке статусов процессов 6 мультиобработки дай1-го регистра текущего состояния программы п-го регистра текущего состояния программы прерываниях и приостановках данного процесса. Каждый процесс имеет свой статус. В статуе входит информация о состоянии процесса в текушпй момент.
И
иых. Исо11сратив 1ая часть - в области паспортов главпой памяти вычислительной Системы.
Количество работоспособных порожденных процессов - код, указываюпдий количество не окончивших свою работу процессов, созданных данным. ПС - младший бит этого кода используется в качестве признака того, что дапный процесс создавал процессы.
Содержимое буферного регистра, в котором хранится Некоторая константа или се адрес, задается при создании процесса.
Текущая точка программы - физический адрес главной памяти вычислительной Системы, по которому хранится текущая точка программы при прерываниях или приостановке процесса. При формировании статуса в это место записывается адрес начала программы.
Код олерацш
Адрес, куда записать помер
12
Система команд процессора мультиобработки данных разбита на две группы. В первую группу входят специальные ко.манды процессора, во вторую - арифметические и логические.
Специальные команды подразделяются па три типа:
-команды управления процессами;
-команды распределения памяти;
-ко.манды взаимодействия и синхронизации процессов.
К командам управления п|юцсссами относятся три ко.манды: «Создать паспорт, «Создать процесс по паспорту, «Окончить пр цесс.
Формат ко Мапды «Создать паспо;)т
)ес созданного наснорта дапшях
название | год | авторы | номер документа |
---|---|---|---|
Устройство для обработки выражений языков программирования | 1974 |
|
SU519715A1 |
Процессор с микропрограммным управлением | 1990 |
|
SU1700564A1 |
Вычислительная система | 1977 |
|
SU692400A1 |
Вычислительная система | 1989 |
|
SU1777148A1 |
Центральный процессор | 1991 |
|
SU1804645A3 |
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА | 1989 |
|
RU2028663C1 |
Устройство для обмена данными | 1974 |
|
SU506847A1 |
Мультиплексный канал | 1984 |
|
SU1167613A1 |
Архитектура параллельной вычислительной системы | 2016 |
|
RU2644535C2 |
УСТРОЙСТВО КОНТРОЛЯ ПРОЧНОСТИ КРЫЛА ВОЗДУШНОГО СУДНА | 2011 |
|
RU2469289C1 |
Назначение ко.мапды: создание паспорта по заданной информации. Алгоритм выполнения. На свободной странице области паспортов создается паспорт. Еслп в массиве данных, адресуемых этой команде есть ссылка на рабочие ячейки, то выделяется необходимое число страниц под рабочие ячейки (в области паспортов), а также под таблицу номеров страниц, выделенных под рабочие ячейки. Заполняется таблица и паспорт. В таблице созданных паспортов выполняемого процесса указывается адрес (номер страницы) создаваемого паспорта. Номер создаваемого паспорта (т. е. номер создаваемого процесса) записывается по адресу, указанному в команде. При создании паспорта необ.ходи.ма информация, которая задается массивом. Начальный адрес этого массива заказан в команде как «адрес данных. Этот массив содержит: -адрес программы создаваемого процесса и ее длины; -количество страниц рабочих ячеек, необходимых данному процессу; -признак адресации, указывающий каким образом задается поле памяти общей для нескольких процессов, в одном случае - физнчеАдрес ячейки, содержащей
Код операции
Назначение: создаиие статуса процесса по зада нпой информации.
Начало информации необходимой для формирования статуса задается адресом данных. В качестве данных 1з этой команде задается - приоритет;
- физический адрес главной памяти вычислительной системы, -с которого начинается програ.мма данного npoiiacea (точка входа в программу);
Адрес но.мер паспорта данных
- со:1ержимое буферного регистра.
Определяется адрес свободной строки )i блоке ст-атусов ироцсссов 6 и по этому адресу в оператн и)ую часть статуса производится запись приоритета и номера статуса, порождающего процесса издавщего команду создания процесса. Номер процесса, работающего в текущий момеит, хранится иа регистре номера работающего процесса 15 процесса мультиобработки данных. По адресу ячейки, содержаские адреса главной памяти вычислительной, системы, указывающие начало поля памяти,, общей для нескольких процессов, и ее конец, (может быть длина), в другом - помер страницы, где хранится таблица рабочих ячеек порождающего процесса, а также начальный и конечный номер рабочих ячеек, доступных данному процессу (таких признаков и адресов может быть четыре); - иногда при создании иаспорта могут быть указаны адреса, где хранятся исходные данные процесса, которые необходимо поместить в регистры текущего состояния процесса при запуске процесса в работу. В этом случае содержимое этих ячеек необходимо П ,реписать в заголовок паспорта на место, которое отводится для запомипания регистров текущего состояния процесса 16|Н-1б„. Вре.мя выполнения данной команды зависит от количества страниц, отводимых под рабочие ячейки, от количества полей памяти, общпх для нескольких процессов, от необходимости переписи содержимого регистров текущего состояния процесса 1б1-4-16„ и молсет коЛебаться в пределах от 30 до 50 циклов главной памяти. Формат команды «Создать процесс по паспорту щей номер паспорта, находится номер страницы, где лежит паспорт (математический адрес паспорта). Формируются адреса неоперативной части статуса и производится запись адреса паспоэта, точки входа в программу и содержимое буферного регистра по этим адресам. Время выполнения данной команды-12 циклов памяти. Формат команды «Окончить процесс Код операции Служит для освобождения памяти, занимаемой паспортом, рабочими ячейками, и уничтожения статуса процесса. В статусе порождающего процесса из байта, определяющего количество порожденных пооцессов вычитается единица, в разряд ОС (окончил порожденный процесс) записывается единица. Если процесс работал по паспорту и на этот паспорт не ссылаются (т. е. не работают по нему) другие процессы, то процедуры окончания деятельности этого процесса будет иметь следующие этапы: -уничтожение статуса процесса, -уничтожение паспорта процесса и ие рвод всех страниц, занятых паспортом и оабочими ячейками данного ироцесса, в список свободных страниц. В слзчае, если процесс порождал процессы, то окончание его деятельности связано с окон анием деятельности порожденных им пооиессов, т. е. уничтожение паспортов и статусов процессов. В случае, если процесс не имел собственного паспорта, а работал на правах процесса, ссылающегося на один общий паспорт, то окончание деятельности этого процесса тпебует только уничтожения его статуса. ЭТУ сложную процедуру выявления вида процесса, а также окончание деятельности процесса выгол тяет сцециальная программа (процесс). ТТроцесс. издавщий команду, передает заявку этой специальной программе, а сам переводится в состояние с ожиданием отработки этой заявки. К командам распределения памяти относятся команды: «Выделение памяти и «Освобождение памяти. Формат команты «Выделение памяти Код операции Количество страниц памяти адрес таблицы распределения выделенной памятн Из свободной памяти выделяется кязaннoe в команде количество страниц. Таблица выделрниых страниц записывается по адресу, указа ;тому в команде. Время выполнения команды зависит от количества выделяемых страниц памяти. В мини.мальиом варианте (требуется выделить одну страницу) время выполнения равно 6-ти плклям главной памяти вычислительной системы. При увеличении количества выделяемых страниц требуется дополнительно по 2 цикла на каждую выделяемую страницу. Формат команды «Освобождение памяти Код операции адрес таблицы распределения выделенной памяти Страницы памяти, в соответствии с таблицей распределения, переводятся в список свободных страниц. Время выполнения зависит от количества страниц освобождаемой памяти. Перевод одной страницы в список свободных составляет 5 циклов главной памяти. Освобождсчще каждой следующей страницы требует дополнительно 2 цикла главной памяти. Команды распределения намяти служит для динамического распределения памяти при работе какого-либо процесса, когда при программировании задачи нельзя заранее предсказать количество необходимой процессу памяти. Например, невозможно заранее предсказать количество объектов с характерными нрпзнаками, которые необходимо отыскать в заданном массиве информации. К командам взаимодействия и синхронизации процессов относятся команды «Жду блока номер К, «Жду окончания работы любого порожденного процесса, «Жду окончания работы всех иорожденных нроцессов. «Проверь, жди равенства («Проверь, жди неравенства), «Ожидание записи по казанному адресу, сообщений, «Передаю соэбщеиие, подтверждения приема сообщения. «Жду отработки заявки, «Пересылка дап- ых «Сборка. В этих командах определяюгся те события, до выполнения 7 оторых процессы, содержащие данные команды, считаготся неработоспособными с ожиданием события соответствующего типа. К этим событиям отиосятся: - вызов в главную памятг) необходимого блока данн1 1х из внешней памяти; -01 оичание работы одного процесса (любого из порожденных процессов); -окончание работы всех процессов (всепорожденных процессов); - запись ио указанному адресу; -передача какого-либо сообщения; -сообщение, переданное данным процессом, принято; - заявка супервизору принята им. Проверяется, не произошло ли же ожидаемое событие и, если ПРОИЗОПЬДО, то выпод:1ение команды а этом закапчивается и процесс иерехо ит к выполнению следуюн1ей команды своей программы. Если ожидаемое событие не произошло, то нроиесс объявляется неработоспособным до появления ожидаемого события. Признак неработоспособности, тип ожидаемого события и дополнительная информация об ожидании события записываются в соответствующие разряды статуса процесса. Фоомят команды «Жду блока номер N Код операции Помер блока По этой команде проверяется, переписан ли дсобходимый блок информации из внещней
15
памяти (диск, лента) в главную память вычислительной системы. ЕСли такой блок находится в главной памяти, то выполнение команды па этом заканчивается и процесс переходит к выполнению следующей команды. Если нужного блока «ет, то процесс объявляется неработоспособным с ожиданием блока помер N
Время выполнения команды: минимальное - 3 цикла обращения и главной памяти максимальное- 5 циклов обращения к главной памяти.
Команда необходима любому процессу, осуществляющему поиск информации на внещпем посителе. Команда, в некотором смысле, эквивалентна заявке на обмен в обычных операционных системах.
Формат команды «Жду окончания работы любого порожденного процесса Код операции
В статусе порождающего процесса проверяется специальный разряд (окончил порожденный процесс). Если данный разряд единица, что указывает на то, что кто-то из порожденных процессов окончил работу, то порождающий процесс переходит к выполнению следующей команды своей программы. Если разряд равен нулю, то порождающий процесс объявляется неработоспособным, с ожиданием окончания работы любого из порожденных процессов.
Время выполнения команды: минимальное - 1,5 цикла главной памяти, макеимальное - 2 цикла главной памяти.
Команда необходима для обработки порождающим процессом, например, результатов деятельности порожденных процессов в порядке их поступления.
Например, для поиска произвольного объекта с характерными признаками порождающий процесс создает процессы, каждый из которых ищет необходимый объект в различных блоках информации. Результат поиска записывается порожденным процессом в соответствующую область главной памяти и об этом сообщается порождающему процессу. Порождающий процесс приступает к работе (например, анализу результатов поиска пооожденного процесса) только лищь, после окончания работы хотя бы одного порожденного процесса.
Формат команды «Жду окончания
работы всех порожденных процессов
Код операции
В статусе порождающего процесса проверяется количество порожденных процессов, не окончивших свою работу. Если это количестио равно нулю (это указывает на то, что все порожденные процессы окончили работу),то порождающий процесс переходит к выполнению следующей команды.
Ёсяи хотя бы один порожденный процесс не Окончил работу, порождающий процесс становится неработоспособным с ожиданием окончания работы всех 110рол де«ных процессов.
16
Время выполнения команды: минимальное - 1,5 цикла главной памяти, максимальное - 2 цикла главной памяти.
Команда необходима, например, для поиска всех объектов с характерными нризнаками, а также для ожидания конца всей инициированной данным процессом, деятельности.
Формат команды «Проверь, жди равенства (Проверь, жди неравенства) нлн «Ожидание записи по указанному
адресу Код опе)ации Адрес байта эталона
Адрес ячейки
По этой команде выбирается из главной памяти содержимое проверяемой и эталонной ячеек, сравнивается на равенство (неравенство) между собой.
При равенстве (неравенстве) содержимого ячеек процесс переходит к выполнению следующей команды своей программы. При неравенстве (равенстве)-процесс становится неработосиособным с ожиданием записи в проверяемую ячейку.
Время выполнения: минимальное - 7 цикТов главной памяти, максимальное - 8 циклов главной памяти.
Команда служит для синхронизации и общения процессов друг с другом, является единственным средством дождаться окончания работы определенного процесса. Кроме этого иснользуется как средство при отладке программ в системе, содержащей параллельные процессы.
Формат команды «Жду сообщений Код операции Адрес, куда записать
сообщение
По этой команде проверяется если ли про- ,. цесс (с тем же номером порождающего процесса), ожидающий передачи выработанного им сообщения.
Если такой процесс есть, то сообщение, а также номер процесса, издавщего сообщение, передается по адрееу, указанному в команде. Если такого процесса (нроцессов) нет, то ироцесс объявляется неработоспособным с ожиданием сообщения.
Время выполнения: м-инимальное - 4 цикла главной памяти, максимальное - 5 циклов главной памяти.
Каждый процесс, наряду с обычными процессами, может создать один привилегированный процесс. В частности на этот процесс могут возлагаться функции приема и обработки сообщений, поступающих от обычных процессов, созданных этим же порождающим процессом. Этот процесс называется «нриемишк сообн1,ений, «Жду сообщений - является командой «приемщика сообщений.
Формат команды «Передаю сообщение или «Жду подтверждения приема
сообщения Код операции Сообщение, либо
адрес сообщения
Проверяется, есть ли «приемщик, сообщеНИИ, Если такой процесс есть и он ждет сообщений, то ему передается -сообщение (либо его адрес), а также номер процесса, издавшего сообщение. При этом «приемщик становится работоспособным. Сам процесс, издавщий сообщение, переходит к выполнению следующей команды своей программы. В случае занятости приемщика (т. е. процесс приостановили по какой-то другой причине) процесс становится неработоспособным с ожиданием подтверждения приема сообщения. Время выполнения: минимальное - 3 цикла главной иамяти, максимальное - 5 циклов главной памяти. Команды «Жду сообщений и «Передаю сообщение служат для общения процессов с «приемщиком сообщения «е через главную память, а через поле статусов процессов. Если сообщепие короткое, т. е. умещается в поле статуса процесса, то оно передается в это поле, если же сообщение длинное, то в поле стаКод операции
Номер блока, нсмер записи откуда взять ипформацию
Команда предназначена для выборочной записи в главную память информации, находящейся на впещнем носителе.
Алгоритм выполнения. Проверяется наличие необходимого блока в главной памяти вычислительной системы. Если блока нет, то процесс, издавщий команду, становится нерабоВ первом байте этой таблицы, указан номер байта внутри записи, начиная с которого необходимо переписать информацию по адресу, указаН|НО.му в команде.
Количество байтов, которое необходимо переписать, указывается вторым байтом таблицы. Эта операция производится столько раз, сколько строк в таблице.
Время выполнения команды зависит от многих факторов, а-именно: наличия: требуемого блока информации в -главной памяти: от колитества и содержимого строк таблицы.
Адрес пачала поля памяти, куда записать информацию
Адрес начала таб.лицы сборки
тоспособным с ожиданием блока N. Если блок есть, то в поле главной памяти, указанном в команде, производится запись информации из блока упорядоченным образом.
Порядок записи определяется таблицей сборки, которая имеет следующий вид:
При наличии требуемого блока в главной памяти вычислительной системы время вынолнения команды определяются формулой
м
N,n + 1
.
6 + М +
где М - число строк таблицы,
Nm - число байтов, указанной в т° строке. туса процесса передается лищь адрес этого сообщения. Формат команды «Жду отработки заявки Код операций Содержание заявки Если процесс, который должен отработать заявку исполняет команду «Принял заявку от процесса, то процесс, выдавший команду «Жду обработки заявки остается работоспособным. В противном случае, процесс становится неработоспособным с ожиданием подтверждения приема сообщения. Время выполнения данной команды зави ит от типа заявки, от величин очереди на отряботку заявки и т. д. Команда аналогична команде «Передаю сообщение некоторому привилегированному процессу, который берет на себя функции операционной системы, не реализованной аппаратно. Формат команды «Пересылка данных или «Сборка
Опишем работу процессора мультиобработки данных при выполнении им некоторых наиболее емких команд, а именно, команд «Создать паспорт и «Жду блока номер N.
Пусть процессор мультиобработки данных ведет программу некоторого процесса (решает некоторую задачу). В ходе программы встречается команда «Создать паспорт.
На первом этапе выполнения этой команды необходимо выделить свободную Страницу для заголовка наспорта. Блок управления 7 расшифровывает код операции, устанавливает в регистре номера управляюпшх регистров 2 номер регистра расиределения памяти 9 и фоомирует сигнал считывания из блока управляюших регистров 3 на ,выходпой регистр 8. Под управлением этого сигнала происходит передача содержимого регистра распределения памяти 9 (начальный адрес первой страницы в списке свободных страниц) на выходной регигто 8 блока управляюших регистров 3.
После этого производится запись начального адреса выделенной страницы в регистр базового алоеса страницы 10. Для этого блок ппавления 7 выдает сигнал, который разреinaer пеоедетчу из выходного регистра 8 блока нпавляюших регистров во входной регистр 17 блока управляющих регистров 3. Одновременно блок унравления 7 устанавливает в регистп.- номера унравляюших регистров 2 номер регистра газового адреса страницы 10. После того, как во входном регистре 17 блока управляют их регистров установится адрес начала страницы, блок унравления 7 вырабатывает сигнал, по которому производится запись солплжимого входного регистра 17 блока управЛЯЮИ1ИХ регистров 3 в регистр базового адреса ст аницы 10.
На регистпр распределения памяти 9 всегда должен нахолиться начальный адрес первой странипы в списке свободных страниц. Поэтому, после того, как страница, адрес которой находится на регистре распределения памяти 9, была занята иод заголовок иаепорта, необходимо обновить содержание регистра распределения памяти 9, то есть записать в него алрес следующей в списке свободной стпанипы. Для этого блок .управления 7 выдаст управляюший сигнал, который разрешает передачу информации из выходного регистра 8 блока управляюших регистров (в нем записано старое содержимое регистра распределения памяти 9 в блок сопряжения 1. Адресный выход блока сопряжения 1 связан с регистром адреса главной памяти вычислительной системы (на чертеже не показан). По адресу из регистра распределения памяти 9 производится считывание, информация из этой ячейки главной памяти и является адресом следующей свободной страницы в списке. Этот адрес поступает в блок сопряжения 1 на первый информационный вход. Блок управления 7 вырабатывает сигнал, который разрешает передачу этой информации из блока сопряжения 1 на входной регистр 17 блока управляющих
регистров. Одновременно блок управления 7 устанавливает иомер регистра распределения памяти на регистре номера управляющих регистров 2. После этого блок управления 7 вырабатывает сигнал записи в блоке управляюших регистров и начальный адрес первой страницы в списке свободных из входного 17 регистра блока уиравляюших регистров 3 записывается в регистр распределения памяти 9.
Тенерь начинается заполнеиие заголовка паспорта. Ииформация, которая должна быть записана в заголовок паспорта, находится в главной иамяти системы, начиная с адреса,
который указаи в команде «Создать паспорт. Этот адрес запоминается в блоке сопряжения 1.
Блок управления 7 посылает в блок соиряжеиия 1 сигнал считывания по адресу начала
информации, указанному в команде «Создать процесс. Одновременно начинается формирование адреса, по которому данный вид информации должен быть записан в заголовок паспорта. Формат заголовка иаспорта строго
фиксирован для всех процессов, поэто.му относительные адреса (внутри страницы) всех видов информации, записывае.мой в заголовок паспорта хранятся в блоке постоянной памяти 5. Блок управления 7 передает
в блок постоянной иа.мяти 5 адрес ячейки, в которой хранится относительный адрес требуемого вида информации, и пересылает содержимое этой ячейки ц а вход арифметическологического блока 4.
Одновременно с этим блок управления 7 устанавливает в регистре номера управляющих регистров 2 номер регистра базового адреса страницы 10, в котором хранится физический адрес начала страницы, и выдает сигнал считываиия из блока управляющих регистров на выходной регистр 8 блока зПравляющих регистров 3. После этого блок управления 7 выдает сигнал, разрешающий передачу с выходного регистра 8 блока управляющих регистров 3 на второй информационный вход арифметическо-логического блока 4.
После того, как сложение окончено блок управления 7 формирует сигнал передачи физического адреса в блок сопряжения 1, Если
операция считывания информации, подлежащей записи в заголовок паспорта, закончена, то блок управления 7 формирует сигнал заииси этой информации в главную память системы по вновь сформированному адресу.
Для считывания следующего вида информации необходимо увеличить адрес, по которому было произведено иредыдущее считываиие, на длину считанного вида информации. Поэтому, после того, как считывание данного вида информации закоичено, блок управления 7 формирует сигнал, разрешающий передачу адреса данного вида информации из блока сопряжения 1 на арифметическо-лргический блок 4. Одновременно блок управления
7 передает в блок постоянной памяти 5 адрес
21
ячейки, в которой хранится длина данного вида информации. По сигналу из блока ynpajления 7 содержимое этой ячейки передается иа третий информационный вход арифметическо-логического блока 4, которое определяет физический адрес главной памяти, по кототому записан следующий вид информации. Далее, блок управления 7 формирует сигнал, разрешающий передачу этого физического адреса в блок сопряжения 1. Считьиишие информации но этому адресу и запись ее в паспорт производится анало ично описанному выще.
Опнсаппые операции повторяются до тех пор, пока пеобходимая информация не будет записана в заголовок паспорта.
Следуюппгм этапо г выиолнепия команды «Создать иаепорт является выделение памяти под рабо.ие ячейки. Этот этап иачипается с того, что блок уиравлеиия 7 вырабатывает спгна.ч нередачи кода количества страниц, которые долЖНЫ быть выделены под рабочие ячейки, из блока сопряжения 1 на входной регистр 17 блока управляюпшх регистров 3. В блок сопряжения 1 эта информацпя поступает из главной памяти системы, как один из видов информации. Одновременно блок управления 7 устанавливает на регистре номера управляюнщх регистров 2 помер регистра остатка П. После того, как входной регистр 17 управ.ляющих регистров уетаиовлеп блок управления 7 выдает сигнал записи в блок управляющих регистров. Таким образом в регистр остатка II, записывается код количества страниц, которые должны быть выделены под рабочие ячейки.
Теперь необходимо выделить страницу под таблицу номера страниц, запятых рабочими ячейками. Для этого блок управления 7 устанавливает на регистре номера управляющих регистров 2 но.мер регистра распределения иамятп 9 и выдает сигнал считывания из поля уппавляющих регистров на выходной регистр
8блока управляюпшх регистров 3. На выходном регистре блока управляющих регистров 3 устанавливается код начального адреса выделенной страницы. Затем блок управления 7 устанавливает на регистре номера управляющих регистров 2 код номера регистра начального адреса етраницы 12 и выдает сигнал, разрешающий передачу из выходного регистра 8 блока управляюп1их регистров 3 во входной регистр 17 после того, как передача закончится, блок управлеипя 7 выдает сигнал записи в блоке управляющих регистров. Обновление содержимого регистра распределения памяти
9происходит аналогичтю тому, как это дела.тось выделеппи страппцы иод заголовок паспорта. В пулевую ячейку выделеппой страиппы необходимо записать код количества страниц, отводимых под рабочие ячейки. В выходном регистре 8 блока управляющих регистров 3 записан начальный адрес страницы (адрес нулевой ячейки страницы). Блок управления 7 формирует сигнал, разрещающий передачу из выходного регистра 8 блока уп22
равляющих регистров 3 в блок сопряжения I. Код количества страниц записап в регистре остатка 11. Блок управления 7 устанавливает номер регистра остатка 11 в регистре номера управляющих регистров 2 и формирует сигнал считывания из блока управляющих регистров. После того, как считывание закончено, блок управления 7 выдает сигнал, разрешающий передачу из выходного регистра 8 блока управляющих регистров 3 в блок сопряжения. После окончания этой передачи блок управления 7 выдает в блок сопряжения 1 сигпал записи в главную память системы. Теперь необходимо сформировать и заипсать в заголовок паспорта ссылку на выделенную страницу. В ссылке указывается номер выделенной страницы. Так как иачальный адрес страницы известен, то необходимо вычислить только ее номс). В регист)е гранпцы 13
занисап физический адрес главной памяти, с которого начинается зона паспортов. Если вычесть из иачальпого адреса страницы адрес начала зоны паспортов и разделить результат на объем страницы, то получим номер страницы. Так как объем страницы равен байтов, то деление можно заменить обыкновенным сдвигом на 6 разрядов вправо.
Таким образом, блок управления 7 устанавливает на регистре номера уиравляющих регистров 2 номер регистра границы 13 и выдает сигнал считывания из поля управляющих регистров на его выходной регистр 8. Затем блок уиравлеиия 7 выдает сигнал разрешающий передачу нз выходпого регпстра 8 блока
управляющпх регистров 3 на второй информационный вход арифметическо-логического блока 4. Блок управления 7 устанавливает на регистре номера уиравляюпдих регистров, номер регистра иачального адреса страницы 12
и выдает сигнал считывания из блока управляющих регистров па выходной регистр блока хправляющих регистров 3. Зателг блок управления 7 выдает еигнал, разрещающий передачу из выходпого регистра блока управляющих
регистров па арпфметическо-логический блок 4. После окончання этой операции блок управления 7 формирует сигнал вычитаиия. После окончания операции вычитания блок управления 7 выдает сигнал сдвига на шесть разРятов вправо. По окончании этой операции блок управления 7 вырабатывает сигнал разрешения передачп из арифметпческо-логического блока 4 в блок сопряжения 1. Таким образом, ссылка сформирована, необходимо
сформнровать адрес, по которому она будет записапа.
Адрес, по которому эта ссы.лка должна бьпь заипсана, формируется сле.ичощим образом. Блок управления 7 устанавливает на регистре
номера управляющих регистров 2 номер регистра базового адреса страницы 10 и выдает в блок управляющих регистров 3 сигнал считывания «а его выходной регистр 8. После того, как считывание закопчено блок управления 7 выдает сигнал разрещения передачи
23
с выходного регистра 8 блока управляющих регистров 3 на арифметическо-логический блок 4. Одновременно блок управления 7 передает в блок постоянной памяти 5 адрес ячейки, в которой записан относительный адрес (внутри страницы), по которому должна быть записана ссылка. После того, как адрес установлен, блок унравления7выдает сигнал считывания из блока постоянной памяти 5. После окончания считывания блок управления 7 выдает сигнал разрешения передачи из блока постоянной памяти 5 на третий информационный вход арифметпческо-логического блока 4. После этого блок уцравления 7 выдает сигнал сложения. Результат сложения есть физический адрес главной памяти, по которому должна быть записана ссылка.
По окончании сложения блок управления 7 вырабатывает сигнал разрешения передачи из аоифметическо-логического блока 4 в блок сопояжения 1 и сигнал записи в главную память по сформированному адресу.
После записи этой ссылки начинается собственно выделение свободных страниц под рабочие ячейки и запись ссылок в таблицу номеров стоаниц, занятых рабочими ячейками, на выделенные страницы.
Выделение свободных страниц и вычисление номера страницы (формирование ссылки) происходит аналогично выделению страницы под таблицу страниц, ззрятых рабочими ячейками.
Рассмотрим, как происходит формирование адресов для записи ссылок в таблицу страниц, занятых рабочими ячейками.
Блок управления 7 лстанавливает на регистре номера управляющих регистров 2 номер регистра начального адреса страницы и выдает сигнал считывания в блок управляющих регистров 3. Считанный начальный адрес страницы, на которой находится таблица страниц отведенных под рабочие устанавливается на выходном регистре 8 блока управляющих регистров 3. Блок лПравления 7 выдает сигнал, разрешающий передачу из выходного регистра блока управляющих регистров 3 lia арифметическо-логический блок 4. Одновременно блок управления 7 устанавливает в блоке постоянной памяти 5 адрес ячейки, в которой записана длина ссылки и выдает сигнал считывания из блока постоянной памяти 5 на третий информационный вход арифметическологического блока 4 После окончания передачи блок управления 7 выдает сигнал сложения, в результате чего на выходе арифметическологического блока 4 устанавливается адрес, по которому должна быть записана сформированная ссылка. После окончания сложения блок управления 7 выдает сигналы разрешения передачи нз арифмртическо-логического блока 4 в блок сопряжения 1 и на входной регистр 17 блока управляющих регистров. По окончании передачи блок утавления 7 выдает сигналы записи в главную память и в блок управляющих регистров (в регистре номера управляющих регистров 2 ранее был
Z4:
устаиовлен номер регистра начального адреса страницы 12).
Теперь необходимо осуществить проверку; выделено уже требуемое количество страниц под рабочие ячейки или нет. Для этого блок управления 7 устанавливает на регистре номера управляющих регистров 2 номер регистра остатка И и выдает сигнал считывания в блоке управляющих регистров. По окончании
считывания блок управления 7 вырабатывает сигнал разрещения передачи из выходного регистра 8 блока управляющих регистров 3 в арифметическо-логический блок 4. По окончании передачи блок управления 7 выдает сигнал вычитания единицы младщего разряда и по окончании операцпи анализирует результат. Если результат равен нулю, то требуемое количество страниц выделено, если нет, то блок управления 7 выдает сигнал разрешения передачи из арифметическо-логического блока 4 на входной регистр 17 блока управляющих регистров 3. По окончании передачи блок управления 7 выдает сигнал записи в блок управляющих регистров. Выделяется следующая
страница и т. д.
После окончания выделения памяти под рабочие ячейки необходимо записать номер страницы, на которой находится заголовок создаваемого паспорта по адресу, указанному в
команде «Создать паспорт. /1дрес, по которому должна быть записана ссылка является операндом команды и находится в блоке сопряжения 1. Номер страницы формируется аналогично тому, как формируются номера
страниц при выделении памяти под рабочие ячейки. После того, как номер страницы будет сформирован в арифметическо-логическом блоке 4 блок управления 7 выдает сигнал разрешения передачи из арифметическо-логического блока 4 в блок сопряжения 1 и выдает сигнал записи в главизпо память системы.
Па этом выполнение команды «Создать паспорт заканчивается.
Рассмотрим теперь выполнение команды «Жду блок номер N.
После поступления команды в блок сопряжения 1, код операции передается в блок управления 7 и там расщифровывается. Для выполиения этой команды необходимо просмотреть таблицу блоков информации, находящуюся в главной памяти системы и определить, находится ли требуемый блок в главной памяти или нет.
Для этого блок управления 7 устанавливает на регистре номера управляющих регистров 2, номер регистра начального адреса таблицы блоков информации 14 и вырабатывает сигнал считывания из поля управляющих регистров. Одновременно блок управления вырабатывает сигнал, разрещающий передачу операнда команды из блока сопряжения 1 на арифметическо-логический блок 4.
После окончания считывания из блока управляющих регистров блок управления 7 вырабатывает сигнал, разрешающий передачу из выходного регистра 8 блока управ.чяющих регистров 3 в блок сопряжения 1. По окончании передачи блок управления 7 выдает в блок сопряжения 1 сигнал считывания из главной памяти по переданному адресу. После окончания считывания из главной памяти блок управления 7 выдает в блок сопряжения 1 сигнал, разрешающий передачу считанного числа в арифметическо-логический блок 4. В арпфметическо-логическом блоке 4 производится сравнение номеров блоков информапии. Если помер а совпадают, то это значит, что требуемый блок информаппи находится в главной памяти. В блок управления 7 поступает сигпал совпадения из арифметическо-логического блока 4 и выполнение команды на этом заканчивается. Если совпадения не происходит, то блок управления 7 вырабатывает сигнал, разрешаюШ.ИЙ передачу операнда команды (номера требуемого блока) из блока сопряжения 1 на входной регистр 17 блока управляющих регистров 3 и устанавливает на регистре номера управляющих регистров 2 адрес регистра начального адреса странипы 14. Затем блок управления 7 выдает сигнал записи в поле управляющих регистров. Одновременно с этим блок управления 7 вырабатывает сигнал, разрешающий передачу из выходного регистра 8 блока управляющих регистров 3 в арифметическо-логический блок 4. В арифметическо-логическом блоке 4 полученный адрес .начала таблипы блоков информапии по сигналу блока управлепия 7 увеличивается па длину строки таблицы блоков информации. По окончании этой операции блок управления 7 вырабатывает сигнал, разрешающий передачу из арифметическо-логического блока 4 в блок сопряжения 1. По окончании передачи блок управления 7 выдает в блок сопряжения 1 сигнал считывания из главной памяти по полученному адресу. Одновременно блок управления 7 выдает сигнал считывания.в блок управляющих регистров (код адреса регистра начального адреса страницы 14 был установлен в регистре номера управляющих ргистров 2 ранее). По окончании считывания блок управлепия 7 вырабатывает сигнал, разрешающий передачу из выходного регистра блока управляющих регистров 8 в арифметическо-логический блок 4. По окончании считывания из главной памяти блок управлепия 7 вырабатывает сигнал, разрещающий передачу считанной информации из блока сопряжения 1 в арифметическологический блок 4. На арифметическо-логическом блоке 4 производится сравнение кодов номеров требуемого блока информации и считанного из таблицы блоков информации. Если совиадение происходит, то операция закаичивается, если нет, то выбирается следующая строка таблицы и снова производится сравнение и т. д. В последней строке таблицы запцсан специальпый код, по которо.му арифметическо-логический блок 4 выдает в блок управления 7 сигнал, указываюпщй на то, что требуемого блока в главной намяти системы пет. Получив этот сигнал блок управления 7 устанавливает на регистре номера уира1)ляюntnx регистров 2 номер pcrncipa номе)а ja6oтаю1цсго цроцесса 15 и выдает сигнал считывания из блока уиравляющих регистров на его выходной регистр 8. По окончании сч 1тывания блок уцравления 7 выдает сигнал разрешения нередачи с выходного регистра блока уиравляющих регистров 3 на регистр адреса 18 блока статусов процессов 6. Одновременно с этим блок управления 7 устанавливает на входном регистре 24 блока статусов процессов 6 «1 в разряд работоспособности, в поле типа ожидания - код, указываюнщй на то, что процесс ждет блок информации, в поле информации ожидания - код номера требуемого блока. В регистре маски 23 блока статусов ироцессов блок управления 7 устанавливал код, который маскирует все остальные поля в слове статуса процесса. По окончании этих операций блок управления 7 выдает спгпал записи в узел характеристик 19 статусов процессов. Таким образом, процесс издавший команду «Жду блок помер N обьявляется не эаботоснособпым с ожиданием требуемо1Ч) блока. Одновременно блок унравления 7 передает в блок сопряжения 1 заявку на ввод 1з внеп1ней памяти блока помер N. После того, как работавпшй процесс был объявлен неработоспособным, необходимо запомнить состояние, в котором он был прерван. Для этого необходимо записать в статус процесса адрес команды, на которой он был прерван, а в паспорт-содержимое регистров текущего состояния процесса (16i-Hl6re). Теперь необходимо запустить следующий процесс. Для этого блок управления 7 устанавливает «1 в старший разряд поля приоритетов и в разряд работоспособности во входном регистре 24 блока статусов процессов. Все остальные разряды маскируются, для чего блок управления 7 устанавливает соответствующий код в регистре маски 23. После этого блок управления 7 выдает сигнал опроса в узел характеристик статусов процессов 19. Если в узле характеристик статусов процессов 19 имеется ячейка памяти, содержимое которой соответствует содержимым входного регистра 24 и регистра маски 23, то происходит совпаде)1ие, означающее, что есть работоспособный процесс с наивысщим приоритетом, который запускается в работу. Если совпадепия не происходит, то блок уцравления 7 устанавливает «1 в более младший разряд поля приоритетов входного регистра 24 блока статусов процессов и соответственно изменяет код маски. Затем блок уцравления 7 выдает сигНал опроса узла характеристик статусов процессов 19. Эта операция продолжается до тех лор, пока не будет найден процесс с наивысшим приоритетом среди работоспособных процессов, этот процесс и должен быть запущен в работу. Бели совпадение происходит, то в блок управления 7 поступаетCOOTBeTCTByioHuift сигнал узла индикации совпадения 20. Может возникнуть ситуация, ири которой работоспособными окажутся несколько процессов с одинаковыми приоритетами. В этом случае с узла индикации совпадения 20 на узел обработки приоритетов 21 поступят несколько сигналов совпадения. Узел обработки приоритетов 21 выбирает сигнал совпадения того процесса, который имеет наименьший или какой-либо другой номер. Этот сигнал совпадения поступает с узла обработки приоритетов 21 на узел выдачи номера процесса 22, по этому сигналу узел выдачи номера ироцесса 22 формирует код номера процесса, в котором произошло совпадение. После того, как код номера процесса сформирован, блок управления 7 вырабатывает сигнал, разрешаюш,ий передачу из узла выдачи номера процесса 22 на входной регистр 17 блока управляющих регистров 3 и устанавливает на регистре номера управляющих регистров 2 код адреса регистра номера работающего нроцесса 15. После этого блок управления 7 вырабатывает сигнал записи в блоке управляющих регистров. Затем по сигналам блока управления 7 производится считывание адреса команды, на которой был прерван запускаемый процесс из неоперативной части его статуса и запоминание этого адреса в блоке сопряжения 1. Кроме того, нроизводится заполнение регистров текущего состояния (16iH-16n) процесса, то есть запись в них информации, которая находилась в них в момент последнего прерывания процесса и хранилась до этого момента в паспорте процесса в главной памяти вычислительной системы. На этом выполнение команды заканчивается. Ф о р м } л а изобретения 1. Процессор мультиобработки данных, содержащий блок сопряжения, адресные вход и Быход, первые управляющие вход и выход, первые информационные вход и выход которого подключены соответственно к адресным входу и выходу, управляющим входу и выходу, информационным входу и выходу процессора мультиобработки данных, вторые управляющие вход и выход блока сопряжения подключены к первым управляющим выходу и в.ходу блока управления, вторые информационные вход и выход блока сопряжения соединены с первыми информационными выходом и входом арифметическо-логического блока, а третьи информационные вход и выход блока сопряжения нодключены к первым информационн)1м выходу н входу б;1ока упря1 ляющи ; регистров, второй, третий и четвертьи информационные входы которого подключены соответственно к первым пнформационным выходам блока постоянной намяти и блока управления и ко второму информационному выходу арифметическо-логического блока, второй информационный выход блока унравляющих регистров нодключен ко второму информационному входу арифметическо-логического блока, унравляюии1Й вход блока управляющих регистров соединен непосредственно, а адресный вход через регистр номера управляющих регистров со вторым управляющим и первым адресным выходами блока управления, третий н четвертый управляющие выходы которого подключены к управляющим входам блока постоянной памяти и арифметическо-логического блока, управляющий выход и третий информационный вход которого нодключены к первому информационному входу блока управления и второму информационному выходу блока постоянной памяти, отличающийся тем, что, с целью повышения быстродействия процессора, он содержит блок статусов процессов, адресный, управляющий и информационный входы которого подключены соответственно к третьему информационному выходу блока управляющих регистров, пятому управляющему и второму информацион 1ым выходам блока управления, а информационный ц уиравляющий выходы соединены с пятым информационным входом блока управляющих регистров и вторым информационным входом блока управления. 2. Процессор по п. 1, отличающийся тем, что блок статусов процессов содержит регистр маски, входной регистр, регистр адреса, узел характеристик статусов процессов, узел индикации совпадения, узел обработки приоритетов и узел выдачи номера процесса, выход которого соединен с информационным выходом блока статусов процессов, управляющий вход которого соединен с первыми входами узла характеристик статусов процессов и регистров адреса, подключенного вторым входом к адресному входу блока статусов процессов и соединенного выходом со вторым входом узла характеристик статусов процессов, третий и четвертый входы которого через регистр маски и входной регистр, соответственно, соединены с информационным входом блока статусов процессов, управляющий выход которого соединен с первым выходом узла индикации совпадения, подключенного входом к в з1ходу узла характеристик статусов процессов и соединенного вторым выходом через узел обработки приоритетов со входом узла выдачи номера процесса. Источники информации, принятые во внимание при экспертизе 1. Акцентованная заявка Японии № 48- 5374, кл. 97 (7) Н 3, 97 (7) Н 21, онублик. 06.11.73, № 6-135. 2. Патент США № 3825902, кл. 340-172,5, опублик. 23.07.74, т. 924, N° 4. 3. Патент Франции 2208551, кл. G OGf 9/00, опублпк. 26.07.74, № 30.
е
20
22
2/
Г
Авторы
Даты
1978-01-30—Публикация
1975-10-28—Подача