Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 курс (заочка) / Лекции / Презентация 04.ppt
Скачиваний:
1
Добавлен:
30.10.2024
Размер:
808.45 Кб
Скачать

Организация ввода-вывода

1

I/O

в/в

GP IO

 

Устройства

IC

 

DMA

Timers

CPU

RAM

Flash

EEPROM

•CPU (Central Processing Unit):

AMD80188-40MHz, ARM-11 – 300MHz

•RAM (Random Access

Memory): 64Kb – 10Mb

•Flash: 64Kb – 10Mb

•EEPROM (Electrical Erasable Programmable Read-Only Memory):

2 – 10Kb

•Timers –

Interval Timer

Watchdog Timer

Real-Time Clock

•GP I/O (General Purpose I/O)

•IC (Interrupt Controller)

•DMA (Direct Memory Access)

Ввод/вывод по готовности

2

GP I/O

1

 

 

Чтение Pi

2

 

 

P

CPU

 

 

 

 

 

n

 

 

Pi = 0

 

 

 

R

RAM

«Что-то»

Ввод (R)

GP I/O – General Purpose I/O

Ввод/вывод по прерыванию

3

IR

IC

CPU

RAM

R

An Ak

An

ISR

ISR– Interrupt Service Routine

1.Сигнал на входе IRk

2.Процессор оканчивает текущую команду и запоминает контекст

3.Interrupt Controller (IC) передает адрес вектора прерывания Ak

4.Управление передается программе P, адрес точки входа которой (An) хранится в векторе

5.Программа Р читает (записывает) содержимое регистра R

6.Восстановление контекста

Прерывание «Что-то»

ISR

«Что-то»

Возврат

Реализация процедуры прерывания

4

Программа

Событие

Адрес возврата

x:

 

 

Вектор

 

Системный стек

 

Регистр

 

 

 

 

 

 

прерывания i-го

 

 

 

указателя

 

 

x

 

 

 

 

стека (SP)

 

 

события

 

 

 

 

 

 

 

 

 

 

Адрес p

 

 

Контекст

 

 

 

 

 

 

 

 

 

 

 

«фоновой

 

 

 

 

 

 

 

 

 

 

 

 

Запоминание

 

программы»

 

 

контекста, передача

 

в точке x

 

 

управления по адресу

 

 

 

 

 

 

р

 

 

 

Процедура

 

 

 

 

p:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

обработки

 

 

 

 

 

 

 

 

 

прерывания:

 

 

 

 

 

 

 

return

 

 

 

 

 

 

 

 

примитив ОС

 

 

 

 

 

 

 

 

 

 

 

Восстановление

 

 

 

 

 

 

 

 

 

контекста, возврат из

return - инструкция возврата

 

 

прерывания

из процедуры обработки прерывания, автоматически восстанавливает контекст

Прямой доступ в память

5Идея DMA – временное разделение внутренней магистрали процессора между потоком команд и вводом/выводом данных в память

Цикл процессора – действие, которое необходимо выполнить

для передачи одного слова

t

Пример: Команда MOV AL, TOTAL – два цикла:

Считывание КОП

Считывание TOTAL в младшую часть регистра A

Команда процессора требует от 1 до 10 циклов

Процедура прямого доступа

6Предлагается – при использовании DMA каждый n-й цикл отдавать под ввод/вывод по прямому доступу

Циклы процессора

t

 

Цикл DMA

Циклы процессора

t

 

Программа работает без DMA

Запуск DMA

Работа с DMA

Без DMA

Прерывание

Окончание

работы DMA

Возврат

Организация канала прямого доступа

7

Данные

7

I/O

7

2 1

 

DMA

4

3

5

Controller

 

6

 

 

8 IC

CPU

RAM

D

1.Инициирование DMA – установка начального адреса, количества передаваемых слов

2.Запрос ввода/вывода (*)

3.Разрешение ввода/вывода (*)

4.Запрос цикла

5.Разрешение цикла

6.Адрес ввода/вывода

7.Ввод слова

8.Запрос на прерывание по окончанию ввода/вывода

(*)Установлены постоянно, пока идет обмен; снимаются по (8)

 

4. Таймеры

8

Интервальный таймер

а

Значение интервала, режим работы

Регистр управления

От генератора Импульсов

(1.1931816 МГц)

Счетчик

Регистр-защелка

б

в

Запрос на РП прерывание

Запрос текущего значения

Интервальный таймер, пример: i8254

9

Периодические запросы на прерывание

Однократные запросы на Прерывание

Генератор сигналов заданной длительности, скважности

Измерение временных интервалов между событиями

Счетчик событий, запрос на прерывание по заданному количеству событий

Watchdog

10

# define interval 100

clock

 

CPU

main ()

 

 

 

 

 

{

 

restart

 

while(true)

Watchdog

RAM

{

 

 

 

restartWD(interval);

 

reset

 

 

 

measure();

 

 

Flash

makeControlDecision();

 

 

output();

 

 

 

 

 

 

sleep(10); -- (Кстати, это нехорошо!)

 

 

 

}

 

 

 

}

http://www.netrino.com/Publications/Glossary/WatchdogTimer.html

Соседние файлы в папке Лекции