Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Системная поддержка LPT-порта




Системная поддержка LPT-порта включает поиск установленных портов и сер­висы печати. В процессе начального тестирования POST BIOS проверяет наличие параллельных портов по адресам 3BCh, 378h и 278h и поме­щает базовые адреса обнаруженных портов в ячейки BIOS Data Area 0:0408h, 040Ah, 040Ch, 040Eh. Эти ячейки хранят адреса портов LPT1-LPT4, нулевое значе­ние адреса является признаком отсутствия порта с данным номером. В ячейки 0:0478, 0479, 047А, 047В заносятся константы, задающие тайм-аут для этих портов.

Поиск портов обычно ведется достаточно примитивно — по базовому адресу (в ре­гистр данных предполагаемого порта) выводится тестовый байт (AAh или 55h), затем производится ввод по тому же адресу. Если считанный байт совпал с запи­санным, предполагается, что найден LPT-порт; его адрес помещается в ячейку BIOS Data Area. Базовые адреса портов могут быть впоследствии изменены программ­но. Адрес порта LPT4 система BIOS самостоятельно установить не может, посколь­ку в списке стандартных адресов поиска имеются только три вышеуказанных.

Обнаруженные порты инициализируются — записью в регистр управления фор­мируется и снимается сигнал lnit#, после чего записывается значение ОСЬ, соот­ветствующее исходному состоянию сигналов интерфейса. В некоторых случаях сигнал lnit# активен с момента аппаратного сброса до инициализации порта при загрузке ОС. Это можно заметить по поведению включенного принтера во время перезагрузки компьютера — у принтера надолго гаснет индикатор On-Line. След­ствие этого явления — невозможность распечатки экранов (например, параметров BIOS Setup) по нажатию клавиши Print Screen до загрузки ОС.

Управление параллельным портом разделяется на два этапа — предварительное конфигурирование (Setup) аппаратных средств порта и текущее (оперативное) переключение режимов работы прикладным или системным ПО. Оперативное переключение возможно только в пределах режимов, разрешенных при конфи­гурировании. Этим обеспечивается возможность согласования аппаратуры с ПО и блокирования ложных переключений, вызванных некорректными действиями программы.

Конфигурирование LPT-порта зависит от его исполнения. Порт, расположенный на плате расширения (мультикарте), устанавливаемой в слот ISA или ISA+VLB, конфигурируется джамперами на самой плате. Порт на системной плате конфи­гурируется через BIOS Setup.

Ниже перечислены параметры, подлежащие конфигурированию.

- Базовый адрес — 3BCh, 378h или 278h. При инициализации BIOS проверя­ет наличие портов по адресам именно в этом порядке и, соответственно, при­сваивает обнаруженным портам логические имена LPT1, L PT2, L РТЗ.

- Используемая линия запроса прерывания: для L РТ — IRQ7, для LPT2 — IRQ5. Тра­диционно прерывания от принтера не задействуются, и этот дефицитный ре­сурс можно сэкономить. Однако при использовании скоростных режимов ЕСР (или Fast Centronics) работа через прерывания может заметно повысить про­изводительность и снизить загрузку процессора.

- Использование канала DMA для режимов ЕСР и Fast Centronics — разреше­ние и номер канала DMA.

- Режимы работы порта:

- SPP — порт работает только в стандартном однонаправленном программно- управляемом режиме;

- PS/2, он же Bi-Directional — отличается от SPP возможностью реверса кана­ла (установкой CR. 5=1);

- Fast Centronics — аппаратное формирование протокола Centronics с исполь­зованием FIFO-буфера и, возможно, DMA;

- ЕРР — в зависимости от использования регистров порт работает в режиме SPP или ЕРР;

- ЕСР— по умолчанию включается в режим SPP или PS/2, записью в ECR может переводиться в любой режим ЕСР, но перевод в ЕРР записью в ECR кода 100 не гарантируется;

- ЕСР+ЕРР — то же, что и ЕСР, но запись в ECR кода режима 100 переводит порт в ЕРР.

-

