WWW.KN.LIB-I.RU
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - Различные ресурсы
 

Pages:   || 2 | 3 |

«Реализация 2.0 30 Апреля, 1993 Реализация 2.0 Реализация Хронология реализации Дата 1.0 Оригинальное издание 6/22/92 2.0 Спецификации 4/30/93 соединительного разъема и ...»

-- [ Страница 1 ] --

Спецификация

локальной шины PCI

Реализация 2.0

30 Апреля, 1993

Реализация 2.0

Реализация Хронология реализации Дата

1.0 Оригинальное издание 6/22/92

2.0 Спецификации 4/30/93

соединительного разъема и

платы расширения

Специальная группа интересов PCI не несет ответственности за использование этого документа

и информации, содержащейся в нем, а также за любые ошибки, которые могут возникнуть в этом документе, Специальная группа интересов PCI не берет на себя обязательств по модифицированию приведенной здесь информации.

Для получения последней версии спецификации обращайтесь в Cпециальную группу интересов PCI.

По всем вопросам и пожеланиям относительно спецификации PCI, либо по поводу вхождения в состав Cпециальной группы интересов PCI, обращаться:

PCI Special Interest Group M/S HF3-15A 5200 N.E. Elam Young Parkway Hillsboro, Oregon 97124-6497 (503)696-2000 Micro Channel, OS/2 и PC AT - зарегистрированные торговые марки IBM Corporation.

TRISTATE - зарегистрированная торговая марка National Semiconductor.

Intel386, Intel486 и Pentium - торговые марки Intel Corporation.

Ethernet - зарегистрированная торговая марка Xerox Corporation.

Copyright 1992, 1993 PCI Special Interest Group II Реализация 2.0 Содержание Глава 1 Введение

1.1. Содержание спецификации

1.2. Предварительные замечания

1.3. Применения локальной шины PCI



1.4. Краткий обзор локальной шины PCI

1.5. Особенности и преимущества локальной шины PCI

1.6. Управление

Глава 2 Описание сигналов

2.1. Описание типов сигналов

2.2. Функциональные группы выводов

2.2.1. Системные выводы

2.2.2. Адресные выводы и выводы данных

2.2.3. Интерфейсные управляющие выводы

2.2.4. Арбитражные выводы (только для мастеров шины)

2.2.5. Выводы для сообщения об ошибках

2.2.6. Выводы прерываний (необязательно)

2.2.7. Выводы поддержки кэша (необязательно)

2.2.8. Выводы расширения шины до 64-бит (необязательно)

2.2.9. Выводы JTAG/периферийного сканирования (необязательно)

2.3. Остальные сигналы

2.4. Функции центрального ресурса

–  –  –

Глава 3 Функционирование шины

3.1. Операции на шине

3.1.1. Описание операций

3.1.2. Правила использования операций

3.2. Основы протокола для PCI

3.2.1. Общее управление передачей информации

3.2.2. Адресация

3.2.3. Выравнивание байта

3.2.4. Управление шиной и оборотный цикл

3.3. Транзакции на шине

3.3.1. Транзакция чтения

3.3.2. Транзакция записи

3.3.3. Завершение транзакции

3.4. Арбитраж

3.4.1. Протокол сигналов арбитража

3.4.2. Быстрые back-to-back транзакции

3.4.3. Фиксирование арбитража

3.4.4. Временные задержки

3.5. Монопольный доступ

3.5.1. Инициирование монопольного доступа

3.5.2. Продолжение монопольного доступа

3.5.3. Осуществление доступа к блокированному агенту

3.5.4. Завершение монопольного доступа

3.5.5. Поддержка сигнала LOCK# и согласование кэша обратной записи

3.5.6. Полная блокировка шины

3.6. Другие операции с шиной

3.6.1. Выбор устройства

3.6.2. Специальный цикл





3.6.3. Пошаговая передача адреса/данных

3.6.4. Цикл конфигурации

3.6.5. Подтверждение прерывания

3.7. Функции ошибок

3.7.1. Контроль по четности

3.7.2. Сообщения об ошибках

IV Реализация 2.0

3.8. Поддержка кэша

3.8.1. Определение состояний кэша

3.8.2. Поддерживаемые состояния и переходы

3.8.3. Временные диаграммы

3.8.4. Поддержка кэша сквозной записи

3.8.5. Замечания по арбитражу

3.9. Расширение шины до 64 разрядов

3.9.1. 64-разрядная адресация на PCI

3.10. Соображения по специальному проектированию

Глава 4 Электрическая спецификация

4.1 Краткий обзор

4.1.1. Схема перехода от питания 5В к питанию 3.3В

4.1.2. Спецификации динамических и статических характеристик

4.2. Спецификация компонентов

4.2.1. 5В - режим передачи сигналов

4.2.2. 3.3В - режим передачи сигналов

4.2.3. Спецификация синхронизации

4.2.4. Спецификация, обеспечиваемая поставщиками

4.2.5. Рекомендации по расположению контактов

4.3. Спецификация материнской платы

4.3.1. Перекос синхронизации

4.3.2. Сброс

4.3.3. Нагрузка

4.3.4. Питание

4.3.5. Распределение синхронизации системы

4.3.6. Конструктивные требования

4.3.7. Назначения контактов разъема

4.4. Спецификация платы расширения

4.4.1. Назначение контактов платы

4.4.2. Требования питания

4.4.3. Конструктивные требования

–  –  –

Глава 5 Конструктивная спецификация

5.1. Краткий обзор

5.2. Физические размеры и допуски платы расширения

5.2.1. Физическое описание разъема

5.2.2. Планарное исполнение

Глава 6 Пространство конфигурации

6.1. Организация пространства конфигурации

6.2. Функции пространства конфигурации

6.2.1. Идентификация устройства

6.2.2. Управление устройством

6.2.3. Состояние устройства

6.2.4. Смешанные функции

6.2.5. Базовые адреса

6.3. Расширенные PCI ROM

6.3.1. Содержание расширенных PCI ROM

6.3.2. Листинг процедуры теста при включении питания (POST)

6.3.3. PC-совместимые расширенные ROM

6.3.4. Драйверы устройств

6.4. Сброс системы

–  –  –

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

Данная спецификация содержит более новые сведения, чем следующие документы:

• Peripheral Component Interconnect (Спецификация соединений периферийных компонентов), реализация 1.0, вступила в силу 22 июня 1992 года.

• Technical Addendum to PCI Specification (Техническое приложение к спецификации PCI), реализация 1.0, действует с сентября 1992 года.

• Peripheral Component Interconnect, Add-in Board/Connector (ABC) Addendum (Draft) (Взаимосвязи периферийных компонентов, встраиваемые/подсоединяемые приложения -ABC). Проект вступил в силу 10 ноября 1992 года.

• Peripheral Component Interconnect, Add-in Board/Connector (ABC) Addendum (Final Version) (Взаимосвязи периферийных компонентов, встраиваемые/подсоединяемые приложения), действует с марта 1992 года.

• PCI Electrical Definition (Final Version) (Электрическое описание сигналов PCI), действует с 19 апреля 1993 года.

Кроме того, следующие документы не отражают текущие требования для данной Спецификации локальной шины PCI, реализация 2.0, и будут пересмотрены специальной группой интересов PCI:

• PCI BIOS Specification (Спецификация PCI BIOS), реализация 2.0, введенная в действие с 28 сентября 1992 года фирмой Intel Corporation

• Предварительное руководство по системному проектированию PCI, реализация 0.6, действует с 1 ноября 1992 года.

Объединение запросов по техническим изменениям (ECRs) Управляющий комитет специальной группы интересов PCI (SIG) постановил, чтобы последующие запросы ECRs, которые находятся в различных стадиях ECR - цикла утверждения, были включены в данную промышленную версию спецификации:

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

Они пройдут мандатный период, с учетом поступления протеста от членов SIG в течение срока до 20 мая 1993 года:

1. Стандартный доступ к пространству конфигураций (Standardized Access to Configuration Space)

2. Стандартный механизм для генерирования специальных циклов (Standardized Mechanism for Generating Special Cycles)

–  –  –

Считается, что два из трех предложенных запросов ECRs делают слишком малый акцент на существующие разработки и вряд ли смогут получить сколько-нибудь значимые результаты для компаний, входящих в состав группы SIG.

Таким образом, были включены следующие дополнения:

3. Mechanical Modifications to ABC Addendum (Механические поправки для ABC - приложений) здесь корректируется ряд механических параметров;

4. Fast Back-to-Back Cycles (Быстрые циклы back-to-back) - точно определяет целевое поведение и обеспечивает дополнительный механизм, в котором можно определять возможности и поведение шины. Вполне возможно, что большинство целей уже неосознанно обеспечивают это решение.

Последний предложенный ECR, который не был включен в финальную спецификацию, также не затрагивает значимых проблем:

5. Mechanical: ISA Extender Design (Механическая проблема: разработка расширителя ISA) корректирует разработку, использующую существующую системную механическую поддержку, и добавляет вентиляционные отверстия на расширитель, чтобы улучшить вентиляцию системы.

Последние три ECRs были представлены 23 апреля 1993 года в SIG, для рассмотрения. Каждый из них пройдет проверку и период протеста в соответствии с уставом SIG. Если на одном из пяти запросов ECRs будет затронута любая значительная проблема, то компании, входящие в SIG, и зарегистрированные держатели спецификации будут своевременно уведомлены относительно данной проблемы и ее влияния на спецификацию, как определено здесь.

Комментарий к тексту

В этом документе будут использоваться следующие наименования:

–  –  –

Сопутствующие документы PCI Design Guide (Руководство по проектированию PCI), реализация 0.6, 1 ноября 1992 г. (будет пересмотрена в Q3 1993 г.) PCI BIOS Specification (Спецификация PCI BIOS), реализация 1.0, 28 сентября, 1992 (будет пересмотрена в Q2 1993 г.)

–  –  –

Локальная шина PCI - это высокопроизводительная 32-битная или 64-битная шина с мультиплексированными линиями адреса и данных. Она предназначена для использования в качестве связующего механизма между высокоинтегрированными периферийными контроллерами ввода-вывода, периферийными встраиваемыми платами и системами процессор/память.

Спецификация локальной шины PCI, реализация 2.0, включает протокол, электрическую, механическую и конфигурационную спецификации для локальной шины PCI и плат расширения. Описания электрических сигналов приводятся для напряжений питания 3.3В и 5.0В.

Этот документ заменяет собой спецификацию PCI реализации 1.0, которая определяет связующий механизм только на уровне компонент. В данной второй реализации поддерживаются спецификации для устройств, разработанных в соответствии с версией 1.0 спецификации.

Спецификация 2.0 локальной шины PCI заменяет собой следующие документы:

PCI Specification, Rev. 1.0 (Спецификация PCI, реализация 1.0).

–  –  –

Peripheral Component Interconnect, Add-in Board/Connector (ABC) Addendum (Final Version) (Подсоединение периферийных устройств, применение плат расширения/разъемов последняя версия).

PCI Electrical Definition, Rev. 1.0* (Описание электрических сигналов PCI, реализация 1.0).

–  –  –

Спецификация локальной шины PCI определяет аппаратное обеспечение PCI. За более подробной информацией относительно руководства по системному проектированию PCI и спецификации PCI BIOS обращайтесь в PCI SIG. За информацией, как вступить в PCI SIG или получить данные документы, обращайтесь к разделу 1.6.

–  –  –

Предварительные замечания Операционные системы типа Windows и OS/2, ориентированные на графику, привели к появлению "узкого места" при передаче данных между процессором и периферийными устройствами в стандартных архитектурах ввода - вывода PC.

Функции пересылки данных периферийных устройств с высокими требованиями к пропускаемой способности, близкой к пропускной способности системного процессора, могут устранить это "узкое место". Реальное повышение эффективности при использовании «локальной шины» наблюдается для графических интерфейсов пользователя (GUIs) и других функций, требовательных к большой ширине диапазона ввода-вывода (например, полноценное «видео», интерфейс SCSI, локальные вычислительные сети и т.д.).

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

Применения локальной шины PCI

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

Рисунок 1-1: Применения локальной шины PCI Несмотря на то, что первоначальной целью применения локальной шины было повышение возможностей настольных систем, она также учитывает требования к "переносным" приложениям и ведомственным серверам. Требования к напряжению питания в 3.3В для "переносных" приложений делают неизбежным учет перехода напряжения питания для настольных систем от 5В к 3.3В. Локальная шина PCI поддерживает оба напряжения питания и описывает методы перехода от одного из них к другому.

PCI-компоненты и интерфейс плат расширения не зависят от процессора, допуская эффективный переход к будущим поколениям процессора и использованию множества процессорных архитектур. Независимость от процессора позволяет оптимизировать локальную шину PCI для функций вводаРеализация 2.0 вывода, делает возможным конкурирующую работу локальной шины с подсистемой процессор/память и позволяет использовать для графики множество высокопроизводительных периферийных устройств (видеосигналы изображения, локальная вычислительная сеть, SCSI, FDDI, жесткие диски и т.д.). Переход к расширенным видео- и мультимедийным дисплеям (а именно, к HDTV и с 3-мя измерениями) и другому многоразрядному вводу-выводу продолжит повышать требования к разрядности локальной шины.

Имеющееся "прозрачное" расширение 32-разрядных шин данных и адреса до 64 разрядов, удваивает разрядность шины и делая возможным совместимость в прямом и обратном направлении периферии для 32-разрядной и 64-разрядной локальной шины PCI.

Стандарт локальной шины PCI предлагает дополнительные преимущества пользователям PCI-систем. Для PCI-компонентов и плат расширения определены регистры конфигурации. Система со встроенным программным обеспечением автоматической настройки делает легким эксплуатацию системы для ее пользователя, автоматически конфигурируя PCI-платы расширения при включении питания.

