Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Пропускная способность шин PCI и PCI-X



Декларируемая высокая пропускная способность шины достигается только в длинных пакетных циклах, однако пакетные циклы выполняются далеко не всегда. Процессор общается с устройствами PCI инструкциями обращения к памяти или вводу-выводу через главный мост, который шинные транзакции процессора транслирует в транзакции шины PCI. Поскольку у процессоров х86 основные регистры 32-битные, то одна инструкция порождает транзакцию с устройством PCI, в которой передается не более 4 байт данных, что соответст­вует одиночной передаче. Однако при записи массива данных в устройство PCI (передача с последовательно нарастающим адресом) мост может пытаться орга­низовать пакетные циклы. Пакетные циклы записи можно наблюдать, напри­мер, передавая массив данных из ОЗУ в устройство PCI строковой инструкцией MOVSD, используя префикс повтора REP. Тот же эффект даст и цикл последова­тельных операций LODSW, STOSW (и иных инструкций обращения к памяти). Одна­ко если пересылка данных организуется директивой языка высокого уровня, которая ради универсальности работает гораздо сложнее вышеприведенных ас­семблерных примитивов, транзакции, скорее всего, будут уже одиночными. Что касается чтения из устройства PCI, то здесь пакетный режим организовать сложнее. Посмотреть, каким образом происходит обращение к устройству, не­сложно при наличии осциллографа: в одиночных транзакциях сигнал FRAMES активен в течение всего одного такта, в пакетных он длиннее.

Стремиться к пакетной передаче транзакций записи стоит только в том случае, если устройство PCI поддерживает пакетные передачи в ведомом (target) ре­жиме. Если это не так, попытка пакетной передачи приведет даже к небольшой потере производительности.

При одиночных транзакциях на стандартной шине PCI достижима максималь­ная скорость чтения 33 Мбайт/с, скорость записи может достигать 66 Мбайт/с. Скорость, соизмеримую с максимальной пиковой, можно получить только при пакетных передачах. При длине пакета 16 байт (4 фазы данных) достижима скорость чтения 76 Мбайт/с и скорость записи 106,6 Мбайт/с. При шестнадца­ти фазах данных скорость чтения может достигать 112 Мбайт/с, а записи — 125 Мбайт/с. В этих выкладках не учитываются потери времени, связанные со сменой инициатора.

Итак, для выхода на максимальную производительность обмена устройства PCI сами должны быть ведущими устройствами шины, причем способными ге­нерировать пакетные циклы. Радикально повысить пропускную способность позволяет переход на частоту 66 МГц и разрядность 64 бита, что обходится не­дешево. Для того чтобы на шине могли нормально работать устройства, критич­ные ко времени доставки данных (сетевые адаптеры, устройства, участвующие в записи и воспроизведении аудио- и видеоданных, и др.), не следует пытаться «выжать» из шины ее декларированную полосу пропускания полностью. Пере­грузка шины может привести, например, к потере пакетов из-за несвоевременности доставки данных. Заметим, что адаптер Fast Ethernet (100 Мбит/с) в по­лудуплексном режиме занимает полосу около 13 Мбайт/с (10 % декларируемой полосы обычной шины), а в полнодуплексном — уже 26 Мбайт/с. Адаптер Gigabit Ethernet даже в полудуплексном режиме вписывается в полосу шины уже с натяжкой (он «выживает» лишь за счет больших внутренних буферов), для него больше подходят 64 бит и 66 МГц. Существенное повышение пиковой скорости и эффективной пропускной способности дает переход на PCI-X с бо­лее высокими тактовыми частотами (PCI-X66, PCI-X100, PCI-X133) и быстрой записью в память (PCI-X266 и PCI-X533).

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

14.5. Прерывания PCI — INTx#, РМЕ#, MSImSERR#

Устройства PCI имеют возможность сигнализировать об асинхронных событи­ях с помощью прерываний. На шине PCI возможны четыре типа сигнализации прерываний:

