Файл: Процессор персонального компьютера. Назначение, функции, классификация процессора (История развития).pdf
Добавлен: 31.03.2023
Просмотров: 145
Скачиваний: 1
3. Обработка и основные виды прерываний
Прерывание – сигнал от программного или аппаратного обеспечения процессору о наступлении высокоприоритетного события, требующего прерывания выполняемого кода процессором в текущий момент. Ответ на это – приостановка активности процессором, при этом он сохраняет текущее состояние и выполняет функцию, называемую обработчиком прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код. Прерывание является принудительной сменой управления от выполняемой программы к системе.
Цель введения прерываний заключается в установлении асинхронного режима работы и реализации параллельной работы отдельных устройств ЭВМ.
Для реализации механизм прерываний должен поддерживаться аппаратными средствами компьютера и программными средствами операционной системы. Для упорядочивания процессов обработки прерываний источники прерываний делятся по приоритетным уровням. Для сигнала прерывания нужна шина. [5, с. 225]
В процессорах второго поколения были добавлены новые команды и была реализована система прерывания. В первую очередь они служили программными устройствами управления объектами. Причиной их возникновения послужило несколько факторов: во-первых, разработчики стремились свести бездействие машины при возникновении внештатных ситуаций в процессоре к минимуму. Во-вторых, разработчиков интересовала загрузка процессора полезной для него работой, т.е. намерение добавить фоновую работу.
В зависимости от источника возникновения сигнала прерывания делятся на:
- асинхронные, или внешние (аппаратные) — события, которые исходят от внешних аппаратных устройств (например, периферийных устройств) и могут произойти в любой произвольный момент:
− сигнал от таймера;
− сигнал сетевой карты дискового накопителя;
− нажатие клавиш клавиатуры;
− движение мыши.
Факт возникновения в системе такого прерывания трактуется как запрос на прерывание - устройства сообщают, что они требуют внимания со стороны ОС;
- синхронные, или внутренние — события, возникающие в процессоре как результат нарушения различных условий при исполнении машинного кода:
− деление на ноль;
− переполнение стека;
− обращение к недопустимым адресам памяти;
− недопустимый код операции.
- программные — инициируются исполнением специальной инструкции в коде программы. Программные прерывания, как правило, используются для:
− обращения к функциям встроенного программного обеспечения;
− драйверам;
− операционной системе.
Существует определенная команда прерывания, по которой они происходят, при этом микропроцессор производит те же действия, что и при обычных внутренних прерываниях. Механизм функционирует с тем, чтобы переключение на системные программные модули происходило не как переход в подпрограмму, а как обыденное прерывание. Благодаря этому происходит автоматическое переключение микропроцессора с возможностью выполнения всех команд.
Прерывания, происходящие в процессоре, вызваны сигналами, которые сформированы либо внутри самого процессора, либо вне его. Иногда они возникают одновременно, и выбор одного из сигналов осуществляется с опорой на приоритеты, установленных для каждого из них. Очевидно, что прерывания, исходящие от схем контроля процессора, будут иметь наивысший приоритет. Программно-аппаратное управление порядком обработки сигналов прерывания позволяет применять различные дисциплины обслуживания прерываний.
Обычно приоритеты обслуживаются как:
− относительные. Такое обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то это прерывание будет обработано только после завершения текущей процедуры обработки прерывания.
− абсолютные. Это обслуживание прерываний подразумевает, что если во время обработки прерывания поступает более приоритетное прерывание, то текущая процедура обработки прерывания вытесняется, и процессор начинает выполнять обработку вновь поступившего более приоритетного прерывания. После завершения этой процедуры процессор возвращается к выполнению вытесненной процедуры обработки прерывания.
− по принципу стека. Запросы с более низким приоритетом могут нарушить обработку прерывания с более высоким приоритетом.
Кроме этого, процессор может иметь средства защиты от прерываний, к ним относятся:
− отключение системы прерываний;
− маскирование (запрет) некоторых типов прерываний.
В свою очередь ОС следит за ходом выполнения задач и управляет:
− предоставлением ресурсов;
− реакцией на прерывания;
− динамикой выполнения задач;
− организацией обмена информацией.
Причины, по которым возникают прерывания в ОС, определяет супервизор прерываний, он осуществляет действия, которые важны при каком-либо прерывании и в конкретный момент времени.
Он выполняет такие функции:
− сохраняет в дескрипторе текущей задачи рабочие регистры процессора, определяющие суть прерванной задачи;
− определяет программу, обслуживающую текущий запрос на прерывание;
− устанавливает необходимый режим обработки пребывания;
− передает управление подпрограмме обработки прерывания.
Наконец, уже диспетчер задач, в соответствии с принятым режимом распределения процессорного времени восстановит контекст той задачи, которой будет решено выделить процессор.
Для прямого возврата достаточно сохранить адрес в стеке, что и делает аппаратура процессора. При этом стек обеспечивает возможность возврата в случае вложенных прерываний.
Впрочем, если бы контекст сохранялся просто в стеке, а не в дескрипторах задач, то возможность подходить к выбору той задачи, которой нужно передать процессор после завершения работы подпрограммы обработки прерывания отсутствовала бы. Очевидно, что это является общим принципом, ведь в конкретных процессорах и в конкретных ОС могут существовать некоторые отступления от рассмотренной схемы.
4. Архитектура и назначение процессора
Изначально улучшение процессоров было ориентировано на то, чтобы создать наиболее функциональный PC, который позволил бы выполнять много различных инструкций. Это было выгодно, но и к тому же их использование зачастую позволяло сильно сократить размер написанной на ассемблере программы. Уменьшение инструкций способствовало тому, что можно было тратить значительно меньше времени на исполнение программы.
Существуют процессоры различных архитектур, в соответствии с составом системы команд различают:
− CISC (англ. Complex Instruction Set Computing – компьютер с полным набором команд). У данной концепции проектирования процессоров существует ряд характеристик, к ним относятся:
− большое количество разных команд, которые различаются как по длине, так и формату;
− разнообразные режимы адресации;
− сложная кодировка инструкций.
Такой процессор работает со сложными инструкциями разной длины. Выполнение одиночной инструкции может осуществляться быстро, но обработать множество инструкций в одно время сложнее. Основной недостаток CISC-архитектуры в сравнении с RISC — более сложный подход к распараллеливанию вычислений.
Для повышения быстродействия обычно увеличивают тактовую частоту и степень интеграции, это вызывает необходимость совершенствования технологии, что в свою очередь влечет более дорогое производство.
− RISC (Reduced Instruction Set Computing − компьютер с набором коротких (быстрых) команд). В таком процессоре система команд достаточно проста, в ней все команды одинакового формата, у них несложная кодировка. Команда, которая поступает в CPU, уже разделена по полям и не нуждается повторной дешифрации. Первые RISC-процессоры не имели инструкций умножения и деления.
Дополнительные компоненты имеют возможность включаться, т.к. кристалл освобождается для этого. Снизить тактовую частоту можно, если высоко быстродействие, при этом команда становится дешевле и не загромождает ОЗУ. Программной совместимостью указанные архитектуры не обладают. Отладка программ на RISC более сложна.
В связи с тем, что такие инструкции просты, для их выполнения нужно меньше логических элементов, это снижает стоимость процессора. Но большая часть программного обеспечения написана для CISC-процессоров. Для использования архитектуры RISC нынешние программы должны быть перекомпилированы.
− MISC (Multipurpose lnstruction Set Computer). Здесь база состоит из двух частей, они могут быть объединены, либо находиться в разных корпусах. Основная часть – RISC CPU, при подключении еще одной части – ПЗУ система приобретает свойства CISC. Эти две части дополняют друг друга и поскольку микропрограмма уже дешифрована, то времени выборки из ОЗУ на нее не требуется.
Одним из факторов, повышающих производительность процессора, является наличие кэш-памяти и ее объем, скорость доступа и распределение по уровням. L1, L2 и L3.
Кэш-память – сверхбыстрая память, используемая процессором, для временного хранения наиболее часто используемых данных, построена на триггерах, которые, состоят из транзисторов. Группа транзисторов занимает гораздо больше места, нежели те же самые конденсаторы, из которых состоит оперативная память. Это тянет за собой множество трудностей в производстве, а также ограничения в объёмах.
Отсюда высокая стоимость кэш памяти, несмотря на ее малый объем, она является очень дорогой, но из этого следует основное преимущество такой памяти – скорость. Так как триггеры не нуждаются в регенерации, а время задержки вентиля, на которых они собраны, невелико, то время переключения триггера из одного состояния в другое происходит очень быстро. Это и позволяет кэш-памяти работать на таких же частотах, что и современные процессоры. [2, с. 46]
Размещена кэш-память на самом кристалле процессора, что значительно уменьшает время доступа к ней. Ранее, она размещалась за пределами кристалла, на специальной микросхеме SRAM где-то на материнской плате.
Главное назначение кэш-памяти – хранение данных, которые часто используются процессором. Кэш является буфером, в который загружаются данные, и, несмотря на его небольшой объём, он дает значительный прирост производительности.
Если есть какие-то данные в кэш-памяти, к которым вероятнее всего последует повторное обращение, то эти данные из оперативной памяти, подгружаются в кэш-память. Очень часто это происходит с совместной загрузкой тех данных, которые вероятнее всего, будут использоваться после текущих.
Современные процессоры персональных компьютеров, оснащены кэшем, который состоит чаще всего из двух или трех уровней. Существуют такие уровни: L1 (первый уровень), L2 (второй уровень), L3 (третий уровень).
L1 Cache (кэш память первого уровня) – это самый быстрый тип кэша в процессоре, который содержит данные наиболее часто используемые процессором и работает без задержек. Обычно количество микросхем памяти уровня L1 равно количеству ядер процессора, при этом каждое ядро получает доступ только к своей микросхеме L1. Его объем несколько десятков килобайт.
L2 Cache (кэш память второго уровня) – медленнее, по сравнению с L1, но больше по размеру. Его объем может быть от 256 килобайт до восьми мегабайт. В большинстве современных процессоров кэш L1 и L2 присутствуют на самих ядрах процессора.
L3 Cache (кэш память третьего уровня) – самый большой и самый медленный кэш, но выше скорости оперативной памяти. Его объем может быть от 4 до 50 мегабайт. В современных CPU на кристалле выделяется отдельное место под кэш L3, .
Рисунок 3 Многоуровневый кэш настольного процессора[6]
Главным препятствием высокой скорости выполнения команд является необходимость их загрузки из оперативной памяти, решением этой проблемы стала концепция конвейера — способ организации вычислений, используемый в процессорах и контроллерах с целью ускорения выполнения инструкций и повышения тем самым производительности.
Суть состоит в одновременном выполнении нескольких инструкций процессора. Сложные инструкции процессора представляются в виде последовательности более простых стадий. Вместо выполнения инструкций последовательно, следующая инструкция может выполняться через несколько стадий выполнения после первой инструкции. Это позволяет управляющим цепям процессора получать инструкции со скоростью самой медленной стадии обработки, однако при этом намного быстрее, чем при выполнении эксклюзивной полной обработки каждой инструкции от начала до конца.