Краткий обзор локальной шины PCI Блок-схема (рисунок 1-2) показывает типичную системную организацию локальной шины PCI. Этот пример не показывает какие-то характерные особенности архитектуры. В этом примере подсистема процессор/кэш 2-го уровня/память соединена с PCI через PCI-мост. Этот мост обеспечивает малое время задержки, за которое процессор может непосредственно обращаться к PCI устройствам, отображенным где-нибудь в адресных пространствах ввода-вывода или памяти. Он также обеспечивает широкую пропускную способность, позволяя управителям PCI напрямую обращаться в главную память. Мост может по необходимости исполнять такие функции, как буферизацию данных/регистрация и главные функции PCI (например, арбитраж).

–  –  –

Типовые реализации локальной шины PCI могут поддерживать до 3-х разъемов плат расширения, а большие возможности для расширения и не требуются. PCI - разъем платы расширения выполнен в стиле разъема для Micro Channel (MC). Это означает, что эту же самую PCI - плату расширения можно использовать в ISA-, EISA- и MC - системах. PCI - платы расширения применяются с этим разъемом на материнских платах так, что это позволяет разместить разъем типа «папа» параллельно с разъемами системной шины. Для обеспечения быстрого и легкого перехода от питающего напряжения в 5В к напряжению в 3.3В PCI предусматривает два разъема для плат расширения: один - для 5В - технологии, а другой - для 3.3В технологии.

Существуют PCI - платы расширения двух размеров: со стандартной длиной и укороченные. Системам не требуется поддерживать оба типа плат. Стандартные платы включают в себя ISA/EISA - расширитель, что позволяет использовать ISA/EISA - модули в ISA/EISA - системах. Для использования напряжений питания 5В и 3.3В и для «сглаживания» промежуточного перехода между ними, предусмотрено 3 типа плат расширения: плата «5 volt» (5В), которая вставляется только в разъемы с напряжением 5В; «универсальная»

плата, которую можно вставлять как в 5В-, так и в 3.3В - разъемы; плата «3.3 volt» (3.3В), которая вставляется в разъем с напряжением 3.3В.

В настоящее время предусмотрены два типа плат объединения с PCI: ISA/EISA - и MC - совместимые. Оба взаимозаменяемые платы объединения должны быть совместно используемы с любой PCI - платой расширения, чтобы обеспечить использование платы во всех трех типах системы.

Типичная наименьшая разрядность «диапазона пропускания» принимается равной ширине разрядности стандартных плат ввода-вывода, типа ISA, EISA или MC. Одна компонента (или множество таких компонент) может образовывать стандартную шину расширения ввода- вывода на PCI, используемую в системе. В некоторых переносных или пользовательских системах такая стандартная шина расширения может не требоваться.

–  –  –

1.5 Особенности и преимущества локальной шины PCI.

Локальная шина PCI предусматривала создание стандарта для различных поколений подобного изделия, которым она является. Спецификация PCI дает возможность выбора характеристик, что позволяет рассмотреть множество «точек» соотношения «цена/производительность» и много функций, ведущих к рассмотрению на системном уровне и на уровне компонент.

Эти особенности разделяются по следующим категориям:

–  –  –

1.6. Управление Данный документ поддерживается группой поддержки PCI - SIG. PCI SIG - независимая ассоциация членов индустрии микроЭВМ - создана для контроля и дальнейшей разработки локальной шины PCI тремя путями.

Уставом PCI SIG предусматривается:

• Поддержка прямой совместимости всех разработок локальной шины PCI или приложений на ее основе.

• Поддержка спецификации локальной шины PCI как простой, легкой в использовании и устойчивой технологии в духе всего проекта.

• Способствуйте учреждению локальной шины PCI, в качестве широкого промышленного стандарта, и технически долговечной архитектуры локальной шины PCI.

Членство в SIG доступно всем претендентам в производстве микроЭВМ. Выгоды от этого следующие:

• Представление на рассмотрение изменений спецификации и предложений по приложениям.

• Участие в рассмотрении изменений спецификации и предложений по приложениям.

• Автоматическое получение изменений и приложений.

• Права голоса при выборе членов в Комитет Управления.

• Назначение идентификационных номеров (ID) продавцам.

• Техническая поддержка PCI.

• Поддержка документации и материалов по PCI.

• Участие во программе встреч, конференций, спонсором которых является SIG, и других акциях, связанных с локальной шиной PCI.

За информацией относительно того, как стать членом SIG или для получения документации по локальной шине PCI, обращайтесь по адресу:

–  –  –

Для обработки данных, адресации, управления интерфейсом, арбитража и некоторых системных функций интерфейсу PCI требуется как минимум1 47 выводов для целевого устройства и 49 выводов - для «управителя». На рисунке 2-1 показаны функциональные группы выводов: слева указаны необходимые выводы, а справа - необязательные. Указание на рисунке 2-1 направления сигналов подразумевает комбинацию ведущего/целевого устройства.

–  –  –

2.1. Описание типов сигналов Input - стандартный входной сигнал.

Totem Pole Output - стандартный активный драйвер.

Tri-State - это двунаправленный, с тремя состояниями, входной/выходной вывод.

Sustained Tri-State - подчиненный активный низкий сигнал с тремя состояниями, управляемый одним и только одним агентом в одно и то же времени. Агент, который управляет низким уровнем выводов s/t/s, должен сделать его «высоким» хотя бы один раз перед тем, как оставить в свободном состоянии. Новый агент не может начать управлять сигналом s/t/s, пока не пройдет один такт после того, как предыдущий «владелец»

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

Open Drain - открытый коллектор - позволяет использовать количество устройств путем объединения их по «ИЛИ».

2.2. Функциональные группы выводов Описания выводов PCI объединены в функциональные группы, которые показаны на рисунке 2-1. Символ # в конце наименования сигнала показывает, что активное состояние сигнал имеет при низком уровне напряжения. Когда символ # отсутствует, сигнал активен при высоком уровне напряжения. Способ подачи сигнала, используемый для каждого вывода, показан после названия сигнала.

–  –  –

2.2.6. Выводы прерывания (необязательно) Прерывания на PCI произвольны и определяются как «чувствительные к уровню», т.е. устанавливаются по низкому уровню (отрицательное «истинно»), при этом для устройств используется выход с открытым коллектором. Переход сигналов INTx# в активное состояние и обратно асинхронно по отношению к CLK.

PCI предусматривает одну линию прерываний для устройства с одной функцией, и до четырех линий прерывания - для многофункциональных6 устройств или соединителя. Для одно-функционального устройства может использоваться только линия INTA#, в то время как три других линий прерывания не имеют никакого значения.

INTA# o/d Interrupt A - используется для запроса прерывания.

INTB# o/d Interrupt B - используется для запроса прерывания и имеет значение только для многофункционального устройства.

INTC# o/d Interrupt C - используется для запроса прерывания и имеет значение только для многофункционального устройства.

INTD# o/d Interrupt D - используется для запроса прерывания и имеет значение только для многофункционального устройства.

Любая функция на многофункциональном устройстве может быть соединена с любой линией INTx#. Регистр вывода прерывания определяет, какая из линий INTx# используется для запроса прерывания. Если устройство реализует единственную линию INTx#, то она называется INTA#; если реализуются две строки, то они называются INTA# и INTB#; и т.д. Все функции многофункционального устройства могут использовать одну и ту же линию INTx#, либо каждая функция может иметь собственную линию (по максимальному количеству функций), либо любую комбинацию такого набора. Одна и та же функция не может генерировать прерывание более, чем на одной линии INTx#.

Поставщик системы свободен в выборе способа объединения различных сигналов INTx# из разъема PCI, для их соединения с контроллером прерываний. Они могут быть объединены по «ИЛИ», либо переключаться электроникой под управлением программы, либо как-то иначе, путем комбинации вышеперечисленных способов. Это означает, что драйвер устройства не может делать какие-то «предположения» относительно совместного использования прерываний. Все драйверы PCI - устройств должны обладать способностью к совместному использованию прерываний (цепочек прерываний) с любым другим логическим устройством, включая устройства в этом же самом многофункциональном модуле.

Когда несколько независимых функций объединены в одном устройстве, то это будет называться, в целом, многофункциональным устройством. Каждая функция в таком устройстве обладает собственным пространством конфигураций.

Реализация 2.0 2.2.7. Выводы поддержки кэша (необязательно) Кэшируемая память PCI должна реализовывать оба вывода поддержки кэширования в качестве входных, чтобы разрешить работу как с кэшем сквозной записи, так и с кэшем обратной записи. Если кэшируемая память размещена на PCI, то интерфейс, соединяющий кэш обратной записи и PCI, должен реализовывать оба вывода в качестве выходных; а интерфейс, соединяющий PCI и кэш сквозной записи, может реализовывать только один вывод, как это описано в разделе 3.8.

Snoop Backoff указывает удачную попытку для изменения состояния линии.

SBO# вх/вых Когда сигнал SBO# неактивный, и активен SDONE, то это означает успешный результат «вмешательства».

–  –  –

Это означает резервирование данных разрядов Управляющим Комитетом PCI SIG для будущего использования. Зарезервированные биты не должны использоваться каким - либо устройством.

Реализация 2.0

–  –  –

2.2.9. Выводы JTAG / периферийного сканирования (необязательно) Стандарт IEEE 1149.1, Порт для тестирования и архитектура периферийного сканирования («Test Access Port and Boundary Scan Architecture»), включен в качестве необязательного интерфейса для PCI устройств.

Стандарт IEEE 1149.1 определяет правила и ограничения для проектирования ИС (интегральных схем) в соответствии с 1149.1. Включение в состав устройства порта для тестирования (TAP - Test Access Port) позволяет использовать периферийное сканирование для проверки устройства и платы, на которой данное устройство установлено. TAP состоит из четырех выводов (в общем случае - из пяти), которые используются для организации последовательного интерфейса с контроллером TAP внутри PCI- устройства.

TCK in Test Clock используется для синхронизации ввода собранной информации и данных в устройство и их вывода во время работы с TAP.

–  –  –

Данные выводы TAP должны работать при тех же электрических условиях (5В или 3.3В), что и буферы ввода-вывода PCI - интерфейса устройств. Кроме того, управление выводом TDO необязательно должно быть таким же, как это делается для стандартных выводов шины PCI. Способ управления TDO должен быть указан в техническом паспорте устройства.

Поставщик системы ответственен за проектирование и функционирование в системе последовательных цепочек стандарта 1149.1 («кольца»). Дополнительные к шине PCI сигналы не используются в «многоточечном» режиме. Обычно «кольцо» по стандарту 1149.1 создается путем соединения вывода TDO одного устройства с выводом TDO другого, чтобы получить последовательную цепочку устройств. В этом случае микросхемы получают одни и те же сигналы TCK, TMS и необязательные сигналы TMS#. Все кольца по стандарту 1149.1 соединены либо с тестирующим разъемом материнской платы для целей тестирования, либо к ИС резидентного контроллера по стандарту 1149.1.

Спецификация PCI поддерживает платы расширения с разъемом, который предусматривает сигналы периферийного сканирования. Устройства на плате расширения можно соединять в цепочку на материнской плате.

–  –  –

Методы соединения и использования системы колец по стандарту 1149.1 с платами расширения включают:

• Использование кольца по стандарту 1149.1 на плате расширения только во время тестирования этой платы расширения на производстве. В этом случае, кольцо по стандарту 1149.1 на материнской плате не должно контактировать с сигналами по стандарту 1149.1 для плат расширения. Материнская плата должна самотестироваться непосредственно в ходе производства.

• Создание для каждой платы расширения в системе независимых колец, по стандарту 1149.1, на материнской плате. Например, если на плате есть два разъема расширения, то на материнской плате должны оставаться свободные кольца по стандарту 1149.1.

• Инициализацию ИС, которая допускает иерархичную многоточечную адресацию по стандарту 1149.1.

Это позволит обрабатывать множество колец по стандарту 1149.1 и разрешит многоточечную адресацию и операции.

• Платы расширения, не поддерживающие стандарт интерфейса IEEE 1149.1, должны осуществлять переход от вывода TDI платы к выводу TDO.

За более подробной информацией относительно использования JTAG / Периферийного сканирования в PCI системе обращайтесь к PCI System Design Guide (Руководству по системному проектированию PCI).

2.3. Остальные сигналы Обеспечиваются все основные механизмы пересылки, в основном, универсальные, а также множество мастеров. Однако это не препятствует повышению эффективности изделия за счет вспомогательных сигналов (sideband). В качестве таких сигналов могут использоваться любые сигналы, которые не входят в спецификацию PCI, но которые соединяют два или более PCI - агентов и имеют значение только для них.

Данные сигналы могут использоваться для одного или большего количества устройств с целью объединения их специфичных состояний и обеспечения максимальной эффективности использования в системе шины PCI.

Эти сигналы предусматриваются в разъеме PCI. Отсюда следует, что на них действуют ограничения, связанные с планарным расположением. Кроме того, данные сигналы могут нарушать специфицированный протокол для определенных сигналов PCI, либо приводить к таким нарушениям протокола.

2.4. Функции центрального ресурса Вне этой спецификации термин центральный ресурс используется для описания опорных выводов шины, обеспечиваемых главной системой, обычно для PCI - интерфейса, либо стандартного интерфейса. Эти функции могут включать следующее (но этим не ограничиваться):

• Центральный арбитраж.

• Приведение требуемых сигналов в активное состояние, как это описано в разделе 4.3.3.

• Вычитающее дешифрирование. Только один агент на шине PCI может использовать вычитающее дешифрирование и, обычно, предоставлять интерфейс к стандартной шине расширения (смотрите раздел 3.2.2.).

• Генерирование индивидуальных сигналов IDSEL для каждого устройства в целях конфигурации системы.

• Управление сигналом REQ64# во время инициализации.

–  –  –

Операции на шине показывают агенту тип транзакции, которая требуется мастеру. Эти операции кодируются в течение фазы адреса на линиях C/BE[3::0]#.

3.1.1. Описание операций Код операций на PCI - шине и их типы приведены ниже, с кратким описанием каждого из них. Обратите внимание, что коды команд приведены в таком виде, в каком они присутствуют на шине («1» показывает высокий уровень напряжения, «0» - низкий уровень). Byte Enables (побайтовый доступ или, иначе, разрешение байта) активен при низком уровне напряжения («0»).

