IBM370
.pdfЧасти си- |
Виды сбросов |
|
|
|
|
|
стемы, на |
|
|
|
|
|
|
которые |
|
|
|
|
|
|
действует |
|
|
|
|
|
|
сброс |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сброс |
Программ- |
Начальный |
Начальный |
Сброс с |
Сброс при |
|
процессо- |
ный сброс |
сброс про- |
программный |
очисткой |
включении |
|
ра |
|
цессора |
сброс |
|
питания |
|
|
|
|
|
|
|
1 Если после сброса в данном процессоре выполняется процедура начальной загрузки программы, то процессор не переходит в состояние “стоп” и в PSW не обязательно уста-
навливается нулевое содержимое.
2 После установки нулевого содержимого в PSW считается, что в процессоре задан режим
BC. Значения кода длины команды и кода прерывания остаются неопределенными, так как эти значения не сохраняются при установке нового PSW.
3 Если для этих компонентов предусмотрены отдельные источники питания, указанное действие производится только тогда, когда включается питание именно для данного ком-
понента.
4 Обращение к часам с помощью команды ЗАПИСЬ В ПАМЯТЬ ПОКАЗАНИЯ ЧАСОВ во время выполнения сброса не нарушает работу часов.
Обозначения.
S — выполняется сброс процессора. После завершения сброса процессор переходит в состояние “стоп”.
N — сброс не влияет на состояние канала, и условия прерывания ввода-вывода сохра-
няются. Это справедливо и в том случае, если процессор перед сбросом находился в со-
стоянии “стоп”.
Если выполнение функции сброса в процессоре начинается в то время, когда процессор выполняет команду ввода-вывода, прерывание ввода-вывода или начальную загрузку про-
граммы, то связь процессора с каналом может быть прекращена и о состоянии канала,
подканала и внешнего устройства в этом случае ничего заранее сказать нельзя. Условие прерывания ввода-вывода может быть сброшено либо может возникнуть дополнительное условие прерывания ввода-вывода.
R — выполняется сброс системы ввода-вывода во всех подключенных каналах, и усло-
вия прерывания ввода-вывода, хранящиеся в ожидании обработки, сбрасываются. Во время этого сброса посылается сигнал общего сброса всем контроллерам и внешним устройствам, подключенным к каналу.
U — содержимое, включая контрольные коды в контролируемых блоках, остается без изменения при условии, что во время выполнения сброса отсутствовали обращения к данному компоненту. В противном случае нельзя сказать заранее, каким будет его содер- 81
жимое после сброса.
Сброс процессора выполняется как часть сброса системы каждого из трех типов; кроме то-
го, он выполняется в том случае, когда получен приказ о сбросе процессора, заданный в ко-
манде СИГНАЛ ПРОЦЕССОРУ. Для выполнения сброса процессора в некоторых процессора предусмотрены средства управления, зависящие от модели.
Начальный сброс процессора
Начальный сброс процессора вызывает выполнение сброса процессора и, кроме того, пе-
ред тем, как процессор переходит в состояние “стоп”, выполняются следующие действия:
—содержимое PSW, регистра префикса, таймера CPU и компаратора устанавливается равным 0 с допустимым кодом в контролируемых блоках;
—управляющие регистры устанавливаются в исходное состояние с допустимым кодом в контролируемых блоках.
Так как при начальном сбросе процессора содержимое PSW устанавливается в 0, формат
PSW будет соответствовать режиму BC. Значения кода длины команды и кода прерывания остаются неопределенными, так как эти значения не сохраняются при установке нового PSW.
Подробное описание воздействия этого сброса на другие компоненты системы приводится в табл. 4.5.
Начальный сброс процессора является частью начального программного сброса и сброса с очисткой; кроме того, он выполняется в том случае, когда получен приказ о начальном сбросе процессора, заданный в команде СИГНАЛ ПРОЦЕССОРУ. Для выполнения начального сброса процессора в некоторых процессорах предусмотрены средства управления, зависящие от мо-
дели.
Сброс системы ввода-вывода
При общем сбросе ввода-вывода выполняются функции сброса в канале. В частности,
сбрасываются условия прерывания ввода-вывода, хранящиеся в ожидании обработки, и сигнал общего сброса посылается всем контроллерам и внешним устройствам, подключенным к кана-
лу.
Воздействие сброса системы на контроллеры и внешние устройства и состояния, в которые переводятся эти устройства в результате сброса, описываются в соответствующей публикации Библиотеки системы (SL) или Справочной библиотеки системы (SRL). В любом случае сброс системы прекращает только те функции разделенного контроллера и внешнего устройства, ко-
торые связаны с работой процессора, пославшего сигнал сброса.
Общий сброс ввода-вывода является частью сброса системы каждого из трех типов и обыч-
но не может быть выполнен самостоятельно.
Программный сброс
Программный сброс складывается из сброса процессора и сброса системы ввода-вывода во всех каналах, подключенных к данному процессору. Подробное описание воздействия этого сброса на другие компоненты системы приводится в табл. 4.5.
82
Выполнение функции программного сброса в некотором процессоре может быть вызвано следующими причинами.
1. В моделях, имеющих средство записи состояния, – нажатием кнопки общего сброса си-
стемы на пульте данного процессора при условии, что переключатель очистки находится в нормальном положении.
2. В мультипроцессорной системе – нажатием кнопки общего сброса или кнопки загрузки на пульте любого другого процессора, входящего в данную конфигурацию, при условии, что пере-
ключатель очистки системы находится в нормальном положении.
3. В случае, когда рассматриваемый процессор получил приказ о программном сбросе, за-
данный в команде СИГНАЛ ПРОЦЕССОРУ.
Начальный программный сброс
Начальный программный сброс включает начальный сброс процессора и сброс системы ввода-вывода во всех каналах, подключенных к данному процессору. Подробное описание воз-
действия этого сброса на другие компоненты системы приводится в табл. 4.5.
Выполнение функции начального программного сброса в некотором процессоре может быть вызвано следующими причинами.
1.В моделях, не имеющих средства записи состояния, – нажатием кнопки общего сброса системы на пульте данного процессора при условии, что переключатель очистки находится в нормальном положении.
2.Нажатием кнопки загрузки на пульте данного процессора при условии, что переключатель очистки находится в нормальном положении (в этом случае после начального программного сброса сразу же выполняется начальная загрузка программы).
3.В случае, когда данный процессор получил приказ о начальном программном сбросе, за-
данный в команде СИГНАЛ ПРОЦЕССОРУ.
Сброс с очисткой
При сбросе с очисткой производится начальный сброс процессора, сброс системы ввода-
вывода во всех каналах, подключенных к данному процессору, и устанавливается нулевое со-
держимое с допустимыми кодами в контролируемых блоках в той части основной памяти и ключей памяти, которая подключена к данному процессору. Кроме того, в общих регистрах и в регистрах с плавающей точкой в контролируемых блоках формируется допустимый код. В
большинстве моделей содержимое этих регистров устанавливается равным нулю; в некоторых моделях содержимое регистров остается без изменения, за исключением того, что в контроли-
руемых блоках формируется допустимый код.
Подробное описание воздействия сброса с очисткой на другие компоненты системы приво-
дится в табл. 4.5.
Выполнение функции сброса с очисткой в некотором процессоре может быть вызвано сле-
дующими причинами.
83
1.Нажатием кнопки общего сброса системы на пульте данного процессора при условии, что переключатель очистки находится в положении, разрешающем очистку.
2.Нажатием кнопки загрузки на пульте данного процессора при условии, что переключатель очистки находится в положении, разрешающем очистку (в этом случае после сброса с очисткой сразу же выполняется начальная загрузка программы).
3.В случае мультипроцессорной системы выполнением какого-либо из перечисленных вы-
ше действий на пульте любого другого процессора, входящего в данную конфигурацию.
Замечания по программированию
Для того чтобы при сбросе процессора или при начальном сбросе процессора не были за-
тронуты поля, содержимое которых должно остаться без изменения, процессор во время сбро-
са обязан находиться в состоянии, в котором команды не выполняются и все прерывания за-
прещены. Вся работа в процессоре, за исключением работы интервального таймера, таймера
CPU и компаратора, а также возможности выполнения прерывания от схем контроля, может быть остановлена путем перевода процессора в состояние “ожидание” с запрещением преры-
ваний ввода-вывода и прерываний от внешних источников. Чтобы исключить возможность осу-
ществления сброса процессора во время работы средств отсчета времени или во время вы-
полнения прерывания от схем контроля машины, необходимо обеспечить, чтобы процессор находился в состоянии “стоп”.
Выполнение сброса процессора не оказывает влияния на работу часов и их показание.
При сбросе с очисткой во всех битах интервального таймера устанавливаются нули.
Условия, при которых процессор переходит в состояние “стоп при сбое”, зависят от модели и включают в себя сбои, препятствующие завершению текущей операции. В любом случае от-
сюда следует, что если сброс процессора или начальный сброс процессора происходит тогда,
когда он находится в состоянии “стоп при сбое”, то нельзя полностью гарантировать неиска-
женное содержимое PSW, адресуемых регистров и ячеек памяти, включая ключи памяти, к ко-
торым были обращения во время возникновения ошибки.
Сброс при включении питания
Сброс при включении питания для некоторого компонента вычислительной установки вы-
полняется как часть процесса включения питания для этого компонента.
Процедуры включения питания для часов, основной памяти и каналов могут являться ча-
стью процедуры включения питания для процессора или могут выполняться отдельно. Ниже описываются сбросы при включении питания, выполняемые в процессоре, часах и в основной памяти. Описание сбросов при включении питания, относящихся к каналам, контроллерам и внешним устройствам, можно найти в гл. 13 и в соответствующих материалах, имеющихся в публикациях SL и SRL.
Сброс процессора при включении питания
При этом сбросе производится начальный сброс процессора и сброс системы ввода-вывода во всех каналах, подключенных к данному процессору. В общих регистрах и регистрах с пла-
84
вающей точкой формируется допустимый код в контролируемых блоках. В большинстве моде-
лей содержимое этих регистров устанавливается равным нулю; в некоторых моделях о содер-
жимом регистров ничего нельзя сказать заранее, за исключением лишь того, что код в контро-
лируемых блоках будет допустимым.
Сброс часов при включении питания. При этом сбросе показание часов устанавливается равным нулю и часы переводятся в состояние “не выставлены”.
Сброс основной памяти при включении питания. При таком сбросе в основной памяти энергозависимого типа (т.е. такой, которая не сохраняет содержимого при выключении пита-
ния) в контролируемых блоках формируется допустимый код. То же самое делается и в ключах памяти. В большинстве моделей в памяти и в ключах устанавливается нулевое содержимое; в
некоторых моделях о содержимом ничего сказать заранее нельзя, кроме того, что код в кон-
тролируемых блоках будет допустимым. В случае основной памяти энергонезависимого типа сброс при включении питания не изменяет ее содержимого и не формирует новый код в кон-
тролируемых блоках.
Запись состояния
Средство записи состояния обеспечивает:
— изменение действия кнопки общего сброса в том случае, когда переключатель очистки находится в нормальном положении. Если средство записи состояния имеется в данной уста-
новке, то нажатие кнопки общего сброса вызывает программный сброс; при отсутствии этого средства выполняется начальный программный сброс;
— выполнение функции записи состояния по инициативе оператора.
Операция записи состояния заключается в том, что содержимое текущего PSW и програм-
мно-доступных регистров помещается в постоянно распределенные ячейки основной памяти в пределах первых 512 байтов. В режиме BC значение кода длины команды в PSW не может быть предсказано заранее, а значение кода прерывания, записанное в память, будет равно ну-
лю. Состояние тех битов управляющих регистров, которые не связаны ни с одним из установ-
ленных средств, также нельзя предсказать заранее. Если отсутствует таймер CPU, компаратор,
регистр префикса или средство обработки чисел с плавающей точкой, то содержимое соответ-
ствующих ячеек основной памяти остается без изменения.
В табл. 4.6 перечисляются источники информации, заносимой в основную память при запи-
си состояния, и приводятся длины и адреса полей, отведенных в основной памяти для этой информации.
Таблица 4.6. Постоянно распределенные ячейки памяти для записи состояния
Источники информации |
Длина поля, |
Абсолютный адрес |
|
байт |
1 |
|
|
|
|
|
|
Таймер CPU |
8 |
216 |
|
|
|
Компаратор |
8 |
224 |
|
|
|
85
Источники информации |
Длина поля, |
Абсолютный адрес |
|
байт |
1 |
|
|
|
|
|
|
Текущее PSW |
8 |
256 |
|
|
|
Префикс |
4 |
264 |
|
|
|
Средства, зависящие от модели |
4 |
268 |
|
|
|
Регистры с плавающей точкой 0– |
32 |
352 |
6 |
|
|
|
|
|
Общие регистры 0–15 |
64 |
384 |
|
|
|
Управляющие регистры 0–15 |
64 |
448 |
|
|
|
1 Десятичное значение адреса первого байта поля в абсолютной основной памяти.
Содержимое регистров не изменяется. Если во время операции записи состояния встреча-
ется ошибка, процессор переходит в состояние “стоп при сбое”.
Запись состояния может быть осуществлена оператором с пульта управления системой.
Средства управления и процедуры, применяемые для этой цели, могут быть различными в разных моделях; для каждой модели они описываются в соответствующих публикациях SL. В
мультипроцессорной системе операция записи состояния в некотором процессоре может быть осуществлена по приказу об останове и записи состояния, заданному в команде СИГНАЛ ПРОЦЕССОРУ.
Начальная загрузка программ
Начальная загрузка программ (IPL) позволяет начать обработку в тех случаях, когда содер-
жимое основной памяти или PSW не подходит для работы.
Запуск начальной загрузки программы производится вручную. Для этого с помощью пере-
ключателей адреса устройства загрузки выбирается нужное внешнее устройство и затем нажимается кнопка загрузки. Нажатие этой кнопки вызывает выполнение операции сброса с очисткой или начального программного сброса в зависимости от того, в каком положении нахо-
дится переключатель очистки. После этого начинается операция чтения на указанном устрой-
стве ввода.
Операция чтения проводится так, как если бы была выполнена команда НАЧАТЬ ВВОД-
ВЫВОД, определяющая внешнее устройство, адрес которого набран на переключателях адре-
са устройства загрузки, и использующая адресное слово канала (CAW), которое содержит ну-
левой ключ защиты и адрес CCW, равный нулю. Адрес, набранный на переключателях адреса устройства загрузки, дает 12 младших битов адреса устройства ввода; считается, что старшие биты равны нулю. Хотя адрес первой CCW, которая должна быть выполнена, принимается равным нулю, CCW, выполняемая на самом деле, задана неявно. В действительности эта
CCW содержит: код команды “читать” с битами модификации, равными нулю; адрес данных,
86
равный нулю; счетчик байтов, равный 24; флажок цепочки команд, равный 1; флажок подавле-
ния индикации неправильной длины, равный 1; флажок цепочки данных, равный нулю; флажок блокировки передачи в память, равный нулю, и флажок программно-управляемого прерывания,
равный нулю. Следующая CCW, которая в результате действия цепочки команд выбирается из ячейки 8 или из ячейки 16, обрабатывается так же, как любая CCW в любой операции ввода-
вывода за исключением лишь того, что флажок программно-управляемого прерывания игнори-
руется. Сказанное относится и ко всем последующим CCW, которые могут принимать участие в процедуре начальной загрузки программ.
Если указанное внешнее устройство выдает сигнал КОНЕЦ РАБОТЫ КАНАЛА, относящийся к последней операции в цепочке IPL, и при работе не обнаружено никаких особых случаев, то из ячеек 0–7 выбирается новое PSW. Если это PSW задает режим BC, то адрес внешнего устройства, с которого происходила загрузка, записывается в память в ячейки 2–3; если же в
PSW задан режим EC, адрес внешнего устройства записывается в ячейки 186–187, а в ячейку
185 записываются нули. Лампочка загрузки гаснет, и процессор продолжает работу под управ-
лением нового PSW.
Если при работе IPL сигнал КОНЕЦ РАБОТЫ КАНАЛА приходит отдельно или одновремен-
но с сигналом КОНЕЦ РАБОТЫ УСТРОЙСТВА, то никаких условий прерывания ввода-вывода не возникает. Аналогично все флажки программно-управляемого прерывания, которые могут быть заданы в командах канала (CCW), используемых в процедуре IPL, игнорируются. Если же сигнал КОНЕЦ РАБОТЫ УСТРОЙСТВА, относящийся к IPL, приходит отдельно после сигнала КОНЕЦ РАБОТЫ КАНАЛА, то он вызывает формирование условия прерывания ввода-вывода.
Если не происходит нормального завершения операции ввода-вывода, относящейся к IPL
или загрузки PSW, то процессор не запускается и лампочка продолжает гореть. Это случается,
когда внешнее устройство, выбранное для загрузки, выключено, либо когда внешнее устрой-
ство или канал в процессе выполнения или же при завершении операции ввода-вывода, отно-
сящейся к IPL, посылает сигнал, отличный от сигналов КОНЕЦ РАБОТЫ КАНАЛА, КОНЕЦ РАБОТЫ УСТРОЙСТВА и МОДИФИКАТОР СОСТОЯНИЯ, либо когда PSW, загружаемое из ячейки 0, имеет неправильный формат, что обнаруживается во время процедуры загрузки. В
таких случаях адрес внешнего устройства, используемого при работе IPL, в память не записы-
вается. Содержимое ячеек 0–7 не определено, а содержимое остальных ячеек основной памя-
ти не изменяется. Если в двойное слово с адресом 0 прочитано меньше 8 байтов, то PSW, вы-
бираемое из ячейки 0 при окончании операции IPL, непредсказуемо.
Замечания по программированию
Информация, переданная в ячейки 8–15 и 16–23, может быть использована в качестве управляющих слов канала для чтения дополнительной информации во время процедуры IPL.
Например, CCW, расположенное по адресу 8, может задавать чтение дополнительных CCW
еще в какое-нибудь место основной памяти, а CCW по адресу 16 может вызвать переход в ка-
нале к этим дополнительным CCW.
87
Сигнал МОДИФИКАТОР СОСТОЯНИЯ действует во время IPL обычным образом, заставляя канал выбрать и использовать в качестве следующего CCW в цепочке управляющее слово, ад-
рес которого в основной памяти на 16 больше адреса текущего CCW. Это относится и к перво-
начальному использованию цепочки команд после того, как будет завершена операция чтения,
заданная неявным CCW.
PSW, загружаемое при завершении процедуры IPL, может быть образовано первыми 8 бай-
тами, полученными в операции ввода-вывода, или прочитано в ячейки 0–7 с помощью какой-
нибудь последующей CCW.
Операция ввода-вывода, относящаяся к IPL, неявно задает использование первым 24 бай-
тов основной памяти. Поскольку остальная часть программы, загружаемая с помощью IPL, мо-
жет быть помещена в любое место, имеется возможность сохранения содержимого таких об-
ластей памяти в качестве областей старых и новых PSW, а также области аппаратной реги-
страции, с тем, чтобы использовать их для анализа и восстановления.
Если PSW, находящееся в ячейке 0, содержит единицу в бите 14, то процессор после за-
вершения процедуры IPL переходит в состояние “ожидание”. При этом лампочка ручной рабо-
ты будет выключена, а лампочка ожидания включена.
88
Глава 5. Динамическое преобразование адресов
Динамическое преобразование адресов, или динамическая переадресация, дает возмож-
ность прерывать выполнение программы в любой момент времени, записывать программу и относящиеся к ней данные на внешний носитель, например на запоминающее устройство пря-
мого доступа, а спустя некоторое время восстанавливать программу и ее данные в другой об-
ласти основной памяти с тем, чтобы продолжить ее выполнение. Между основной и внешней памятью программа и ее данные могут передаваться по частям и восстанавливаться в тот мо-
мент, когда эти части требуются для выполнения и процессор пытается осуществить доступ к ним. При этом нет необходимости изменять или проверять саму программу или ее данные;
программист не должен соблюдать какие-либо особые соглашения, касающиеся переместимо-
сти программ, ход же выполнения программы не нарушается, если не считать некоторого его замедления.
Динамическому преобразованию подвергаются так называемые логические адреса, т. е.
адреса, которые полностью определены кодом программы и могут быть учтены при ее выпол-
нении. При обращении к памяти логические адреса с помощью таблиц переадресации динами-
чески преобразуются в реальные. Адреса образуют группы, называемые страницами. Адреса,
относящиеся к одной странице, подвергаются одному и тому же численному преобразованию.
Динамическая переадресация в сочетании с соответствующим программным обеспечением в рамках операционной системы может быть использована для имитации основной памяти,
большей, чем фактическая основная память данной вычислительной установки. Эта мнимая основная память называется виртуальной памятью, а логические адреса, которые использу-
ются как адреса областей в виртуальной памяти, называются виртуальными адресами. Вирту-
альная память, в которой хранится информация пользователя, может значительно превосхо-
дить по размеру реальную основную память вычислительной установки и обычно помещается на внешнем носителе. В каждый момент времени в реальной памяти могут находиться только те страницы, к которым недавно выполнялось обращение. В том случае, когда пользователь обращается к страницам своей виртуальной памяти, не находящимся в реальной основной па-
мяти, последние заносятся в эту основную память, замещая те страницы, в которых предполо-
жительно ощущается меньшая потребность. Операционная система выполняет такой обмен страницами без ведома пользователя.
При обновлении содержимого основной памяти новой информацией с внешнего носителя приходится решать, содержимое какой области следует заменить и нужно ли это содержимое записывать и сохранять на внешнем носителе. Это решение принимается на основе анализа бита обращения и бита изменения, которые добавлены к ключу защиты памяти.
Динамически преобразуются адреса команд и данных, порождаемые процессором, однако к адресам данных и управляющих слов в операциях ввода-вывода динамическая переадресация не применяется. Чтобы упростить выполнение операций ввода-вывода при использовании вир-
туальной памяти, предусмотрена возможность косвенной адресации данных в канале.
89
Динамическая переадресация предполагает, что в процессоре предусмотрен режим расши-
ренного управления (EC), в частности, выполнение динамической переадресации находится в зависимости от значения бита 5 в PSW для режима EC.
К средствам динамической переадресации также относятся команды ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА, СБРОСИТЬ БИТ ОБРАЩЕНИЯ и ОЧИСТКА TLB. При этом используются управляющий регистр 1 и биты 8–12 управляющего регистра 0.
5.1.Структура логического адреса
Переадресация основана на представлении адресов, используемых программой, в виде ло-
гических адресов. Когда динамическая переадресация действует, при обращении к памяти ло-
гический адрес преобразуется в соответствующий реальный, определяющий область реальной памяти. Если процессор не оборудован средствами динамической переадресации или эти средства не действуют, реальные адреса совпадают с соответствующими логическими адре-
сами.
В процессе динамического преобразования адресов различают блоки информации двух ви-
дов: сегменты и страницы. Сегмент – это блок последовательных логических адресов, охваты-
вающих 65 536 байтов (64 Кб) или 1 048 576 байтов (1 Мб), начальный адрес которого кратен его размеру. Размер сегмента зависит от значений битов 11 и 12 управляющего регистра 0.
Страница – это непрерывная область памяти размером 2048 байтов (2 Кб) или 4096 байтов (4
Кб), начальный адрес которой кратен ее размеру. Размер страницы зависит от значений битов
8 и 9 управляющего регистра 0.
Логический адрес подразделяется на поле индекса сегмента, поле индекса страницы и поле индекса байтов. Размеры этих полей зависят от размеров сегмента и страницы.
Поле индекса сегмента начинается с бита 8 логического адреса и распространяется до бита
15 включительно при 64 Кб сегменте и до бита 11 при 1 Мб сегменте. Поле индекса страницы начинается с бита, следующего за последним битом индекса сегмента, и распространяется до бита 19 при 4 Кб странице и до бита 20 при 2 Кб странице. Индекс байтов включает в себя по-
следние 11 или 12 младших битов логического адреса.
Логический адрес имеет следующие форматы:
??? 64 ?? ???????? ? 4 ?? ????????
+-------------------------------------------------------------+
¦ |
|
//////// ¦ ?????? ???????? ¦ ?????? ???????? ¦ ?????? ????? ¦ |
||||||
+ |
------------------------------------------------------------- |
|
|
|
|
|
|
+ |
|
0 |
7 |
8 |
15 |
16 |
19 |
20 |
31 |
90