- •Глава I
- •06Ласти применения эвм
- •1.6,1. СуперЭвм
- •Глава 2
- •8 Разрядов
- •11110001 11111001 11110001 11110111 А число — 6.285 запишется в память в виде слова из 6 байт:
- •Глава 3
- •Глава 4
- •Лечит узап j
- •Сверхоперативная или местная память
- •4.2. Адресная, ассоциативная и стековая организации памяти
- •Буфер входа-выхода
- •Усилители считывания-записи
- •Глава 5
- •Проклей
- •Идентификатор адреса (s байт)
- •Сектор на дискете
- •Глава 6
- •Управляющий блок автомат)
- •Глава 7
- •В цпршВляющай блок у б
- •Сумматор частичных произведений Регистр множимого
- •О vМножимое перед началом Выполнения умножения
- •Слой элементов и
- •Глава 9
- •Двойное слада па адреса о 32 бит
- •Слобо по адресу z в бит
- •Заслать в стек ад РеЗ
- •Загрузить аз стана в Pa V
- •Номер регист
- •Непосредственный операнд 1а
- •15Ю кГго 51
- •Оповещающий сив нал „Состояние
- •Блок ревастрод
- •Ветвление в макропроерамме по уело дую Акк*0
- •Макрокоманды управления последовательностью выборка микрокоманд
- •Окно процедуры
- •Регистры параметров (а) Регистры глобальных переменных |
- •1 Нуль м Знак-
- •Запоминание состояния процессора (программы)
- •Общий сигнал прерывания
- •Код приоритетного запроса
- •Маска ввоОагвывода
- •Прерывающая
- •01 23*56789 Время
- •I участка I
- •Запись льта мп
- •I Прием операндов на регистры 1
- •Умножение чисел с фиксированной точкой
- •Сложонив чисел с плавающей точкой
- •Глава 10
- •Вызов команды и модификация счетчика команд
- •Процедура тандемных пересылок
- •Однобайтная
- •16 Разрядов
- •Передача д стек а восстановление содержимого регистров
- •Команды досстаяовяения из стеки содержимого регистров
- •Блок сегментных регистров
- •Первый байт команды Второй ffaSm команды (постбайт адресации)
- •Сегментные селекторы
- •Регистры задачи и регистры дескрипторнои таблицы
- •Блок управления и контроля оп
- •Справочник страниц
- •Физическая память
- •16 Мбайт
- •Расширенная память
- •1 Мбайт
- •С каналом ес эвм
- •Связь с другой эвм
- •I Манипулятор % I Графа- I I типа „Мышь” I I построитель I
- •Глава 11
- •Интерфейс основной намята
- •Общее оборудование мультиплексного канала
- •Глава 12
- •Определения четности переносод
- •Глава 13
- •Ill:Выполнснис программы а Выполнение про ерам мы в
- •Пакеты заданий и Входные наборы данных
- •Выходные очереди разных классов в зу на дисках
- •I требует ‘'ода
- •Пользователь обдумывает | ответ системе I (новый запрос)
- •Блок управления памятью
- •Схемы совпадения
- •Шифратор номера отделения
- •Входной коммутатор
- •Коммутации
- •Сегментная таблица п-й программы
- •Векторные, средства
- •К периферийным устройством
- •К периферийным устройствам
- •Глава 15
- •Устройства Ввода- вывода
- •Процессор 2
- •Процессор 3
- •8 Векторных регистров (по 6* слова в каждом)
- •Готовности операндов
- •Глава 16
- •Комплекс абонентского пункта
- •16.2.. Классификация вычислительных сетей
- •1 Элемент
- •Время распрост- ранена*
- •Задержка сета лри коммутации пакетов[
- •Абонентская система
- •Данные пользователя
- •Сеансовый
- •Транспортный
- •Сетевой
- •Интерфейс высоког о уровня
- •Аппаратура передачи данных
- •Установление связи
- •Данные пользователя 00Длина поля и слови я обслуживания
- •Идентификатор протокола
- •7» Бшдта) Данные пользователя б вызове
- •Поток бит
- •Новый пакет (кадр)
- •Станция 1 ведет передачу
- •Передатчик Коаксиальный кйбель
- •Глава 15. Принципы организации многопроцессорных и многомашинных вычислительных систем (комплексов) и суперЭвм 489
- •1S в 7 о Слада па адресу ь
Схема
анализа запросов
I
Входной коммутатор
I
РгЗС1
Схема
Схема
анализа
адреса
PZ3CZ
К
абонентам
it
•••
♦
Схема
совпадения —CZ
пкз
1.
РгОшЛ
РгУС
Шифратор
I
Выходной
коммутатор
РгОЗIКоммутации
I| | 1 РгНАI
РгИ
ОП
На рис. 14.6 приведена упрощенная структурная схема БОП. Обработка запроса в БОП состоит из трех этапов. Поскольку на каждом этапе используются отдельные средства, возникает своеобразный конвейер, и при наличии запросов одновременно обрабатываются три запроса по одному для каждого этапа.
Обработка сигналов запросов. Схема анализа приоритетов запросов циклически с периодом, равным времени обработки одного запроса в ОП, анализирует поступившие от абонентов запросы, выделяет наиболее приоритетный из них и фиксирует его наличие засылкой 1 в соответствующий данному абоненту разряд регистра обобщенных запросов РгОЗ.
Далее по содержимому РгОЗ шифратор формирует в регистре номера адреса РгНА 4-разрядный номер абонента, принятого на обслуживание. При считывании информации из ОП номер абонента определяет, куда выдается информация. Код в Рг039 управляя входным коммутатором, обеспечивает прием «запросного слова» .(ЗС) соответствующего абонента в РгЗС1. Запросное слово содержит адрес ОП, признак обращения (запись или считывание), ключ программы, а при записи и информационное слово. На этом завершается первый этап.
Обработка запросного слова. Схема анализа адреса проверяет код адреса на нечетность, допустимость адреса для данной конфигурации ОП (нарушение адресации). Она также определяет по старшим разрядам РгЗС1 номер модуля ОП, свободен ли этот модуль и формирует 7-разрядное управляющее слово. Это слово содержит 4-разрядный номер абонента, пославшего данный адрес, 2-разрядный номер модуля ОП и 1-разрядный признак операции обращения (запись или считывание).
Если адресуемый ЗС модуль памяти оказывается занятым операцией обращения для другого ЗС (в том числе от данного абонента), то ЗС остается в РгЗС1 до освобождения модуля памяти, если ЗС принадлежит каналу, и освобождает РгЗС1, если принадлежит процессору. В последнем случае запросы процессора не обрабатываются до освобождения модуля памяти, оказавшегося занятым.
Если запрашиваемый модуль ОП свободен, ЗС передается в РгЗС2 из РгЗС1у который, таким образом, освобождается для приема нового ЗС. На этом заканчивается второй этап. *
Обращение к модулю ОП. В соответствии с содержимым управляющего слова запускается цикл обращения в определенном модуле ОП, записывается по указанному в ЗС адресу информационное слово из ЗС или производится считывание слова в РгИ. Далее считанная информация через выходной коммутатор, управляемый кодом номера абонента в РгУС, передается соответствующему абоненту.
Одновременно с запуском цикла в ОП старшие разряды адреса (номер блока) передаются в качестве адреса в память ключей защиты. Происходит сопоставление ключа защиты из ПКЗ и ключа программы в ЗС. При их несоответствии в определенном разряде регистра ошибок памяти РгОП фиксируется нарушение защиты. В случае выявления нарушений при обращении к памяти (нарушение адресации или защиты), на что указывает наличие 1 в соответствующем разряде 3-разрядного регистра ошибки памяти РгОшП, блокируется запись слова из ЗС, а при считывании блокируется выдача считанного слова из РгИ абоненту (выдается нулевой код). Содержимое РгОшП выдается в регистр ошибок абонента.
Отметим в заключение, что с помощью БОП производятся запись ключей защиты в ПКЗ и считывание ключа при его передаче в регистр ССП.
Многоабонентное обслуживание порождает конфликты, возникающие при одновременном обращении абонентов к памяти. Эти конфликты, с которыми связаны простои отдельных або- . нентов в ожидании освобождения памяти, снижают производительность ВС. Для уменьшения частоты конфликтов используются быстродействующие буферные памяти в процессорах и каналах. Этой же цели служит расслоение памяти (см. § 14.2).
Динамическое распределение памяти.
Организация виртуальной памяти
В мультипрограммных системах размещение всех исполняемых программ полностью в ОП во многих случаях невыполнимо: программы часто имеют большую длину, а емкости существующих ОП ограниченны. Однако нет принципиальной необходимости в том, чтобы вся программа находилась в ОП, так как в любой момент времени работа программы концентрируется на определенных сравнительно небольших участках. Таким образом, в ОП следует хранить только используемые в данный период части программ, а неиспользуемые части могут располагаться в ВЗУ. Программируя свою программу, пользователь не знает, в комбинации с какими программами будет выполняться его программа, какое место в памяти отведет ей операционная система.
При подготовке программ используются условные адреса. Позднее в процессе выполнения программы операционная система выделяет активным частям программы место в памяти, и условные адреса переводятся в исполнительные. Эта процедура получила название динамического распределения памяти.
Осуществление динамического распределения чисто программным путем привело бы к значительным потерям машинного времени. Целесообразнее пользоваться для этой цели аппаратурными средствами.
Один из способов динамического распределения памяти основан на использовании базовых регистров. Операционная система каждой пользовательской программе ставит в соответствие свой базовый адрес. Базовые адреса обрабатываемых программ находятся в общих регистрах. При выполнении программы реальный или физический адрес образуется суммированием базового и относительного адресов. При динамическом распределении памяти с помощью базовых регистров программа (или, по крайней мере, та часть ее, адрес которой преобразуется с помощью одного и того же базового адреса) должна располагаться в последовательных ячейках и вводиться в ОП целиком, хотя в ближайшем цикле активности может потребоваться лишь небольшой фрагмент программы.
При рассматриваемом способе динамического распределения памяти свободная память может состоять из несвязанных областей (фрагментация памяти) и для ввода нужной программы может понадобиться сдвиг содержимого памяти. На рис. 14.7, а показано распределение памяти между программами А, Б, С, D, из которых две (А и D) являются в данный момент наименее активными и следовательно, могут рассматриваться как кандидаты на удаление во внешнюю память. Если вновь вводимая программа Е (рис. 14.7, б) больше любой из программ А и D, то для ее размещения в памяти необходимо, как показано на рис. 14.7, в, сдвигать программы В и С. Это перемещение связано с потерей времени. Более того, в ряде систем подобное перемещение требует выполнения заново операции редактирования связей в программе и новой загрузки программы.
Отмеченные недостатки в распределении памяти отсутствуют в виртуальной памяти со страничной организацией.
Виртуальная память есть способ организации памяти мультипрограммной вычислительной системы, при котором достигается гибкое динамическое распределение памяти, устраняется ее фрагментация и создаются значительные удобства для работы программистов. Это удается достигнуть без заметного снижения
С
□
а)
б) |
Е I |
°\ | |
1 Е |
|
с* |
8)
Рис.
14.7. Пример распределения памяти:
а
— распределение памяти до ввода новой
программы; 6
— вводимая программа; в — варианты
распределения памяти после ввода
новой программы
производительности машины ценой усложнения аппаратуры и операционной системы и процессов их функционирования.
Принцип виртуальной памяти предполагает, что пользователь при подготовке своей программы имеет дело не с физической ОП, действительно работающей в составе вычислительной установки и имеющей некоторую фиксированную емкость, а с виртуальной (т. е. кажущейся) одноуровневой памятью, емкость которой равна всему адресному пространству, определяемому размером адресных полей в форматах команд и базовых регистров. В ЕС ЭВМ это пространство составляет 16 777 216 байт.
Пользователь имеет в своем распоряжении все адресное пространство системы независимо от объема ее физической памяти и объемов памятей, необходимых для других программ, участвующих в мультипрограммной обработке.
На всех этапах подготовки программ, включая загрузку в оперативную память, программа представляется в виртуальных адресах, и лишь при самом исполнении машинной команды производится преобразование виртуальных адресов в реальные адреса действующей памяти (в так называемые физические адреса).
Преобразование виртуальных адресов в физические упрощается, и устраняется фрагментация памяти, если физическую и виртуальную память разбить на блоки, называемые в этом случае страницами и содержащие одно и то же число байт. Страницам виртуальной и физической памяти присваивают номера, называемые номерами соответственно виртуальных и физических страниц. Каждая физическая страница способна хранить одну из виртуальных страниц. Порядок расположения (нумерация) байт в виртуальной и физической страницах сохраняется одним и тем же.
В мультипрограммной системе страничная организация памяти дает определенные преимущества. Когда новая программа загружается в ОП, она может быть направлена в любые свободные в данный момент физические страницы независимо от того, расположены они подряд или нет. Не требуется перемещения информации в остальной части памяти. Страничная организация позволяет сократить объем передачи информации между внешней памятью и ОП, так как страница программы не должна загружаться до тех пор, пока она действительно не понадобится. Сначала в ОП загружается начальная страница программы, и ей передается управление. Если по ходу работы делается попытка выборки слов из другой страницы, то производится автоматическое обращение к операционной системе, которая осуществляет загрузку требуемой страницы.
Виртуальная
Страничная память таблица п-й программы
Регистр
номера программы
^
Номер
„ виртуальной
страницы
Номер
байта
Рис.
14.8. Страничная организация памяти:
а
— соответствие
между виртуальными и физическими
страницами; 6
-
разование виртуального адреса в
физический
Виртуальный
адрес
Страничная
таблица п-й программы Номер физической
страницы из страничной таблицы
^Физический
адрес
На рис. 14.8 показано соответствие между виртуальной и физической памятями, устанавливаемое страничной таблицей, причем видно, что физические страницы могут содержаться в текущий момент времени как в оперативной, так и во внешней памяти. Страничная таблица для каждой программы формируется операционной системой в процессе распределения памяти и перерабатывается ею каждый раз, когда в распределении памяти производятся изменения. Процедура обращения к памяти состоит в том, что номер виртуальной страницы извлекается из адреса и используется для входа в страничную таблицу, которая указывает номер соответствующей физической страницы. Этот номер вместе с номером байта, взятым непосредственно из виртуального адреса, представляет собой физический адрес, по которому происходит обращение к ОП.
Если страничная таблица указывает на размещение требуемой информации во внешней памяти, то обращение к ОП не может состояться немедленно: операционная система должна организовать передачу из внешней памяти в ОП нужной страницы.
Для каждой из программ, обрабатываемых в мультипрограммном режиме, организуется своя виртуальная память и создается своя страничная таблица, при этом все программы делят между собой одну общую физическую память.
Страничные таблицы программ хранятся в ОП, и обращение к нужной строке активной страничной таблицы в ОП происходит по адресу, который определяется номером активной программы и номером виртуальной страницы (рис. 14.8).
Для ускорения преобразования адресов используется небольшая сверхоперативная память, куда передается из ОП стра-
ничная таблица активной программы. В другом варианте в сверхоперативной памяти могут находиться сведения о номерах виртуальных и соответствующих физических страниц для нескольких недавно использовавшихся страниц, в том числе принадлежащих разным программам. В этом варианте сверхоперативная память, используемая при преобразовании адресов, cfpo- ится как ассоциативная (см. гл. 4) с обращением не адресным, а по содержанию хранимой в ячейке информации — в данном случае по хранимому в ячейке номеру программы к номеру виртуальной страницы.
Сегментно-страничная организация памяти. До сих пор предполагалось, что виртуальная память, которой располагает программист, представляет собой непрерывный массив с единой нумерацией байт. Однако программа обычно состоит из нескольких массивов — подпрограмм, одной или нескольких секций данных. Так как заранее длины этих массивов неизвестны, то удобно, чтобы при программировании каждый массив имел свою собственную нумерацию байт, начинающуюся с нуля и продолжающуюся в возрастающем порядке. Желательно также, - чтобы составленная таким образом программа могла работать при динамическом распределении памяти, не требуя от программиста усилий по объединению различных ее частей в единый массив. Эта задача решается в некоторых вычислительных системах путем использования особого метода преобразования виртуальных адресов в физические, называемого сегментностраничной организацией памяти.
Виртуальная память каждой программы делится на части, именуемые сегментами, с независимой адресацией байт внутри каждой части. К виртуальному адресу следует добавить дополнительные разряды левее номера страницы; эти разряды определяют номер сегмента.
Возникает определенная иерархия в организации программ, состоящая из четырех ступеней: 1) программа, 2) сегмент,
страница, 4) байт. Этой иерархии программ соответствует иерархия таблиц, служащих для перевода виртуальных адресов в физические. Программная таблица для каждой программы, загруженной в систему, указывает начальный адрес соответству- ■%г ющей сегментной таблицы. Сегментная таблица перечисляет сегменты данной программы с указанием начального адреса страничной таблицы, относящейся к данному сегменту. Страничная таблица определяет расположение каждой из страниц сегмента в памяти. Страницы сегмента могут располагаться не подряд, часть страниц данного сегмента может находиться в оперативной памяти, остальные — во внешней.
Рассмотрим с некоторыми упрощениями организацию сег-
ментно-страничной виртуальной памяти, реализованной в машинах ЕС ЭВМ II очереди [49].
В этой системе работа с виртуальной памятью возможна только в режиме расширенного управления (ССП [12] =1).
Сегмент представляет собой блок последовательных адресов размером 64 Кбайт или 1 Мбайт, размер страницы 2 или 4 Кбайт. Начальные адреса сегментов и страниц кратны их размерам. Размеры сегментов и страниц виртуальной памяти активной в данный момент программы задаются значениями соответствующих разрядов управляющего регистра 0.
Виртуальный адрес (как и физический) имеет длину 24 разряда, причем поле номера сегмента занимает 8 или 4 старших разряда соответственно для сегментов размером 64 Кбайт и 1 Мбайт, поле номера байта занимает 11 или 12 младших разрядов для страниц размером 2048 и 4046 байт. Промежуточные разряды адреса занимает поле номера страниц, которое может иметь 4, 5, 8 или 9 разрядов в зависимости от размеров сегмента и страницы.
Сегментные и страничные таблицы находятся в ОП, а в программной таблице нет необходимости, так как для каждой активной в данный момент программы управляющий регистр 1 хранит начальный адрес ri длину соответствующей сегментной таблицы. Хранит он также номер программы.
Процесс преобразования адресов представлен на рис. 14.9. В общем случае преобразование адреса происходит в два этапа и требует двух дополнительных обращений к ОП (рис. 14.9, а).
Первый этап. Начальный адрес сегментной таблицы, установленный в управляющем регистре 1, суммируется с номером сегмента из виртуального адреса. В результате образуется адрес, по которому из ОП считывается строка сегментной таблицы, содержащая адрес начала и длину страничной таблицы для данного сегмента.
Второй этап. Полученный адрес начала страничной таблицы суммируется с номером страницы из виртуального адреса, при этом образуется адрес, по которому из ОП считывается строка страничной таблицы. Если эта страница оказывается в ОП, то в старшие разряды регистра физического адреса передается ее номер, а в младшие заносится номер байта из регистра виртуального адреса. Формирование физического адреса на этом завершается.
Если нужная физическая страница оказывается во внешней памяти, то происходит прерывание по страничному сбою (см. § 14.6). Операционная система инициирует передачу этой страницы из внешней памяти в ОП (при этом меняется номер физической страницы) и корректирует соответствующим обра-
Номер
Номер
'UU
программысегмента
страницы /байта
Номер
Виртуальной Номер
РгВААдрес
начала сегментной таблицы
►
/7
-5Виртуальный
I \адрес
Г