2011. Машбук (1114722), страница 13
Текст из файла (страница 13)
Во-вторых, существенно увеличивается скорость доступа кпамяти в случае использования ОЗУ с «расслоением», так как обмены блоков с памятьюбудут проходить практически параллельно (когда мы работаем с группой подряд идущихслов).41Естественно, при использовании КЭШ-памяти возникают и некоторые проблемы.Во-первых, усложнение логики процессора. Организация и использование КЭШ-памяти впроцессоре развивает рабочий цикл процессора модельного компьютера, рассмотренныйвыше: при выборке очередных команд, получении операндов команд и записи результатоввыполнения команд в ОЗУ добавляются схемы организации использования КЭШ-памяти.Во-вторых, если КЭШ один (т.е.
потоки команд и данных приходятся на один КЭШ), тоодин из потоков может начать «довлеть» над другим, так как характеристики потоковкоманд и данных разные (поток команд обладает свойством локализации, поток данныхэтим свойством не обладает). Поэтому получили распространение архитектуры, в которыхКЭШ разделяется на КЭШ команд и КЭШ данных. Это также позволяет повыситьпроизводительность системы.Кэширование памяти в современных вычислительных системах применяется нетолько для оптимизации взаимодействия центрального процессора и оперативной памяти.В настоящем пункте мы рассмотрели модельный аппарат КЭШ как компонентпроцессора — это т.н. КЭШ первого уровня.
Современные компьютеры могут включатьв свой состав иерархию устройств, кэширующих более медленные устройства храненияданных. Рассмотрению этого вопроса будет посвящен отдельный раздел.1.2.3.4 Аппарат прерыванийЕсли мы обратим внимание на представленный выше рабочий цикл процессора, тоувидим, что такая схема не предусматривает возможности обработки ошибочныхситуаций, которые могут возникнуть в системе в ходе выполнения программы. Что будетс компьютером, если в программе, которую он выполняет, встретится команда с кодомоперации, обработка которого не предусмотрена аппаратурой? Что будет, есливыполняется корректная команда, но значения операндов приводят к невозможностивыполнения соответствующей команде операции, например, деление на ноль? Что будет,если при программном обращении к внешнему устройству оно сломалось? В первыхкомпьютерах происходила остановка работы всего компьютера и обработка ситуации,вызвавшей аварийную остановку (АВОСТ).
Современные вычислительные системы немогут позволить себе остановку работы всей системы из-за возникновения тех или иныхпроблем в программе или в компонентах компьютера. Для решения проблемавтоматизации обработки предопределённых событий, возникающих в вычислительнойсистеме, в современных компьютерах предусмотрены соответствующие аппаратнопрограммные средства – т.н. аппарат прерываний.Прерыванием называется событие в компьютере, при возникновении которого всистеме предусмотрена предопределенная последовательность действий, включающаястандартную реакцию процессора на прерывание и этап программной обработкипрерываний (функция ОС).
Состав прерываний — множество разновидностей событий, навозникновение которых предусмотрена стандартная реакция центрального процессора, —фиксирован и определяется конструктивно при разработке компьютера. Аппаратпрерываний компьютера позволяет организовывать стандартную обработку прерываний,возникающих при функционировании вычислительной системы. Традиционнопрерывания разделяются на два типа: внутренние прерывания и внешние прерывания.Внутренние прерывания инициируются схемами контроля работы процессора. Кпримеру, внутреннее прерывание может возникнуть в процессоре при попыткевыполнения команды деления, операнд-делитель которой равен нулю. Также внутреннеепрерывание возникнет в ситуации, когда при обработке очередной команды адрес одногоиз операндов выходит за пределы адресного пространства оперативной памяти.Внешние прерывания — события, возникающие в компьютере в результатевзаимодействия центрального процессора с внешними устройствами.
Примером внешнегопрерывания может служить событие, связанное с вводом символа с клавиатурыперсонального компьютера.42Обработка прерывания предполагает две стадии: аппаратную, которая включаетпредопределённую реакцию процессора на возникновение прерывания, и программную,которая предполагает выполнение специальной программы обработки прерывания,являющейся частью операционной системы.прерываниеЗавершение текущей командыБлокировка прерываний.Сохранение актуальногосостояния процессораЭтапы аппаратнойобработки прерывания«Что», «как» и «куда»зависит от конкретнойархитектурыПрограммный этап обработки прерыванияРис. 29.
Схема обработки прерывания.Рассмотрим обобщенную модель последовательности действий, происходящих вВС при возникновении прерывания (Рис. 29). Сначала рассмотрим этап аппаратнойобработки прерывания.1.Завершается выполнение текущей команды (за исключением случаев, когдапрерывание возникает по причине некорректного выполнения команды).2.Обработка прерывания предполагает остановку выполнения текущейпрограммы, запуск специальной программы обработки прерывания, а затем, возможно,продолжение выполнения прерванной программы (с прерванного места).
Для обеспеченияэтой возможности необходимо зафиксировать актуальное состояние компьютера в моментприхода прерывания (т.к. для обработки прерывания будет работать другая программа –ОС, а, следовательно, актуальное состояние системы изменится). Поэтому аппаратныйэтап обработки прерываний регламентирует перечень регистров, которые автоматическибудут сохранены процессором. Это специальные регистры, содержимое которыхописывает состояние процессора в точке прерывания выполнения программы (счетчиккоманд, регистр результатов, регистры, содержащие режимы работы процессора), а такженесколько регистров общего назначения, которые могут быть использованы программойобработки прерываний в начальный момент времени. Процедура аппаратного сохранениярегистров в различных компьютерах может происходить по-разному.
Простейшая модельследующая. Важно отметить, что буфер для сохранения актуального состояния в системеодин, поэтому, если пришло прерывание и система что-то положила в буфер, нужновременно запретить запись информации относительно нового прерывания в этот буфер.Поэтому включается режим блокировки прерываний. При этом режиме в системезапрещается инициализация новых прерываний: возникающие в это время прерываниямогут либо игнорироваться, либо откладываться (зависит от конкретной аппаратурыкомпьютера и типа прерывания).3.Аппаратное копирование содержимого сохраняемых регистров («малоеупрятывание»).
Включенный режим блокировки прерывания гарантирует сохранностьэтих данных до момента завершения предварительной обработки прерывания ивыключения блокировки прерываний.434.Переход на программный этап обработки прерываний. Аппаратно передаёмуправление на некоторую фиксированную точку в ОЗУ, в которой предполагаетсяналичие программы обработки прерываний операционной системы. Для перехода напрограммный этап обработки прерываний необходимо решить вопрос, как аппаратурапередаст операционной системе информацию о том, прерывание какого типа произошло.Существует несколько моделей аппаратного решения этого вопроса.Первая модель — использование специального регистра прерываний, каждыйразряд которого соответствует конкретному типу прерывания, т.е.
если, к примеру, вразряде, соответствующем прерыванию от клавиатуры появляется единица, это означает,что произошло соответствующее прерывание. Для расширения числа обрабатываемыхпрерываний возможно использование иерархической модели регистров прерывания(Рис. 30). Она предполагает, что имеется главный регистр прерывания ипериферийные. В главном регистре прерывания выделяются разряды, отвечающие нетолько за появление конкретных прерываний, но и разряды, отвечающие за появлениепрерываний в периферийных регистрах.
В данной модели управление передается воперационную систему на адрес входа в программу.№ ПрерыванияПериферийные0 1 2 3 4 5 ..регистры0 1 0 0 1 00 0 0Главный регистрпрерываний00 1 0Произошло прерывание №1ОС передается адрес входа всоответствующую программу0Обработка прерыванияпериферийного устройстваРис. 30.
Иерархическая модель регистров прерываний.Вторая модель — использование вектора прерываний. Предполагается, что поколичеству возможных прерываний в ОЗУ выделена группа машинных слов — векторпрерываний. Каждое слово вектора прерываний содержит адрес программы,обрабатывающей данное прерывание (Рис. 31).