Download Zusammenfassung - Informatik - FB3

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Hw-Sw-Co-Design
Zusammenfassung
- komple
x
e
m
ge
kt
e
r
r
- ko
m
a
s
in
Systemsynthese, Partitionierung
Systementwurf
Prozessor, Compiler,
Codegenerierung
Spezialprozessoren
embedded systems
Hw-Sw-CO-Design
t
rrec
ordinated - koordiniert
mplex
n
c
ur
r
e
nt
-n
e
be
nlä
u
fig
9
– Interface- und Kommunikationssynthese
– Co-Simulation, Co-Emulation und Rapid Prototyping
¾ Weiterführende Codesign-Themen
¾ Schätzung der Entwurfsqualität
¾ Partitionierung
¾ Compiler und Codegenerierung
¾ Systementwurf - Modelle und Methoden
9
9
9
9
¾ Zielarchitekturen für Hw/Sw-Systeme
9
Inhalt der Vorlesung
Performance
Application-specific integrated circuits (ASICs)
• FPGA (field-programmable gate arrays)
Programmable hardware
• Microcontroller
• DSPs (digital signal processors)
• Application-specific instruction set
processors (ASIPs)
General-purpose processors
• CISC (complex instruction set)
• RISC (reduced instruction set)
Zielarchitekturen
Power
consumption
Flexibility
¾ Board, multi-board Systeme
¾ System-on-a-Chip (SoC)
Systemaufbau
system bus
Expressiontree DAG
(optimaler Code)
Syntaxbaum, DAG
Zielcode
- Schleifenzähler
- Graphfärbung
Registervergabe
- global
ExpressionDAG
(Heuristik)
Maschinenmodell “RISC”
Grundblock, CFG
Maschinenmodell “CISC”
einfacher
Codegenerator
3-Adress Code
Codegenerierung
lokal
global
Baumübersetzungsschemata
Prozessormodelle
retargetable Compiler
peephole
Codeoptimierung
heterogene Registersätze,
irreguläre Datenpfade
Adressrecheneinheiten,
Adresszuweisung
Codekompression
Codegenerierung
für Spezialprozessoren
Codegenerierung/optimierung
Maschinencode
SW-Synthese
I/F-Synthese
Systemsynthese
Spezifikation
HW-Synthese
Schätzung
Netzlisten
Systementwurf
Hierarchical clustering
iterativ
Evolutionäre Algorithmen
Hw-orientiert
Sw-orientiert
greedy
Hw/Sw Partitionierung
Simulated Annealing
Kernighan-Lin
heuristisch
konstruktiv
Random mapping
Enumeration
ILP
exakt
allgemeine Verfahren
Systempartitionierung
Treue
Schätzmethoden
max.Operatordelay,
Clockschlupf,
FSMD Modell
Hardware
Exaktheit
Parameter
Taktperiode,
Latenz,
Ausführungszeit,
Bitrate
WCET,
Programmpfadanalyse,
Modellierung der Zielarchitektur
Software
Qualitätsmaße
Performance
Schätzung
Chipfläche,
Speicher
Kosten
Standards
HW-Sicht
Verhaltens-Dokumentation,
Binden von Kommunikation
an Implementation
SLIF
SW-Sicht
Modellierung
Bus-Wrapper,
Virtuell Component Interface,
OCB
Datenfluss,
FU,
Task
Verfeinerung
SLD (System-Level Data-Types)
Effizienz,
Interoperabilität,
Vertrauen
Modell
Systematisierung
Interfacesynthese
Aptix
FPGA-Typ
Spyder
Beipielsysteme
System
Emulation
Raptor
System-SW
Prozessoren
ASICS
FPGA
Memory
Module
FPGA,
FPICS
Verbindung
Rapid Prototyping
Emulation und Rapid Prototyping
Block
SW
Modul
System
HW
Architektur
Abstraktionsebenen
Struktur
Logik
Verhalten
1
2
*
-
*
3
4
5
*
-
*
*
7
6
8
9
*
+
Architektursynthese
<
+
11
10
ALU
ALU
*
MUX
MUX
MUX
MUX
Registerdatei
Rechenwerk
FSM
Steuerwerk
RTL Struktur: Multiplexbasiert
*
ALU
Ergebnisbus
ALU
Operandenbus
Registerdatei
Rechenwerk
FSM
Steuerwerk
RTL Struktur: Busorientiert
Zeit 4
Zeit 3
Zeit 2
Zeit 1
Zeit 0
-
x0
x3
1,2,10
5,9
reset
reset
reset
x2
x1
reset
* 7
4
-
* 6
2
* 3
*
5
*
1
4,7,8
reset
3,6,11
+ 9
*
8
Zustandsautomat
10
< 11
+
ALARM
24h
TIMER
lr
lr
ur
CHIME
ul
ul
ll
ALARM
update
lr/update
TIME
UPDATE
lr/update
ALARM
UPDATE
ll/change_item
lr/update
lr/start_stop
ur
ll
ul
ul
STOP
WATCH
ur/light
AM, PM
ll
lr
lr
ll/change_item
Beispiel Armbanduhr
ur/stop_bell
R2
Architektur (RTL)
ALU
R1
PM
System
GC
BC
BM
FC
CM
CODEC
PM
Logik
C1
1D Q
Strukturorientierte Modelle
&
Simulator
Debugger
Entwicklungsplattform
Debugger
Compiler
Software
Source Code
USER
Modulebene
microprocessor
FPGA
Binary
Code
OS
Zielhardware
RAM
Flash
– Dient der dynamischen Verwaltung der Ressourcen eines
Rechners.
• Speicherverwaltung
• Prozeßverwaltung
• 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
¾ Betriebsystem
Betriebsystem
– 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
(engl. real-time operating system (RTOS))
Klassifikation:
Echtzeitbetriebsysteme
Hardware
Device Driver
Betriebssystem
Anwendung
– Initialisierung
• beim Betriebssystem anmelden
• Unterbechungsbehandlung init.
• Speicher allozieren
• Hardware initialisieren
– Datenzugriff
• Datenaustausch zwischen
Anwendung und Hardware (z.B.
memory mapped, DMA)
• Protokollverarbeitung
– Unterbrechungsbehandlung
Aufgaben eines Gerätetreibers:
Schnittstellen
Device
Glue Logic Driver
– Device-Eigenschaften sind überlicherweise in Datenbanken
gespeichert auf denen die Softwaregenerierung aufsetzt.
– Spezifische Treiber
zwischen Hardware- und
Softwarekomponenten
Hardware
Software
werden synthetisiert.
¾ Softwaregenerierung ist Teil heutiger
Entwicklungsumgebungen, z.B. Aisys DriveWay,
Stenkil MakeApp, Intel ApBuidler, Motorola
MCUnit, CoWare, …
Schnittstellen
– 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.
¾ Wesentliche Aufgaben der Prozessverwaltung:
Prozessverwaltung
activate
signal
wait
wait
wait
terminate
ready
ready
preemption
dispatch
run
run
¾ Minimale Prozesszustände:
idle
idle
end_cycle
resume
Betriebssysteme
TIMER
– 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 von Tasks heißt ablaufbar, falls ein zulässiger
Ablaufplan existiert.
¾ Echtzeitsysteme
Grundbegriffe
–
–
–
–
–
–
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
Zeitbedingungen
1993
2+M transistors
0.8 - 0.5 μ
75 - 100 mHz
1995
5+M transistors
0.5 - 0.35 μ
133 - 167 mHz
1999
22+M transistors
0.25 - 0.18 μ
500 - 600 mHz
–
–
–
–
programmierbarer Hardware
(analogen) Schnittstellen
digitalen Signalprozessoren
Speicher
¾ Eingebettete CPU-Cores werden kleiner
¾ Hohe Rechenleistung durch höhere Taktrate,
tiefere Pipelines, Verzweigungsvorhersage,...
¾ Tiefere Integration von CPU-Cores mit
1989
> 500k transistors
1 - 0.8 μ
33 mHz
Trends
–
–
–
–
–
–
–
–
verteilte Objekte DCOM CORBA,
Firewire,
Bluetooth,
USB,
IrDA,
Jini,
TCP/IP,
…
¾ Kommunikation spielt in eingebetteten Systemen
eine zunehmende Rolle
Trends