Главная Пресс-центр Статьи и публикации OS-9 для PowerPC, Мир Компьютерной Автоматизации: ВКС, 1996/2

OS-9 для PowerPC, Мир Компьютерной Автоматизации: ВКС, 1996/2

А. Халявка, АО РТСофт

«PowerPC показывает очень хорошие результаты для большинства тестов, но это сложный чип, с множеством возможностей для получения отрицательного результата…»

 
  Питер Диббль, инженер Microware Corp., Отдел перспективных исследований, автор известной монографии «OS-9 изнутри»

 

Общий подход к архитектуре PowerPC

  Фирма Microware Sys. Co. известна как наиболее давний и традиционный партнер фирмы Motorola по поддержке её перспективных микропроцессорных разработок со стороны программного обеспечения реального времени (ПО РВ). Стоит упомянуть, что еще в 1978 году обе фирмы заключили соглашение, согласно которому Microware получила генеральную лицензию как основной разработчик операционной системы для микропроцессора 68000, а Motorola имела возможность продемонстрировать пригодность данного процессора для построения мощного компьютера [1]. Потребность в специализированном ПО существовала, главным образом, для некоторого класса применений вычислительных средств. Ключевым моментом во всех этих применениях является то, что главная задача вычислительной машины состоит в выполнении функций информационного компонента в рамках объемлющей инженерной системы. По этой причине такие области применения стали называться системами реального времени со встроенной вычислительной машиной (embedded computer real time Systems), поскольку вычислительная машина встроена в большую систему. Требования к подобного класса системам также, естественным образом, отличаются некоторой специфичностью. Программная система для встроенного применения должна обеспечивать функционирование в реальном масштабе времени с гарантированным временем реакции на внешнее событие, требовать минимум ресурсов, позволяя создавать компактные приложения, поддерживать создание полностью прошиваемых в ПЗУ приложений. С выходом на арену 32-разрядных микропроцессоров линии 68К, поддержанных разработкой мощных периферийных схем, значимость одних факторов уменьшилась, других нисколько не изменилась и предоставляет широкое поле для теоретических и прикладных баталий.

 
  До сегодняшнего дня на растущем рынке 32-разрядных микропроцессоров для встроенных применений доминировала архитектура Motorola 68К (Рис. 1). По всей видимости, последним универсальным процессором линии 68К фирмы Motorola будет новейший ее представитель суперскалярный CISC-процессор МС68060.

 
 
 
  Новым семейством микропроцессоров, разработанным совместно фирмами IBM, Motorola и Apple, является архитектура PowerPC (Power Performance Chip). Речь идет об адаптации архитектуры IBM Power (Performance Optimization With Enhanced RISC) применительно к микропроцессорам. PowerPC уже получил признание как один из представителей RISC-архитектуры, имеющих наибольший успех на рынке встраиваемых приложений.

 
  Как уже сказано выше, признанным авторитетом в секторе встраиваемых вычислительных средств реального времени обладает один из главных проводников PowerPC, фирма Motorola, поддерживающая производство семейства процессоров 68К и одноплатных компьютеров MVME. Motorola ясно показала направленную миграцию от архитектуры 68К непосредственно к PowerPC (Рис. 2). IBM — это второй производитель данной процессорной архитектуры и держит в фокусе применения PowerPC для своих настольных компьютеров, рабочих станций, коммуникационных периферийных средств, а также для программы разработки высокопроизводительных встраиваемых систем. На сегодняшний день семейство PowerPC уже довольно представительно. Мы видим здесь ряд универсальных процессоров 601, 603, 604 и специализированные процессоры для встроенных контроллерных применений — Embedded PowerPC 403 GA/GC от IBM, серии процессоров МРС5хх, 8хх и новое семейство ColdFire MCF5200 от Motorola High-performance Embedded Systems Division. Спектр сравнительно менее престижных микросхем из этого списка обеспечивает хорошие характеристики, но микросхемы с более высокими характеристиками все еще очень дороги. В операционных системах и компиляторах в составе средств разработки PowerPC систем уже используются преимущества новой RISC-архитектуры, а именно: конвейеризация, наличие множества исполнительных устройств, возможность предсказания переходов, кэширование с поддержкой больших таблиц TLB (Translation lookaside buffer) и обработка вложенных исключений. Пользовательское программное обеспечение, работающее на процессоре PowerPC, должно работать и на любом другом процессоре с архитектурой PowerPC. По широте спектра и совместимости семейство PowerPC уже может сравниться с семейством 68К.

 
 
 
  Маркетинговая стратегия фирм IBM и Motorola рассчитывает на выдающуюся мощность вычислений, предоставляемую PowerPC, и предполагает постепенный переход пользователей CISC-микропроцессоров Motorola 68xxx к PowerPC.

 

