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 = i1 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