ОСНОВНЫЕ ФУНКЦИИ И ПРИНЦИПЫ ПОСТРОЕНИЯ ИНТЕРФЕЙСОВ

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

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

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

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

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

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

Все устройства, подсоединенные к общей шине, делятся на два типа: активные, задатчики, главные устройства (muster device) и пассивные, исполнители (target device).

Активное устройство захватывает шину, выставляет адрес и управляет шиной, пассивное выполняет задания активного.

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

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

Интерфейс должен предусматривать в своей работе возможность выполнения процесса ввода-вывода информации в трех режимах: программного ввода-вывода, ввода-вывода в режимах прерываний и прямого доступа к памяти.

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

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

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

Передача информации между задатчиком и исполнителем реализуется в виде двух операций: операции записи – передача от задатчика к исполнителю и операции чтения – от исполнителя к задатчику.

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

В настоящее время, с точки зрения организации транзакций, используется два типа шин: шины с коммутацией цепей (Circuit– Switched bus) и шины с коммутацией пакетов (Packet – Switched bus), получившие свои названия по аналогии со способами коммутации в сетях передач данных. Шины с коммутацией пакетов при наличии нескольких задатчиков на шине (muster bus) обеспечивают значительно большую пропускную способность по сравнению с шиной с коммутацией цепей за счет разделения транзакции на две логические части: запроса шины и ответа. Такая методика получила название «расщепления» транзакций (split transaction). Иногда ее называют шиной соединения/разъединения (connect/disconnect) или конвейерной шиной (pipeling bus). Транзакция называется расщепленной, поскольку произвольное количество других пакетов или транзакций могут использовать шину между запросом и ответом.

Транзакция чтения разбивается на транзакцию запроса чтения, которая содержит адрес, и транзакцию ответа исполнителя, которая содержит данные. Каждая транзакция теперь должна быть помечена (тегирована) соответствующим образом, чтобы ЦПр и исполнители могли сообщить, что есть что.

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

В настоящее время в компьютерах поле памяти, величина которого задается количеством разрядов адреса в команде, разбивается на три адресных пространства: адресное пространство ОЗУ (памяти), адресное пространство ввода-вывода и адресное пространство автоконфигурации. Такое разбиение обусловлено особенностями построения и организации доступа к соответствующим запоминающим устройствам. ОЗУ строится на соответствующих микросхемах памяти (см. таблицу 2), память ввода-вывода реализуется на адресуемых регистрах контроллеров и адаптеров системы ввода-вывода, а память автоконфигурации строится на регистрах автоконфигурации, расположенных в соответствующих ПУ.

Интерфейс учитывает эту ситуацию путем создания циклов записи и чтения отдельно для каждого адресного пространства.

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

Важнейшим моментом в работе интерфейсов является синхронизация передачи информации.

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

Существуют два основных принципа синхронизации: синхронный и асинхронный.

При синхронном принципе смена состояний источника и приемника взаимонезависимы и выполняются через одинаковые фиксированные интервалы времени.

В этом случае приемник должен успеть принять данные до момента времени, когда источник выставит новые данные.

Величина фиксированного интервала времени синхронизации () определяется суммой времен (Т): распространения сигнала в линии связи, распознавания его приемником и временем фиксации данных в приемнике.

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

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

При асинхронном принципе смена состояний источника и приемника взаимозависимы, момент времени изменения состояния источника зависит от момента времени, когда приемник зафиксирует данные.

Асинхронный принцип реализуется с помощью обратной связи от приемника к источнику (см. рис.1.13). Обратная связь может быть однопроводной и двухпроводной. При однопроводной используется сигнал "готовности приемника" (ГП), при двухпроводной добавляется сигнал "данные приняты" (ДП).

На рис.1.13б показана временная диаграмма переключения состояний источника и приемника при однопроводной связи. Сигнал ГП является инверсным. Он имеет низкий уровень, когда приемник свободен и может принимать данные от источника, переход ГП в высокий уровень означает, что приемник зафиксировал данные, поэтому занят, и не может принимать новые данные от источника.

В момент t1 источник выставляет данные, через время Т они фиксируются в приемнике, и он устанавливает сигнал ГП в высокое состояние. Источник, получив этот сигнал через время Т, сбрасывает данные и ждет установки ГП в низкое состояние, чтобы выставить новые данные. Приемник через время Т после сброса данных устанавливает ГП в низкое состояние, сигнализируя источнику, что он может выставлять новые данные. Таким образом, для надежной работы источник должен держать данные на шине данных время 2Т. Период смены информации на выходе источника 2, но величина переменная, она зависит от характера линии связи и скорости работы приемников. Асинхронный принцип при работе источника со многими приемниками, имеющими широкий диапазон скоростей передачи информации, обеспечивает большую общую пропускную способность, чем синхронный.

