Чтение онлайн

на главную - закладки

Жанры

Шины PCI, USB и FireWire

Гук Михаил Юрьевич

Шрифт:

Дополнительный модуль ROM BIOS должен иметь заголовок, выровненный по границе 2-килобайтной страницы памяти, формат заголовка ПЗУ иллюстрирует табл. 5.3.

В традиционном заголовке присутствовали только первые три поля, указатели на структуры PCI и ISA PnP ввели позже. Корректным считается модуль, начинающийся с признака AA55h (значения 16$битного слова с учетом порядка байтов) и нулевой суммой (по модулю 256) всех байтов в объявленной области (реальная длина модуля может превышать объявленную, но байт контрольной суммы, естественно, должен входить в объявленную область).

В случае обнаружения корректного модуля POST дальним вызовом (Call Far) вызывает процедуру инициализации модуля, начинающуюся с 3-го адреса заголовка модуля. Ответственность за ее корректность полностью ложится на разработчика. Процедура может переопределять векторы прерываний, обслуживаемых BIOS. Переопределив на себя вектор Bootstrap (Int 19h), можно получить управление при загрузке, что и используется, например, для удаленной загрузки компьютеров через

локальную сеть (Remote Boot Reset). Если стандартное продолжение процедуры загрузки не требуется, а дополнительный модуль представляет собой, например, управляющую программу для какого$либо оборудования, вместо процедуры инициализации в ПЗУ может находиться и основная программа, не возвращающая управление системной последовательности POST, которая бы выполнила обычную загрузку.

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

Для содержимого ПЗУ расширения BIOS, установленных на картах PCI, принят стандарт, несколько отличающийся от традиционных дополнительных модулей ROM BIOS. Заголовок ПЗУ соответствует традиционному, но дополнительно имеет указатель на структуру данных PCI (табл. 5.4). Идентификаторы производителя и устройства, а также код класса совпадают с описанными в конфигурационном пространстве устройства PCI. Поскольку шина PCI используется не только в PC, в ПЗУ карты может храниться несколько программных модулей. Каждый модуль начинается со структуры данных, сам модуль следует сразу за структурой.

За ним начинается структура для следующего модуля (если у предыдущего не установлен признак последнего модуля) и т. д. Тип платформы (процессора) указывается в заголовке модуля и при инициализации BIOS активизируется только нужный. Такой механизм позволяет, например, один и тот же графический адаптер устанавливать и в IBM PC, и в Power PC.


Резерв[16]

Применительно к дополнительному ПЗУ карты PCI имеется три параметра, относящихся к размерам областей памяти. Размер ПЗУ определяется чтением конфигурационного пространства. Размер, указанный в байте 2 заголовка, указывает на длину модуля на этапе инициализации. Этот модуль POST загружает в ОЗУ перед тем, как вызвать процедуру инициализации (точка входа со смещением 3). Контрольная сумма, расположенная обычно в конце модуля, обеспечивает нулевую сумму всех байтов. Длина рабочего образа, указанная в структуре данных PCI (слово со смещением 10h), описывает размер области, которая должна постоянно оставаться в памяти в режиме нормального функционирования (она может быть меньше указанной в байте 2 заголовка, поскольку код процедуры инициализации уже не требуется). Эта область также защищается контрольной суммой.

Работа с модулями ПЗУ для карт PCI выполняется в соответствии с моделью DDIM (Device Driver Initialization Model – модель инициализации драйвера устройств). POST определяет наличие ПЗУ по полю Expansion ROM Base Address в конфигурационном пространстве устройства, обнаруженного на карте, и назначает ему адрес в свободном пространстве памяти. После этого программированием регистра команд данного устройства разрешается считывание ПЗУ и в нем ищется сигнатура заголовка AA55h. Когда сигнатура найдена, POST ищет подходящий образ (по типу программного кода и совпадающий по идентификаторам с обнаруженными устройствами PCI) и копирует его в ОЗУ (в область C0000-DFFFFh), оставляя разрешенной запись в эту область. Далее чтение ПЗУ запрещается (записью в поле Expansion ROM Base Address) и вызывается процедура инициализации модуля (по адресу 3). При вызове процедуры POST сообщает номер шины (в регистре AH), номер устройства (AL[7:3]) и номер функции (AL[2:0]), благодаря чему процедура узнает точные координаты (идентификатор на шине PCI) аппаратных средств, которые ей предстоит инициализировать. После отработки инициализации определяется размер области, которую следует оставить в памяти (по байту 2, который может быть модифицирован процедурой инициализации), и для этой области запрещается запись. Если процедура инициализации «урезает» занимаемую память, она должна позаботиться о достоверности контрольной суммы области, описанной байтом 2. Если память освобождается полностью (процедура обнуляет байт 2), то контрольная сумма, естественно, не нужна. Расширение для VGA (определяется по коду класса) обрабатывается особым образом – загружается по адресу C0000h. Процедура инициализации может определить наличие PnP BIOS в системе, проверив значение контрольной структуры PnP по адресу, указанному ей программой POST в регистрах ES: DI, и исполняться в зависимости от обнаруженного системного окружения.

 