C/BE[3::0]# Тип операции 0000 Interrupt Acknowledge (подтверждение прерывания) 0001 Special Cycle (специальный цикл) 0010 I/O Read (чтение при вводе - выводе) 0011 I/O Write (запись при вводе - выводе) 0100 Зарезервировано 0101 Зарезервировано 0110 Memory Read (чтение памяти) 0111 Memory Write (запись в память) 1000 Зарезервировано 1001 Зарезервировано 1010 Configuration Read (чтение конфигурации) 1011 Configuration Write (запись конфигурации) 1100 Memory Read Multiple (множественное чтение памяти) 1101 Dual Address Cycle (двойной цикл адреса) 1110 Memory read Line (линия чтения памяти) 1111 Memory Write and Invalidate (запись в память и недействительные данные) Команда Interrupt Acknowledge представляет собой неявное обращение к системному контроллеру прерываний. Биты адреса в течение фазы адреса не имеют логического значения и показывают длину возвращаемого вектора.

–  –  –

Команда Special Cycle обеспечивает простой механизм передачи сообщений по шине PCI. Он используется в качестве альтернативного для физических сигналов, когда необходимо организовать связь по sideband сигналам. Данный механизм полностью описан в разделе 3.6.2.

Команда I/O Read используется для чтения данных, поступающих от агента, отображенного в адресном пространстве ввода - вывода. По линиям AD[31::00] поступает адрес байта. Должны дешифрироваться все 32 бита. Byte Enables указывает размер передачи, при этом он должен соответствовать адресу байта.

Команда I/O Write используется при передаче данных агенту, отображенному в адресном пространстве ввода

- вывода. Должны дешифрироваться все 32 бита. Byte Enables указывает размер передачи и должен соответствовать адресу байта.

Зарезервированные коды команд предназначены для будущего использования. PCI - устройства не должны использовать эти коды с остальными командами, а также не должны на них отвечать. Если в интерфейсе используются зарезервированные коды, то доступ должен быть завершен аварийным прекращением работы мастера.

Команда Memory Read используется для чтения данных от агента, отображенного в пространстве адресов памяти. Целевое устройство свободно в выборе, выполнять или нет упреждающее чтение для этой команды, при условии гарантии, что при таком чтении не будет никаких побочных эффектов. Кроме того, для данной PCI - транзакции целевое устройство должно убедиться в синхронизации данных, хранящихся во временных буферах. Эти буферы должны быть отменены перед любыми событиями синхронизации (например, обновление регистра состояния ввода-вывода или флажка памяти), при обращении через данный путь доступа.

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

Команда Configuration Read используется для чтения пространства конфигурации каждого агента. Агент выбран, когда активен его сигнал IDSEL, и на линии AD[1::0] присутствует 00. Во время фазы адреса цикла или цикла конфигурации, AD[7::2] адресует одно из 64 двойных слов DWORD (и внутри каждого DWORD допускается адрес байта или байтов); конфигурации с информацией о каждом устройстве, а AD[31::11] логически это не предусматривает. AD[10::08] показывает, что каждый элемент многофункционального агента адресован.

Команда Configuration Write используется для передачи данных в пространство конфигураций агента. Агент выбран, когда активен его сигнал IDSEL, и на AD[1::0] присутствует 00. Во время фазы адреса цикла конфигурации линии AD[7::2] адресуют 64 двойных слова DWORD (и внутри каждого двойного слова допускается адрес байта или байтов) конфигурации с информацией о каждом устройстве, а AD[31::11] логически это не предусматривают. AD[10::08] показывает, что каждый элемент многофункционального агента адресован.

Реализация 2.0

Команда Memory Read Multiple является семантически идентичной команде Memory Read, за исключением того, что в ней дополнительно указывается возможность выбора мастером более, чем одной строки кэширования, перед отсоединением. Контроллер памяти должен продолжать конвейерную обработку памяти, пока активен сигнал FRAME#. Эта команда предназначена для работы по передаче больших последовательностей данных, когда можно повысить эффективность системы памяти (и запрашивающего мастера), при последовательном чтении дополнительной строки кэша, когда программной установленный буфер доступен для временного хранения.

Команда Dual Address Cycle (DAC) используется для передачи 64-разрядного адреса в устройства, поддерживающие 64-битную адресацию. Те же устройства, которые поддерживают только 32-битную адресацию, должны обработать эту команду, как зарезервированную, и никогда не отвечать на текущую транзакцию.

Команда Memory read Line является семантически идентичной команде Memory Read, за исключением того, что в ней дополнительно указывается возможность завершения мастером более, чем двух 32-битных фаз данных PCI. Эта команда предназначена для работы с большими последовательностями передаваемых данных, когда можно повысить производительность системы памяти (и запрашивающего мастера), при чтении строки кэша до конца в случае, если время реакции на запрос менее одного цикла памяти. Как и в случае с командой Memory Read, буферы выборки должна быть отменены прежде, через данный путь доступа будут инициированы события синхронизации.

Команда Memory Write and Validate семантически идентична команде Memory Write, за исключением того, что она дополнительно гарантирует передачу как минимум одной полной строки кэша; например, это требуется, когда мастеру необходимо записать все байты внутри адресованной строки кэша за одну транзакцию PCI. Мастер может позволить транзакции «перейти» границу строки кэша только в случае, если это предполагает передачу и всей последующей строки. Для выполнения этой команды требуется наличие у мастера регистра конфигурации, в котором был бы указан размер строки кэша (за более подробной информацией обращайтесь к разделу 6.2.4). Это позволит повысить производительность памяти, путем отмены строки в кэше обратной записи, без осуществления фактического цикла обратной записи, и, таким образом, сокращая время доступа. Обращайтесь к разделу 3.3.3.1. за информацией относительно блокировок по времени обработки.

3.1.2. Правила использования операций

Всем устройствам PCI требуются реагировать на команды конфигурации (чтения и записи) в качестве целевых устройств. Все остальные команды необязательные. Порядок исполнения команд на шине PCI гарантирован для операций ввода - вывода (чтения и записи). Устройствам PCI, которые содержат перегружаемые функции или регистры, требуется осуществить их отображение в пространстве памяти через регистры конфигурации. Данное действие обеспечивает возможность использования устройства в конфигурациях, в случае, если пространство ввода-вывода недоступно. Когда выполнено такое отображение, то проектировщик системы может гарантировать порядок выполнения команды, когда устройство используется при вводе - выводе или в пространстве памяти. Команды записи в память и чтения из нее, для отображенного в память устройства, осуществляют «ввод - вывод при отображении в память» («memory mapped I/O»).

При необходимости мастер может выполнять необязательные команды. Целевое устройство также может, при необходимости, выполнять эти команды, но если оно реализует основные операции с памятью, то необходимо поддерживать все подобные операции, включая Memory Write (запись в память) и Invalidate (отмена), Memory Read Line (чтение строки памяти), Read Multiple (множественное чтение). При неполной реализации, данные команды повышения производительности должны быть совмещены с основными командами работы с памятью. Например, целевое устройство может не реализовывать команду Memory Read Реализация 2.0 Line; тем не менее, оно должно принять запрос (если адрес дешифрирован как для доступа к памяти) и обработать его как команду чтения из памяти (Memory Read). Аналогично, целевое устройство может не реализовывать команду Memory Write и Invalidate, но оно обязано принять запрос (если адрес дешифрирован как для доступа к памяти) и обработать его как команду Memory Write (запись в память).

Для передача блоков данных в системную память и обратно мастеру рекомендуется поддерживать команды Memory Write and Invalidate и Read Memory Line. Команды Memory Read или Memory Write можно использовать, если по некоторым причинам мастер не способен использовать команды, повышающие производительность.

Мастера, использующие команды чтения из памяти данных любой длины (Memory Read), будут работать для всех команд, однако их основное применение показано ниже. Несмотря на то, что команда чтения и отмены (Write and Invalidate) - единственная команда, которая требует наличия регистра длины строки кэша, настоятельно рекомендуется, чтобы ею пользовались команды чтения памяти (Memory Read). Во всех остальных случаях, интерфейс не гарантирует правильности любых «неявных» данных. Основное использование команды показано как для случая с использованием регистра длины строки кэша.

Основное использование команд с применением регистра длины строки кэша:

–  –  –

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

диапазон.

Основной интерфейс может комбинировать последовательности двойных слов записываемых в память данных (DWORD), которые генерируются процессором в блоки, при условии сохранения порядка следования адресов (ассоциированного с каждым двойным словом). Например, интерфейс может записывать следующую последовательность - DWORD 0, DWORD 2 и DWORD 3. Тогда последовательность на PCI может быть следующей: DWORD 0, DWORD 1 (байты не допускаются), DWORD 2 и в конце блока - DWORD 3. Такое объединение допускается во всех случаях, когда последующий адрес DWORD более значим, чем предыдущий. Интерфейс может преобразовывать одиночные запросы по чтению памяти, поступающие от процессора, в пакетный запрос (чтение производится с выборкой, до прихода данных в процессор), при условии, что при этом чтении не будут возникать побочные эффекты в адресуемом целевом устройстве.

Если запросы от процессора для ввода-вывода нельзя объединить, то они будут иметь единственную фазу фазу данных.

В настоящее время нет таких процессоров или «управителей» шины, которые бы генерировали пакетные запросы в пространстве ввода - вывода. Однако, если в будущем некоторое новое устройство будет генерировать значимые пакетные запросы на ввод-вывод, (например, для доступа к порту FIFO), то они не будут игнорироваться. Для пакетных запросов по вводу-выводу адресация не подразумевается. В этом случае адресация должна быть установлена целевым устройством и мастером после выполнения запросов по вводувыводу. PCI - устройства, которые не работают с фазами данных при множественном вводе - выводе, должны разрывать связь после первой фазы данных. Чтобы убедиться, что устройства ввода - вывода функционируют правильно, интерфейсы не должны объединять или комбинировать в одиночный запрос доступа к PCI или блок последовательности запросов ввода - вывода. Все запросы на ввод - вывод должны появляться на шине PCI точно так, как их сгенерировал процессор. (Если адресуется целевое устройство, для которого Byte Enables показывает, что объем передаваемых данных больше, чем оно поддерживает, то это устройство аварийно завершает свою работу).

Значение всех сигналов проверяется по фронту синхроимпульса1. Каждый сигнал имеет свою установочную апертуру и апертуру неактивного состояния относительно положительного фронта синхроимпульса, при которых не позволяется переход в другое состояние. Величины сигналов выше этой апертуры не имеют никакого значения. Эта апертура имеет значение только на «подходящих» фронтах синхроимпульсов для сигналов AD[31::00], [63::32], PAR2, PAR64 и IDSEL3 и на любом фронте синхроимпульса для LOCK#, IRDY#, TRDY#, FRAME#, DEVSEL#, STOP#, REQ#, GNT#, REQ64#, ACK#64, SBO#, SDONE, SERR# (только на срезе), а для сигналов PERR#, C/BE[3::0]#, C/BE[7::4]# (так как это команды шины) существует ограничение по положительному фронту синхроимпульса, при условии активности сигнала FRAME#.

Сигналы C/BE[3::0], C/BE[7::4]# (с разрешением байта) ограничены на любом положительном фронте синхроимпульса, после завершения фазы адреса или фазы данных. RST*, IRQA*, IRQB*, IRQC*, и IRQD* не ограничены и асинхронны.

Единственным исключением являются RST#, INTA#, INTB#, INTC# и INTD#, которые обсуждаются в разделе 2.2.1.

PAR и PAR64 обрабатываются по одноименным линиям, с задержкой на один такт.

Замечания по ограничениям сигналов AD и IDSEL полностью приведены в разделе 3.6.3.

Реализация 2.0 3.2.1. Общее управление передачей информации Все основные пересылки данных на шине PCI управляются тремя сигналами. За более подробной информацией обращайтесь к рисунку 3-1.

–  –  –

Когда неактивны сигналы FRAME# и IRDY#, интерфейс находится в ожидании - состояние IDLE. Первый фронт синхроимпульса, на котором активизируется сигнал FRAME# - это фаза адреса, в которую передаются адрес и команда шины. По следующему фронту синхроимпульса начинается первая фаза данных или более, в течение которой передаются данные между мастером и целевым устройством по фронту синхроимпульса, для которого активны сигналы IRDY# и TRDY#. Циклы ожидания могут быть инициированы в фазе данных мастером либо целевым устройством, с сигналами IRDY# и TRDY#, соответственно.

Когда данные корректны, для независимой ни от чего установки сигнала xRDY# требуется источник данных (IRDY# - для транзакции записи, TRDY# - для транзакции чтения). Получение данных может привести к установлению в активное состояние сигналов xRDY#, конкретно - в зависимости от того, какой сигнал выбран.

Если мастер установил сигнал IRDY#, то он не может изменять состояние сигналов IRDY# или FRAME# до тех пор, пока не завершится текущая фаза данных, независимо от состояния TRDY#. Если целевое устройство один раз уже установило сигнал TRDY# или STOP#, то оно не может изменять состояние сигналов DEVSEL#, TRDY# или STOP# до тех пор, пока не завершится текущая фаза данных. Ни мастер, ни целевое устройство не могут изменять свое состояние, пока не завершится передача данных.

Когда мастер предполагает завершить одну большую передачу данных (это может произойти сразу после фазы адреса), то сигнал FRAME# переходит в неактивное, а IRDY# - в активное, показывая готовность мастера. После того, как целевое устройство показывает, что данная передача - последняя (сигнал TRDY# активен), интерфейс возвращается в состояние ожидания IDLE, с активными сигналами FRAME# и IRDY#.

3.2.2. Адресация Все определено три физических адресных пространства. Пространства адресов памяти и ввода-вывода объединены. Адресное пространство конфигураций было введено для обеспечения аппаратной конфигурации PCI. Работа с этим пространством описана далее, в разделе 3.6.4.1.