Асинхронный принцип не означает, что синхронизация отсутствует, при асинхронном принципе период синхронизации является переменным, а при синхронном этот период постоянен и определяется частотой работы самого медленного устройства.

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

В соответствии с используемыми принципами синхронизации интерфейсы могут быть синхронные и асинхронные.

Если шина синхронная, то переключение всех сигналов на линиях шины производится по фронту импульсов синхронизации. Эти шины могут быть быстрыми и дешевыми. Но частота работы параллельных интерфейсов ограничивается из-за проблем перекоса сигналов на разных линиях шины, что накладывает серьезные ограничения на длину этих шин. Обычно системные шины синхронные, шины расширения могут быть синхронные (PCI) или асинхронные (ISA). В последовательных интерфейсах такие ограничения существенно меньше.

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

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

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

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

В этот набор сигналов, кроме сигналов адреса и данных, включаются сигналы управления, идентификации, синхронизации и др.

Каждому сигналу отводится определенная линия, а все вместе они образуют определенную структуру линий интерфейса. Имеется две основных структуры: трехшинная и двухшинная структуры.

В трехшинной структуре имеется три вида шин: шина адреса, шина данных и шина управления. В двухшинной структуре – две шины: шина адреса/данных и шина управления. В этой структуре адрес и данные передаются по одной и той же шине, но в разные моменты времени.

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

Кодирование команд интерфейса производится двумя способами. В первом, каждой команде отводится своя линия интерфейса. Например, линии операций чтения (Read) и записи (Write). Такой подход приемлем при малом числе команд, он используется в шине ISA.

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

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

Кроме того, в интерфейсах предусматриваются сигналы арбитрации: сигналы REQi – запроса на захват шины (Request) и GRNi (Grant) – разрешения на захват шины. При прямом доступе к памяти: DRQi – запрос на прямой доступ к памяти (Direct Request) и DACK – разрешение на прямой доступ к памяти (Direct Acknolidge). Для ввода-вывода в режиме прерываний: IRQi – запрос на прерывание (Interrupt Request).

Шина управления имеет и другие линии, которые будут рассмотрены в разделах, посвященных конкретным интерфейсам.

В настоящее время интерфейсы выполняют следующие основные функции:

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

Рассмотрим способы реализации функций интерфейсов.

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

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

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

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

Синхронизация на уровне бит осуществляется аппаратным способом путем стробирования каждого бита данных синхроимпульсом.

Синхроимпульс либо генерируется специальным генератором, либо используется самосинхронизация. В первом случае передача «1» и «0» может сопровождаться переключением сигнала только для одной из цифр («1» или «0»), а для другой отсутствовать. В случае самосинхронизации передача «1» и «0» должна сопровождаться переключением сигнала для обеих цифр и «1» и «0», что дает возможность формировать синхроимпульс непосредственно из сигналов информации. Например, код Манчестер II, где «1» изображается током в одном направлении, а «0» - током в обратном направлении (см. рис. 1.14).

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

В случае символа (см. рис. 1.15) его начало обозначается старт-битом, имеющим 0-ое значение, конец – одним, полутора или двумя стоп-битами, имеющими 1-ое значение, между ними находятся от 5 до 8 информационных бита и может присутствовать разряд контроля по четности.

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

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

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

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

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

Функция передачи информации.

Передача информации осуществляется в 3-х режима: программный ввод-вывод, ввод-вывод в режиме прерываний и прямого доступа к памяти.

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

В режиме прерываний тип передачи задает подключенное устройство. Это так называемый PIO с аппаратным контролем потока. В частности, этот режим используется в интерфейсе IDE, это режим PIO Mode.

Прямой доступ к памяти в наименьшей степени загружает процессор, т.к. он только инициализирует DMA. Но надо отметить, что скорость стандартных каналов DMA ограничен значениями 2/4 Мбайт/сек. Прогрессивные режимы DMA (Ultra DMA) обеспечивают более высокие скорости обмена (33 Мбайта/сек).

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

Активное устройство совместно с адресом выдает команду обмена данными. Эти команды различают пространства памяти, ввода-вывода и автоконфигурации. Инструкции ввода-вывода процессора порождают шинные циклы обмена, в которых вырабатываются сигналы IORD (Input-Output read, чтение порта) и IOWR (Input-Output write, запись в порт), которые отличают пространства ввода-вывода от пространства памяти, где вырабатывают соответствующие сигналы чтения и записи MEMRD (Memory Read, чтение памяти) и MEMWR (Memory Write, запись в память). В цикле обмена участвуют сигналы стробирования и квитирования. В случае кодирования команд в виде сигналов на линиях RD (Read) и WR (Write), они являются многофункциональными и обычно указывают направление передачи, адресное пространство и выполняют функции стробирования.

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

