Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

МА

256

Номер отделения

Схемы совпадения

т^тУ т

Шифратор номера отделения

Рис. 14.2. Организация кэш-памяти

IV), в каждом из которых могут быть размещены 256 блоков данных. Каждому отделению кэш поставлено в соответствие определенное отделение МА. Таким образом, кэш и МА содер­жат одинаковое число ячеек. Только в ячейках кэш хранятся сами информационные блоки, а в соответствующих ячейках МА — сведения об адресах, точнее, номерах рядов блоков в ОП, а также разряды действительности i/o, v\. Кроме того, имеется еще вспомогательная матрица (на рис. 14.2 не показана), по существу, являющаяся частью МА, в которой формируются два .контрольных разряда исправности отделений /—II и III—IV кэш и МА, а также разряды активности, выделяющие наиболее пассивное отделение.

Число вертикальных колонок в ОП и кэш одно и то же. Всем блокам, имеющим один и тот же номер внутри ряда (разряды 13—20 адреса в ОП), соответствует определенная колонка в кэш и определенная строка в МА.

В кэш, представленной на рис. 14.2, в колонке могут по­мещаться не более четырех блоков, принадлежащих разным рядам, но имеющих один и тот же номер внутри ряда. При таком выполнении устройства достаточно в ячейке МА фиксировать номер ряда (разряды 1 —12 адреса), к которому принадлежит помещаемый в кэш блок информации. Ячейка МА содержит „ также разряды действительности vo и vu устанавливаемые в 1 в зависимости от того, к какому из двух двойных слов про­исходит обращение (определяется разрядом 21 адреса).

При любом обращении процессора в ОП для записи или считывания производится проверка наличия соответствующего блока в кэш. По содержащемуся в адресе номеру блоку из МА считывается строка с четырьмя номерами рядов, которые в схе­мах сравнения сопоставляются с номером ряда в адресе обраще­ния. При обнаружении совпадения (блок находится в кэш) шифратор формирует номер отделения кэш, в котором в по­зиции, задаваемой в адресе номером блока (колонки), находит­ся запрашиваемый блок. Производится обращение в кэш к адре­суемому двойному слову из этого блока по считыванию или записи с установкой разряда действительности Vo и Vi. При этом дублирование записи новой информации в ОП производится или не производится в зависимости от того, к какому из указанных выше типов относится данная кэш.

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

В ЭВМ ЕС-1046 применение кэш с временем выборки 2 ма­шинных такта вместо 11 в ОП .позволило повысить производи­тельность машины почти в 2 раза.

  1. Защита памяти

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

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

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

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

Отметим следующие варианты дифференцированной защиты при различных операциях с памятью:

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

  2. задается одно из следующих отношений к области памяти собственной программы;

а) разрешается доступ к данному блоку как для записи, так и для считывания;

б) разрешается только считывание;

в) разрешается обращение любого вида, но по адресу, взя­тому только из счетчика команд;

г) разрешается обращение по адресу из любого регистра, кроме счетчика команд.

Если нарушается защита памяти, исполнение программы приостанавливается и вырабатывается запрос прерывания по нарушению защиты памяти.

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

Защита отдельных ячеек памяти. В управляющих вычисли­тельных комплексах, предназначенных для работы в АСУ ТГГ, необходимо обеспечить возможность отладки новых программ параллельно с функционированием находящихся в памяти рабо­чих программ, управляющих технологическим процессом. Это может быть достигнуто выделением в каждой ячейке памяти специального «разряда защиты». Установка 1 в этот разряд запрещает производить запись в данную ячейку.

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

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

Регистр

нижней

границы

Прерывание

х<а

х>а

Память

Разрешен- ная область памяти

щ Разрешение обращения

Схема

сравнения

с

a+/V

Регистр

верхней

границы

Прерывание

Схема -£а + Ы сравнения ,

x>a. + N

Рис. 14.3. Защита памяти с помощью граничных регистров

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

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

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

