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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.