Организация системы прерываний
Рассматриваемый процесс, называемый прерыванием программ, поясняется на рис.1.5. Принципиально важным является то, что моменты возникновения событий, требующих прерывания программ, заранее неизвестны и поэтому не могут быть учтены при программировании.
Каждое событие, требующее прерывания, сопровождается сигналом, оповещающим ЭВМ. Назовем эти сигналы запросами прерывания. Программу, затребованную запросом прерывания назовем прерывающей программой, противопоставляя ее прерываемой программе, выполнявшейся машиной до появления запроса.
Запросы на прерывания могут возникать внутри самой ЭВМ и в ее внешней среде. К первым относятся, например, запросы при возникновении в ЭВМ таких событий, как появление ошибки в работе ее аппаратуры, переполнение разрядной сетки, попытка деления на 0, выход из установленной для данной программы области памяти, затребование периферийным устройством операции ввода-вывода, завершение операции ввода-вывода периферийным устройством или возникновение при этой операции особой ситуации и др. Хотя. некоторые из указанных событий порождаются самой программой, моменты их появления, как правило, невозможно предусмотреть. Запросы во внешней среде могут возникать от других ЭВМ, от аварийных и некоторых других датчиков технологического процесса и т. п.
Рис.1.5 Прерывание программы
Запросы на прерывания могут возникать внутри самой ЭВМ и в ее внешней среде. К первым относятся, например, запросы при возникновении в ЭВМ таких событий, как появление ошибки в работе ее аппаратуры, переполнение разрядной сетки, попытка деления на 0, выход из установленной для данной программы области памяти, затребование периферийным устройством операции ввода-вывода, завершение операции ввода-вывода периферийным устройством или возникновение при этой операции особой ситуации и др. Хотя. некоторые из указанных событий порождаются самой программой, моменты их появления, как правило, невозможно предусмотреть. Запросы во внешней среде могут возникать от других ЭВМ, от аварийных и некоторых других датчиков технологического процесса и т. п.
Приоритеты прерываний
До окончания обработки прерывания обычно устанавливается запрет на обработку этого типа прерывания, чтобы процессор не входил в цикл обработки одного прерывания. Приоритизация означает, что все источники прерываний делятся на классы и каждому классу назначается свой уровень приоритета запроса на прерывание. Приоритеты могут обслуживаться как относительные и абсолютные[источник не указан 1902 дня].
· Относительное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то это прерывание будет обработано только после завершения текущей процедуры обработки прерывания.
· Абсолютное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то текущая процедура обработки прерывания вытесняется, и процессор начинает выполнять обработку вновь поступившего более приоритетного прерывания. После завершения этой процедуры процессор возвращается к выполнению вытесненной процедуры обработки прерывания.
Контролер прерываний
Контроллер прерываний (англ. Programmable Interrupt Controller, PIC) — микросхема или встроенный блок процессора, отвечающий за возможность последовательной обработки запросов на прерывание от разных устройств.
Как правило представляет собой электронное устройство, иногда выполненное как часть самого процессора или же сложных микросхем его обрамления, входы которого присоединены электрически к соответствующим выходам различных устройств. Номер входа контроллера прерываний обозначается «IRQ». Следует отличать этот номер от приоритета прерывания, а также от номера входа в таблицу векторов прерываний (INT). Так, например, в IBM PC в реальном режиме работы (в этом режиме работает MS-DOS) процессора прерывание от стандартной клавиатуры использует IRQ 1 и INT 9.
В первоначальной платформе IBM PC используется очень простая схема прерываний. Контроллер прерываний представляет собой простой счётчик, который либо последовательно перебирает сигналы разных устройств, либо сбрасывается на начало при нахождении нового прерывания. В первом случае устройства имеют равныйприоритет, во втором устройства с меньшим (или большим при обратном счёте) порядковым номером обладают большим приоритетом[1].
Контроллеры и шины
онтроллер — это электронное устройство, предназначенное для подключения к магистрали компьютера разных по принципу действия, интерфейсу и конструктивному исполнению периферийных устройств К термину "контроллер" очень близок по смыслу другой термин —"адаптер". Назначение обоих одинаково, но контроллер несколько сложнее: "подразумевается его некоторая активность — способность к самостоятельным действиям после получения команд от обслуживающей его программы. Сложный контроллер может иметь в своем составе и собственный процессор"". На уровне рядового пользователя данные понятия практически неразличимы и могут считаться синонимами.
И еще одним похожим устройством является сопроцессор. Сопроцессоры "помогают" основному{центральному) процессору, который исполняет программу, реализовыпать сложные специфические функции. Примером может служить графический сопроцессор, выполняющийгеометрические построения и обработку графических изображений, — его вполне можно считать графическим контроллером. Несколько особняком стоит математический сопроцессор, который выполняет свои функции "в одиночку", не управляя никакими внешними устройствами.
Шины расширения конструктивно оформляются в виде шелевых разъемов (слотов) для установки плат адаптеров. Количество и тип слотов определяют возможности функционального расширения системы.
Как уже отмечалось, совокупность линий по которым обмениваются информацией компоненты и устройства РС называются шиной.
Шина предназначена для обмена информацией между двумя и более устройствами. Шина, связывающая только два устройства, называется портом
Линии шины делятся на три группы в зависимости от типа передаваемых данных:
Линии данных (шина данных)
Линии адреса (шина адреса)
Линии управления (шина управления)
Шины различаются по своему функциональному назначению.
Системная шина (или шина CPU) используется микросхемами Chipset для пересылки информации к и от CPU.
Шина кэш-памяти предназначена для обмена информации между CPU и Кэш-памятью.
Шина памяти используется для обмена информацией между оперативной памятью и CPU
Шины ввода\вывода подразделяются на стандартные и локальные
Взависимости от своего функционального назначения РС могут быть оборудованы такими шинами, как USB, SCSI, FireWire, которые устанавливаются в слоты расширения или интегрированы в материнскую плату. Их работу обеспечивает соответствующий контроллер.
Шины процессор-память
Шины процессор-память, с другой стороны, сравнительно короткие, обычно высокоскоростные и соответствуют организации системы памяти для обеспечения максимальной пропускной способности канала память-процессор. На этапе разработки системы, для шины процессор-память заранее известны все типы и параметры устройств, которые должны соединяться между собой, в то время как разработчик шины ввода/вывода должен иметь дело с устройствами, различающимися по задержке и пропускной способности.
Шина ввода/вывода
Локальная шина ввода/вывода — это скоростная шина, предназначенная для обмена информацией между быстродействующими периферийными устройствами (видеоадаптерами, сетевыми картами, картами сканера и др.) и системной шиной под управлением CPU. В настоящее время в качестве локальной шины используется шина PCI. Для ускорения ввода/вывода видеоданных и повышения производительности ПК при обработке трехмерных изображений корпорацией Intel была разработана шина AGP (Accelerated Graphics Port).
Стандартная шина ввода/вывода используется для подключения к перечисленным выше шинам более медленных устройств (например, мыши, клавиатуры, модемов, старых звуковых карт). До недавнего времени в качестве этой шины использовалась шина стандарта ISA. В настоящее время — шина USB.
Шина имеет собственную архитектуру, позволяющую реализовать важнейшие ее свойства — возможность параллельного подключения практически неограниченного числа внешних устройств и обеспечение обмена информацией между ними. Архитектура любой шины имеет следующие компоненты:
- линии для обмена данными (шина данных);
- линии для адресации данных (шина адреса);
- линии управления данными (шина управления);
- контроллер шины.
Системная шина
Системная шина (FSB) – канал, по которому процессор соединен с другими устройствами компьютера. К шине напрямую подключен только процессор, другие устройства компьютера подключены к ней через разнообразные контроллеры. Центральный процессор через Системную шину (FSB) подключается к системному контроллеру (Северный Мост или North Bridge). Северный мост оснащен контроллером ОЗУ (или же этот контроллер встроен в центральный процессор), а также контроллеры шин для подключения периферийных устройств.
Иерархия шин
Устройства ВМ обладают различным быстродействием: наиболее высокоскоростными из них являются процессор и память, да и ПУ также функционируют с разной скоростью. Для наиболее эффективного взаимодействия устройств в современных ВМ используется иерархия шин, которая, как отмечается в /18/, выражается в том, что более медленная шина соединена с более быстрой шиной. Например, на рисунке 9.2 приведена структура взаимосвязей с двумя шинами.
Шина «процессор-память» обеспечивает непосредственную связь между процессором и памятью ВМ. Интенсивный трафик между процессором и памятью требует, чтобы пропускная способность данной шины была наибольшей. Для этого шина «процессор-память» всегда проектируется с учётом особенностей организации системы памяти, а длина шины делается по возможности минимальной. В настоящее время данная шина может работать на частотах 100, 133, 150 МГц и выше.
Рисунок 9.2 – Структура взаимосвязей с двумя шинами
Шина ввода-вывода для соединения процессора и памяти с УВВ. Такие шины работают на низких (8 МГц, 10 МГц) или средних (33 МГц, 66 МГц) скоростях, содержат меньше линий по сравнению с шиной «процессор-память», но длина линий может быть весьма большой. В связи с большим разнообразием УВВ, шины ввода-вывода унифицируются и стандартизируются. Типичными примерами таких шин в современных универсальных ВМ, в т.ч., персональных компьютерах, могут служить шины ISA, PCI, AGP.
Шины ISA (Industry Standard Architecture – архитектура промышленного стандарта) и EISA (Extended ISA – расширенная архитектура промышленного стандарта) работают на частотах 8,3 МГц и 10 МГц, соответственно, и являются на данный момент самыми медленными. Они идеально подходят для соединения ВМ с медленными ПУ (мышью, модемом, низкоскоростными сетевыми адаптерами и т.п.). Шина PCI (Peripheral Component Interconnect - взаимодействие периферийных компонентов) служит для соединения процессора и памяти с высокоскоростными ПУ (например, контроллерами дисков) и работает на частоте 33 МГц. Для передачи большого объёма видеоинформации используется специальная шина AGP (Accelerated Graphic Port – ускоренный графический порт), которая стандартно работает на частоте 66 МГц, но может работать на частоте 133 МГц. Через AGP подключается видеокарта.
Физическая реализация шин
Физическая реализация шин Кратко остановимся на различных аспектах физической реализации шин в вычислительных машинах и системах. Механические аспекты Основная шина (рис. 4.8), объединяющая устройства вычислительной машины, обычно размещается на так называемой объединительной илиматеринской плате. Шину образуют тонкие параллельные медные полоски, поперек которых через небольшие интервалы установлены разъемы для подсоединения устройств ВМ. Подключаемые к шине устройства обычно также выполняются в виде печатных плат, часто называемых дочерними платами аламодулями. Дочерние платы вставляются в разъемы на материнской плате. В дополнение к тонким сигнальным линиям на материнской плате имеются также и более широкие проводящие линии, по которым к дочерним платам подводится питающее напряжение. Несколько контактов разъема обычно подключаются к общей точке — «земле». «Земля» на мате- | ||
6 Зак.470 | ||
162 Глава4. Организация шин | ||
ринской плате реализуется либо в виде медного слоя (одного из внутренних слоев многослойной печатной платы), либо как широкая медная дорожка на обратной стороне материнской платы. | ||
![]() | ||
Рис. 4.8. Организация объединительной шины | ||
Контактные пружины в разъемах обеспечивают независимое подключение сигнальных линий, расположенных по обеим сторонам вставляемой в разъем дочерней платы. При создании соединительных разъемов прилагаются значительные усилия с тем, чтобы гарантировать надежный контакт после многократного извлечения платы из разъема, а также при длительной (многолетней) эксплуатации разъема в загрязненной или коррозийной среде. «Механические» спецификации шины обычно включают такие детали, как размеры плат, размеры и размещение направляющих для установки платы, разрешенное место для установки кабельного разъема, максимальная высота элементов на плате и т. д. Электрические аспекты Все устройства, использующие шину, электрически подсоединены к ее сигнальным линиям, представляющим собой электрические проводники. Меняя уровни напряжения на сигнальных линиях, ведущее устройство формирует на них информационные или управляющие сигналы. Когда ведущее устройство выставляет на сигнальной шине какой-то уровень напряжения, этот уровень может быть воспринят приемниками в любой точке линии. Такое описание дает лишь идеализированную картину происходящих на шине процессов — реальные процессы значительно, сложнее. Схему, меняющую напряжение на сигнальной шине, обычно называютдрайвером или возбудителем щины. В принципе драйвером может быть любая цифровая схема, поскольку на ее цифровом выходе всегда присутствует один из двух возможных уровней напряжения |