Дешифрирование адреса на шине PCI распределено; это означает, что оно выполняется на каждом устройстве. Это устраняет проблемы для центральной дешифрирующей логики, а также для сигналов выбора устройства, независимо от их использования для конфигурации. Каждый агент отвечает только на свой дешифрированный адрес. PCI поддерживает два режима дешифрирования адреса: суммирующий и вычитающий. Суммирующее дешифрирование быстрее, так как устройство ищет запрос в своем адресном интервале. Вычитающее дешифрирование может выполняться только одним устройством на шине, так как это подразумевает запрос, который не может быть положительно дешифрирован каким - то другим агентом.

Данный механизм дешифрирования медленнее, так как он должен давать всем остальным агентам на шине «первое право по отказу» при запросе.

Тем не менее, это может оказаться полезным для такого агента, как стандартная шина расширения, которая должна работать в высоко-фрагментированном адресном пространстве. Целевые устройства,

–  –  –

которые выполняют как положительное, так и отрицательное дешифрирование, не должны реагировать на зарезервированные команды шины (путем установки сигнала DEVSEL#).

Информация, содержащаяся в двух младших битах адреса (AD[1::0]), определяется адресным пространством.

Чтобы обеспечить полный адрес байта, в адресном пространстве ввода - вывода используются все 32 линии.

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

AD[1::0] используются только для генерирования сигнала DEVSEL#, указывающего при передаче последний допустимый байт. Например, если BE0# были активны, то AD[1::0] будет 00; если были активны только BE3#, то AD[1::0] будет 11. Как только целевое устройство установило запрос на ввод - вывод (используя AD[1::0]), оно может определить, можно ли завершить запрос, как это указано разрешением байта. Если все выбранные байты оказались вне выбранного целевым устройством адресного интервала, то данный запрос не может быть завершен. В этом случае целевое устройство не может передать никакие данные, но прекращает свою работу с аварийным завершением. Таблица ниже подводит итог по дешифрирования AD[1::0].

–  –  –

Примечание:

1 = неактивное состояние 0 = активное состояние X = 1 либо 0 Любая другая комбинация в таблице запрещена и завершается с аварийным прекращением работы.

Всем целевым устройствам требуется проверять линии AD[1::0] в течение транзакции команды при обращении к памяти, а также обеспечивать требуемую последовательность передаваемого блока, либо прерывать связь с целевым устройством в первую фазу данных или по ее завершении. Реализация линейного порядка передаваемого блока требуется всеми устройствами, которые его не могут обеспечить. Выполнение переключения строки кэша при этом не требуется. В адресном пространстве памяти запросы дешифрируются в адрес DWORD с использованием линий AD[31::02]. В линейном режиме приращения инкрементирование адреса осуществляется путем инкрементирования двойного слова DWORD (четыре байта) после каждой фазы данных, до тех пор, пока не завершится транзакция.

Стандартные значения адресов в пространстве ввода - вывода PC таковы, что разные физические устройства могут совместно использовать одни и те же адреса DWORD. В некоторых случаях это означает, что для установления запроса устройству требуется полный адрес байта (установленный в активное состояние сигнала DEVSEL#).

Реализация 2.0

При использовании команд для работы с памятью, AD[1::0] принимает следующие значения:

AD1 AD0 Режим в блоке 0 Линейное приращение 1 Режим переключения строки кэша (порядок заполнения кэша - как у Intel486™/Pentium™/и т.д.) X Зарезервировано (разрыв связи после первой фазы данных) Запросы для адресных пространств конфигураций дешифрируются в адрес DWORD, который используется на AD[7::2]. Когда команда дешифрирована, агент определяет целевое устройство запроса (активен сигнал DEVSEL#), активен IDSEL и на AD[1::0] присутствует "00". В противном случае агент игнорирует текущую транзакцию. Интерфейс определяет, что запрос конфигурации предназначен для устройства, находящегося перед ним, дешифрируя команду конфигурации и номер интерфейса, на линиях AD[1::0] - "01". За более подробными сведениями относительно запросов конфигурации обращайтесь к разделу 3.6.4.1.2.

3.2.3. Выравнивание байта

Переключение линий на PCI не выполняется до тех пор, пока все PCI - устройства не будут подсоединены к 32 битам адрес/данных с целью дешифрирования адреса. Тем не менее, переключение DWORD осуществляется мастерами, что обеспечивает для данных поддержку 64-разрядных линий передачи. Это означает, что байты будут всегда приходить по своему «родному» маршруту, который базируется на адресе байта.

В то же время, PCI никогда не обеспечивает автоматическое установление «размеров» шины. В общем случае, программное обеспечение очень чувствительно к характеристикам целевого устройства и поэтому выдает только соответствующую длину запроса; исключением являются 64-разрядные линии передачи данных.

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

Можно свободно изменять его во время фаз данных, но при этом данное состояние должно быть корректным по положительному фронту синхроимпульса, которым начинается каждая фаза данных, и оно должно остаться таким в течение всей фазы данных. Как показано на рисунке 3-1, фазы данных начинаются в тактах 3, 5 и 7. (Изменение режима побайтового доступа допускается во время транзакции блока данных, в общем случае это не требуется, хотя и разрешено). Мастер может изменять режим побайтового доступа при каждой новой фазе данных (хотя это не показано на диаграмме чтения). Если мастер изменяет его при транзакции чтения, то это делается с синхронизацией, как при транзакции записи. Если побайтовый доступ необходим для целевого устройства при транзакции чтения, то устройство должно подождать, когда наступит данное состояние в течение фазы данных, перед завершением передачи; в противном случае устройство должно вернуть все байты.

Если текущая транзакция чтения относится к кэшируемой памяти, то должны быть возвращены все байты, при условии, что осуществляется управление разрешением байта. Поэтому требуется агент, который определяет способность целевого устройства возвратить все байты. Если возможность кэширования определена самим инициатором, то он должен убедиться в том, что установлены все разрешенные, так как целевое устройство должно возвратить требуемые данные. Если возможность кэширования определена целевым устройством, то оно должно игнорировать разрешение байта (за исключением генерирования сигнала PAR) и вернуть все слова DWORD. Кэшируемое устройство должно также вернуть всю кэшируемую строку или только первые затребованные данные.

Целевое устройство не должно поддерживать кэширование, но должно обеспечивать предварительную выборку (установкой бита в регистре базового адреса - смотрите раздел 6.2.5.l.), а также должно возвращать все данные, независимо от состояния разрешения байта. В режиме, когда имеются побочные эффекты (разрушение данных или изменение состояния из - за появления запроса), целевое устройство может только управлять.

Реализация 2.0 PCI допускает любую непрерывную или состоящую из нескольких несмежных участков комбинацию разрешенных байтов. Если не установлено разрешение байта, то запрашиваемое целевое устройство должно завершить транзакцию путем установки TRDY#, и обеспечивая контроль по четности, если это был запрос по чтению. Когда не допускается разрешение байта, запрашиваемое целевое устройство должно завершить текущую фазу данных без каких-то изменений. Для транзакции чтения это означает, что данные или состояние не изменяются. Если завершение запроса не оказывает воздействия на данные или состояние, то целевое устройство может завершать запрос с обеспечением данных либо без их обеспечения. Целевое устройство (при чтении) должно обеспечить контроль по четности для линий AD[31::0] и C/BE[3::0]#, независимо от состояния разрешения байта. При транзакции записи данные не сохраняются, и имеет значение сигнал PAR.

Тем не менее, некоторые целевые устройства могут быть неспособны правильно интерпретировать структуры, состоящие из нескольких несмежных участков (например, интерфейсы шины расширения как интерфейс 8- и l6-разрядных подчиненные устройства). Если это все же происходит, то целевое устройство (интерфейс шины расширения) может необязательно объявить запрещенную структуру как асинхронную ошибка (SERR#) или, по возможности, разделить транзакцию в две 16 - разрядные транзакции, которые являются допустимыми для предназначенного агента. При запросе на ввод - вывод, целевому устройству требуется сигнал, чтобы сообщить о своем аварийном прекращении работы в случае, если устройство неспособно завершить все запросы, определенные разрешающим байтом.

3.2.4. Управление шиной и оборотный цикл

Оборотный цикл требуется для всех сигналов, которые могут управляться более, чем одним агентом. Этот цикл также требуется, чтобы избежать конкуренции, когда один агент прекращает управление сигналом, а другой агент начинает. Цикл обозначен на диаграммах синхронизации как две стрелки, указывающие одна в хвост другой. Оборотный цикл происходит в разное время для различных сигналов. Например, сигналы IRDY#, TRDY#, DEVSEL#, STOP# и ACK64# используют фазу адреса в качестве своего оборотного цикла.

FRAME#, REQ64#, C/BE[3::0]#, C/BE[7::4]#, AD[31::00] и AD[63::32] используют в качестве своего оборотного цикла цикл ожидания IDLE между транзакциями. Оборотный цикл для LOCK# занимает один такт после того, как его освобождает текущий владелец. Сигнал PERR# имеет оборотный цикл на четвертом такте после последней фазы данных, которая занимает три такта после оборотного цикла для адресных линий. Цикл ожидания наступает, когда не установлены оба сигнала FRAME# и IRDY# (например, 9-й такт на рисунке 3-1).

Все адресные линии (включая [63::32], в случае, если мастер поддерживает 64-разряда для линий данных) должны быть приведены в устойчивое состояние в течение каждой фазы адреса и фазы данных. Четные линии передачи байта, не участвующие в текущей передаче данных, должны передавать на шину одни и те же данные (хотя и не имеющие значение). Смысл этого заключается в вычислении суммы контроля по четности и пересылке входных буферов по линиям передачи байта, не участвующих в пересылках при переключении на пороговом уровне, а также для обеспечения быстрой метастабильной и свободной блокировки. В энерго - чувствительных приложениях, в целях уменьшения энергопотребления при переключениях шины, рекомендуется, чтобы линии передачи байта, не используемые в текущей фазе шины, управлялись с теми же самыми данными, что и в предыдущей фазе шины. В приложениях, которые энерго нечувствительны, агент, управляющий линиями адреса, может управлять чем - угодно по неиспользуемым линиям передачи байта. Контроль по четности должен делаться для всех байтов, независимо от разрешения байта.

Реализация 2.0

3.3. Транзакции на шине На диаграммах синхронизации показана связь значимых сигналов, участвующих в 32-разрядных транзакциях. Если сигнал нарисован сплошной линией, то это означает, что он в данный момент управляется текущим мастером или целевым устройством. Если сигнал нарисован пунктирной линией, то им никто не управляет. Тем не менее, он все еще может принимать постоянное значение, пока пунктирная линия находится в верхнем положении. На рисунке также обозначены три - стабильные сигналы, которые имеют неопределенное значение, когда пунктирная линия находится между двумя положениями (например, линии адреса AD или строками C/BE#). Когда сплошная линия переходит в пунктирную, то это означает, что сигнал, который активно управлялся, теперь перешел в третье состояние. Когда сплошная линия переходит из нижнего положения в верхнее, а затем становится пунктирной, то показывает, что сигнал активно управлялся по высокому уровню до установки на шине, и затем перешел в третье состояние. Циклы до и после каждой транзакции будут обсуждены в разделе, посвященному арбитражу.

3.3.1. Транзакция чтения Рисунок 3-1 показывает транзакцию чтения и начинается фазой адреса, которая происходит во 2-ом такте, когда впервые устанавливается сигнал FRAME#. В течение фазы адреса AD[31::00] содержит допустимый адрес, а C/BE[3::0]# - допустимую команду шины.

Рисунок 3-1: Базовая операция чтения

Такт 3 является первым тактом для первой фазы данных. В течение фазы данных C/BE# показывает, какие линии передачи байта участвуют в текущей фазе данных. Фаза данных может состоять из циклов передачи данных и циклов ожидания. Выходные буферы C/BE# должны оставаться доступными (и для чтения, и для записи) от первого такта фазы данных до конца транзакции. Необходимо убедиться, что линии C/BE# не будут изменяться для длинных интервалов времени.

При транзакции чтения первой фазе данных требуется оборотный цикл (инициированный целевым устройством через сигнал TRDY#). В этом случае адрес будет достоверен во 2-ом такте, а затем мастер завершит управление адресными линиями. Самый ранний такт, в котором целевое устройство может гарантировать достоверные данные - это такт 4. Целевое устройство должно управлять Реализация 2.0 адресными линиями после оборотного цикла, когда установлен сигнал DEVSEL#. По возможности, буферы вывода должны оставаться доступными до конца транзакции. (Это гарантирует, адресные линии не будут изменяться в течение длительного времени).

Фаза данных завершается, когда данные перемещены, при этом сигналы IRDY# и TRDY# установлены на том же самом фронте синхроимпульса (сигналом TRDY# нельзя управлять, пока установлен DEVSEL#). Если состояние неактивное, то вставляется цикл ожидания, и не передаются никакие данные. Как отмечено в диаграмме, данные успешно пересылаются в тактах 4, 6 и 8, а циклы ожидания вставлены в такты 3, 5 и 7.

Первая фаза данных завершается для транзакции чтения за минимальное время. Вторая фаза данных расширяется в 5-ом такте, так как неактивен сигнал TRDY#. Последняя же фаза данных расширена, из-за того, что IRDY# был неактивен в 7-ом такте.

В 7-ом такте мастер знает, что следующая фаза данных - последняя. Тем не менее, сигнал FRAME# остается активным, так как мастер не готов завершить последнюю пересылку (IRDY# в такте 7 неактивен). Только тогда, когда IRDY# станет активным, FRAME# может перейти в неактивное состояние, что и происходит в такте 8.

3.3.2. Транзакция записи На рисунке 3-2 показана транзакция записи. Транзакция начинается в такте 2, когда впервые устанавливается в активное состояние сигнал FRAME#. Транзакция записи подобна транзакции чтения, за исключением того, что после фазы адреса не требуется оборотный цикл, так мастер обеспечивает и адрес, и данные. Фазы данных для транзакции записи такие, как и для транзакции чтения.

–  –  –

На рисунке 3-2 первая и вторая фазы данных завершаются нулевыми циклами ожидания. Однако третья фаза данных имеет три цикла ожидания, вставленных целевым устройством.

–  –  –

Обратите внимание, что агент вставляет оба цикла ожидания в такте 5. IRDY# должен быть активен, когда FRAME# неактивный, показывая, таким образом, последнюю фазу данных. В такте 5 передача данных была отсрочена мастером, так как был неактивный сигнал IRDY#. Хотя это позволяет мастеру задержать данные, задержка разрешение байта запрещена. Последняя фаза данных указывается мастером в такте 6, но она не завершается до 8-го такта.

3.3.3. Завершение транзакции

Окончание транзакции PCI может быть инициировано как мастером, так и целевым устройством. Остановить транзакцию односторонне фактически нельзя, поэтому мастер постепенно завершает управление, приводя все транзакции к упорядоченному и систематическому выводу, чем вызывается само завершение. Все транзакции завершаются, когда оба сигнала FRAME# и IRDY# неактивны, показывая таким образом цикл ожидания (например, такт 9 на рисунке 3-2).

3.3.3.1. Завершение транзакции, инициированное мастером

Механизм, используемый мастером, инициирует завершение транзакции, когда сигнал FRAME# неактивный, а IRDY# - активный. Это сигнализирует целевому устройству, что идет заключительная фаза данных. Новая передача данных происходит, когда активны оба сигнала IRDY# и TRDY#. Транзакция завершается, когда оба сигнала FRAME# и IRDY# неактивны (шина при этом ожидает завершения транзакции).

Мастер может инициировать завершение, использующее этот механизм, по одной из следующих двух причин:

Завершение Завершение инициируется, когда мастер завершает соответствующую транзакцию.

Это - наиболее типичная причина для завершения транзакции.

–  –  –

Модифицированная версия этого механизма завершения позволяет мастеру завершать транзакцию, когда никакое целевое устройство не отвечает. Такое аварийное завершение называется завершением, инициированным мастером (master-initiated). Хотя это может вызывать фатальную Реализация 2.0 ошибку для приложения, изначально запросившего транзакцию, транзакция завершается элегантно, поддерживая таким образом нормальную работу PCI для других агентов.

На рисунке 3-3 показаны два примера нормального завершения транзакции. Заключительная передача данных происходит, когда неактивен сигнал FRAME#, и активны оба сигнала IRDY# и TRDY#, а это происходит в такте 3. Условие ожидания на шине вступает в силу, когда сигнал IRDY# - неактивный, это происходит в такте 4. Так как транзакция завершилась, то в такте 4 также неактивен TRDY#. Обратите внимание, что в такте 3 не требуется, чтобы TRDY# был активным, но тогда должна обеспечиваться задержка заключительной передачи данных (и задержка окончания транзакции), пока не будет обеспечена готовность путем отсрочки заключительной установки сигнала TRDY#. Если же это сделает целевое устройство, то мастеру потребуется сохранять IRDY# активным, пока не завершится заключительная передача данных.

Рисунок 3-3: Завершение транзакции, инициированное мастером

На обеих частях рисунка 3-3 ситуация могла бы завершиться тайм - аутом. Как показано на левой части рисунка, сигнал FRAME# неактивен в такте 3, так как истекает время по тайм-ауту. GNT# переходит в неактивное состояние, и мастер становится готов (IRDY# активен) к заключительной передаче. Так как GNT# неактивен по истечении времени, то дальнейшее использование шины не разрешается, за исключением случая использования команды Memory Write and Invalidate, которая должна завершиться при достижении границы строки кэша. Далее завершение происходит нормальным образом. Если TRDY# неактивен в такте 2, то фаза данных будет продолжаться, пока он не станет активным. FRAME# и IRDY# должны оставаться активными, пока не завершится фаза данных.

На правой части рисунка показана ситуация, когда время истекает в такте 1. Так как мастер не готов к передаче данных (IRDY# перешел в неактивное состояние в такте 2), то требуется, чтобы сигнал FRAME# оставался активным. FRAME# - неактивный в такте 3, так как мастер готов (IRDY# - активный) к завершению транзакции в такте 3. Мастер должен управлять достоверными данными (при записи), либо быть способным получить данные (при чтении) всякий раз, когда активен IRDY#. Данная задержка завершения не должна быть больше 2-х или 3-х циклов. Также обратите внимание, что транзакция не должна завершаться по истечении времени, если только GNT# не перейдет в неактивное состояние.

Аварийное прекращение работы мастера, как показано в рисунке 3-4, является аварийным случаем (кроме случая конфигурации или команд специального цикла) завершения, инициированного мастером. Мастер определяет, что если не будет никаких запросов на транзакцию, то DEVSEL# останется неактивным в такте 6 (за полным описанием работы с сигналом DEVSEL# обращайтесь к разделу 3.6.1.). Мастер должен установить, что либо целевое устройство, подавшее запрос, неспособно к работе с запрошенной транзакцией, либо адрес был неправильным. Как только мастер обнаружил отсутствие DEVSEL# (такт 6 в данном примере), сигнал FRAME# переходит в неактивное состояние в такте 7, а IRDY# - в такте 8. Самое начальный момент, когда мастер может завершать транзакцию с аварийным прекращением своей работы это 5 тактов после того, как впервые был установлен сигнал FRAME#, а это происходит, когда мастер делает попытку Реализация 2.0 одиночной передачи данных. Однако мастеру может потребоваться больше времени для перевода сигнала FRAME# в неактивное состояние и завершения запроса. Мастер должен поддерживать связь FRAME# IRDY# на всех транзакциях, которые включают в себя аварийное прекращение работы мастера. FRAME# не может перейти в неактивное состояние прежде, чем IRDY# станет активным, а IRDY# должен остаться активным по крайней мере один такт после того, как FRAME# станет неактивным, даже когда транзакция заканчивается с аварийным прекращением работы мастера.

В качестве альтернативы, IRDY# мог бы стать неактивным в такте 7, при условии, что FRAME# также был неактивным, как в случае транзакции с одной фазой данных. В нормальной ситуации мастер не будет повторять данный запрос (смотрите раздел 3.7.2.2.). Обратите внимание, что если DEVSEL# был активным в тактах 3, 4, 5 или 6 в этом примере, то это показывает, что запрос был подтвержден событием, и завершение с аварийным прекращением работы мастера недопустимо.

Главный интерфейс шины, в PC - совместимых системах, должен возвратить все единицы при транзакции чтения и отменить данные при транзакции записи, когда завершение происходит с аварийным прекращением работы мастера. Интерфейс требуется для установления бита аварийного прекращения работы мастера в регистре состояния. Другие мастер - устройства могут сообщать об этом состоянии как об ошибке, подачей сигнала SERR#, когда мастер не может сообщить об ошибке через драйвер устройства. Интерфейс PCI - PCI должен обеспечивать совместимость для PC, которая описывается для главного интерфейса шины. Когда интерфейс PCI - PCI используется в другой системе, то он ведет себя аналогично с ее мастер - устройствами.

Предварительная выборка интерфейсом данных при чтении должна быть полностью понятна для системы.

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

Рисунок 3-4: Завершение с аварийном прекращением работы мастера Подводя итог, можно перечислить следующие общие правила управления сигналами FRAME# и IRDY# во всех транзакциях PCI.

1. FRAME# и соответствующий IRDY# определяют состояние шины занято/ожидание (BUSY/IDLE); когда оба сигнала активные, шина занята; когда оба - неактивные, шина находится в ожидании.

2. Как только FRAME# стал неактивным, то он не может быть переустановлен в течение этой же самой транзакции.

Реализация 2.0

3. FRAME# не может быть установлен в неактивное состояние, пока IRDY# - неактивный (IRDY# должен всегда устанавливаться на первом фронте синхроимпульса, когда сигнал FRAME# становится неактивным).

4. Как только мастер установил сигнал IRDY#, он не должен изменять сигналы IRDY# или FRAME#, пока не завершится текущая фаза данных.

3.3.3.2. Завершение транзакции, инициированное целевым устройством

Механизм, используемый при завершении транзакции, инициированном целевым устройством, использует STOP#. Целевое устройство устанавливает STOP# для запроса к мастеру, чтобы он завершил транзакцию.

Если STOP# однажды уже был установлен, то он остается активным, пока не станет неактивным сигнал FRAME#. Связь между сигналами IRDY# и TRDY# не зависит от связи между STOP# и FRAME#. Это означает, что во время запроса целевым устройством завершения транзакции могут передаваться (но необязательно) данные; это зависит только от состояния сигналов IRDY# и TRDY#. Тем не менее, когда STOP# - активный, а TRDY# - неактивный, то показывает, что целевое устройство больше не будет передавать данные, поэтому мастер не будет ожидать заключительной передачи данных, как это было бы при завершающем прекращении транзакции.

Целевое устройство может инициализировать завершение, используя этот механизм, по одной из следующих двух причин:

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

Разрыв связи ведет к завершению транзакции, так как целевое устройство неспособно ответить в пределах задержки, установленной, установленной для PCI (она равна 8 тактам).

Обратите внимание, что это действие нетипично для первой фазы данных (смотрите раздел 3.4.4.1.). Разрыв связи означает, что целевое устройство прекращает транзакцию, когда данные получены, либо во время их получения.

Кэшируемые целевые устройства не должны разрывать связь для команды Memory Write and Invalidate, за исключением случая, когда достигнута граница строки кэша, если осуществляется кэширование. Следовательно, заинтересованный агент может всегда предполагать, что команда Memory Write and Invalidate завершится без разрыва связи, в случае, когда осуществляется запрос с обращением в диапазон кэшируемой памяти.

Модифицированная версия этого механизма позволяет целевому устройству завершать транзакцию, в которой произошла фатальная ошибка, или если на эту транзакцию целевое устройство не будет способно ответить. Такое аварийное завершение называется как завершение, инициированное целевым устройством (target - abort). Хотя это может вызвать фатальную ошибку для приложения, первоначально запросившего транзакцию, транзакция завершается элегантно, таким образом сохраняется нормальная работа PCI для других агентов.

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

- устройства должны обладать способностью к вызову всех этих функций. Повтор также необязателен для очень простых целевых устройств, которые: 1) не поддерживают исключительные запросы (с блокировкой),

2) не могут обнаружить возможную тупиковую ситуацию и 3) не могут войти в состояние, в котором они им потребовалось бы отклонить запрос.

Реализация 2.0 Три примера разрыва связи показаны на рисунке 3-5.

Каждый пример отражает одну и ту же связь между сигналами STOP# и FRAME#, а именно:

Разрыв связи наблюдается, когда активен STOP#, и он остается таким, пока FRAME# не станет неактивным.

Сигнал FRAME# становится неактивным как можно раньше, после того, как становится активным STOP#. Пример С показывает появление внешнего цикла, из-за того, что IRDY# не мог стать активным сразу после того, как сигнал STOP# был установлен в активное состояние.

STOP# завершает цикл сразу после того, как FRAME# перешел в неактивное состояние.

Кроме того, данные три примера разрыва связи показывают, что DEVSEL# всегда активный, когда активен STOP#; в противном случае наблюдается аварийное прекращение работы целевого устройства.

Эти три примера также показывают три различные возможности для передачи данных при разрыве связи.

Обратите внимание, что целевое устройство может определять, переданы данные или нет, после того, как STOP# стал активным. Передача данных происходит в каждом цикле, в котором активны сигналы IRDY# и TRDY#, независимо от состояния STOP#. Если целевое устройство хочет осуществить еще одну передачу данных, а затем остановиться, то оно в это же самое время устанавливает в активное состояние TRDY# и STOP#.

На рисунке 3-5, примеры A и B показывают два разных способа разрыва связи, когда данные передаются после установления в активное состояние сигнала STOP#. В обоих случаях, целевое устройство заявляет о своем намерении осуществить еще одну передачу данных при наличии активного TRDY#, когда активен сигнал STOP#. В примере A данные передаются того, как FRAME# стал неактивным (в такте 3), так как мастер не был к этому готов (IRDY# перешел в неактивное состояние в такте 2).

В примере B данные передаются перед установкой FRAME# в неактивное состояние (в такте 2). Если TRDY# был активным, когда активным был и сигнал STOP#, то TRDY# должен перейти в неактивное состояние, когда завершится текущая фаза данных. Целевое устройство не может установить в неактивное состояние STOP# и продолжать транзакцию. Мастер перезапускает любую транзакцию, завершившуюся с повтором либо разрывом связи, после запуска синхроимпульсов с адресами следующих, не переданных, данных. После того, как данные будут переданы, целевое устройство уберет сигнал TRDY#, так как предполагается, что данные больше не будут передаваться. Обратите внимание, что в заключительной фазе данные не передаются. Если целевое устройство сохраняло TRDY# активным в течение такта 3, и задержало активизацию сигнала STOP# до такта 3, после чего данные будут передаваться в тактах 2 и 3. Тем не менее, целевое устройство не может завершить более, чем одну передачу данных после того, как устанавливается в активное состояние сигнал STOP#, как это показано в примере A.

Будучи один раз установленным, сигнал STOP# должен остаться активным, пока не станет неактивным сигнал FRAME#. Если целевому устройству требуется цикла ожидания в последней фазе данных, то оно должно отсрочить переход STOP# в активное состояние, пока устройство не станет готово завершить транзакцию.

Пример С показывает случай, в котором после перехода STOP# в активное состояние данные не передаются, так как сигнал TRDY# - неактивный. Обратите внимание, что в этом примере, установка сигнала FRAME# в неактивное состояние отсрочена, до перехода IRDY# в активное состояние. Этот пример показывает повтор, который является фактически частным случаем, разрыва связи, когда вообще не происходит никакой передачи данных. Обобщенный пример повтора - это когда целевое устройство в текущий момент времени блокировано для монопольного запроса со стороны другого мастера. Другой пример - это когда целевое устройство должно осуществить запрос к некоторым другим не - PCI ресурсам перед разрешением транзакции (в этом случае требуется соблюдать осторожность, чтобы убедиться, что какие-либо условия, когда повтор непосредственно вел бы к порождению тупикового состояния). Когда текущая транзакция завершена целевым Реализация 2.0 устройством, мастер должен установить в неактивное состояние свой сигнал REQ#. Мастер должен это сделать за минимальное время из двух тактов PCI; один такт идет, когда шина переходит в состояние ожидания (в конце транзакции, когда активен STOP#), и еще один такт - перед или после состояния ожидания. Если мастер предполагает завершать транзакцию, то должен подтвердить это установкой REQ# немедленно после двух тактов, когда он перешел в неактивное состояние, или если появилось возможное состояние "зависания". Если мастер не предполагает завершать транзакцию (так как это могла быть выборка, или должен быть обслужен более приоритетный внутренний запрос), то агент только устанавливает в активное состояние REQ# всякий раз, когда требуется вновь использовать интерфейс.

Нижний правый пример на рисунке 3-5 показывает завершение транзакции по инициативе целевого устройства, а это происходит при активном STOP# и неактивном DEVSEL#. Таким образом показывается, что целевое устройство требует завершения транзакции, и что оно не желает ее повтора. К тому же, если в текущей транзакции были переданы какие-то данные, то они могут быть разрушены (смотрите раздел 3.7.2.2.). DEVSEL# должен быть активен в течение одного или большего количества временных циклов, а TRDY# должно стать неактивным прежде, чем может произойти аварийное прекращение работы, инициированное целевым устройством.

Рисунок 3-5: Завершение транзакции, инициированное целевым устройством

–  –  –

В заключение, перечислим следующие общие правила при управлении сигналами FRAME#, IRDY#, TRDY# и STOP# во всех транзакциях PCI:

1. Всякий раз, когда сигнал STOP# становится активным, FRAME# должен перейти в неактивное состояние как можно скорее, в соответствии с правилами такого установления (то есть IRDY# должен быть активным). Сигнал FRAME# должен стать активным после перехода STOP# в неактивное состояние как можно скорее, предпочтительно за два или три цикла. Целевое устройство должно игнорировать любые попытки установить связь в интервалах времени между переходом сигнала STOP# в активное состояние, а сигнала FRAME# - в неактивное но при этом оно должно сохранять активным сигнал STOP#, пока FRAME# не станет неактивным. Когда мастер обнаружил, что активен STOP#, он должен установить в неактивное состояние сигнал FRAME# в первом цикле, начиная с которого стал активным IRDY#.

Установка в активное состояние IRDY# (а, следовательно, установка FRAME# в неактивное состояние) может произойти как следствие нормального поведения сигнала IRDY# мастера (при условии, что транзакция не была прервана целевым устройством), и может быть задержана нулевым или большим количеством циклов, в зависимости от того, когда мастер будет готов завершить передачу данных. В качестве альтернативы, мастер может установить сигнал IRDY# в активное состояние немедленно (даже без подготовки к завершению передачи данных), при условии, что TRDY# - неактивный, таким образом показывая, что больше не будет никаких дальнейших передач данных.

2. Будучи установленным, STOP# должен остаться активным до тех пор, пока FRAME# не перейдет в неактивное состояние, после чего STOP# также должен стать неактивным.

3. В течение заключительной фазы данных транзакции (FRAME# неактивный и IRDY# активен), любой фронт синхроимпульса, на котором сигналы STOP# и TRDY# переходят в активное состояние, становится последним циклом транзакции, а сигнал IRDY# становится неактивным по следующему положительному фронту (таким образом, создается цикл ожидания и определяется конец транзакции).

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

5. Если целевое устройство установило в активное состояние сигналы TRDY# или STOP#, то оно не должно изменять DEVSEL#, TRDY# или STOP# до тех пор, пока не завершится текущая фаза данных.

–  –  –

3.4. Арбитраж Для того, чтобы уменьшить время ожидания запроса, при арбитраже PCI используется такой подход: запрос должен завершаться за определенное время. Это означает, что мастер шины должен осуществлять арбитраж для каждого запроса, который выполняется на шине. PCI использует центральную схему арбитража, где каждый агент мастера имеет уникальный сигнал запроса (REQ#) и сигнал разрешения (GNT#). Для получения доступа к шине используется простой прием «рукопожатие», типа запрос - ответ. Арбитраж на шине - "скрытый", это означает, что он осуществляется в течение предыдущего запроса таким образом, чтобы для арбитража не использовались никакие циклы шины PCI, за исключением случая, когда шина находится в состоянии ожидания.

Указанный алгоритм арбитража должен выполняться центральным арбитром, например, при вращении приоритета, точно и т.д. При определении алгоритма арбитража следует установить значение для гарантирования заданного времени ожидания в наихудшем случае. Тем не менее, так как алгоритм арбитража не является частью спецификации шины, то проектировщики системы могут по выбору модифицировать его, но при этом они должны обеспечить соблюдение требований для времени ожидания выбранных ими контроллеров ввода - вывода, а также для плат расширения. За информацией относительно значений для времени задержки обращайтесь к разделу 3.4.4.3. Шина позволяет агенту осуществлять back-to-back транзакции, а также позволяет арбитру определенную гибкость в распределении запросов по приоритетам и весам. Арбитр может реализовывать схему любой сложности, при этом в любом такте должен быть активен только один сигнал GNT#.

3.4.1. Протокол сигналов арбитража

Агент запрашивает шину путем установки сигнала REQ#. Агенты могут использовать сигнал REQ#, чтобы указать, что им действительно требуется использовать шину. Агент никогда не должен использовать сигнал REQ#, чтобы "закрепить" себя на шине. Если же закрепление выполнено, то арбитр должен определить мастера по умолчанию. Когда арбитр решает, что агент может использовать шину, то он устанавливает в активное состояние сигнал GNT# агента.

Арбитр может установить в неактивное состояние сигнал GNT# агента в любом такте. Если агент желает начать транзакцию, он должен убедиться, что GNT# активен по положительному фронту синхроимпульса.

Если GNT# неактивный, то транзакция не должна продолжаться. Если GNT# был установлен в активное состояние, то он может перейти в неактивное состояние в соответствии со следующими правилами.

1. Если GNT# - неактивный, и активен FRAME#, то транзакция шины допустима и продолжается.

2. Один сигнал GNT# может быть установлен в неактивное состояние, когда соответствующий сигнал GNT# активен, причем шина не должна находиться в состоянии ожидания. В противном случае, потребуется один такт задержки в период, когда GNT# устанавливается в неактивное состояние, а следующий сигнал GNT# переходит в активное состояние, либо если будет конкуренция на адресных линиях AD и линии PAR.

3. Пока сигнал FRAME# - неактивный, GNT# может быть установлен в неактивное состояние в любой момент времени в порядке обслуживания высокоприоритетным5 мастером, или при отклике на соответствующий сигнал REQ#, который перешел в неактивное состояние.

Рисунок 3-6 иллюстрирует основной арбитраж. Используются два агента, чтобы показать, как арбитр может чередовать запросы шины.

Высокий приоритет здесь не подразумевает фиксированный приоритетный арбитраж, это относится к агенту, который бы своевременно выиграл арбитраж в установленное время.

Реализация 2.0

–  –  –

REQ# активен до такта 1 или в течение его, если поступил запрос на использование интерфейса. Агент A получает разрешение к шине, так как сигнал GNT#-a устанавливается в активное состояние в такте 2.

Агент A может начать транзакцию в такте 2, так как сигналы FRAME# и IRDY# были установлены в неактивное состояние, а сигнал GNT# установлен в активное состояние. Транзакция агента A начинается, когда FRAME# устанавливается в активное состояние в такте 3. Так как агент A решает выполнить другую транзакцию, то он оставляет сигнал запроса REQ#-a активным.

Когда сигнал FRAME# активен в такте 3, арбитр определяет, что далее следует агент B, и поэтому устанавливает в такте 4 сигнал GNT#-b - в активное состояние, а сигнал GNT#-a - в неактивное.

Шина освобождается, когда агент A завершает свою транзакцию в такте 4. Все агенты PCI могут определить конец текущей транзакции по неактивным сигналам FRAME# и IRDY#. Агент B захватывает шину в такте 5 (так как FRAME# и IRDY# - неактивные) и завершает свою транзакцию в такте 7.

Обратите внимание, что неактивный REQ#-b и активный FRAME# в такте 6 показывают, что агенту B требуется единственная транзакция. Арбитр разрешает следующую транзакцию агенту A, так как REQ# все еще активен.

Текущий мастер шины сохраняет REQ# активным, когда ему требуются дополнительные транзакции. Если больше нет никаких других активных запросы, или текущий мастер имеет самый высокий приоритет, арбитр продолжает предоставлять шину этому текущему мастеру.

Сигнал GNT# необходим агенту для запроса на шине одиночной транзакции. Если агент желает сделать другой запрос, он должен сохранять активным сигнал REQ#. Агент может установить сигнал REQ# в неактивное состояние в любой момент времени, но арбитр может интерпретировать это, как ситуацию, в которой агенту больше не требуется использования шины, и установить в неактивное состояние сигнал GNT#. Агент должен установить REQ# в неактивное состояние в том же самом такте, когда активен FRAME#, при условии, что агенту требуется выполнить одиночную транзакцию. Когда транзакция завершена целевым устройством (активен STOP#), мастер должен установить в неактивное состояние REQ# менее, чем за два такта PCI, первый из них - когда шина переходит в состояние ожидания (в конце транзакции, когда становится активным сигнал STOP#), и еще один - на такт раньше или позже, после состояния ожидания. Если мастер предполагает завершать транзакцию, то должен еще раз установить сигнал REQ# после того, как REQ# перейдет в неактивное состояние, или может произойти потенциальное состояние "зависания". Если мастер не предполагает завершение (так как была предвыборка, или должен быть обслужен более приоритетный внутренний запрос), агент должен устанавливать REQ# всякий раз, когда ему может потребоваться использование интерфейса. Это позволяет другому агенту использовать интерфейс, пока предыдущее целевое устройство готовится к следующему запросу.

Реализация 2.0

Арбитр может принять решение, что текущий мастер «разрушен», если тот не начал запрос после того, как был установлен в активное состояние сигнал GNT# (REQ# также активен), и шина находилась в ожидании 16 тактов PCI. Тем не менее, арбитр может убрать сигнал GNT# в любое время, для обслуживания более приоритетного агента.

3.4.2. Быстрые back-to-back транзакции Имеются два типа быстрых back-to-back транзакций, которые могут быть инициированы тем же самым мастером, который осуществляет запрос агент, обратившегося к нему. Быстрые back-to-back транзакции разрешаются на шине PCI, когда надо избежать конкуренции для сигналов TRDY#, DEVSEL# или STOP#.

Первый тип быстрой back-to-back транзакции возлагает ответственность за устранение конкуренции на мастере, в то время как второй возлагает эту ответственность на все потенциальные целевые устройства.

Мастер может удалять цикл ожидания между транзакциями, если это будет гарантировать отсутствие конкуренции. Данное условие может быть выполнено, когда вторая транзакция мастера производится для того же самого целевого устройства, которое было в первый раз, и сама транзакция - это транзакция записи.

Для этого типа быстрой back-to-back транзакции требуется, чтобы мастер знал границы адресов потенциального целевого устройства, иначе может происходить конкуренция. Этот тип быстрых back-toback транзакций необязателен для мастера, но должен дешифрироваться целевым устройством.

Второй тип быстрой back-to-back транзакции возлагает ответственность за отсутствие какой-либо конкуренции на все потенциальные целевые устройства.

Бит возможности быстрой back-to-back транзакции в регистре статуса может быть аппаратно установлен в логическую единицу (высокий уровень), если только устройство, которое является целевым устройством шины, отвечает следующим двум требованиям:

1. Целевое устройство не должно пропустить начало транзакции шины или потерять адрес, когда данная транзакция начинается без состояния ожидания на шине после предшествующей транзакции. Другими словами, целевое устройство должно обладать способностью «следовать» за состоянием шины, от заключительной передачи данных (высокий FRAME#, низкий IRDY#) непосредственно к фазе адреса (низкий FRAME#, высокий IRDY#) при последовательных циклических тактах. Обратите внимание, что хотя можно выбирать целевое устройство (а можно и не выбирать) на любой из этих транзакций или на обеих сразу, тем не менее целевое устройство должно отслеживать состояния шины6.

2. Целевое устройство должна избегать конфликтов для сигналов DEVSEL#, TRDY# и STOP#. Если целевое устройство не реализует самое минимальное, по возможности, время установления DEVSEL# в активное состояние, то это уже гарантируется. Если целевое устройство реализует состояние дешифрирования с нулевым временем ожидания, то оно должно отсрочить установление в активное состояние этих трех сигналов на один такт, за исключением случая, когда выполняется любое из следующих условий:

a. Текущей транзакции шины предшествовало состояние ожидания. То есть это - не back-to-back транзакция, или b. Текущее целевое устройство управляло сигналом DEVSEL# на предыдущей транзакции шины.

То есть это - back-to-back транзакция, предусматривающая то же самое целевое устройство, что и в предыдущей транзакции.

Для мастеров, которые хотят выполнять быстрые back-to-back транзакции, обеспечиваемые механизмом целевого устройства, требуется бит Fast Back-to-Back Enable в регистре команд (этот бит имеет значение только для устройств, которые функционируют как владельцы шины, и полностью необязателен). Данный бит реализуется в качестве записываемого/считываемого бита. Когда он установлен в единицу (высокий) уровень, мастер шины может начинать транзакцию PCI, используя back-to-back синхронизацию без указания адреса целевого устройства, взяв его из предыдущей транзакции записи, осуществленной текущим мастером шины.

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

приложение B) из состояния B_BUSY в состояние ожидания так скоро, как только возможно, поскольку FRAME# - неактивный, и отсутствует ожидание на шине состояния IDLE (IRDY# - неактивный).

Реализация 2.0 Если этот бит установлен в ноль (низкий уровень) или вообще не установлен, мастер может выполнять быстрые back-to-back транзакции только, если будет гарантировано, что новая транзакция будет осуществляться к тем же самым целевым устройствам, что и в предыдущий раз (механизм, основанный на мастере).

Данный бит можно установить подпрограммой конфигурации системы, после того, как будет гарантировано, что все целевые устройства на этой шине имеют установленный бит возможности быстрой back-to-back транзакции (Fast Back-to-Back Capable Bit).

Обратите внимание, что механизм быстрых back-to-back транзакций, основанный на мастере, не позволяет осуществлять такие «быстрые» циклы для отдельных целевых устройств, в то время механизм, основанный на целевом устройстве, позволяет это делать.

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

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

Во всех других состояниях, мастер должен вставлять минимум одно состояние ожидания на шине (по крайней мере, всегда имеется хотя бы одно состояние ожидания шины между транзакциями, осуществляемых различными мастерами). Обратите внимание, что многопортовые целевые устройства должны блокировать себя, когда они действительно заняты в течение быстрых back-to-back транзакций (за более подробной информацией обращайтесь к разделу 3.5.).

Во время быстрой back-to-back транзакции, мастер начинает следующую транзакцию немедленно, без состояния ожидания шины. Последняя фаза данных завершается, когда FRAME# - неактивный, а IRDY# и TRDY# - активны. Текущий мастер начинает следующую транзакцию в том же самом такте, в котором передавались последние данные в предыдущей транзакции.

Очень важно заметить, что агенты, не включенные в последовательность быстрых back-to-back транзакций, не могут (и вообще не нуждаться) немедленно определять промежуточные границы транзакции, используя только сигналы FRAME# и IRDY# (цикл ожидания шины отсутствует). Только во время быстрых back-toback транзакций мастера и целевые устройства испытывают потребность определять эти границы. Когда завершена последняя транзакция, все агенты «увидят» цикл ожидания. Тем не менее, те устройства, которые поддерживают механизм, основанный на целевом устройстве, должны быть способны определить завершение всех транзакции PCI, а также обнаруживать все фазы адреса.

На рисунке 3-8, мастер завершает запись в такте 3, и фаза адреса следующей транзакции происходит в такте

4. Целевое устройство должно начать отслеживать FRAME# в такте, следующем после завершения текущей транзакции данных. Целевые устройства должны быть способны дешифрировать back-to-back операции, в то время как мастер может, хотя и необязательно, также поддерживать эту функцию. Целевое устройство может по выбору повторить запрос, после того, как был потребован монопольный доступ, путем установки сигнала DEVSEL#.

Реализация 2.0

–  –  –

3.4.3. Фиксирование арбитража Термин парковка подразумевает разрешение арбитру установки в активное состояние сигнала GNT# для выбранного агента, когда в данный момент времени никакой агент не использует и не запрашивает шину.

Арбитр может выбирать заданного по умолчанию мастера, любым требуемым способом (фиксированного мастера, последнего используемого мастера, и т.д.), либо может вообще никого не выбирать (обозначая себя в качестве заданного по умолчанию мастера). Когда арбитр устанавливает активное состояние для сигнала GNT# агента, и шина находится в состоянии ожидания, то этот агент должен разрешить свои линии AD[3l::00], C/BE[3::0]# и (одним тактом позже) буферы вывода PAR в течение восьми тактов PCI (требуется), в то время как рекомендуется два - три такта (смотрите обсуждение контроля по четности и описание временных соотношений между PAR и AD). Агент не обязан разрешить все буферы за один такт. Просто это требование гарантирует, что арбитр может без риска закрепить шину за некоторым агентом и знать, что шина будет работать нормально (если арбитр не закрепляет шину за каким - либо агентом, то шиной будет управлять устройство центрального ресурса, в которое встроен арбитр).

Во всех случаях, когда шина находится в состоянии ожидания, а арбитр убирает сигнал GNT# агента, агент теряет запрос к шине, за исключением одного случая. В этом случае арбитр переводит в неактивное состояние сигнал GNT# агента, установившего FRAME#, и мастер продолжает транзакцию. В противном случае, агент должен перевести в третье состояние линии AD[3l::00], C/BE# [3::0] и (одним тактом позже) PAR. В отличие от вышеупомянутого варианта, агент должен отключить все буферы за один такт, чтобы избежать возможной конкуренции со следующим мастером шины.

Подводя итог вышесказанному, минимальные временные параметры при арбитраже, на шине PCI в состоянии ожидания, должны быть следующими:

• Агент закреплен: ноль тактов - для закрепленного агента, два такта - для остальных.

• Агент не закреплен: один такт для любого агента.

Когда шина закреплена за агентом, ему разрешается начать транзакцию без установленного сигнала REQ# (мастер может начинать транзакцию, когда шина находится в состоянии ожидания, и активен сигнал GNT#). Если агенту требуется сделать множество транзакций, то он должен установить сигнал REQ#, чтобы сообщить арбитру о своих намерениях. Когда мастеру требуется только одна транзакция, то он не должен устанавливать в активное состояние сигнал REQ#; в противном случае, арбитр может продолжать устанавливать его сигнал GNT#, когда использование шины не требуется.

Реализация 2.0

3.4.4. Временные задержки Здесь подразумевается наибольшая задержка во времени при высокой производительности шины вводавывода. В данном разделе описываются механизмы PCI, помогающие предсказывать и управлять временем задержки в наихудшем случае. Используя эти механизмы, можно предсказать возможные задержки для окружения PCI и эффективного интерфейса основной памяти с достаточно высокой точностью. Применение стандартной шины расширения (ISA, EISA и т.д.) осложняет предсказание задержек во времени. Если есть шина расширения, то наихудший случай времени ожидания получается за счет самой шины расширения, либо из-за "неблагополучных" характеристик адаптера.

3.4.4.1. Временные задержки на PCI Рисунок 3-9 описывает различные составляющие временных параметров, которые происходят для устройства, осуществляющего запрос к шине. Первая часть - это время задержки арбитража, т. е. время, которое ожидает мастер между установкой запроса REQ# и получением разрешения в виде установленного GNT#. Данное время является временным параметром при арбитраже, когда назначаются приоритеты запрашивающим устройствам в процессе эксплуатации система. Для самого «быстрого» устройства это время, обычно составляет два такта PCI. Следующая составляющая - это задержка при ожидании шины - то есть, как долго устройство должно ожидать освобождения шины. Следующая составляющая - это время задержки целевого устройства, то есть количество времени, которое необходимо целевому устройству, чтобы установить в активное состояние сигнал FRAME# для первой передачи данных.

Рисунок 3-9: Компоненты времени задержки при запросе

Проверка может работать неопределенно длительное время, поскольку целевое устройство может посылать / принимать данные, и нет агента, запрашивающего шину. Тем не менее, PCI предусматривает два механизма, предусматривающих задержку мастера, при условии, что присутствуют другие запросы, так, чтобы можно было предсказать время на захват шины.

Эти механизмы определяются следующим образом:

Таймер задержки мастера (Master Latency Timer - LT): LT каждого мастера обнуляется и приостанавливается всякий раз, когда не может быть установлен сигнал FRAME#. Когда мастер устанавливает FRAME# в активное состояние, то это дает возможность запустить LT. Если мастер установил в неактивное состояние FRAME# до окончания счета, то работа LT бессмысленна. В противном случае, как только истекает время (счетчик = "T" тактов), мастер должен инициировать завершение транзакции (смотрите раздел 3.3.3.1.) так скоро, как только GNT# будет установлен в неактивное состояние. В сущности, "T" представляет минимально гарантируемый интервал времени («отмеряемые» такты PCI) для мастера, после тот должен прекратить ожидание, как только будет установлен в неактивное состояние GNT# (фактическое завершение работы не происходит, пока целевое устройство находится в состоянии готовности).

Завершение транзакции, инициированное целевым устройством (специальный разрыв связи): целевое устройство должно манипулировать сигналами TRDY# и STOP#, чтобы завершить транзакцию при окончании фазы данных - за "N" тактов (где N=1,2,3...), если возрастающее время задержки для фазы данных "N + 1" больше, чем число прошедших тактов PCI. Например, когда мастер PCI производит чтение из шины расширения, это занимает минимум 15 тактов. При использовании правила N=1, время задержки для фазы данных равно 2 - 15 тактам, таким образом, целевое устройство должно завершить работу после окончания фазы данных (например, «медленное» целевое устройство должно прекратить попытки работу на границах фазы данных).

Реализация 2.0 Обратите внимание, что ни один механизм не ограничивает время задержки первой фазой данных (это обсуждается в разделе 3.4.4.3.). Например, в отдельной системе нет целевых устройств настолько медленных, который бы задерживали TRDY# более, чем T+8 тактов для завершения первой фазы данных. С таким предположением и вышеперечисленными механизмами, можно показать, что самая длинная транзакция, которую может выполнить мастер, составит T+8 тактов (при условии, что GNT# будет установлен в неактивное состояние прежде, чем LT закончит счет). Если принять T=40, то максимальная транзакция займет 48 тактов (1.44 мкс при 33 МГц).

В действительности, параметр "T" характеризует соотношение между производительностью (относительно высокие величины) и временем задержки (малые величины). Например, T=40 означает, что блок состоит из 32 фаз данных (байты 128/256 в 32/64-разрядной транзакции), при условии, что мастер и целевое устройство готовы к 0 циклам ожидания (восемь тактов времени задержки для первых данных). Уменьшение T до 20 тактов может прервать блок из 12-14 пересылок, но зато ограничить максимальную транзакцию до 28 тактов (0.84 мкс при 33 МГц).

3.4.4.2. Определение времени задержки Время задержки запроса меняется от одной реализации системы к другой, в зависимости от устройств, используемых в данной системе. Но разработчики PCI - устройств должны иметь некоторый эталон времени задержки при типичном запросе, так что они могут обеспечить достаточно неплохую аппаратную буферизацию для минимизирования временных параметров. На рисунке 3-9 каждую составляющую времени задержки при запросе можно рассмотреть индивидуально. Время задержки арбитража может отдать два такта для устройства с наивысшим приоритетом. Низкоприоритетные устройства будут иметь более длинные времена задержки, в зависимости от числа высокоприоритетных устройств и коэффициента использования устройства.

Время задержки при захвате шины определяется одним из следующих двух источников. Это либо наибольшая задержка первой фазы данных в системе, либо значение в таймере времени задержки, при условии, что все времена задержки первых данных минимальные. Задержка первой фазы данных (то есть время ожидания первых данных) - это время от установки сигнала FRAME# до установки сигнала TRDY#.

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

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

Следующие пункты показывают несколько различных значений времени задержки для разных последовательностей событий на шине PCI. Они могут служить примером при вычислении времен задержек при разных запросов.

Такие вычисления сделаны со следующими предположениями:

• Шина PCI работает на частоте 33 МГц.

• Время задержки при ожидании первых данных составляет 16 тактов (0.5 мкс) для всех устройств, которые не являются шинами расширения.

• Время между последовательностями фаз данных при блочной передаче - восемь тактов.

• Побайтовый доступ на шине расширения занимает 1.5 мкс, причем время задержки первых данных равно 6 мкс при 32-битном доступе через интерфейс шины расширения.

Сценарий 1: Мастер-устройство желает сделать запрос, когда нет запросов от других агентов, и шина находится в состоянии ожидания. Обычно время задержки арбитража занимает два такта. Время

–  –  –

задержки при захвате шины равняется нулю, так как шина находится в состоянии ожидания. Время задержки целевого устройства - 16 тактов, таким образом общее время ожидания составляет l8 тактов (0.54 мкс).

Сценарий 2: Мастер-устройство желает сделать запрос, когда другое устройство только что начало транзакцию на шине PCI. Мастер, использующий шину, хочет осуществить блочную передачу из l6 фаз данных. Счетчики времени задержки в системе устанавливаются на 66 тактов, что эквивалентно 2 мкс.

Время задержки арбитража обычно равняется двум тактам, если только нет каких-то отложенных запросов.

Время задержки при захвате шины равняется 72 тактам, что означает 2 мкс перед тем, как LT завершит отсчет, плюс восемь тактов, чтобы позаботиться о последней фазе данных. В это время происходит восемь пересылок данных (l6 тактов для первой фазы данных, шесть пересылок данных по восемь тактов на каждую, пока LT не завершит счет, и затем еще восемь тактов для последней фазы данных). Время задержки целевого устройства - 16 тактов. Обратите внимание, что в этом случае время задержки арбитража и время ожидания при захвате шины перекрываются так, что общее время задержки достигает 88 тактов (2.7 мкс).

Сценарий 3: Мастер-устройство желает запрос через интерфейс ЦП, которому необходимо сбросить буферы. Буферы сбрасываются через шину расширения, и размер буфера - четыре байта.

Время задержки арбитража равняется двум тактам, а время задержки при захвате шины нулевое. Когда устройство делает свой запрос, интерфейс ЦП сообщит о повторе, вынуждая запрашивающее устройство вернуться к начальному времени ожидания. Интерфейс осуществит арбитраж для шины (два такта), а затем выполнит сброс буферов. Это займет 6 мкс. В это время, для первоначального запрашивающего устройства будет выполнен повторный арбитраж шины, и оно будет ждать, пока шина не перейдет в состояние ожидания. Как только завершится сброс буферов, мастер-устройство осуществит запрос, задержка целевого устройства составит 16 тактов. Общее время задержки - составит 222 такта (два такта для арбитража, четыре такта - для передачи сигналов о повторе, 200 тактов для сброса буферов и l6 тактов - для заключительного времени задержки целевого устройства). Это - 6.7 мкс при частоте шины в 33 МГц.

3.4.4.3. Рекомендации для величины времени ожидания Необходимо согласовывать устройства, чувствительные как производительности, так и к задержке во времени. Например, во время связанной с ЦП модификации изображения на экране, трафик при передаче буфера изображения может занимать большую часть от ширины диапазона передаваемых по шине данных.

Иногда возможны необычайно длинные запросы, если типичная задержка очень мала. Такие особенности PCI, как пересылка блоков данных с неограниченной длиной (широкий диапазон блочного ввода-вывода;

FDDI) и закрепление шины за агентом (высокая пропускная способность; например, при передаче буфера изображения) отвечают требованиям устройств с высокой производительностью. С другой стороны, сетевые устройства (LAN - адаптеры) со скоростью 10 Мбит/сек занимают лишь небольшую часть пропускной способности шины PCI. Чтобы сохранить экономичные характеристики таких устройств (требования по оптимизации буферов), такие особенности PCI, как основанный на запросах арбитраж и счетчики задержек мастер - устройства (LT), позволяют ограничить наихудший случай времени ожидания. Например, счетчик задержки может вынудить устройство с большим буфером FDDI, обычно реализующее за один запрос блок длиной в 128 двойных слов (DWORD), разбить передачу на отдельные малые части, осуществляя таки образом поверхностную буферизацию. Устройства, чувствительные ко времени ожидания, обращаются к шине наиболее часто. Высокая производительность и малое время ожидания часто дополняют друг друга.

Соответственно, очень важно, чтобы системы с PCI компонентами разрабатывались очень тщательно, чтобы минимизировать риск, связанный с временем ожидания при взаимодействии систем, и облегчать приемлемые соотношения цена/производительность.

У большинства PCI - систем типичное время задержки очень мало (около 2 мкс), и оно легко определяется.

Тем не менее, в наихудшем случае (который, в свою очередь, достаточно редок), время задержки не может быть слишком большим, но такие ситуации очень трудно предсказать. Например, задержка для стандартной платы расширения (ISA/EISA/MC) относительно интерфейса часто зависит от самого адаптера, а не от шины PCI (это особенно проблематично, так как некоторые существующие адаптеры не обеспечивают временные параметры задержки, определенные стандартом шины). Для того, чтобы это компенсировать, мастер устройства, для которых надо гарантировать

Реализация 2.0

наихудший случай задержки, должны обеспечить адекватную буферизацию за 30 мкс. Это подразумевает буферизацию минимум около 50 байтов для LAN - адаптеров со скоростью 10 Мбит/сек, и около 500 байтов для LAN - адаптера со скоростью 100 Мбит/сек (если буферы организованы в виде строк (например, с 16- или с 32-битным выравниванием) для наилучшего использования PCI и памяти целевого устройства, то минимальный размер буфера желательно увеличить). Несмотря на некоторую неопределенность в наихудшем случае, для реализуемых системных разработок 30 микросекунд должны обеспечить достаточно широкое поле деятельности. Даже при самых жестких требованиях, 30 микросекунд должно хватить в наихудшем случае. Для снижения стоимости проектирования в наихудшем случае мастер - устройство может уменьшить задержку для наихудшего случая, если допускаются случайные нарушения величины задержки без создания ошибочных условий. Например, LAN - адаптер должен иметь соответствующую инфраструктуру (аппаратное и программное обеспечение), чтобы можно было определить, когда происходят ошибки при буферизации, и инициировать повторную передачу блока данных (как в случае, когда блоки искажаются из-за наводок в линиях или коллизий). Секторы на диске можно повторно считать или записать. Передача в реальном времени потока данных (например, аудио- данных) может допускать случайные типовые потери, используя при этом предыдущую выборку данных. Устройство, достаточно устойчивое к сбоям и нарушениям задержки, изменяет значение задержки из обычного состояния в более «благоприятное» для соотношения цена/производительность (то есть, в случае обработки звука мы получим шумы). Например, дешевый LAN адаптер для клиентских станций (с небольшой загрузкой шины PCI) проектируют с задержкой 10 мкс в наихудшем случае и принимают, что частота повторения пакетов слишком мала, чтобы повлиять на снижение эффективности. Устройства, разрабатываемые для серверов, должны иметь большие буферы (при высокой стоимости) для уменьшения повторений в случае больших нагрузок (если принимать во внимание необходимость разработки очень устойчивых приложений, то устройства, спроектированные для задержки 30 мкс и более, должны самовосстанавливаться во всех случаях нарушения задержки). Некоторые приложения (например, встраиваемые контроллеры, мультимедиа и т. д.) могут принимать на себя более устойчивое управление задержками, чем то, которое обеспечивается обычной (общего назначения) главной шиной PCI (такие условия могут быть реализованы на вторичной шине PCI и подсоединены к host - машине через интерфейс PCI - PCI). Этому типу приложений требуется, чтобы у целевых устройств было малое и предсказуемое время задержки. Для обеспечения такого проектирования, и, в общем случае, для поощрения хороших разработок, при разработке интерфейса целевых устройств рекомендуется пользоваться принципами, перечисленными ниже. Далее, термином «одноуровневый» (single-layer) обозначается целевое PCI - устройство, которое обеспечивает немедленный доступ к выбранному ресурсу. В качестве примера могут служить одно-портовая динамическая память (DRAM) и буфер изображения видеопамяти (VRAM).

«Многоуровневым» называется целевое устройство, осуществляющее арбитраж ресурса, выбранного другим ресурсом, для которого арбитраж не осуществляется. В качестве примера можно указать интерфейсы «PCI шина расширения» (например, PCI - ISA/EISA/MC; PCI - PCI; PCI - основная память и т. д.), а также двухпортовую DRAM.

1. Одноуровневое целевое устройство должно отсрочить первую фазу данных на 16 тактов. В противном случае, если временное внутреннее состояние (например, регенерация DRAM, полная очередь отложенных запросов на запись и т. д.) увеличивает задержку запроса более, чем на 16 тактов, то немедленно осуществляется повтор.

2. Многоуровневое целевое устройство должно повторять запрос, который находится в коллизии с занятым ресурсом. Например, если осуществляется запрос, подчиненный EISA - шине, которая захвачена другим мастером, то следует немедленно повторить этот запрос (в любом случае, был бы необходим цикл ожидания для исключения тупиковой ситуации, поэтому ожидание и происходит). Аналогично, при запросе регенерируемого буфера изображения DRAM следует повторить данный запрос.

3. «Многоуровневые» целевые устройства (особенно, шинные интерфейсы) должны соблюдать большую осторожность в стратегии записи буфера. Буферы записи затрудняют определение задержки, так как обычно предъявляемые строгие требования гласят, что перед разрешением какого-то запроса, должна быть обслужена вся очередь записей. Рекомендуется, в частности, чтобы основной интерфейс ЦП - PCI мог откладывать записи в резидентный PCI - буфер, при этом подавляя отложенные записи на подчиненную шину ISA/EISA/MC.

Реализация 2.0



Pages:   || 2 | 3 |
Похожие работы:

«ПЛАН ВОСПИТАТЕЛЬНОЙ РАБОТЫ МБВСОУ ОСОШ Цель : создать условия для воспитания личности гражданина России, обеспечения духовно – нравственной реабилитации "трудных" подростков, их социализация в условиях обучения и воспитания путем взаимодействия семьи, школы и общества.Задачи: организация в школе открытого информ...»

«ВАЖНО!!! CASIO Модуль 3166 SGW-200 • Особенностью некоторых защищенных от воды часов является наличие у них Руководство пользователя кожаных ремешков. Не надевайте эти часы во время плавания или какой-либо другой деятельности, пр...»

«CMW/C/SR.236 Организация Объединенных Наций Международная конвенция Distr.: General 14 January 2014 о защите прав всех трудящихсяRussian мигрантов и членов их семей Original: French Комитет по защите прав всех трудящихся-мигрантов и членов их семей Девятн...»

«ЕЖЕКВАРТАЛЬНЫЙ ОТЧЕТ открытое акционерное общество Волгоградоблэлектро Код эмитента: 45278-E за 4 квартал 2011 г. Место нахождения эмитента: 400075 Россия, г.Волгоград, ул. им.Шопена 13 Информация, содержащаяся в настоящем ежеквартальном о...»

«© 1995 г. М.Ф. ЧЕРНЫШ СОЦИАЛЬНАЯ МОБИЛЬНОСТЬ И МАССОВОЕ СОЗНАНИЕ* В классических исследованиях социальной мобильности неоднократно предпринимались попытки связать различные типы перемещений человека по социальной лестнице с изменением его общих мировоззренческих установок. На уровне обыденного сознания эта взаимосвязь воспринимается к...»

«Мониторинг событий, оказывающих существенное влияние на функционирование и развитие мировых энергосистем 11.03.2016 – 17.03.2016 В Финляндии запущен проект по участию домохозяйств в балансирующем рынке Финская государственная энергетическая компания Фортум (Fortum Corporation)1 запустила пилотный проект, т.н. "вирту...»

«ЧАСЫ НАСТОЛЬНЫЕ С LED ДИСПЛЕЕМ МОДЕЛЬ: CL-114 ИНСТРУКЦИЯ ПО ЭКСПЛУАТАЦИИ CL_114_Manual.indd 1 31.07.2015 11:31:23 Перед использованием прибора внимательно ознакомьтесь с инструкцией! CL_114_Manual.indd 2 31.07.2015 11:31:23 МОДЕЛЬ: CL-114 ОСНОВНЫЕ МЕРЫ БЕЗО...»

«Протокол № 2013-СВТН-15/И от 28.03.2013г. стр. 1 из 5 УТВЕРЖДАЮ Председатель Конкурсной комиссии _ С.В. Яковлев "28" марта 2013 г. ПРОТОКОЛ № 2013-СВТН-15/И заседания Конкурсной комиссии департамента организации и проведения торгов ОАО "АК "Транснефть" по выбору подрядной организации по лоту...»

«RU Aristo MA4 Инструкция по эксплуатации 0458 818 186 RU 20110518 Valid from program version 1.30 1 ВВЕДЕНИЕ........................................................ 3 1.1 Панель управления............................................»

«Время переосмыслить Восточное Партнерство – Доклад местных и региональных органов власти Восточного Партнерства Саммиту глав государств и правительств Восточного Партнерства Вильнюс, Литва, 2013 Введение Главы государств и правительств призвали CORLEAP к со...»

«СОДЕРЖАНИЕ 1. ОБЩИЕ ПОЛОЖЕНИЯ Инверторный выпрямитель ПАТОН ВДИ-160P предназначен 1. Общие положения 2 для ручной дуговой сварки (РДС) и аргонодуговой сварки (АРГ 2. Ввод в эксплуатацию 5 "TIG") на постоянном токе. Это "Professional" серия, которая 2.1. Использовани...»

«Муниципальное общеобразовательное бюджетное учреждение средняя общеобразовательная школа д.Старомухаметово муниципального района Кигинский район Республики Башкортостан Рассмотрен...»

«ХИЩНЫЕ ПТИЦЫ СЕВЕРНОЙ ЕВРАЗИИ ПРОБЛЕМЫ И АДАПТАЦИИ В СОВРЕМЕННЫХ УСЛОВИЯХ Южный федеральный университет Мензбировское орнитологическое общество Рабочая группа по соколообразным и совам Северной Евразии Русское общество сохранения и изучения птиц Со...»

«РОССИЙСКАЯ АВТОМОБИЛЬНАЯ ФЕДЕРАЦИЯ КОМИТЕТ КАРТИНГА РАФ ГОНОЧНАЯ ТРАССА ЛИДЕР "УТВЕРЖДЕНО" Директор А.А.Янковский ""_2016 г. "СОГЛАСОВАНО" РЕГЛАМЕНТ МНОГОЭТАПНЫХ ЛЮБИТЕЛЬСКИХ...»

«Республика Шеврон—20 лет в Казахстане Республика Chevron—20 лет в Казахстане Июнь 2013 ©2013 Этот доклад подготовлен общественной организацией Crude Accountability, которая занимается вопросами защиты прав человека и охр...»

«Михаил Афанасьевич Булгаков Ханский огонь Когда солнце начало садиться за орешневские сосны и Бог Аполлон Печальный перед дворцом ушел в тень, из флигеля смотрительницы Татьяны Михайловны прибежала уборщица Дунька и закри...»

«Руководство пользователя Версия 1.12 Руководство пользователя DMX CONTROL 512 Оглавление 1. Меры безопасности. 4 2. Правила использования. 4 3. Обзор пульта. 5 3.1 Задняя панель. 5 3.2 Передняя панель. 5 4. Меню и настройки...»

«Руководство по эксплуатации Nokia 1680 classic Выпуск 1 ДЕКЛАРАЦИЯ СООТВЕТСТВИЯ КОРПОРАЦИЯ NOKIA заявляет, что изделие RM-394 соответствует основным требованиям и другим соответствующим положениям Директив...»

«Ещё один спецвыпуск. Этот спецвыпуск состоит из моих собственных произведений. Это не профессиональное искусство, это любительское искусство – самодеятельность. Запрещено читать детям и подросткам с неокрепшей психикой...»

«Приложение к свидетельству № 65660 Лист № 1 об утверждении типа средств измерений Всего листов 5 ОПИСАНИЕ ТИПА СРЕДСТВА ИЗМЕРЕНИЙ Газосигнализаторы паров трибутилфосфата в воздухе "Жасмин" Назначение средства измерений Газосигнализаторы паров трибутилфосфата в воздухе "Жасмин" предназнач...»

«"ЗАТВЕРДЖЕНО" "ЗАТВЕРДЖЕНО" Загальними зборами Учасників Виконавчим комітетом ОПФКУ "Прем’єр-ліга" ГС "Федерація футболу України" Протокол № 90 Протокол № 1 від 2 червня 2017 року від 20 червня 2017 року Президент ПЛ Президент ФФУ Генінсон В.Б. Павелко А.В. РЕГЛАМЕНТ Всеукраїнських змагань з футболу серед команд клубів Укра...»

«АВТОНОМН АЯ НЕКОММЕРЧЕСКАЯ ОРГАНИЗАЦИЯ " С У Д Е Б Н О -Э К С П Е Р Т Н Ы Й Ц Е Н Т Р " (Зарегистрирована в Министерстве юстиции РФ № 6114050246) Обособленное структурное подразделение (лаборатория) Россия, 36405...»








 
2017 www.kn.lib-i.ru - «Бесплатная электронная библиотека - различные ресурсы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.