русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Таймеры, задержки и буферы


Дата добавления: 2013-12-23; просмотров: 789; Нарушение авторских прав


В каждой команде шины указывается адрес данных, передаваемых в первой фазе данных пакета. Адрес для каждой последующей фазы данных пакета увеличивается на 4 (следующее двойное слово), но в командах обращения к памяти порядок может быть иным (см. ниже). Байты шины AD, несущие действительную информацию, выбираются сигналами С/ВЕ[3:0]# в фазах данных. Внутри пакета эти сигналы могут менять состояние от фазы к фазе произвольным образом. Разрешенные байты могут быть разрозненными; возможны фазы данных, в которых не разрешено ни одного байта. В отличие от шины ISA, на PCI нет динамического изменения разрядности - все устройства должны подключаться к шине 32-разрядным способом. Если в устройстве PCI применяются функциональные схемы иной разрядности (к примеру, нужно подключить микросхему 8255, имеющую 8-битную шину данных и четыре регистра), то приходится принимать схемотехнические методы преобразования, отображающие все регистры на 32-разрядную шину AD.

Адресация памяти, портов и конфигурационных регистров различна:

  • В циклах обращения к памяти адрес, выровненный по

границе двойного слова, передается по линиям AD[31:2]; линии AD[1:0] задают порядок адресов в пакете:

00 - линейное инкрементирование; адрес последующей фазы отличается от предыдущего на число байтов шины (4 для 32-битной и 8 для 64-битной шины).

10 - Cacheline Wrap mode, сворачивание адресов с учетом длины строки кэш-памяти. В транзакции адрес для очередной фазы увеличивается до достижения границы строки кэша, после чего переходит на начало этой строки и увеличивается до адреса, предшествующего начальному. Если транзакция длиннее строки кэша, то она продолжится в следующей строке с того же смещения, что и началась. Так, при длине строки 16 байт и 32-битной шине транзакция, начавшаяся с адреса xxxxxxOSh, будет иметь последующие фазы данных, относящиеся к адресам xxxxxxOCh, xxxxxxOOh, xxxxxx04h; и далее к xxxxxxlSh, xxxxxxlCh, xxxxxxlOh, xxxxxx!4h. Длина строки кэша пропи¬сывается в конфигурационном пространстве устройства. Если



устройства не имеет регистра Cache Line Size, то оно должно прекратитьтранзакцию после первой фазы данных;

01 и 11 - зарезервировано, может использоваться как указание на отключе¬ние (Disconnect) после первой фазы данных.

  • В циклах обращения к портам ввода-вывода для

адресации любого байта используются все линии AD[31:0]. При этом биты адреса AD[31:2] указывают на адрес двойного слова, к которому принадлежат передаваемые данные, а младшие биты адреса AD[1:0] должны соответствовать байтам, которые могут быть разрешены сигналами С/ВЕ[3:0]#. При AD[1:0]=00 допустимо С/ВЕ[3:0]# - хххО или 1111, при АО[1:0]«01-С/ВЕ[3:0]# = хх01или1111,приАО[1:0]=10-С/ВЕ[3:0]# = х011 или 1111, при AD[1:0]=11 - С/ВЕ[3:0]# = 0111 (передается лишь байт 3) или 1111 (ни один байт не разрешен). Эти циклы тоже могут быть пакетными, хотя на практике эта возможность используется редко.

  • В циклах конфигурационной записи/считывания

устройство (карта расширения) выбирается индивидуальным сигналом IDSEL; функция адресуется битами AD[10:8], а конфигурационные регистры (только двойные слова) адресуются битами AD[7:2], при этом AD[1:0]=00.

  • Команда подтверждения прерывания предназначена для

чтения вектора прерываний. По протоколу она выглядит как команда чтения, неявно адресованная к системному контроллеру прерываний. Здесь в фазе адреса по шине AD полезная информация не передается, но ее инициатор (главный мост) должен обеспечить стабильность сигналов и корректность паритета. В PC 8-битный вектор передается в байте 0 по готовности контроллера прерываний (по сигналу TRDY#). Подтверждение прерываний выполняется за один цикл (первый холостой цикл, который процессоры х86 делают в дань совместимости со стариной, мостом подавляется).

  • Специальный цикл отличается от всех других тем, что

является широковещательным. Однако ни один агент на него не отвечает, а главный мост или иное устройство, вводящее этот цикл, всегда завершает его способом Master Abort (на него требуется 6 тактов шины). Специальный цикл предназначен для генерации широковещательных сообщений - их могут читать любые «заинтересованные» агенты шины. Тип сообщения декодируется содержимым линий AD[15:0], на линиях AD[31:16] могут помещаться данные, передаваемые в сообщении. Фаза адреса в этом цикле для обычных устройств отсутствует, но мосты используют ее информацию для управления распространением сообщения. Сообщения с кодами OOOOh, 000lh и 0002h требуются для указания на отключение (Shutdown), остановку (Halt) процессора или специфические функции процессора х8б, связанные с кэшем и трассировкой. Коды 0003-FFFFh зарезервированы. Специальный цикл может генерироваться тем же аппаратно-программным механизмом, что и конфигурационные циклы, но со специфическим значением адреса.

  • Команды чтения и записи ввода-вывода служат для

обращения к пространству портов. Линии AD содержат адрес байта, причем декодированию подлежат и биты ADO и AD1 (несмотря на то, что имеются сигналы ВЕх#). Порты PCI могут быть 16- или 32-битными. Для адресации портов на шине PCI доступны все 32 бита адреса, но процессоры х86 могут использовать только младшие 16 бит.

  • Команды обращения к памяти, кроме обычного чтения и

записи, включают чтение строк кэш-памяти, множественное чтение (нескольких строк), запись с инвалидацией.

  • Команды конфигурационного чтения и записи адресуются

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

  • Чтение строк памяти применяется, когда в транзакции

планируется более двух 32-битных передач (обычно это чтение до конца строки кэша).

  • Множественное чтение памяти используется для

транзакций, пересекающих границы строк кэш-памяти.

  • Запись с инвалидацией применяется к целым строкам

кэша и позволяет оптимизировать циклы обратной записи «грязных» строк кэша.

  • Двухадресный цикл позволяет по 32-битной шине

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

 

 

Таблица 6.12. Декодирование команд шины PCI

Тип   Размер в байтах
  Interrupt Acknowledge - подтверждение прерывания
  Special Cycle - специальный цикл
  I/O Read - чтение порта ввода-вывода
  I/O Write -запись в порт ввода-вывода
  Зарезервировано
  Зарезервировано
  Memory Read - чтение памяти
  Memory Write - запись в память
  Зарезервировано
  Зарезервировано
  Configuration Read - конфигурационное считывание
  Configuration Write - конфигурационная запись
  Multiple Memory Read - множественное чтение памяти
  Dual Address Cycle (DAC) - двухадресный цикл
  Memory-Read Line - чтение строки памяти
  Memory Write and Invalidate - запись с инвалидацией

 

 



<== предыдущая лекция | следующая лекция ==>
Команды шины, адресация памяти и ввода-вывода | Прерывания


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.