Интерфейс клавиатуры
Традиционная клавиатура 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
|
2х
|
З3
|
Л*
|
I/O
|
порт
|
232
|
Стык 2
|
25Р
|
9Р
|
|
|
|
|
|
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 — вход индикатора вызова (звонка). В коммутируемом канале этим
сигналом модем сигнализирует о принятии вызова
<
Рис. 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
|
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 МТ/с)
|
|
Линейный
|
| 6м
|
| Зм
|
| 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 В
|
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# не используются.
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
|
<
Глава 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.
Глава 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 (продолжение)
Контакт
Цепь
Тип
Назначение
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 Синхронизация последовательной идентификации
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 после Windows 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. Входные цепи блока питания
Рис. 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.