Модель процессора в режиме пользователя

  Набор инструкций PowerPC объемный и достаточно богатый, его архитектура имеет традиционные RISC-атрибуты:

 
 
  • фиксированный размер инструкций,
 
 
  • архитектура регистр-регистр (load/store) с простым набором режимов адресации,
 
 
  • относительная простота инструкций,
 
 
  • большой ортогональный регистровый файл,
 
 
  • жестко определенный формат инструкции с тремя операндами.
 
  PowerPC имеет два режима адресации: косвенный регистровый с индексом, непосредственно определенным в поле операнда, и косвенный регистровый с индексом в регистре. Для поддержки операций load/store есть также режим автоинкремента.

 
  Архитектура PowerPC определяет избыток регистров (Рис. 3): 32 регистра общего назначения, 32 регистра для использования исполнительным устройством с плавающей запятой, регистр состояния, регистр связи для вызова подпрограмм, регистр-счетчик для организации циклов, регистр исключения целочисленного устройства и устройства с плавающей запятой, регистр управления.

 
 
 
  С учётом возможности оптимизации микросхема PowerPC очень проста для программирования и не содержит никаких неясных и узких мест в использовании набора инструкций.

 

Модель процессора в системном режиме

  PowerPC разделяет системное (supervisor) состояние и состояние пользователя. Подобно большинству сложных процессорных архитектур он разрешает доступ к имеющимся в его распоряжении потенциально критическим средствам только в системном состоянии.

 

Исключения

  PowerPC не осуществляет высокоуровневую обработку исключительных ситуаций, как это делает CISC процессор, но он предоставляет ядру операционной системы возможность помещать эквивалентный программный код в таблицу исключительных ситуаций. Это приводит к большим размерам таблицы исключительных ситуаций, но теоретически это позволяет обработчику исключительных ситуаций работать без отключения от таблицы, т.е. добираться до кода обработки исключительной ситуации непосредственно, без дополнительного шага адресации, как в случае с векторной таблицей. Наиболее заметные преимущества такого подхода проявляются при работе с кэшем.

 

MMU-архитектура

  Вместо таблицы страниц древовидной структуры, применяемой во множестве других архитектур, PowerPC использует алгоритм типа хеш-кодирования. Эта структура содержит виртуальный адрес и другие параметры, которые могут быть использованы для идентификации задачи.

 

Интерфейс взаимодействия с памятью

  По умолчанию процессор, практически, не гарантирует того, как он будет взаимодействовать с памятью и в каком порядке. Эта его интеллектуальная свобода закладывает основы производительности PowerPC, но это не очень удобно для организации ввода/вывода и поддержания многопроцессорной работы.

 
  Архитектура процессора гарантирует, что поток инструкций будет исполнен так, как если бы они были запущены последовательно и все load/store-операции достигнут памяти. Так как память в PowerPC-системе — это узкое место, большие усилия предпринимаются для минимизации фактической работы с внешней памятью. Таким образом, процессор может переупорядочить исполнение инструкций, если он видит возможность повысить производительность без изменения конечного результата. Однако для того, чтобы явным образом указать процессору порядок отработки потока команд, программист может использовать специальные ИНСТРУКЦИИ sync и еieiо.

 
  Sync заставляет ядро процессора остановиться до того, как MU выполнит все предшествующие операции доступа к памяти на внешней шине. Sync — очень сильная команда процессора.

 
  Инструкция eieio — более слабое средство и указывает, что все записи, предшествующие исполнению еiеiо, были помечены и выполнены на шине до записей, которые могут следовать за eieio,

 

