Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

IBM370

.pdf
Скачиваний:
36
Добавлен:
02.06.2015
Размер:
5.21 Mб
Скачать

адрес операнда в команде ОБРАЩЕНИЕ К МОНИТОРУ;

адрес второго операнда в команде СИГНАЛ ПРОЦЕССОРУ;

адреса внешних устройств в командах ввода-вывода.

Реальные адреса, используемые неявно

адреса PSW при прерываниях;

адрес, который используется процессором для изменения содержимого интервального таймера по адресу 80 реальной памяти;

адрес CAW, CSW и других областей, используемых при прерываниях ввода-вывода или во время выполнения команд ввода-вывода, в том числе команды ЗАПИСАТЬ ИДЕНТИФИКАТОР КАНАЛА.

Абсолютные адреса, используемые неявно

— адреса, используемые при записи состояния.

Логические адреса, сообщаемые программе

адрес, записываемый при прерывании в поле адреса команды в старом PSW;

адрес, записываемый при выполнении команды ПЕРЕХОД С ВОЗВРАТОМ;

адрес, записываемый в регистр 1 при выполнении команды ПЕРЕКОДИРОВАТЬ И ПРОВЕРИТЬ и команды ОТРЕДАКТИРОВАТЬ И ОТМЕТИТЬ;

адрес, записываемый в ячейку 144 реальной памяти в результате программного преры-

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

— адрес, записываемый в ячейку 152 реальной памяти в результате программного преры-

вания, которое вызвано действием PER.

Реальные адреса, сообщаемые программе

динамически преобразованный адрес, формируемый при выполнении команды ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА;

адрес строки таблицы сегментов или страниц, сообщаемый командой ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА.

Абсолютные адреса, сообщаемые программе

адрес неисправной области памяти, запоминаемый в ячейке 248 реальной памяти;

адрес CCW в CSW.

Взаимосвязь обращений по логическим и реальным адресам

Если динамическая переадресация не действует, то по отношению к этому процессору ре-

зультаты, записываемые при выполнении команды в память, оказываются завершенными,

101

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

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

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

При динамической переадресации ячейка реальной основной памяти может иметь несколь-

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

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

1. Если команда изменяет содержимое ячейки памяти, из которой произведена предвари-

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

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

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

то они интерпретируются только в рамках их выполнения при тех же самых логических адре-

сах, по которым произведена их предварительная выборка. Если произведена предваритель-

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

2. Если в данном элементе операции операнды содержат общую ячейку (операнды пере-

крываются в реальной памяти) и эта ячейка имеет два различных логических адреса, то ис-

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

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

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

Поскольку рассмотренная взаимосвязь между обращения относится к обращениям со сто-

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

лютной (физической) памяти. Это объясняется тем, что при одном процессоре между реаль-

ными и абсолютными адресами имеется взаимно однозначное соответствие и изменение пре-

фикса, нарушающее это соответствие, вызывает временную отмену совмещения.

102

Случаи взаимосвязи при обращениях в память сведены в табл. 5.1.

Таблица 5.1. Взаимосвязи обращений к памяти

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

к одной и той же области реальной памяти

Адреса ячеек

Учитывается ли то, что обращения производятся

 

реальной памяти

к одной и той же ячейке реальной памяти?

 

 

 

 

 

 

обращения в одной коман-

обращения в двух различных командах

 

де

 

 

 

 

 

 

 

 

 

операнд-операнд

операнд-операнд

 

операнд-команда

 

 

 

 

 

Реальный X и

Да

Да

 

Да

реальный X

 

 

 

 

Реальный X и

Не бывает

Да

 

Да

логический A

 

 

 

 

Логический A и

Да

Да

 

Да

логический A

 

 

 

 

Логический A и

Нет

Да

 

Нет 1

логический B

 

 

 

 

 

 

 

 

 

Обозначения: реальный X – реальный адрес ячейки X в реальной памяти; логический А