Сигналы IORD, MEMWR и IOWR, MEMRD вырабатываются и в циклах прямого доступа к памяти. В этом случае активным является контроллер прямого доступа к памяти, он выдает на шину адрес памяти, к которой производится доступ, а адрес порта не выдается.

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

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

Задание уровней приоритетов производится двумя способами: на основе одноуровневой и многоуровневой систем задания приоритетов. При одноуровневой системе все запросы на прерывание работы шины (IRQi) подаются по одной линии, а устройство с наибольшим приоритетом выбирается с помощью процесса последовательного поллинга программными (см. рис. 1.18а) или аппаратными (см. рис. 1.18б) средствами. Эта система проще, но требует большего времени на проведение поллинга.

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

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

В многоуровневой системе каждой линии запроса (IRQi, DRQi) соответствует своя линия разрешения (GRNi, DACK) (см. рис. 1.19а).

Могут быть комбинированные системы, использующие как параллельный, так и последовательный способы задания уровней приоритетов (см. рис. 1.19б).

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

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

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

Арбитрация реализуется с помощью специальных схем арбитра в главном мосту или с помощью котроллеров прямого доступа к памяти, построенных на микросхемах типа i8237A, имеющих четыре линии запросов ПДП. Функция селекции использует контроллеры прерываний типа i8259A, с 8 линиями запросов прерывания.

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

При параллельной передаче адрес и данные контролируются методом проверки на четность (нечетность) ЕСС, для чего вводится специальная линия контрольного разряда.

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

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

Для проведения диагностики работоспособности устройств в интерфейсах используется специальная последовательная шина JTAG, предназначенная для тестирования PCI-устройств с помощью встроенного порта ТАР (Test Access Port).

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

Функция автоконфигурации. Эта функция в интерфейсе реализуется специальными операциями конфигурационного чтения и записи (Configuration Read and Write), сигналами выбора устройств при конфигурации и выделенным адресным пространством автоконфигурации. Сигналы выбора являются индивидуальными для каждого устройства. С их помощью производится последовательная выборка устройств шины, подлежащих автоконфигурации. Конфигурируемые устройства сообщают блоку автоконфигурации о потребностях в ресурсах и возможных диапазонах памяти, эти данные хранятся в регистрах автоконфигурации. После распределения ресурсов, выполняемого программой конфигурирования (во время POST), в устройство передаются параметры конфигурирования, которые записываются в пространство памяти автоконфигурации, расположенной в самих устройствах. ПУ, использующие автоконфигурацию, должны иметь соответствующие средства для проведения этих процедур.

Функция управлением питанием (Power Management). В настоящее время многие компьютеры круглосуточно включены и работают. Поэтому в интерфейсах вводят специальные функции управления электропотреблением, работающие в соответствии со спецификациями ACPI и PC97.

Кратко о спецификации ACPI (Advanced Configuration and Power Interface) Задача ACPI обеспечить взаимодействие между операционной системой, аппаратным обеспечением и BIOS системной платы. В полном объеме спецификация ACPI к настоящему времени (2000 год) не реализована. На основе этой спецификации реализуется технология OnNow.

С точки зрения ACPI, всего имеется 4 состояния РС:

  • G0 – обычное рабочее состояние
  • G1 – suspend, спящий режим
  • G2 – soft-off, режим, когда питание отключено, но блок питания находится под напряжением, и машина готова включиться в любой момент
  • G3 – mechanical off – питание отключено напрочь

Инициатива OnNow заключается в расширении состояния G1. Вместо простого засыпания, реализованного непонятно как, вводятся 4 режима:

  • S1: (standby 1) останавливаются тактовые генераторы CPU и всей системы, но при этом состояние памяти остается неизменным. Выход из S1 осуществляется мгновенно.
  • S2: (standby 2) также останавливаются тактовые генераторы CPU и всей системы, но к тому же отключается питание кэша CPU и , а данные, хранившиеся там, сбрасываются в основную память. Включение также происходит достаточно быстро.
  • S3: (suspend-to-memory) по замыслу, именно этот режим должен был быть OnNow, но по воле разработчиков пока так не получилось. Должны обесточиваться все компоненты системы, кроме памяти, в которой сохраняются необходимые данные о состоянии CPU и кэша. Включение с восстановлением предыдущего состояния РС действительно происходит Now, т.е. практически сразу.
  • S3: (suspend-to-disk) то, что реализовано в каком-то виде сейчас. Все компоненты системы обесточиваются, данные о состоянии процессора и содержимое кэша и памяти записываются в специальное отведенное место на жестком диске. При этом пробуждение может занимать значительное время.

Функция горячего подключения ПУ. Эта функция позволяет отключать и подключать ПУ без остановки компьютера. При этом происходит автоконфигурирование включенного устройства без участия оператора.