Встроенные Системы

Содержание

Слайд 2

Внешние события

Окружение ВС, как и сама система, вызывают события, на которые надо

Внешние события Окружение ВС, как и сама система, вызывают события, на которые
реагировать:
Истек промежуток времени
Обнаружено нажатие клавиши
Произошло изменение состояния датчика
Внешнее устройство готово передать данные.
Многие другие.

Слайд 3

Как обнаружить событие?

Опрос: время от времени проверять, не наступило ли событие.
Хорошо: детерминизм
Плохо:

Как обнаружить событие? Опрос: время от времени проверять, не наступило ли событие.
большие накладные расходы и время реакции.
Прерывание: при наступлении события процессор передает управление программе обработки.

Слайд 4

Прерывание

Прерывание (interrupt) – это асинхронное событие, приостанавливающее поток вычислений, производимых процессором, и

Прерывание Прерывание (interrupt) – это асинхронное событие, приостанавливающее поток вычислений, производимых процессором,
передающее управление обработчику прерываний.
Обычно, обработчик прерывания обеспечивает восстановление контекста вычислений после обработки прерывания.

Обработчик прерывания

Основная программа

Слайд 5

Что делает процессор?

Передача управления может произойти только если обработка прерываний разрешена.
Процессор сохраняет

Что делает процессор? Передача управления может произойти только если обработка прерываний разрешена.
минимально необходимый контекст (обычно, адрес возврата и регистр состояния процессора на момент прерывания).
Процессор начинает выполнять команды обработчика прерываний.

Слайд 6

Что делает программа-обработчик?

Обработчик (handler) полностью сохраняет контекст (регистры и состояние процессора) для

Что делает программа-обработчик? Обработчик (handler) полностью сохраняет контекст (регистры и состояние процессора)
последующего возобновления.
Если надо, производится создание контекста для вызова кода на ЯВУ.
После завершения обработки, сохраненный контекст восстанавливается, и продолжается выполнение прерванной программы.

Слайд 7

Зачем запрещают прерывания?

Обработчик прерываний и программа могут разделять общие данные – необходимо

Зачем запрещают прерывания? Обработчик прерываний и программа могут разделять общие данные –
поддерживать их целостность.
Обработчик прерывания может привести к смене потока выполнения: необходимо поддерживать целостность данных, разделяемых такими потоками.

Слайд 8

Особенности архитектуры: куда передается управление?

По адресу из таблицы – вектора прерываний
По фиксированному

Особенности архитектуры: куда передается управление? По адресу из таблицы – вектора прерываний
адресу (по нескольким фиксированным адресам в зависимости от типа прерывания)
По фиксированному смещению относительно значения регистра VBR

Слайд 9

Контроллер Прерываний

Процессорное ядро обычно поддерживает от одного до семи запросов прерываний. Количество

Контроллер Прерываний Процессорное ядро обычно поддерживает от одного до семи запросов прерываний.
источников асинхронных событий – много больше.
Контроллер прерываний (Interrupt Controller) – устройство, отслеживающее возникновение событий, определяющее порядок и время их обработки.

Слайд 10

Контроллер прерываний (прод.)

CPU

Int
Ctrl

.
.
.

Int
Ctrl

.
.
.

Запрос прерывания

Уровень 1

Уровень 2
(каскадированный)

Контроллер прерываний (прод.) CPU Int Ctrl . . . Int Ctrl .

Слайд 11

Контроллер прерываний (прод.)

Функции контроллера прерываний:
Маскирование каждого источника по отдельности
Вычисление номера источника прерывания,

Контроллер прерываний (прод.) Функции контроллера прерываний: Маскирование каждого источника по отдельности Вычисление
который должен быть обработан в данный момент с учетом приоритета источника.
Вычисление множества запросов, ожидающих обработки.

Слайд 12

Уровень прерывания

Процессор (или контроллер прерываний) может определять текущий уровень прерываний процессора.
Если в

Уровень прерывания Процессор (или контроллер прерываний) может определять текущий уровень прерываний процессора.
некоторый момент процессор имеет уровень N, то его работа может быть прерван запросом уровня выше N.
Обычно, при возникновении прерывания уровня N уровень процессора устанавливается в N.

Слайд 13

Запрос прерывания

Устройство сообщает контроллеру прерывания о наступлении события изменяя логический уровень сигнала

Запрос прерывания Устройство сообщает контроллеру прерывания о наступлении события изменяя логический уровень
запроса прерывания.
Событие наступает, когда:
Уровень сигнала высокий (active high)
Уровень сигнала низкий (active low)
Уровень переходит с низкого на высокий (front edge)
Уровень переходит с высокого на низкий (rear edge)

Слайд 14

Латентность прерываний

Латентность прерывания (interrupt latency) – время между наступлением события и моментом

Латентность прерываний Латентность прерывания (interrupt latency) – время между наступлением события и
его обработки.
Латентность складывается из:
Задержек контроллера прерывания и процессора
Временем, в течении которого программа выполняется с запрещением обработки прерываний
Временем работы обработчиков прерываний более высокого уровня.
Накладными расходами на обработку прерывания (сохранение/восстановление контекста)
Имя файла: Встроенные-Системы.pptx
Количество просмотров: 114
Количество скачиваний: 0