– логический адрес А ячейки X в реальной памяти; логический В – логический адрес В ячейки Х в реальной памяти.

* Обращения к той же самой реальной ячейке учитываются, если между двумя обраще-

ниями производится временная отмена совмещений.

5.5. Работа с таблицами

Буфер быстрой переадресации

Для повышения производительности процессора механизм динамической переадресации,

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

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

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

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

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

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

103

Размер и структура TLB зависят от модели. Например, TLB может содержать только не-

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

стром 1, причем каждая строка содержит старшую часть логического адреса и соответствую-

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

Вследующих разделах описаны условия, при которых можно поместить информацию в TLB

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

ВTLB информация сохраняется не во всех случаях, когда это бывает возможным. Более то-

го, информация может быть удалена из TLB не только тогда, когда такое удаление – очистка

TLB – является необходимым.

Состояния строк таблиц переадресации

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

Говорят, что строка таблицы доступна, если доступны соответствующий ей сегмент или страницы. Строка таблицы доступна, если бит доступности сегмента или бит доступности стра-

ницы данной строки равен нулю. Если в процессе динамической переадресации делается по-

пытка использовать недоступную строку таблицы, то распознается особый случай использова-

ния сегмента или страницы.

Говорят, что строка таблицы является присоединенной, если процессор может пытаться воспользоваться содержимым этой строки для неявной переадресации, что зависит от состоя-

ния процессора, заданного словом состояния программы, управляющим регистром 1 и содер-

жимым битов 8–12 управляющего регистра 0.

Строка таблицы сегментов является присоединенной, если выполняются следующие усло-

вия:

текущее PSW задает режим динамической переадресации;

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

строка может быть задана логическим адресом с учетом размера сегмента, определяе-

мого управляющим регистром 0.

Считается, что PSW задает режим динамической переадресации, если бит 5 равен единице и задан режим EC независимо от того, вызывает ли содержимое других полей PSW какой-либо особый случай или нет.

Строка таблицы страниц является присоединенной, ели она принадлежит таблице, адрес и длина которой указаны в присоединенной и доступной строке таблицы сегментов или в копии присоединенной строки таблицы сегментов, находящейся в TLB, при этом размер страницы за-

дан управляющим регистром 0.

104

Активное состояние строки таблицы переадресации означает, что данная строка таблицы может оставаться записанной в TLB.

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

Замечания по программированию

Размер сегмента определяет количество строк таблицы сегментов, к которым можно обра-

титься в процессе динамической переадресации. От размера страницы и размера сегмента за-

висит возможность выборки строки таблицы страниц и, следовательно, зависит, будет ли стро-

ка присоединенной.

Когда строка становится доступной и присоединенной, она активна. Она может оставаться активной, перестав быть доступной и присоединенной. Например, присоединенная строка таб-

лицы остается активной, хотя бит доступности устанавливается в нуль; доступная строка таб-

лицы остается активной и тогда, когда она перестает быть присоединенной.

Использование буфера быстрой переадресации

Строка таблицы сегментов или строка таблицы страниц может быть помещена в TLB, если только эта строка присоединена и ее бит доступности равен нулю. Строка может быть помеще-

на в TLB, как только она станет присоединенной и доступной.

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

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

лицы присоединена в момент выборки.

Копия строки таблицы страниц в TLB может использоваться при неявной динамической пе-

реадресации только в том случае, если 1) при формировании этой строки TLB была использо-

вана информация, полученная в результате выборки из памяти присоединенной и доступной строки таблицы страниц; 2) выборка этой ячейки реальной основной памяти как строки таблицы страниц производится в ходе динамической переадресации, причем эта строка таблицы присо-

единена в момент выборки; и 3) размер страницы во время формирования этой копии TLB был равен текущему размеру страницы.

При преобразовании адреса операнда в команде ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА TLB не используется. В этом случае преобразование выполняется с использованием таблиц, находя-

щихся в основной памяти.

Полная очистка TLB происходит только при выполнении команд ОЧИСТКА TLB и

