КОНТРОЛЛЕР ПЕРИФЕРИЙНЫХ ИНТЕРФЕЙСОВ (КПИ-2)

Полезная модель относится к вычислительной технике и может быть использована для сопряжения многоядерных микропроцессоров с архитектурой "Эльбрус" с периферийными устройствами.
Известно «Устройство для сопряжения электронной вычислительной машины с терминалом» [SU №772408 A1, G06F 13/00, 10.05.2005], содержащее ряд согласующих элементов, обеспечивающих подключение процессора ЭВМ к терминалу. Обмен, т.е. ввод и вывод данных, производится по командам (операциям) обмена, выполняемым процессором. Для организации обмена в программу вводятся команды ввода и вывода, выполняемые в общей последовательности операций.
Недостатком данного устройства является то, что оно потребляет значительные ресурсы машинного времени, так как в течение всего обмена процессор занят и не способен решать другие задачи, а время обмена, особенно при передаче данных последовательным кодом, может быть достаточно велико.
Наиболее близким к заявляемому является вычислительный модуль многопроцессорной крейтовой системы и многопроцессорная система из этих модулей [РФ №151425 U1, G06F 15/16, 10.04.2015], включающий печатную плату и размещенные на ней: процессор с выводом межпроцессорных каналов, подключенный к оперативной памяти, а также к контроллеру периферийных интерфейсов посредством шины ввода-вывода, контроллер периферийных интерфейсов с подключением к нему шин периферийных интерфейсов, оперативную память, соединители для подключения к коммутационной панели, выполненные с возможностью подключения межпроцессорных каналов и шин периферийных интерфейсов к коммутационной панели.
Недостатком данного устройства является то, что оно имеет низкое быстродействие.
Техническим результатом является повышение быстродействия обмена за счет использования высокоскоростного последовательного канала ввода-вывода.
Технический результат достигается тем, что в контроллер периферийных интерфейсов (КПИ-2), содержащий контроллер периферийных интерфейсов с подключением к нему шин периферийных интерфейсов, введено то что, в качестве контроллера периферийных интерфейсов используется контроллер физического уровня канала ввода-вывода, в него дополнительно введены, контроллер канального уровня канала ввода-вывода, коммутатор первого уровня, коммутатор второго уровня, первый составной контроллер, первый контроллер линка PCIe, второй контроллер линка PCIe, первый 4-х портовый контроллер интерфейса USB, второй 4-х портовый контроллер интерфейса USB, второй составной контроллер, контроллер двух устройств интерфейса IDE, третий составной контроллер, контроллер управления питанием и энергосбережением, контроллер интерфейса PCI, звуковой контроллер интерфейса HDA, первый 4-х портовый контроллер интерфейса SATA 3.0, второй 4-х портовый контроллер интерфейса SATA 3.0, первый контроллер интерфейса Ethernet, второй контроллер интерфейса Ethernet, третий контроллер интерфейса Ethernet и блок управления сигналами тактовой синхронизации, выход которого соединен с объединенными входами синхронизации всех блоков устройства, выход которого соединен с выходом контроллера физического уровня канала ввода-вывода, двухсторонний вход выход которого соединен с первым двухсторонним входом выходом контроллера канального уровня канала ввода-вывода, второй двухсторонний вход выход которого соединен с первым двухсторонним входом выходом коммутатора первого уровня, второй двухсторонний вход выход которого соединен с первым двухсторонним входом выходом первого составного контроллера, третий двухсторонний вход выход коммутатора первого уровня соединен с первым двухсторонним входом выходом первого контроллера линка PCIe, четвертый двухсторонний вход выход коммутатора первого уровня соединен с первым двухсторонним входом выходом второго контроллера линка PCIe, пятый двухсторонний вход выход коммутатора первого уровня соединен с первым двухсторонним входом выходом звукового контроллера интерфейса HDA, шестой двухсторонний вход выход коммутатора первого уровня соединен с первым двухсторонним входом выходом первого 4-х портового контроллера интерфейса SATA 3.0, седьмой двухсторонний вход выход коммутатора первого уровня соединен с первым двухсторонним входом выходом второго 4-х портового контроллера интерфейса SATA 3.0, восьмой двухсторонний вход выход коммутатора первого уровня соединен с первым двухсторонним входом выходом коммутатора второго уровня, второй двухсторонний вход выход которого соединен с первым двухсторонним входом выходом первого 4-х портового контроллера интерфейса USB, третий двухсторонний вход выход коммутатора второго уровня соединен с первым двухсторонним входом выходом второго 4-х портового контроллера интерфейса USB, четвертый двухсторонний вход выход коммутатора второго уровня соединен с первым двухсторонним входом выходом второго составного контроллера, пятый двухсторонний вход выход коммутатора второго уровня соединен с первым двухсторонним входом выходом первого контроллера интерфейса Ethernet, шестой двухсторонний вход выход коммутатора второго уровня соединен с первым двухсторонним входом выходом второго контроллера интерфейса Ethernet, седьмой двухсторонний вход выход коммутатора второго уровня соединен с первым двухсторонним входом выходом третьего контроллера интерфейса Ethernet, восьмой двухсторонний вход выход коммутатора второго уровня соединен с первым двухсторонним входом выходом контроллера двух устройств интерфейса IDE, девятый двухсторонний вход выход коммутатора второго уровня соединен с первым двухсторонним входом выходом третьего составного контроллера, десятый двухсторонний вход выход коммутатора второго уровня соединен с первым двухсторонним входом выходом контроллера управления питанием и энергосбережением, одиннадцатый двухсторонний вход выход коммутатора второго уровня соединен с первым двухсторонним входом выходом, контроллер интерфейса PCI, вторые двухсторонние входы выходы контроллера двух устройств интерфейса IDE, третьего составного контроллера, контроллера управления питанием и энергосбережением, контроллера интерфейса PCI, звукового контроллера интерфейса HDA, первого контроллера интерфейса Ethernet, второго контроллера интерфейса Ethernet и третьего контроллера интерфейса Ethernet соединены с соответствующими двухсторонними входами выходами устройства, вторые и третьи двухсторонние входы выходы первого составного контроллера, первого контроллера линка PCIe и второго составного контроллера соединены с соответствующими двухсторонними входами выходами устройства, с второго по пятый двухсторонние входы выходы второго контроллера линка PCIe, первого 4-х портового контроллера интерфейса USB, второго 4-х портового контроллера интерфейса USB, первого 4-х портового контроллера интерфейса SATA 3.0, второго 4-х портового контроллера интерфейса SATA 3.0 соединены с соответствующими двухсторонними входами выходами устройства, причем соединение между двухсторонними входами выходами коммутатора первого уровня и контроллера канального уровня канала ввода-вывода, коммутатора второго уровня, первого составного контроллера, первого контроллера линка PCIe, второго контроллера линка PCIe, звукового контроллера интерфейса HDA, первого 4-х портового контроллера интерфейса SATA 3.0, второго 4-х портового контроллера интерфейса SATA 3.0 осуществляется интерфейсом типа «Slink», причем соединение между двухсторонними входами выходами коммутатора второго уровня и первого 4-х портового контроллера интерфейса USB, второго 4-х портового контроллера интерфейса USB, второго составного контроллера 10, контроллера двух устройств интерфейса IDE, третьего составного контроллера, контроллера управления питанием и энергосбережением, контроллера интерфейса PCI, первого контроллера интерфейса Ethernet, второго контроллера интерфейса Ethernet и третьего контроллера интерфейса Ethernet осуществляется интерфейсом типа «IOlink».
На фиг. 1 представлена блок-схема контроллера (КПИ-2).
На фиг. 2 Программная модель контроллера (КПИ-2).
Контроллер периферийных интерфейсов (фиг. 1) содержит контроллер физического уровня канала ввода-вывода 1 (WLCC_PHY), контроллер канального уровня канала ввода-вывода 2 (WLCC_DLL), коммутатор первого уровня 3, коммутатор второго уровня 4, первый составной контроллер 5, первый контроллер линка PCIe 6, второй контроллер линка PCIe 7, первый 4-х портовый контроллер интерфейса USB 8, второй 4-х портовый контроллер интерфейса USB 9, второй составной контроллер 10, контроллер двух устройств интерфейса IDE 11, третий составной контроллер 12, контроллер управления питанием и энергосбережением 13, контроллер интерфейса PCI 32 14, звуковой контроллер интерфейса HDA 15, первый 4-портовый контроллер интерфейса SATA 3.0 16, второй 4-портовый контроллер интерфейса SATA 3.0 17, первый контроллер интерфейса Ethernet 18, второй контроллер интерфейса Ethernet 19, третий контроллер интерфейса Ethernet 20 и блок управления сигналами тактовой синхронизации 21.
Первый составной контроллер 5 содержит контроллер параллельного интерфейса и контроллер двух каналов последовательного интерфейса.
Второй составной контроллер 10 содержит 4-канальный контроллер интерфейса I2C, контроллер интерфейса SPI, контроллер прерываний ввода/вывода и контроллер системного и сторожевого таймеров.
Третий составной контроллер 12 содержит контроллер интерфейса тридцати двух программируемых входов-выходов GPIO и модуль привязки времени (МПВ).
Контроллер периферийных интерфейсов (КПИ-2), содержит контроллер с подключением к нему шин периферийных интерфейсов, в качестве контроллера используется контроллер физического уровня канала ввода-вывода 1, в него дополнительно введены, контроллер канального уровня канала ввода-вывода 2, коммутатор первого уровня 3, коммутатор второго уровня 4, первый составной контроллер 5, первый контроллер линка PCIe 6, второй контроллер линка PCIe 7, первый 4-х портовый контроллер интерфейса USB 8, второй 4-х портовый контроллер интерфейса USB 9, второй составной контроллер 10, контроллер двух устройств интерфейса IDE 11, третий составной контроллер 12, контроллер управления питанием и энергосбережением 13, контроллер интерфейса PCI 14, звуковой контроллер интерфейса HDA 15, первый 4-х портовый контроллер интерфейса SATA 3.0 16, второй 4-х портовый контроллер интерфейса SATA 3.0 17, первый контроллер интерфейса Ethernet 18, второй контроллер интерфейса Ethernet 19, третий контроллер интерфейса Ethernet 20 и блок управления сигналами тактовой синхронизации 21, выход которого соединен с объединенными входами синхронизации всех блоков устройства, выход которого соединен с выходом контроллера физического уровня канала ввода-вывода 1, двухсторонний вход выход которого соединен с первым двухсторонним входом выходом контроллера канального уровня канала ввода-вывода 2, второй двухсторонний вход выход которого соединен с первым двухсторонним входом выходом коммутатора первого уровня 3, второй двухсторонний вход выход которого соединен с первым двухсторонним входом выходом первого составного контроллера 5, третий двухсторонний вход выход коммутатора первого уровня 3 соединен с первым двухсторонним входом выходом первого контроллера линка PCIe 6, четвертый двухсторонний вход выход коммутатора первого уровня 3 соединен с первым двухсторонним входом выходом второго контроллера линка PCIe 7, пятый двухсторонний вход выход коммутатора первого уровня 3 соединен с первым двухсторонним входом выходом звукового контроллера интерфейса HDA 15, шестой двухсторонний вход выход коммутатора первого уровня 3 соединен с первым двухсторонним входом выходом первого 4-х портового контроллера интерфейса SATA 3.0 16, седьмой двухсторонний вход выход коммутатора первого уровня 3 соединен с первым двухсторонним входом выходом второго 4-х портового контроллера интерфейса SATA 3.0 17, восьмой двухсторонний вход выход коммутатора первого уровня 3 соединен с первым двухсторонним входом выходом коммутатора второго уровня 4, второй двухсторонний вход выход которого соединен с первым двухсторонним входом выходом первого 4-х портового контроллера интерфейса USB 8, третий двухсторонний вход выход коммутатора второго уровня 4 соединен с первым двухсторонним входом выходом второго 4-х портового контроллера интерфейса USB 9, четвертый двухсторонний вход выход коммутатора второго уровня 4 соединен с первым двухсторонним входом выходом второго составного контроллера 10, пятый двухсторонний вход выход коммутатора второго уровня 4 соединен с первым двухсторонним входом выходом первого контроллера интерфейса Ethernet 18, шестой двухсторонний вход выход коммутатора второго уровня 4 соединен с первым двухсторонним входом выходом второго контроллера интерфейса Ethernet 19, седьмой двухсторонний вход выход коммутатора второго уровня 4 соединен с первым двухсторонним входом выходом третьего контроллера интерфейса Ethernet 20, восьмой двухсторонний вход выход коммутатора второго уровня 4 соединен с первым двухсторонним входом выходом контроллера двух устройств интерфейса IDE 11, девятый двухсторонний вход выход коммутатора второго уровня 4 соединен с первым двухсторонним входом выходом третьего составного контроллера 12, десятый двухсторонний вход выход коммутатора второго уровня 4 соединен с первым двухсторонним входом выходом контроллера управления питанием и энергосбережением 13, одиннадцатый двухсторонний вход выход коммутатора второго уровня 4 соединен с первым двухсторонним входом выходом, контроллер интерфейса PCI 14, вторые двухсторонние входы выходы контроллера двух устройств интерфейса IDE 11, третьего составного контроллера 12, контроллера управления питанием и энергосбережением 13, контроллера интерфейса PCI 14, звукового контроллера интерфейса HDA 15, первого контроллера интерфейса Ethernet 18, второго контроллера интерфейса Ethernet 19 и третьего контроллера интерфейса Ethernet 20 соединены с соответствующими двухсторонними входами выходами устройства, вторые и третьи двухсторонние входы выходы первого составного контроллера 5, первого контроллера линка PCIe 6 и второго составного контроллера 10 соединены с соответствующими двухсторонними входами выходами устройства, с второго по пятый двухсторонние входы выходы второго контроллера линка PCIe 7, первого 4-х портового контроллера интерфейса USB 8, второго 4-х портового контроллера интерфейса USB 9, первого 4-х портового контроллера интерфейса SATA 3.0 16, второго 4-х портового контроллера интерфейса SATA 3.0 17 соединены с соответствующими двухсторонними входами выходами устройства, причем соединение между двухсторонними входами выходами коммутатора первого уровня 3 и контроллера канального уровня канала ввода-вывода 2, коммутатора второго уровня 4, первого составного контроллера 5, первого контроллера линка PCIe 6, второго контроллера линка PCIe 7, звукового контроллера интерфейса HDA 15, первого 4-х портового контроллера интерфейса SATA 3.0 16, второго 4-х портового контроллера интерфейса SATA 3.0 17 осуществляется интерфейсом типа «Slink», причем соединение между двухсторонними входами выходами коммутатора второго уровня 4 и первого 4-х портового контроллера интерфейса USB 8, второго 4-х портового контроллера интерфейса USB 9, второго составного контроллера 10, контроллера двух устройств интерфейса IDE 11, третьего составного контроллера 12, контроллера управления питанием и энергосбережением 13, контроллера интерфейса PCI 14, первого контроллера интерфейса Ethernet 18, второго контроллера интерфейса Ethernet 19 и третьего контроллера интерфейса Ethernet 20 осуществляется интерфейсом типа «IOlink».
Контроллер (фиг.1) работает следующим образом.
Контроллер периферийных интерфейсов включает в себя ряд контроллеров периферийных интерфейсов и обеспечивает обмен пакетами данных как между микропроцессором и контроллерами периферийных интерфейсов, так и между некоторыми контроллерами периферийных интерфейсов.
Взаимодействие микропроцессора и внешних устройств заключается в коммутации информационных и служебных пакетов как между микропроцессором и внешними устройствами, так и между некоторыми внешними устройствами с помощью внутреннего коммутатора.
Работой контроллеров управляют с помощью операционных и конфигурационных регистров. Каждый разряд этих регистров имеет атрибуты, описывающие способы манипулирования этими разрядами.
Связь с микропроцессором осуществляется через высокоскоростной канал ввода/вывода, реализованный контроллерами физического уровня WLCC_PHY (Wide Link Communication Controller Physical Layer) 1 и канального уровня WLCC_DLL (Wide Link Communication Controller Data Link Layer) 2.
Контроллер физического уровня предназначен для преобразования потоков данных между контроллером канального уровня WLCC_DLL и физической средой передачи контроллера WLCC. Контроллер имеет в своем составе следующие интерфейсы:
- внешний линк - динамически масштабируемая последовательная шина;
- интерфейс с контроллером WLCC_DLL.
WLCC_DLL - контроллер канального уровня с некоторыми функциями уровня транзакций в составе высокоскоростного канала ввода/вывода. Выполняет следующие основные функции:
- обеспечение обмена с коммутатором и с контроллером физического уровня в соответствии с протоколом;
- контроль целостности передаваемых данных;
- исправление ошибок, возникших при передаче;
- контроль состояния буферов линка ввода-вывода.
Коммутатор контроллера (КПИ-2) обеспечивает взаимодействие контроллеров периферийных интерфейсов с процессором, а также взаимодействие между собой некоторых контроллеров периферийных интерфейсов, а именно обеспечивает доставку MSI (message signaled interrupt) с шин PCI-Express и PCI к контролеру прерываний ввода-вывода.
Он состоит из двух частей: коммутатора первого уровня 3, коммутатора второго уровня 4.
К коммутатору первого уровня 3 подключены периферийные контроллеры 5, 6, 7, 15, 26 и 17 и коммутатор второго уровня, имеющие интерфейс с коммутатором КПИ-2 типа «Slink», и контроллер канала ввода-вывода (WLCC_DLL/WLCC_PHY).
Интерфейс «Slink» является коммутируемой (одни и те же линии используются для передачи как параметров (адрес, команда и т.п.), так и данных пакета) однонаправленной шиной. Ширина линии данных/параметров для каждого контроллера определена в соответствии с требуемой пропускной способностью, а сам протокол обмена и набор управляющих сигналов является фиксированным. Для организации двунаправленного обмена используются отдельные интерфейсы «Slink» для каждого из направлений.
К коммутатору второго уровня подключены периферийные контроллеры 11… 14, 18, 19, 20, имеющие интерфейс с коммутатором контроллера периферийных интерфейсов типа «IOlink».
Интерфейс «IOlink» представляет собой коммутируемую (одни и те же линии используются для передачи как параметров (адрес, команда и т.п.) так и данных пакета) однонаправленную шину фиксированной ширины 4 байта. Передаваемый пакет состоит либо только из заголовка, либо из заголовка и блока данных. Для организации двунаправлененного обмена используется два независимых канала интерфейса.
Каждому контроллеру периферийного интерфейса в коммутаторе соответствует порт связи, к которому подключен этот контроллер. Поэтому коммутация пакетов между периферийными интерфейсами сводится к коммутации пакетов между портами связи коммутатора, а коммутатор должен передавать пакеты, поступившие на приемник порта связи с контроллером одного периферийного интерфейса, на передатчик порта связи коммутатора с другим контроллером периферийного интерфейса.
Периферийные контроллеры.
К периферийным контроллерам оносятся: первый составной контроллер 5, первый контроллер линка PCIe 6, второй контроллер линка PCIe 7, первый 4-х портовый контроллер интерфейса USB 8, второй 4-х портовый контроллер интерфейса USB 9, второй составной контроллер 10, контроллер двух устройств интерфейса IDE 11, третий составной контроллер 12, контроллер управления питанием и энергосбережением 13, контроллер интерфейса PCI 14, звуковой контроллер интерфейса HDA 15, первый 4-х портовый контроллер интерфейса SATA 3.0 16, второй 4-х портовый контроллер интерфейса SATA 3.0 17, первый контроллер интерфейса Ethernet 18, второй контроллер интерфейса Ethernet 19, третий контроллер интерфейса Ethernet 20 и блок управления сигналами тактовой синхронизации 21.
PAR_SER_Int контроллер (5) является составным и содержит два контроллера: контроллер параллельного порта стандарта IEEE-1284 и контроллер последовательного порта RS-232/485 на два канала. Подключается к коммутатору КПИ-2 первого уровня.
Два PCI-EXPRESS 2.0 контроллера 6 и 7.
Контроллер PCIe 2.0 1×16/2×8 6 реализует PCI-EXPRESS 2.0 линк шириной 16 линий, который может работать также как два линка по восемь линий. Суммарная пропускная способность 8 Гбайт/с в каждую сторону. В системе виден как два одинаковых PCI-to-PCI моста.
Контроллер PCIe 2.0 1×4/2×2/4×1 7 реализует PCI-EXPRESS 2.0 линк шириной четыре линии, который может работать также как два линка по две линии или четыре линка по одной линии. Суммарная пропускная способность 2 Гбайт/с в каждую сторону.
Контроллер содержит два 8 и 9 одинаковых хост-контроллера интерфейса USB 2.0, по четыре порта каждый.
USB 2.0 хост-контроллер представляет собой совокупность вспомогательного контроллера, работающего с low- и full-speed устройствами (OHCI), и контроллера high-speed транзакций (EHCI). Такая организация USB2.0 хоста необходима для поддержки всех типов USB устройств напрямую через порты контроллера.
Контроллер I2C/SPI 10 поддерживает четыре интерфейса i2c и интерфейс spi, а также содержит подсистему прерываний ввода/вывода (2 pic + 1 ioapic + msi_int) и системный и сторожевой таймеры. Интерфейс с коммутатором КПИ-2 - «IOlink».
Контроллер I2C-SPI обеспечивает работу I2C и SPI портов, связь между элементами APIC, а также доступ к регистрам IOAPIC, PIC, системного таймера, Watchdog таймера, управления сбросом системы.
Контроллер состоит из следующих основных функциональных блоков:
- контроллер IOLinka обеспечивает связь с коммутатором КПИ-2;
- блок управления и логика ядра декодирует пришедшие запросы, управляет остальными элементами комплекса через управляющие регистры, осуществляет арбитраж запросов от элементов комплекса;
- PIC - программируемый контроллер прерываний;
- IOAPIC - программируемый контроллер прерываний ввода-вывода;
- буфер чтения и буфер записи имеют объем 64 байта. С этими буферами непосредственно взаимодействуют контроллеры интерфейсов I2C и SPL.
Контроллер шины IDE 11 осуществляет поддержку одного (primary) IDE-канала, который поддерживает до двух IDE-устройств. При этом, программно доступны и регистры IDE-устройств второго IDE-канала.
Контроллер шины IDE 11 - соответствует требованиям спецификации шины IDE ATA/ATAPI-7;
- поддерживает одного(primary) IDE-канала, который поддерживает до двух IDE-устройств. Так как использовали одноканальный режим двухканального контроллера, то программно доступны регистры IDE-устройств второго IDE-канала. Но при обращениях в эти регистры контроллер всегда возвращает 8'h7F, что аналогично отсутствию какого-либо IDE-устройства на канале;
- поддерживает обоих режимов адресации: legacy (через специально выделенные порты IO-пространства) и native (через регистры базовых адресов).
Контроллер GPIO_MPV 12 позволяет программным способом управлять 32 линиями контроллера периферийных интерфейсов.
Контроллер является устройством, объединяющим модули интерфейса общего назначения и привязки времени. Для управления этими модулями предусмотрены две независимые группы операционных регистров. Контроллер всегда работает в режиме ведомого.
Функциональный блок приема синхросигналов от систем реального времени или от генераторов меток точного времени с обеспечением микросекундной точности определения прихода этих сигналов относительно друг друга MPV 12 принимает три сигнала внешних прерваний, фиксирует значения внутреннего счетчика блока, работающего на частоте 125 МГц, в моменты их поступления и считывания в систему. Это позволяет определить задержки реакции системы на внешние прерывания и временные соотношения между ними.
Контроллер управления питанием и энергосбережением SPMC 13
(System power management controller) предназначен для управления питанием и энергосбережением в вычислительных комплексах (ВК) на базе микропроцессоров семейства Эльбрус.
Основные функции выполняемые контроллером SPMC:
- управление питанием и режимами энергосбережения на уровне вычислительного комплекса;
- управление переходами процессора между различными энергосберегающими состояниями;
- управление подключением/отключением необходимых шин питания ВК;
- наличие не отключаемой от питания аппаратуры, управляющей поведением комплекса в режимах «глубокого сна».
Контроллер SPMC использует интерфейс «IOlink» для связи с коммутатором КПИ-2.
Контроллер шины PCI-66 МГц 14 соединен интерфейс «IOlink» с коммутатором КПИ-2 и обеспечивает работу 32-разрядной шины PCI на частоте 33/66 МГц.
Контроллер является стандартным мостом с виртуального интерфейса PCI (IOLink-интерфейса) на шину PCI (PCI-to-PCI Bridge).
Данный мост имеет первичный интерфейс (Primary, IOLink-интерфейс - сегмент «перед» мостом), который расположен ближе к процессору и вторичный интерфейс (Secondary, шина-PCI - сегмент «за» мостом). Мост имеет два канала, первый - для работы «сверху-вниз» (Downstream), т.е. запросы с первичного интерфейса пропускаются на вторичный интерфейс, второй - для работы «снизу-вверх» (Upstream), т.е. запросы со вторичного интерфейса пропускаются на первичный. Мост, также, имеет встроенный программируемый арбитр для разделения PCI-шины между собственным мастером и несколькими слотами.
Звуковой контроллер HDA 15 (High Definition Audio) является связующим звеном между системной памятью и блоком аналого-цифрового преобразования аудио потока (кодеком). Контроллер состоит из пяти основных частей: клиент интерфейса «Slink», блок прямого обмена с системной памятью, блок операционных регистров, обработчик потока аудио данных и блок взаимодействия с кодеком. Контроллер может работать в двух режимах: «slave» и «DMA». В «slave» режиме запросы записи/чтения регистров, приходящие от коммутатора КПИ-2, помещаются во внутренний буфер клиента системного интерфейса, затем по очереди выполняются. Выполнение следующего запроса невозможно до завершения текущего. Пакеты завершения не почтовых «slave» операций складываются во внутреннее FIFO "заврешения slave операций/DMA запросов".
В «DMA» режиме сформированный в блоке буферов пакет запроса поступает в клиент и (так же, как пакеты завершения «slave» операций) помещается в FIFO. При наличии доступа к системной шине клиент считывает очередной пакет из FIFO и выдает его на шину. Если клиент одновременно поступают сигнал завершения не почтовой «slave» операции и «DMA» запрос, то пакет завершения «slave» операции будет записан в FIFO первым.
Буферы команд, ответов и дескрипторов являются кольцевыми и содержат соответствующие структуры данных. Буфер данных - линейный, содержит сэмплы аудиоданных.
Контроллер КПИ-2 содержит два одинаковых контроллера интерфейса 16 и 17 SATA 3.0, по четыре порта каждый.
В SATA-интерфейсе важной структурой является структура SATA-команды, встраиваемая в SATA-пакет. SATA-команда создается контроллером SATA 3.0 и задает содержание регистров файла задания (task file). Файл задания состоит из множества регистров, используемых для передачи информации в SATA-устройство. Содержимое файла задания передается в/из SATA-устройство с помощью пакетов, посылаемых через последовательный линк. В спецификации SATA концепция файла задания сохранена из соображений совместимости с программным обеспечением. Поэтому в файле задания образы регистров устройства располагаются в виде непрерывного массива со структурой памяти и разбиты на DWORD (4-байтные регистры).
Контроллер КПИ-2 содержит три одинаковых сетевых контроллера Gigabit Ethernet 18, 19, 20.
Основные характеристики Gigabit Ethernet контроллера:
- поддерживают передачу данных на скоростях 10/100/1000 Мбит/с в полнодуплексном и полудуплексном режимах.
- интерфейс «IOlink»;c коммутатором КПИ-2;
- внешний интерфейс GMII;
- поддержка управления потоком (pause frame);
- программируемое количество дескрипторов в кольцах для приема и передачи.
Блок управления сигналами тактовой синхронизации CLK_gen 21 содержит набор блоков PLL, которые формируют из одного источника референсные сигналы тактовой синхронизации для блоков физических уровней интерфейсов PCIe 2.0 (100 МГц), USB2.0 (60 МГц, 48 МГц), SATA 3.0 (60 МГц), а также опорные сигналы тактовой синхронизации 500 МГц (основная системная частота), 250 МГц (пониженная основная системная частота), 125 МГц (для сетевого интерфейса).
Блок CLK_gen содержит набор покупных IP-блоков PLL «TCI-TN65GP-CGHPLL» фирмы True Circuits Inc, которые формируют референсные сигналы тактовой синхронизации для покупных IP-блоков физических уровней стандартов PCIe 2.0 (100 МГц), USB2.0 (предварительно 60 МГц, 48 МГц), SATA 3.0 (60 МГц), а также опорные сигналы тактовой синхронизации 500 МГц (основная системная частота - slink_clk), 250 МГц (пониженная основная системная частота - iolink_clk), 125 МГц (для сетевого интерфейса и таймеров).
С программной точки зрения (программная модель), контроллер КПИ-2 представляет собой дерево PCI-устройств (Фиг. 2). Самым верхним в данной структуре является мост PCI-PCI, подключаемый посредством линка ввода\вывода к порту ввода\вывода процессора, а к порту ввода\вывода процессора может быть подключен только один такой мост. Тогда в системе из нескольких процессоров дерево внешних устройств системы представляется как дерево, к корневому порту которого подключена виртуальная шина №0, к которой подключено несколько PCI-PCI мостов с уникальными номерами. Эти уникальные номера присваиваются при инициализации системы и хранятся в специальном регистре.
Контроллеры периферийных интерфейсов, подключаемые к коммутатору КПИ-2, имеют фиксированные (предопределенные) адреса.
Контроллеры периферийных интерфейсов, включая контроллер WLCC интерфейса обмена микросхемы КПИ-2 с системой, объединены с помощью коммутатора SC и являются его абонентами.
Маршрутизация пакетов запросов и ответов между абонентами коммутатора осуществляется на основании сравнения адреса запроса с содержимым регистров адресного фильтра, связанного с абонентом коммутатора. Заполнение регистров адресных фильтров производится автоматически (за счет «подсматривания») при инициализации внешних устройств.
Маршрутизация пакетов ответов осуществляется на основании анализа информации о запросчике, находящейся в заголовке пакета ответа.
Таким образом, контроллер (КПИ-2), где КПИ-2 его условное обозначение, обеспечивает повышение быстродействия обмена за счет использования высокоскоростного последовательного канала ввода-вывода.