Системный контроллер ввода-вывода для сопряжения шин PCI и ISA

Журнал «Chip News» №6 2001 г.
Ракович Н. Н.

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

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

Общие сведения. 
Системный контроллер ввода-вывода W83С553F/W83С554F с PCI арбитром (W83С554F полностью аналогичен W83С553F, но поддерживает режим UltraDMA, поэтому в дальнейшем речь пойдет об обеих микросхемах) предназначен для использования с микроконтроллерами семейства х86 или PowerPC в любой системе с шиной PCI. Эта микросхема поддерживает все реализации главного (CPU) моста, совместимые с протоколом PCI 2.1, и обеспечивает прямое сопряжение шин PCI и ISA, включая два канала IDE с поддержкой до четырех внешних устройств.
W83С553F является универсальным устройством PCI, которое можно использовать для построения различных видов CPU-PCI моста. Данная ИС имеет 32-разрядную ISA DMA адресацию (что предпочтительнее, чем 24-разрядная) для упрощения применения в устройствах с рекомпилированными версиями 32-разрядных операционных систем (Windows NT, PowerPC, Alpha или иные на базе RISC-процессоров).
В состав контроллера W83С553F входят два семиканальных 32-разрядных контроллера DMA 82С37А, поддерживающих быструю DMA передачу данных от ISA шины на изолированную шину PCI через 4 байтный линейный буфер. Оба этих контроллера способны выполнять передачу с "разбросанной" записью/чтением со сбором данных из нескольких блоков памяти.
Cистемный контроллер ввода-вывода обеспечивает мост между шиной PCI и шиной расширения ISA. Кроме этого, он имеет встроенный ведущий IDE контроллер для шины PCI, арбитр шины PCI (который может быть отключен в случае необходимости) и множество функций ввода-вывода для современных систем на базе ISA. В состав W83С553F входит также блок логики полного интерфейса PCI (инициатор и целевое устройство) и интерфейса ISA (ведущий и ведомый). Наличие арбитража PCI и ISA, контроллера прерываний на 14 уровней, 16-разрядного BIOS таймера, трех программируемых счетчиков-таймеров, логики управления немаскируемого прерывания и регистра управления питанием при сбойных ситуациях позволяет говорить о контроллере W83С553F как о мощном аппаратном средстве.
Встроенный контроллер двунаправленного порта PCI IDE обеспечивает высокую скорость передачи данных между IDE устройствами и PCI шиной. Каждое из четырех устройств IDE имеет свои программируемые регистры для выбора скорости конвейерной передачи данных (16 и 32 разряда), систему опережающего чтения и задержки записи. Наличие большого буфера DMA FIFO (64 байта) позволяет избавиться от необходимости введения состояния ожидания при передаче данных через шину PCI. Ведущий шины IDE устройств значительно повышает общую производительность системы с PCI конфигурацией со многими инициаторами обмена за счет резкого снижения использования центрального процессора при обращении к жесткому диску или к CD-ROM. При частоте шины 33 МГц может быть обеспечена пакетная передача данных со скоростью 132 Мбайт/с на шине PCI.
В качестве ядра системного контроллера ввода-вывода W83С553F использовано оригинальное ядро Sonata контроллера W83789F с некоторыми изменениями в маршрутизации прерываний. Рассматриваемая ИС полностью совместима с адаптером Bus-Master фирмы Intel и спецификацией SFF8038i. Поддержка BIOS обеспечивается ПО всех ведущих компаний.
Структурная схема контроллера W83С553F приведена на рис. 1. 

