» Взаимодействие компонентов компьютерной системы

Взаимодействие компонентов компьютерной системы

Итак, мы рассмотрели различные устройства, из которых может состоять компьютерная система. Теперь необходимо сказать несколько слов о том, каким образом все эти устройства взаимодействуют между собой.

Схема их взаимодействия показана на рис. 2.7. Из рисунка видно, что центральными передаточными узлами являются системный и функциональный контроллеры — это основные элементы чипсета материнской платы. Системный контроллер обменивается данными с процессором (и кэш-памятью) по системной шине, с оперативной памятью с помощью шины памяти и с видеоадаптером по шине А6Р. Функциональный контроллер поддерживает «диалог» с платами расширения на шинах ISA, PCI, VLB, USB, IDE а также с устройствами, подключёнными к портам PS/2, последовательному и параллельному, а также со флоппи-дисководом и микросхемой BIOS.

В общем случае координатором всех действий является процессор, который выполняет программы и в процессе их выполнения должен иногда принимать информацию от различных устройств. Для того чтобы устройства могли вовремя сообщать процессору о необходимости обработки поступившей информации (например, пользователь нажал какую-то клавишу на клавиатуре компьютера), используется система прерываний.

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

Систему прерываний обычно поясняют, используя бытовой пример. Давайте мысленно представим вместо процессора, выполняющего программу, обедающего человека. Поедание обеда — это процесс. Но вот зазвонил телефон — это сигнал на прерывание: обед приостанавливается, человек переключается на обработку информации, поступающую от собеседника. Когда информация обработана — разговор закончен, человек возвращается к обеду. Можно продолжить список возможных «прерываний» обеда: телефонный звонок, стук в дверь, захныкавший ребёнок в соседней комнате и пр.

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

Чтобы процессор не попал в затруднительное положение при поступлении двух или более прерываний, для каждого из них выделен свой приоритет в виде номера прерывания. Чем меньше номер прерывания, тем выше его приоритет. Строго говоря, сигналы прерываний поступают от устройств не прямо на процессор, а на специальный контроллер прерываний, который «знает», какому номеру прерывания соответствует каждое устройство. Поэтому, получив сигнал от устройства, он устанавливает сигнал прерывания с соответствующим номером в активное состояние.

Как правило, существует 16 прерываний, и это, как выясняется, очень мало. Правда, в некоторых случаях может быть задействован расширенный контроллер прерываний, и тогда прерываний становится 24, и это бывает не так уж редко. Мы же рассмотрим общий случай.

Итак, 16 прерываний нумеруются числами от 0 до 15. Но может возникнуть вопрос — почему мы говорим, что этого мало? Действительно, ведь плат расширения бывает подключено обычно не более трёх-четырёх...

Дело в том, что на самом деле некоторые прерывания уже закреплены за системными устройствами, так что свободных остаётся совсем немного. Ну, и кроме того, бывают устройства, которые норовят занять более одного прерывания (если в плате фактически совмещено несколько различных устройств). Хорошо ещё, что современные устройства для шины PCI, как правило, «знают» о проблемах с недостатком прерываний, и часто вполне могут уживаться на одном прерывании вдвоём или даже втроём. Впрочем, можно догадаться, что стабильность и скорость работы системы в целом от этого отнюдь не возрастают.

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

Прерывание JMs 0, наиболее приоритетное, жёстко закреплено за системным таймером. Это прерывание не может быть использовано каким-либо другим устройством.

Прерывание № 1 также жёстко закреплено за контроллером клавиатуры. Таким образом, сигналы от клавиатуры по умолчанию являются наиболее приоритетными пользовательскими сигналами. Первое прерывание также не может быть использовано каким-либо другим устройством.

Прерывание № 2 имеет «техническое» значение — коротко говоря, с его помощью изначальное количество прерываний путём некоторых системных манипуляций было увеличено в своё время с 8 до 16. Таким образом, это прерывание также не может быть использовано каким-либо устройством.

Прерывание № 3 обычно используется вторым последовательным портом компьютера. Если это так, то другие устройства не могут никоим образом использовать это прерывание. Однако если этот порт не задействован, то его можно отключить, и прерывание № 3 будет свободно.Прерывание № 4 обычно принадлежит первому последовательному порту компьютера. Бели это действительно так, то другие устройства тоже не могут использовать это прерывание никоим образом. Однако если первый последовательный порт не задействован, то его можно отключить, и прерывание № 4 будет свободно.