Реализация ядра OS-9

  OS-9 для PowerPC предлагает пользователю новое решение в области технологии микроядра фирмы Microware, которая позволит обеспечить гибкую, с высокой степенью конфигурируемости, производительную, специализированную для применений в области реального времени, программную систему для PowerPC. Новый модульный подход предполагает наличие двух ядер реального времени для PowerPC: исполнительное Atomic-ядро для выделенных, требующих минимизации использования ресурсов, встроенных применений и Standard-ядро, поддерживающее функционирование средств разработки и отладки, а также отработку развитых запросов ввода/вывода. Оба ядра на 100% вытесняемы и реализуют фундаментальный сервис операционной системы реального времени, такой, как управление задачами в многозадачной среде, многопользовательский режим работы, межзадачное взаимодействие и синхронизация, приоритетная обработка прерываний, средства, необходимые для функционирования в «жестком» реальном времени.

 
  Поддержка OS-9 для PowerPC60x представлена специализированными ядрами для PowerPC601 и 603/604, для IBM Embedded PowerPC 40x — ядрами для 403GA/CG, для процессоров фирмы Motorola предлагается поддержка процессоров МРС 505, МРС 821, МРС 860.

 

Регистры

  Версия OS-9 для PowerPC написана на С и полностью адаптирована к RISC-архитектуре, поскольку она не предусматривает в обязательном порядке защиту регистров каждый раз, когда процесс переходит в системное состояние. При большом числе регистров PowerPC это позволяет получить существенный выигрыш по времени в случае выполнения несложного системного вызова.

 
  Например, быстрое переключение в системное состояние на 32-разрядном PowerPC предусматривает защиту следующих регистров [3]:

 
 
 
  В соответствии с приведенной выше таблицей прямая реализация OS-9/68K сохраняла бы при каждом системном вызове 148 байт. К счастью, реализация OS-9 на PowerPC написана главным образом на С-коде и доступна для контекстно-зависимой оптимизации мощными средствами компилятора UltraC. При этом защищаются только используемые регистры. Для простых системных вызовов это приводит к существенной разнице.

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

 
  Для минимизации количества обращений к внешней памяти, которое обещает быть большим в силу присущих RISC-архитектуре команд load/store, компилятор Ultra C/C++ использует два регистра общего назначения PowerPC как указатели к областям данных:

 
 
  • GPR2 (r2) — Static storage pointer (базовый регистр доступа к статической области данных процесса),
 
 
  • GPR13 (r13) — Constant storage pointer (базовый регистр для доступа к константам из кодового сегмента процесса).
 
  В инструкциях типа:

 
  lwz r0, N (r2); загрузка слова в регистр r0

 
  lwz r0, N (r13)

 
  индекс N позволяет адресовать 64-Кбайтный сегмент относительно базового регистра указателя, так как 32-разрядная инструкция PowerPC оставляет 16 разрядов для определения значения индекса. Это позволяет также получить доступ к внешним константам и переменным с помощью одной инструкции (ранее с помощью двух). Эта простая оптимизация ускоряет доступ к структурам данных при обработке системных вызовов ядром.

 
  Microware также реализовала оптимизацию уровня операционной системы, которая учитывает специфику PowerPC. Например, для обеспечения детерминированной реакции в задачах реального времени OS-9 интенсивно использует механизм Visual Caching процессора PowerPC, который позволяет пользователю локализовать критичную ко времени исполнения секцию кода в кэше. При этом подходе пользователь может сделать так, что критичная программа, подобная ISR (interrupt service routines), постоянно будет находиться в кэше. Насколько это эффективно, можно оценить по информации о времени реакции на прерывание Embedded RISC-процессора 403 фирмы IBM [2]: в среднем процедура распознавания прерывания этим процессором занимает три машинных цикла, в худшем случае (worst case) — 37 циклов (удлинение процедуры обработки прерывания связано с промахом в кэше при попытке вызова процедуры обработчика прерывания).

 

