The Embedded Systems Design Challenge Встроенные системы Design Challenge
⋆ ⋆
Thomas A. Henzinger Томас А. Henzinger
1 1
and Joseph Sifakis и Джозеф Сифакис
2 2
1 1
EPFL, Lausanne EPFL, Лозанна
2 2
VERIMAG, Grenoble VERIMAG, Гренобль
Abstract. Аннотация. We summarize some current trends in embedded systems Мы обобщить некоторые текущие тенденции во встраиваемых системах
design and point out some of their characteristics, such as the chasm be- дизайн и указать на некоторые их характеристики, такие как пропасть Бе-
tween analytical and computational models, and the gap between safety- между аналитической и вычислительной модели, и разрыв между безопасностью
critical and best-effort engineering practices. критическим и усилий-инженерной практике лучше. We call for a coherent sci- Мы призываем к согласованной научно-
entific foundation for embedded systems design, and we discuss a few key научных основой для встраиваемых систем проектирования, и мы обсудим несколько ключевых
demands on such a foundation: the need for encompassing several mani- требования к такого основания: необходимость охватывающих несколько Мани-
festations of heterogeneity, and the need for constructivity in design. festations неоднородности, и необходимость конструктивности в дизайне. We Мы
believe that the development of a satisfactory Embedded Systems Design считают, что развитие удовлетворительных Систем встроенный
Science provides a timely challenge and opportunity for reinvigorating Наука обеспечивает своевременный вызов и возможность для активизации
computer science. информатики.
1 Motivation 1 Мотивация
Computer Science is going through a maturing period. Компьютерная наука переживает период созревания. There is a perception Существует мнение,
that many of the original, defining problems of Computer Science either have что многие из оригинальных, определения проблем информатики либо
been solved, or require an unforeseeable breakthrough (such as the P versus NP решена, или требуют непредвиденные прорыв (например, P против NP
question). вопрос). It is a reflection of this view that many of the currently advocated Это является отражением этой точки зрения, что многие в настоящее время выступает
challenges for Computer Science research push existing technology to the limits проблемы по науке Научно-исследовательский вычислительный толчок существующие технологии для ограничения
(eg, the semantic web [4]; the verifying compiler [15]; sensor networks [6]), to (Например, семантической сети [4]; проверке компилятор [15]; сенсорных сетей [6]), к
new application areas (such as biology [12]), or to a combination of both (eg, новые области применения (например, биологии [12]), или комбинация обоих (например,
nanotechnologies; quantum computing). нанотехнологии; квантовых вычислений). Not surprisingly, many of the bright- Не удивительно, что многие из ярко-
est students no longer aim to become computer scientists, but choose to enter EST студенты больше не стремимся стать программистами, но выбрать для входа
directly into the life sciences or nanoengineering [8]. непосредственно в области наук о жизни или наноинженерии [8].
Our view is different. На наш взгляд, другое. Following [18, 22], we believe that there lies a large un- Следуя [18, 22], мы считаем, что там лежит большой ООН-
charted territory within the science of computing. наметили территорию в пределах науки вычислений. This is the area of embedded Именно в этой области встроенных
systems design. проектирование систем. As we shall explain, the current paradigms of Computer Sci- Как мы должны объяснить, текущей парадигмы компьютерных Научно-
ence do not apply to embedded systems design: they need to be enriched in ENCE не распространяются на проектирование встроенных систем: они должны быть обогащены в
order to encompass models and methods traditionally found in Electrical Engi- Для того чтобы охватить модели и методы, традиционно в области электротехники инже-
neering. neering. Embedded systems design, however, should not and cannot be left to Встроенные системы проектирования, однако, не должно и не может быть оставлено на
the electrical engineers, because computation and software are integral parts of инженеров-электриков, потому что вычисления и программное обеспечение являются неотъемлемыми частями
embedded systems. встраиваемых систем. Indeed, the shortcomings of current design, validation, and Действительно, недостатки текущего дизайна, аттестации и
maintenance processes make software, paradoxically, the most costly and least поддержание процессов сделать программное обеспечение, как ни парадоксально, наиболее дорогостоящим и наименее
⋆ ⋆
Supported in part by the ARTIST2 European Network of Excellence on Embedded При частичной финансовой поддержке ARTIST2 европейская сеть "на встроенный
Systems Design, by the NSF ITR Center on Hybrid and Embedded Software Systems Систем, по РМЭ Центр NSF по гибридным и встраиваемых систем программного обеспечения
(CHESS), and by the SNSF NCCR on Mobile Information and Communication (Шахматы), и SNSF НКРС на мобильный информационно-коммуникационных
Systems (MICS). Системы (МИКС).
reliable part of systems in automotive, aerospace, medical, and other critical ap- надежной частью системы в автомобильной, аэрокосмической, медицинской и других критических AP-
plications. приложений. Given the increasing ubiquity of embedded systems in our daily lives, С учетом увеличения вездесущность встроенных систем в нашей повседневной жизни,
this constitutes a unique opportunity for reinvigorating Computer Science. Это представляет собой уникальную возможность для активизации компьютерных наук.
In the following we will lay out what we see as the Embedded Systems Design В дальнейшем мы будем выкладывать, что мы видим, как проектировании встраиваемых систем
Challenge. Challenge. In our opinion, the Embedded Systems Design Challenge raises not По нашему мнению, Embedded Systems Design Challenge поднимает не
only technology questions, but more importantly, it requires the building of a только вопросы технологии, но что более важно, она требует здание
new scientific foundation —a foundation that systematically and even-handedly новые научные основы-фонд, который систематически и беспристрастно
integrates, from the bottom up, computation and physicality [14]. интегрирует, снизу вверх, вычисление и телесности [14].
2 Current Scientific Foundations for Systems Design, 2 Текущая Научные основы для проектирования информационных систем,
and their Limitations и их ограничений
2.1 The Embedded Systems Design Problem 2,1 Встроенные системы проблеме проектирования
What is an embedded system? Что является встроенная система? An embedded system is an engineering arti- Встроенные системы инженерно-Арти
fact involving computation that is subject to physical constraints. факт, что вычисления с участием подлежит физические ограничения. The physical Физические
constraints arise through two kinds of interactions of computational processes ограничения возникают через два вида взаимодействия вычислительных процессов
with the physical world: (1) reaction to a physical environment, and (2) execu- с физическим миром: (1) реакция на физическую среду, и (2) исполни-
tion on a physical platform. Тион по физической платформе. Accordingly, the two types of physical constraints Таким образом, два вида физических ограничений
are reaction constraints and execution constraints. являются реакции ограничений и выполнения ограничений. Common reaction constraints Общие ограничения реакции
specify deadlines, throughput, and jitter; they originate from the behavioral re- указать сроки, пропускной способности и дрожания, они происходят из поведенческих повторно
quirements of the system. quirements системы. Common execution constraints put bounds on avail- Общие ограничения выполнения поставить ограничения на воспользоваться-
able processor speeds, power, and hardware failure rates; they originate from the состоянии скорости процессора, мощности и отказов оборудования; они происходят из
implementation requirements of the system. реализации требований системы. Reaction constraints are studied in Реакция ограничений изучаются в
control theory; execution constraints, in computer engineering. теории управления, выполнение ограничений, в области компьютерной техники. Gaining control Получение контроля
of the interplay of computation with both kinds of constraints, so as to meet a о взаимодействии вычислений с обоими видами ограничений, с тем чтобы удовлетворять
given set of requirements, is the key to embedded systems design. заданного набора требований, является ключевым для встроенных систем проектирования.
Systems design in general. Системы дизайна в целом. Systems design is the process of deriving, from Разработка систем процесса вывода из
requirements, a model from which a system can be generated more or less au- требования, модели, из которых система может быть сгенерирован более или менее о-
tomatically. тически. A model is an abstract representation of a system. Модель абстрактное представление системы. For example, Например,
software design is the process of deriving a program that can be compiled; hard- разработка программного обеспечения является процесс получения программу, которая может быть собрана, жестко
ware design, the process of deriving a hardware description from which a circuit изделия дизайна, процесс получения описания аппаратных средств, из которых цепи
can be synthesized. могут быть синтезированы. In both domains, the design process usually mixes bottom-up В обеих областях, процесс проектирования обычно смешивается снизу вверх
and top-down activities: the reuse and adaptation of existing component models; и сверху вниз деятельности: повторное использование и адаптация существующих моделей компонентов;
and the successive refinement of architectural models in order to meet the given и последовательного уточнения архитектурных моделей в целях удовлетворения данной
requirements. требования.
Embedded systems design. Встроенные системы дизайна. Embedded systems consist of hardware, software, Встроенные системы состоят из оборудования, программного обеспечения,
and an environment. и окружающей среды. This they have in common with most computing systems. Это у них общего с большинством компьютерных систем.
However, there is an essential difference between embedded and other computing Однако, есть существенная разница между встроенным и других вычислительных
systems: since embedded systems involve computation that is subject to physical системы: так как встроенные системы включают вычисления, которые подвергаются физическому
constraints, the powerful separation of computation (software) from physicality ограничения, мощный разделения вычислений (программное обеспечение) от телесности
(platform and environment), which has been one of the central ideas enabling (Платформы и окружающей среды), которая была одной из центральных идей позволяет
the science of computing, does not work for embedded systems. науки вычислительной техники, не работает для встраиваемых систем. Instead, the Вместо этого,
design of embedded systems requires a holistic approach that integrates essen- проектирование встроенных систем требует целостного подхода, который интегрирует Essen-
tial paradigms from hardware design, software design, and control theory in a TiAl парадигмы от аппаратных средств, программного обеспечения, и теории управления в
consistent manner. последовательным образом.
We postulate that such a holistic approach cannot be simply an extension of Мы полагаем, что такой комплексный подход не может быть просто расширение
hardware design, nor of software design, but must be based on a new founda- аппаратного обеспечения, ни программного обеспечения, но должно быть основано на новых фондом-
tion that subsumes techniques from both worlds. Тион, что включает в категорию техники из обоих миров. This is because current design Это потому, что текущий дизайн
theories and practices for hardware, and for software, are tailored towards the теории и практики для оборудования и программного обеспечения, приспособлены к
individual properties of these two domains; indeed, they often use abstractions отдельные свойства этих двух областей, более того, они часто используют абстракций
that are diametrically opposed. , которые диаметрально противоположны. To see this, we now have a look at the abstrac- Чтобы убедиться в этом, мы сейчас посмотрим на абстракции
tions that are commonly used in hardware design, and those that are used in tions, которые обычно используются в аппаратных средств, и те, которые используются в
software design. разработка программного обеспечения.
2.2 Analytical versus Computational Modeling 2.2 Аналитические против вычислительного моделирования
Hardware versus software design. Оборудование от программного обеспечения. Hardware systems are designed as the Оборудование системы предназначены как
composition of interconnected, inherently parallel components. Состав взаимосвязаны, по своей сути параллельной компоненты. The individual Отдельных
components are represented by analytical models (equations), which specify their компоненты представлены аналитические модели (уравнения), которые определяют их
transfer functions. Передача функций. These models are deterministic (or probabilistic), and their Эти модели являются детерминированными (или вероятностные), и их
composition is defined by specifying how data flows across multiple components. Состав определен путем указания как потоки данных на нескольких компонентов.
Software systems, by contrast, are designed from sequential components, such Программное обеспечение системы, напротив, разработана с последовательным компонентов, таких
as objects and threads, whose structure often changes dynamically (components как объекты и потоки, структура которых часто меняется динамически (компоненты
are created, deleted, and may migrate). создаются, удаляются, и могут мигрировать). The components are represented by Компоненты представлены
computational models (programs), whose semantics is defined operationally by вычислительных моделей (программ), чья семантика определяться на практике
an abstract execution engine (also called a virtual machine, or an automaton). Аннотация двигателя исполнения (также называется виртуальной машиной, или автомат).
Abstract machines may be nondeterministic, and their composition is defined by Аннотация машины могут быть недетерминированными, и их состав определяется
specifying how control flows across multiple components; for instance, the atomic Указание способа управления потоками через несколько компонентов, например, атомных
actions of independent processes may be interleaved, possibly constrained by a действия независимых процессов может быть чередованием, возможно, ограничены
fixed set of synchronization primitives. фиксированный набор примитивов синхронизации.
Thus, the basic operation for constructing hardware models is the composition Таким образом, основные операции для построения моделей аппаратуры является состав
of transfer functions; the basic operation for constructing software models is передачи функций; основные операции построения программного обеспечения моделей
the product of automata. произведение автоматов. These are two starkly different views for constructing Эти два резко различных представлений для построения
dynamical systems from basic components: one analytical (ie, equation-based), динамических систем из основных компонентов: один аналитической (т. е. уравнения основе),
the other computational (ie, machine-based). другие вычислительные (т. е. машина основе). The analytical view is prevalent Аналитические зрения преобладает
in Electrical Engineering; the computational view, in Computer Science: the в области электротехники, вычислительной точки зрения, в области компьютерных наук:
netlist representation of a circuit is an example for an analytical model; any список соединений представление схемы является примером для аналитическая модель, любая
program written in an imperative language is an example for a computational программа, написанная на императивном языке является примером для вычислительных
model. модели. Since both types of models have very different strengths and weaknesses, Так как оба типа моделей имеют разные сильные и слабые стороны,
the implications on the design process are dramatic. последствия для процесса проектирования являются существенными.
Analytical and computational models offer orthogonal abstractions. Аналитические и вычислительные модели предлагают ортогональных абстракций.
Analytical models deal naturally with concurrency and with quantitative con- Аналитические модели дело с естественным параллелизмом и с количественной Con-
straints, but they have difficulties with partial and incremental specifications ограничений, но у них возникают трудности с частичными и дополнительные характеристики
(nondeterminism) and with computational complexity. (Недетерминизм) и с вычислительной сложности. Indicatively, equation- Примечательно, что уравнение-
based models and associated analytical methods are used not only in hardware моделей, основанных и связанных с ними аналитические методы используются не только в аппаратной
design and control theory, but also in scheduling and in performance evaluation дизайн и теории управления, а также в планировании и оценке эффективности
(eg, in networking). (Например, в области сетевых технологий).
Computational models, on the other hand, naturally support nondeterminis- Расчетные модели, с другой стороны, естественно поддержку nondeterminis-
tic abstraction hierarchies and a rich theory of computational complexity, but TIC иерархии абстракции и богатой теории сложности вычислений, но
they have difficulties taming concurrency and incorporating physical constraints. у них возникают трудности приручения параллелизма и включение физических ограничений.
Many major paradigms of Computer Science (eg, the Turing machine; the Многие крупные парадигмы Компьютерные науки (например, машины Тьюринга;
thread model of concurrency; the structured operational semantics of program- нить модель параллелизма; структурированных операционную семантику программы
ming languages) have succeeded precisely because they abstract away from all Мин языках) удалось именно потому, что абстрагироваться от всех
physical notions of concurrency and from all physical constraints on compu- физические понятия параллелизма и от всех физических ограничений на Compu-
tation. возбуждения. Indeed, whole subfields of Computer Science are built on and flourish Действительно, весь подполей Компьютерные науки построены на и процветать
because of such abstractions: in operating systems and distributed computing, из-за таких абстракций: в операционных системах и распределенных вычислений,
both time-sharing and parallelism are famously abstracted to the same concept, как в режиме разделения времени и параллелизма известно, отведенная для той же концепции,
namely, nondeterministic sequential computation; in algorithms and complexity а именно, недетерминированных последовательного вычисления, в алгоритмы и сложность
theory, real time is abstracted to big-O time, and physical memory to big-O теории, реального времени, отведенная для большого О времени и физической памяти в биг-O
space. пространстве. These powerful abstractions, however, are largely inadequate for embed- Эти мощные абстракции, однако, в основном недостаточным для встраивания-
ded systems design. Дед дизайна системы.
Analytical and computational models aim at different system require- Аналитические и вычислительные модели нацелены на различные системы требуют-
ments. Ments. The differences between equation-based and machine-based design are Различия между уравнения основе и машина основе дизайна
reflected in the type of requirements they support well. отражение в тип требования, которые они поддерживают четко. System designers deal Система дизайнеров дело
with two kinds of requirements. с двумя типами требований. Functional requirements specify the expected Функциональные требования указать ожидается
services, functionality, and features, independent of the implementation. услуги, функциональность и особенности, зависящие от реализации. Extra- Дополнительные-
functional requirements specify mainly performance, which characterizes the ef- функциональные требования указать основном производительность, которая характеризует EF-
ficient use of real time and of implementation resources; and robustness, which коэффициент использования режиме реального времени и реализации ресурсов и надежности, которые
characterizes the ability to deliver some minimal functionality under circum- характеризует способность обеспечивать некоторую минимальную функциональность по обстоятельствам
stances that deviate from the nominal ones. веществ, которые отличаются от номинальных. For the same functional require- По той же функциональные требования
ments, extra-functional properties can vary depending on a large number of Ments, экстра-функциональные свойства могут меняться в зависимости от большого числа
factors and choices, including the overall system architecture and the character- факторов и выбор, в том числе общую архитектуру системы и характер-
istics of the underlying platform. ристики платформы.
Functional requirements are naturally expressed in discrete, logic-based for- Функциональные требования естественно выражается в дискретных, логика основе для-
malisms. malisms. However, for expessing many extra-functional requirements, real-valued Однако, для многих expessing экстра-функциональных требований, вещественные
quantities are needed to represent physical constraints and probabilities. величин, необходимых для представления физических ограничений и вероятности. For Для
software, the dominant driver is correct functionality, and even performance and программное обеспечение, доминирующей драйвер работает правильно, и даже производительность и
robustness are often specified discretely (eg, number of messages exchanged; надежность часто указаны дискретно (например, количество сообщений при обмене;
number of failures tolerated). число отказов терпимо). For hardware, continuous performance and ro- Для оборудования, непрерывное выполнение и ро-
bustness measures are more prominent and refer to physical resource levels such bustness меры становятся более наглядными и ссылаются на физические уровни ресурсов, таких
as clock frequency, energy consumption, latency, mean-time to failure, and cost. как тактовая частота, потребление энергии, задержки, среднее время на провал, и стоимость.
For embedded systems integrated in mass-market products, the ability to quan- Для встроенных систем, интегрированных в масс-маркет продукты, способность квантовых
tify trade-offs between performance and robustness, under given technical and tify компромиссы между производительностью и надежностью, при заданных технических и
economic constraints, is of strategic importance. экономические трудности, имеет стратегическое значение.
Analytical and computational models support different design pro- Аналитические и вычислительные модели поддерживают различные дизайн Pro-
cesses. процессов. The differences between models based on data flow and models based on Различия между моделями, основанными на поток данных и моделей, основанных на
control flow have far-reaching implications on design methods. управление потоком иметь далеко идущие последствия для методов проектирования. Equation-based Уравнение-основанные
modeling yields rich analytical tools, especially in the presence of stochastic be- моделирование дает богатые аналитические инструменты, особенно в присутствии стохастического быть-
havior. поведения. Moreover, if the number of different basic building blocks is small, as it Более того, если число различных основных строительных блоков мал, как это
is in circuit design, then automatic synthesis techniques have proved extraordi- в цепи, то автоматическое методы синтеза доказали Чрезвычайного-
narily successful in the design of very large systems, to the point of creating an варительно успешно дизайн очень больших систем, вплоть до создания
entire industry (Electronic Design Automation). всей отрасли (Electronic Design Automation). Machine-based models, on the Машина-моделей, основанных на
other hand, while sacrificing powerful analytical and synthesis techniques, can С другой стороны, принося в жертву мощные аналитические методы синтеза и, может
be executed directly. быть выполнены непосредственно. They give the designer more fine-grained control and pro- Они дают дизайнер более детальный контроль и про-
vide a greater space for design variety and optimization. смотри больше пространства для разнообразия дизайна и оптимизации. Indeed, robust software Действительно, надежные программного обеспечения
architectures and efficient algorithms are still individually designed, not auto- архитектуры и эффективные алгоритмы по-прежнему индивидуальным дизайном, а не авто-
matically generated, and this will likely remain the case for some time to come. автоматически порождена, и это, вероятно, останется случае в течение некоторого времени в будущем.
The emphasis, therefore, shifts away from design synthesis to design verification Акцент, таким образом, сдвигается от дизайна синтеза проверки проектов
(proof of correctness). (Доказательство правильности).
Embedded systems design must even-handedly deal with both: with computation Встроенные системы дизайн должен беспристрастно дело с обеими: с вычислением
and physical constraints; with software and hardware; with abstract machines и физические ограничения; с программного и аппаратного обеспечения; с абстрактной машины
and transfer functions; with nondeterminism and probabilities; with functional и функций переноса, с недетерминизм и вероятности; с функциональными
and performance requirements; with qualitative and quantitative analysis; with и требования, с качественным и количественным анализом; с
booleans and reals. логические и чисел. This cannot be achieved by simple juxtaposition of analytical Это не может быть достигнута путем простого сопоставления аналитических
and computational techniques, but requires their tight integration within a new и вычислительной техники, но требует их тесной интеграции в рамках новой
mathematical foundation that spans both perspectives. математическую основу, которая охватывает обе перспективы.
3 Current Engineering Practices for Embedded Systems 3 Текущая инженерная практика для встроенных систем
Design, and their Limitations Дизайн, и их ограничений
3.1 Model-based Design 3,1 модельно-ориентированного проектирования
Language-based and synthesis-based origins. На основе языка и синтеза основе происхождения. Historically, many method- Исторически, многие метода-
ologies for embedded systems design trace their origins to one of two sources: ologies для встраиваемых систем проектирования проследить их происхождение к одному из двух источников:
there are language-based methods that lie in the software tradition, and synthesis- Есть язык основе методов, которые лежат в программное обеспечение традиции, и синтез-
based methods that come out of the hardware tradition. Методы, основанные на которые выходят из аппаратной традиции. A language-based ap- На основе языка AP-
proach is centered on a particular programming language with a particular target подход сосредоточен на конкретном языке программирования с определенной цели
run-time system. Система во время выполнения. Examples include Ada and, more recently, RT-Java [5]. Примеры включают Ада и, совсем недавно, RT-Java [5]. For Для
these languages, there are compilation technologies that lead to event-driven этих языков, Есть компиляция технологий, которые приводят к событию
implementations on standardized platforms (fixed-priority scheduling with pre- реализации на основе стандартизированных платформ (фиксированной приоритет планирования с предварительно
emption). покупки). The synthesis-based approaches, on the other hand, have evolved Синтез подходов, с другой стороны, развивались
from hardware design methodologies. от разработки методологии оборудования. They start from a system description in Они начинаются с описания системы в
a tractable (often structural) fragment of a hardware description language such послушный (часто структурной) фрагмент языка описания аппаратных средств, таких
as VHDL and Verilog and, ideally automatically, derive an implementation that как VHDL и Verilog и, в идеале автоматически, получить реализации, что
obeys a given set of constraints. подчиняется данное множество ограничений.
Implementation independence. Осуществление независимости. Recent trends have focused on combining Последние тенденции были направлены на объединение
both language-based and synthesis-based approaches (hardware/software code- как на основе языка и синтез подходов (аппаратно-программный код-
sign) and on gaining, during the early design process, maximal independence знака) и на получение, в начале процесса разработки, максимальная независимость
from a specific implementation platform. от конкретной платформы реализации. We refer to these newer aproaches col- Мы имеем в виду этих новых aproaches Col-
lectively as model-based, because they emphasize the separation of the design lectively как на основе моделей, потому что они подчеркивают разделение дизайна
level from the implementation level, and they are centered around the semantics уровня в связи с осуществлением уровне, и они сосредоточены вокруг семантики
of abstract system descriptions (rather than on the implementation semantics). абстрактного описания системы (а не на реализации семантики).
Consequently, much effort in model-based approaches goes into developing effi- Следовательно, много усилий в модельных подходов переходит в разработке эффек-
cient code generators. коэффициент генераторы кода. We provide here only a short and incomplete selection of Мы предлагаем здесь лишь краткий и неполный выбор
some representative methodologies. некоторый представитель методологий.
Model-based methodologies. Модель методологий. The synchronous languages, such as Lustre Синхронных языков, таких как Lustre
and Esterel [11], embody an abstract hardware semantics (synchronicity) within и Esterel [11], воплотить абстрактную семантику оборудования (синхронность) в рамках
different kinds of software structures (functional; imperative). различных видов программного обеспечения структур (функциональных, императив). Implementation Осуществление
technologies are available for several platforms, including bare machines and технологии доступны для нескольких платформ, в том числе машин и голые
time-triggered architectures. времени срабатывает архитектуры. Originating from the design automation commu- Исходя из commu автоматизации разработки
nity, SystemC [19] also chooses a synchronous hardware semantics, but allows бесконечности, SystemC [19] также выбирает синхронной семантике аппаратного обеспечения, но позволяет
for the introduction of asynchronous execution and interaction mechanisms from для внедрения асинхронного выполнения и механизмы взаимодействия с
software (C++). программное обеспечение (C + +). Implementations require a separation between the components Реализации требуют разделения между компонентами
to be implemented in hardware, and those to be implemented in software; dif- быть реализованы на аппаратном уровне, и тех, которые будут реализованы в программном обеспечении; раз-
ferent design-space exploration techniques provide guidance in making such par- различными-космических исследований методов проектирования обеспечивают руководство в принятии таких Пар-
titioning decisions. titioning решений. A third kind of model-based approaches are built around a Третий вид модели подходы строятся вокруг
class of popular languages exemplified by MATLAB Simulink, whose semantics класс популярных языков на примере MATLAB Simulink, чья семантика
is defined operationally through its simulation engine. определяется оперативно через моделирования двигателя.
More recent modeling languages, such as UML [20] and AADL [10], attempt to Более поздние языки моделирования, такие как UML [20] и AADL [10], попытки
be more generic in their choice of semantics and thus bring extensions in two более общего в их выборе семантики и таким образом привести в двух расширениях
directions: independence from a particular programming language; and empha- направлениям: независимость от конкретного языка программирования, а также подчеркнуть,
sis on system architecture as a means to organize computation, communication, SIS по архитектуре системы в качестве средства для организации вычислений, связи,
and constraints. и ограничений. We believe, however, that these attempts will ultimately fall Однако мы считаем, что эти попытки в конечном итоге падение
short, unless they can draw on new foundational results to overcome the current Короче говоря, если они не могут опираться на результаты нового базового для преодоления текущих
weaknesses of model-based design: the lack of analytical tools for computational слабые стороны модельно-ориентированного проектирования: отсутствие аналитических инструментов для вычислительных
models to deal with physical constraints; and the difficulty to automatically Модели иметь дело с физическими ограничениями, а также трудности для автоматического
transform noncomputational models into efficient computational ones. Преобразование noncomputational моделей в эффективные вычислительные те. This leads Это приводит
us to the key need for a better understanding of relationships and transforma- нам ключ необходимо для лучшего понимания отношений и преобразований
tions between heterogeneous models. переходы между гетерогенными моделей.
Model transformations. Модель преобразования. Central to all model-based design is an effective the- Центральной для всех модельно-ориентированного проектирования является эффективным-
ory of model transformations. теория модели преобразований. Design often involves the use of multiple models Дизайн часто предполагает использование нескольких моделей
that represent different views of a system at different levels of granularity. , которые представляют различные представления системы на различных уровнях детализации. Usu- Usu-
ally design proceeds neither strictly top-down, from the requirements to the союзника дизайн доходов не строго сверху вниз, от требований к
implementation, nor strictly bottom-up, by integrating library components, but осуществления, ни строго снизу вверх, путем интеграции компонентов библиотеки, но
in a less directed fashion, by iterating model construction, model analysis, and в менее направлены моды, путем итерации построения модели, модели анализа и
model transformation. модель трансформации. Some transformations between models can be automated; Некоторые преобразования между моделями могут быть автоматизированы;
at other times, the designer must guide the model construction. в других случаях, дизайнер должен руководство построения модели. The ultimate Конечная
success story in model transformation is the theory of compilation: today, it История успеха в модели преобразования теории компиляции: сегодня,
is difficult to manually improve on the code produced by a good optimizing Трудно вручную улучшить код, генерируемый при хорошей оптимизации
compiler from programs (ie, computational models) written in a high-level lan- компилятором из программ (например, вычислительные модели), записанный в высоком уровне LAN-
guage. калибровки. On the other hand, code generators often produce inefficient code from С другой стороны, генераторов кода часто приводит к неэффективному код
equation-based models: fixpoints of equation sets can be computed (or approx- Уравнение основе модели: твердых точек уравнения наборы могут быть вычислены (или около-
imated) iteratively, but more efficient algorithmic insights and data structures симировалась) итеративно, но более эффективные алгоритмические идеи и структуры данных
must be supplied by the designer. должны быть поставлены дизайнера.
For extra-functional requirements, such as timing, the separation of human- Для дополнительной функциональные требования, такие, как сроки, разделение человеческого-
guided design decisions from automatic model transformations is even less well Руководствуясь решениями дизайна из автоматического преобразования модели еще меньше
understood. понял. Indeed, engineering practice often relies on a 'trial-and-error' loop Действительно, инженерной практике часто полагается на "проб и ошибок" петля
of code generation, followed by test, followed by redesign (eg, priority tweaking генерации кода, после чего испытания, после модернизации (например, приоритет настройки
when deadlines are missed). , когда сроки пропущены). An alternative is to develop high-level program- В качестве альтернативы можно развивать программу высокого уровня-
ming languages that can express reaction constraints, together with compilers Мин языков, которые могут выразить реакцию ограничения, вместе с компиляторами
that guarantee the preservation of the reaction constraints on a given execution , которые гарантируют сохранение реакции ограничений на выполнение данной
platform [13]. платформы [13]. Such a compiler must mediate between the reaction constraints Такой компилятор должен посредником между реакцией ограничений
specified by the program, such as timeouts, and the execution constraints of the указанные в программе, такие как тайм-ауты, и выполнения ограничений
platform, typically provided in the form of worst-case execution times. платформы, как правило, представлены в форме случаю исполнения раз худшее. We believe Мы считаем,
that an extension of this approach to other extra-functional dimensions, such as , что расширение этого подхода к другим экстра-функциональные аспекты, такие как
power consumption and fault tolerance, is a promising direction of investigation. потребляемой мощности и отказоустойчивости, является перспективным направлением исследования.
3.2 Critical versus Best-Effort Engineering 3,2 Критическая от максимальных усилий инженерных
Guaranteeing safety versus optimizing performance. Обеспечение безопасности от оптимизации производительности. Today's systems en- систем Сегодня ан-
gineering methodologies can be classified also along another axis: critical systems инженерной методики могут быть классифицированы также вдоль другой оси: критически важных систем
engineering, and best-effort systems engineering. техники, и лучше всего усилий инженерных систем. The former tries to guarantee Бывший пытается гарантировать
system safety at all costs, even when the system operates under extreme con- системы безопасности любой ценой, даже тогда, когда система работает в экстремальных Con-
ditions; the latter tries to optimize system performance (and cost) when the условиях; последний пытается оптимизировать производительность системы (и стоимость), когда
system operates under expected conditions. Система работает при ожидаемых условиях. Critical engineering views design Критические инженерных просмотров дизайн
as a constraint-satisfaction problem; best-effort engineering, as an optimization как ограничение удовлетворенности проблемы; лучшие усилия техники, а оптимизация
problem. проблемы.
Critical systems engineering is based on worst-case analysis (ie, conservative Критические инженерных систем в самом худшем случае анализа (например, консервативный
approximations of the system dynamics) and on static resource reservation. приближения системы динамика) и на статической бронирования ресурсов. For Для
tractable conservative approximations to exist, execution platforms often need послушный консервативной аппроксимации на существование, выполнение платформ часто требуется
to be simplified (eg, bare machines without operating systems; processor ar- быть упрощена (например, голые машины без операционной системы, процессора ар-
chitectures that allow time predictability for code execution). chitectures, которые позволяют время предсказуемости для выполнения кода). Typical examples Типичными примерами
of such approaches are those used for safety-critical systems in avionics. таких подходов, которые используются для обеспечения безопасности критически важных систем в авионики. Real- Реального
time constraint satisfaction is guaranteed on the basis of worst-case execution удовлетворения ограничений времени гарантированы на основе случаю исполнения худшее
time analysis and static scheduling. Время анализа и статического планирования. The maximal necessary computing power is Максимальная необходимые вычислительные мощности является
made available at all times. доступны в любое время. Dependability is achieved mainly by using massive Надежность достигается главным образом с помощью массивных
redundancy, and by statically deploying all equipment for failure detection and избыточность, и статически использовать все оборудование для выявления неисправности и
recovery. восстановления.
Best-effort systems engineering, by contrast, is based on average-case (rather Лучшие усилия инженерных систем, напротив, основывается на среднем регистре (а
than worst-case) analysis and on dynamic resource allocation. чем наихудший) анализ и динамическое распределение ресурсов. It seeks the effi- Она стремится эффективно-
cient use of resources (eg, optimization of throughput, jitter, or power) and is коэффициент использования ресурсов (например, оптимизация пропускной способности, джиттера, или власть) и
used for applications where some degradation or even temporary denial of ser- используется для приложений, где некоторые деградации или даже временный отказ в сер-
vice is tolerable, as in telecommunications. Вице является допустимым, а в области телекоммуникаций. The 'hard' worst-case requirements "Жесткой" наихудший требования
of critical systems are replaced by 'soft' QoS (quality-of-service) requirements. критических систем заменяются "мягкими" QoS (качество в обслуживании) требований.
For example, a hard deadline is either met or missed; for a soft deadline, there Например, жесткие сроки либо встречались или пропущенных, для мягкой срока, то
is a continuum of different degrees of satisfaction. континуум различной степени удовлетворенности. QoS requirements can be en- QoS требования могут быть ан-
forced by adaptive (feedback-based) scheduling mechanisms, which adjust some вынуждены по адаптивной (обратная связь основе) планирование механизмы, которые регулируют некоторые
system parameters at run-time in order to optimize performance and to recover параметров системы во время выполнения, с тем чтобы оптимизировать производительность и восстановить
from deviations from nominal behavior. от отклонения от номинального поведения. Service may be denied temporarily by Служба может быть отказано временно
admission policies, in order to guarantee that QoS levels stay above minimum приема политики, с тем чтобы гарантировать, что уровни QoS пребывания выше минимальной
thresholds. порогов.
A widening gap. Увеличивающийся разрыв. The two approaches —critical and best-effort engineering— Два подхода критически важных и наиболее усилия инженерно-
are largely disjoint. в значительной степени пересекаются. This is reflected by the separation between 'hard' and 'soft' Это находит отражение в разделении между "жесткой" и "мягкие"
real time. режиме реального времени. They correspond to different research communities and different prac- Они соответствуют различным общинам исследований и различных прак-
tices. Тисес. Hard approaches rely on static (design-time) analysis; soft approaches, on Жесткие подходы опираются на статические (дизайн-времени) анализа; мягкие подходы,
dynamic (run-time) adaptation. динамических (время выполнения) адаптации. Consequently, they adopt different models of Следовательно, они принимают различные модели
computation and use different execution platforms, middleware, and networks. вычислений и использования различных платформ исполнения, промежуточное ПО и сетей.
For instance, time-triggered technologies are considered to be indispensable for Например, времени срабатывает технологии считаются необходимыми для
drive-by-wire automotive systems [17]. Драйв по проводам автомобильных систем [17]. Most safety-critical systems adopt very Большинство безопасности критически важных систем принять очень
simple static scheduling principles, either fixed-priority scheduling with preemp- простых статических принципы планирования, либо фиксированной приоритет планирования с preemp-
tion, or round-robin scheduling for synchronous execution. Тион, или циклического планирования для синхронного выполнения. It is often said that Он часто говорил, что
such a separation is inevitable for systems with uncertain environments. такое разделение неизбежно для систем с неопределенными среды. Meet- Знакомьтесь-
ing hard constraints and making the best possible use of the available resources ING жесткие ограничения и максимально возможного использования имеющихся ресурсов
seem to be two conflicting requirements. кажется, два противоречащих друг другу требований. The hard real-time approach leads to Жесткого реального времени подход приводит к
low utilization of system resources. низким потреблением системных ресурсов. On the other hand, soft approaches take the С другой стороны, мягкие подходы принять
risk of temporary unavailability. риск временной недоступности.
We believe that, left unchecked, the gap between the two approaches will con- Мы считаем, что их не остановить, разрыв между этими двумя подходами будет Con-
tinue to widen. продолжают увеличиваться. This is because the uncertainties in embedded systems design Это потому, что неопределенность во встраиваемых систем проектирования
keep increasing for two reasons. продолжают расти по двум причинам. First, as embedded systems are deployed in a Во-первых, как встроенные системы развернуты в
greater variety of situations, their environments are less perfectly known, with большее разнообразие ситуаций, их среды менее прекрасно известно, с
greater distances between worst-case and expected behaviors. большие расстояния между наихудший и ожидаемого поведения. Second, because Во-вторых, потому что
of the rapid progress in VLSI design, embedded systems are implemented on от быстрого прогресса в разработке СБИС, встроенные системы реализованы на
sophisticated, hardware/software layered multicore architectures with caches, сложные, аппаратно-программных слоистых многоядерных архитектур с кэшами,
pipelines, and speculative execution. трубопроводов, и спекулятивные исполнения. The ensuing difficulty of accurate worst- Последующие трудности точного наихудшем
case analysis makes conservative, safety-critical solutions ever more expensive, случае анализ дает консервативные, безопасности критически важных решений все более дорогими,
in both resource and design cost, in comparison to best-effort solutions. как и проектная стоимость ресурсов, в сравнении с лучшими усилия решений. The di- Ди-
vide between critical and best-effort engineering already leads often to a physical смотри между критическими и инженерно-усилия лучших уже часто приводит к физической
separation between the critical and noncritical parts of a system, each running расстояние между критической и некритической части системы, каждое из которых работает
on dedicated hardware or during dedicated time slots. на специализированных аппаратных средств или во время специальных слотов времени. As the gap between worst- Как разрыв между худшим-
case and average-case solutions increases, such separated architectures are likely случае и среднего случае решения увеличивается, таких разделенных архитектуры, вероятно,
to become more prevalent. чтобы стать более распространенным.
Bridging the gap. Преодоление разрыва. We think that technological trends oblige us to revise the Мы считаем, что технологические тенденции заставляют нас пересмотреть
dual vision and separation between critical and best-effort practices. двойного видения и разделения между критическими и максимальных усилий практики. The in- В-
creasing computing power of system-on-chip and network-on-chip technologies ростом вычислительной мощности системы-на-чипе и сети-на-чипе технологий
allows the integration of critical and noncritical applications on a single chip. позволяет интеграции критических и некритических приложений на одном чипе.
This reduces communication costs and increases hardware reliability. Это снижает расходы на связь и повышает надежность аппаратных. It also al- Кроме того, аль-
lows a more rational and cost-effective management of resources. минимумы более рациональное и экономически эффективное управление ресурсами. To achieve this, Для достижения этой цели,
we need methods for guaranteeing a sufficiently strong, but not absolute, separa- нам нужны методы для обеспечения достаточно сильный, но не абсолютное, разделения
tion between critical and noncritical components that share common resources. Тион между критическим и некритическим компоненты, которые разделяют общие ресурсы.
In particular, design techniques for adaptive systems should make flexible use of В частности, дизайн методов адаптивной системы должны сделать гибкого использования
the available resources by taking advantage of any complementarities between имеющихся ресурсов, воспользовавшись любой взаимодополняемости
hard and soft constraints. твердые и мягкие ограничения. One possibility may be to treat the satisfaction of Одним из возможных вариантов может быть для лечения удовлетворения
critical requirements as minimal guaranteed QoS level. критические требования, как минимальный гарантированный уровень QoS. Such an approach would Такой подход позволил бы
require, once again, the integration of boolean-valued and quantitative methods. требует, еще раз, интеграции булевозначных и количественные методы.
4 Two Demands on a Solution 4 два требования на решение
Heterogeneity and constructivity. Неоднородность и конструктивности. Our vision is to develop an Embedded Наше видение заключается в разработке встроенного
Systems Design Science that even-handedly integrates analytical and compu- Системы компании Design Science, что беспристрастно объединяет аналитические и Compu-
tational views of a system, and that methodically quantifies trade-offs between гравитационной вид системы, и что методично количественно компромиссов между
critical and best-effort engineering decisions. критическим и наиболее усилий инженерных решений. Two opposing forces need to be ad- Две противоборствующие силы должны быть объявление-
dressed for setting up such an Embedded Systems Design Science. одет для создания таких встроенных систем компании Design Science. These corre- Эти соот-
spond to the needs for encompassing heterogeneity and achieving constructivity соответствуют потребности в охватывающих неоднородности и достижения конструктивности
during the design process. в процессе проектирования. Heterogeneity is the property of embedded systems Неоднородность является собственностью встроенных систем
to be built from components with different characteristics. будет построен из компонентов с различными характеристиками. Heterogeneity has Неоднородность имеет
several sources and manifestations (as will be discussed below), and the existing нескольких источников и проявлений (как будет сказано ниже), и существующие
body of knowledge is largely fragmented into unrelated models and correspond- объем знаний в значительной степени фрагментирован в не связанных моделей и соответствующих
ing results. ING результаты. Constructivity is the possibility to build complex systems that meet Конструктивность является возможность создания сложных систем, которые отвечают
given requirements, from building blocks and glue components with known prop- заданным требованиям, из строительных блоков и клей компоненты с известными свойствами
erties. свойствами. Constructivity can be achieved by algorithms (compilation and synthesis), Конструктивность может быть достигнуто с помощью алгоритмов (компиляция и обобщение),
but also by architectures and design disciplines. но и архитектуры и дизайна дисциплин.
The two demands of heterogeneity and constructivity pull in different directions. Два требования неоднородности и конструктивности тянуть в разные стороны.
Encompassing heterogeneity looks outward, towards the integration of theories Охватывая неоднородности смотрит наружу, на пути интеграции теорий
to provide a unifying view for bridging the gaps between analytical and com- обеспечить объединяющей зрения для преодоления разрыва между аналитическими и COM-
putational models, and between critical and best-effort techniques. вычислительной модели, а также между критическим и наиболее усилий методов. Achieving Достижение
constructivity looks inward, towards developing a tractable theory for system конструктивности смотрит внутрь себя, к разработке послушный теории для системы
construction. строительство. Since constructivity is most easily achieved in restricted settings, С конструктивности наиболее легко достигается в ограниченном настройки,
an Embedded Systems Design Science must provide the means for intelligently Встроенные системы Design Science должен обеспечить средства для интеллектуально
balancing and trading off both ambitions. балансировки и компромисса и амбиций.
4.1 Encompassing Heterogeneity 4,1 Охватывая Гетерогенность
System designers deal with a large variety of components, each having different Система дизайнеров дело с большим разнообразием компонентов, каждый из которых имеет различные
characteristics, from a large variety of viewpoints, each highlighting different характеристики, с большим разнообразием точек зрения, каждая освещаются различные
dimensions of a system. размеры системы. Two central problems are the meaningful composition Две центральные проблемы значимых состава
of heterogeneous components to ensure their correct interoperation, and the гетерогенных компонентов для обеспечения их правильного взаимодействия, и
meaningful refinement and integration of heterogeneous viewpoints during the значимого изысканность и интеграции разнородных точек зрения во время
design process. процесса проектирования. Superficial classifications may distinguish between hardware and Поверхностные классификации можно выделить между аппаратными и
software components, or between continuous-time (analog) and discrete-time программные компоненты, или между непрерывным временем (аналоговый) и дискретным временем
(digital) components, but heterogeneity has two more fundamental sources: the (Цифровых) компонентов, но неоднородность имеет два основных источников:
composition of subsystems with different execution and interaction semantics; Состав подсистем с различными исполнения и взаимодействия семантики;
and the abstract view of a system from different perspectives. и абстрактные зрения системы с различных точек зрения.
Heterogeneity of execution and interaction semantics. Неоднородность исполнения и взаимодействия семантики. At one extreme of На одном полюсе
the semantic spectrum are fully synchronized components, which proceed in lock- семантический спектр полностью синхронизированы компоненты, которые протекают в замке-
step with a global clock and interact in atomic transactions. шаг с глобальным часы и взаимодействовать в атомарных транзакций. Such a tight coupling Такая тесная связь
of components is the standard model for most synthesizable hardware and for компонентов является стандартной моделью для большинства синтезируемого оборудования и для
hard real-time software. жесткого реального времени программного обеспечения. At the other extreme are completely asynchronous com- На другом полюсе находятся полностью асинхронный COM-
ponents, which proceed at independent speeds and interact nonatomically. компоненты, которые протекают в независимых скорости и взаимодействовать nonatomically. Such Такие
a loose coupling of components is the standard model for most multithreaded слабое связывание компонентов является стандартной моделью для большинства многопоточных
software. программное обеспечение. Between the two extremes, a variety of intermediate and hybrid models Между этими двумя крайностями, различные промежуточные и гибридные модели
exist (eg, globally-asynchronous locally-synchronous models). существуют (например, глобально-локально-асинхронные синхронные моделей). To better under- Чтобы лучше под-
stand their commonalities and differences, it is useful to decouple execution from стоят их общие черты и различия, полезно отделить от исполнения
interaction semantics [21]. взаимодействие семантики [21].
Execution semantics. Исполнение семантики. Synchronous execution is typically used in hardware, in Синхронное выполнение обычно используется на аппаратном уровне, в
synchronous programming languages, and in time-triggered systems. синхронных языков программирования, так и во времени, вызвали системы. It consid- Он рас-
ers a system's execution as a sequence of global steps. ERS системы исполнения как последовательность глобальных шагов. It assumes synchrony, Она предполагает синхронность,
meaning that the environment does not change during a step, or equivalently, Это означает, что среда не меняется в течение шаг, или, что эквивалентно,
that the system is infinitely faster than its environment. что система бесконечно быстрее, чем его окружение. In each execution step, В каждом выполнении шага,
all system components contribute by executing some quantum of computation. все системные компоненты способствуют, выполнив некоторые квантовые вычисления.
The synchronous execution paradigm, therefore, has a built-in strong assump- Синхронных парадигма исполнения, следовательно, имеет встроенный в сильных пред-
tion of fairness: in each step all components can move forward. Тион справедливости: в каждом шаге все компоненты могут двигаться вперед. Asynchronous Асинхронный
execution, by contrast, does not use any notion of global computation step. исполнение, напротив, не использует понятие глобального шага вычислений. It Это
is adopted in most distributed systems description languages such as SDL [16] принят в наиболее распространенных языков описания систем, таких как SDL [16]
and UML, and in multithreaded programming languages such as Ada and Java. и UML, и в многопоточных языков программирования, таких как Ada и Java.
The lack of built-in mechanisms for sharing computation between components Отсутствие встроенных механизмов для обмена вычислений между компонентами
can be compensated through constraints on scheduling (eg, priorities; fairness) может быть компенсирован путем ограничения на планирование (например, приоритеты; справедливости)
and through mechanisms for interaction (eg, shared variables). и через механизмы взаимодействия (например, общие переменные).
Interaction semantics. Взаимодействие семантики. Interactions are combinations of actions performed by Взаимодействия комбинации действий, выполняемых
system components in order to achieve a desired global behavior. компонентов системы с целью достижения желаемого глобального поведения. Interactions Взаимодействия
can be atomic or nonatomic. может быть атомных или неатомической. For atomic interactions, the state change induced in Для атомных взаимодействий, вызванных изменением состояния в
the participating components cannot be altered through interference with other участвующих компонентов не может быть изменен в результате интерференции с другими
interactions. взаимодействий. As a rule, synchronous programming languages and hardware de- Как правило, синхронный языков программирования и аппаратного обеспечения де-
scription languages use atomic interactions. описанию языков использования атомных взаимодействий. By contrast, languages with buffered В отличие от языков с буфером
communication (eg, SDL) and multithreaded languages (eg, Java) generally связи (например, SDL) и многопоточных языках (например, Java) в целом
use nonatomic interactions. использование неатомической взаимодействий. Both types of interactions may involve strong or Оба типа взаимодействия может включать сильные или
weak synchronization. слабой синхронизации. Strongly synchronizing interactions can occur only if all Сильно синхронизации взаимодействия могут происходить только тогда, когда все
participating components agree (eg, CSP rendezvous). участвующих компонентов согласен (например, CSP свидание). Weakly synchronizing Слабо синхронизации
interactions are asymmetric; they require only the participation of an initiating взаимодействия асимметричные, они требуют лишь участием инициирования
action, which may or may not synchronize with other actions (eg, outputs in действия, которые могут или не могут синхронизировать с другими действиями (например, выхода в
synchronous languages). синхронных языков).
Heterogeneity of abstractions. Неоднородность абстракций. System design involves the use of models Проектирование системы включает в себя использование моделей
that represent a system at varying degrees of detail and are related to each , которые представляют системы в той или иной степени детализации и связаны друг с
other in an abstraction (or equivalently, refinement) hierarchy. другие в абстракции (или, что эквивалентно, уточнение) иерархии. Heterogeneous Гетерогенный
abstractions, which relate different styles of models, are often the most powerful абстракции, которые касаются различных стилей моделей, часто являются наиболее мощным
ones: a notable example is the boolean-valued gate-level abstraction of real- из них: ярким примером является булевозначных ворота уровня абстракции реального
valued transistor-level models for circuits. значной транзистора на уровне моделей для схем.
In embedded systems, a key abstraction is the one relating application soft- Во встраиваемых системах, ключевые абстракции один из которых касается приложения мягких
ware to its implementation on a given platform. изделия для его реализации на данной платформе. Application software is largely Прикладное программное обеспечение в значительной степени
untimed, in the sense that it abstracts away from physical time. untimed, в том смысле, что она абстрагирует от физического времени. References to Ссылки на
physical time may occur in the parameters of real-time statements, such as time- физического времени может произойти в параметрах в режиме реального времени заявления, такие как время-
outs, which are treated as external events. выходы, которые рассматриваются в качестве внешних событий. The application code running on a Код приложения, работающие на
given platform, however, is a dynamical system that can be modeled as a timed платформе, однако, динамические системы, которые могут быть смоделированы как приурочено
or hybrid automaton [1]. или гибрид автомата [1]. The run-time state includes not only the variables of Во время выполнения состояние включает в себя не только переменные
the application software, but also all variables that are needed to characterize прикладного программного обеспечения, но и все переменные, которые необходимы для характеристики
its dynamic behavior, including clock variables. ее динамическое поведение, в том числе часы переменных. Modeling implementations may Моделирование реализации могут
require additional quantitative constraints, such as probabilities to describe fail- требует дополнительных количественных ограничений, таких как вероятности для описания отказоустойчивости
ures, and arrival laws for external events. Ures, и прибытия законы для внешних событий. We need to find tractable theories Нам необходимо найти послушный теорий
to relate the application and implementation layers. связать применении и осуществлении слоев. In particular, such theo- В частности, такие Тео-
ries must provide the means for preserving, in the implementation, all essential Рис должен обеспечить средства для сохранения, в ходе осуществления, все необходимые
properties of the application software. свойства прикладного программного обеспечения.
Another cause of heterogeneity in abstractions is the use of different abstractions Другая причина неоднородности в абстракции является использование различных абстракций
for modeling different extra-functional dimensions (or 'aspects') of a system. для моделирования различных экстра-функциональные размеры (или "аспектов") системы.
Some dimensions, such as timing and power consumption in certain settings, Некоторые аспекты, такие, как сроки и потребление энергии в определенных условиях,
may be tightly correlated; others, such as timing and fault tolerance, may be
achievable through independent, composable solutions. In general we lack practi-
cal theories for effectively separating orthogonal dimensions, and for quantifying
the trade-offs between interfering dimensions.
Metamodeling. We are not the first to emphasize the need for encompassing
heterogeneity in systems design. Much recent attention has focused on so-called
'metamodels,' which are semantic frameworks for expressing different models
and their interoperation [2, 9, 3]. We submit that we need a metamodel which is
not just a disjoint union of submodels within a common (meta)language, but one
which preserves properties during model composition and supports meaningful
analyses and transformations across heterogeneous model boundaries. This leads Это приводит
to the issue of constructivity in design.
4.2 Achieving Constructivity
The system construction problem can be formulated as follows: “build a system
meeting a given set of requirements from a given set of components.” This is a
key problem in any engineering discipline; it lies at the basis of various systems
design activities, including modeling, architecting, programming, synthesis, up-
grading, and reuse. The general problem is by its nature intractable. Given a Учитывая
formal framework for describing and composing components, the system to be
constructed can be characterized as a fixpoint of a monotonic function which
is computable only when a reduction to finite-state models is possible. Even in Даже в
this case, however, the complexity of the algorithms is prohibitive for real-world
systems. Системы.
What are the possible avenues for circumventing this obstacle? We need results in
two complementary directions. First, we need construction methods for specific,
restricted application contexts characterized by particular types of requirements
and constraints, and by particular types of components and composition mecha-
nisms. Clearly, hardware synthesis techniques, software compilation techniques,
algorithms (eg, for scheduling, mutual exclusion, clock synchronization), archi-
tectures (such as time-triggered; publish-subscribe), as well as protocols (eg,
for multimedia synchronization) contribute solutions for specific contexts. It is Это
important to stress that many of the practically interesting results require little
computation and guarantee correctness more or less by construction.
Second, we need theories that allow the incremental combination of the above
results in a systematic process for system construction. Such theories would
be particularly useful for the integration of heterogeneous models, because the
objectives for individual subsystems are most efficiently accomplished within
those models which most naturally capture each of these subsystems. A re- Re-
sulting framework for incremental system construction is likely to employ two
kinds of rules. Compositionality rules infer global system properties from the
local properties of subsystems (eg, inferring global deadlock-freedom from the
deadlock-freedom of the individual components). Noninterference rules guar-
antee that during the system construction process, all essential properties of
subsystems are preserved (eg, establishing noninterference for two scheduling
algorithms used to manage two system resources). This suggests the following
action lines for research.
Constructivity for performance and robustness. The focus must shift from
compositional methods and architectures for ensuring only functional properties,
to extra-functional requirements such as performance and robustness.
Performance. The key issue is the construction of components (schedulers) that
manage system resources so as to meet or optimize given performance require-
ments. Ments. These cover a large range of resource-related constraints involving upper
and lower bounds, averages, jitter, and probabilities. Often the requirements for
different resources are antagonistic, for instance, timeliness and power efficiency,
or respecting deadlines and maximizing utilization. Thus we need construction
methods that allow the joint consideration of performance requirements and the
analysis of trade-offs.
Another inherent difficulty in the construction of schedulers comes from uncer-
tainty and unpredictability in a system's execution and external environments.
In this context, poor precision for time constants used in static scheduling tech-
niques implies poor performance [23]. One approach is to build adaptive sched-
ulers, which control execution by dynamically adjusting their scheduling policies
according to their knowledge about the system's environment. However, cur-
rently there is no satisfactory theory for combining adaptive techniques for dif-
ferent kinds of resources. Such an approach must address the concerns of critical
systems engineering, which currently relies almost exclusively on static tech-
niques. The development of a system construction framework that allows the
joint consideration of both critical and noncritical performance requirements for
different classes of resources is a major challenge for the envisioned Embedded
Systems Design Science.
Robustness. The key issue is the construction of components performing as de-
sired under circumstances that deviate from the normal, expected operating en-
vironment. Such deviations may include extreme input values, platform failures,
and malicious attacks. Accordingly, robustness requirements include a broad
spectrum of properties, such as safety (resistance to failures), security (resis-
tance to attacks), and availability (accessibility of resources). Robustness is a
transversal issue in system construction, cutting across all design activities and
influencing all design decisions. For instance, system security must take into ac-
count properties of the software and hardware architectures, information treat-
ment (encryption, access, and transmission), as well as programming disciplines.
The current state of the art in building robust systems is still embryonic. A
long-term and continuous research effort is necessary to develop a framework for
the rigorous construction of robust systems. Our purpose here is only to point
out the inadequacy of some existing approaches.
In dynamical systems, robustness can be formalized as continuity, namely, that
small perturbations of input values cause small perturbations of output values.
No such formalization is available for discrete systems, where the change of a
single input or state bit can lead to a completely different output behavior.
Worse, many of our models for embedded systems are nonrobust even in the
continuous domain. For example, in timed automata, an arbitrarily small change
in the arrival time of an input may change the entire behavior of the automaton.
In computer science, redundancy is often the only solution to build reliable
systems from unreliable components. We need theories, methods, and tools
that support the construction of robust embedded systems without resorting
to such massive, expensive overengineering. One hope is that continuity can be
achieved in fully quantitative models, where quantitative information expresses
not only probabilities, time, and other resource consumption levels, but also func-
tional characteristics. For example, if we are no longer interested in the absolute
(boolean-valued) possibility or nonpossibility of failure, but in the (real-valued)
mean-time to failure, we may be able to construct continuous models where small
changes in certain parameters induce only small changes in the failure rate.
Incremental construction. A practical methodology for embedded systems
design needs to scale, and overcome the limitations of current algorithmic ver-
ification and synthesis techniques. One route for achieving scalability is to rely
on compositionality and noninterference rules which require only light-weight
analyses of the overall system architecture. Such correct-by-construction tech-
niques exist for very specific properties and architectures. For example, time-
triggered architectures ensure timely and fault-tolerant communication for dis-
tributed real-time systems; a token-ring protocol guarantees mutual exclusion
for strongly synchronized processes that are connected in a ring. It is essential
to extend the correct-by-construction paradigm by studying more generally the
interplay between architectures and properties.
A related class of correct-by-construction techniques is focused on the use of
component interfaces [7]. A well-designed interface exposes exactly the informa-
tion about a component which is necessary to check for composability with other
components. компонентов. In a sense, an interface formalism is a 'type theory' for component
composition. состава. Recent trends have been towards rich interfaces, which expose func-
tional as well as extra-functional information about a component, for example,
resource consumption levels. Interface theories are especially promising for in-
cremental design under such quantitative constraints, because the composition
of two or more interfaces can be defined as to calculate the combined amount of
resources that are consumed by putting together the underlying components.
5 Summary
We believe that the challenge of designing embedded systems offers a unique
opportunity for reinvigorating Computer Science. The challenge, and thus the
opportunity, spans the spectrum from theoretical foundations to engineering
practice. практике. To begin with, we need a mathematical basis for systems modeling and
analysis which integrates both abstract-machine models and transfer-function
models in order to deal with computation and physical constraints in a consis-
tent, operative manner. Based on such a theory, it should be possible to combine
practices for critical systems engineering to guarantee functional requirements,
with best-effort systems engineering to optimize performance and robustness.
The theory, the methodologies, and the tools need to encompass heterogeneous
execution and interaction mechanisms for the components of a system, and they
need to provide abstractions that isolate the subproblems in design that require
human creativity from those that can be automated. This effort is a true grand
challenge: it demands paradigmatic departures from the prevailing views on both
hardware and software design, and it offers substantial rewards in terms of cost
and quality of our future embedded infrastructure.
Acknowledgments. Благодарности. We thank Paul Caspi and Oded Maler for valuable com-
ments on a preliminary draft of this manuscript.
References Список литературы
1. 1. R. Alur, C. Courcoubetis, N. Halbwachs, TA Henzinger, P.-H. Ho, X. Nicollin,
A. Olivero, J. Sifakis, and S. Yovine. The algorithmic analysis of hybrid systems.
Theoretical Computer Science, 138(1):3–34, 1995.
2. 2. F. Balarin, Y. Watanabe, H. Hsieh, L. Lavagno, C. Passerone, and AL
Sangiovanni-Vincentelli. Metropolis: An integrated electronic system design en-
vironment. IEEE Computer, 36(4):45–52, 2003.
3. 3. K. Balasubramanian, AS Gokhale, G. Karsai, J. Sztipanovits, and S. Neema.
Developing applications using model-driven design environments. IEEE Computer,
39(2):33–40, 2006.
4. 4. T. Berners-Lee, J. Hendler, and O. Lassila. The Semantic Web. Scientific Ameri-
can, 284(5):34–43, 2001.
5. 5. A. Burns and A. Wellings. Real-Time Systems and Programming Languages.
Addison-Wesley, third edition, 2001.
6. 6. DE Culler and W. Hong. Wireless sensor networks. Commununications of the
ACM, 47(6):30–33, 2004.
7. 7. L. de Alfaro and TA Henzinger. Interface-based design. In M. Broy, J. Grunbauer,
D. Harel, and CAR Hoare, editors, Engineering Theories of Software-intensive
Systems, NATO Science Series: Mathematics, Physics, and Chemistry 195, pages
83–104. Springer, 2005.
8. 8. PJ Denning and A. McGettrick. Recentering Computer Science. Commununica-
tions of the ACM, 48(11):15–19, 2005.
9. 9. J. Eker, JW Janneck, EA Lee, J. Liu, X. Liu, J. Ludvig, S. Neuendorffer,
S. Sachs, and Y. Xiong. Taming heterogeneity: The Ptolemy approach. Proceedings
of the IEEE, 91(1):127–144, 2003.
10. 10. PH Feiler, B. Lewis, and S. Vestal. The SAE Architecture Analysis and Design
Language (AADL) Standard: A basis for model-based architecture-driven embed-
ded systems engineering. In Proceedings of the RTAS Workshop on Model-driven
Embedded Systems, pages 1–10, 2003.
11. 11. N. Halbwachs. Synchronous Programming of Reactive Systems. Kluwer Academic
Publishers, 1993.
12. 12. D. Harel. A grand challenge for computing: Full reactive modeling of a multi-
cellular animal. Bulletin of the EATCS, 81:226–235, 2003.
13. 13. TA Henzinger, CM Kirsch, MAA Sanvido, and W. Pree. From control models
to real-time code using Giotto. IEEE Control Systems Magazine, 23(1):50–64,
2003. 2003 год.
14. 14. TA Henzinger, EA Lee, AL Sangiovanni-Vincentelli, SS Sastry, and J. Szti-
panovits. Mission Statement: Center for Hybrid and Embedded Software Systems,
University of California, Berkeley, http://chess.eecs.berkeley.edu, 2002.
15. 15. CAR Hoare. The Verifying Compiler: A grand challenge for computing research.
Journal of the ACM, 50(1):63–69, 2003.
16. 16. ITU-T. Recommendation Z-100 Annex F1(11/00): Specification and Descrip-
tion Language (SDL) Formal Definition, International Telecommunication Union,
Geneva, 2000.
17. 17. H. Kopetz. Real-Time Systems: Design Principles for Distributed Embedded Ap-
plications. Kluwer Academic Publishers, 1997.
18. 18. EA Lee. Absolutely positively on time: What would it take? IEEE Computer,
38(7):85–87, 2005.
19. 19. PR Panda. SystemC: A modeling platform supporting multiple design abstrac-
tions. tions. In Proceedings of the International Symposium on Systems Synthesis (ISSS),
pages 75–80. ACM, 2001.
20. 20. J. Rumbaugh, I. Jacobson, and G. Booch. The Unified Modeling Language Refer-
ence Manual. Addison-Wesley, second edition, 2004.
21. 21. J. Sifakis. A framework for component-based construction. In Proceedings of
the Third International Conference on Software Engineering and Formal Methods
(SEFM), pages 293–300. IEEE Computer Society, 2005.
22. 22. JA Stankovic, I. Lee, A. Mok, and R. Rajkumar. Opportunities and obligations
for physical computing systems. IEEE Computer, 38(11):23–31, 2005.
23. 23. L. Thiele and R. Wilhelm. Design for timing predictability. Real-Time Systems,
28(2-3):157–177, 2003.
Исходный текст (английский):
and physical constraints; with software and hardware; with abstract machines
Предложить лучший вариант перевода