PPT - Institut - Universität Rostock

Werbung
Vorlesung
Echtzeitbetriebssysteme
VII.
Leistungsbewertung von
Echtzeitbetriebssystemen
Dr.-Ing. Frank Golatowski
Institut für Angewandte Mikroelektronik und Datentechnik
Fachbereich Elektrotechnik und Informationstechnik, Universität Rostock
Ziele der Vorlesung
Institut MD
Universität Rostock
Gliederung
Institut MD
Universität Rostock
Vergleichende Betrachtungen
(a)
(b)
(c)
(d)
Reaktionszeiten
Systemfunktionen
Entwicklungsumgebung
Netzwerkintegration
Institut MD
Universität Rostock
Echtzeit-Benchmarks
• feinkörnige Benchmarks
• applikationsorientierte Benchmarks
• simulationsbasierende Benchmarks
Institut MD
Universität Rostock
Benchmarks
• Rhealstone (Kar,Porter 1987)
– Rabindra Kar, K. Porter „Rhealstone - a real-time benchmarking
proposal”
Dr. Dobb’s Journal, February 1989
– Rabindra Kar, “Implementing the rhealstone real-time benchmark”
Dr. Dobb’s Journal, April 1990
– Furht et al. Real-Time Unix Systems Design and Applications,
Kluwer 1991
• Hartstone (Weidermann 1991)
• Ballista: COTS Software Robustness Testing
• 1997 EDN Embedded Microprocesor Benchmarking
Consortium (EEMBC)
www.eembc.com
Institut MD
Universität Rostock
Embedded Microprocessor Benchmark
• Die im April 1997 gegründete Organisation «EDN Embedded
Microprocessor Benchmarking Consortium» EEMBC
(www.eembc.org) hat es sich zur Aufgabe gemacht, trotz der
vielfältigen Prozessor-Landschaft eine Standard-BenchmarkSuite für Embedded Prozessoren zu entwickeln. Inzwischen
sind 28 Hersteller Mitglieder der EEMBC, unter ihnen alle
wichtigen und einflußreichen Hersteller von Mikrocontrollern
und Prozessoren. EEMBC hat sich auf die Fahnen geschrieben,
Benchmarks für Prozessoren und Controller von 8 bit bis 64 bit
zu entwickeln, inklusive Digitaler Signalprozessoren. Fünf
Arbeitsgruppen widmen sich den folgenden Test-Kategorien:
Institut MD
Universität Rostock
Embedded Microprocessor Benchmark
– Automotive/Industrial: Benchmarks für Steuerung und
Regelung wie FFT, Table Lookup oder Matrixoperationen.
– Consumer: Bildinterpolation, IrDa-Protokoll, JPEGKompression und -Dekompression.
– Networking: Route Lookup.
– Office Automation: Bezier-Kurven, String-Verarbeitung,
Bitmap-Manipulation.
– Telecommunications.
Institut MD
Universität Rostock
Embedded Microprocessor Benchmark
• Die Benchmarks befinden sich derzeit im Versionsstand 0.9.
Zum Telekommunikations-Benchmark gibt es noch keine
Informationen, während der Automotive-Benchmark mit 16
Testroutinen am weitesten gediehen ist. Die Testprogramme
sind in ANSI-C geschrieben, damit die Portabilität auf alle
Toolketten für Embedded Prozessoren und DSPs gewährleistet
ist. Getestet wird nicht der Prozessorkern alleine, sondern die
Gesamtheit aus Prozessor und Entwicklungssoftware.
• Ein Zeichen dafür, daß die EEMBC Benchmark Suite noch in
einem frühen Entwicklungsstadium ist, ist die Tatsache, daß
trotz der 28 EEMBC-Mitglieder nur Benchmark-Ergebnisse für
zehn Prozessoren existieren. Dabei stellt Infineon mit dem
C167CS den einzigen 16-bit-Prozessor. Alle anderen sind 32oder 64-bit-CPUs. Der Automotive-Benchmark wurde für fünf
Prozessoren veröffentlicht. Die Ergebnisse sind in der Tabelle
wiedergegeben.
Institut MD
Universität Rostock
EEMBC: Test-Kategorien:
– Automotive/Industrial: Benchmarks für Steuerung und
Regelung wie FFT, Table Lookup oder Matrixoperationen.
– Consumer: Bildinterpolation, IrDa-Protokoll, JPEGKompression und -Dekompression.
– Networking: Route Lookup.
– Office Automation: Bezier-Kurven, String-Verarbeitung,
Bitmap-Manipulation.
– Telecommunications.
Institut MD
Universität Rostock
Automotive
#1 - Table Lookup & Interpolation
#2 - Angle to Time Conversion
#3 - Pulse Width Modulation (PWM)
#4 - CAN Remote Data Request
#5 - Tooth to Spark
#6 - Road Speed Calculation
#7 - Infinite Impulse Response (IIR) Filter
#8 - Bit Manipulation
#9 - Basic Integer and Floating Point
#10 - Pointer Chasing
#11 - Matrix Arithmetic
#12 - Cache ‘Buster’
#13 - Inverse Discrete Cosine Transform (iDCT)
#14 - Fast Fourier Transform (FFT)
#15 - Inverse Fast Fourier Transform (iFFT)
#16 - Finite Impulse Response (FIR) Filter
Institut MD
Universität Rostock
Consumer
#1 - Compress JPEG
#2 - Decompress JPEG
#3 - High Pass Grey-scale Filter
#4 - RGB to CMYK Conversion
#5 - RGB to YIQ Conversion
Institut MD
Universität Rostock
Networking
#1 - Open Shortest Path First/Dijkstra
#2 - Patricia
#3 - Packet Flow
Institut MD
Universität Rostock
Office Automation
#1 - Bezier Curve Calculation
#2 - Dithering
#3 - Image Rotation
#4 - Text Processing
Institut MD
Universität Rostock
Telecommunication
#1 - Autocorrelation
#2 - Bit Allocation
#3 - Inverse Fast Fourier Transform (iFFT)
#4 - Fast Fourier Transform (FFT)
#5 - Viterbi Decoder
#6 - Convolutional Encoder
Institut MD
Universität Rostock
Prozessor
AMD K6-2
ARM 920T
Infineon SAB
C167CS
Motorola PowerPC
555
NEC V832
Beschreibung
450 MHz, 100 MHzfront side
bus
160 MHz, 32 bit RISC
CPU
25 MHz, 16 bit CPU
40 MHz, 32 bit RISC
CPU
143 MHz 32 bit RISC
CPU
Compiler
Microsoft Visual C/C++
ARM Develop-ment Kit
2.50
Keil C166 Compiler
v3.12
Diab Data 4.3p Rev6
Green Hills Multi
Version 1.8.1
Table Lookup
319264,4
43478,3
1890,4
14767
31559,1
Angle-to-time
715563,5
73529,4
9652,5
36273,2
17115
Pulse-width Modulation
1347708,9
344827,6
32679,7
59740,2
147146,2
CAN
2812148,5
438596,5
45871,6
104860,8
204334,8
Tooth-to-Spark
125552,4
15151,5
761
4861,4
10482,5
Road Speed
2180444,7
454545,4
44247,8
66343,7
199601,7
IIR
96374,4
9708,7
2481,4
8380
8703,4
Bit-Manipulation
11859,6
2702,7
136,9
340,8
876,6
Int & FP
384615,4
6153,9
862,8
13294,5
2179,6
Pointer-Chasing
23738,1
3361,3
287,7
593,7
1619,4
Matrix Math
1375,4
-
3,6
65,7
7,5
CacheBuster
982318,3
468750
28571,4
78389,5
175682
iDCT
15220,7
2083,3
57,7
470,6
976,1
FFT
627,4
125
10,3
34,5
46,8
iFFT
682,7
9,1
37,2
49,9
FIR
46581
1919,4
4347,8
11605,7
Institut MD
Universität Rostock
21276,6
Embedded Microprocessor Benchmark
Rhealstone
1. Task switching time tTS
2. Interrupt latency time tIL
3. Preemption Time tP
4. Semaphore shuffling time tSS
5. Deadlock breaking time tDB
6. Datagram throughput [kBytes/s]
Rhealstone- Wert
R = f1 + f2 + f3 + f4 + f5 + f6
Gewichteter Rhealstone- Wert
RW = c1f1 + c2f2 + c3f3 + c4f4 + c5f5 + c6f6
Institut MD
Universität Rostock
Task Switching Time
Taskumschaltzeit
n
t
Task switch time =
Task number
i 1
n
n
Task 3
Task 2
Task1
Time
t1
Institut MD
Universität Rostock
t2
t3
Bestimmung der Taskumschaltzeit
Task 1
PAUSE
Task 2
ready
wait for 1ms
loops for > 1ms PAUSE
t1
Institut MD
Universität Rostock
loops for > 1ms PAUSE
ready
wait for 1ms
t2
ready
t3
Preemption Time
n
t
Preemption time =
Task number
i 1
n
n
Task 3
(high)
Task 2
(medium)
Task1
(low)
Time
t1
Institut MD
Universität Rostock
t2
Bestimmung der Preemption Time
Task 1
(high priority)
Task 2
(low priority)
PAUSE
loops for > 1ms
ready
t1
Institut MD
Universität Rostock
PAUSE
wait for 1ms
wait for 1ms
loops for > 1ms
ready
t2
t3
Semaphore shuffling time
n
 (t
Semaphor shuffling time =
i1
2 n 1
 t2 n )