♦ традиционная проводная сигнализация по линиям INTx;

♦ проводная сигнализация событий управления энергопотреблением по ли­
нии РМЕ#;

♦ сигнализация с помощью сообщений — MSI;

♦ сигнализация фатальной ошибки по линии SERR#.

В первых версиях (до PCI 2.2 включительно) не было общепринятого способа программной индикации и запрета прерываний. В PCI 2.3 в регистре состояния конфигурационного пространства устройства (функции) определен бит, по ко­торому ОС может определить, что данная функция вызвала прерывание; в ре­гистре команд определен бит запрета прерывания.

Традиционные прерывания PCI — INTx#

Для устройств PCI выделяются четыре проводных линии запросов (IRQX, IRQY, IRQZ, IRQW), соединяемых с контактами INTA#, INTB#, INTC# и INTD# всех слотов PCI с циклическим смещением цепей (см. рис. 4.4 на стр. 114). Мосты PCI про­сто электрически соединяют одноименные линии INTx своих первичных и вто­ричных шин. В системах с APIC, в которых число входов запросов увеличено до 24, дополнительные восемь входов могут использоваться периферийными устройствами, установленными на системной плате. На слотах PCI остаются доступными лишь четыре обычных линии запросов.

Устройство PCI вводит сигнал прерывания низким уровнем (выходом с откры­тым коллектором или стоком) на выбранную линию INTx#. Этот сигнал должен удерживаться до тех пор, пока программный драйвер, вызванный по прерыванию, не сбросит запрос прерывания, обратившись по шине к данному устройству.

Линии запросов от слотов и устройств PCI системной платы коммутируются на входы контроллеров прерываний относительно произвольно. Конфигураци­онное ПО может определить и указать занятые линии запросов и номер входа контроллера прерываний обращением к конфигурационному пространству уст­ройства (см. 14.7).

Драйвер (или иное ПО), работающий с устройством PCI, определяет номер входа контроллера прерывания, доставшийся устройству (точнее, функции), чтением конфигурационного регистра Interrupt Line.

Назначение прерываний устройствам (функциям) выполняет процедура POST. Параметрами CMOS Setup (PCI/PNP Configuration) пользователь задает номера запросов прерываний, доступных шине PCI. POST определяет соответствие ли­ний INTA#...INTD# номерам запросов контроллера и соответствующим образом программирует коммутатор запросов. Влияние на аппаратную платформу но­вых версий ОС настолько велико, что они позволяют себе управлять коммута­тором запросов прерываний. Эту возможность можно запретить или разрешить, например, в ОС Windows снятием или установкой флажка Использовать управ­ление IRQ (PCI Interrupt Steering) в окне свойств шины PCI (Панель управления ► Системные устройства ► Шина PCI).

В PCI BIOS имеются функции определения возможностей и конфигурирова­ния прерываний. С их помощью для каждого устройства (на каждой шине) можно определить, с какими входами контроллера прерываний (IRQx) могут быть связаны его линии INTx и с каким именно входом шина связана в данный мо­мент, а также какие входы IRQx отводятся исключительно шине PCI. Есть функ­ция программирования коммутатора запросов, которая может использоваться только конфигурационным ПО (BIOS, ОС), но никак не драйвером устройства.

Сигнализация событий управления энергопотреблением — РМЕ#

Линия РМЕ#, введенная в PCI 2.0, служит для сигнализации в системе управления энергопотреблением (Power Management, PM) — для смены состояния уст­ройств, генерации пробуждения системы по событию. Эта линия электрически доступна всем устройствам PCI и никак не обрабатывается мостами, а лишь до­водится до всех абонентов. Обработчик прерывания от РМЕ# может выявить устройство, подавшее сигнал, путем программных обращений к конфигураци­онным регистрам всех устройств, способных к генерации этого сигнала.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.