|
|
xi | |
|
|
xv | |
Foreword |
|
xvii | |
Preface |
|
xix | |
Abstract |
|
xxi | |
|
|
1 | (8) |
|
Embedded Real-Time Systems |
|
|
1 | (2) |
|
Software Performance Estimation |
|
|
3 | (3) |
|
|
6 | (1) |
|
Codesign of Embedded Real-Time Systems |
|
|
6 | (1) |
|
Global System Representation |
|
|
6 | (1) |
|
|
6 | (1) |
|
Summary and Problem Identification |
|
|
7 | (1) |
|
|
7 | (2) |
|
Software Running Time Analysis |
|
|
9 | (22) |
|
General Requirements and Background |
|
|
9 | (3) |
|
|
9 | (1) |
|
Influences on Process Running Time |
|
|
10 | (1) |
|
Input Data and Parameters |
|
|
11 | (1) |
|
Input Data Dependent Control Flow |
|
|
11 | (1) |
|
Input Data Dependent Instruction Execution |
|
|
12 | (1) |
|
Program Simulation and Test Patterns |
|
|
12 | (1) |
|
|
12 | (3) |
|
|
13 | (1) |
|
Annotations Using a Timing Analysis Language |
|
|
13 | (1) |
|
Source Level Timing Scheme |
|
|
14 | (1) |
|
Path Annotation Using Regular Expressions |
|
|
15 | (1) |
|
Implicit Path Enumeration and Cost Model |
|
|
15 | (3) |
|
|
15 | (1) |
|
Structural Constraints and Solution |
|
|
16 | (1) |
|
Overlapping Basic Block Execution |
|
|
17 | (1) |
|
Limitations and Possible Extensions |
|
|
18 | (1) |
|
|
18 | (5) |
|
|
18 | (1) |
|
|
19 | (1) |
|
|
20 | (1) |
|
|
20 | (1) |
|
|
21 | (1) |
|
Symbolic Extension to Simulators |
|
|
21 | (1) |
|
Source Level Timing Annotations |
|
|
22 | (1) |
|
|
22 | (1) |
|
Spark Proof and Timing System |
|
|
23 | (1) |
|
The SYMTA Approach to Path Analysis |
|
|
23 | (8) |
|
|
23 | (1) |
|
|
24 | (1) |
|
Informal Path Classification |
|
|
25 | (1) |
|
SFP Identification and Path Clustering |
|
|
26 | (3) |
|
Calculation of Global Cost |
|
|
29 | (1) |
|
|
29 | (2) |
|
A Formal Approach to SYMTA |
|
|
31 | (20) |
|
|
31 | (1) |
|
Classification of Program Segments |
|
|
32 | (3) |
|
|
35 | (1) |
|
Validation of the Approach |
|
|
36 | (4) |
|
|
36 | (2) |
|
|
38 | (1) |
|
Functional and Structural Constraints |
|
|
39 | (1) |
|
|
39 | (1) |
|
|
40 | (1) |
|
|
40 | (3) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
43 | (1) |
|
Hierarchical Control Flow Graph |
|
|
43 | (1) |
|
Context Dependent Execution |
|
|
44 | (7) |
|
|
46 | (1) |
|
Context Dependent Execution Cost |
|
|
46 | (2) |
|
Context Dependency in Array Elements |
|
|
48 | (1) |
|
Example: Integration of Context Dependent Paths |
|
|
48 | (2) |
|
|
50 | (1) |
|
Formal Cache Analysis in SYMTA |
|
|
51 | (32) |
|
Motivation and Background |
|
|
51 | (1) |
|
|
51 | (3) |
|
Cache and Memory Architecture |
|
|
52 | (1) |
|
Instruction and Data Cache |
|
|
52 | (1) |
|
|
53 | (1) |
|
Previous Work on Cache Analysis |
|
|
54 | (11) |
|
Trace Based Cache Simulation |
|
|
54 | (1) |
|
|
55 | (1) |
|
Cache State Transition Graph |
|
|
55 | (5) |
|
Clustering in the Cache Conflict Graph |
|
|
60 | (1) |
|
Use-/Define Chains for Data Access Addresses |
|
|
61 | (1) |
|
Static Categorization of Cache Accesses |
|
|
61 | (2) |
|
Pipeline and Cache States |
|
|
63 | (1) |
|
|
63 | (2) |
|
Straight-Line Code Programs |
|
|
65 | (1) |
|
Local Program Segment Simulation |
|
|
65 | (3) |
|
Program Properties Found by SYMTA |
|
|
65 | (1) |
|
Access Addresses and Data Caches |
|
|
66 | (1) |
|
|
66 | (1) |
|
Program Segment Cache Evaluation |
|
|
67 | (1) |
|
Data Flow Analysis for Cache Sets |
|
|
68 | (6) |
|
Cache Set Content Prediction |
|
|
69 | (1) |
|
Hybrid Prediction Approach |
|
|
70 | (1) |
|
Evaluation of Flow Analysis Results |
|
|
71 | (1) |
|
Process-Level Cost Calculation |
|
|
72 | (1) |
|
Cache Modeling and Representation |
|
|
73 | (1) |
|
Application of Cache Constraints |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
75 | (1) |
|
Examples for Cache Analysis |
|
|
76 | (6) |
|
Direct Mapped Cache Analysis |
|
|
76 | (2) |
|
Set Associative Cache Analysis |
|
|
78 | (4) |
|
|
82 | (1) |
|
Program Segment Cost Analysis |
|
|
83 | (20) |
|
|
83 | (6) |
|
Previous Work in Processor Simulation |
|
|
83 | (1) |
|
Instruction Cost Addition ICA |
|
|
84 | (1) |
|
|
85 | (1) |
|
Program Segment Simulation PSS |
|
|
85 | (2) |
|
|
87 | (1) |
|
|
88 | (1) |
|
Segment-Wise Simulation Methodology |
|
|
89 | (3) |
|
Simulation of the Complete Program Code |
|
|
89 | (1) |
|
Simulation of Isolated Program Segments |
|
|
89 | (1) |
|
Open Interface to Code Instrumentation |
|
|
90 | (2) |
|
Modeling Shared Resources |
|
|
92 | (3) |
|
|
92 | (1) |
|
|
93 | (1) |
|
Behavioral Intervals for Process Sequences |
|
|
94 | (1) |
|
|
94 | (1) |
|
Execution Cost Measurement |
|
|
95 | (8) |
|
Motivation and Problem Identification |
|
|
96 | (1) |
|
Previous Work on Measurement |
|
|
96 | (2) |
|
Segment-Wise Timing and Power Measurement |
|
|
98 | (1) |
|
Compact Timed Trace Acquisition |
|
|
99 | (1) |
|
SPARClite Timing and Power Measurement |
|
|
100 | (2) |
|
|
102 | (1) |
|
|
103 | (26) |
|
Single Feasible Path Analysis |
|
|
103 | (1) |
|
Context Dependent Path Analysis |
|
|
104 | (1) |
|
Architecture Modeling by Simulation |
|
|
105 | (1) |
|
Impact of Trigger Point Insertion |
|
|
105 | (2) |
|
|
107 | (1) |
|
Improvements to Basic Block Based Analysis |
|
|
108 | (10) |
|
SFP Analysis Without Functional Constraints |
|
|
108 | (4) |
|
|
112 | (1) |
|
SFP Analysis With Functional Constraints |
|
|
112 | (1) |
|
|
113 | (1) |
|
Exploitation of Context Dependency |
|
|
114 | (2) |
|
|
116 | (1) |
|
|
117 | (1) |
|
Case Study: Filter on Packet Data |
|
|
118 | (4) |
|
|
122 | (7) |
|
Instruction Energy Consumption Intervals |
|
|
123 | (1) |
|
Measurement of Instruction Sequences |
|
|
124 | (2) |
|
Instruction Cost Addition Evaluation |
|
|
126 | (1) |
|
Process-Level Energy Intervals |
|
|
126 | (1) |
|
|
127 | (2) |
|
|
129 | (2) |
|
|
129 | (1) |
|
|
130 | (1) |
Appendices |
|
131 | (44) |
|
|
131 | (1) |
|
|
131 | (1) |
|
|
132 | (1) |
|
A.3 SYMTA Designer Interface |
|
|
133 | (1) |
|
A.4 Path Analysis Software |
|
|
134 | (1) |
|
|
134 | (1) |
|
A.4.2 Process Mode Annotation |
|
|
134 | (1) |
|
A.4.3 Path Identification |
|
|
134 | (1) |
|
|
134 | (1) |
|
A.5 Cache Analysis Software |
|
|
135 | (2) |
|
|
135 | (1) |
|
A.5.2 Set Definition Propagation |
|
|
135 | (1) |
|
|
136 | (1) |
|
A.6 Architecture Modeling |
|
|
137 | (3) |
|
A.6.1 PSS: Strong ARM Simulator |
|
|
137 | (1) |
|
A.6.2 Hardware Interfaces |
|
|
138 | (1) |
|
A.6.3 Communication Components |
|
|
138 | (1) |
|
|
138 | (2) |
|
|
140 | (1) |
|
A.6.6 ICA: Data Book Implementation |
|
|
140 | (1) |
|
A.7 Software Power Analysis |
|
|
140 | (8) |
|
|
140 | (2) |
|
A.7.2 Instruction-Wise Power Analysis |
|
|
142 | (1) |
|
A.7.3 Example: SPARClite Power Measurement |
|
|
142 | (1) |
|
A.7.4 Further Implementation Details |
|
|
143 | (5) |
|
A.7.5 ICA for SPARClite Power Consumption |
|
|
148 | (1) |
|
A.8 Design Flow Integration in MEDIA |
|
|
148 | (3) |
|
A.8.1 System Property Intervals |
|
|
149 | (2) |
|
Generation of Experimental Results |
|
|
151 | (1) |
|
|
151 | (1) |
|
B.1.1 Symbolic Simulation |
|
|
151 | (1) |
|
|
151 | (1) |
|
B.2 Architecture Modeling |
|
|
151 | (7) |
|
B.2.1 Strong ARM Simulation |
|
|
151 | (2) |
|
B.2.2 Strong ARM Simulation Case Studies |
|
|
153 | (1) |
|
|
154 | (3) |
|
B.2.4 Measurement Case Study: Image Processing |
|
|
157 | (1) |
|
B.3 Intermediate Formats: Bubble Sort |
|
|
158 | (3) |
|
|
158 | (1) |
|
B.3.2 Symbolic Expressions |
|
|
159 | (1) |
|
|
159 | (2) |
|
|
161 | (1) |
|
B.4 Analysis Improvements in Previous Work |
|
|
161 | (2) |
|
B.5 Graphical Behavioral Interval Representation |
|
|
163 | (6) |
|
|
169 | (2) |
|
|
171 | (2) |
|
|
173 | (2) |
Bibliography |
|
175 | (12) |
Index |
|
187 | |