Стандартный мост pci pci что это

Стандартный мост pci pci что это

Мы уже сообщали о продукции компании WINBOND [1], выпускающей широкую гамму разнообразных микросхем, начиная с памяти и микроконтроллеров и заканчивая приборами для мобильных средств связи и распознавания речи. Примерно в середине этого списка находятся ИС для компьютеров. На этот раз рассмотрим контроллеры ввода/вывода W83С553F и W83С554F, которые выполняют функции моста между шинами PCI и ISA. Тема эта должна быть интересна хотя бы уже потому, что смена поколений компьютеров требует от разработчиков встроенных плат с интерфейсом ISA стремительной модернизации оборудования, чтобы не потерять своих заказчиков.

Чтобы избежать разночтений, определим основные термины.
Шина PCI (Peripheral Component Interconnect) — шина соединения периферийных компонентов, являющаяся мостом между системной шиной процессора и шиной ввода/вывода ISA. В каждом обмене по шине (транзакции) участвуют два устройства — инициатор обмена (ведущий шины) и целевое устройство (ведомый шины).
Шина ISA (Industry Standard Architecture) — шина расширения, ставшая промышленным стандартом. Она обеспечивает возможность отображения 8- и 16-разрядных регистров на пространство ввода/вывода и памяти. Абоненты шины могут использовать три 8-бит канала DMA, а на 16-бит шине доступны ещё три 16-разрядных канала. Канал DMA используется для обеспечения арбитража управления шиной, а адаптер Bus-Master формирует все адресные и управляющие сигналы шины.

Системный контроллер ввода/вывода W83С553F/W83С554F с PCI арбитром (W83С554F полностью аналогичен W83С553F, но поддерживает режим UltraDMA, поэтому в дальнейшем речь пойдёт об обеих микросхемах) предназначен для использования с микроконтроллерами семейства х86 или PowerPC в любой системе с шиной PCI. Эта микросхема поддерживает все реализации главного (CPU) моста, совместимые с протоколом PCI 2.1, и обеспечивает прямое сопряжение шин PCI и ISA, включая два канала IDE с поддержкой до четырех внешних устройств.

W83С553F является универсальным устройством PCI, которое можно использовать для построения различных видов CPU-PCI моста. Данная ИС имеет 32-разрядную ISA DMA адресацию (что предпочтительнее, чем 24-разрядная) для упрощения применения в устройствах с рекомпилированными версиями 32-разрядных операционных систем (Windows NT, PowerPC, Alpha или иные на базе RISC-процессоров).

В состав контроллера W83С553F входят два 7-канальных 32-разрядных контроллера DMA 82С37А, поддерживающих быструю DMA передачу данных от ISA шины на изолированную шину PCI через 4-байт линейный буфер. Оба этих контроллера способны выполнять передачу с "разбросанной" записью/чтением со сбором данных из нескольких блоков памяти.

Cистемный контроллер ввода/вывода обеспечивает мост между шиной PCI и шиной расширения ISA. Кроме этого, он имеет встроенный ведущий IDE-контроллер для шины PCI, арбитр шины PCI (который может быть отключен в случае необходимости) и множество фун кций ввода/вывода для современных систем на базе ISA. В состав W83С553F входит также блок логики полного интерфейса PCI (инициатор и целевое устройство) и интерфейса ISA (ведущий и ведомый). Наличие арбитража PCI и ISA, контроллера прерываний на 14 уровней, 16-разрядного BIOS таймера, трёх программируемых счётчиков-таймеров, логики управления немаскируемого прерывания и регистра управления питанием при сбойных ситуациях позволяет говорить о контроллере W83С553F как о мощном аппаратном средстве.

Встроенный контроллер двунаправленного порта PCI IDE обеспечивает высокую скорость передачи данных между IDE-устройствами и PCI-шиной. Каждое из четырёх устройств IDE имеет свои программируемые регистры для выбора скорости конвейерной передачи данных (16 и 32 разряда), систему опережающего чтения и задержки записи. Наличие большого буфера DMA FIFO (64 байт) позволяет избавиться от необходимости введения состояния ожидания при передаче данных через шину PCI. Ведущий шины IDE-устройств значительно повышает общую производительность системы с PCI-конфигурацией со многими инициаторами обмена за счёт резкого снижения использования центрального процессора при обращении к жёсткому диску или к CD-ROM. При частоте шины 33 МГц может быть обеспечена пакетная передача данных со скоростью 132 Мбайт/с на шине PCI.

