Содержание к диссертации
Введение
ГЛАВА 1. Интеллектуальные контроллеры в системах управления ускорительно-накопительными комплексами . 17
1.1. Система автоматизации ускорительно-накопительного комплекса 17
1.2. Существующие стандарты и оборудование 22
1.3. Выработка технических требований к контроллерам 27
1.4. Обзор программного обеспечения 31
1.5. Выводы. 39
ГЛАВА 2. Разработка аппаратуры интеллектуальных контроллеров 40
2.1. Архитектура контроллера.. 40
2.2. Организация файловых систем в бездисковых контроллерах 48
2.3. Аппаратная защита между процессами в контроллерах без менеджера памяти 53
2.4. Шинные интерфейсы 57
2.5. Возможности дальнейшего развития 61
2.6. Выводы. 64
ГЛАВА 3. Разработка программного обеспечения интеллектуальных контроллеров 65
3.1. Структура программного обеспечения. 65
3.2. Разработка начального загрузчика 68
3.3. Перенос операционных систем на контроллеры. 72
3.3.1. Адаптация ядра ОС. 72
3.3.2. Разработка системы драйверов 73
3.4. Программная реализация файловых систем в бездисковых контроллерах 82
3:4.1, Файловая система ROMFS 82
3.4.2. Программная реализация flash диска ... 84
3.5. Расширение возможностей ОС RTEMS 89
3.5.1. Сервер удаленной консоли 89
3.5.2. Динамический загрузчик модулей 91
3.6. Средства разработки кода 93
3.7. Выводы 97
ГЛАВА 4. Исследование возможностей системы управления EPICS 98
4.1. Обзор программных систем управления 98
4.2. Задачи исследования 104
4.3. Архитектура системы EPICS 105
4.4. Методы исследования 108
4.5. Особенности ЮС на базе RTEMS 113
4.6. Результаты исследования системы EPICS 118
4.7. Выводы 121
Заключение 122
Литература 124
- Существующие стандарты и оборудование
- Аппаратная защита между процессами в контроллерах без менеджера памяти
- Программная реализация flash диска
- Результаты исследования системы EPICS
Введение к работе
Актуальность темы
Система управления современным ускорителем элементарных частиц представляет собой многоуровневый программно-аппаратный комплекс. В первом приближении, рассматривают три уровня аппаратных средств. На нижнем уровне (уровень датчиков) происходит измерение параметров физических процессов и преобразование их в электрическую форму. На среднем (приборном) уровне происходит мультиплексирование сигналов от различных датчиков и их предварительная: обработка. Обработка может включать аналого-цифровое преобразование, накопление данных, управление обратными связями и т.д. Верхний уровень обычно представляет собой средства человеко-машинного интерфейса. Как правило, интеллектуальные контроллеры занимают средний уровень системы управления. Под интеллектуальностью" контроллера подразумевается возможность реализации в данном контроллере сложного алгоритма управления, а также возможность оперативно изменять этот алгоритм путем перезагрузки программы контроллера. Если рассматривать программное обеспечение системы управления в целом, то также можно выделить три уровня. На нижнем уровне, разработчики стараются сосредоточить всю аппаратно-зависимую часть ПО. На среднем уровне решаются задачи обработки данных и управления системой. На верхнем уровне находятся программные средства, отвечающие за представление данных и визуализацию. ПО интеллектуальных контроллеров, как правило, охватывает два нижних уровня программных средств. Наиболее распространенным решением на среднем уровне системы управления74 является применение магистрально-модульных стандартов САМАС и VME. В качестве контроллеров при этом используются либо специализированные разработки; либо применяются стандартные индустриальные контроллеры. Недостаток индустриальных контроллеров заключается в избыточности и универсализме, что приводит к их высокой стоимости. Специализированные разработки, как правило, более адекватны задачам управления, при условии, если они удовлетворяют ряду современных требований к контроллерЬ^ национальна» |
П№№
8ИСЛИОГЕКА О»
За последнее десятилетие в области научной автоматизации наблюдался ряд важных тенденций. Во-первых, для задач управления стало широко использоваться программное обеспечение с открытым кодом, в частности, операционная система Linux. Во вторых, стандартным средством' коммуникаций между узлами системы управления стал стандарт Ethernet и протоколы TCP/IP. В третьих, были созданы и получили распространение специализированные программные системы управления физическими установками, такие как EPICS, TANGO и ряд других.
В тоже время на уровне контроллеров эти тенденции не проявлялись в отечественных разработках. Основная причина этого в том, что- специализированные контроллеры, разработанные для систем управления в конце 80-х, начале 90-х годов, архитектурно не совместимы с новым программным обеспечением. Индустриальные контроллеры общего назначения мало используются, так как они избыточны и дороги.
Таким образом, актуальность разработки интеллектуальных контроллеров для управления ускорительными комплексами вызвана необходимостью решения следующих задач:
использование на контроллерном уровне преимуществ открытых систем для решения задач автоматизации;
расширение коммуникационных возможностей контроллеров путем использования интерфейсов Ethernet и полноценной реализации протоколов TCP/IP;
апробация Ethernet в качестве полевой шины и принципа построения системы управления на базе встраиваемых контроллеров с интерфейсом Ethernet;
4) использование общемировых разработок в области специали
зированного программного обеспечения для систем
автоматизации, исследование их возможностей;
замена компонентной базы контроллеров на более современную, уменьшающую энергопотребление и себестоимость контроллеров;
создание средств автоматизации, экономически адекватных возможностям отечественных научных институтов.
Цель диссертационной работы
Основной целью работ, вошедших в диссертацию, стала разработка и внедрение семейства контроллеров и программного обеспечения для них, обеспечивающих решение задач автоматизации на современном
уровне. Для достижения поставленной цели было необходимо решить следующие задачи:
- провести анализ архитектуры системы управления ускорительно-
накопительным комплексом, и, в частности, места и роли
интеллектуального контроллера в ней;
сформулировать требования к аппаратной части интеллектуального контроллера и требования к системному программному обеспечению;
разработать и реализовать архитектуру контроллеров САМАС, VME и встраиваемого контроллера с интерфейсом Ethernet; ' разработать и реализовать концепцию системного программного обеспечения контроллеров;
- использовать разработанные интеллектуальные контроллеры в
качестве аппаратной базы для системы управления EPICS,
исследовать возможности и границы применения системы;
повести апробацию разработанных программно-аппаратных средств в системах управления реальными физическими установками;
сформулировать способы дальнейшего усовершенствования программно-аппаратных средств контроллеров.
Научная новизна диссертационной работы
В соответствии с целями диссертационной работы проанализирована архитектура систем управления ускорительно-накопительными комплексами, сформулированы требования к аппаратуре и программному обеспечению интеллектуальных контроллеров.
Предложена и реализована архитектура интеллектуальных контроллеров, использующих программное обеспечение с открытым кодом. В частности, разработаны контроллеры в стандартах САМАС, VME и встраиваемый контроллер с интерфейсом Ethernet.
Предложен и реализован оригинальный метод программно-аппаратной защиты адресного пространства процессов в операционной системе uCLinux.
Предложен и реализован оригинальный метод организации твердотельного диска с файловой системой ext2 в операционной системе uCLinux.
Разработаны программные компоненты ОС RTEMS, существенно расширяющие возможности этой ОС. В частности, были
разработаны загрузчик модулей формата elf и файловая система romfs.
6. На базе разработанных < контроллеров апробирована система управления EPICS, изучены ее возможности и область применения.
Практическая ценность диссертационной работы и внедрение результатов
Контроллер ВГУМЕ-1 используется в системе управления стендом магнитных измерений в ИЯФ им. Будкера СО РАН.
На базе контроллера BIVME-1 и разработанного автором VME крейта создано 6 стендов для разработки и отладки аппаратуры VME.
Применен ряд технологических решений, позволивших существенно снизить стоимость VME платформы (контроллер и крейт VME). Стоимость VME платформы и средств разработки программного обеспечения сопоставима со стоимостью настольного ПК. Это позволяет говорить о возможности широкого внедрения технологии VME в системах управления ускорительных комплексов.
Около 20 контроллеров САМАС СМ5307 работают в системе управления комплекса ВЭГШ-5 в ИЯФ им. Будкера СО РАН.
Около 10 контроллеров ГР302 используются в системе управления установкой ГДЛ (газодинамическая ловушка) в ИЯФ им. Будкера СО РАН.
Разработанный на базе контроллера ГР302 специализированный мультиплексор эксплуатируется более чем 20 операторами связи в различных городах России. Мультиплексор получил сертификат Минсвязи РФ и включен в государственный реестр средств связи.
Получен практический опыт использования системы управления EPICS на установках: стенд магнитных измерений и 200 кВ электронная пушка форинжектора ВЭПП-5 (ИЯФ им. Будкера СО РАН)
Апробация работы
Результаты работы докладывались на научных семинарах в ИЯФ им.Будкера СО РАН, на международных конференциях и в научных журналах: Automation, Control and Information Technology, June 10-13, 2002, Novosibirsk, Russia; XVIII конференция по ускорителям заряженных частиц RUPAC-2002, Обнинск, Россия; ГХ International Conference on Accelerator and Large Experimental Physics Control
Systems ICALEPCS-2003, Gyeongju, Korea; Nuclear Instruments and Methods in Physics Research.
На защиту выносятся результаты
Анализ структуры систем управления ускорительно-накопительными комплексами и выработка на его основе требований к интеллектуальным контроллерам.
Разработка архитектуры интеллектуальных контроллеров, использующих программное обеспечение с открытым кодом.
Разработка семейства контроллеров САМАС, VME, встраиваемого контроллера с интерфейсом Ethernet.
Разработка системного программного обеспечения контроллеров
Исследование на базе разработанных аппаратных средств возможностей и границ применимости системы управления EPICS.
Разработка сопутствующих средств отладки и тестирования контроллеров
Структура диссертации и ее объем
Работа состоит из введения, четырех глав, заключения, четырех приложений и списка литературы. Материал диссертации изложен на 139 страницах, содержит 9 таблиц и 32 рисунка.
Существующие стандарты и оборудование
Важной составляющей ускорительно-накопительного комплекса является система автоматизации, которая представляет собой набор аппаратных, и программных средств, служащих для задания необходимых параметров комплекса, а также для сбора, обработки и. отображения результатов его работы.
Систему автоматизации, как правило, можно структурно разделить на систему сбора данных, (ССД), систему обработки данных (СОД), систему управления (СУ). Система сбора данных собирает и преобразует в цифровой вид информацию с регистрирующей электроники детекторов частиц, принимает решение о наличии физического событиями производит предварительную обработку события. ССД характеризуется большой несимметричностью потоков данных. Превалирующим; направлением передачи информации является направление от детектора к устройствам обработки информации.. СОД также имеют значительное превышение числа каналов ввода информации над числом каналов вывода. Принятие решения о запуске измерительных систем осуществляет первичный триггер. Как правило, первичный триггер работает по заранее известному фиксированному алгоритму, который в процессе работы может меняться незначительно. Критическим параметром является также скорость принятия решения первичным триггером. Другим алгоритмическим устройством в составе ССД является процессор вывода, который осуществляет буферизацию и передачу данных от оцифровывающей электроники. Процессор вывода также имеет алгоритм работы, редко меняющийся в процессе эксплуатации установки. Типовые параметры ССД детектора можно проиллюстрировать на примере проекта КМД-2М, для накопителя ВЭПП-2000 ИЯФ СО РАН. По материалам [32] число каналов достигает 10 тысяч, частота запусков первичного триггера 1 КГц, время принятия решения первичным триггером — порядка 1 мкс, информационный поток с детектора — 3-4 Мбайт/с. Таким образом, характерными свойствами решающих устройств ССД являются высокое быстродействие, относительно простые алгоритмы работы. Применение интеллектуальных контроллеров в ССД не является эффективным решением. Скорость принятия решения интеллектуального контроллера составляет от сотен микросекунд до десятков миллисекунд. Большие вычислительные ресурсы а большая гибкость в смене алгоритмов работы контроллера останутся невостребованными. Опыт показывает, что в качестве решающих устройств ССД все чаще применяется; программируемая логика. Так, процессоры вывода в составе КМД-2М, разработаны на базе ПЛИС фирмы Altera.
Система обработки данных осуществляет восстановление физических событий,. фильтрацию полезных событий, визуализацию и классификацию событий, калибровку систем детектора. СОД требует сложных алгоритмов и больших вычислительных ресурсов.. В качестве аппаратуры СОД, как правило,. используются рабочие станции под управлением операционной; системы общего назначения.
Применение интеллектуальных контроллеров наиболее целесообразно в системах управления ускорителями. Для систем управления характерен значительно меньший поток данных, чем для ССД. Поток данных в СУ является двунаправленным. Требования по быстродействию к решающим элементам СУ также значительно менее жесткие, чем в ССД. Частота опроса датчиков обычно не превышает десятки герц. На первый план выходит возможность гибкого изменения алгоритмов работы контроллера, без изменения: его аппаратуры. Примерами подсистем управления ускорительного комплекса являются система диагностики пучка, управление магнитной системой, управление инжектором, диагностика вакуумной системы и т.д. [26,28],
В свою очередь, система управления представляет собой многоуровневую структуру как с программной, так и с аппаратной точек зрения.
На нижнем аппаратном уровне (уровень датчиков) сосредоточена , интерфейсная электроника, преобразующая в электрический сигнал измеряемую физическую величину. Для этого уровня характерна; привязанность по месту к обслуживаемой установке, большое число каналов ввода-вывода, аналоговый характер электроники. На; верхнем аппаратном уровне находится терминальная аппаратура. Как правило, для этого используются IBM PC совместимые компьютеры под управлением ОС Linux.
На среднем (приборном) уровне происходит мультиплексирование сигналов от датчиков,, их: аналого-цифровое (цифро-аналоговое) преобразование, частичная обработка данных. Общий смысл, приборного уровня — преобразование технологических данных в физические.. Для приборного уровня также характерна территориальная привязанность к обслуживаемой І установке с целью- уменьшения длины аналоговых соединительных трасс. Обмен; информацией между приборным уровнем и уровнем датчиков, как правило, происходит по аналоговым каналам. Между уровнем отображения и приборным уровнем обмен информацией происходит по цифровому каналу передачи данных, который характеризуется: высокой скоростью и большой дальностью передачи. Чаще всего это Ethernet. За счет частичной обработки данных приборный уровень значительно уменьшает объем передаваемой информации. Программное обеспечение системы управления также можно структурно представить в виде трех уровней. На нижнем уровне находятся драйверы устройств, которые содержат наборы процедур, непосредственно работающих с аппаратными модулями. Основное назначение драйверов — отделить аппаратно-зависимые процедуры от остальной программы управления и предоставить верхним уровням программного обеспечения унифицированный интерфейс. На среднем уровне решаются задачи преобразования данных, частичной обработки, автоматического управления. Как правило, средний уровень также содержит базу данных каналов. База данных сопоставляет физические и технологические каналы, отрабатывает запросы от операторского уровня системы управления. На верхнем уровне находится графический пользовательский интерфейс, который обычно построен с использованием распространенных графических оболочек - Motif, Тсі/Гк, Qt и т.д.
Аппаратная защита между процессами в контроллерах без менеджера памяти
Данная система является наиболее популярной из всех систем с открытым кодом [27]. С начала 90-х годов LINUX развивался как система общего назначения, предназначенная для установки на рабочих станциях и серверах. В последние несколько лет обозначилась тенденция использования LINUX для управления встраиваемыми системами и контроллерами. Этому способствует ряд особенностей LINUX, таких как гибкость конфигурации, переносимость на различные аппаратные платформы, принадлежность, к обширному и зарекомендовавшему себя семейству ОС UNIX, большое количество готовых приложений. Самое главное, LINUX является реальной альтернативой коммерческим системам По сравнению с ОС реального времени, традиционно применяемых для управления контроллерами, LINUX все же достаточно требователен к ресурсам; контроллера. Изначально? развиваясь как ОС общего назначения, LINUX не является системой реального времени (здесь не рассматриваются расширения типа RT-LINUX). Таким образом, область применения этой ОС — управление достаточно мощными 32-х разрядными; контроллерами: в системах, где отсутствуют требования обработки событий в реальном времени.
Структурно, система состоит из ядра, загружаемых: модулей, приложений, разделяемых библиотек. Ядро осуществляет управление всеми ресурсами контроллера, предоставляет приложениям; доступ к ресурсам контроллера, и системам ввода-вывода, предоставляет приложениям возможность взаимодействовать друг с другом, а также защищает приложения друг от друга. Ядро и все приложения функционируют в отдельных виртуальных адресных пространствах, что обеспечивает высокую устойчивость системы к программным: ошибкам. Доступ к устройствам ввода-вывода осуществляется исключительно через драйверы или их загружаемые аналоги — модули.. Возможность загрузки модулей сильно облегчает процесс разработки программного обеспечения нижнего уровня. Приложения в ОС LINUX полностью отделены от ядра и взаимодействуют с ним исключительно через механизм системных вызовов. Наличие механизма разделяемых библиотек значительно экономит объем оперативной памяти, необходимой для работы приложений,.. что очень важно для встраиваемых систем.
Ядро ОС LINUX состоит из: планировщика, системы управления памятью, файловых систем, терминальной системы, сетевой системы, архитектурно-зависимой части, драйверов, и внутренних библиотек. Для встраиваемых применений наиболее важными являются особенности работы планировщика и сетевой системы. Как уже было сказано, ОС LINUX не является системой реального времени, поэтому основной задачей планировщика является: равномерное распределение времени между процессами. Приоритеты: процессов, не назначаются: явно и выбираются планировщиком: с таким расчетом, чтобы все процессы рано или: поздно получили управление. Такой планировщик не позволяет решать задачи «мягкого» реального времени, когда необходимо определенной задаче гарантированно выделить фиксированную часть процессорного времени. Система управления машинным временем ОС LINUX- не может также гарантировать время отклика на прерывание — это одна из характерных величин, присущих системе реального времени. Яцро LINUX поддерживает внушительный список файловых систем — от FAT до NTFS, хотя в контроллерном варианте более важна поддержка стандартных сетевых файловых систем и прочих сетевых сервисов.
Сетевые возможности LINUX в полной мере удовлетворяют потребностям контроллеров; систем управления. Сетевой стек ТСРЛР целиком реализован в ядре, что обеспечивает максимальную скорость обработки протоколов. Для управления сетевой системой ядра имеется, полный набор служебных утилит. Для приложений LINUX предоставляет общепринятый программный І интерфейс сокетов.. Система LINUX также имеет полноценную поддержку сетевых файловых систем — NFS и SAMBA, что особенно важно для бездисковых контроллеров..
Система памяти LINUX полностью изолирует адресные пространства процессов друг от друга. В: таких условиях единственным способом: взаимодействия между процессами являются сервисы, предоставляемые ядром. Ядро предоставляет такие возможности — процессы могут взаимодействовать через механизм сокетов, через программные каналы (pipe), через разделяемую память, через очереди сообщений. Для взаимной синхронизации процессов могут использоваться семафоры.
Возрастающая популярность LINUX в области встраиваемых приложений обусловлена, прежде всего, легкой переносимостью системы на другие платформы и значительной для ОС общего назначения гибкостью конфигурации. Минимальная система под управлением ОС LINUX состоит из ядра и файловой системы с набором утилит. Хотя обязательное наличие файловой системы можно считать недостатком для встраиваемой ОС, это компенсируется разнообразием возможностей по организации файловой системы. Файловая система может располагаться в ROM памяти, в RAM памяти, может находиться в едином бинарном образе с ядром в сжатом виде. Ядро также может использовать удаленную файловую систему NFS. Минимальный объем утилит, необходимый для работы с ОС LINUX составляет около 2 Мбайт в несжатом виде. Гибкость конфигурации LINUX обеспечивается также возможностью настройки ядра под конкретную систему. Перед компиляцией ядра разработчик с помощью специального скрипта или системы меню включает необходимые ему опции. Большое число драйверов аппаратуры может существовать в виде модулей и загружаться динамически во время работы системы, что позволяет конфигурировать ядро без его остановки...
LINUX обеспечен полным набором инструментальных средств для разработки приложений. В основном, это средства разработки ПО, которые поддерживаются в рамках проекта GNU. В наличии имеются С, C++, JAVA компиляторы, достаточно эффективный отладчик GDB, а также оболочки к ним, предназначенные для комфортной разработки: кода (например, DDD, KDE). Важной особенностью LINUX является: возможность кросс компиляции ядра и основных утилит. Это облегчает перенос системы с одной архитектуры на другую..
Из всех ОС с открытым кодом, LINUX, пожалуй, имеет наиболее широкую номенклатуру готового программного обеспечения. Также, имеется: обширный набор драйверов для различных классов устройств. Тем не менее, часто эта ОС игнорируется производителями аппаратуры. Это связано с отсутствием централизованной поддержки системы и часто меняющимися внутренними программными; интерфейсами, что затрудняет разработку драйверов.
Программная реализация flash диска
. Периферийные устройства можно разделить на две группы — подсистема памяти и подсистема ввода-вывода. Подсистема, памяти включает ROM память с начальным загрузчиком, конфигурационную память с батарейным резервированием (NVRAM), системную память (DRAM), flash диск. Подсистема; ввода-вывода: включает контроллеры Ethernet, контроллер магистрали, UART. Под контроллером внешней магистрали, который изображен на блок-схеме, понимается интерфейсная микросхема САМАС, VME или другой внешней шины. Рассмотрим основные узлы контроллера. Процессор
Выбор процессора для контроллеров происходил с учетом концепции использования открытого программного обеспечения. Распространяемые в настоящий момент операционные системы с открытым кодом имеют размер кода ядра от 0.5 до 1.5 Мбайт и требуют наличия свободной памяти от 2 Мбайт и более. Наличие большого объема памяти контроллера требует соответствующей вычислительной производительности. Очевидно, что наиболее подходящим; при таких требованиях будет процессор с 32-х разрядной архитектурой. В пользу 32-х разрядной архитектуры говорит и наличие инструментальных средств разработки программного обеспечения. Кросс компиляторы языка С, распространяемые с открытым кодом, ориентированы, в основном, на 32-х разрядные процессоры. Сегодня можно назвать четыре наиболее распространенных семейства 32-х: разрядных процессоров низкой и средней производительности. Это архитектура ARM! (ядро, распространяемое по лицензии), IA32 фирмы Intel, 68k/Coldflre фирмы Motorola, PowerPC (совместная разработка Motorola и IBM). Все эти процессорные архитектуры популярны в сообществе разработчиков открытого ПО и поддерживаются операционными системами Linux, FreeBSD, RTEMS и многих других. Для; этих процессоров имеются кросс компиляторы языка С, ассемблеры, отладчики и т.д. При выборе конкретной процессорной архитектуры автор придерживался критерия наибольшего разнообразия возможностей: и вариантов исполнения в рассматриваемом і семействе процессоров. Это позволяет, с использованием тех же инструментальных средств и базового программного обеспечения, наиболее оптимально решать задачу по- конструированию контроллера в каждом конкретном случае. В смысле широты выбора и наличия на кристалле разнообразных функций, лидирует, безусловно, семейство 68k/coldfire фирмы Motorola.
Характерная черта процессоров для встраиваемых приложений — наличие на кристалле не только исполнительного ядра, но и периферийных устройств. В одну микросхему интегрируются наиболее часто применяемые функциональные блоки контроллера - например, таймеры, UART, контроллеры памяти. Наибольшую ценность из таких устройств представляет контроллер памяти SDRAM, так как разработка такого контроллера с хорошей производительностью на шине конкретного процессора является довольно трудоемкой задачей. Остальные периферийные устройства обычно с легкостью синтезируются в программируемой логике.
Опыт разработки встраиваемых контроллеров, накопленный автором, показал, что важным свойством процессора: является наличие у него интерфейса внутрисхемной отладки; Особенно такой интерфейс необходим на этапе отладки системного программного обеспечения, так как этот этап характеризуется ограниченностью средств ввода-вывода. Часто отладочный интерфейс является единственным средством программирования кода инициализации контроллера. Кроме наличия отладочного интерфейса на самом процессоре необходимо иметь возможность подключения его к персональному компьютеру и использования свободно распространяемых отладчиков (gdb, например). Здесь необходимо учитывать вопрос о стоимости и доступности отладочных средств для конкретного процессора.
При выборе конкретного процессора для интеллектуального контроллера нельзя не учитывать технологический фактор. Известно, что при числе выводов в микросхеме более 200, в промышленных масштабах выгоднее производить микроэлектронные изделия в корпусе типа BGA [50]; Цифровые микросхемы с меньшим числом выводов в подавляющем большинстве случаев имеют корпус типа TQFP с шагом выводов 0.5 мм. Различие: в типах корпусов приводит к существенному различию в себестоимости всего контроллера, так как в случае использования технологии BGA возрастают требования, к; технологическим нормам изготовления печатных плат. Корпус BGA представляет собой квадратную матрицу контактных площадок. Топология печатной платы такова, что для вывода проводников из под микросхемы необходим: один слой печатной платы на четыре ряда контактов BGA (два ряда с каждой стороны корпуса).. Если взять для примера корпус BGA с количеством выводов 256 (матрица 16x16),, получим необходимое число слоев 4. С учетом слоев питания, получим, что минимально необходимое число слоев печатной платы контроллера равняется 6. Аналогичный показатель для корпуса TQFP составляет 4 слоя. При сложившихся ценах у изготовителей 1111, использование корпуса BGA ведет к удорожанию ПП контроллера на 50%. Кроме того, согласно имеющемуся опыту мелкосерийного производства электронных изделий, корпуса микросхем типа TQFP с шагом выводов 0.5 мм, вполне успешно монтируются вручную, чего нельзя сказать о корпусах BGA. Для пайки микросхем BGA необходимы установочные столы и специальные паяльные станции, поддерживающие температурный профиль пайки.
Результаты исследования системы EPICS
Устойчивость, работы программного обеспечения контроллера особенно актуальна в многопользовательских операционных системах, таких как Linux. Одним из основных методов достижения устойчивости является: разделение ПО на ядро и приложения, параллельно исполняемых в режиме разделения времени.,. Каждое приложение операционной системы должно иметь свое адресное пространство, изолированное от ядра и от других приложений. Для контроля доступа приложения к памяти используется аппаратное устройство - менеджер памяти, который обычно интегрирован в центральный процессор. В случае использования процессора без менеджера памяти, организация защиты памяти требует разработки специального метода. Для решения этой задачи, в ОС uCLinux (микро-ІЛгшх) был разработан программно-аппаратный способ защиты приложений друг от друга.
Рассмотрим, как устроена система управления памятью ОС uCLinux. Программное обеспечение разделено на ядро и множество приложений: Ядро занимает нижние адреса физической памяти контроллера. Оставшаяся память образует пул динамической памяти (heap), откуда ядро может выделять для своих нужд блоки. Загрузка и запуск на исполнение нового приложения происходит следующим образом. В динамической памяти (куче) выделяется; блок, равный по размеру сегментам кода и данных приложения. В этот блок из файла, который является бинарным образом приложения, копируется; содержимое сегментов кода и данных. Еще один блок памяти выделяется из динамической памяти ядра для стека приложения. После этого в сегментах кода и данных приложения пересчитываются все вектора перехода, в соответствии: со смещением блока памяти, выделенного для приложения ядром: После этих подготовительных действий приложение запускается. Кроме памяти, занимаемой при загрузке, приложение пользователя может занимать и отдавать память ядру в процессе работы (malloc, free), т.е.. приложение имеет свою динамическую память. В ОС uCLinux, динамическая память приложения не обособлена от динамической памяти ядра,.
Из устройства системы памяти uCLinux видно, что с точки зрения надежности работы есть следующие слабые места: возможна несанкционированная запись памяти при переполнении стека приложения; при обращении приложения за пределы своей динамической памяти или неправильной работе с указателями на блоки динамической памяти; приложение имеет доступ к коду и данным ядра и других приложений. Для устранения этих недостатков система памяти uCLinux была модифицирована следующим образом. Динамическая память ядра и приложений разделены. Каждое приложение для динамической памяти стало иметь специально выделяемую область. Процедуры работы с динамической памятью приложения стали выполняться не ядром, а библиотекой приложения. Сегменты кода, данных, область динамической памяти и стека консолидированы в одном целостном блоке, который выделяется из динамической памяти ядра при старте приложения (далее «единый блок»). Этот единый блок памяти выровнен по границе 128 Кбайт и кратен по размеру 128 Кбайт. Общий размер памяти приложения определяется при загрузке из специального поля в заголовке бинарного имиджа приложения и не может быть увеличен. Наконец, разработан монитор памяти SDRAM, позволяющий контролировать и пресекать на аппаратном уровне несанкционированные циклы обращения к памяти. В такой модели несанкционированными циклами можно считать циклы записи-чтения, выходящие за границы единого блока, при условии, что процессор исполняется в пользовательской моде. Монитор выполнен на программируемой логике и имеет архитектуру, изображенную на Рис. 5.
Структура монитора памяти Монитор работает следующим образом. В регистрах нижней и верхней границы хранятся соответственно, указатели на начало и конец единого блока: памяти приложения. Регистры границ заполняются ядром операционной системы при переключении контекста приложения. Если процессор находится в непривилегированной моде, компаратор, изображенный на рисунке, активируется и контролирует циклы памяти в SDRAM. В случае обращения за: пределы единого блока, компаратор генерирует немаскируемое прерывание, которое перехватывается ядром. Ядро после получения прерывания уничтожает вызвавший его процесс. В случае несанкционированного цикла записи компаратор дополнительно блокирует линии DQM, которые блокируют запись в SDRAM, Ядро операционной системы выполняется в привилегированном режиме, в котором обрабатываются прерывания и разрешен ряд дополнительных инструкций процессора. В привилегированном режиме монитор памяти блокирует компаратор. Тем самым ядро имеет доступ ко всей памяти, в том числе и памяти приложений. Кроме монитора памяти устройство содержит монитор длительности цикла шины. В случае доступа к приложения к адресу с несуществующей памятью, цикл может длиться бесконечно, в результате чего центральный процессор блокируется. Монитор длительности прерывает такой бесконечный цикл и генерирует немаскируемое прерывание. Ядро, получив прерывание, уничтожает вызвавший его процесс. Регистры статуса и управления служат для контроля работы монитора памяти.
В заключение можно отметить, что приведенная модель защиты практически не сказывается на способе разработки приложения. С точки зрения разработчика приложения, имеется тот же программный интерфейс, что и в стандартном Linux.