4. Системные шины компьютеров (внутренние интерфейсы)<br>
4.1. Шины системные и локальные
Системную шину можно упрощенно представить как совокупность сигнальных линий, объединенных по их назначению (данные, адреса, управление), которые также имеют вполне определенные электрические характеристики и протоколы передачи информации. Основной обязанностью системной шины является передача информации между процессором (или процессорами) и остальными электронными компонентами компьютера. По этой шине осуществляется не только передача информации, но и адресация устройств, а также происходит обмен специальными служебными сигналами. Используемые в настоящее время шины отличаются по разрядности, способу передачи сигнала (последовательные или параллельные), пропускной способности, количеству и типу поддерживаемых устройств, а также протоколу работы. Как правило, шины ПК можно представить в виде некой иерархической структуры - шинной архитектуры. Особенностью современных ПК является наличие шины ISA, унаследованной от самых первых моделей IBM PC. Кроме нее, в ПК применяются шины EISA, MCA, VLB, PCI, PCMCIA (CardBus) и AGP. Шины могут быть синхронными (осуществляющими передачу данных только по тактовым импульсам) и асинхронными (осуществляющими передачу данных в произвольные моменты времени), а также использовать различные схемы арбитража (то есть способа совместного использования шины несколькими устройствами).
Если обмен информацией ведется между периферийным устройством и контроллером, то соединяющая их линия передачи данных называется интерфейсом передачи данных, или просто интерфейсом. Среди применяемых в современных и перспективных ПК интерфейсов можно отметить EIDE, SCSI, SSA и Fibre Channel, USB, FireWire (IEEE 1394) и DeviceBay.
Среди интерфейсов передачи данных особняком стоят порты ввода/вывода, использующиеся для подключения низкоскоростных периферийных устройств: последовательный порт (COM), параллельный порт (LPT), игровой порт/MIDI порт и инфракрасный порт (IrDA).
4.2 Шина ISA
Системная шина IBM PC и IBM PC/XT была предназначена для одновременной передачи 8 бит информации и 20 разрядов адреса (А0-А19). Для работы с внешними устройствами в этой шине были предусмотрены также 8 линий аппаратных прерываний и 4 линии для каналов прямого доступа в память (DMA - Direct Memory Access). Объем адресуемой памяти составлял 1 Мбайт. Для подключения плат расширения использовались специальные 62-контактные разъемы. Системная шина и микропроцессор синхронизировались от одного тактового генератора с частотой 4,77 МГц. Теоретически скорость передачи данных могла достигать более 4,5 Мбайт/с, реальная пропускная способность достигала 1,2 Мбайта/с.
В компьютерах PC/AT, использующих микропроцессор i80286, впервые стала применяться новая системная шина ISA (Industry Standard Architecture). Она отличалась наличием дополнительного 36-контактного разъема для соответствующих плат расширения. Теперь можно было передавать параллельно уже 16 разрядов данных, а благодаря 24 адресным линиям - напрямую обращаться к 16 Мбайтам системной памяти. Количество линий аппаратных прерываний в этой шине было увеличено с 8 до 16, а каналов DMA - с 4 до 8. Шина ISA стала работать асинхронно с процессором на частоте 8 МГц, что соответствовало максимальной теоретической скорости передачи 16 Мбайт/с и реальной пропускной способности порядка 5 Мбайт/с. В ISA появилась (к сожалению, не совсем удачно реализованная) поддержка устройств, способных исполнять роль арбитра шины (Bus masters)(подробности).
В современных ПК шиной ISA управляет не процессор, а специальное устройство на более быстрой шине PCI - так называемый мост (Bridge) PCI-ISA, причем стандарт PCI 2.1 позволяет шине PCI работать независимо и параллельно с более медленной ISA (PCI concurrency).
Шина ISA позволяет использовать платы расширения, не сообщающие компьютеру о своих настройках и используемых ресурсах (так называемые legacy или не Plug-n-play платы), что часто приводит к их неправильному определению операционной системой и к аппаратным конфликтам. Реализация режима самонастройки Plug-n-play для плат ISA на практике также далека от идеала. Источником большей части аппаратных конфликтов являются устройства для шины ISA, поэтому в спецификации PC98 рекомендуется отказаться от ее использования, а PC99 уже не разрешает применение ISA.
Тем не менее, сейчас для шины ISA выпускаются модемы, звуковые карты, сетевые карты, а также различные интерфейсные платы (SCSI , стримеров , сканеров и т. п.).
4.3. Разъемы шины ISA
4.3.1.Назначение контактов разъема 8 -разрядной шины ISA
* Контакт В8 по-разному использовался в ХТ и АТ. Для обеспечения совместимости IBM XT со специфической системой под названием 3270 РС, восьмой (ближайший к блоку питания) слот расширения ХТ был особенным. В него можно было устанавливать лишь платы, выдающие на контакт В8 сигнал "выбор платы" или, как его еще называют, "сигнал J8" - например, плату клавиатуры/таймера от 3270 РС. К этим платам, кроме того, предъявлялись другие требования по синхронизации. В IBM AT такую хитрую совместимость обеспечивать не стали, а контакт В8 приспособили для подачи сигнала NOWS - No Wait State.
4.3.2 Назначение контактов разъема 16 -разрядной шины ISA
4.4. Шина EISA
Шина EISA явилась "асимметричным ответом" производителей клонов РС на попытку IBM поставить рынок под свой контроль. В сентябре 1988 года Compaq, поддержанный "бандой девяти" - Wyse, AST Research, Tandy, собственно Compaq, Hewlett-Packard, Zenith, Olivetti, NEC и Epson - представил 32-разрядное расширение шины ISA с полной обратной совместимостью. Основные характеристики новой шины были следующими:
32-разрядная передача данных;
максимальная пропускная способность - 33 МВ/сек;
32-разрядная адресация памяти позволяла адресовать до 4 GB (как и в расширении ISA, новые адресные линии были без задержки);
поддержка multiply bus master;
возможность задания уровня двухуровневого (edge-triggered) прерывания (что позволяло нескольким устройствам использовать одно прерывание, как и в случае многоуровневого (level-triggered) прерывания);
автонастройка плат расширения;
Как и в случае 16-разрядного расширения, новые возможности обеспечивались путем добавления новых линий. Поскольку дальше удлинять разъем ISA было некуда, разработчики нашли оригинальное решение: новые контакты были размещены между контактами шины ISA и не были доведены до края разъема. Специальная система выступов на разъеме и щелей в EISA-картах позволяла им глубже заходить в разъем и подсоединяться к новым контактам. (Правда, утверждают, что при большом желании можно запихнуть и ISA-карту так, чтобы она замкнула EISA-контакты. Не знаю, не пробовал, т.к. большого опыта общения с EISA у меня нет: маленький был еще). Поскольку на данный момент шина EISA практически вымерла, приводить значения контактов разъема не имеет смысла. Стоит отметить лишь две новых сигнальных линии - EX32 и EX16, которые определяли, что bus slave поддерживает соответственно 32- и 16-разрядный цикл EISA. Если ни один из этих сигналов не был получен в начале цикла шины, выполнялся цикл ISA.
Важной особенностью шины являлась возможность для любого bus master обращаться к любому устройству памяти или периферийному устройству, даже если они имели разные разряды шины. Говоря о полной обратной совместимости с ISA, следует отметить, что ISA-карты, естественно, не поддерживали разделение прерываний, даже будучи вставленными в EISA-коннектор. Что касается поддержки multiply bus master, то она представляла собой улучшенную и дополненную версию таковой для ISA. Также присутствовали четыре уровня приоритета:
схемы обновления памяти;
DMA;
процессор;
адаптеры шины.
и арбитр шины EISA - периферийный контроллер (ISP - Integrated System Peripheral) - "следил за порядком". Кроме этого, наличествовало еще одно устройство - Intel's Bus Master Interface Chip (BMIC), которое следило за тем, чтобы master "не засиживался" на шине. Через определенное количество тактов master "снимался" с шины и генерировалось немаскируемое прерывание.
4.5. Шина MCA
В 1987 году компания IBM прекратила выпуск серии РС/АТ и начала производство линии PS/2. Одним из главных отличий нового поколения персональных компьютеров была новая системная шина - Micro Channel Architecture (MCA). Эта шина не обладала обратной совместимостью с ISA, но зато содержала ряд передовых для своего времени решений:
8/16/32-разрядная передача данных;
20 МВ/сек пропускная способность при частоте шины 10 MHz (в 4 раза больше,чем у ISA!) при максимально возможной пропускной способности шины 160 МВ/сек !!! (больше, чем у PCI) (правда, не все карты способны работать с такой скоростью);
Поддержка нескольких bus master. Любое устройство, подключенное к шине, может получить право на ее исключительное использование для передачи или приема данных с другого соединенного с ней устройства. Такое устройство, по сути, представляет собой специализированный процессор, который может осуществлять обмен данными по шине независимо от основного процессора. Работу устройств координирует устройство, называемое арбитром шины (CACP - Central Arbitration Control Point). При распределении функций управления шиной арбитр исходит из уровня приоритета, которым обладает то или иное устройство или операция. Всего таких уровней четыре (в порядке убывания):
регенерация системной памяти;
прямой доступ к памяти (DMA);
платы адаптеров.
процессор.
Если устройству необходим контроль над шиной, оно сообщает об этом арбитру. При первой возможности (после обработки запросов с более высокими приоритетами) арбитр передает ему управление шиной. Вне системы приоритетов обслуживаются только немаскируемые прерывания (NMI - non-maskable interrupts), при возникновении которых управление немедленно передается процессору;
11-уровневые прерывания (11-level triggered interrupts) вместо двухуровневых (trigger-edged) у ISA позволяли делить (share) прерывания между устройствами, что позволило излечить одну из болезней первых PC - нехватку линий IRQ;
24 или 32 адресных линии позволяли адресовать до 4 GB памяти;
автоматическое конфигурирование устройств существенно упростило установку новых плат. У компьютеров с шиной MCA нет никаких перемычек или переключателей - ни на системной плате, ни на платах расширения. Вместо использования адресов портов ввода-вывода, зашитых в железо, центральный процессор назначает их при старте системы, базируюсь на информации, считанной из ROM карты;
асинхронный протокол передачи данных снижал вероятность возникновения конфликтов и помех между устройствами, подключенными к шине.
Не правда ли, неплохой набор для 1987 года? Возможно, все развитие персональных компьютеров пошло бы по другому пути, если бы не одно но - деньги. Дело в том, что IBM, посчитав свое лидирующее положение на рынке персональных компьютеров незыблемым, предложило независимым производителям, желающим использовать шину МСА, совершенно кабальные условия, включающие требование заплатить за использование шины ISA во всех ранее произведенных компьютерах!!! Как Вы сами понимаете, желающих оказалось, мягко скажем, немного. Из серьезных компаний только Apricot и Olivetti поддержали новую архитектуру (причем Olivetti принимала активное участие в разработке конкурирующего стандарта - EISA). Большинство покупателей систем PS/2 "покупали IBM", а не МСА. В результате огромная работа - было разработано 6 типов слотов -
16-разрядные (основные слоты, которые устанавливается во все компьютеры с шиной МСА);
32-разрядные ( устанавливаются на компьютерах с шиной МСА и процессором 386DX и выше. Так же, как и в ISA, являются только расширением основного слота, но, поскольку разрабатывались одновременно с шиной, конструкция получилась более логичной);
16 и 32-разрядные с дополнениями для плат памяти (устанавливаются в некоторых компьютерах с шиной МСА, например, PS/2 моделей 70 и 80, имеют 8 дополнительных контактов для работы с платами расширения памяти, расположенных в самом начале разъема, обращенном к задней стенке компьютера, перед основными контактами);
16 и 32-разрядные с дополнениями для видеоадаптеров (предназначены для увеличения быстродействия видеосистемы. Обычно в компьютере с шиной МСА установлен один такой слот. 10 дополнительных контактов также расположены в начале разъема и позволяют плате видеоадаптера получить доступ к встроеннщй в системную плату схеме VGA)
- пропала фактически даром. На данный момент ссылки на архитектуру МСА практически не встречаются даже на сайте IBM (насколько мне известно, в настоящее время архитектура МСА используется IBM только в RISC-системах, например, сервер RS/6000 построен на базе шины МСА с пропускной способностью 160 МВ/сек), поэтому приводить таблицы значений контактов не буду.
4.6 Шина VESA (VLB)
Локальная шина VLB (VESA Local bus) - подробности
Все описанные ранее шины (ISA и EISA) имеют общий недостаток - сравнительно низкую пропускную способность. Это связано с тем, что шины разрабатывались в расчете на медленные процессоры. В дальнейшем быстродействие процессора возрастало, а характеристики шин улучшались в основном "экстенсивно", за счет добавления новых линий. Препятствием для повышения частоты шины являлось огромное количество выпущенных плат, которые не могли работать на больших скоростях обмена (МСА это касается в меньшей степени, но в силу вышеизложенных причин эта архитектура не играла заметной роли на рынке). В то же время в начале 90-х годов в мире персональных компьютеров произошли изменения, потребовавшие резкого увеличения скорости обмена с устройствами:
создание нового поколения процессоров типа Intel 80486, работающих на частотах до 66 MHz;
увеличение емкости жестких дисков и создание более быстрых контроллеров;
разработка и активное продвижение на рынок графических интерфейсов пользователя (типа Windows или OS/2) привели к созданию новых графических адаптеров, поддерживающих более высокое разрешение и большее количество цветов (VGA и SVGA).
Очевидным выходом из создавшегося положения является следующий: осуществлять часть операций обмена данными, требующих высоких скоростей, не через шину ввода/вывода, а через шину процессора, примерно так же, как подключается внешний кэш. Такая конструкция получила название локальной шины (Local Bus). Рисунки наглядно демонстрируют различие между обычной архитектурой и архитектурой с локальной шиной.
[img]http://de.ifmo.ru/bk_netra/image.php?img=normalbus.gif&bn=28[/img]
[img]http://de.ifmo.ru/bk_netra/image.php?img=localbus.gif&bn=28[/img]
Локальная шина не заменяла собой прежние стандарты, а дополняла их. Основными шинами в компьютере по-прежнему оставались ISA или EISA, но к ним добавлялись один или несколько слотов локальной шины. Первоначально эти слоты использовались почти исключительно для установки видеоадаптеров, при этом к 1992 году было разработано несколько несовместимых между собой вариантов локальных шин, исключительные права на которые принадлежали фирмам-изготовителям. Естественно, такая неразбериха сдерживала распространение локальных шин, поэтому VESA (Video Electronic Standard Association) - ассоциация, представляющая более 100 компаний - предложила в августе 1992 года свою спецификацию локальной шины.
Локальная шина VESA (VL-bus)
Основные характеристики VL-bus таковы.
Поддержка процессоров серий 80386 и 80486. Шина разработана для использования в однопроцессорных системах, при этом в спецификации предусмотрена возможность поддержки х86-несовместимых процессоров с помощью моста (bridge chip).
Максимально число bus master - 3 (не включая контроллер шины). При необходимости возможна установка нескольких подсистем для поддержки большего числа masterов.
Несмотря на то, что изначально шина была разработана для поддержки видеоконтроллеров, возможна поддержка и других устройств (например, контроллеров жесткого диска).
Стандарт допускает работу шины на частоте до 66 MHz, однако электрические характеристики разъема VL-bus ограничивают ее до 50 MHz (это ограничение, естественно, не относится к интегрированным в материнскую плату устройствам).
Двунаправленная (bi-directional) 32-разрядная шина данных поддерживает и 16-разрядный обмен. В спецификацию заложена возможность 64-разрядного обмена.
Поддержка DMA обеспечивается только для bus masters. Шина не поддерживает специальных "инициаторов" DMA.
Максимальная теоретическая пропускная способность шины - 160 МВ/сек (при частоте шины 50 MHz), стандартная - 107 МВ/сек при частоте 33 MHz.
Поддерживается пакетный режим обмена (для материнских плат 80486, поддерживающих этот режим). 5 линий используется для идентификации типа и скорости процессора, сигнал Burst Last (BLAST#) используется для активизации этого режима. Для систем, не поддерживающих этот режим, линия устанавливается в 0.
Шина использует 58-контактный разъем МСА. Максимально поддерживается 3 слота (на некоторых 50-мегагерцовых шинах возможна установка только 1 слота).
Слот VL-bus устанавливается в линию за слотами ISA/EISA/MCA, поэтому VL-платам доступны все линии этих шин.
Поддерживается как интегрированный кэш процессора, так и кэш на материнской плате.
Напряжение питания - 5 В. Устройства с уровнем выходного сигнала 3.3 В поддерживаются при условии, что они могут работать с уровнем входного сигнала 5 В.
Шина VL-bus явилась огромным шагом вперед по сравнению с ISA как по производительности, так и по дизайну. Одним из преимуществ шины являлось то, что она позволяла создавать карты, работающие с существующими чипсетами и не содержащие большого количества схем дорогостоящей управляющей логики. В результате VL-карты получались дешевле аналогичных EISA-карт. Однако и эта шина не была лишена недостатков, главными из которых являлись следующие.
Ориентация на 486-ой процессор. VL-bus жестко привязана к шине процессора 80486, которая отличается от шин Pentium и Pentium Pro/Pentium II.
Ограниченное быстродействие. Как уже было сказано, реальная частота VL-bus - не больше 50 MHz. Причем при использовании процессоров с множителем частоты шина использует основную частоту (так, для 486DX2-66 частота шины будет 33 MHz).
Схемотехнические ограничения. К качеству сигналов, передаваемых по шине процессора, предъявляются очень жесткие требования, соблюсти которые можно только при определенных параметрах нагрузки каждой линии шины. По мнению Intel, установка недостаточно аккуратно разработанных VL-плат может привести не только к потерям данных и нарушениям синхронизации, но и к повреждению системы.
Ограничение количества плат. Это ограничение вытекает также из необходимости соблюдения ограничений на нагрузку каждой линии.
Несмотря на существующие недостатки, VL-bus была несомненным лидером на рынке, так как позволяла устранить узкое место сразу в двух подсистемах - видеоподсистеме и подсистеме обмена с жестким диском. Однако лидерство было недолгим, поскольку корпорация Intel разработала свою новинку - шину PCI. По мнению компании, VL-bus базировалась на технологиях 11-летней давности и являлась всего лишь "заплаткой", компромиссом между производителями. Правда, VESA заявляла, что обе шины могут "уживаться" совместно в одной системе. Intel соглашалась, что такое соседство возможно, но задавала встречный убийственный вопрос: "А зачем?". Справедливости ради, надо сказать, что PCI действительно была избавлена от большинства недостатков, присущих VL-bus.
4.7. Шина PCI
Шина PCI (Peripheral Component Interconnect bus)
Итак, переходим к самому интересному. Что же находится на сегодняшний день внутри большинства наших компьютеров? Естественно, шина PCI. Другой вопрос, почему именно эта шина. Попробуем разобраться.
Итак, разработка шины PCI началась весной 1991 года как внутренний проект корпорации Intel (Release 0.1). Специалисты компании поставили перед собой цель разработать недорогое решение, которое бы позволило полностью реализовать возможности нового поколения процессоров 486/Pentium/P6 (вот уже половина ответа). Особенно подчеркивалось, что разработка проводилась "с нуля", а не была попыткой установки новых "заплат" на существующие решения. В результате шина PCI появилась в июне 1992 года (R1.0). Разработчики Intel отказались от использования шины процессора и ввели еще одну "антресольную" (mezzanine) шину.
[img]http://de.ifmo.ru/bk_netra/image.php?img=pciarh.gif&bn=28[/img]
Благодаря такому решению шина получилась, во-первых, процессоро-независимой (в отличие от VLbus), а во-вторых, могла работать параллельно с шиной процессора, не обращаясь к ней за запросами. Например, процессор работает себе с кэшем или системной памятью, а в это время по сети на винчестер пишется информация. Просто здорово! На самом деле идиллии, конечно, не получается, но загрузка шины процессора снижается здорово. Кроме того, стандарт шины был объявлен открытым и передан PCI Special Interest Group, которая продолжила работу по совершенствованию шины (в настоящее время доступен R2.1), и в этом, пожалуй, вторая половина ответа на вопрос "почему PCI?"
Основные возможности шины следующие.
Синхронный 32-х или 64-х разрядный обмен данными (правда, насколько мне известно, 64-разрядная шина в настоящее время используется только в Alpha-системах и серверах на базе процессоров Intel Xeon, но, в принципе, за ней будущее). При этом для уменьшения числа контактов (и стоимости) используется мультиплексирование, то есть адрес и данные передаются по одним и тем же линиям.
Поддержка 5V и 3.3V логики. Разъемы для 5 и 3.3V плат различаются расположением ключей
[img]http://de.ifmo.ru/bk_netra/image.php?img=pcivoltage.gif&bn=28[/img]
[img][img]http://de.ifmo.ru/bk_netra/image.php?img=pcivoltage.gif&bn=28[/img][/img]
Существуют и универсальные платы, поддерживающие оба напряжения. Заметим, что частота 66MHz поддерживается только 3.3V логикой.
Частота работы шины 33MHz или 66MHz (в версии 2.1) позволяет обеспечить широкий диапазон пропускных способностей (с использованием пакетного режима):
132 МВ/сек при 32-bit/33MHz;
264 MB/сек при 32-bit/66MHz;
264 MB/сек при 64-bit/33MHz;
528 МВ/сек при 64-bit/66MHz.
При этом для работы шины на частоте 66MHz необходимо, чтобы все периферийные устройства работали на этой частоте.
Полная поддержка multiply bus master (например, несколько контроллеров жестких дисков могут одновременно работать на шине).
Поддержка write-back и write-through кэша.
Автоматическое конфигурирование карт расширения при включении питания.
Спецификация шины позволяет комбинировать до восьми функций на одной карте (например, видео + звук и т.д.).
Шина позволяет устанавливать до 4 слотов расширения, однако возможно использование моста PCI-PCI для увеличения количества карт расширения.
PCI-устройства оборудованы таймером, который используется для определения максимального промежутка времени, в течении которого устройство может занимать шину.
При разработке шины в ее архитектуру были заложены передовые технические решения, позволяющие повысить пропускную способность.
Шина поддерживает метод передачи данных, называемый "linear burst" (метод линейных пакетов). Этот метод предполагает, что пакет информации считывается (или записывается) "одним куском", то есть адрес автоматически увеличивается для следующего байта. Естественным образом при этом увеличивается скорость передачи собственно данных за счет уменьшения числа передаваемых адресов.
Шина PCI является той черепахой, на которой стоят слоны, поддерживающие "Землю" - архитектуру Microsoft/Intel Plug and Play (PnP) PC architecture. Спецификация шины PCI определяет три типа ресурсов: два обычных (диапазон памяти и диапазон ввода/вывода, как их называет компания Microsoft) и configuration space - "конфигурационное пространство".
[img]http://de.ifmo.ru/bk_netra/image.php?img=pcimap.gif&bn=28[/img]
Конфигурационное пространство состоит из трех регионов:
заголовка, независимого от устройства (device-independent header region);
региона, определяемого типом устройства (header-type region);
региона, определяемого пользователем (user-defined region).
В заголовке содержится информация о производителе и типе устройства - поле Class Code (сетевой адаптер, контроллер диска, мультимедиа и т.д.) и прочая служебная информация.
Следующий регион содержит регистры диапазонов памяти и ввода/вывода, которые позволяют динамически выделять устройству область системной памяти и адресного пространства. В зависимости от реализации системы конфигурация устройств производится либо BIOS (при выполнении POST - power-on self test), либо программно. Базовый регистр expansion ROM аналогично позволяет отображать ROM устройства в системную память. Поле CIS (Card Information Structure) pointer используется картами cardbus (PCMCIA R3.0). С Subsystem vendor/Subsystem ID все понятно, а последние 4 байта региона используются для определения прерывания и времени запроса/владения.
4.8 Шина AGP (Accelerated Graphic Port)
Все хорошее когда-нибудь кончается. Обидно - но истинно. Сколько писали про то, что шина PCI наконец-то устранила "узкое место" РС - обмен с видеокартами - но не тут-то было! Прогресс, как известно, не стоит на месте. Появление разных там 3D ускорителей привело к тому, что ребром встал вопрос: что делать? Либо увеличивать количество дорогой памяти непосредственно на видеокарте, либо хранить часть информации в дешевой системной памяти, но при этом каким-нибудь образом организовать к ней быстрый доступ.
Как это практически всегда бывает в компьютерной индустрии, вопрос решен не был. Казалось бы, вот вам простейшее решение: переходите на 66-мегагерцовую 64-разрядную шину PCI с огромной пропускной способностью, так нет же. Intel на базе того же стандарта PCI R2.1 разрабатывает новую шину - AGP (R1.0, затем 2.0), которая отличается от своего "родителя" в следующем:
шина способна передавать два блока данных за один 66 MHz цикл (AGP 2x);
устранена мультиплексированность линий адреса и данных (напомню, что в PCI для удешевления конструкции адрес и данные передавались по одним и тем же линиям);
дальнейшая конвейеризация операций чтения/записи, по мнению разработчиков, позволяет устранить влияние задержек в модулях памяти на скорость выполнения этих операций.
В результате пропускная способность шины была оценена в 500 МВ/сек, и предназначалась она для того, чтобы видеокарты хранили текстуры в системной памяти, соответственно имели меньше памяти на плате, и, соответственно, дешевели.
[img]http://de.ifmo.ru/bk_netra/image.php?img=agp-arh.gif&bn=28[/img]
Парадокс в том, что видеокарты все-таки предпочитают иметь БОЛЬШЕ памяти, и ПОЧТИ НИКТО не хранит текстуры в системной памяти, поскольку текстур такого объема пока (подчеркиваю - пока) практически нет. При этом в силу удешевления памяти вообще, карты особенно и не дорожают. Однако практически все считают, что будущее - за AGP, а бурное развитие мультимедиа-приложений (в особенности - игр) может скоро привести к тому, что текстуры перестанут влезать и в системную память. Поэтому имеет смысл, особо не вдаваясь в технические подробности, рассказать, как же это все работает.
Итак, начнем с начала, то есть с AGP 1.0. Шина имеет два основных режима работы: Execute и DMA. В режиме DMA основной памятью является память карты. Текстуры хранятся в системной памяти, но перед использованием (тот самый execute) копируются в локальную память карты. Таким образом, AGP действует в качестве "тыловой структуры", обеспечивающей своевременную "доставку патронов" (текстур) на передний край (в локальную память). Обмен ведется большими последовательными пакетами.
В режиме Execute локальная и системная память для видеокарты логически равноправны. Текстуры не копируются в локальную память, а выбираются непосредственно из системной. Таким образом, приходится выбирать из памяти относительно малые случайно расположенные куски. Поскольку системная память выделяется динамически, блоками по 4К, в этом режиме для обеспечения приемлемого быстродействия необходимо предусмотреть механизм, отображающий последовательные адреса на реальные адреса 4-х килобайтных блоков в системной памяти. Эта нелегкая задача выполняется с использованием специальной таблицы (Graphic Address Re-mapping Table или GART), расположенной в памяти.
[img]http://de.ifmo.ru/bk_netra/image.php?img=agp-gart.gif&bn=28[/img]
При этом адреса, не попадающие в диапазон GART (GART range), не изменяются и непосредственно отображаются на системную память или область памяти устройства (device specific range). На рисунке в качестве такой области показан локальный фрейм-буфер карты (Local Frame Buffer или LFB). Точный вид и функционирование GART не определены и зависят от управляющей логики карты.
Шина AGP полностью поддерживает операции шины PCI, поэтому AGP-траффик может представлять из себя смесь чередующихся AGP и PCI операций чтения/записи. Операции шины AGP являются раздельными (split). Это означает, что запрос на проведение операции отделен от собственно пересылки данных.
[img]http://de.ifmo.ru/bk_netra/image.php?img=agp-traffic.gif&bn=28[/img]
Такой подход позволяет AGP-устройству генерировать очередь запросов, не дожидаясь завершения текущей операции, что также повышает быстродействие шины.
В 1998 году спецификация шины AGP получила дальнейшее развитие - вышел Revision 2.0. В результате использования новых низковольтных электрических спецификаций появилась возможность осуществлять 4 транзакции (пересылки блока данных) за один 66-мегагерцовый такт (AGP 4x), что означает пропускную способность шины в 1GB/сек.
4.9 Шина PCMCIA
[img]http://de.ifmo.ru/bk_netra/image.php?img=pcmciadev.jpg&bn=28[/img]
С появлением портативных компьютеров остро встал вопрос о создании универсального и компактного интерфейса для подключения внешних устройств. В качестве такого интерфейса стандартом де-факто стал интерфейс PCMCIA, поддерживаемый Ассоциацией PCMCIA (Personal Computer Memory Card International Association), объединяющей компании, разрабатывающие периферийные устройства для портативных компьютеров. Аббревиатура PCMCIA вызывала много нареканий своей труднопроизносимостью. Существует даже шутливая интерпретация PCMCIA как (People Cant Memorize Computer Industry Acronyms), что переводится как "Люди не в состоянии запомнить компьютерные аббревиатуры". В результате для PCMCIA сегодня принято использовать более благозвучный термин PC Card.
Устройства PC Card размером с обычную кредитную карточку являются альтернативой обычным платам расширения, подключаемым к шине ISA . В этом стандарте выпускаются модули памяти, модемы и факс-модемы, SCSI-адаптеры , звуковые карты , сетевые карты , винчестеры, интерфейсы CD-ROM и т. д.
Стандарт PC Card для связи между картой и соответствующим устройством (адаптером или портом) компьютера определяет 68-контактный механический соединитель. На нем выделены 16 разрядов под данные и 26 разрядов под адрес, что позволяет непосредственно адресовать 64 Мбайта памяти. На стороне модуля PC Card расположен соединитель-розетка, а на стороне компьютера - соединитель-вилка. Кроме того, стандарт определяет три различные длины контактов соединителя-вилки. Поскольку подключение и отключение PC Card может происходить при работающем компьютере (так называемое "горячее"), то для того, чтобы на модуль сначала подавалось напряжение питания, а лишь затем напряжение сигнальных линий, соответствующие контакты выполнены более длинными.
Вторая версия спецификации PCMCIA определяет типы габаритных размеров для PC Card (Type I, Type II и Type III), отличающиеся по толщине. Два первых типа PC Card имеют размеры до 54 мм (2,12 дюйма) в ширину и 85,6 мм (3,37 дюйма) в длину. Устройства PC Card, соответствующие размерам Type I, должны иметь толщину 3,3 мм, а соответствующие Type II - 5,0 мм в середине и 3,3 мм по краям. PC Card Type III имеют толщину 10,5 мм и, следовательно, непригодны для использования в слотах для модулей Type I и II. Толщина модуля Type III по краям также равна 3,3 мм. Для третьего типа модулей необходимы так называемые слоты двойной высоты. Модули Type III встречаются очень редко и содержат обычно жесткие диски.
Для увеличения пропускной способности шины PCMCIA была предложена спецификация CardBus, которая является расширением шины PCI для устройств PC Card. Платы CardBus поддерживают 32-разрядный обмен на частоте 33 МГц. В этом конструктиве выпускаются 100Мбитные сетевые карты, интерфейсные платы SCSI и другие устройства, требующие быстрого обмена по шине. Контроллеры CardBus поддерживаются в операционных системах Windows 95, OSR 2.5 и в полной мере в Windows 98.
При использовании старых карт PCMCIA в разъемах CardBus возможны проблемы с совместимостью. Для устройств PC Card случаи аппаратной и программной несовместимости до сих пор достаточно распространены, поэтому при выборе соответствующих плат расширения PC Card необходимо проводить тщательную проверку их работоспособности в конкретной аппаратно-программной конфигурации.