В качестве ядра системного контроллера ввода/вывода W83С553F использовано оригинальное ядро Sonata контроллера W83789F с некоторыми изменениями в маршрутизации прерываний. Рассматриваемая ИС полностью совместима с адаптером Bus-Master фирмы INTEL и спецификацией SFF8038i. Поддержка BIOS обеспечивается ПО всех ведущих компаний.
Структурная схема контроллера W83С553F приведена на рис. 1.

Контроллер W83С553F представляет собой многофункциональное PCI-устройство: "функция 0" — мост PCI-ISA; "функция 1" — IDE-контроллер ведущего шины. Каждая из функций имеет свою собственную область конфигурации PCI и область регистров ввода/вывода.

Шинная иерархия контроллера W83С553F обеспечивает параллельное выполнение операций на всех шинах одновременно и структурирована следующим образом:

  • шина PCI — первичная шина ввода/вывода;
  • шина ISA — вторичная шина ввода/вывода.
  • Контроллер принимает циклы (адреса и данных) от шины PCI и преобразует их на шину ISA. Он также запрашивает PCI-мост ведущего для формирования PCI-циклов по запросу IDE DMA-устройства или ведущего шины ISA. Таким образом, интерфейс шины ISA содержит контроллер стандартной шины ISA и схему буферизации данных. Управление ISA-шиной обеспечивает формирование команд ISA, восстановление при сбое ввода/вывода, введение тактов ожидания и маршрутизацию данных в буфере. Дополнительно возможна поддержка пяти слотов ISA без схемы внешней буферизации.

    W83С553F инициализирует и выполняет регенерацию стандартной ISA-шины. Формирование команды и адреса регенерации шины ISA выполняет встроенный контроллер. Поскольку регенерация ISA-шины "прозрачна" для шины PCI и цикла DMA, то арбитр моста разрешает любые конфликты между шиной PCI, регенерацией и циклами DMA.

    Передача данных устройств IDE выполняется по двум специальным протоколам. Стандартный протокол — выполнение PIO-циклов на PCI-шине и IDE-интерфейсах. Расширенный протокол позволяет W83С553F передавать данные через шину PCI (как ведущего шины) в/из памяти и через IDE-интерфейсы с циклами DMA (единичными или многословными). Этот протокол снижает загрузку процессора при одновременном увеличении пропускной способности шины PCI.

    Все передачи данных по протоколу IDE PIO (8-, 16- или 32-разрядная) автоматически определяются и поддерживаются. Для любого отдельного прибора при операциях чтения ввода/вывода возможен режим опережающего чтения. Как следствие этого, контроллер может выполнять дополнительные IDE-циклы чтения, в то время как процессор завершает предыдущий цикл записи в память. Аналогично, для каждого прибора возможен режим задержанной записи, который позволяет IDE-контроллеру завершать текущий цикл записи при выполнении процессором следующей операции чтения системной памяти. Всё это значительно повышает производительность дисковой подсистемы при одновременном снижении загрузки системы.

    Поддержка передачи данных/команд выполняется в соответствии со спецификацией "Programming Interface for Bus Master IDE Controller" ред.1.0 (SFF8038i). Как следствие, системному процессору нет необходимости заниматься передачей данных между контроллером IDE и системной памятью (что требуется при использовании стандартного протокола PIO). Кстати, при многозадачном режиме процессор может заниматься другими задачами (при этом производительность шины PCI будет максимальной), а передачей данных займётся W83С553F (W83С554F).

    В активном состоянии W83С553F (W83С554F) контролирует все такты на шине PCI и реагирует на циклы конфигурации и ввода/вывода, причём для конфигурирования необходима непосредственная адресация, а для ввода/вывода используются данные из внутренних регистров конфигурации. Циклы ввода/вывода используются для передачи команды/состояния и данных к/от IDE-устройствам, в соответствии с данными в регистрах ведущего шины.

    Читайте также:  Русификация xiaomi mi band 3

    Одной из особенностей системного контроллера фирмы WINBOND является наличие четырёх каналов передачи данных (табл. 1). Первый канал — функции синхронизации и управления для 8-разрядных циклов ввода/вывода IDE-устройств, второй — такие же функции, но для 16- и 32-разрядных циклов ввода/вывода и используемые для передачи данных по PIO-протоколу. Третий канал передачи данных используется для доступа к внутренним регистрам конфигурации и ведущего шины IDE-прибора. Последний путь — протокол передачи данных ведущего шины. Помимо этих каналов, блок логики разделяет 8-разрядные и 16/32-разрядные циклы для управления IDE-интерфейсом и синхронизации, а также для управления упаковкой и распаковкой данных при обмене между буфером IDE и буфером PCI.

    Системный контроллер W83C553F выполняет функции интерфейса шины PCI, обеспечивая работу как инициатора обмена, так и целевого устройства. Когда установлен сигнал PIBGNT#, ведущий на основе состояния адресного декодера ISA передает ISA или DMA-цикл на шину PCI. Если PIBGNT# снят, то ведомый принимает эти циклы, инициированные от шины PCI, и направляет во внутренние регистры W83C553F или на ISA-шину. Декодер адреса шины PCI поддерживает целевое устройство при обработке циклов инициализации PCI, которые затем направляются на шину ISA.

    В том случае, когда шина PCI выступает в роли целевого устройства, контроллер W83C553F отвечает за транзакции и ввода/вывода и памяти. Он всегда устанавливается как ведомый после первой фазы данных пакетной передачи. W83C553F преобразует также отдельный цикл прерывания в два для встроенных контроллеров прерываний 82С59.

    Работа интерфейса IDE

    Управление работой интерфейса IDE осуществляется конфигурационными регистрами. Порт 0 (первичный порт) и порт 1 (вторичный) обладают идентичными свойствами и параметрами настройки. Все 8-разрядные временные интервалы предустановлены (табл. 2). 16-разрядные временные интервалы хотя и программируются, но в основном тоже имеют фиксированные значения. Установка адреса, удержание адреса и данных (при записи) имеют те же значения, что и 8-разрядные. Длительность установки адреса равна длительности команды включения записи. Это позволяет пользователю запрограммировать только команды включения-отключения для выбора режимов работы по протоколу PIO или DMA (большинство из которых также фиксированы).

    Передача данных по протоколу PIO

    При передаче данных по протоколу PIO циклы чтения/записи для ввода/вывода выполняются на интерфейсе IDE, а передача данных выполняется на шине PCI. При этом адрес IDE-устройства и сигналы выбора кристалла будут изменяться только в том случае, когда на PCI-шине определён цикл декодирования. Это уменьшает помехи от переключения IDE-интерфейса и электромагнитные помехи.

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

    16-байт буфер PIO FIFO позволяет передавать данные одновременно по двум каналам без потери данных между ними.

    Любой доступ к регистрам конфигурации и любой 8-разрядный IDE доступ выполняются в реальном времени (опережающее чтение и задержанная запись не используются). Режим опережающего чтения и задержанной записи поддерживается только 16- и 32-разрядными циклами в регистре данных IDE-устройства.

    Передача 32-разрядных данных

    Для уменьшения загрузки системы и повышения производительности в W83C553F реализована возможность передачи 32-разрядных данных. При использовании стандартного протокола PIO за один цикл ввода/вывода и один цикл памяти между устройством IDE и памятью передаётся 2 байт. Чтобы передать 4 байт данных, требуется, соответственно, два цикла ввода/вывода и два цикла памяти. Такую передачу можно выполнить за один 32-разрядный цикл ввода/вывода и один цикл памяти. Цикл процессора уменьшится вдвое, а опережающее чтение и задержанная запись улучшат производительность системы как при чтении, так и при записи данных.

    Передача данных инициатором обмена

    Когда устройства DMA выступают в качестве инициатора обмена на шине PCI, то циклы DMA выполняются на интерфейсе IDE. В этом режиме регистр управления инициатора шины устанавливает W83C553F в состояние запрета выбора для данного порта и обращается к DRQ. Если прерывание выставляется на интерфейсе IDE, то оно будет задержано при передаче данных от IDE-устройства в память до тех пор, пока буфер FIFO не освободится (содержимое перепишется в память). Для увеличения пропускной способности шины PCI, буфер FIFO инициатора шины независим от буферов PIO FIFO. Его "глубина" составляет 64 байт, что позволяет системному контроллеру передавать 8 двойных слов.

    Если в режиме инициатора обмена находятся два порта, то они будут совместно использовать один и тот же буфер FIFO. Для обеспечения "справедливой" передачи данных каждым из портов применяется арбитраж.

    Применение этого протокола для передачи данных позволяет снизить загрузку центрального процессора в среднем на 90%, поскольку ему необходимо только передать команду целевому IDE-устройству, вызвать таблицу PRD-инициатора и запрограммировать его регистры. Таким образом, на обслуживание одной команды необходимо только одно прерывание, в отличие от команд протокола PIO, где одно прерывание требуется на сектор или блок секторов, а процессор должен "вручную" предавать все данные. Помимо этого, по сравнению с протоколом PIO, почти на 90% сокращается загрузка PCI-шины: вне зависимости от скорости передачи данных IDE-устройством, передача одного сектора данных занимает не более 6 мкс. Протокол PIO позволяет передать такой же объём данных за 150 мкс.

    Контроллер прерываний 82С59А

    В состав системного контроллера фирмы WINBOND входят два контроллера прерываний, включенные каскадом на получение 15 каналов прерываний. IRQ0 подключен на выход OUT0 счётчика/таймера 82С54. Обычно прерывание формируется по нарастающему фронту сигнала прерывания IRQ. Однако, прерывания IRQ8 и IRQ13 фиксируются по спаду, разрешая прямое подключение прерывания часов реального времени (IRQ8#) или сигнала ошибки операций с плавающей точкой процессора Pentium. Для снижения уровня шумов все внешние линии прерываний нагружены через встроенные резисторы. Порт ввода/вывода и параметры каналов соответствуют требованиям IBM PC/AT.

    Контроллер DMA 82С37А

    В контроллер W83C553F интегрированы два 4-канальных контроллера DMA. Каждый из них формирует адреса памяти и сигналы управления, необходимые для передачи информации между внешним устройством и памятью без участия центрального процессора. Контроллеры включены так, чтобы обеспечить передачу данных по четырём каналам DMA для 8-разрядных периферийных устройств и по трём каналам — для 16-разрядных. Соответствие требованиям IBM PC/AT аналогичны контроллеру прерываний 82С59А.

    Системный контроллер W83C553F поддерживает A-, B- и F-типы циклов передачи. Оба контроллера DMA работают с полной 32-разрядной адресацией и обладают возможностью передачи с "разбросанной" записью/чтением со сбором данных из нескольких блоков памяти.

    Читайте также:  Как натянуть ремень на стиральной машине аристон

    Для встроенного в W83C553F трёхканального программируемого счётчика-таймера 82С54 используется кварц частотой 14,31818 МГц и делитель на 12, что даёт стандартную входную частоту 1,19318 МГц.
    Назначение счётчика-таймера остаётся без изменений:

  • генерация прерываний от системных часов;
  • генерация запросов на регенерацию памяти;
  • генерация звуковых сигналов.
  • Контроллер W83C553F содержит программируемый PCI-арбитр на 8 инициаторов обмена, который может быть адаптирован для любых системных требований. В активном состоянии такими инициаторами являются два внутренних моста (ISA и IDE), системный процессор, а также доступные системному разработчику REQ#/GNT#[4:0].

    После подачи питания по умолчанию арбитр устанавливает схему кругового обслуживания, предоставляющую всем инициатором обмена равный доступ к шине PCI. При необходимости приоритетного доступа для любой пары REQ/GNT возможно задание через регистр управления приоритетом (PCI Priority Control Register) "1" по индексу 80h функции 0 области конфигурации шины PCI.

    В число прерываний, обслуживаемых W83C553F, входят IRQ0-IRQ15, DRQ0-DRQ7, SERR#, ISA IOCHK#, INTR и немаскируемые прерывания центрального процессора (NMI). Разработчики прикладных устройств могут программировать функцию 0 регистров конфигурации PCI 60h-63h выбором отдельных IRQ и DRQ в качестве прерываний. Использование этих регистров позволяет контроллеру W83C553F работать в схеме полного управления питанием с внешним блоком управления питанием (как, например, в устройствах CPU-PCI) ("зелёные" ПК).

    Режимы процессора (Х86 или PowerPC)

    Особенностью W83C553F является наличие двух режимов процессора, которые изменяют функциональное назначение некоторых выводов микросхемы. В режиме х86 поддерживаются Intel-совместимые процессоры, включая Pentium, AMD K6, Cyrix M1, Intel P6 и другие. Режим PowerPC предназначен для процессоров IBM/Apple/Motorola PowerPC, а также для RISK-процессоров, таких как DEC Alpha, Sun SPARC и MIPS R4xxx, то есть системный контроллер ввода/вывода может формировать все необходимые сигналы сброса для микропроцессора, шины PCI и шины ISA.

    Применение системных контроллеров ввода/вывода W83C553F и W83C554F для сопряжения шин PCI и ISA позволяет решать любые задачи по построению высокопроизводительных мостов PCI-ISA. Чтобы убедиться в этом, достаточно сравнить продукцию Winbond (www.winbond.com.tw) с аналогичными изделиями других фирм (www.plx.com, www.amcc.com).

    Компанией WINBOND производится ряд микросхем (контроллеров, памяти и пр.), использование которых, совместно с контроллерами ввода/вывода, позволит разработать широчайшую гамму устройств различного назначения (www.rtcs.ru).

    Фирма RAINBOW Technologies является дистрибьютором компании WINBOND, потребители могут получить консультации и разместить свои заказы в наших офисах.

    1. Ракович Н.Н. Продукция Winbond Elecnronics // Chip News. 2001. № 3. С. 4-7.

    Книга: Аппаратные интерфейсы ПК. Энциклопедия

    6.2.10. Мосты PCI

    Для соединения шины PCI с другими шинами и между собой применяются специальные аппаратные средства — мосты PCI (PCI Bridge). Главный мост (Host Bridge) используется для подключения PCI к системной шине (системной памяти и процессору), одноранговый мост (Peer-to-Peer Bridge) — для соединения двух шин 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) пропускает через себя обращения, не относящиеся к другим устройствам. Его области прозрачности формируются вычитанием (откуда и название) из общего пространства областей, описанных списком. Возможность субтрактивного декодирования имеется только у мостов определенного типа, и она является дополнением к позитивному декодированию.

    Позитивное и субтрактивное декодирование относится только к обращениям, направленным в пространства памяти и ввода-вывода. Конфигурационные обращения маршрутизируются с помощью номера шины, передаваемого в циклах типа 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). Работает этот механизм следующим образом. Инициатор, расположенный на «быстрой» шине (это может быть и главный мост), обращается к ЦУ на медленной шине, выставляя адрес и команду, а в командах записи еще и данные. Мост сохраняет эту информацию в своих внутренних регистрах и «от имени ЦУ» вводит сигнал STOP# (прекращение типа «повтор»), что вынуждает инициатор быстро освободить шину. Тем временем мост выполняет транзакцию с настоящим ЦУ и сохраняет у себя результат ее выполнения (для команд чтения это будут данные). Инициатор, получивший ответ «повтор», вынужден снова начать точно ту же транзакцию, и теперь на нее мост быстро ответит истинным результатом, полученным от ЦУ. В то время как мост выполняет длительную операцию обмена с медленным устройством, быстрая шина остается свободной для обслуживания других инициаторов. Если по каким-либо причинам ведущее устройство «забудет» выполнить повтор транзакции, мост должен аннулировать полученные результаты. Аннулирование выполняется по таймеру (discard timer), отсчитывающему время от начала отложенной транзакции до ее повтора. Отложенные транзакции применимы к командам обращения к портам, конфигурационному пространству, подтверждению прерывания и к обычным обращениям к памяти.

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

    Мосты, инициированные на одной стороне и обращающиеся к целевому устройству на другой стороне, могут выполнять задержку передачи записи в память (posted write). При этом данные принимаются в буферы моста, и для инициатора транзакция завершится раньше, чем данные дойдут до реального получателя. Мост начнет транзакцию их доставки в удобное для другой стороны время. Порядок и количество байт, переданных получателем, обязательно должны совпадать с соответствующими данными инициатора обмена. Кроме того, сохраняется очередность операций записи и чтения. Обращение по чтению через мост вызывает принудительное освобождение буферов отложенной записи. Таким образом, инициатор имеет возможность принудительно вызвать доставку задержанных данных записи, выполняя операцию чтения «из-за моста». Записи в порты ввода-вывода откладывать имеет право только главный мост, но только для транзакций, инициированных центральным процессором. Операции чтения, естественно, выполняются сразу, поскольку без получения данных они бессмысленны.

    Мосты могут преобразовывать транслируемые ими транзакции записи в память с целью оптимизации пропускной способности шины. Так, несколько последовательных транзакций записи могут объединяться в одну пакетную, в которой лишние записи могут блокироваться с помощью сигналов разрешения байтов. Например, последовательность одиночных записей двойных слов по адресам 0, 4, Ch может быть скомбинирована (write combining) в один пакет с начальным адресом 0, а во время третьей фазы данных (когда предполагается не требуемый адрес 8) все сигналы С/BE[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. В других реализациях мосту явно указывают на данное исключение, и он сам распространяет запись в регистры палитр на другие шины.

    Ссылка на основную публикацию
    Создать новую электронную почту на яндексе бесплатно
    Всем привет! С вами снова я, Алексей. В этом посте я расскажу вам о том, как создать электронную почту на...
    Сколько человек сидит в одноклассниках
    Mail.Ru Group исследовала и сравнила аудитории самых популярных в России социальных сетей — «Одноклассники», «Мой Мир», «ВКонтакте», Facebook и Twitter....
    Сколько четырехзначных чисел можно составить из нечетных
    Условие Решение 1 Решение 2 Решение 3 Поиск в решебнике Популярные решебники Издатель: Н. Я. Виленкин, В. И. Жохов, А....
    Создать канал на ютубе регистрация бесплатно
    Добрый день, уважаемые читатели и гости моего блога! Если вы попали на эту статью, значит хотите узнать, как зарегистрироваться в...
    Adblock detector