1. Организация ЭВМ и систем
Тема: Способы обмена информацией
• Обмен с прерываниями
• Структура контроллера прерывания
• Каскадирование контроллеров
• Режимы работы контроллера прерываний
• Обмен в режиме прямого доступа к памяти
• Структура контроллера прямого доступа к
памяти
2. Система прерыванийСистема прерываний PC ATPC AT
Прерывания и исключения – это события,Прерывания и исключения – это события,
указывающие на возникновении в системе или вуказывающие на возникновении в системе или в
выполняемой в данный момент задаче определенныхвыполняемой в данный момент задаче определенных
условий, требующих вмешательства процессора.условий, требующих вмешательства процессора.
Возникновение таких событий вынуждает процессорВозникновение таких событий вынуждает процессор
прервать выполнение текущей задачи и передатьпрервать выполнение текущей задачи и передать
управление специальной процедуре или задаче,управление специальной процедуре или задаче,
называемой обработчиком прерывания илиназываемой обработчиком прерывания или
обработчиком исключения.обработчиком исключения. Различные синхронные иРазличные синхронные и
асинхронные события в системе на основе ЦПасинхронные события в системе на основе ЦП IAIA-32 можно-32 можно
классифицировать следующим образом:классифицировать следующим образом:
3. Система прерыванийСистема прерываний PC ATPC AT
Система прерываний PC AT
Аппаратные
прерывания
Программные
прерывания
Исключительные
ситуации
Маскируемые
Немаскируемые
Ошибки
Ловушки
Аварийные
завершения
DOSDOS
прерыванияпрерывания
Пользовательские
прерывания
BIOS –
прерывания
DSR ISR
4. Внешние прерывания генерируются по аппаратномуВнешние прерывания генерируются по аппаратному
сигналу, поступающему от периферийного оборудования,сигналу, поступающему от периферийного оборудования,
когда оно требует обслуживания.когда оно требует обслуживания. Процессор определяетПроцессор определяет
необходимость обработки внешнего прерывания понеобходимость обработки внешнего прерывания по
наличию сигнала на одном из контактов INTR# или NMI#.наличию сигнала на одном из контактов INTR# или NMI#.
При появлении сигнала на линии INTR# внешнийПри появлении сигнала на линии INTR# внешний
контроллер прерываний (например, 8259A) долженконтроллер прерываний (например, 8259A) должен
предоставить процессору вектор (номер) прерывания. Спредоставить процессору вектор (номер) прерывания. С
линией NMI# всегда связано прерывание #2.линией NMI# всегда связано прерывание #2.
Прерывания, которые генерируются приПрерывания, которые генерируются при
поступлении сигнала на вход INTR#,поступлении сигнала на вход INTR#, называютназывают
маскируемыми аппаратными прерываниями.маскируемыми аппаратными прерываниями. Бит IF вБит IF в
регистре флагов позволяет заблокироватьрегистре флагов позволяет заблокировать
(замаскировать) обработку таких прерываний(замаскировать) обработку таких прерываний..
Прерывания, генерируемые сигналом NMI#,Прерывания, генерируемые сигналом NMI#,
называют немаскируемыми аппаратныминазывают немаскируемыми аппаратными
прерываниями.прерываниями. Немаскируемые прерывания неНемаскируемые прерывания не
блокируютсяблокируются флагом IF.флагом IF.
8. С помощью инструкции INT n (n номерС помощью инструкции INT n (n номер
прерывания) можно сгенерировать прерывание спрерывания) можно сгенерировать прерывание с
любым номером 0...255любым номером 0...255. Такие прерывания называют. Такие прерывания называют
программными. Состояние бита IF в регистре флагов непрограммными. Состояние бита IF в регистре флагов не
влияет на возможность генерации программныхвлияет на возможность генерации программных
прерываний.прерываний.
Роль DOSпрерыванийРоль DOSпрерываний заключается взаключается в обеспеченииобеспечении
доступа пользовательских программ к системнымдоступа пользовательских программ к системным
ресурсамресурсам (например, INT $21 – сервисы DOS).(например, INT $21 – сервисы DOS).
Пользовательские прерывания нужны пользователюПользовательские прерывания нужны пользователю
для создания собственных обработчиков прерываний и недля создания собственных обработчиков прерываний и не
используют вектора прерываний DOS.используют вектора прерываний DOS.
Главное назначение BIOSпрерываний –Главное назначение BIOSпрерываний –
обеспечение корректногообеспечение корректного (с точки зрения совместимости)(с точки зрения совместимости)
доступа к аппаратуре со стороны ОС идоступа к аппаратуре со стороны ОС и
пользовательских программпользовательских программ (например, функциям(например, функциям
драйверов устройств: INT $33 – драйвер мыши илидрайверов устройств: INT $33 – драйвер мыши или
специальным сервисам: INT $10 – видео-сервис BIOS,специальным сервисам: INT $10 – видео-сервис BIOS,
INT $31 – DPMI-сервис, INT $67 – сервис EMS).INT $31 – DPMI-сервис, INT $67 – сервис EMS).
9. Исключения являются для процессораИсключения являются для процессора
внутренними событиями и сигнализируют овнутренними событиями и сигнализируют о
какихлибо ошибочных условиях прикакихлибо ошибочных условиях при
выполнении той или иной инструкции.выполнении той или иной инструкции.
Источниками исключений являются три типа событий:Источниками исключений являются три типа событий:
генерируемые программой исключения, позволяющиегенерируемые программой исключения, позволяющие
программе контролировать определенные условия впрограмме контролировать определенные условия в
заданных точках программы (заданных точках программы (INTOINTO – проверка на– проверка на
переполнение,переполнение, INTINT3 – контрольная точка,3 – контрольная точка, BOUNDBOUND ––
проверка границ массива);проверка границ массива);
исключения машинного контроля (#18), возникающиеисключения машинного контроля (#18), возникающие
в процессе контроля операций внутри чипа и транзакций нав процессе контроля операций внутри чипа и транзакций на
шине процессора (шине процессора (PentiumPentium,, PP6 и6 и PentiumPentium 4);4);
обнаруженные процессором ошибки в программеобнаруженные процессором ошибки в программе
(деление на ноль, нарушение правил защиты,(деление на ноль, нарушение правил защиты,
неприсутствие страницы и т. п.)неприсутствие страницы и т. п.)
10. Исключения процессора в зависимости от способаИсключения процессора в зависимости от способа
генерации и возможности рестарта вызвавшей исключениегенерации и возможности рестарта вызвавшей исключение
команды подразделяются накоманды подразделяются на нарушения, ловушки инарушения, ловушки и
аварии.аварии.
Нарушение (отказ) это исключение, котороеНарушение (отказ) это исключение, которое
обнаруживается либо перед исполнением, либо вообнаруживается либо перед исполнением, либо во
время исполнения команды.время исполнения команды. При этом процессорПри этом процессор
переходит в состояние, позволяющее осуществить рестартпереходит в состояние, позволяющее осуществить рестарт
команды. В качестве адреса возврата в стек обработчикакоманды. В качестве адреса возврата в стек обработчика
заносится адрес вызвавшей исключение команды.заносится адрес вызвавшей исключение команды.
Ловушка возникает на границе команд сразу жеЛовушка возникает на границе команд сразу же
после команды, вызвавшей это исключение.после команды, вызвавшей это исключение. ЗначенияЗначения
регистроврегистров CSCS ии EIPEIP, заносимые в стек обработчика,, заносимые в стек обработчика,
указывают на очередную команду. Например, если ловушкауказывают на очередную команду. Например, если ловушка
сработала на командесработала на команде JMPJMP, то в стеке запоминаются, то в стеке запоминаются
значения регистровзначения регистров CSCS ии EIPEIP, указывающие на ссылку, указывающие на ссылку
командыкоманды JMPJMP..
11. Авария не позволяет осуществить рестарт программы,Авария не позволяет осуществить рестарт программы,
и зачастую нельзя точно локализовать команду,и зачастую нельзя точно локализовать команду,
вызвавшую это исключение.вызвавшую это исключение. Исключения типа "авария"Исключения типа "авария"
генерируются при обнаружении серьезных ошибок,генерируются при обнаружении серьезных ошибок,
таких как неразрешенные или несовместимые значениятаких как неразрешенные или несовместимые значения
в системных таблицах или аппаратные сбоив системных таблицах или аппаратные сбои..
Если на границе инструкции обнаруживается, чтоЕсли на границе инструкции обнаруживается, что
требуется обработка более одного прерывания илитребуется обработка более одного прерывания или
исключения, процессор обрабатывает прерывание илиисключения, процессор обрабатывает прерывание или
исключение с наивысшим приоритетом. Исключения сисключение с наивысшим приоритетом. Исключения с
низким приоритетом снимаются, а прерывания с низкимнизким приоритетом снимаются, а прерывания с низким
приоритетом откладываются. Снятые исключения могутприоритетом откладываются. Снятые исключения могут
быть потом снова сгенерированы при возврате избыть потом снова сгенерированы при возврате из
обработчика.обработчика.
Все прерывания и исключения имеют номер (иногдаВсе прерывания и исключения имеют номер (иногда
именуемый вектором) в диапазоне от 0 до 255. Номераименуемый вектором) в диапазоне от 0 до 255. Номера
0...31 зарезервированы фирмой Intel для исключений.0...31 зарезервированы фирмой Intel для исключений.
12. Структура контроллера прерыванияСтруктура контроллера прерывания
Контроллер прерыванийКонтроллер прерываний (ПКП) представляет собой(ПКП) представляет собой
устройство, реализующееустройство, реализующее до восьми уровнейдо восьми уровней
запросов на прерываниязапросов на прерывания, с возможностью, с возможностью
программного маскированияпрограммного маскирования ии изменения порядкаизменения порядка
обслуживания прерыванийобслуживания прерываний..
BD
RWCU
CMP
D70
RD
WR
A0
CS
CAS0
CAS1
CAS2
SP
CU
INTR INTA#
ISR PRB RGI
RGM
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
13. RGIRGI - регистр запросов прерываний;- регистр запросов прерываний; хранит всехранит все
уровни, на которые поступаютуровни, на которые поступают запросызапросы IRQx;IRQx;
PRBPRB - схема принятия решений по приоритетам; схема- схема принятия решений по приоритетам; схема
идентифицирует приоритет запросов и выбираетидентифицирует приоритет запросов и выбирает
запрос с наивысшим приоритетомзапрос с наивысшим приоритетом;;
ISRISR - регистр обслуживаемых прерываний;- регистр обслуживаемых прерываний; сохраняетсохраняет
уровни запросов прерываний, находящиеся науровни запросов прерываний, находящиеся на
обслуживании ПКП;обслуживании ПКП;
RGMRGM - регистр маскирования прерываний;- регистр маскирования прерываний;
обеспечивает запрещение одной или нескольких линийобеспечивает запрещение одной или нескольких линий
запросов прерывания;запросов прерывания;
BDBD - буфер данных; предназначен- буфер данных; предназначен для сопряжениядля сопряжения
ПКП с системной шиной данных;ПКП с системной шиной данных;
RWCURWCU - блок управления записью/чтением;- блок управления записью/чтением; принимаетпринимает
управляющие сигналы от микропроцессора и задаетуправляющие сигналы от микропроцессора и задает
режим функционирования ПКП;режим функционирования ПКП;
14. CMPCMP - схема каскадного буфера-компаратора;- схема каскадного буфера-компаратора;
используется для включения в систему несколькихиспользуется для включения в систему нескольких
ПКП;ПКП;
CUCU - схема управления;- схема управления; вырабатывает сигналывырабатывает сигналы
прерывания и формирует трехбайтовую команду CALLпрерывания и формирует трехбайтовую команду CALL
для выдачи на шину данных.для выдачи на шину данных.
21. Режимы работы ПКПРежимы работы ПКП
Режим полного вложенияРежим полного вложения (приоритет от высшего(приоритет от высшего
IRQIRQ к низшему) – основной режимк низшему) – основной режим.. Пока установлен разрядПока установлен разряд
вв ISRISR все последующие запросы с таким же или болеевсе последующие запросы с таким же или более
низким приоритетом игнорируютсянизким приоритетом игнорируются, подтверждаются, подтверждаются
лишь запросы с более высоким приоритетом.лишь запросы с более высоким приоритетом.
Циклический режимЦиклический режим (используется(используется круговойкруговой
порядок использования приоритетовпорядок использования приоритетов).). ПоследнемуПоследнему
обслуживаемому запросу присваивается низшийобслуживаемому запросу присваивается низший
приоритет, следующему по кругу – наивысший. Идея –приоритет, следующему по кругу – наивысший. Идея –
если устройство обслуживается, то остальные устройстваесли устройство обслуживается, то остальные устройства
должны быть обслужены перед следующимдолжны быть обслужены перед следующим
обслуживанием данного устройства.обслуживанием данного устройства.
22. Маскирование прерыванийМаскирование прерываний.. ПозволяетПозволяет
устройствам с более низким приоритетом получитьустройствам с более низким приоритетом получить
возможность генерировать прерывания. Режимвозможность генерировать прерывания. Режим
специального маскированияспециального маскирования разрешает прерыванияразрешает прерывания
всех уровней кроме уровнейвсех уровней кроме уровней,, обслуживаемых вобслуживаемых в
данный момент.данный момент.
Специальный режим полного вложенияСпециальный режим полного вложения
программируется любым ведущим контроллером припрограммируется любым ведущим контроллером при
инициализации (игнорируются запросы с приоритетоминициализации (игнорируются запросы с приоритетом
ниже, чем приоритет обрабатываемого в данный моментниже, чем приоритет обрабатываемого в данный момент
запроса,запроса, обслуживаются все запросы с равным илиобслуживаются все запросы с равным или
более высоким приоритетомболее высоким приоритетом).).
23. Расширенный программируемыйРасширенный программируемый
контроллер прерыванийконтроллер прерываний ((APICAPIC))
МикропроцессорыМикропроцессоры IAIA-32, начиная с модели-32, начиная с модели PentiumPentium,,
содержат встроенный расширенный программируемыйсодержат встроенный расширенный программируемый
контроллер прерываний (контроллер прерываний (APICAPIC).). ВстроенныйВстроенный APICAPIC
предназначен для регистрирования прерываний отпредназначен для регистрирования прерываний от
источников внутри процессораисточников внутри процессора или от внешнегоили от внешнего
контроллера прерываний и передачи их ядруконтроллера прерываний и передачи их ядру
процессора на обработку.процессора на обработку. Особо важная рольОсобо важная роль
возлагается на встроенныйвозлагается на встроенный APICAPIC в многопроцессорныхв многопроцессорных
системах, гдесистемах, где APICAPIC принимает и генерирует сообщения опринимает и генерирует сообщения о
межпроцессорных прерываниях (межпроцессорных прерываниях (IPIIPI –– InterProcessorInterProcessor
InterruptInterrupt). Такие сообщения могут использоваться для). Такие сообщения могут использоваться для
распределения обработки прерываний междураспределения обработки прерываний между
процессорами или для выполнения системных функцийпроцессорами или для выполнения системных функций
(первоначальная загрузка, диспетчеризация задач и т. п.).(первоначальная загрузка, диспетчеризация задач и т. п.).
24. ВстроенныйВстроенный APICAPIC различает следующиеразличает следующие источникиисточники
прерыванийпрерываний::
1.1. От локальных устройствОт локальных устройств.. Прерывания,Прерывания,
генерируемые по фронту или уровню сигнала,генерируемые по фронту или уровню сигнала,
поступающего от устройства, непосредственнопоступающего от устройства, непосредственно
подключенного к сигналамподключенного к сигналам LINTLINT0 и0 и LINTLINT1 (например,1 (например,
контроллер прерываний типа 8259контроллер прерываний типа 8259AA).).
2.2. От внешних устройствОт внешних устройств.. Прерывание,Прерывание,
генерируемые по фронту или уровню сигнала,генерируемые по фронту или уровню сигнала,
поступающего от устройства, подключенного к внешнемупоступающего от устройства, подключенного к внешнему
контроллеру прерываний. Такое прерывание передается вконтроллеру прерываний. Такое прерывание передается в
виде сообщения по шиневиде сообщения по шине APICAPIC (или системной шине в(или системной шине в
PentiumPentium 4).4).
3.3. Межпроцессорные (Межпроцессорные (IPIIPI).). В многопроцессорныхВ многопроцессорных
системах один из процессоров может прервать другой присистемах один из процессоров может прервать другой при
помощи сообщенияпомощи сообщения IPIIPI на шинена шине APICAPIC (или системной шине(или системной шине
вв PentiumPentium 4).4).
25. 4.4.От таймераОт таймера APICAPIC.. ВстроенныйВстроенный APICAPIC содержитсодержит
таймер, который можно запрограммировать на генерациютаймер, который можно запрограммировать на генерацию
прерывания по достижении определенного отсчета.прерывания по достижении определенного отсчета.
5.5. От таймера монитора производительности.От таймера монитора производительности.
ПроцессорыПроцессоры PP6 и6 и PentiumPentium 4 содержат блок мониторинга4 содержат блок мониторинга
производительности. Этот блок можно запрограммироватьпроизводительности. Этот блок можно запрограммировать
таким образом, чтобы связанный с ним таймер притаким образом, чтобы связанный с ним таймер при
достижении определенного отсчета генерировалдостижении определенного отсчета генерировал
прерывание.прерывание.
6.6. От термодатчика.От термодатчика. ПроцессорыПроцессоры PentiumPentium 44
содержат встроенный блок температурного контроля,содержат встроенный блок температурного контроля,
который можно запрограммировать на генерациюкоторый можно запрограммировать на генерацию
прерываний.прерываний.
7.7. Внутренние ошибкиВнутренние ошибки APICAPIC.. ВстроенныйВстроенный APICAPIC
может генерировать прерывания при возникновенииможет генерировать прерывания при возникновении
внутренних ошибочных ситуаций (например, при попыткевнутренних ошибочных ситуаций (например, при попытке
обратиться к несуществующему региструобратиться к несуществующему регистру APICAPIC).).
26. Источники 1, 4, 5, 6, 7 считаютсяИсточники 1, 4, 5, 6, 7 считаются локальнымилокальными
источниками прерыванийисточниками прерываний и обслуживаются специальными обслуживаются специальным
набором регистровнабором регистров APICAPIC, называемым, называемым таблицейтаблицей
локальных векторовлокальных векторов ((LVTLVT –– local vector tablelocal vector table). Два других). Два других
источника обрабатываютсяисточника обрабатываются APICAPIC через механизмчерез механизм
сообщений. Эти сообщения всообщений. Эти сообщения в PentiumPentium ии PP6 передаются по6 передаются по
выделенной трехпроводный шиневыделенной трехпроводный шине APICAPIC. В. В PentiumPentium 4 для4 для
передачипередачи APICAPIC-сообщений используется системная шина,-сообщений используется системная шина,
поэтому контроллер прерываний может быть подключенпоэтому контроллер прерываний может быть подключен
непосредственно к обычному системному интерфейсунепосредственно к обычному системному интерфейсу
(например,(например, PCIPCI).).
Структура встроенногоСтруктура встроенного APICAPIC является архитектурнымявляется архитектурным
подмножеством микросхемы контроллера прерыванийподмножеством микросхемы контроллера прерываний IntelIntel
8248982489DXDX. Регистры. Регистры APICAPIC отображаются на 4Кбайтный блокотображаются на 4Кбайтный блок
оперативной памяти по адресуоперативной памяти по адресу FEEFEE0000000000hh (может быть(может быть
изменен черезизменен через MSRMSR регистры процессора).регистры процессора).
30. Подсистема контроллера прямогоПодсистема контроллера прямого
доступа к памяти (доступа к памяти (DMADMA))
Архитектура процессораАрхитектура процессора PC ATPC AT включает в себявключает в себя
подсистемуподсистему DMADMA, состоящую из, состоящую из двух контроллеровдвух контроллеров
DMA Intel 8237DMA Intel 8237, регистра старшего адреса, регистра старшего адреса DMADMA ии
регистров страницрегистров страниц DMADMA.. Эти контроллеры обеспечиваютЭти контроллеры обеспечивают
7 каналов7 каналов DMADMA..
Система обеспечивает передачу данных по каналамСистема обеспечивает передачу данных по каналам
DMADMA каккак по одному байту за циклпо одному байту за цикл DMADMA, так и, так и по двапо два
байта за циклбайта за цикл, исходя из возможностей архитектуры, исходя из возможностей архитектуры
процессора (двухбайтовой шины данных).процессора (двухбайтовой шины данных).
34. Режимы обслуживанияРежимы обслуживания
подсистемыподсистемы DMADMA
В активном цикле обслуживание подсистемыВ активном цикле обслуживание подсистемы DMADMA
возможно в одном из четырех режимов:возможно в одном из четырех режимов:
1.1.Режим одиночной передачи (Режим одиночной передачи (Single Transfer ModeSingle Transfer Mode))
2.2.Режим передачи блокаРежим передачи блока (Block Transfer Mode)(Block Transfer Mode)
3.3.Режим передачи по требованию (Режим передачи по требованию (Demand TransferDemand Transfer
ModeMode))
4.4.Каскадный режимКаскадный режим (Cascade Mode)(Cascade Mode)
35. Формирование адреса памятиФормирование адреса памяти
КонтроллерКонтроллер DMADMA и регистр страниц определяю 24-и регистр страниц определяю 24-
разрядный адрес, что обеспечивает передачу данных вразрядный адрес, что обеспечивает передачу данных в
пределах адресного пространства 16 М байт.пределах адресного пространства 16 М байт.
24-разрядный адрес – DMA1 – передача байта
Регистр страниц (8 бит)
А23< ----- > A16
DMA1 (16) бит
А15< ----- >A8 A7< ----- >A0
24-разрядный адрес – DMA2 – передача слова
Регистр страниц
А23< ----- > A17
DMA2 (16 бит)
A16< ----- >A9 A8< ----->A1
Всегда 0
А0
36. Циклы контроллеров прямогоЦиклы контроллеров прямого
доступа к памятидоступа к памяти
ПодсистемаПодсистема DMADMA предназначена для работы впредназначена для работы в двухдвух
основных циклахосновных циклах:: холостомхолостом ии активномактивном.. Каждый циклКаждый цикл
– это совокупность некоторого количества ее– это совокупность некоторого количества ее
состоянийсостояний. Подсистема. Подсистема DMADMA может иметьможет иметь семьсемь
состоянийсостояний каждое из которых соответствует одномукаждое из которых соответствует одному
периоду синхронизации.периоду синхронизации.
SI –SI – неактивное состояние;неактивное состояние;
S0 –S0 – первое состояние обслуживания подсистемыпервое состояние обслуживания подсистемы
DMADMA, возникающее по действительному запросу (, возникающее по действительному запросу (DREQDREQ););
S1,S2,S3,S4 –S1,S2,S3,S4 – рабочие состояния;рабочие состояния;
SW –SW – состояние ожидания.состояние ожидания.