Архитектура системы. 
Контроллер W83С553F представляет собой многофункциональное PCI устройство: "функция 0" - мост PCI-ISA; "функция 1" - IDE контроллер ведущего шины. Каждая из функций имеет свою собственную область конфигурации PCI и область регистров ввода-вывода. 
Шинная иерархия контроллера W83С553F обеспечивает параллельное выполнение операций на всех шинах одновременно и структурирована следующим образом: 
· шина PCI - первичная шина ввода-вывода; 
· шина ISA - вторичная шина ввода-вывода. 
Контроллер принимает циклы (адреса и данных) от шины PCI и преобразует их на шину ISA. Он также запрашивает PCI мост ведущего для формирования PCI циклов по запросу IDE DMA устройства или ведущего шины ISA. Таким образом, интерфейс шины ISA содержит контроллер стандартной шины ISA и схему буферизации данных. Управление ISA шиной обеспечивает формирование команд ISA, восстановление при сбое ввода-вывода, введение тактов ожидания и маршрутизацию данных в буфере. Дополнительно возможна поддержка пяти слотов ISA без схемы внешней буферизации. 
W83С553F инициализирует и выполняет регенерацию стандартной ISA шины. Формирование команды и адреса регенерации шины ISA выполняет встроенный контроллер. Поскольку регенерация ISA шины "прозрачна" для шины PCI и цикла DMA, то арбитр моста разрешает любые конфликты между шиной PCI, регенерацией и циклами DMA. 
Передача данных устройств IDE выполняется по двум специальным протоколам. Стандартный протокол - выполнение PIO циклов на PCI шине и IDE интерфейсах. Расширенный протокол позволяет W83С553F передавать данные через шину PCI (как ведущего шины) в/из памяти и через IDE интерфейсы с циклами DMA (единичными или многословными). Этот протокол снижает загрузку процессора при одновременном увеличении пропускной способности шины PCI. 
Все передачи данных по протоколу IDE PIO (8-, 16- или 32-разрядная) автоматически определяются и поддерживаются. Для любого отдельного прибора при операциях чтения ввода-вывода возможен режим опережающего чтения. Как следствие этого, контроллер может выполнять дополнительные IDE циклы чтения, в то время как процессор завершает предыдущий цикл записи в память. Аналогично для каждого прибора возможен режим задержанной записи, который позволяет IDE контроллеру завершать текущий цикл записи при выполнении процессором следующей операции чтения системной памяти. Все это значительно повышает производительность дисковой подсистемы при одновременном снижении загрузки системы. 
Поддержка передачи данных/команд выполняется в соответствии со спецификацией "Programming Interface for Bus Master IDE Controller" ред.1.0 (SFF8038i). Как следствие, системному процессору нет необходимости заниматься передачей данных между контроллером IDE и системной памятью (что требуется при использовании стандартного протокола PIO). Кстати, при многозадачном режиме процессор может заниматься другими задачами (при этом производительность шины PCI будет максимальной), а передачей данных займется W83С553F (W83С554F). 

Активное состояние. 
В активном состоянии W83С553F (W83С554F) контролирует все такты на шине PCI и реагирует на циклы конфигурации и ввода-вывода, причем для конфигурирования необходима непосредственная адресация, а для ввода-вывода используются данные из внутренних регистров конфигурации. Циклы ввода-вывода используются для передачи команды/состояния и данных к/от IDE устройств в соответствии с данными в регистрах ведущего шины. 
Одной из особенностей системного контроллера фирмы Winbond является наличие четырех каналов передачи данных (таблица 1). Первый канал - функции синхронизации и управления для 8-разрядных циклов ввода-вывода IDE устройств, второй - такие же функции, но для 16- и 32-разрядных циклов ввода-вывода и используемые для передачи данных по PIO протоколу. Третий канал передачи данных используется для доступа к внутренним регистрам конфигурации и ведущего шины IDE прибора. Последний путь - протокол передачи данных ведущего шины. Помимо этих каналов блок логики разделяет 8-разрядные и 16/32-разрядные циклы. Для управления IDE интерфейсом и синхронизации, а также для управления упаковкой и распаковкой данных при обмене между буфером IDE и буфером PCI. 

Таблица 1. Каналы передачи адреса и данных для основных циклов.

