PRET: Precision Timed Architectures
От: Didro Россия home~pages
Дата: 19.07.09 14:24
Оценка: 29 (3)
Добрый день,

Меня заинтересовала такая идея — Precision Timed Architectures (имеется в виду архитектура процессора) — поскольку в wikipedia нет статей на эту тему, ниже я постараюсь в нескольких абзацах пересказать то, как я понял идею PRET, и поставить вопрос об актуальности и практичности этой идеи.

В 2007 году группа Эдварда Ли (Беркли) получила грант от Национального научного фонда США на 3 года на развитие темы, озаглавленной как "PRET: Precision Timed Architectures". С тех пор на сайте этой научной группы появилось множество публикаций и, вкратце идею можно охарактеризовать следующим образом:

This project proposes to reintroduce timing predictability as a first-class property of embedded processor architectures. To fully exploit such timing predictability, however, would require a significant redesign of much of computing technology, including operating systems, programming languages, compilers, and networks. Obviously, a three-year NSF project cannot address the full breadth of the problem. We propose, therefore, to tackle the problem from the hardware design perspective. Our approach will be to develop precision timed (PRET) machines as soft cores on FPGAs, and to show that using such machines software components can be integrated with what would traditionally have been purely hardware designs. We expect that this will first greatly improve the expressiveness and usability of FPGA-based design flows, and second will provide a starting point for a decades-long revolution that will once again make timing predictability an essential feature of processors.


Т.е. другими словами предлагается полностью изменить подход к созданию встраиваемых систем реального времени (это как минимум, но концептуально Ли замахивается на все программирование в целом). Предлагается изменить архитектуру вычислителя, изменить языки, компиляторы, библиотеки и методологии разработки.
Первые шаги в этом направлении уже сделаны – на сайте CHESS доступен симулятор PRET-вычислителя, а в некоторых статьях и презентациях фигурирует PRET-вычислитель, реализованный на ПЛИС (видео 41:09), и некоторые примеры приложений, которые на нем программно реализованы. Существует и язык программирования PRET-вычислителей PRET-C.

В работах отмечается, что осталось еще много не решенных проблем и пр., что в принципе понятно, но мой вопрос не об этом – мне не понятно кто будет потребителем такого вычислителя ? То есть с одной стороны (в силу небольшого опыта работа со встраиваемыми системами и с системами РВ) мне не вполне очевидны ключевые преимущества PRET-вычислителя, а с другой стороны с трудом верится, что на сегодняшний день в этой области все настолько ужасно, что требуется коренной пересмотр всего, начиная с архитектуры железа.

Собственно сами авторы проекта метят в область встроенных систем реального времени и говорят о том, что превалирующий на сегодняшний день подход на основе ОСРВ и методик анализа WCET устарел и на смену ему должны прийти концептуально правильные PRET:

Designers traditionally covered … failures by computing worst case execution time (WCET) bounds and using real-time operating systems (RTOSes) with predictable scheduling policies. But these require substantial margins for reliability, and ultimately reliability is (weakly) determined by bench testing the complete system. Modern processor architectures render WCET virtually unknowable; even simple problems demand heroic efforts. For example, Ferdinand et al. [5] determine the WCET of astonishingly simple avionics code from Airbus running on a Motorola ColdFire 5307, a pipelined CPU with a unified code and data cache. Despite the software consisting of a fixed set of non-interacting tasks containing only simple control structures, their solution required detailed modeling of the seven-stage pipeline and its precise interaction with the cache, generating a large integer linear programming problem. The technique successfully computes WCET, but only with many caveats that are increasingly rare in software. Fundamentally, the ISA of the processor has failed to provide an adequate abstraction.
Timing behavior in RTOSes is coarse and becomes increasingly uncontrollable as the complexity of the system increases, e.g., by adding inter-process communication. Locks, priority inversion, interrupts and similar issues break the formalisms, forcing designers to rely on bench testing, which is nearly impotent at flushing out subtle timing bugs. Worse, these techniques produce brittle systems in which small changes can cause big failures.

Stephen Edwards, Edward A. Lee The Case for the Precision Timed (PRET) Machine 2007


Если я правильно понимаю, то речь идет о том, что по сути на практике расчет и анализ WCET крайне сложен (т.к. требует учета особенностей архитектуры вычислителя, в которой упор сейчас делается на высокую среднею производительность), а ОСРВ гарантируют только время задержки с момента поступления в систему события до начала его обработки (latency) и как следствие очень сложно гарантировать своевременность работы (timeliness) системы на базе ОСРВ, в которой исполнение кода, реагирующего на событие само по себе занимает какое-то время, и в которой возможны межпроцессные\межпоточные взаимодействия.