MMU

  Для реализации PowerPC с аппаратной поддержкой таблицы страниц минимальный размер таблицы страниц — 64Кбайт, но он будет больше, если система использует адресное пространство больше 8 Мб. В документации по PowerPC говорится о том, сколько нужно иметь места в случае таблицы страниц для хэш-линии обеих реальных страниц. Это означает 32 байта таблицы страниц для каждой реальной страницы памяти, т.е. 1% реальной памяти.

 
  К счастью, ключ таблицы страниц включает поле, которое OS-9 может использовать для указания идентификатора процесса. Это позволяет OS-9 использовать одну таблицу страниц для всей системы, а не одну на каждую задачу. Такая экономия памяти, которой нельзя пренебречь, реализована, и система не должна очищать TLB (высокоскоростную кэш-память для трансляции линейных адресов в физические) при каждой смене контекста.

 

Ввод/вывод

  В драйверах довольно часто должна использоваться инструкция еieiо. Например, последовательность записи в управляющий регистр А и управляющий регистр В периферийного устройства ввода/вывода, если между операциями записи не используется еiеiо, может легко процессором изменяться. В зависимости от ограничений могут возникать различные реорганизации даже отмена) доступа к памяти. Память этого в расчет не берет, но порядок доступа к области памяти ввода/вывода влияет на периферийные устройства ввода/вывода. В случае с доступом к обычной памяти никаких проблем бы не возникало, но области памяти ввода/вывода требуют к себе другого подхода, и порядок время) доступа к памяти для устройств ввода/вывода является существенным.

 

Прерывания

  Обработка прерываний в PowerPC очень проста. Если происходит внешнее прерывание, не маскированное битом маски внешних прерываний, и если в очереди прерываний не стоит прерывание с более высоким приоритетом, PowerPC обращается к коду внешнего прерывания в таблице исключительных ситуаций. Прямая поддержка векторов или приоритетов прерываний отсутствует. С точки зрения ядра OS-9 это недостаток. Настоящие прерывания, основанные на приоритетах, могут использоваться на уровне микросхемы поддержки и вектора при этом могут обрабатываться или на уровне этой микросхемы, или программными средствами, но при таком подходе гибкая обработка прерываний занимает время, что как раз нежелательно. В случае реализации PowerPC выбора практически нет. И поскольку архитектурой PowerPC не предусматривается приоритетов прерываний и механизмов векторов, в операционной системе должна применяться любая разумная схема.

 
  Ядро приоритетами прерываний не интересуется. Иногда, но очень редко, не допускается никакого прерывания. Для ядра операционной системы достаточна единственная маска прерываний, поддерживаемая процессором.

 
  Уровнем прерываний занимаются драйверы. Если необходимо быстро маскировать прерывания, допустимо маскировать все прерывания. Если они маскируются в течение продолжительного периода, например, в течение длинной подпрограммы обработки прерываний ISR (interrupt service routine), необходимо минимизировать влияние такого маскирования путем маскирования на требуемом уровне.

 
  В области системных глобальных переменных ядро поддерживает вектор, который указывает на подпрограмму, использующую любую схему маскирования прерываний, поддерживаемую системой. Если отсутствует аппаратная поддержка управления по приоритетам, подпрограмма просто маскирует прерывания, находящиеся на уровне маски. Если же установлен контроллер прерываний, подпрограмма его использует.

 
  Обработчик приоритетов прерываний — модуль, размещаемый и инсталлируемый в момент загрузки системы. Написание такого обработчика — одна из задач, возникающая при портации на новую платформу с архитектурой PowerPC.

 

