Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шины.PCI,.USB.и.FireWire

.pdf
Скачиваний:
62
Добавлен:
19.03.2016
Размер:
6 Mб
Скачать

Message Data — 16$битный шаблон данных, передаваемых в сообщении по линиям AD[15:0]. Значение шаблона записывается системным ПО на этапе конфигурирования. В сообщении, передаваемом функцией, для различения разных условий прерывания могут модифицироваться только несколько млад$ ших бит, количество которых определяется значением поля Multiple Message Enable. Остальные биты сообщения должны соответствовать шаблону; биты [31:16] всегда нулевые;

Message Control — управление сообщениями (16 бит). Битом 7 функция сооб$ щает о способности генерировать 64$битный адрес. В поле Multiple Message Capable функции задается ее способность генерировать различимые условия прерывания, в поле Multiple Message Enable система указывает функции допустимое число условий. Здесь значения 000–101 двоично кодируют число младших бит шаблона, которые устройство может модифицировать для иден$ тификации источника прерывания: 000 — ни одного (устройству доступен лишь один идентификатор), 101 — пять, значения 110 и 111 зарезервированы. Бит MSI_Enable разрешает использование MSI.

По аппаратному сбросу MSI запрещен; его можно разрешить программно уста$ новкой бита MSI Enable (после программирования адреса и шаблона сообщения), и тогда генерация прерываний по линиям INTx# запрещается. Самая «богатая» пре$ рываниями функция (для которой Multiple Message Enable = 101) при записи сообщения идентифицирует конкретное условие прерывания (одно из 32 возмож$ ных) по линиям AD[4:0].

Рис.3.2. Формат регистров MSI: а — расположение регистров в структуре MSI Capability с 32 битным адресом; б — с 64 битным адресом; в — регистр Message_Control

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

Прерывания через MSI позволяют избежать бед разделяемости, обусловленной дефицитом линий запросов прерывания в PC. Кроме того, они решают проблему целостности данных: все данные, записываемые устройством до посылки MSI, дой$ дут до получателя гарантированно раньше начала обработки MSI. Прерывания через MSI от одних устройств в одной системе могут использоваться наряду с обыч$ ными INTx# от других устройств. Но каждое устройство (функция), использующее MSI, не должно использовать прерывания через линии INTx#.

Механизм MSI может использоваться на системных платах, имеющих «продвину$ тый» контроллер прерываний APIC. Правда, конкретная реализация поддержки MSI может потенциальные возможности облегчения идентификации большого числа запросов прерывания свести лишь к увеличению числа доступных запросов прерываний (и используемых ими векторов). Так, например, для системных плат на чипсетах с хабом ICH2 и ICH3 фирмы Intel поддержка MSI сводится к органи$ зации альтернативных путей подачи запросов IRQ[1:23] на входы APIC (запросы IRQ с номерами 0, 2, 8 и 13 через MSI не передаются). Всем устройствам PCI назна$ чается один и тот же адрес сообщений (Message Address = FEC00020h), по кото$ рому в APIC находится регистр IRQ Pin assertion. В сообщении используются лишь младшие 5 бит, в которых указывается номер взводимого запроса прерыва$ ния в диапазоне 1–23 (исключая 2, 8 и 13). Линии запросов, используемые в MSI, программируются на чувствительность к перепаду (сообщения имитируют толь$ ко фронт сигнала). По этой причине прерывания с номерами, используемыми в MSI, не могут использоваться совместно (разделяемо) с прерываниями, получен$ ными другими способами (по линиям запросов от устройств PCI и от других уст$ ройств системной платы). Возможно, что в других платформах прерывания через MSI используются более эффективно.

Мосты PCI и PCI X

Мосты PCI (PCI Bridge) — специальные аппаратные средства соединения шин PCI (и PCI$X) между собой и с другими шинами. Главный мост (Host Bridge) исполь$ зуется для подключения PCI к центру компьютера (системной памяти и процес$ сору). «Почетной обязанностью» главного моста является генерация обращений к конфигурационному пространству под управлением центрального процессора, что позволяет хосту (центральному процессору) выполнять конфигурирование всей подсистемы шин PCI. В системе может быть и несколько главных мостов, что позволяет предоставить высокопроизводительную связь с центром большему чис$ лу устройств (число устройств на одной шине ограниченно). Из этих шин одна назначается условно главной (bus 0).