В целом если посмотреть на список активных проектов CHESS (среди которых, например, среда моделирования Ptolemy II) и на список публикаций (см., нпр., перевод – "Проблемы с потоками"), то создается ощущение, что люди знают, что делают и что PRET решает насущные проблемы в области разработки встроенных систем реального времени. Вопрос в том, так ли это на самом деле ?

Спасибо
pret embedded rtos real-time precision timed
Re: PRET: Precision Timed Architectures
От: Didro Россия home~pages
Дата: 19.07.09 14:26
Оценка:
Необходимо еще, по всей видимости, добавить, что PRET обсуждали и на LtU, но к единому мнению так и не пришли —
Computing Needs Time
Re: PRET: Precision Timed Architectures
От: thesz Россия http://thesz.livejournal.com
Дата: 20.07.09 09:42
Оценка:
D>В работах отмечается, что осталось еще много не решенных проблем и пр., что в принципе понятно, но мой вопрос не об этом – мне не понятно кто будет потребителем такого вычислителя ? То есть с одной стороны (в силу небольшого опыта работа со встраиваемыми системами и с системами РВ) мне не вполне очевидны ключевые преимущества PRET-вычислителя, а с другой стороны с трудом верится, что на сегодняшний день в этой области все настолько ужасно, что требуется коренной пересмотр всего, начиная с архитектуры железа.

D>Собственно сами авторы проекта метят в область встроенных систем реального времени и говорят о том, что превалирующий на сегодняшний день подход на основе ОСРВ и методик анализа WCET устарел и на смену ему должны прийти концептуально правильные PRET:


Dependent types to the rescue!

http://lambda-the-ultimate.org/node/3332#comment
http://okmij.org/ftp/Haskell/types.html#ls-resources
http://okmij.org/ftp/Computation/resource-aware-prog/RealTime.hs — Statically tracking ticks: enforcing timing and protocol restrictions when writing device drivers and their generators
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re: PRET: Precision Timed Architectures
От: Calabon Ниоткуда  
Дата: 20.07.09 18:30
Оценка:
>Вопрос в том, так ли это на самом деле ?
Если бы это было очевидно, всё было бы намного проще
И для инвесторов... но низря же они называются инвесторами, правда?!
Риск есть риск.

На мой взгляд это просто ещё одна научная разработка...
Проблемы появляются по мере развития и реализации проекта.
Если же они и предлагают революцию мы увидим это на их устройсвах по факту, что это лучше...
Допустим, это будет расти от обычных микроконтроллеров до более мощных систем и если это всё-таки здорово...
Но менять все выше перечисленные вещи станут только при 1000% преимуществах...

А про тестирование фирмвари и девайсов похоже на правду... если всё-таки есть выход почему бы не попробывать...
так может быть всё-таки всё настолько плохо?!

Будем ждать революцию...
Re: PRET: Precision Timed Architectures
От: andy1618 Россия  
Дата: 21.07.09 05:17
Оценка:
Здравствуйте, Didro, Вы писали:

D>В работах отмечается, что осталось еще много не решенных проблем и пр., что в принципе понятно, но мой вопрос не об этом – мне не понятно кто будет потребителем такого вычислителя ? То есть с одной стороны (в силу небольшого опыта работа со встраиваемыми системами и с системами РВ) мне не вполне очевидны ключевые преимущества PRET-вычислителя, а с другой стороны с трудом верится, что на сегодняшний день в этой области все настолько ужасно, что требуется коренной пересмотр всего, начиная с архитектуры железа.


Всё действительно ужасно. Лет 5 назад провёл небольшой эксперимент — с помощью аппаратного генератора Ethernet-пакетов направил на сетевую карточку компьютера с Windows-2000 поток порядка 20000 пакетов в секунду (такое можно сгенерить и программно).
Результат получился неожиданным — пока в кабеле фигачил трафик, в операционке даже мышка не двигалась, всё уходило на прерывания. А ведь к этому компьютеру могла бы быть подключена какая-нибудь медицинская система жизнеобеспечения и т.п.
Re[2]: PRET: Precision Timed Architectures
От: SergH Россия  
Дата: 21.07.09 05:22
Оценка:
Здравствуйте, andy1618, Вы писали:

A>Всё действительно ужасно. Лет 5 назад провёл небольшой эксперимент — с помощью аппаратного генератора Ethernet-пакетов направил на сетевую карточку компьютера с Windows-2000 поток порядка 20000 пакетов в секунду (такое можно сгенерить и программно).

A>Результат получился неожиданным — пока в кабеле фигачил трафик, в операционке даже мышка не двигалась, всё уходило на прерывания. А ведь к этому компьютеру могла бы быть подключена какая-нибудь медицинская система жизнеобеспечения и т.п.

Ну, получился DoS, бывает. А как эта проблема решается PRET-ом?

А системы жизнеобеспечения не нужно подключать к PC общего назначения. Он ведь и просто перезагрузиться может случайно. Будто у тебя винда ни разу не висла или в BSOD не уходила.
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.