Обработка исключительных ситуаций

  В случае PowerPC все то, что переключает асинхронным образом программный поток, называется «исключительным условием». Разработчики 68000 называют это термином «исключительная ситуация».

 
  Когда процессор попадает в исключительную ситуацию, он устанавливает свое состояние выполнения таким образом, чтобы определенный регистр указывал на адрес некоторой инструкции и все предыдущие инструкции завершали свое выполнение, чтобы никакая последующая инструкция не начинала выполняться, а инструкция, адресуемая SRRO, выполнялась или не выполнялась в зависимости от типа прерывания. Выполнение продолжается в соответствии с вектором прерываний для прерывания данного типа.

 
  В случае PowerPC вектор прерывания является потоком инструкций (до 256 байт), расположенных в таблице векторов. После прерывания внешние прерывания и прерывания от таймера маскируются, чтобы во время выполнения вектора текущего прерывания не было попытки другого прерывания. Это важно, поскольку в случае PowerPC нет стековой защиты состояния прерывания (текущего состояния регистров). Если код вектора допускает внутренние прерывания (до того как осуществлён полный возврат из текущего прерывания), в нём должно быть предусмотрено сохранение состояния в момент внутреннего прерывания.

 
  Теоретически каждый код обработки прерывания может быть помещен в вектор (есть место для 64 инструкций). На практике 64 инструкций хватает не всегда.

 

Проблематика работы в «реальном времени»

  Самая большая проблема при разработке ядра системы реального времени для PowerPC — следование спецификации PowerOpen Application Binary Interface (ABI). Как и ряд фирм-партнеров Motorola, производителей программного обеспечения реального времени, фирма Microware является членом независимой организации PowerOpen Association, которая сформировалась для продвижения открытой спецификации PowerOpen Environment, включающей и ABI.

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

 
  Здесь это намного важнее, чем в традиционной операционной системе.

 
  Исходя из проблемы вызова ядром подпрограммы обработки прерываний (ISR), фирма Microware разработала спецификацию Embedded ABI. Согласно ABI регистры общего назначения — GPRO, GPR3-GPR12 — подлежат сохранению, регистр GPR1 определяется как указатель стека, GPR2 — как указатель статической памяти процесса, GPR13 — как указатель таблицы констант кодового сегмента. Таким образом, пролог программы ISR должен сохранять четырнадцать регистров и инициализировать три ABI-специфицированных регистра, а эпилог — всё это восстанавливать. Эти сохранения и восстановления требуют много времени и очень редко необходимы. Embedded ABI регулирует этот вопрос и определяет минимальное число регистров, использующихся подпрограммой ISR.

 