Для более эффективной работы во время инициализации драйвера устройства желательно использовать не только стандартную, но и расширенную память (за пределами первого мегабайта), в то время как POST работает в реальном режиме процессора. Решить эту проблему помогает режим «Big Real Mode», который поддерживают все 32-разрядные процессоры. Специально для предоставления доступа ко всей памяти процедурами инициализации фирмы Phoenics и Intel разработали спецификацию PMM (POST Memory Manager Specification),

версия 1.01 была опубликована в конце 1997 года. Эта спецификация определяет несколько дополнительных сервисов BIOS, позволяющих выделять, находить и освобождать блоки в любой, в том числе и расширенной, памяти. Клиенты этого сервиса запрашивают блок памяти требуемого размера, а BIOS возвращает физический 32-разрядный адрес начала выделяемого блока (если она способна его выделить). Клиент помечает свой блок 32-битным индексом (handle), по которому его в дальнейшем можно найти функцией поиска. Анонимный блок (индекс FFFFFFFFh) поиску не поддается. Этими сервисами можно пользоваться только до начала процедуры начальной загрузки (Int 19h), работу с вентилем Gate A20 они берут на себя. Перед начальной загрузкой BIOS освобождает и обнуляет все блоки расширенной памяти, занятые с помощью этих сервисов. Наличие сервисов PMM определяется по контрольной структуре, начинающейся со строки-сигнатуры $PMM и расположенной на границе раздела в области E0000-FFFF0h. Программный интерфейс можно найти в вышеуказанном документе, который доступен на сайте http:// www.phoenix.com/techs.

ГЛАВА 6
Электрический интерфейс и конструктивы для шин PCI и PCI–X

Электрический интерфейс

Для работы на шине PCI используются микросхемы КМОП (CMOS), причем имеются две спецификации: с напряжениями питания интерфейсных схем 5 и 3,3 В. Для них применимы параметры сигналов по постоянному току, приведенные в табл. 6.1. Однако мощность интерфейсных элементов (транзисторов для вентилей) выбрана меньшей, чем требовалось бы для переключения сигналов на высокой частоте (33 или 66 МГц). Здесь используется эффект отражения сигналов, формируемых микросхемами на проводниках шины, от несогласованных концов этих проводников, являющихся для таких высоких частот длинными линиями. На концах проводников шины нет терминаторов, поэтому от них приходящая волна сигнала отражается с тем же знаком и с той же амплитудой. Складываясь с прямым сигналом, обратная волна и обеспечивает нужный приемнику уровень сигнала. Таким образом, передатчик генерирует сигнал, уровень которого до прихода отраженного сигнала находится между уровнями переключения, и достигает требуемого уровня только после прихода отраженной волны. Это накладывает ограничение на физическую протяженность шины: сигнал должен успеть обернуться (дойти до конца и вернуться отраженным) за время, составляющее менее трети периода синхронизации (то есть 10 нс при 33 МГц, 5 нс при 66 МГц).

Линии управляющих сигналов FRAME#, TRDY#, IRDY#, DEVSEL#, STOP#, SERR#, PERR#, LOCK#, INTA#, INTB#, INTC#, INTD#, REQ64# и ACK64# на системной плате подтягиваются к шине питания резисторами (типичные номиналы: 2,7 кОм для версии 5 В и 8,2 кОм для 3,3 В), чтобы не было ложных срабатываний при пассивности всех агентов шины.

