Zusammenfassung - Informatik - FB3 - Uni Bremen

Transcription

Zusammenfassung - Informatik - FB3 - Uni Bremen
Zusammenfassung
H S C D i
Hw-Sw-Co-Design
WS 2008/09
Rolf Drechsler
Informatik, Universität Bremen
Nach: Jürgen Teich, Universität Erlangen
Hw-Sw-CO-Design
embedded systems
Spezialprozessoren
Prozessor, Compiler, C d
Codegenerierung
i
Systementwurf
Systemsynthese, Partitionierung
Inhalt der Vorlesung
9 • Zielarchitekturen für Hw/Sw‐Systeme
9
• Systementwurf Systementwurf ‐ Modelle und Methoden
Modelle und Methoden
9 • Compiler und Codegenerierung
ii i
9 • Partitionierung
9 • Schätzung der Entwurfsqualität
9
• Weiterführende Codesign‐Themen
– Interface‐ und Kommunikationssynthese
y
– Co‐Simulation, Co‐Emulation und Rapid Prototyping
Zielarchitekturen
General-purpose
G
l
processors
• CISC (complex instruction set)
• RISC (reduced instruction set)
Performance
• Microcontroller
• DSPs ((digital
g
signal
g
processors)
p
)
• Application-specific instruction set
processors (ASIPs)
Programmable hardware
• FPGA (field
(field-programmable
programmable gate arrays)
Application-specific
Application
specific integrated circuits
(ASICs)
Flexibility
Power
P
consumption
Systemaufbau
• System‐on‐a‐Chip (SoC)
• Board, multi‐board Systeme
system bus
Codegenerierung
Syntaxbaum, DAG
3-Adress Code
ExpressionDAG
(Heuristik)
Expressiontree DAG
(optimaler Code)
Registervergabe
- global
- Schleifenzähler
- Graphfärbung
Zielcode
G dbl k CFG
Grundblock,
Maschinenmodell “RISC”
einfacher
i f h
Codegenerator
M
Maschinenmodell
hi
d ll “CISC”
Codegenerierung/optimierung
Codeoptimierung
Codegenerierung
für Spezialprozessoren
peephole
lokal
global
retargetable Compiler
Codekompression
Adressrecheneinheiten,
Adresszuweisung
Prozessormodelle
Baumübersetzungsschemata
heterogene
g
Registersätze,
g
,
irreguläre Datenpfade
Systementwurf
Spezifikation
Schätzung
Systemsynthese
SW-Synthese
Maschinencode
I/F-Synthese
HW-Synthese
Netzlisten
Systempartitionierung
Hw/Sw Partitionierung
allgemeine Verfahren
ILP
greedy
g
y
heuristisch
exakt
k
konstruktiv
ki
Sw orientiert
Sw-orientiert
i
iterativ
i
Enumeration
Hw-orientiert
Kernighan-Lin
Random mapping
pp g
Hierarchical clustering
Simulated Annealing
Evolutionäre Algorithmen
Schätzung
Qualitätsmaße
Parameter
Exaktheit
Performance
Treue
Taktperiode,
Latenz,
Ausführungszeit,
Bitrate
Schätzmethoden
Hardware
max.Operatordelay,
p
y
Clockschlupf,
FSMD Modell
Software
WCET,
Programmpfadanalyse,
Modellierung der Zielarchitektur
Kosten
Chipfläche,
Speicher
Interfacesynthese
Systematisierung
Modellierung
SW-Sicht
Modell
HW-Sicht
Effizienz,
Interoperabilität,
Vertrauen
Verfeinerung
Datenfluss,
FU,
Task
Standards
SLD (System-Level
(System Level Data
Data-Types)
Types)
SLIF
Verhaltens-Dokumentation,,
Binden von Kommunikation
an Implementation
OCB
Bus-Wrapper,
Virtuell Component Interface,
Emulation und Rapid Prototyping
Emulation
Rapid Prototyping
System-SW
FPGA-Typ
System
Module
Prozessoren
ASICS
FPGA
Memory
Beipielsysteme
Aptix
p
Spyder
py
Raptor
p
Verbindung
FPGA,
FPICS
Abstraktionsebenen
Verhalten
System
Modul
Block
SW
Architektur
HW
Logik
Struktur
Architektursynthese
1
*
2
3
*
4
-
*
5
-
*
6
*
8
+
10
*
7
+
9
<
11
RTL Struktur: Multiplexbasiert
Rechenwerk
St
Steuerwerk
k
Registerdatei
MUX
*
MUX
MUX
ALU ALU
MUX
FSM
RTL Struktur: Busorientiert
Rechenwerk
St
Steuerwerk
k
Registerdatei
Operandenbus
*
ALU ALU
Ergebnisbus
FSM
reset
Zustandsautomat
1,2,10
x0
reset
x1
reset
x3
5,9
Zeit 0
* 2
* 1
Zeit 1
* 6
* 3
+
Zeit 2
-
4
* 7
*
8
Zeit 3
5
Zeit 4
-
+ 9
10
< 11
reset
3,6,11
reset
x2
4,7,8
Beispiel Armbanduhr
TIMER
ll/change_item
24h
lr
ul
AM, PM
l
lr
TIME
UPDAT
E
ul
lr/update
ur/light
ll
lr/start_stop
STOP
WATC
H
ll
ALARM
lr/update
ur
ur
lr
lr
ll
ALARM
update
ll/change_item
ul
CHIME
ul
ALAR
M
UPDAT
E
lr/update
ur/stop_bell
Strukturorientierte Modelle
CODEC
CM
FC
BC
GC
BM
PM
PM
System
R1
R2
&
1D Q
ALU
Architektur (RTL)
C1
Logik
Modulebene
USER
Zielhard are
Zielhardware
Software
Source Code
Simulator
Debugger
Binary
Bi
Code
OS
Compiler
FPGA
Flash
Debugger
Entwicklungsplattform
microprocessor
RAM
Betriebsystem
• Betriebsystem
– Dient der dynamischen Verwaltung der Ressourcen eines Rechners.
• Speicherverwaltung
• Prozessverwaltung
• Verwaltung der Ein‐/Ausgabe (Gerätetreiber)
• Sicherheits‐ und Schutzfunktionen
– In eingebetteten Systemen ohne Dateiverwaltung
I i b tt t S t
h D t i
lt
– Sicherstellen der Echtzeitfähigkeit des Betriebsystems
• bei einfachen Laufzeitsystemen über Interrupt des Prozessors
bei einfachen Laufzeitsystemen über Interrupt des Prozessors
• Echtzeitbetriebsystem bei größeren Systemen
Echtzeitbetriebsysteme
(engl. real‐time operating system (RTOS))
Klassifikation:
– Echtzeitbetriebssystemkerne (engl. real‐time kernels), z.B. VRTX, RTEMS
– Kommerzielle Betriebssysteme mit Echtzeiterweiterungen: Hierzu gehören beispielsweise Erweiterungen von UNIX, RT‐Linux.
– Systeme aus der Forschung
Schnittstellen
Anwendung
Betriebssystem
Device Driver
i
i
Hardware
Aufgaben eines Gerätetreibers:
– Initialisierung
• beim Betriebssystem anmelden
• Unterbechungsbehandlung init.
• Speicher allozieren
S i h
ll i
• Hardware initialisieren
– Datenzugriff
• Datenaustausch zwischen Anwendung und Hardware (z.B. memory mapped, DMA)
• Protokollverarbeitung
– Unterbrechungsbehandlung
Schnittstellen
• Softwaregenerierung ist Teil heutiger Entwicklungsumgebungen, z.B. Aisys DriveWay, Stenkil MakeApp Intel ApB idler Motorola MCUnit CoWare
MakeApp, Intel ApBuidler, Motorola MCUnit, CoWare, …
– Device‐Eigenschaften sind überlicherweise in Datenbanken gespeichert auf denen die Softwaregenerierung aufsetzt
gespeichert auf denen die Softwaregenerierung aufsetzt.
– Spezifische Treiber zwischen Hardware‐ und zwischen Hardware
und
Hardware
Software
Softwarekomponenten werden synthetisiert.
Device
Gl Logic
Glue
L i Driver
Prozessverwaltung
• Wesentliche Aufgaben der Prozessverwaltung:
– Ausführung quasiparalleler Aufgaben auf einem Prozessor.
– Gemeinsame Nutzung von Ressourcen.
– Einhaltung von Deadlines, Minimierung von Wartezeiten, Fairness bei der Ausführung.
– Aufgaben können eventuell (dynamisch) während des Programmablaufs generiert werden.
Betriebssysteme
• Minimale Prozesszustände:
terminate
TIMER
wait
wait
run
end_cycle
dispatch
preemption
signal
activate
readyy
resume
idle
Grundbegriffe
• Echtzeitsysteme
– Hart: Ein Task heißt hart, falls eine Abarbeitung nach seiner Deadline katastrophale Auswirkungen auf das Gesamtsystem hat.
– Weich:
h Ein Task heißt weich, falls das Verpassen seiner kh ß
h f ll d
Deadline die Leistungsfähigkeit des Gesamtsystems herabsetzt.
herabsetzt
– Ein Ablaufplan heißt zulässig, falls alle Tasks innerhalb ihrer Zeitbedingungen abgearbeitet werden.
Zeitbedingungen abgearbeitet werden.
– Eine Menge von Tasks heißt ablaufbar, falls ein zulässiger p
Ablaufplan existiert.
Zeitbedingungen
–
–
–
–
–
–
Tasks: J{J1, J2, ...}
Ankunftszeit ai oder r
Ankunftszeit a
oder ri: Task ist bereit zur Ausführung
: Task ist bereit zur Ausführung
Berechnungszeit Ci : Zeit zur Ausführung ohne Unterbrechung (WCET)
Deadline di : Task muss vorher ausgeführt sein, d
Deadline d
: Task muss vorher ausgeführt sein di ≥ ri + C
+ Ci
Startzeit si: Ausführung startet
Endzeit fi: Abarbeitung des Tasks ist beendet
Endzeit f
: Abarbeitung des Tasks ist beendet
Trends
> 500k transistors
1 - 0.8 μ
33 mHz
1989
2+M transistors
0.8 - 0.5 μ
75 - 100 mHz
1993
5+M transistors
0.5 - 0.35 μ
133 - 167 mHz
1995
22+M transistors
0.25 - 0.18 μ
500 - 600 mHz
1999
• Eingebettete CPU‐Cores werden kleiner
• Hohe Rechenleistung durch höhere Taktrate, tiefere Pipelines, Verzweigungsvorhersage,... • Tiefere Integration von CPU‐Cores mit
–
–
–
–
programmierbarer Hardware
b
d
(analogen) Schnittstellen
digitalen Signalprozessoren
digitalen Signalprozessoren
Speicher
Trends
• Kommunikation spielt in eingebetteten Systemen eine zunehmende Rolle
– verteilte Objekte DCOM CORBA, t ilt Obj kt DCOM CORBA
– Firewire, – Bluetooth, Bl
h
– USB, – IrDA, – Jini, – TCP/IP,
–…