УСТАНОВИТЬ ПРЕФИКС, а также при сбросе процессора.

105

Замечания по программированию

Если в режиме EC не задан режим динамической переадресации, то ни одна строка таблиц переадресации не может попасть в TLB, так как в этом случае строки этих таблиц не будут при-

соединенными. В частности, преобразование адреса операнда команды ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА в случае подавления режима динамической переадресации не вызывает копирования строк таблицы в TLB.

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

В TLB может храниться более одной копии строки таблицы страницы. Например, в некото-

рых реализациях TLB в него заносится копия доступной строки таблицы для каждого адреса таблицы сегментов, по которому эта строка становится присоединенной. В то же время в дру-

гих реализациях TLB доступная строка таблицы страниц попадает в TLB для каждой присоеди-

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

Модификация таблиц переадресации

Когда неактивная присоединенная и недоступная строка таблицы становится доступной, это изменение состояния сказывается немедленно. Точно так же изменения состояния сказывается немедленно, когда неактивная неприсоединенная и доступная строка таблицы страниц стано-

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

Однако индикация особого случая использования сегмента или страницы может произво-

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

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

рено в разделе “Распознавание особых случаев доступа” главы 6.

Изменение, внесенное в активную строку таблицы, может воздействовать на результат не-

явной переадресации в любой момент после внесения изменения до завершения последую-

щей очистки TLB.

106

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

ции до того, как TLB очищается, программа не получает никакого извещения о времени начала использования нового значения. Использование нового значения может начаться в период между выполнением команд или во время выполнения команды, в частности во время выпол-

нения команды, которая произвела это изменение. Более того, использование старого значе-

ния или значений строки в обязательном порядке прекращается только после очистки TLB, хо-

тя использование нового значения, возможно, началось раньше.

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

все последующие попытки использовать новое значение этой строки для неявной переадреса-

ции до того, как будет выполнена очистка TLB, могут привести к непредсказуемым результа-

там. Если попытка использовать новое значение строки таблицы делается во время выполне-

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

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

рация не подавлена или не аннулирована.

Действия с присоединенными строками таблицы могут вызвать занесение в TLB ложного значения содержимого строки. Так, если изменения производятся порциями, изменение до-

ступной присоединенной строки может вызвать запись в TLB частично измененной строки, и

если в процессе изменения вводится промежуточное значение содержимого строки, то недо-

ступная строка может оказаться временно доступной и попасть в TLB. Такое промежуточное значение может быть введено, если изменение производится повторно выполняемой операци-

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

Если команда ЗАГРУЗКА УПРАВЛЕНИЯ изменяет размер сегмента, размер страницы, ад-

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

Связь между состояниями строк таблиц переадресации и их использованием представлена в табл. 5.2.

Таблица 5.2.

Состояния строки таб-

Может ли

Может ли

Может ли

Может ли быть

лицы

копия

строка таб-

строка таб-

произведена

 

строки таб-

лицы быть

лицы быть

выборка копии в

 

лицы

выбрана для

использова-

TLB при неявной

 

находиться

переадреса-

на для пере-

переадресации?

 

в TLB?

ции?

адресации?

 

 

 

 

 

 

Активная, присоединен-

 

 

 

 

 

 

 

 

 

107

Состояния строки таб-

Может ли

Может ли

Может ли

Может ли быть

лицы

копия

строка таб-

строка таб-

произведена

 

строки таб-

лицы быть

лицы быть

выборка копии в

 

лицы

выбрана для

использова-

TLB при неявной

 

находиться

переадреса-

на для пере-

переадресации?

 

в TLB?

ции?

адресации?

 

 

 

 

 

 

ная

Да

Да

Да

Да

доступная

Да *

Да

Нет

Да

недоступная

 

 

 

 

Активная, неприсоеди-

 

 

 

 

ненная

Да *

Нет

Нет

Нет

доступная

Да *

Нет

Нет

Нет

недоступная

 

 

 

 

