Весьма важный вопрос, возникающий в связи с опи санным методом, состоит в том, какое количество ассо циативных регистров обеспечит удовлетворительную ра боту системы. Данный способ требует более сложной логики управления преобразованием страниц, чем пре дыдущие, и его введение оправдывается только значи тельным сокращением числа ассоциативных регистров. По данному вопросу были проведены исследования и, как указывается в одной из работ, путем моделирования было установлено, что восемь ассоциативных регистров позволяют избежать полной процедуры поиска номера страницы в памяти для 90% случаев.
Важным также является вопрос, куда записывать по ступающие из страничной таблицы пары чисел, если все ассоциативные регистры заняты ранее полученной ин формацией. Очевидно, что необходимо освободить один из регистров, чтобы предоставить место новой информа ции. Обычно исходят из предположения, что свежие дан ные используются более часто и поэтому применяют алгоритмы, аннулирующие информацию, которая долго находилась в ассоциативной памяти. Для реализации этих алгоритмов в состав ассоциативных регистров вво дятся дополнительные разряды, характеризующие состо яние самого ассоциативного регистра. Типичными указа телями такого рода являются разряд занятости и разряд использования. Рассмотрим их роль в организации рабо ты ассоциативной памяти с помощью примера, представ ленного на рис. 11-11.
На рис. 11-11, а приведен наиболее простой случай, когда запрашиваемая страница указана в ассоциатив ных регистрах. Состояния разрядов занятости и исполь зования в этом случае не имеют значения; адресный ре гистр загружается в пашем примере номером физичес кой страницы из третьего ассоциативного регистра. Рассмотрим далее другую ситуацию (рис. 11-11,6). Сравнение виртуального адреса и ассоциативной памяти показало, что требуемые сведения в регистрах отсут ствуют. В этом случае выполняется процедура обраще ния к страничной таблице, в результате которой в адрес ный регистр заносится из памяти номер физической страницы. Прежде чем обратиться к памяти по только что найденному адресу, необходимо записать в какой-ли бо из ассоциативных регистров сведения о данной стра нице. Для выбора регистра просматриваются значения
|
|
Номер |
|
|
|
Номер |
Виртуаль- |
|
|
|
програмВиртуальный |
програм- |
|
|
|
|
|
м ы |
адрес |
|
м ы |
ный |
адрес |
Разряд заня |
|
|
|
N |
Р г |
|
N |
р |
г |
|
|
|
|
тости |
|
|
|
. |
|
у |
Разряд исполь |
|
|
|
|
|
|
|
|
'ь- |
----------------^ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
J L |
|
задания |
|
|
'пало |
просмо7пр\ |
\ п |
з |
Boßoct—I 'у- — |
|
|
f .Провер,г p/fCL |
страна,- - щ - , Разряд |
л а, |
. — |
— |
содр. |
|
|
|
собпаде |
---------- |
|
использо- |
|
|
Разряд за |
|
|
|
ной. mag*■ ѵ |
|
|
|
|
|
ния |
лицы |
|
/ бания |
I |
|
|
|
нятости |
|
|
|
памяти |
|
|
I |
|
2*М+р |
|
Р{р,Ы) |
|
2aN+p |
РРр,А/) |
% |
)/ста- |
|
5>V |
|
|
|
|
нодка |
|
|
|
|
«йк-г |
|
|
|
разряда |
|
|
X |
|
|
|
|
занятости |
І | | |
|
|
|
|
|
|
|
А г |
|
|
j |
|
|
|
|
|
|
ІЙ * |
|
|
|
! |
р |
|
|
|
|
|
|
г * |
|
|
а) |
4S |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6) |
É V |
|
|
|
|
|
|
|
Р/Р,Н) |
|
|
|
|
|
|
|
|
|
|
|
|
|
Р/р,П) |
|
|
|
|
|
|
|
Адресный регистр |
|
|
Адресный регистр |
|
|
|
Номер |
|
п а м я т и |
|
|
|
памяти |
|
|
|
програм- |
В иртуальный |
|
|
|
|
|
|
|
Адресный регистр п а м я т и
Рис. 11-11. Пример организации работы ассоциативной памяти стра ничных таблиц.
разрядов занятости. В нашем примере только два ассо циативных регистра заняты (состояние 1 разряда заня тости) .
Выбирается свободный регистр с наименьшим номе ром и в него передается найденная пара чисел: 2aN-\-p и Р(р, N)\ разряд занятости данного регистра устанав ливается в состояние 1. Старое содержимое регистра те ряется.
На рис. l l - l l , ß изображена ситуация, когда все ас социативные регистры заняты. В этом случае просматри ваются разряды использования и находится регистр с наименьшим номером, у которого разряд использова ния установлен в состояние 0. В этот регистр заносится новая информация и его разряд использования устанав ливается в состояние 1. Установка разряда использова ния производится также и при прямом использовании данного регистра (без обращения к страничной табли це). Если все разряды использования оказались в состо янии 1, то они автоматически сбрасываются и учет ис пользования возобновляется сначала.
Сегментная организация памяти. До сих пор пред полагалось, что виртуальная память, которой располага ет программист, представляет собой непрерывный мас сив с единой нумерацией слов. Однако программа обыч но состоит из нескольких отдельных массивов: главной ветви, некоторого числа подпрограмм, одной или не скольких секций данных. Так как заранее длина этих массивов неизвестна, то удобно, чтобы при программиро вании каждый массив имел свою собственную нумера цию слов, начинающуюся с нуля и продолжающуюся в возрастающем порядке. Желательно также, чтобы со ставленная таким образом программа могла работать при динамическом распределении памяти, не требуя от программиста усилий по объединению различных ее ча стей в единый массив. Эта задача решается в некоторых вычислительных системах путем использования особого метода преобразования виртуальных адресов в истин ные, называемого сегментной организацией памяти.
Виртуальная память каждой программы делится на части, именуемые сегментами и имеющие независимую адресацию слов внутри каждой части. К виртуальному адресу следует добавить дополнительные разряды левее номера страницы; эти разряды определяют номер сег мента.
Н 6 / &
с т р а н
Возникает определенная иерархия в организации программ, состоящая из четырех ступеней: 1) програм ма, 2) сегмент, 3) страница, 4) слово. Этой иерархии программ соответствует иерархия таблиц, служащих для перевода виртуальных адресов в физические. Система
Программная таблица
//аѵ ал о
//о м ер а с е гм е н т програм м ной
'паолицб/
С е гм е н т н а я т а б л и ц а
|
П амира |
Р а чалв |
|
сегм ен - |
стр ан и ч |
|
т о б |
ной |
|
т аб л и щ / |
|
|
б тр а н и ч н а н т а б л и ц а
//ом ер а //о м ер а SupmuaHi- ф иоиѵ е-
сниас н а с т р а н н а
С егм ен тн ая |
т а б л и ц а |
С егм ен тн ая т а б л и ц а |
Н омера |
|
Н ачало |
Н омера |
N a Vало |
стран и ч |
стран и ѵ - |
сегм ен - |
|
ной |
сегм ен - |
ной |
т о б |
|
т о б |
таб л и ц м |
тао л и ц м |
б т р а н а ч н а н |
т а б л и ц а |
С трани чная |
т а б л и ц а |
//ом ера |
|
//ом ера |
//ом ера |
//ом ера |
^и ртуал и |
|
фиоиѵ е- |
#иртуалб- |
фиоиѵ е- |
Н 6 / Х |
|
СННйV |
Н 6 / Х |
снное |
с т р а н н а |
с т р а н н а |
с т р а н н а |
стр ан и ц |
Н ам ятг
Рис. 11-12. Таблицы перевода адресов при сегментной организации памяти.
таблиц изображается на рис. 11-12. Программная табли ца перечисляет все целевые программы, которые были загружены в вычислительную систему. Каждой програм ме соответствует своя сегментная таблица, и программ ная таблица определяет это соответствие. Сегментная таблица перечисляет сегменты данной программы с ука занием страничной таблицы, относящейся к данному сегменту. Страничная таблица определяет физическое расположение каждой из страниц сегмента в памяти. Страницы сегмента могут располагаться не подряд, часть страниц данного сегмента может находиться в опе ративной памяти, о с т а л ь н ые в о внешней.
Следует сразу же отметить различие целей сегмент ной и страничной организации памяти, хотя они в логи ческом отношении тесно связаны друг с другом и похожи по реализации. Целью страничной организации является улучшение использования памяти и уменьшение объема пересылки информации между оперативной и внешней
адрес
Рис. 11-13. Процедура преобразования адресов при сегмент ной организации памяти.
памятью. Пользователь, вообще говоря, может не знать о существовании в машине страничной организации. Целью сегментной организации является создание удобств для пользования. Однако он должен не только знать о существовании сегментов, но и отмечать каждую независимую часть программы присвоением соответству ющего номера сегмента.
Рассмотрим теперь на примере машины IBM 360, мо
дель 67, процедуру перевода адресов для системы с сег ментной организацией памяти (рис. 11-13). Пусть имеет
ся виртуальный адрес, состоящий из трех полей: номер сегмента, номер страницы и номер слова. Предположим также, что в начале цикла активности данной програм мы супервизор установил в табличном регистре адрес начала сегментной таблицы, взятый из программной таб лицы.
Процедура начинается сложением числа из таблич ного регистра и номера сегмента, полученная сумма ис пользуется как адрес обращения к памяти и в результа те первого обращения в информационном регистре па мяти образуется начало страничной таблицы. Далее содержимое информационного регистра складывается с номером страницы из виртуального адреса и произво дится обращение к страничной таблице по адресу, полу ченному в результате последнего суммирования. В ин формационном регистре образуется номер физической страницы, который совместно с номером слова из вир туального адреса посылается в адресный регистр и обра зует там истинный адрес обращения к памяти.
Описанная выше процедура требует двух дополни тельных циклов памяти. Для сокращения количества обращений применяются, как и в случае страничной ор ганизации, ассоциативные регистры, хранящие информа цию о недавно использовавшихся страницах.
11-5. М Н О Г О М А Ш И Н Н Ы Е И М Н О Г О П Р О Ц Е С С О Р Н Ы Е В Ы Ч И С Л И Т Е Л Ь Н Ы Е С И С Т Е М Ы
Одним из важнейших путей повышения производи тельности вычислительных систем, их надежности и жи вучести является создание многомашинных и многопро цессорных вычислительных систем.
Многомашинная вычислительная система содержит две или более одинаковых или разных ЦВМ, каждая со своими каналами и периферийными устройствами, свя занных между собой через устройство обмена информа цией.
На практике часто в ответственных случаях, когда предъявляются особо строгие требования к надежности и достоверности функционирования вычислительной си стемы, используют дуплексные вычислительные системы, образованные из двух одинаковых ЦВМ, снабженных средствами автоматического контроля правильности
функционирования (см. гл. 12) и средствами обмена ин