Равноранговые мосты PCI (Peer to Peer Bridge) используются для подключения дополнительных шин PCI. Эти мосты всегда вносят дополнительные накладные расходы на передачу данных, так что эффективная производительность при обме$ не устройства с центром снижается с каждым встающим на пути мостом.

Для подключения шин PCMCIA, CardBus, MCA, ISA/EISA, X$Bus и LPC исполь$ зуются специальные мосты, входящие в чипсеты системных плат или же являю$ щиеся отдельными устройствами PCI (микросхемами). Эти мосты выполняют преобразование интерфейсов соединяемых ими шин, синхронизацию и буфериза$ цию обменов данных.

Каждый мост программируется — ему указываются диапазоны адресов в простран$ ствах памяти и ввода$вывода, отведенные устройствам его шин. Если адрес ЦУ текущей транзакции на одной шине (стороне) моста относится к шине противопо$ ложной стороны, мост транслирует транзакцию на соответствующую шину и обес$ печивает согласование протоколов шин. Таким образом, совокупность мостов PCI выполняет маршрутизацию (routing) обращений по связанным шинам. Если в си$ стеме имеется несколько главных мостов, то сквозная маршрутизация между уст$ ройствами разных шин может оказаться невозможной: главные мосты друг с дру$ гом могут оказаться связанными лишь через магистральные пути контроллера памяти. Поддержка трансляции всех типов транзакций PCI через главные мосты в этом случае оказывается чересчур сложной, а потому спецификацией PCI строго и не требуется. Таким образом, все активные устройства всех шин PCI могут обра$ щаться к системной памяти, но возможность равнорангового общения может ока$ заться в зависимости от принадлежности этих устройств той или иной шине PCI.

Применение мостов PCI предоставляет такие возможности, как:

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

разделение устройств PCI на сегменты — шины PCI — с различными характе$ ристиками разрядности (32/64 бит), тактовой частоты (33/66/100/133 МГц), протокола (PCI, PCI$X Mode 1, PCI$X Mode 2, PCI Express). На каждой шине все абоненты равняются на самого слабого участника; правильная расстановка устройств по шинам позволяет с максимальной эффективностью использовать возможности устройств и системной платы;

организация сегментов с «горячим» подключением/отключением устройств;

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

Каждый мост PCI соединяет только две шины: первичную (primary bus), находя$ щуюся ближе к вершине иерархии, с вторичной (secondary bus); интерфейсы мос$ та, которыми он связан с этими шинами, называются соответственно первичным и вторичным. Допускается только чисто древовидная конфигурация, то есть две шины соединяются друг с другом лишь одним мостом и нет «петель» из мостов. Шины, подсоединяемые ко вторичному интерфейсу данного моста другими мос$ тами, называются подчиненными (subordinated bus). Мосты PCI образуют иерар$ хию шин PCI, на вершине которой находится главная шина с нулевым номером, подключенная к главному мосту. Если главных мостов несколько, то из их шин (равных друг другу по рангу) условно главной будет шина, которой назначен ну$ левой номер.

Мост должен выполнять ряд обязательных функций:

обслуживать шину, подключенную к его вторичному интерфейсу:

выполнять арбитраж — прием сигналов запроса REQx# от ведущих устройств шины и предоставление им права на управление шиной сигналами GNTx#;

парковать шину — подавать сигнал GNTx# какому$то устройству, когда управ$ ление шиной не требуется ни одному из задатчиков;

генерировать конфигурационные циклы типа 0 с формированием индиви$ дуальных сигналов IDSEL к адресуемому устройству PCI;

«подтягивать» управляющие сигналы к высокому уровню;

определять возможности подключенных устройств и выбирать удовлетво$ ряющий их режим работы шины (частота, разрядность, протокол);

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

поддерживать карты ресурсов, находящихся по разные стороны моста;

отвечать под видом целевого устройства на транзакции, инициированные мастером на одном интерфейсе и адресованные к ресурсу, находящемся со сто$ роны другого интерфейса; транслировать эти транзакции на другой интерфейс,

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