Расширения ввода/вывода

  В многоуровневой системе ввода/вывода OS-9 особенности работы с тем или иным классом устройств начинают проявляться на уровне так называемых файловых менеджеров (почему «файловых», понятно — потому, что в OS-9 принята Unix-подобная файловая модель устройств ввода/вывода). Именно на этом уровне определяется логическая структура конвертера потоков данных, на одном конце которого входной/выходной файл, а на другом — присущая данному классу дисциплина использования того или иного устройства. Традиционно фирма Microware стремится предоставить для приложений в OS-9 возможность работы с как можно более широким набором классов устройств ввода/вывода, и вряд ли можно привести пример операционной системы реального времени, предлагающей большее разнообразие готовых к использованию конечным пользователем программных модулей В/В. Основной набор файл-менеджеров OS-9 обеспечивает дополнительный средства коммуникации процессов, возможности доступа к файловой системе на различных устройствах массовой памяти (жесткий диск, гибкие диски, магнитная лента, оптические и электронные диски, локальная сеть), а также стандартную работу с последовательными устройствами — принтерами, консольными терминалами [4].

 
  В OS-9/PowerPC особое внимание обращено на оптимизацию системных средств работы в таких применениях, как телекоммуникация, передача данных в линиях связи, мультимедиа. Появились новые и дальнейшее развитие получили прежние системные разработки расширений В/В — файловых менеджеров.

 
  ISDN File Manager (ISM) нацелен на создание телекоммуникационных приложений, таких, как видеоконференции, высокоскоростная факсимильная связь, LAN/WAN-мосты. Возможен доступ к каналу ISDN Basic Rate (BRI) и поддержка протоколов LAP-B, протокола доступа к D-каналу Q.921, протоколу управления сигнализацией 0.931 ССITT.

 
  MPEG Multimedia File Manager (MPFM) поддерживает создание широкого класса мультимедийных приложений, таких, как цифровое интерактивное телевидение, домашнее видео, учебные и тренинговые приложения. MPFM поддерживает полноэкранное видео в реальном времени 24, 25 и 30 кадров/с, с PAL- и NTSС-разрешением при скорости передачи данных от 1,2 Мбит/с до 6 Мбит/с. Функции управления видеоизображением включают отыгрывание вперед/назад, паузу, пошаговый просмотр/поиск кадров и т.д. Функции управления звуком включают регулирование уровня сигнала, регулировку стереоэффектов, проигрывание вперед/назад и т.д.

 
  Stack Protocol File Manager (SPF) — многопротокольный сетевой файловый менеджер — позволяет простым подключением модулей драйверов/стековых протоколов расширять сетевое окружение. Стек протоколов позволяет работать по нескольким протоколам одновременно, используя одно физическое устройство. В настоящее время реализованы протоколы LAP-B, X.25. В ближайшее время ожидается завершение работ над протоколом АТМ.

 

Программные продукты OS-9 для PowerPC

  Как уже было отмечено выше, OS-9/PowerPC представлена совокупностью специализированных ядер и файловых менеджеров для процессоров этого семейства.

 
  Непосредственно от фирмы Microware можно приобрести программные пакеты OS-9 Board Support Package (BSP) для работы с такими известными платами фирмы Motorola, как MVME1604/1604, материнскими платами Ultra603/604, Atlas603. Для желающих применять законченные компьютерные системы есть возможность работать с рабочими станциями и серверами серии PowerStack фирмы Motorola, собранными на основе материнских плат Ultra603/604. BSP представляет собой программный пакет системы исполнения OS-9, содержащий ядро OS-9 для соответствующего процессора, различные наборы файловых менеджеров, драйверы локальных устройств, расположенных на данной плате. Для организации процесса загрузки системы Microware поддерживает стандарт Open Firmware, разработанный фирмой Motorola, позволяющий унифицировать минимальный сервис начальной диагностики и процесса загрузки и не зависящий от конкретной операционной системы.

 
  В зависимости от необходимого набора функций (наличия тех или иных файловых менеджеров и драйверов) имеется три вида BSP для MVME: 160х, Ultra 60х, Atlas (см.табл.ниже)

 
  В силу сложившейся практики для аппаратных плат, использующих PowerPC, которые производятся другими фирмами, OS-9 доступна в виде программного пакета, конфигурируемого самими фирмами по соглашению с Microware.

 
 
 

