Zusammenfassung

Transcription

Zusammenfassung
Zusammenfassung
Hw-Sw-Co-Design
Hw-Sw-CO-Design
embedded systems
Spezialprozessoren
Prozessor, Compiler,
Codegenerierung
Systementwurf
Systemsynthese,
Partitionierung
1
Inhalt der Vorlesung
9 ¾ Zielarchitekturen für Hw/Sw-Systeme
9
y
- Modelle und Methoden
¾ Systementwurf
9 ¾ Compiler und Codegenerierung
9 ¾ Partitionierung
9 ¾ Schätzung der Entwurfsqualität
9
¾ Weiterführende Codesign-Themen
Codesign Themen
– Interface- und Kommunikationssynthese
– Co-Simulation, Co-Emulation und Rapid Prototyping
Zielarchitekturen
General-purpose processors
• CISC (complex instruction set)
• RISC (reduced instruction set)
Performance
• Microcontroller
• DSPs (digital signal processors)
• Application-specific instruction set
processors (ASIPs)
Programmable
g
hardware
Flexibility
Power
consumption
• FPGA (field-programmable gate arrays)
Application-specific integrated circuits
(ASICs)
2
Systemaufbau
¾ System-on-a-Chip (SoC)
¾ Board, multi-board
multi board Systeme
system bus
Codegenerierung
Syntaxbaum, DAG
3-Adress Code
ExpressionDAG
(Heuristik)
Expressiontree DAG
(optimaler Code)
Registervergabe
- global
- Schleifenzähler
- Graphfärbung
Grundblock, CFG
Maschinenmodell “RISC”
einfacher
Codegenerator
Maschinenmodell “CISC”
Zielcode
3
Codegenerierung/optimierung
Codeoptimierung
peephole
lokal
Codegenerierung
für Spezialprozessoren
p
p
global
Codekompression
Adressrecheneinheiten,
Adresszuweisung
retargetable Compiler
heterogene Registersätze,
irreguläre Datenpfade
Prozessormodelle
Baumübersetzungsschemata
Systementwurf
Spezifikation
Systemsynthese
Schätzung
I/F-Synthese
y
HW-Synthese
y
SW-Synthese
y
Maschinencode
Netzlisten
4
Systempartitionierung
allgemeine Verfahren
Hw/Sw Partitionierung
heuristisch
exakt
ILP
konstruktiv
greedy
Sw-orientiert
iterativ
Enumeration
Hw-orientiert
Kernighan-Lin
Random mapping
Simulated Annealing
Hierarchical clustering
Evolutionäre Algorithmen
Schätzung
Qualitätsmaße
Parameter
Exaktheit
Performance
Treue
Taktperiode,
Latenz,
Ausführungszeit,
Bitrate
Schätzmethoden
Hardware
max.Operatordelay,
Clockschlupf,
FSMD Modell
Kosten
Chipfläche,
Speicher
Software
WCET,
Programmpfadanalyse,
Modellierung der Zielarchitektur
5
Interfacesynthese
Systematisierung
Modellierung
SW-Sicht
Modell
HW-Sicht
Verfeinerung
Effizienz,
Interoperabilität,
Vertrauen
Datenfluss,
FU,
Task
Standards
SLD (System-Level Data-Types)
OCB
SLIF
Verhaltens-Dokumentation,
Binden von Kommunikation
an Implementation
Bus-Wrapper,
Virtuell Component Interface,
Emulation und Rapid Prototyping
Emulation
Rapid Prototyping
System-SW
FPGA-Typ
System
Module
Prozessoren
ASICS
FPGA
M
Memory
Beipielsysteme
Aptix
Spyder
Verbindung
FPGA,
FPICS
Raptor
6
Abstraktionsebenen
Verhalten
System
Modul
Bl k
Block
Architektur
HW
SW
L ik
Logik
Struktur
Architektursynthese
1
*
2
3
*
4
-
*
5
*
6
*
8
+
10
*
7
+
9
<
11
-
7
RTL Struktur: Multiplexbasiert
Rechenwerk
Steuerwerk
Registerdatei
MUX
*
MUX
MUX
FSM
ALU
U ALU
U
MUX
RTL Struktur: Busorientiert
Rechenwerk
Steuerwerk
Registerdatei
Operandenbus
*
FSM
ALU
U ALU
U
Ergebnisbus
8
Zustandsautomat
Zeit 0
*
1
*
2
Zeit 1
* 3
* 6
- 4
* 7
+
Zeit 2
8
*
10
< 11
Zeit 3
5
+ 9
-
Zeit 4
reset
1,2,10
x0
reset
x1
reset
x3
5,9
reset
3,6,11
reset
x2
4,7,8
Beispiel Armbanduhr
TIMER
ll/change_item
24h
ul
lr
AM, PM
TIME
UPDATE
l
lr
ul
lr/update
ur/light
ll
lr/start_stop
STOP
WATCH
ll
ALARM
lr/update
ur
ur
lr
lr
ll
ALARM
update
ur/stopp_bell
ll/change_item
ul
CHIME
ul
ALARM
UPDATE
lr/update
9
Strukturorientierte Modelle
CODEC
CM
FC
BC
GC
BM
PM
PM
System
R1
R2
&
1D Q
C1
ALU
Logik
Architektur (RTL)
Modulebene
USER
Software
Source Code
Zi lh d
Zielhardware
Simulator
Debugger
Binary
Code
OS
Compiler
FPGA
Flash
Debugger
microprocessor
RAM
Entwicklungsplattform
10
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
– Sicherstellen der Echtzeitfähigkeit des Betriebsystems
• bei einfachen Laufzeitsystemen über Interrupt des
Prozessors
• Echtzeitbetriebsystem bei größeren Systemen
Echtzeitbetriebsysteme
(engl. real-time operating system (RTOS))
Klassifikation:
– E
Echtzeitbetriebssystemkerne
ht itb t i b
t k
((engl.l real-time
l ti
kkernels),
l ) z.B.
B
VRTX, RTEMS
– Kommerzielle Betriebssysteme mit Echtzeiterweiterungen:
Hierzu gehören beispielsweise Erweiterungen von UNIX,
RT-Linux.
– Systeme aus der Forschung
11
Schnittstellen
Aufgaben eines Gerätetreibers:
Anwendung
Betriebssystem
Device Driver
– Initialisierung
• beim Betriebssystem anmelden
• Unterbechungsbehandlung init.
• Speicher allozieren
• Hardware initialisieren
– Datenzugriff
• Datenaustausch zwischen
Anwendung und Hardware (z.B.
memory mapped, DMA)
• Protokollverarbeitung
– Unterbrechungsbehandlung
Hardware
Schnittstellen
¾ Softwaregenerierung ist Teil heutiger
Entwicklungsumgebungen, z.B. Aisys
DriveWay Stenkil MakeApp
DriveWay,
MakeApp, Intel ApBuidler
ApBuidler,
Motorola MCUnit, CoWare, …
– Device-Eigenschaften sind überlicherweise in Datenbanken
gespeichert auf denen die Softwaregenerierung aufsetzt.
– Spezifische Treiber
zwischen Hardware- und
Softwarekomponenten
Hardware
Software
werden synthetisiert.
Device
Glue Logic Driver
12
Prozessverwaltung
¾ Wesentliche Aufgaben der
Prozessverwaltung:
– Ausführung quasiparalleler Aufgaben auf einem Prozessor.
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
i
run
end_cycle
dispatch
preemption
signal
activate
ready
idle
resume
13
Grundbegriffe
¾ Echtzeitsysteme
– Hart: Ein Task heißt hart, falls eine Abarbeitung nach seiner
Deadline katastrophale Auswirkungen auf das
Gesamtsystem hat.
– Weich: Ein Task heißt weich, falls das Verpassen seiner
Deadline die Leistungsfähigkeit des Gesamtsystems
herabsetzt.
– Ein Ablaufplan heißt zulässig, falls alle Tasks innerhalb ihrer
Zeitbedingungen abgearbeitet werden.
– Eine Menge
g von Tasks heißt ablaufbar,, falls ein zulässiger
g
Ablaufplan existiert.
Zeitbedingungen
– Tasks: J{J1, J2, ...}
– Ankunftszeit ai oder ri: Task ist bereit zur Ausführung
– Berechnungszeit Ci : Zeit zur Ausführung ohne Unterbrechung
(
(WCET)
)
– Deadline di : Task muss vorher ausgeführt sein, di ≥ ri + Ci
– Startzeit si: Ausführung startet
– Endzeit fi: Abarbeitung des Tasks ist beendet
14
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
(analogen) Schnittstellen
digitalen Signalprozessoren
Speicher
Trends
¾ Kommunikation spielt in eingebetteten
Systemen eine zunehmende Rolle
–
–
–
–
–
–
–
–
verteilte Objekte DCOM CORBA
CORBA,
Firewire,
Bluetooth,
USB,
IrDA,
Jini,
TCP/IP,,
…
15