ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 632
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
АРХИТЕКТУРЫ, ХАРАКТЕРИСТИКИ, КЛАССИФИКАЦИЯ ЭВМ
3. ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ
4. ПРИНЦИПЫ ОРГАНИЗАЦИИ ПОДСИСТЕМЫ ПАМЯТИ ЭВМ И ВС
ОРГАНИЗАЦИЯ СИСТЕМНОГО ИНТЕРФЕЙСА И ВВОДА/ВЫВОДА ИНФОРМАЦИИ
МНОГОПРОЦЕССОРНЫЕ И МНОГОМАШИННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
и функциональных исполнительных устройств), может исполнять обе ветви программы линейно.
Формат команд IA-64 содержит 41 разряд и имеет фиксированную длину (рис. 2.27). Поле КОП занимает 14 разрядов, под адрес 64 преди- катных регистров (PR) отводится 6 разрядов, три 7-битных поля (GFR) используются для адресации 128 регистров общего назначения (GR) или регистров с плавающей точкой (FR).
Большинство целочисленных команд трехадресные, а их аргументы находятся в регистрах, однако встречается и литеральное (символьное) представление аргументов. Имеются также модификации команд add
и sub, которые являются четырехадресными: в них к сумме/разности ре- гистров прибавляется/вычитается 1.
Рис. 2.27. Формат инструкций IA-64
Команды в формате IA-64 упакованы по три в 128-битный LIW (long instruction word) – пакет (рис. 2.28).
Рис. 2.28. Пакет инструкций IA-64
В каждый пакет при трансляции компилятор помещает шаблон, ко- торый размещается в 5-битовом поле Т. Шаблон пакета указывает не только на то, какие команды в пакете могут выполняться независимо, но и какие команды из следующего пакета могут выполняться параллель- но. Команды в пакетах не обязательно должны быть расположены в том же порядке, что и в машинном коде, и могут принадлежать к различным путям ветвления. Компилятор может также помещать в один пакет за- висимые и независимые команды, поскольку возможность параллельно-
го выполнения определяется шаблоном пакета. В отличие от некоторых ранее существовавших архитектур со сверх длинными словами команд (VLIW) IA-64 не добавляет команд «нет операции» (NOPS) для допол- нения пакетов.
Во время выполнения ЭВМ текущей программы внутри машины и в связанной с ней внешней среде (технологический процесс, управля- емый ЭВМ) могут возникать события, требующие немедленной реакции на них со стороны машины.
Реакция состоит в том, что при поступлении сигнала на прерыва- ние выполнение текущей последовательности команд приостанавлива- ется и управление передается обработчику прерываний, который реаги- рует на события и обслуживает его, после чего возвращает управление в прерванный код программы.
Прерываемая программа
Рассматриваемый процесс, называемый прерыванием программ, поясняется на рис. 2.29.
Прерывающие программы
Рис. 2.29. Процесс прерывания программы
Обработчик прерываний – это программа обработки прерываний, являющаяся частью ОС, предназначенная для выполнения ответных действий на условие вызвавшее прерывание.
Прерывания, возникающие при работе вычислительной машины, можно разделить на несколько типов (рис.2.30).
Прерывания (IRQ)
Аппаратные
Программные
Внутренние
Внешние
Немаскируемые
Маскируемые
Рис. 2.30. Классификация типов прерываний
Аппаратные прерывания вызываются физическими устройства- ми и возникают по отношению к программе
асинхронно, т.е. в общем
случае невозможно предсказать, когда и по какой причине программа будет прервана.
Аппаратные прерывания не координируются с работой программ- ного обеспечения. Когда вызывается прерывание, то процессор преры- вает свою работу, выполняет прерывание, а затем возвращается на прежнее место.
Внешние прерывания возникают по сигналу какого-либо внешне- го устройства, например:
Внутренние прерывания вызываются событиями, которые связа- ны с работой процессора и являются синхронными с его операциями, а именно прерываение происходит:
при нарушении адресации (в адресной части выполняемой команды указан запрещенный или несуществующий адрес, обращение к отсут- ствующему сегменту или странице при организации механизмов вирту- альной памяти);
Запросы, возникающие в таких (исключительных) ситуациях, называются исключениями.
Исключения делятся на отказы и выходы из процесса, в зависи- мости от способа сообщения о них и возможности перезапуска процес- сора с вызвавшей их команды.
Отказы – это исключения, которые вы- являются и обслуживаются перед выполнением команды. Они могут иметь место в виртуальной системе памяти, когда процессор обращает- ся к несуществующим странице или сегменту. В процессе обработки та- кого исключения операционная система обращается к странице или сегменту на диске, а процессор перезапускает команду. Выход из про- цесса является исключением, которое не позволяет точно локализовать
причину, вызвавшую исключительную ситуацию. Выходы из процесса используются для сообщения о крупных ошибках, таких как неисправ- ности аппаратуры или ошибки в системных таблицах. Адресом возврата из процедуры обработки исключений всегда является команда, вызвав- шая исключение, возможны префиксы.
Программные прерывания не являются асинхронными. Про- граммы могут сами вызывать прерывания с заданным номером. Для этого они используют команду INT. По этой команде процессор осу- ществляет практически те же действия, что и при обычных прерывани- ях, но только это происходит в предсказуемой точке программы. Там, где программист поместил данную команду.
Программные прерывания в прямом смысле прерываниями не яв- ляются, поскольку представляют собой лишь специфический способ вызова процедур не по адресу, а номеру в таблице.
Механизм программных прерываний был специально введен для того, чтобы:
В дальнейшем обработку всех запросов, прерывающих ход выпол- нения текущей программы, будем называть просто прерываниями.
Программу, затребованную запросом прерывания, назовем преры- вающей программой, противопоставляя ее прерываемой программе, выполнявшейся в ЭВМ до появления запроса.
Для оценки эффективности систем прерывания могут быть исполь- зованы следующие характеристики:
Прерываемая программа
Запрос прерывания
Прерывающая программа
Время реакции
Запоминание состояния прерванной программы
Собственно прерывающ ая программа
Восстановлен ие состояния прерванной программы
Рис. 2.31. Упрощенная временная диаграмма процесса прерывания
Для одного и того же запроса задержки в исполнении прерываю- щей программы зависят от того, сколько программ со старшим приори- тетом ждут обслуживания, поэтому время реакции определяют для за- проса с наивысшим приоритетом (tP).
Время реакции зависит от того, в какой момент допустимо преры- вание. Большей частью прерывание допускается после окончания теку- щей команды. В этом случае время реакции определяется в основном длительностью выполнения команды.
Это время реакции может оказаться недопустимо большим для ЭВМ, предназначенных для работы в реальном масштабе времени. В таких машинах часто допускается прерывание после любого такта выполнения команды (микрокоманды). Однако при этом возрастает ко- личество информации, подлежащей запоминанию и восстановлению при переключении программ, т.к. в этом случае необходимо сохранять также и состояние счетчика тактов, регистра кода операции и некото- рых других узлов. Такая организация прерывания возможна только в машинах с быстродействующей сверхоперативной памятью.
Имеются ситуации, в которых желательно немедленное прерыва- ние. Если аппаратура контроля обнаружила ошибку, то целесообразно сразу же прервать операцию, пока ошибка не оказала влияние на сле- дующие такты работы программы.
Формат команд IA-64 содержит 41 разряд и имеет фиксированную длину (рис. 2.27). Поле КОП занимает 14 разрядов, под адрес 64 преди- катных регистров (PR) отводится 6 разрядов, три 7-битных поля (GFR) используются для адресации 128 регистров общего назначения (GR) или регистров с плавающей точкой (FR).
Большинство целочисленных команд трехадресные, а их аргументы находятся в регистрах, однако встречается и литеральное (символьное) представление аргументов. Имеются также модификации команд add
и sub, которые являются четырехадресными: в них к сумме/разности ре- гистров прибавляется/вычитается 1.
40 | 27 | 26 | 21 | 20 | 13 | 12 | 7 | 6 | 0 |
КОП | PR | GFR | GFR | GFR |
Рис. 2.27. Формат инструкций IA-64
Команды в формате IA-64 упакованы по три в 128-битный LIW (long instruction word) – пакет (рис. 2.28).
127 | 122 | | 40 | 0 |
Т | Инструкция 1 | Инструкция 2 | Инструкция 3 |
Рис. 2.28. Пакет инструкций IA-64
В каждый пакет при трансляции компилятор помещает шаблон, ко- торый размещается в 5-битовом поле Т. Шаблон пакета указывает не только на то, какие команды в пакете могут выполняться независимо, но и какие команды из следующего пакета могут выполняться параллель- но. Команды в пакетах не обязательно должны быть расположены в том же порядке, что и в машинном коде, и могут принадлежать к различным путям ветвления. Компилятор может также помещать в один пакет за- висимые и независимые команды, поскольку возможность параллельно-
го выполнения определяется шаблоном пакета. В отличие от некоторых ранее существовавших архитектур со сверх длинными словами команд (VLIW) IA-64 не добавляет команд «нет операции» (NOPS) для допол- нения пакетов.
-
Принципы организации системы прерывания программ
Во время выполнения ЭВМ текущей программы внутри машины и в связанной с ней внешней среде (технологический процесс, управля- емый ЭВМ) могут возникать события, требующие немедленной реакции на них со стороны машины.
Реакция состоит в том, что при поступлении сигнала на прерыва- ние выполнение текущей последовательности команд приостанавлива- ется и управление передается обработчику прерываний, который реаги- рует на события и обслуживает его, после чего возвращает управление в прерванный код программы.
Прерываемая программа
Рассматриваемый процесс, называемый прерыванием программ, поясняется на рис. 2.29.
Прерывающие программы
Рис. 2.29. Процесс прерывания программы
Обработчик прерываний – это программа обработки прерываний, являющаяся частью ОС, предназначенная для выполнения ответных действий на условие вызвавшее прерывание.
Типы прерываний
Прерывания, возникающие при работе вычислительной машины, можно разделить на несколько типов (рис.2.30).
Прерывания (IRQ)
Аппаратные
Программные
Внутренние
Внешние
Немаскируемые
Маскируемые
Рис. 2.30. Классификация типов прерываний
Аппаратные прерывания вызываются физическими устройства- ми и возникают по отношению к программе
асинхронно, т.е. в общем
случае невозможно предсказать, когда и по какой причине программа будет прервана.
Аппаратные прерывания не координируются с работой программ- ного обеспечения. Когда вызывается прерывание, то процессор преры- вает свою работу, выполняет прерывание, а затем возвращается на прежнее место.
Внешние прерывания возникают по сигналу какого-либо внешне- го устройства, например:
-
прерывание, которое информирует систему о том, что требуемый сек- тор диска уже прочитан, его содержимое доступно программе; -
прерывание, которое информирует ситему о том, что завершилась пе- чать символа на принтере и необходимо выдать следующий символ; -
прерывания по нарушению питания; -
нормальное завершение некоторой операции ввода-вывода (нажатие клавиши на клавиатуре); -
прерывание по таймеру.
Внутренние прерывания вызываются событиями, которые связа- ны с работой процессора и являются синхронными с его операциями, а именно прерываение происходит:
при нарушении адресации (в адресной части выполняемой команды указан запрещенный или несуществующий адрес, обращение к отсут- ствующему сегменту или странице при организации механизмов вирту- альной памяти);
-
при наличии в поле кода незадействованной двоичной комбинации; -
при делении на ноль; -
при переполнении или исчезновении порядка; -
при обнаружении ошибок четности, ошибок в работе различных ут- сройство аппаратуры срдствами контроля.
Запросы, возникающие в таких (исключительных) ситуациях, называются исключениями.
Исключения делятся на отказы и выходы из процесса, в зависи- мости от способа сообщения о них и возможности перезапуска процес- сора с вызвавшей их команды.
Отказы – это исключения, которые вы- являются и обслуживаются перед выполнением команды. Они могут иметь место в виртуальной системе памяти, когда процессор обращает- ся к несуществующим странице или сегменту. В процессе обработки та- кого исключения операционная система обращается к странице или сегменту на диске, а процессор перезапускает команду. Выход из про- цесса является исключением, которое не позволяет точно локализовать
причину, вызвавшую исключительную ситуацию. Выходы из процесса используются для сообщения о крупных ошибках, таких как неисправ- ности аппаратуры или ошибки в системных таблицах. Адресом возврата из процедуры обработки исключений всегда является команда, вызвав- шая исключение, возможны префиксы.
Программные прерывания не являются асинхронными. Про- граммы могут сами вызывать прерывания с заданным номером. Для этого они используют команду INT. По этой команде процессор осу- ществляет практически те же действия, что и при обычных прерывани- ях, но только это происходит в предсказуемой точке программы. Там, где программист поместил данную команду.
Программные прерывания в прямом смысле прерываниями не яв- ляются, поскольку представляют собой лишь специфический способ вызова процедур не по адресу, а номеру в таблице.
Механизм программных прерываний был специально введен для того, чтобы:
-
переключение на системные программные модули происходило не просто как переход в подпрограмму, а точно таким же образом, как и обычные прерывания. Этим обеспечивается автоматическое пере- ключение процессора в привилегированный режим с возможностью исполнения любых коман; -
использование программных прерываний приводит к более компакт- ному коду программ по сравнению с использованием стандартных команд выполнения процедур.
В дальнейшем обработку всех запросов, прерывающих ход выпол- нения текущей программы, будем называть просто прерываниями.
Программу, затребованную запросом прерывания, назовем преры- вающей программой, противопоставляя ее прерываемой программе, выполнявшейся в ЭВМ до появления запроса.
Характеристики системы прерывания
Для оценки эффективности систем прерывания могут быть исполь- зованы следующие характеристики:
-
Общее число запросов прерывания (входов в систему преры- вания). -
Время реакции – время между появлением запроса прерывания и моментом прерывания текущей программы. На рис. 2.31 приведена упрощенная временная диаграмма процесса прерывания.
Прерываемая программа
Запрос прерывания
Прерывающая программа
Время реакции
Запоминание состояния прерванной программы
Собственно прерывающ ая программа
Восстановлен ие состояния прерванной программы
Рис. 2.31. Упрощенная временная диаграмма процесса прерывания
Для одного и того же запроса задержки в исполнении прерываю- щей программы зависят от того, сколько программ со старшим приори- тетом ждут обслуживания, поэтому время реакции определяют для за- проса с наивысшим приоритетом (tP).
Время реакции зависит от того, в какой момент допустимо преры- вание. Большей частью прерывание допускается после окончания теку- щей команды. В этом случае время реакции определяется в основном длительностью выполнения команды.
Это время реакции может оказаться недопустимо большим для ЭВМ, предназначенных для работы в реальном масштабе времени. В таких машинах часто допускается прерывание после любого такта выполнения команды (микрокоманды). Однако при этом возрастает ко- личество информации, подлежащей запоминанию и восстановлению при переключении программ, т.к. в этом случае необходимо сохранять также и состояние счетчика тактов, регистра кода операции и некото- рых других узлов. Такая организация прерывания возможна только в машинах с быстродействующей сверхоперативной памятью.
Имеются ситуации, в которых желательно немедленное прерыва- ние. Если аппаратура контроля обнаружила ошибку, то целесообразно сразу же прервать операцию, пока ошибка не оказала влияние на сле- дующие такты работы программы.
-
Затраты времени на переключение программ (издержки пре- рывания) равны суммарному расходу времени на запоминание и восста- новление состояния программы (рис. 2.31):