ЦиклКанал передачи адресаКанал передачи данных
Чтение данных
ISA - PCI
Адрес/данные PCI - W83C553F -
фиксация и адресация ISA
ISA данные - W83C553F - адрес/данные PCI
Запись данных
PCI - ISA
Адрес/данные PCI - W83C553F -
фиксация и адресация ISA
Адрес/данные PCI - W83C553F - данные ISA
Чтение DMAW83C553F - адрес/данные PCI, W83C553F -
фиксация и адресация ISA
Адрес/данные PCI - W83C553F - данные ISA
Запись DMAW83C553F - адрес/данные PCI, W83C553F -
фиксация и адресация ISA
ISA данные - W83C553F - адрес/данные PCI
Регенерация ISAW83C553F - адресация ISA 
Мост PCI-ISA. 
Системный контроллер W83C553F выполняет функции интерфейса шины PCI, обеспечивая работу как инициатора обмена, так и целевого устройства. Когда установлен сигнал PIBGNT#, ведущий на основе состояния адресного декодера ISA передает ISA или DMA цикл на шину PCI. Если PIBGNT# снят, то ведомый принимает эти циклы, инициированные от шины PCI, и направляет во внутренние регистры W83C553F или на ISA шину. Декодер адреса шины PCI поддерживает целевое устройство при обработке циклов инициализации PCI, которые затем направляются на шину ISA. 
В том случае, когда шина PCI выступает в роли целевого устройства, контроллер W83C553F отвечает за транзакции и ввода-вывода, и памяти. Он всегда устанавливается как ведомый после первой фазы данных пакетной передачи. W83C553F преобразует также отдельный цикл прерывания на два для встроенных контроллеров прерываний 82С59. 

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

Таблица 2. 8-разрядные интервалы.

ПараметрИнтервал (в тактовых импульсах)
Включение10
Отключение10
Установка адреса3
Удержание адреса1
Установка данных (при записи)3
Удержание данных (при записи)1
Время цикла20
Передача данных по протоколу PIO. 
При передаче данных по протоколу PIO циклы чтения/записи для ввода-вывода выполняются на интерфейсе IDE, а передача данных выполняется на шине PCI. При этом адрес IDE устройства и сигналы выбора кристалла будут изменяться только в том случае, когда на PCI шине определен цикл декодирования. Это уменьшает помехи от переключения IDE интерфейса и электромагнитные помехи. 
Для повышения быстродействия передачи данных по протоколу PIO в W83C553F реализован алгоритм работы с опережающим чтением и задержанной записью. Циклы чтения или записи выполняются до тех пор, пока буфер опережающего чтения не будет заполнен или буфер задержанной записи не освободится. В результате в начало и конец блока передаваемых данных добавится только установка адреса и время удержания. 
16-байтный буфер PIO FIFO позволяет передавать данные одновременно по двум каналам без потери данных между каналами. 
Любой доступ к регистрам конфигурации и любой 8-разрядный IDE доступ выполняются в реальном времени (опережающее чтение и задержанная запись не используются). Режим опережающего чтения и задержанной записи поддерживается только 16- и 32-разрядными циклами в регистре данных IDE устройства. 

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