Универсальный внешний последовательный интерфейс — СОМ-порт (Com­munications Port — коммуникационный порт) присутствует в PC начиная с пер­вых моделей. Этот порт обеспечивает асинхронный обмен по стандарту RS-232C. СОМ-порты реализуются на микросхемах универсальных асинхронных приемо­передатчиков. (UART), совместимых с семейством i8250/16450/16550. Они зани­мают в пространстве ввода-вывода по 8 смежных 8-битных регистров и могут рас­полагаться по стандартным базовым адресам 3F8h (COM1), 2F8h (COM2), 3E8h (COM3), 2E8h (COM4). Порты могут вырабатывать аппаратные прерывания IRQ4 (обычно используются для СОМ1 и COM3) и IRQ3 (для COM2 и COM4). С внешней стороны порты имеют линии последовательных данных передачи и при­ема, а также набор сигналов управления и состояния, соответствующий стандар­ту RS-232C. СОМ-порты имеют внешние разъемы-вгшсм (male — «папа») DB25P или DB9P, выведенные на заднюю панель компьютера. Характерной особенностью интерфейса является применение «не ТТЛ» сигналов — все внеш­ние сигналы порта двуполярные. Гальваническая развязка отсутствует — схемная земля подключаемого устройства соединяется со схемной землей компьютера. Скорость передачи данных может достигать 115 200 бит/с.

Компьютер может иметь до четырех последовательных портов СОМ 1-COM4 (для машин класса AT типично наличие двух портов) с поддержкой на уровне BIOS. Сервис BIOS Int 14h обеспечивает инициализацию порта, ввод и вывод символа (не используя прерываний) и опрос состояния. Через Int 14h скорость передачи программируется в диапазоне 110-9600 бит/с (меньше, чем реальные возможно­сти порта). Для повышения производительности широко используется взаимодей­ствие программ с портом на уровне регистров, для чего требуется совместимость аппаратных средств СОМ-порта с программной моделью 18250/16450/16550.

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

СОМ-порты поддерживаются сервисом BIOS Int 14h, который обеспечивает сле­дующие функции:

- инициализация (установка скорости обмена и формата посылок; запрет источ­ников прерываний) — на сигналы DTR и RTS влияния не оказывает (после ап­паратного сброса они пассивны);

- вывод символа — активируются сигналы DTR и RTS, и после освобождения ре­гистра THR в него помещается выводимый символ;

- ввод символа — активируется только сигнал DTR (RTS переходит в пассивное состояние), и ожидается готовность принятых данных;

- опрос состояния модема и линии (чтение регистров MSR и LSR).

Аппаратные прерывания не используются, ожидание готовности ввода и вывода ограничивается по тайм-ауту. Готовность можно быстро проверить опросом со­стояния.

В процессе начального тестирования POST BIOS проверяет наличие последо­вательных портов (регистров UART 8250 или совместимых) по стандартным адресам и помещает базовые адреса обнаруженных портов в ячейки BIOS Data Area 0:0400, 0402, 0404, 0406. Эти ячейки хранят адреса портов с логическими именами СОМ1-COM4. Нулевое значение адреса является признаком отсутствия порта с данным номером. В ячейки ОЮ47С, 047D, 047Е, 047F заносятся констан­ты, задающие тайм-ауты для портов.

Обнаруженные порты инициализируются на скорость обмена 2400 бит/с, 7 бит данных с контролем на четность (even), 1 стоп-бит. Управляющие сигналы интер­фейса DTR и RTS переводятся в исходное состояние («выключено» — положитель­ное напряжение).

Компьютер может иметь до четырех последовательных портов СОМ 1 -COM4; для машин класса AT типично наличие двух портов. Управление последовательным портом разделяется на два этапа — предварительное конфигурирование (Setup)

аппаратных средств порта и текущее (оперативное) переключение режимов рабо­ты прикладным или системным ПО. Конфигурирование СОМ-порта зависит от его исполнения. Порт на плате расширения конфигурируется джамперами на са­мой плате. Порт на системной плате конфигурируется через BIOS Setup.

