ОБЗОРЫ
Стремительное вторжение на рынок автоматизации нового стандарта CompactPCI (CPCI) породило большой интерес к этой технологии и множество вопросов. Причем если в области телекоммуникаций никакого переполоха не произошло, то в области автоматизации производственных процессов до сих пор продолжаются дискуссии о возможностях и месте CompactPCI. К тому же признанный лидер в этой сфере - технология VME - по-прежнему не уступает своих позиций, хотя необходимо отметить, что их незыблемость несколько поколеблена. Одним из достоинств стандарта VME является масштабируемая вычислительная мощность за счет организации мультипроцессорности, т. е. на одной магистрали VME можно установить несколько процессорных модулей, которые разделяют магистраль при параллельной работе с общими ресурсами системы.
Это свойство технологии VME позволяет легко наращивать процессорную мощность, объединять несколько подсистем, работающих с различными ОС, в одну, разбивать сложные приложения на ряд более простых и т. д. В стандарте VME предельно ясно изложен механизм арбитража и предоставления шины, что способствовало появлению огромного спектра стандартных предложений по реализации возможностей многопроцессорной работы.
С приходом на рынок промышленной автоматизации оборудования стандарта CompactPCI возник вопрос о сферах его применения и появилось естественное желание сравнить его с VME, в частности в том, что касается организации многопроцессорной работы.
Поддержка мультипроцессинга - одно из важнейших свойств аппаратуры, дающее дополнительную гибкость при создании сложных высокопроизводительных систем. В данной статье рассмотрены общие принципы, а также аппаратно-программные средства, предлагаемые сегодня на рынке для построения мультипроцессорных систем в стандарте CompactPCI.
Немного теории
Имеются два способа организации мультипроцессинга - симметричный и асимметричный.
Симметричные системы (SMP) иначе называются сильно связанными многопроцессорными системами. В них все процессоры разделяют одну и ту же область памяти. Им необходима ОС, поддерживающая SMP, которая используется во всех процессорных модулях.
В асимметричной, или слабо связанной, многопроцессорной системе каждый процессор использует свою локальную память и локальные ресурсы и разные процессоры могут работать под управлением различных ОС.
В стандарте PICMG 2.0 R3.0, в отличие от VME, мультипроцессинг в CompactPCI не специфицирован. Однако это не означает, что он невозможен. Все необходимые для его организации атрибуты имеются. Тем не менее существуют определенные особенности реализации такого многопроцессорного обмена. В первую очередь это касается технологии plug and play, которую поддерживает CompactPCI. Стремление поставщиков ОС для CompactPCI обеспечить программную поддержку технологии plug and play накладывает отпечаток на архитектуру процессорных модулей. При этом разделяют понятия системного и периферийного процессора. Модуль с системным процессором всегда устанавливается в первый, а модули периферийных процессоров - в другие слоты системы.
Рассмотрим типовую структурную схему многопроцессорной системы CompactPCI (рис. 1). На ней показано, что процессорные модули CompactPCI весь обмен с периферийными модулями ведут через мосты PCI-PCI. Системный модуль отличается от периферийного тем, что содержит арбитр запросов шины, обработчик прерываний шины, системный генератор, “прозрачный” мост PCI-PCI. Ему доступны все ресурсы системы.
Рис. 1. Схема организации многопроцессорной системы
Системный модуль ведет обмен с периферийными через “прозрачный” мост PCI-PCI (на чипе DEC21150). Информация, поступающая через этот мост, отражает все процессы, происходящие на шине CompactPCI.
По технологии plug and play при старте системный процессор в специальном цикле “конфигурирование” сканирует ресурсы системы на предмет поиска и идентификации внешних устройств, определения конфигурации и инициирования обнаруженных устройств. Необходимо отметить, что в этом цикле используется географическая адресация устройств, что возможно только из системного слота. Если представить, что в системе имеется два и более таких же процессора на шине CPCI, которые одновременно начинают сканирование и инициирование одних и тех же внешних устройств, то станет очевидным, что это приведет к конфликту уже на начальном этапе загрузки системы.
Для исключения подобной ситуации процессорные модули, устанавливаемые в несистемные слоты, имеют в своем составе так называемый “непрозрачный” мост PCI-PCI (на чипе DEC21154). При его наличии процессор на этапе определения конфигурации системы “видит” только свои ресурсы, расположенные в собственном модуле, и не имеет информации об устройствах, находящихся на шине CPCI. Эти процессоры называются периферийными, они в адресном поле шины CompactPCI имеют свой набор конфигурационных регистров и “видны” системному процессору как одно из внешних устройств. На рис. 2 изображена структурная схема расположения конфигурационных регистров в мультипроцессорной системе.
Рис. 2. Конфигурационные регистры
Системный процессор в первом слоте с “прозрачным” мостом PCI-PCI - DEC21150 имеет один набор регистров конфигурации. Периферийный процессор с “непрозрачным” мостом PCI-PCI - DEC21154 имеет два набора регистров конфигурации, по одному на каждую сторону. Оба процессора инициализируют лишь свои регистры конфигурации.
Как и в случае шины VME, несколько процессоров, установленных на шине CPCI, могут разделять шину для организации внутришинного обмена. Для этого существуют соответствующие механизмы.
У периферийного процессора нет арбитра запросов шины и обработчика шинных прерываний, его генератор не синхронизирован с системным, а работа с шиной CompactPCI осуществляется через “непрозрачный” мост PCI-PCI. Отсутствие обработчика шинных прерываний существенно ограничивает взаимодействие периферийного процессора с другими устройствами на шине CPCI и, как следствие, исключает возможность применения в этих процессорах стандартных драйверов внешних устройств, обычно рассчитанных на работу с прерываниями. Если сравнивать с шиной VME, то в VME-системах любой процессор может обрабатывать прерывания от периферийных устройств, используя стандартные драйверы. В этом смысле стандарт VME более полно и естественно реализует мультипроцессинг.
В период инициализации периферийный процессор CompactPCI “видит” только свои ресурсы и “не видит” ничего на шине CompactPCI, что очень важно для предотвращения конфликта. Надо подчеркнуть, что доступ к периферийным устройствам на шине возможен, но не через стандартные драйверы, как отмечалось выше, а через специально разработанное нестандартное ПО. В связи с этим ввод-вывод для периферийного процессора в многопроцессорных системах, как правило, организуется на его локальной шине, по отношению к которой он является мастером.
Ввиду неспецифицированности мультипроцессинга в рамках стандарта CompactPCI возникают вопросы с совместимостью и стандартизацией предложений различных фирм. В этом случае имеется только один выход - для построения мультипроцессорной системы по возможности использовать решения от одного поставщика. Чем шире спектр предлагаемых поставщиком компонентов, тем более он предпочтителен.
Компании, предлагающие решения для
организации мультипроцессорных систем
Немного практики
Основные стандартные подходы к построению многопроцессорных систем в стандарте CompactPCI рассмотрим на примере одной из фирм - PEP Modular Computers, выпускающей практически все компоненты для этой цели.
К аппаратно-программным средствам относятся сами процессорные модули, объединительные панели, крейты и ПО.
Процессорные модули
РЕР выпускает системные модули СР600, СР602, СР603, СР610 формата 6U и СР312, СР302 формата 3U. Это одноплатные компьютеры с одним или двумя независимыми интерфейсами CompactPCI и “прозрачными” мостами PCI-PCI.
Периферийный модуль СР611 формата 6U - одноплатный компьютер с интерфейсом для установки РМС-мезонина ввода-вывода, расположенного на локальной шине процессора. Наличие такого мезонина позволяет периферийному процессору получить доступ к вводу-выводу. В этом случае РМС является собственным ресурсом процессора, который он “видит” и благодаря которому может работать, используя стандартные драйверы. Он имеет один интерфейс CompactPCI через “непрозрачный” мост PCI-PCI.
У модуля CP302-PM формата 3U также один интерфейс CompactPCI через “непрозрачный” мост PCI-PCI и возможность установить PMC-мезонин ввода-вывода.
Универсальный системно-периферийный модуль СР612 формата 6U имеет два независимых CompactPCI-интерфейса: один - через “прозрачный” мост, а другой - через “непрозрачный”. Таким образом, по одному интерфейсу он является системным процессором, а по другому - периферийным. В многопроцессорной системе модуль CP612, как правило, применяется в качестве периферийного процессора с использованием “непрозрачного” моста PCI-PCI. Интерфейс с “прозрачным” мостом служит для организации собственного ввода-вывода.
Объединительные панели
Среди широкого набора стандартных объединительных панелей формата 6U и 3U имеются интересные решения для организации многопроцессорных систем. Известно, что максимальное число слотов панели CPCI - восемь. Для его увеличения необходимо использовать мост PCI-PCI. Фирма РЕР предлагает объединительную панель на 11 слотов, состоящую из двух независимых сегментов: один - на семь слотов, а другой - на четыре. Эти сегменты могут быть независимыми или объединяться с помощью моста PCI-PCI, выполненного в виде отдельного модуля, устанавливаемого с тыльной стороны магистрали (рис. 3). Если учесть, что существуют “прозрачные” и “непрозрачные” мосты PCI-PCI, то появляется возможность построить несколько комбинаций многопроцессорных систем.
Рис. 3. Мост PCI - PCI в виде отдельного модуля
Крейты CompactPCI
Один из основных компонентов системы - крейт, включающий в себя каркас, источник питания и объединительные панели. Компания выпускает набор крейтов различной конфигурации, позволяющих организовать мультипроцессинг.
CP-ASM7-STD-RIO - стандартный крейт CPCI на восемь слотов. Может использоваться для мультипроцессорной системы с системным модулем СР600 и семью периферийными процессорами СР611.
СР-ASM7-3U2-L8U8 - крейт CPCI для мультипроцессорных систем на базе процессоров CP600/СР602 (системный) и СР612 (системный/периферийный). Крейт содержит две независимые 3U-шины CPCI, смещенные на несколько слотов. При этом процессор СР600/СР602 устанавливается в крайний правый системный слот нижней секции и является системным процессором на этой шине. Процессорный модуль СР612 устанавливается в крайний правый слот верхней секции и служит системным процессором для верхней CPCI-шины, а также одновременно - периферийным процессором для нижней шины CPCI. Таким образом, две подсистемы, каждая со своим вводом-выводом, объединяются в одну мультипроцессорную систему. В каждой подсистеме имеется свой системный процессор, стандартно работающий со своим вводом-выводом. При этом информационный обмен между двумя подсистемами идет по нижней шине CPCI под управлением пакета ReckNet.
CP-ASM7-3U3-L8U6U4 - крейт CPCI для мультипроцессорных систем с двумя периферийными процессорами СР612 и одним системным процессором СР600/СР602. Крейт содержит три независимых CPCI-шины и объединяет три подсистемы, каждую со своим вводом-выводом, в единую многопроцессорную систему.
Программное обеспечение
Архитектурно современные предложения ПО для многопроцессорного обмена по шине CPCI представляют собой локальную сеть со стандартными сетевыми протоколами, например TCP/IP, где средой передачи является шина CPCI. В этой сети имеются ведущие (Master) и ведомые (Slave) устройства, в роли которых выступают соответственно системный и периферийные процессоры.
Заключение
В настоящее время существует большой спектр стандартных, отдельно поставляемых компонентов в стандарте CompactPCI - источников питания, каркасов, объединительных панелей CPCI, процессоров, ПО, используя которые можно создавать необходимые конфигурации мультипроцессорных систем на базе технологии CompactPCI.
С автором можно связаться по телефону: (095) 742-6828 или по E-mail: rtsoft@rtsoft.msk.ru.