Personal tools

Difference between revisions of "Real-Time Embedded Systems"

From iis-projects

Jump to: navigation, search
(What we offer)
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Real-Time Embedded Systems==
 
==Real-Time Embedded Systems==
  
A real-time computer system is a computer system in which the correctness of the system behavior depends not only on the logical results of the computations, but also on the physical instant at  which these results are produced. This means that a real-time system changes its state as a function of physical time  
+
A real-time computer system is a computer system in which the correctness of the system behavior depends not only on the '''logical results''' of the computations, but also on the '''physical instant''' at  which these results are produced. In fact, a real-time system changes its state as a function of physical time.
  
 
It is reasonable to decompose a real-time system into a set of subsystems called clusters e.g., the ''controlled object'' (the ''controlled cluster''), the ''real-time computer system'' (the ''computational cluster'') and the ''human operator'' (the ''operator cluster'').  
 
It is reasonable to decompose a real-time system into a set of subsystems called clusters e.g., the ''controlled object'' (the ''controlled cluster''), the ''real-time computer system'' (the ''computational cluster'') and the ''human operator'' (the ''operator cluster'').  
  
[[File:rt_system.png|frameless|center|600px]]
+
[[File:rt_system.png|center|600px|High-level view of a Real-Time system [1]]]
  
A real-time computer system  must  react  to  stimuli  from  the  controlled  object  (or  the  operator) within time intervals  dictated  by  its  environment.  The  instant  at  which  a  result  must  be  produced  is  called  a  '''deadline'''. If  a  result  has  utility even after the deadline  has  passed, the deadline is classified as '''soft deadline''', otherwise  it  is  '''firm deadline'''. When missing a firm  deadline  results in a system failure (e.g. airplane sensor and autopilot systems, spacecrafts and planetary rovers),  the  deadline  is  called '''hard deadline'''.
 
  
Hence. in real-time systems guarantees must be given on the finishing of computations before a deadline. This affects the design of hardware (caches, interconnects, peripherals, interrupts, ...) and software stack (operating system, scheduling, compiler guarantees). Key concepts are spatial and temporal isolation of components.
+
A real-time computer system must react to stimuli from the controlled object (or  the  operator) within time intervals dictated by its environment. The  instant  at  which  a  result  must be produced  is  called  a '''deadline'''. If  a  result  has  utility even after the deadline  has  passed, the deadline is classified as a '''soft deadline''', otherwise  it  is  a '''firm deadline'''. When missing a firm  deadline  results in a system failure (e.g. airplane sensor and autopilot systems, spacecrafts and planetary rovers), the deadline is called '''hard deadline'''.
  
 +
Hence, in real-time systems guarantees must be given on the finishing of computations before a deadline. This affects the design of hardware (processors, caches, interconnects, peripherals, interrupts, ...) and software stack (operating system, scheduling, compiler guarantees). Key concepts are '''spatial and temporal isolation''' of components, and ''' architecture's predictability''' [2].
  
[1] Kopetz H., Real-Time Systems, 1996  
+
 
 +
[1] Kopetz H., ''Real-Time Systems'', 1996
 +
 
 +
[2] Rochange C., ''Time-Predictable Architectures'', 2013
  
 
==What we offer==
 
==What we offer==
  
Our work leverage both hardware and software interfaces:  
+
Our work leverages both hardware and software interfaces:  
  
- Hardware design - features addition and enhancement: adding new instructions to cores, specializing interconnects, ...
+
* '''Hardware design - features addition and enhancement''': adding new instructions to cores, specializing interconnects, making cores predictable ...
- Software design: modifying operating systems (Linux kernel, RTOS such as FreeRTOS, ...), drivers, tasks scheduling.
+
* '''Software design''': modifying operating systems (Linux kernel, RTOS such as FreeRTOS, ...), writing drivers, tasks scheduling.
  
 
<!--
 
<!--
 