Передача данных инициатором обмена. 
Когда устройства DMA выступают в качестве инициатора обмена на шине PCI, то циклы DMA выполняются на интерфейсе IDE. В этом режиме регистр управления инициатора шины устанавливает W83C553F в состояние запрета выбора для данного порта и обращается к DRQ. Если прерывание выставляется на интерфейсе IDE, то оно будет задержано при передаче данных от IDE устройства в память до тех пор, буфер FIFO не освободится (содержимое перепишется в память). Для увеличения пропускной способности шины PCI, буфер FIFO инициатора шины независим от буферов PIO FIFO. Его "глубина" составляет 64 байта, что позволяет системному контроллеру передавать 8 двойных слов. 
Если в режиме инициатора обмена находятся два порта, то они будут совместно использовать один и тот же буфер FIFO. Для обеспечения" справедливой" передачи данных каждым из портов применяется арбитраж. 
Применение этого протокола для передачи данных позволяет снижает загрузку центрального процессора в среднем на 90 %, поскольку процессору необходимо только передать команду целевому IDE устройству, вызвать таблицу PRD инициатора и запрограммировать его регистры. Таким образом, на обслуживание одной команды необходимо только одно прерывание в отличие от команд протокола PIO, где одно прерывание требуется на сектор или блок секторов, а процессор должен " вручную" предавать все данные. Помимо этого, по сравнению с протоколом PIO почти на 90 % сокращается загрузка PCI шины: вне зависимости от скорости передачи данных IDE устройством, передача одного сектора данных занимает не более 6 мкс. Протокол PIO позволяет передать такой же объем данных за 150 мкс. 
Контроллер прерываний 82С59А. 
В состав системного контроллера фирмы Winbond входят два контроллера прерываний, включенные каскадом на получение 15 каналов прерываний. IRQ0 подключен на выход OUT0 счетчика/таймера 82С54. Обычно прерывание формируется по нарастающему фронту сигнала прерывания IRQ. Однако, прерывания IRQ8 и IRQ13 фиксируются по спаду, разрешая прямое подключение прерывания часов реального времени (IRQ8#) или сигнала ошибки операций с плавающей точкой процессора Pentium. Для снижения уровня шумов все внешние линии прерываний нагружены через встроенные резисторы. Порт ввода-вывода и параметры каналов соответствуют требованиям IBM PC/AT. 

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

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

PCI арбитр. 
Контроллер W83C553F содержит программируемый PCI арбитр на 8 инициаторов обмена, который может быть адаптирован для любых системных требований. В активном состоянии такими инициаторами являются два внутренних моста (ISA и IDE), системный процессор, а также доступные системному разработчику REQ#/GNT#[4:0]. 
После подачи питания по умолчанию арбитр устанавливает схему кругового обслуживания, предоставляющую всем инициатором обмена равный доступ к шине PCI. При необходимости приоритетного доступа для любой пары REQ/GNT возможно задание через регистр управления приоритетом (PCI Priority Control Register) "1" по индексу 80h функции 0 области конфигурации шины PCI. 

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

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

Итоги. 
Применение системных контроллеров ввода-вывода W83C553F и W83C554F для сопряжения шин PCI и ISA позволяет решать любые задачи по построению высокопроизводительных мостов PCI-ISA. Чтобы убедиться в этом, достаточно сравнить продукцию Winbond с аналогичными приборами других фирм (см. http://www.plx.com/, http://www.amcc.com/). 
Компанией Winbond производится ряд микросхем (контроллеров, памяти и пр.), использование которых совместно с контроллерами ввода-вывода позволит разработать широчайшую гамму устройств различного назначения (http://www.rtcs.ru/). 
Фирма Rainbow Technologies является дистрибьютором компании Winbond, вследствие чего, потребители могут получить консультации и разместить свои заказы в наших офисах. 

Литература. 
1. Ракович Н.Н. Продукция Winbond Elecnronics. Chip News, № 3, 2001г. 

Источник: rtcs.ru


Обсудить на форуме

Комментарии

Добавить комментарий
    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

    Магистрально-модульная архитектура

      Магистрально-модульная архитектура разделяется на 2 подвида: принстонская (фон Нейман) и гарвардская магистрально-модульная архитектура.

    Коммуникационный процессор CP 243-2 AS-interface

      Коммуникационный процессор CP 243-2 устанавливается в программируемые контроллеры SIMATIC S7-200 с центральными процессорами CPU 22x (исключая CPU 221) и обеспечивает поддержку расширенного набора функций ведущего устройства AS-Interface

    SIMATIC S7. Краткий обзор

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

    AVR контроллеры

    Микроконтроллеры AVR имеют гарвардскую архитектуру (программа и данные находятся в разных адресных пространствах) и систему команд, близкую к идеологии RISC. Процессор AVR имеет 32 8-битных регистра общего назначения, объединённых в регистровый файл.

    Разъёмы ввода-вывода СЧПУ Сервокон 2000

    Разъем интерфейса CAN1. Разъем типа DB9-M.