Edward A. Lee

EECS Department, University of California, Berkeley

Technical Report No. UCB/EECS-2005-5

October 7, 2005

http://www2.eecs.berkeley.edu/Pubs/TechRpts/2005/EECS-2005-5.pdf

Despite considerable progress in software and hardware techniques, when embedded computing systems absolutely must meet tight timing constraints, many of the advances in computing become part of the problem rather than part of the solution. The underlying technology for computation, synchronous digital logic, easily delivers precise timing determinacy (although certain deep submicron techniques threaten even this foundation). However, advances in computer architecture and software have made it difficult or impossible to estimate or predict the execution time of software. Moreover, networking techniques introduce variability and stochastic behavior, and operating systems rely on best effort techniques. Worse, programming languages lack time in their semantics, so timing requirements are only specified indirectly. I examine the following question: ¿if precise timeliness in a networked embedded system is absolutely essential, what has to change?¿ The answer, unfortunately, is ¿nearly everything.¿


BibTeX citation:

@techreport{Lee:EECS-2005-5,
    Author= {Lee, Edward A.},
    Title= {Building Unreliable Systems out of Reliable Components: The Real Time Story},
    Year= {2005},
    Month= {Oct},
    Url= {http://www2.eecs.berkeley.edu/Pubs/TechRpts/2005/EECS-2005-5.html},
    Number= {UCB/EECS-2005-5},
    Abstract= {Despite considerable progress in software and hardware techniques, when embedded computing systems absolutely must meet tight timing constraints, many of the advances in computing become part of the problem rather than part of the solution. The underlying technology for computation, synchronous digital logic, easily delivers precise timing determinacy (although certain deep submicron techniques threaten even this foundation). However, advances in computer architecture and software have made it difficult or impossible to estimate or predict the execution time of software. Moreover, networking techniques introduce variability and stochastic behavior, and operating systems rely on best effort techniques. Worse, programming languages lack time in their semantics, so timing requirements are only specified indirectly. I examine the following question: ¿if precise timeliness in a networked embedded system is absolutely essential, what has to change?¿ The answer, unfortunately, is ¿nearly everything.¿},
}

EndNote citation:

%0 Report
%A Lee, Edward A. 
%T Building Unreliable Systems out of Reliable Components: The Real Time Story
%I EECS Department, University of California, Berkeley
%D 2005
%8 October 7
%@ UCB/EECS-2005-5
%U http://www2.eecs.berkeley.edu/Pubs/TechRpts/2005/EECS-2005-5.html
%F Lee:EECS-2005-5