However, in the context of real-time systems, where guarantees must be given on the finishing of computations before a deadline, the sharing of resources, such as the DRAM, become a problem, as contention for the shared resource between the CPU and accelerator lead to performance degradation. This in turn introduces the risk of unbounded delays that cause real-time applications to continue execution beyond their specified deadline. Because of this, such architectures are currently not used in real-time critical applications, such as self-driving cars, even though they promise an order of magnitude improvement in performance. In light of this, our work focuses on software solutions that can be deployed on COTS hardware that limit the memory interference within the system, such that real-time guarantees can be provided, enabling the use of these architectures in a real-time setting.
 
However, in the context of real-time systems, where guarantees must be given on the finishing of computations before a deadline, the sharing of resources, such as the DRAM, become a problem, as contention for the shared resource between the CPU and accelerator lead to performance degradation. This in turn introduces the risk of unbounded delays that cause real-time applications to continue execution beyond their specified deadline. Because of this, such architectures are currently not used in real-time critical applications, such as self-driving cars, even though they promise an order of magnitude improvement in performance. In light of this, our work focuses on software solutions that can be deployed on COTS hardware that limit the memory interference within the system, such that real-time guarantees can be provided, enabling the use of these architectures in a real-time setting.
 
-->
 
-->
 +
 
==Contact Information==
 
==Contact Information==
 
For more information on this work and discussions about projects, please contact [[User:Balasr|Robert Balas]] ([mailto:balasr@iis.ee.ethz.ch balasr@iis.ee.ethz.ch]) or [[User:Aottaviano|Alessandro Ottaviano]] ([mailto:aottaviano@iis.ee.ethz.ch aottaviano@iis.ee.ethz.ch])
 
For more information on this work and discussions about projects, please contact [[User:Balasr|Robert Balas]] ([mailto:balasr@iis.ee.ethz.ch balasr@iis.ee.ethz.ch]) or [[User:Aottaviano|Alessandro Ottaviano]] ([mailto:aottaviano@iis.ee.ethz.ch aottaviano@iis.ee.ethz.ch])

Latest revision as of 08:54, 10 January 2022

Real-Time Embedded Systems

A real-time computer system is a computer system in which the correctness of the system behavior depends not only on the logical results of the computations, but also on the physical instant at which these results are produced. In fact, a real-time system changes its state as a function of physical time.

It is reasonable to decompose a real-time system into a set of subsystems called clusters e.g., the controlled object (the controlled cluster), the real-time computer system (the computational cluster) and the human operator (the operator cluster).

High-level view of a Real-Time system [1]


A real-time computer system must react to stimuli from the controlled object (or the operator) within time intervals dictated by its environment. The instant at which a result must be produced is called a deadline. If a result has utility even after the deadline has passed, the deadline is classified as a soft deadline, otherwise it is a firm deadline. When missing a firm deadline results in a system failure (e.g. airplane sensor and autopilot systems, spacecrafts and planetary rovers), the deadline is called hard deadline.

Hence, in real-time systems guarantees must be given on the finishing of computations before a deadline. This affects the design of hardware (processors, caches, interconnects, peripherals, interrupts, ...) and software stack (operating system, scheduling, compiler guarantees). Key concepts are spatial and temporal isolation of components, and architecture's predictability [2].


[1] Kopetz H., Real-Time Systems, 1996

[2] Rochange C., Time-Predictable Architectures, 2013

What we offer

Our work leverages both hardware and software interfaces:

  • Hardware design - features addition and enhancement: adding new instructions to cores, specializing interconnects, making cores predictable ...
  • Software design: modifying operating systems (Linux kernel, RTOS such as FreeRTOS, ...), writing drivers, tasks scheduling.


Contact Information

For more information on this work and discussions about projects, please contact Robert Balas (balasr@iis.ee.ethz.ch) or Alessandro Ottaviano (aottaviano@iis.ee.ethz.ch)

Projects

Available Projects

Projects In Progress

Completed Projects