Электрические спецификации рассчитаны на два типовых варианта нагрузки одной шины: 2 устройства PCI на системной плате плюс 4 слота или 6 устройств плюс 2 слота. При этом подразумевается, что одно устройство на каждую линию шины PCI дает только единичную КМОП-нагрузку. В слоты могут устанавливаться карты, также дающие только единичную нагрузку. При использовании компонентов и трассировки плат с характеристиками, превосходящими требования спецификации, возможны и иные сочетания числа слотов и устройств. Так, например, часто встречаются системные платы и с пятью слотами на одной физической шине. На длину проводников, а также на топологию расположения элементов и проводников для карт расширения накладываются жесткие ограничения. Длина сигнальных проводников не должна превышать 1,5 дюйма (3,8 см). Из вышесказанного понятно, что изготовление самодельных карт расширения на логических микросхемах средней степени интеграции, как это можно было делать для шин ISA, для PCI невозможно.

Тактовая частота шины определяется по возможностям всех абонентов шины, включая и мосты (и главный мост, входящий в чипсет системной платы). Высокая частота шины PCI 66 МГц может устанавливаться тактовым генератором только при высоком уровне на линии M66EN. Таким образом, установка любой карты, не поддерживающей 66 МГц (с заземленным контактом этой линии), приведет к понижению частоты шины до 33 МГц. Серверные системные платы, на которых имеется несколько шин PCI, позволяют использовать на разных шинах разные частоты (66 и 33 МГц). Так, например, можно на 64-битных слотах использовать частоту 66 МГц, а на 32-битных – 33. Разгон нормальной частоты 33 МГц до 40–50 МГц аппаратно не контролируется, но может приводить к ошибкам работы карт расширения.

Согласно спецификации PCI, устройства должны нормально работать при снижении частоты от номинальной (33 МГц) до нуля. Изменение частоты во время работы устройств допустимо при условии, чтобы все время соблюдались ограничения по минимальной длительности высокого и низкого уровней сигнала CLK. Останавливаться сигнал CLK должен только на низком уровне. После возобновления подачи импульсов CLK устройства должны продолжить работу, как будто остановки синхронизации и не было.

При работе с частотой 66 МГц и выше для снижения электромагнитных помех (EMI) от сигнала фиксированной частоты может применяться расширение спектра сигнала CLK (spread spectrum): неглубокая частотная модуляция с частотой модуляции 30–33 кГц. Если в устройствах для синхронизации используются схемы с ФАПЧ (PLL), то их быстродействие должно быть достаточным для отработки этой модуляции. В спецификации PCI–X диапазоны допустимых изменений тактовой частоты зависят от режима шины (см. табл. 6.5).

Поделиться:
Популярные книги

Дайте поспать! Том III

Матисов Павел
3. Вечный Сон
Фантастика:
фэнтези
5.00
рейтинг книги
Дайте поспать! Том III

Путь Чести

Щукин Иван
3. Жизни Архимага
Фантастика:
фэнтези
боевая фантастика
6.43
рейтинг книги
Путь Чести

Энфис 2

Кронос Александр
2. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 2

Сумеречный Стрелок 2

Карелин Сергей Витальевич
2. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 2

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Книга пяти колец. Том 3

Зайцев Константин
3. Книга пяти колец
Фантастика:
фэнтези
попаданцы
аниме
5.75
рейтинг книги
Книга пяти колец. Том 3

Диверсант

Вайс Александр
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Диверсант

Ученичество. Книга 2

Понарошку Евгений
2. Государственный маг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ученичество. Книга 2

Титан империи 3

Артемов Александр Александрович
3. Титан Империи
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Титан империи 3

Последний попаданец 9

Зубов Константин
9. Последний попаданец
Фантастика:
юмористическая фантастика
рпг
5.00
рейтинг книги
Последний попаданец 9

Измена. Право на сына

Арская Арина
4. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Право на сына

Неестественный отбор.Трилогия

Грант Эдгар
Неестественный отбор
Детективы:
триллеры
6.40
рейтинг книги
Неестественный отбор.Трилогия

Хозяйка дома на холме

Скор Элен
1. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка дома на холме

Гром над Академией. Часть 2

Машуков Тимур
3. Гром над миром
Фантастика:
боевая фантастика
5.50
рейтинг книги
Гром над Академией. Часть 2