Средства разработки

  Основным средством разработки программного обеспечения, работающего в среде OS-9 для PowerPC, является компилятор Ultra C/C++ фирмы Microware. Это полномасштабная система С-программирования, имеющая своим центром высокооптимизирующий компилятор UltraC, С++ front-end процессор, отладчик уровня С/С++ исходного кода и символьный отладчик ассемблерного кода, отладчик системного состояния, ассемблер и редактор. Microware предоставляет пользователю возможность работать как с резидентным UltraC/C++ в составе OS-9, Toot Kit, так и в составе кросс-пакета FasTrak для MS Windows, Unix.

 
  FasTrak v2.0.1 фирмы Microware — это полная кросс-среда разработки и контроля программного обеспечения, спроектированная для повышения эффективности разработки программного обеспечения и использующая все преимущества системы программирования Ultra С/С++. Генератор процессорозависимых кодов на последних фазах компиляции UltraC в составе FasTrak может настраиваться на работу со всеми процессорными платформами, с которыми работает OS-9, — Intel, Motorola, PowerPC. Из семейства PowerPC простым заданием уставки может быть сгенерирован код для процессоров 403, 505, 601, 602, 603, 604, 821, 860.

 
  Высокоинтегрированный набор средств разработки FasTrak упрощает и автоматизирует задачи создания, отладки, анализа и контроля сложных проектов разработки программного обеспечения реального времени.

 
  FasTrak — это гораздо больше, чем просто пакет «редактирования-компиляции-отладки». Его функции охватывают все фазы разработки продукта — от создания исходного кода до контроля версий программного обеспечения. Такое внимание ко всему проекту обеспечивает минимальное время разработки проекта и упрощает управление проектом.

 
  FasTrak — это сетевой продукт, который предоставляет модульный пакет инструментальных средств для систем разработки и набор программ-серверов для процессоров с системой исполнения семейства OS-9. Связь между системами разработки и системами исполнения осуществляется с помощью протокола TCP/IP через Ethernet или последовательную связь (SLIP).

 
  Набор средств разработки FasTrak для Windows можно логически разделить на три функциональных модуля:

 
 
  • Редактор построителя программ (makefile)
 
 
  • Отладчик FastFix
 
 
  • Инструментальное средство системы исполнения (Target System Tool).
 
  Редактор построителя программ автоматизирует процесс создания и поддержки построителей программ (make-файлов). С помощью редактора построителя программ пользователи могут графически задать инструментальные средства, режимы, процедуры и файлы ввода/вывода, используемые при построении программ.

 
  Отладчик FastFix представляет собой расширенный набор отладочных средств для ускорения процесса тестирования программного обеспечения. Его распределённая сетевая архитектура использует в системе исполнения маленький процесс-сервер для управления выполнением программы и связи с отладчиком, находящимся в системе разработки. Набор команд отладчика FastFix позволяет отлаживать программы на уровне исходных кодов на языке С/С++ и на уровне Ассемблера. Во время выполнения отображается широкий диапазон объектов, включая регистры MPU, FPU, исходные коды на языке С и Ассемблере, кадр стека, локальные переменные и память системы исполнения. Возможно подключение низкоуровневого отладчика для отладки системных модулей OS-9, а также работа с внешней эмулирующей системой (например, НР64ХХХ). Отладчик, входящий в FasTrak, также оптимизирован для PowerPC. Например, оптимизировано использование watchpoint-регистров PowerPC — IABR (Instruction address breakpoint) и DABR (Data address breakpoint), которые при попытке записи в особые области памяти генерируют исключительную ситуацию. Эта модель генерации исключительных ситуаций поддерживается и ядром, и отладчиком, что позволяет разработчику тестировать приложения вместе с активизированным аппаратным прерыванием.

 
  Инструментальное средство системы исполнения (Target System Tool) предоставляет разработчику встроенной системы самую разнообразную информацию о ходе выполнения прикладной программы, такую, как продолжительность выполнения каждой функции, использование переменных и статистические данные о производительности системы.

 

Пакет портации

  Для установки операционной системы на оборудование оригинальной разработки в распоряжение пользователя предоставляется программный пакет Developers Pak OS-9/PowerPC. Он содержит все системные модули OS-9 в объектном коде, позволяющие сформировать любую конфигурацию BSP (Embedded, Disk-Base, Extended), и исходный код всех программных компонент, дающих возможность провести стандартную процедуру портации операционной системы, т.е. запрограммировать:

 
 
  • процедуру инициализации,
 
 
  • обработчик прерываний, использующий применяемый контроллер прерываний,
 
 
  • драйверы локальных устройств,
 
 
  • тестовое программное обеспечение оборудования с помощью окружения OS-9.
 
  Developers Pak устанавливается как расширение имеющихся у пользователя средств разработки резидентного пакета OS-9 Tool Kit UltraC/C++ или FasTrak. В настоящее время доступны пакеты портации для систем на основе процессоров 403GA/GC, 601, 603/604.

 

