Распределение ресурсов компьютера. Шины. Прерывания. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Распределение ресурсов компьютера. Шины. Прерывания.



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

Под распределением ресурсов в данном случае понимается:

  • распределение адресного пространства системной памяти, отведение отдельных областей памяти под особые цели;
  • распределение адресного пространства устройств ввода/вывода, в том числе для системных средств компьютера;
  • распределение каналов запроса прерываний, в том числе для системных устройств;
  • распределение каналов запроса прямого доступа к памяти.

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

равда, в последнее время получила распространение снимающая данные проблемы технология автоматического распределения ресурсов Plug-and-Play (PnP, P&P), что можно перевести как "Вставляй и работай". При этом пользователю достаточно просто подключить свою плату к компьютеру, а все операции по распределению ресурсов компьютер выполнит самостоятельно, и любые конфликты будут автоматически устранены.

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

Существует набор зарезервированных адресов для тех или иных устройств.

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

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

Первое поколение

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

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

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

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

Второе поколение

Компьютерные шины «второго поколения», например NuBus

решали некоторые из вышеперечисленных проблем. Они обычно разделяли компьютер на две «части», процессор и память в одной и различные устройства в другой. Между частями устанавливался специальный контроллер шин (bus controller). Такая архитектура позволила увеличивать скорость процессора без влияния на шину, разгрузить процессор от задач управления шиной. При помощи контроллера устройства на шине могли взаимодействовать друг с другом без вмешательства центрального процессора. Новые шины имели лучшую производительность, но также требовали более сложных карт расширения. Проблемы скорости часто решались увеличением разрядности шины данных, с 8-ми битных шин первого поколения до 16 или 32-х битных шин во втором поколении. Также появилась программная настройка устройств для упрощения подключения новых устройств, ныне стандартизованная как Plug-n-play.

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

Третье поколение

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

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

В зависимости от источника возникновения сигнала прерывания делятся на:

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

§ синхронные или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам или недопустимый код операции;

§ программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы.

Термин «ловушка» (англ. trap) иногда используется как синоним термина «прерывание» или «внутреннее прерывание». Как правило, словоупотребление устанавливается в документации производителя конкретной архитектуры процессора.

В зависимости от возможности запрета внешние прерывания делятся на:

§ маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний (в x86-процессорах — сбросом флага IF в регистре флагов);

§ немаскируемые (англ. Non maskable interrupt, NMI) — обрабатываются всегда, независимо от запретов на другие прерывания. К примеру, такое прерывание может быть вызвано сбоем в микросхеме памяти.

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

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

§ Относительное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то это прерывание будет обработано только после завершения текущей процедуры обработки прерывания.

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

Программное прерывание — синхронное прерывание, которое может осуществить программа с помощью специальной инструкции.



Поделиться:


Последнее изменение этой страницы: 2016-08-15; просмотров: 905; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.253.161 (0.01 с.)