- •Введение
- •Лекция 1
- •1.Понятие системы, терминология. Определения
- •2. Основные факторы, определяющие принципы организации электронных вычислительных машин
- •Лекция 2 Структурная организация вычислительных машин
- •Глава 2 Функциональная организация (архитектура) эвм
- •2. Режимы работы эвм (организация вычислительных процессов)
- •0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Лекция 4. Иерархия памяти эвм
- •1. Многоуровневая организация памяти эвм
- •Лекция 5 Представление информации в эвм
- •Лекция 6 Способы адресации в эвм
- •1.Базовые способы адресации
- •Лекция 7 Организация адресного пространства
- •Лекция 8 Особенности архитектуры пэвм ibm pc
- •1 Машинные элементы информации
- •Лекция 8 Структурная организация эвм
- •1 Понятие структурной организации эвм
- •2 Классы устройств электронных вычислительных машин
Глава 2 Функциональная организация (архитектура) эвм
2.1 Основные понятия
Архитектура ЭВМ – это совокупность свойств и характеристик ЭВМ, рассматриваемых с точки зрения человека. Например, с точки зрения пользователя: его в первую очередь интересуют языки программирования, возможности ОС, организация работы с файлами, базами данных, приложениями и т.п. возможности ЭВМ, т.е. пользователя технические возможности ВК почти не интересуют.
Другой, более глубокий взгляд на ЭВМ у системных программистов (и тех, кто пишет на ассемблере). Их интересуют возможности машинного языка – т.н. ассемблера, организация ввода/вывода информации, система прерываний, способы представления данных, способы адресации информации в памяти ЭВМ и т.п.
Еще более глубокий интерес к архитектуре ВК у разработчиков ЭВМ. Пример: машинный язык – одна из архитектурных особенностей ЭВМ. На него системные программисты (и пользователи) смотрят с позиций его применения при программировании своих задач. У разработчиков аппаратуры взгляд с другой стороны – они должны для каждой машинной команды придумать (выбрать) алгоритм их выполнения и спроектировать аппаратуру, которая будет их выполнять.
В этой главе мы будем рассматривать архитектуру ЭВМ в основном с точки зрения разработчиков ЭВМ (т.к. курс посвящен организации ВК, а не применению при программировании). Функциональная организация – это принципы построения абстрактных систем, т.е. систем, заданных только их функциями. Исходя из этого определения архитектуру ЭВМ (ВК) можно определить как перечень тех функций, которые должна выполнять аппаратура ЭВМ, и способы их реализации. В этот перечень обычно включают: способы представления данных; список машинных операций – т.н. систему машинных операций; форматы машинных команд – т.н. систему машинных команд; способы адресации информации; режимы работы (организация вычислительных процессов); организацию системы прерываний и др.
Рассмотрев эти вопросы, мы тем самым определим (зададим) те функции, которые должна выполнять аппаратура ЭВМ. Затем перейдем от функции ЭВМ F к ее структуре S.
2. Режимы работы эвм (организация вычислительных процессов)
Организацией вычислительных процессов в ЭВМ занимаются управляющие программы операционных систем(ОС). Они обеспечивают взаимодействие аппаратуры ЭВМ и ПО, задают некоторый режим работы. Зачем нужны ОС, как они появились? Сначала появились алгоритмические языки и трансляторы. Цель – снизить трудоемкость программирования (перевода алгоритма А в машинные программы П) путем передачи этой рутинной работы трансляторам. Позже появились ОС. Их задача – автоматизировать взаимодействие программ и аппаратуры ЭВМ. Цель – повысить эффективность использования дорогостоящей аппаратуры ЭВМ.
Режим работы ЭВМ – это порядок прохождения задач (заданий) через ЭВМ. Задача – это программа и данные, загруженные в ОП, т.е. программа вместе с выделенными ей ресурсами. Различают режимы работы двух типов – однозадачный (однопрограммный) и мультизадачный (мультипрограммный).
В однопрограммном режиме аппаратура ЭВМ выполняет одну пользовательскую программу под управлением и с использованием программ ОС. Практически это двухпрограммный режим: пользовательская программа плюс программа ОС. Но поскольку программы ОС являются сервисными, обслуживающими запросы пользователя, такой режим называют однопрограммным (однозадачным). Работу ЭВМ в этом режиме можно проиллюстрировать следующей временной диаграммой (рисунок 2.1).
Основное достоинство однопрограммного режима – минимальное время ответа на запросы пользователя. Почему минимальное? Потому что все ресурсы ЭВМ (и аппаратные, и программные) находятся в распоряжении пользователя – нет конкуренции за ресурсы. Пользователь монопольно владеет всеми ресурсами.
Основной недостаток однопрограммного режима – неэффективное использование оборудования, в частности, процессора: как видно из временной диаграммы, большую часть времени процессор простаивает. Почему большую? Дело в том, что быстродействие ПУ, с помощью которых осуществляется ввод/вывод информации, обычно существенно ниже быстродействия процессора и памяти. В результате простоев процессора производительность ЭВМ минимальна. В силу этого недостатка однопрограммный режим используется лишь в дешевых ЭВМ класса микро-ЭВМ, в персональных ЭВМ, в частности.
В более мощных, дорогих ЭВМ однозадачный режим не применяется. В них с целью повышения эффективности использования дорогого оборудования применяется мультипрограммный режим. В этом режиме, кроме программ ОС, в ОП компьютера располагаются и (по очереди) выполняются несколько (в общем случае М) программ пользователей. Цель – увеличение загрузки ЦП и, как следствие, производительности ЭВМ. Работу ЭВМ в мультипрограммном режиме можно проиллюстрировать временной диаграммой (рисунок 2.2).
Как говорят в метрической теории ВС, мультипрограммный режим минимизирует т.н. цену производительности I: I=S/Λ, где S – стоимость ЭВМ, Λ – производительность ВК (количество задач в единицу времени). Впервые это понятие в вычислительной технике использовал В.М. Глушков.
Зависимость I, S, Λ от уровня мультипрограммирования М представлена на рисунке 2.3. Здесь Мопт – оптимальный уровень мультипрограммирования, зависит от многих факторов: класса решаемых задач, быстродействия устройств ВК, емкости памяти, структуры ВК и др.
Определение значения Мопт, при котором цена производительности принимает минимальное значение, - задача сложная, это теоретическая проблема. Практически (экспериментально) установлено, что для средних по вычислительной мощности ЭВМ оптимальный уровень мультипрограммирования Мопт лежит в пределах от 4 до 8, для больших – в пределах от 8 до 16.
Основное достоинство мультизадачного режима – минимизация цены производительности. Основной недостаток – увеличение времени решения (ответа) – из-за ожидания в очередях к ресурсам.
ЛЕКЦИЯ 3 Мультипрограммный режим работы
2.3 Средства мультипрограммирования
Мультипрограммный режим сложнее однопрограммного, поэтому к ВК предъявляет специальные требования. Для их реализации в состав ЭВМ (и СОД) вводятся специальные средства, которые и принято называть средствами мультипрограммирования.
Средства, обеспечивающие заданный режим мультипрограммирования – это управляющие программы ОС. Именно они обеспечивают требуемый порядок прохождения задач через ЭВМ. Именно они образуют основную часть – ядро ОС. Именно программы ОС обеспечивают выделение требуемых программе ресурсов ВК - памяти, устройств и т.п., а также слежение за границами областей памяти, выделенных программе. В общем случае управляющие программы ОС обеспечивают взаимодействие между аппаратурой ВК и многочисленными программами пользователей. Названия управляющих программ: супервизор, монитор, диспетчер, планировщик и др.
ООП увеличенной емкости, т.к. для размещения М задач требуется больше места в ОП (в М раз больше). Организацию ООП рассмотрим в специальной главе.
Средства, обеспечивающие одновременную (параллельную) работу ЦП и средств ввода/вывода информации в ОП. Эти средства будем рассматривать в последующих главах, посвященных структурной организации ЭВМ, организации ввода/вывода информации.
Система прерываний ЭВМ предназначена для быстрой реакции на различные ситуации (события), возникающие внутри машины и вне ее. Быстрая реакция на события обеспечивается путем прерывания процесса выполнения текущей программы и перехода к выполнению программы, обслуживающей данную причину прерывания. По завершению обслуживания, естественно, осуществляется возврат к прерванной программе и ее продолжению с того места, в котором она была прервана.
Средства защиты информации, хранимой в памяти ЭВМ, от несанкционированного доступа к ней со стороны других программ (пользователей). Эти средства должны обеспечивать: 1) секретность информации (при чтении) и сохранность (неизменность) – при записи.
В этой главе мы рассмотрим только два средства - систему прерываний и защиты памяти.
2.Организация системы прерываний
Назначение системы прерываний – быстрая реакция на события, происходящие внутри и вне ЭВМ. Быстрая реакция обеспечивается путем реализации специальной операции прерывания. Под операцией прерывания понимается прекращение процесса выполнения текущей программы и переключение процессора на выполнение другой программы, обслуживающей данную причину прерывания. По завершении обслуживания прерывания прерванный процесс должен быть продолжен, причем, естественно, с того момента, в котором он был прерван. С этой целью в момент прерывания процесса необходимо запомнить (сохранить) всю информацию, необходимую для его возобновления, т.е. информацию о состоянии процесса. Эту информацию в ВТ принято называть вектором состояния процесса. Он включает информацию о состоянии ЦП - т.н. слово состояния процессора (ССП), которое включает адрес следующей команды, признаки результата – флаги и др., а также значения переменных процесса, которые хранятся в ресурсах общего назначения – в частности, в регистрах общего назначения (РОН). Для хранения вектора состояния процесса обычно используют специальную область ООП, организованную как стек.
Операция прерывания реализуется аппаратурой ЭВМ и сводится к выполнению следующих действий.
Выполнение текущей программы прерывается. Прерывание осуществляется по завершении текущей i-й команды программы. Выполнение i+1 команды не начинается.
Запоминается информация о состоянии процессора в виде ССП: i+1 - адрес следующей команды, признаки результата(флаги0, маски и т. п. информация.
Управление передается специальной программе (обработчику), обслуживающей данную причину прерывания. Она выполняет все действия, необходимые для обработки прерывания.
Структура (типовая) обработчика прерывания:
1) сохранение используемых РОН (как части вектора состояния процесса) в ячейках ОП;
2) собственно обработка прерывания;
3) восстановление РОН (ОП→РОН) и возврат из прерывания.
Операция прерывания запускается (возбуждается) либо по сигналам прерывания, либо по командам прерывания (похожим на команду CАLL – вызов подпрограммы).
Причины, по которым формируются (вырабатываются) сигналы прерываний, различны и делятся на внутренние и внешние.
Внешние причины – это события, которые возникают вне процессора: в периферийных устройствах (ПУ), например, в клавиатуре и т.п., в других ЭВМ ВК, сигналы времени от таймера и т.п.
Внутренние причины – это события, которые происходят внутри процессора. Их можно разделить на два типа: 1) причины (события), при возникновении которых нормальное развитие (продолжение) вычислительного процесса становится невозможным, или бессмысленным; 2) причины (события) нормальные, естественные для вычислительного процесса.
Рассмотрим их более подробно. Сначала рассмотрим несколько примеров событий (причин), возникновение которых делает бессмысленным продолжение текущей программы. Во-первых, это сигналы прерываний от схем контроля. В состав ЭВМ обычно для выявления отказов аппаратуры встраиваются специальные схемы контроля, которые вырабатывают сигналы об ошибках (отказах) аппаратуры. По этим сигналам происходит прерывание текущей программы и процессор переключается на выполнение специальной программы диагностики неисправностей. Программа диагностики определяет (локализует) место неисправности и сообщает об этом человеку – для ремонта (устранения отказа).
Другая группа причин (событий), при появлении которых продолжение текущей программы становится бессмысленным, – это различного рода некорректности при выполнении программ – т.н. программные причины прерываний. Это прежде всего переполнение разрядности сетки машины при обработке чисел, запрещенный код команды, неправильный адрес и т.п.
Нормальные (естественные) причины прерываний: это процессы ввода/вывода информации, которые часто инициируются по сигналам прерываний от устройств ввода-вывода (УВВ) информации, а также обращение к различным ресурсам (программам) ОС.
Прерывания от УВВ. Сигналы прерываний в них вырабатываются в момент готовности устройства к обмену информацией. По этому сигналу прерывания запускается специальная программа-обработчик, которая обеспечивает обмен информацией между регистром данных (РД) УВВ и ячейкой ОП. Этот способ ввода-вывода используется обычно для обслуживания медленнодействующих ПУ (клавиатуры, например).
Прерывания при обращениях к сервисным программам ОС обычно осуществляются по специальным командам прерываний. В IBM PC, например, для этих целей можно использовать специальную команду прерывания типа INT N, которая встраивается в пользовательскую программу в необходимых местах. Эту группу причин прерываний принято называть «командные прерывания».
Маскирование прерываний. ЭВМ должна иметь средства, позволяющие избирательно, гибко реагировать на различные сигналы (причины) прерывания. Например, если пришел сигнал прерывания от одной из схем контроля (которая обнаружила факт отказа аппаратуры), то в этом случае нет необходимости (бессмысленно) реагировать на другие сигналы прерываний (например, на переполнение разрядной сетки) до тех пор, пока неисправность аппаратуры не будет устранена. Для этих целей используется маска прерываний – двоичный код М=m1…mk, , в котором каждой причине прерывания ставится в соответствие бит маски mi. Если, например, бит маски mi=0, то прерывание по i-й причине запрещено, т.е. замаскировано. Если mi=1, то разрешено, т.е. не замаскировано. Таким образом, операция прерывания инициализируется (возбуждается) только незамаскированным сигналом прерывания. Как быть, если одновременно вырабатывается несколько сигналов прерывания? Как разрешить конфликт между ними? Для исключения конфликтной ситуации сигналам (причинам) прерываний присваиваются различные приоритеты. Приоритет – это преимущественное право (перед другими) на обслуживание – привилегия в обслуживании. Назначение приоритетов осуществляется человеком исходя, например, из динамики процессов: быстропротекающим процессам назначают более высокие приоритеты. Или, например, исходя из ранжировки некорректностей: некорректность в аппаратуре (отказ) в отличие от некорректности в программе необходимо обслуживать в первую очередь. Почему? Некорректную программу можно снять со счета и начать обслуживать другую программу. Отказ же аппаратуры делает невозможным выполнение любой программы. Поэтому реакция на отказ должна иметь преимущества перед программными некорректностями и другими причинами прерываний. Для реализации назначенных приоритетов в ЭВМ используется т.н. система приоритетов, которая является составной частью системы прерываний ЭВМ. Простейшая схема системы приоритетов представлена на рисунке 2.4. Как работает эта схема? При поступлении хотя бы одного незамаскированного сигнала прерывания λ`i в цепь запросов процессор прерывает выполнение текущей программы, а арбитр приступает к поиску источника (устройства), пославшего запрос (сигнал) на прерывание. Поиск осуществляется в порядке установленных приоритетов, т.е. начинается с источника (устройства), имеющего наивысший приоритет и ведется в порядке убывания приоритетов. Поиск продолжается до тех пор, пока не обнаружится устройство, пославшее сигнал прерывания (например, λ`5 =1). Другими словами, арбитр осуществляет поиск устройства с наивысшим в данный момент времени приоритетом. После этого запускается подпрограмма, обслуживающая данную причину прерывания.
Как быть, если в процессе обслуживания причины прерывания вырабатывается другой сигнал прерывания? Здесь возможны две схемы поведения – две дисциплины обслуживания. Первая - обслуживание по схеме с относительными приоритетами (ОПР). Вторая – обслуживание по схеме с абсолютными приоритетами (АПР).
В случае ОПР приоритет, который присваивается сигналу прерывания, относителен, т.е. действует не всегда, а только в момент одновременного поступления нескольких запросов (сигналов) прерываний. Если же высокоприоритетный сигнал поступил позже сигнала с более низким приоритетом, то обслуживание этого более низкоприоритетного сигнала не может быть прервано сигналом с более высоким приоритетом, т.е. осуществляется без прерывания до завершения и только потом начинается обслуживание запроса с более высоким приоритетом. Этот механизм обеспечивается путем маскирования сигналов прерываний от других устройств на время обслуживания.
В случае с АПР приоритет абсолютен, т.е. действует всегда и вызывает прерывание подпрограмм прерывания с более низкими приоритетами. Обслуживание по схеме с относительными и абсолютными приоритетами можно проиллюстрировать временной диаграммой (рисунок 2.5).
Дисциплина с ОПР имеет глубину прерываний 1, с АПР – глубину прерываний больше 1: 2,3,… (вложенные прерывания). Чем отличаются еще? Временем ответа (реакции) – как видно из временной диаграммы в случае АПР обслуживание запроса 3 завершается раньше, чем для случая ОПР.
Способы реализации функций арбитра. Применяются два основных способа: программная и аппаратная реализация.
При программном способе функции арбитра выполняет специальная программа, которую, естественно, реализует процессор – «программа-арбитр». Ее структура представлена на рисунке 2.6. Достоинство способа: минимальные затраты оборудования. Недостаток: существенные (большие) затраты времени на арбитраж, т.е. на поиск устройства, пославшего запрос на прерывание с наивысшим в данный момент времени приоритетом.
Для уменьшения этого времени естественно использовать второй способ – аппаратную реализацию функций арбитра. Простейшая схема: в состав системы прерывания вводится еще одна цепь – разрешение прерывания РП (дейзи-цепочка), которая последовательно подключается ко всем устройствам в порядке
установленных приоритетов (рисунок 2.7). Для увеличения гибкости система приоритетов может быть организованна по многоуровневой схеме (рисунок 2.8). В этом случае прерывания (и устройства) делятся на группы по уровням приоритетов. Для каждой группы используется своя цепь запросов ЗП.Рисунок 2.6
Порядок функционирования: устройство, посылая сигнал прерывания в цепь запросов прерываний ЗП, размыкает ключ в цепи РП. Такую цепь называют дейзи-цепь. Арбитр, получив хотя бы один незамаскированный запрос на прерывание, ждет завершения текущей команды в процессоре, ЦП прерывает выполнение текущей программы, т.е. не переключается на выполнение следующей команды программы, а арбитр запоминает информацию о состоянии ЦП (обычно путем заталкивания в стек содержимого счетчика команд СК и регистра флагов). После этого арбитр вырабатывает ответный сигнал (импульс) «разрешение прерывания» и посылает его в цепь РП. Этот сигнал распространяется до ближайшего к арбитру устройства, пославшего запрос на прерывание (т.е. до устройства с наивысшим в данный момент времени приоритетом). Получив сигнал по цепи РП, это устройство выставляет на ШД процессора (и арбитра) свой индивидуальный адрес вектора прерываний АВП. Этот адрес используется ЦП для извлечения из ОП т.н. вектора прерываний ВП.
Рисунок 2.7 - Одноуровневая система приоритетов
Рисунок 2.8 – Многоуровневая система приоритетов
ВП – это обычно пара слов: адрес программы-обработчика и новые значения для регистра флагов. ВП обычно хранится в фиксированных ячейках ОП. Назначается ВП индивидуально для каждого устройства. По АВП ЦП извлекает адрес обработчика из ОП и загружает его в СК, а значения флагов - в регистр состояния. Тем самым запускается программа обслуживания данного устройства.
Все эти действия на аппаратном уровне реализуются значительно быстрее, чем в случае программной реализации, т.к. поиск осуществляется со скоростью распространения электрических сигналов по электрическим цепям.