n
Task number
Semaphor
Ownership
Task 1
Task 1
Task 2
Task 2
Task 1
Time
t1
t2
= task requests semaphor
= task relinquishes semapho
Institut MD
Universität Rostock
Semaphore shuffling time
Task 1
Task 2
loops for > 1ms
PAUSE wait for 1ms
ready
ready
loops for > 1ms
PAUSE wait for 1ms
loops for > 1ms
loops for > 1ms
PAUSE wait for 1ms
ready
ready
loops for > 1ms
loops for > 1ms
PAUSE
Task 1
Semaphor
Ownership
Task 2
Task 1
loops for > 1mstsf
Task 2
ready
PAUSE wait for 1ms ready loops for > 1ms
rsf
loops for > 1mstsf
Universität Rostock
loops for > 1ms
PAUSE wait for 1ms
loops for > 1ms
PAUSE wait for 1ms
wait
t1
Institut MD
ready
t2
ready
rsf
ready
loops for > 1ms
PAUSE
Interrupt latency time
Interrupt handler
Task
Time
t
Note: CPU receives interrupt at time "t"
t1
Interrupt latency time = t1
Institut MD
Universität Rostock
Deadlock
Task number
Semaphor
Ownerchip 2
Semaphor
Ownerchip 1
Task 2
Task 1
Task 2
Task 1
Deadlock
Time
= task requests semaphor 1
= task requests semaphor 2
Institut MD
Universität Rostock
Deadlock breaking time
Task number
Semaphor
Ownerchip
Task 1
Task 2
Task 3
(high priority)
Task 2
(medium priority)
Task 1
(low priority)
Tb
Time
= task requests semaphor
= task relinquishes semaphor
Institut MD
Universität Rostock
Deadlock breaking time II
Critical Ressource
Owner
Task 1
Task 3
Task3
(high priority)
Task2
(medium priority)
?
Task1
(low priority)
t1
t2
Time
= task requests semaphor
Deadlock breaking time = t1 + t2
= task relinquishes semaphor
= task preemption
Institut MD
Universität Rostock
Bestimmung der
Deadlock breaking time
Semaphor
Ownership
Task 1
Task 2
Task 1
(low priority)
Task 2
(medium)
Task 3
(high)
tsf
ready
ready
PAUSE
Task 1
Priority
loops for > 1/4msPAUSE
wait for 1ms
loops for > 1ms ready
wait for 1ms
Universität Rostock
ready
ready
tsf
rsf
wait for sem_t
inherent priority
priority of task 3
t1
Institut MD
rest of loops rsf
t2
Datagram throughput
Task number
Task 2
(message)
Task1
Time
t
Institut MD
Universität Rostock
Rhealstone-Benchmark:
Meßwerte
Interrupt
Latency
Time
Task
Switching
Time
Preemption
Time
Intertask
Message
Time
Semaphore
Shuffling Time
Datagram
throughput
RMOS3-PC1
10,1
4,0
4,1
5,8
4,4
6,2
RMOS3 für
Windows
31,1
23,0
23,4
32,0
23,0
29,0
Lynx
17,6
27,0
105,0
337,0
113,5
n.e.
n.e
137,0
480,0
755,6
450,0
n.e.
Unix SV Rel. 4
(SORIX)
Institut MD
Universität Rostock
Rhealstone-Benchmark:
Meßwerte
800
RMOS3-PC1
700
RMOS3 für Windows
Lynx
Unix SV Rel. 4 (SORIX)
600
500
400
300
200
100
0
Interrupt
Task Switch
Latency Time
Time
Institut MD
Universität Rostock
Preemption
Time
Intertask
Message
Latency Time
Semaphor
Shuffling
Time
Deadlock
Breaking
Time
Herunterladen