Некоторые возможности проведения собственных разработок

  Известна практика, когда разработчикам, стремящимся применять в своих приложениях те или иные микропроцессоры, фирма-производитель микропроцессоров предлагает некие стартовые наборы — аппаратные платы, имеющие в своем составе данный кристалл, и минимальный набор периферийных устройств для связи с окружающим миром. Этот вид продукции обычно носит название Evaluation/Development System и предназначен для облегчения вхождения разработчика в технологию применения того или иного микропроцессорного устройства. Фирма Microware традиционно предоставляет программные пакеты для Development Systems микропроцессоров. Motorola 683хх и предлагает, в расширение этой линии, OS-9 BSP для 403GA/GC QUADS.

 
  Предполагается поддержка со стороны OS-9 процессоронезависимой наращиваемой материнской платы Embedded PowerPC Motheboard Chameleon (Motorola Computer Group), специально предназначенной для проведения разработок оригинального оборудования встроенного применения. Используя плату Chameleon, разработчик получает возможность интегрировать конечную систему, применяя широкий спектр уже готовых процессорных модулей Motorola и PCI Mezzanine Card (PMC). Изначально плата Chameleon имеет возможность работы с процессорами PowerPC 603, 603е и 604. В дальнейшем предполагается использование CISC-процессоров Motorola.

 
  Связка FasTrak+ — OS9/BSP+ (403QUADS или Chameleon) представляется в руках разработчика встроенной системы чрезвычайно эффективным средством, позволяющим значительно сократить время разработки и повысить ее качество.

 

Слабые стороны PowerPC

  PowerPC все же очень требователен к ресурсам памяти. Как минимум 64 Кбайт необходимо для таблицы страниц, а также наблюдается увеличение в 1,5 раза объемного фактора для минимальной конфигурации системы на PowerPC по сравнению с семействами процессоров 68К или 80х86.

 
  Размер стека системной информации, требуемый для отображения состояния процесса, это действительно помеха для обработки в реальном времени. Даже когда не используется устройство работы с плавающей запятой, состояние задачи PowerPC отображается на 32 общих регистра, регистр связи, PC, регистр условного перехода, регистр исключительной ситуации и регистр сохранения состояния машины. Работа с плавающей запятой добавляет 32 регистра плавающей запятой (по 64 бита) и дополнительный регистр (32 бита) контроля состояния плавающей запятой. Далее при каждом изменении контекста все эти данные должны защищаться и запоминаться с использованием интерфейса памяти.

 

Сильные стороны PowerPC

  Процессор PowerPC очень быстр. Большое число его регистров, его устройство с точки зрения реализации условных переходов и его набор команд весьма подходящи для различных критических ситуаций. Сложные выражения и задачи полностью соответствуют этой архитектуре. Его развитый интерфейс памяти — это реальный козырь в случае тонких операций и для многопроцессорных систем с разделяемой памятью.

 
  Встроенный таймер высокого разрешения будет, несомненно, очень полезным для разработчиков систем реального времени, а очень хорошее управление всем тем, что происходит в памяти, обеспечат команды sync и еiеiо.

 
  И, наконец, несмотря на название RISC, PowerPC довольно прост в программировании. По сравнению со многими другими процессорами PowerPC располагает ясным набором команд с хорошо определенными возможностями оптимизации. Неслучайно большинство крупнейших производителей встраиваемых REAL-Time систем промышленного и военного назначения делают ставку на PowerPC.

 

Справочная литература

  [I] PIPELINES, V.7, N1, 1992, стр. 10

 
  [2] «PowerPC cuts dissipation to 230mWat 25 MHz», Computer Design 8/95, p.

 
  [3] PowerPC System Architecture, Tom Shanley, MindShare Inc., 1995, p. 60

 
  [4] «OS-9: Архитектура, особенности, перспективы», МКА, 95/3, стр. 25

21.04.2014