Мосты, выполняющие данные функции, называются прозрачными (transparrent bridge); для работы с устройствами, находящимися за такими мостами, не требует$ ся дополнительных драйверов моста. Именно такие мосты описаны в специфика$ ции PCI Bridge 1.1, и для них, как устройств PCI, есть специальный класс (06). В данном случае подразумевается «плоская» модель адресации ресурсов (памяти и ввода$вывода): каждое устройство имеет свои адреса, уникальные (не пересека$ ющиеся с другими) в пределах данной системы (компьютера).

Существуют и непрозрачные мосты (non$transparrent bridge), которые позволяют организовывать обособленные сегменты со своими локальными адресными про$ странствами. Непрозрачный мост выполняет трансляцию (преобразование) адре$ сов для транзакций, у которых инициатор и целевое устройство находятся по раз$ ные стороны моста. Досягаемыми через такой мост могут быть и не все ресурсы (диапазоны адресов) противоположной стороны. Непрозрачные мосты использу$ ются, например, когда в компьютере выделяется подсистема «интеллигентного ввода$вывода» (I20) со своим процессором ввода$вывода и локальным адресным пространством.

Маршрутизирующие функции прозрачного моста

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

Маршрутизация по иерархическому адресу

Через номера шины и устройства адресуются транзакции конфигурационной за$ писи и чтения, генерации специального цикла, а в PCI$X еще и завершение рас$ щепленной транзакции, а также сообщения DIM. Для этих транзакций маршрути$ зация основана на системе нумерации шин. Номера назначаются шинам PCI при конфигурировании системы строго последовательно, номера мостов соответству$ ют номерам их вторичных шин. Так, главный мост имеет номер 0. Номера подчи$ ненных шин моста начинаются с номера, следующего за номером его вторичной шины. Таким образом, для каждого моста необходимые ему знания топологии шин системы описываются списком номеров шин — тремя числовыми параметрами в его конфигурационном пространстве:

Primary Bus Number — номер первичной шины;

Secondary Bus Number — номер вторичной шины (это и номер моста);

Subordinate Bus Number — максимальный номер подчиненной шины.

Все шины с номерами в диапазоне от Secondary Bus Number до Subordinate Bus Number включительно будут лежать со стороны вторичного интерфейса, все ос$ тальные — на стороне первичного.

Знание номеров шины позволяет мостам распространять обращения к конфигу$ рационным регистрам устройств в сторону от хоста к подчиненным шинам и рас$ пространять специальные циклы во всех направлениях. Ответы на расщепленные транзакции (Split Complete) мост транслирует с одного интерфейса на другой, если они адресованы к шине противоположного интерфейса.

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

Преобразует их в конфигурационные циклы типа 0 или специальные циклы, если номер шины (на линиях AD[23:16]) соответствует номеру вторичной шины. При преобразовании в цикл типа 0 номер устройства с первичной шины, полу$ ченный в фазе адреса, декодируется в позиционный код на вторичной шине (см. главу 2), номер функции и регистра передается без изменений, биты AD[1:0] на вторичной шине обнуляются. В PCI$X кроме позиционного кода на вторич$ ную шину передается и номер устройства. Преобразование в специальный цикл (изменение кода команды) производится, если в полях номера устройства и функции все биты единичные, а в поле номера регистра — нулевые.

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

Игнорирует, если номер шины лежит вне диапазона номеров шин стороны вто$ ричного интерфейса.

Со стороны вторичного интерфейса мост передает на первичный только конфигу$ рационные циклы типа 1, относящиеся к специальным циклам (в полях номера устройства и функции все биты единичные, а в поле номера регистра — нулевые). Если номер шины соответствует номеру первичной шины, мост преобразует эту транзакцию в специальный цикл.

Если конфигурационный цикл не воспринимается ни одним из устройств, мосты могут эту ситуацию отрабатывать двояко: фиксировать отсутствие устройства (сра$ ботает Master Abort) или же выполнять операции вхолостую. Однако в любом слу$ чае чтение конфигурационного регистра несуществующего устройства (функции) должно возвращать значение FFFFFFFFh (это будет безопасной информацией, поскольку даст недопустимое значение идентификатора устройства).

Маршрутизация по «плоскому» адресу

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