Конфигурированию подлежат перечисленные ниже параметры:

- Базовый адрес, который для портов СОМ1-СОМ4 обычно имеет значение 3F8h, 2F8h, 3E8h и 2E8h. При инициализации BIOS проверяет наличие пор­тов по адресам именно в этом порядке и присваивает обнаруженным портам логические имена СОМ1, COM2, COM3 и COM4. Для портов COM3 и COM4 возможны альтернативные адреса 3EOh, 338h и 2EOh, 238h соответственно. Для PS/2 стандартными для портов СОМЗ-СОМ8 являются адреса 3220h, 3228h, 4220h, 4228h, 5220h и 5228h соответственно.

- Используемая линия запроса прерывания: для СОМ 1 и COM3 обычно использу­ется IRQ4 или IRQ11, для COM2 и COM4 — IRQ3 или IRQ10. В принципе номер прерывания можно назначать в произвольных сочетаниях с базовым адресом (номером порта), но некоторые программы и драйверы (например, драйверы последовательной мыши) настроены на стандартные сочетания. Каждому пор­ту, нуждающемуся в аппаратном прерывании, назначают отдельную линию, не совпадающую с линиями запроса прерываний других устройств. Прерывания необходимы для портов, к которым подключаются устройства ввода, UPS или модемы. При подключении принтера или плоттера прерываниями пользуют­ся только многозадачные ОС (не всегда), и этот дефицитный ресурс PC можно сэкономить. Также прерывания обычно не задействуют при связи двух компью­теров нуль-модемным кабелем. Возможность разделяемого использования одной линии запроса несколькими портами (или ее разделения с другими устройствами) зависит от реализации аппаратного подключения и ПО. При ис­пользовании портов, установленных на шину ISA, разделяемые прерывания обычно не работают.

- Канал DMA (для микросхем UART 16450/16550, расположенных на системной плате) — разрешение использования и номер канала DMA. Режим DMA при работе с СОМ-портами используют редко.

СОМ-порт широко применяется для подключения различных периферийных и коммуникационных устройств, связи с различным технологическим оборудова-нием, объектами управления и наблюдения, программаторами, внутрисхемными эмуляторами и прочими устройствами, используя протокол RS-232C. СОМ-порты чаще всего применяют для подключения манипуляторов (мышь, трекбол).

 

 

