Folien Kap. 6a - Ra.informatik.tu-darmstadt.de
Folien Kap. 6a - Ra.informatik.tu-darmstadt.de
Folien Kap. 6a - Ra.informatik.tu-darmstadt.de
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
<br />
6. Rechnerentwurf<br />
6.1 Einige Entwurfsaspekte<br />
Sicht <strong>de</strong>s Anwen<strong>de</strong>rs auf das Computersystem<br />
<br />
For<strong>de</strong>rungen an das System (eine Auswahl)<br />
• In<strong>tu</strong>itive Bedienbarkeit<br />
• Angemessene Funktionalität<br />
– Nicht zu viele, nicht zu wenige Operationen;<br />
– Nicht nur Bereitstellung "intelligenter" Operationen son<strong>de</strong>rn auch die erzeugen<strong>de</strong>n Elementar-<br />
Operationen<br />
– Möglichkeit <strong>de</strong>r Bildung von zusammengesetzten komplexeren Operationen<br />
• Ausführungszeit < Schranke<br />
• Kompatibilität<br />
• Kosten<br />
• Zuverlässigkeit<br />
• Für <strong>de</strong>n Anwen<strong>de</strong>r ist die Art und Weise <strong>de</strong>r Software- und Hardware-<br />
Implementierung unwichtig, solange wie die Leis<strong>tu</strong>ngsmerkmale erfüllt wer<strong>de</strong>n!<br />
1
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
6.1 Einige Entwurfsaspekte (2)<br />
Anwendungsprogrammierer und Systemprogrammierer<br />
<br />
For<strong>de</strong>rungen und Kenntnisse <strong>de</strong>s Anwendungsprogrammierers<br />
<br />
<br />
For<strong>de</strong>rungen an die Programmentwicklungsumgebung<br />
• geeignete Progammiersprache, Bibliotheken<br />
• schnelle Entwicklung<br />
• schnelle Än<strong>de</strong>rbarkeit<br />
• Unterstützung bei <strong>de</strong>r Dokumentation<br />
• Bedienfreundlich<br />
Bei bestimmten Anwendungsprogrammen (z.B. Spielprogramme) muß <strong>de</strong>r<br />
Anwendungsprogrammierer die Maschinenmerkmale (Adreßraum,<br />
Zahlendarstellung, Graphik-Resourcen, EA-Schnittstellen) berücksichtigen.<br />
<br />
Der Systemprogrammierer<br />
<br />
<br />
benötigt Kenntnisse über BS und Hardware-Eigenschaften<br />
entwickelt Systemprogramme (Betriebssystem, Laufzeitsystem, Compiler,<br />
Debugger, Editor, Browser, Kommunikationsprogramme)<br />
2
6.1 Einige Entwurfsaspekte (3)<br />
Rechnerarchitekt<br />
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
<br />
Entwerfer <strong>de</strong>s Rechnersystems (Rechnerarchitekt im weiteren Sinne)<br />
<br />
Festlegung <strong>de</strong>r Rechnerstruk<strong>tu</strong>r und Rechnerorganisation (Glie<strong>de</strong>rung in<br />
Funktionseinheiten und Zusammenspiel)<br />
• Schnittstelle zum Betriebssystem<br />
• Prozessoren, Busse, Hauptspeicher, Cachspeicher, Plattenspeicher,<br />
Grafikinterface, EA-Schnittstellen, ...<br />
• Zuverlässigkeit, Durchsatz, Zugriffszeiten, Bandbreiten, maximale <strong>Kap</strong>azitäten,<br />
Erweiterbarkeit, ...<br />
<br />
Entwerfer <strong>de</strong>r Rechnerarchitek<strong>tu</strong>r (Rechnerarchitekt im engeren Sinne)<br />
<br />
Festlegung und Implementierung <strong>de</strong>s Maschinenbefehlssatzes und die<br />
durch ihn angesprochenen Objekte (Register, Speicher, EA-Schnittstelle,<br />
Interruptsystem)<br />
• ISA=Instruction Set Architec<strong>tu</strong>re<br />
– Sicht <strong>de</strong>s Maschinenprogrammierers auf die Maschine<br />
• Mikroarchitek<strong>tu</strong>r<br />
– Implementierung <strong>de</strong>r ISA durch die logischen Bausteine (Register, Speicher, Logik,<br />
Verbindungen) auf <strong>de</strong>r Register-Transfer-Ebene<br />
3
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
6.1 Einige Entwurfsaspekte (4)<br />
Logik-Entwerfer und Rechnerbauer<br />
<br />
Logik-Entwerfer<br />
<br />
entwickelt die integrierte Schal<strong>tu</strong>ng<br />
• Ausgangspunkt: Funktionale und Register-Transfer-Beschreibung<br />
• Berücksichtigung <strong>de</strong>s Zeitverhalten, elektrischen Verhaltens<br />
• mit Hilfe von Simulation, Design- und Synthese-Tool<br />
• Erfor<strong>de</strong>rliche Kenntnisse: Digitaltechnik, Elektrotechnik, Physik,<br />
Materialeigenschaften, Herstellungsprozesse<br />
<br />
Rechnerbauer<br />
Entwicklung <strong>de</strong>r gesamten Schal<strong>tu</strong>ng<br />
Benutzer von Bausteinen<br />
Berücksichtigung <strong>de</strong>s physikalischen und elektrischen Verhaltens<br />
Layout und Platinenentwurf<br />
Zusammenbau<br />
4
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Formulierung <strong>de</strong>r Entwurfsaufgabe<br />
1. Formulierung <strong>de</strong>r Implementierungsaufgabe (s. nächste <strong>Folien</strong>)<br />
2. Aufstellung eines Lösungsplans, <strong>de</strong>r <strong>de</strong>n Implementierungsweg aufzeigt<br />
<br />
<br />
<br />
Teilziele festlegen<br />
Arbeitsschritte und Meilensteine<br />
Darstellungsmittel<br />
• Tabellen<br />
• Blockschaltbil<strong>de</strong>r<br />
• Graphen<br />
• Ablaufpläne<br />
• Relationen<br />
5
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
<br />
Gesucht<br />
<br />
<br />
<br />
zu 1. Formulierung <strong>de</strong>r Entwurfsaufgabe<br />
Beispiel: Software-Implementierungsaufgabe<br />
Implementierung eines Programms, das die For<strong>de</strong>rungen erfüllt<br />
Benutzerhandbuch<br />
Dokumentation über die Planung und Implementierung<br />
<br />
For<strong>de</strong>rungen/Nebenbedingungen<br />
<br />
<br />
<br />
<br />
<br />
<br />
Erfüllung <strong>de</strong>r expliziten For<strong>de</strong>rungen <strong>de</strong>s Anwen<strong>de</strong>rs (gegeben)<br />
Erfüllung <strong>de</strong>r impliziten For<strong>de</strong>rungen/Erwar<strong>tu</strong>ngen <strong>de</strong>s Anwen<strong>de</strong>r (zu<br />
erfragen o<strong>de</strong>r zu vermuten)<br />
Die Laufzeit für bestimmte Funktionen muß unterhalb einer bestimmten<br />
Schranke liegen (gegeben o<strong>de</strong>r vorzugeben).<br />
Es soll die Entwicklungsumgebung für die Programmiersprache X auf <strong>de</strong>m<br />
Rechner Y mit <strong>de</strong>m Betriebssystem Z verwen<strong>de</strong>t wer<strong>de</strong>n (gegeben).<br />
Das Produkt soll möglichst gut wartbar sein (präzisieren).<br />
Die Kosten sollen kleiner als K sein (Kosten präzisieren: Entwicklungs-,<br />
Herstellungs-, War<strong>tu</strong>ngs-, Betriebs-, Än<strong>de</strong>rungskosten).<br />
6
zu 1. Formulierung <strong>de</strong>r Entwurfsaufgabe<br />
Beispiel: Hardware-Implementierungsaufgabe<br />
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
<br />
<br />
Gesucht<br />
Integrierte Schal<strong>tu</strong>ng<br />
Datenblatt<br />
Entwurfsunterlagen<br />
For<strong>de</strong>rungen/Nebenbedingungen<br />
Applikationen für <strong>de</strong>n Einsatz <strong>de</strong>r Integrierten Schal<strong>tu</strong>ng in Umgebungen<br />
Funktionsweise<br />
Zeitverhalten<br />
Anzahl <strong>de</strong>r Anschlüsse<br />
Stromverbrauch<br />
Kosten<br />
Die zu verwen<strong>de</strong>n<strong>de</strong> Logik-Technologie<br />
Die benutzbaren bzw. zu benutzen<strong>de</strong>n Entwicklungswerkzeuge.<br />
7
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Unterscheidung zwischen Entwurf und Optimierung<br />
<br />
Entwurfsaufgabe<br />
<br />
Es wird eine Lösung für das Entwurfsziel gefun<strong>de</strong>n, die <strong>de</strong>n<br />
Nebenbedingungen genügt. Es wird keine optimale Qualität verlangt.<br />
<br />
Optimierungsaufgabe<br />
<br />
Es wird versucht, eine optimale Lösung zu fin<strong>de</strong>n<br />
• optimal: Minimierung o<strong>de</strong>r Maximierung einer Zielfunktion (Gütekriterium, Fitness)<br />
• typische Zielfunktionen<br />
– Aufwand minimal, Ausführungszeit < Schranke<br />
– Ausführungszeit minimal, Aufwand < Schranke<br />
<br />
<br />
Zur Ermittlung eines Optimums müssen viele Lösungen entworfen/berechnet<br />
und durch die Zielfunktion bewertet wer<strong>de</strong>n!<br />
Verfahren: Genetische Algorithmen, Simulated Annealing, Heuristische Suche<br />
8
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Vorgehensweisen beim Rechnerentwurf<br />
Top-Down<br />
Spezifikation<br />
Gestal<strong>tu</strong>ngsraum<br />
Bausteine<br />
- Orientiert an <strong>de</strong>r Spezifikation<br />
- Testbarkeit erst zum Schluß,<br />
(o<strong>de</strong>r Emulation <strong>de</strong>r vir<strong>tu</strong>ellen Komponenten)<br />
- verlangt größeres Abstraktionsvermögen<br />
- Gefahr <strong>de</strong>r Ineffizienz, weil die Fähigkeiten <strong>de</strong>r Bausteine<br />
überschätzt o<strong>de</strong>r unterschätzt wer<strong>de</strong>n<br />
Bottom-Up<br />
- Orientiert an <strong>de</strong>n Möglichkeiten <strong>de</strong>r Bausteine<br />
- Besser testbar<br />
- Besser vorstellbar<br />
- Gefahr <strong>de</strong>r Konstruktion unzweckmäßiger Bausteine<br />
9
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Zum Entwurf eines Steueroperationssystems<br />
Entwürfe <strong>de</strong>s STW und <strong>de</strong>s OPW sind voneinan<strong>de</strong>r abhängig!<br />
1. Möglichkeit: Zuerst das Operationswerk festlegen<br />
2. Möglichkeit: Zuerst das Steuerwerk festlegen<br />
<br />
<br />
wenn das System zu langsam ist<br />
OPW mächtiger machen<br />
wenn das System zu teuer ist<br />
Eliminieren von aufwendiger Hardware<br />
Mehrfachnutzung von Hardware<br />
<br />
Versuch, das OPW möglichst übersichtlich und homogen zu gestalten<br />
dann wer<strong>de</strong>n das STW und die Steuerbefehle auch klarer struk<strong>tu</strong>riert sein!<br />
10
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Zum Entwurf eines Prozessors<br />
Top-Down<br />
zuerst Steuerablauf (Zustandsdiagramm zur Interpretation <strong>de</strong>r Befehle) festlegen,<br />
ohne beson<strong>de</strong>re Einschränkungen in Bezug auf die Realisierbarkeit<br />
Mikrooperationen herausziehen und Operationswerk entwerfen<br />
anschließend Steuerwerk anpassen und Aufwandsminimierung<br />
Bottom-Up<br />
<br />
<br />
<br />
zuerst Definition <strong>de</strong>s Operationswerks, im Hinblick auf die zu implementieren<strong>de</strong>n<br />
Befehle<br />
ALU- und Vergleichsfunktion, Adreßberechnungen, Speicheransteuerung,<br />
Verbindungen <strong>de</strong>finieren Mikrooperationen <strong>de</strong>finieren<br />
anschließend Steuerablauf implementieren, Mikrooperationen anpassen und<br />
optimieren<br />
Möglichkeiten <strong>de</strong>r Aufwandsminimierung<br />
Ersetzen von direkten Verbindungen durch indirekte Verbindungen<br />
Mehrfachnutzung von Bussen und Funktionseinheiten<br />
Zerlegung aufwendiger Funktionen in eine Folge einfacherer Operationen<br />
11
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Zum Entwurf eines Mikroprogramm-Steuerwerks<br />
1. Größe <strong>de</strong>s MP-Speichers festlegen.<br />
insbeson<strong>de</strong>re die maximale Länge <strong>de</strong>s Mikroprogramms<br />
2. Entwurf <strong>de</strong>r Mikrobefehle<br />
vom horizontalen zu vertikalen Mikrobefehl<br />
<br />
<br />
<br />
<br />
man beginnt mit einer klaren, übersichtlichen Struk<strong>tu</strong>r mit minimaler<br />
Ausführungszeit<br />
falls erfor<strong>de</strong>rlich, Speicherplatz minimieren und Mikrooperationen<br />
sequentialisieren<br />
vom vertikalen zum horizontalen Mikrobefehl<br />
<br />
<br />
man beginnt mit minimalem Aufwand<br />
falls erfor<strong>de</strong>rlich, kann <strong>de</strong>r Entwurf schrittweise mächtiger gemacht wer<strong>de</strong>n<br />
pragmatischer Ansatz<br />
<br />
<br />
Mikrobefehl ist doppelt so breit wie die Register (Daten)<br />
Vorteil: Direktoperand kann dann in seiner vollen Breite direkt im Mikrobefehl<br />
stehen<br />
12
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Zum Entwurf <strong>de</strong>r Maschinenbefehle<br />
<br />
Informationsanteile, die im<br />
Maschinenbefehl codiert wer<strong>de</strong>n<br />
müssen:<br />
<br />
<br />
<br />
<br />
Datenadressen<br />
(Speicheradressen,<br />
Registeradressen)<br />
Rechenkonstanten<br />
Programmadressen (zur<br />
Beeinflussung <strong>de</strong>s Ablaufs)<br />
Operationen<br />
(Rechenoperationen,<br />
Sta<strong>tu</strong>soperationen,<br />
Programmablaufoperat.)<br />
<br />
Einteilung in Befehlstypen,<br />
geglie<strong>de</strong>rt nach Operationen<br />
<br />
<br />
Transport- , Rechen-,<br />
Sta<strong>tu</strong>soperationen<br />
• benötigen Speicher/Register-<br />
Adressen, Konstanten<br />
Programmablaufoperationen<br />
• benötigen Sprungadresse<br />
(Konstante), Speicher/Register-<br />
Adressen (indirekte Sprungadresse)<br />
• Bedingungsauswahl-In<strong>de</strong>x (kann als<br />
Teil <strong>de</strong>s OPC angesehen wer<strong>de</strong>n)<br />
13
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Typische Einteilung in Befehlstypen<br />
Speicher<br />
<br />
Transport-Befehle<br />
Speicher/Register Speicher/Register<br />
Speicher Register (LOAD, STORE)<br />
LOAD<br />
STORE<br />
<br />
Rechen- und Sta<strong>tu</strong>soperationen<br />
Register<br />
<br />
Sprungbefehle<br />
unbedingt<br />
bedingt<br />
Unterprogrammsprung<br />
Software-Interrupt (Supervisor-Call)<br />
14
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Anzahl <strong>de</strong>r Register<br />
<br />
Wahl <strong>de</strong>r Anzahl <strong>de</strong>r Register<br />
<br />
<br />
möglichst klein<br />
• Einsparung von Bits für die Registeradressen<br />
• Beim Prozesswechsel müssen nur wenige Register-Inhalte ausgetauscht wer<strong>de</strong>n<br />
möglichst groß<br />
• schneller Zugriff auf viele Zwischenergebnisse und Parameter<br />
<br />
Wahl <strong>de</strong>r Anzahl n <strong>de</strong>r Registersätze<br />
entwe<strong>de</strong>r n=1<br />
• gemeinsamer Registersatz<br />
• universelles Rechenwerk o<strong>de</strong>r spezielle Rechenwerke ggf. mit parallelem Zugriff<br />
auf die Register<br />
o<strong>de</strong>r n>1<br />
• für je<strong>de</strong>n Datentyp einen separaten Registersatz und ein spezielles Rechenwerk<br />
o<strong>de</strong>r n>1<br />
• Vervielfachung <strong>de</strong>r Registersätze zur Unterstützung von Multithreading<br />
15
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Adresse im Befehl und Länge <strong>de</strong>s Befehls<br />
<br />
Länge <strong>de</strong>r Speicheradresse<br />
<br />
Befehlswortlänge variabel<br />
<br />
<br />
<br />
physikalische (sollte aus Grün<strong>de</strong>n<br />
<strong>de</strong>s Aufwands klein sein)<br />
vir<strong>tu</strong>elle (sollte aus Sicht <strong>de</strong>s<br />
Programmierers groß sein)<br />
Befehlswortlänge fest<br />
<br />
hardwareorientiert<br />
<br />
<br />
softwareorientiert<br />
flexibles Konzept<br />
• Befehle mit großer<br />
Auftre<strong>tu</strong>ngswahrscheinlichkeit (Häufigkeit)<br />
wer<strong>de</strong>n kurz codiert<br />
• lange, komplexe Befehle können<br />
dargestellt wer<strong>de</strong>n<br />
<br />
starres Konzept<br />
• Informationsanteile müssen aufgrund <strong>de</strong>r<br />
begrenzten Wortlänge auf ein Minimum<br />
reduziert wer<strong>de</strong>n.<br />
• Komplexe Operationen müssen<br />
zusammengesetzt wer<strong>de</strong>n.<br />
<br />
Nachteile: Erhöhter<br />
Decodieraufwand, Komplexe<br />
Hardware, Hoher<br />
Optimierungsaufwand<br />
<br />
Vorteile: Einfache und übersichtliche<br />
Hardware, einfach <strong>de</strong>codierbar, gut<br />
optimierbar (z.B. durch Pipelining)<br />
<br />
Vorteile: Potiential für höheres Maß<br />
an Parallelverarbei<strong>tu</strong>ng<br />
<br />
Nachteile: Parallelität beschränkt<br />
16
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Anzahl <strong>de</strong>r Befehle<br />
<br />
Kleiner Befehlssatz<br />
übersichtlich, leicht zu merken<br />
<br />
Großer Befehlssatz<br />
komplex, schwer zu merken<br />
<br />
Auswirkung auf die Hardware<br />
• Einfache Decodierung, kurzer<br />
OPC<br />
<br />
Grund: Minimierung <strong>de</strong>r<br />
Gesamtrechenzeit durch<br />
Bereitstellung von speziellen<br />
Befehlen<br />
• Benutzung eines Hardware-<br />
Steuerwerkes zur Interpretation<br />
• Optimierung einfacher (Pipelining)<br />
<br />
Design-Regel: Nur Befehle<br />
hinzufügen, die einen signifikanten<br />
Leis<strong>tu</strong>ngsgewinn erzielen!<br />
• Komplexe Befehle mit geringer<br />
Häufigkeit belasten nicht die<br />
Architek<strong>tu</strong>r<br />
<br />
Zur Berechnung <strong>de</strong>s<br />
Leis<strong>tu</strong>ngsgewinns eines Befehls i<br />
muß sein Zeitanteil bestimmt<br />
wer<strong>de</strong>n:<br />
Zeitanteil = Häufigkeit h i mal<br />
Befehlsausführungszeit t i<br />
<br />
Gesamtrechenzeit T = ∑ h i (Bef i ) * t i<br />
17
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Charakterisierung von Entwurfsaufgaben<br />
<br />
Entwurf einer speziellen Hardware-Funktionseinheit<br />
<br />
[Funktionsweise] Verdrah<strong>tu</strong>ng* Hardwarekomponenten<br />
* Gesucht ist eine Verdrah<strong>tu</strong>ng (+ Steuerung) von Hardwarekomponenten, die die<br />
Funktionsweise implementiert.<br />
<br />
Festlegung einer Funktionsweise durch ein Programm<br />
<br />
[Funktionsweise] Programm* Prozessor<br />
* Gesucht ist ein Programm auf einem Prozessor, das die Funktionsweise<br />
implementiert.<br />
18
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Entwurf eines "festverdrahteten" Rechners<br />
Maschinenprogramm var [Maschinenbefehle#] Verdrah<strong>tu</strong>ng* Hardwarekomponenten<br />
- ladbarer<br />
Programmspeicher<br />
- Programm soll<br />
interpretierbar sein<br />
# sind vorgegeben<br />
o<strong>de</strong>r sind zu<br />
entwerfen<br />
* gesucht gegeben<br />
<br />
<br />
Gesucht ist hier eine Verdrah<strong>tu</strong>ng von Hardwarekomponenten, die die<br />
Maschinenbefehle interpretiert.<br />
Das Maschinenprogramm<br />
<br />
<br />
soll in einem ladbaren Maschinenprogrammspeicher stehen (variabel sein)<br />
aus Maschinenbefehlen bestehen<br />
19
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Entwurf eines mikroprogrammierbaren Rechners<br />
Maschinenprogramm var<br />
[Maschinenbefehle#]<br />
Mikroprogramm*<br />
[Mikrobefehle#]<br />
Mikromaschine*<br />
- soll interpretierbar und variabel sein<br />
- vorgegeben o<strong>de</strong>r zu entwerfen<br />
- soll die Maschinenbefehle interpretieren, zu programm.<br />
- zu entwerfen o<strong>de</strong>r vorgegeben<br />
- zu entwerfen<br />
<br />
<br />
<br />
<br />
Ein mikroprogr. Rechner besitzt eine Maschinenprogrammspeicher und eine<br />
Mikroprogrammspeicher sowie zwei Sprachebenen. Dadurch kompliziert sich<br />
<strong>de</strong>r Entwurf.<br />
Die Mikromaschine interpretiert Mikrobefehle.<br />
Das Mikroprogramm interpretiert die Maschinenbefehle.<br />
Durch das La<strong>de</strong>n eines an<strong>de</strong>ren Mikroprogramms können an<strong>de</strong>re<br />
Maschinenbefehle interpretiert wer<strong>de</strong>n<br />
20
Emulation einer vorgegebenen Rechnerarchitek<strong>tu</strong>r durch<br />
ein Mikroprogramm<br />
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Maschinenprogramm var<br />
[Maschinenbefehle]<br />
Mikroprogramm*<br />
[Mikrobefehle]<br />
Mikromaschine<br />
- soll interpretierbar und variabel sein<br />
- vorgegeben (ISA instruction set architec<strong>tu</strong>re)<br />
- zu programmieren<br />
- vorgegeben<br />
- vorgegeben<br />
<br />
Gesucht ist ein Mikroprogramm, das die vorgegebenen<br />
Maschinenbefehle interpretiert.<br />
21
Entwurf eines mikroprogrammierten Rechners für einen<br />
vorgegebenen Befehlssatz<br />
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Maschinenprogramm var<br />
[Maschinenbefehle]<br />
Mikroprogramm*<br />
[Mikrobefehle#]<br />
Mikromaschine*<br />
- soll interpretierbar und variabel sein<br />
- vorgegeben (ISA instruction set architec<strong>tu</strong>re)<br />
- zu programmieren<br />
- zu entwerfen o<strong>de</strong>r vorgegeben<br />
- zu entwerfen<br />
<br />
Gesucht sind eine Mikromaschine und ein Mikroprogramm, das die<br />
vorgegebenen Maschinenbefehle interpretiert.<br />
22
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Rechnertypen<br />
<br />
Maschinensprache konstant<br />
Klassisch programmierbar<br />
<br />
<br />
Maschinensprache variabel<br />
<br />
wird festgelegt durch: Mikroprogramm, PLA-Co<strong>de</strong> o<strong>de</strong>r konfigurierbare<br />
Logikbausteine (FPGA)<br />
Mikrooperationen variabel, Adaptierbarer Rechner (teilw.<br />
konfigurierbarer Rechner)<br />
<br />
<br />
Die Mikrooperationen und damit die Operationen sind programmierbar,<br />
anpassbar an die Anwendung.<br />
Techniken: Speichertabellen (ALU-RAM/ROM), PLA, FPGA<br />
<br />
Struk<strong>tu</strong>r variabel, Konfigurierbarer Rechner<br />
Operationen, Verbindungswege und Speicherstruk<strong>tu</strong>r sind programmierbar<br />
Techniken: FPGA + Speicher<br />
Softcores, die in ein FPGA gela<strong>de</strong>n wer<strong>de</strong>n.<br />
23
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Beispiel: Teilweise konfigurierbarer Prozessor S5000<br />
(c) Bil<strong>de</strong>r aus<br />
Elektronik<br />
18.5.2004<br />
<br />
Stretch S5-Engine enthält zusätzlich zu<br />
einem normalen Prozessorkern 32<br />
Register, die 128 Bit breit sind.<br />
Es können 3 Quellregister und 2<br />
Zielregister ausgewählt wer<strong>de</strong>n.<br />
<br />
<br />
<br />
Das Rechenwerk ISEF (Extenxion Set<br />
Extension Fabric) ist konfigurierbar<br />
(La<strong>de</strong>zeit ca 100 µs).<br />
Per Profiling wer<strong>de</strong>n die Hot-Spots (am<br />
häufigsten durchlaufenen<br />
Programmteile) automatisch ermittelt<br />
und in mächtigere Befehle übersetzt,<br />
die danach im Rechenwerk konfiguriert<br />
wer<strong>de</strong>n.<br />
Anwendungen:<br />
<br />
<br />
<br />
Data Streaming<br />
Vi<strong>de</strong>o Compression<br />
Data Encryption<br />
www.stretchinc.com<br />
24
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Software Configurable Processors<br />
25
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
ISEF<br />
<br />
<br />
Array of 64 Bit ALUs<br />
<br />
4-bit and 1-bit boundaries<br />
Array of 4x8 Multipliers, cascadable<br />
to 32x32<br />
<br />
<br />
<br />
Programmierbares Pipelining<br />
up to 30 pipeline stages<br />
Programmierbare Verbindungen<br />
Bis zu 16 Befehle pro Konfiguration<br />
<br />
Rekonfigurierbarkeit:<br />
<br />
User directed or on <strong>de</strong>mand<br />
26
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Stretch, Vi<strong>de</strong>o Compression<br />
Vi<strong>de</strong>o-Kamera<br />
http://www.stretchinc.com/applications/vi<strong>de</strong>o.php<br />
27
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Software Configurable Processor S6000<br />
Four 10-bit data<br />
ports are inclu<strong>de</strong>d.<br />
Each is <strong>de</strong>signed to<br />
interface directly to<br />
common vi<strong>de</strong>o<br />
<strong>de</strong>vices as well as<br />
sensors and vi<strong>de</strong>o<br />
enco<strong>de</strong>rs or<br />
<strong>de</strong>co<strong>de</strong>rs<br />
Serial Interfaces<br />
10/100/1000 Ethernet<br />
http://www.stretchinc.com/_files/s6Architec<strong>tu</strong>reOverview.pdf<br />
eGIB/GPIO Enhanced<br />
Generic Interface Bus<br />
(eGIB) for<br />
communication with<br />
memory-mapped<br />
<strong>de</strong>vices (flash, display,<br />
key pads)<br />
28
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Ergänzung: Formalismus zum Entwurf<br />
H+ Vorrat von Hardwarekomponenten h1, h2, ...<br />
f+ Menge <strong>de</strong>r verfügbaren Verbindungsnetze (Verdrah<strong>tu</strong>ngen,<br />
Verbindungsstruk<strong>tu</strong>ren)<br />
H = (h1, h2, ..) ausgewählte Hardwarekomponenten<br />
f<br />
ausgewähltes Verbindungsnetz<br />
P+ Programmspeicher, ladbar mit irgend einem aus allen möglichen<br />
Programmen pi є {p1, p2, ...}<br />
P<br />
f{H}<br />
Programmspeicher mit einem ausgewählten Programm pi<br />
Funktionseinheit, basierend auf H<br />
29
R. Hoffmann – TUD – FG Rechnerarchitek<strong>tu</strong>r – RMP SS 09<br />
Ergänzung: An<strong>de</strong>rer Formalismus, Beispiele<br />
<br />
Entwurf einer Funktionseinheit<br />
{f+, H+} f{H}<br />
<br />
<br />
Entwurf u. Progr. eines Prozessors<br />
{f+, P+, H+} f{P+, H} f{P, H}<br />
Entwurf u. Progr. eines mikroprogrammierbaren Prozessors<br />
{f+, P1+, P0+, H+} f1{P1+, f0{P0+, H}}<br />
f1{P1+, f0{P0, H}} f1{P1, f0{P0, H}}<br />
• Konfigurierung eines FPGAs<br />
f{NET+}{LUTS+,H} f{NET}{LUTS, H}<br />
Look-Up-Tables sind programmierbar<br />
Verbindungsnetz ist programmierbar<br />
30