честве целевого устройства на транзакции, «увиденные» им на первичном интер$ фейсе, и инициировать их в роли мастера на вторичном интерфейсе; остальные транзакции на первичном интерфейсе он игнорирует. Для адресов вне этих облас$ тей мост должен вести себя «зеркально»: отвечать в качестве целевого устройства на транзакции, «увиденные» им на вторичном интерфейсе, и инициировать их на первичном интерфейсе; остальные транзакции на вторичном интерфейсе он игно$ рирует. Каким образом мост транслирует транзакции, описано далее.

Каждый мост PCI$PCI имеет по одному описателю на каждый из трех типов ре$ сурсов: ввода$вывода, «настоящей» памяти (допускающей предвыборку) и памяти, на которую отображены регистры ввода$вывода. В описателе указывается базо$ вый адрес и размер области. Ресурсы одного типа для всех устройств, находящих$ ся за мостом (на вторичной и всех подчиненных шинах), должны быть собраны в одну, по возможности компактную, область.

Область адресов ввода вывода задается 8$битными регистрами I/O Base и I/O Limit с гранулярностью 4 Кбайт. Эти регистры своими старшими битами определяют только 4 старших бит 16$разрядного адреса начала и конца транслируемой обла$ сти. Младшие 12 бит для I/O Base подразумеваются 000h, для I/O Limit — FFFh. Если на вторичной стороне моста нет портов ввода$вывода, то в I/O Limit записы$ вается число меньшее, чем в I/O Base. Если мост не поддерживает карту адресов ввода$вывода, то оба регистра при чтении всегда возвращают нули; такой мост тран$ закции ввода$вывода с первичной на вторичную сторону не транслирует. Если мост поддерживает только 16$битную адресацию ввода$вывода, то при чтении в млад$ ших 4 бит обоих регистров всегда возвращает нули. При этом подразумевается, что старшие биты адресов AD[31:16] = 0, но они также подлежат декодированию. Если мост поддерживает 32$битную адресацию ввода$вывода, то при чтении в млад$ ших четырех битах обоих регистров возвращается 0001. При этом старшие 16 бит нижней и верхней границ находятся в регистрах I/O Base Upper 16 Bits и I/O

Limit Upper 16 Bits.

Мост транслирует транзакции ввода$вывода указанной области с первичного ин$ терфейса на вторичный только при установленном бите I/O Space Enable в реги$ стре команд. Транзакции ввода$вывода со вторичного интерфейса на первичный транслируются только при установленном бите Bus Master Enable.

Ввод вывод, отображенный на память, может использовать адреса в пределах пер$ вых 4 Гбайт (предел 32$битной адресации) с гранулярностью 1 Мбайт. Транслиру$ емая область задается регистрами Memory Base (начальный адрес) и Memory Limit (конечный адрес), в которых задаются только старшие 12 бит адреса AD[31:20], младшие биты AD[19:0] подразумеваются равными 0 и FFFFFh соответственно. Кроме того, транслироваться может и область памяти VGA (см. далеее).

«Настоящая» память устройств PCI, допускающая предвыборку, может распола$ гаться как в пределах 32$битной адресации (4 Гбайт), так и 64$битной, с грануляр$ ностью 1 Мбайт. Транслируемая область задается регистрами Prefetchable Memory Base (начальный адрес) и Prefetchable Memory Limit (конечный адрес). Если в младших битах [3:0] этих регистров чтение возвращает 0001, то это признак

поддержки 64$битной адресации. В этом случае старшая часть адресов находится в регистрах Prefetchable Base Upper 32 Bits и Prefetchable Limit Upper 32 Bits. Мост может и не иметь специальной поддержки предвыбираемой памяти, тогда вышеуказанные регистры будут при чтении возвращать нули.

Мост транслирует транзакции памяти указанных областей с первичного интер$ фейса на вторичный только при установленном бите Memory Space Enable в реги$ стре команд. Транзакции памяти со вторичного интерфейса на первичный транс$ лируются только при установленном бите Bus Master Enable.