USB (Universal Serial Bus — универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Версия 1.0 была опубликована в начале 1996 года, большинство устройств поддерживает версию 1.1, которая вышла осенью 1998 года, — в ней были устранены обнаруженные проб­лемы первой редакции. Весной 2000 года опубликована спецификация USB 2.0, в которой предусмотрено 40-кратное повышение пропускной способности шины. Первоначально (в версиях 1.0 и 1.1) шина обеспечивала две скорости передачи информации: полная скорость FS (full speed) — 12 Мбит/с и низкая скорость LS (Low Speed) — 1,5 Мбит/с. В версии 2.0 определена еще и высокая скорость HS (High Speed) — 480 Мбит/с, которая позволяет существенно расширить круг устройств, подключаемых к шине. В одной и той же системе могут присутство­вать и одновременно работать устройства со всеми тремя скоростями. Шина с ис­пользованием промежуточных хабов позволяет соединять устройства, удаленные от компьютера на расстояние до 25 м.

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

 

Каждое устройство на шине USB (их может быть до 127) при подключении авто­матически получает свой уникальный адрес. Логически устройство представляет собой набор независимых конечных точек (endpoint, ЕР), с которыми хост-кон­троллер (и клиентское ПО) обменивается информацией. Каждая конечная точка имеет свой номер и описывается следующими параметрами:

♦ требуемая частота доступа к шине и допустимые задержки обслуживания;

♦ требуемая полоса пропускания канала;

♦ требования к обработке ошибок;

♦ максимальные размеры передаваемых и принимаемых пакетов;

♦ тип передачи;

♦ направление передачи (для передач массивов и изохронного обмена).

 

Каждое устройство обязательно имеет конечную точку с номером 0, используемую для инициализации, общего управления и опроса состояния устройства. Эта точ­ка всегда сконфигурирована при включении питания и подключении устройства к шине. Она поддерживает передачи типа «управление» (см. ниже). Кроме нулевой точки, устройства-функции могут иметь дополнительные точки, реализующие полезный обмен данными. Низкоскоростные устройства могут иметь до двух дополнительных точек, полноскоростные — до 15 точек ввода и 15 точек вывода (протокольное ограничение). Дополнительные точки (а именно они и пре­доставляют полезные для пользователя функции) не могут быть использованы до их конфигурирования (установления согласованного с ними канала).

Каналом (pipe) в USB называется модель передачи данных между хост-контрол­лером и конечной точкой устройства. Имеются два типа каналов: потоки и сооб­щения. Поток (stream) доставляет данные от одного конца канала к другому, он всегда однонаправленный. Один и тот же номер конечной точки может использо­ваться для двух поточных каналов — ввода и вывода. Поток может реализовывать следующие типы обмена: передача массивов, изрхронный и прерывания. Сообще­ние (message) имеет формат, определенный спецификацией USB. Хост посылает запрос к конечной точке, после которого передается (принимается) пакет сообще­ния, за которым следует пакет с информацией состояния конечной точки. Последу­ющее сообщение нормально не может быть послано до обработки предыдущего, но при отработке ошибок возможен сброс необслуженных сообщений. Двусторон­ний обмен сообщениями адресуется к одной и той же конечной точке.

С каналами связаны характеристики, соответствующие конечной точке (полоса пропускания, тип сервиса, размер буфера и т. п.). Каналы организуются при кон­фигурировании устройств USB. Для каждого включенного устройства существу­ет канал сообщений (Control Pipe 0), по которому передается информация кон­фигурирования, управления и состояния.

 

Архитектура USB допускает четыре базовых типа передачи данных.

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

- Передачи массивов данных (bulk data transfers) — это передачи без каких-либо обязательств по задержке доставки и скорости передачи. Передачи массивов могут занимать всю полосу пропускания шины, свободную от передач других

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

- Прерывания (interrupt) — короткие передачи, которые имеют спонтанный ха­рактер и должны обслуживаться не медленнее, чем того требует устройство.
Предел времени обслуживания устанавливается в диапазоне 10-255 мс для
низкой, 1-255 мс для полной скорости, на высокой скорости можно заказать и 125 мкс. При случайных ошибках обмена выполняется повтор. Прерывания используются, например, при вводе символов с клавиатуры или для передачи сообщения о перемещении мыши.

- Изохронные передачи (isochronous transfers) — непрерывные передачи в реаль­ном времени, занимающие предварительно согласованную часть пропускной способности шины с гарантированным временем задержки доставки. Позволя­ют на полной скорости организовать канал с полосой 1,023 Мбайт/с (или два по 0,5 Мбайт/с), заняв 70 % доступной полосы (остаток можно заполнить и менее емкими каналами). На высокой скорости конечная точка может полу­чить канал до 24 Мбайт/с (192 Мбит/с). В случае обнаружения ошибки изо­хронные данные не повторяются — недействительные пакеты игнорируются. Изохронные передачи нужны для потоковых устройств: видеокамер, цифро­вых аудиоустройств (колонки USB, микрофон), устройств воспроизведения и записи аудио- и видеоданных (CD и DVD). Видеопоток (без компрессии) шина
USB способна передавать только на высокой скорости.

 

Перечислим основные области применения USB.

- Устройства ввода — клавиатуры, мыши, трекболы, планшетные указателии т. п. Здесь USB предоставляет для различных устройств единый интерфейс.

- Принтеры. USB 1.1 обеспечивает примерно ту же скорость, что и LPT-порт в режиме ЕСР, но при использовании USB не возникает проблем с длиной ка­беля и подключением нескольких принтеров к одному компьютеру (правда, требуются хабы).

- Сканеры. Применение USB позволяет отказаться от контроллеров SCSI или от занятия LPT-порта. USB 2.0 при этом позволит еще и повысить скорость передачи данных.

- Аудиоустройства — колонки, микрофоны, головные телефоны (наушники).
Музыкальные синтезаторы и MIDI-контроллеры с интерфейсом USB.

- Видео- и фотокамеры. USB 1.1 позволяет передавать статические изображения любого разрешения за приемлемое время, а также передавать поток видеодан­ных (живое видео) с достаточной частотой кадров (25-30 Кбит/с) только с невысоким разрешением или сжатием данных, от которого, естественно, стра­дает качество изображения.

- Коммуникации. С интерфейсом USB выпускают разнообразные модемы, вклю­чая кабельные и xDSL, адаптеры высокоскоростной инфракрасной связи (IrDA FIR) — шина позволяет преодолеть предел скорости СОМ-порта (115,2 Кбит/с), не повышая загрузку центрального процессора.

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

- Устройства хранения — винчестеры, устройства чтения и записи CD и DVD, стриммеры — при использовании USB 1.1 получают скорость передачи, соизме­римую со скоростью их подключения к LPT, но более удобный интерфейс (как аппаратный, так и программный).

- Игровые устройства — джойстики всех видов (от «палочек» до автомобильных рулей), пульты с разнообразными датчиками (непрерывными и дискретными) и исполнительными механизмами.

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

- Мониторы — здесь шина USB используется для управления параметрами мо­нитора.

- Электронные ключи — устройства с любым уровнем интеллектуальности защи­ты — могут быть выполнены в корпусе вилок USB. Они гораздо компактнее и мобильнее аналогичных устройств для СОМ- и LPT-портов.

Системный интерфейс малых компьютеров SCSI (Small Computer System Interface, произносится «скази») предназначен для соединения устройств различных клас­сов: памяти прямого (жесткие диски) и последовательного доступа (стриммеры), CO-ROM, оптических дисков однократной и многократной записи, устройств автоматической смены носителей информации, принтеров, сканеров, коммуника­ционных устройств и процессоров. Устройством SCSI (SCSI Device) называется как хост-адаптер, связывающий шину SCSI с какой-либо внутренней шиной ком­пьютера, так и контроллер целевого устройства (target controller), с помощью кото­рого устройство подключается к шине SCSI. С точки зрения шины все устройства могут быть равноправными и являться как инициаторами обмена (инициализи­рующими устройствами, ИУ), так и целевыми устройствами (ЦУ), однако чаще всего в роли И У выступает хост-адаптер. Каждое ЦУ может содержать до 8 неза­висимо адресуемых логических устройств (ЛУ) со своими номерами LUN (Logical Unit Number), представляющих ПУ или их части.

Первая версия, шины, позже названная SCSI-1, была стандартизована ANSI в 1986 грду (ХЗ. 131-1986). Это была 8-битная параллельная шина с максимальной час­тотой переключений1 5 МТ/с, допускающая подключение до 8 устройств. Ско­рость передачи данных достигала 5 Мбайт/с, режим передачи данных — асинхрон­ный, Впоследствии (199;1 гО появилась спецификация SCSI-2 (ХЗ.131-1994), расширяющая возможности шины. Частота переключений шины Fast SCSI-2 дости-щет.10 MT/Cj а Шга SCSI-2 — 20 МТ/с, Разрядность данных может быть увеличена до 16 бит — этд версия называется Wide SCSI-2 (широкая), а 8-битную версию ста­ли называть Narrow (узкая). 16-битная шина допускает включение 16 устройств. Стандарт SCSI-2 определяет и 32-бктную версию интерфейса, которая не полу­чила практического применения. Появился синхронный режим передачи данных, введена дифференциальная версия интерфейса. Спецификация SCSI-2 определяет систему команд, которая включает набор базовых команд CCS (Common Command Set), обязательных для всех ПУ, и специфических команд для периферии различ­ных классов. Стандарт полностью описывает протокол взаимодействия устройств, включая структуры передаваемо^ информации. Поддержка устройствами испол­нения цепочек команд (до 256 команд) и независимость работы устройств друг от друта: обусловливают высокую эффективность применения SCSI в многозадачных системах. Возможность присутствия на шине более одного контроллера (инициа­тора обмена) Позволяет обеспечить разделение (совместное использование) пери ферии несколькими компьютерами, подключенными к одной шине. Эти свойства обеспечивают SCSI неоспоримые преимущества перед АТА в качестве интерфей­са для мощных систем хранения данных.

Спецификация SCSI-3 — дальнейшее развитие стандарта, направленное на увеличе­ние количества подключаемых устройств, расширение системы команд и поддерж­ку технологии PnP. В качестве альтернативы параллельному интерфейсу SPI (SCSI-3 Parallel Interface) появляется возможность применения последовательно­го, в том числе волоконно-оптического интерфейса со скоростью 100 Мбайт/с. Спецификация SCSI-3 существует в виде широкого спектра документов, определя­ющих отдельные аспекты интерфейса на уровне физических соединений, транспорт­ных протоколов и наборов команд. Транспортный уровень может использовать раз­личные протоколы с соответствующей поддержкой физических соединений:

- SPI (SCSI Parallel Interface) — параллельный интерфейс (разъемы, сигналы);

- SIP (SCSI-3 Interlocked Protocol) — протокол обмена традиционного интер­фейса, физически реализуемый интерфейсом SPI;

- FCP (Fibre Channel Protocol) — протокол оптоволоконного канала с соответству­ющим физическим уровнем FC-PH со скоростью передачи данных 100 Мбайт/с;

- SBP (Serial Bus Protocol) — протокол последовательной шины, реализуемый интерфейсом 1394 (FireWire);

- GPP (Generic Packetized Protocol) — обобщенный пакетный протокол, реали­зуемый любым пакетным интерфейсом;

- SSP (Serial Storage Protocol) — последовательный протокол памяти, реализован­ный на архитектуре последовательной памяти SSA (Serial Storage Architecture).

Ниже описана история развития параллельных интерфейсов в спецификации SCSI-3.

- В стандарте SPI (1995 г.) определен Р-кабель и коннекторы для широкой
шины на одном кабеле с 68-контактными разъемами, называемый «кабелем
SCSI-3». SPI определяет скорость Fast SCSI (Fast Wide SCSI со скоростью
20 Мбайт/с). Позже появилось дополнительная спецификация Fast-20, более известная как Ultra SCSI (Ultra Wide SCSI со скоростью 40 Мбайт/с).

- В стандарте SPI-2 (1999 г.) снова удвоена частота переключений благодаря
использованию интерфейса LVD. Интерфейс Fast-40 SCSI более известен как Ultra2 SCSI (Wide Ultra2 SCSI со скоростью передачи 80 Мбайт/с). Введен разъем SCA-2 (Single Connector Attachment) с возможностью «горячей замены» (hot swap) и 68-контактный разъем с «очень большой» плотностью контактов VHDCI (Very High Density Connector). В стандарт SPI-2 включен и А-кабель SCSI-2, и Р-кабель SPI. Это законченный документ, не ссылающийся на предыду­щий и описывающий все параллельные интерфейсы SCSI, вплоть до Fast-40.

- В стандарте SPI-3 (2000 г.) удвоена частота передачи, но уже за счет двойной синхронизации — интерфейс Fast-80DT (DT — Double Transition), известный как UltraS SCSI или Ultral60. Для данного режима рассматривается только широкий (16 бит) вариант. Традиционный (высоковольтный) дифференциаль­ный вариант, а также 32-битная шина с Q-кабелем упразднены. Рассматривается только LVD-интерфейс, синхронизация по фронтам и спадам сигналов REQ#/

- АСК#, вводится CRC-контроль передач, пакетированные команды и сообщения (Packetized Commands and Messaging) и быстрый арбитраж (Quick Arbitration). Это тоже законченный документ, описывающий все параллельные интерфейсы SCSI вплоть до Fast-80DT и отменяющий HVD, SCAM (SCSI Configured Auto-Matically — автоматическое конфигурирование устройств) и 32-битную шину.

- В стандарте SPI-4 (2001 г.) снова удваивается частота переключений и полу­чается интерфейс Fast-160iDT, уже известный как Ultra320 SCSI (только ши­рокая шина, 320 Мбайт/с).


Лекция 7 Подсистема прерываний

7.1. Организация прерываний

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

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

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

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

 

 

Рисунок 7.1 - Типы прерываний

 

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

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

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

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

Внутренние (логические) прерывания формируются самим процессором, когда он встречается с некоторыми особыми событиями вроде деления на 0. Это прерывания с номерами 0, 1, 3,4 (см. табл. 7.1).

Внешние аппаратные прерывания вызваны сигналами, внешними по отношению к центральному процессору, и подаются на его входы INT и NMI

Прерывания по входу INT относятся в аппаратным маскируемым прерываниям, поскольку могут быть разрешены или запрещены флагом IF регистра флагов.

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

Номер вектора прерываний маскируемых прерываний передается в процессор по его восьми младшим разрядам шины данных.

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

Так как номер немаскируемого прерывания заведомо известен, то он не передается в процессор и обработка этого прерывания начинается быстрее, чем обработка маскируемых прерываний. Запрос на прерывание NMI маскируется установкой в 1 старшего 7-го бита порта 70h. При этом остальные биты (6-й бит всегда равен 0, а биты 5 - 0 задают адрес CMOS памяти) должны остаться без изменения. Приоритет NMI выше всех маскируемых прерываний.

Таблица векторов прерываний. Для того чтобы связать номер прерывания с адресом программы обработки прерываний (обработчика прерываний), используется таблица векторов прерываний, занимающая в реальном режиме первый килобайт оперативной памяти - адреса от 0000:0000h до 0000:03FFh. В защищенном режиме используется таблица дескрипторов прерываний IDТ. Таблица состоит из 256 элементов - FAR-адресов обработчиков прерываний. Эти элементы называются векторами прерываний. В первом слове элемента таблицы записано смещение, а во втором - сегмент адреса обработчика прерываний.

Прерыванию с номером 0 соответствует адрес 0000:0000h, прерыванию с номером 1 - 0000:0004h и т.д. Прерыванию с номером n будет соответствовать адрес 0000:4*n.

 

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

Обработка прерываний. Несмотря на многообразие типов прерываний алгоритм обработки прерывания процессором один и тот же и изображен на рис. 7.2.

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

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

 

Рисунок 8.2 - Алгоритм обработки прерываний

 

-прочитать содержимое элемента таблицы векторов прерываний для вектора с номером того прерывания, какое требуется обработать;

-запомнить это содержимое (адрес старого обработчика прерываний) в области данных программы;

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

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

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

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

Поэтому перед записью в вектор прерываний нужно запретить прерывания командой CLI, а после записи - разрешить командой STI.

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

Для чтения вектора используйте функцию 35h DOS (прерывания 21h). Перед ее вызовом регистр AL должен содержать номер вектора в таблице. После выполнения функции в регистрах ES:BX будет искомый адрес обработчика прерывания.

Функция 25h DOS устанавливает для вектора с номером, находящимся в AL, обработчик прерываний DS:DX.

Коррекция системных обработчиков прерываний. Если необходимо добавить какие-либо собственные действия к тем, что выполняет стандартный обработчик прерывания, то можно организовать цепочку прерываний. Для организации цепочки прерываний необходимо записать в таблицу векторов адрес собственного обработчика, не забыв сохранить прежнее содержимое таблицы. Обработчик пользователя получает управление по прерыванию, выполняет какие-либо действия, затем передает управление стандартному обработчику. Можно сделать и по-другому: Обработчик пользователя вызывает стандартный обработчик, а затем выполняет дополнительные действия. Т.е. можно вставить дополнительную обработку как до вызова стандартного обработчика, так и после его вызова.




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 715; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.104 сек.