Прерывание № 5 изначально является свободным и может использоваться различными устройствами по усмотрению пользователя (или операционной системы, если в ней предусмотрена автоматическая настройка). Однако следует упомянуть о том, что для использования многих современных звуковых карт в старых играх необходимо включать эмуляцию карты Sound Blaster Pro, которая, в свою очередь должна для корректной работы использовать именно пятое прерывание. Так что если есть необходимость использовать звук в играх (особенно старых) или же в системе установлена звуковая карта, совместимая с Sound Blaster Pro и подключаемая к шине ISA, то пятое прерывание оказывается закреплённым за звуковой картой.

Прерывание № в жёстко закреплено за контроллером флоппи-дисковода. Оно не может использоваться какими-либо другими устройствами, за исключением случая, когда флоппи-дисковод в системе отсутствует и BIOS может сообщить операционной системе об этом.

Прерывание № 7 обычно используется параллельным портом компьютера. Если это действительно так, то другие устройства не могут это прерывание использовать никоим образом. Однако, если параллельный порт не задействован, то его можно отключить, и прерывание № 7 будет свободно.

Прерывание № 8 жёстко закреплено за часами реального времени. Это прерывание не может быть использовано другими устройствами.

Прерывание № 9 изначально является свободным и может использоваться платами расширения по усмотрению пользователя или операционной системы. Однако довольно часто это прерывание использует система расширенного управления питанием, а также контроллер USB-порта, так что «претендентов» на это прерывание вполне достаточно.

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

Прерывание № 11 также является изначально свободным и может использоваться платами расширения по усмотрению пользователя или операционной системы. Однако его обычно занимают видеоадаптер, если, конечно, для него вообще выделено отдельное прерывание.Прерывание № 12 жёстко закреплено за мышью, подключаемой к порту PS/2. Поскольку большинство современных компьютеров оснащены именно такой мышью, прерывание № 12 оказывается занятым, и никакие другие устройства его использовать не могут. Впрочем, если PS/2-мышъ в системе отсутствует, то прерывание можно освободить, и тогда оно может быть использовано другими устройствами.

Прерывание № 13 жёстко закреплено за встроенным или внешним математическим сопроцессором. Впрочем, даже в том случае, если таковой отсутствует (например, используется система на базе процессора 80386SX при отсутствующем сопроцессоре 80387), прерывание МЬ 13 всё равно остаётся занятым, и другие устройства не могут его использовать никогда.

Прерывание № 14 жёстко закреплено за первым каналом контроллера IDE. Обычно IDE-контроллер в системе используется, что называется, «на все сто», поэтому об использовании прерывания № 14 платами расширения можно забыть. Впрочем, в тех редчайших случаях, когда первый канал встроенного IDE-контроллера оказывается ненужным, его можно отключить. Если программа настройки параметров BIOS позволяет, то прерывание № 14 освобождается для использования другими устройствами. Но этот случай слишком уж экзотичен.

Прерывание № 15 жёстко закреплено за вторым каналом контроллера IDE. Поскольку обычно IDE-контроллер в системе постоянно задействован, то об использовании прерывания № 15 платами расширения тоже можно забыть. Впрочем, в тех довольно редких случаях, когда второй канал встроенного IDE-контроллера оказывается ненужным, его можно отключить. Если программа настройки параметров BIOS позволяет, то прерывание № 15 освобождается. Но этот случай, как и предыдущий, весьма экзотичен.

Итак, фактически платам расширения остаётся совсем немного — это прерывания за номерами 5, 9, 10 и, возможно, 11.

В некоторых случаях для корректного взаимодействия с системой платы расширения используют также каналы прямого доступа к памяти (DMA — Direct Memory Access). Здесь ситуация более «демократична». Хотя каналов прямого доступа к памяти всего 8 (они нумеруются числами от 0 до 7), недоступными для плат расширения являются только канал № 4 и № 2. Канал № 4 используется самим контроллером DMA для обеспечения корректной работы, а канал № 2 жёстко закреплён за контроллером флоппи-дисковода. Кроме того, если параллельный порт компьютера работает в режиме ЕСР, то для него обычно выделяется DMA-канал № 3 (с другим каналом он, скорее всего, просто не будет работать). Понятие о взаимодействии устройств при помощи системы прерываний и каналов прямого доступа к памяти, как нам кажется, полезно иметь всем пользователям ПК. Это поможет им в случае возникновения конфликта устройств по ресурсам быстро решить проблему на уровне операционной системы или BIOS. Впрочем, иногда конфликт ресурсов возникает из-за того, что несколько устройств пытаются использовать одну и ту же область памяти в качестве адресов ввода-вывода. Однако такие случаи более редки, так как адресного пространства, разрешённого для ввода-вывода устройств, достаточно и вероятность того, что два устройства будут претендовать на одни и те же адреса памяти, невелика. Исключение могут составлять устаревшие ISA-устройства, на которых базовые адреса ввода-вывода сменить либо невозможно, либо это делается только с помощью установки перемычек на самой плате.

Реклама

Реклама