Главная страница
Навигация по странице:

  • Организация прерывания процессора.

  • Вход в прерывающую программу

  • Размещение прерывающих программ по фиксированным адресам.

  • Запоминание состояния прерванной программы.

  • Восстановление состояния прерванной программы. Инвертирование тех действий, которые выполнены при запоминании. Возврат.

  • Глава 4. Организация памяти ВС. Виды запоминающих устройств. Иерархия памяти. Память

  • Лекции по архитектуре эвм


    Скачать 397.84 Kb.
    НазваниеЛекции по архитектуре эвм
    Дата05.12.2021
    Размер397.84 Kb.
    Формат файлаpdf
    Имя файлаLectures.pdf
    ТипЛекции
    #291702
    страница4 из 5
    1   2   3   4   5

    Глава 3.
    Системный уровень организации ЭВМ.
    Программный режим работы.
    Однозадачный режим работы характеризуется тем, что в основной памяти ВМ находится 1 задание, которое является активным (обрабатывается), следовательно, все ресурсы ВМ отданы в распоряжение задания до момента окончания. Исторически любой пользователь был монополистом по отношению к ресурсам ЭВМ. Это характерно для программирования на машинном языке. Но есть серьезные ограничения, связанные с пропускной способностью компьютера. Рассмотрим гипотетическую задачу и процесс работы компьютера при ее решении (задача уже загружена в основную память компьютера и инициирована для своего исполнения). Выделим основные ресурсы: ЦП( основная память), устройство ввода-вывода, внешняя память (накопители). Однопрограммный режим: в любой момент времени работает только одно устройство. В данном случае процессор самое «узкое» место. Чем быстрее процессор тем ниже коэффициент его загрузки. То есть процессор такого компьютера фактически большее время находится в режиме простоя., чем в режиме решения задач.
    То есть производительность ВМ (количество решенных задач в единицу времени) слабо зависит от характеристик процессора. Повышение производительности достигается за счет распараллеливания процесса.
    Методы распараллеливания процесса:
    1) Аппаратно-алгоритмические методы – приводят к конвейеру вычислений, совмещению работы различных устройств.
    2) Мультипрограммирование.



    - -
    Ввод исходных данных
    Промеж. данные
    Читаем промеж. данные
    Промеж. данные
    ЦП
    УВВ
    ВЗУ

    - 27 -
    В память ЭВМ загружается сразу несколько задач, которые инициируются по мере освобождения требуемых ресурсов ВМ с определенной очередностью. Суть мультипрограммного режима рассмотрим не примере трех задач. Будем предполагать, что каждой задаче выделены свои ресурсы внешних устройств и памяти.
    A, B, C – порядок решения задач.
    (Все задания в памяти)
    Время решения любой задачи не уменьшается, но за один промежуток времени решается больше задач, т.е. количество решаемых задач за единицу времени увеличивается, следовательно, производительность ВМ увеличивается. За счет организации процесса можно увеличить производительность ЭВМ.
    Известно два различных способа организации мультипрограммного режима работы:
    1. пакетная обработка
    2. разделение времени
    При пакетной обработке обычно формируется пакет задач, который находится во внешней памяти. Выбор задачи на решение производится автоматически без вмешательства пользователя. Пакет рассчитан на длительное время работы компьютера. Такой режим применяется при решении технических задач (нечувствительных ко времени)
    Режим разделения времени ориентирован на многопользовательский режим работы. Любому пользователю ОС выделяет некоторый фиксированный квант процессорного времени. Если программа за этот квант не решилась до конца, то она принудительно прерывается для исполнения, и управление отдается следующей задаче, а прерванная программа ставится в очередь ожидания. Применяются различные правила распределения ресурсов процессора между задачами. С одной стороны размер кванта должен быть маленьким, так как задача не должна простаивать при завершении ее, но переключение с одной задачи на другую требует расходов. Удельный вес накладных расходов должен увеличиваться, но квант нельзя сделать очень большим, следовательно, увеличивается время простоя. Квант зависит от характеристики задач. На практике величина кванта до 100 миллисекунд. Количество
    «одновременно» выполняемых программ – коэффициент мультипрограммирования.
    Организация прерывания процессора.
    В процессе выполнения любой программы, как внутри ЭВМ, так и во внешней среде
    (машины используемые для управления некоторыми объектами), могут возникать некоторые события, которые требуют немедленной, определенной для этого события реакции, как со стороны ЭВМ, так и со стороны программы. ВМ временно прекращают выполнение текущей программы, переходит к выполнению некоторой другой программы, специально предусмотренной для этого случая, а по завершении специальной программы ЭВМ

    - 28 - возвращается к выполнению исходной программы. Такой процесс перехода к специальным программам и обратно носит названия прерывание, причем исходная программа называется прерванной, а специальная программа – прерывающая. Различного рода сигналы, которые информируют ЭВМ о наступлении события, носят название запроса прерывания.
    Любое прерывание текущей программы заключается в том, что.
    1) Процессор прекращает ее выполнение
    2) Запоминает информацию, нужную для продолжения выполнения программы с точки прерывания.
    3) Переходит к выполнению специальной программы.
    4) После исполнения специальной программы, управление возвращается исходной программе.
    Запросы на прерывание могут возникнуть внутри компьютера (сбой в некотором устройстве, переполнение разрядной сетки, попытка деления на нуль, требование прерываний ввода- вывода и т.п.). Несмотря на программу источник, временной момент появления прерывания определить не возможно. То есть запросы прерывания асинхронны по отношению к программе. Моменты возникновения других событий можно заранее предсказать. При многократном использовании программы эти события будут возникать в одно время
    (операции обмена, переполнения) – синхронные события. Самые сложные события асинхронные. Для организации правильной работы основной и прерывающей программы нужно управление. Эта координация реализуется системами прерывания. Основными функциями являются следующие:
    1) временной останов выполняющей программы и выбор запроса на обслуживание
    2) запоминание состояния прерванной программы
    3) инициирование программ – обработчиков прерывания
    4) обслуживание – выполнение прерывающей программы
    5) восстановление состояния прерывающей программы и возврат к выполнению исходной программы
    Эти функции также называют последовательностью обработки любого запроса на прерывание.
    Временная диаграмма:
    Любой запрос на прерывание формируется по соответствующей причине. Обычно: IR [0:n] – регистр прерывания. От момента выработки запроса до момента прерывания существует некоторое время, время реакции системы прерывания. Любой запрос фиксируется в фиксированном бите слова регистра прерывания. Время реакции в общем случае не постоянно. Оно зависит не только от того, как выпускаются допустимые моменты прерывания, но и от того, Сколько программ с более высоким приоритетом, чем прерывание ждет своего обслуживание в очереди. В ЭВМ используются различные способы определения допустимого момента прерывания. Самый простой способ заключается в том, что в формате команды ЭВМ вводится специальный бит – признак разрешения прерывания. Таким образом программист, составляя программу, может управлять разрешением прерывания. Это позволяет минимизировать объем информации, который запасается при переходе к прерывающей программе, что уменьшает общее время обработки прерывания, но само время реакции оказывается достаточно большим. Более распространенный способ предполагает, что прерывание возможно после окончания любой текущей команды. Но в этом случае нужно сохранять содержание всех программно доступных регистров. Это уменьшает время реакции, но увеличивает накладные расходы. В этом случае время реакции системы прерывания не превышает длительности выполнения самой длинной команды. Существует еще третий вариант – для машин, работающих в реальном времени. В таких ЭВМ прерывание может допускаться на любом шаге выполнения команды. Это характерно для компьютеров, имеющих микропрограммный уровень. Время реакции сводится к длительности одного такта. Но объем запоминаемой информации требует значительных временных затрат.

    - 29 -
    Выбор запроса на обслуживание – вторая часть задачи. Запросы поступают в любой момент времени, следовательно, к моменту, когда может быть разрешено прерывание в регистре запроса может находится несколько запросов (по крайней мере два). Возникает задача выбора запроса на обслуживание. Любой запрос в компьютере снабжается своим приоритетом. Обычно в качестве приоритета берут 0,1,…n. Степень важности обработчика пропорционален номеру (0 – самый высокий приоритет). Порядок выбора запросов определяется дисциплинами обслуживания. По способу исполнения приоритетов различаются дисциплины с абсолютными и относительными приоритетами. Если к моменту разрешения прерывания выбранный запрос оказывается выше приоритета текущей программы, то возможно два варианта действия:
    1) текущая программа прерывается в тот момент, когда выбран приоритетный запрос
    (дисциплины с абсолютным приоритетом)
    2) текущая программа не прерывается, продолжается до момента естественного прерывания
    (дисциплины с относительным приоритетом)
    Независимо от вида приоритета в конкретной системе прерывания процедура обработки запроса может быть представлена:
    Функции могут реализовываться как программно, так и аппаратно. Программная реализация увеличивает время обслуживания прерывания. Максимальное время – выявление активного запроса в соответствии в соответствии с приоритетом нужно построить процедуру, которая должна из n запросов выявить приоритетный. Самый простой вариант анализа запросов – последовательный просмотр запросов слева направо (схема алгоритма – самостоятельно).
    Последовательный перебор характерен тем, что система прерывания имеет глубину прерывания 1 (прервать прерывающую программу нельзя). Результатом выявления активного запроса является формирование системного прерывания начального адреса прерывающей программы. В процессе работы ЭВМ важность выполняемых программ не является постоянной. Между различными прерывающими программами (запросами) не всегда можно установить фиксированное распространение приоритетов, следовательно, средства прерывания должны быть программно изменяемыми.
    Существует два способа программного управления приоритетами прерывающих программ:
    1) Любая текущая, выполняемая в данный момент программа, характеризуется некоторым кодом (приоритетом программы). В этом случае система прерывания после выявления активного запроса сравнивает приоритет этого запроса с порогом приоритета, выполняемой программы. Если приоритет выделенного запроса ниже приоритета программы, то ее прерывание не происходит, но поскольку приоритет программы устанавливается пользователем, то при этом, запросом при смене приоритета программы может быть прерывание. При этом аппаратных изменений никаких нет, все включается в процедуру выявления.
    2) Маскирование. В систему прерывание кроме индикатора (программно не доступен) вводится регистр маскирования, который доступен программно (т.е. можно загружать в
    0
    Индикатор прерывания n
    Проверка наличия запроса
    Разрешено?
    Запрещение прерывания
    Выявление акт. приор запроса
    Прерывающая программа
    Разрешение прерывания
    Возврат в прерывающую программу
    Есть
    Нет
    IR(0)
    IR(n
    ………………

    - 30 - него данные). Имеет аналогичную индикатору структуру. Любой запрос индикатора поставлен в соответствующий бит маски. Взаимодействие запросов прерывания и битов маскирования строятся по простой схеме:
    M [i] – маска
    IR [i]
    Если в бите маски 1, следовательно, соответствующее прерывание разрешено для обработки
    (для выявления), если 0, следовательно, соответствующее прерывание замаскировано (не разрешено). Изменяя маску, можем управлять приоритетом запросов на программном уровне. Схема взаимодействия
    Схема усложняется, если в качестве кода запроса на прерывание применяется позиционный код номера активного запроса. Эта процедура может реализовываться либо программно, либо аппаратно. Программная реализация резко увеличивает время обработки, в следствии чего, не применяется. Аппаратная реализация с точки зрения функционирования заключается в том, что схема решает уравнение:
    (& IR[i]M[j]) IR[i]M[i] = 1
    Поскольку маскирование отдано в руки пользователя, следовательно, могут возникать следующие ситуации при управлении масками:
    Пусть существует 4 уровня запроса
    3 2 1 0
    IR 0 0 0 0 0
    IR 1 0 0 0 1
    IR 2 0 0 1 1
    IR 3 0 1 1 1
    Если маски прерывания программистом фиксируются
    Другой вариант:
    3 2 1 0
    IR 0 0 1 0 0
    IR 1 0 0 0 1
    IR 2 0 0 1 0
    IR 3 0 1 1 1
    Поскольку запросу поступают асинхронно (не связаны с работой компьютера), то в некоторый момент времени в системе прерывания поступили 4 запроса.
    IR0 менее приоритетна чем IR2, переход к IR2 от IR2 переход к IR1 от IR1 переход к IR0 от
    IR0 переход к IR2, следовательно, зацикливание.
    Вход в прерывающую программу
    Основная функция – формирование начального адреса прерывающей программы. Любому запросу соответствует своя прерывающая программа. Существует три различных способа, используемых при формировании адреса:
    Выделение незамаскированного запроса старшего приоритета
    IR
    M
    ………………………
    Загрузка маски
    Разр. прер.
    Код приоритета запроса i-1 j=0
    Фактически управления нет
    Перераспределены приоритеты

    - 31 -
    1) Размещение прерывающих программ по фиксированным адресам. В некоторой постоянно распределенной области основной памяти по фиксированным адресам размещаются прерывающие программы, это размещение не меняется. Вход реализуется аппаратно, то есть адрес формируется аппаратно – это самый быстрый способ. Но у данного способа существуют серьезные ограничения: a) привязка к адресам b) количество причин прерывания должно быть достаточно малым
    Этот способ применяется при малых системах прерывания и для тех причин, которые требуют немедленной реакции.
    2) вход на основании слов состояния программы (PSW). Типичная структура слова состояния программы:
    Схема входа в прерывающую программу. В некоторую постоянно распределенной области основной памяти формируется два массива: массив старых PSW и массив новых
    PSW. Любая пара слов состояния соответствует определенному запросу на прерывание.
    После выполнения активного запроса по соответствующему адресу в массив старых
    PSW загружается PSW текущей (прерываемой) программы. Характеристика программы в виде PSW записывается по определенному адресу. Из второго массива загружается новое (соответствующее прерывающей программе) PSW. Адрес записан в памяти – из
    PSW. Массив новых PSW всегда формируется при загрузке ОС. Массив старых PSW формируется в процессе работы. В отличие от предыдущего способа, использование
    PSW позволяет обслуживать и вложенные прерывания, если их приоритет выше текущей программы. Все это позволяет прерывать прерывающую программу. Недостаток: Вход в прерывающую программу требует загрузки достаточно больших слов (большого процессорного времени), следовательно, данный способ не очень быстрый. Этот вариант используется в универсальных компьютерах (для решения расчетных задач, т.е. не критичных ко времени)
    3) Векторное прерывание – самый распространенный способ. Данный способ является программно-аппартным, т.е. для любого запроса (для любого выделенного запроса) аппаратно формируется адрес вектора прерывания. Чаще всего эти адреса фиксированы.
    Адреса векторных прерываний хранятся в системной области памяти. На основе адреса вектора из таблицы векторов прерывания извлекается начальный адрес прерывающей программы. Это приводит к тому, что код запроса может быть малобитным, но таблица векторов прерывания должна хранится в начальной области памяти. В качестве вектора прерывания используются: a) адрес начала прерывающей программы (применяется в PC) b) команда безусловного перехода к программе
    Способ a) оказывается универсальным и допускает любую глубину прерывающих программ. Если таблица векторов является загружаемой, то это дает возможность пользователю изменять прерывающие программы даже в процессе решения задачи, которые обрабатывают один и тот же запрос.
    Запоминание состояния прерванной программы.
    Вся запоминаемая информация делится на основную и дополнительную. Основная информация должна запоминаться всегда – адрес текущей программы, в которой произошло прерывание, состояние процессора, уровень приоритетности программы. Основная информация компонуется в слово-состояние. Основная информация запоминается аппаратно. Дополнительную информацию запоминает сам пользователь. При запоминании основной информации используются два способа:
    1) Использование PSW (запоминание старого PSW – основная информация).
    Маска прерывания Ключ защиты памяти Код состояния CPU Адрес команды (пр-мы)

    - 32 -
    2) Запоминание основной информации в системном стеке, который поддерживается ОС.
    Использование стековых структур при входе в прерывающую программу позволяет не ограничивать глубину вложения прерываний. Ограничения только в связи с размерами стека.
    Дополнительная информация с точки зрения объема различна. В каждом конкретном случае определяется самостоятельно – ресурсы процессора, которые используются при работе самой прерывающей программы.
    Восстановление состояния прерванной программы.
    Инвертирование тех действий, которые выполнены при запоминании.
    Возврат.
    Передача управления в ту точку, где произошло прерывание. Реализуется обычно аппаратно.
    Зависит от организации входа в прерывающую программу.
    Глава 4. Организация памяти ВС.
    Виды запоминающих устройств. Иерархия памяти.
    Память – совокупность отдельных устройств, которые запоминают, хранят, выдают информацию. Отдельные устройства памяти называют запоминающими устройствами.
    Производительность вычислительных систем в значительной мере определяется составом и характеристиками отдельных запоминающих устройств, которые различают по принципу действия, техническим характеристикам, назначениям. Основные операции с памятью – процедура записи, процедура чтения (выборки). Процедуры записи и чтения также называют обращением к памяти. За одно обращение к памяти «обрабатывается» для различных устройств различные единицы данных (байт, слово, двойное слово, блок).
    Основные технические характеристики памяти – емкость (Е), быстродействие (время обращения к запоминающему устройству).
    В некоторых запоминающих устройствах считывание данных сопровождается их разрушением. В этом случае цикл обращения к памяти всегда должен содержать регенерацию данных (ЗУ динамического типа). Этот цикл состоит из трех шагов:
    1) время от начала операции обращения до того момента, как данные станут доступны
    (время доступа)
    2) считывание
    3) регенерация
    Процедура записи:
    1) Время доступа
    2) Время подготовки (приведение в исходное состояние поверхности магнитного диска при записи)
    3) Запись
    Максимальная длительность чтения-записи называется временем обращения к памяти. По физическим основам все запоминающие устройства разделяются: полупроводниковые, магнитно-оптические и т.д.
    В зависимости от вида реализуемых операций память бывает двусторонней (память с любым обращением) и односторонней. Вторая сторона позволяет производить чтение-запись.
    Односторонняя память предназначена только для чтения или только для записи.
    По способу организации доступа к данным все ЗУ разделяются:
    1) ЗУ с произвольным доступом
    2) ЗУ с прямым или циклическим доступом
    3) ЗУ с последовательным доступом
    1   2   3   4   5


    написать администратору сайта