Метод ключей защиты используется в ЕС ЭВМ. Блоки со­держат по 2048 байт. В мультипрограммном режиме могут одновременно обрабатываться до 16 (включая операционную систему) программ. Поэтому для исключения влияния программ друг на друга следует иметь возможность задавать 16 различ­ных вариантов кодов ключей защиты памяти и ключей про­граммы, для чего необходимы 4-разрядные коды. Четырехраз­рядный ключ программы указывается в специальном поле слова состояния программы (ССП), а при операциях ввода-вывода — в слове состояния канала (ССК). В ключе защиты памяти пре­дусматривается дополнительный, пятый (младший), разряд ре­жима защиты. Защита действует только при попытке записи в блок, если в этом разряде стоит 0, и при записи и считывании, если стоит 1. Коды ключей защиты памяти и ключей программы устанавливаются операционной системой с помощью специаль­ных команд, относящихся к привилегированным операциям.

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

Функционирование защиты памяти поясняется схемой на рис. 14.4. При обращении к памяти исполнительный адрес по­ступает в регистр адреса оперативной памяти РгАОП. Запуска­ется цикл ОП, и одновременно группа старших разрядов кода исполнительного адреса, соответствующая номеру блока, к кото­рому производится обращение, используется как адрес для вы-

Исполнительный

адрес

РгАОП

номер\ блока |

Разряд режима защиты

/Р*Р

Ключ ' Разряд Ключ защиты (режима * программы олока А / защиты в ССП

Запись в А, считывание из А

V

Рис. 14.4. Защита памяти при помощи ключей защиты. Структура за­щиты памяти (а) и различные ситуации в работе защиты (б)

борки из памяти ключей защиты ПКЗ и передачи на регистр ключа защиты памяти РгКЗ кода ключа защиты памяти, при­своенного операционной системой данному блоку. Комбинацион­ная схема КС сравнивает ключ защиты памяти блока и ключ программы в регистре ССП или ССК и вырабатывает с учетом режима обращения (запись или считывание), указываемого триггером режима обращения ТгРО, и режима защиты (уста­навливается разрядом режима в ключе защиты памяти) сигнал

Запись в А, Запрещено (П=1),

считывание из А разрешено ( ОР=1)

Запись в А, \ . /п

считывание из А У Запрещено (/7»/>

> Разрешено (0Р=1)

Запись в А, считывание из А

Запись в А, считывание из А

0000

0000

ПКЗ

Регистр ССП

Ключ защиты памяти

Сигнал прерывания (нарушение зашиты)

1101

0

1101

1

0011

0

0011

1

0011

0

0011

1

1101

РазрешенО (0Р= 1)

| 1101

1101

1101

Запись в А, считывание из А

«Обращение разрешено» (ОЯ=1) либо сигнал «Прерывание» (77 = 1) по нарушению защиты.

Если ключи защиты блока памяти и программы совпадают или при любом ключе защиты памяти ключ программы имеет код 0000 (такой ключ программы присвоен программе операционной системы), то разрешены обращения к данному блоку для записи и считывания независимо от назначения разряда режима за­щиты. Обращения также разрешены при любом ключе про­граммы, если ключ памяти имеет код 0000 (такой ключ обычно имеют блоки, хранящие стандартные подпрограммы).

  1. Организация работы памяти в режиме многоабонентного обслуживания

В современных мультипрограммных ВС для повышения про­изводительности реализуется независимая параллельная работа во времени процессора, байт-мультиплексного и селекторных (блок-мультиплексных) каналов и некоторых других устройств (например, таймера), которые асинхронно и независимо друг от друга формируют запросы на обращение к ОП. Более того, в процессоре имеется ряд параллельно работающих блоков, независимо друг от друга обращающихся к ОП. Например, такими блоками процессора могут являться блок контроля и ди­агностирования (БКД), блок адреса результата (БАР), блок центрального управления (БЦУ) и блок выборки команд (БВК).

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

Указанные выше функции реализуются блоком обращения к оперативной памяти (БОП). Рассмотрим принцип построения БОП [18].

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

Как видно из рис. 14.5, связи БОП с абонентами, модулями ОП и памятью ключей защиты (ПКЗ) осуществляются коллек­тивными и индивидуальными (радиальными) шинами.

рис. 14.5. Многоабонентный ре­жим работы ОП:

[JK3 — память ключей защиты; ША и Ц1И — соответственно адресные и информационные коллективные ши­ны; И, А, У, К — индивидуальные шины соответственно передачи информации, адреса, управляющих сигналов и ключей защиты; СК1 — СК6 — селекторные каналы; МК — мультиплексорный канал

Рис. 14.6. Структурная схема блока обращений к оперативной памяти

От ado ментов

Запросы от каналов от процессора

Ц-Щ I