Аппаратные интерфейсы ПК

         

Интерфейс клавиатуры


Традиционная клавиатура PC представляет собой унифицированное устройство ввода со стандартным разъемом и последовательным интерфейсом связи с систем­ной платой. В настоящее время используются так называемые расширенные (enhanced) клавиатуры ATилн PS/2, имеющие более 100 клавиш. Они вытеснили первые 84-клавишные клавиатуры AT и тем более клавиатуры XT. По электри­ческому интерфейсу клавиатуры XT и AT совпадают, за исключением того, что двунаправленный интерфейс позволяет клавиатуре AT принимать команды от системной платы. Однако по логическому интерфейсу они несовместимы (клави­атура AT иногда имеет переключатель режима XT/AT). Клавиатура PS/2 отли­чается от AT только исполнением разъема, при необходимости можно использо­вать переходник.

Клавиатуры имеют внутренний микроконтроллер, способный определить факты нажатия и отпускания клавиш, при этом можно нажимать очередную клавишу, даже удерживая несколько ранее нажатых. При нажатии клавиши клавиатура передает идентифицирующий ее скан-код. При удержании клавиши в нажатом положении через некоторое время клавиатура начинает автоповтор передачи скан-кода нажатия этой клавиши. Задержка автоповтора (typematic delay) и скорость автоповтора (typematic rate) для клавиатур AT программируются. Расширенная клавиатура позволяет выбирать 1 из 3 наборов скан-кодов.

С распространением шины USB появились клавиатуры и с этим интерфейсом; они имеют и встроенный хаб, например для подключения мыши USB. Клавиатура USB питается от шины. Для клавиатуры USB требуется специальная поддержка со стороны BIOS; она имеется в современных системных платах.

8.1. Интерфейс клавиатуры.___________________________________________ 311



Для подключения клавиатуры предназначен последовательный


Для подключения клавиатуры предназначен последовательный синхронный дву­направленный интерфейс, состоящий из двух обязательных сигналов KB-Data и KB-Clock. Обе линии на системной плате подтягиваются резисторами к шине +5 В. На обеих сторонах интерфейса выходные сигналы низкого уровня формируются выходами элементов с открытым коллектором (стоком), а состояние линий мо­жет быть прочитано через входные линии контроллеров. Вид разъемов (со сторо­ны задней панели) и назначение контактов приведены на рис. 8.1. Конструктивно возможны два варианта разъема — обычная 5-контактная розетка DIN (клавиату­ра AT) или малогабаритная розетка mini-DIN (PS/2). На этот же разъем через плавкий предохранитель поступает напряжение питания клавиатуры +5 В.



Рис. 8.1. Разъемы (вид со стороны контактов) подключения клавиатур: а — AT и б — PS/2

ВНИМАНИЕ---------------------------------------------------------------------------------

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

Процессор общается с клавиатурой через контроллер интерфейса клавиатуры — микроконтроллер 8042 или программно-совместимый с ним, установленный на системной плате. Для обмена информацией в основном используется порт 60h, из которого принимаются скан-коды. О необходимости чтения скан-кода контрол­лер сигнализирует процессору через аппаратное прерывание IRQ1, сигнал которо­го вырабатывается по каждому событию клавиатуры (нажатию и отпусканию клавиши). Задание параметров автоповтора, выбор таблиц скан-кодов, управле­ние светодиодными индикаторами, а также управление режимом сканирования матрицы клавиш и запуск диагностического теста осуществляется командами, посылаемыми в этот же порт.
Контроллер транслирует команды в посылки, на­правляемые к клавиатуре.

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





312_________ Глава 8. Специализированные интерфейсы периферийных устройств



ный момент, когда интерфейс находится в покое. Клавиатура формирует старто­вый бит (низкий уровень) на линии KB-Data и первый импульс KB-Clock, что яв­ляется сигналом контроллеру о необходимости начала приема. После подъема KB-Clock она выводит 0-й бит данных на линию KB-Data, а затем и следующий им­пульс KB-Clock. Контроллер должен «защелкивать» принятый бит данных по спа­ду KB-Clock. Так передаются все 8 бит данных и бит паритета, дополняющий чис­ло единичных бит до нечетного. После синхроимпульса бита паритета контроллер клавиатуры должен сформировать импульс KB-Clock, подтверждающий прием байта (Ack). Если весь байт с битом паритета не будет получен контроллером за 2 мс, контроллер прекращает прием данного байта и фиксирует ошибку тайм-аута.



Рис. 8.2. Временные диаграммы интерфейса клавиатуры: а — прием посылки от клавиатуры,

б — передача команды в клавиатуру

Обратная передача — вывод команды контроллера в клавиатуру — происходит несколько сложнее (рис. 8.2, б). Из состояния покоя контроллер устанавливает низкий уровень KB-Clock на 250 мкс и формирует старт-бит (низкий уровень) — это сигнал клавиатуре на прием команды. На него клавиатура должна ответить серией из 11 импульсов KB-Clock. По спаду очередного синхроимпульса контрол­лер выставляет очередной бит данных, а клавиатура его «защелкивает» по фронту формируемого ею же синхроимпульса. После бита паритета (9-й импульс) и единич­ного стоп-бита (10-й) на 11-м импульсе клавиатура формирует нулевой бит под­тверждения (Ack).


После этого контроллер формирует импульс KB-Clock (60 мкс), который является запросом на прием ответа клавиатуры. Контроллер ожидает окончания ответа на этот запрос не долее 20 мс и, если ответ не придет за это время, сформирует ошибку тайм-аута. Ошибка будет также в случае, если клавиатура не введет первый синхроимпульс за 15 мс от начала запроса или контроллер не примет данные, включая стоп-бит, за 2 мс с момента появления синхроимпульса бита 0.

На системной плате PC/XT контроллера 8042 не было, а интерфейс клавиатуры (однонаправленный) был реализован аппаратной логикой — регистром сдвига, параллельный выход которого подключается к входам порта А системного интер­фейса 18255. По приему байта от клавиатуры вырабатывается аппаратное прерыва­ние IRQ1, обработчик которого может прочитать принятый байт из порта 60h. С по­мощью бит 7 и 6 порта 61h возможны программная блокировка и сброс клавиатуры соответственно. Сброс клавиатуры XT осуществляется обнулением линии KB-Clock.

8.1. Интерфейс клавиатуры____________________________________________ 313


Интерфейс коммутируемой телефонной линии и телефонного аппарата


Коммутируемые линии (dial-up lines) являются наиболее распространенным внеш­ним интерфейсом телефонной сети, к которому компьютер подключается с помо­щью модема. Эти линии являются аналоговыми, по одной двухпроводной линии передаются сигналы в обоих направлениях (прием и передача). Коммутируемые линии обеспечивают прохождение сигнала (речевого или данных через модем)


10.3. Интерфейс коммутируемой телефонной линии и телефонного аппарата   415

в полосе частот шириной 3,1 кГц (300-3400 Гц), а также поддерживают сигнали­зацию, принятую для аналоговой телефонии. Коммутируемые линии позволяют устанавливать временные соединения с любыми абонентами телефонной сети в пре­делах возможностей, предоставляемых АТС, к которой произведено подключение. В качестве соединителей при подключении абонента в нашей стране широко ис­пользуются 4-контактные разъемы, изображенные на рис. 10.4, а. Для некоторых специфических случаев применения эти разъемы могут иметь размыкатели и допол­нительный конденсатор. Как правило, используется только одна пара контактов. Сейчас их вытесняют соединители международного стандарта RJ-11 — 6-позици-онный модульный коннектор с четырьмя контактами, из которых задействуется только средняя пара (рис. 10.4, б).

ВНИМАНИЕ

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

Рис. 10.4. Розетки для телефонных линий: а —стандарт бывшего СЭВ, б — международный стандарт

Упрощенная схема стандартной нагрузки линии — телефонного аппарата — при­ведена на рис. 10.5. В состоянии покоя (idle) аппаратура АТС посылает в линию напряжение постоянного тока 60 В через ограничительные резисторы с суммар­ным сопротивлением 700-1500 Ом и следит за током в линии.
При опущенной трубке (on-hook) KT переключается и подключает через конденсатор вызывное устройство (Зв), при этом телефон не нагружает линию по постоянному току. Для вызова абонента АТС посылает серию импульсов амплитудой около 120 В с час­тотой 25 Гц. Эти импульсы через конденсатор проходят в обмотку звонка и вызы­вают колебания молоточка. При снятой трубке (off-hook) к линии подключается разговорный узел (это положение показано на рисунке), его сопротивление посто­янному току — около 150-600 Ом. Разговорный узел содержит микрофон, телефон и схему подавления прослушивания сигнала собственного микрофона. Для пре­дотвращения травм органов слуха предусмотрен ограничитель напряжения зву­кового сигнала. Подключение разговорного узла приводит к протеканию посто­янного тока в линии, что позволяет станции фиксировать факт снятия трубки. При снятии трубки станция посылает непрерывный тональный сигнал ответа (425 Гц) и готовится принять сигналы набора номера. В это время (а также во время разго-

416

Глава 10. Интерфейсы компьютерных сетей

вора после установления соединения) на нагрузке телефона падение напряжения составляет около 5-15 В постоянного тока, и на фоне этого уровня переменная составляющая (звуковой сигнал разговора) имеет амплитуду порядка десятков-сотен милливольт. Отбой (вешание трубки, on-hook) сигнализируется разрывом цепи для постоянного тока. На данной схеме показаны цепи импульсного набора номера (pulse dialing). При наборе номера (трубка снята) разговорный узел отклю­чается контактом КН-1. Во время «взвода» диска контакт КН-2 замыкается, во время обратного хода он п раз размыкается (по одному разрыву на единицу наби­раемой цифры, 0—10 разрывов). После окончания набора цифры контакты КН-1 снова подключают разговорный узел. Длительность (60 мс) и частота (10±1 имп/с) разрывов стандартизованы и рассчитаны на время срабатывания шаговых иска­телей «древних» станций. Импульсный набор ради совместимости со старыми телефонами поддерживается всеми АТС.


О результате коммутации станция сиг­нализирует короткими гудками «занято» (busy) — тональный сигнал 425 Гц, дли­тельность посылки и паузы 0,35 с или длинными гудками (1с посылка, 3 с пауза), синхронными не всегда с сигналами, вызывающими абонента. Временная диаграм­ма сигналов на внешних контактах телефонного аппарата в разных стадиях пока­зана на рис. 10.6.



Рис. 10.5. Упрощенная схема телефонного аппарата (трубка снята)



Рис. 10.6. Временная диаграмма работы телефонного аппарата с импульсным набором

При тональном наборе (tone dialing) каждая цифра кодируется парой из восьми тональных частот звукового диапазона, передаваемых телефоном в линию. Допус­тимы 16 комбинаций, которые позволяют кодировать 10 цифр и дополнитель-

10.3. Интерфейс коммутируемой телефонной линии и телефонного аппарата

417

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

Для блокированных (спаренных) телефонов одна двухпроводная линия от АТС обслуживает двух абонентов с разными номерами поочередно. Для разделения линий используется пассивное устройство-блокиратор — два однополупериодных выпрямителя сигнала с линии от АТС. Здесь АТС задействует положительную полярность сигнала для работы с абонентом 1 и отрицательную — для работы с абонентом 2. Когда приходит внешний вызов, его сигнал станция посылает в по­лярности, соответствующей вызываемому абоненту.


Для опроса состояния (под­нята/ опущена трубка) АТС чередует полярность опрашивающего напряжения с низкой частотой (этот рокот можно услышать, если в момент плавного снятия трубки контакты включения трубки сработают раньше, чем замыкающие контак­ты нагрузочного резистора). Как только обнаружена снятая трубка у одного из абонентов, станция останавливает чередование опроса на «его» полярности и ра­ботает вышеописанная сигнализация. Для спаривания телефонов применяют и частотное разделение: для одного из абонентов сигнал передается на высокой частоте (с модуляцией). Блокирование (спаривание) телефонов позволяет эко­номить физические линии, но имеет ряд очевидных неудобств: абоненты могут пользоваться телефонами лишь поочередно, «захватывая» линию на время до «от­боя». Для внешних звонков к абоненту линия представляется занятой как во вре­мя его разговора, так и во время разговора соседа. Сблокированные линии «не любят» некоторые модели модемов.

Для автоматического определения номера (АОН) вызывающего абонента имеет­ся специальная система сигнализации, поддерживаемая большинством отече­ственных АТС. Ее работу иллюстрирует диаграмма, показанная на рис. 10.7. Ког­да телефон с АОН получает вызывной сигнал, он до подключения разговорного узла включает цепь, на которой падает напряжение около 24 В, и через 250-275 мс в линию посылает тональный сигнал «запрос». Этот сигнал должен иметь частоту 500 Гц и длительность 100 мс. В ответ на этот сигнал АТС передает несколько раз повторяющийся пакет из десяти двухчастотных посылок, в котором сообщается категория и 7-значный номер вызывающего абонента. Каждая посылка продол­жается 40 мс и содержит две из шести возможных тональных частот (700,900,1100, 1300, 1500 и 1700 Гц). Таким образом кодируются цифры 0-9 и служебные сим­волы «начало» и «повтор». Символ «начало» обрамляет пакет, символ «повтор» используется, если последующая цифра повторяет предыдущую (чтобы облегчить выделение посылок).


После приема ответа АОН может имитировать (для вызы-

418

Глава 10. Интерфейсы компьютерных сетей

вающего абонента) длинные гудки, в это время вызываемый абонент может ре­шить, снимать трубку или нет, включить автоответчик и т. п. На время разговора (или работы автоответчика) включается РУ с обычным сопротивлением, и напря­жение падает до 5-15 В. Отбой выполняется обычным образом. Для зарубежных АТС аналогом услуги АОН (которая первоначально не предназначалась для ши­рокого круга пользователей) является услуга идентификации вызывающего або­нента (Caller Id), предоставляемая только цифровыми станциями. Она работает по совсем иному протоколу.



Рис. 10.7. Последовательность сигналов при автоматическом определении номера

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

Параметры сигналов зарубежных АТС и выпускаемых для них телефонов несколь­ко отличаются от отечественных: номинальное напряжение — 40 В, вызывные импульсы — до 90 В, уровень звукового сигнала при разговоре ниже. Из-за этих различий, например, абонент отечественного телефона хуже слышит абонента им­портного телефона, а абонент импортного телефона слышит первого лучше. Из-за слишком большой амплитуды вызывного напряжения (на некоторых АТС она может достигать 200 В) аппараты могут выходить из строя. Защита линии от пе­ренапряжения с помощью стабилитронов или варисторов в этом случае не позво­лит дозвониться до «защищенного» абонента: при большой амплитуде импульсов ток потечет через ограничитель и станция зафиксирует это как снятие трубки.


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

10.3. Интерфейс коммутируемой телефонной линии и телефонного аппарата         419

АТС. Любопытным оказался факт, что ограничитель напряжения был спрятан в кабеле, прилагавшемся^ модему (с виду — обычный шнур с вилками RJ-11). Схе­ма не претендует на оптимальность решения, но работает.



Рис. 10.8. Стабилизатор вызывного напряжения

На линиях отечественных АТС рекомендуется использовать оборудование, спе­циально адаптированное для нашей страны (и сертифицированное Министер­ством связи).


Интерфейс LPC


Интерфейс LPC (Low Pin Count — малое число выводов) предназначен для ло­кального подключения устройств, ранее использовавших шину X-Bus или ISA: контроллеров НГМД, последовательных и параллельных портов, клавиатуры, аудио­кодека, BIOS и т. п. Введение нового интерфейса обусловлено изживанием шины ISA с ее большим числом сигналов и неудобной асинхронностью. Интерфейс обес­печивает те же циклы обращения, что и ISA: чтение-запись памяти и ввода-вывода, DMA и прямое управление шиной (bus mastering). Устройства могут вырабаты­вать запросы прерываний. В отличие от ISA/X-Bus с их 24-битной шиной адреса, обеспечивающей адресацию лишь в пределах первых 16 Мбайт памяти, интерфейс LPC имеет 32-битную адресацию памяти, что обеспечивает доступ к 4 Гбайт па­мяти. 16-битная адресация портов обеспечивает доступ ко всему пространству 64 К портов. Интерфейс синхронизирован с шиной PCI, но устройства могут вво­дить произвольное число тактов ожидания. Интерфейс программно прозрачен — как и для ISA/X-Bus, не требует каких-либо драйверов. Контроллер интерфейса LPC является устройством-мостом PCI. По пропускной способности интерфейс

224_____________________________________ Глава 6. Шины и карты расширения

практически эквивалентен этим шинам. В спецификации LPC 1.0 приводится расчет пропускной способности интерфейса и устройств, его использующих. При наличии буферов FIFO интерфейс наиболее выгодно использовать в режиме DMA. В этом случае главным потребителем будет LPT-порт — при скорости пе­редачи данных 2 Мбайт/с он займет 47 % полосы интерфейса. Следующим будет инфракрасный порт — 4 Мбит/с (11,4 %). Остальным устройствам (контроллер НГМД, СОМ-порт, аудиокодек) требуются еще меньшие доли, в результате они занимают до 75 % полосы при одновременной работе. Таким образом, перевод этих устройств с ISA/X-Bus на LPC не должен вызывать проблем производительности более острых, чем были на старых шинах. Интерфейс имеет всего 7 обязательных сигналов:

¦     LAD[3:0] — двунаправленная мультиплексированная шина данных;


¦     LFRAME* — индикатор начала и конца цикла, управляемый хостом;

¦     LRESET# — сигнал сброса, тот же, что и RST# на шине PCI;

¦     LCLK — синхронизация (33 Мгц), тот же сигнал, что и CLK на шине PCI;

Дополнительные сигналы интерфейса LPC:

¦     LDRQ* — кодированный запрос DMA/Bus Master от периферии;

¦     SERIRQ — линия запросов прерывания (в последовательном коде), использу­ется, если нет стандартных линий запросов IRQ в стиле ISA;

¦     CLKRUN* — сигнал, используемый для указания на остановку шины (в мобиль­ных системах), требуется только для устройств, нуждающихся в DMA/BusMaster в системах, способных останавливать шину PCI;

¦     РМЕ# — событие системы управления потреблением (Power Management Event),может вводиться периферией, как и в PCI;

¦     LPCPD# — Power Down, указание от хоста устройствам на подготовку к вы­

ключению питания;

¦     L.SMI* — запрос прерывания SMI# для повтора инструкции ввода-вывода.

Сигналы LFRAME* и LAD[3:0] синхронизированы (являются действительными) по фронту LCLK. По шине LAD[3:0] в каждом такте цикла передаются поля элементов протокола. Обобщенная временная диаграмма цикла обмена по LPC приведена на рис. 6.15. Начало каждого цикла хост отмечает сигналом LFRAME*, помещая на шину LAD[3:0] поле START. По сигналу LFRAME* все ПУ должны прекратить управление шиной LAD[3:0], а по коду поля START они должны декодировать последующие события как цикл шины. В следующем такте хост снимет сигнал LFRAME* и поместит на шину LAD[3:0] код типа цикла CYCTYPE. Сигнал LFRAME# может длиться и более одного такта, но признаком начала цикла (поля START) является последний такт перед снятием сигнала. С помощью сигнала LFRAME* хост может принудительно прервать цикл (например, по ошибке тайм-аута), выставив соответствующий код.





3.4. Интерфейс LPC                                                                                                         225





Рис. 6.15. Протокол LPC

В поле START возможны следующие коды:

¦     0000 — начало цикла обращения хоста к устройству;

¦     0010 — предоставление доступа ведущему устройству 0;

¦     ООН — предоставление доступа ведущему устройству 1;

¦     1111 — принудительное завершение цикла (abort).

Остальные коды зарезервированы.

Поле CYCTYPE задает тип и направление передачи. Бит 0 задает направление (0 — чтение, 1 — запись), биты [2:1] — тип обращения (00 — порт, 01 — память, 10 — DMA, 11 — резерв), бит 3 — резерв (0).

Поле TAR (Turn-Around) служит для смены «владельца» шины LAD[3:0], оно зани­мает 2 такта. В первом такте прежний владелец помещает код 1111, во втором пе­реводит буферы в третье состояние.

Поле ADDR служит для передачи адреса. В цикле памяти оно занимает 8 тактов (32 бита), в цикле ввода-вывода — 4 такта. Передача адреса начинается со старших битов (чтобы раньше срабатывал дешифратор адреса).

В поле DATA передаются данные. На каждый байт требуется 2 такта, передача начи­нается с младшей тетрады. Многобайтные передачи начинаются с младшего байта. Поле SYNC служит для введения тактов ожидания устройством, к которому выпол­няется обращение. Оно может содержать следующие коды (остальные зарезерви­рованы):

¦     0000 — готовность (без ошибок), для DMA означает снятие запроса для данного канала;

¦     0101 — короткое ожидание (несколько тактов);

¦     0110 —длинное ожидание;

¦     1001 — готовность и присутствие запроса для канала DMA (для других типов

обращения недопустимо);

¦     1010 — ошибка: данные переданы, но возникли условия, при которых на ши­

нах PCI или ISA выработался бы сигнал SERR* или ЮСНК# (для DMA также

означает снятие сигнала запроса).

226_____________________________________ Глава 6. Шины и карты расширения

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


Начав цикл, хост читает поле синхронизации. Если в тече­ние трех тактов адресованное устройство не ответит, хост считает, что его нет на шине, и прекращает транзакцию. Если приходит код короткого ожидания, хост дожидается его смены на готовность или ошибку, но после 8 тактов ожида­ния он прервет транзакцию по тайм-ауту. Код длинного ожидания может прихо­дить сколь угодно долго, ответственность за отсутствие зависания ложится на адресованное устройство. При прямом управлении поле SYNC выставляется хостом, и устройство должно терпеливо ожидать готовности, без каких-либо тайм-аутов. В самом быстром варианте (без тактов ожидания) поле SYNC занима­ет один такт.

На рис. 6.16 приведена последовательность полей при обращениях хоста к памяти или портам (серым цветом помечены поля, вводимые устройством). Во всех этих обращениях передается по одному байту. Для чтения памяти, предполагая 5 так­тов поля SYNC (время доступа к EPROM 120 не), требуется 21 такт (0,63 мкс), что обеспечивает скорость чтения памяти 1,59 Мбайт/с. Если память конвейери­зирована, то последующие обращения будут быстрее. Для записи в память поле SYNC займет 1 такт, а весь цикл — 17 тактов (0,51 мкс), что дает скорость записи 1,96 Мбайт/с. Обращения к портам за счет более короткой адресации и без тактов ожидания (1 такт SYNC) занимают по 13 тактов (0,39 мкс), что дает скорость 2,56 Мбайт/с для чтения и записи.

а   | START

CYCTYPE

ADDR

TAR

lsyNc

DATA

TAR

б   | START

CYCTYPE

ADDR

DATA

TAR

SYNQ

TAR

Рис. 6.16. Обращения к памяти и портам: а — чтение, б — запись

Для организации обмена по DMA и прямого управления хост должен иметь по одной входной линии LDRQ* для каждого подключенного устройства, использующего эти функции. По этой линии устройство передает состояние запросов каналов DMA в последовательном коде, как показано на рис. 6.17. Посылка начинается со старт-бита, за которой следуют код номера канала и бит запроса ACT: 1 (высокий уро­вень) — запрос активен, 0 — пассивен.


Номер канала 4 ( код 100) зарезервирован для прямого управления (он соответствует традиционно недоступному каналу DMA). Посылка передается при каждой смене состояния запросов. Нормально таким способом передается лишь запрос, а снятие его сигнализируется полем SYNC. Передама, данных DMA (рис. 6.18) выполняется под управлением хоста, но несколько отличается от обычных обращений к портам и памяти. Здесь появляются новые поля:

¦     поле SIZE определяет размер передачи: 0000 — 1 байт, 0001 — 2 байта, 0011 —4 байта, остальные значения зарезервированы;

¦     поле CHANNEL служит для передачи хостом номера канала DMA (биты [2;0])

и признака конца цикла (ТС, бит 3).

6.4. Интерфейс LPC

227



Рис. 6.17. Посылка запроса DMA или прямого управления

А

START

CYCTYPE

CHANNEL

SIZE

DATA

TAR

,ЈSYNC

TAR   |

б

START

CYCTYPE

CHANNEL

SIZE

TAR

SYNC

DATA

TAR

Рис. 6.18. Обращения DMA: a — чтение памяти, б — запись в память

Циклы чтения памяти, в зависимости от длины обращения (1, 2 или 4 байта), без тактов ожидания (они скрыты контроллером DMA) занимают 11,18 и 32 так­тов (0,33, 0,54 или 0,96 икс), что обеспечивает производительность 3,03, 3,70 или 4,17 Мбайт/с соответственно. Циклы записи занимают 11,14 или 20 тактов (0,33, 0,42 или 0,60 мкс), что обеспечивает производительность 3,03,4,76 или 6,67 Мбайт/с. На рисунке выделены рамкой последовательности полей, повторяющиеся при пе­редаче 2 и 4 байтов.

Прямое управление шиной ведущее устройство запрашивает так же, как и прямой доступ, но указывая зарезервированный номер канала 4 (100). Предоставляя управление, хост в поле START задает номер мастера, который позже определит тип цикла (рис. 6.19). Прямое управление подразумевает обращение к ресурсам хоста (системной памяти, устройству PCI). Данные в 2- и 4-байтных передачах следуют друг за другом без зазора, но в циклах чтения памяти и портов всегда будут такты ожидания, поскольку потребуется время на арбитраж шины PCI или доступ к контроллеру памяти.


Из расчета 6 тактов (меньше — вряд ли, возможно и больше) поля SYNC, циклы обращения к памяти (и чтения, и записи) потребуют 25,27 или 31 такт (0,75, 0,81 или 0,93 мкс), что обеспечивает производительность 1,33, 2,47 или 4,30 Мбайт/с. За счет более короткой адресации обращение к портам быст­рее — 21, 23 или 27 тактов (0,63, 0,69 или 0,81 мкс), что обеспечивает производи­тельность 1,59, 2,90 или 4,94 Мбайт/с.

а   | START

TAR

CYCTYPE

ADDR

SIZE

TAR

SYNC

DATA

TAR

б   | START

TAR

CYCTYPE

ADDR

SIZE .

DATA

TAR

SYNC

TAR

Рис. 6.19. Обращения периферийного устройства (Bus Master): a — чтение памяти или порта,

б — запись в память (порт)

Электрический интерфейс для сигналов LAD[3:0], LFRAME#, LDRQ# и SERIRQ со­ответствует спецификации PCI 2.1 для питания 3,3 В. Остальные сигналы в зави­симости от системной платы могут быть с уровнями как 5 В, так и 3,3 В.

228____________________________________ Глава 6. Шины и карты расширения

Конфигурирование устройств LPC не предусматривает использования протоко­лов PCI или ISA PnP, поскольку все устройства LPC априорно известны систем­ной BIOS. Для обращения к устройствам LPC хост должен декодировать их адре­са и направлять обращения по ним на контроллер LPC.


Интерфейс MIDI


Цифровой интерфейс музыкальных инструментов MIDI (Musical Instrument Digital Interface) является последовательным асинхронным интерфейсом с частотой пе­редачи 31,25 Кбит/с. Этот интерфейс, разработанный в 1983 году, стал фактиче­ским стандартом для сопряжения компьютеров, синтезаторов, записывающих и воспроизводящих устройств, микшеров, устройств специальных эффектов и дру­гой электромузыкальной техники. В настоящее время интерфейс MIDI имеют и дорогие синтезаторы, и дешевые музыкальные клавиатуры, которые могут исполь­зоваться в качестве устройств ввода компьютера. По интерфейсу MIDI устрой­ства обмениваются между собой сообщениями, кратко описанными в книге [1]. На одном интерфейсе может быть организовано до 16 логических каналов, каж­дый из которых может управлять своим инструментом.

В физическом интерфейсе применяется токовая петля 5мА (возможно до 10 мА) с гальванической (оптронной) развязкой входной цепи. Логическому нулю соот­ветствует наличие тока, логической единице (и покою) — отсутствие тока (в «клас­сической» токовой петле телекоммуникаций все наоборот).

346

Глава 8. Специализированные интерфейсы периферийных устройств

Интерфейс определяет три типа портов: MIDI-In, MIDI-Out и MIDI-Thru. Входной порт MIDI-In представляет собой вход интерфейса «токовая петля», галь­ванически развязанного от приемника оптроном с быстродействием не хуже 2 мкс. Устройство отслеживает информационный поток на этом входе и реагирует на адресованные ему команды и данные.

Выходной порт MIDI-Out представляет собой выход источника тока, гальваниче­ски связанного со схемой устройства. Ограничительные резисторы предохраня­ют выходные цепи от повреждения при замыкании на землю или источник 5 В. На выход подается информационный поток от данного устройства. При специаль­ной настройке устройства в этом потоке может содержаться и транслированный входной поток, но это нетипично.

Транзитный порт MIDI-Thru служит только для ретрансляции входного потока, по электрическим свойствам он аналогичен выходному.
Его наличие не является обязательным для всех устройств.

В качестве разъемов применяются 5-контактные разъемы DIN, распространен­ные в бытовой звуковой аппаратуре, схема соединительного кабеля приведена на рис. 8.17.



Рис. 8.17. Соединительные кабели MIDI

Внешний порт MIDI (с сигналами ТТЛ) обычно выводится на неиспользуемые контакты (12 и 15) разъема игрового адаптера (DB-15S). При этом для подключе­ния стандартных устройств MIDI требуется переходной адаптер, реализующий интерфейс «токовая петля» (на разъеме карты интерфейс ТТЛ). Переходной адап­тер обычно встраивается в специальный кабель, вариант схемы которого приве­ден на рис. 8.18. Некоторые модели PC имеют встроенные адаптеры и стандарт­ные 5-штырьковые разъемы MIDI.

Программно порт MIDI обычно совместим с UART MPU-401. MPU-401 фирмы Roland — первая карта расширения для PC с интерфейсом MIDI, получившая широкое распространение. MPU расшифровывается как MIDI Processing Unit — устройство обработки сообщений MIDI. Этот контроллер кроме асинхронного последовательного порта (UART), реализующего физический интерфейс MIDI, имел развитые аппаратные средства для использования PC в качестве секвенсора. Контроллер MPU-401 поддерживал простой режим работы — UART mode, в котором использовался только двунаправленный асинхронный порт; в современных зву­ковых картах совместимость с MPU-401 поддерживается только в этом режиме.

8.5. Интерфейсы аудиоустройств

347

 



Рис. 8.18. Вариант схемы кабеля-адаптера MIDI

В пространстве ввода-вывода MPU-401 занимает два смежных адреса MPU (обыч­но ЗЗОЬ)и MPU+1.

¦     Порт DATA (адрес MPU+0) — запись и считывание байт, передаваемых и прини­маемых по интерфейсу MIDI. В интеллектуальном режиме через этот же порт считываются и вспомогательные данные от MPU (не относящиеся к потоку MIDI).

¦     Порт STATUS/COMMAND (адрес MPU+1) — чтение состояния/запись команд (за­пись — только для интеллектуального режима).


В байте состояния определе­ны следующие биты:

•       бит 7 — D5R (Data Set Ready) — готовность (DSR=0) принятых данных для чтения (бит устанавливается в единицу, когда все принятые байты считаны из регистра данных);

•       бит 6 — DRR (Data Read Ready) — готовность (DRR=0) UART к записи в ре­гистр данных или команд (условие готовности к записи не возникнет, если

приемник имеет непрочитанный байт данных).

По включении питания «настоящая» карта MPU-401 устанавливается в интеллек­туальный режим, из которого в режим UART ее можно перевести командой с ко­дом 3Fh. Программный сброс MPU-401 (опять-таки в интеллектуальный режим) осуществляется командой RESET (код FFh), на эту команду MPU ответит подтверж­дением АСК (FEh). Байт подтверждения извлекается из регистра данных, до его прихода следующую команду MPU не воспримет. На команду с кодом 3Fh MPU подтверждением не отвечает (некоторые эмуляторы отвечают и на эту команду).

Ввод данных может осуществляться по программному опросу бита DSR или по преры­ваниям. Аппаратные прерывания от MPU в режиме UART вырабатываются по приему байта. Обработчик прерывания должен считать все поступившие байты, проверив перед выходом, что DSR-1 (иначе возможны потери принятых байт).

348________ Глава 8. Специализированные интерфейсы периферийных устройств

Вывод данных разрешается битом DRR, прерывания по готовности вывода не выра­батываются.

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

На некоторых системных платах применяются БИС контроллеров интерфей­сов, в которых режим UART, используемый для СОМ-порта, конфигурировани­ем через BIOS SETUP может быть переведен в режим MIDI-порта.

Для подключения к компьютеру большого числа устройств MIDI можно исполь­зовать шину USB.Для этого, например, фирма Roland выпускает 64-канальный процессорный блок S-MPU64, который кроме шины USB имеет 4 входных и 4 вы­ходных порта MIDI. Программное обеспечение допускает объединение до 4 бло­ков на одной шине USB, что увеличивает число каналов до 256.


Интерфейс НГМД


Накопители на гибких магнитных дисках (НГМД) подключаются к контроллеру через специальный стандартный интерфейс. Основные функции по управлению НГМД, а также кодирование-декодирование данных выполняет контроллер, рас­положенный на большинстве современных системных плат. Раньше контроллер часто выносили на специальную карту расширения («в компании» с интерфей­сом НЖМД). На плате электроники, установленной на корпусе НГМД, располо­жены только схемы приводов двигателей, усилители-формирователи сигналов записи и считывания и формирователи сигналов от датчиков.



Интерфейс RS-


Интерфейс RS-232C предназначен для подключения аппаратуры, передающей или принимающей данные ( 00Д — оконечное оборудование данных, или АПД — аппара­тура передачи данных; DTE — Data Terminal Equipment), к оконечной аппаратуре каналов данных {АКД; DCE—Data Communication Equipment). В роли АПД может вы­ступать компьютер, принтер, плоттер и другое периферийное оборудование. В роли АКД обычно выступает модем. Конечной целью подключения является соединение двух устройств АПД. Полная схема соединения приведена на рис. 2.1; интерфейс позволяет исключить канал удаленной связи вместе с парой устройств АКД, соеди­нив устройства непосредственно с помощью нуль-модемного кабеля (рис. 2.2).

Рис. 2.2. Соединение по RS-232C нуль-модемным кабелем

50________________________ Глава 2. Последовательный интерфейс —> СОМ-порт;

Стандарт описывает управляющие сигналы интерфейса, пересылку данных, элек­трический интерфейс и типы разъемов. В стандарте предусмотрены асинхронный и синхронный режимы обмена, но СОМ-порты поддерживают только асинхрон-ныйрежим. Функционально RS-232Cэквивалентен стандарту МККТТ V.24/ V.28 и стыку С2, но они имеют различные названия сигналов.

Стандарт RS-232C описывает несимметричные передатчики и приемники — сиг­нал передается относительно общего провода — схемной земли (симметричные дифференциальные сигналы используются в других интерфейсах — например, RS-422). Интерфейс не обеспечивает гальванической развязки устройств. Логиче­ской единице соответствует напряжение на входе приемника в диапазоне от -12 до -3 В. Для линий управляющих сигналов это состояние называется ON («включе­но»), для линий последовательных данных — MARK. Логическому нулю соответ­ствует диапазон от +3 до +12 В. Для линий управляющих сигналов состояние называется OFF («выключено»), а для линий последовательных данных — SPACE. Диапазон от -3 до +3 В — зона нечувствительности, обусловливающая гистере­зис приемника: состояние линии будет считаться измененным только после пере­сечения порога (рис. 2.3).
Уровни сигналов на выходах передатчиков должны быть в диапазонах от -12 до -5 В и от +5 до +12 В для представления единицы и нуля соответственно. Разность потенциалов между схемными землями (SG) соединя­емых устройств должна быть менее 2 В, при более высокой разности потенциалов возможно неверное восприятие сигналов.

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

ВНИМАНИЕ---------------------------------------------------------------------------------

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

Стандарт RS-232C регламентирует типы применяемых разъемов.

На аппаратуре АПД (в том числе на СОМ-портах) принято устанавливать вилки ПВ-25Р или более компактный вариант — DB-9P. Девятиштырьковые разъемы не имеют контактов для дополнительных сигналов, необходимых для синхронного режима (в большинстве 25-штырьковых разъемах эти контакты не используются).

На аппаратуре АКД (модемах) устанавливают розетки DB-25S или DB-9S.

Это правило предполагает, что разъемы АКД могут подключаться к разъемам АПД непосредственно или через переходные «прямые» кабели с розеткой и вилкой, у которых контакты соединены «один в один». Переходные кабели могут являться и переходниками с 9 на 25-штырьковые разъемы (рис. 2.4).

Если аппаратура АПД соединяется без модемов, то разъемы устройств (вилки) соединяются между собой нуль-модемным кабелем (Zero-modem, или Z-modem), имеющим на обоих концах розетки, контакты которых соединяются перекрестно по одной из схем, приведенных на рис. 2.5.

2.1. Интерфейс RS-232C

51





Рис. 2.3. Прием сигналов RS-232C





Рис. 2.4. Кабели подключения модемов





а                                                                                  б



Рис. 2.5. Нуль-модемный кабель: а — минимальный, б — полный

52

Глава 2. Последовательный интерфейс — СОМ-порт

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

В табл. 2.1 приведено назначение контактов разъемов СОМ-портов (и любой другой аппаратуры передачи данных АПД). Контакты разъема DB-25S определе­ны стандартом EIA/TIA-232-E, разъем DB-9S описан стандартом EIA/TIA-574. У модемов (АКД) название цепей и контактов такое же, но роли сигналов (вход-выход) меняются на противоположные.

Таблица 2.1. Разъемы и сигналы интерфейса RS-232C

Обозначение цепи

Контакт

№ провода кабеля

Направление

разъема

выносного разъема PC

СОМ-

RS-

V.24

DB-

DB-

11



З3

Л*

I/O

порт

232

Стык 2

25Р



PG

АА

101

1

5

(10)

(10)

(10)

1

-

SG

АВ

102

7

5

5

9

1

13

-

TD

ВА

103

2

3

3

5

3

3

О

RD

ВВ

104

3

2

2

3

4

5

I

RTS

СА

105 .

4

7

7

4

8

7

О

CTS

СВ

106

5

8

8

6

7

9

I

DSR

СС

107

6

6

6

2

9

11

I

DTR

CD

108/2

20

4

4

7

2

14

О

DCD

CF

109

8

1

1

1

5

15

I

RI

СЕ

125

22

9

9

8

6

18

I

1   Ленточный кабель 8-битных мультикарт.

2   Ленточный кабель 16-битных мультикарт и портов на системных платах.

3   Вариант ленточного кабеля портов на системных платах.

4   Широкий ленточный кабель к 25-контактному разъему.

Подмножество сигналов RS-232C, относящихся к асинхронному режиму, рассмот­рим с точки зрения СОМ-порта PC. Для удобства будем пользоваться мнемони­кой названий, принятой в описаниях СОМ-портов и большинства устройств (она отличается от безликих обозначений RS-232 и V.24).


Напомним, что активному состоянию сигнала («включено») и логической единице передаваемых данных со­ответствует отрицательный потенциал (ниже -3 В) сигнала интерфейса, а состо­янию «выключено» и логическому нулю — положительный (выше +3 В). Назначе­ние сигналов интерфейса приведено в табл. 2.2. Нормальную последовательность управляющих сигналов для случая подключения модема к СОМ-порту иллю­стрирует рис. 2.6.

2.1. Интерфейс RS-232C

53

Таблица 2.2. Назначение сигналов интерфейса RS-232C

Сигнал   Назначение

PG         Protected Ground — защитная земля, соединяется с корпусом устройства и экраном кабеля

SG         Signal Ground — сигнальная (схемная) земля, относительно которой действуют уровни сигналов

TD         Transmit Data — последовательные данные — выход передатчика

RD        Receive Data — последовательные данные — вход приемника

RTS       Request To Send — выход запроса передачи данных: состояние «включено»

уведомляет модем о наличии у терминала данных для передачи. В полудуплексном режиме используется для управления направлением — состояние «включено» служит сигналом модему на переключение в режим передачи

CIS       Clear To Send — вход разрешения терминалу передавать данные. Состояние

«выключено» запрещает передачу данных. Сигнал используется для аппаратного управления потоками данных

DSR       Data Set Ready — вход сигнала готовности от аппаратуры передачи данных (модем в рабочем режиме подключен к каналу и закончил действия по согласованию с аппаратурой на противоположном конце канала)

DTR       Data Terminal Ready — выход сигнала готовности терминала к обмену данными.

Состояние «включено» поддерживает коммутируемый канал в состоянии соединения

DCD       Data Carrier Detected — вход сигнала обнаружения несущей удаленного модема

Rl              Ring Indicator — вход индикатора вызова (звонка). В коммутируемом канале этим

сигналом модем сигнализирует о принятии вызова

 







3 4



7 8



9 1



11 12    1314

<




DTR

Рис. 2.6. Последовательность управляющих сигналов интерфейса

1.   Установкой DTR компьютер указывает на желание использовать модем.

2.   Установкой DSR модем сигнализирует о своей готовности и установлении со­единения.

3.   Сигналом RTS компьютер запрашивает разрешение на передачу и заявляет о своей готовности принимать данные от модема.

4.   Сигналом CTS модем уведомляет о своей готовности к приему данных от ком­пьютера и передаче их в линию.

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

6.   Сигналом CTS модем разрешает компьютеру продолжить передачу (в буфере появилось место).

54________________________ Глава 2. Последовательный интерфейс — СОМ-нюрт

7.   Снятие RTS может означать как заполнение буфера компьютера (модем дол­жен приостановить передачу данных в компьютер), так и отсутствие данных для передачи в модем. Обычно в этом случае модем прекращает пересылку данных в компьютер.

8.   Модем подтверждает снятие RTS сбросом CTS.

9.   Компьютер повторно устанавливает RTS для возобновления передачи.

10.  Модем подтверждает готовность к этим действиям.

11.  Компьютер указывает на завершение обмена.

12.  Модем отвечает подтверждением.

13.  Компьютер снимает DTR, что обычно является сигналом на разрыв соедине­ния («повесить трубку»).

14.  Модем сбросом DSR сигнализирует о разрыве соединения.

Из рассмотрения этой последовательности становятся понятными соединения DTR-DSR и RTS-CTS в нуль-модемных кабелях.


Интерфейс SPI


Интерфейс SPI (Serial Peripheral Interface), он же Microwire, — трехпроводный синхронный с раздельными линиями входных и выходных данных — применяет­ся для связи микроконтроллеров с периферийными микросхемами и микросхе­мами памяти. С его помощью программируются многие микросхемы программи­руемой логики (например, FPGA фирмы Altera), применяемые в различных узлах ПК и периферии. По сравнению с 12С интерфейс SPI обеспечивает более высо­кую скорость передачи данных. Частота синхронизации может достигать 5 МГц (зависит от подключаемых устройств); при этом за каждый такт синхрониза­ции одновременно может и передаваться, и приниматься очередной бит данных. В основном варианте использования предполагается, что интерфейс соединя­ет одно ведущее устройство с одним или несколькими ведомыми устройствами. Интерфейс может применяться и для обмена между несколькими микроконтрол­лерами, допуская наличие на шине нескольких ведущих устройств, но протокол предоставления доступа не стандартизован. Ниже рассматривается работа ин­терфейса с одним ведущим устройством. В интерфейсе используются 3 обязатель­ных сигнала:

¦ SCK (Serial Clock) — синхросигнал, которым ведущее устройство стробирует каждый бит данных;

¦     MOSI (Master Output Slave Input) — выходные данные ведущего устройства и входные данные ведомого устройства;

¦     MISO (Master Input Slave Output) — входные данные ведущего устройства и вы­ходные данные ведомого устройства.

11.3. Интерфейс SPI

445

Кроме того, может использоваться сигнал выбора ведомого устройства SS# (Slave Select, или CS# — Chip Select): ведомое устройство должно реагировать на сигна­лы интерфейса и генерировать выходные данные на линии MISO только при низ­ком уровне этого сигнала; при высоком уровне выход MISO должен переводиться в высокоимпедансное состояние. С помощью сигналов SS#, раздельно формиру­емых ведущим устройством для каждого из ведомых устройств, ведущее устрой­ство может выбирать партнером в транзакции одно из ведомых.
При этом получа­ ется гибридная топология соединений: по сигналам SCK, MOSI и MISO — топология шинная, по SS# — звездообразная (центр — ведущее устройство).

Возможен и иной способ общения ведущего устройства с несколькими ведомыми устройствами с чисто шинной топологией. Здесь сигнал SS# для выбора устройств не используется, но ведомые устройства все время «слушают» шину, ожидая спе­циальной адресной посылки в начале транзакции. Опознав свой адрес, устройство отрабатывает дальнейшие протокольные посылки, и теперь ему разрешается вы­водить данные на линию MISO до конца текущей транзакции. Однако этот вари­ант требует довольно сложной логики поведения ведомого устройства.



Рис. 11.5. Форматы передач по интерфейсу SPI

Данные передаются старшим битом вперед. Устройства различных производителей могут использовать разные режимы обмена (SPI Mode 0... SPI Mode 3), различа­ющиеся фазой и полярностью синхросигналов. Рис. 11.5 иллюстрирует переда­чу и прием байта в различных режимах. Заметим, что в любом режиме входные и выходные данные стробируются по разным перепадам синхроимпульсов. Кроме того, есть варианты в использовании сигнала SS#. В первом варианте (он и пред­ставлен на рисунке) для ведомого устройства признаком начала транзакции явля­ется спад сигнала SS#, а завершения — его подъем. Во втором варианте начало транзакции определяется по первому фронту (спаду) SCK, а сигнал SS# может иметь низкий уровень постоянно. Второй вариант иногда предпочитают для простей­шего двухточечного интерфейса с единственным ведущим устройством и единствен-

446__________ Глава 11. Вспомогательные последовательные интерфейсы и шины

ным ведомым устройством, когда нет опасения потери синхронизации. Микроконт­роллеры с аппаратным портом SPI, как правило, имеют возможность программ­ного выбора режима. Форматы транзакций зависят от устройств, но общая идея такова: ведущее устройство по линии MOSI посылает код операции и адресную информацию для устройства; затем следуют данные.В операции записи они пе­редаются ведущим устройством по той же линии, в операции чтения устройство их посылает по линии MISO. На время всей транзакции ведущее устройство со­храняет активное состояние линии SS#, число требуемых синхроимпульсов зави­сит от формата команды.


Интерфейсы аудиоустройств


Звуковая карта имеет набор разъемов для подключения внешних аудиосигналов, аналоговых и цифровых, а также интерфейс MIDI для связи с электронными му­зыкальными инструментами. Аудиоданные в цифровом виде могут передаваться также и по универсальным шинам USB и Fire Wire (см. п. 4.2).



Интерфейсы блока питания PC


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

512_______ Глава 13. Интерфейсы питания, заземление и гальваническая развязка

жения основного источника +5 В. Остальные напряжения могут быть стабилизи­рованы дополнительными выходными стабилизаторами, но чаще их оставляют нестабилизированными. При этом чем больше нагрузка блока по основной (стаби­лизированной) цепи, тем выше напряжения на остальных шинах. Блоки питания PC не критичны к частоте сети (50 или 60 Гц) и могут работать даже от сети постоянного тока. Относительно старые блоки питания имеют пере­ключатели диапазона входного напряжения. Переключение диапазона входного напряжения легко осуществляется переключателем, который преобразует мо­стовую схему выпрямителя в схему выпрямителя с удвоением для питания от сети 110-127 В. При включении блока, предназначенного для работы при напря­жении ПО В, в сеть 220 В часто выходят из строя ключевые транзисторы или ди­оды. Современные блоки, у которых указано свойство Autoswitching Power Supply, имеют компоненты с большим запасом по допустимому напряжению и не тре­буют переключения номинала входного питающего напряжения — они работают в диапазоне 110-230 В.

Блок питания PC обычно имеет стандартный конструктив и набор жгутов с разъе­мами питания системной платы и периферийных устройств. Выключатель пита­ния в старых конструктивах располагался на боковой или задней стенке блока питания. Позже его вынесли с блока питания на лицевую панель корпуса и стали присоединять к блоку кабелем со съемными контактами. К этому кабелю, прохо­дящему через весь системный блок, следует относиться с вниманием, поскольку он является источником опасности и помех.
В конструктиве АТХ главный вы­ ключатель питания вернулся на блок питания, а с передней панели блоком пита­ния управляют с помощью кнопки.

Мощность блока питания зависит от назначения корпуса системного блока и лежит в диапазоне от 100-150 Вт для обычных компьютеров и до 350-500 Вт для мощных серверов.

Традиционный (не АТХ) блок питания вырабатывает основное стабилизирован­ное напряжение +5 В при токе до 10-50 А; +12 В при токе 3,5-15 А для питания двигателей устройств и интерфейсных цепей; -12 В при токе 0,3-1 А для питания интерфейсных цепей; -5 В при токе 0,3-0,5 А (обычно не используется, присут­ствует только для соблюдения стандарта ISA Bus).

Кроме питающих напряжений блок вырабатывает сигнал P.G. (Power Good) — питание в норме. Этот сигнал с уровнем в 3-6 В вырабатывается через 0,1-0,5 с после включения питания при нормальных выходных напряжениях блока. При отсутствии этого сигнала на системной плате непрерывно вырабатывается сигнал аппаратного сброса процессора, появление сигнала «выпускает» систему в нор­мальную работу. Этот сигнал должен сброситься раньше, чем пропадет напряже­ние +5 В при отключении блока. Отсутствие должной задержки сигнала при вклю­чении и запаздывание при выключении может приводить к потере информации в CMOS и ошибкам при загрузке по включении питания. Нажатие кнопки Reset по действию почти эквивалентно замыканию сигнала P.G. на «схемную землю».

13.3. Интерфейсы блока питания PC

513

Выходные цепи блоков питания выводятся гибкими жгутами проводов со стан­дартным набором разъемов (рис. 13.7). Разъемы для питания накопителей имеют ключи, исключающие возможность неправильного соединения. Однако иногда встречаются блоки с ошибочно собранными разъемами, в результате на шину пи­тания +5 В попадает +12 В, чего устройства, как правило, не выдерживают. Такая ошибка в практике автора привела, например, к выходу из строя подряд двух 3" дисководов — ошибку в питании стали искать лишь после обнаружения нерабо­тоспособности второго дисковода.


Традиционные разъемы питания системной платы PS-8, PS-9 всегда устанавливаются рядом так, чтобы четыре черных прово­да GND шли подряд. Их ключи весьма условны, а ошибка подключения чревата выгоранием системной платы. Цвета проводов в жгутах стандартизованы:

¦ GND — черный;

¦ -12V —коричневый;

¦ +5V — красный;

¦ -5V — голубой;

¦ + 12V —желтый;

¦ P.G. — белый (питание в норме).



Рис. 13.7. Выходные разъемы традиционного блока питания

Блок питания в стандарте А7Х значительно отличается от традиционных блоков питания как по габаритным размерам, так и по электрическому интерфейсу. Блок имеет дополнительный источник напряжением +3,3 В для питания процессора и «дежурный» (Standby) маломощный источник с выходной цепью +5VSB. Дежур­ный источник с допустимым током нагрузки 10 мА (АТХ 2.01) включается при подаче сетевого напряжения. Он предназначен для питания цепей управления энергопотреблением и устройств, активных и в спящем режиме (например, факс­модема, способного при поступлении входящего звонка «разбудить» машину). В дальнейшем предполагается увеличить мощность данного источника до допус­тимого тока 720 мА, что позволит «будить» компьютер даже по приему пакета от дежурного адаптера локальной сети. В интерфейс блока питания введен управля­ющий сигнал PS-ON, включающий основные источники +5, +3,3, +12, -12 и -5 В (рис. 13.8). Напряжение от этих источников поступает на выход блока только при

514

Глава 13. Интерфейсы питания, заземление и гальваническая развязка

удержании сигнала PS-ON на низком логическом уровне. При высоком уровне или свободном состоянии цепи выходные напряжения этих источников поддержива­ются около нулевого уровня. О нормальном напряжении питания сигнализирует сигнал PW-OK (Power O'Key), по действию аналогичный сигналу P.G. традицион­ных блоков. Интерфейс управления питанием позволяет выполнять программное отключение питания.



Рис. 13.8. Временная диаграмма интерфейса управления питанием АТХ

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


Расширенная спецификация для блока питания АТХ предусматривает передачу информации от датчиков вентилятора на системную плату, что обеспечивает кон­троль скорости вращения вентилятора и температуры воздуха. Для этих целей предназначен дополнительный (необязательный) жгут с разъемом, изображённый на рис. 13.9, б. Сигнал FanM представляет собой выход типа «открытый коллек­тор» от тахометрического датчика вентилятора блока питания, вырабатывающе­го два импульса на каждый оборот ротора. Сигнал FanC предназначен для управ­ления скоростью вентилятора подачей напряжения в диапазоне 0...+12 В при токе до 20 мА. Если уровень напряжения выше +10,5 В, вентилятор будет работать на максимальной скорости. Уровень ниже +1 В означает запрос от системной платы на остановку вентилятора. Промежуточные значения уровня позволяют плавно регулировать скорость. Внутри блока питания сигнал FanC подтягивается к уров­ню +12 В, так что, если дополнительный разъем оставить неподключенным, вен­тилятор будет всегда работать на максимальной скорости. На дополнительном разъеме также имеются контакты 1394V (+) и 1394R (-) изолированного от схем­ной земли источника напряжения 8-48 В для питания устройств шины IEEE-1394 (FireWire). Цепь +3.3V Sense служит для подачи сигнала обратной связи стаби­лизатору напряжения +3,3 В.





13.3. Интерфейсы блока питания PC                                                                                515



 Рис. 13.9. Разъемы блока питания АТХ для подключения к системной плате

Цепи блоков питания АТХ имеют стандартизованную цветовую маркировку:

¦     СОМ - черный (соответствует цепи GND традиционных блоков);

¦     +5V — красный;

¦     +12V—желтый;

¦     -5V - белый;

¦     -12V— синий;

¦     +3.3V — оранжевый;

¦     +3.3V Sense — коричневый (может подходить к контакту 11);

¦     +5VSB — малиновый;

¦      PS-ON — зеленый;

¦     PW-ON-серый.

Дополнительный разъем:

¦     +3.3V Sense — белый с коричневыми полосками;

¦     FanC — белый с синими полосками;

¦      FanM — белый;

¦     1394V — белый с красными полосками;

¦     1394R —белый с черными полосками.






Интерфейсы графических адаптеров


Для подключения дисплея (монитора) к графическому адаптеру компьютера ис­пользуются специализированные/интерфейсы, по которым передается информа­ция о мгновенном значении яркости базисных цветов (RGB) и сигналы строчной и кадровой синхронизации. Способ передачи уже прошел первый виток спирали развития: от дискретного интерфейса первых адаптеров (MDA, CGA, EGA) че­рез аналоговый интерфейс VGA снова возвращаются к цифровому способу (DVI, P&D, DFP). Интерфейсы мониторов в большинстве своем стандартизованы орга­низацией VESA (www.vesa.org).

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

Многие графические адаптеры имеют внутренний разъем VFC или VAFC — это параллельная шина для обмена пиксельной информацией с дополнительны­ми картами видеообработки.

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



Интерфейсы и конструктивы твердотельных носителей информации


Твердотельные устройства хранения используются в миниатюрных компьютерах, а также компьютеризированных цифровых устройствах бытовой электроники — фотокамерах, плейерах, приемниках глобальной системы позиционирования (GPS), музыкальных инструментах и прочих. В большинстве своем эти устройства осно­ваны на микросхемах флэш-памяти, в наиболее современных используется память со структурой NAND (см. п. 7.3.2). Этому типу флэш-памяти присуще быстрое чтение, запись и стирание небольших блоков (256 или 512 байт), что удобно для записи файлов. Правда, для этой памяти характерны довольно медленное чтение произвольного байта и отсутствие возможности побайтной записи, но приложе­ниям этих карт такая возможность и не требуется, поскольку они ориентированы на блочный обмен. Устройства на флэш-памяти являются энергонезависимыми (в режиме хранения не требуют питания), экономичными в плане потребления,

9.3. Интерфейсы и конструктивы твердотельных носителей информации

395

особенно при чтении, достаточно производительными, но, увы, недешевыми. Запись на эти носители специфична: быстрее всего она выполняется в чистый (стертый) блок (сектор диска), а перезапись требует относительно длительного стирания. Кроме того, флэш-память имеет хоть и большое (порядка 105), но ограниченное число циклов стирания-записи — как ни странно, у носителей с подвижным носите­лем с этим ограничением не сталкиваются. Устройства хранения обычно представ­ляют комбинацию собственно микросхем памяти и микроконтроллера, обеспечи­вающего внешние интерфейсные функции. Этим они отличаются от карт памяти с линейным доступом, например Miniature Card, на которых располагаются только микросхемы памяти (встроенный контроллер не требуется).

Есть и другие твердотельные хранители — например, ферроэлектрическая память (FRAM), но пока что массового применения они не имеют. Менее чем за десяти­летие устройства хранения на флэш-памяти прошли большой путь от электронных «дисков» («винчестеров») размером в 3" до современных, размером с почтовую марку.
Интерфейсы твердотельных устройств хранения — карт внешней памяти — тесно связаны с их конструктивами; основные характеристики наиболее распро­страненных карт приведены в табл. 9.12.

Таблица 9.12. Основные характеристики карт внешней памяти

CompactFlash

SmartMedia

MultiMedia

Sequre

Miniature

Card

Card

Digital

Card

Длина

36,0

45,0

32,0

32,0

33,0

Ширина

43,0

37,0

24,0

24,0

38,0

Высота

3,3/5,0

0,76

1,4

2,1

3,5

Коннектор

Штырьковый

Печатный

Печатный

Печатный

Эластомер

Число контактов

50

22

7

9

60

Вышеперечисленные карты можно подключать и к обычным компьютерам. Для этого существуют различные адаптеры: для слотов PC Card (к блокнотным ПК), для шины USB (для самых разных ПК) и для других внешних интерфейсов. С помо­щью этих адаптеров компьютер «видит» подключенную карту как обычный сменный носитель информации (диск). Конечно, компьютеры общего назначения в такой внешней памяти не нуждаются — своя и больше, и дешевле. Главная цель подклю­чения карты к ПК — быстрая передача прикладных данных бытового устройства (фотографий, музыки и т. п.) или перенос (хранения) информации (вместо дискет).

В качестве интерфейса твердотельных устройств хранения может использоваться и самый обычный вариант AT А. Существуют устройства DOM (Disk On Module) — небольшие модули, которые вставляются в обычный 40-контактный разъем АТА, имеющийся на любой современной системной плате. Правда, этот «винчестер» не блещет выдающимися параметрами: объем — 4-256 Мбайт, средняя скорость пе­редачи данных — 1,6 Мбайт/с, удельная стоимость хранения — около $1,5 за ме­габайт. Внутри модуля находится флэш-память структуры NAND с контроллером, эмулирующим систему команд АТА. Основное применение этих модулей — хра­нение ПО встраиваемых компьютеров, но можно ими пользоваться и как сменны­ми устройствами хранения.

396

Глава 9. Интерфейсы устройств хранения


Интерфейсы мыши


Мышь является устройством, предназначенным для ввода координат и подачи ко­манд. Интерфейс мыши применим для любого физического воплощения устрой­ства (мышь, трекбол). По интерфейсу с компьютером различают три основных вида мышей: Bus Mouse, Serial Mouse и PS/2-Mouse. Появились мыши с интер­фейсом USB, но они пока не получили широкого распространения (как и клавиа­тура USB, к порту которой удобно подключить мышь USB).

8.2. Интерфейсы мыши__________________________________________        317

С интерфейсами Serial Mouse и PS/2-Mouse иногда возникают недоразумения. Хотя оба они последовательные, но имеют существенные принципиальные раз­личия в уровнях сигналов, способе синхронизации, частоте и формате посылок.

¦ Интерфейс PS/2 использует однополярный сигнал с уровнями ТТЛ, питание мыши — однополярное с напряжением +5 В относительно шины GND. Интер­фейс RS-232C, применяемый в Serial Mouse, использует двуполярный сигнал (см. п. 2.1) с уровнями срабатывания +3 В и -3 В, и для него требуется двупо-лярное (относительно шины GND) питание мыши.

¦     Интерфейс PS/2 использует две раздельные сигнальные линии, одну для пе­

редачи данных, другую — для сигналов синхронизации. Serial Mouse исполь­зует асинхронный способ передачи данных всего по одной линии.

Даже не рассматривая частоты и форматы посылок, становится ясно, что прямой совместимости между этими интерфейсами быть не может. Тем не менее выпус­каются и продаются переходники (пассивные!), позволяющие выбирать способ подключения мыши. Эти переходники предназначены только для универсальных мышей, у которых встроенный контроллер по напряжению питания способен рас­познать, к какому интерфейсу его подключили, и установить соответствующий тип своего выходного интерфейса. Универсальные мыши не особо распростране­ны, поэтому часто приходится слышать о неудачных попытках применения таких переходников к обычной мыши Serial Mouse или PS/2-Mouse.

Дополнительную путаницу вносят мыши для компьютера Macintosh, которые имеют разъем, с виду напоминающий разъем PS/2. Однако при ближайшем рас­смотрении и неудачной попытке включения его в PC становится ясно, что разъ­емы эти разные, да и интерфейс совершенно иной.



Интерфейсы PCMCIA, PC Card и CardBus


В начале 90-х годов организация PCMCIA (Personal Computer Memory Card International Association — международная ассоциация производителей карт памя­ти для персональных компьютеров) начала работы по стандартизации шин расши­рения блокнотных компьютеров, в первую очередь предназначенных для расши­рения памяти. Первым появился стандарт PCMCIA Standard Release 1.0/JEIDA 4.0 (июнь 1990 г.), в котором был описан 68-контактный интерфейс и два типоразмера карт: Туре I и Туре II PC Card. Поначалу стандарт касался электрических и физиче­ских требований только для карт памяти. Был введен метаформат информацион­ной структуры карты CIS (Card Information Structure), в которой описываются характеристики и возможности карты, — ключевой элемент взаимозаменяемости карт и обеспечения механизма PnP.

6.5. Шины и карты расширения блокнотных ПК__________________________ 229

Следующая версия PCMCIA 2.0 (1991 г.) для того же разъема определила интерфейс операций ввода-вывода, двойное питание для карт памяти, а также методики тести­рования. В версии 2.01 была добавлена спецификация PC CardATA, новый типо­размер Туре III, спецификация автоиндексируемой массовой памяти AIMS (Auto-Indexing Mass Storage) и начальный вариант сервисной спецификации (Card Services Specification). В версии 2.1 (1994 г.) расширили спецификации сервисов карт и сокетов (Card and Socket Services Specificaiton) и развили структуру CIS.

Стандарт PC Card (1995 г.) явился продолжением предыдущих; в нем введены дополнительные требования для улучшения совместимости и новые возможно­сти: питание 3,3 В, поддержка DMA и 32-битного режима прямого управления шиной CardBus. В дальнейшем в стандарт были введены и другие дополнительные возможности.

Все карты PCMCIA и PC Card имеют 68-контактный разъем, назначение контактов у которого варьируется в зависимости от типа интерфейса карты. Тип интерфейса «заказывается» картой при установке ее в слот, который, естественно, должен под­держивать требуемый интерфейс. Интерфейс памяти обеспечивает 8- и 16-битные обращения с минимальным временем цикла 100 не, что дает максимальную про­изводительность 10 и 20 Мбайт/с соответственно. Интерфейс ввода-вывода имеет минимальную длительность цикла 255 не, что соответствует 3,92/7,84 Мбайт/с для 8-/16-битных обращений. Интерфейс CardBus поддерживает практически такой же протокол обмена, что и PCI, но с некоторыми упрощениями.
Тактовая частота 33 МГц и разрядность 32 бита обеспечивают пиковую пропускную способность в пакетном цикле до 132 Мбайт/с, картам предоставляется возможность прямого управления шиной (bus mastering). Здесь используется та же система автомати­ческого конфигурирования, что и в PCI (через регистры конфигурационного про­странства). В интерфейс заложены дополнительные возможности для цифровой передачи аудиосигнала, причем как в традиционной форме ИКМ, так и в новой (забытой старой) форме ШИМ (PWM).

Для дисковых устройств АТА в формате PC Card имеется специальная специфи­кация интерфейса (см. п. 9.2.1).

Различают 4 типа PC Card: у них у всех размер в плане 54 х 85,5 мм, но разная толщина (меньшие адаптеры встают в большие гнезда):

¦     PC Card Type I — 3,3 мм — карты памяти;

¦     PC Card Type II — 5 мм — карты устройств ввода-вывода, модемы, адаптеры локальных сетей;

¦     PC Card Type III — 10,5 мм — дисковые устройства хранения;

¦     PC Card Type IV — 16 мм (упоминания об этом типе на сайте www.pc-card.com найти не удалось).

Есть еще и маленькие карты Small PC Card размером 45 х 42,8 мм с тем же коннек­тором и теми же типами по толщине.

Для карт памяти (динамической, статической, постоянной и флэш-памяти) ассо­циация PCMCIA поддерживает и стандарт Miniature Card (см. п. 9.3.4).

230

Глава 6. Шины и карты расширения

Назначение контактов разъемов для разных типов интерфейса приведено в табл. 6.18, назначение сигналов для интерфейсов карт памяти и ввода-вывода — в табл. 6.19. Для карт CardBus обозначение сигналов начинается с префикса «С», за которым следует имя сигнала, принятое для шины PCI (см. п. 6.2.2).

Таблица 6.18. Разъем PC Card



Тип интерфейса



Тип интерфейса

16 бит

32 бита

16 бит

32 бита

Mem

l/O+Mem

CardBus

Mem

l/O+Mem

CardBus

1

GND

GND

GND

35

GND

GND

GND

2

D3

D3

CADO

36

CD1#

CD1#

CCD1#

3

D4

D4

CAD1

37

D11

D11

CAD2

4

D5

D5

CAD3

38

D12

D12

CAD4

5

D6

D6

CAD5

39

D13

D13

CAD6

6

D7

D7

CAD7

40

D14

D14

Резерв

7

СЕ1#

CE1#

CCBEO*

41

D15

D15

CAD8

8

А10

A10

CAD9

42

CE2#

CE2#

CAD10

9

ОЕ#

OE#

CAD11

43

VS1#

VS1#

CVS1

10

А11

A11

CAD12

44

Резерв

IORD#

CAD13

11

А9

A9

CAD14

45

Резерв

IOWR#

CAD15

12

А8

A8

CCBE1*

46

A17

A17

CAD 16

13

А13

A13

CPAR

47

A18

A18

Резерв

14

А14

A14

CPERR#

48

A19

A19

CBLOCK#

15

WE#

WE#

CGNT#

49

A20

A20

CSTOPff

16

READY

IREQ#

CINT#

50

A21

A21

CDEVSEL*

17

Vcc

Vcc

VCC

51

Vcc

Vcc

Vcc

18

Vpp1

Vpp1

Vpp1

52

VPP2

Vpp2

Vpp2

19

A16

A16

CCLK

53

A22

A22

CTRDY»

20

A15

A15

CIRDY*

54

A23

A23

CFRAME#

21

A12

A12

CCBE2#

55

A24

A24

CAD17

22

A7

A7

CAD 18

56

A25 .

A25

CAD 19

23

A6

A6

CAD20

57

VS2#

VS2#

CVS2

24

A5

A5

CAD21

58

RESET

RESET

CRST#

25

A4

A4

CAD22

59

WAIT#

WAIT#

CSERR#

26

A3

A3

CAD23

60

Резерв

INPACK*

CREQ#

27

A2

A2

CAD24

6t

REG#

REG#

CCBE3*

28

A1

A1

CAD25

62

BVD2

SPKR#

CAUDIO

29

АО

АО

CAD26

63

BVD1

STSCHG*

CSTSCHG

30

DO

DO

CAD27

64

D8

D8

CAD28

31

D1

D1

CAD29

65

D9

D9

CAD30

32

D2

D2

Резерв

66

D10

D10

CAD31

33

WP

IOIS16»

CCLKRUN*

67

CD2#

CD2#

CCD2#

34

GND

GND

GND

68

GND

GND

GND

<


6.5. Шины и карты расширения блокнотных ПК

231

Таблица 6.19. Назначение сигналов карт памяти и ввода-вывода

Сигнал

I/O

Назначение

 

А[10:0]

I

BVD1.BVD2

I/O

STSCHGff

I/O

SPKR#

0

CD1#,CD2#

0

СЕ1#,СЕ2#

I

D[15:0] INPACK#

I/O 0

IORD# IOWR#

1

1

OE# RDY/BSY# IREQ# INTRQ REG#

1 1 0 0

1

RESET VS1#,VS2#

1 о

WAIT» WE#

0

1

WP

0

IOCS16#

0

Линии шины адреса

Battery Volt Detection — идентификаторы батарейного питания

(Ю) Сигнализация хосту о смене состояния RDY/BSY* и Write Protect. Использование этого сигнала контролируется регистром управления и состояния карты Card Config and Status Register

(Ю) Дискретный аудиовыход (на динамик)

Card Detect — сигналы обнаружения (заземлены на карте), по которым хост определяет, что карта полностью вставлена в слот

(Ю, Mem) Card Enable — выбор (разрешение) карты и определение разрядности передачи. Сигнал СЕ2# всегда относится к нечетному байту, СЕ1 # — к четному или нечетному, в зависимости от АО и СЕ2#. С помощью этих сигналов 8-битный хост может обмениваться с 16-битными картами по линиям D[7:0]

Шина данных (у 8-битных сигналы D[15:8] отсутствуют)

(Ю) Input Acknowledge — подтверждение ввода, ответ карты на сигнал IORD* (по этому сигналу хост открывает свои буферы данных)

Строб команды чтения портов

Строб команды записи портов (данные должны фиксироваться по положительному перепаду)

Чтение данных из памяти, конфигурационных регистров и CIS Готовность карты к обмену данными (при высоком уровне) Запрос прерывания (низким уровнем) Запрос прерывания (высоким уровнем)

Выбор памяти атрибутов (Mem). Для карт Ю сигнал должен быть активен в циклах команд ввода-вывода. В режиме IDE пассивен (соединен с Vcc на стороне хоста)

Сброс (высоким уровнем)

Voltage Sense — сигналы определения номинала питания. Заземленный сигнал VS1 # означает способность чтения карты при питании 3,3 В

Запрос (низким уровнем) на продление цикла обращения



Строб записи в память и конфигурационные регистры ( в IDE не используется, соединяется хостом с Vcc)

Write Protect — защита от записи (для карт памяти), запись в память возможна при низком уровне

Разрешение 16-битного обмена

Интерфейс карт памяти и ввода-вывода прост — он практически совпадает с ин­терфейсом статической асинхронной памяти. Карта выбирается сигналами СЕ#, действующими одновременно с установленным адресом. Чтение памяти и конфи­гурационных регистров выполняется по сигналу ОЕ#, запись — по сигналу WE#. Признаком, разделяющим в этих обращениях основную память и конфигура­ционные регистры, принадлежащие области памяти атрибутов карты, является

232  ____________________________________ Глава 6. Шины и карты расширения

сигнал REG#, действующий одновременно с СЕ# и адресом. Для обращения к пор­там ввода-вывода служат отдельные сигналы IORD* и IOWR#; во время их действия должен быть активен и сигнал REG#. В процессе обращения к портам карта может выдать признак возможности 16-битных обращений сигналом IOSC16* (как на шине ISA). Чтение порта устройство должно подтверждать сигналом INPACK*, устанавливаемым и снимаемым картой по сигналу СЕ#. Благодаря этому сигналу хост может убедиться в том, что он читает не пустой слот.

Слоты PC Card могут предоставлять возможность прямого доступа к памяти (DMA). Реализация DMA — самый дешевый способ разгрузки процессора, но такая реализация имеется не на всех хостах, а только на простых, основанных на шине ISA. Для систем с шиной PCI более естественно прямое управление шиной CardBus, правда, для карт реализация прямого управления обходится не дешево.

Для мультимедийных карт имеется возможность переключения интерфейса в спе­циальный режим ZVPort (Zoomed Video), в котором организуется отдельный двух­точечный интерфейс передачи данных между картой и хост-системой. По смыслу интерфейс напоминает коннектор VFC графических карт — выделенная шина для передачи видеоданных, не связанная с остальными шинами (и не загружающая их), но имеет иной протокол.


В режиме ZV Port адресные линии А[25:4], а также линии BVD2/SPKR*, INPACK* и IOIS16# получают иное назначение — по ним пере­даются видеоданные и 4 цифровых аудиоканала. Для обычного интерфейса оста­ются лишь 4 адресные линии, позволяющие адресоваться к 16 байтам общей па­мяти и атрибутов карты.

Интерфейс порта ZV соответствует временным диаграммам CCIR601, что позво­ляет декодеру NTSC в реальном времени доставлять видеоданные с карты в эк­ранный буфер VGA. Видеоданные могут поступать на карту как с внешнего ви­деовхода, так и с декодера MPEG.

Карты имеют специальное выделенное пространство памяти атрибутов, в котором находятся конфигурационные и управляющие регистры карты, предназначенные для автоконфигурирования. Стандартом описан формат информационной струк­туры карты (Card Information Structure, CIS). Карты могут быть многофункци­ональными (например, комбинация модема и сетевого адаптера). В спецификации MFPC (Multiple Function PC Cards) для каждой функции предусматриваются отдельные конфигурационные регистры и определяются правила разделения (сов­местного использования) линии запроса прерывания.

Для устройств внешней памяти стандарт описывает форматы хранения данных, совместимые с FAT MS-DOS, а также ориентированные на флэш-память как основной носитель информации. Для непосредственного исполнения модулей ПО, хранящихся в ПЗУ карты, имеется спецификация XIP (eXecute In Place), описывающая программный интерфейс вызова этих модулей (вместо загрузки ПО в ОЗУ).

Стандарт описывает программный интерфейс сервисов карт (Card Services), обес­печивающий унификацию взаимодействия его клиентов (драйверов, прикладно-

6.5. Шины и карты расширения блокнотных ПК                     __________________ 233

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



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

¦     PCMCIA описывает автоиндексируемую массовую память (AIMS) для хране­ния больших массивов данных (изображений, мультимедийных данных) на блочно-ориентированных устройствах. Имеется также спецификация 15-кон­тактного экранированного разъема для подключения модемов и адаптеров ло­кальной сети (15-pin Shielded Modem I/O connector) и 7-контактного для под­ключения модемов (7-pin Modem I/O connector).

¦     JEDIA для карт памяти предлагает формат файлов Small Block Flash Format, упрощающий файловую систему. Формат SISRIF (Still Image, Sound and Related Information Format) предназначен для записи изображений и звука на карты памяти. Имеется и спецификация для карт динамической памяти.

Большинство адаптеров выпускается с поддержкой технологии PnP и предусмат­ривает «горячее» подключение — интерфейсные карты могут вставляться и вы­ниматься без выключения компьютера. Для этого контакты шин питания имеют большую длину, чем сигнальные, обеспечивая их упреждающее подключение и запаздывающее отключение. Два контакта обнаружения карты CD1 # и CD2# (Card Detect) короче остальных — их замыкание для хоста означает, что карта полно­стью вставлена в слот. Несмотря на возможность динамического конфигурирова­ния, в некоторых случаях при изменении конфигурации требуется перезагрузка системы.

Первоначально карты и хост-системы использовали напряжение питания логики +5 В. Для перехода на низковольтное питание (3,3 В) был введен механический ключ, не допускающий установки карты на 3,3 В в слот, дающий только 5 В. Кро­ме того, были определены контакты 43 (VS1#) и 57 (VS2#) для выбора питающего напряжения. На картах с питанием 5 В они оба свободны; на картах 3,3 В контакт VS1# заземлен, a VS2# свободен. По этим линиям хост, допускающий оба вариан­та напряжения питания, определяет потребности установленной карты и подает соответствующее напряжение.


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

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

234_____________________________________ Глава 6. Шины и карты расширения

периферия. Недостаточно строгое следование производителей стандарту иногда приводит к проблемам совместимости.

Слоты PC Card подключаются к системной шине блокнотного ПК через мост; для компьютеров с внутренней шиной PCI это будет мост PCI-PC Card. В блокнот­ных ПК могут быть и слоты Small PCI (SPCI, см. п. 6.2.9), но они недоступны без вскрытия корпуса и не допускают «горячей» замены устройств.


Интерфейсы принтеров и плоттеров


Современные принтеры, печатающие графические изображения (в том числе и текст в графическом режиме) с высоким разрешением, требуют высокоскорост­ной передачи данных по внешнему интерфейсу. Большинство принтеров имеют традиционный параллельный интерфейс Centronics или более производительный IEEE 1284, что позволяет достигать скоростей передачи 0,15-2 Мбайт/с, в зави­симости от производительности компьютера и выбранного режима передачи (см. ниже). Эти же интерфейсы используются и в плоттерах.

Для подключения принтера с параллельным интерфейсом используется LPT-порт в различных модификациях, от традиционного SPP-порта до теперь уже стандарт­ного и эффективного IEEE 1284 (см. п. 1.3).

Поначалу все принтеры с параллельным интерфейсом обязательно поддерживали протокол Centronics, а более «продвинутые» вдобавок могли работать и в режиме ЕСР, поддерживая согласование режимов по IEEE 1284. Их инсталляционные программы старались установить драйверы «продвинутых» режимов, если того позволяла ОС и возможности LPT-порта. Теперь ситуация изменилась, и появи­лись принтеры с параллельным интерфейсом, не поддерживающие Centronics. При инсталляции они требуют подключения по «двунаправленному интерфей­су» IEEE 1284 (обычно режим ЕСР), и через LPT-порт в режиме SPP они рабо­тать отказываются. С такими принтерами в среде MS DOS без специальных драй­веров работать невозможно.

В некоторых принтерах используется последовательный интерфейс RS-232C, RS-422 или «токовая петля», но здесь теоретический предел скорости около 11 Кбайт/с (115 Кбит/с), а практически она едва достигает 1 Кбайт/с (9600 бит/с). Эти прин­теры можно подключать к СОМ-порту непосредственно или через адаптер — пре­образователь уровня сигналов.

В последнее время стали чаще применять шину USB, однако этот переход не так уж безоблачен: шина USB поддерживается не всеми ОС. Старые приложения (ведь не всегда есть необходимость и возможность перехода на новые), работающие с принтером через функции BIOS Int 17h или непосредственно с регистрами LPT-порта, например для приглашения к подаче бланков, не могут работать с принте­ром USB даже в среде ОС, поддерживающих USB в полном объеме. Что касается скорости передачи данных, то у USB 1.0 со скоростью 12 Мбит/с скорость переда­чи данных отнюдь не достигает 1,5 Мбайт/с (12:8) хотя бы из-за накладных расхо­дов шины. В USB 2.0, которая сейчас выходит на рынок, пиковая скорость может достигать 50 Кбайт/с (скорость в шине — 480 Мбит/с), что для принтера пока что более чем достаточно. Однако для этого и принтер, и компьютер должны поддер­живать USB 2.0, и между ними не должно быть старых (USB 1.0) хабов.

Принтеры могут иметь интерфейс SCSI (редкий вариант), а также подключаться не к компьютеру, а к локальной сети по интерфейсу Ethernet (10 или 100 Мбит/с). Такое подключение удобно для принтеров коллективного пользования, и при гра­мотно построенной сети оно не доставляет забот пользователям. Шина Fire Wire для принтеров применяется пока очень сдержанно.

8.3. Интерфейсы принтеров и плоттеров_________________________________ 321



Иные конструктивы с шиной PCI


Шина PCI имеет и другие конструктивные исполнения; их спецификации доступ­ны на сайте www.pcisig.org (правда, только для членов данной организации либо за деньги).

196_____________________________________ Глава 6. Шины и карты расширения

Low-Profile PCI — низкопрофильный вариант карты PCI с обычным разъемом, но измененной крепежной скобкой. Эти карты можно устанавливать вертикально (без переходника riser card) даже в низкопрофильные корпуса (например, 19" формата высотой 2U). Для этих карт предусматривается напряжение питания интерфейсных схем только 3,3 В (но шина питания 5 В сохраняется).

Small PCI (SPCI) — спецификация PCI в миниатюрном исполнении, прежде на­зывавшаяся SFFPCI (Small Form-Factor). Эта спецификация, предназначенная, в основном, для портативных компьютеров, логически совпадает с обычной ши­ной PCI. Шина 32-битная, 64-битное расширение не предусматривается, и при час­тоте 33 МГц обеспечивается пропускная способность 132 Мбайт/с. Как и на всех шинах PCI/здесь поддерживается прямое управление (bus mastering). В дополне­ние к обычному набору сигналов появился новый CLKRUN, с помощью которого хост и устройства могут управлять частотой синхронизации в интересах энерго­сбережения. По размерам карта SPCI совпадает с PC Card и Card Bus, но специ­альные ключи предотвращают ошибки подключения. Для подключения карт SPCI на системной плате устанавливается двухрядный 108-контактный штырьковый разъем с шагом контактов 2 мм. Карта расширения может подключаться к нему непосредственно, но также может использоваться переходник с двусторонними ленточными контактами с шагом 0,8 мм. Шина SPCI является внутренней (карты расширения находятся под крышкой корпуса и устанавливаются изготовителем при выключенном питании) и поэтому не нацелена на замену Card BUS (шина для внешних подключений с возможностью горячей замены). Карты SPCI могут быть трех видов: с питанием 5 В, 3,3 В и универсальные 5/3,3 В. Благодаря умень­шению размеров (длины проводников) понижены требования к мощности сигна­лов.
Карты SPCI позволяют использовать преимущества модульных решений (можно разгрузить системную плату), обеспечивая высокую производительность обмена (чего не обеспечивает Card Bus).

Mini PCI Specification — малогабаритный вариант карт PCI (2,75"xl,81"xO,22"). Логически и электрически соответствует PCI (32 бит), дополнительно используя сигнал CLKRUN для снижения энергопотребления и без сигналов JTAG. Имеет до­полнительные сигналы для аудио- и видео-применений.

PCI-X — спецификация шины с высокой пропускной способностью, достигающей 1 Гбайт/с: тактовая частота 133 МГц и разрядность 64 бит. Разработана с учетом совместимости шины со старыми устройствами и новыми устройствами с обыч­ной шиной PCI, для чего при наличии в системе хоть одного из «тихоходных» компонентов частота понижается до обычных 66 или 33 МГц. Кроме повышения тактовой частоты, имеются нововведения в протоколе шины (например, расщеп­ленные транзакции), повышающие эффективность ее использования. Для устройств промышленного назначения в начале 1995 года был принят стан­дарт Compact PCI. Шина Compact PCI (cPCI) разрабатывалась на основе специ­фикации PCI 2.1. Этот стандарт принят организацией производителей промыш­ленных компьютеров PCIMG (PCI Industrial Computer Manufacturers Group). Шина отличается большим количеством поддерживаемых слотов: 8 против 4. Появились новые 4 пары сигналов запросов и предоставления управления шиной.

6.2. Шина PCI_______________________________________________________ 197

Шина поддерживает 32-битный и 64-битный обмен (с индивидуальным разреше­нием байт). При частоте шины 33 МГц максимальная пропускная способность составляет 133 Мбайт/с для 32 бит и 266 Мбайт/с для 64 бит (в середине пакет­ного цикла). Возможна работа на частоте 66 МГц. Шина поддерживает специфи­кацию PnP. Кроме того, в шине возможно применение географической адресации, при этом адрес модуля (на который он отзывается при программном обращении) определяется его положением в каркасе.


Для этого на коннекторе J1 имеются кон­такты GAO...GA4, коммутацией которых на «землю» для каждого слота задается его двоичный адрес. Географическая адресация позволяет переставлять однотип­ные модули, не заботясь о конфигурировании их адресов (хорошая альтернатива системе PnP — модуль «встанет» всегда в одни и те же адреса, которые без физи­ческого вмешательства больше не изменятся). Конструктивно платы Compact PCI представляют собой еврокарты высотой 3U (100 х 160 мм) с одним коннектором (J1) или 6U (233 х 160 мм) с двумя коннекторами (Ji n J2). Коннекторы — 7-ряд-ные штырьковые разъемы с шагом 2 мм между контактами, на кросс-плате — вилка, на модулях — розетки. Контакты коннекторов имеют разную длину: более длин­ные контакты цепей питания при установке модуля соединяются раньше, а при вынимании разъединяются позже, чем сигнальные. Такое решение позволяет про­изводить «горячую» замену модулей. Собственно шина использует только один коннектор (J1), причем в 32-битном варианте не полностью — часть контактов может задействовать пользователь. 64-битная шина использует коннектор полно­стью. Одно посадочное место на кросс-плате резервируется под контроллер шины, на который возлагаются функции арбитража и синхронизации. На его коннекто­ре шиной используется большее число контактов, чем на остальных. У больших плат коннектор J2 предоставляется пользователю, а между коннекторами J1 и J2 может устанавливаться 95-контактный коннектор J3. Конструкция коннекторов позволяет для J2 применять специфические модификации (например, с разделя­ющим экраном и механическими ключами). В шине предусматривается наличие независимых источников питания +5 В, +3,3 В и ±12 В.

На базе шины Compact PCI фирмой National Instruments разработана специфика­ция PXI (PCI extensions for Instrumentation — расширение PCI для инструмен­тальных систем) в тех же конструктивах. В шине PXI часть контактов, определен­ных в Compact PCI как свободные, предназначаются для дополнительных шин.


Шина Trigger Bus ( 8 линий) звездообразно соединяет слот своего контроллера (первый после системного контроллера PCI) с остальными слотами. Шина позво­ляет осуществлять синхронизацию разных модулей, что зачастую требуется в из­мерительных системах. Для прецизионной синхронизации имеется сигнал опор­ной частоты 10 МГц PXI_CLK, который звездообразно (с одинаковыми задержками распространения сигнала) разводится по слотам. В PXI определены локальные шины, предназначенные для связи соседних пар слотов. Каждая локальная шина имеет 13 линий, которые могут использоваться как для цифровых, так и аналого­вых (до 48 В) сигналов. Локальные шины объединяют смежные слоты попарно (исключая слот системного контроллера), образуя цепочку. Кроме механических и электрических характеристик PXI определяет ПО модулей: основной ОС счита­ется Windows NT/95, и модули должны поставляться с соответствующими драй-

198_____________________________________ Глава 6. Шины и карты расширения

верами. Это экономит время, необходимое для системной интеграции. Модули PXI совместимы с шиной Compact PCI, и модули Compact PCI — с шиной PXI. Однако все преимущества спецификации реализуются только при установке мо­дулей PXI в шину PXI.


Использование


Принципиальным преимуществом шины 1394 является отсутствие необходимости в контроллере. Любое передающее устройство может получить полосу изохронно­го трафика и начинать передачу по сигналу автономного или дистанционного управления — приемник «услышит» эту информацию. При наличии контроллера соответствующее ПО может управлять работой устройств, реализуя, например, цифровую студию нелинейного видеомонтажа или снабжая требуемыми мульти­медийными данными всех заинтересованных потребителей информации. Для шины 1394 наиболее привлекательна возможность соединения устройств бытовой электроники (имеется в виду пока что не «наш», а «их» быт) в «домаш­нюю сеть», причем как с использованием PC, так и без. При этом стандартные однотипные кабели и разъемы 1394 заменяют множество разнородных соединений устройств бытовой электроники с PC. Разнотипные цифровые сигналы (сжатые видеосигналы, цифровые аудиосигналы, команды MIDI и управления устройства­ми, данные) мультиплексируются в одну шину, проходящую по всем помещени­ям. Используя одни и те же источники данных (приемники вещания, устройства хранения, видеокамеры и т. п.), можно одновременно в разных местах просматри­вать (прослушивать) разные программы с высоким качеством, обеспечиваемым цифровыми технологиями. Применение компьютера с адаптером 1394 и соответ­ствующим ПО значительно расширяет возможности этой сети. Компьютер ста­новится виртуальным коммутатором домашней аудио-видеостудии. Приложения для аудио- и видеоустройств используют логические «вилки» (plugs) и «розетки» (sockets), которые являются аналогами разъемов, применяемых в обычной ап­паратуре. Вилки соответствуют выходам, розетки — входам соответствующих устройств. «Вставляя» эти «вилки» в «розетки» можно собрать требуемую систему. Конечно, для того чтобы она заработала, в устройствах должна быть реализована спецификация Digital Interface for Consumer Electronic Audio/Video Equipment — расширение стандарта IEEE-1394, предложенная DVC (Digital Video Consortium).
Co временем она должна стать стандартом ISO/IEC.

Адаптер FireWire, например АНА-8940 фирмы Adaptec, может устанавливаться в любой PC (или Мае), имеющий свободный слот PCI. Для редактирования ви­део хватает мощности рядового современного ПК (минимальные требования — Pentium 133,32 Мбайт ОЗУ» 256 кбайт кэш, желательно быстрый SCSI-диск).

Поддержка 1394 имеется в ряде ОС, среди которых Windows 98, Windows 95 OSR 2.1 и более новые. Для редактирования аудио-видеофайлов (AVI) примени­мы, например, пакеты Adobe Premiere, Asymetrix Digital Video Producer, Ulead MediaStudio, MGI Video Wave. Кодек-конвертор цифровых видеоданных (DV), передаваемых по шине 1394, в AVI-файл поставляется фирмой Adaptec.

Одной из проблем цифровой передачи мультимедийной информации является защита авторских прав. Пользователь должен иметь возможность высококаче­ственного воспроизведения принимаемых программ или приобретенных дисков, но их авторы (производители) должны иметь возможность защитить свои права, по своему усмотрению вводя ограничения на цифровое копирование. Для этих целей объединение «5С» (5 компаний: Sony, Matsushita, Intel, Hitachi и Toshiba) разрабатывает спецификацию шифрования данных.


Использование СОМ-портов


СОМ-порт широко применяется для подключения различных периферийных и коммуникационных устройств, связи с различным технологическим оборудова-нием, объектами управления и наблюдения, программаторами, внутрисхемными эмуляторами и прочими устройствами, используя протокол RS-232C. СОМ-порты чаще всего применяют для подключения манипуляторов (мышь, трекбол). В этом случае порт используется в режиме последовательного ввода. Мышь с последовательным интерфейсом — Serial Mouse — может подключаться к любому исправному порту. Для согласования разъемов порта и мыши возможно применение переходника DB-9S-DB-25P или DB-25S-DB-9P. Для мыши требу-

2.8. Использование СОМ-портов  ________ _______________________________ 7Т

ется прерывание, для порта СОМ1 — IRQ4, для COM2 — IRQ3. То, что для исполь­зования мыши порт СОМ1 должен использовать прерывание IRQ4, является осо­бенностью ее драйвера, но для пользователя важен сам факт ограничения. Каждое событие — перемещение мыши или нажатие-отпускание кнопки — кодируется двоичной посылкой по интерфейсу RS-232C. Применяется асинхронная переда­ча; двуполярное питание обеспечивается от управляющих линий интерфейса.

Для подключения внешних модемов используется полный (9-проводный) кабель АПД-АКД, схема которого приведена на рис. 2.4. Этот же кабель используется для согласования разъемов (по количеству контактов); возможно применение пере­ходников 9-25, предназначенных для мыши. Для работы коммуникационного ПО обычно требуются прерывания, но здесь есть свобода выбора номера (адреса) пор­та и линии прерывания. Если предполагается работа на скоростях 9600 бит/с и выше, то СОМ-порт должен быть реализован на микросхеме UART 16550А или совместимой. Возможности работы с использованием FIFO-буферов и обмена по каналам DMA зависят от коммуникационного ПО.

Для связи двух компьютеров, удаленных друг от друга на небольшое расстояние, используют и непосредственное соединение их СОМ-портов нуль-модемным ка­белем (см. рис. 2.5).
Программы типа Norton Commander или Interlnk MS-DOS позволяют обмениваться файлами со скоростью до 115,2 Кбит/с без примене­ния аппаратных прерываний. Это же соединение может использоваться и сетевым пакетом Lantastic, предоставляющим более развитый сервис, и средствами ОС Windows.

СОМ-порт позволяет выполнять подключение электронных ключей (Security Devices), предназначенных для защиты от нелицензированного использования ПО. Эти устройства могут быть как «прозрачными» (обеспечивающими воз­можность подключения периферии через тот же порт), так и полностью занима­ющими порт.

СОМ-порт при наличии соответствующей программной поддержки позволяет превратить PC в терминал, эмулируя систему команд распространенных специа­лизированных терминалов (VT-52, VT-100 и т. д.). Простейший терминал полу­чается, если замкнуть друг на друга функции BIOS обслуживания СОМ-порта (Int 14h), телетайпного вывода (Int 10h) и клавиатурного ввода (Int 16h). Одна­ко такой терминал будет работать лишь на малых скоростях обмена (если, конеч­но, его делать не на Pentium), поскольку функции BIOS хоть и универсальны, но не слишком быстры.

СОМ-порт может использоваться и как двунаправленный интерфейс, у которого имеется три программно-управляемых выходных линии (TD, DTP, RTS) и четыре программно-читаемых входных линии (CIS, DSR, DCD, RI) с двуполярными сиг­налами. Их можно использовать, например, для программной реализации син­хронных последовательных интерфейсов (см. п. 11.5) и других целей. Во времена АТ-286 была известна схема однобитного широтно-импульсного преобразова­теля, позволяющего записывать звуковой сигнал на диск PC, используя входную линию СОМ-порта. Воспроизведение этой записи через обычный динамик PC позволяло передать речь.

72

Глава 2. Последовательный интерфейс — СОМ-порт


Электрический интерфейс, слоты и карты PCI


Для работы на шине PCI используются микросхемы КМОП (CMOS), причем имеются две спецификации: с напряжениями питания интерфейсных схем 5 и 3,3 В. Для них применимы параметры сигналов на постоянном токе, приведенные в табл. 6.13. Однако мощность интерфейсных элементов (транзисторов для вен­тилей) выбрана меньшей, чем требовалось бы для переключения сигналов на вы­сокой частоте (33 или 66 МГц). Здесь используется эффект отражения сигналов, формируемых микросхемами на проводниках шины, от несогласованных концов этих проводников, являющихся для таких высоких частот длинными линиями. На концах проводников шины нет терминаторов, поэтому от них приходящая волна сигнала отражается с тем же знаком и с той же амплитудой. Складываясь с пря­мым сигналом, обратная волна и обеспечивает нужный приемнику уровень сигна­ла. Таким образом, передатчик генерирует сигнал, который до прихода отражен­ного находится между уровнями переключения.

Линии управляющих сигналов FRAME*, TRDY#, IRDY#, DEVSEL*, STOP*, SERR#, PERR#, LOCK#, INTA#, INTB#, INTC#, INTD#, REQ64* и ACK64* на системной плате подтягиваются к шине питания резисторами (типично 2,7 кОм для версии 5 В и 8,2 кОм для 3,3 В), чтобы не было ложных срабатываний при пассивности всех агентов шины.

Таблица 6.13. Параметры интерфейсных сигналов на постоянном токе

Параметр                                                              5 В                             3,3 В

Входное напряжение низкого уровня, В             -0,5<UIL<0,8           -0,5<UIL<0,3 xVcc

Входное напряжение высокого уровня, В           2<UIH <Vcc+0,5      Vcc/aSUiH S Vcc +O.S

Выходное напряжение низкого уровня, В           UOl<0,55                Uol<0, 1 xVcc

Выходное напряжение высокого уровня, В         UoH^O,8                   UOH>0,9xVcc

Напряжение питания Vcc, В                                 4,75<Ucc^5,25       3,3<Ucc<3,6

Электрическая спецификация рассчитана на два предельных варианта нагрузки одной шины: 2 устройства PCI на системной плате плюс 4 слота или 4 устройства и 2 слота.
¦     на карте «3, 3 В» буферные микросхемы рассчитаны только на питание +(3,3-3,6) В;

¦     на универсальной карте буферные микросхемы допускают оба варианта пита­

ния и будут нормально формировать и воспринимать сигналы по специфика­

циям 5 или 3,3 В, в зависимости от типа слота, в который установлена карта.

На слотах обоих типов присутствуют питающие напряжения +3,3, +5, +12и-12В на одноименных линиях. В PCI 2.2 определена дополнительная линия S.SVaux — «дежурное» питание +3,3 В для устройств, формирующих сигнал РМЕ# при от­ключенном основном питании.

На системных платах чаще всего встречаются 5-вольтовые 32-битные слоты, закан­чивающиеся контактами А62/В62; 64-битные слоты встречаются реже, они длин­нее и заканчиваются контактами А94/В94. Конструкция разъемов и протокол поз­воляют устанавливать 64-битные карты и в 32-битные разъемы, и наоборот, но при этом, естественно, обмен будет в 32-битном режиме.

Тактовая частота шины определяется по возможностям чипсета и всех абонентов шины. Высокая частота 66 МГц может устанавливаться тактовым генератором толь­ко при высоком уровне на линии M66EN. Таким образом, установка любой карты, не поддерживающей 66 МГц (с заземленным контактом В49), приведет к понижению частоты, шины до 33 МГц. Серверные системные платы, на которых имеется не­сколько шин PCI, позволяют использовать на разных шинах разные частоты (66 и 33 МГц). Так, например, можно на 64-битных слотах использовать частоту 66 МГц, а на 32-битных — 33. Разгон нормальной частоты 33 МГц до 40-50 МГц аппаратно не контролируется, но может приводить к ошибкам работы карт расширения.

На рис. 6.8 изображена 32-битная карта максимального размера (Long Card), дли­на короткой платы (Short Card) — 175 мм, но многие карты имеют и меньшие раз­меры. Карта имеет обрамление (скобку), стандартное для конструктива ISA (рань­ше встречались карты и с обрамлением в стиле MCA IBM PS/2). Назначение выводов универсального разъема приведено в табл. 6.14.



194

Глава 6. Шины и карты расширения



Рис. 6.8. Карта расширения для шины PCI

Таблица 6.14. Разъемы шины PCI

 

РЯДА



Ряд В

-12В                      1

ТСК                         2

GND                       3 ,

TDO                        4

+5 8                         5

+5 В                        6

INTB#                     7

INTD#                     8

PRSNT1*                9

Резерв                     10

PRSNT2#                11

GND/Ключ 3,3 В 12

GND/Ключ 3,3 В    13

Резерв                     14

GND                        15

CLK                        16

GND                        17

REQ#                      18

+VI/O                      19

AD 31                      20

AD 29                      21

GND                        22

AD 27                      23

AD 25                      24

+3,3 В                     25

C/BE3#                    26

AD 23                      27



Ряд В



TRST#

GND/M66EN1

49

AD9

+12В

GND/Ключ 5 В

50

GND/Ключ 5 В

TMS

GND/Ключ 5 В

51

GND/Ключ 5 В

TDI

AD 8

52

С/ВЕО*

+5 В

AD 7

53

+3,3 В

INTA#

+3,38

54

AD6

INTC#

AD S

55

AD4

+5 В

AD3

56

GND

Резерв

GND

57

AD2

+VI/O

AD1

58

ADO

Резерв

+VI/0

59

+VI/Q

GND/Ключ3,3В

ACK64#

60

REQ64*

GND/Ключ 3,3 В

+5 В

61

+5 8

3.3Vaux2

+5 В

62

+5 В

RST#

Конец 32-битного разъема

+VI/0

Резерв

63

GND

GNT#

GND

64

С/ВЕ7*

GND

С/ВЕ6*

65

С/ВЕ5*

PME#2

С/ВЕ4#

66

+VI/O

AD 30

GND

67

PAR64

+3,3 В

AD63

68

AD62

AD 28

AD61

69

GND

AD 26

+VI/O

70

AD60

GND

AD59

71

AD58

AD 24

AD57

72

GND

IDSEL

GND

73

AD56

+3,3 8

AD55

74

AD54

195

6.2. Шина PCI

Ряд В



РЯДА

Ряд В



РЯДА

GND

28

AD 22

AD 53

75

+VI/O

AD 21

29

AD 20

GND

76

AD 52

AD 19

30

GND

AD 51

77

AD 50            *

+3.3 В

31

AD 18

AD 49

78

GND

AD 17

32

AD 16

+VI/O

79

AD 48

С/ВЕ2#

33

+3,3 В

AD 47

80

AD 46

GND

34

FRAME*

AD 45

81

GND

IRDY#

35

GND

GND

82

AD 44

+3,3 В

36

TRDY#

AD 43

83

AD 42

DEVSEL*

37

GND

AD 41

84

+VI/O

GND

38

STOP#

GND

85

AD 40

LOCK#

39

+3,3 В

AD 39

86

AD 38

PERR#

40

(SDONE#)3

AD 37

87

GND

+3,3 8

41

(SBOFF#) 3

+VI/O

88

AD 36

SERR#

42

GND

AD 35

89

AD 34

+3,3 В

43

PAR

AD 33

90

GND

C/BE1#

44

AD 15

GND

91

AD 32

AD 14

45

+3,3 В

Резерв

92

Резерв

GND

46

AD 13

Резерв

93

GND

AD 12

47

AD 11

GND

94

Резерв

AD 10

48

GND

Конец 64-битного разъема

1   Сигнал M66EN определен в PCI 2.1 только для слотов на 3,3 В.

2   Сигнал введен в PCI 2.2 (прежде был резерв).

3   Сигналы упразднены в PCI 2.2 (для совместимости на системной плате подтягиваются к высокому

уровню резисторами 5 кОм).

На слотах PCI имеются контакты для тестирования адаптеров по интерфейсу JTAG (сигналы ТСК, TDI, TOO, TMS и TRST#). На системной плате эти сигналы задействованы не всегда, но они могут и организовывать логическую цепочку тестируемых адаптеров, к которой можно подключить внешнее тестовое оборудо­вание. Для непрерывности цепочки на карте, не использующей JTAG, должна быть связь TDI-TDO.

На некоторых старых системных платах позади одного из слотов PCI имеется разъем Media Bus, на который выводятся сигналы ISA. Он предназначен для раз­мещения на графическом адаптере PCI звукового чипсета, предназначенного для шины ISA.


Энергонезависимая память


Обобщенное понятие энергонезависимой памяти (NV Storage) означает любое устройство, хранящее записанные данные даже при отсутствии питающего напря­жения (в отличие от статической и динамической полупроводниковой памяти). В данном разделе рассматриваются только электронные устройства энергонеза­висимой памяти, хотя к энергонезависимой памяти относятся и устройства с по­движным магнитным или оптическим носителем. Существует множество типов энергонезависимой памяти: ROM, PROM, EPROM, EEPROM, Flash Memory, FRAM, различающихся по своим потребительским свойствам, обусловленным способом построения запоминающих ячеек, и сферам применения. Запись инфор­мации в энергонезависимую память, называемая программированием, обычно су­щественно сложнее и требует больших затрат времени и энергии, чем считывание. Программирование ячейки (или блока) — это целая процедура, в которую может входить подача специальных команд записи и верификации. Основным режимом работы такой памяти является считывание данных, а некоторые типы после про­граммирования допускают только считывание, что и обусловливает их общее на­звание ROM (Read Only Memory — память только для чтения) или ПЗУ (посто­янное запоминающее устройство).

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


Процедура программирования многих старых типов памяти требует относитель­но высокого напряжения программирования (12-26 В), а для однократно про­граммируемых (прожигаемых) микросхем и специального (не ТТЛ) интерфейса управления. После программирования требуется верификация — сравнение запи­санной информации с оригиналом, причем некачественное управление программи­рованием (или брак микросхемы) может приводить к «зарастанию» записанной ячейки, что потребует повторного (возможно, и неудачного) ее программирова-

7.3. Энергонезависимая память________________________________________ 277

ния. Возможен и обратный вариант, когда «пробиваются» соседние ячейки, что требует повторного стирания (тоже, возможно, неудачного). Стирание и програм­мирование микросхем может выполняться либо в специальном устройстве — про­грамматоре, либо в самом целевом устройстве, если у него предусмотрены соот­ветствующие средства. Микросхемы различают по способу программирования.

¦ Микросхемы, программируемые при изготовлении, — масочные ПЗУ, содер­жимое которых определяется рисунком технологического шаблона. Такие микросхемы используют лишь при выпуске большой партии устройств с од­ной и той же прошивкой.

¦     Микросхемы, программируемые однократно после изготовления перед уста­

новкой в целевое устройство, — ППЗУ (программируемые ПЗУ) или PROM (Programmable ROM). Программирование осуществляется прожиганием опре­деленных хранящих элементов на специальных устройствах-программаторах.

¦     Микросхемы, стираемые и программируемые многократно, — РПЗУ (репрограммируемые ПЗУ) или EPROM(Erasable PROM — стираемые ПЗУ). Для сти­рания и программирования требуется специальное оборудование. Микросхе­мы программируются в программаторе. Иногда возможно программирование микросхем прямо в целевом устройстве, подключая внешний программатор, —так называемыйметодОЯР(Оп-Воагс! Programming). Наиболее распространены микросхемы УФРПЗУ, стираемые ультрафиолетовым облучением, — их обычно



называют просто EPROM или UV-EPROM(Ultra-Violet EPROM). В этом клас­се имеются и электрически стираемые ПЗУ (ЭСПЗУ) или EEPROM (ElecricalErasable PROM).

¦     Микросхемы, перепрограммируемые многократно в целевом устройстве, ис­

пользуя программу его процессора, — так называемый метод ISP или ISW (In-System Programming или In-System Write). К этому классу относятся чисто электрически перепрограммируемые микросхемы NVRAM и FRAM, но наиболь­шее распространение получила флэш-память и современные модели EEPROM.

NVRAM (Non-Volatile Random Access Memory) — энергонезависимая память с про­извольным доступом. Это название подразумевает возможность произвольной смены информации не только во всей ее области или блоке, но и в отдельной ячей­ке, причем не процедурой, а обычным шинным циклом. К этому классу относятся микросхемы FRAM и, с некоторой натяжкой, EEPROM. У последних время вы­полнения внутренней операции записи обычно довольно большое, и после ин­терфейсной операции записи ячейки память недоступна ни для каких операций в течение нескольких мс (а то и десятков мс). Флэш-память к этому классу отно­сить нельзя, поскольку изменение информации, недаром называемое программи­рованием, в этой памяти осуществляется специальной программной процедурой.

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

278___________________________       Глава 7. Интерфейсы электронной; памяти

ных сердечниках. Ячейки FRAM по структуре напоминают DRAM, но информа­ция хранится не в виде заряда конденсатора (который нужно поддерживать реге­нерацией), а виде направления поляризации кристаллов. Запись производится непосредственно, предварительного стирания не требуется. Как и флэш-память, она используется в самых портативных системах класса PDA (personal digital assistants — персональный цифровой ассистент).


Над этими устройствами актив­ но работает фирма Hitachi совместно с фирмой Ramtron (www.ramtron.com) и фир­ма Matsushita совместно с фирмой Symetrix. В настоящее время выпускаются микросхемы емкостью 4-256 Кбит (технология 0,35 мкм) с параллельным интер­фейсом (как SRAM) и временем доступа 70-120 не, а также с последовательным интерфейсом PC. Кроме массивов памяти FRAM используется и в специальных энергонезависимых регистрах — есть, например, микросхемы FM573 и FM574, которые при включенном питании ведут себя аналогично стандартным 8-битным регистрам '573 и '574, но при выключении питания помнят свое состояние. Мик­росхемы FRAM имеют интерфейс КМОП, питание 5 В, но имеются изделия и на 2,7 В. В отличие от флэш-памяти, у которой число циклов перезаписи принципи­ально ограничено (хотя и очень велико), ячейки FRAM практически не дегради­руют в процессе записи — гарантируется до 1010 циклов перезаписи. Провозгла­шается замена на FRAM даже динамической памяти, однако в PC память FRAM автору пока встречать не доводилось.


Энергонезависимая память с последовательными интерфейсами


Для микросхем энергонезависимой памяти малого объема, от которых не требу­ется высокой производительности обмена данными, часто применяют последо­вательные интерфейсы. Это позволяет упаковывать микросхемы памяти любо­го объема в корпуса, имеющие минимальное число выводов (рис. 7.23, 7.24, табл. 7.29). С таким интерфейсом выпускаются микросхемы EEPROM, FRAM и флэш-памяти. Микросхемы EEPROM и флэш-памяти выполняют внутренние операции записи автономно; о завершении выполнения операции можно судить

306

Глава 7. Интерфейсы электронной памяти

по результатам опроса ее состояния. Более сложные микросхемы имеют блочную организацию и средства управления доступом к каждому блоку с помощью про­граммируемых регистров состояния и внешнего вывода управления записью (про­граммированием). Микросхемы FRAM выполняют все операции на скорости ин­терфейса (на то они и RAM). Существуют модификации микросхем, позволяющие блокировать запись данных пользователем в определенную область (или всю мик­росхему, что превращает ее в ROM). Вывод управления защитой у разных типов микросхем функционируеги называется по-разному: WP# — Write Protect, WC — Write Control, PP — Programm Protect. Для выбора микросхемы используются либо входы задания внутреннего адреса А[0:2], либо сигнал выборки CS#, с помо­щью которого контроллер может обратиться к одному из требуемых устройств. Для упрощения внешних схем могут использоваться и несколько сигналов выбор­ки S[0:2], один из которых (51) иногда инвертирован.

Таблица 7.29. Популярные микросхемы памяти с последовательным интерфейсом

Микросхема

Организация    Рисунок

Примечание

24С001.24С01

24С02.24С164

24F016

24F128

X76F041

FM24C04.FM24C16, FM24C64, FM24C256

FM25040.FM25160, FM25256

16x8,128x8

256х8, 2Кх8

2Кх8

16Кх8

512x8

512х8,2Кх8,

8Кх8,32Кх8

512х8,2Кх8, 64Кх8

7.23, а 7.23, а 7.23,6 7.23, в 7.23, г 7.24 а

7.246

1гС. Выводы 1, 2, 3,7 = NC

I2C !гС ¦ 1гС 2С

SPI

 

Рис. 7.23. Назначение выводов микросхем EEPROM с интерфейсом I2C: а — 24Схх, б — 24F016, в — 24F128, г — X76F041


Микросхемы EEPROM 24C02 с интерфейсом 12С объемом 256 байт применяют­ся для последовательной идентификации модулей DIMM-168 второго поколения, DIMM-184 и SODIMM-144.





7.3. Энергонезависимая память                                                                                      307

 



 

Рис. 7.24. Назначение выводов микросхем FRAM: а — FM24C256, б — FM25640

Кроме обычных устройств энергонезависимой памяти с интерфейсом 12С выпус­кают и специализированные устройства защиты (Security Devices). Например, микросхема X76F041, представляющая собой 4 блока памяти по 128 байт, име­ет 64-битный регистр пароля, доступный только по записи. Обращение к микро­схеме возможно только при предъявлении правильного пароля (который считать невозможно в принципе). Программируемый управляющий регистр (тоже энер­гонезависимый) позволяет для каждого блока установить свой режим доступа (полный доступ, только чтение, возможность только обнуления бит при записи, доступ только по предъявлении пароля конфигурации). Кроме того, есть воз­можность включения режима саморазрушения после превышения количества попыток доступа с неверным паролем. Такие устройства могут применяться в ап­паратных ключах, защищающих программные средства от несанкционированно­го исполнения и пиратского копирования.

Последовательные интерфейсы памяти имеются на специальных устройствах-программаторах и копировщиках; их имеют многие модели микроконтроллеров, а там, где нет специальных аппаратных средств, они могут быть легко реализова­ны программно, занимая несколько бит портов общего назначения. В IBM PC может присутствовать внутренний интерфейс PC для считывания последователь­ных идентификаторов модулей памяти (в виде шины SMBus, см. п. 11.1.3). По­следовательный интерфейс памяти используется во многих микросхемах програм­мируемой логики (например, в популярных устройствах FPGA фирмы Altera), применяемых в различных устройствах, включая карты расширения PC.


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

Для микросхем памяти часто применяют интерфейсы PC, SPI (Microwire) и иные «безымянные», называемые просто 2-, 3- и 4-проводными (считаются только сигнальные линии, общий провод подразумевается). Некоторые из этих интер­фейсов являются собственными изобретениями разработчиков микросхем памя­ти (необходимые сведения обычно имеются в информационных листках), здесь же остановимся на наиболее популярных.

308

Глава 7. Интерфейсы электронной памяти

Память с интерфейсом  I2С

Широко распространенный двухпроводный интерфейс PC (см. п. 11.1.1) обеспе­чивает невысокую скорость передачи (до 100 или 400 Мбит/с).

Диаграмма обмена данными с памятью по интерфейсу 12С приведена на рис. 7.25. Выполнив условие Start, ведущее устройство передает байт, содержащий адрес устройства, и признак операции RW и ожидает подтверждения. При операции за­писи следующей посылкой от ведущего устройства будет 8-битный адрес записы­ваемой ячейки, а за ней — байт данных (для микросхем объемом памяти более 256 байт адрес ячейки посылается двумя байтами). Получив подтверждения, ве­дущее устройство завершает цикл условием Stop, а адресованное устройство мо­жет начать свой внутренний цикл записи, во время которого не реагирует на сиг­налы интерфейса. Ведущее устройство может проверять готовность устройства к следующей операции посылкой команды записи (байт адреса устройства) и ана­лизом бита подтверждения, формируя затем условие Stop. Если устройство от­кликнулось битом подтверждения, значит, оно завершило внутренний цикл и го­тово к следующей операции.





Рис. 7.25. Диаграмма обмена с памятью по интерфейсу I2С

Операция считывания инициируется так же, как и запись, но с признаком RW=1. Возможно чтение по заданному адресу, по текущему адресу или последовательное. Текущий адрес хранится во внутреннем счетчике микросхемы памяти; он содер­жит увеличенный на единицу адрес ячейки, участвовавшей в последней операции. Получив команду чтения, устройство дает бит подтверждения и посылает байт данных, соответствующий текущему адресу. Контроллер может ответить подтверж­дением, тогда устройство пошлет следующий байт (последовательное чтение). Если на принятый байт данных контроллер ответит условием Stop, операция чте­ния завершается. Начальный адрес для считывания контроллер задает фиктив-

7.3. Энергонезависимая память.________________________________________ 309

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

Заметим, что последовательная память малого объема может использовать и упро­щенный вариант интерфейса, правда, и не называемого PC. Так, например, память Atmel AT24C01 объемом 128 байт используют упрощенную систему адресации: адрес ячейки передается вместо 7-битного адреса устройства PC, а в остальном операции записи и чтения выполняются по тем же правилам. При этом шина вы­рождается в двухточечный интерфейс, но в ряде случаев этого и достаточно. Спе­циальные адреса здесь не требуются, так что все 128 значений 7-битного адреса доступны для адресации памяти.


Микросхемы той же фирмы объемом 256 байт используют вышеприведенный механизм адресации устройств PC с возможно­стью объединения до 8 устройств. А в микросхемах объемом 512,1024 и 2048 байт 1, 2 или все 3 бита номера устройства в адресе отбираются под адрес 256-байт-ной страницы памяти. Память большего объема использует 7-битную адресацию устройств, обычную для PC, а адрес ячейки задается последующими двумя байтами (сначала старшим, затем младшим).

Память с интерфейсом SPI

Трехпроводный интерфейс SPI (см. п. 11.3) обеспечивает скорость передачи до 5 Мбит/с. Обмен с микросхемой, выбранной сигналом CS#, начинается с подачи по линии SI 8-битного кода команды. В команде записи за кодом команды следует адрес ячейки, за которым следуют байты данных. Команда чтения начинается так же, но после приема адреса в следующем же такте по линии SO начинается вывод данных. Есть и специальные безадресные команды, например, разрешение/запрет записи и стирания. Микросхемы памяти с SPI имеют регистр состояния, доступ к которому обеспечивается специальными командами. В этом регистре отражается состояние управляющего автомата записи (занят/свободен), в нем же могут присутствовать и биты управления защитой записи (в регистр состояния возмож­на и запись). Состав регистров и набор команд зависит от модели устройства.


Кабели, разъемы, сигналы


Для параллельного интерфейса характерен плоский или круглый гибкий кабель. Плоский кабель, используется для соединения устройств, расположенных в одном корпусе. На нем может быть ;наколото несколько разъемов. При необходимости кабеди; могу;г сращиваться через специальные переходные разъемы, причем толь­ко концевые; Т-образные ответвления недопустимы (допускается длина отвода до 10 см, сюда входит длина проводника от ответвления до входа микросхемы при­емопередатчика). Круглый кабель, состоящий из витых пар, используется для со­единения вне корпусов устройств. ПУ внешнего исполнения обычно имеют два разъема, что позволяет соединить их в цепочку. Длина кабеля зависит от версии интерфейса и часто1ьЦтабл.,5.2Х При.црдсчете суммарной длины кабеля следует учитывать возможность использования одного порта хост-адаптера одновремен­но для внешних и внутренних подключений и, в случае такого подключения, сум­мировать длины внутренних и внешних кабелей. У всех разъемов кабеля контак­ты одноименных [цепейссоединяютея «один в один».

Таблица 5. 2\ Максимальная длина кабелей SCSI

Тип интерфейса

Обычный

Fast

Ultra

Ultra 2

Ultra 160

UltraSZO

(5 МТ/с)

(10 МТ/с)

(20 МТ/с)

(40 МТ/с)

(80 МТ/с)

(160 МТ/с)

Линейный

Зм

1,5 м

"_  ' "'

_

(Single ended);

(8устр.),

Зм    '*•'''

> l " '.

(4устр.)

ДиффереН- ; ,.;'

25 м

12м

6 м

. _ . . .

_

циальный

(16устр.),

(16устр.),

(HVD)

25 м

25 м

(8устр.)

(8устр.)

Дифферен-

-

-

-

12м

12м

12м

циальный,    ,

(16устр.),

(16устр.),

(16устр.),

низковольтный

25 м

25 м

25 м

(LVD)               >

(8устр.)

(8устр.)

(Зустр.)

В настоящее время ассортимент разъемов, применяемых в устройствах SCSI, до­вольно широк, что иногда заставляет использовать переходные адаптеры.
Разъ­ емы различаются как по числу, так и по форме и размеру контактов (о назначении контактов см; ниже). Практически все разъемы двухрядные, и раскладка цепей рассчитана на чередование сигнальных и обратных проводов. Исключения состав­ляют разъемы DВ-25, у которых число «земляных» контактов меньше, чем сиг­нальных, и экзотические трехрядные DB-50. Ниже описаны применяемые типы разъемов.

¦ IDC-50 - разъемы для соединения внутренних устройств (аналогичны разъемам АТА, где применяются 40-контактные IDC-40). Разъемы имеют квадрат­ные штырьковые контакты с шагом 0,1" (2,54 мм), пластмассовый корпус, без кожуха и дополнительных фиксаторов (рис. 5.1, а). На устройствах устанав­ливают вилки (IDC-50M), на ленточных кабелях — розетки (IDC-50F).

5.1. Параллельные интерфейсы SCSI

119

СХ-50 — разъемы типа Centronics, аналогичные применяемым в принтерах (но 50-контактные). Разъемы имеют пластинчатые контакты с шагом 0,085" (2,16 мм) и внешний металлический кожух (рис. 5.1, б). Применяются для соединения внешних устройств. На корпусе устройства (и SCSI-адаптера) устанавливают розетки (CX-50F), на кабелях — вилки (СХ-50М). Разъемы фиксируются про­волочными скобами, установленными на розетке, входящими в выемки на кор­пусе вилки. Часто называются «внешними SCSI-1» (SCSI-1 External).



Рис. 5.1. Разъемы 8-битного устройства SCSI: а — IDC-50P, б — CX-50R в — DB-25P, г— HD-50F

¦     DB-25 — разъемы с круглыми штырьковыми контактами в металлическом ко­жухе D-образной формы (как на LPT-порте компьютера). На устройстве уста­навливается розетка (DB-25F), на кабеле — вилка (DB-25M); фиксация выпол­няется с помощью винтов (рис. 5.1, в). Применяются на некоторых внешних устройствах (например, Zip).

¦     HD-50, они же MiniDSO (рис. 5.1, г), — разъемы со штырьковыми контактами в металлическом кожухе D-образной формы, с высокой плотностью контактов (High Density) — с шагом 0,05" (1,27 мм). На устройстве устанавливается розет­ка (HD-50F), на кабеле — вилка (HD-50M); фиксация выполняется с помощью защелок (клипсов).


Часто называются «внешними SCSI-2» (SCSI-2 External).

¦     HD-68, они же MiniD68, — аналогичные разъемы, но с 68 контактами. На устрой­стве устанавливается розетка (HD-68F или MiniD68F), на кабеле — вилка (HD-68M или MiniD68M). Внешние разъемы фиксируются с помощью клип­сов или винтов, внутренние — только на трении. Часто называются разъемами SCSI-3, в настоящее время наиболее широко используются для «широкого» ин­терфейса. На рис. 5.2 показан внешний разъем, слева изображена клипса, спра­ва — резьбовая букса.

120

 Глава 5. Шина SCSI

 



 

Рис. 5.2. Разъемы 16-битного устройства SCSI HD-68F

VHDCI-68 — внешние разъемы с особо высокой плотностью (Very High Density Connector), контакты в стиле Centronics с шагом 0,8 мм. Применяются нечас­то, иногда их ошибочно называют разъемами SCSI-4 или SCSI-5.

МСХ (Micro-centronics) — разъемы в стиле Centronics, но в миниатюрном ва­рианте. Наиболее распространены разъемы МСХ-68 и МСХ-80, более извест­ные как SCA.

SCA (Single Connector Attachment) — разъем для подключения устройства одним разъемом. Предназначен для подключения дисков, устанавливаемых в шасси с возможностью «горячей» замены (или, по крайней мере, легкой, через лицевую панель). В настоящее время распространена спецификация SCA-2 на разъемах МСХ-80 (рис. 5.3). На устройстве устанавливается вгшся (MCX-80F), на шасси — розетка (МСХ-80М). Кроме интерфейсных сигналов, на разъем выводятся шины питания, ^ также сигналы конфигурирования устройства (идентификатор, режимы и т. п.). На боковых направляющих имеются допол­нительные контакты заземления. Конфигурационные джамперы устанавлива­ются не на устройстве, а на шасси (или на плате адаптера).



 

Рис. 5.3. Разъем устройства SCSI с «горячей» заменой SCA-80

Для версии Narrow SCSI использовались разъемы, изображенные на рис. 5.1, для Wide SCSI — на рис. 5.2. Для устройств с «горячей» заменой применяют миниатюр­ный D-образный разъем SCA-2, общий для питания и сигнальных цепей (рис. 5.3).


Ассортимент кабелей SCSI довольно широк.

¦  А-кабель. Стандартный для 8- битного интерфейса, 25 пар проводов. Для внут­ренних устройств используется плоский ленточный кабель, для внешних — круг­лый кабель, состоящий из 25 витых пар в общем экране:

•       внутренний А-кабель SCSI-1 и SCSI-2 имеет разъемы с низкой плотностью контактов IDC-50 (розетки, см. рис. 5.1, я);

•       внешний А-кабель SCSI-1 имеет разъемы Centronics-50 (CX-50M, см. рис. 5.1, б);

•       внешний А-кабель SCSI-2 имеет разъемы MiniDSOM (HD-50M, см. рис. 5.1, в).

¦  В-кабелъ. Малораспространенный 16/32-битный расширитель SCSI-2.

5.1. Параллельные интерфейсы SCSI                                                                                     121

¦  Р-кабелъ. 8/16-битный кабель с 34 парами проводов, снабжен улучшенными миниатюрными экранированными разъемами. Применяется в интерфейсах SCSI-2/3, в 8-битном варианте контакты 1-5,31-39,65-68 не используются:

•       внутренний Р-кабель SCSI-3 имеет разъемы HD-68M без фиксаторов;

•       внешний Р-кабель SCSI-3 имеет разъемы MiniD68M с фиксаторами;

•       внешний Р-кабель SCSI SPI-2 имеет разъемы с особо высокой плотностью VHDCI-68M (иногда такой кабель ошибочно называют кабелем SCSI-4 или SCSI-5).

¦     Q-кабелъ. 68-проводное расширение до 32 бит, используется в паре с Р-кабелем и имеет аналогичную конструкцию. Реально Q-кабель так и не использо­вался, в спецификации SCSI SPI-3 уже не рассматривается.

¦     Mac SCSI. Кабель с разъемами DB-25P (см. рис. 5.1, г) — 8-битный, стандарт­ный для Macintosh (назначение контактов см. ниже), используется на некото­рых внешних устройствах (Iomega ZIP Drive). Встречается иная раскладка цепей, если 25-контактный разъем установлен на хост-адаптере.

Существуют также различные варианты кабелей-переходников (с разнотипными разъемами) и адаптеров.


Адаптеры представляют собой печатную плату или мо­нолитную конструкцию с разнотипными разъемами. У адаптеров, соединяющих шины разной ширины, может присутствовать терминатор (должен быть отклю­чаемым!) старшего байта (см. п. 5.1.5). Адаптер подключения SCA к обычной шине имеет стандартный разъем подключения питания, а также набор джамперов, зада­ющих конфигурацию устройства.

Назначение контактов разъемов кабелей приведено в табл. 5.3-5.7. Неудобство вызывает система нумерации контактов, которая различна для внешних и внут­ренних разъемов. Однако физическая раскладка проводов на разъеме и в плоском кабеле одинакова, сигнальные линии (прямые) перемежаются обратными прово­дами (заземленными в SE-устройствах).

Таблица 5.3. Разъемы А-кабеля SCSI

Контакт IDC-50 / СХ-50

ЦепьЗЕ/Diff

Контакт IDC-50 / СХ-50

Цепь

1/1

GND/DBO+

2/26

DBO#

3/2

GND/DB1+

4/27

DB1#

5/3

GND/DB2+

6/28

DB2#

7/4

GND/DB3+

8/29

DB3#

9/5

GND/DB4+

10/30

DB4#

11/6

GND/DB5+

12/31

DB5#

13/7

GND/DB6+

14/32

DB6#

15/8

GND/DB7+

16/33

DB7#

17/9

GND/DBPO+

18/34

DBPO#

19/10

GND/GND

20/35

GND

21/11

GND/GND

22/36

GND

продолжение

122

Глава 5. Шина SCSI

Таблица 5.3 (продолжение)

Контакт IOC-50/ СХ-50   UenbSE/Diff

Контакт IDC-50/CX-50   Цепь

23/12 25/13 27/14 29/15 31/16 33/17 35/18 37/19 39/20 41/21 43/22 45/23 47/24 49/25

Резерв

24/37

Свободен

26/38

Резерв

28/39

GND

30/40

GND/ATN+

32/41

GND

34/42

GND/BSY+

36/43

GND/ACK+

38/44

GND/RST+

40/45

GND/MSG+

42/46

GND/SEL+

44/47

GND/C/D+

46/48

GND/REQ+

48/49

GND/I/O+

50/50

Резерв

TERMPWR

Резерв

GND

ATN#

GND

BSY#

АСК#

RST#

MSG#

SEL#

C/D#

REQ#

l/0#

Таблица 5.4. Разъемы В-кабеля SCSI

Контакт внутр. / внешн.   UenbSE/Diff      Контакт внутр./внешн.   Цепь



1/1

3/2

5/3

7/4

9/5

11/6

.13/7

15/8

17/9

19/10

21/11

23/12

25/13

27/14

29/15

31/16

33/17

35/18

37/19

39/20

41/21

43/22

45/23

GND

2/35

GND/DB8+

4/36

GND/DB9+

6/37

GND/DB10+

8/38

GND/DB11 +

10/39

GND/DB12+

12/40

GND/DB13+

14/41.

GND/DB14+

16/42

GND/DB15+

18/43

GND/DBP1 +

20/44

GND/ACKB+

22/45

GND/GND

24/46

GND/REQB+

26/47

GND/DB16+

28/48

GND/DB17+

30/49

GND/DB18+

32/50

TERMPWR

34/51

TERMPWR

36/52

GND/DB19+

38/53

GND/DB20+

40/54

GND/DB21 +

42/55

GND/DB22+

44/56

GND/DB23+

46/57

GND

DB8#

DB9#

DB10#

DB11#

DB12#

DB13#

DB14#

DB15#

DBP1#

ACKB#

GND

REQB#

DB16#

DB17#

DB18#

TERMPWR

TERMPWR

DB19#

DB20#

DB21#

DB22#

DB23#

5.1. Параллельные интерфейсы SCSI

Контакт внутр. /внешн.   UenbSE/Diff                 Контакт внутр./внешн.   Цепь

47/24                                     GND/DBP2+              48/58 ";>                     ; •'">--•'•.   :^-*-ёвР2#'к

49/25                                     GND/DB24+              50/59                                          DB24*

51/26                                     GND/DB25+              52/60                                          DB25#

53/27                                     GND/DB26+              54/61                                          DB26#

55/28                                     GND/DB27+              56/62                                          DB27#

57/29                                     GND/DB28+              58/63                                          DB28#

59/30                                     GND/DB29+              60/64                                          DB29#

61/31                                     GND/DB30+              62/65                                          DB30#

53/32                                     GND/DB31+              64/66                                          DB31#



65/33                                     GND/DBP2+              66/67                              '           DBP2#

67/34                                     GND/GND                 68/68                                             GND

Таблица 5.5. Разъемы Р-кабеля SCSI

Контакт     ЦепьЗЕ/Diff

Контакт

Цепь

1

GND/DB12+

35

DB12#

2

GND/DB13+

36

DB13#

3

GND/DB14+

37

DB14#

4

GND/DB15+

38

DB15#

5

GND/DBP1+

39

DBP1#

6

GND/DBO+

40

DBO#

7

GND/DB1+

41

DB1#

8

GND/DB2+

42

DB2#

9

GND/DB3+

43

DB3#

10

GND/DB4+

44

DB4#

11

GND/DB5+

45

DB5#

12

GND/DB6+

46

DB6#

13

GND/DB7+

47

DB7#

14

GND/DBPO+

48

DBPO#

15

GND

49

GND

16

DIFFSENS (GND)'

50

GND

17

TERMPWR

51

TERMPWR

18

TERMPWR

52

TERMPWR

19

Резерв

53

Резерв

20

GND

54

GND

21

GND/ATN+

55

ATN#

22

GND/GND

56

GND

23

GND/BSY+

57

BSY#

24

GND/ACK+

58

ACK#

25

GND/RST+

59

RST#

26

GND/MSG+

60

MSG#

27

GND/SEL+

61

SEL#

продолжение^

124

Глава 5,

Шина SCSI

Таблица 5

.5 (продолжение)

Контакт

UenbSE/Diff

Контакт

Цепь

28

GND/C/D+

62

C/D#

29

GND/REQ+

63

REQ#

30

GND/I/O+

64

I/O#

31

GND/DB8+

65

DB8#

32

GND/DB9+

66

DB9#

33

GND/DB10+

67

DB10#

34

GND/DB11 +

68

DB11#

Сигнал DIFFSENS определен только для интерфейса LVD.

Таблицаб.6. Разъем Mac SCSI (DB-25)

Контакт

Цепь

Контакт

Цепь

1

REQ#

14

GND

2

MSG#

15

C/D#

3

I/O*

16

GND

4

RST#

17

ATN#

5

АСК#

18

GND

6

BSY#

19

SEL#

7

GND

20

DBPO#

8

DBO#

21

DB1#

9

GND

22

DB2#

10

DB3#

23

•    DB4#

11

DB5#

24

GND

12

DB6#

25

TERMPWR

13

DB7#

<


Таблица 5.7. Разъем SCA-80

Контакт

Цепь

Контакт

4enbSE/Diff

01

12 Volt Charge

41

12V GND

02

12 Volt

42

12V GND

03

12 Volt

43

12V GND

04

12 Volt

44

Mated 1

05

Резерв

45

Резерв

06

Резерв

46

GND

07

DB11#

47

GND/DB11 +

08

DB10#

48

GND/DB10+

09

DB9#

49

GND/DB9+

10

DB8#

50

GND/DB8+

11

I/O*

51

GND/I/0+

12

REQ#

52

GND/REQ+

5.1. Параллельные интерфейсы SCSI

125

Контакт

Цепь

Контакт

UenbSE/Diff

13

C/D#

53

GND/C/D+

14

SEl#

54

GND/SEL+

15

MSG#

55

GND/MSG+

16

RST#

56

GND/RST+

17

ACK#

57

GND/ACK+

18

BSY#

58

GND/BSY+

19

ATN#

59

GND/ATN+

20

DBPO#

60

GND/DBPO+

21

DB7#

61

GND/DB7+

22

DB6#

62

GND/DB6+

23

DB5#

63

GND/DB5+

24

DB4#

64

GND/DB4+

25

DB3#

65

GND/DB3+

26

DB2#

66

GND/DB2+

27

DB1#

67

GND/DB1+

28

DBO#

68

GND/DBO+

29

DBP1#

69

GND/DBP1 +

30

DB15#

70

GND/DB15+

31

DB14#

71

GND/DB14+

32

DB13#

72

GND/DB13+

33

DB12#

73

GND/DB12+

34

5 Volt

74

Mated 2

35

5 Volt

75

5VGND

36

5 Volt Charge

76

5VGND

37

Резерв

77

Active LED Out

38

Auto Spin Up

78

Delayed Start

39

SCSI I D 0

79

SCSI I D 1

40

SCSI ID 2

80

SCSI I D 3


Классы устройств PCI


Важной частью спецификации PCI является классификация устройств и указа­ние кода класса в его конфигурационном пространстве (3 байта Class Code). Стар­ший байт определяет базовый класс, средний — подкласс, младший — программный интерфейс (если он стандартизован). Код класса позволяет идентифицировать наличие определенных устройств в системе, это может быть сделано с помощью PCI BIOS. Для стандартизованных устройств (например, 01:01:80 — контроллер IDE или 07:00:01 — последовательный порт 16450) «заинтересованная» програм­ма может найти требуемое устройство и выбрать подходящий вариант драйвера. Классификатор определяет организация PCI SIG, он регулярно обновляется на сайте www.pcisig.com. Нулевые значения полей, как правило, дают самые неопре­деленные описания. Значение подкласса 80h относится к «иным устройствам».

210_____________________________________ Глава 6. Шины и карты расширения



Команды шины, адресация памяти и ввода-вывода


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

Каждое ЦУ должно достаточно быстро отвечать на адресованную ему транзакцию. Задержка первой фазы данных (target initial latency), то есть задержка появления сигнала TRDY* относительно FRAME*, не должна превышать 16тактов-шины. Если устройство по своей природе иногда может не успевать уложиться в этот интервал, оно должно формировать сигнал STOP*, прекращая транзакцию. Это заставит ве­дущее устройство повторить транзакцию, и с большой вероятностью эта попытка окажется успешной. Если устройство медленное и часто не укладывается в 16 тактов, то оно должно откладывать транзакцию (Delayed Transaction). Кроме того, ЦУ имеет инкрементный механизм слежения за длительностью циклов (Incremental Latency Mechanism), который не позволяет интервалу между соседними фазами данных ъ пакете (target subsequent latency) превышать 8 тактов шины. Если ЦУ не успевает работать в таком темпе, оно обязано остановить транзакцию. Желатель­но, чтобы устройство сообщало о своем «неуспевании» как можно раньше, не вы­жидая предельных 16 или 8 тактов, — это экономит полосу пропускания шины.

Инициатор тоже не должен задерживать поток — допустимая задержка от начала FRAME* до сигнала IRDY* (master data latency) и между фазами данных не должна превышать 8 тактов. Если ЦУ время от времени отвергает операцию записи в па­мять с запросом повтора (это, к примеру, может происходить при записи в видео­память), то есть «предел терпения» для завершения операции. Таймер максималь­ного времени исполнения (maximum complete time) имеет порог 10 мкс — 334 такта при 33 МГц или 668 тактов на 66 МГц, за которое инициатор должен иметь возмож­ность «протолкнуть» хоть одну фазу данных. Таймер начинает отсчет с момента запроса повтора операции записи в память и сбрасывается при последующем за­вершении транзакции записи в память, отличном от запроса повтора.
Устройства, не способные выдерживать ограничение на максимальное время исполнения за­писи в память, должны предоставлять драйверу возможность определять их со­стояние, в котором достаточно быстрая запись в память невозможна. Драйвер, естественно, должен учитывать это состояние и не «напрягать» шину и устрой­ство бесплодными попытками записи.

Каждое ведущее устройство, способное сформировать пакет с более чем двумя фазами данных, должно иметь собственный программируемый таймер задержки (Latency Timer), регулирующий поведение ведущего устройства, когда у него отби­рают право управления шиной. Таймер запускается по каждому сигналу FRAME*, введенному этим ведущим устройством. Поведение ведущего устройства по до­стижении порога зависит от типа команды и состояния сигналов FRAME* и GNT* на момент срабатывания таймера.

6.2. Шина PCI_______________________________________________________ 183

¦     Если ведущее устройство снимает сигнал FRAME* до срабатывания таймера, транзакция завершается нормально.

¦     Если сигнал GNT# снят и исполняемая команда не является записью памяти с инвалидацией, то инициатор обязан сократить транзакцию, сняв сигнал FRAME*.При этом ему позволяется завершить текущую и выполнить еще одну фазу данных.

¦     Если сигнал GNT# снят и исполняется запись в память с инвалидацией, то ини­циатор должен завершить транзакцию по концу текущей (если передается непоследнее двойное слово строки) или следующей (если двойное слово — по­следнее) строки кэша.

Задержка арбитража (arbitration latency) определяется как число тактов от пода­чи инициатором запроса REQ# до получения права управления шиной GNT#. Эта задержка зависит от активности других инициаторов, быстродействия устройств (чем меньше они вводят тактов ожидания, тем лучше) и «проворности» собствен­но арбитра. В зависимости от исполняемой команды и состояния сигналов веду­щее устройство должно либо сократить транзакцию, либо продолжать ее до за­планированного завершения.



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

Для максимального использования возможностей шины устройства должны иметь буферы, чтобы накапливать в них данные для пакетных транзакций. Реко­мендуется для устройств со скоростью передачи данных до 5 Мбайт/с иметь бу­фер, по крайней мере, на 4 двойных слова. Для более высоких скоростей рекомен­дуется буфер на 32 двойных слова. Для обмена с системной памятью наиболее эффективны транзакции, работающие с целыми строками кэша, что тоже учиты­вают при определении размера буфера. Однако увеличение размера буфера мо­жет вызвать трудности при обработке ошибок, а также вести к увеличению задер­жек доставки данных (пока устройство не заполнит определенный объем буфера, оно не начнет передачу этих данных по шине, и их потребители будут ожидать).

В спецификации приводится пример организации карты Fast Ethernet (скорость передачи — 10 Мбайт/с), у которой для каждого направления передачи имеется 64-байтный буфер, поделенный на две половины. Когда адаптер заполняет одну половину буфера приходящим кадром, он выводит в память накопленное содер­жимое другой половины, после чего они меняются местами. Каждая половина выводится в память за 8 фаз данных (около 0,25 мкс на частоте 33 МГц), что соот­ветствует установке MIN_GNT=1. При скорости прихода данных 10 Мбайт/с каж­дая половина заполняется за 3,2 мкс, что соответствует установке М AX_L АТ= 12 (здесь время задается в интервалах по 0,25 мкс).


Конфигурирование интерфейсных карт ISA и EISA


Как было указано выше, всем устройствам-абонентам шин ISA и EISA должны назначаться свои системные ресурсы — области адресов в пространствах памяти и ввода-вывода, линии запросов прерываний и каналы прямого доступа к памяти, причем устройства не должны конфликтовать по ресурсам. Иными словами, все устройства, подключенные к шине, требуется должным образом сконфигурировать. Под этим подразумевается бесконфликтная настройка их дешифраторов адресов и коммутация сигналов запросов прерываний и пар сигналов для работы с кана­лами DMA. Кроме того, выбранные аппаратные настройки должны быть сообще­ны программному обеспечению, непосредственно взаимодействующему с устрой­ствами через пс-рты, ячейки памяти, каналы DMA и контроллер прерываний.

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

Позже на картах ISA стали применять микросхемы энергонезависимой памяти (как правило, EEPROM), хранящей настройки. С такими картами поставляются утилиты настройки, позволяющие в диалоговом режиме задать требуемые пара­метры. Отсюда их названия: программно конфигурируемые (Software Configured), или безджамперные (jumperless). В общем, это позволило облегчить конфигури­рование — для смены настроек не нужно вынимать карту и переставлять джампе-ры. Правда, пользователю все равно приходится вникать в распределение сис­темных ресурсов. Однако работа конфигурационных утилит может осложняться (и блокироваться) соседними «недружественными» картами.

Идеальными условиями для программного конфигурирования, и тем более авто­матического (без вмешательства пользователя), является изоляция карты от всех остальных (на время конфигурирования). Тогда ПО конфигурирования сможет вести с картой диалог, на который не повлияет присутствие других устройств.
Для автоматического конфигурирования необходимо также обеспечить единый метод двустороннего обмена конфигурационной информацией между картой и конфи­гурационным ПО. Возможность изоляции карт при конфигурировании заложена в шины MCA, PCI и EISA, но в ISA такой возможности нет. В шине EISA можно выборочно управлять сигналом AEN (разрешающим дешифрацию адресов портов ввода-вывода) для каждого слота, причем эта возможность сохраняется и для карт ISA, установленных в слот EISA. В машинах с EISA имеется специальная энерго­независимая память конфигурирования слотов, с которой взаимодействует ути­лита конфигурирования EQU (EISA Configuration Utility); эта память и утилита могут использоваться и при установке карт ISA в машину EISA. Для шины ISA система автоматического конфигурирования — ISA PnP — была разработана лишь спустя десяток лет после начала массового выпуска компьютеров и карт расши­рения. Также были расширены функции BIOS — появилась спецификация PnP BIOS. Полная поддержка автоматического конфигурирования карт ISA требует

6.1. Шины ISA, EISA и PC/104_________________________________________ 165

наличия PnP BIOS, карт и/или модулей ISA PnP на системной плате, а также ОС с поддержкой PnP или же специализированного ПО.


Конфигурирование LPT-портов


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

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

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

¦ Базовый адрес — 3BCh, 378h или 278h. При инициализации BIOS проверя­ет наличие портов по адресам именно в этом порядке и, соответственно, при­сваивает обнаруженным портам логические имена LPT1, L PT2, L РТЗ. Адрес ЗВСЬ имеет адаптер порта, расположенный на плате MDA или HGC. Большин­ство портов по умолчанию конфигурируется на адрес 378h и может пере­ключаться на 278h.

1.8. Неисправности и тестирование параллельных портов____________________ 45

¦     Используемая линия запроса прерывания: для 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 переводит порт в ЕРР.

Выбор режима ЕРР, ЕСР или Fast Centronics сам по себе не приводит к повыше­нию быстродействия обмена с подключенными ПУ, а только дает возможность драйверу и ПУ установить оптимальный режим в пределах их «разумения». Боль­шинство современных драйверов и приложений пытаются использовать эффек­тивные режимы, поэтому «подрезать им крылья» установкой простых режимов без веских на то оснований не стоит.

Принтеры и сканеры могут пожелать режима ЕСР. Windows (3.x, Эх и NT) имеет системные драйверы для этого режима. В среде DOS печать через ЕСР поддержи­вается только специальным загружаемым драйвером.

Сетевые адаптеры, внешние диски и CD-ROM, подключаемые к параллельному порту, могут использовать режим ЕРР. Для этого режима специальный драйвер пока еще не применяется; поддержка ЕРР включается в драйвер самого подклю­чаемого устройства.


Конфигурирование СОМ-портов


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

70________________________ Глава 2. Последовательный интерфейс — СОМ-порт

аппаратных средств порта и текущее (оперативное) переключение режимов рабо­ты прикладным или системным ПО. Конфигурирование СОМ-порта зависит от его исполнения. Порт на плате расширения конфигурируется джамперами на са­мой плате. Порт на системной плате конфигурируется через 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 при работе с СОМ-портами используют редко.



Конфигурирование устройств


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

¦     Идентификатор устройства (SCSI ID) — адрес 0-7 (для Wide SCSI 0-15),

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

должен иметь высший приоритет, назначается адрес 7 (15 для Wide SCSI, если

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

обеспечивает совместимость адресации 8- и 16-битных устройств на одной шине.

Ряд версий BIOS считает загрузочным только устройство с SCSI ID=0.

¦     Контроль паритета (SCSI Parity). Если хотя бы одно устройство не поддер­

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

шине. Контроль паритета, особенно для дисковых устройств, является необхо­

димым средством защиты от искажения данных при передаче по шине.

¦     Включение терминаторов (Termination). В современных устройствах приме­

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

или программно-управляемым сигналом. Терминаторы должны включаться

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

ляют автоматически включать свой терминатор, если они являются крайними,

и отключать, если используются внутренний и внешний разъем канала. Это

позволяет подключать и отключать внешние устройства, не заботясь о пере­

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

джампер, а пассивные терминаторы устанавливать в специальные гнезда (и

извлекать их оттуда). При отсутствии внутренних терминаторов пользователь

был вынужден применять внешние, устанавливаемые на кабель.

ВНИМАНИЕ

Правильная установка терминаторов крайне существенна — отсутствие/избыток терминато­ров может привести к неустойчивости или неработоспособности интерфейса.

Питание терминаторов (Terminator power) должно быть включено (джампе­ром или программно) хотя бы на одном устройстве.


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

5.1. Параллельные интерфейсы SCSI                                                                             135

ющим синхронный режим, «нормальный» хост-адаптер поддержит этот режим. Целевому устройству можно запретить запрос синхронного режима специальным джампером, который может называться «Enable TI-SDTR» (Target Initiated Synchronous Data Transfer Request Negotiation).

¦     Разрешение отключения (Enable disconnection). Позволяет устройствам отклю­чаться от шины при неготовности данных во время длительных операций с носителем, что весьма эффективно в многозадачном режиме при нескольких ПУ на шине. В случае одного устройства отключение приводит только к до­полнительным затратам времени на повторное соединение.

¦     Согласование ширины шины данных тоже выполняется по протоколу шины,

исходя из возможностей обоих участников обмена. Целевому устройству

можно запретить запрос 16-битного режима специальным джампером, кото­

рый может называться «Enable TI-WDTR» (Target Initiated Wide Data Transfer

Request Negotiation).

¦     Запрет 16-разрядного режима (Disable wide). Позволяет подключить «широ­

кое» устройство к «узкой» шине.

¦     Принудительное переключение в линейный режим (Force SE). Позволяет пере­вести устройство LVD в режим SE, независимо от состояния линии DIFFSENS.

¦     Запрет синхронизации по обоим фронтам (Disable U160). Позволяет принуди­тельно перевести устройство UltraS SCSI в режим Ultra2.

¦     Старт по команде (Start on command), или запрет автоматического запуска

шпиндельного двигателя (Disable Auto Spin up). При установке этого парамет­ра запуск двигателя устройства выполняется только по команде от хост-адап­тера, что позволяет снизить пик нагрузки блока питания в момент включения. Хост будет запускать устройства последовательно.

¦     Задержанный старт (Delayed Start) в сочетании с джамперами выбора за­

держки позволяет автоматически запускать двигатель через указанный интер­

вал после подачи питания (разным устройствам задают различные значения

задержки).



Рис. 6.10. Формат заголовка конфигурационного пространства устройства PCI

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

¦ Command (RW) — регистр команд, управляющий поведением устройства на шине PCI. Регистр допускает как запись, так и чтение. После аппаратного сбро­са все биты регистра (кроме специально оговоренных исключений) обнулены. Назначение бит регистра команд:

•       бит 0—10 Space — разрешение ответа на обращения к пространству вво­

да-вывода;

•       бит 1 — Memory Space — разрешение ответа на обращения к пространству памяти;

•       бит 2 — Bus Master — разрешение работы инициатором (в режиме управ­ления шиной);

•       бит 3— Special Cycles — разрешение реакции на специальные циклы;

•       бит4 —Memory Write& and Invalidate enable— разрешениеиспользовать

команды «запись с инвалидацией» при работе инициатором (если бит обну­

лен, то вместо этих команд должна использоваться обычная запись в память);

•       бит 5 — VGA palette snoop — разрешение слежения за записью в регистр палитр;

6.2. Шина PCI_______________________________________________________ 207

•       бит 6 — Pari ty Error Response — разрешение нормальной реакции (выра­

батывать сигнал PERR#) на обнаруженную ошибку паритета (если бит обну­лен, то устройство должно только фиксировать ошибку в регистре состояния, в то время как генерация бита паритета устройством выполняется всегда);

•       бит7 — Stepping Control —возможность пошагового переключения (address/data stepping) линий (если устройство никогда этого не делает, бит регист­ра «запаян» в «О», если делает всегда — в «1», устройство с такой возможно­стью по сбросу устанавливает этот бит в «1»);

•       бит 8 — SERR#  Enable — разрешение генерации сигнала ошибки SERR# (ошибка паритета адреса сообщается, когда этот бит и бит 6=1);



•       бит 9— Fast Back-to-Back Enable (необязательный) — разрешение ве­

дущему устройству использовать быстрые смежные обращения к разным

устройствам (если бит обнулен, быстрые обращения допустимы лишь для

транзакций с одним агентом);

•       биты 10-15 — резерв.

¦ Status — регистр состояния, допускающий кроме чтения еще и запись. Одна­ко запись выполняется специфично — с ее помощью можно только обнулять биты, но не устанавливать. Биты, помеченные как RO, допускают только счи­тывание. При записи в позиции обнуляемых бит устанавливаются единичные значения. Назначение бит регистра состояния:

•       биты" 0-3 — резерв;

•       бит 4 — Capabili ty List (RO, необязательный) — указание на наличие

указателя новых возможностей (смещение 34h в заголовке);

•       бит5 —66 MHz Capable (RO,необязательный)—поддержкачастоты66 МГц;

•       бит 6 — резерв;

•       бит 7—Fast Back-to-Back Capable (RO, необязательный) — поддержка

быстрых смежных транзакций (fast back-to-back) с разными устройствами;

•       бит 8 — Master  Data  Parity  Error (только для устройств с прямым

управлением) — устанавливается, когда устройство с установленным битом 6 в регистре команд, являясь инициатором, само ввело (при чтении) или обнаружило (при записи) сигнал PERR#;

•       биты 10:9 — DEVSEL Timi ng — скорость выборки: 00 — быстрая, 01 — сред­няя, 10 — низкая (определяет самую медленную реакцию DEVSEL* на все ко­манды, кроме Configuration Read и Configuration Write); бит 11 — Signaled Target Abort—устанавливается целевым устройством, когда оно отвергает транзакцию;

•       бит 12 — Received Target Abort— устанавливается инициатором, когда

он обнаруживает отвергнутую транзакцию;



•       бит 13— Received Master Abort— устанавливается ведущим устройством, когда оно отвергает транзакцию (кроме специального цикла);

208_____________________________________ Глава 6. Шины и карты расширения

•       бит 14 — Si gnaled System Error — устанавливается устройством, подав­

шим сигнал SERR#;

•       бит 15 — Detected Parity Error—устанавливаетсяустройством,обнару­

жившим ошибку паритета.

¦     Cache Line Size (RW) — размер строки кэша (0-128, допустимые значения

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

¦     Latency Timer (RW) —значение таймера задержки (см. п. 6.2.4) в тактах шины. Часть битов может не допускать изменения (обычно младшие три бита неиз­менны, так что таймер программируется с дискретностью в 8 тактов).

¦     BIST (RW) — регистр управления встроенным самотестированием. Назначе­ние бит регистра:

•       бит 7 — возможность BIST;

•       бит 6 — запуск теста: запись единицы инициирует тест, по окончании устрой­ство сбрасывает бит (тест должен быть завершен не более чем за 2 с);

•       биты 5:4 — резерв (0);

•       биты 3:0 — код завершения теста: 0 — тест прошел успешно.

¦     Card Bus CIS Pointer (необязательный) —указательнаструктуруописателя

Card Bus для комбинированного устройства PCI+Card Bus.

¦     Interrupt Line( RW) — номер входа контроллера прерывания для использу­

емой линии запроса (0-15 — IRQO-IRQ15,255 — неизвестный или не используется).



¦     Interrupt Pin (RO) — контакт, используемый для запроса прерывания: 0 —

не используется, 1 - INTA#, 2 - INTB#, 3 - INTC#, 4 - INTD#, 5-FFh - резерв.

¦     Mi n_GNT (RO) — минимальное время, на которое ведущему устройству долж­но предоставляться управление шиной из расчета на частоту 33 МГц, в интер­валах по 0,25 мкс.

¦     Max_Lat (RO) — максимально допустимая задержка предоставления ведущему устройству доступа к шине, в интервалах по 0,25 мкс (0 — нет специальных требований).

¦     Subsystem ID (задается производителем) и Subsystem Vendor ID (произво­

дитель получает в PCI SIG) — идентификаторы, позволяющие точно иденти­фицировать карты и устройства (в системе могут быть установлены несколько карт с совпадающими идентификаторами устройства и производителя Devi се ID и Vendor ID). В поле 2Ch ставится идентификатор производителя карты PCI (может совпадать со значением в поле 0, если фирма выпускает и микро­схемы, и карты).

6.2. Шина PCI_______________________________________________________ 209

¦     Capability Poi nte г (CAP_PTR)—указатель на список возможностей (свойств), описанных в конфигурационном пространстве (биты 1:0=00). Каждый элемент списка начинается с байта идентификатора типа элемента (CAP_I D, определен­ного PCI SIG), за которым следует указатель на следующий элемент списка (нулевой указатель является признаком конца списка), после чего расположе­ны байты описаний самих свойств. Все элементы выравниваются по границе двойного слова.

¦     Base Address Registers -^ базовые адреса областей памяти и портов ввода-

вывода. Для областей памяти бит 0=0. Биты 2:1 — тип: 00 — располагаются в 32-битном адресном пространстве, 10 — в 64-битном (в этом случае регистр расширяется следующим за ним 4-байтным словом), 01 и 11 — резерв (01 в преж­них версиях предназначались для памяти в пределах первого мегабайта).


Бит 3 (Prefetchable) устанавливается, если чтение памяти не приводит к побоч­ным эффектам, все байты считываются независимо от сигналов ВЕ[3:0]# и от­дельные записи мостом могут быть объединены (то есть это память в чистом виде); в иных случаях бит обнулен. Биты 31:4 — базовый адрес памяти. Для портов бит 0=1; бит 1 -0 (резерв); биты 31:2— базовый адрес блока портов. Кон­фигурирующая программа может определить размеры требуемых областей.

Для этого после аппаратного сброса она должна считать и сохранить значения

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

FFFFFFFFh и снова считать их значение. В полученных словах нужно обну­

лить биты декодирования типа (биты 3:0 для памяти и биты 1:0 для ввода-вы­вода), инвертировать и инкрементировать полученное 32-битное слово — ре­зультатом будет длина области (для портов биты 31:16 игнорировать). Метод подразумевает, что длина области выражается числом 2" и область выров­нена естественным образом.

¦     Expansion ROM Base Address—базовый адрес ПЗУ программной поддержки карты. Бит 0 — разрешение использования ПЗУ; биты 1-10 — резерв; биты 11-31 — базовый адрес. Размер ПЗУ определяется так же, как и в регистрах базо­вых адресов (см. выше). Обращение к ПЗУ возможно лишь при разрешенном использовании памяти (бит 1 в регистре команд).


Контроллер интерфейса клавиатуры и мыши /


Программируемый микроконтроллер клавиатуры 18042, КВС (keyboard controller), является посредником между клавиатурой, подключенной к нему по вышеописан­ному последовательному интерфейсу, и центральным процессором, с которым он связан через параллельный интерфейс. В микроконтроллере постоянно исполня­ется внутренняя микропрограмма, реагирующая на сигналы интерфейса клавиа­туры и команды, поступающие от процессора. Эта микропрограмма (КВС BIOS) хранится во внутреннем масочном ПЗУ контроллера; внешне она недоступна, и контроллер можно рассматривать как устройство с заданными свойствами. По­скольку логика работы контроллера реализована программой, его реакция на ко­манды процессора и сигналы интерфейса относительно медленная — время откли­ка измеряется десятками микросекунд. Помимо управления клавиатурой через программно-управляемые и программно-читаемые линии внешних портов кон­троллера формируются сигналы управления вентилем Gate A20, аппаратного си­стемного сброса, а также считываются сигналы от конфигурационных джамперов системной платы. Контроллер 18242, кроме интерфейса клавиатуры, поддержи­вает аналогичный интерфейс дополнительного устройства — PS/2-Mouse. При инициализации (по аппаратному сбросу) контроллер установится в режим PS/2 или AT, в зависимости от состояния определенного вывода микросхемы. В режи­ме AT контроллер не выполняет функции интерфейса мыши и игнорирует все команды, относящиеся к мыши. Режим выбирается соответствующей настройкой BIOS Setup.

Связь контроллера с центральным процессором обеспечивается через 8-битную шину данных. Контроллер выбирается сигналом CS# от дешифратора адреса, срабатывающего по адресам 0060h и 0064h; внутренние регистры контроллера выбираются линией SA2 системной шины адреса. Чтение и запись выполняет­ся по сигналам IORD* и IOWR#, генерируемых при выполнении процессором инструкций IN и OUT. Таким образом, контроллер располагается в пространстве ввода-вывода CPU по адресам 60h (регистр данных) и 64h (регистр состояния и команд), назначение регистров приведено в табл. 8.1.
Из регистра данных счи­ тываются данные, принимаемые по интерфейсам от клавиатуры и мыши, а также данные, возвращаемые контроллером в ответ на адресованные ему команды. Запись в регистр данных используется для подачи команд и данных, адресован­ных к клавиатуре и мыши, а также данных для команд, адресованных контролле­ру. В регистр команд записываются команды, адресованные контроллеру. Режим работы контроллера (разрешение работы интерфейсов клавиатуры и мыши и пре­рываний от них, трансляция скан-кодов и другие параметры) задается командным байтом, посылаемым в контроллер по специальной команде. Перед любой за­писью в контроллер необходимо убедиться в его готовности. Признаком го­товности/занятости контроллера является значение бита 1 регистра состояния (порт 064h).

314___________ Глава 8. Специализированные интерфейсы периферийных устройств

Таблица 8.1. Назначение регистров контроллера клавиатуры Порт, R/W   Назначение

060 RW       Порт данных 8042

064 R              Регистр состояния 8042 (R/O): бит 7 — ошибка четности при последнем обмене

с клавиатурой; бит 6 — тайм-аут приемника/общий тайм-аут1; бит 5 — тайм-аут передатчика/выходной буфер интерфейса мыши полон (MouseJDBF)1; бит 4: 0 — клавиатура на замке; бит 3:1 — последняя запись была командой, 0 — данными; бит 2: системный флаг, устанавливается в 0 по включении питания, в 1 — программно (что означает состояние завершения системного сброса Reset OK); бит 1:1— входной буфер интерфейса клавиатуры полон, 0 — готовность к приему команды/данных; бит 0:1— выходной буфер интерфейса клавиатуры полон (DBF)

064 W         Регистр команд 8042

1 Второе назначение бита относится к контроллеру i8242B, имеющему дополнительный интерфейс для подключения PS/2-Mouse.

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


Эти порты не имеют непосредственного отображения в пространстве адресов ввода-вывода PC; доступ к ним осуществляется через ко­манды контроллера. Кроме этих портов контроллер имеет два специальных входа ТО и Т1, которые могут считываться его микропрограммой и использоваться в каче­стве источников его внутренних прерываний (это не прерывания CPU). Каждая из двунаправленных интерфейсных линий KB-Data, KB-Clock, MS-Data и MS-Clock реализуется битом порта вывода и битом ввода. В режиме PS/2 для чтения линий KB-Clock и MS-Clock используются входы ТО и Т1, в режиме AT вход Т1 использу­ется для линии KB-Data.

Порт ввода Р1 доступен по команде C0h; в режиме PS/2 имеет следующее назначе­ние бит:

¦ бит 7 — ключ блокировки клавиатуры (Keylock): 0 — клавиатура заблокирована;

¦     бит 6 — перемычка установки видеорежима: 0 — цветной (Color), 1 — моно­хромный (Mono);

¦     бит 5 — системная перемычка: 0 —замкнута;

¦     бит 4 — перемычка задания объема ОЗУ: 0 — 256 Кбайт, 1 — 512 Кбайт и более;

¦     биты 3, 2 — не используются;

¦     бит 1 — линия MS-Data;

¦     бит 0 — линия KB-Data.

В современных ПК используются только биты 0,1 и 7; в режиме AT биты О и 1 не используются.

Порт вывода (Р2), доступный для записи и чтения по командам Dlh и D0h соответ­ственно, имеет следующее назначение бит:

¦     бит 7 — линия KB-Data;

¦     бит 6 — линия KB-Clk;

8.1. Интерфейс клавиатуры____________________________________________ 315

¦     бит 5 — запрос прерывания от дополнительного интерфейса (IRQ12), в режи­ме AT не используется;

¦     бит 4 — запрос прерывания от клавиатуры (IRQ1);

¦     бит 3 — линия MS-Clk, в режиме AT не используется;

¦     бит 2 — линия MS-Data, в режиме AT не используется;

¦     бит 1 — вентиль линии адреса А20 (Gate A20, см.


п. 12.3): 0 — А20 обнулен, 1 — управляется выводом процессора;

¦     бит 0 — альтернативный сброс процессора ( сигнала INIT, без формирования общего сигнала сброса).

Приняв посылку от клавиатуры, контроллер выполняет внутреннюю трансляцию скан-кода (если это не запрещено командным байтом) и устанавливает в регистре состояния OBF=1, что приводит к генерации запроса прерывания IRQ1 (если это не запрещено командным байтом). В ответ на это хост должен считать данные (транс­лированный скан-код, префиксы и т. п.) из порта данных (60h). Трансляция обес­печивает программную совместимость клавиатур XT и AT (см. ниже) по чтению скан-кодов из порта 60h. При получении посылки от мыши контроллер не выпол­няет никаких преобразований и устанавливает в регистре состояния Моusе_0ВF-1, что приводит к генерации запроса прерывания IRQ12 (если это не запрещено ко­мандным байтом). По этому сигналу данные от мыши должны быть считаны хос­том из того же порта 60h. To же самое происходит и при программной записи байта в выходной буфер клавиатуры (код D2h) или мыши (код D3h), с установ­кой соответствующих битов состояния и генерацией запросов IRQ1 или IRQ 12.

После получения команды, по которой контроллер должен возвращать данные, он устанавливает в регистре состояния OBF=1, что приводит к генерации запроса прерывания IRQ1 (если это не запрещено командным байтом). После этого дан­ные должны быть считаны из порта данных (по адресу 60h). Если команда возвра­щает несколько байтов данных, прерывание генерируется для каждого байта.

Взаимодействие с контроллером осуществляется подачей команд — записью в ре­гистр команд (по адресу 064h). Перед посылкой команды необходимо убедиться в готовности контроллера к ее приему — бит 1 порта 64h должен иметь нулевое значение. Подробно команды контроллера описаны в литературе [2, 8]. Контрол­леры клавиатуры различаются версиями встроенного ПО, поэтому замена кон­троллера другим, с отличающейся версией ПО (КВС BIOS), может оказаться проб­лематичной — микросхема BIOS системной платы должна знать особенности контроллера клавиатуры.


Контроллер НГМД


Программное взаимодействие с НГМД производится через контроллер накопите­лей на гибких дисках FDC (Floppy Drive Controller), как правило, при участии контроллера DMA и прерываний. Программирование контроллера НГМД для вы­полнения операций с дискетами — довольно хлопотное занятие (см. [4,8,9]). Все функции, необходимые для использования НГМД в качестве устройств хранения данных, реализованы сервисами BIOS Int 13h (см. 12.8.1) и ОС. Игнорирование сервисов BIOS и даже ОС оправданно в основном лишь для нетривиальных задач типа работы с ключевыми дискетами и т. п.

Все контроллеры, применяемые в IBM PC, обеспечивают совместимость с «ис­торической» микросхемой контроллера NEC PD765, которая является аналогом i8272. Контроллер FDC А Т поддерживает два накопителя; он позволяет рабо­тать со скоростями передачи данных 250 Кбит/с (для работы с дискетами SD, DD и QD в старых дисководах 5"), 500 Кбит/с для плотности HD (1,2 и 1,44 Мбайт), а также 300 Кбит/с для работы с дискетами SD, DD и QD в приводах HD 5". Со­временные контроллеры, поддерживающие накопители ED (2,88 Мбайт), долж­ны обеспечивать и скорость 1000 Кбит/с. Режимы контроллеров, соответству­ющие скоростям 250/300,500 и 1000 Кбит/с, обозначаются соответственно 1М, 2М и 4М. В режиме 1М на одном треке умещается 9 секторов (по 512 байт); для этого при частоте вращения 300 об/мин требуется скорость 250 Кбит/с, а при 360 об/мин -300 Кбит/с. В режиме 2М при частоте вращения 300 об/мин (у дисководов HD 3,5") на одном треке умещается 18 секторов, а при частоте вращения 360 об/мин (у дис­ководов HD 5") — 15 секторов. Режим 4М, похоже, так и останется невостребован­ным. Выбор скорости задает частоту синхронизации при записи и форматирова­нии, а также настраивает цепи Ф АПЧ сепаратора данных контроллера. Сепаратор данных способен устойчиво выделять данные и синхросигнал из сигнала, приня­того с головки, лишь при небольших (порядка ±10 %) отклонениях скорости от номинала, поэтому скорость должна быть правильно выбрана для всех операций обмена данными с диском.


9.1. Интерфейс НГМД_____________________________________________    357

В карте ресурсов AT имеется место под два контроллера НГМД:

¦     FDC АТ#1 (стандартный или основной) занимает порты с адресами 3FOh-

3F7h (как и FDC XT);

¦     FDC AT#2 (дополнительный) занимает порты с адресами 370h-377h.

Контроллеры вырабатывают запрос аппаратного прерывания IRQ6 (BIOS I n t 0E h) по окончании выполнения внутренних операций. Для обмена данными может ис­пользоваться канал DMA2. Назначение регистров контроллера приведено в табл. 9.2.

Адрес регистра состояния FDC 3F7 (377) совпадает с адресом регистра HDC (дав­но неиспользуемого), в связи с чем раздельная работа FDC и HDC, расположенных на разных платах, проблематична. В нормальном (не диагностическом) режиме из этого регистра интерес представляет только бит 7 — признак смены носителя.

Таблица 9.2. Регистры контроллера НГМД Адрес     Назначение (R — чтение, W — запись)

3F2 (372) RW: DOR (Digital Output Register) — регистр управления: биты [4:7] — включение моторов А, В, С, D: 1 — включен; бит 3:1— разрешение использования DMA2 и IRQ6; бит 2:0 — сброс, 1 — разрешение контроллера; биты [1:0] — номер выбранного привода 0-3. В AT биты 6,7 и 1 не используются

3F3 (373) RW: TDR (Tape Drive Register) — регистр стриммера: биты [1:0]— номер устройства, которому соответствует стриммер. По сбросу устанавливается 00, но это означает отсутствие стриммера (вместо дисковода А: стиммер не поставить)

3F4 (374) R: MSR (Main State Register) — главный регистр состояния: бит 7 (DQM) — запрос: 1 — готов к приему/передаче байта; бит 6 (DIO) — направление данных: 1 — FDC -> CPU; бит 5 (NON DMA) — использование DMA: 1 — DMA не используется; бит4(CMDBSY): 1 — контроллер занят выполнением команды; биты [0:3] — привод А:, В:, С:, D: занят (в AT используются только биты 0,1)

3F4 (374)1

W: DSR (Datarate Select Register) — регистр выбора скорости: бит 7:1 — сброс

контроллера (обнуляется автоматически); бит 6:1 — отключение питания контроллера; бит 5:1 — разрешение внешней ФАПЧ (должен быть 0); биты [4:2] — выбор времени предкомпенсации записи (000 — предкомпенсация по умолчанию); биты [1:0] — скорость обмена (00 — 500Кбит/с,01 — 300 Кбит/с, 10 —250 Кбит/с, 11 —1 Мбит/с)



3F5 (375) RW: DR (Data Register) — регистр команд/данных

3F7 (377) W: CCR (Configuration Control Register) — регистр параметров контроллера (AT): биты [7:2] — не используются; биты [1:0]— скорость обмена (00 — 500 Кбит/с, 01—300 Кбит/с, 10 — 250 Кбит/с, 11—1 Мбит/с)

3F7 (377) R: DIR (Digital Input Register) — регистр состояния (только в AT): бит 7:1 =смена носителя (чтение инвертированной линии DC); биты [6:0] — не используются, при чтении не выводятся на шину данных

1 Регистр DSR обеспечивает совместимость с контроллером 18272; в современных контроллерах НГМД на АТ-совместимых компьютерах вместо него используют CCR, поскольку требуется только задание скорости.

Контроллер НГМД может быть использован и для работы со стриммерами; спе­циально для этого в контроллере имеется регистр TDR (Tape Drive Register), пара младших битов которого задает номер устройства, которому соответствует стрим­мер (для него иначе настраиваются цепи ФАПЧ сепаратора данных).

358________________________________ Глава 9. Интерфейсы устройств хранения

Все операции с дискетами выполняются по командам, посылаемым хостом в регистр DR (3F5) согласно состоянию битов регистра MSR (3F4). Запись байта команды или данных в регистр DR разрешается лишь при текущем значении MSR=10xxxxxxb, чтение — при MSR=llxxxxxxb. Для записи/чтения этого регистра приходится ис­пользовать отдельные подпрограммы, не только дожидающиеся разрешающих значений MSR, но и имеющие аварийный выход по тайм-ауту. Хост также выпол­няет запись в регистр DOR (3F2) для запуска/останова дисковода, а также в CCR (3F7) или DSR (3F4) для выбора скорости передачи данных. В операциях обмена данными с дискетами обычно участвует контроллер DMA, и он должен быть свое­временно проинициализирован. Сигнал ТС (завершение цикла DMA) использу­ется как признак завершения фазы данных. В общем виде процедура обмена дан­ными состоит из следующих шагов.

1.    Запуск мотора и выбор дисковода (записью в регистр DOR).



2.    Установка скорости (записью в регистр CCR).

3.    Выполнение команды рекалибровки.

4.    Ожидание раскрутки двигателя ( если мотор работает еще менее 0,5 с).

5.    Позиционирование головки на требуемый цилиндр.

6.    Инициализация контроллера DMA.

7.    Посылка команды чтения/записи.

8.    Ожидание прерывания от контроллера. Прерывание произойдет, когда завер­

шится фаза исполнения, во время которой контроллер обычно обменивается

данными с хостом. Если за определенное время прерывание не получено, фик­

сируется неудачная попытка обращения с ошибкой тайм-аута.

9.    По прерыванию от контроллера считываются байты результата, и если ошибок

нет, на этом обмен успешно завершается. Если есть ошибки, то снова переходят

на шаг инициализации DMA и далее повторяют команду чтения/записи. Если за несколько (3) раз успех не достигается, то выполняется рекалибровка, затем инициализация DMA и повторные попытки чтения/записи. Если успех не до­стигается и после нескольких рекалибровок, обмен прекращается аварийно.

Помимо описанного механизма имеется механизм автоматического выключения

мотора НГМД, если к нему долго нет обращения. Для этого в фиксированном

месте ОЗУ (BIOS Data Area, ячейка 0:0440) имеется счетчик времени работы мо­тора НГМД и адрес дисковода (в позиционном коде), мотор которого включен (0:043F). При каждом обращении к дискете (когда в регистре DOR устанавливает­ся бит включения мотора) в счетчик времени заносится константа, соответству­ющая выдержке на отключение (по умолчанию — 2 с). Обработчик аппаратного прерывания от таймера IRQ0 (BIOS Int 08h)c интервалом около 55 мс декрементирует счетчик времени и По его обнулению отключает мотор (записью в регистр DOR). Таким образом, если в течение заданного интервала нет обращений, мотор автоматически выключается. Конечно, это работает, лишь когда BIOS отрабаты­вает аппаратные прерывания от таймера, так что не отключающийся мотор ди­сковода может быть косвенным признаком «зависания» компьютера.



9,2. Интерфейс АТА/ATAPI (IDE)     _____________________________________ 359

Исполнение каждой команды имеет три фазы.

1.   Фаза команды. Контроллер устанавливает биты DQM=1 и DIO-0, что является приглашением к вводу команды. В регистр DR посылается байт команды, пос­ле которого посылаются байты параметров в строго предписанном порядке. На прием каждого байта контроллер отзывается обнулением DQM на время об­работки. После получения последнего требуемого байта DQM остается обнулен­ным и контроллер переходит в фазу исполнения. В качестве параметров фигу­рируют номер цилиндра С, номер головки Н, номер сектора R, код размера N или длина поля данных сектора DTL, номер последнего сектора на треке EOT, число секторов SC, длительность зазоров GPL и некоторые другие данные.

2.   Фаза исполнения требует передачи данных от хоста к контроллеру или обратно,

передача может происходить как в режиме DMA, так и чисто программно (РЮ). В режиме DMA обмен выполняется по сигналам DRQ и DACK# используемого канала. Если DMA не используется, то запросом на передачу является бит DQM и сигнал прерывания. По окончании фазы вырабатывается сигнал прерыва­ния (и его признак в регистре ST0), и контроллер переходит в фазу результата.

3.   В фазе результата DQM=1 и 010=1, хост должен считать байты результата из DR, после чего биты установятся в значение DQM=1 и 010=0, что соответствует переходу в фазу приема команды.

С момента получения команды и до окончания фазы результата в регистре MSR бит СМО BSY=1. Контроллер всегда можно принудительно сбросить (перевести в начало фазы команды) записью в регистр DOR или DSR. Если контроллер получит неподдерживаемую команду, он сразу выставит DQM=1 и 010=1, что является ука­занием на необходимость чтения DR. Хост должен прочитать из DR код состояния, в котором будет значение 80h (недопустимая команда).

В современных контроллерах НГМД имеется буфер FIFO глубиной 16 байт, работающий при передаче данных (но не команд и параметров) через регистр DR; в «историческом» контроллере 18272 буфера FIFO не было.Логика общения с ре­гистром DR остается той же. Буфер должен быть своевременно обслужен, чтобы не происходило его переполнения или опустошения. Логика буфера устанавливает запрос данных так, чтобы не отвлекать хост «по пустякам». При чтении из DR за­прос устанавливается, когда в буфере имеется (16-яорог) байтов или же считан последний байт сектора. При записи в OR запрос первоначально устанавливается и удерживается до заполнения буфера, впоследствии он устанавливается снова, когда в буфере остается порог байтов. Переход в фазу результата происходит, когда завершается обмен хоста с DR и буфер опустошается. Общение с регистром DR при записи команд и параметров должно выполняться согласно значениям старших битов регистра MSR (буфер FIFO при этом не используется).


Контроллер прямого доступа А


Микросхема 8237А, применявшаяся в PC вплоть до первых моделей AT, представ­ляет собой четырехканальный контроллер прямого доступа к памяти, допуска­ющий каскадирование. Вторичный контроллер (8237#2) каскадно соединен с пер­вичным, при этом теряется возможность использования одного канала вторичного контроллера. Контроллер 8237А имеет 16-разрядные регистры адреса и счетчики, что обеспечивает возможность программирования передачи блока данных раз­мером до 64 Кбайт или слов. Назначение регистров контроллеров DMA, при­менительно к их адресам в пространстве ввода-вывода компьютера, приведено в табл. 12.4. Контроллер допускает довольно гибкое конфигурирование. Коррект­ное оперативное управление отдельными каналами не затрагивает общих настроек. Общее конфигурирование контроллеров (запись в регистры 008 и ODO) выполня­ет BIOS при инициализации во время теста POST; в XT тогда же программирует­ся и канал 0, применяемый для регенерации памяти. Для использования каналов устройствами шины ISA запись в регистры 008 и ODO не рекомендуется. Обмен с регистрами контроллера выполняется только однобайтными операциями вво­да-вывода. Для загрузки 16-битных значений задействуется триггер младшего/ старшего байта. По сбросу контроллера или записи любого байта по адресу OOCh (OD8h для второго контроллера) этот триггер сбрасывается, и контроллер готовит­ся к приему младшего байта. После приема этого байта триггер меняет состояние, и контроллер воспринимает старший байт, после которого триггер опять переклю­чается.

466______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Таблица 12.4. Регистры контроллера DMA 8237A 8237#1   

Программирование контроллера для каждого канала определяет начальный адрес, направление его модификации (инкремент/декремент), количество пересылаемых байт (слов), режим работы канала. Регистры адреса контроллеров 8237 А — 16-раз­рядные, и для расширения разрядности адреса для каждого канала имеются специ­альные регистры страниц (DMA page register), внешние по отношению к контролле­рам 8237А.
В отличие от адресных регистров контроллера 8237А регистры страниц при выполнении циклов DMA не модифицируются — в них по команде процессора до начала обмена по каналу загружается требуемое значение. В PC/AT регистры страниц хранят биты А[23:16] для 8-битных каналов и А[23:17] — для 16-битных. В PC/XT регистры страниц хранили только 4 бита А[19:16]. Контроллер 16-битных каналов подключен к шине адреса со смещением на 1 бит, так что линией АО он не

12.4. Прямой доступ к памяти — DMA___________________________________ 467

управляет. При передаче по 16-битным каналам всегда А0=0 (передачи слов по четным адресам). Счетчики циклов каналов — 16-разрядные, что позволяет переда­вать блоки до 64 К байт (для 8-битных каналов) или слов (для 16-битных каналов). При инициализации в счетчик загружается число, на единицу меньшее требуемого числа циклов, так что FFFF соответствует 65 534 передачам (216). В последнем цикле передачи (когда счетчик отсчитает требуемое количество циклов) контроллер выра­батывает сигнал завершения ТС, общий для всех каналов. Этот сигнал устройство может использовать для выработки сигнала прерывания, а программа может опреде­лить, какой канал «отстрелялся», прочитав регистр состояния каналов в контролле­ре DMA. В зависимости от выбранного режима по окончании счета контроллер либо остановит работу данного канала, либо выполнит автоматическую реинициа-лизацию (автозагрузку) — восстановит прежде записанные значения регистра адре­са и счетчика циклов и будет снова готов к пересылке такого же блока данных.

ВНИМАНИЕ---------------------------------------------------------------------------------

При достижении регистром-счетчиком адреса значения FFFFh следующее его значение бу­дет OOOOh, а внешний регистр адреса страницы, естественно, останется неизменным. Таким образом, если блок начинается не с границы 64 Кбайт страницы памяти, возможно его «сво­рачивание» в кольцо. Но если для процессоров 80x86 в реальном режиме сегменты, также «сворачиваемые» в кольца, могут начинаться с адреса любого 16-байтного параграфа (грани­цы кратны 10h), то при прямом доступе эти границы кратны 10OOOh.


Этот эффект обязательно необходимо учитывать при программировании прямого доступа —блок, пересекающий дан­ную границу, должен пересылаться за два сеанса циклов DMA, между которыми канал (вклю­чая и регистр страниц) должен быть реинициализирован. Эффект «сворачивания» сегментов в 16-битных каналах аналогичен, только для каналов. 5-7 эти «кольца» имеют размер 64 Кбайт слов и границы, кратные 20000h.

Разрядность передаваемых данных по каналу DMA должна соответствовать типу канала — 16-битный канал всегда пересылает данные словами, и расщепление их на одиночные байты невозможно.

Каждый канал может работать в одном из трех логических режимов.

¦     Режим одиночной передачи (single transfer mode) — получив подтверждение DACKx#, устройство сразу снимает сигнал запроса DRQx, а контроллер DMA организует один цикл передачи. Счетчик адреса в контроллере модифициру­ется, счетчик циклов декрементируется.

¦     Режим блочной передачи (block transfer mode) — получив подтверждение

DACKx#, устройство сразу снимает сигнал запроса DRQx, а контроллер DMA организует последовательность циклов передачи до обнуления счетчика цик­лов. Если разрешена автозагрузка канала, то для пересылки следующего блока требуется повторная подача DRQx. На время передачи всего блока контроллер монопольно захватывает шину, при этом не выполняется регенерация памяти.

¦     Режим передачи по запросу (demand transfer mode) — получив подтверждение DACKx#, устройство не снимает сигнал запроса DRQx до тех пор, пока у него есть потребность в передаче. При наличии этого сигнала контроллер DMA организует последовательность циклов передачи вплоть до обнуления счетчи­ка циклов. Если сигнал запроса снят до обнуления счетчика, контроллер DMA отдает управление шине, а при последующем появлении этого запроса продол­жит обмен с того места, на котором остановился.

468_______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

ВНИМАНИЕ---------------------------- ——---------------- ——------------------------------------ —

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

Стандартный контроллер DMA на шине ISA с частотой 8 МГц работает на поло­винной частоте и требует для одиночной передачи не менее пяти своих тактов. Длительность одиночного цикла составляет 1,125 мкс. В блочных передачах пропуск­ная способность DMA достигает 1 Мбайт/с для 8-битных каналов и 2 Мбайт/с для 16-битных (время цикла составляет 1 мкс). На современных компьютерах кон­троллер DMA реализуется чипсетом системной платы; при сохранении программ­ной совместимости с 8237А он может работать на шине гораздо быстрее. Количе­ство тактов шины на один цикл может программироваться опциями BIOS Setup.


Литература


1.    Тук М. Аппаратные средства IBM PC: Энциклопедия. 2-е изд. — СПб.: Питер

Ком, 2001.

2.    Тук М. Аппаратные средства IBM PC: Энциклопедия. — СПб.: Питер Ком, 1998.

3.    Тук М. Аппаратные средства локальных сетей: Энциклопедия. — СПб.: Питер,'

2000.

4.    Тук М. Дисковая подсистема ПК. — СПб.: Питер, 2001.

5.    Тук М. Интерфейсы ПК: Справочник. — СПб.: Питер Ком, 1999.

6.    Тук М., Юров В. Процессоры Pentium 4, Athlon и другие. — СПб.: Питер, 2001.

7.    Тук М., Юров В. Процессоры Pentium III, Athlon и другие. — СПб.: Питер, 2000.

8.    Кулаков В. Программирование на аппаратном уровне: Специальный справоч­

ник. - СПб.: Питер, 2001.

9.    Кулаков В. Программирование дисковых подсистем. — СПб.: Питер, 2002.



Магистральный интерфейс AGP


В настоящее время самой быстрой универсальной шиной расширения является PCI, имеющая при тактовой частоте 66 МГц и разрядности 32 бит пиковую про­пускную способность 264 Мбайт/с. Одним из главных потребителей пропускной способности шины является графический адаптер. По мере увеличения разреше­ния и глубины цвета требования к пропускной способности шины, связывающей дисплейный адаптер с памятью и центральным процессором компьютера, повы­шаются. Одно из решений состоит в уменьшении потока графических данных, передаваемых по шине. Для этого графические платы снабжают ускорителями и увеличивают объем видеопамяти, которой пользуется ускоритель при выполнении построений. В результате поток данных в основном циркулирует внутри графиче-

212

Глава 6. Шины и карты расширения

ской карты, слабо нагружая внешнюю шину. Однако при трехмерных построениях ускорителю становится тесно в ограниченном объеме локальной памяти графи­ческого адаптера, и его поток данных снова «выплескивается» на внешнюю шину.

Фирма Intel на базе шины PCI 2.1 разработала стандарт подключения графиче­ских адаптеров — AGP (Accelerated Graphic Port — ускоренный графический порт). Первая версия стандарта вышла в 1996 году, в настоящее время действует версия 2.0 (1998 года), отличающаяся от первой в основном введением нового режима передачи 4х. В конце 2000 г. Intel опубликовала проект спецификации AGP8X, которая рассматривается как отдельная спецификация, а не просто развитие пре­дыдущих;

Ее особенности отметим в конце раздела.

Порт AGP представляет собой 32-разрядную шину с тактовой частотой 66 МГц, большая часть сигналов позаимствована из шины PCI. Однако в отличие от PCI, порт AGP представляет собой двухточечный интерфейс, соединяющий графиче­ский адаптер с памятью и системной шиной процессора напрямую логикой и кана­лами данных чипсета системной платы, не пересекаясь с «узким местом» — ши­ной PCI. Поначалу планировался переход на тактовую частоту 100 МГц, но и в спецификации AGP 2.0, и в предлагаемом варианте AGP8X фигурирует лишь одна частота — 66,6 МГц (нынешний предел и для шины PCI).
«Ускоренность» порта обеспечивается следующими факторами:

¦ конвейеризацией обращений к памяти;

¦     удвоенной (2х) или учетверенной (4х) частотой передачи данных (относительно тактовой частоты порта);

¦     демультиплексированием шин адреса и данных.

Идею конвейеризации обращений к памяти иллюстрирует рис. 6.11, где сравни­ваются обращения к памяти PCI и AGP. В PCI во время реакции памяти на за­прос шина простаивает (но не свободна). Конвейерный доступ AGP позволяет в это время передавать следующие запросы, а потом получить поток ответов.



Рис. 6.11. Циклы обращения к памяти PCI и AGP

Удвоение и учетверение частоты передачи данных обеспечивает при частоте 66 МГц пропускную способность до 533 (2х) и 1066 Мбайт/с (4х), что для 32-бит­ной шины несколько неожиданно. В этих режимах блоки данных передаются как по фронту, так и по спаду стробирующего сигнала (как в ATA Ultra DMA). Режи­мы 2х и 4х могут использоваться, лишь если их поддерживают и графический адаптер, и системная плата.

6.3. Магистральный интерфейс AGP                  _____________________________ 213

Демультиплексирование (разделение) шины адреса и данных сделано несколько необычным образом. С целью экономии числа интерфейсных линий шину адреса и команды в демультиплексированном режиме AGP представляют всего 8 линий SBA (SideBand Address), по которым команда, адрес и значение длины передачи передаются последовательно за несколько тактов. Поддержка демультиплексиро­ванной адресации не является обязательной для устройства AGP, поскольку име­ется альтернативный способ подачи адреса по шине AD.

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


AGP может реализовать всю пропускную способность 64-битной системы памяти компьютера на процес­сорах Pentium и выше. При этом возможны конкурирующие обращения к памяти как со стороны процессора, так и со стороны мостов шин PCI. Фирма Intel ввела поддержку AGP в чипсеты для процессоров Р6, однако нет «противопоказаний» для применения AGP и с Pentium.

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

¦     не задействовать конвейеризацию, а использовать только быструю запись PCI (Fast Write);

¦     не работать с текстурами, расположенными в системной памяти, но использо­

вать более быстрый обмен данными между памятью и локальным буфером;

¦     использовать оптимальное распределение текстур между локальной и систем­

ной памятью, избегая конфликтов с обращениями к памяти от процессора.

Порт AGP содержит практически полный набор сигналов шины PCI и допол­нительные сигналы AGP. Устройство, подключаемое к порту AGP, может пред­назначаться как исключительно для операций AGP, так и быть комбинацией AGP+PCI. Устройство обязательно должно выполнять функции ведущего устрой­ства AGP (иначе порт AGP для него теряет смысл) и функции ведомого устрой­ства PCI со всеми его атрибутами (конфигурационными регистрами и т. п.); дополнительно оно может быть и ведущим устройством PCI. Для транзакций в режиме AGP ему доступно только системное ОЗУ. В режиме PCI обращения возможны как к пространству памяти, так и к пространству ввода-вывода и кон­фигурационному пространству.

Транзакции в режиме PCI, инициируемые ускорителем, начинаются с подачи сиг­нала FRAME* и выполняются обычным для PCI способом (см. п. 6.2). Заметим, что при этом на все время транзакции шина AD занята, причем транзакции чтения памяти занимают шину на большее число тактов, чем транзакции записи, — после подачи адреса неизбежны такты ожидания на время доступа к памяти.


Запись на

214                                                                                 Глава 6. Шины и карты расширения

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

Конвейерные транзакции AGP (команды AGP) инициируются только ускорите­лем; логикой AGP они ставятся в очереди на обслуживание и исполняются в зави­симости от приоритета, порядка поступления запросов и готовности данных. Эти транзакции могут быть адресованы ускорителем только к системному ОЗУ. Если устройству AGP требуется обратиться к локальной памяти каких-либо устройств PCI, то оно должно выполнять эти транзакции в режиме PCI. Транзакции, адре­сованные к устройству AGP, отрабатываются им как ведомым устройством PCI, однако имеется возможность быстрой записи в локальную память FWXFast Write), в которой данные передаются на скорости AGP (2х или 4х), и управление потоком их передач ближе к протоколу AGP, нежели PCI. Транзакции FW обычно ини­циируются процессором и предназначены для принудительного «заталкивания» данных в локальную память ускорителя.

Концепцию конвейера AGP иллюстрирует рис. 6.12. Порт AGP может находить­ся в одном из четырех состояний:

¦     IDLE — покой;

¦     DATA — передача данных конвейеризированных транзакций;

¦     AGP — постановка в очередь команды AGP;

¦     PCI — выполнение транзакции в режиме PCI.



Рис. 6.12. Конвейер AGP

Из состояния покоя IDLE порт может вывести запрос транзакции PCI (как от ускорителя, так и с системной стороны) или запрос AGP (только от ускорителя). В состоянии PCI транзакция PCI выполняется целиком, от подачи адреса и коман­ды до завершения передачи данных.


В состоянии A GP ведущее устройство пере­дает только команду и адрес для транзакции ( по сигналу PIPE* или через порт SBA), ставящейся в очередь; несколько запросов могут следовать сразу друг за другом. В состояние DATA порт переходит, когда у него в очереди имеется необслуженная команда, готовая к исполнению. В этом состоянии происходит передача данных для команд, стоящих в очереди. Это состояние может прерываться запро­сами PCI (для выполнения целой транзакции) ил и Л GP (для постановки в очередь

6.3. Магистральный интерфейс AGP_____________________________________ 215

новой команды), но прерывание возможно только на границах данных транзак­ций AGP. Когда порт AGP обслужит все команды, он снова переходит в состояние покоя. Все переходы происходят под управлением арбитра порта AGP, реагиру­ющего на поступающие запросы (REQ# от ускорителя и внешние обращения от процессора или других устройств PCI) и ответы контроллера памяти. Транзакции AGP некоторыми моментами отличаются от транзакций PCI.

¦     Фаза данных отделена от фазы адреса, чем и обеспечивается конвейеризация.

¦     Используется собственный набор команд.

¦     Транзакции адресуются только к системной памяти, используя то же простран­

ство физических адресов, что и PCI. Транзакции могут иметь длину, кратную 8 байтам, и начинаться только по 8-байтной границе. Транзакции чтения ино­го размера должны выполняться только в режиме PCI; транзакции записи мо­гут использовать сигналы С/ВЕ[3:0]# для маскирования лишних байтов.

¦     Длина транзакции явно указывается в запросе.

¦     Конвейерные запросы не гарантируют когерентность памяти и кэша. Для опе­

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

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



¦     Запросы вводятся по шине AD[31:0] и С/ВЕ[3:0] с помощью сигнала PIPE#, по каждому фронту CLK ведущее устройство передает очередное двойное слово запроса вместе с кодом команды.

¦     Команды подаются через внеполосные (sideband) линии адреса SBA[7:0]. «Внеполосность» означает, что эти сигналы используются независимо от занятости шины AD. Синхронизация подачи запросов зависит от режима (1х, 2х или 4х).

При подаче команд по шине AD во время активности сигнала PIPE* код команды AGP (СССС) кодируется сигналами С/ВЕ[3:0], при этом на шине AD помещается начальный адрес (на AD[31:3]) и длина п (на AD[2:0]) запрашиваемого блока дан­ных. Определены следующие команды:

¦     0000 (Read) — чтение из памяти (п+1) учетверенных слов (по 8 байт) данных, начиная с указанного адреса;

¦     0001 (HP Read) — чтение с высоким приоритетом;

¦     0100 (Write) — запись в память;

¦     0101 (HP Write) — запись с высоким приоритетом;

¦     1000 (Long Read) — «длинное» чтение (п+1)х4 учетверенных слов (до 256 байт данных);

¦     1001 (HP Long Read) — «длинное» чтение с высоким приоритетом;

¦     1010 (Flush) — очистка, выгрузка данных всех предыдущих команд записи по адресам назначения (на порте AGP выглядит как чтение, возвращающее про­извольное учетверенное слово в качестве подтверждения исполнения; адрес и длина, указанные в запросе, значения не имеют);

216_____________________________________ Глава 6. Шины и карты расширения

¦     1100 (Fence) — установка «ограждений», позволяющих низкоприоритетному потоку записей не пропускать чтения;

¦     1101 (Dual Address Cycle, DAC) — двухадресный цикл для 64-битной адреса­ции: в первом такте по AD передается младшая часть адреса и длина запроса, а во втором — старшая часть адреса (по AD) и код исполняемой команды (по С/ВЕ[3:0]).



При внеполосной подаче команд по шине SBA[7:0] передаются 16-битные посылки четырех типов. Каждая посылка передается за два приема, по фронту и спаду син­хросигнала. Тип посылки кодируется старшими битами:

¦     тип 1: ОААА АААА АААА ALLL — поле длины (LLL) и младшие биты адреса (А[14:03]>;

¦     тип 2:10СС CCRA АААА АААА — код команды (СССС) и средние биты адреса (А[23:15]);

¦     тип 3: 110R АААА АААА АААА — старшие биты адреса (А[35:24]);

¦     тип 4:1110 АААА АААА АААА — дополнительные старшие биты адреса, если требуется 64-битная адресация.

Посылка из всех единиц является пустой командой (NOP); они посылаются в по­кое шины SBA. Биты «R» зарезервированы. Посылки типов 2,3 и 4 являются «лип­кими» (sticky) — значения, ими определяемые, сохраняются до введения новой посылки того же типа. Постановку команды в очередь инициирует посылка типа 1, задающая длину транзакции и ее младшие адреса, — код команды и остальная часть адреса должны быть определены ранее введенными посылками типов 2-4. Такой способ очень экономно использует такты шины для подачи команд при пе­ресылках массивов. Синхронизация данных на SBA зависит от режима порта.

¦     В режиме 1х каждая часть передается по фронту CLK; начало посылки (стар­шая часть) определяется по получению байта, отличного от 1111111lb, по последующему фронту передается младшая часть. Очередная команда может вво­диться за каждую пару тактов CLK (когда код команды и старший адрес уже введены).

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

¦     В режиме 4х используется еще и дополнительный (инверсный) строб SB_STB#.Старшая часть фиксируется по спаду SB_STB, а младшая — по последующему спаду SB_STB#.


Частота стробов в два раза выше, чем CLK, так что в каждом такте CLK может вводиться пара команд.

Конечно, полный цикл введения команд (с посылками всех четырех типов) с уче­том посылки NOP оказывается больше — 10, 5 и 2,5 тактов частоты CLK для ре­жимов 1х, 2х и 4х соответственно.

6.3. Магистральный интерфейс AGP________________________________       217

В ответ на полученные команды порт AGP выполняет передачи данных, причем фаза данных AGP явно не привязана к фазе команды/адреса. Фазы данных вво­дит порт AGP (системная логика), исходя из порядка ранее пришедших к нему команд от ускорителя.

Передачи данных A GP выполняются, когда шина находится в состоянии DA TA. Как говорилось выше, фаза данных AGP явно не привязана к фазе команды/адреса. Фазы данных вводит порт AGP (системная логика), исходя из порядка ранее при­шедших к нему команд от ускорителя. Ускоритель узнает о назначении шины AD в последующей транзакции по сигналам ST[2:0] (действительны только во время сигнала GNT#, коды 100-110 зарезервированы):

¦     000 — ведущему устройству будут передаваться данные низкоприоритетного запроса чтения, ранее поставленного в очередь (или выполняется очистка);

¦     001 — ведущему устройству будут передаваться данные высокоприоритетного запроса чтения;

¦     010 — ведущее устройство должно будет предоставлять данные низкоприори­тетного запроса записи;

¦     ОН — ведущее устройство должно будет предоставлять данные высокоприо­ритетного запроса записи;

¦     111 — ведущему устройству разрешается поставить в очередь команду AGP (сигналом Р1РЕ#) или начать транзакцию PCI (сигналом FRAME*).

Ускоритель узнает лишь тип и приоритет команды, результаты которой последу­ют в данной транзакции. Какую именно команду из очереди отрабатывает порт, ускоритель определяет сам, так как именно он ставил их в очередь (ему известен порядок). Никаких тегов транзакций (как, например, в системной шине процес­соров Р6) в интерфейсе AGP нет.


Имеется только 4 независимых очереди для каж­дого типа команд ( чтение низкоприоритетное, чтение высокоприоритетное, запись низкоприоритетная, запись высокоприоритетная). Фазы исполнения команд раз­ных очередей могут чередоваться произвольным образом; порт имеет право испол­нять их в порядке, оптимальном с точки зрения производительности. Реальный порядок исполнения команд (чтения и записи памяти) тоже может изменяться. Однако для каждой очереди порядок выполнения всегда совпадает с порядком подачи команд (об этом знают и ускоритель, и порт).

Запросы AGP с высоким приоритетом для арбитра системной логики являют­ся более приоритетными, чем запросы от центрального процессора и ведущих устройств шины PCI. Запросы AGP с низким приоритетом для арбитра имеют приоритет ниже, чем от процессора, но выше, чем от остальных ведущих устройств. Хотя принятый протокол никак явно не ограничивает глубину очередей, специфи­кация AGP формально ее ограничивает до 256 запросов. На этапе конфигурирова­ния устройства система PnP устанавливает реальное ограничение (в конфигураци­онном регистре ускорителя) в соответствии с его возможностями и возможностями системной платы. Программы, работающие с ускорителем (исполняемые и локаль­ным, и центральным процессорами), не должны допускать превышения числа необ-служенных команд в очереди (у них для этого имеется вся необходимая информация).

218_____________________________________ Глава 6. Шины и карты расширения

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

¦     В режиме 1х данные (4 байта на AD[31:0]) фиксируются получателем по положительному перепаду каждого такта CLK, что обеспечивает пиковую пропуск­ную способность 66,6 х 4 = 266 Мбайт/с.



¦     В режиме 2х используются стробы данных AD_STBO и AD_STB 1 для линий AD[0:15] и AD [16:31] соответственно. Стробы формируются источником дан­ных, приемник фиксирует данные и по спаду, и по фронту строба. Частота стро­бов совпадает с частотой CLK, что и обеспечивает пиковую пропускную способ­ность 66,6 х 2 х 4 = 533 Мбайт/с.

¦     В режиме 4х используются еще и дополнительные (инверсные) стробы AD_STBO# и AD_STB1#. Данные фиксируются по спадам и прямых, и инверсных стробов. Частота стробов в два раза выше, чем CLK, что и обеспечивает пиковую пропуск­ную способность 66,6 х 2 х 2 х 4 = 1066 Мбайт/с.

Порт AGP должен отслеживать состояние готовности буферов ускорителя к по­сылке или получению данных транзакций, поставленных в очередь. Сигналом RBF# (Read Buffer Full) ускоритель может информировать порт о неготовности к приему данных низкоприоритетных транзакций чтения (к приему высокоприоритетных он должен быть всегда готов). Сигналом WBF# (Write Buffer Full) он информирует о неспособности принять первую порцию данных быстрой записи (Fast Write, FW).

Конфигурирование устройств с интерфейсом AGP выполняется так же, как и обыч­ных устройств PCI, — через обращения к регистрам конфигурационного простран­ства (см. п. 6.2.12). При этом AGP-устройства не требуют внешней линии IDSEL — у них внутренний сигнал разрешения доступа к конфигурационным регистрам соединен с линией AD16, так что обращение к конфигурационным регистрам AGP обеспечивается при AD16=1.

В процессе инициализации процедура POST только распределяет системные ресур­сы, но операции AGP оставляет запрещенными. Работу AGP разрешает загружен­ная ОС, предварительно установив требуемые параметры AGP: режим обмена, поддержку быстрой записи, адресации свыше 4 Гбайт, способ подачи и допустимое число запросов. Для этого параметры устройств считываются из регистра состо­яния AGP, а согласованные параметры записываются в регистр команд AGP, распо­ложенный в конфигурационном пространстве.


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

Регистр состояния AGP сообщает свойства порта: допустимое число запросов в очередях, поддержку внеполосной адресации, быстрой записи, адресации свы­ше 4 Гбайт, режимы 1х, 2х, 4х. В конфигурационном пространстве устройства AGP регистр, на который указывает CAP_PTR, содержит CAP_ID=02 (биты [7:0]) и но­мер версии спецификации AGP (биты [23:20] — старшая цифра, биты [19:16] — младшая).

6.3. Магистральный интерфейс AGP

219

Регистр состояния AGP (адрес CAP_PTR+4) содержит следующие поля:

¦     биты [31:24] — RQ, допустимое суммарное число запросов, находящихся в оче­редях: 0 — 1 команда, 255 — 256 команд;

¦     биты [23:10] - резерв (0);

¦     бит 9 — SB A, поддержка внеполосной подачи команд;

¦     биты [8:6] — резерв (0);

¦     бит 5 — 4G, поддержка адресации памяти свыше 4 Гбайт;

¦     бит 4 — FW, поддержка быстрой записи;

¦     биты 3 — резерв (0);

¦     биты [2:0] — RATE, поддерживаемые режимы обмена по AD и SBA: бит 0 — 1х, бит 1 — 2х, бит 2 — 4х.

Регистр команд AGP служит для разрешения этих свойств. Регистр команд AGP (адрес CAP_PTR+8) содержит следующие поля:

¦     биты [31:24] — RQ_DEPTH, глубина очереди команд;

¦     биты [23:10] - резерв (0);

¦     бит 9 — 5BA_ENABLE, установка внеполосной подачи команд;

¦     бит 8 — AGP_ENABLE, разрешение операций AGP;

¦     биты [7:6] — резерв (0);

¦     бит 5 — 4G, разрешение адресации памяти свыше 4 Гбайт (двухадресных цик­

лов и посылок 4-го типа по SBA);

¦     бит 4 — FW_Enable, разрешение быстрой записи;

¦     биты 3 — резерв (0);

¦     биты [2:0] — DATA_RATE, установка режима обмена: бит 0 — 1х, бит 1 — 2х, бит 2 — 4х (должен быть установлен лишь один бит).



Графический адаптер с интерфейсом AGP может быть встроен в системную пла­ту, а может располагаться и на карте расширения, установленной в слот AGP. Внешне карты с портом AGP похожи на PCI (рис. 6.13), но у них используется разъем повышенной плотности с «двухэтажным» (как у EISA) расположением ламелей. Сам разъем находится дальше от задней кромки платы, чем разъем PCI.

Порт AGP может использовать два возможных номинала питания интерфейсных схем: 3,3 В и 1,5 В (уровни сигналов RST# и CLK всегда равны 3,3 В). Снижение напряжения питания буферных схем позволяет повысить достижимую частоту пе­реключений. Для режимов 1х и 2х может использоваться любой из номиналов питания буферов, для режима 4х — только 1,5 В. Для работы в режимах 2х и 4х приемникам требуется опорное напряжение Vref. Его номинал для 3,3 В составляет 0,4xVddq, для 1,5 В — 0,5xVddq. Опорное напряжение для приемников генерирует­ся на стороне передатчиков. На контакт А66 (Vrefgc) графическое устройство подает сигнал для порта, на контакт В66 (Vrefcg) порт (чипсет) подает напряже­ние для устройства AGP.

220                                                                                Глава 6. Шины и карты расширения



Рис. 6.13. Слоты AGP: а — 3,3 В,б—1,5В,в — универсальные

По уровню питания буферов карты и порты AGP могут быть трех типов: 3,3 В, 1,5 В и универсальные, причем имеются механические ключи, предотвращающие ошибочные подключения. Слот и карта 3,3 В имеют ключи на месте контактов 22-25 (перегородка в слоте, см. рис. 6.13, а, вырез на разъеме карты); слот и карта 1,5 В — на месте контактов 42-45. Универсальный слот не имеет перегородок, а универсальная карта имеет оба выреза. Универсальная системная плата узна­ет о номинале питания буферов установленной карты по сигналу TYPEDET* — на картах 3,3 В контакт свободен, на картах 1,5 В и универсальных — заземлен. Уни­версальная карта узнает о номинале питания буферов по уровню напряжения на контактах Vddq (3,3 или 1,5 В). Таким образом и обеспечивается согласование.



Назначение контактов слота AGP приведено в табл. 6.15, в позициях ключей че­рез дробь указано назначение для карт 3,3/1,5 В. На универсальном слоте присут­ствуют все эти цепи, на универсальных картах все цепи, назначенные ключам, от­сутствуют. Из-за двух ключей на универсальной карте теряется пара контактов для подачи питания VCC3.3, и их остается только 4, что ограничивает потребля­емый ток (допустимый ток для каждого контакта — 1 А). На универсальной карте также нет дополнительного питания 3,3Vaux, используемого для питания цепей формирования сигнала РМЕ# в режиме «сна».

Таблица 6.15. Сигналы порта AGP

Ряд В

N

РЯДА

Ряд В

N

РЯДА

12V

1

OVRCNTff

Vddq

34

Vddq

TYPEDET»

2

5.0V

AD22

35

AD21

Резерв

3

5.0V

AD20

36

AD19

USB-

4

USB+

GND

37

GND

GND

5

GND

AD18

38

AD17

INTA*

6

INTB#

AD16

39

C/BE2*

RST#

7

CLK

Vddq

40

Vddq

GNT#

8

REQ#

FRAME*

41

IRDY#

VCC3.3

9

VCC3.3

Резерв/Ключ 1,5 В

42

3,3Vaux/IOii04 1,5 В

221

6.3. Магистральный интерфейс AGP

Ряд В

N

РЯДА

Ряд В

N

РЯДА

ST1

10

STO

GND/fc«04l,5B

43

GND/Ключ 1,5 В

Резерв

11

ST2

Резерв/Ключ 1,5 В

44

Резерв/Ключ 1,5 В

PIPE»

12

RBF#

УССЗ.З/Ключ1,5В

45

УССЗ.З/Ключ1,5В

GND

13

GND

TRDY*

46

DEVSEL#

Резерв

14

Резерв

STOP*

47

Vddq3.3

SBA1

15

SBAO

РМЕ#

48

PERR#

VCC3.3

16

VCC3.3

GND

49

GND

SBA3

17

SBA2

PAR

50

SERR#

SB_STB#'

18

SB_STB

AD15

51

C/BE1*

GND

19

GND

Vddq

52

Vddq

SBA5

20

SBA4

AD13

53

AD14

SBA7

21

SBA6

AD11

54

AD12

Ключ 3,3 В/резерв

22

Ключ 3,3 В/резерв

GND

55

GND

Ключ 3,3 B/GND

23

Ключ 3,3 B/GND

AD9

56

AD10

Ключ 3,3 В/резерв

24

Ключ 3,3 B/3,3Vaux

C/BE0#

57

AD8

Ключ 3,3 B/VCC3.3

25

Ключ 3,3 B/3,3Vaux

Vddq

58

Vddq

AD30

26

AD31

AD_STBO#1

59

AD_STBO

А028

27

AD29

AD6

60

AD7

VCC3.3

28

VCC3.3

GND

61

GND

AD26

29

AD27

AD4

62

ADS

AD24

30

AD25

AD2

63

AD3

GND

31

GND

Vddq

64

Vddq

AD_STB1#1

32

AD_STB1

ADO

65

AD1

С/ВЕЗ*

33

AD23

Vrefgc2

66

Vrefcg2

<


1                      Инверсные стробы отсутствуют на картах и слотах 3,3 В (там нет режима 4х).

2                      Опорное напряжение не требуется для слотов и карт 1х.

Кроме собственно AGP, в порте AGP заложены сигналы шины USB, которую пред­полагается заводить в монитор (линии USB+, USB- и сигнал OVRCNT*, которым сообщается о перегрузке по току линии питания +5 В, выводимой в монитор).

Сигнал РМЕ# относится к интерфейсу управления энергопотреблением (Power Management Interface). При наличии дополнительного питания 3,3Vaux этим сиг­налом карта может инициировать «пробуждение».

Спецификация A GP Pro описывает более мощный коннектор, позволяющий в 4 раза повысить мощность, подводимую к графической карте. При этом сохраняется одно­сторонняя совместимость: карты AGP могут устанавливаться в слот AGP Pro, но не наоборот. Коннектор AGP Pro имеет дополнительные контакты с обеих сторон обычного коннектора AGP (рис. 6.14) для линий GND и питания 3,3 и 12 В, назна­чение этих контактов приведено в табл. 6.16. Для правильной установки обычной карты со стороны задней кромки системной платы дополнительная часть слота AGP Pro закрывается съемной пластмассовой заглушкой. Карта AGP Pro может также использовать 1-2 соседних слота PCI: чисто механически (как точки опо-

222

Глава 6. Шины и карты расширения

ры и место), как дополнительные коннекторы для подачи питания, как функци­овальные коннекторы PCI.



Рис. 6.14. Коннектор карты AGP Pro (показан ключ питания карты 1,5 В): а—вид сверху, б — профиль ключей

Таблица 6.16. Дополнительные контакты коннектора AGP Pro

Контакт

РядС

VCC3.3

VCC3.3

VCC3.3

VCC3.3

VCC3.3

VCC3.3

VCC3.3

VCC3.3

PRSNT2*

PRSNT1*

1 2 3 4 5 6 7 8 9 10

VCC3.3

GND

VCC3.3

GND

GND

GND

GND

GND

Резерв

Резерв

РядЕ

Контакт

Резерв

Резерв

GND

GND

GND

GND

GND

GND

GND

GND

GND

GND

GND

GND



1 2

3 4 5 6

7 8

9

10

11

12

13

14

Резерв

Резерв

VCC12

VCC12

VCC12

VCC12

VCC12



VCC12

VCC12

VCC12

VCC12

VCC12

VCC12

VCC12

6.4. Интерфейс LPC

223

В совокупности карта AGP Pro может потреблять до 110 Вт мощности, забирая ее по шинам питания 3,3 В (до 7,6 А) и 12 В (до 9,2 А) с основного разъема AGP, до­полнительного разъема питания AGP Pro и одного-двух разъемов PCI. Карты AGP Pro большой мощности (High Power, 50-110 Вт) занимают 2 слота PCI, малой (Low Power, 25-50 Вт) — 1 слот. Соответственно скобка крепления к задней пане­ли ПК у них имеет утроенную или удвоенную ширину. Кроме того, карты имеют крепеж к передней стенке ПК. На дополнительном разъеме цепь PRSNT1 # служит признаком наличия карты (контакт заземлен), a PRSNT2* — признаком потреб­ляемой мощности (до 50 Вт — контакт свободен, до 110 Вт — заземлен).

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

¦     введен новый режим передачи по шинам AD и SBA — 8х, обеспечивающий

пиковую производительность 2,132 Гбайт/с;

¦     исключены команды длинного чтения и записи;

¦     исключены команды высокого приоритета (и упразднены сами понятия низ­

кого и высокого приоритета);

¦     исключена возможность подачи команд с помощью сигнала Р1РЕ#;

¦     предпринимаются меры по обеспечению когерентности при обращениях к па­мяти, не лежащей в области GART;

¦     несколько изменены протоколы передачи данных, применяется динамическое

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

Дополнительно предполагается введение поддержки изохронных передач; воз­можность установки нескольких портов AGP; возможность поддержки разных размеров страниц, описанных в GART; обеспечение когерентности при обраще­ниях к определенным страницам.


Микросхемы асинхронных приемопередатчиков


В СОМ-портах преобразование параллельного кода в последовательный для пе­редачи и обратное преобразование при приеме данных выполняют специализи­рованные микросхемы UART (Universal Asynchronous Receiver-Transmitter — универсальный асинхронный приемопередатчик). Эти же микросхемы формиру-

2.5. Микросхемы асинхронных приемопередатчиков________________________ 63

ют и обрабатывают управляющие сигналы интерфейса. СОМ-порты IBM PC XT/ AT базируются на микросхемах, совместимых на уровне регистров с U ART i8250 — 8250/16450/16550А. Это семейство представляет собой усовершенствование на­чальной модели, направленное на повышение быстродействия, снижение потреб­ляемой мощности и загрузки процессора при интенсивном обмене. Отметим, что:

¦ 8250 имеет ошибки (появление ложных прерываний), учтенные в XT BIOS;

¦     8250А — ошибки исправлены, но в результате потеряна совместимость с BIOS;эта микросхема работает в некоторых моделях AT, но непригодна для скорос­ти 9600 бит/с;

¦     8250В — исправлены ошибки 8250 и 8250А, восстановлена ошибка в прерыва­ниях — возвращена совместимость с XT BIOS; работает в AT под DOS (кроме скорости 9600 бит/с).

Микросхемы 8250х имеют невысокое быстродействие по обращениям со стороны системной шины. Они не допускают обращения к своим регистрам в смежных шинных циклах процессора — для корректной работы с ними требуется введение программных задержек между обращениями CPU.

В компьютерах класса AT применяют микросхемы UART перечисленных ниже модификаций.

¦     16450 — быстродействующая версия 8250 для AT. Ошибок 8250 и полной сов­местимости с XT BIOS не имеет.

¦     16550 — развитие 16450. Может использовать канал DMA для обмена данными. Имеет FIFO-буфер, но некорректность его работы не позволяет им воспользо­ваться.

¦     16550А — имеет работающие 16-байтные FIFO-буферы приема и передачи и

возможность использования DMA.
Именно этот тип U ART должен применять­ ся в AT при интенсивных обменах на скоростях 9600 бит/с и выше. Совмести­мость с этой микросхемой обеспечивает большинство микросхем контролле­ров портов ввода-вывода, входящих в современные чипсеты.

Микросхемы UART 16550А с программной точки зрения представляют собой на­бор регистров, доступ к которым определяется адресом (смещением адреса регист­ра относительно базового адреса порта) и значением бита DLAB (бита 7 регистра LCR). В адресном пространстве микросхема занимает 8 смежных адресов. Список регистров UART 16550A и способы доступа к ним приведены в табл. 2.4. Микросхе­мы 8250 отличаются отсутствием регистра FCR и всех возможностей FIFO и DMA.

Таблица 2.4. Регистры UART 16550А

Доступ                  Регистр Смещение   DLAB    Имя

Название

Чтение/запись R/W

Oh Oh Oh

0 0 1

THR RBR DLL

Transmit Holding Register Receiver Buffer Register Divisor Latch LSB

WO RO R/W

продолжение-^

64________________________ Глава 2. Последовательный интерфейс — СОМ-порт

Таблица 2.4 (продолжение)

Доступ                             Регистр                                                              Чтение/запись R/W

Смещение   DLAB    Имя      Название

1h

1

DIM

Divisor Latch MSB

R/W

1h

0

IER

Interrupt Enable Register

R/W

2h

X

IIR

Interrupt Identification Register

RO

2h

X

FOR

FIFO Control Register

WO

3h

X

LCR

Line Control Register

R/W

4h

X

MCR

Modem Control Register

R/W

5h

X

LSR

Line Status Register

R/W1

6h

X

MSR

Modem Status Register

R/W'

7h

X

SCR

Scratch Pad Register

R/W

1 Некоторые биты допускают только чтение. Запись в регистр может привести к сбою протокола.

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


Бит 0 передается ( и принимается) первым. При длине посылки ме­нее 8 бит старшие биты игнорируются.

RBR — буферный регистр принимаемых данных (только для чтения). Данные, приня­тые входным сдвигающим регистром, помещаются в регистр RBR, откуда они могут быть считаны процессором. Если к моменту окончания приема очередного символа предыдущий не был считан из регистра, фиксируется ошибка переполнения. При длине посылки менее 8 бит старшие биты в регистре имеют нулевое значение.

DLL — регистр младшего байта делителя частоты.

D L M — регистр старшего байта делителя частоты. Делитель определяется по фор­муле D=115200/V, где V — скорость передачи, бит/с. Входная частота синхрони­зации 1,8432 МГц делится на заданный коэффициент, после чего получается 16-кратная частота передачи данных.

IER — регистр разрешения прерываний. Единичное значение бита разрешает пре­рывание от соответствующего источника.

Назначение бит регистра IER:

¦     биты [7:4]=0 — не используются;

¦     бит 3 — Mod_IЕ — по изменению состояния модема (любой из линий CTS, DSR,

Rl, DCD);

¦     бит 2 — Rx L_I Е — по обрыву/ошибке линии;

¦     бит 1 — TxD_IE — по завершении передачи;

¦     бит 0 — RxD_I Е — по приему символа (в режиме FIFO — прерывание по тайм-ауту).

IIR — регистр идентификации прерываний и признака режима FIFO (только для чтения). Для упрощения программного анализа UART выстраивает внутрен­ние запросы прерывания по четырехуровневой системе приоритетов. Порядок

2.5. Микросхемы асинхронных приемопередатчиков________________________ 65

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


Ниже описано назначение бит регистра IIR.

¦  Биты [7:6] — признак режима FIFO:

•       11-режим FIFO 16550A;

•       10 - режим FIFO 16550;

•       00 — обычный.

¦    Биты [5:4] — не используются.

¦    Бит 3 — прерывание по тайм-ауту приема в режиме FIFO (в буфере есть сим­волы для считывания).

¦    Биты [2:1] — причина прерывания с наивысшим приоритетом (в обычном, не FIFO-режиме):

•       11 — ошибка/обрыв линии, сброс выполняется чтением регистра состояния линии;

•       10 — принят символ, сброс выполняется чтением данных;

•       01 — передан символ (регистр THR пуст), сброс выполняется записью данных;

•       00 — изменение состояния модема; сброс выполняется чтением регистра состояния модема.

¦  Бит 0 — признак необслуженного запроса прерывания (1 — нет запроса, 0 — есть запрос).

В режиме FIFO причину прерывания идентифицируют биты [3:1].

¦    011 — ошибка/обрыв линии. Сброс выполняется чтением регистра состояния линии.

¦    010 — принят символ. Сброс выполняется чтением регистра данных приемника.

¦    110 — индикатор тайм-аута (за 4-кратный интервал времени символа не пере­дано и не принято ни одного символа, хотя в буфере имеется, по крайней мере, один). Сброс выполняется чтением регистра данных приемника.

¦    001 — регистр THR пуст. Сброс выполняется записью данных.

¦    000 — изменение состояния модема (CIS, DSR, RI или DCD). Сброс выполняет­ся чтением регистра MSR.

FCR — регистр управления FIFO (только для записи). Ниже описано назначение бит регистра FCR:

¦  Биты [7:6] — ITL (Interrupt Trigger Level) — уровень заполнения FIFO-буфе­ра, при котором вырабатывается прерывание:

•       00—1 байт (по умолчанию);



•       01 — 4 байта;

66________________________ Глава 2. Последовательный интерфейс — СОМ-порт

•       10 -8 байт;

•       11-14 байт.

¦     Биты [5:4] зарезервированы.

¦     Бит 3 — разрешение операций DMA.

¦     Бит 2 - RESETTF (Reset Transmitter FIFO) - сброс счетчика FIFO-передат­

чика ( записью единицы; сдвигающий регистр не сбрасывается).

¦     Бит 1 — RESETRF (Reset Receiver FIFO) — сброс счетчика FIFO-приемника (за­писью единицы; сдвигающий регистр не сбрасывается).

¦     Бит 0 — TRFIFOE (Transmit And Receive FIFO Enable) — разрешение (едини­цей) режима FIFO для передатчика и приемника. При смене режима FIFO-буферы автоматически очищаются.

LCR — регистр управления линией (настройки параметров канала). Ниже описано назначение бит регистра LCR.

¦     Бит 7 — DLAB (Divisor Latch Access Bit) — управление доступом к делителю частоты.

¦     Бит 6 — BRCON (Break Control) — формирование обрыва линии (посылка ну­лей) при BRCON=1.

¦     Бит 5 — STICPAR (Sticky Parity) — принудительное формирование бита па­ритета:

•       0 — контрольный бит генерируется в соответствии с паритетом выводимо­го символа;

•       1 — постоянное значение контрольного бита: при EVENPAR=1 — нулевое, при EVENPAR=0 — единичное.

¦     Бит 4 — EVE N PAR (Even Parity Select) — выбор типа контроля: 0 — нечетность, 1 —четность.

¦     Бит 3 — PAREN (Parity Enable) — разрешение контрольного бита:

•       1 — контрольный бит (паритет или постоянный) разрешен;

•       0 — контрольный бит запрещен.

¦   Бит 2 — STOP В (Stop Bits) — количество стоп-бит:

•       0—1 стоп-бит;



•       1 — 2 стоп-бита (для 5-битного кода стоп-бит будет иметь длину 1,5 бит).

¦   Биты [1:0] — SERIALDB (Serial Data Bits) — количество бит данных:

•       00-5 бит;

•       01-6 бит;

•       10-7 бит;

•       И-8 бит.

2.5. Микросхемы асинхронных приемопередатчиков________________________ 67

MCR — регистр управления модемом. Ниже описано назначение бит регистра MCR.

¦     Биты [7:5]=0 — зарезервированы.

¦     Бит 4 — LME (Loopback Mode Enable) — разрешение режима диагностики:

•       0 — нормальный режим;

•       1 — режим диагностики (см. ниже).

¦   Бит 3 — IE (Interrupt Enable) — разрешение прерываний с помощью внешнего выхода OUT2; в режиме диагностики поступает на вход MSR. 7:

•       0 — прерывания запрещены;

•       1 — прерывания разрешены.

¦     Бит 2 — OUT1C (OUT1 Bit Control) — управление выходным сигналом 1 (не используется); в режиме диагностики поступает на вход MSR. 6.

¦     Бит 1 — RISC (Request To Send Control) — управление выходом RTS; в режиме диагностики поступает на вход MSR.4:

•       0 — активен (-V);

•       1 — пассивен (+V).

¦   Бит 0 — DTRC (Data Terminal Ready Control) — управление выходом DTP; в ре­жиме диагностики поступает на вход MSR. 5:

•       0 — активен (-V);

•       1 — пассивен (+V).

LSR — регистр состояния линии (точнее, состояния приемопередатчика). Ниже описано назначение бит регистра LSR.

¦     Бит ? — FIFOE (FIFO Error Status) —ошибка принятых данных в режиме FIFO (буфер содержит хотя бы один символ, принятый с ошибкой формата, парите­та или обрывом).


В не FIFO-режиме всегда 0.

¦     Бит 6 — TEMPT (Transmitter Empty Status) — регистр передатчика пуст ( нет данных для передачи ни в сдвиговом регистре, ни в буферных регистрах THR или FIFO).

¦     Бит 5 — THRE (Transmitter Holding Register Empty) — регистр передатчика готов принять байт для передачи. В режиме FIFO указывает на отсутствие сим­волов в FIFO-буфере передачи. Может являться источником прерывания.

¦     Бит 4 — BD (Break Detected) — индикатор обрыва линии (вход приемника на­ходится в состоянии 0 не менее чем время посылки символа).

¦     Бит 3 — F E (Framing Error) — ошибка кадра (неверный стоп-бит).

¦     Бит 2 — РЕ (Parity Error) — ошибка контрольного бита (паритета или фикси­рованного).

68________________________ Глава 2. Последовательный интерфейс — СОМ-порт

¦     Бит 1 — ОЕ (Overrun Error) — переполнение (потеря символа). Если прием

очередного символа начинается до того, как предыдущий выгружен из сдвига­

ющего регистра в буферный регистр или в регистр FIFO, прежний символ в

сдвигающем регистре теряется.

¦     Бит 0 — DR (Receiver Data Ready) — принятые данные готовы (в DHR или FIFO- буфере). Сброс — чтением приемника.

Индикаторы ошибок — биты [4:1] — сбрасываются после чтения регистра LSR. В режиме FIFO признаки ошибок хранятся в FIFO-буфере вместе с каждым сим­волом. В регистре они устанавливаются (и вызывают прерывание) в тот момент, когда символ, принятый с ошибкой, находится на вершине FIFO (первый в очере­ди на считывание). В случае обрыва линии в FIFO заносится только один «обрыв­ной» символ, и UART ждет восстановления и последующего старт-бита.

MSR —регистр состояния модема. Ниже описано назначение бит регистра MSR:

¦   Бит 7 — DCD (Data Carrier Detect) — состояние линии DCD:

•       0 — активна (-V);

•       1 — пассивна (+V).



¦   Бит 6 — RI (Ring Indicator) — состояние линии RI:

•       0 — активна (-V);

•       1 — пассивна (+V).

¦   Бит 5 — DSR (Data Set Ready) — состояние линии DSR:

•       0 — активна (-V);

•       1 — пассивна (+V).

¦   Бит 4 — CIS (Clear To Send) — состояние линии CTS:

•       0 — активна (-V);

•       1 — пассивна (+V).

¦     Бит 3 — DDCD (Delta Data Carrier Detect) — изменение состояния DCD.

¦     Бит 2 — ТЕ RI ( Trailing Edge Of Ring Indicator) — спад огибающей RI (оконча­ние звонка).

¦     Бит 1 — DDSR (Delta Data Set Ready) — изменение состояния DSR.

¦     Бит 0 — DCTS (Delta Clear To Send) — изменение состояния CTS.

Признаки изменения (биты [3:0]) сбрасываются по чтению регистра.

SCR — рабочий регистр (8 бит), на работу UART не влияет, предназначен для вре­менного хранения данных (в 8250 отсутствует).

В диагностическом режиме (при LME=1) внутри UART организуется внутренняя «заглушка»:

¦     выход передатчика переводится в состояние логической единицы;

¦     вход приемника отключается;

2.7. Конфигурирование СОМ-портов_____________________________________ 69

¦     выход сдвигающего регистра передатчика логически соединяется со входом

приемника;

¦     входы DSR, CIS, RI и DCD отключаются от входных линий и внутренне управ­

ляются битами DTRC, RISC, OUT1C, IE;

¦     выходы управления модемом переводятся в пассивное состояние (логический

ноль).

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


Miniature Card


Карты Miniature Card предназначены для использования в недорогих устройствах бытовой электроники в качестве сменной флэш-памяти, а также расширения ди­намической памяти (рис. 9.10). В интерфейсе карт используется линейный до­ступ к произвольной ячейке памяти с адресуемым объемом до 64 Мбайт. Карты имеют немультиплексированную 16-разрядную шину данных и могут работать в пакетном режиме передачи данных. Также имеется возможность работы с 8-раз­рядным хостом (старший и младший байты шины запараллеливаются, линия BS8# заземляется). Интерфейс хоста для этих карт конфигурируется на работу в режиме DRAM или флэш-памяти; карты снабжаются микросхемой энергонеза­висимой памяти идентификации с интерфейсом PC. Карты имеют прорези для правильного позиционирования и коннектор, обеспечивающий «горячее» (даже для DRAM!) подключение. При установке передний край карты вводят в слот, при этом подключаются контакты «первой очереди»: GND, VCC и CINS* (контакт, за-

402

Глава 9. Интерфейсы устройств хранения

мыкающийся на «землю»). Затем карта опускается вниз, прижимаются контакты основного эластомерного разъема и замыкается контакт обнаружения CD#. Кар­ты могут работать с питанием 5 и 3,3 В; для идентификации питания служат сиг­налы VS1 #, VS2#. Карта Miniature Card через переходный адаптер может устанав­ливаться в слот PC Card типа 2.

GND CINS#    Vcc

а                                                                      б

Рис. 9.10. Карта Miniature Card: а — общий вид, б — вид снизу

При работе по интерфейсу DRAM используются линии адреса А[12:0] и управ­ляющие сигналы RAS#, CASH* и CASL# (стробы для старшего и младшего бай­тов), а также WE#. Карты имеют отдельную линию питания Veer для регенерации при отключенном основном питании.

При работе по интерфейсу флэш-памяти используются линии адреса А[24:0] и управляющие сигналы ОЕ# (чтение), WE# (запись), СЕН# и СЕ1_# (выборка для старшего и младшего байтов).



Модель передачи данных


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

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

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

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

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

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

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

4.1. Шина USB_______________________________________________________ 95

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

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

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



Модули динамической памяти


Динамическая память чаще всего применяется в виде модулей с разрядностью 1, 2,4 или 8 байт, которые могут устанавливаться пользователем без каких-либо при­способлений. Модули стандартизованы, поэтому обеспечивается взаимная совме­стимость.

¦ SIPPh SIMM-30 — самые первые модули с однобайтной организацией, приме­нялись вплоть до 486-х процессоров.

¦    SIMM-72-pin — 4-байтные модули, применявшиеся на системных платах для 486 и Pentium.

252________________________________ Глава 7. Интерфейсы электронной памяти

¦     DIMM-168 — 8-байтные модули для Pentium и выше. Существует два поколе­ния, существенно различных по интерфейсу. Модули DIMM 168-pin Buffered (1-го поколения), как и слоты для них, встречаются редко и с широко распро­страненными модулями DIMM 2-го поколения несовместимы даже механически (по ключам). Наиболее популярно второе поколение с микросхемами SDRAM.Различают модификации в зависимости от наличия буферов или регистров на управляющих сигналах:' Unbuffered, Buffered и Registered.

¦     DIMM-184 — 8-байтные модули DDR SDRAM для системных плат 6-7 поко­лений процессоров.

¦     RIMM — 2-байтные модули RDRAM для системных плат 6-7 поколений про­цессоров.

¦     SO DIMM (72 и 144-pin) и 50 RIMM — малогабаритные варианты модулей (для блокнотных ПК).

¦     AIMM (AGP Inline Memory Module), они же GPA Card (Graphics Performance Accelerator) — 66-контактные 32- или 16-битные модули SDRAM, предназна­ченные для расширения памяти графических адаптеров, встроенных в системную плату.

Не пересчитывая контакты, отличить «короткие» SIMM от «длинных» и DIMM-модулей легко по их размеру: длина модуля SIMM-30 pin примерно 89 мм, SIMM-72 — 108 мм. Модули DIMM-168 и DIMM-184 имеют одинаковую длину около 134 мм (5,25"), но у 168-контактных модулей два ключа, а у 184-контактных — один (за счет чего больше контактов); кроме того, у DIMM-184 по две прорези по бокам, а не по одной.
Модули RIMM имеют ту же длину, но легко отличимы по меньшему числу контактов — середина краевого разъема свободна от ламелей. У модулей RIMM микросхемы памяти закрыты пластиной радиатора. Кроме того, их левый ключ гораздо ближе к центру, чем у DIMM.

Модули памяти применяются и в принтерах (лазерных) — DIMM-168, 100-Pin DIMM, AIMM, SO DIMM-144, но иногда для них требуются и специальные мо­дули (по конструктиву или параметрам).

Современные модули памяти имеют шину данных разрядностью 1,4 или 8 байт. Кроме основных информационных бит, модули могут иметь дополнительные кон­трольные биты с различной организацией.

¦     Модули без контрольных бит (поп Parity) имеют разрядность 8,32 или 64 бита и допускают независимое побайтное обращение с помощью отдельных для каж­дого байта линий CAS#.

¦     Модули с контролем паритета (Parity) имеют разрядность 9, 36 или 72 бита

и также допускают независимое побайтное обращение, контрольные биты по

обращению приписаны к соответствующим байтам.

¦     Модули с генератором паритета (Fake Parity, Parity Generator, Logical Parity) так­ же допускают независимое побайтное обращение, логические генераторы па­ритета по чтению приписаны к соответствующим байтам. Действительного контроля памяти они не обеспечивают.

7.1. Динамическая память

253

¦     Модули с контролем по схеме ЕСС имеют разрядность 36,40,72 или 80 бит.

Обычно они допускают побайтное обращение к информационным битам, но

контрольные биты у них привязаны к одному или нескольким сигналам CAS#,

поскольку ЕСС подразумевает обращение сразу к целому слову.

¦     ECC-Optimized — модули, оптимизированные под режим ЕСС. От обычных мо­дулей ЕСС они отличаются тем, что могут не обеспечивать побайтное обраще­ние к информационным битам.

¦     ECC-on-Simm (EOS) — модули со встроенной схемой исправления ошибок. Каж­дый байт модуля имеет встроенные средства контроля и исправления ошибок, работающие прозрачно.


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

Набор сигналов модуля SIMM в основном совпадает с сигналами одиночных мик­росхем динамической памяти. Основные характеристики распространенных мо­дулей приведены в табл. 7.5, более подробное описание — в следующих разделах.

Таблица 7.5. Основные характеристики модулей памяти

Модуль

Разрядность1, бит

Объем, Мбайт

Тип

Питание, В

Спецификация

SIMM-30.SIPP

8(9)

0,25-4

FPM, EDO

5

60,70, 80 не

SIMM-72

32 (36)

1-32

FPM, EDO, BEDO

5

50,60,70 не

DIMM-168-I

64(72,80)

8-256

FPM, EDO

5

50, 60,70 не

DIMM-168-II

64 (72, 80)

8-512

FPM, EDO

5,3,3

50,60,70 не

DIMM-168-II

64 (72, 80)

8-1024

SDRAM

3,3

РС66,РС100,РС133

DIMM-184

64 (72, 80)

128,256...

DDR SDRAM

2,5

РС1600,РС2100

МММ

32

4

SDRAM

3,3

166 МГц

100-Pin DIMM

32

4-128

SDRAM

3,3

100,125 МГц

100-Pin DIMM

32

4-32

FPM, EDO

3,3

50, 60 не

SODIMM-72

32(36)

4-32

FPM, EDO

3,3

50, 60 не

SODIMM-144

64(72)

32,64

FPM, EDO

3,3

50, 60 не

SODIMM-144

64(72)

32-256

SDRAM

3,3

66,100,125,133 МГц

RIMM

16(18)

64,96, 128,256

RDRAM

2,5

РС600, РС700, РС800

1В скобках указана разрядность с учетом битов паритета или ЕСС.

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



чением латентности (на более высокой частоте она, возможно, и будет работать, но с большим значением CL). Обозначения РС66, PC 100 и PC 133 здесь тоже указывают на частоту (отсутствие обозначения соответствует 66 МГц — поначалу иных специфи­каций не было), а также на соответствие спецификациям Intel. Для DDR SDRAM числа в спецификации отражают пиковую пропускную способность (Мбайт/с): РС1600 (8 байт, 2 х 100 МГц), РС2100 (8 байт, 2 х 133 МГц). Для RDRAM числа в названии (600, 700 и 800) обозначают округленную частоту (2 х 300, 2 х 356 и 2 х 400 МГц) схода двухбайтных данных с конвейера RDRAM. Таким образом, их пиковая производительность составляет 1200, 1424 и 1600 Мбайт/с.

Маркировка модулей SDRAM, согласно спецификациям Intel, имеет вид PCX-abc-defY, где X — частота, МГц; а - CL (Cas Latency, в тактах), b - Trcd (задержка RAS-CAS), с = Тгр (время предзаряда RAS), d - Тас (время доступа), е — ревизия последовательной идентификации (SPD), f — резервный символ, Y — символ ар­хитектурных особенностей (R — признак наличия регистров; отсутствие символа означает отсутствие регистров и буферов). Временные характеристики задаются в десятках не, но Тас может задаваться и в наносекундах. Номер ревизии SDP может содержать как последнюю цифру, так и обе. Так, модуль РС100-322-620 работает на частоте 100 МГц при CL - 3 и Тас = 60 не, SPD ревизии 1.2. Но он может обозначаться и как PC 100-322-60120. Модуль PC100-322-620R имеет те же параметры, но еще снабжен и регистрами.

Существуют адаптеры, преобразующие форматы модулей SIMM (SIMMVerter, SIMMSaver). Они позволяют, например, сложить из четырех SIMM-30 один SIMM-72 или из двух односторонних SIMM-72 сложить один двусторонний. Трудно назвать такие конструктивные решения элегантными и надежными (по­является слишком много механических соединений и контактов), но их примене­ние может быть оправданно при дефиците гнезд на плате. Или, например, при на­личии четырех 4-мегабайтных модулей SIMM-30 можно сделать 16-мегабайтный SIMM-72.


Следует помнить о повышенной нагрузке на шины, вносимой такими «супермодулями» с непомерным количеством микросхем и проводников.

Идентификация модулей

Для автоматической идентификации наличия и типа установленного модуля применяются различные методы, основанные на считывании конфигурацион­ной информации с модуля (параллельная или последовательная идентификация) или «исследовании» свойств модуля во время начального тестирования по вклю­чении питания.

Метод параллельной идентификации начал применяться с модулями SIPP и SIMM-30 фирмы IBM. В интерфейс этих модулей были введены два дополнитель­ных вывода, и по заземленным (на модуле) сигналам системная плата могла рас­познать наличие и объем установленной памяти. В SIMM-72 для идентификации предназначались 4 вывода (для ЕСС-модулей — 5), которые должны были нести информацию об объеме, быстродействии и типе применяемой памяти. Этот ме­тод не выдержал натиска новых типов памяти, поскольку описать их важнейшие

7,1. Динамическая память_____________________________________________ 255

параметры четырьмя битами невозможно. В SO DIMM-72 используют 7 бит, в DIMM-168 первого поколения — 10, что тоже не решает проблем.

Новые модули памяти — DIMM-168 второго поколения, SO DIMM-144, DIMM-184 используют последовательную идентификацию (Serial Presence Detection). На модуль устанавливается микросхема специальной энергонезависимой памяти с последовательным доступом по двухпроводному интерфейсу 12С, хранящая исчер­пывающую конфигурационную информацию. Формат конфигурационных данных стандартизован JEDEC, из доступных 256 байт под параметры пока определены только первые 32 и еще 32 зарезервированы, 64 байта отданы под информацию производителя (табл. 7.6). Основные параметры описываются в явном виде, на­пример, временные — в наносекундах, количество бит адреса задается числами. Интерфейс 12С позволяет легко объединять его сигналы со всех модулей, что существенно проще, чем коммутация 4-10 линий параллельной идентификации.


На разъем модулей DIMM-168 выведены 3 бита адреса SA[0:2], что позволяет раз­ водкой этих выводов адресовать до восьми модулей с объединенными линиями синхронизации и данных. При необходимости расширения следующие восемь мо­дулей потребуют от контроллера (чипсета) еще только одной двунаправленной или выходной линии. Адрес в SO DIMM-144 фиксирован, так что двухпроводный интерфейс позволяет опрашивать только один модуль, а каждый следующий мо­дуль потребует по одной дополнительной линии.

Байты 128-255 конфигурационной памяти свободны. Эту область в принципе можно занимать для пометки компьютера (точнее, модуля памяти) с целью при­вязки программного обеспечения к конкретному экземпляру PC. Однако при не­осторожном использовании модулей с микросхемами без защиты от модификации случайная запись в ячейки 0-127 может привести к недоступности модуля памя­ти. «Оживить» его можно будет только записью корректных данных.

Таблица 7.6. Назначение байт последовательной идентификации Байт    Назначение

Стандартизованная информация о микросхеме

0                   Число записанных байт конфигурационной памяти

1                   Разрядность адреса микросхемы Serial PD (определяет объем конфигурационной

памяти: 1—2 байта, 2 — 4 байта, ODh — 8 Кбайт)

2                   Тип памяти: 00 — резерв, 01 — Std FPM, 02 — EDO, 03 — Pipelined Nibble (BEDO),

04 —SDRAM

3                   Количество бит адреса строк в банке 1 (биты 0-3) и банке 2 (биты 4-7) по модулю 16

(О — не определено, 1 — 1 или 16,2 — 2 или 17 и т. д.) Если банки одинаковые,

то биты 4-7 нулевые

4                   Количество бит адреса столбцов (аналогично предыдущему)



5                   Количество банков (рядов микросхем)

6-7      Разрядность данных с учетом контрольных бит (если менее 255, байт 7 — 0)

8         Уровень напряжения интерфейса: О — 7TL/5B, 01 —LVTTL (не допускает 5 В), 02 — HSTL 1.5,03 — SSTL 3.3,04 — SSTL 2.5

продолжение^

256________________________________ Глава 7. Интерфейсы электронной памяти

Таблица 7.6 (продолжение)

Байт    Назначение________________________________________________________________

9                    Для DRAM — RAS Access time (в наносекундах). Для SDRAM — минимальное время

цикла (Tclk) для максимального значения CL (десятые доли не в BCD-коде)

10                 Для DRAM — CAS Access time (в наносекундах). Для SDRAM — время доступа

относительно тактового импульса (Тас) аналогично предыдущему

11                 Схема контроля: 00 — Non-Parity, 01 — Parity, 02 — ЕСС

12                 Частота (тип) регенерации: 00 — Normal (распределенный цикл 156 мкс),

01 — Reduced 0.25х (39 мкс), 02 — Reduced 0.5х (78 мкс), 03 — Extended 2x (313мкс), 04 — Extended 4x (625 мкс), 05 — Extended 8x (125 мкс). Бит7 является признаком саморегенерации (биты 6:0 кодируют те же периоды)

13                 Разрядность микросхем основной памяти, бит. Бит 7 равен 1, если имеется второй

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

бит 7 равен О

14                 Разрядность микросхем контрольных разрядов, бит (аналогично)



15-30   Детальное описание временных и организационных параметров SDRAM

31        Объемы банков (рядов микросхем): битО —4 Мбайт, бит 1—8 Мбайт, бит7 — 512 Мбайт,

единичное значение устанавливается в одном или нескольких (двух) битах 32-35   Время предварительной установки и удержания входных сигналов 36-61    Резерв

62                 Ревизия SPD (две BCD-цифры)

63                 Контрольная сумма байт 0-62 по модулю 256

Информация изготовителя

64-71    Идентификатор производителя по JEDEC

72          Код страны производителя

73-90     Код изделия (ASCII)

91-92     Код модификации

93-94     Дата изготовления (wwyy — неделя, год)

95-98     Серийный номер

99-127   Специальные данные изготовителя

126             Спецификация частоты ( для Intel) DIMM SDRAM. Частота 66 МГц задается кодом 66п,

более высокие значения — числом МГц (100 = 64h)

127             Детализация для SDRAM 100 МГц (для Intel)

Модули SIMM-30, SIPP, SIMM-72

Модули SIMM (Single In-Line Memory Module) и SIPP (Single In-Line Pin Package) представляют собой небольшие печатные платы с односторонним краевым разъемом. Контактами модулей SIMM являются позолоченные (или покрытые специальным сплавом) площадки, расположенные на обеих поверхностях вдоль одной из сто­рон. Слово Single (одиночный) в названии подразумевает, что пары площадок на обеих сторонах эквивалентны (электрически соединяются между собой). У малорас­пространенных модулей SIPP контакты штырьковые (pin — иголка); эти контакты при необходимости можно припаять к площадкам модулей SIMM (такие контакты

7.1. Динамическая память_____________________________________________ 257

когда-то даже продавались в комплекте с модулями SIMM). Модули SIPP оказа­лись непрактичными — их контакты не выдерживают транспортировки и много­кратной установки.



На модулях смонтированы микросхемы памяти в корпусах SOJ или TSOP, их адресные входы объединены. Количество и тип микросхем определяются требуемой разрядностью и объемом хранимых данных. Архитектура модулей обеспечивает возможность побайтного обращения, что существенно для записи (byte-write); выбор байт производится отдельным входом CAS# для каждого байта. Распростра­ненные модули имеют напряжение питания 5 В, их параметры приведены в табл. 7.7.

Таблица 7.7. Организация модулей SIMM

Емкость, Мбайт

С паритетом

Без паритета

30-pin

72-pin

30-pin

72-pin

256 Кбайт

256Кх9

-

256 Кх 8

-

1

1Мх9

256 К х 36

1Мх8

256 К х 32

2

-

512Кх36

-

512Кх32

4

4Мх9

1 Мх36

4Мх8

1Мх32

8

-

2Мх36

-

2Мх32

16

-

4Мх36

-

4Мх32

32

-

8Мх36

-

8Мх32

64

-

16Мх36

-

16Мх32

По логической организации различают односторонние и двусторонние модули.

У «односторонних» модулей микросхемы смонтированы на одной (передней)

поверхности, у «двусторонних» двойной комплект — два банка — микросхем смон­тирован на обеих сторонах платы. Эти названия не совсем точны, но имеют проч­ные позиции и иностранное происхождение (single side и double side). Часто встре­чаются модули, у которых на второй стороне смонтировано несколько микросхем, дополняющих набор первой стороны до требуемой разрядности (чаще там разме­щаются контрольные биты). Такие модули являются логически односторонними. У «истинно двусторонних» на обеих сторонах обычно симметрично расположе­ны одинаковые комплекты микросхем.              

«Короткие», или SIMM 30-pin, модули SIMM (старый тип) имеют 30 печатных выводов (рис. 7.11) и однобайтную организацию. Разводка выводов у модулей фирмы IBM (для компьютеров IBM PS/2) отличается от общепринятых стандарт­ных. Различия делают несовместимыми модули с объемом более 1 Мбайт: моду­ли IBM могут быть двусторонними (2 Мбайт), стандартные — только односто­ронними.


Малораспространенные модули SIPP имеют 30 штырьковых выводов и совпадают по разводке со стандартными модулями SIMM 30-pin (SIMM-30). Применение однобайтных модулей особенно в 32-битных системных платах сильно сковывает свободу выбора объема памяти. Назначение выводов SIMM-30 и SIPP приведено в табл. 7.8.

258

Глава 7. Интерфейсы электронной памяти



Рис. 711. Модули SIMM-30

Таблица 7.8. Назначение выводов модулей SIPP и SIMM 30-pin

Контакт

STD

IBM

Контакт

STD1

IBM2                          .

1

+5 В

+5 В

16

DQ4

DQ4

2

CAS#

CAS#

17

МА8

MAS

3

DQO

DQO

18

МА9

MA9

4

МАО

МАО

19

МАЮ

RAS1#                             :

5

МА1

МА1

20

DQ5

DQ5

6

DQ1

DQ1

21

WE#

WE#

7

МА2

МА2

22

GND

GND

8

МАЗ

МАЗ

23

DQ6

DQ6

9

GND

GND

24

N.C.

PD(GND)

10

DQ2

DQ2

25

DQ7

DQ7

11

МА4

МА4

26

PB-Out

PD(1M=GND)

12

МА5

МА5

27

RAS#

RASO#

13

DQ3

DQ3

28

CAS-Parity#

N.C.

14

МА6

МА6

29

PB-ln

PB-(ln/Out)

15

МА7

МА7

30

+5B

+5B

1   STD-стандартный SIMM (SIPP).

2   IBM - SIMM фирмы IBM.

«Длинные», или SIMM 72-pin (SIMM-72), модули SIMM имеют 72 печатных вы­вода (рис. 7.12, табл. 7.9) и 4-байтную организацию с возможностью независимо­го побайтного обращения по сигналам CASx#. По сигналам выборки строк биты данных делятся на два слова, DQ[0:15] выбираются сигналом RASO# для первого банка и RAS1 # для второго, DQ[ 16:31] выбираются соответственно сигналом RAS2* и RAS3*. В односторонних модулях (1,4,16,64 Мбайт — 1 банк) используется толь­ко одна пара сигналов выборки RASO* и RAS2#, в двусторонних (2,8, 32 Мбайт — 2 банка) — две пары сигналов RAS#. Заметим, что использование всеми модулями обеих дар линий RAS# поддерживается не всеми системными платами. Конт­рольные биты модулей с паритетом по выборке приписываются к соответству1-ющим байтам, в ЕСС-модулях возможны различные варианты.


Модули без пари- тета имеют разрядность 32 бит, с паритетом — 36 бит, модули ЕСС — 36 или 40 бит. Модули ЕСС-36 и ЕСС-40 (ECC-optimised) не допускают побайтного обращения и существенно отличаются от 32-битных и паритетных модулей.

7,1. Динамическая память

259



 

Рис. 7.12. Модули SIMM-72

Таблица 7.9. Назначение выводов модулей SIMM 72-pin

Контакт

Назначение для модулей х32,

Контакт

Назначение для модулей х32,

Parity/ECC1

Parity/ECC1

1

GND

37

PQ1/DQ19

2

DQO/DQO

38

PQ3/DQ20

3

DQ16/DQ1

39

GND

4

DQ1/DQ2

40

CASO#

5

DQ17/DQ3

412

CAS2#/MA10

6

DQ2/DQ4

422

CAS3#/MA11

7

DQ18/DQ5

43

CAS1»

8

DQ3/DQ6

44

RASO#

9

DQ19/DQ7

45

RAS1#

10

+5В

462

(OE1#)/DQ21

112

(CAS-Parity#)/PD5

47

WE#

12

МАО

482

Reserved/ECC

13

МА1

49

DQ8/DQ22

14

МА2

50

DQ24/DQ23

15

МАЗ

51

DQ9/DQ24

16

МА4

52

DQ25/DQ25

17

МА5

53

DQ10/DQ26

18

МА6

54

DQ26/DQ27

19*

МА10/ОЕ#

55

DQ11/DQ28

20

DQ4/DQ8

56

DQ27/DQ29

21

DQ20/DQ9

57

DQ12/DQ30

2,2

DQ5/DQ10

58

DQ28/DQ31

23

DQ21/DQ11

59

+5B

24

DQ6/DQ12

60

DQ29/DQ32

25

DQ22/DQ13

61

DQ13/DQ33

26

DQ7/DQ14

62

DQ30/DQ34

27

DQ23/DQ15

63

DQ14/DQ35

28

МА7

642

DQ31/DQ36

292

MA11(OEO#)/DQ16

652

DQ15/DQ37

продолжение^

260

Глава 7. Интерфейсы электронной памяти

Таблица 7.9 (продолжение)

Контакт   Назначение для модулей х32, Parity/ECC1

Контакт   Назначение для модулей х32, Parity/ECC1

 

30

+5В

31

МА8

32

МА9

ЗЗ2

RAS3#/NC

342

RAS2#/NC

35

PQ2/DQ17

36

PQO/DQ18

662

(OE2#)/DQ38

67

PD1

68

PD2

69

PD3

70

PD4

71г

(OE3#)/DQ39

72

GND

<


1   Модули ECC различных производителей могут отличаться по назначению выводов. Некоторые моду­ли по выводам совпадают с паритетными, но могут различаться по связям контрольных бит с сигнала­ми RASx# и CASx#.

2   Могут существенно отличаться по назначению у модулей ЕСС. Сигналы DQ[36:39] имеются только в модулях ЕСС-40. В скобках приведены назначения выводов модулей фирмы IBM.

Сигналы модулей SIMM (табл. 7.10) в основном совпадают с сигналами микро­схем динамической памяти. Для идентификации модулей предназначены сигна­лы PD[1:5]. По заземленным (на модуле) сигналам системная плата может распо­знать быстродействие (тип) и объем установленной памяти. Стандарт JEDEC для SIMM-72 определяет следующее назначение выводов (0 — заземлен, 1 — свободен):

¦     сигналы PD[1: 2] (контакты 67,68) — объем памяти модуля, Мбайт: 00=4,11=8,01=16, 10=32;

¦     сигналы PD[3:4] (контакты 69,70) - время доступа, не: 00=100, 10=80, 01=70,11=60;

¦     сигнал PD5 может являться признаком ЕСС-модуля (заземленный контакт).

Таблица 7.10. Сигналы модулей SIMM Сигнал    Назначение

MAi         Multiplexed Address — мультиплексированные линии адреса. Во время спада сигнала RAS# на этих линиях присутствует адрес строки, во время спада CAS# — адрес столбца. Модули SIMM объемом 16 Мбайт могут быть с симметричной (square — квадратной) организацией — 11 бит адреса строк и 11 бит адреса колонок или асимметричной — 12x10 бит соответственно

DQx        Data Bit — биты данных (объединенные входы и выходы) PQx        Parity Bit — бит паритета х-го байта

PB-ln,      Parity Bit Input, Output — вход и выход микросхемы бита паритета (для SIPP PB-Out     и SIMM-30). Для хранения паритета в этих модулях всегда используются микросхемы

с однобитной организацией, у которых вход и выход разделен. Обычно эти контакты

на модуле соединены

WE# Write Enable — разрешение записи. При низком уровне сигнала во время спада CAS# выполняется запись в ячейку.


Переход WE# в низкий уровень и обратно при высоком уровне CAS# переводит выходной буфер EDO DRAM в высокоимпедансное состояние

RASx#     Стробы выборки строк. Сигналы RASO* и RAS1 # используются соответственно для бит [0:15] и [16:31] первого банка, RAS1#nRAS3#— для бит [0:15] и [16:31] второго банка

7.1. Динамическая память_____________________________________________ 261

Таблица 7.10. Сигналы модулей SIMM Сигнал    Назначение

CASx#     Стробы выборки столбцов, отдельные для каждого байта: CASO# — DQ[0:7], PQO;

CAS1# — DQ[8:15], PQ1; CAS2# — DQ[16:23], PQ2; CAS3# — DQ[24:31], PQ3. В ECC-модулях возможно обращение только ко всему модулю по сигналам CASO* и CAS1 #

CAS-       Строб выборки столбцов для контрольных разрядов (редко используемый вариант)

Parity*

ОЕх#       Output Enable — разрешение открытия выходного буфера. Эти выводы на системной плате обычно соединяются с логическим нулем, а для управления буфером используются сигналы RAS#, CAS# и WE#. На некоторых модулях SIMM могут отсутствовать

PD[1:5]    Presence Detect — индикаторы присутствия (обычно не используются) N.C.        No Connection — свободный вывод

Модули DIMM-168 и DIMM-184

Модуль памяти DIMM-168 (Dual-In-line-Memory Module) имеет 168 независимых печатных выводов, расположенных с обеих сторон (контакты 1-84 — с фронтальной стороны, 85-168 — с тыльной). Разрядность шины данных — 8 байт, организация рассчитана на применение в компьютерах с четырех- и восьмибайтной шиной данных. Конструкция и интерфейс модулей соответствует стандарту JEDEC 21-С. Модули устанавливаются на плату вертикально в специальные разъемы (слоты) с ключевыми перегородками, задающими допустимое питающее напряжение и тип (поколение) применимых модулей. Модули выпускаются для напряжения пита­ния 3,3 и 5 В. Вид модулей и сочетания ключей представлены на рис. 7.13. Тол­щина модулей с микросхемами в корпусах SOJ не превышает 9 мм, в корпусах TSOP - 4 мм.

По внутренней архитектуре модули близки к SIMM-72, но имеют удвоенную раз­рядность и, соответственно, удвоенное количество линий CAS#.


Также удвоено число сигналов разрешения записи и разрешения выходных буферов, что позво­ляет организовывать модули в виде двух 4-байтных банков с возможностью их чередования (Bank Interleaving). Модули могут иметь разрядность 64, 72 или 80 бит, дополнительные разряды 72-битных модулей организуются либо по схеме контроля паритета (приписываясь к соответствующим байтам), либо по схеме ЕСС; 80-битные — только по схеме ЕСС.

Модули DIMM первого поколения (по IBM) были ориентированы на асинхрон­ную память (FPM, EDO и BEDO); по архитектуре они напоминают SIMM-72. В модулях применяется параллельная идентификация — параметры быстро­действия и объема передаются через 8 буферизованных выводов идентификации (Presence Detect pins). Модули первого поколения не получили широкого рас­пространения, поскольку не принесли принципиальных новшеств в подсистему памяти.

Модули второго поколения отличаются тем, что позволяют использовать микро­схемы как асинхронной (FPM и EDO), так и синхронной динамической памяти

262

Глава 7. Интерфейсы электронной'памяти

(SDRAM). Внешне они похожи на модули первого поколения, но обличаются ключом, не допускающим ошибочную установку. Унифицированное назначение выводов позволяет в одни и те же слоты устанавливать как модули DRAM; так и SDRAM. Нумерация бит данных единая для всех типов организации — конт­рольные биты СВх имеют отдельную нумерацию, их наличие зависит от организации (паритет, ЕСС-72, ЕСС-80).



Рис. 7.13. Модули DIMM: а — вид модуля DIMM-168, б — ключи для модулей первого поколения, в — ключи для модулей второго поколения, г — вид модуля DIMM-184

Модули с любой организацией используют побайтное распределение информа­ционных бит по сигналам CASx# (табл. 7.11), распределение контрольных бит представлено в табл. 7.12. Младший бит адреса приходит по одной линии на все микросхемы модуля. Сигналы управления модулей SDRAM значительно отлича­ются от модулей DRAM. Исполняемая операция SDRAM определяется сигнала* ми RAS#, CAS# и WE#, синхронизируемыми по фронту соответствующих сигна­лов СКх.


Назначение сигналов модулей приведено в табл. 7.13, назначение выводов модулей DRAM — в табл. 7.14, SDRAM — в табл. 7.15.

7.1. Динамическая память

263

Таблица 7.11. Организация информационных и управляющих сигналов для модулей DIMM-168 второго поколения



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



Таблица 7.13. Сигналы модулей DIMM-168 второго поколения и DIMM-184



продолжение*?

264________________________________ Глава 7. Интерфейсы электронной памяти

Таблица 7.13 (продолжение)



В модулях SDRAM вместо раздельных сигналов RAS[0:3]# для выбора банков (рядов микросхем) используются сигналы S0#, S1#, S2# и S3#; вместо CAS[0:7]# для выбо­ра байтов — сигналы DQMBO-DQMB7; сигналы WE2#, OEO# и ОЕ2# не используются.

265

7.1. Динамическая память

Таблица 7.

14. Назначение выводов DIMM-168 DRAM второго поколения

Контакт

Цепь

Контакт

Цепь

Контакт

Цепь

Контакт

Цепь

1

VSS

85

VSS

43

VSS

127

VSS

2

DQO

86

DQ32

44

OE2#

128

DU

3

DQ1

87

DQ33

45

RAS2#

129

RAS3#

4

DQ2~~

88

DQ34

46

CAS2#

130

CAS6#

5

DQ3

89

DQ35

47

CAS3#

131

CAS7#

6

VCC

90

VCC

48

WE2#

132

DU

7

DQ4

91

DQ36

49

VCC

133

VCC

8

DQ5

92

DQ37

50

CB10

134

CB14

9

DQ6

93

DQ38

51

CB11

135

CB15

10

DQ7

94

DQ39

52

CB2

136

CB6

11

DQ8

95

DQ40

53

CB3

137

CB7

12

VSS

96

VSS

54

VSS

138

VSS

13

DQ9

97

DQ41

55

DQ16

139

DQ48

14

DQ10

98

DQ42

56

DQ17

140

DQ49

15

DQ11

99

DQ43

57

DQ18

141

DQ50

16

DQ12

100

DQ44

58

DQ19

142

DQ51

17

DQ13

101

DQ45

59

VCC

143

VCC

18

VCC

102

VCC

60

DQ20

144

DQ52

19

DQ14

103

DQ46

61

NC

145

NC

20

DQ15

104

DQ47

62

DU

146

DU

21

СВО

105

CB4

63

NC

147

NC

22

СВ1

106

CBS

64

VSS

148

VSS

23

VSS

107

VSS

65

DQ21

149

DQ53

24

СВ8

108

CB12

66

DQ22

150

DQ54

25

СВ9

109

CB13

67

DQ23

151

DQ55

26

VCC

110

VCC

68

VSS

152

VSS

27

WEO#

111

DU

69

DQ24

153

DQ56

28

CASO#

112

CAS4#

70

DQ25

154

DQ57

29

CAS1#

113

CAS5#

71

DQ26

155

DQ58

30

RASO#

114

RAS1#

72

DQ27

156

DQ59

31

OEO#

115

DU

73

VCC

157

VCC

32

VSS

116

VSS

74

DQ28

158

DQ60

33

АО

117

A1

75

DQ29

159

DQ61

34

A2

118

A3

76

DQ30

160

DQ62

35

A4

119

A5

77

DQ31

161

DQ63

36

A6

120

A7

78

VSS

162

VSS

37

A8

121

A9

79

NC

163

NC

38

A10

122

A11

80

NC

164

NC

39

A12

123

A13

81

NC

165

SAO

40

VCC

124

VCC

82

SDA

166

SA1

41

VCC

125

DU

83

SCL

167

SA2

42

DU

126

DU

84

VCC

168

VCC

<


266

Глава 7. Интерфейсы электронной памяти

Таблица 7.15. Назначение выводов DIMM-168 SDRAM

Контакт   Цепь

Контакт

Цепь

Контакт

Цепь

Контакт

Цепь

1

VSS

85

VSS

43

VSS

127

VSS

2

DQO

86

DQ32

44

DU2

128

CKEO

3

DQ1

87

DQ33

45

S2#

129

S3#

4

DQ2

88

DQ34

46

DQMB2

130

DQMB6

5

DQ3

89

DQ35

47

DQMB3

131

DQMB7

6

VCC

90

VCC

48

DU2

132

A13

7

DQ4

91

DQ36

49

VCC

133

VCC

8

DQ5

92

DQ37

50

CB10

134

CB14

9

DQ6

93

DQ38

51

CB11

135

CB15

10

DQ7

94

DQ39

52

CB2

136

CB6

11

DQ8

95

DQ40

53

CB3

137

CB7

12

VSS

96

VSS

54

VSS

138

VSS

13

DQ9

97

DQ41

55

DQ16

139

DQ48

14

DQ10

98

DQ42

56

DQ17

140

DQ49

15

DQ11

99

DQ43

57

DQ18

141

DQ50

16

DQ12

100

DQ44

58

DQ19

142

DQ51

17

DQ13

101

DQ45

59

VCC

143

VCC

18

VCC

102

VCC

60

DQ20

144

DQ52

19

DQ14

103

DQ46

61

NC

145

NC

20

DQ15

104

DQ47

62

Vref

146

Vref

21

СВО

105

CB4

63

CKE1

147

REGE

22

СВ1

106

CBS

64

VSS

148

VSS

23

VSS

107

VSS

65

DQ21

149

DQ53

24

СВ8

108

CB12

66

DQ22

150

DQ54

25

СВ9

109

CB13

67

DQ23

151

DQ55

26

VCC

110

VCC

68

VSS

152

VSS

27

we#

111

CAS#

69

DQ24

153

DQ56

28

DQMBO

112

DQMB4

70

DQ25

154

DQ57

29

DQMB1

113

DQMB5

71

DQ26

155

DQ58

30

S0#

114

S1#

72

DQ27

156

DQ59

31

DU2

115

RAS#

73

VCC

157

VCC

32

VSS

116

VSS

74

DQ28

158

DQ60

33

АО

117

A1

75

DQ29

159

DQ61

34

A2

118

A3

76

DQ30

160

DQ62

35

A4

119

AS

77

DQ31

161

DQ63

36

A6

120

A7

78

VSS

162

VSS

37

AS

121

A9

79

CK2

163

CK3

38

АЮ(АР)

122

BAO

80

NC1

164

NC

39

ВА1

123

A11

81

WP

165

SAO

40

VCC

124

VCC

82

SDA

166

SA1

41

VCC

125

CK1

83

SCL

167

SA2

42

СКО

126

A12

84

VCC

168

VCC

1 NC — не подключен

2 DU-н

it использовать!

<


Tvl. Динамическая память

В модулях, начиная со второго поколения, применена последовательная идентифи­кация параметров на двухпроводном интерфейсе (PC) для чтения атрибутов (иден­тификации) из специальной конфигурационной памяти (обычно EEPROM 24С02), установленной на модулях.

168-pin Unbuffered DIMM — модули, у которых все цепи не буферизованы (од­ноименные адресные и управляющие сигналы микросхем соединены параллель­но и заводятся прямо с контактов модуля). Эти модули сильнее нагружают шину памяти, но позволяют добиться максимального быстродействия. Они предназ­начены для системных плат с небольшим (1-4) количеством слотов DIMM или имеющих шину памяти, буферизованную на плате. Модули выполняются на микросхемах DRAM или SDRAM. Высота модулей не превышает 51 мм. Объем 8-512 Мбайт.

168-pin Registered DIMM — модули синхронной памяти (SDRAM), у которых адресные и управляющие сигналы буферизованы регистрами, синхронизиру­емыми тактовыми импульсами системной шины. По виду этот тип DIMM легко отличим — кроме микросхем памяти и EEPROM на них установлено несколь­ко микросхем регистров-защелок. За счет регистров эти модули меньше нагру­жают шину памяти, что позволяет набирать больший объем памяти. Применение регистров повышает точность синхронизации и, следовательно, — тактовую час­тоту. Однако регистр вносит дополнительный такт задержки. Кроме того, на модулях может быть установлена микросхема ФАПЧ (PLL), формирующая тактовые .сигналы для микросхем памяти и регистров-защелок. Это делается для разгрузки линий синхронизации, причем в отличие от обычной буфериза­ции сигнала, вводящей задержку между входом и выходом, схема PLL обес­печивает синфазность выходных сигналов (их на выходе PLL несколько, каж­дый для своей группы микросхем) с опорным сигналом (линия СКО). Модули на 64 Мбайт могут быть и без схем PLL — в них линии СК[0:3] разводятся прямо на свои группы микросхем памяти. Регистры могут быть переведены в режим асинхронных буферов (только на 66 МГц), для чего на вход REGE нужно подать низкий уровень.


Для модулей на 66 МГц возможна замена регистров асинхрон­ными буферами.

Модули DIMM-184 предназначены для микросхем DDR SDRAM. По габаритам они аналогичны модулям DIMM-168, но у них имеются дополнительные вырезы по бокам (см. рис. 7.13, г) и отсутствует левый ключ. Разрядность — 64 или 72 бит (ЕСС), имеются варианты с регистрами в адресных и управляющих цепях ( Registered DDR SDRAM) и без них. Напряжение питания — 2,5 В. Идентификация после­довательная. Состав сигналов в основном повторяет набор для DIMM SDRAM, назначение выводов приведено табл. 7.16. Модули отличаются большим количе­ством стробирующиХ сигналов DQSx — по линии на каждые 4 бита данных (DQS8 и DQS17 используются для стробирования контрольных битов). Вход тактовой частоты только один, но дифференциальный — раздачу сигналов по микросхемам памяти и регистрам осуществляет микросхема DLL.

268

Глава 7. Интерфейсы электронной памяти

Таблица 7

.16. Назначение выводов DIMM-184 DDR SDRAM

Контакт

Цепь

Контакт

Цепь

Контакт

Цепь

Контакт

Цепь

1

VREF

47

DQS8

93

VSS

139

VSS

2

DQO

48

АО

94

DQ4

140

DQS17

3

VSS

49

CB2

95

DQ5

141

A10

4

DQ1

50

VSS

96

VDDQ

142

CB6

5

DQSO

51

СВЗ

97

DQS9

143

VDDQ

6

DQ2

52

BA1

98

DQ6

144

CB7

7

VDD

53

DQ32

99

DQ7

145

VSS

8

DQ3

54

VDDQ

100

VSS

146

DQ36

9

NC

55

DQ33

101

NC

147

DQ37

10

RESET*

56

DQS4

102

NC

148

VDD

11

VSS

57

DQ34

103

A13

149

DQS13

12

DQ8

58

VSS

104

VDDQ

150

DQ38

13

DQ9

59

BAO

105

DQ12

151

DQ39

14

DQS1

60

DQ35

106

DQ13

152

VSS

15

VDDQ

61

DQ40

107

DQS10

153

DQ44

16

DU

62

VDDQ

108

VDD

154

RAS#

17

DU

63

WE#

109

DQ14

155

DQ45

18

VSS

64

DQ41

110

DQ15

156

VDDQ

19

DQ10

65

CAS#

111

CKE1

157

S0#

20

DQ11

66

VSS

112

VDDQ

158

S1#

21

CKEO

67

DQS5

113

BA2

159

DQS14

22

VDDQ

68

DQ42

114

DQ20

160

VSS

23

DQ16

69

DQ43

115

A12

161

DQ46

24

DQ17

70

VDD

116

VSS

162

DQ47

25

DQS2

71

DU

117

DQ21

163

DU

26

VSS

72

DQ48

118

A11

164

VDDQ

27

A9

73

DQ49

119

DOS11

165

DQ52

28

DQ18

74

VSS

120

VDD

166

DQ53

29

A7

75

DU

121

DQ22

167

FETEN

30

VDDQ

76

DU

122

A8

168

VDD

31

DQ19

77

VDDQ

123

DQ23

169

DQS15

32

A5

78

DQS6

124

VSS

170

DQ54

33

DQ24

79

DQSO

125

A6

171

DQ55

34

VSS

80

DQ51

126

DQ28

172

VDDQ

35

DQ25

81

VSS

127

DQ29

173

NC

36

DQS3

82

VDDID

128

VDDQ

174

DQ60

37

A4

83

DQ56

129

DQS12

175

DQ61

38

VDD

84

DQ57

130

A3

176

VSS

39

DQ26

85

VDD

131

DQSO

177

DOS16

40

DQ27

86

DQS7

132

VSS

178

DQ62

41

A2

87

DQ58

133

DQ31

179

DQ63

42

VSS

88

DQ59

134

CB4

180

VDDQ

43

A1

89

VSS

135

CBS

181

SAO

44

CBO

90

WP

136

VDDQ

182

SA1

45

CB1

91

SDA

137

CKO

183

SA2

46

VDD

92

SCL

138

CKO#

184

VDDSPD

<


7.1. Динамическая память_____________________________________________ 269

Модули RIMM

Модули RIMM (Rambus Interface Memory Module), no форме похожие на обыч­ные модули памяти (рис. 7.14), специально предназначены для памяти RDRAM. У них 30-проводная шина проходит вдоль модуля слева направо, и на эту шину без ответвлений напаиваются микросхемы RDRAM в корпусах BGA. Сигналы интерфейса модуля (табл. 7.17) соответствуют сигналам канала Rambus, но в их названии имеется еще приставка L (Left) и R (Right) для левого и правого вывода шины соответственно. Модуль RIMM содержит до 16 микросхем RDRAM, которые всеми выводами (кроме двух) соединяются параллельно. Микросхемы памяти за­крыты пластиной радиатора. В отличие от SIMM и DIMM, у которых объем памя­ти кратен степени числа 2, модули RIMM могут иметь более равномерный ряд объемов — в канал RDRAM память можно добавлять хоть по одной микросхеме.



Рис. 7.14. Модули RIMM

Таблица 7.17. Назначение выводов RIMM



продолжение*?

270

Глава 7. Интерфейсы электронной памяти

Таблица 7.17 (продолжение)

Контакт

Цепь

Тип

Назначение

96

LCFMN

36

LSCK

50

RSCK

46

SCL

40,124

VREF

12

LCTMN

IRSL

14

LCTM

IRSL

98,16,100

LROW2...LROWO

IRSL

I RSL        Синхронизация (-) от ведущего устройства (для приема данных) Пороговый уровень сигналов RSL (1,8 В)

Синхронизация (-) к ведущему устройству (для передачи данных)

Синхронизация (+) к ведущему устройству (для передачи данных)

Шина строк (для управляющей и адресной информации)

18,102, 20,104,22           LCOL4... LCOLO   I RSL

114,30,112,28,110,         LOQB8...LOQBO  I/ORSL

26,108,24,106

120                                  LCMD                     ICMOS

Шина столбцов (для управляющей и адресной информации)

Шина данных В

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



83,167, 81,165,79,     RDQA8...RDQAO    I/O RSL 163,77,161,75

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

159

RCFM

IRSL

157

RCFMN

IRSL

73

RCTMN

IRSL

71

RCTM

IRSL

155,69,153

RROW2...RROWO

IRSL

Синхронизация (+) от ведущего устройства (для приема данных) Синхронизация (-) от ведущего устройства (для приема данных)

Синхронизация (-) к ведущему устройству (для передачи данных)

Синхронизация (+) к ведущему устройству (для передачи данных)

Шина строк (для управляющей и адресной информации)

67,151,65,148,63           RCOL4...RCOLO    I RSL

139,55,141,57,143,        RDQB8...RDQBO  I/ORSL

59,145,61,147

134                                 RCMD                     ICMOS

Шина столбцов (для управляющей и адресной информации)

Шина данных В

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

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

I CMOS      Синхронизация последовательной идентификации

271

7.1. Динамическая память

Контакт

Цепь

Тип

Назначение

47

SDA

I/O CMOS

Данные последовательной идентификации

131,130

SA1.SAO

ICMOS

Адрес последовательной идентификации

43,44,127,128

VT

Питание терминаторов (1,4 В)

Модули SO DIMM-72 pin

72 pin SO DIMM (Small-Outline-Dual-Inline-Memory Module) — малогабаритный (длина 2,35" — 60 мм) модуль с двусторонним 72-контактным разъемом, нечетные контакты расположены с фронтальной стороны, четные — с тыльной (рис. 7.15, табл. 7.18 и 7.19). Модули комплектуются микросхемами DRAM в корпусах TSOP, емкость 2-32 Мбайт, разрядность данных — 32 или 36 бит (с контролем парите­та). 36-битные модули отличаются только наличием дополнительных бит PQx. Память организована в виде двух двухбайтных слов с возможностью побайтного обращения и предназначена для двух- и четырехбайтных применений.


Информа­ ция об объеме, организации, адресации, быстродействии и регенерации передает­ся через семь линий параллельной идентификации:

¦     PD7 — регенерация: 1=стандартная, 0=расширенная или саморегенерация;

¦     PD6, PD5 - время доступа: 00=50 не, 10=70 не, 11=60 не;

¦     PD[4:1] — организация.



 

Рис. 7.15. Модули SO DIMM-72 pin

Таблица 7.18. Организация информационных и управляющих сигналов модулей SO DIMM-72

Линии CAS#

CASO#

CAS1#

CAS2#

CAS3#

Биты данных

DQ[0:7], PQ8

DQ[9:15],PQ17

DQ[18:25],PQ26

DQ[27:34], PQ35

и паритета

Выбор банка 0

RAS о#:     ;

RAS2#

Выбор банка 1

RAS1*

RAS3#

272

Глава 7.

Интерфейсы

электронной

памяти

Таблица 7.

19.

Назначение выводов SO DIMM-72 pin

Контакт

Цепь             Контакт           Цепь

1

VSS

2

DQO

3

DQ1

4

DQ2

5

DQ3

6

DQ4

7

DQ5

8

DQ6

9

DQ7

10

VCC

11

PD1

12

A0

13

А1

14

A2

15

A3

16

A4

17

А5

18

A6

19

А10

20'

PQ8

21

DQ9

22

DQ10

23

DQ11

24

DQ12

25

DQ13

26

DQ14

27

DQ15

28

A7

29

А11

30

VCC

31

А8

32

A9

33

RAS3*

34

RAS2#

35

DQ16

361

PQ17

37

DQ18

38

DQ19

39

VSS

40

CASO#

41

CAS2#

42

CAS3#

43

CAS1#

44

RASO#

45

RAS1#

46

A12

47

WE#

48

A13

49

DQ20

50

DQ21

51

DQ22

52

DQ23

53

DQ24

54

DQ25

55'

PQ26

56

DQ27

57

DQ28

58

DQ29

59

DQ31

60

DQ30

61

VCC

62

DQ32

63

DQ33

64

DQ34

65'

PQ35

66

PD2

4 67

PD3

68

PD4

69

PD5

70

PD6

71

PD7

72

VSS



' У 32-битных модулей контакт свободен.

Модули SO DIMM-144 pin

Модуль 144pin SO DIMM— малогабаритный модуль (длина 2,35" — 60 мм) с двусто­ронним 144-контактным разъемом (рис. 7.16, табл. 7.20), емкость 8-64 Мбайт, раз­рядность данных — 64 или 72 бит ЕСС. Модули обеспечивают побайтное обращение по сигналам CAS[0:7]#, сигнал RASO* выбирает банк 0, сигнал RAS1 # — банк 1 (при его наличии). Напряжение питания — 5 или 3,3 В, механический ключ напряжения питания расположен между контактами 59-60 и 61-62. Нечетные контакты находят-

7.1. Динамическая память

273

ся с фронтальной стороны, четные — с тыльной. Идентификация последовательная. Модули могут содержать микросхемы как DRAM, так и SDRAM, объем 8-256 Мбайт.

Таблица 7.20. Назначение выводов модулей SO DIMM-144 pin

Контакт

Цепь1

Контакт

Цепь1

Контакт

Цепь1

Контакт

Цепь1

1

VSS

2

VSS

71

RAS1#

72

NC

3

DQO

4

DQ32

73

OE

74

NC

5

DQ1

6

DQ33

75

VSS

76

VSS

7

DQ2

8

DQ34

77

CB2

78

CB6

9

DQ3

10

DQ35

79

CB3

80

CB7

11

VCC

12

VCC

81

VCC

82

VCC

13

DQ4

14

DQ36

83

DQ16

84

DQ48

15

DQ5

16

DQ37

85

DQ17

86

DQ49

17

DQ6

18

DQ38

87

DQ18

88

DQ50

19

DQ7

20

DQ39

89

DQ19

90

DQ51

21

VSS

22

VSS

91

VSS

92

VSS

23

CASO#/

24

CAS4#/

93

DQ20

94

DQ52

DQMBO

DQMB4

25

CAS1#/

26

CAS5#/

95

DQ21

96

DQ53

DQMB1

DQMB5

27

VCC

28

VCC

97

DQ22

98

DQ54

29

АО

30

A3

99

DQ23

100

DQ55

31

A1

32

A4

101

VCC

102

VCC

33

A2

34

A5

103

A6

104

A7

35

VSS

36

VSS

105

A8

106

A11

37

DQ8

38

DQ40

107

VSS

108

VSS

39

DQ9

40

DQ41

109

A9

110

A12

41

DQ10

42

DQ42

111

A10

112

A13

43

DQ11

44

DQ43

113

VCC

114

VCC

45

VCC

46

VCC

115

CAS2#/

116

CAS6#/

DQMB1

DQMB6

47

DQ12

48

DQ44

117

CAS3#/

118

CAS7#/

DQMB3

DQMB7

49

DQ13

50

DQ45

119

VSS

120

VSS

51

DQ14

52

DQ46

121

DQ24

122

DQ56

53

DQ15

54

DQ47

123

DQ25

124

DQ57

55

VSS

56

VSS

125

DQ26

126

DQ58

57

CBO

58

CB4

127

DQ27

128

DQ59

59

CB1

60

CBS

129

VCC

130

VCC

Ключ напряжения питания

131

DQ28

132

DQ60

Ключ напряжения питания

133

DQ29

134

DQ61

61

DU/CLKO

62

DU/CKEO

135

DQ30

136

DQ62

63

VCC

64

VCC

137

DQ31

138

DQ63

65

DU/RAS*

66

DU/CAS#

139

VSS

140

VSS

67

WE#

68

NC/CKE1

141

SDA

142

SCL

69

RASO#/SO#

70

NC/A12

143

VCC

144

VCC

1 DRAM/ SDRAM

274

Глава 7. Интерфейсы электронной памяти

60.0



Рис. 7.16. Модули SO DIMM-144 pin

Модули DRAM cards-88 pin

Модули 88 pin DRAM cards — миниатюрные модули (3,37"х2,13"хО,13" — 85,5x х54хЗ,3 мм) в пластиковом корпусе размером с карту PCMCIA (PC Card). Име­ют 88-контактный разъем (не PCMCIA!), разрядность 18, 32 или 36 бит, емкость 2-36 Мбайт. Комплектуются микросхемами DRAM в корпусах TSOP. Информа­ция о быстродействии и объеме передается по восьми выводам. Внутренняя архи­тектура близка к SIMM-72. Напряжение питания — 5 или 3,3 В. Применяются в малогабаритных компьютерах, легко устанавливаются и снимаются.


Мосты PCI


Для соединения шины PCI с другими шинами и между собой применяются спе­циальные аппаратные средства—мосты PCI (PCIBridge). Главный мост (Host Bridge) используется для подключения PCI к системной шине (системной памяти и про­цессору), одноранговый мост (Peer-to-PeerBridge) — для соединения двух шин PCI.

Соединения нескольких шин PCI характерно для серверов — таким образом уве­личивают число подключаемых устройств. Мосты образуют иерархию шин, на вершине которой находится главная шина с нулевым номером. Главный мост чип­сета системной платы может соединять центр (процессор и память) с нескольки­ми равноранговыми шинами PCI, из которых условно главной будет шина с нуле­вым номером. Для подключения шин PCMCIA, CardBus, MCA, ISA/EISA, X-Bus и LPC используются специальные мосты, входящие в чипсеты системных плат или же являющиеся отдельными устройствами PCI (микросхемами). Мосты выполня­ют преобразование интерфейсов соединяемых ими шин, синхронизацию и буфе­ризацию обменов данных. Мосты (включая и мосты PCI-PCI) допускают различие частот синхронизации на соединяемых ими шинах.

Каждый мост программируется — ему указываются диапазоны адресов в простран­ствах памяти и ввода-вывода, отведенные устройствам его шин. Если адрес ЦУ текущей транзакции на одной шине (стороне) моста относится к шине противо­положной стороны, мост перенаправляет транзакцию на соответствующую шину и обеспечивает согласование протоколов шин. Таким образом, совокупность мостов PCI выполняет маршрутизацию (routing) обращений по связанным шинам. Счи­тается, что устройство с конкретным адресом может присутствовать только на одной из шин, а на какой именно, «знают» запрограммированные мосты. Решать задачу маршрутизации призван также сигнал DEVSEL*. Обращения, не востребован­ные абонентами PCI, могут быть перенаправлены, например, на шину ISA/EISA.

С мостами связаны понятия позитивного и субтрактивного декодирования адре­сов. Рядовые агенты PCI (устройства и мосты) отзываются только на обращения по адресам, принадлежащим областям, описанным в их конфигурационном про­странстве (через базовые адреса и диапазоны памяти или ввода-вывода).
Такой способ декодирования называется позитивным. Мост с позитивным декодирова­нием (positive decoding) пропускает через себя только обращения, принадлежащие определенному списку, заданному в его конфигурационных регистрах. Мост с суб-трактивным декодированием (subtractive decoding) пропускает через себя обраще­ния, не относящиеся к другим устройствам. Его области прозрачности формируют­ся вычитанием (откуда и название) из общего пространства областей, описанных списком. Возможность субтрактивного декодирования имеется только у мостов определенного типа, и она является дополнением к позитивному декодированию.

6.2. Шина PCI_______________________________________________________ 199

Позитивное и субтрактивное декодирование относится только к обращениям, направленным в пространства памяти и ввода-вывода. Конфигурационные обраще­ния маршрутизируются с помощью номера шины, передаваемого в циклах типа 1 (см. п. 6.2.11): каждый мост «знает» номера всех шин, его окружающих. На каждой шине PCI должно присутствовать центральное устройство, выполня­ющее следующие функции:

¦ централизованный арбитраж — прием сигналов запроса REQx# от ведущих

устройств шины и предоставление им права на управление шиной сигналами

GNTx#;

¦     «подтягивание» управляющих сигналов к высокому уровню;

¦     субтрактивное декодирование адресов;

¦     генерация конфигурационных и специальных циклов по командам процессора

(с формированием индивидуальных сигналов IDSEL к адресуемому устройству PCI);

¦     формирование сигнала REQ64* в момент окончания сброса в качестве призна­

ка 64-битной шины (если она таковая).

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



Одной из особенностей применения шины PCI с ее мостовыми соединениями является возможность действительно одновременного выполнения более одного обмена данными по непересекающимся путям — Concurrent PCI Transferring или PCI Concurrency. Например, во время взаимодействия процессора с памятью ве­дущее устройство шины PCI может обмениваться данными с другим устройством PCI. Этот пример одновременности обмена скорее теоретический, поскольку ве­дущее устройство шины PCI, как правило, обменивается данными с системной памятью. Более интересный случай — обмен графического адаптера, подключен­ного к порту AGP (родственнику PCI, см. п. 6.3), с памятью одновременно с обме­ном процессора с устройством PCI или, наоборот, загрузка данных процессором в графический адаптер одновременно с обменом между ведущим устройством шины PCI и системной памятью. Одновременность требует довольно сложной логики централизованного арбитража запросов всех агентов системы и различных ухищрений в буферизации данных. Одновременность реализуется не всеми чип­сетами (в описаниях она всегда специально подчеркивается) и может быть запре­щена настройками CMOS Setup.

Для экономии полосы пропускания шины (уменьшения числа бесполезно заня­тых тактов) при обращениях к устройствам медленных шин (например, ISA) мост может выполнять отложенные транзакции (delayed transaction). Работает этот ме­ханизм следующим образом. Инициатор, расположенный на «быстрой» шине (это может быть и главный мост), обращается к ЦУ на медленной шине, выставляя адрес и команду, а в командах записи еще и данные. Мост сохраняет эту информа-

200_____________________________________ Глава 6. Шины и карты расширения

цию в своих внутренних регистрах и «от имени ЦУ» вводит сигнал STOP* (пре­кращение типа «повтор»), что вынуждает инициатор быстро освободить шину. Тем временем мост выполняет транзакцию с настоящим ЦУ и сохраняет у себя результат ее выполнения (для команд чтения это будут данные). Инициатор, полу­чивший ответ «повтор», вынужден снова начать точно ту же транзакцию, и теперь на нее мост быстро ответит истинным результатом, полученным от ЦУ.


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

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

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


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

6.2. Шина PCI_______________________________________________________ 201

Мосты могут преобразовывать транслируемые ими транзакции записи в память с целью оптимизации пропускной способности шины. Так, несколько последова­тельных транзакций записи могут объединяться в одну пакетную, в которой лиш­ние записи могут блокироваться с помощью сигналов разрешения байтов. Напри­мер, последовательность одиночных записей двойных слов по адресам 0, 4, Ch может быть скомбинирована (write combining) в один пакет с начальным адресом О, а во время третьей фазы данных (когда предполагается не требуемый адрес 8) все сигналы С/ВЕ[3:0]# пассивны. Записи отдельных байтов в определенных случаях могут быть объединены (byte merging) в одну транзакцию. Так, например, последо­вательность записей байтов по адресам 3, 1, 0 и 2 может быть объединена в одну запись двойного слова, поскольку эти байты принадлежат одному адресуемому двойному слову. Комбинирование и объединение могут работать независимо (объединенные транзакции могут комбинироваться), однако эти преобразования не изменяют порядок следования физических записей в устройства. Наличие этих возможностей не обязательно — оно зависит от «ловкости» мостов. Цель преоб­разований — сократить число отдельных транзакций (каждая имеет по крайней мере одну «лишнюю» фазу адреса) и, по возможности, фаз данных.


Устройства PCI должны нормально отрабатывать комбинирование записей — если устройство не допускает комбинирования, оно неправильно спроектировано. Если устройство не допускает объединения байтов, то оно в описании своей памяти должно иметь обнуленным бит Prefetchable.

С мостами PCI связано понятие VGA Palette Snooping — слежение за записью в палитры VGA, являющееся исключением из правила однозначной маршрутиза­ции обращений к памяти и вводу-выводу. Графическая карта в компьютере с ши­ной PCI обычно устанавливается в эту шину или в порт AGP, что логически экви­валентно установке в шину PCI. На VGA-карте имеются регистры палитр (Palette Registers), традиционно приписанные к пространству ввода-вывода. Если графи­ческая система содержит еще и карту смешения сигналов графического адаптера с сигналом «живого видео», перехватывая двоичную информацию о цвете теку­щего пиксела по шине VESA Feature Connector (снимаемую до регистра палитр), цветовая гамма будет определяться регистром палитр, размещенным на этой до­полнительной карте. Возникает ситуация, когда операция записи в регистр палитр должна отрабатываться одновременно и в графическом адаптере (на шине PCI или AGP), и в карте видеорасширения, которая может размещаться даже на другой шине (в том числе и ISA). В CMOS Setup может присутствовать параметр PCI VGA Palette Snoop. При его включении запись в порты ввода-вывода по адресу регистра палитр будет вызывать транзакцию не только на той шине, на которой установлен графический адаптер, но и на других шинах. Чтение же по этим адресам будет выполняться только с самим графическим адаптером. Реализация может возла­гаться на графическую карту PCI. Для этого она во время записи в регистр палитр фиксирует данные, но сигналы квитирования DEVSEL* и TRDY* не вырабатывает, в результате мост распространяет этот неопознанный запрос на шину ISA. В других реализациях мосту явно указывают на данное исключение, и он сам распростра­няет запись в регистры палитр на другие шины.

202_____________________________________ Глава 6. Шины и карты расширения


MultiMediaCard и Sequre Digital


Карты MultiMediaCard (MMC) и Secure Digital (SD) еще компактнее — их размер в плане всего 32x24 мм при толщине 1,4 мм у ММС и 2,1 мм у SD. Эти карты име­ют краевой печатный разъем, 7-контактый у ММС и 9-контактный у SD. У карт ММС на разъем выводятся питание, управляющий сигнал, сигнал синхронизации и двухразрядная шина данных. У карт SD за счет пары дополнительных контак­тов шина данных расширена до 4 бит, что позволяет повысить скорость обмена. Конструктивно карты SD сделаны так, что устройства, работающие с ними, физи­чески могут работать и с картами ММС, но не наоборот (в тонкий слот ММС более толстую карту SD и не вставить). Логическая совместимость должна обеспечи­ваться программным обеспечением хоста (устройства, в которое вставляют кар­ту). Карты ММС и SD предназначены примерно для того же спектра устройств, что и CompactFlash; к ним стоит добавить и электронные книги (eBook). Однако назначение этих карт различно: ММС предназначены для широкого распростране­ния данных — музыки, игр, электронных книг, — и они являются довольно дешевы­ми носителями информации. Карты SD предназначены для безопасного (в смы­сле конфиденциальности) распространения информации, и они гораздо дороже. Карты SD разработаны альянсом трех компаний — Toshiba, Matsushita (более из­вестная по торговой марке Panasonic) и SanDisk, которые организовали ассоциа­цию SDA (Secure Digital Association), выпускающую спецификации, принятые уже сотнями фирм во всем мире. Членство в ассоциации платное и дорогостоящее; по вполне понятным причинам технические детали SD широко не освещаются (ина­че грош цена провозглашаемой безопасности).

Карты SD (рис. 9.9) имеют размер 32x24x2,1 мм; справа на рисунке виден переклю­чатель защиты записи (WP), предохраняющий от случайного стирания. На печат­ной плате карты SD смонтирована флэш-память структуры NAND, SD-контроллер и вспомогательные компоненты. 9-контактный разъем карт SD (табл. 9.16) по выво­дам 1-7 совпадает с картами ММС.
Карты SD допускают «горячее» подключение/ отключение. Конструкция коннектора рассчитана на 10 000 циклов вставки-изъятия. Карты выдерживают до 200 000-300 000 циклов записи в каждый блок флэш-памя-

400________________________________ Глава 9. Интерфейсы устройств хранения

ти и падение на пол с высоты 3 м. Они устойчивы и к жаре, и к морозу. Скорость передачи данных у первых карт SD — 2 Мбайт/с, объем — 8-512 Мбайт; в 2002 г. планируется подъем скорость до 10 Мбайт/с и объем до 1 Гбайт, а в 2004 — до 20 Мбайт/с и 4 Гбайт. Начальная удельная цена хранения высока — $3 за 1 Мбайт, но постепенно она должна снизиться до уровня $1 за 1 Мбайт (что тоже немало!) и ниже.



Рис. 9.9. Карта памяти SD (вид сзади)

Для карт SD разработаны (и разрабатываются) спецификации форматов данных на трех уровнях:

¦ физический уровень описывает перезаписываемые карты (SD-Rewritable) и

постоянную память (SD-Read Only);

¦     уровень файловой системы использует стандарт ISO 9293;

¦     прикладной уровень учитывает специфику атрибутов различных типов содер­

жимого — музыки (SD-Audio), изображений (SD-Picture), речи (SD-Voice),

видео (SD-Video) и других.

Таблица 9.16. Назначение контактов карт ММС и SD

Контакт Цепь                  Контакт  Цепь

1

Command

6

Data O

2

Vss

7

Datal

3

Vdd

8

Data 2

4

Clock

9

Data3

5

Vss

На всех уровнях действуют средства безопасности (Security), являющиеся основ­ным «коньком» SD. В SD используются технологии обеспечения безопасности CPRM (Content Protection for Recordable Media — защита содержимого записы­ваемых носителей) — стандарта шифрования и сертификации/аутентификации, разработанного и лицензируемого фирмами IBM, Intel, Matsushita (Panasonic) и Toshiba. Карты SD-Audio отвечают требованиям SDMI1 (Secure Digital Music Initiative) к портативным устройствам.

SDMI — коалиция производителей аудиоаппаратуры RIAA (Recording Industry Association of America) и компаний музыкальной индустрии (включающей ведущие звукозаписывающие фирмы UMG, ВМС, EMI, WMG, SME), направленная на защиту авторских прав на музыкальные произведения.



9.3. Интерфейсы и конструктивы твердотельных носителей информации       401

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

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

Совместимость SD и ММС весьма ограничена. Хосты SD-карт совместимы с кар­тами ММС на физическом уровне; в картах ММС и SD используется одна и та же структура таблицы размещения файлов (FAT), чем обеспечивается совместимость и на уровне записи/чтения файлов. Однако на прикладном уровне программные спецификации «начинки» этих карт могут и различаться. Так, например, в SD МРЗ-плейеры нельзя вставлять карты ММС — они используют различные фор­маты данных. Данные общего назначения (не секретные) могут быть перенесены с ММС на SD, но перенос секретных данных хосты не допустят (если хост — не компьютер со взломанным ПО). Хосты ММС-карт с SD-картами несовместимы даже чисто физически (эти карты в слот для ММС не влезут по толщине).

Кроме карт SD-памяти, планируется выпуск и карт ввода-вывода (SD I/O card). В первую очередь рассматривается интерфейс Bluetooth, позволяющий быстро и без проводов синхронизировать данные устройств, имеющих слот SD, друг с дру­гом и с устройствами, уже имеющими этот интерфейс.


Мышь Bus Mouse


Bus Mouse (шинная мышь) — вариант, применявшийся в первых мышах. Здесь мышь содержит только датчики и кнопки, а обработка их сигналов производит­ся на специализированной плате адаптера (обычно ISA). Кабель 9-проводный, разъем специальный (рис. 8.4), хотя на первый взгляд и напоминающий разъем PS/2-Mouse. Главный недостаток такой системы заключается в том, что адаптер занимает слот системной шины, адреса ввода-вывода и линию запроса прерыва­ния. Иногда встречались мультипортовые карты ISA (COM-, LPT- и GAME-nop-ты), на которых установлен и адаптер Bus Mouse. Поскольку компания Microsoft одна из первых выпустила такую мышь, снабдив ее своим логотипом, с понятием Bus Mouse иногда отождествляют и MS-Mouse, хотя последние могут иметь лю­бой из трех видов интерфейсов.

 Рис. 8.4. Разъем Bus Mouse

320_________ Глава 8. Специализированные интерфейсы периферийных устройств



зуется тем же контроллером клавиатуры


PS/2-Mouse — мышь, появившаяся с компьютерами PS/2. Ее интерфейс и разъ­ем 6-pin mini-DIN аналогичен клавиатурному (см. рис. 8.1) и, как правило, реали­ зуется тем же контроллером клавиатуры 8242 (см. п. 8.1.2). Адаптер и разъем PS/ 2-Mouse устанавливаются на многих современных системных платах (рис. 8.3). Контроллер мыши PS/2 может быть также на карте расширения (ISA) и занимать дополнительные адреса в пространстве ввода-вывода. С мышью PS/2 связь дву­сторонняя: процессор может посылать контроллеру 8242 специальные команды,

8.2. Интерфейсы мыши                                                   _________________________ 319

но, в отличие от интерфейса клавиатуры, перед записью в порт 60h каждого «мыши­ного» байта (и команды, и ее параметра) в порт 64h должен записываться код D4h.



Рис. 8.3. Разъем PS/2-Mouse

Мышь может работать в одном из двух режимов. В потоковом режиме (stream mode) мышь посылает данные по любому изменению состояния; в режиме опроса (remote mode) мышь передает данные только по запросу процессора. Есть еще диагностический режим (wrap mode), в котором мышь возвращает эхом данные, посылаемые ей контроллером. По приему пакета от мыши контроллер устанавли­вает флаг Mouse_OBF и вырабатывает прерывание IRQ12, если оно не запрещено командным байтом 8242.

Устройства-указатели с интерфейсом PS/2 (мышь PS/2) имеют поддержку BIOS, обеспечивающую настройку параметров мыши (посылку вышеперечисленных команд). Собственно драйвер мыши (обработчик прерывания по вектору 74h от запроса IRQ12), обрабатывающий ее информационные посылки, входит лишь в состав ОС или загружается отдельно. Поддержка мыши вызывается через BIOS Int 15h с кодами функций C200-C209h.


Неисправности и тестирование параллельных портов


Тестирование параллельных портов разумно начинать с проверки их наличия в сис­теме. Список адресов установленных портов появляется в таблице, выводимой BIOS на экран перед загрузкой ОС. Список можно посмотреть и с помощью те­стовых программ или прямо в BIOS Data Area с помощью отладчика.

46

Глава 1. Параллельный интерфейс — LPT-nopr

Если BIOS обнаруживает меньше портов, чем установлено физически, скорее всего, двум портам присвоен один и тот же адрес. При этом работоспособность ни одного из конфликтующих портов не гарантируется: они будут одновремен­но выводить сигналы, но при чтении регистра состояния конфликт на шине, скорее всего, приведет к искажению данных. Программное тестирование порта без диагностической заглушки (Loop Back) не покажет ошибок, поскольку при этом читаются данные выходных регистров, а они у всех конфликтующих (по от­дельности исправных портов) совпадут. Именно такое тестирование производит BIOS при проверке на наличие портов. Разбираться с такой ситуацией следу­ет, последовательно устанавливая порты и наблюдая за адресами, появляющи­мися в списке.

Если физически установлен только один порт, a BIOS его не обнаруживает, то либо порт отключен при конфигурировании, либо он вышел из строя (скорее всего из-за нарушений правил подключения). Если вам везет, неисправность устраняется «передергиванием» платы в слоте — там иногда возникают пробле­мы с контактами.

Наблюдаются и такие «чудеса» — при «теплой» перезагрузке DOS после Win­dows 95 порт не виден (и приложения не могут печатать из MS-DOS). Однако после повторной перезагрузки DOS порт оказывается на месте. С этим явлением легче смириться, чем бороться.

Тестирование портов с помощью диагностических программ позволяет проверить выходные регистры, а при использовании специальных заглушек — и входные линии. Поскольку количество выходных линий порта (12) и входных (5) различ­но, то полная проверка порта с помощью пассивной заглушки принципиально невозможна.
Разные программы тестирования требуют применения разных за­глушек (рис. 1.8).



Рис. 1.8. Схема заглушки для тестирования LPT-порта: а — для Norton Diagnostics  б -для Checklt,

Большинство неприятностей при работе с LPT-портами доставляют разъемы и кабели. Для проверки порта, кабеля и принтера можно воспользоваться спе­циальными тестами из популярных диагностических программ (Checklt, PCCheck

1.8. Неисправности и тестирование параллельных портов________________      47

и т. п.). Можно попытаться просто вывести на принтер какой-либо символь­ный файл.

¦     Если вывод файла с точки зрения DOS проходит (копирование файла на

устройство с именем LPTn или PRN совершается быстро и успешно), а принтер (исправный) не напечатал ни одного символа — скорее всего, это обрыв (не­ контакт в разъеме) цепи Strobe*.

¦     Если принтер находится в состоянии On Line, а появляется сообщение о его неготовности, причину следует искать в линии Busy.

¦     Если принтер, подключенный к порту, в стандартном режиме (SPP) печатает нормально, а при переходе в режим ЕСР начинаются сбои, следует проверить кабель — соответствует ли он требованиям IEEE 1284 (см. выше). Дешевые кабели с неперевитыми проводами нормально работают на скоростях 50-100 Кбайт/с, но при скорости 1-2 Мбайт/с, обеспечиваемой ЕСР, имеют пол­ное право не работать, особенно при длине более 2 м.

¦     Если при установке драйвера PnP-принтера появилось сообщение о необхо­

димости применения «двунаправленного кабеля», проверьте наличие связи

контакта 17 разъема DB-25 с контактом 36 разъема Centronics. Хотя эта связь изначально предусматривалась, в ряде кабелей она отсутствует.

¦     Если принтер искажает информацию при печати, возможен обрыв (или замы­

кание) линий данных. В этом случае удобно воспользоваться файлом, содер­

жащим последовательность кодов всех печатных символов. Если файл печата­



ется с повтором некоторых символов или их групп, по периодичности повтора

можно легко вычислить оборванный провод данных интерфейса. Этот же файл

удобно использовать для проверки аппаратной русификации принтера.

Аппаратные прерывания от LPT-порта используются не всегда. Даже DOS-програм­ма фоновой печати PRINT работает с портом по опросу состояния, а ее обслужива­ющий процесс запускается по прерыванию от таймера. Поэтому неисправности, связанные с цепью прерывания от порта, проявляются не часто. Однако по-насто­ящему многозадачные ОС (например, NetWare) стараются работать с портом по прерываниям. Протестировать линию прерывания можно, только подключив к порту ПУ или заглушку. Если к порту с неисправным каналом прерывания под­ключить адаптер локальной сети, то он, возможно, будет работать, но с очень низ­кой скоростью: на любой запрос ответ будет приходить с задержкой в десятки се­кунд — принятый из адаптера пакет будет приниматься не по прерыванию (сразу по приходу), а по внешнему тайм-ауту.


Неисправности и тестирование СОМ-портов


Неполадки с СОМ-портами случаются (выявляются) при установке новых пор­тов или неудачном подключении внешних устройств.



Общие вопросы электропитания и заземления


Рассмотрим правила подключения к питающей сети с точки зрения безопасности как человека, так и компьютера.

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

506

Глава 13. Интерфейсы питания, заземление и гальваническая развязка

атации). При занулении необходимо быть уверенным в том, что «нуль» не станет фазой, если кто-нибудь вдруг перевернет вилку питания. Если же «земляной» провод устройства никуда не подключать, на корпусе устройства появится напряже­ние порядка ПО В переменного тока (рис. 13.2): конденсаторы фильтра работают как емкостной делителе напряжения, и поскольку их емкость одинакова, 220 В делится пополам.

Рис. 13.1. Входные цепи блока питания

-220 В   О

Рис. 13.2. Образование потенциала на корпусе компьютера

Конечно, мощность этого «источника» ограничена — ток короткого замыкания 1КЗ на землю составляет от единиц до десятков миллиампер, причем чем мощнее блок питания, тем больше емкость конденсаторов фильтра:

Здесь иПит=220 В, F=50 Гц — частота питающей сети, С — емкость конденсатора фильтра. При емкости конденсатора С=0,01 мкФ этот ток будет около 0,7 мА. Заметим, что здесь мы учитываем лишь частоту питающей сети. Для высокочас­тотных (импульсных) помех, приходящих как по сети, так и от входного преобра­зователя блока питания, те же конденсаторы представляют собой гораздо мень­шее сопротивление, и ток короткого замыкания может возрастать во много раз.

13.1. Общие вопросы электропитания и заземления

507

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

Посмотрим, что происходит при соединении двух устройстй (компьютера и прин­тера) интерфейсным кабелем. Общий провод интерфейсов последовательных и параллельных портов связан со «схемной землей» и корпусом устройства. Если соединяемые устройства надежно заземлены (занулены) через отдельный провод на общий контур (рис. 13.3), проблемы разности потенциалов не возникает.



Рис. 13.3. Правильное подключение ПУ

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

Уравнивающий ток через общий провод интерфейса IINT

можно оценить по сле­дующей формуле:



Здесь ENUL = Inul*Rnul; Inul = P/220, RNUL — сопротивление нулевого провода и со­единительных контактов розеток, RINT — сопротивление общего провода интер­фейса, Р — мощность, потребляемая устройствами, расположенными на рисунке справа (Р = Р2 + РЗ). Поскольку обычно сопротивление интерфейсного кабеля больше питающего, через общий провод интерфейса потечет ток, существенно меньший, чем силовой. Но при нарушении контакта в нулевом проводе питания

508

Глава 13. Интерфейсы питания, заземление и гальваническая развязка

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





INUL

 Рис. 13.4. Появление разности потенциалов при двухпроводном кабеле питания

Если оба соединяемых устройства не заземлены, в случае их питания от одной фазы сети разность потенциалов между ними будет небольшой (вызванной раз­бросом емкостей конденсаторов в разных фильтрах). Уравнивающий ток через общий провод интерфейса будет мал, и разность потенциалов между схемными землями устройств будет тоже мала. Но не следует забывать о безопасности че­ловека. Если незаземленные устройства подключены к разным фазам, разность потенциалов между их несоединенными корпусами будет порядка 190 В, при этом уравнивающий ток через интерфейс может достигать десятка миллиампер. Когда все соединения/разъединения выполняются при отключенном питании, для интерфейсных схем такая ситуация почти безопасна. Но при коммутациях в условиях включенного питания возможны неприятности: если контакты обще­го провода интерфейса соединяются позже (разъединяются раньше) сигнальных, разность потенциалов между схемными землями прикладывается к сигнальным цепям и они выгорают. Самый тяжелый случай — соединение заземленного устройства с незаземленным (рис. 13.5), особенно когда у последнего мощный блок питания.

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

13.1. Общие вопросы электропитания и заземления

509



Рис. 13.5. Подключение незаземленного устройства

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


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

ВНИМАНИЕ---------------------------------------------------------------------------------

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

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

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

510_______ Глава 13. Интерфейсы питания, заземление и гальваническая развязка



Рис. 13.6.


Положение «нуля», «фазы» и «земли»: а — на питающей розетке, б — на выходном гнезде шнура питания

Проблемы разводки электропитания и заземления стоят особенно остро в локаль­ных сетях, поскольку здесь, как правило, имеется большое количество устройств (компьютеров и коммуникационного оборудования), соединенных между собой интерфейсными кабелями и значительно разнесенных в пространстве (локаль­ная сеть может охватывать и многоэтажное здание). При заземленных корпусах устройств, сильно разнесенных территориально, между их корпусами будет раз­ность потенциалов, обусловленная падением напряжения на заземляющих прово­дах. Эта разность будет особенно ощутимой, если разводка питания и заземления выполнена двухпроводным кабелем (см. рис. 13.4). В сетях на коаксиальном кабеле приходится обеспечивать надежное заземление кабельного сегмента (причем толь­ко в одной точке!); нарушение правил заземления коаксиала и соединяемых ком­пьютеров может приводить к сбоям и выгоранию сетевых адаптеров. Коаксиаль­ный кабель и разъемы не должны иметь контактов с металлическими частями корпусов аппаратуры. В сетях на неэкранированной витой паре (UTP) требуется лишь правильно (с заземлением) запитать все компьютеры и коммуникационное оборудование. Использование экранированной витой пары (STP) вносит допол­нительные проблемы с соединением и заземлением экранов. Подробнее о реше­нии проблем питания и заземления в сетях см. в [3].


Обычная передача данных


Для передачи данных от исполнителя к задатчику предназначены циклы чте­ния ячейки памяти или порта ввода-вывода, для передачи данных от задатчика к исполнителю — циклы записи ячейки памяти или порта ввода-вывода. В каждом цикле текущий (на время данного цикла) задатчик формирует адрес обращения и управляющие сигналы, а в циклах записи еще и данные на шине. Адресуемое устройство-исполнитель в соответствии с полученными управляющими сигнала­ми принимает (в цикле записи) или формирует (в цикле чтения) данные. Также оно может, при необходимости, управлять длительностью цикла и разрядностью передачи. Обобщенные временные диаграммы циклов чтения или записи памяти или ввода-вывода приведены на рис. 6.2. Здесь условный сигнал CMD* изобра­жает один из следующих сигналов:

¦ SMEMR#, MEMR# — в цикле чтения памяти;

¦     SMEMW#, MEMW# — в цикле записи памяти;

¦     IOR# — в цикле чтения порта ввода-вывода;

¦     IOW# — в цикле записи порта ввода-вывода.

В каждом из рассматриваемых циклов активными (с низким уровнем) могут быть только сигналы лишь из одной строки данного списка, и во время всего цикла сиг­нал AEN имеет низкий уровень. Цикл прямого доступа к памяти, в котором это пра­вило не соблюдается, рассмотрен ниже, и в таком цикле сигнал AEN будет иметь высо­кий уровень. Сигналы SMEMR* и SMEMW* вырабатываются из сигналов MEMR# и MEMW# соответственно, когда адрес принадлежит диапазону О-FFFFFh. Поэтому сигналы SMEMR* и SMEMW* задержаны относительно MEMR# и MEMW* на 5-10 не.

152

Глава 6. Шины и карты расширения

Рис. 6.2. Временные диаграммы циклов чтения или записи на шине ISA

В начале каждого цикла контроллер шины устанавливает адрес обращения: на линиях SA[19:0] и SBHE# действительный адрес сохраняется на время всего теку­щего цикла; на линиях 1_А[23:17] адрес действителен только в начале цикла, так что требуется его «защелкивание». Каждое устройство имеет дешифратор адре­са — комбинационную схему, срабатывающую только тогда, когда на шине при­сутствует адрес, относящийся к данному устройству.
В фазе адресации устройства еще «не знают», к какому из пространств (памяти или ввода-вывода) относится выставленный адрес. Но дешифраторы адресов уже срабатывают, и, когда в сле­дующей фазе шина управления сообщает тип операции, адресуемое устройство уже оказывается готовым к ее исполнению. Если устройство использует линии LA[23:17] (они нужны лишь для обращений к памяти выше границы FFFFFh), то они на дешифратор адреса должны проходить через регистр-защелку, «прозрач­ный» во время действия сигнала BALE и фиксирующий состояние выходов по его спаду. Это позволяет дешифратору, всегда вносящему некоторую задержку, начи­нать работу раньше, чем поступит управляющий сигнал чтения или записи. При обращении к портам ввода-вывода сигналы 1_А[32:17] не используются.

Если устройство имеет более одного регистра (ячейки), то для выбора конкретно­го регистра (ячейки) ему требуется несколько линий адреса. Как правило, стар­шие биты шины адреса поступают на вход дешифраторов адреса, формирующих сигналы выборки устройств, а младшие биты — на адресные входы самих устройств. Тогда каждое устройство в пространстве будет занимать наиболее компактную область смежных адресов размером в 2П байт, где п — номер младшей линии адре­са, поступающей на дешифратор. Из них реально необходимы 2Ш адресов, где m — номер самой старшей линии адреса, участвующей в выборе регистра устройства. В идеале должно быть n=m+l: при большем значении п отведенное (по дешиф-

6.1. Шины ISA, EISA и PC/104_______________________________ 153

ратору) пространство адресов не будет использовано полностью и регистры уст­ройства будут повторяться в отведенной области 2n"m"1

раз, то есть у них появятся адреса-псевдонимы (alias). Адреса-псевдонимы будут отличаться от истинного адреса (минимального из всех псевдонимов) на Kx2m+1, где К — целое число. Мень­шее значение п недопустимо, поскольку тогда не все регистры устройства будут доступны задатчику. В принципе можно использовать дешифратор адреса, сра­батывающий только на какой-то части адресов из области 2П (не кратной степени двойки), если устройству требуется «неудобное» количество регистров.


Однако на практике « фигурное выпиливание» областей из пространства адресов обычно не делают, так что часть адресов может пропадать бесполезно.

Разрядность данных в каждом цикле обращения определяется потребностями текущего задатчика и возможностями исполнителя. В IBM PC/XT и системная шина, и шина ISA были 8-разрядными, так что вопросов согласования разрядно­сти не возникало. В IBM PC/AT286 (и 386-SX) системная шина уже 16-разряд­ная, и в современных ПК с 32- и 64-разрядными системными шинами контроллер шины ISA является ее 16-разрядным задатчиком. На системной плате имеется «косой буфер», он же перестановщик байтов, который при необходимости транс­лирует данные с младшего байта шины на старшую или обратно. Логика управле­ния этим буфером использует сигналы SBHE#, SAO, IOCS16* и MEMCS16*. Под­держка 16-разрядных передач сообщается адресуемым исполнителем сигналами IOCS16* и MEMCS16* при срабатывании его дешифратора адреса. Сигнал IOCS16# влияет только на разрядность обращений к портам, MEMCS16* — к памяти. Все операции обмена (транзакции) начинаются задатчиком единообразно, поскольку он еще не «знает» возможностей исполнителя. Развитие событий зависит от наме­рений задатчика и полученных сигналов разрешения 16-битных передач. В чисто 16-разрядных машинах начальный адрес однозначно соответствует передаваемо­му байту или младшему байту передаваемого слова1. В машинах с 32-разрядными процессорами начальный адрес, выставляемый на шине в начале транзакции, за­висит от разрядности данных, запланированной задатчиком, и может зависеть от положения адресуемых данных относительно границы двойного слова (32 битно­го). 16-разрядные передачи выполняются за 1 цикл только при условии передачи по четному адресу (АСНО) и при ответе исполнителя сигналом IOCS16* или MEMCS16*, в иных случаях они разбиваются на два цикла. 32-разрядные пере­дачи будут разбиваться на 2 (16+16), 3 (8+16+8) или 4 (8+8+8+8) цикла, в за­висимости от возможностей исполнителя и четности адреса.


Порядок, в котором передаются байты (во времени), неоднозначен (возможен как инкремент, так и дек­ремент адреса), но в адресном пространстве они раскладываются по своим местам однозначно.

В табл. 6.4 приводятся состояния сигналов шины ISA для различных вариантов записи в порты ввода-вывода, проверенные экспериментальным путем. Вывод

1 То есть адрес слова в L-H порядке, принятом для изделий Intel.

154_____________________________________ Глава 6. Шины и карты расширения

16-разрядных данных выполнялся командой OUT DX,AX (в DX — адрес порта, в АХ —

данные; AL содержит младший байт, АН — старший), вывод 8-разрядных — коман­

дой OUT DX,AL. Несколько неожиданные (для автора) варианты 3 и 6 с декремен­

том адреса, возможно, будут иметь место не на всех системных платах, но их сле­

дует иметь в виду при проектировании устройств, претендующих на глобальную

совместимость. Правда на практике 16-битных передач по нечетным адресам

обычно избегают (даже чисто подсознательно), и побочные эффекты от такого

порядка маловероятны.                        /

Таблица 6.4. Состояние сигналов при 8- и 16-битных обращениях к устройству ISA

Сигнал (шина)                        1 цикл                                             2 цикл

1. Вывод 16-разрядных данных в 16-битное устройство по четному адресу

SBHE#                                     L

SA                                           DX(AO=0)

D[15:8]                                    АН

D[7:0]                                      AL                                                   -

IOCS16#                                 L

2. Вывод 16-разрядных данных в 16-битное устройство по нечетному адресу ххх1,ххх5, xxx9,xxxD

SBHE#                                     L                                                      H

SA                                           DX(AO=1)                                      DX+1 (A0=0)

D[15:8]                                    AL                                                   0



D[7:0]                                      AL                                                   AH

IOCS16#                                 L                                                      L

3. Вывод 16-разрядных данных в 16- битное устройство по нечетному адресу хххЗ,ххх7, xxxB.xxxF

SBHE#                                     H                                                     L

SA                                           DX+1 (A0=0)                                 DX (A0= 1)

D[15:8]                                    0                                                      AL

D[7:0]                                      AH                                                   0

IOCS16*                                 L                                                      L

4. Вывод 16-разрядных данных в 8-битное устройство по четному адресу

SBHE#                                     L                                                      L

SA[1:0]                                    DX(AO=0)                                     DX+1(AO=1)

D[15:8]                                    AH                                                   AH

D[7:0]                                      AL                                                   AH

IOCS16*                                 H                                                      H

5. Вывод 16-разрядных данных в 8-битное устройство по нечетному адресу ххх1,ххх5, xxx9,xxxD

SBHE#                                     L                                                      H

SA[ 1:0]                                   DX (A0= 1)                                     DX+1 (A0=0)

D[15:8]                                    AL                                                   0

D[7:0]                                      AL                                                   AH

IOCS16#                                 H                                                     H

6.1. Шины ISA, EISA и PC/104________________________________________ 155



Сигнал (шина)____________ 1 цикл______________________ 2 цикл______________________

6. Вывод 16-разрядных данных в 8- битное устройство по нечетному адресу хххЗ,ххх7, xxxB,xxxF

SBHE#                                     H                                                     L

SA[1:OJ                                  DX+1(AO=0)                                 DX(AO=1)

D[15:8]                                    0                                                      AL

D[7:0]                                      AH                                                  AL

IOCS16#                                 H                                                     H

7. Вывод 8-разрядных данных в 16-битное устройство по четному адресу

SBHE#                                     H

SA[1:0]                                    DX(AO=0)

D[15:8]                                    0

D[7:0]                                      AL

IOCS16*                                 L

8. Вывод 8-разрядных данных в 16-битное устройство по нечетному адресу

SBHE#                                     L

SA[1:0]                                    DX(AO=1)

D[15:8]                                    AL

D[7:0]                                      0(AL?)

IOCS16*                                 L

Момент помещения действительных данных на линии SD[15:0] определяется управляющими сигналами чтения/записи, так что исполнителю не требуется син­хронизация с тактовым сигналом шины. В циклах чтения адресованный исполни­тель должен выдать данные на шину по началу (спаду) соответствующего сигнала чтения (IOR#, MEMR#, SMEMR#) и удерживать их до конца действия сигнала (пока не произойдет подъем сигнала). В циклах записи задатчик выставляет действи­тельные данные несколько позже начала (спада) сигнала записи (IOW#, MEMW#, SMEMW#). Устройство-исполнитель должно фиксировать для себя эти данные в конце цикла по подъему сигнала записи. От устройства-исполнителя не преду­сматривается никаких подтверждений исполнения циклов; длительность цикла устанавливает задатчик, но исполнитель может потребовать удлинения или уко­рочения циклов.


С помощью сигнала IOCHRDY исполнитель может удлинить цикл на произвольное число тактов, при этом задатчик будет вводить дополнительные такты ожидания (wait states). Обычно контроллер шины следит за длительностью цикла и по достижении критического времени принудительно его завершает (по тайм-ауту, возможно, и не сообщая об этом событии). Слишком длинные циклы тормозят работу компьютера, а превышение длительности 15 мкс может привести к сбою регенерации и потере данных в ОЗУ. С помощью сигнала OWS# исполни­тель предлагает задатчику укоротить цикл, исключив такты ожидания. Реакция задатчика на одновременное использование сигналов IOCHRDY и OWS# непред­сказуема, этой ситуации следует избегать.

ВНИМАНИЕ

Некорректное управление сигналом IOCHRDY (его «залипание» на низком уровне) тормозит работу компьютера.

156_______________________________         Глава 6. Шины и карты расширения

Номинальная длительность цикла определяется чипсетом и может программиро­ваться в BIOS Setup заданием числа тактов ожидания (wait states). При этом цик­лы обращения к памяти, как правило, короче циклов обращения к портам ввода-вывода. Для управления длительностью цикла используются также сигналы управления разрядностью передачи: если устройство поддерживает 16-битные передачи, предполагается, что оно может работать с меньшим количеством тактов ожидания. Этим объясняется, что в BIOS Setup длительности циклов ISA задают­ся раздельно как для памяти и ввода-вывода, так и для 8- и 16-битных операций. Кроме длительности цикла, устройства могут быть критичны к времени восста­новления (recovery time) — длительности пассивного состояния управляющих сигналов чтения-записи между циклами. Этот параметр также может программи­роваться в BIOS Setup и тоже раздельно для 8- и 16-разрядных операций.

Карты расширения для подключения к шине данных, как правило, используют буферные микросхемы, раздельные для линий SD[7:0] и SD[15:8]. Здесь широко применяются микросхемы 74ALS245 (1533АП6) — 8-разрядные двунаправленные приемопередатчики.


Буфер должен открываться сигналом ОЕ# (Output Enable — разрешение выхода), когда на шине адреса присутствует адрес, относящийся к ди­апазону адресов подключаемого устройства. «Дежурным» является направле­ние передачи «от шины — к устройству»; переключение в обратную сторону про­изводится по сигналу IOR#, если устройство представляет порты ввода-вывода, или MEMRD*, если устройство приписано к пространству памяти. Таким образом, буферы имеют право передавать данные на шину (управлять шиной данных) толь­ко во время действия сигнала чтения, относящегося к зоне адресов данного устрой­ства. Карта расширения может являться комбинацией 8- и 16-битных устройств; например, некогда популярные мультикарты содержали 16-битный адаптер AT A и набор 8-битных контроллеров портов COM, LPT, GAME и контроллера НГМД. В таких картах логика управления буферами и сигналами IOCS16* и MSC16* управляется сигналами от дешифратора адреса. Если устройство по данному адре­су является 8-разрядным (не формирует сигналы IOCS16* или MSC16*), то оно имеет право разрешать чтение только через буфер линий SD[7:0], а буфер старших линий SD[15:8] (если он имеется на карте) должен быть переведен в третье состо­яние. Если устройство по данному адресу является 16-разрядным, то оно форми­рует сигнал IOCS16* или MSC16*, а разрешением буферов управляют сигналы SBHE* и SAO. В этом случае буфер линий SD[7:0] разрешается только при SAO=0, а буфер линий SD[15:8] разрешается только при SBHE#=L. Некорректное раз­решение буферов может приводить к их конфликту с перестановщиком байтов системной платы и искажениям данных.

Восьмиразрядные устройства (например, микросхемы 8255, 8250, 8253 и т. п.) следует подключать только к линиям SD[7:0] и при обращении к ним не формиро­вать сигналы IOCS16* или MSC16*. Никакие «косые» буферы (перестановщики байтов) на интерфейсных картах не нужны.

В одном из источников описывается эффект перестановки байтов при обращении к порту ввода-вывода: «Если прочитать слово из порта по четному адресу, значе­ние одно, а если по нечетному — старшие 8 бит предыдущего значения становятся



6.1. Шины ISA, EISA и PC/104_________________________________________ 157

младшими, а старшие нового = FFh». Первые подозрения падают на ошибку в логи­ке управления буферами. На самом деле все объясняется гораздо проще. Пусть имеется устройство с двухбайтным регистром, младший байт которого имеет ад­рес RO (четный), старший — RO+1, а по адресу R+2 устройство (и никакие другие) не откликается. Пусть в данный момент в нем записано число AA55h, тогда чтени­ем порта по команде IN AX, R0 получим в регистрах процессора AL=55h, AH=AAh. Теперь если попытаться его «прочитать по нечетному адресу», то есть командой IN АХ, R0+1, то получим AL=AAh (содержимое RO+1, к которому мы на самом деле и адресовались!), a AH=FFh (результат чтения «пустоты»). Так что это не «эффект перестановки», а просто незнание общего правила «интеловской» адресации: ад­ресом слова (двойного, учетверенного...) является адрес его младшего байта. Если в нашем устройстве применяется неполная дешифрация адреса (линия SA1 не ис­пользуется ни для дешифрации адреса, ни для выбора регистра), то мы увидим полную перестановку байт — в AH=55h, результат чтения RO по адресу-псевдони­му RO+2. Логика работы контроллера шины вместе со всеми буферами делает обращение к любой ячейке памяти или порту инвариантным к способу программ­ной адресации — что закажешь, то и получишь, но требуется учитывать особенно­сти периферийных устройств, у которых в адресации портов нередко встречаются псевдонимы. Адреса-псевдонимы встречаются и в пространстве памяти (напри­мер, копии образов BIOS под границей 1^го и 16-го мегабайтами памяти в «клас­сических» PC/AT).


Организация шины USB


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

4.1. Шина USB____________      '________________________________________ 89

только обеспечивает дополнительные точки подключения устройств к шине. Устройство-фг/нк^ия (function) USB предоставляет системе дополнительные функ­циональные возможности, например подключение к ISDN, цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Комбинированное устрой­ство (compound device), содержащее несколько функций, представляется как хаб с подключенными к нему несколькими устройствами. Устройство USB должно иметь интерфейс USB, обеспечивающий полную поддержку протокола USB, вы­полнение стандартных операций (конфигурирование и сброс) и предоставление информации, описывающей устройство. Работой всей системы USB управляет хост-контроллер (host controller), являющийся программно-аппаратной подсис­темой хост-компьютера. Шина позволяет подключать, конфигурировать, исполь­зовать и отключать устройства во время работы хоста и самих устройств. Шина USB является хост-центрической: единственным ведущим устройством, которое управляет обменом, является хост-компьютер, а все присоединенные к ней периферийные устройства — исключительно ведомые. Физическая топология шины USB — многоярусная звезда. Ее вершиной является хост-контроллер, объе­диненный с корневым хабом (root hub), как правило, двухпортовым. Хаб являет­ся устройством-разветвителем, он может являться и источником питания для подключенных к нему устройств. К каждому порту хаба может непосредственно подключаться периферийное устройство или промежуточный хаб; шина допус­кает до 5 уровней каскадирования хабов (не считая корневого). Поскольку ком­бинированные устройства внутри себя содержат хаб, их подключения к хабу 6-го яруса уже недопустимо. Каждый промежуточный хаб имеет несколько нисходящих (downstream) портов для подключения периферийных устройств (или нижележа­щих хабов) и один восходящий (upstream) порт для подключения к корневому хабу или нисходящему порту вышестоящего хаба.
Логическая топология USB — про­сто звезда: для хост- контроллера хабы создают иллюзию непосредственного под­ключения каждого устройства. В отличие от шин расширения (ISA, PCI, PC Card), где программа взаимодействует с устройствами посредством обращений по фи­зическим адресам ячеек памяти, портов ввода-вывода, прерываниям и каналам DMA, взаимодействие приложений с устройствами USB выполняется только че­рез программный интерфейс. Этот интерфейс, обеспечивающий независимость обращений к устройствам, предоставляется системным ПО контроллера USB.

В отличие от громоздких дорогих шлейфов параллельных шин AT А и особенно шины SCSI с ее разнообразием разъемов и сложностью правил подключения, ка­бельное хозяйство USB простое и изящное. Кабель USB содержит одну экрани­рованную витую пару с импедансом 90 Ом для сигнальных цепей и одну неэкранированную для подачи питания (+5 В), допустимая длина сегмента — до 5 м. Для низкой скорости может использоваться невитой неэкранированный кабель дли­ной до 3 м (он дешевле). Система кабелей и коннекторов USB не дает возможно­сти ошибиться при подключении устройств (рис. 4.1, а и б). Для распознавания разъема USB на корпусе устройства ставится стандартное символическое обозна­чение (рис. 4.1, в). Гнезда типа «А» устанавливаются только на нисходящих пор­тах хабов, вилки типа «А» — на шнурах периферийных устройств или восходя-

90

Глава 4. Последовательные шины USB и FireWire

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


Назначение выводов разъемов USB приведено в табл. 4.1, ну­мерация контактов показана на рис. 4.2. Все кабели USB «прямые» — в них соеди­няются одноименные цепи разъемов.





Рис. 4.1. Коннекторы USB: a — вилка типа «А», б—вилка типа «В», в — символическое обозначение



а                                        б                              в                               г                          д

Рис. 4.2. Гнезда USB: а — типа «А», б — типа «В» стандартное, в,г,д — миниатюрные типа «В»

Таблица 4.1. Назначение выводов разъема USB



В шине используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Скорость устройства, подключенного к конкретному порту, опре­деляется хабом по уровням сигналов на линиях D+ и D-, смещаемых нагрузочны­ми резисторами приемопередатчиков: устройства с низкой скоростью «подтяги­вают» к высокому уровню линию D-, с полной — D+. Подключение устройства HS

4.1. Шина USB _______________________________________________________ 91

определяется на этапе обмена конфигурационной информацией — физически на первое время устройство HS должно подключаться как FS. Передача по двум про­водам в USB не ограничивается дифференциальными сигналами. Кроме дифферен­циального приемника, каждое устройство имеет линейные приемники сигналов D+ и D-, а передатчики этих линий управляются индивидуально. Это позволяет различать более двух состояний линии, используемых для организации аппарат­ного интерфейса.

Введение высокой скорости (480 Мбит/с — всего в 2 раза медленнее, чем Gigabit Ethernet) требует тщательного согласования приемопередатчиков и линии связи. На этой скорости может работать только кабель с экранированной витой парой для сигнальных линий. Для высокой скорости аппаратура USB должна иметь допол­нительные специальные приемопередатчики. В отличие от формирователей потен­циала для режимов FS и LS, передатчики HS являются источниками тока, ориен­тированными на наличие резисторов-терминаторов на обеих сигнальных линиях.



Скорость передачи данных (LS, FS или HS) выбирается разработчиком перифе­рийного устройства в соответствии с потребностями этого устройства. Реализа­ция низких скоростей для устройства обходится несколько дешевле (приемо­передатчики проще, а кабель для LS может быть и неэкранированной невитой парой). Если в «старой» USB устройства можно было, не задумываясь, подклю­чать в любой свободный порт любого хаба, то в USB 2.0 при наличии устройств и хабов разных версий появились возможности выбора между оптимальными, не­оптимальными и неработоспособными конфигурациями.

Хабы USB 1.1 обязаны поддерживать скорости FS и LS, скорость подключенного к хабу устройства определяется автоматически по разности потенциалов сигналь­ных линий. Хабы USB 1.1 при передаче пакетов являются просто повторителями, обеспечивающими прозрачную связь периферийного устройства с контроллером. Передачи на низкой скорости довольно расточительно расходуют потенциальную пропускную способность шины: за то время, на которое они занимают шину, высоко­скоростное устройство может передать данных в 8 раз больше. Но ради упрощения и удешевления всей системы на эти жертвы пошли, а за распределением полосы между разными устройствами следит планировщик транзакций хост-контроллера.

В спецификации 2.0 скорость 480 Мбит/с должна уживаться с прежними, но при таком соотношении скоростей обмены на FS и LS «съедят» возможную полосу пропускания шины без всякого «удовольствия» (для пользователя). Чтобы этого не происходило, хабы USB 2.0 приобретают черты коммутаторов пакетов. Если к порту такого хаба подключено высокоскоростное устройство (или аналогичный хаб), то хаб работает в режиме повторителя, и транзакция с устройством на HS занимает весь канал до хост-контроллера на все время своего выполнения. Если же к порту хаба USB 2.0 подключается устройство или хаб 1.1, то по части канала до контроллера пакет проходит на скорости HS, запоминается в буфере хаба, а к старому устройству или хабу идет уже на его «родной» скорости FS или LS.


При этом функции контроллера и хаба 2.0 (включая и корневой) усложняются, по­скольку транзакции на FS и LS расщепляются и между их частями вклиниваются

92___________________________ Глава 4. Последовательные шины USB и FireWire

высокоскоростные передачи. От старых (1.1) устройств и хабов все эти тонкости скрываются, что и обеспечивает обратную совместимость. Вполне понятно, что устройство USB 2.0 сможет реализовать высокую скорость, только если по пути от него к хост-контроллеру (тоже 2.0) будут встречаться только хабы 2.0. Если это правило нарушить и между ним и контроллером 2.0 окажется старый хаб, то связь может быть установлена только в режиме FS. Если такая скорость устройство и клиентское ПО устроит (к примеру, для принтера и сканера это выльется только в большее время ожидания пользователя), то подключенное устройство работать будет, но появится сообщение о неоптимальной конфигурации соединений. По возможности ее (конфигурацию) следует исправить, благо переключения кабелей USB можно выполнять на ходу. Устройства и ПО, критичные к полосе пропуска­ния шины, в неправильной конфигурации работать откажутся и категорично по­требуют переключений. Если же хост-контроллер старый, то все преимущества USB 2.0 окажутся недоступными пользователю. В этом случае придется менять хост-контроллер (менять системную плату или приобретать PCI-карту контрол­лера). Контроллер и хабы USB 2.0 позволяют повысить суммарную пропускную способность шины и для старых устройств. Если устройства FS подключать к раз­ным портам хабов USB 2.0 (включая и корневой), то для них суммарная пропуск­ная способность шины USB возрастет по сравнению с 12 Мбит/с во столько раз, сколько используется портов высокоскоростных хабов.

Хаб является ключевым элементом системы PnP в архитектуре USB. Хаб выпол­няет множество функций:

¦     обеспечивает физическое подключение устройств, формируя и воспринимая

сигналы в соответствии со спецификацией шины на каждом из своих портов;



¦     управляет подачей питающего напряжения на нисходящие порты, причем пре­

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

¦     отслеживает состояние подключенных к нему устройств, уведомляя хост об

изменениях;

¦     обнаруживает ошибки на шине, выполняет процедуры восстановления и изо­

лирует неисправные сегменты шины;

¦     обеспечивает связь сегментов шины, работающих на разных скоростях.

Хаб следит за сигналами, генерируемыми устройствами. Неисправное устройство может не вовремя «замолчать» (потерять активность) или, наоборот, что-то «бор­мотать» (babble). Эти ситуации отслеживает ближайший к устройству хаб и за­прещает восходящие передачи от такого устройства не позже, чем по границе (мик-ро)кадра. Благодаря бдительности хабов эти ситуации не позволят неисправному устройству заблокировать всю шину.

Каждый из нисходящих (downstream) портов может быть разрешен или запрещен, а также сконфигурирован на высокую, полную или ограниченную скорость об­мена. Хабы могут иметь световые индикаторы состояния нисходящих портов, управляемые автоматически (логикой хаба) или программно (хост-контроллером). Индикатор может представлять собой пару светодиодов — зеленый и желтый

4.1. Шина USB_______________________________________________________ 93

(янтарный) или один светодиод с изменяющимся цветом. Состояние порта пред­ставляется следующим образом:

¦     не светится — порт не используется;

¦     зеленый — нормальная работа;

¦     желтый — ошибка;

¦     зеленый мигающий — программа требует внимания пользователя (Software attention);

¦     желтый мигающий — аппаратура требует внимания пользователя (Hardware attention).

Восходящий (upstream) порт хаба конфигурируется и внешне представляется как полноскоростной или высокоскоростной (только для USB 2.0).


При подключении порт хаба USB 2.0 обеспечивает терминацию по схеме FS, в режим HS он перево­дится только по команде контроллера.

На рис. 4.3 приведен вариант соединения устройств и хабов, где высокоскорост­ным устройством USB 2.0 является только телекамера, передающая видеопоток без компрессии. Подключение принтера и сканера USB 1.1 к отдельным портам хаба 2.0, да еще и развязка их с аудиоустройствами, позволяет им использовать полосу шины по 12 Мбит/с каждому. Таким образом, из общей полосы 480 Мбит/с на «старые» устройства (USB 1.0) выделяется 3x12=36 Мбит/с. Вообще-то мож­но говорить и о полосе в 48 Мбит/с, поскольку клавиатура и мышь подключены к отдельному порту хост-контроллера USB 2.0, но эти устройства «освоят» только малую толику из выделенных им 12 Мбит/с. Конечно, можно подключать клави­атуру и мышь к порту внешнего хаба, но с точки зрения повышения надежности системные устройства ввода лучше подключать наиболее коротким (по количе­ству кабелей, разъемов и промежуточных устройств) способом. Неудачной кон­фигурацией было бы подключение принтера (сканера) к хабу USB 1.1 — во время работы с аудиоустройствами (если они высокого качества) скорость печати (ска­нирования) будет падать. Неработоспособной конфигурацией явилось бы под­ключение телекамеры к порту хаба USB 1.1.

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

Управление энергопотреблением является весьма развитой функцией USB. Для устройств, питающихся от шины, мощность ограничена. Любое устройство при подключении не должно потреблять от шины ток, превышающий 100 мА. Рабо­чий ток (не более 500 мА) заявляется в конфигурации. Если хаб не может обеспе­чить устройству заявленный ток, оно не конфигурируется и, следовательно, не может быть использовано.

Устройство USB должно поддерживать режим приостановки (suspended mode), в котором его потребляемый ток не превышает 500 мкА. Устройство должно автоматически приостанавливаться при прекращении активности шины.

94

Глава 4. Последовательные шины USB и FireWire



Рис. 4.3. Пример конфигурации соединений

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


От автора 


Книга «Интерфейсы ПК. Справочник», вышедшая следом за первым изданием энциклопедии «Аппаратные средства IBM PC» (1998 г.), была благосклонно при­нята читателями и даже выпущена «пиратами» на компакт-диске (правда, без ука­зания автора и, естественно, без его уведомления). Работа над вторым изданием энциклопедии породила гору материала, который не помещался в книгу разумно­го размера, — так созрела идея новой книги об интерфейсах, которая сейчас перед вами. В нее вошли все «обрезки» «слишком большой энциклопедии» и ряд но­вых материалов. Эта книга адресована специалистам, которые уже знают общее устройство компьютера и имеют представление о взаимодействии его состав­ляющих, но нуждаются в справочной информации для разработки собственной аппаратуры и программного обеспечения, тесно связанного с «железом». Название «Аппаратные интерфейсы ПК» определяет круг освещаемых вопросов — от ножек интерфейсных разъемов до программной модели интерфейсных адаптеров.

Книга начинается с глав, посвященных универсальным внешним интерфейсам, начиная с долгожителей — портов LPT и СОМ — и кончая современными шина­ми USB, Fire Wire, SCSI и беспроводными интерфейсами IrDA и Bluetooth. Далее идет «погружение в недра» системного блока ПК — интерфейсы шин расширения с особо детальным описанием шин PCI и ISA, самых интересных на сегодняшний день (шину ISA списывать рано, она еще послужит во встраиваемых компьютерах в обычном виде или в виде РС/104). В главе, посвященной интерфейсам элект­ронной памяти, подробно рассматриваются модули динамической памяти всех современных типов, а также микросхемы статической и энергонезависимой памя­ти (флэш, EEPROM), с которыми часто приходится иметь дело. Далее в книге описываются специализированные интерфейсы периферийных устройств — клави­атуры, мыши, дисплея (как традиционного, так и плоских панелей), принтеров, аудио- и видеоинтерфейсы, игровой порт. Отдельная глава посвящена интерфей­сам устройств хранения — НГМД, АТА (включая новый интерфейс Serial ATA), а также интерфейсам твердотельных устройств хранения (различным флэш-картам).
Из интерфейсов компьютерных сетей основное внимание уделяется тех­нологии Ethernet, практически вытеснившей все остальные из локальных сетей и ведущей наступление и в глобальных приложениях. Также рассматривается интерфейс обычной аналоговой телефонной линии, через которую большинство домашних пользователей подключается к Сети. В главе о вспомогательных по­следовательных интерфейсах рассматриваются все вариации на тему PC, а также интерфейсы SPI, МИ и JTAG. Отдельная глава посвящена архитектурному окру­жению, в котором интерфейсы и их адаптеры (контроллеры) существуют в IBM PC-совместимом компьютере (пространство памяти, пространство ввода-вывода,

12____________________________________________________________ От автора

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

Для удобства восприятия в книге принята система текстовых выделений. Курси­вом выделены ключевые слова (например, первый раз встречающиеся определе­ния), а также названия состояний, * которых могут пребывать некоторые объек­ты. В названиях электрических сигналов, например CSO#, символ «#» указывает на инверсность (низкий уровень сигнала отвечает активному состоянию). Назва­ния команд, регистров и битов имеют иной вид — например, INSW (команда про­цессора), DR (регистр данных), АХ (регистр процессора). Подробные оглавление и предметный указатель помогут быстро найти необходимую информацию.

Я благодарен любознательным и внимательным читателям, присылающим свои замечания, вопросы и отзывы о моих книгах. Пользуясь случаем, еще раз обращаюсь к читателям — пишите письма! С вашей помощью исправляются многие ошибки, и я стараюсь поддерживать свои книги на личном сайте по адресу http://www.neva.ru/ mgook, обновляя списки замеченных опечаток и публикуя статьи на смежные темы.

Как и все предыдущие, эта книга не смогла бы появиться без информационной поддержки коллектива RUSNet (http://www.neva.ru), обеспечивающего доступ к Сети в ЦНИИ РТК — «базовом лагере» автора. После выпуска второго издания «Энциклопедии» я снова погрузился в инженерную деятельность в НПО РТК. Это несколько притормаживает работу над книгами, но обогащает практический опыт, что выливается в дополнительные разъяснения актуальных вопросов.

Свои замечания и пожелания присылайте на адрес mgook@stu.neva.ru (автор) или comp@piter.com (издательство «Питер», редакция компьютерной литературы). Информацию по всем книгам можно получить на сайте издательства «Питер» www.piter.com.

Михаил Гук


Память Rambus DRAM


Память RDRAM (Rambus DRAM) имеет синхронный интерфейс, существенным образом отличающийся от вышеописанного. Запоминающее ядро этой памяти по­строено на все тех же КМОП-ячейках динамической памяти, но пути повышения производительности интерфейса совершенно иные. Подсистема памяти (ОЗУ) RDRAM состоит из контроллера памяти, канала и собственно микросхем памяти. По сравнению с DDR SDRAM, при той же производительности RDRAM имеет более компактный интерфейс и большую масштабируемость. Разрядность ОЗУ RDRAM (16 байт) не зависит от числа установленных микросхем, а число банков,

246

Глава 7. Интерфейсы электронной памяти

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

Запоминающее ядро микросхем имеет многобанковую организацию — 64-мегабит-ные микросхемы имеют 8 банков, 256-мегабитные — 32 банка. Каждый банк име­ет собственные усилители считывания, благодаря чему в микросхеме может быть активировано несколько банков. Для сокращения числа усилителей применяют и их разделение (совместное использование) парой смежных байт, что накладывает ограничения на их совместную активацию (до активации банка его смежник дол­жен быть заряжен). Разрядность ядра 16 байт — 128 или 144 (с контрольными разрядами) бит. Ядро работает на 1/8 частоты канала, взаимодействие с ядром осуществляется по внутренним сигналам RAS и CAS. В современных RDRAM при­меняются ячейки памяти с временем доступа 40-53 нс.

Канал RDRAM (Rambus Channel) представляет собой последовательно-парал­лельную шину. Такая организация позволяет ограничить количество линий интерфейса, что, в свою очередь, позволяет упорядочить разводку проводников ради повышения частоты передачи сигналов. Небольшое количество сигналов дает возможность выровнять задержки распространения сигналов по разным линиям и применить сверхбыстродействующие интерфейсные схемы. Тактовая частота канала — до 400 МГц, стробирование информации осуществляется по обо­им фронтам синхросигнала.
Таким образом, пропускная способность одной ли­нии составляет 800 Мбит/с. Канал состоит из 30 основных линий с интерфейсом RSL (Rambus System Logic) и 4 вспомогательных линий КМОП, используемых для инициализации микросхем. Структура канала изображена на рис. 7.8. На канале может быть установлено до 32 микросхем, все микросхемы соединяются парал­лельно. Для того чтобы контроллер мог адресоваться к определенной микросхе­ме, каждой из них назначается уникальный адрес DEVID. Нумерация микросхем (Device Enumeration) осуществляется в процессе инициализации, который выпол­няется с использованием вспомогательного последовательного КМОП-интерфейса. Этот интерфейс имеет линии синхронизации SCK, команд CMD данных SIO.



Рис. 7.8. Память Direct RDRAM

7.1. Динамическая память_____________________________________________ 247

Синхросигнал вводится в канал с «дальнего конца» и распространяется в сторону контроллера по линии СТМ (Clock To Master). По этому сигналу микросхемы па­мяти стробируют данные, посылаемые к контроллеру (при чтении). Дойдя до кон­троллера, синхросигнал выходит на линию CFM (Clock From Master) и идет по ка­налу до терминатора, установленного на конце. По этой линии синхронизируется информация, посылаемая от контроллера к микросхемам памяти. Микросхемы привязывают данные чтения к синхросигналу с помощью встроенных схем DLL (Delay Locked Loop) для автоподстройки задержки сигнала DQS относительно CLK. Физический уровень интерфейса учитывает волновой характер процессов рас­пространения сигналов в канале. Интерфейс RSL имеет малый размах сигна­ла: уровню логический 0 соответствует потенциал терминаторов VTERM = 1,8 В, лог. 1 — потенциал 1,0 В. Передатчики имеют выход типа «открытый сток N-МОП» и активны при передаче логической единицы. Передатчики управляют значением генерируемого тока с тем, чтобы обеспечить требуемый уровень сигнала (падение напряжения на сопротивлении терминатора). Уровень переключения приемника Vref = 1,4 В задается делителем напряжения VteRm.


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

Канал разделен на три независимые шины: 3-битная шина строк ROW[2:0], 5-битная шина колонок СОЦ4:0] и двухбайтная (2x9 бит) шина данных DQA[8:0] и DQB[8:0]. Дополнительный бит байта данных (имеется не у всех микросхем RDRAM) может использоваться для контроля достоверности. По каждой шине информация пере­дается пакетами, занимающими 4 такта (8 интервалов) синхронизации (10 не). Пакет содержит 8 элементов; пакет строк имеет емкость 24 бит, колонок — 40 бит и данных — 16 байт по 8 или 9 бит.

Высокая производительность шины управления (строк и колонок) позволяет от­казаться от пакетных (в терминологии BEDO и SDRAM) передач и упростить протокол шины. Память может одновременно обслуживать до четырех транзак­ций на полной скорости передачи данных.

Транзакции чтения приведены на рис. 7.9, по виду они аналогичны транзакциям SDRAM с тем лишь отличием, что за время одного такта (SDRAM) передается пакет. Пакет ROW для второй транзакции пропущен, поскольку страницу остави­ли открытой. Транзакция чтения со стороны контроллера представляет собой петлю: он посылает пакеты ROWA и COLC, которые за некоторое время достигают целевой микросхемы и ею обрабатываются за время ТСАС. Далее микросхема от­вечает пакетом данных, которому для достижения контроллера также требуется некоторое время. Пакетам для путешествий к дальним микросхемам и от них тре­буется больше времени, чем для путешествий к ближним, и эта разница оказыва­ется большей, чем длительность периода синхронизации. Для того чтобы контрол­лер получал ответ на транзакцию чтения от любой микросхемы через одно и то же число тактов, у микросхем памяти устанавливают разную задержку данных отно­сительно пакетов COLC. Группы соседних микросхем, у которых программируется одинаковая задержка, называют доменами синхронизации. В канале может быть несколько доменов синхронизации.



248

Глава 7. Интерфейсы электронной памяти



Рис. 7.9. Транзакции чтения RDRAM

Транзакции записи (рис. 7.10) являются однонаправленными и для них проблем син­хронизации не возникает. В отличие от стандартных микросхем DRAM и SDRAM, где данные для записи передаются одновременно с адресом колонки, в RDRAM данные задерживают относительно пакета COLC на TCWD (несколько тактов). Эта задержка соответствует задержке между пакетами COLC и данными при чтении (на стороне контроллера). Задержка записи позволяет сократить вынужденные про­стои шины данных при переключении с записи на чтение (в SDRAM они равны CAS Latency и длятся 2-3 такта по 10 не). Контроллер может посылать данные для записи уже в такте, следующим за последними данными предыдущей транз­акции чтения. Однако если за записью следует чтение,- то на шине данных будет вынужденная пауза в 1-5 тактов в зависимости от длины канала. За это время последние данные записи дойдут от контроллера до самой дальней микросхемы памяти.



Рис. 7.10. Транзакции записи RDRAM

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

раньше, чем этого требует параметр TRCD, что повышает коэффициент использования шины.

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

7.1. Динамическая память_____________________________________________ 249

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



Регенерация осуществляется по команде, адресуемой к определенному банку од­ной или всех микросхем; за период регенерации эта команда должна выдаваться для всех банков.

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

Вспомогательная шина с сигналами SCK, CMD и SIO служит для обмена данными с управляющими регистрами и вывода микросхем из состояний пониженного по­требления (PDN и NAP). Информация по этой шине тоже передается пакетами.

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

Инициализация памяти включает определение наличия микросхем на шине, на­значение им идентификаторов и программирование их параметров. После сброса микросхемы не имеют собственных адресов, а линии SIOO и SI01 у них соединены. В таком состоянии контроллер по шине CMD посылает широковещательную ко­манду на разъединение линий, после чего для него по линии SIO оказывается до­ступной только ближайшая микросхема канала. Ей назначается адрес (SDEVID) и дается команда на соединение линий, в результате к контроллеру подключается вторая микросхема. Она будет пронумерована очередной командой, заставляющей все доступные ненумерованные микросхемы (то есть именно ее) принять указан­ный номер. Далее замыкаются ее линии SIO, и этот процесс продолжается до самой дальней микросхемы.



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

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

250___________________________       Глава 7. Интерфейсы электронной памяти

ре компьютера. Именно она «знает» протокол RDRAM и является продуктом фирмы Rambus. Контроллер RDRAM встраивается в чипсеты для процессоров Р6 (например, 1820, 1840), Pentium 4 (1850 с 32-разрядным каналом, то есть уже под пары модулей RIMM) и других архитектурных линий.

В соответствии со спецификацией RDRAM в одном канале может быть до трех слотов под RIMM, и их интерфейсные линии соединяются змейкой. В слоты мо­гут устанавливаться RIMM различной емкости (сейчас они выпускаются на 64, 96, 128 и 256 Мбайт). Однако пока что фирме Intel не удалось достичь устой­чивой работы канала с тремя модулями и пришлось ограничиться двумя. Теперь в памяти появился новый элемент-пустышка Continuity module. Это как бы модуль RIMM, но без микросхем памяти, и нужен он для того, чтобы замыкать цепь кана­ла Rambus. Такая «заглушка» должна устанавливаться во все слоты канала, не занятые под модули RIMM. Если используются не все слоты, то память выгоднее ставить ближе к контроллеру — она будет работать быстрее (см. выше).


Память с виртуальными каналами — VC DRAM


Идея архитектуры памяти с виртуальными каналами (VirtualChannel Memory Architecture, не путать с виртуальной памятью!) заключается в помещении между массивом запоминающих ячеек и внешним интерфейсом микросхемы памяти набо­ра канальных буферов. При этом операции обмена данными разделяются на два про­цесса: «фасадный» обмен данными с каналами и «тыловой» обмен между каналами и массивом запоминающих ячеек. Оба процесса выполняются по командам со сто­роны внешнего интерфейса почти независимо друг от друга. Архитектура вирту­альных каналов приложима к памяти любого типа, включая ПЗУ и флэш-память, но наиболее интересна она в приложении к динамической памяти — VC DRAM.

Устройство VC DRAM рассмотрим на примере микросхем емкостью 128 Мбит, на которых строятся выпускаемые модули DIMM VC DRAM. По интерфейсу (со­ставу и уровням сигналов) микросхемы и модули VC DRAM аналогичны обыч­ным микросхемам SDRAM, но отличаются системой команд. Микросхемы имеют такую же внешнюю организацию по 4,8 или 16 бит данных, но совершенно иную внутреннюю архитектуру. Они имеют две матрицы (два банка) запоминающих ячеек размером 8 Кх8 К, то есть каждая строка имеет объем 8 Кбит и состоит из четырех сегментов размером по 2 Кбит. Между матрицами и внешним интерфей­сом имеется 16 канальных буферов, каждый объемом 2 Кбит. За одно обращение к матрице выполняется параллельная передача 2 Кбит данных между одним из бу­феров и сегментом выбранной строки. Это «тыловой» обмен реализуют команды PRF (Prefetch — чтение массива в буфер) и RST (Restore — сохранение буфера в мас­сиве), в которых микросхеме указывается номер банка, номер сегмента и номер канала. Предварительно командой ACT должна быть активирована требуемая стро­ка матрицы (при подаче этой команды задается банк и адрес строки). Деактивация строк (предварительный заряд) может быть автоматической, сразу после выпол­нения обращений к массиву (для этого имеются специальные команды предвы-борки и сохранения — PRFA и RSTA) или же по специальным командам, деактиви-рующим выбранный банк или оба банка сразу.


7.1. Динамическая память_____________________________________________ 251

«Фасадный» обмен с канальными буферами выполняется по командам чтения и за­писи (READ и WRITE), в которых указывается номер канала и часть адреса, соответ­ствующая адресу колонки в обычной микросхеме DRAM или SDRAM. Этот обмен выполняется в пакетном режиме, длина пакета программируется (1,2,4,8 или 16 пе­редач), но пакет может быть укорочен подачей следующей команды обращения к ка­налу. Первые данные при чтении канала появляются с задержкой (Read Latency) в 2 такта относительно команды чтения, следующие идут в каждом такте. В некото­рых моделях микросхем имеется поддержка комбинированной команды PFR (перед которой тоже должна быть команда ACT) — предвыборка с автопредзарядом и чтение буфера. После подачи этой команды первые данные появляются на 4-м такте — не раньше и не позже, чем при последовательной подаче команд PRF (А) и READ.

Регенерация VC DRAM выполняется так же, как и в SDRAM, — либо периодиче­ской подачей команд REF (авторегенерация по внутреннему счетчику адреса реге­нерируемых строк), либо в энергосберегающем режиме саморегенерации, в кото­рый микросхемы переходят по команде SELF.

Как видно из этого описания, работа VC DRAM очень похожа на работу SDRAM, но операции обмена данными разделены на две сравнительно независимые фазы. Активация-деактивация банков выглядит так же, но при чтении VC DRAM дан­ные появляются даже позже, чем в SDRAM: у SDRAM эта задержка, CL (CAS Latency), составляет 2-3 такта, а у VC DRAM — 4 такта. Тем не менее примене­ние VC DRAM дает прирост производительности памяти почти по всем тестам. Этот выигрыш получается за счет поддержки многозадачности в самих микросхе­мах и в контроллере памяти. Для работы с VC DRAM контроллер памяти должен «знать» ее систему команд, не имеющую прямой совместимости с командами SDRAM. Поддержка VC DRAM имеется далеко не во всех чипсетах — ее вводят, например, VIA и SiS, но фирма Intel эту память игнорирует.Механически и элек­трически модули VC DRAM совместимы с обычными модулями DRAM. Во вре­мя начального тестирования (POST) модули VC DRAM могут быть опознаны по информации, хранящейся в микросхеме EEPROM последовательной идентифи­кации модуля, либо по поведению после инициализации.

Память VC DRAM по сравнению с другими типами динамической памяти обес­печивает меньшее среднее время задержки данных в многозадачных системах. Однако по пиковой скорости передачи она не имеет преимуществ перед SDRAM и проигрывает RDRAM и DDR SDRAM.