Неактивная, присоеди-

 

 

 

 

ненная

— **

— **

— **

— **

доступная

Нет

Да

Нет

Нет

недоступная

 

 

 

 

Неактивная, неприсоеди-

 

 

 

 

ненная

Нет

Нет

Нет

Нет

доступная

Нет

Нет

Нет

Нет

недоступная

 

 

 

 

 

 

 

 

 

*В TLB может находиться копия ранее присоединенной доступной страницы.

**Такое состояние не может иметь места. Присоединенная и доступная строка таблицы активна.

Замечания по программированию

Если команда, например команда ПЕРЕСЫЛКА, изменяет присоединенную строку таблицы,

в частности делает эту строку недоступной, а затем использует ее для неявной переадресации,

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

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

на использование таблиц, находящихся в основной памяти, и возможное влияние промежуточ-

ных результатов при изменении порциями. При изменении таблиц переадресации необходимо соблюдать следующие правила:

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

2.Если производится любое изменение строки таблицы помимо изменения самого младше-

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

108

манду ОЧИСТКА TLB после того, как изменение произведено, и до использования этим про-

цессором данной строки при неявном преобразовании адресов.

3. Если недоступная строка изменяется таким образом, что промежуточные результаты из-

менения представляют собой доступную строку, то каждый процессор, в котором данная строка является присоединенной, должен выполнить команду ОЧИСТКА TLB после того, как измене-

ние произведено, и до использования этим процессором данной строки при неявном преобра-

зовании адресов. Если эти правила соблюдаются, то динамическая переадресация выполняет-

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

Следует отметить, что нет необходимости очищать TLB в процессоре, в котором недоступ-

ная строка таблицы страниц, ранее неактивная, становится доступной без введения промежу-

точных допустимых значений этой строки. Точно так же нет необходимости очищать TLB в про-

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

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

На некоторых моделях выполнение команды ОЧИСТКА TLB может резко понизить произво-

дительность. Поэтому эту команду следует применять как можно реже в соответствии с приве-

денными выше правилами.

5.6.Регистрация обращений и изменений

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

Если процессор оснащен средствами динамической переадресации, ключ памяти пополня-

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

дится обращение для записи или выборки. Бит 6 (бит изменения) устанавливается в единицу,

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

ция обращений и изменений выполняется независимо от того, находится ли процессор в режи-

ме расширенного управления и задан ли режим переадресации.

Регистрация обращений и изменений производится при всех обращениях к основной памяти как от процессора, так и при операциях ввода-вывода. Следовательно, это относится и к обра-

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

109

операнды команды УСТАНОВИТЬ КЛЮЧ ПАМЯТИ, ПРОЧИТАТЬ КЛЮЧ ПАМЯТИ и СБРОСИТЬ БИТ ОБРАЩЕНИЯ, не вызывают регистрации обращения или изменения.

Бит изменения при попытке записи не устанавливается в единицу, если обращение к памяти не разрешено, независимо от того, подавлена или прекращена команда процессора, ответ-

ственная за это обращение.

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

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

щения от системы ввода-вывода к отсутствующей в данной установке или защищенной ячейке не вызывают установку в единицу бита изменения.

Регистрация обращений посредством бита обращения в основном достаточно точна. Одна-

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

которых программа не вызывает и не использует. В то же время при некоторых условиях об-

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

которая задана программой.

Независимо от текущего размера страницы обращения и изменения регистрируются в пре-

делах 2048-байтового блока. Странице размером 4096 байтов сопоставляются два ключа па-

мяти.

Замечания по программированию

Принятая точность регистрации обращений обеспечивает эффективную реализацию алго-

ритма обмена страниц.

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

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

5.7.Особые случаи при выполнении переадресации

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

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

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

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

ной памяти, доступной на данной вычислительной установке. Элемент операции подавляется.

Сведения обо всех особых случаях, связанных с динамической переадресацией, содержат-

ся в табл. 6.1.

110

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]