12.04.2014 Aufrufe

Folien Kap. 6a - Ra.informatik.tu-darmstadt.de

Folien Kap. 6a - Ra.informatik.tu-darmstadt.de

Folien Kap. 6a - Ra.informatik.tu-darmstadt.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!