С мостами связаны понятия позитивного и субтрактивного декодирования адре$ сов. Рядовые агенты PCI (устройства и мосты) отзываются только на обращения по адресам, принадлежащим областям, описанным в их конфигурационном про$ странстве (через базовые адреса и диапазоны памяти или ввода$вывода). Такой способ декодирования называется позитивным. Мост с позитивным декодирова нием (positive decoding) пропускает через себя только обращения, принадлежащие определенному списку адресов, заданному в его конфигурационных регистрах. Мост с субтрактивным декодированием (subtractive decoding) пропускает через себя обращения, не относящиеся к другим устройствам. Его области прозрачности фор$ мируются как бы вычитанием (откуда и название) из общего пространства облас$ тей, описанных в конфигурационных пространствах других устройств. Физиче$ ски субтрактивное декодирование устройством (мостом) выполняется проще: устройство отслеживает на шине все транзакции интересующего его типа (обычно обращения к портам или памяти), и если не видит на них ответа (сигнала DEVSEL# в тактах 1–3 после FRAME#) ни от одного из обычных устройств, считает эту тран$ закцию «своей» и само вводит DEVSEL#. Возможность субтрактивного декодирова$ ния имеется только у мостов определенного типа, и она является дополнением к позитивному декодированию. Субтрактивное декодирование приходится при$ менять для старых устройств (ISA, EISA), чьи адреса разбросаны по пространству так, что их не собрать в область позитивного декодирования приемлемого размера. Субтрактивное декодирование применяется для мостов, подключающих старые шины расширения (ISA, EISA). Позитивное и субтрактивное декодирование от$ носится только к обращениям, направленным в пространства памяти и ввода$вы$ вода. Конфигурационные обращения маршрутизируются с помощью номера шины, передаваемого в циклах типа 1 (см. главу 2): каждый мост «знает» номера всех шин, его окружающих. На поддержку субтрактивного декодирования может ука$ зывать только специфический код класса 060401h, обнаруженный в заголовке кон$ фигурационных регистров данного моста.

Поддержка адресации ввода вывода шины ISA

В адресации портов ввода$вывода есть особенности, связанные с «наследием», доставшимся от шины ISA. 10$битное декодирование адреса, применявшееся в ши$ не ISA, приводит к тому, что каждый из адресов диапазона 0–3FFh (предел охвата 10$битным адресом) имеет еще по 63 псевдонима (aliase), по которым можно обра$ щаться к тому же устройству ISA. Так, например, для адреса 0378h псевдонимами являются x778h, xB78h и xF78h (x — любая шестнадцатеричная цифра). Псевдо$

нимы адресов ISA используются в разных целях, в частности, и в системе ISA PnP. Область адресов 0–FFh зарезервирована за системными (не пользовательскими) устройствами ISA, для которых псевдонимы не используют. Таким образом, в каж$ дом килобайте адресного пространства ввода$вывода последние 768 байт (адреса 100–1FF) могут являться псевдонимами, а первые 256 байт (0–0FFh) — нет. В ре$ гистре управления мостом присутствует бит ISA Enable, установка которого при$ ведет к вычеркиванию областей$псевдонимов из общей области адресов, описан$ ной регистрами моста I/O Base и I/O Limit. Это вычеркивание действует только для первых 64 Кбайт адресного пространства (16$битного адреса). Мост не будет транслировать с первичного интерфейса на вторичный транзакции, принадлежа$ щие этим вычеркнутым областям. И наоборот, с вторичного интерфейса транзак$ ции, относящиеся к данным областям, будут транслироваться на первичный. Эта возможность нужна для совместного использования малого (64 Кбайт) простран$ ства адресов устройствами PCI и ISA, примиряя «изрезанность» карты адресов ISA с возможностью задания лишь одной области адресов ввода$вывода для каж$ дого моста. Данный бит имеет смысл устанавливать для мостов, за которыми нет устройств ISA. Эти мосты будут транслировать «вниз» все транзакции ввода$вы$ вода, адресованные к первым 256 байтам каждого килобайта области адресов, опи$ санной регистрами моста I/O Base и I/O Limit. Эти адреса конфигурационное ПО может выделять устройствам PCI, находящимся «ниже» данного моста (кро$ ме адресов 0000h–00FFh, относящихся к устройствам системной платы).

Специальная поддержка VGA

В мостах может присутствовать специальная поддержка графического адаптера VGA, который может находиться на стороне вторичного интерфейса моста. Эта поддержка индицируется и разрешается битом VGA Enable конфигурационного регистра моста. При включенной поддержке мост осуществляет трансляцию обра$ щений к памяти VGA в диапазоне адресов 0A0000h–0BFFFFh, а также регистрам ввода$вывода в диапазонах 3B0h–3BBh и 3C0h–3DFh и всех их 64 псевдонимов (линии адреса AD[15:10] не декодируются). Такой особый подход объясняется да$ нью обеспечения совместимости с самым распространенным графическим адапте$ ром и невозможностью описания всех необходимых областей в таблицах диапазо$ нов адресов для позитивного декодирования. Кроме того, для поддержки VGA требуется особый подход к обращениям в регистры палитр, которые расположены по адресам 3C6h, 3C8h и 3C9h, и их псевдонимам (здесь опять же линии адреса AD[15:10] не декодируются).

Слежение за записью в палитры VGA (VGA Palette Snooping) является исключени$ ем из правила однозначной маршрутизации обращений к памяти и вводу$выводу. Графическая карта в компьютере с шиной PCI обычно устанавливается в эту шину или в порт AGP, что логически эквивалентно установке в шину PCI. На VGA$ карте имеются регистры палитр (Palette Registers), традиционно приписан$ ные к пространству ввода$вывода. Если графическая система содержит еще и карту смешения сигналов графического адаптера с сигналом «живого видео», пере$ хватывая двоичную информацию о цвете текущего пиксела по шине VESA Feature

Connector (снимаемую до регистра палитр), цветовая гамма будет определяться регистрами палитр, размещенными на этой дополнительной карте. Возникает си$ туация, когда операция записи в регистр палитр должна отрабатываться одновре$ менно и в графическом адаптере (на шине PCI или AGP), и в карте видеорасшире$ ния, которая может размещаться даже на другой шине (в том числе и ISA). В CMOS Setup может присутствовать параметр PCI VGA Palette Snoop, управляющий битом VGA Snoop Enable в конфигурационном регистре моста PCI$ISA. При его включе$ нии запись в порты ввода$вывода по адресу регистров палитр будет вызывать тран$ закцию не только на той шине, на которой установлен графический адаптер, но и на других шинах. Чтение же по этим адресам будет выполняться только с самого графического адаптера. Заметим, что если установлен бит VGA Enable, то через мост пойдут и транзакции чтения, поскольку адреса регистров палитр входят в диапа$ зон общих адресов портов VGA. Реализация слежения может возлагаться и на гра$ фическую карту PCI. Для этого она во время записи в регистр палитр фиксирует данные, но сигналы квитирования DEVSEL# и TRDY# не вырабатывает, в результате мост распространяет этот неопознанный запрос на шину ISA.

Транслирование транзакций и буферизация

Транслирование транзакций — довольно сложная задача моста, и от способа ее решения зависит производительность системы в целом. Какие именно транзакции следует транслировать с одного интерфейса на другой, решает вышеописанная часть моста, занимающаяся маршрутизацией. При транслировании транзакции мост, как целевое устройство PCI, сразу отвечает ее инициатору, независимо от того, что происходит на другой стороне. Это позволяет мосту, как любому устройству PCI, соблюдать ограничения на время отклика и выполнения транзакций. Далее, мост запрашивает управление шиной на противоположной стороне и, получив управ$ ление, проводит эту транзакцию от своего имени. Если транслируется транзакция чтения, то мост должен принять ее результаты, чтобы далее переслать их истинно$ му инициатору транзакции. Этот общий сценарий для различных команд реализу$ ется по$разному, но «при всем богатстве выбора» у моста PCI есть всего два вари$ анта ответа инициатору:

отложить транзакцию, ответив условием Retry. Этот вариант называется отло женной транзакцией (delayed transaction); он заставит инициатора через неко$ торое время повторить попытку данной транзакции. За это время мост должен «провернуть» заказанную транзакцию на другой стороне интерфейса;

сделать вид, что транзакция успешно завершена. Такой вариант, называемый отправленной записью (posted write), возможен только для операций записи в память. Реальная запись произойдет позже, когда мост сумеет получить уп$ равление шиной на противоположном интерфейсе.

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