[0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur...

332
Fakult¨ at E-Technik & Informatik Hochschule Bremen Computer Architektur, COM(P)ARCH = Rechner-Strukturen, RST Prof. Dr. Thomas Risse SS 2016 Sinn & Zweck: Unterst¨ utzung der Lehrveranstaltung Computer Architektur, COM(P)ARCH = Rechner- Strukturen, RST durch diverse Materialien, s.a. ’RST-page’ www.weblearn.hs-bremen.de/risse/RST c 2000-2016 [email protected] Letzte ¨ Anderung: 13. M¨ arz 2016 Version 0.9.16

Transcript of [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur...

Page 1: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Fakultat E-Technik & InformatikHochschule Bremen

Computer Architektur, COM(P)ARCH= Rechner-Strukturen, RST

Prof. Dr. Thomas RisseSS 2016

Sinn & Zweck: Unterstutzung der LehrveranstaltungComputer Architektur, COM(P)ARCH = Rechner-Strukturen, RST durch diverse Materialien, s.a.’RST-page’ www.weblearn.hs-bremen.de/risse/RST

c© 2000-2016 [email protected] Anderung: 13. Marz 2016 Version 0.9.16

Page 2: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Inhaltsverzeichnis

0. Vorbemerkung• Inhalt • Lernziele • Herangehensweise • Vorbedingungen &

Uberschneidungen • Vor-/Nachbereitung • RST page – computerarchitecture im WWW • Materialien • online Test • Leistungs-bewertung

1. Einfuhrung• Begriffsbestimmung • Geschichte • Taxonomie

2. Leistung• Rechner • unterschiedliche Anwendungsbereiche • Leistungs-kenngroßen • benchmarks • Einflußgroßen • Leistungsmessung• Reprasentativitat • Amdahl’sches Gesetz • Leistungszuwachs• Moore’sches Gesetz

3. Compiler – rechts von/oberhalb der HW-SW-Schnittstelle3.1. compiler & Konsorten

• compiler passes3.2. Code-Optimierung

• lexikalische Analyse • syntaktische Analyse • semantische Ana-

lyse • Ubersetzung in Zwischensprache • Code-Erzeugung • Bei-

Page 3: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Inhaltsverzeichnis (Forts.) 3

spiel: Quicksort • Beispiel: Quicksort – ohne Optimierung • Bei-spiel: Quicksort – 1. Optimierung • Beispiel: Quicksort – 2. Opti-mierung • Beispiel: Quicksort – 3. Optimierung • Code-Erzeugung& Optimierung

3.3. Resumee3.4. z.B. Matrix-Multiplikation

• Matrix-Multiplikation – pure • Matrix-Multiplikation – 4-fach• Matrix-Multiplikation – 4-fach, 4-fach

4. Befehlssatz – links von der HW-SW-Schnittstelle4.1. Klassifikation

• Wieviele Operanden sind in CPU gespeichert?4.2. Register-Architekturen

• Beispiele4.3. Adressierung

• Adressierungsarten4.4. Operationen

• Befehlshaufigkeiten • Befehlshaufigkeiten und -Merkmale4.5. Anforderungen an Befehlssatze4.6. z.B. DLX/MIPS-Befehlssatz

• exemplarische, prototypische DLX/MIPS-Instruktionen •DLX/-

Page 4: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Inhaltsverzeichnis (Forts.) 4

MIPS-Formate • DLX/MIPS-(Pseudo-)Instruktionen • Befehls-formate • z.B. DLX/MIPS-shifts • Klassifizierung des Befehlssat-zes

4.7. z.B. Intel 80x86-Befehlssatz• Genealogie • Register • Familien-Entwicklung • Adressierung• Operationen • Befehlsformate • Befehlsprefixe • Beispiele fur8086 Befehle • Beispiele fur 80386 Befehle • Beispiele fur Befehls-formate belegen ISA-Heterogenitat • Dekodierung • ConditionCodes • Sprung- und Verzweigungsanweisungen • Bedingungenin Registern vs Condition Codes • AMDs 64bit Erweiterungen• Intels 64bit Erweiterungen • Slogans on 80x86 architecture

4.8. z.B. 80514.9. z.B. MicroChip PIC24FJ128GC010Family4.10.Resumee

5. Prozessor-Architektur5.1. single cycle Implementierung5.2. multi cycle Implementierung5.3. Implementieren der Steuerung

6. pipeline-Prozessor6.1. instruction pipelines

Page 5: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Inhaltsverzeichnis (Forts.) 5

• pipeline control • data hazards • control hazards • superskalareVersion & Leistung • superskalare Prozessoren

6.2. functional pipelines• arithmetische pipelines • scheduling funktionaler Einheiten• pipeline-Vektor-Prozessoren • Leistungsbewertung

7. Speicher-Hierarchie• Kenngroßen • Lokalitat

7.1. caching• direct mapped caches • fully associative caches • set associativecaches • cache-Schreibstrategien • Havard-Architektur

7.2. Speicher: SRAM vs DRAM7.3. Speicher-Organisation

• virtueller Speicher • paging • segmentation • paged segments• Belegungen des physikalischen Speichers ermitteln • TLB – Be-schleunigen der Adreß-Umsetzung • Speicherschutz-Maßnahmen• 80x86-Unterstutzung der Speicher-Anbindung • performancegap: processor vs memory system

8. Parallelisierung von Algorithmen8.1. Parallelisierung des Gauß’schen Algorithmus

• Gauß’scher Algorithmus – Eliminieren • Gauß’scher Algorith-

Page 6: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Inhaltsverzeichnis (Forts.) 6

mus – Auflosen •Kommunikation • Parallelisierung des Gauß’schenAlgorithmus durch den Compiler

8.2. Effizienz/Effektivitat der Parallelisierung8.3. parallele Speicher-Zugriffe auf Matrizen8.4. Baumhohenreduktion8.5. Parallelisierung rekurrenter Relationen8.6. Modellierung durch DAGs8.7. Programmierung

9. Vektor-Prozessor-Systeme (SIMD)9.1. vector processing (per pipelining oder n ALUs)

9.2. parallel processing (per n parallel processes/processors)

9.3. pipelining within/across operations9.4. Beispiel: IBM 3090 Vector Facility

• reconfigurable vector registers • Compound Instructions • z.B.komplexe Multiplikation • IBM 3090 Vector Facility – Vector In-structions

10. parallele Architekturen10.1.Klassifizierung anhand von Beispielen

• Symmetric / Shared-Memory Multiprocessors (SMP), UniformMemory Access (UMA) • Non-Uniform Memory Access (NUMA)

Page 7: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Inhaltsverzeichnis (Forts.) 7

Multiprocessors • Clusters •Massively Parallel Processors (MPP)10.2.Multiprocessor-Systeme mit gemeinsamem Bus10.3.cache-Koharenz in Multiprozessor-Systemen

• cache-Koharenz durch Invalidieren • cache-Koharenz durch Ak-tualisieren • cache-Koharenz • Einfaches cache-Koharenz Proto-koll • MESI/MOESI

10.4.Verbindungsstrukturen• Beispiele • Merkmale einschlagiger Verbindungsstrukturen

11. Addenda11.1.Addendum in 2003: top 50011.2.Addendum in 2004: announced in 200411.3.Addendum in 2005: top 50011.4.Addendum in 2006: top 50011.5.Addendum in 2007: cell-Prozessor11.6.Addendum in 2010: Core i200011.7.Addendum in 2011: K Computer11.8.Addendum in 2012: Raspberry Pi11.9.Addendum in 2013: Haswell11.10. Addendum in 2014: Advanced RISC Machines, ARM

• Cortex A53 and Cortex A57 • A32 – Genese • A32 – featu-

Page 8: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Inhaltsverzeichnis (Forts.) 8

res • ISA, Befehlsformate • A32 vs A64 • Details aus ARMv8Instruction Set Overview

11.11. Addendum in 2015: IBM z13• Mainframe vs Multi-Computer-System • Mainframes • Distri-buted Systems

11.12. Addendum in 2016: NN

Page 9: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

9

0. Vorbemerkung

• Inhalt

1. Einfuhrung

2. Leistungsbewertung, Leistungsmessung

3. Compiler

4. Befehlssatze

5. Prozessor-Architektur

6. pipelining

7. Speicher-Hierarchie: caching

8. Speicher-Organisation: paging, segmentation

9. Parallelisierung

10. Multi-Prozessor/Multi-Computer-Systeme

11. Addenda

Page 10: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 0: Vorbemerkung 10

• Lernziele

• Interna, Architektur-Prinzipien kennenlernen

• Abhangigkeiten erkennen und berucksichtigen

• Angaben zu Leistung/features bewerten konnen

• es gibt nicht nur PCs auf dieser Welt!

• Leistung durch Ausnutzen von Parallelitat steigern

• Herangehensweise

Entwurfssicht

• Vorbedingungen & Uberschneidungen

• Mikro-Computer-Technik

• Digital-Technik

• Betriebssysteme, Compiler (-Bau), . . .

Page 11: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 0: Vorbemerkung 11

• Vor-/Nachbereitung

• in der modul-begleitenden Ubung

– praktische Ubungen zu den aktuellen Themen, z.B. anhandvon Emulationen

• im Hinblick auf Projekte, z.B.

– Unterschriften-Verifikation (Vektor-Coprocessor-board)– ChipCard-Terminal (µ-Controller)– low power processors (VHDL, FPGA)– SystemC

• RST page – computer architecture im WWW

RST page mit Materialien, Archiv, link lists

www.weblearn.hs-bremen.de/risse/RST/

auch uber AULIS verlinkt! s. no computer without architectureAllerdings sind AULIS-Dokumente nicht notwendig up to date!

Page 12: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 0: Vorbemerkung 12

• Materialien

• Literatur: COD, CA & Bibliographie im SkriptPatterson & Hennessy: COD; 2nd ed., MKP COD2ePatterson & Hennessy: COD; 3rd ed., Elsevier, 40£ COD3ePatterson & Hennessy: COD; 4th ed., MKP, ca 40£Hennessy & Patterson: CA; 3rd ed., MKP CAHennessy & Patterson: CA; 4th ed., MKP ca 40£ CAPatterson & Hennessy: Rechner-Organisation und -Entwurf; El-sevier 55e, Oldenbourg 60e COD2e

Hennessy & Patterson: CA; deutsche Ubersetzung vergriffen CADubois, Annavaram, Stenstrom: Parallel COD; Cambridge 2012

• online Materialiens. www.weblearn.hs-bremen.de/risse/RST/docs

– Skript(e) RST.pdf und RST plus.pdf

– Folien RSTslide.pdf

– (Abschluß)Klausuren klausur.pdf und aKlausur.pdf

– COD Graphiken, Dokumente, link lists, Evaluationen etc.

Page 13: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 0: Vorbemerkung 13

• online Test

AULIS→ RST-Test soll die Veranstaltung RST unterstutzen, i.e. mul-tiple choice & fill in blank Test, derzeit zu folgenden Themen

• Leistung

• Compiler

• Befehlssatze

• Prozessor-Architektur

• pipelining

• Speicher-Hierarchie: caching

• Speicher-Organisation: paging, segmentation

• Leistungsbewertung

BPO: Klausur s.www.weblearn.hs-bremen.de/risse/RST/docs/klausur.pdf

www.weblearn.hs-bremen.de/risse/RST/docs/aKlausur.pdf

Page 14: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

14

1. Einfuhrung

Computer-Entwicklung1 ist Leistungssteigerung!

• Begriffsbestimmung

Def. Rechner-Architektur2 ist die Organisation von Rechen-Syste-men, die das Preis/Leistungsverhaltnis fur bestimmte Einsatzbereicheund bei gegebener hardware- und software-Technologie optimiert.

• Geschichte

1642 B. Pascal3: Addition und Subtraktion

1 s. Vergleich mit Automobil2 Amdahl, Blaauw, Brooks – Entwickler der IBM /360 – definierten 1964:

Computer-Architektur ist die Struktur eines Computers, die ein Maschinen-Sprachen-Programmierer verstehen muß, um korrekte Programme fur eine Ma-schine schreiben zu konnen.

3 Blaise Pascal, 1623-1662 www-history.mcs.st-and.ac.uk/history/Mathematicians/Pascal.html

Page 15: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 1: Einfuhrung 15

1666 S. Morland4, 1671 G. Leibniz5 Addition und Multiplikation

1812 Charles Babbage6: Difference Engine (Polynom-Auswertung),Analytical Engine (Lochkarten-Steuerung), Augusta Ada King,Countess of Lovelace7

1924 T.J. Watson:8 von NCR uber CTR zu IBM, Astronomical Com-puting Bureau, Hermann Hollerith:9 National Bureau of Census

1930 Howard H. Aiken,10 John Atanasoff,11 George Stibitz,12 Kon-rad Zuse:13 universelle, programmierbare, digitale (Relais-) Rech-ner

4 Samuel Morland, 1625-1695 es.rice.edu/ES/humsoc/Galileo/Catalog/Files/morland.html

5 Gottfried Leibniz, 1646-1716 www-history.mcs.st-and.ac.uk/history/Mathematicians/Leibniz.html

6 Charles Babbage, 1791-1871 www-history.mcs.st-and.ac.uk/history/Mathematicians/Babbage.html

7 Augusta Ada King, 1815-1852 www-history.mcs.st-and.ac.uk/history/Mathematicians/Lovelace.html

8 Thomas J. Watson, 1874-1956 www.watson.ibm.com/t j watson history.html

9 Hermann Hollerith, 1860-1929 www-history.mcs.st-and.ac.uk/history/Mathematicians/Hollerith.html

10 Howard H. Aiken, 1900-1973 cc.kzoo.edu/ k98hj01/aiken.html

11 John V. Atanasoff, 1903-1995 archive.comlab.ox.ac.uk/museums/computing/atanasoff.html

12 George Stibitz, 1904-1995 www.invent.org/book/book-text/100.html

13 Konrad Zuse, 1910-1995 www-history.mcs.st-and.ac.uk/history/Mathematicians/Zuse.html

Page 16: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 1: Einfuhrung 16

1939 Atanasoff: Rohren-Rechner (Lineare Gleichungssysteme)

1943 Mauchly14 und Eckert:15 Electronic numerical Integrator andCalculator, ENIAC

1943 M.H.A. Newman16 und A. Turing17: Colossus (Kryptographie),Enigma ...

1945 John von Neuman18: Electronic Discrete Variable AutomaticComputer, EDVAC, Magnetische Speicher, Atom-Bombe,s.a. COD, pp315,s.a. Forum InformatikerInnen fur Frieden und gesellschaftlicheVerantwortung,http://fiff.informatik.uni-bremen.de/

z.H. Pioniere und Computer-Museen ’ersurfen’,s.a. H&P, P&H, Literatur, WWW o

14 John W. Mauchly, 1907-1980 www-history.mcs.st-and.ac.uk/history/Mathematicians/Mauchly.html

15 John P. Eckert, 1919-1995 www-history.mcs.st-and.ac.uk/history/Mathematicians/Eckert John.html

16 Max H.A. Newman, 1897-1984 www-gap.dcs.st-and.ac.uk/ history/Mathematicians/Newman.html

17 Alan M. Turing, 1912-1954 www-history.mcs.st-and.ac.uk/history/Mathematicians/Turing.html

18 John von Neuman, 1903-1957 ei.cs.vt.edu/ history/VonNeumann.html

Page 17: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 1: Einfuhrung 17

Zeit Technologie/Architektur SW/Anwendungen Systeme

1945-54Rohren, Relais, CPU mitPC und Accu, Festpunkt-Arithmetik

Assembler, singleuser, no linkage

ENIAC, Prin-ceton IAS,IBM 701

1955-64

diskrete Transisto-ren, Kern-Speicher,Gleitpunkt-Arithmetik,I/O-processors, multiple-xed memory access

HLL, compiler, li-braries, batch pro-cessing

IBM 7090,CDC 1604,Univac LARC

1965-74SSI/MSI-ICs, Mikropro-grammierung, pipelining,cache, µ-processors

multiprogramming,time sharing, OS,multi user

IBM 360/370,CDC 6600,TI-ASC,PDP-8

1975-90

LSI/VLSI-ICs, Halblei-ter-Speicher, RISC vsCISC, multi processors,vector supercomputers,multicomputers

multiprocessor OS;languages, compi-lers etc. for parallelprocessing

Apple, PC,VAX 9000,Cray X-MP,IBM 3090

1991-ULSI/VHSI-ICs, high den-sity packaging, scalable ar-chitectures

MPP, grand chal-lenges, heteroge-neous processing

FujitsuVPP500,Cray MPP,CM-5, IntelParagon

Page 18: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 1: Einfuhrung 18

• Taxonomie

sehr grobe Einteilung von Rechnern (Flynn19sche Klassifikation)

SD MDsingle data multiple data

SI – single SISD SIMDinstruction 8051, 8086, etc. MMX, etc; Vektor-RechnerMI – multiple — MIMDinstruction — Multi-Prozessoren, -Computer

z.H. Finde und klassifiziere weitere Beispiele. o

19 Michael Flynn: Very high-speed computing systems; Proceedings of the IEEE,volume 54, pages 1901-1909, December 1966.

Page 19: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

19

2. Leistung

Kosten-zu-Nutzen-Verhaltnis optimieren!i.e. minimize cost/benefit ratio!

• Rechner

• dedicated hardware, ASICs ...

• FPGAs ...

• µ-Controller, DSP, ...

• PC

• workstation

• server, mid size computer, ...

• main frame

• Super-Computer

Beispiele?

Page 20: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 2: Leistung 20

• unterschiedliche Anwendungsbereiche

• ...

• general purpose

• SoHo

• Wirtschaft

• Wissenschaft & Technik

• Super-Computer, HPC

Beispiele?

Page 21: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 2: Leistung 21

• Leistungskenngroßen

• MIPS

• MOPS

• FLOPS

• 1/CPI

• Bus-Bandbreite

• IO-Bandbreite

• 1/#wait states

• TPS

• FPS

• KLIPS

• ... ?

Eigenschaften wie Meßbarkeit, ’Unbestechlichkeit’, Relevanz ...?

z.H. Klassifiziere den Windows Leistungsindex! o

Page 22: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 2: Leistung 22

• benchmarks

• Gibson-Befehlsmix (IBM: 13 Klassen mit gemessenen Haufigkeiten)

• Linpack (Dongarra, Moler et al, ca 1970 -: linear algebra, LAPACK)

• Whetstones in MWIPS (Nat. Phys. Lab, 1976: float- und integer-Arithmetik, Zugriff auf Felder)

• Dhrystones (Reinhold Weicker, 1984: im Gegensatz zu ’Whet’stonenur integer-, char-Operationen; compiling etc)

• Livermore loops (Francis H. McMahon, 1986: vektorisierbare undnicht vektorisierbare Livermore Fortran kernels)

• SPECmarks in SPECint, SPECfp etc (Standard Performance Eva-luation Corparation www.spec.org, 1988–)

• Perfect Club Benchmarks – Effective Performance Evaluation of Su-percomputers (Berry et al 1994 auf AULIS: external docs)

• BAPCo SYSmark (Business Applications Performance Corporationwww.bapco.com: PC, tablets, mobile; SoHo)

Eigenschaften wie Meßbarkeit, ’Unbestechlichkeit’, Relevanz ...?

z.H. Vergleiche Leistungskenngroßen vs benchmarks! o

Page 23: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 2: Leistung 23

• Einflußgroßen

SekundenProgramm = Instruktionen

Programm × Clock ZyklenInstruktion

× SekundenClock Zyklus

und durch Ubergang zu geeigneten Mittelwerten

SekundenProgramm = Instruktionen

Programm × CPI× 1

Taktrate

Abhangigkeiten?

• Leistungsmessung

Leistung = 1

Ausfuhrungszeit.

Beschleunigungsfaktor β aufgrund einer Modifikation ist

β =Leistungmit ModifikationLeistungohne Modifikation

=AusfuhrungszeitohneAusfuhrungszeitmit

Page 24: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 2: Leistung 24

Leistungsgewinn γ aufgrund einer Modifikation ist

1 + γ =Leistungmit ModifikationLeistungohne Modifikation

=AusfuhrungszeitohneAusfuhrungszeitmit

bzw. aufgelost

γ =Leistungmit−Leistungohne

Leistungohne=

Ausfuhrungszeitohne−AusfuhrungszeitmitAusfuhrungszeitmit

• Reprasentativitat

Arithmetisches Mittel oder gewichtetes Mittel

AZ = 1n

∑ni=1AZi AZ =

∑ni=1 wiAZi

der Ausfuhrungszeiten AZi ausgewahlter Programme Pi mit zugeho-rigen Gewichten wi ≥ 0 und

∑ni=1 wi = 1

bzw. harmonisches Mittel r der Raten ri

r = n∑ni=1

1ri

bzw. 1AZ = n∑n

i=11

1/AZi

der Raten 1AZi

ausgewahlter Programme Pi

Z.B. mittlere MIPS, MOPS, FLOPS; CPI? FLOPS/Watt? c

Page 25: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 2: Leistung 25

z.H. Benjamin Benz: Auf den Zahn gefuhlt – PC-Performance selbstbeurteilen; c’t 18/2009 140-144 www.ctmagazin.de/0918140 mit TestsCPU: Cinebench, Prime95; Grafikkarten: Furmark, 3DMark06, 3DMark03,

3DMark Vantage, 3DMark05; Festplatten&Laufwerke: IOMeter, H2benchw,

Nero Disc Speed; Speicher: Memtest86+, Memtest86; Netzwerk: NetIO,

Iperf; application benchmarks: BAPCo SYSmark, 7-Zip; Spiele: Fraps. oz.H. vgl. aktuelle c’t-Artikel zu benchmarking auf AULIS o

• Amdahl’sches Gesetz

Fur α = Anteilverandert liege Beschleunigungsfaktor βverandert vor.

Ausfuhrungszeitneu = (1− α)Ausfuhrungszeitalt + αAusfuhrungszeitalt

βverandert

βgesamt =AusfuhrungszeitaltAusfuhrungszeitneu

= 1(1−α)+ α

βverandert

Beispiele!

Page 26: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 2: Leistung 26

• Leistungszuwachs

HP 9000/750

SUN-4/ 260

MIPS M2000

MIPS M/120

IBM RS6000

100

200

300

400

500

600

700

800

900

1100

DEC Alpha 5/500

DEC Alpha 21264/600

DEC Alpha 5/300

DEC Alpha 4/266

DEC AXP/500IBM POWER 100

Year

Per

form

ance

0

1000

1200

19971996199519941993199219911990198919881987

Page 27: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 2: Leistung 27

Also jahrliche Verdoppelung der Prozessor-Leistung (gemessen etwain MIPS oder FLOPS)

Leistung= 2Jahr−1984 (Joy’sches/Moore’sches Gesetz)

und ca alle drei Jahre Vervierfachung der Speicher-Chip-Kapazitaten

1992

100,000

Kbi

t ca

paci

ty

10,000

1000

100

1019901988198619841982198019781976

Year of introduction

16M

4M

1M

256K

16K

64K

1994 1996

64M

z.H. Aktualisiere! s. z.B. http://cpudb.stanford.edu (zur Methodiks. http://portal.acm.org/ft gateway.cfm?id=2181798), www.cpu-world.com o

Page 28: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 2: Leistung 28

• Moore’sches Gesetz

s.a. Andreas Stiller: 50 Jahre Moore’sches Gesetz; c’t 2015/10 S.72-75

Moore's Law 1975Aus Moores Vortrag auf dem IEDM I 975, mit Rückblick auf dievergangenen zehn und Vorhersage aufdie l0folgenden Jahre.

I Bipolarlogk I Bipolararray I MOSlogic I M0Sarray

Report I Moore'sches Gesetz

Durchsch n ittliche Tra nsistorkostenDie Kosten pro Transistor halbieren sich,la,ut lntel etwa alle dreiJahre. Die expliziten Kosten in US-Ceht/Mio. hat c,t hinzugefügt

13,0 ct

6,5 ct

2,6 ct

1,3 ct65 nm 45 nm 32 nm 22 nm 14nm l0nm

;e 16M

oälMg§ o+to

E 4k=

ego

-gFo

=ee

, ty6u 1965 1970 1975

zwischen Moore's Law 1 und Moore,s Law 2und kam so auf eine Verdoppelung der per-formance alle 18 Monate, sozusagen Moore,sLaw 1 'l/2.lrgendwie sind diese,,Gesetze,,inden Folgejahren dann durcheinander gera-ten - jeder nahm sich das heraus, was erbrauchte. Statt ,,Komponenten" also inklusi-ve Widerstände, Kondensatoren et cetera re-duzierte man das Komplexitätsgesetz zu-meist auf die reinen Transistorzahlen dermarktgängigen Produkte.

Vom Aspekt der Kostenoptimierung hatman sich ebenfalls verabschiedet, schließlichwollte man die Kosten ja gar nicht offenle-gen. Allerdings veröffentlichte lntel verein-zelt Grafiken, die in normalisierter Form dieKosten pro Transistor auflisteten, wenn auchohne explizite Dollar-Angabe. Danach ist dieRate in den letzten zehn Jahren zwar einiger-maßen konstant, aber.,unter Moore'sch,, miteiner Halbierung etwa alle drei Jahre.

Die konkreten Werte in Dollar und Centkönnen wir durchaus nachliefern, denn Aus-gangspunkt der allerneuesten dieser Dia-gramme, die sogar schon einen optimisti-schen Ausblickauf die nächste 10-nm-Gene-ration geben, ist der 65-nm-Prozess. Für dengab lntel nämlich mal auf dem lDF2006 - an-geblich versehentlich - Herstellungskostenbekannt, damals um die Vorteile des Clover-town als Zweichip-Lösung (für 71 US-Dollar)vor einem hypothetischen, doppelt so gro-ßen monolithischen Chip (für 79 US-Dollar) zudemonstrieren. Die reinen Die-Kosten lagensogar um 20 Prozent (29 zu 36 Dollar) aus-einander. Daraus lässt sich schließen, dassman zwar Riesenchips mit gigantischen Tran-sistormengen wie den Xeon Phi Knights Lan-ding herstellen kann, nur ist man dann vonMoores Kostenoptimierung weit entfernt.

Mittelt man diese beiden Herstellungs-werte für die 582 Millionen Transistoren einesClovertown-Prozessors, so kommt man aufrund 13 Cent/Mio. Transistoren. Für 14 nm fol-gen dann aus lntels Diagramm etwa 20 pro-zent dieses Wertes, mithin 2,6 CenVMio. EinCore M-SYxx mit rund 1,3 Milliarden Transis-toren würde demnach in der Herstellung34 US-Dollar kosten. Bei einem OEM-Preis von281 Dollar ist die Marge also so schlecht nicht.

c't 20'15, Heft 10

c't hatte 1998 schon mal die Transistor-zahlen aller lntel-Prozessoren vom 4004 biszum damals frisch herausgekommenen Men-docino (0,25 pm, 19 Mio Transistoren,154 mm2 Die) halblogarithmisch aufgetra-gen und eine durchschnittliche Verdopp-Iungsrate alle 2,22Jahre ermittelt.

Faktencheck

Jetzt ist man knapp 17 Jahre später mit demgrößten lntel-Chip Xeon Phi Knights Landingbei 8,1 Milliarden Transistoren (14-nm-pro-zess, ca. 710 mm2 Die-Größe), also beim 426-Fachen angelangt, da stimmt der Verdopp-lungsfaktor alle zwei Jahre für die Komplexitätnoch immer recht gut. Das sind allerdingsauch Riesenchips. Bei der reinen Transistor-dichte gehts hingegen nicht so schnell: eineVerdoppelung nur etvva alle 2,6 Jahre.

Richtig problematisch wird es jedoch mitder werbewirksamen Performance-Aussagedes ,,House-Moore'schen Gesetzes". Seit gutzehn Jahren gibt es mit den Mehrkern-prozes-soren nämlich eine Aufspaltung in zwei Zwei-ge: Single-Threaded und Multi-Threaded. Die

Single-Thread-Performance hat sich seit Ein-führung des Benchmark SPEC CPU2006 Mitte2006 - clt-like gemessen ohne verfälschendeAutoparallelisierung der Compiler - nicht ein-mal vervierfacht. Das entspricht allenfallseiner Verdopplung alle 5 Jahre - also weit,weit weg von den ursprünglich mal postulier-ten 18 Monaten. Der Hauptgrund dafür liegtvor allem in dem abrupten Ende desMoore'schen Geseaes für den Prozessortakt.Anfang der 2000er Jahre geriet der nach einerstürmischen Steigerungsrate im Wettbewerbmit AMD nahezu abrupt in eine,,Sättigung" -nach dem Pentium-4-Desaster mit viel zuhohem Energieverbrauch.

Nur wenn die Prozessoren ihre vielenKerne in Stellung bringen können, lässt sichHouse-Moore hoch ansatzweise retten. Vonden rund 19 SPECint_rate2006base des Pen-tium D 940 (Presler, 65 nm, 162 mm2,376Mio. Transistoren) im Jahre 2006 bis zu den669 SPECint_rate2006base des Xeon 2699v3(Haswell-EP, nur ein Chip,22 nm, 662 mm2,5,56 Mrd. Transistoren) im März 2015. Damitkommt man aut eine Verdopplungszeit von2l Monaten. Und das ist schon sehr ge-

Transistorzahlen gä ngiger prozestoren

Die Transistorzahl der größten Chips mit einer Verdoppelung et\ /a allezwei Jahre wird meist als,,das" Moor'sches Gesetz interpretiert.

E lE+r0

-9

§ rr+oeF

1E+08

10 000 000

t 000000

. @ lntelS{1386. l

100000 @ lntet80286

" elntel8086

10 000

@ lnrel 8080@htel4oo4

62-(oreXmn phi 72.(ore leon phi Xl,lL

10-(oreXeon Wertmere.U^ O 9"]- et lö-qxeleon HaswetFU,e e6{orExeon7400

-e eG(ore oPtelor 2400

Itanium2i4dinleye" @Core2Duo

@ pentium 4

PiäiitimFioai :gÄäDK6 '':''' ' .'-- -t '"-"" '

€ Pefiium

@ lntel80186

r@0 r----t-1970 1975

lt1975 1985

,rry1990 199s 2000 2005 2010 2015 2020

73

Page 29: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 2: Leistung 29

Moore's Law 1975Aus Moores Vortrag auf dem IEDM I 975, mit Rückblick auf dievergangenen zehn und Vorhersage aufdie l0folgenden Jahre.

I Bipolarlogk I Bipolararray I MOSlogic I M0Sarray

Report I Moore'sches Gesetz

Durchsch n ittliche Tra nsistorkostenDie Kosten pro Transistor halbieren sich,la,ut lntel etwa alle dreiJahre. Die expliziten Kosten in US-Ceht/Mio. hat c,t hinzugefügt

13,0 ct

6,5 ct

2,6 ct

1,3 ct65 nm 45 nm 32 nm 22 nm 14nm l0nm

;e 16M

oälMg§ o+to

E 4k=

ego

-gFo

=ee

, ty6u 1965 1970 1975

zwischen Moore's Law 1 und Moore,s Law 2und kam so auf eine Verdoppelung der per-formance alle 18 Monate, sozusagen Moore,sLaw 1 'l/2.lrgendwie sind diese,,Gesetze,,inden Folgejahren dann durcheinander gera-ten - jeder nahm sich das heraus, was erbrauchte. Statt ,,Komponenten" also inklusi-ve Widerstände, Kondensatoren et cetera re-duzierte man das Komplexitätsgesetz zu-meist auf die reinen Transistorzahlen dermarktgängigen Produkte.

Vom Aspekt der Kostenoptimierung hatman sich ebenfalls verabschiedet, schließlichwollte man die Kosten ja gar nicht offenle-gen. Allerdings veröffentlichte lntel verein-zelt Grafiken, die in normalisierter Form dieKosten pro Transistor auflisteten, wenn auchohne explizite Dollar-Angabe. Danach ist dieRate in den letzten zehn Jahren zwar einiger-maßen konstant, aber.,unter Moore'sch,, miteiner Halbierung etwa alle drei Jahre.

Die konkreten Werte in Dollar und Centkönnen wir durchaus nachliefern, denn Aus-gangspunkt der allerneuesten dieser Dia-gramme, die sogar schon einen optimisti-schen Ausblickauf die nächste 10-nm-Gene-ration geben, ist der 65-nm-Prozess. Für dengab lntel nämlich mal auf dem lDF2006 - an-geblich versehentlich - Herstellungskostenbekannt, damals um die Vorteile des Clover-town als Zweichip-Lösung (für 71 US-Dollar)vor einem hypothetischen, doppelt so gro-ßen monolithischen Chip (für 79 US-Dollar) zudemonstrieren. Die reinen Die-Kosten lagensogar um 20 Prozent (29 zu 36 Dollar) aus-einander. Daraus lässt sich schließen, dassman zwar Riesenchips mit gigantischen Tran-sistormengen wie den Xeon Phi Knights Lan-ding herstellen kann, nur ist man dann vonMoores Kostenoptimierung weit entfernt.

Mittelt man diese beiden Herstellungs-werte für die 582 Millionen Transistoren einesClovertown-Prozessors, so kommt man aufrund 13 Cent/Mio. Transistoren. Für 14 nm fol-gen dann aus lntels Diagramm etwa 20 pro-zent dieses Wertes, mithin 2,6 CenVMio. EinCore M-SYxx mit rund 1,3 Milliarden Transis-toren würde demnach in der Herstellung34 US-Dollar kosten. Bei einem OEM-Preis von281 Dollar ist die Marge also so schlecht nicht.

c't 20'15, Heft 10

c't hatte 1998 schon mal die Transistor-zahlen aller lntel-Prozessoren vom 4004 biszum damals frisch herausgekommenen Men-docino (0,25 pm, 19 Mio Transistoren,154 mm2 Die) halblogarithmisch aufgetra-gen und eine durchschnittliche Verdopp-Iungsrate alle 2,22Jahre ermittelt.

Faktencheck

Jetzt ist man knapp 17 Jahre später mit demgrößten lntel-Chip Xeon Phi Knights Landingbei 8,1 Milliarden Transistoren (14-nm-pro-zess, ca. 710 mm2 Die-Größe), also beim 426-Fachen angelangt, da stimmt der Verdopp-lungsfaktor alle zwei Jahre für die Komplexitätnoch immer recht gut. Das sind allerdingsauch Riesenchips. Bei der reinen Transistor-dichte gehts hingegen nicht so schnell: eineVerdoppelung nur etvva alle 2,6 Jahre.

Richtig problematisch wird es jedoch mitder werbewirksamen Performance-Aussagedes ,,House-Moore'schen Gesetzes". Seit gutzehn Jahren gibt es mit den Mehrkern-prozes-soren nämlich eine Aufspaltung in zwei Zwei-ge: Single-Threaded und Multi-Threaded. Die

Single-Thread-Performance hat sich seit Ein-führung des Benchmark SPEC CPU2006 Mitte2006 - clt-like gemessen ohne verfälschendeAutoparallelisierung der Compiler - nicht ein-mal vervierfacht. Das entspricht allenfallseiner Verdopplung alle 5 Jahre - also weit,weit weg von den ursprünglich mal postulier-ten 18 Monaten. Der Hauptgrund dafür liegtvor allem in dem abrupten Ende desMoore'schen Geseaes für den Prozessortakt.Anfang der 2000er Jahre geriet der nach einerstürmischen Steigerungsrate im Wettbewerbmit AMD nahezu abrupt in eine,,Sättigung" -nach dem Pentium-4-Desaster mit viel zuhohem Energieverbrauch.

Nur wenn die Prozessoren ihre vielenKerne in Stellung bringen können, lässt sichHouse-Moore hoch ansatzweise retten. Vonden rund 19 SPECint_rate2006base des Pen-tium D 940 (Presler, 65 nm, 162 mm2,376Mio. Transistoren) im Jahre 2006 bis zu den669 SPECint_rate2006base des Xeon 2699v3(Haswell-EP, nur ein Chip,22 nm, 662 mm2,5,56 Mrd. Transistoren) im März 2015. Damitkommt man aut eine Verdopplungszeit von2l Monaten. Und das ist schon sehr ge-

Transistorzahlen gä ngiger prozestoren

Die Transistorzahl der größten Chips mit einer Verdoppelung et\ /a allezwei Jahre wird meist als,,das" Moor'sches Gesetz interpretiert.

E lE+r0

-9

§ rr+oeF

1E+08

10 000 000

t 000000

. @ lntelS{1386. l

100000 @ lntet80286

" elntel8086

10 000

@ lnrel 8080@htel4oo4

62-(oreXmn phi 72.(ore leon phi Xl,lL

10-(oreXeon Wertmere.U^ O 9"]- et lö-qxeleon HaswetFU,e e6{orExeon7400

-e eG(ore oPtelor 2400

Itanium2i4dinleye" @Core2Duo

@ pentium 4

PiäiitimFioai :gÄäDK6 '':''' ' .'-- -t '"-"" '

€ Pefiium

@ lntel80186

r@0 r----t-1970 1975

lt1975 1985

,rry1990 199s 2000 2005 2010 2015 2020

73

M ittlere Single-Thread-Performa nce

.lqG*:.ryg+-, -

hes Geset2

Moore's Law in der Performance-Variante von Dave Houseist für Single-Thread-Applikation'en schon längst ungültig.

E 1000

,f

Größe einer 6T-SRAM-ZeIle

Die Größe einer SRAM-Bitzelle aus 6 Transistoren ist einbeliebtes Maß für den Herstellungsprozess.

t loo

@ @Ne$2997y3...e

^eO e@@@ - Xeon 5160 lGHz

€ Pentium 4 16Hz

@@6

20152005

Eine typische SRAM-Ze|le besteht aus ins-gesaÄi sechs MoSFET-Transistoren. ln der2ellenmitte ist der eigentliche Speicher,bestehend aus zwei über kreuz gekoppel-ten lnvertern, ein jeder art

"ineir pUöS-

Pull-Up- (PU) und einem NMOS-Pull-Down-Transistor (PD). Hinzu kommen zweiweitere NMOS-Transistoren (Pass Gate PG),die den Speicher an die Lese/Schreiblei-tungen ankoppeln. lm 3D-Prozess könnendie Transistoren aber nicht mehr beliebigpositioniert oder auseinandergezogenwerden, ihre Größen sind hier quantisiert

Längen oder Breiten ist die Moore'sche Ratehalb so hoch wie bei der proportional zurFläche verlaufenden Transistorzahl. Eine Hal-bierung der Strukturbreite sollte demnachetwa alle vier Jahre stattfinden. Das ent-spricht lntels Tick-Tock-Modell mit einemShrink-Faktor von 1,4 alle zwei Jahre.

Dieses Moore'sche Gesetz wurde schonhäufig für tot erklärt, aber mit ,,schwarzerMagie" immer wieder am Leben gehalten,mit Zaubertränken, die sich solcher Hog-warts-Rezepturen wie Optical Proximity Cor-rection, Phase-Shift-Masks, lmmersion, MultiPattern uhd so weiter bedienen, um mitgrobem 193-nm-Laserlicht Strukturen vonbis hinab zu l4 nm zu malen. Das ist so, alswenn man mit einem Vorschlaghammer feinziselierte Ornamente auf eine Metalloberflä-che meißelt. Diskret mitgeholfen habendabei auch die diskreten Mathematiker, ins-besondere diejenigen aus Bonn, deren kom-binatorische Optimierungs-Tools (,,Bonn-Tools") unerlässlich sind, wenn man Aber-millionen von Transistoren platzieren mussmit Routing, Timing, Taktbäumen und alldiesen Dingen.

Bislang hat es damit dann allen Unken-rufen zum Trotz doch weitgehend geklappt,jedenfalls wenn man die sogenannten Tech-nologieknoten von 90 bis hinab auf 14 nm

als Maß heranzieht. Diese Knoten kann manallerdings recht freizügig definieren. Die tat-sächlichen physikalischen Kenngrößen wieGatterlänge, lnterconnect-Abstand und soweiter hängeh nur noch mittelbar davgn ab.Außerdem ist mit dem von lntel schon voll-zogenen Umstieg auf 3D-Strukturen und so-genannte FinFet- oder Trigate-Transistoreneine weitgehende Uminterpretation vielerKennwerte nötig.

Als beliebte Beschreibungsgröße in derChip-Szene hat sich die Fläche einer SRAM-Zelle aus sechs Transistoren herauskristalli-siert. Diese Größe hat den Vorteil, dass mansie auch wirklich nachmessen kann - okay,nicht jeder, aber die darauf spezialisierte ka-nadische Firma Chipworks. Bei den neuen3D-Prozessen gibt es aber sehr unterschied-liche Transistorgrößen, je nach gewünschterOptimierung. Beim 22-nm-Prozess kann manso zwischen High Density/Low Leakage mit0,092 pm2,,Low Voltage mit 0,108 pm2 undHigh Speed mit 0,'130 pm2 wählen. Die mitt-lere Größe bei 14 nm beträgt 0,0588 pm2, dieanderen beiden müssten 0,05 pm2 und 0,07

;"rm2 betragen. Für 10 nm sind sie derzeitnoch nicht bekannt.

Noch viel Platz

Dieser 10-nm-Prozess, der weiterhin kunst-voll mit obigem Laserlicht ziseliert wird, liegegut im Zeitplan, so lntels HerstellungsleiterMark Bohr. Während sein ehemaliger KollegeBob Colwell, der legendäre Schöpfer derlntel-P6-Architektur, ein Ende des Moo-re'schen Herstellungsgesetzes bis spätestens2023 vorhersagt, sieht Bohr in den nächsten10 Jahren keine Anzeichen dafür. Weiteressei zwar noch nicht abzusehen, man verfolgeaber erfolgversprechende Ansätze, so Bohrin einer Telefonkonferenz. Allgemein siehtdie Chipszene auch 7 nm noch volloptischauf Basis von ASMLs NXT-Technologie. So ab5 nm könnte dann extreme UV-Technik(ASML NXTE) hin2ukommen, wahrscheinlichin einem Hybrid-Prozess,je nach Layer. EUVist derzeit für die Massenproduktion immernoch nicht so ausgereift wie gewünscht. Es

mit ganzzahligen Vielfachen ihrer Fin-Länge. Die unterschiedlichen Größen-verhältnisse kennzeichnet man dann mitPU:PG:PD.

Hiermit lassen sich verschieden optimierteSRAMs herstellen. 1:1:1 steht für die dich-test mögliche Packung (LP, O,Og2 !rm2). siereicht bei lntels 22-nm-Prozess und bei1 Volt Spannung für bis zu 2,6 GHz.I:1:2 istein bisschen größer (SP,0108 pm2) undkommt auf 3,5 GHz und i :2:3 steht für HighPerformance bis 4,6 GHz (HP, 0,130 pm2).

_ Pentium 75.

2010 2015 2020

schönt, denn bei CPU2006 wird einfach n-mal der gleiche Job parallel gestartet. Übli-che Mu lti-th readed-Anwend ungen erfordernjedoch zumeist Kommunikation und Syn-chronisation dei Threads untereinander,dabei sackt die Multikern-Performance mit-unter deutlich ab. Und es gibt weiterhin einegroße Zahl von Algorithmen und Program-men, die sich nicht oder nur sehr schlecht pa-rallelisieren lassen. Für die ist jeglichesMoore'sche Gesetz schon längst Geschichte.

Die Moore'sche Version für die Supercom-puter wird gerne durch die mittlere Linpack-Performance der Supercomputer in der Top-500-Liste ausgedrückt. Die Gesamtperfor-mance aller Systeme in dieser Liste stieg von1993 bis 20'l 3 ziemlich konstant um etwa84 Prozent pro Jahr, entsprechend einer Ver-doppelungsrate alle 13,6 Monate - und dasist deutlich mehr als House-Moore. Doch inden letzten beiden Jahren ist ein Bruch er-kennbar, die Steigerung betrug zuletzt gera-de mal schlappe 23 Prozent pro Jahr.

Ein morsches Gesetz?

Das meist diskutierte Moore'sche Gesetz be-zieht sich jedoch auf die Chip-Herstellung,insbesondere auf die Chip-Strukturen. Fürdie Verkleinerung solcher Kenngrößen wie

, Die 6T-SRAM-Bitzelle

74 c'r2015, Heft 10

Page 30: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

30

3. Compiler – rechts von/oberhalb der HW-SW-Schnittstelle

Def. Ein Compiler uberfuhrt ein Programm in Quellsprache, etwain einer Problem-orientierten Programmiersprache, in ein aquivalentesProgramm in einer Zielsprache, etwa in Maschinensprache. Die Uber-setzung kann in mehreren passes erfolgen und Programme in Zwi-schensprachen erzeugen.

Referenzen:

• Aho, Sethi & Ullman: Compiler (das Drachenbuch)

• Nicolaus Wirth: Compiler; Teubner

3.1. compiler & Konsorten

compile – assemble – link – load (s. Bild COD, p156)

vgl. WinDLX mit Compiler C → DLX-Assembler

Page 31: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 31

Assembler

Assembly language program

Compiler

C program

Linker

Executable: Machine language program

Loader

Memory

Object: Machine language module Object: Library routine (machine language)

Page 32: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 32

• compiler passes

Untersuche EVA fur jeden compiler pass, d.h.

untersuche, welche Darstellung des Programmes ein jeder compilerpass in welche andere Darstellung des Programmes uberfuhrt undwelche Daten dabei verwendet bzw. erzeugt werden.

Page 33: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 33

?

?

?

?

?

?

?

?

6

Fehler-Datei

Quellprogramm P

lexikalische Analyse

Folge PP vonGrundsymbolen

syntaktische Analyse

abstrakter Baum A

semantische Analyse

attributierter ab-strakter Baum AA

Optimierung

modifizierter attri-butierter Baum modA

Ubersetzung

Programm PZ inZwischensprache Z

Code-Erzeugung

ObjektprogrammMP

Optimierung

ObjektprogrammoptMP

Umgebung( ”-variable)

?

?

?

-

-

-

6

Symbol-tabelle

Konstanten-tabelle

Optimierungs-tabelle

. . .

?Testhilfen-Tabelle

Page 34: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 34

3.2. Code-Optimierung

• Kontext-unabhangige lokale Optimierung,

• Registerzuteilung, Variablen-Zuweisung, Parameter-Ubergabe,

• Elimination von redundanten Sprungen, von redundanten Aus-drucken, von totem Code und von gemeinsamen Teilausdrucken,

• Verbreitung von Kopien von Konstanten und Variablen – (con-stant propagation, variable propagation)

• Berechnung konstanter Ausdrucke zur Compile-Zeit (constantexpression folding),

• Reduktion der Starke (langsame Operationen durch schnellereersetzen) (strength reduction),

• Schleifen Rotation, Beseitigung von Schleifenvariablen, Aufrol-len von Schleifen (loop unrolling/unfolding),

• Optimieren von Prozedur-Aufrufen und -Rucksprung

• inline functions (C++), usw. usf.

Page 35: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 35

• lexikalische Analyse

Die lexikalische Analyse uberfuhrt das statement U = 2 * r * PI;

des Quell-Programmes in die Folge

(Bez,U)

(Sym,=)

(Ziffer,2)

(Sym,*)

(Bez,r)

(Sym,*)

(Bez,PI)

(Sym,;)

Dabei werden Kommentare entfernt, die Symbol-Tabelle gefullt, etc.

Page 36: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 36

• syntaktische Analyse

Die syntaktische Analyse erzeugt aus dieser Folge einen abstraktenBaum.

assign

ID MULU

MUL ID PI

ID ID2 r

Page 37: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 37

• semantische Analyse

Die semantische Analyse versieht den abstrakten Baum mit zusatzli-chen Attributen.

assign

ID MUL

(TYPE, real)

(SYMBOL,$U)

(TYPE,real)

MUL ID

(TYPE,int)

(SYMBOL, $PI)(TYPE,real)

ID ID(SYMBOL,$2)

(TYPE,int)

(SYMBOL,$r)

(TYPE,int)

Page 38: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 38

• Ubersetzung in Zwischensprache

Gegebenenfalls nach einer Optimierung wird dieser Baum in eineMaschinen-unabhangige Zwischensprache ubersetzt:

mul_int, $2, $r, $tempint

conv_ir, $tempint, $tempreal1

mul_real, $tempreal1, $PI, $tempreal2

assign, $tempreal2, $U

Page 39: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 39

• Code-Erzeugung

Aus diesem Zwischencode wird nun der Maschinen-Code der Ziel-Maschine erzeugt, etwa

LOAD, R1, 2

MULINT, R1, mem[ADR[r]]

CONV_IR, R1

MULREAL, R1, mem[ADR[PI]]

STORE, R1, ADR[U]

und gegebenenfalls optimiert.

Wenn typischerweise 90% der Laufzeit in 10% des Codes verbrachtwird, ist es sinnvoll, diese 10% des Codes zuerst zu optimieren: z.B.innere Schleifen.

Page 40: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 40

• Beispiel: Quicksort

Verschiedene Optimierungen seien am Beispiel von Quicksort, vgl. et-wa http://wapedia.mobi/en/quicksort, demonstriert.

Fur das folgende C-Programm sei zunachst die Aufteilung des Pro-gramms in Blocke dargestellt.

z.H. Was ist ein Block? oDrei beispielhafte Optimierungsschritte werden dann am Code in Zwi-schensprache illustriert.

Page 41: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 41

void quicksort(m,n) // sortiere Feld a[i] fuer i=m,m+1,...,n

int m,n;

{

int i,j; int v,x;

if (n<=m) return;

// Anfang des zu optimierenden Teils

// auch andere Setzung von v moeglich, z.B. v=a[(n+m)/2]

i=m-1; j=n; v=a[i]; // B1

while (1)

{

do i++; while (a[i]<v); // B2

do j--; while (a[j]>v); // B3

if (i>=j) break; // B4

x=a[i]; a[i]=a[j]; a[j]=x;// B5

}

x=a[i]; a[i]=a[n]; a[n]=x; // B6

// Ende des zu optimierenden Teils

quicksort(m,j); quicksort(i+1,n);

}

Page 42: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 42

• Beispiel: Quicksort – ohne Optimierung

nicht optimierter codei:=m-1

j:=n

t1:=4*n

v:=a[t1]

Block B1(init)

?

i:=i+1

t2:=4*i

t3:=a[t2]

if t3<v goto B2

Block B2(1. do loop)

?

j:=j-1

t4:=4*j

t5:=a[t4]

if t5>v goto B3

Block B3(2. do loop)

?

if i>=j goto B6}

Block B4 (break while)

? ?

t11:=4*i

x:=a[t11]

t12:=4*i

t13:=4*n

t14:=a[t13]

a[t12]:=t14

t15:=4*n

a[t15]:=x

Block B6

(swap)

?

t6:=4*i

x:=a[t6]

t7:=4*i

t8:=4*j

t9:=a[t8]

a[t7]:=t9

t10:=4*j

a[t10]:=x

goto B2

Block B5(swap)

Page 43: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 43

Beispielsweise in Block B5 werden (Index-) Ausdrucke mehrfach be-rechnet: verwende also t6 bzw. t8, anstatt t7 bzw. t10 erneut zu be-rechnen.

Page 44: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 44

• Beispiel: Quicksort – 1. Optimierung

in B5 und B6 lokal optimierter codei:=m-1

j:=n

t1:=4*n

v:=a[t1]

Block B1(init)

?

i:=i+1

t2:=4*i

t3:=a[t2]

if t3<v goto B2

Block B2(1. do loop)

?

j:=j-1

t4:=4*j

t5:=a[t4]

if t5>v goto B3

Block B3(2. do loop)

?

if i>=j goto B6}

Block B4 (break while)

? ?

t11:=4*i

x:=a[t11]

t13:=4*n

t14:=a[t13]

a[t11]:=t14

a[t13]:=x

Block B6

(swap)

?

t6:=4*i

x:=a[t6]

t8:=4*j

t9:=a[t8]

a[t6]:=t9

a[t8]:=x

goto B2

Block B5

(swap)

Page 45: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 45

Kopien konnen nach Datenfluß-Analyse auch Block-ubergreifend ver-breitet werden!

Page 46: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 46

• Beispiel: Quicksort – 2. Optimierung

Block-ubergreifendesVerbreiten von Kopieni:=m-1

j:=n

t1:=4*n

v:=a[t1]

Block B1(init)

?

i:=i+1

t2:=4*i

t3:=a[t2]

if t3<v goto B2

Block B2(1. do loop)

?

j:=j-1

t4:=4*j

t5:=a[t4]

if t5>v goto B3

Block B3(2. do loop)

?

if i>=j goto B6}

Block B4 (break)

? ?

x:=t3

t14:=a[t1]

a[t2]:=t14

a[t1]:=x

Block B6(swap)

?

x:=t3

a[t2]:=t5

a[t4]:=x

goto B2

Block B5(swap)

Page 47: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 47

Block-ubergreifend wurde also t4 aus B3 verwendet (das laut Daten-fluß-Analyse nicht verandert wurde), anstatt t8 erneut zu berechnen.

z.H. Wovon hangt der Beschleunigungsfaktor aufgrund dieser Opti-mierung ab? o

• Variable heißen zu einem Zeitpunkt lebendig, wenn auf sie zueinem spateren Zeitpunkt noch einmal zugegriffen wird. Elimi-nation gemeinsamer Ausdrucke kann tote Variable erzeugen, dieeliminiert werden konnen.

• Verbreiten von Kopien bereitet weitere Optimierung vor: nachAusdrucken der Form g:=f ersetze im Programm-Text g aufrechten Seiten durch f .Z.B. die Anweisung x:=t3 in B5 wird durch Verbreiten von t3

zu totem Code, der eliminiert werden kann.

• Schleifen werden durch

– Code-Verschiebung (Schleifen-unabhangige Berechnungenvor die Schleife ziehen),

Page 48: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 48

– Eliminieren von Schleifen-Variablen in Ausdrucken zusam-men mit Reduktion der Starke (etwa Multiplikationen durchmehrfache Additionen ersetzen)

optimiert.Z.B. Ersetzen von t4:=4*j in B3 durch t4:=t4-4 mit der nunnotwendigen Initialisierung t4:=4*j in B1.

Page 49: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 49

• Beispiel: Quicksort – 3. Optimierung

Reduktion der Starkein Verbindung mit

Elimination der do loop Variablen

i:=m-1

j:=n

t1:=4*n

v:=a[t1]

t2:=4*i

t4:=4*j

Block B1

(init)

?

t2:=t2+4

t3:=a[t2]

if t3<v goto B2

Block B2(1. do loop)

?

t4:=t4-4

t5:=a[t4]

if t5>v goto B3

Block B3(2. do loop)

?

if t2>=t4 goto B6}

Block B4 (break while)

? ?

t14:=a[t1]

a[t2]:=t14

a[t1]:=t3

Block B6(swap)

?

a[t2]:=t5

a[t4]:=t3

goto B2

Block B5(swap)

Page 50: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 50

z.H. Prufe die Kontext-Neutralitat dieses Optimierungsschrittes. oOptimierung bislang in welchen compiler passes?

Optimierende Compiler erzeugen also Code, dessen Struktur sich starkvon derjenigen des Quellprogrammes unterscheidet – mit der einenFolge, daß Fehler schwieriger zu erkennen sind.

Page 51: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 51

• Code-Erzeugung & Optimierung

• Verwaltung von Variablen im Speicher

• und Binden von Variablen an Register

abhangig! Datenfluß-Analyse notwendig! Ziele?

Variable t, u, v, w, x, y, zund ihre Lebensdauern

1 t u2 t u v3 t u v w4 t u v w x5 u v w x6 u v w x y7 u w x y8 u w x y z9 u y z

Zeit

vier Register in Speicherrot grun blau gelb auszulagern

1 t u2 t u v3 t u v w4 t u v w x5 u v w x6 y u v w x7 y u w x8 y u z w x9 y u z

Page 52: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 52

C-Programme Anweisungen in % Speicher-Zugriffe(Patterson 1982) Quellsprache Maschinensprache %Prozeduren 12 33 45Schleifen 3 32 26Zuweisungen 38 13 15Alternativen 43 21 13sonstige Befehle 4 1 1

Unterschiedliche ’architektonische’ Antworten auf

• Prozedur-Aufruf mit Parameter-Ubergabe: Register-Fenster

• Prozeß-Wechsel mit Kontext-switch: multiple Register-Satze

Page 53: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 53

10 regs for global variables

6 regs for in/out params

10 regs for local vars

6 regs for in/out params

10 regs for local vars

6 regs for in/out params

10 regs for local vars

6 regs for in/out params

10 regs for local vars

6 regs for in/out params

10 regs for local vars

6 regs for in/out params

10 regs for local vars

6 regs for in/out params

10 regs for local vars

6 regs for in/out params

10 regs for local vars

RISC I

8 Fenster a 32

32bit Register

SPARC

8 regs for global variables

8 regs for in/out params

8 regs for local vars

8 regs for in/out params

8 regs for local vars

8 regs for in/out params

8 regs for local vars

8 regs for in/out params

8 regs for local vars

8 regs for in/out params

8 regs for local vars

8 regs for in/out params

8 regs for local vars

8 regs for in/out params

8 regs for local vars

8 regs for in/out params

8 regs for local vars

Vorteile/Nachteile?

Page 54: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 54

3.3. Resumee

(optimierende) Compiler sind fur Prozessor-Leistung entscheidend!

RISC = Relegate Important Stuff to the Compiler

Ziel von Optimierung: schnellerer Code und/oder weniger Speicher!Optimierung liefert verbesserten, aber sicher nicht optimalen Code!Beschleunigungsfaktoren β aufgrund von optimierendem Compiler:

typischerweise 1.00000001 < β < 4 oder mehr!

Maschinen-unabhangige Optimierung: redundanten Code ent-fernen, toten Code entfernen, Kopien verbreiten, Berechnungenan seltener ausgefuhrte Stelle verschieben, etc.

Maschinen-abhangige Optimierung: Register-Zuweisung verbes-sern, sowohl Reduktion der Starke als auch exotische Instruk-tionen verwenden, Latenz verbergen, etc.

Z.B. loop unrolling/unfolding bei Matrix-Multiplikation

Page 55: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 55

3.4. z.B. Matrix-Multiplikation

• Matrix-Multiplikation – pure

C = AB fur n× n-Matrizen A = (ai,j), B = (bi,j) und C = (ci,j)

mit ci,j =∑n−1k=0 ai,kbk,j

for(i=0; i<n; i++)

for(j=0; j<n; j++)

{sum = 0.0;

for(k=0; k<n; k++) sum += a[i,k]*b[k,j];

c[i,j] = sum;

}

• 2n3 fl op, ≈ n3 (branch und loop increment und jump)

• pro Iteration in k-loop: 2 load und 2 fl op und 1n store

Page 56: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 56

• Matrix-Multiplikation – 4-fach

n× n-Matrizen A, B und C = AB cache lines a 4 words

for(i=0; i<n; i++)

for(j=0; j<n; j++)

{ register float sum = 0.0;

for(k=0; k<n; k++) // n mod 4 = 0

{ sum+ = a[i,k]*b[k,j];

k++; sum+ = a[i,k]*b[k,j];

k++; sum+ = a[i,k]*b[k,j];

k++; sum+ = a[i,k]*b[k,j];

}c[i,j]=sum;

}

• 2n3 fl op, ≈ n3 loop increment, ≈ 14n

3 (branch und jump)

• pro Iteration in k-loop: 8 load und 8 fl op und 4n store

• a[i,k] aus cache line; dagegen b[k,j] problematisch!

Page 57: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 3: Compiler – rechts von/oberhalb der HW-SW-Schnittstelle 57

• Matrix-Multiplikation – 4-fach, 4-fach cache s.o.

for(j=0; j<n; j++) // n mod 4 = 0

for(i=0; i<n; i+=4) // precompute i+1, i+2, i+3 ...

{ c[i,j] = c[i+1,j] = c[i+2,j] = c[i+3,j] = 0.0;

for(k=0; k<n; k+=4) // precompute k+1, k+2, k+3 ...

{ c[i,j] += a[i,k]*b[k,j]+a[i,k+1]*b[k+1,j]

+a[i,k+2]*b[k+2,j]+a[i,k+3]*b[k+3,j];

c[i+1,j] += a[i+1,k]*b[k,j]+a[i+1,k+1]*b[k+1,j]

+a[i+1,k+2]*b[k+2,j]+a[i+1,k+3]*b[k+3,j];

c[i+2,j] += a[i+2,k]*b[k,j]+a[i+2,k+1]*b[k+1,j]

+a[i+2,k+2]*b[k+2,j]+a[i+2,k+3]*b[k+3,j];

c[i+3,j] += a[i+3,k]*b[k,j]+a[i+3,k+1]*b[k+1,j]

+a[i+3,k+2]*b[k+2,j]+a[i+3,k+3]*b[k+3,j];

} }

• 2n3 fl op, ≈ n3 loop increment, ≈ 116n

3 (branch und jump)

• pro Iteration: einmal (8 load & 8 fl op), dreimal (4 load & 8 fl op)

• a[i,k] aus cache line; b[k,j] und c[i,j] re-used!

Page 58: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

58

4. Befehlssatz – links von der HW-SW-Schnittstelle

Def. Der Befehlssatz (instruction set) ist die hardware/software-Schnittstelle eines Prozessors ...

Was sagt der Befehlssatz uber einen Prozessor aus? ,

Ein minimales Beispiel:Z.B. Der single instruction computer (SIC) kennt nur eine einzigeInstruktion: subtract and branch if negative, SBN mit

sbn a,b,c; // Mem[a]-=Mem[b]; if (Mem[a]<0) goto c. cz.H. Konstanten, Move, Addition, Multiplikation im SIC? oz.H. Inwiefern ist der SIC ein vollwertiger Computer? um welchenPreis? oz.H. Gibt es ein maximales Beispiel? o

Page 59: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 59

4.1. Klassifikation

Es gibt (mindestens) vier unterscheidende Merkmale fur Befehlssatze:

• wie und wieviele Operanden sind in CPU gespeichert?

• wie werden Operanden addressiert?

• welche Operationen werden auf welchen Operanden ausgefuhrt?

• welche und wieviele Formate haben die Befehle?

• Wieviele Operanden sind in CPU gespeichert?

Man unterscheidet

• Akkumulator-Architektur

• Stack-Architektur

• Register-Architektur

Page 60: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 60

Akkumulator-Architektur : Ein Operand liegt implizit im Akku-mulator, das Ergebnis wird im Akkumulator abgelegt.

Beispiele sind PDP8, Motorola 6809 oder viele µ-Prozessoren.

Z.B. Die Zuweisung C = A+B lautet in Maschinen-Sprache

load A;

Add B;

Store C; cStack-Architektur : Operanden liegen implizit auf einem Stapel, Er-

gebnisse werden auf Stapel abgelegt.

Beispiele sind Burroughs B5500, HP3000 oder Pascal-Engine(vor PC), Java-VM.

Z.B. Die Zuweisung C = A+B lautet in Maschinen-Sprache

Push A;

Push B;

Add;

Pop C; c

Page 61: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 61

Register-Architektur : Operanden und Ergebnisse liegen in Regis-tern.

Beispiele sind IBM /360 oder DEC VAX oder aktueller In-tel 80x86 mit 8, 68040 mit 16, PowerPC mit 32, MIPS, DLX mit32, MIPS R2000 mit 32, RISC I mit 32 von 138 oder SPARCmit 32 von 136, pico-Java mit 64, MMIX mit 256 Allzweck-Registern!64-bit AMD-Prozessoren mit 32, IA64 mit ? Allzweck-Registern(SSE, AVX)!

Z.B. Die Zuweisung C=A+B lautet in Maschinen-Sprache

register-memory

Load R1,A;Add R1,B;Store C,R1;

load/storeLoad Ra,A;Load Rb,B;Add Rc,Ra,Rb;Store C,Rc;

cZ.B. Der Intel 80x86-Befehlssatz enthalt auch PUSH und POP-Befehle. Die 80x86-Register sind nur bedingt Allzweck-Register!

Page 62: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 62

cz.H. Klassifiziere die GK-Operationen der Intel 80x86-Prozessor-Familie. oz.H. Klassifiziere µ-Controller- und DSP-Befehlssatze. o

Exkurs: JavaVM – die Java Virtual Machine

ISA s.a.www.weblearn.hs-bremen.de/risse/RST/docs/JavaVM/vmspec.pdf

Das C = A+B Beispiel, hier fur die JavaVM (www.artima.com/insidejvm/ed2/jvm8.html)

iload_0 // push the int in local variable 0, i.e. A

iload_1 // push the int in local variable 1, i.e. B

iadd // pop two ints, add them, push result

istore_2 // pop int, store into local variable 2, i.e. C

weitere Beispiele zur Illustration der JavaVM-ISA

Page 63: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 63

class Act {

public static void doMathForever() { int i = 0;

for (;;) { i += 1; i *= 2; }

}}

mit Byte-Code (www.artima.com/insidejvm/ed2/jvm10.html)

// Bytecode stream: 03 3b 84 00 01 1a 05 68 3b a7 ff f9

// Method void doMathForever()

// Left: offset of instruction from beginning of method

// | Center: instruction mnemonic and any operands

// | | | Right: comment

0 iconst_0 // 03

1 istore_0 // 3b

2 iinc 0, 1 // 84 00 01

5 iload_0 // 1a

6 iconst_2 // 05

7 imul // 68

8 istore_0 // 3b

9 goto 2 // a7 ff f9

Page 64: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 64

class SquareCircle {

static void squareItForever() {

float f = 2;

for (;;) { f *= f; f = 0 - f; }

}

}

mit Byte-Ccode (http://artima.com/insidejvm/applets/CircleOfSquares.html)

0 fconst_2 // Push float constant 2

1 fstore_0 // Pop to local variable 0 (float f = 2;)

2 fload_0 // Push local variable 0 (float f)

3 fload_0 // Push local variable 0 (float f)

4 fmul // Pop top two floats, multiply, push result

5 fstore_0 // Pop to local variable 0 (float f *= f;)

6 fconst_0 // Push float constant 0

7 fload_0 // Push local variable 0 (float f)

8 fsub // Subtract top float from next to top float

9 fstore_0 // Pop result to local variable 0 (float f=0-f;)

10 goto 2 // Jump back to the first fload_0 instruction

Page 65: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 65

4.2. Register-Architekturen

Wegen der Vorteile schneller Register in den letzten Jahren nur nochUniversal-Register-Maschinen mit – als einem wichtigen Unterschied– dyadischen oder triadischen ALU-Befehlen sowie mit verschiedenerLokalisation der Operanden:

Register-Register-Operationen – auch load/store – mit einfacher De-kodierung, einfacher Code-Erzeugung, ahnlichen Ausfuhrungs-zeiten; jedoch mit großerer Anzahl von abzuarbeitenden Befeh-len

Register-Speicher-Operationen mit Zugriffen ohne Laden; jedoch un-terschiedliche Ausfuhrungszeiten

Speicher-Speicher-Operationen mit kompaktem Code; jedoch mit un-terschiedlichen Ausfuhrungszeiten und Speicher-Engpaß.

Page 66: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 66

• Beispiele

gpr Architektur Jahr gpr Architektur JahrEDSAC 1 accumulator 1949 Intel 8086 1 extended accu 1978IBM 701 1 accumulator 1953 Motorola 68000 16 reg–mem 1980CDC6600 8 load/store 1963 Intel 80386 8 reg–mem 1985IBM /360 16 reg–mem 1964 MIPS 32 load/store 1985DEC PDP-8 1 accumulator 1965 HP-PA RISC 32 load/store 1986DEC PDP-11 8 reg–mem 1970 SUN SPARC 32 load/store 1987Intel 8008 1 accumulator 1972 Power-PC 32 load/store 1992Motorola 6800 2 accumulator 1974 DEC Alpha 32 load/store 1992DEC VAX 16 reg/mem–mem 1977 JAVA-VM 0 stack 1995

und zwar ist die Anzahl der Argumente arithmetisch-logischer In-struktionen im Speicher bei SPARC, MIPS, PA, PowerPC sowie Al-pha jeweils 0 von maximal 3, bei Intel 80x86 sowie Motorola 68000jeweils 1 von maximal 2 und bei der VAX 2 von maximal 2 bzw. 3von maximal 3 Operanden.

z.H. Klassifiziere die Operationen von µ-Controllern und DSPs. o

Page 67: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 67

4.3. Adressierung

In aller Regel arbeiten heutige Rechner byte-adressiert, und zwar

big endian Byte mit Adresse x..x00 an der most significant positionim Wortz.B. IBM /360, MIPS, Motorola, SPARC, DLX

little endian Byte mit Adresse x..x00 an der least significant posi-tion im Wortz.B. DEC VAX, DEC RISC, Intel 80x86.

Def. Ein Zugriff auf ein Datum der Lange s Byte, ab der Byte-Adresse A ist aligned genau dann, wenn A mod s = 0 sonst misaligned.

Page 68: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 68

• Adressierungsarten

Diverse Adressierungsarten reduzieren die Anzahl der Befehle, machenaber gleichzeitig die Decodierung und damit den Prozessor komplexerund langsamer. So braucht der Motorola MC68020 bis zu 12 Taktenur fur bestimmte Adressierungen.

Art Beispiel Bedeutung Bemerkungregister Add R4,R3 R4+=R3immediate Add R4,#3 R4+=3 immediate-Große?displacement Add R4,10(R1) R4+=M[10+R1] lokale Variableregister indirect Add R4,(R1) R4+=M[R1] per pointerindexed Add R4,(R2+R3) R4+=M[R2+R3] Feld mit Base und Indexdirect/absolute Add R4,(1001) R4+=M[1001] static datamemory indirect Add R4,@(R3) R4+=M[M[R3]] linked listauto-increment Add R4,(R3)+ R4+=M[R3] sequentieller Zugriff auf

R3+=d Feldelemente, push/popauto-decrement Add R4,-(R3) R3—=d sequentieller Zugriff auf

R4+=M[R3] Feldelemente, push/popscaled Add R4,10(R2)[R3] R4+=M[10+R2+d*R3] sequentieller Zugriff auf

lok. Daten der Lange d

Page 69: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 69

Beim Entwurf ist beispielsweise festzulegen

• Anzahl zu benennender Register

• Große von Displacement und Immediate

• was noch alles?

Displacement und Immediate sind die haufigsten Adressierungsarten.

Z.B. Die Codierung der vielen Adressierungsarten der VAX illustrie-re eine ternaren Instruktion: add13 r1, 737(r2), (r3) addiert zwei32-bit integer bei einem OP-Code von 1byte. Address specifier enthal-ten in 4bit die Adressierungsart, in weiteren 4bit das zu verwendendeRegister: also 1byte fur r1, 3byte fur 737(r2), namlich 1byte specifierfur 16-bit displacement und 2byte displacement 737 und schließlich1byte specifier fur indirect (r3) – insgesamt also 6byte. MaximaleVAX-Befehlslange ist 53byte. cZ.B. DSPs mit Zugriff auf Ring-Puffer, z.B. TI cz.H. Klassifiziere die Addressierungsarten von µ-Controllern. o

Page 70: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 70

4.4. Operationen

Klassifikation anhand der Funktionalitat und/oder des Daten-Typs

• arithmetisch-logische Befehle, wie integer add, sub oder and, or

• Datentransfer, wie load, store oder move

• Programm-Ablaufssteuerung, wie Verzweigungen, Sprunge, Unterprogramm-Sprunge und -Rucksprunge, traps

• Betriebssystem-Aufrufe, Speicher-Verwaltung

• Gleitpunkt-Befehle, d.h. arithmetische Operationen auf Gleit-komma-Zahlen, wie fadd, fmult oder fdiv (vgl. COD chapter4, IEEE 754, RST/docs/goldberg.pdf)

• Dezimal, d.h. arithmetische Operationen auf BCD-Zahlen

• String, d.h. Operationen auf Zeichenketten

• Varia, d.h. I/O, Graphik, transzendente Funktionen (80x86),insert/extract at resp. from head/tail of queue (VAX), Vektor-Instruktionen (Cray), Instruktionen, die Parallelitat auf Instruk-tionsebene nutzen (Intels MMX, AMDs 3Dnow, Intels ISSE),

Page 71: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 71

Befehlssatz-Erweiterungen wie SUN-SPARC visual instructionset (VISual)

• Befehlshaufigkeiten

Haufigkeiten von Befehlen und der Art ihrer Operanden (Typ, Adres-sierung, Sprungziele, ...) hangen von vielen Faktoren ab:

⇒ diverse Befehlsmixe, laut Hennessy/Patterson

DECstation 10% Verzweigungen, 40% load/store- sowie 50% ALU-Befehle

IBM /360 15% Verzweigungen, 20% load/store- und 65% ALU-Be-fehle

CA prasentiert detaillierte Messungen etwa fur Intel 8086 Prozessoren.

Das Haufige schnell machen!

Page 72: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 72

• Befehlshaufigkeiten und -Merkmale

Befehle, die den Programmfluß verandern: 2/3 branches, 1/6 jumps,1/6 jump to/return from subroutine

Ziele von Verzweigungen sind meist PC-relativ (3/4 vorwarts, 1/4ruckwarts). Der mittlere Verzweigungsabstand betragt weniger als 27

Befehle (abhangig von der mittleren Befehlslange).

2/3 Verzweigungsbedingungen ist EQ/NE (zero), wobei Bedingung

• in Bedingungscode-Bits gespeichert ist(condition code etwa im Prozessor-Status-Wort),

• in allgemeinen Registern gespeichert oder in komplexeren‘test and branch’-Befehlen zur Verfugung gestellt ist.

Wie bedingen sich maximale Sprungweite bei unbedingten Sprungenund das Befehlsformat gegenseitig?

Bei Unterprogramm-Sprungen muß zumindest die Ruckkehr-Adresse– zumeist auf dem Stack – gerettet werden (wie auch die Register),gegebenenfalls auch hardware-gestutzt (z.B. per jal im DLX/MIPS)

Page 73: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 73

4.5. Anforderungen an Befehlssatze

Verschiedene Prozessoren haben teilweise sehr unterschiedliche Be-fehlssatze.

Z.B. Die IBM /370 hat 2-, 4- und 6-Byte-Befehle, die CDC CYBERHalb- und Ganzwort-Befehle bei einer Wortlange von 16 (?) Byte;DEC PDP11 und Motorola MC68020 Ein-, Zwei- und u.U. auch Drei-Wort-Befehle bei 2-Byte-Worten. c

4.6. z.B. DLX/MIPS-Befehlssatz

Der DLX und dem MIPS R2000 gemeinsam sind 32 Allzweck-Registera 32bit und 32 GK-Register a 32bit, load store Architektur, 32bitAdreß-Raum, flat memory;

z.H. Bewerte Umstand R0 = $0≡ 0 und DLX/MIPS-Instruktionenwie jal, jalr, b__zal. o

Page 74: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 74

• exemplarische, prototypische DLX/MIPS-Instruktionen

• exemplarisch fur (Klassen von) Instruktionen:

– Funktionalitat– Format/Codierung, Verwendung von op-code-Erweiterun-

gen (etwa op=0 fur bestimmte arithmetisch/logisch undSprung-Anweisungen, op=1 fur bestimme Verzweigungsan-weisungen, op=0x11 fur Gleitpunkt-Anweisungen)

• prototypisch fur Implementierung von Instruktionen

– single/multi cycle implementation– pipeline implementation

\index{addi}\index{MIPS!add}\index{MIPS!lw}\index{MIPS!beq}\index{MIPS!j}

ADDI Ra, Rb, #immd // Ra = Rb+immd

ADD Ra, Rb, Rc // Ra = Rb+Rc

LW Ra, offset(Rb) // Ra = Mem[Rb+offset]

BEQ Ra, Rb, label // If (Ra == Rb) goto label (PC-relativ!)

J label // goto label

Page 75: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 75

• DLX/MIPS-Formate

Byte Halfword Word

Registers

Memory

Memory

Word

Memory

Word

Register

Register

1. Immediate addressing

2. Register addressing

3. Base addressing

4. PC-relative addressing

5. Pseudodirect addressing

op rs rt

op rs rt

op rs rt

op

op

rs rt

Address

Address

Address

rd . . . funct

Immediate

PC

PC

+

+

Page 76: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 76

• DLX/MIPS-(Pseudo-)Instruktionen

• – displacement als einzige Adressierungsart fur Datenper lw, lh, lb bzw. sw, sh, sb

– lhi (load high immediate der DLX) bzw. lui (load upperimmediate des MIPS) zum Laden der oberen beiden byteseines 4-byte-Wortes

– Spezialitaten wie lwl (load word left) bzw. lwr (load wordright) sowie swl (store word left) bzw. swr (store wordright) fur den unaligned memory access

• – ternare arithmetisch-logische Befehle add, sub, s__, mitden immediate-Varianten addi, subi, s__i, wobei __ furlt, le, eq, ne, ge, gt steht

• – ternare Verzweigungen wie beq, bne mit immediate-Vari-anten beqz, bnez

– Sprung-Anweisungen j, und jal (im J-Format, s. S 77)sowie – nicht PC-relativ – jr (im R-Format! s. S 77)

Page 77: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 77

• Befehlsformate

Alle Instruktionen sind 4byte lang, was etwa bei der Sprungziel-Adres-sierung ausgenutzt wird. Es gibt i.W. nur drei Befehlsformate:

R-type OPcode6

Rs5

Rt5

Rd5

shamt5

func6

I-type OPcode6

Rs5

Rt5

immediate16

J-type OPcode6

jump offset26

Der MIPS OpCode spezifiziert die Instruktion vollstandig, außer fur dieOpCodes

0 arithmetisch-logische Befehle mit drei Operanden in integer Registern

1 branch on Rs zero wobei cond in Rt codiert ist

16-19 = 0x10+z Instruktionen fur coprocessor z = 0, 1, 2, 3

f (float) steht fur s (single) falls rs=16 und op=17, f (float) steht fur d(double) falls rs=17 und op=17. Im Feld rs steht z fur 0, 1, 2 oder 3,f alls op=17, 18, 19 bzw. 20. Falls z=0, so spezifiziert Instr[4-0] dieInstruktion; falls z=1, so spezifiziert funct die Instruktion mit f=s; ...

Page 78: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 78

10 0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

10 0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

10 0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

16 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0 f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1 f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2 f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3 f

op(31:26) j jal beq bne blez bgtz addi addiu slti sltiu andi ori xori lui z = 0 z = 1 z = 2 z = 3 lb lh lwl lw lbu lhu lwr sb sh swl sw swr lwc0 lwc1 lwc2 lwc3 swc0 swc1 swc2 swc3

rs (25:21) mfcz cfcz mtcz ctcz copz copz

(16:16) bczt bczt

tlbr tlbwi tlbwr tlbp rte

rt (20:16)

bltz bgez bltzal bgezal

cvt.s.f cvt.d.f cvt.w.f c.f.f c.un.f c.eq.f c.ueq.f c.olt.f c.ult.f c.ole.f c.ule.f c.st.f c.ngle.f c.seq.f c.ngl.f c.lt.f c.nge.f c.le.f c.ngt.f

funct(5:0) add.f sub.f mul.f div.f abs.f mov.f neg.f

funct(5:0) sll srl sra srlv srav jr jalr syscall break mfhi mthi mflo mtlo mult multu div divu add addu sub subu and or xor nor slt sltu

if z = l, f = d

if z = l, f = s

if z = 0

0 1

funct (4:0)

Page 79: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 79

• z.B. DLX/MIPS-shifts

6 5 5 5 5 6mnemonic op Rs Rt Rd sa fn semantic

sll Rd, Rt, sa 0 * Rt Rd sa 0 Rd = Rt << sasllv Rd, Rt, Rs 0 Rs Rt Rd 0 4 Rd = Rt << Rssra Rd, Rt, sa 0 * Rt Rd sa 3 Rd = Rt >> sasrav Rd, Rt, Rs 0 Rs Rt Rd 0 7 Rd = Rt >> Rssrl Rd, Rt, sa 0 * Rt Rd sa 2 Rd = Rt >> sasrlv Rd, Rt, Rs 0 Rs Rt Rd 0 6 Rd = Rt >> Rs

* ≡ unused (in MIPS ISA zeroed)

• logical: shift & mit Nullen auffullen

• arithmetic: shift mit Erhalt des Vorzeichens,d.h. mit Nullen oder Einsen auffullen

Page 80: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 80

• Klassifizierung des Befehlssatzes

DLX und MIPS R2000 und hoher sind typische RISC-Prozessoren

• mit wenigen ’einfachen’ Befehlen: 6bit opcode, basic instructionsonly (z.B. move Rd, Rs durch add Rd, Rs, R0 emuliert)

• mit load/store-ISA

• mit wenigen Datentypen: i.W. nur integer, float, double

• mit wenigen Adressierungsarten: nur displacement

• mit ziemlich homogenen Befehlsformaten: vgl. opcode, Rs, Rt

• mit fester Befehlslange: 32bit

z.H. Wende diese Kriterien zur Klassifikation von Befehlssatzen aufandere RISC-Prozessoren wie etwa PA, PowerPC, SPARC usw. an,s.a. http://www.weblearn.hs-bremen.de/risse/RST/docs/COD2E/WebExtns.ion/survey.pdf o

Page 81: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 81

4.7. z.B. Intel 80x86-Befehlssatz

Jeder Prozessor der Intel 80x86-Prozessor-Familie ist abwartskompa-tibel zu seinen Vorgangern, damit dieselbe software weitergenutzt wer-den kann (vgl. Bahring und Lieb et al sowie CA, chapter 4.4).

• Genealogie

1978 8086 wenige 16 bit Register, nicht Allzweck1980 8087 FP-co-Prozessor mit ca. 60 FP-Befehlen, stack orientiert1982 80286 24 bit Adreß-Raum, memory mapping, memory protection

1985 8038632 bit Register, 32 bit Adreß-Raumadded addressing modes, added operations ⇒ 8 Allzweck-Register

19891995

–80486 bisPentium (Pro)

nur 4 neue Befehle (multi processing, conditional move)

1997 MMX 57 neue Instruktionen: Multi Media eXtensions (SIMD)1999 ISSE Intel Streaming SIMD Extension: MMX plus SIMD float operations>2000 SSEx ISA-Erweiterungen: SSE2 (+144), SSE3 (+13)

z.H. Bewerte P4:NetBurst (2000), P4.HTT:hyperthreading (2002),trusted computing: LaGrande & TPM (2003), NX-bit (2004), mul-ti core Processors (2005) im Hinblick auf x86-ISA, AVX (2008 an-gekundigt, verfugbar 2011) o

Page 82: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 82

80x86-Register (ab 80386)

031

GPR 0EAX

GPR 3EBX

GPR 1ECX

GPR 2EDX

GPR 6ESI

Code segment pointerCS

Stack segment pointer (top of stack)SS

Data segment pointer 0DS

Data segment pointer 1 ES

Data segment pointer 2FS

Data segment pointer 3GS

GPR 7EDI

GPR 5EBP

GPR 4ESP

EIP Instruction pointer (PC)

EFLAGS Condition codes

Name Use

Page 83: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 83

• Register

Der Intel 8080 verfugte uber acht 8-bit-Register AL, AH, DL, DH,CL, CH, BL und BH sowie 16-bit SP und IP-Register (accumulatormachine).

1978 wurden die 8-bit Register im 8086 zu 16-bit Registern AX, DX,CX und BX zusammengefaßt (AX = Akku, CX = count register(LOOP), DX = data register (mult/div), BX = base address register.Es gibt Segment-Register CS (code), SS (stack) und DS (data).

Neben Registern wie IP (instruction pointer) und FLAGS (processorstatus) gibt es weitere 16bit-Register wie SP (stack pointer) oder BP(base pointer).

Quell-Index-Register source index (SI) und Ziel-Index-Register desti-nation index (DI) verwendet etwaMOVSB: M[ES:DI]=M[DS:SI]; DI++; SI++.

soviel zum Thema Allzweck-Register!

Page 84: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 84

Wegen des dedizierten Gebrauchs der Register ist der 8086 zwischenaccumulator und general purpose register machine zu platzieren,laut CA eine sogenannte extended accumulator machine.

Aus Grunden der Abwartskompatibilitat mußte aber immer noch auchauf die 8-bit Register zugegriffen werden konnen.

• Familien-Entwicklung

1980 erganzt der 8087 coprocessor 8 floating point register a 80bitund den Befehlssatz um 60 floating point instructions (extended stackarchitecture).1982 bietet der 80286 einen 24bit Adreßraum mit memory mappingand protection und dem real (addressing) mode fur die Abwartskom-patibilitat mit dem 8086.1985 erfullt dieselbe Anforderung auch der 80386 mit seinen 32-bitErweiterungen EAX, ECX, EDX und EBX der Register AX, CX, DXbzw. BX. Weiterhin gibt es zusatzliche 16-bit Segment-Register FSund GS sowie 32bit-Erweiterungen EIP, EFLAGS, ESP, EBP, ESIbzw. EDI der Register IP, FLAGS, SP, BP, SI bzw. DI.

Page 85: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 85

15 8 7 0 16 bitAH AL AXCH CL CXDH DL DXBH BL BX

CSSSDSESFSGS

Register

16 bit 32 bit

AX EAXCX ECXDX EDXBX EBXSP ESPBP EBPSI ESIDI EDI

FLAGS EFLAGSIP EIP

Befehlsformate

Byte\bit 7 6 5 4 3 2 1 0 Bem.1a OP-Code1b (1 oder 2 byte)2a Mod Reg R/M Mode Reg/Mem2b Scl IReg BReg ScaleIndexBase3a Address-Displacement...

...3d 0,1,2,3 oder 4 byte 3?4a Immediates...

.

.. 3?4d 0,1,2,3 oder 4 byte

Page 86: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 86

Das Register EFLAGS enthalt den Prozessor-Status (PSW) u.a. mitaligned, virtual mode, nested, i/o priviledge, overflow, direction, inter-rupt enable, trap, sign, zero, auxiliary carry, parity und carry flags;das Register EIP enthalt den Befehlszahler (instruction pointer, IP).⇒ wenige, namlich nur 8 Allzweck-Register!

• Adressierung

Die 16-bit Segment-Register CS (Code), SS (Stack) sowie DS, ES,FS und GS (Daten) stehen fur die Adressierung SR:X entsprechend(SR<<4)+X

address =CS ... GSsegment +

je EAX, ..., EDX, ESP, EBP, ESI, EDI

base address + (index ∗1, 2, 4 oder 8

scale factor) +in 0, 8, 32 bit

displacement

zur Verfugung. ⇒ mindestens vier Addressierungsarten!

Intel terminology address = restrictionregister indirect register reg 6= ESP, EBPbased mode with displacement base+displacement reg 6= ESP, EBPbase plus scaled index base+2scaleindex index 6= ESPbase plus scaled index with displacement base+2scaleindex+displacement index 6= ESP

Page 87: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 87

• Operationen

Dyadische arithmetisch-logischen Befehle (1.source=destination) mitallen Kombinationen bis auf Speicher–Speicher.

Befehle fur bit, byte, 16bit, 32bit, 64bit, float, double, bit-Felder bis32bit, word strings, 8bit BCD Zahlen, gepackt/ungepackt (SIMD)

⇒ dyadische Operationen auf vielen Datentypen!

• Befehlsformate

Instruktionslange zwischen einem und 12 bytes (im Fall des Intel 80486auch noch langer). OP-Code (incl. der Angabe uber die Langen derfolgenden Felder) und Register plus Adressierungsart (register, me-mory, scaled und index based) jeweils ein oder zwei Byte, Adress-Displacement und Immediates jeweils 0, 1, 2, 3 oder 4 Byte.

Page 88: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 88

• Befehlsprefixe

Es gibt optionale instruction-, address size-, operand size- und seg-ment override prefixes von je 1 byte Lange: instruction prefix enthaltWiederholungszahler incl. Abbruchbedingung, address- und operandsize prefix bestimmen Adreß- und Operanden-Lange (default ist 16bitim real und 32bit im protected mode), segment override prefix hebtdie implizite Segment-Register-Zuordnung fur den betreffenden Befehlauf. Prefixe machen 0 bis 4 byte aus, vgl. etwahttp://courses.engr.illinois.edu/ece391/references/patt-and-patel-appendix-B.pdf

Repeat/LockxF0 (LOCK) This prefix guarantees that the instruction will have exclusive use

of all shared memory until the instruction completes execution.xF2, xF3 This prefix allows the instruction (a string (REP/REPE/REP-

NE) instruction) to be repeated some specified number of times.The iteration count is specified by ECX. The instruction is alsoterminated on the occurrence of a specified value of ZF.

Segment overridex2E(CS), x36(SS)x3E(DS), x26(ES)x64(FS), x65(GS)

This prefix causes the memory access to use the specifiedsegment, instead of the default segment expected for thatinstruction.

Page 89: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 89

Operand size overridex66 This prefix changes the size of data expected for this instruction: in-

structions expecting 32-bit data elements use 16-bit data elements; in-structions expecting 16-bit data elements use 32-bit data elements.

Address size overridex67 This prefix changes the size of operand addresses expected for this in-

struction: instructions expecting a 32-bit address use 16-bit addresses;instructions expecting 16-bit addresses use 32-bit addresses.

• Beispiele fur 8086 Befehle

ADD AX,#4711 AX+=4711

JZ name bzw JNZ name if (CC=0) IP=name; bzw if (CC!=0) IP=name;

JMP name bzw JMPF name IP=name; (near bzw far)CALLF name,seg SP-=2;M[SS:SP]=CS;SP-=2;M[SS:SP]=IP+5;IP=name;CS=seg;

MOVSB M[ES:DI]=M[DS:SI]; DI++; SI++;

MOVW BX, [DI+123] BX=M[DS:DI+123];

PUSH SI SP-=2; M[SS:SP]=SI;

POP DI DI=M[SS:SP]; SP+=2;

SHL BX,1 BX*=2;

TEST DX,#42 CCflags=DX & 42

Page 90: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 90

• Beispiele fur 80386 Befehle

ADD EAX,#4711 EAX+=4711

JZ name bzw JNZ name if (CC=0) EIP=name; bzw if (CC!=0) EIP=name;

JMP name bzw JMPF name EIP=name; (near bzw far)CALL name SP-=4; M[SP]=EIP+5; EIP=name;

LOOP label ECX--; if (ECX) EIP+=label;

MOVSL M[EDI]=M[ESI]; EDI++; ESI++;

MOVW EBX, [EDI+123] EBX=M[EDI+123];

PUSH ESI SP-=4; M[SP]=ESI;

POP EDI EDI=M[SP]; SP+=4;

RET EIP=M[SP]; SP+=4;

TEST EDX,#42 CCflags=EDX & 42

Die mnemonics hangen auch vom verwendeten Assembler wie etwa nasm, GNUas

etc. ab! vgl. mov, movl, movsd o.a.

• LES reg, seg:offset; loads ES=seg and reg=offset

• ADD, SUB, CMP, OR, XOR, INC, DEC auch als reg-mem-Befehle

• CBW converts lsbyte of EAX to lsword of EAX (Akku);

• LODS loads a byte, word, double word of a string in EAX (Akku)

s.a. www.weblearn.hs-bremen.de/risse/RST/docs/Intel/

Page 91: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 91

• Beispiele fur Befehlsformate belegen ISA-Heterogenitat

JE

JE EIP + displacement

Offset

CALL

MOV EBX, [EDI + 45]

PUSH

PUSH ESI

ADD w

ADD EAX, #6765

Reg

4 4 8

6

8 32

5 3

4 13 32

Immediate

Condition

MOV

1

w

1

d

8 8

TEST EDX, #42

7 1 8 32

TEST Postbyte Immediatew

Reg

f.

e.

d.

c.

b.

a.

CALL

Displacementr-m

postbyte

Displacement

Page 92: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 92

• Dekodierung

Intel-Befehle sind aufwandig zu decodieren:

• viele Formate

• diverse Interpretationen des Postbyte m, reg, r/m, gesteuertvon mode m und w-Feld (width) im OP-Code (Fig. 3.35)

w=1

reg

w=

0

16b 32b0 AL AX EAX1 CL CX ECX2 DL DX EDX3 BL BX EBX4 AH SP ESP5 CH BP EBP6 DH SI ESI7 BH DI EDI

m=0 m=1 m=2r/m 16bit 32bit 16bit 32bit 16bit 32bit

0 =BX+SI =EAX1 =BX+DI =ECX same addr as in m=0 with2 =BP+SI =EDX disp8 disp16 disp323 =BP+DI =EBX4 =SI =(sib) SI+disp16 (sib)+disp8 SI+disp8 (sib)+disp325 =DI =disp32 DI+disp8 EBP+disp8 DI+disp16 EBP+disp326 =disp16 =ESI BP+disp8 ESI+disp8 BP+disp16 ESI+disp327 =BX =EDI BX+disp8 EDI+disp8 BX+disp16 EDI+disp32

Im mode m=3 wird ein Register genau wie im reg-Feld adressiert.

s.a. ag-vp-www.informatik.uni-kl.de/Papers/skriptrs1/Kapitel 10.pdf

s.a. www.cs.uiuc.edu/class/sp06/cs232/lectures/Examples/x86.pdf

s.a. www.jegerlehner.ch/intel/index de.html s.a. AULIS

z.H. Klassifiziere den Intel 80x86-Befehlssatz. Wieso CISC? o

Page 93: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 93

• Condition Codes

CMP (compare) {reg,mem} × {reg,mem, const} \ {(mem,mem)}berechnet arg1− arg2 und setzt a,c,o,p,s,z ∈ FLAGS oder EFLAGSentsprechend (8086–80386!)

a uxiliary (hier bei BCD-Uberlauf)

c arry

o verflow

p arity

s ign

z ero

TEST {reg,mem} × {reg,mem, const} \ {(mem,mem)}berechnet arg1&arg2, loscht c sowie o und setzt p,s,z ∈ FLAGS oderEFLAGS entsprechend (8086–80386!)

Page 94: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 94

• Sprung- und Verzweigungsanweisungen

JMP unconditional jumpJA branch if above (c==0)&&(z==0)

JAE branch if above or equal (c==0) wie JNCJB branch if below (c==1) wie JCJBE branch if below or equal (c==1)||(z==1)

JE branch if equal (z==1)

JNE branch if not equal (z==0)

JG branch if greater (z==0)&&(s==0)

JGE branch if greater or equal (s==0)

JL branch if lower (s==1)

JLE branch if lower or equal (z==1)||(s==1)

JC,JNC branch if carry set/not set (c==1) / (c==0) JC wie JBJO,JNO branch if overflow set/not set (o==1) / (o==0)

JP,JNP branch if parity set/not set (p==1) / (p==0) PE, POJS,JNS branch if sign set/not set (s==1) / (s==0)

JZ,JNZ branch if zero set/not set (z==1) / (z==0)

JCXZ branch if counter reg zero (CX==0)

Page 95: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 95

• Bedingungen in Registern vs Condition Codes

DLX/MIPS Intel 80x86Verzweigungsbedingungen in Registern Verwendung von Conditioncodes

slt Ra,Rb,Rc; Ra=(Rb<Rc)

bnez Ra, lt; if (Ra) goto lt

...

...

lt:

CMP BX,CX; (BX<CX) in FLAGS

JL lt; if (’lower flags’) goto lt

...

...

lt:

• AMDs 64bit Erweiterungen

Der sledgehammer von AMD ist eine abwartskompatible 64bit Erwei-terung des Pentium. Dazu werden die 8 Allzweck-Register

EAX, ECX, EDX, EBX, ESP, EPB, ESI und EDI

auf 64bit Register

RAX, RCX, RDX, RBX, RSP, RPB, RSI und RDI

erweitert. Es gibt 8 weitere 64bit Allzweck-Register R8 bis R15.Nun sind auch die low-Bytes SPL, BPL, SIL und DIL zugreifbar.

Page 96: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 96

Alle 1byte OP-Codes sind vergeben: neue Register mussen per Prafixangesprochen werden. Die Kurzform der 16 Dekrement/Inkrement-Befehle werden dazu fur die sogenannten REX-Instruktionen umdefi-niert.

Ein paar andere Instruktionen werden im 64bit-Modus nicht mehr un-terstutzt. MOVSXD erweitert 32bit Daten vorzeichenrichtig auf 64bit.

Wie bei der 80x86-Familie sind alle Operationen 2-Operanden Ope-rationen. 3DNow! wurde zugunsten von ISSE2 der Kompatibilitat ge-opfert...

Der Prozessor unterstutzt im legacy mode den real, virtual und pro-tected mode, im long mode den 32bit compatibility mode und endlichden 64bit mode.

Im 64bit mode greift der Prozessor ohne Segmentierung auf den Spei-cher zu (flat memory), hierarchische Adress-Umsetzung, 4KB- oder2MB-Seiten – im Gegensatz zu den zwischen 4KB und 4GB variabelgroßen Seiten des iA64.

Details in www.weblearn.hs-bremen.de/risse/RST/docs/amd64.pdf

Page 97: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 97

• Intels 64bit Erweiterungen

vgl. Gautam Doshi: Understanding the IA-64 Architecture, 1999 http:

//www.weblearn.hs-bremen.de/risse/RST/docs/Intel/idfisa.pdf

vgl. Chris Lomont: Introduction to x64 assembly http://software.

intel.com/en-us/articles/introduction-to-x64-assembly

• Slogans on 80x86 architecture

This history illustrates the impact of the ’golden handcuffs’ of compatibility!

Adding new features as someone might add clothing to a packed bag! An

architecture that is difficult to explain and impossible to love! What the

80x86 lacks in style is made up in quantity, making it beautiful from the

right perspective!

4.8. z.B. 8051

Der 8051 µ-controller ist ein typischer 8 bit CISC-Rechner der 80erJahre (vgl. z.B. www.iiit.uni-karlsruhe.de/download/Befss 8051.pdf):

Page 98: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 98

• Er weist wie auch die 80x86 Prozessoren Merkmale sowohl einerAkkumulator- wie auch einer Register-Architektur auf.

• Nicht alle Register sind echte Allzweck-Register.

• Der Prozessor verarbeitet nur dyadische Operationen.

• Der Prozessor verarbeitet komplexe Instruktionen.

• Der Prozessor unterstutzt mancherlei Adressierungsart.

• Der Prozessor unterstutzt in keineswegs orthogonaler Weise we-nige Datentypen.

• Der Prozessor verarbeitet Verzweigungsanweisungen unter Ver-wendung von condition codes.

• 8051-Programme sollten geringe Anforderungen an den Speicherstellen. Die Instruktionen sind also kompakt, verschieden langund sehr inhomogen.

z.H. Fuhre Belege fur obige Aussagen an. o

Page 99: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 99

4.9. z.B. MicroChip PIC24FJ128GC010Family

s. http://ww1.microchip.com/downloads/en/DeviceDoc/30009312b.pdf

4.10. Resumee

Neben technologischen Randbedingungen sind damit zwei fast kon-troverse Anforderungen zu befriedigen.

Page 100: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 100

Fur Compiler (-Bauer) sind folgende Eigenschaften wunschenswert:

• Wenn Operation, Datentyp und Adressierungsart orthogonal,d.h. unabhangig sind, vereinfacht sich die Code-Erzeugung!

• Lieber Primitive als Konstrukte fur eine bestimmte Programmier-Sprache!

• Leitlinie: einfachere Entscheidung zwischen Code-Alternativen!

• Befehle, die zur Compile-Zeit vorhandene Information auch zunutzen erlauben!Z.B. Fur die VAX enthalt eine Maske, welche Register beiProzedur-Aufrufen zu retten sind. cZ.B. Compiler konnen MMIX mitteilen, welches Verzweigungs-verhalten zu erwarten ist. c

Z.B. Der VAX-Befehlssatz ist hoch-orthogonal, erlaubt einfache Zuord-

nung von Hochsprachen-Anweisungen zu Maschinen-Befehlen. Der Code

ist so optimiert, daß Programme nur wenig vom damals knappen Speicher

brauchen. 1978 war die VAX die erste Speicher-Speicher-Architektur. c

Page 101: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 4: Befehlssatz – links von der HW-SW-Schnittstelle 101

Fur den Prozessor (-Designer) sind folgende Eigenschaften wunschens-wert:

• leichte Dekodierbarkeit

• load/store Architektur

• wenige Addressierungsarten

⇒ leichtes pipelining Z.B. Wie die ersten ausgesprochenen RISC-Maschinen

(IBM 801, RISC I und RISC II in Berkeley sowie MIPS in Stanford) weisen

DLX und MIPS mit load/store-Architektur, mit 32-bit-Festformat-Befehlen

und mit einem in der pipeline-Implementierung CPI-Wert von kleiner als

zwei exemplarische RISC-Befehlssatze auf. c

Der Befehlssatz legt einen Prozessor weitgehend fest!Insofern ist der Befehlssatz mitentscheidend fur dieLeistung eines Prozessors!

z.H. Identifiziere andere Einflußgroßen fur die Prozessor-Leistung. o

Page 102: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

102

5. Prozessor-Architektur

Das Material ist COD entnommen, aufbereitet und kommentiert, s.www.weblearn.hs-bremen.de/risse/RST/docs/COD2e/Figures/kapitel5.pdf

5.1. single cycle Implementierung

s. fig 5.1 – fig 5.29 (1–23 von 40)www.weblearn.hs-bremen.de/risse/RST/docs/COD2e/Figures/kapitel5.pdf

5.2. multi cycle Implementierung

s. fig 5.30 – fig 5.51 (24–40 von 40)www.weblearn.hs-bremen.de/risse/RST/docs/COD2e/Figures/kapitel5.pdf

Wegen der Bedeutung fur die Implementierung hier – wie auch imSkript – die Tabelle der Phasen der Abarbeitung der funf prototypi-schen Befehle, namlich ADD, LW, SW, BEQ und J, Fig. 5.35:

Page 103: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 5: Prozessor-Architektur 103

R-Type load/store branch jumpADD LW, SW BEQ J

step R-Type load/store branch jump

IFIR = Mem[PC]

PC += 4

IDA = Reg[IR[25-21]]; B = Reg[IR[20-16]]

ALUOut = PC+(sign ext(imm)<<2)

EX/BEQ & J

completion

ALUOut

= A op B

ALUOut = A

+sign ext(imm);

if (A-B==0)

PC = ALUOut

PC = PC[31-28]

||(IR[25-0]<<2)

Mem/ADD & SW

completion

Reg[IR[15-11]]

= ALUOut

MDR = Mem[ALUOut]

or Mem[ALUOut] = B

WBReg[IR[20-16]]

= MDR

5.3. Implementieren der Steuerung

s. fig C.3 – fig C.20 (1–7)www.weblearn.hs-bremen.de/risse/RST/docs/COD2e/Figures/Appendix/appndx c.pdf

Page 104: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 5: Prozessor-Architektur 104

Modellieren der Steuerung durch FSM (C.6) erlaubt diverse Imple-mentierungen

• per ROM (Moore-Automat!)

• per FSM (s. C.7)

• per PLA (s. C.14)

• per sequencer (s. C.15, C.16)

• per µ-Programm (s. C.20)

µ-Programm fur MIPS R2000 mit ADD, LW, SW, BEQ, J

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

Page 105: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

105

6. pipeline-Prozessor

Das Material ist COD entnommen, aufbereitet und kommentiert, s.www.weblearn.hs-bremen.de/risse/RST/docs/COD2e/Figures/kapitel6.pdf

Materialien zur DLX (≈ MIPS) gibt es reichlich, beispielsweise

• http://de.wikipedia.org/wiki/DLX-Mikroprozessor

• Valentin Gherman: DLXSim fur Windows bzw. fur Linux zumDownload; Vorlesungsmitschrift - Kapitel 3 – Der DLX als RISC-Beispiel; Minitutorial fur DLX;Institute of Computer Science, University of Stuttgartwww.ra.informatik.uni-stuttgart.de/~ghermanv/Lehre/RO02-03

• Christian Hochberger: Mikrorechner; Fakultat Informatik, TUDresden Kapitel4-Rechner.pdf und Kapitel4-Rechner-Teil2.pdf

(allg.&DLX) www.mr.inf.tu-dresden.de/lehre ws/infet1/docs/

• Rade Kutil: DLX-Simulator fur Windows; Kurze Einfuhrung zurAssemblerprogrammierung in DLX; link auf GhermanDepartment of Computer Sciences, University of Salzburgwww.cosy.sbg.ac.at/project/tutorien/digitale/ws0708/

Page 106: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 106

6.1. instruction pipelines

• pipeline control

s. fig 6.29 – fig 6.35 (25–31 von 59)www.weblearn.hs-bremen.de/risse/RST/docs/COD2e/Figures/kapitel6.pdf

• data hazards

s. fig 6.36 – fig 6.49 (32–44 von 59)www.weblearn.hs-bremen.de/risse/RST/docs/COD2e/Figures/kapitel6.pdf

• control hazards

s. fig 6.50 – fig 6.56 (45–51 von 59)www.weblearn.hs-bremen.de/risse/RST/docs/COD2e/Figures/kapitel6.pdf

• superskalare Version & Leistung

s. fig 6.58 – fig 6.71 (52–59 von 59)www.weblearn.hs-bremen.de/risse/RST/docs/COD2e/Figures/kapitel6.pdf

Page 107: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 107

• superskalare Prozessoren

Def. Superskalare Prozessoren haben mehrere (unabhangige) funk-tionale Einheiten (FUs); spezielle HW (scoreboard) dient der Synchro-nisation der FUs;

Programm-Parallelitat auf Anweisungsebenewird in Parallelarbeit von FUs umgesetzt.

Z.B. superskalare Version des MIPS Prozessors durch Verdoppelungder Befehlspipeline: eine fur arithmetisch/logische Operationen undVerzweigungen und eine ausschließlich fur load/store Operationen. .

z.H. Bewerte die Auslastung einer jeden pipeline. oz.H. Verbessere die Auslastung einer jeden pipeline. oz.H. Implikationen fur data hazards? fur control hazards? o

Page 108: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 108

superskalare Erweiterung des MIPS-Prozessors

PCInstruction

memory

4

RegistersM u x

M u x

ALU

M u x

Data memory

M u x

40000040

Sign extend Sign

extend

ALU Address

Write data

Page 109: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 109

Inkrementierung eines jeden Feldelementes um eine Konstante

; cycle

loop: lw Rt,0(Rp) ; load Mem[Rp] into temporary Rt 1

add Rt,Rt,Rs ;increment element by scalar in Rs 2

sw Rt,0(Rp) ; store result at Rp 3

addi Rp,Rp,4 ; increment pointer Rp 4

bne Rp,Re,loop; if (Rp!=Re) goto loop 5

ALU/branch load/store ; cycle

loop: lw Rt,0(Rp) ; Rt ← Mem[Rp] 1

add Rt,Rt,Rs ; increment Rt 2

addi Rp,Rp,4 ; increment Rp 3

bne Rp,Re,loop sw Rt,-4(Rp);branch and store 4

ergibt sich CPI von 45 = 0.8. Unter welchen Annahmen? c

z.H. Laßt sich obiger code fur die superskalare Erweiterung weiteroptimieren? oz.H. Welcher Beschleunigungsfaktor ergibt sich? Welche Arten vonKenngroßen gehen grundsatzlich in den Beschleunigungsfaktor ein? o

Page 110: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 110

Abarbeitung von Befehlspaaren im superskalaren MIPS

Paare bestehen aus zwei Instruktionen, aus

• einer arithmetisch-logischen oder einer branch-Instruktion

• einer load- oder einer store-Instruktion

etwa ADD/BEQ und LW/SW.

ADD BEQ LW SW

IF IRa=Mem[PC]; IRm=Mem[PC+4]; PC+=8;

ID Aa=Reg[IRa[25-21]] Am=Reg[IRm[25-21]]

Ba=Reg[IRa[20-16]] Bm=Reg[IRm[20-16]]

target=PC+SignExt(IRa[15-0])

EX ALUouta IF (Aa==Ba) ALUoutm=Am+SignExt(IRm[15-0])

= Aa op Ba PC = target

MEM MDR=Mem[ALUoutm] Mem[ALUoutm]=Bm

WB Reg[IRa[15-11]] Reg[IRm[20-16]]

= ALUouta = MDR

Fur die Bearbeitung der ADD/BEQ- bzw. der LW/SW-Instruktionen notige, ansonsten aber

gleichnamige Register sind hier durch die Suffixe a bzw. m voneinander unterschieden.

Page 111: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 111

6.2. functional pipelines

• arithmetische pipelines

Beispielsweise die Multiplikation einer 8-bit mit einer 4-bit unsignedinteger kann konventionell mit drei Addierern und vier Bus-gates

multiplicand multiplier

@@�� ���@

@@

8bit adder

@@�� ���@

@@

8bit adder

@@�� ���@

@@

8bit adder

bus gate????????

bus gate????????

bus gate????????

????????

????????

????????

????????

????????

???????? ?

bus gate

???????? 0

????????�

???︸ ︷︷ ︸12 bit product

Page 112: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 112

und ‘pipelined’ nur mit zusatzlichen latches realisiert werden.

multiplicand

????????

multiplier

????input latches

????????1st/2nd stage latches

????????2nd/3rd stage latches

@@�� ���@

@@

8bit adder

@@�� ���@

@@

8bit adder

@@�� ���@

@@

8bit adder

bus gate????????

bus gate????????

bus gate????????

????????

????????

????????

????????

????????

????????

????????

???????? ?

bus gate

???????? 0

????????�

??

?

??

???

???output latch 12 bit product

Page 113: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 113

Implementierungen der Multiplikation von ’breiteren’ Faktoren liegenauf der Hand.

Welche Vorteile/Nachteile ergeben sich zu welchen Kosten?

Def. Die Auflosung einer Operation in pipeline-Stufen heißt Granu-laritat.

Z.B. x · 123.456.789 = (x · 123)106 + (x · 456)103 + x · 789, liefertMultiplikations-pipelines unterschiedlicher Granularitat. cDef. Die Menge der verschiedenen Funktionen, die eine multifunk-tionale pipeline ausfuhren kann, bestimmt die sogenannte Variabilitateiner pipeline.

Z.B. Texas Instruments Advanced Scientific Computer, TI ASC mitdynamisch zu konfigurierender pipeline zur Abarbeitung arithmeti-scher Operationen: float +, *, Skalarprodukt . . .s. z.B. Daniel P. Siewiorek, C. Gordon Bell, Allen Newell: ComputerStructures – Principles and Examples; McGraw-Hill pp753http://research.microsoft.com/users/GBell/Computer Structures Principles and Examples/ c

Page 114: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 114

• scheduling funktionaler Einheiten

FUs aufeinander abstimmen und synchronisieren; dabei Daten-Ab-hangigkeiten berucksichtigen!

Z.B. CDC6600 – 1964 der erste Super-Computer – mit 10 FUs: 2Addierer, 2 Inkrementierer, 2 Multiplizierer, 1 Dividierer sowie je einebranch, Boolean und shift unit.

Je FUs zwei Operanden-Register Fj und Fk, ein Ergebnis-Register Fi,Operationsmodus Fm, busy flag, read flags Rj und Rk (falls Rj bzw.Rk gesetzt sind, sind die Daten in Fj bzw. Fk valide) sowie Zeiger Qjund Qk auf die die Operanden produzierenden FUs.

je acht (Basis-) Adreß-Register A0, . . . , A7, Index-Register B0, . . . , B7

und Akkumulatoren X0, . . . , X7.

control unit (CU), scoreboard verwaltet

XBA result register designators (welche FU beliefert welches XBA-Register)

entry operand register designators (welches XBA-Register ent-

Page 115: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 115

halt Werte fur welchen Operanden einer FU)

function unit designators Qj bzw. Qk (welche FU produziert O-peranden fur Fj bzw. Fk)

X3=F1(X1,X4), X4=F2(X5,X6) und X6=F5(.,.).

Die CDC6600 hat eine 2-stufige Befehls-pipeline:

decode welche FU liefert ihr Ergebnis an welches Register,wait, bis FU frei ist (busy flag) und dieses Register frei ist (es istnicht Ergebnis-Register einer Instruktion, die noch bearbeitet wird)issue instruction to FU

score board resolves structure hazardsand data hazards (RAW, WAR)!

X6:=X1*X2

X5:=X6+X4 (X6: RAW)

X3:=X1/X2

X5:=X4*X3 (X3: RAW)

X4:=X0+X6 (X4: WAR)

Page 116: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 116

X3:=X1/X2;

X5:=X4*X3;X4:=X0+X6

...X3 DIVX4X5

...

ADD DIV MUL · · ·Fm DIVFj X1Fk X2Qj

Qk

RFj 1RFk 1busy 1

Page 117: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 117

X3:=X1/X2;

X5:=X4*X3;

X4:=X0+X6

...X3 DIVX4X5 MUL

...

ADD DIV MUL · · ·Fm DIV MULFj X1 X4Fk X2 X3Qj

Qk DIVRFj 1 1RFk 1 0busy 1 1

Page 118: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 118

X3:=X1/X2;X5:=X4*X3;

X4:=X0+X6

...X3 DIVX4 ADDX5 MUL

...

ADD DIV MUL · · ·Fm ADD DIV MULFj X0 X1 X4Fk X6 X2 X3Qj

Qk DIVRFj 1 1 1RFk 1 1 0busy 1 1 1

c

Page 119: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 119

z.H. Untersuche WAW hazards. oCDC6600 ist erster superskalarer Prozessor.

theoretisch maximal erzielbare Leistung = #FUs × Taktrate

Z.B. Weitere Beispiele superskalarer Prozessoren sind DEC21064und DEC 21264 (Alpha), Intel i80860XP, IBM RS/6000, MotorolaMC88110, MIPS R4000 oder SUN SuperSPARC. cBem. superpipeline-Architekturen charakterisiert durch tiefe Befehls-(10 und mehr pipeline-Stufen) und Funktions-pipelines.Der Compiler muß in diesem Fall also große load und branch de-lays ausgleichen, wahrend der Compiler fur superskalar-Architekturenmoglichst keine Paare, Tripel o.a. abhangiger Befehle erzeugen sollte,damit die funktionalen Einheiten stets ausgelastet sind. ◦Z.B. DEC 21064 (Alpha) und MIPS R4000 gelten als sowohl super-skalar als auch superpipelined. c

Page 120: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 120

• pipeline-Vektor-Prozessoren

Vektor-Operationen wie ~z = ~a · ~x + ~y mit ~a, ~x, ~y, ~z ∈ IRn entwederdurch n Rechen-Elemente – das i-te Rechen-Element berechnet ~zi =~ai ·~xi+~yi – effektiv ausfuhren oder eben durch pipeline-Multiplizierermit nachgeschaltetem pipeline-Addierer.

∗ +

ai

xi

yi

FUi

zi+

∗ai

xi

yi

zi

Wichtigste Beispiele sind die SAXPY- bzw. DAXPY-Benchmarks,d.h. single/double a*X[i]+Y[i].

Anwendungen?

Page 121: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 121

Def. pipeline-Vektor-Prozessoren verfugen typischerweise uber spe-zialisierte, dynamisch konfigurierbare pipelines.Vektor-Operationen effizient ausfuhren: per komponentenweiser arith-metischer Operation, per compress(~v,~b), expand(~v,~b), merge(~v, ~w,~b),

gather(~v,~i) mit Boole’schen Vektoren ~b und Index-Vektoren ~i, perspeziellen triadischen Operationen, z.B. D[i]:=A[i]*B[i]+C[i].

Spezielle Vektor-Register, caches und haufig verschrankte Speicher un-terstutzen die Vektor-Verarbeitung in Vektor-Maschinen.

Typische Vektor-Anwendungen sind LGS (z.B. per Gauß oder Gauß-Seidel), Differentialgleichungssysteme (DglS z.B. per Runge-Kutta),finite Elemente Methode (FEM) usw.

Z.B. ILLIAC-IV, (CDC-) Star-100, TI ASC, CRAY-1 sowie die NECSX-, Siemens VPx und Fujitsu VPx-EX-Familien mit den gemeinsa-men Merkmalen: Befehls-pipeline, mehrere pipeline-FUs, verschrank-ter Speicher (interleaved memory), unabhangige Befehls-caches (in-struction cache) und Daten-caches (data cache) sowie mehrfache Bus-Systeme (multiple buses). c

Page 122: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 122

JahrAnzahlVektor-Register

Vektor-RegisterLange

funktionale Vector Einheitenloadstoreunits

Cray 1 1976 8 64 6× (+, ∗, inv, logic, shift) 1

Cray X-MPY-MP

19831988

8 64 8× (+, ∗, inv, 2× logic, shift) 2×load1×store

Cray 2 1985 8 64 5× (+, ∗,√, inv, logic) 1

FujitsuVP100/200

1982 8–256 32–1024 3× (+, ∗, /) je GK und FK 2

HitachiS810/820

1983 32 256 4× (2× (FK+, logic), ∗+, ∗/+) 4

Convex C1 1985 8 128 4× (+, ∗, /, FK-logic) 1

NEC SX/2 198488K

256konfig

16× (4× (+, ∗, /, shift, FK+, logic)) 8

DLXV 1990 8 64 5× (+, ∗, /, FK+, logic) 1

z.H. Fortschreiben! o

Page 123: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 123

Z.B. Die DLX kann uber Kommando-Zeilen-Parameter zur Vektor-Maschine DLXV mitVektor-Vektor-Operationen (+,−, ∗, /), z.B. ADDV V1,V2,V3,Skalar-Vektor-Operationen (+,−, ∗, /), z.B. ADDSV V1, F1, V2,sowie den Lade-Vektor-Operationen, z.B. LV V1,R1 (load V1 aus demSpeicher ab Adresse R1)und Speicher-Vektor-Operationen, z.B. SV V1,R1 (store V1 im Spei-cher ab Adresse R1) konfiguriert werden.

Weitere Operationen wie beispielsweise Boole’sche Vektor-Operatio-nen oder das Setzen und Auslesen von Vektor-Langen- bzw. Vektor-Masken-Registers. cZ.B. CNAPS coprozessor board von Adaptive Solutions mit 64 bzw.256 Prozessoren (s. Labor ELKA). c

Vektorisierung erzielt verhaltnismaßig große Leistungs-steigerungen mit verhaltnismaßig geringen Mehrkostenfur hardware und Compiler.

Page 124: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 124

Vektor-Instruktionen im Mikro-Programm reduzieren Speicher-Zugriffe; Schleifen werden im Mikro-Programm i.a.R. schneller aus-gefuhrt als solche im Assembler-Programm.

HW-Verarbeitung entsprechender Vektor-Instruktionen reduziertebenso Speicher-Zugriffe und eliminiert daruberhinaus den Schleifen-Overhead.

Z.B. fruhe Vektor-Maschinen: STAR100 und CYBER203 – mit ver-schrankten Speichern, multiplen Bussen, E/A-Prozessoren und Strom-Einheit, stream unit (Mikro-Controller, Register-Banke, Befehlskeller,Dekoder, Steuer-Vektor(?)) und zwei pipeline-Prozessoren, einem GK-Adder und -Multiplier sowie einem GK-Adder und -Divider.

6-stufiger Adder, 7-stufiger Multiplier bei 40ns Zykluszeit. n1/2 ≈ 200!Befehlskeller mit 16 128bit Wortern;

Pipeline-Inhalte werden in spezielle Unterbrechungsregister gerettet.Heute sind Vektor-Operationen meist ununterbrechbar; bei Unterbre-chungen lost das exception handling z.B. ein roll back aus. cZ.B. CRAY-1: load/store-Architektur, je acht Vektor-Register (V),

Page 125: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 125

Skalar-Register (S) und Adreß-Regsister (A) mit einem Adreß-Mul-tiplizierer, z.B. fur mehrdimensionale Felder, und Funktionseinheitenals pipelines mit 2 bis 14 Stufen.

Verketten von Operationen, also mehrere Operationen nacheinanderauf einem Datenstrom auszufuhren (z.B. fur LGS).

vier Befehlspuffer fur je 64 Befehle;

scoreboard Einheit synchronisiert durch Register-Verriegelung die di-versen Funktionseinheiten. c

Page 126: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 126

• Leistungsbewertung

Sei tcond die fur die Konditionierung der pipeline notwendige Zeit,tflush die Durchflußzeit (flushing time), d.h. die Zeit fur den Durchlaufdurch die (konditionierte) pipeline, also die Zeit vom Holen der Argu-mente bis zum Wegspeichern der Ergebnisse, und tclock die Zyklus-Zeit(clock time) der Verarbeitungselemente, also die Verarbeitungszeit ei-ner jeden Stufe der pipeline.Dann ist tcond + tflush die Ausfuhrungszeit einer Skalar-Operation undn Skalar-Operationen dauern tcond + n · tflush. Also ergibt sich eineAusfuhrungszeit Tscal(n) = tflush +

tcondn pro Operation bei n Opera-

tionen.

Falls die pipeline in jedem Zyklus, also alle tclock Zeiteinheiten einErgebnis produziert und falls in jedem Zyklus Operanden geholt undErgebnisse abgespeichert werden, so ist tcond + tflush +(n−1) · tclock =tconf + n · tclock mit tconf = tcond + tflush − tclock die Zeit fur die Bear-beitung eines Vektors der Lange n durch eine Vektor-Operation und

Page 127: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 127

damit

Tvect(n) = tclock +tconf

ndie Ausfuhrungszeit pro Vektor-Element bei Vektor-Lange n. Die Leis-tung P der pipeline, also die Anzahl von Operationen pro Zeiteinheitist dann

P =P (n)=1

Tvect(n)=

1

tclock(1 +tconftclock

1n )

Fur n → ∞ ergibt sich die theoretische Maximal-Leistung P∞ =1

tclockund fur n1/2 =

tconftclock

die halbe Maximal-Leistung P (n1/2) =

P (tconftclock

) = 1tclock(1+1) = 1

2 P∞ und somit auch P = P (n) = P∞n

n+n1/2.

Def. nx und n1/2 messen die Nutzlichkeit von Vektor-Prozessoren:

nx =Vektor-Lange, so daß Skalar-

= Vektor-Geschwindigkeit, Tscal(nx) = Tvect(nx)

n1/2 =Vektor-Lange, so daß Vektor-Geschwindigkeit

= 12

asymptotische Vektor-Geschwindigkeit

Page 128: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 6: pipeline-Prozessor 128

so daß

Tvect(n1/2) =Tvect(∞)

2nx ist der break even point der Vektorisierung.

Je kleiner nx und n1/2 ausfallen, um so nutzlicher ist Vektorisierung.Wie schon bei pipeline-Rechnern muß hier das Speicher-System erstrecht mithalten konnen(Daumen-Regel: Speicher-Bandbreite = dreifache pipeline-Rate).

Z.B. Die Vektor-Ausfuhrung fur n Elemente brauche tconf + n tclock

Zeiteinheiten oder Zyklen, die Skalar-Ausfuhrung n tscal. Vektorisie-rung empfiehlt sich also fur tconf + n tclock < n tscal oder eben fallsn > tconf/(tscal − tclock).Fur die CRAY-1 gilt tconf = 5, tclock = 1 sowie tscal = 2 und damitn > 5. c

Page 129: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

129

7. Speicher-Hierarchie

Welche Bestandteile hat die Speicher-Hierarchie?

Memory

CPU

Memory

Size Cost ($/bit)Speed

Smallest

Biggest

Highest

Lowest

Fastest

Slowest Memory

Page 130: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 130

Daten stehen auf einer Ebene jeweils in Kopie aus der darunterliegen-den Ebene zur Verfugung:

Processor

Data are transferred

Page 131: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 131

Inwiefern ist die Speicher-Hierarchie eine Pyramide?

CPU

Level n

Level 2

Level 1

Levels in the memory hierarchy

Increasing distance from the CPU in

access time

Size of the memory at each level

Page 132: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 132

• Kenngroßen

etwas aktuellere Angaben zur Speicher-Hierarchie (2002 und 2005)

17.05.05 Dr. Jörg Gruner 7

Betriebssysteme

• Speicherverwaltung

– Speicherhierarchie

Register

Cache

Main Memory

Disk

Tape

1 ns

2 ns

10 ns

10 ms

100 s

Zugriffszeit

< 1 KB

< 2 MB

256-2048 MB

40-400 GB

> 0,5 TB

Kapazität

Page 133: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 133

• Lokalitat

Die Speicher-Hierarchie funktioniert nur aufgrund der Lokalitat vonZugriffen auf die jeweils unterliegende Speicher-Ebene:

zeitliche Lokalitat: auf den Zugriff auf ein Datum folgt mit hoherWahrscheinlichkeit bald ein erneuter Zugriff.

raumliche Lokalitat: auf den Zugriff auf ein Datum folgt mit hoherWahrscheinlichkeit bald ein Zugriff auf ein benachbartes Datum.

Der Nutzen der Speicher-Hierarchie beruht wieder auf einer 90/10-Faustregel: ein Programm verbraucht 90% der Laufzeit in 10% desCodes.

z.H. Wie sieht die 90/10-Faustregel fur Daten aus? o

z.H. Verifikation? Bedeutung? Konsequenz? o

Page 134: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 134

7.1. caching

Platzierung von Daten im cache:

suchen & finden oder ggfls. nachladen & verdrangen

a. Before the reference to Xn

X3

Xn – 1

Xn – 2

X1

X4

b. After the reference to Xn

X3

Xn – 1

Xn – 2

X1

X4

Xn

X2X2

Page 135: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 135

• direct mapped caches

Jeder Speicher-Adresse entspricht genau eine cache line!

00001 00101 01001 01101 10001 10101 11001 11101

000

Cache

Memory

001

01

0011

100

101

110

111

Page 136: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 136

Identifiziere Kenngroßen und Arbeitsweise der Implementation einesdirect mapped caches!

Address (showing bit positions)

20 10

Byte offset

Valid Tag DataIndex

0

1

2

1021

1022

1023

Tag

Index

Hit Data

20 32

31 30 13 12 11 2 1 0

Page 137: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 137

B direct mapped cache: one word blocks

trace: Zugriffe auf einen direct mapped oder 1-assoziativen cache mit8 1-Wort-Blocken

5 6 14 25 15 5 6 15 26 16 5 60 161 252 26345 5 5 56 6 14 6 67 15 15

m m m m m t m t m m t t

line = Adresse mod 8 4 hits

Keine raumliche Lokalitat! Keine Verdrangungsstrategie!

Page 138: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 138

Z.B. DEC-Station mit direct mapped cache c

Address (showing bit positions)

16 14 Byte offset

Valid Tag Data

Hit Data

16 32

16K entries

16 bits 32 bits

31 30 17 16 15 5 4 3 2 1 0

Page 139: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 139

B direct mapped cache: four word blocks

erst ganze Blocke in jeder cache line erlauben, auch raumliche Loka-litat zu nutzen!

Address (showing bit positions)

16 12 Byte offset

V Tag Data

Hit Data

16 32

4K entries

16 bits 128 bits

Mux

32 32 32

2

32

Block offsetIndex

Tag

31 16 15 4 32 1 0

Page 140: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 140

trace: Zugriffe auf einen direct mapped oder 1-assoziativen cache mit4 2-Wort-Blocken

5 6 14 25 15 5 6 15 26 16 5 60 (24,25) (16,17)1 (26,27)2 (4,5) (4,5) (4,5)3 (6,7)(14,15) (14,15) (6,7)(14,15) (6,7)

m m m m s t m m m m t m

2 mal temporal hits1 mal spatial hits

line = (Adresse/2) mod 4 3 hits

Keine Verdrangungsstrategie!

Page 141: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 141

hits bzw. misses in Abhangigkeit von cache- und Block-Große

1 KB

8 KB

16 KB

64 KB

256 KB

256

40%

35%

30%

25%

20%

15%

10%

5%

0%

Mis

s ra

te

64164

Block size (bytes)

Page 142: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 142

• fully associative caches

Eroffnen von Freiheiten, Blocke in cache lines zu platzieren!

1

2Tag

Data

Block # 0 1 2 3 4 5 6 7

Search

Direct mapped

1

2Tag

Data

Set # 0 1 2 3

Search

Set associative

1

2Tag

Data

Search

Fully associative

macht Verdrangungsstrategie und hardware-Aufwand notwendig:

• random • fifo • lru

Page 143: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 143

• set associative caches

verschiedene Assoziativitat bei fester cache-Netto-Kapazitat

Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data

Eight-way set associative (fully associative)

Tag Data Tag Data Tag Data Tag Data

Four-way set associative

Set

0

1

Tag Data

One-way set associative (direct mapped)

Block

0

7

1

2

3

4

5

6

Tag Data

Two-way set associative

Set

0

1

2

3

Tag Data

Page 144: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 144

B set associative cache: one word blocks

trace: Zugriffe auf einen 2-assoziativen cache mit 1-Wort-Blocken(2-assoziativ, also 2 Blocke pro set)

5 6 14 25 15 5 6 15 26 16 5 6set 0 16

set 1 5 5 525

set 2 6 6 614 26

set 3 15 15

m m m m m t t t m m t t

set = Adresse mod 4 5 hits

Keine raumliche Lokalitat! least recently used, LRU!

Page 145: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 145

B set associative cache: two word blocks

trace: Zugriffe auf einen 2-assoziativen cache mit 2-Wort-Blocken(2-assoziativ, also 2 Blocke pro set)

5 6 14 25 15 5 6 15 26 16 5 6set 0 (4,5) (4,5) (4,5)

(24,25) (16,17)set 1 (6,7) (6,7) (26,27)

(14,15) (14,15) (14,15) (6,7)m m m m s t t t m m t m

set = (Adresse/2) mod 2 5 hits

least recently used, LRU!

Page 146: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 146

Implementation eines 4-assoziativen caches

Address

22 8

V TagIndex

012

253254255

Data V Tag Data V Tag Data V Tag Data

3222

4-to-1 multiplexor

Hit Data

123891011123031 0

Page 147: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 147

Performance set-assoziativer caches

0%

3%

6%

9%

12%

15%

Eight-wayFour-wayTwo-wayOne-way

1 KB

2 KB

4 KB

8 KB

Mis

s ra

te

Associativity 16 KB

32 KB

64 KB

128 KB

Page 148: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 148

Performance set-assoziativer caches

20%

Mis

s ra

te p

er t

ype

2%

4%

6%

8%

10%

12%

14%

1 4 8 16 32 64 128

One-way

Two-way

Cache size (KB)

Four-way

Eight-way

Capacity

Page 149: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 149

• cache-Schreibstrategien

Prozessor, DMA-hardware, EA-Prozessoren und erst recht andere Pro-zessoren greifen unabhangig auf einen gemeinsamen cache/Speicher zu⇒ Konsistenz-Problem!

Def. Datenkonsistenz von cache und Speicher ⇐⇒ cache undSpeicher-Ausschnitt stimmen stets uberein.Def. Datenkoharenz von cache und Speicher ⇐⇒ stets wird derzuletzt geschriebene Wert gelesen.

write through immer zugleich in den cache und in den Speicher zuschreiben garantiert Konsistenz!

copy back erst beim Verdrangen der (modifizierten) Daten (dirtybit) aus dem cache diese in den Speicher zuruckzuschreiben ga-rantiert Koharenz!

Page 150: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 150

Koharenz per Schnuffel-Logik: indexcache!sniffingfalls die zu schreibende Speicher-Adresse am Bus im cache vorkommt,valid=false (also cache miss). (Aufwand?)

Ebenso bei Prozeß-Wechsel alle cache lines oder per Prozeß-Kennungnur die des noch aktuellen Prozesses invalidieren (cache flush).

cache miss beim Schreiben (miss on write):

fetch on write (miss) oder write allocate: der entsprechendeBlock wird geladen und danach (ohne miss) geschrieben.

write around oder no write allocate: der entsprechende Blockwird unter Umgehung des caches in den Speicher der darunterliegenden Speicher-Hierarchie-Ebene geschrieben.

z.H. Beschleunigungsfaktor aufgrund des Verzichts auf Konsistenzzugunsten von Koharenz oZ.B. s.a. Optimierung der Matrix-Multiplikation (nur) bei Beruck-sichtigung des caching in Abschnitt 3.4, S. 55ff cvgl. www.weblearn.hs-bremen.de/risse/RST/docs/cacheSim.pdf

Page 151: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 151

• Havard-Architektur

Def. Maschinen mit getrennten Speichern (damals) bzw. caches(heute) fur Instruktionen und Daten weisen die sogenannte Havard-Architektur auf.

Z.B. 1997 COD2e pp 611–6141st level caches Pentium Pro vs PowerPC 604

feature Pentium Pro PowerPC 604organisation split I-cache and D-cachecache sizes 8KB each 16KB eachassociativity 4-associativereplacement pseudo LRU LRUblock size 32Bwrite policy write back write back/through

2nd level caches Pentium Pro vs PowerPC 604:256KB or 512KB instructions and data c

Page 152: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 152

7.2. Speicher: SRAM vs DRAM

Tue2Nov04 From Lect12 Lect18Slide 85

DRAM (Dynamic Random Access Memory)

a dynamic RAM cell for one bit• bit stored as charge in capacitor• optimized for density (1 transistor, 6 for SRAM)– capacitor discharges on a read (destructive read)

• read is automatically followed by a write (to restore bit)– charge leaks away over time

• refresh by reading/writing every bit once every 5ms (row at a time)• access time (time to read)• cycle time (minimum time between reads) > access time

“word select line”

“bitline” (datain/out)

pass transistor

capacitor

©2004 by WiscGang & Wittie

Page 153: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 153

Tue2Nov04 From Lect12 Lect18Slide 86

DRAM Organization

square row/column matrixmultiplexed address linesinternal row bufferoperation

• put row address on lines• set row address strobe (RAS)• read row into row buffer• put column address on lines• set column address strobe (CAS)• read column bits out of row buffer

write row buffer contents to row• rewrite since destructive read

data pin interface usually narrow

©2004 by WiscGang & Wittie

Page 154: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 154

Z.B. 4M×1 DRAM, multiplexed address (22bit = 11bit + 11bit)

RAS/CAS

Address[10–0]

Row decoder

11-to-2048

2048 × 2048 array

Column latches

Mux

Dout

statt immer nur auf nur ein bit einer ganzen Zeile zuzugreifen:page mode bzw. static column mode : mehrere bits bei fester row-address oder nibble mode: ein nibble bei fester row-address c

Page 155: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 155

Tue2Nov04 From Lect12 Lect18Slide 87

DRAM Specs

density: +60% annual increase (post ‘92: 40%)• Moore’s law: doubles every 18 months (post ‘92: 24 months)

speed: only 5% annual improvement in access time• much flatter improvement

70ns55ns3.8ns1Gb200480ns60ns5ns512Mb200290ns65ns7ns256Mb2000100ns70ns10ns128Mb1998110ns75ns12ns64Mb1996120ns90ns15ns16Mb1992165ns110ns20ns4Mb1989190ns135ns25ns1Mb1986

Cycle TimeAccess TimeMin Clock#bits/chip1st Year

©2004 by WiscGang & Wittie

Page 156: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 156

7.3. Speicher-Organisation

Anforderung an Speicher-Verwaltung/Memory Management

• hardware-Unabhangigkeit (Speicher-Große)

• effiziente Nutzung des physikalischen Speichers

• schneller context switch

• Protection innerhalb und zwischen Prozessen:code/data, user/system, multiprogramming

• Verschiebbarkeit (relocatable code)

• sharing memory regions:sharing code (reentrant programs),sharing data (inter-process communication)

• dynamic allocation of new memory:dynamic sizing of existing memory (heap, stack)

Page 157: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 157

• virtueller Speicher

Obige Anforderungen werden durch virtuellen Speicher bedient!

Physical addresses

Disk addresses

Virtual addresses

Address translation

Page 158: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 158

Vergleich cache vs memory

H.&P. cache/memory physical/virtual 1990proccache

memory

cachememory

hard diskblock 4-128B 512B-8KB pagehit time 1 cycle 110 cycles hit timemiss time 8-32 cycles 100K-600K cycles miss timeaccess time 6-10 cycles 100K-500K cycles access timetransfer time 2-22 cycles 10K-100K cycles transfer timemiss rate 10−2 – 2 · 10−1 10−7 – 10−5 fault ratecache size 1KB – 256KB 4MB – 2GB memory size

typical access times (1997):SRAM 5–25ns DRAM 60–120ns Disk 10–20 Mio ns

Page 159: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 159

• paging

Seiten-Tabelle/page table – Verwendung

Physical memory

Disk storage

Valid

1

1

1

1

0

1

1

0

1

1

0

1

Page table

Virtual page number

Physical page or disk address

Page 160: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 160

Seiten-Tabelle/page table – schematisch

Page offsetVirtual page number

Virtual address

Page offsetPhysical page number

Physical address

Physical page numberValid

If 0 then page is not present in memory

Page table register

Page table

20 12

18

31 30 29 28 27 15 14 13 12 11 10 9 8 3 2 1 0

29 28 27 15 14 13 12 11 10 9 8 3 2 1 0

Page 161: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 161

paging – Implementierung

3 2 1 011 10 9 815 14 13 1231 30 29 28 27

Page offsetVirtual page number

Virtual address

3 2 1 011 10 9 815 14 13 1229 28 27

Page offsetPhysical page number

Physical address

Translation

Konsequenzen aus der gigantischen page fault penalty:

• ’große’ pages – aber Verschnitt und Transfer-Zeit

• Verringern der page fault rate per optimaler Verdrangungsstra-tegie (fully associative, LRU)

• handling of page faults per software, i.e. os

• write back Strategie: copy back

Page 162: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 162

Große der Seiten-Tabelle!

z.H. Große der page table als Funktion der page size! o

Reduktion des Speicherbedarfs der page tables

• dynamisch wachsende page tables(eine bzw. zwei pro Prozess, falls Adreß-Raum in eine bzw. zweiRichtungen wachst)

• inverted page table / hashing

• hierarchy of page tables

• paging the page tables

Page 163: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 163

B Ersetzungsstrategien bei paging

opt optimal – wenn auch illusionar – ware, genau die Seite zu erset-zen, die in Zukunft fur die langste Zeit nicht referenziert wird!nur zum Zweck des Vergleichs!

FIFO first in – first out (alteste ersetzen)

LRU least recently used: am langsten nicht referenziert ersetzen

clock Ring-Puffer-Variante von FIFO: use bit:=1 bei Referenz, erset-ze nachste page mit use bit==0, if (use bits==1) use bit=0;

working set Menge der Seiten wahrend der letzten n Referenzen /wahrend der letzten n virtuellen Zeit-Einheiten eines Prozesses

weitere second chance, not used recently, NUR . . .

zur Illustration diene die folgende Sequenz von Referenzen

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

und zwar fur einen physikalischen Speicher mit drei oder vier pages= frames = Kacheln.

Page 164: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 164

B opt

frame 1 2 3 4 1 2 5 1 2 3 4 5a 1 1 1 3b 2 2 2 4c 3 4 5 5

m m m m h h m h h m m h

7pagefaults

frame 1 2 3 4 1 2 5 1 2 3 4 5a 1 1 1 4b 2 2 2c 3 3d 4 5 5

m m m m h h m h h h m h

6pagefaults

Haufigkeit berucksichtigen, Losung nicht eindeutig,ohne Orakel nicht implementierbar!

Page 165: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 165

B FIFO

frame 1 2 3 4 1 2 5 1 2 3 4 5a 1 4 5 5b 2 1 1 3c 3 2 2 4

m m m m m m m h h m m h

9pagefaults

frame 1 2 3 4 1 2 5 1 2 3 4 5a 1 1 5 4b 2 2 1 5c 3 2d 4 3

m m m m h h m m m m m m

10pagefaults

aber: auf alte Seiten kann durchaus haufig zugegriffen werden!FIFO ist per Pointer einfach zu implementieren!Belady’s Anomalie: mehr frames 6⇒ weniger page faults

Page 166: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 166

B LRU

frame 1 2 3 4 1 2 5 1 2 3 4 51 1 4 5 32 2 1 1 43 3 2 2 5

m m m m m m m h h m m m

10pagefaults

frame 1 2 3 4 1 2 5 1 2 3 4 51 1 1 1 52 2 2 23 3 5 44 4 3

m m m m h h m h h m m m

8pagefaults

page fault rate kaum hoher als bei opt,allerdings aufwandige Implementierung!

Page 167: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 167

• segmentation

segments = logical units of programs, individual base address, length,protection etc. in segment descriptor table, z.B. code, data,stack, heap

Z.B. Intel 80x86 segment registers: CS, DS, ES, SS ... plus Se-gReg:Offset addressing, VAX c

virtual address = segment, offset

if (offset>segment.length) protection fault

physical address = segment.base address + offset

• address translation per adder

• Nutzung des physikalischen Speichers: ohne interne aber mitexterner Fragmentierung (splinters, crunching), Segmente sindganz oder garnicht geladen!

• schneller context switch

• Protection: differenziert (f/r/w/e), einfach

Page 168: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 168

• memory sharing: simpel wie protection

• dynamic allocation of new memory, dynamic sizing of existingmemory: schwierig

B paging vs segmentation

paging segmentation1-Wort-Adressen 2-Wort-AdressenHW-orientiert SW-orientiertgroße page table oder hierarchy kleine segment descriptor tableSeiten fester Große Segmente variabler Große (code/data)einfache Blockersetzung schwierige Blockersetzungschwierige Protection einfache Protectioninterne Fragmentierung externe Fragmentierungungenutzter Teile einer Seite ungenutzte Teile des HauptspeichersNachteil: thrashing Nachteil: splinters, zusatzlicher Adderaugmentation einfach augmentation schwierigresizing einfach resizing schwierig (crunching)

z.H. context switch? o

Page 169: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 169

B Segmentierung: Er- und Einsetzungsstrategien

unvermeidliche Uberschneidungen mit der Lehrveranstaltung EBS!

klassische Einsetzungsstrategien bei segmentationanhand einer verzeigerten Liste von freien Bereichen

first fit erster Freibereich, der groß genug ist

next fit nachster erster Freibereich, der groß genug ist

best fit kleinster Freibereich, der groß genug istgesamte Liste muss durchsucht werden; sortiere Freibereich nach derGroße.

worst fit großter Freibereichgesamte Liste muss durchsucht werden.

quick fit fur verschiedene Großen eigene Listen freier Bereiche

Buddy-lists Allokation von Speicher in Blocken mit Kapazitaten von 2n

Speicher-Einheiten fur n = min,min+ 1, . . . ,max

falls Speicher-Anforderung nicht bedient werden kann:Zusammenschieben und Verschmelzen der freien Bereiche= Kompaktierung (wie Festplatten-Defragmentierung)

Page 170: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 170

17.05.05 Dr. Jörg Gruner 37

Betriebssysteme

• Direkte Speicherbelegung

– Belegungstrategien

• FirstFit– Der erste, ausreichend große Speicherbereich, der frei ist, wird

belegt.– Dies führt meist zu einem Restspeicherbereich, der unbelegt

bleibt.

Speicheranforderung

freie Speicherbereiche

Belegung

9 KB 7 KB 12 KB

7 KB 4 KB 11 KB 22 KB 12 KB

7 KB 2KB9 KB4 KB 12 KB 10 KB 12 KB

17.05.05 Dr. Jörg Gruner 38

Betriebssysteme• Direkte Speicherbelegung

– Belegungstrategien• NextFit

– Die FirstFit-Strategie führt dazu, daß in den erstenSpeicherbereichen nur Reststücke (Verschnitt) verbleiben, dieimmer wieder durchsucht werden.

– Um dies zu vermeiden geht man bei der NextFit-Strategie analogder FirstFit-Strategie vor, setzt aber bei dem wiederholtenDurchlauf die Suche an der Stelle fort, an der bei demvorangegangen Durchlauf die Suche beendet wurde.

Speicheranforderung

freie Speicherbereiche

Belegung

9 KB 7 KB 12 KB

7 KB 4 KB 11 KB 22 KB 12 KB

7 KB 2KB9 KB4 KB 15 KB 12 KB7 KB

Page 171: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 171

17.05.05 Dr. Jörg Gruner 39

Betriebssysteme

• Direkte Speicherbelegung

– Belegungstrategien

• BestFit

– Die gesamte Liste bzw. Tabelle wird durchsucht, bis man einenSpeicherbereich findet, der gerade ausreicht, um dieSpeicheranforderung zu befriedigen und den Verschnitt minimiert.

Speicheranforderung

freie Speicherbereiche

Belegung

9 KB 7 KB 12 KB

7 KB 4 KB 11 KB 22 KB 12 KB

7 KB 2KB9 KB4 KB 22 KB 12 KB

17.05.05 Dr. Jörg Gruner 40

22 KB

Betriebssysteme

• Direkte Speicherbelegung

– Belegungstrategien• WorstFit

– Sucht den größten vorhandenen, freien Speicherbereich mit demZiel den Verschnitt zu maximieren

» um bei weiteren Speicheranforderungen ausreichend freien Speicherzur Verfügung zu haben oder

» diesen „Verschnitt“ als „neuen“ freien Speicherbereich zur Verfügungzu stellen.

Speicher-anforderung

freieSpeicher-bereiche

Belegung

9 KB 7 KB 12 KB

7 KB 4 KB 11 KB 12 KB

7 KB 4 KB 15 KB 12 KB

24 KB

15 KB9 KB7 KB11 KB

Page 172: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 172

17.05.05 Dr. Jörg Gruner 41

Betriebssysteme

• Direkte Speicherbelegung

– Belegungstrategien

• QuickFit– Für jede Sorte von Belegungen wird eine separate Liste

unterhalten.– Separate Listen ermöglichen eine schnellere Suche nach

passenden, freien Speicherbereichen.– Beispiel

» Werden durch das Nachrichtensystem des Betriebssystemsregelmäßig Nachrichten der Länge 1 KB versendet, so ist es sinnvolleine Liste für 1 KB Belegungen zu führen und alleSpeicheranforderung schnell und ohne Verschnitt zu befriedigen.

17.05.05 Dr. Jörg Gruner 42

Betriebssysteme• Direkte Speicherbelegung

– Belegungstrategien• QuickFit

1Speicheranforderung 1 1 1 4 1 1 1 1 1 1 17 4

87654321

...11109

1 KBSpeicher-bereiche

87654321

...

sonstige freieSpeicherbereiche

...

Page 173: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 173

B Buddy-Systeme

• Erweiterung der QuickFit-Strategie

• Buddy-Systeme sehen fur jede gangige Speicherbelegungsgroßeeine Liste vor.

• Gangige Speicherbelegungsgroßen sind z.B. Zweierpotenzen(20, 21, 22, 23, . . . Byte).

• Speicher wird nur in gangigen Speicherbelegungsgroßen verge-ben.

• Beispiel: Speicheranforderung von 280 Byte⇒ vergebene Speicherbelegungsgroße 512 Byte = 29 Byte

17.05.05 Dr. Jörg Gruner 46

Betriebssysteme

• Direkte Speicherbelegung

– Belegungstrategien

• Buddy-Systeme

210 Byte

29 Byte29 Byte

211 Byte

211 Byte210 Byte

212 Byte

210 Byte

211 Byte211 Byte

4 KB 2 * 2 KB = 4 KB 2 * 1 KB + 2 KB = 4 KB 2 * 512 B + 1 KB + 2 KB = 4 KB

Page 174: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 174

• Ist kein freier Speicherbereich der Große 2k vorhanden, wird einfreier Speicherbereich 2k+n (n = 1, 2, . . .) gegebenenfalls wie-derholend in zwei Speicherbereiche 2k+n−m (m = 1, 2, . . .) zer-legt (halbiert), bis die Speicherbelegungsgroße 2k zur Verfugungsteht.Ein freier Speicherbereich der Große 2k liegt vor, wenn m = ngilt, d.h. wenn n Speicherbereichshalbierungen bzw. -zerlegungendurchgefuhrt wurden.

• Die Anfangsadressen der Speicherbereiche einer Halbierung (diePartner bzw. Buddies) sind identisch bis auf das k.-Bit in ihrerAdresse.

• Das k.-Bit der Anfangsadressen von Partnern ist invertiert.Beispielsweise sind ...ABC0XYZ... und ...ABC1XYZ... die An-fangsadressen von Partnern.

• Die Invertierung des k.-Bits der Anfangsadresse ermoglicht, ineinem Schritt zu prufen, ob ein frei gewordener Speicherbereichder Große 2k einen freien Partner in der Belegungstabelle be-sitzt.

Page 175: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 175

• Dies ermoglicht die schnelle Verschmelzung der beiden Partnerzu einem Speicherbereich der Große 2k+1.

• Sowohl das Suchen eines freien Speicherbereiches (gegebenen-falls mit Halbierungen) als auch das Verschmelzen zu großerenSpeicherbereichen laßt sich rekursiv uber mehrere Partner-Ebe-nen (Zweierpotenzen) durchfuhren.

B Buddy-Systeme – Bewertung

• Bei Buddy-Systemen, welche auf der Basis von Zweierpoten-zen Speicher zur Verfugung stellen, betragt der Verschnitt imstatistischen Mittel 25% bzw. 1

4 des zur Verfugung gestelltenSpeicherbereiches.Bei einer Speicheranforderung von N Byte, wird namlich einSpeicherbereich von 2k Byte mit 2k−1 < N ≤ 2k vergeben.Angenommen

P (N <= 2k−1 + 2k−2) = P (N > 2k−1 + 2k−2) = 12

dann gilt im statistischen Mittel

N = 2k−1 + 2k−2 = 2k − 2k−2 = 2k − 142k = 1

4 (4 2k − 2k) = 342k

Page 176: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 176

d.h. 34 des zur Verfugung gestellten Speicherbereiches von 2k

Byte werden im statistischen Mittel verwendet. Damit wird 14

des zur Verfugung gestellten Speicherbereiches nicht verwendet.Dies ist der Verschnitt.

• Dadurch charakterisiert sich das Buddy-System auf Basis vonZweierpotenzen als eine Belegungstrategie, die zwar schnell aberbei der Hauptspeicherverwaltung nicht effizient ist.

• Die Ursache fur die schlechte Effizienz dieses Buddy-Systems istdie Verwendung großer Partitionen durch die Speicherplatzver-dopplung.

• Korrigiert man das Verfahren der Speicherplatzverdopplung, sokann man den Nutzungsgrad des Hauptspeichers verbessern. DieHauptspeicherverwaltung wird dann allerdings komplexer.

Page 177: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 177

• paged segments

paged segments = Kombination von paging und segmentation

Intel 80x86 segments, paged segments ...

AT&T,DG,IBM/370,VAX,MC68030,80x86 2-levelvirtual address = segmentindex|pageindex|offset

physical address = PT[ST[root+segmentindex].physpage

+pageindex].page+offset

+ : sharing, non-contiguous PT, growth– : große contiguous ST in main memory,

dynamic growth schwierig

MC68030 4-level: segment, outer, middle, inner page table+ : gut fur uber den ganzen, großen virtuellen Speicher verteilte Da-ten, kleine PTs– : max 4 memory references, PTs mit hoher interner Fragmentierung

IBM RS6000 inverted page table (linked list)+ : kleine inverted PT in main memory– : Anzahl memory accesses fur address translation nicht const.

Page 178: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 178

• Belegungen des physikalischen Speichers ermitteln

unvermeidliche Uberschneidungen mit der Lehrveranstaltung EBS!

Z.B. Gegeben Mini-Speicher, organisiert z.B. per paged segments

• 20 Bit virtuelle Byte-Adressen (s.u.), Seiten a 256B

• physikalischer Speicher mit 64KB Kapazitat = 256 pages

• Zugriff auf segment table: (naturlich) fully-associative

• Segment-Lange in Anzahl Seiten

• Segment-Anfange fallen mit Seiten-Anfangen zusammen.

• Zugriff auf page table: (naturlich) direct-mapped

• Adressen hexadezimal

address format seg# (4 bit) page#(8bit) offset (8bit)

Ermittele die zu virtuellen Adressen gehorenden physikalischen Adres-sen bei gegebener segment table, ST, und gegebener page table, PT.

Page 179: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 179

ST:

seg# base len0x1 0x0A00 0x030x2 0x0100 0x010x3 0xF800 0x020x7 0x0200 0x05

seg#,segoffset︸ ︷︷ ︸,pageoffset

⇓ ||frame#, pageoffset

PT:

page# frame#

· · · · · ·0x01 0x03· · · · · ·

0x02 0x250x03 0xAB0x04 0xBA0x05 0x110x06 0x17· · · · · ·

0x0A 0x020x0B 0x320x0C 0x70· · · · · ·

0xF8 0x180xF9 0xE8· · · · · ·

segmentation violation? konsistente PT? Speicher-Ausbau?maximale Segment-Große? maximale Anzahl Segmente?Segment-Anfang = Seiten-Anfang: notwendig? sinnvoll? c

Page 180: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 180

• TLB – Beschleunigen der Adreß-Umsetzung

TLB = translation lookaside buffer = address translation cache in-dexmemory!translation lookaside buffer, TLB

Page 181: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 181

Valid

1

1

1

1

0

1

1

0

1

1

0

1

Page table

Physical page addressValid

TLB

1

1

1

1

0

1

TagVirtual page

number

Physical page or disk address

Physical memory

Disk storage

Page 182: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 182

TLB & cache (hier z.B. DECstation mit MIPS R2000)

Valid Tag Data

Page offset

Page offset

Virtual page number

Virtual address

Physical page numberValid

1220

20

16 14

Cache index

32

Cache

DataCache hit

2

Byte offset

Dirty Tag

TLB hit

Physical page number

Physical address tag

TLB

Physical address

31 30 29 15 14 13 12 11 10 9 8 3 2 1 0

Page 183: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 183

Zusammenspiel TLB & cache (hier z.B. DECstation mit MIPS R2000)

Yes

Deliver data to the CPU

Write?

Try to read data from cache

Write data into cache, update the tag, and put

the data and the address into the write buffer

Cache hit?Cache miss stall

TLB hit?

TLB access

Virtual address

TLB miss exception

No

YesNo

YesNo

Write access bit on?

YesNo

Write protection exception

Physical address

Page 184: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 184

designing the translation lookaside buffer (TLB)

feature typicalsize 32–4K entriesblock size 1–2 page table entries a 4–8B eachhit time 0.5–1 clock cyclemiss penalty 10–30 clock cyclesmiss rate 0.01%–1%

TLB miss und page fault sind zu unterscheiden!

• entweder kleine, voll-assoziative TLBsoder große TLBs, direct mapped oder mit geringer Assoziati-vitat

• Reduktion der TLB miss penalty ohne page fault per simplerVerdrangungsstrategie

• virtually indexed/tagged caches verwenden virtuelle Adressen!• physically indexed/tagged caches verwenden physikalische Adressen!

Page 185: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 185

virtuelle cache Adressierung CPU ⇔ cache ⇔ MMU

+ virtuelle Adresse gleichzeitig an cache und MMU– konkurrierende DMA-Zugriffe mit physikalischen Adressen wer-

den durch Bus-snooping nicht erkannt: non-cachable odercache-flush/cache-clear vor DMA-Zugriffen

– Tasks mit nicht disjunkten virtuellen aber disjunkten physikali-

schen Adress-Raumen bei Task-Wechsel cache-flush/cache-clear– Tasks mit shared regions und daher mit disjunkten virtuellen aber

nicht disjunkten physikalischen Adress-Raumen: non-cachable

oder spezielle cache-Auslegung

physikalische cache Adressierung CPU ⇔ MMU ⇔ cache

– erst virtuelle Adresse an MMU dann physikalische Adresse ancache! aber wenn cache-Index von der Adress-Umsetzungnicht betroffen, kann cache line schon selektiert werden.

+ Probleme bei Task-Wechsel und address aliasing treten hiernicht auf.

Page 186: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 186

Mischformen von virtueller und physikalischer cache-Adressierung =virtuell/physikalische cache-Adressierung (Index enthalt bitsder virtual page number, tag enthalt physical page number),z.B. hyperSPARC

Z.B. DECstation 3100:nur 4 Kombinationen von mindestens einem miss bei Zugriff auf TLB,(physically indexed/tagged) cache und page table moglich:

pagecache TLB table scenariomiss hit hit TLB hit, page table irrelevant, cache misshit miss hit TLB miss, page table hit, cache hit

miss miss hit TLB miss, page table hit, cache missmiss miss miss TLB miss, page fault, on retry cache must miss

* hit miss translation ok contradicts page not in memoryhit miss miss cache hit contradicts page not in memory

c

Page 187: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 187

Z.B. memory hierarchies PentiumPro vs PowerPC604

feature Pentium Pro PowerPC 604virtual addresses 32 bit 52 bitphysical addresses 32 bitpage size 4KB, 4MB 4KB, 256MBTLB split I-TLB und D-TLB

beide 4-ass. beide 2-ass.pseudo LRU LRU

32 I-TLB lines 128 I-TLB lines64 D-TLB lines 128 D-TLB lines

hw handles TLB misses

c

Page 188: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 188

• Speicherschutz-Maßnahmen

Vorbedingungen fur protection

• mindestens zwei Modi: user/operating system (kernel, supervi-sor) mode

• nur im system mode kann das Betriebssystem mit speziellenInstruktionen page table register, TLB usw. schreiben

• kontrollierter, begrenzter Wechsel von user mode in system mo-de etwa per system call (exception)

Z.B. ¨allgemeine Schutzverletzung¨, ¨segmentation violation¨, ¨pro-tection violation¨ o.a. c

Page 189: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 189

• 80x86-Unterstutzung der Speicher-Anbindung

Intel 80x86/Pentium Memory Management

• unsegmented, unpaged memory:etwa fur high performance µ-controllers ...

• unsegmented, paged memory:e.g. Berkeley UNIX

• segmented, unpaged memory:high granularity protection, segment in memory→ ST in memory, also absehbare Zugriffszeiten

• segmented, paged memory:e.g. UNIX System V

s.a. www.memorymanagement.org/articles/begin.html, 2001

Page 190: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 190

8086 80286 80386 80486 PentiumDatenbus/bits 16 16 32 32 64Adreßbus/bits 20 24 32 32 32Verarbeitung/bits 16 16 32 32 ≥ 32superskalar - - - -

data cache - - - unified ≥ 8KBinstruction cache - - - 8KB cache ≥ 8KBinstruction queue 6B 6B 16B 32B 2·32B# Segemente 4 4 6 6 6segment base 20bit 20/24bit 20/32bit 20/32bit 20/32bitoptional paging - -

√ √ √

modi 1 4 4 4 4multitasking -

√ √ √ √

Page 191: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 191

logical address selector CS ... GS 32 bit offset

-

-

segment table mit 8B segment descriptors

0

8K-1

...

u.a. 20bit Lange, 32bit base address

...

?

+

?

linear address 10bit dir no 10bit page no 12bit offset

-

+

-

-

-

+

? ?

page directory table

page table

0

1023

...

...

0

1023

...

...

physical address 20bit physical page no 12bit offset

Page 192: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 192

virtual addresses = logical addresses = 16bit segment | 32bit offset

• unsegmented memory: 232B = 4GB

• segmented memory: (2bit segment fur protection) 214+32B =64TB

• physical address space: 232B = 4GB

• global virtual memory: 4K segments – 4GB segments

• local virtual memory: 4K segments – 4GB segments

protection of segments: privilege level (geschutzt 0–3 ungeschutzt)plus access attributes (data: r/w; code: r/e)

Programm mit PL p darf nur auf Daten mit PL d zugreifen, falls p ≤ d

• PL0 fur MM, protection, access control

• PL1 fur OS-Rest

• PL2 fur application security (DBMS)

• PL3 fur application

Page 193: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 193

virtual address = 16bit segment selector | 32bit offset

segment selector = 13bit Index | TI | RPL

TI = 1bit Table Indicator = local/globalRPL = 2bit requested privilege level

segmentation = address translation:virtual address →linear address = 10bit dirindex | 10bit pagindex | 12bit offset

paging = address translation:linear address → physical address

2-stufiges table lookup erzeugt physical address:dirindex indiziert das page (table) directory mit max. 1K Eintragenund damit eine der max. 1K page tables mit max. 1K Eintragen fur4K pages. pagindex indiziert in dieser page table den Eintrag eineSeite.

physical address = (PT-No.[PTD[dirindex]])

[pagindex]+offset

Page 194: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 194

segment table, page table directory und page table 32bit entries ent-halten Informationen zu Zielgroßen, protection, Verfugbarkeit, writestrategy, dirty bit etc.

Pentium verfugt uber einen TLB mit 32 page table entries.

Im Unterschied zu 80386 und 80486 unterstutzt der Pentium zweiSeitengroßen:

if page size extension (PSE) ==1

then size=4KB or size=4MB

Bei 4MB-Seiten ergibt sich entsprechend nur ein table lookup!

Page 195: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 195

• performance gap: processor vs memory system

Impr

ovem

ent

fact

or

1

10

100

19801982

19841986

Year

19881990

19921994

1996

CPU (fast)

CPU (slow)

DRAM

DRAM CPU (slow) CPU (fast) DRAM cycle times slow P (MHz) 1980 1.00 1.00 1.00 0.25 1981 1.09 1.15 1.25 229.357798 4.6 5 1982 1.19 1.32 1.56 210.419998 5.29 6.25 1983 1.30 1.52 1.95 193.04587 6.0835 7.8125 1984 1.41 1.75 2.44 177.106303 6.996025 9.765625 1985 1.54 2.01 3.05 162.482847 8.04542875 12.2070313 1986 1.68 2.51 4.27 149.066832 10.0567859 17.0898438 1987 1.83 3.14 5.98 136.758561 12.5709824 23.9257813 1988 1.99 3.93 8.37 125.46657 15.713728 33.4960938 1989 2.17 4.91 11.72 115.106945 19.64216 46.8945313 1990 2.37 6.14 16.41 105.602702 24.5527 65.6523438 1991 2.58 7.67 22.98 96.8832126 30.6908751 91.9132813 1992 2.81 9.59 37.17 88.8836813 38.3635938 128.678594 1993 3.07 11.99 45.04 81.5446617 47.9544923 180.150031 1994 3.34 14.99 63.05 74.8116163 59.9431153 252.210044 1995 3.64 18.73 88.27 68.6345103 74.9288942 353.094061 1996 3.97 23.42 123.58 62.9674407 93.6611177 494.331686 700 2800

Page 196: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 7: Speicher-Hierarchie 196

zwei Arten, die Speicher-Bandbreite zu erhohen

CPU

Cache

Bus

Memory

a. One-word-wide memory organization

CPU

Bus

b. Wide memory organization

Memory

Multiplexor

Cache

CPU

Cache

Bus

Memory bank 1

Memory bank 2

Memory bank 3

Memory bank 0

c. Interleaved memory organization

Page 197: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

197

8. Parallelisierung von Algorithmen

• Entwicklung paralleler Algorithmen

• Entwicklung paralleler Rechner-Architekturen

am Beispiel der Losung von linearen Gleichungssystemen (LGS), z.B.DGl-Systeme, partielle DGl-Systeme, FEM . . .

Z.B. s.a. Matrix-Multiplikation cDas LGS

A~x = ~b

bestehe aus n Gleichungen in n Unbekannten;die Koeffizienten-Matrix A ist also quadratisch.

Page 198: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 198

for ( i =1; i<=n ; i++) // eliminiere Unbekannte xi, 1 ≤ i < n

for ( j=i +1; j<=n ; j++) // in der j-ten Gleichung, j = i+1, ..., n

{ const double pivot = A[ j ] [ i ] /A[ i ] [ i ] ;

A[ j ] [ i ] = 0 . 0 ; // xi in j-ter Gleichung eliminieren

// restliche Koeffizienten der j-ten Gleichung aktualisieren

for ( k=i +1; k<=n ; k++) A[ j ] [ k ] −= pivot ∗A[ i ] [ k ] ;

b [ j ] −= pivot ∗b [ i ] ; // Koeffizienten der r.S. aktualisieren

}

// Das Gleichungssystem hat jetzt Dreiecksgestalt: die Unbekannten xi

// lassen sich aus∑nj=iAij xj = bi von unten nach oben bestimmen.

for ( i=n ; i >0; i−−) // bestimme xi fur i = n, n− 1, . . . , 1

{ double tmp = b [ i ] ; // berechne bi −∑nj=i+1Aij xj in tmp

for ( j=n ; j>i ; j−−) tmp −= A[ i ] [ j ]∗ x [ j ] ;

x [ i ] = tmp/A[ i ] [ i ] ;

}

Page 199: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 199

Mehrere Fragen sind zu beantworten:

• Welche Operationen lassen sich unter Berucksichtigung von Da-ten-Abhangigkeiten uberhaupt parallelisieren?

• Wieviele Prozessoren oder processing elements (PE) sollen zurVerfugung stehen?

• Wie kommen die PEs an die von ihnen benotigten Daten und wiewerden – soweit notwendig – Zwischenergebnisse ausgetauscht?

Bewertung der Implementierungen anhand von Kenngroßen wie

• Beschleunigungsfaktor aufgrund von Parallelisierung

• Auslastung der PEs

• Kommunikationsaufwand in Abhangigkeit von der angenomme-nen Vernetzung

Page 200: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 200

8.1. Parallelisierung des Gauß’schen Algorithmus

Annahmen, Einschrankungen, Disclaimer:

A sei quadratisch (eben kein least squares problem) ...

A~x = ~b sei eindeutig losbar, det(A) 6= 0 ...

Alle pivot-Elemente sind von 0 verschieden . . .

Keine Berucksichtigung der Numerik, also ohne Pivotisierung, s.a.www.weblearn.hs-bremen.de/risse/MAI/docs/numerik.pdf

www.weblearn.hs-bremen.de/risse/MAI/docs/heath.pdf ...

Es stehen p = n+ 1 PEs zur Verfugung . . .

Der Algorithmus selbst besteht aus zwei Teilen:

1. Eliminieren, Triangulierung (Uberfuhren in Dreiecksgestalt)

2. Auflosen: ’von unten nach oben’ (backward substitution)

Page 201: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 201

• Gauß’scher Algorithmus – Eliminieren

1. eliminiere x1 ist in der zweiten, dritten, . . . , n-ten Gleichung, alsoin den n− 1 Gleichungen

n∑k=1

Ajk xk = bj fur j = 2, . . . , n

Aktualisiere n Koeffizienten Ajk fur k = 1, . . . , n und bj derrechten Seite. Wegen

Ajk := Ajk − pAik und bj := bj − p bi

mit pivot =AjiAii

und i = 1

sind diese Operationen Daten-unabhangig und konnen von denn + 1 PEs parallel ausgefuhrt werden (Aj1 := 0 wird aktiv ge-setzt, alle PEs sind busy).

Bem. Die Koeffizienten Ajk und bj werden standig verandert. ◦

Page 202: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 202

2. eliminiere x2 in der dritten bis n-ten Gleichung. n PEs aktualisie-ren n Koeffizienten in n− 2 Gleichungen.

und allgemein fur i = 1, . . . , n− 1 eliminiere xi

i. eliminiere xi in der i+1-ten bis n-ten Gleichung. n− i+2 der n+1PEs aktualisieren n− i+ 2 Koeffizienten in (n− i) Gleichungen.

⇒ SIMD, MAC: sAXPY/dAXPY, Vektorisierung!

In einer Zeiteinheit (ZE) aktualisiere ein PE gerade einen Koeffizien-ten.

Uberfuhrung der Koeffizienten-Matrix in Dreiecksgestalt und Aktua-lisierung der rechten Seite durch n+ 1 PEs in insgesamt

(n− 1) + (n− 2) + . . .+ 1 =

n−1∑i=1

i =(n− 1)n

2ZE

Page 203: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 203

Ein Mono-Prozessor-System braucht dafur

(n+ 1)(n− 1) + n(n− 2) + (n− 1)(n− 3) + . . .+ 3 · 1= 2(n− 1) + (n− 1)2 + 2(n− 2) + (n− 2)2

+2(n− 3) + (n− 3)2 + . . .+ 2 + 1 = 2

n−1∑i=1

i+

n−1∑i=1

i2

= n(n− 1) + 16 (n− 1)n(2n− 1) = 1

6 (n− 1)n (2n+ 5) ZE

Der Beschleunigungsfaktor β aufgrund Parallelisierung fur das Elimi-nieren ist (fur n→∞)

β =16 (n− 1)n (2n+ 5)

12 n (n− 1)

=2n+ 5

3= 2

3 n

(1 +

5

2n

)≈ 2

3 n

Page 204: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 204

Insgesamt sind 16 (n− 1)n (2n+ 5) PEs von insgesamt (PE-Anzahl ×

Eliminierungsschritte) = (n+ 1) 12 (n− 1)n = 1

2 (n− 1)n (n+ 1) PEsaktiv:

die Auslastung α wahrend des Eliminierens betragt also

α =16 (n− 1)n (2n+ 5)12 (n− 1)n (n+ 1)

=1

3

2n+ 5

n+ 1≈ 2

3fur n→∞

Bem. Wenn PEs gleichzeitig lesend auf ein Datum zugreifen konnen,gibt es keine Zugriffskonflikte (no memory contention)! ◦z.H. Bestimme obige Kenngroßen fur eine entsprechende paralleleVersion der Eliminierung im Gauß’schen Algorithmus durch sehr viele,etwa (n−1)(n+ 1) PEs oder wenige PEs, etwa #PE |(n+ 1), d.h. dieAnzahl der PEs ist Teiler von n+ 1. oz.H. Bestimme allgemein β = β(n,#PEs) und α = α(n,#PEs). oz.H. Welcher Beschleunigungsfaktor, welche Auslastung ergeben sichbei Gauß-Jordan? o

Page 205: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 205

• Gauß’scher Algorithmus – Auflosen

n+ 1 PEs stehen zur Verfugung, um parallel nacheinander xn, xn−1,. . . , x1 zu berechnen. Sie berechnen also sukzessive

xi =biAii−

n∑j=i+1

AijAii

xj fur i = n, n− 1, . . . , 1

Jedes PE berechneAijAii

xj bzw. biAii

gerade in einer ZE. Jedes PEbrauche fur das Aufsummieren eines eigenen mit einem fremden Zwi-schenergebnis gerade cm ZE.

n+ 1 PEs erledigen die Auflosung in großenordnungsmaßig

n+ cm

n−1∑i=1

ld i = n+ cm ld

n−1∏i=1

i = n+ cm ld((n− 1)!) ZE

Page 206: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 206

Sequentiell sind dagegen

1 + (2 + c1) + (3 + 2c1) + . . .+ (n+ c1(n− 1)) =

n∑i=1

i+ c1

n−1∑i=1

i

=1

2

((n+ 1)n+ c1 n (n− 1)

)=n

2(n+ 1 + c1 n− d) ZE

erforderlich, wenn eine (lokale) Summation gerade c1 ZE braucht.

Wegen n! ≈√

2π nn e−n√n (Stirling) folgt

ld(n!) ≈ ld√

2π + (n+ 12 ) ldn + ln(e−n) ld e ≈ n(ldn − ld e). Der

Beschleunigungsfaktor β aufgrund Parallelisierung ist (fur n→∞)

β ≈ n

2

(n+ 1 + c1 n− c1)

n+ cm ld((n− 1)!)≈ 1

2

n (1+c1) + 1−c11 + cm (ldn−ld e)

=n

2

1 + c1 + 1−c1n

1 + cm ld(ne )≈ (1 + c1)n

2 + 2 cm ld(n/e)

Page 207: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 207

Die Auslastung α der PEs (fur n→∞) ist etwa fur c = c1 = cm

α = 12n (n+1+c n−c)(n+1)(n+c ldn) = 1

2

(1 + c n−1

n+1

)n

n+c ldn ≈1+c

2

Bem. Wegen∑n−1i=1 ld i = n ldn − 1

ln 2 (n − 1) + g(n) fur ein g(n) ∈O(ldn) gilt

β ≈ 12n (n (1+c1)+1−c1)

n+cm (n ldn−n−1ln 2 )

≈ 12n (1+c1)+1−c1

1+cm (ldn− 1ln 2 )≈ n

21+c1

1+cm ldn

asymptotisch fur n→∞. ◦z.H. Bestimme obige Kenngroßen einer entsprechenden parallelenVersion fur das Auflosen im Gauß’schen Algorithmus durch (maxi-mal?) p = (n− 1)(n+ 1) PEs oder fur den Fall, daß n ein Vielfachesder PE-Anzahl p ist. o

Page 208: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 208

• Kommunikation

Unterstellt wurde: jedes PE kann auf alle Daten zugreifen: Daten lie-gen in einem gemeinsamen globalen Speicher ((multi port) shared glo-bal memory).

memory

PE1

6?

PE2

6?

· · · PEn+1

6?

Aufgrund dieser Annahme des unbeschrankten Zugriffs der PEs aufjedes Datum konnten obige Kenngroßen insbesondere fur das Auflosenbestimmt werden.

Page 209: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 209

Aber Machbarkeit und andere Aspekte wie Kosten und eben

• Geschwindigkeit

• Zugriffsschutz

• Ausfallssicherheit, Fehlertoleranz (Zuverlassigkeit, Verfugbarkeit)

• Erweiterbarkeit, Flexibilitat, Skalierbarkeit etc.

konnen lokale Speicher und spezielle Verbindungsstrukturen fur diePEs notwendig machen. Dann fallen zusatzlich Kosten fur die Inter-Prozessor-Kommunikation an.

Probleme des global/shared memory

• Synchronisation der Speicher-Zugriffe,

• cache Koharenz, z.B. MESI

• Verbindungsstrukturen zwischen PEs und memory:Bus, Ring, Stern, Gitter, Torus, Kreuzschienenverteiler (crossbar), hypercube ...

• Speicher-Organisation

Page 210: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 210

Gesetzt den gunstigsten Fall, daß das k-ten PE bzw. das n+ 1-te PEdirekt nur auf die Koeffizienten Ajk bzw. bj zugreifen kann.

Dann kommt zu jedem Schritt der Eliminierung noch ein Kommuni-kationsoverhead:

• initial werden die Koeffizienten A1k und b1 der ersten Gleichunggeladen,

• dann werden A2k und b2 der zweiten Gleichung geladen undaktualisiert,

• dann A3k und b3 usw.

• bis zuletzt die Koeffizienten Ank und bn der n-ten Gleichunggeladen und aktualisiert werden.

Page 211: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 211

Entweder legen die PEs die aktualisierten Koeffizienten in genugendgroßen lokalen Speichern aboder sie schreiben sie zugleich wieder in den globalen Speicher zuruck.Angenommen, die mit einer Aktualisierung verbundene Kommunika-tion koste c = c1 = cm ZE. Dann betragt der Kommunikationsauf-wand fur die parallele Eliminierung

12 c (n− 1)n ZE

und derjenige der sequentiellen Eliminierung

16 c (n− 1)n (2n+ 5) ZE

Der Beschleunigungsfaktor β aufgrund Parallelisierung ist

β =16 c (n− 1)n (2n+ 5)

12 c n (n− 1)

=2n+ 5

3= 2

3 n

(1 +

5

2n

)≈ 2

3 n

fur n→∞In diesem gunstigsten Fall – die Speicherzugriffsbreite kann so wie dieAnzahl der PEs gesteigert werden – bleibt auch die Auslastung α ≈ 2

3unverandert.

Page 212: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 212

Gesetzt der ungunstige Fall, daß die PEs Ketten-formig angeordnetsind und die Koeffizienten – wie etwa in Transputer-Netzen – nur ubergenau ein Interface-Prozessor PEo durch die Kette der verarbeitendenPEs durchgereicht werden konnen.

PE0- PEn+1 - PEn - · · · - PE1

6

PEs seien wieder den Spalten der Koeffizienten-Matrix fest zugeordnet(PEk bzw. PEn+1 bearbeitet Ajk bzw. bj).

Alle PEs bearbeiten zu einem Zeitpunkt dieselbe j-te Gleichung.

Eliminiere x1:Es dauert cm(n + 1) ZE, bis die Koeffizienten der ersten Gleichungin die vorgesehenen PEs geladen sind. Laden und Ruckschreiben dermodifizierten Koeffizienten dauert cm(n + 1) ZE fur jede der n − 1Gleichungen: Gesamtdauer also cm

((n+ 1) + (n− 1)(n+ 1)

)ZE.

Page 213: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 213

Eliminiere x2:Es dauert cm(n) ZE, bis die Koeffizienten der zweiten Gleichung indie vorgesehenen PEs geladen sind. Laden und Ruckschreiben dermodifizierten Koeffizienten dauert cm(n + 1) ZE fur jede der n − 2Gleichungen: Gesamtdauer also cm

((n) + (n− 2)(n+ 1)

)ZE.

allgemein also:

Eliminiere xi:Es dauert cm(n+ 2− i) ZE, bis die Koeffizienten der i-ten Gleichungin die vorgesehenen PEs geladen sind. Laden und Ruckschreiben dermodifizierten Koeffizienten dauertcm(n + 1) ZE fur jede der n − iGleichungen: Gesamtdauer also cm

((n+ 2− i) + (n− i)(n+ 1)

)ZE.

Zusammen ergibt sich ein Kommunikationsaufwand C von

C = cm

n−1∑i=1

((n+ 2− i) + (n+ 1)(n− i)

)= cm

((n+2)(n−1)− 1

2n(n−1) + (n+1)n(n−1)−(n+1)12 (n−1)n

)= 1

2cm(n− 1)(4 + 2n+ n2

)= 1

2cm(n− 1)(n+ 2)2

Page 214: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 214

Wenn der Mono-Prozessor c1 ZE fur einen Speicherzugriff braucht,gilt fur die Beschleunigung β aufgrund Parallelisierung

β =(1+c1) 1

6 (n−1)n (2n+5)12n(n−1)+ 1

2 cm(n−1)(n+2)2= (1+c1)n (2n+5)

3n+3cm(n+2)2 = 13

(1+c1)(2n+5)+

3cm(n+2)2

(1+c1)(2n+5)

,

also asymptotisch β ≈ 23

1+c1cm

fur n→∞.

Bei dieser Verbindungsstruktur der PEs wird der Geschwindigkeitsge-winn durch Parallelisierung der Eliminierung in diesem (schlechten)Fall durch den Kommunikationsaufwand zunichte gemacht.

z.H. Untersuche Kommunikationsaufwand bei der Parallelisierungder Auflosung fur best und worst case. oz.H. Berechne β und α fur Verbindungsstrukturen wie Ring, Stern,Torus, cross bar, hypercube usw. Beispielsweise lassen sich PEs aufeinem Chip gunstig Gitter-formig (wie z.B. Transputer) anordnen.

Berechne β und α fur quadratisch angeordnete(n+1

2

)2PEs. o

z.H. Welcher overhead ergibt sich bei Gauß-Jordan? o

Page 215: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 215

• Parallelisierung des Gauß’schen Algorithmus durch denCompiler

Compiler konnen program code vektorisieren bzw. (allge-meiner) parallelisieren.

• entweder durch den Programmierer mit Konstrukten wie par-begin und parend und/oder

• automatisch durch den compiler: Grundlage ist – wie im Beispiel– eine Datenfluß-Analyse, die Daten-Abhangigkeiten erkennt,soweit moglich auflost und Vektor-Operationen oder parallelenCode erzeugt.

Z.B. vektorisierende FORTRAN-compiler etwa auf Convex C1, HPN-class etc. c

Maschinen-abhangiger code! & AmdahlZ.B. paralleles Sortieren, s.a.www.inf.fh-flensburg.de/lang/algorithmen/sortieren/ c

Page 216: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 216

Z.B. Zum Addieren von 217 Zahlen – etwa in zwei-dimensionalem array –auf 128 = 27 PEs berechnet jedes PE die Summe von 1024 = 210 Zahlen.

sum=0.0; for(i=0; i<1024; i++) sum+=local_array[i];

Dann sendet eine Halfte der PEs der anderen Halfte die eigenen Ergebnissezum Aufaddieren, von denen wieder eine Halfte die eigenen Teilsummen deranderen Halfte sendet, bis auf diese Weise schließlich ein PE die Gesamt-Summe bestimmt.

limit=128; half=128;

repeat

half=half/2; // send vs receive dividing line

if (half<=Pn && Pn<limit) send(Pn-half,sum);

if (Pn<half) sum=sum+receive();

limit=half; // upper limit of senders

until (half==1)

Pn ist das betrachtete der ausfuhrenden PEs, send(p,v) sendet den Wert

v uber das Verbindungsnetzwerk an Prozessor p, wahrend receive() das

betreffende PE veranlaßt, einen Wert uber das Netz entgegenzunehmen. c

Page 217: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 217

8.2. Effizienz/Effektivitat der Parallelisierung

Def. Fur einen gegebenen Algorithmus definiert β(p) = T (1)/T (p)den Beschleunigungsfaktor β(p) aufgrund von Parallelisierung mit pPEs, wo T (p) Zeit fur Abarbeitung des Algorithmus’ auf p PEs ist.E(p) = β(p)/p mißt die Effizienz eines parallelen Algorithmus’.F (p) = β(p)/(p T (p)) = Beschleunigung/Kosten mißt die Effektivitatvon parallelen Algorithmen.Ein paralleler Algorithmus, der F (p) maximiert, heißt effektiv.

Z.B. einige wenige BeispieleProblem bzw. Algorithmus β(p)Matrizenrechnungen, Diskretisierung O(p)Sortieren, tridiagonale Systeme, lineare Rekursion,Polynomauswertung

O(p/ ld(p)

)Suchen O

(ld(p)

)Horner, gewisse nichtlineare Rekursion, bestimmteAnteile der Compilation

O(1)

c

Page 218: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 218

Z.B. Fur die Addition von 16 Zahlen ai gilt T (1) = 15 sowiep T (p) β(p) E(p) F (p)T (1) = β(p)E(p)1 15 1.00 1.00 1.002 8 1.88 0.94 1.763 6 2.50 0.83 2.084 5 3.00 0.75 2.258 4 3.75 0.47 1.76

c

8.3. parallele Speicher-Zugriffe auf Matrizen

Z.B. Zugriff auf Matrix A = (aij) in verteiltem Speicher

P1 P2 P3

a11 a12 a13

a21 a22 a23

a31 a32 a33

P1 P2 P3

a11 a12 a13

a23 a21 a22

a32 a33 a31

P1 P2 P3 P4

a11 a12 a13 a14

a24 a21 a22 a23

a33 a34 a31 a32

a42 a43 a44 a41

zyklisch geshiftete Zeilen cVerallgemeinerungen: Schiefe-Systeme

Page 219: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 219

8.4. Baumhohenreduktion

Compiler nutzen Assoziativitat, Kommutativitat und Distributivitatzur Reduktion der Baumhohe h = h(A) algebraischer Ausdrucke A.

Z.B.h A per A′ h′

3 (((a+ b) + c) + d) Assoziativitat (a+ b) + (c+ d) 23 a+ bc+ d Kommutativitat (a+ d) + bc 2

c

Z.B. y2 + y3 = y(y + y2) = y2(1 + y) mit DAG-Hohen 3, 3 bzw. 2 c∃ allgemeine Verfahren. Jedoch NB: moglicher Verlust numerischerStabilitat, z.B. fl

((1 + ε) + ε

)6= fl

(1 + (ε+ ε)

)!

8.5. Parallelisierung rekurrenter Relationen

Z.B. Beispiele linearer rekurrenter RelationenProblem Algorithmus Anfangsbedingung Rekurrenz

Skalarprodukt z =∑xkyk z := 0 z = z + xkyk

Horner p =∑akx

ko p := an p = an−k + xop

Fibonacci(fk

)f2 := f1 = 1 fk = fk−1 + fk−2

c

Def. ~x = ~c+A~x mit strikter unterer Dreiecksbandmatrix A ist lineare

Page 220: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 220

rekurrente Relation mit xk =

{0 furk ≤ 0

ck +∑k−1j=k−m akjxj fur1 < k < n

.

Falls xk = f(Al, Ar) mit parallel abzuarbeitenden Algorithmen Alund Ar gleicher Komplexitat, wende rekursives Doppeln auf Al undAr an, dann Parallelisierung bzw. Vektorisierung, falls identische Ope-ratoren in identischer Reihenfolge in Al und Ar.

column sweep algorithm mit β(p) = n2 und E(p) = n

2(n−1) >12 fur

p = n− 1

1. x1 bekannt; parfor(i=2;i<=n;i++) berechne c(1)i = ai1x1 + ci

rofrap und damit x2

2. . . .

3. xk bekannt; parfor(i=k+1;i<=n;i++) berechne c(k)i = aikxk +

c(k−1)i rofrap und damit xk+1

4. . . .

5. xn−1 bekannt; berechne xn = ai,n−1xn−1 + c(n−2)i

∃ Verallgemeinerungen fur nichtlineare rekurrente Relationen!

Page 221: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 221

8.6. Modellierung durch DAGs

Gleichartige PEs bearbeiten eine Menge von #tasks voneinander abhangi-gen (sub-) tasks. Abhangigkeiten, Ausfuhrungszeiten und Kommuni-kationszeiten (communication overhead) lassen sich durch gerichtete,azyklische Graphen mit Knoten- und Kanten-Labeln beschreiben.

• Jedes PE bearbeitet zu einer Zeit maximal ein (sub-) task.

• Ein PE kann eine subtask st erst dann zu bearbeiten beginnen,wenn alle Zwischenergebnisse der tasks vorliegen, von denen stabhangig ist.

• Kommunikation je nach Modell-Vorgaben (gleichzeitiges undmehrfaches Senden und Empfangen?)Kommunikation auf ein und demselben PE braucht 0ZE!

Fur gegebene Zuordnung von PE zu (sub-) task PAT = (pi)i=1,...,#tasks

mit pi ∈ {0, 1, . . . ,#PEs − 1} eine der #PEs vielen PEs minimie-re die Zeit tDAG(PAT ), die die PEs bei gegebener Zuordnung PATbrauchen, um die gesamte task zu bearbeiten.

Page 222: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 222

5a 3b

3c 2d

1e

12

3

3 1

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5a(α)b(α)

b(α) to d(β)c(α)d(β)

d(β) to e(α)e(α)

fur beispielsweise PAT = αααβα. Berechne also nacheinander

tDAG = minPAT∈{PATs}

tDAG(PAT )

fur geeignete Mengen {PATs} und ggfls.

t = minDAG∈{DAGs}

tDAG

Z.B. Ein algebraischer Ausdruck expr definiert verschiedene Aus-wertungsbaume, also zugehorige DAGs. Zu expr bestimme t, wo uberalle zugehorigen DAGs und alle PATs mit vorgegebener Anzahlen vonPEs, die jeweils genau die in expr vorkommenden algebraischen Ope-rationen ausfuhren konnen, zu minimieren ist. cz.H. Erzeuge Beispiele obiger Art und bestimme jeweils t. o

Page 223: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 223

8.7. Programmierung

per fork, d.h. duplizieren von Prozessen, identifiziert durch idz.B. zwei Prozesse/oren addieren vier Feldelemente x[1], . . . , x[4]Annahme: shared memory! Programmer: static scheduling

shared x, childs_sum, parents_sum;

unshared id, i, nprocs=2, sum=0;

id = fork(); // child gets 0, parent gets child’s pid

if (id==0) i = 1; else i = 2;

while (i<=4) { // child adds odd, parent even elements

sum += x[i]; i += nprocs;

}

if (id==0) {childs_sum = sum; exit()} else parents_sum = sum;

return childs_sum+parents_sum; // race condition

hazard = race condition, aufzulosen etwa durch Synchronisation perinit_barrier(A,nprocs)

if (id==0) childs_sum = sum; else parents_sum = sum;

barrier(A);

if (id==0) exit(); return childs_sum+parents_sum;

Page 224: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 224

Aufwand fur x[i]=g(i) sei unterschiedlich oder nicht abschatzbar.Programmer: dynamic scheduling per mutual exclusion, MUTEX

shared si, childs_sum, parents_sum, lck; // lock

unshared id, i, nprocs=2, sum=0;

si = 1;

id = fork(); // child gets 0, parent gets child’s pid

for(;;) {

mutex_lock(lck); // atomically test & set a memory cell

i = si; si +=1; // critical region

mutex_unlock(lck);

if (i>4) break;

sum += g(i);

}

if (id==0) childs_sum = sum; else parents_sum = sum;

barrier(A);

if (id==0) exit();

return childs_sum+parents_sum;

if locked: busy wait oder sleep waitz.H. Vorteile/Nachteile? o

Page 225: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 225

Duplizieren von Prozessen und deren Verwaltung ist teuer! Verwendestattdessen threads = light weight processes mit shared code, aber’eigene’ lokale Daten, PC, SP, Stack, vgl. hyperthreading

global n=10; x[n], sum, nthreads=3, si=1, lckA, lckB;

% ...

for(i=0;i<nthreads;i++) thread_create_run(&workerID[i],work());

for(i=0;i<nthreads;i++) thread_join(&workerID[i]); // barrier

return sum;

function work()

local i, mysum=0, myID=thread_self();

for(;;) {

mutex_lock(lckA);

i = si; si += 1;

mutex_unlock(lckA);

if (i>n) break; mysum += x[i];

}

mutex_lock(lckB);

sum += mysum;

mutex_unlock(lckB); // implicit thread_exit()

Page 226: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 8: Parallelisierung von Algorithmen 226

S

S

S * S *

*

a

a2

a4 a3

a8 a7 a6 a5

Russian Peasant Algorithm(im Bild n = 8 im Programm n = 32)berechne a1, a2, . . . , an

mit einem thread/Multiplikation

global x, y[1..32]; // compute y[i] = x^i

% ...

local n=1, i, k; y[1] = x;

for(k=1;k<=5;k++) { // 5 = ld(32)

for(i=1;i<=n;i++) thread_create(mult(),n); // pass n to mult

// threads generated with thread id = 1,2,...,n

while (thread_join()==0); // barrier

n *= 2;

}

function mult(int n)

local i=thread_self();

y[i+n] = y[i]*y[n];

Page 227: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

227

9. Vektor-Prozessor-Systeme (SIMD)

z.B. Matrix-Multiplikation C = AB mit cij =∑nk=1 aikbkj

skalar processing

for(i=1; i<=n; i++)

for(j=1; j<=n; j++)

{

c[i][j]=0;

for(k=1; k<=n; k++)

c[i][j]+=a[i][k]*b[k][j];

}

Page 228: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 9: Vektor-Prozessor-Systeme (SIMD) 228

9.1. vector processing (per pipelining oder n ALUs)

for(i=1; i<=n; i++)

{

parfor(j=1; j<=n; j++) c[i][j]=0;

for(k=1; k<=n; k++)

parfor(j=1; j<=n; j++)

c[i][j]+=a[i][k]*b[k][j];

}

zeilenweise parallel

Page 229: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 9: Vektor-Prozessor-Systeme (SIMD) 229

9.2. parallel processing (per n parallel processes/processors)

for(j=1; j<=n; j++)

fork (j)

{

for(i=1; i<=n; i++)

{

c[i][j]=0;

for(k=1; k<=n; k++)

c[i][j]+=a[i][k]*b[k][j];

}

}

join(n);

jeder Prozess berechnet eine Spalte:zeilenweise parallel

Page 230: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 9: Vektor-Prozessor-Systeme (SIMD) 230

9.3. pipelining within/across operations

z.B.pipelined fadd = (compare exponents, shift significand, add signifi-cands, normalize)

pipelining across operations, chaining, d.h. unmittelbare Weitergabevon Zwischen-Ergebnissen an functional units ohne Speicherung derZwischen-Ergebnisse in (Vektor-) Registern

z.B. in CRAYs etwa bei a~x+ ~y (sAXPY, dAXPY)

V1=X

V2=Y ; can

V3=a*V1 ; be

V4=V2+V3 ; chained

C=V4

Page 231: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 9: Vektor-Prozessor-Systeme (SIMD) 231

9.4. Beispiel: IBM 3090 Vector Facility

• Vektor-Instruktionen vermindern den Schleifen-Overhead (vgl.loop unrolling/unfolding)

• Vektor-Operationen pipelined oder parallel

• Zwischenergebnisse in Vektor-Registern vermeiden Speicher-Zu-griffe

Skalar-Prozessor mit Skalar-Registern (Sr) wird um Vektor-Prozessormit Vektor-Registern (Vr) erganzt! (sw-kompatibel)Befehlssatz ist um Vektor-Instruktionen erganzt! (unterbrechbar, vec-tor interruption index)

Vector Facility = Add on, integriert in die /370-Architektur

Page 232: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 9: Vektor-Prozessor-Systeme (SIMD) 232

• reconfigurable vector registers

1 Speicher-Zugriff pro cycle,2 read und 1 write Register pro cycle,1 ALU-Operation pro cycle.

16 Vektor-Register mit 128 32bit-Elementen oder 8 Vektor-Registermit 128 64bit-Elementen (single/double/integer), pipelined vector ALUVektor-Register fur 32bit oder 64bit integer oder floating point!

’architecture specifies’ vector registers with 8–512 elements!

relative start-up time der Vektor-ALU-pipelinevs

save/restore Vektor-Register on process switch etc.

plus vector mask register, vector status register (u.a. length), vectoractivity count (register) (timer) . . .

Page 233: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 9: Vektor-Prozessor-Systeme (SIMD) 233

• Compound Instructions

z.B. Multiply-and-Accumulate (=add) mit drei Quell-Operanden!etwa Vr=Vr*V[Mem]+Vr

accumulate instructions berechnen partielle Summen von Vektoren,wegen Latenz ’interleaved’, d.h. in speziellem Vektor-Register

partial sum0 = v0 + v4 + . . .+ v124

partial sum1 = v1 + v5 + . . .+ v125

partial sum2 = v2 + v6 + . . .+ v126

partial sum3 = v3 + v7 + . . .+ v127

in

speziellemVektor-

Register P

target vector =∑

partial sumi Stallings: non critical!

Page 234: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 9: Vektor-Prozessor-Systeme (SIMD) 234

• z.B. komplexe Multiplikation

z.B. ~a,~b,~c ∈ |Cn mit cj = aj ∗ bj ∈ |C mit |C 3 z = (<z,=z) = (zr,zi)

for(j=1; j<=n; j++)

{

cr[j]=ar[j]*br[j]-ai[j]*bi[j]; // real part

ci[j]=ar[j]*bi[j]+ai[j]*br[j]; // imaginary part

}

memory to memoryOperation Cycles

t1[j]=ar[j]*br[j] 3

t2[j]=ai[j]*bi[j] 3

cr[j]=t1[j]-t2[j] 3

t3[j]=ar[j]*bi[j] 3

t4[j]=ai[j]*br[j] 3

ci[j]=t3[j]+t4[j] 3

total 18

compound instructionsOperation Cycles

v1[j]=ar[j] 1

v2[j]=v1[j]*br[j] 1

v3[j]=ai[j] 1

v2[j]=v2[j]-v3[j]*bi[j] 1

cr[j]=v2[j] 1

v4[j]=v1[j]*bi[j] 1

v4[j]=v4[j]+v3[j]*br[j] 1

ci[j]=v4[j] 1

total 8

Page 235: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 9: Vektor-Prozessor-Systeme (SIMD) 235

register to registerOperation Cycles

v1[j]=ar[j] 1

v2[j]=br[j] 1

v3[j]=v1[j]*v2[j] 1

v4[j]=ai[j] 1

v5[j]=bi[j] 1

v6[j]=v4[j]*v5[j] 1

v7[j]=v3[j]-v6[j] 1

cr[j]=v7[j] 1

v8[j]=v1[j]*v5[j] 1

v9[j]=v4[j]*v2[j] 1

v0[j]=v8[j]+v9[j] 1

ci[j]=v0[j] 1

total 12

memory to registerOperation Cycles

v1[j]=ar[j] 1

v2[j]=v1[j]*br[j] 1

v4[j]=v3[j]*bi[j] 1

v5[j]=v2[j]-v4[j] 1

cr[j]=v5[j] 1

v6[j]=v1[j]*bi[j] 1

v7[j]=v3[j]*br[j] 1

v8[j]=v6[j]+v7[j] 1

ci[j]=v8[j] 1

total 10

Page 236: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 9: Vektor-Prozessor-Systeme (SIMD) 236

• IBM 3090 Vector Facility – Vector Instructions

Operationargtype

Vr=OP(operands), Vmr=comp(operands) resp.

add sdi Vr+Vr Vr+Mem Sr+Vr Sr+Memsub sdi Vr–Vr Vr–Mem Sr–Vr Sr–Memmult sdi Vr*Vr Vr*Mem Sr*Vr Sr*Memdiv sd Vr/Vr Vr/Mem Sr/Vr Sr/Memcomp sdi Vr op Vr Vr op Mem Sr op Vr Sr op Memmul & add sd Vr+Vr*Mem Vr+Sr*Vr Vr+Sr*Memmul & sub sd Vr–Vr*Mem Vr–Sr*Vr Vr–Sr*Memmul & acc sd P+op Vr P+op Memcomplement sdi –Vrpos/neg abs sdi ±|Vr|max/min sd Sr op Vrsll/srl lgcl op Vrand/or/xor lgcl Vr op Vr Vr op Mem Sr op Vr Sr op Mem

P = partial sum of vector: sumj =∑i mod 4=j vi, j = 0, 1, 2, 3

Page 237: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

237

10. parallele Architekturen

Ziel ist eine skalierbare, hochverfugbare, hochzuverlassige oderetwa fehlertolerante Architektur, auf der eine Anwendung, einigewenige oder beliebige Anwendungen mit moglichst maximalem, d.h.mit linearem speedup abgearbeitet werden.

Mehrere PEs bearbeiten eine gemeinsame Anwendung⇒ PEs greifen auf gemeinsame Daten zu!

• single address space/shared (global) memorysynchronization by e.g. memory locks

– uniform memory access, UMA oder symmetric multipro-cessors, SMP

– non uniform memory access, NUMA

• message passing fur PEs mit lokalem/privatem Speicher, z.B.cluster

Verbindung der PEs uber (einen) Bus oder uber ein Netzwerk!

Page 238: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 238

10.1. Klassifizierung anhand von Beispielen

• Symmetric / Shared-Memory Multiprocessors (SMP), Uni-form Memory Access (UMA)

• Digital AlphaServer 8400

• Hewlett Packard 9000

• IBM servers (PC, AS/400, RS/6000, S/390)

• Sun Microsystems Ultra Enterprise 6000

• Sun Microsystems Ultra Enterprise 10000

• Non-Uniform Memory Access (NUMA) Multiprocessors

• HP/Convex Exemplar

• Sequent NUMA-Q 2000

• Silicon Graphics Origin2000

Page 239: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 239

• Clusters

• Hewlett Packard 9000 EPS 21

• Sun Ultra Enterprise Cluster HA Server

• Massively Parallel Processors (MPP)

• Cambridge Parallel Processing Inc.’s DAP: ¨The DAP now hasan 8 bit processing element, but is still a classic SIMD MPP,with 1024 or 4096 processing elements!¨

• DOE Accelerated Strategic Computing Initiative (ASCI)

– IBM RS/6000 SP – ASCI Blue Pacific model (costing $93M)to reach 3 TeraFLOPS by December, 1998

– Intel Scalable Server – ASCI Red (9000 Pentium Procscosting $46M with 1.8 TeraFLOPS peak) reached 1 Tera-flops on December, 1996

– SGI/CRAY Origin – ASCI Blue Mountain model (3072processors costing $110M) to reach 3 TeraFLOPS in 1998

• s.a. top500

Page 240: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 240

10.2. Multiprocessor-Systeme mit gemeinsamem Bus

• gangige PEs, gangige Bus-Systeme

• caches mindern Bus-traffic, reduzieren Latenz

• cache-Koharenz etwa per MESI

PE 1 PE 2 · · · PE nm m m

cache 1 cache 2 · · · cache nm m m

gemeinsamer Busm m

Memory IO

z.B. Compac Proliant mit 4 Pentium Pro, Digital AlphaServer mit12 Alpha 21164, HP 9000 mit 4 PA8000, IBM RS/6000 mit 8 Po-werPC 604, SGI Power Challenge mit 36 MIPS R10000, SUN Enter-prise 6000 mit 30 UltraSPARC 1 usw.

Page 241: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 241

10.3. cache-Koharenz in Multiprozessor-Systemen

ein gemeinsamer Bus und globaler Speicher: per snooping protocol

Cache tag and data

Processor

Single bus

Memory I/O

Snoop tag

Cache tag and data

Processor

Snoop tag

Cache tag and data

Processor

Snoop tag

Page 242: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 242

• cache-Koharenz durch Invalidieren

event PE1 PE2 PE3start no copy no copy no copyPE1 reads clean copy no copy no copyPE2 reads clean copy clean copy no copyPE3 writes invalidated copy invalidated copy dirty copyPE2 reads invalidated copy clean copy clean copy

• cache-Koharenz durch Aktualisieren

event PE1 PE2 PE3start no copy no copy no copyPE1 reads clean copy no copy no copyPE2 reads clean copy clean copy no copyPE3 writes updated copy updated copy updated copyPE2 reads clean copy clean copy clean copy

Page 243: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 243

• cache-Koharenz

Anforderungen, Koharenz zu garantieren

• PEs write exclusively

• after a write: invalidate or update all copies

• write shared data: invalidate or update all copies

• on read miss: check other caches first

snooping protocols mit write invalidate oder write update

write invalidate writing PE invalidiert (per bus signal) alle Kopienin anderen caches und andert erst dann lokale Kopie– wie write back (nur first write is signaled)

write update/write broadcast writing PE broadcasts die neuenDaten zwecks update aller Kopien– wie write through (reduziert Latenz)

bus traffic? Vorteile/Nachteile?

Page 244: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 244

• Einfaches cache-Koharenz Protokoll

Simples cache-Koharenz write invalidate/write back Protokoll per fsm

read only cache line is clean (not written) and may be shared

read/write cache line is not clean (written, dirty), may not be shared

invalid cache line is invalid

Invalid (not valid

cache block)

Read/Write (dirty)

Read Only (clean)

)tihfietadilavnidneS(

(Writ

e back

dirty

block

tomem

ory)

Processor read miss

Processor write

Processor write miss

Processor read miss

Processor write (hit or miss)

Cache state transitions using signals from the processor

Invalid (not valid

cache block)

Read/Write (dirty)

Read Only (clean)Invalidate or

another processor has a write miss

for this block (seen on bus)

Another processor has a read miss or a write miss for this block (seen on bus);

write back old block

a.

Cache state transitions using signals from the busb.

Invalid (not valid

cache block)

Read/Write (dirty)

Read Only (clean)

)tihfietadilavnidneS(

(Writ

e back

dirty

block

tomem

ory)

Processor read miss

Processor write

Processor write miss

Processor read miss

Processor write (hit or miss)

Cache state transitions using signals from the processor

Invalid (not valid

cache block)

Read/Write (dirty)

Read Only (clean)Invalidate or

another processor has a write miss

for this block (seen on bus)

Another processor has a read miss or a write miss for this block (seen on bus);

write back old block

a.

Cache state transitions using signals from the busb.

Page 245: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 245

Generellkein Zustandsubergang on read hitZustandsubergange on read miss, write hit, write miss

read miss new block: state=read only;old block: if dirty write back to memoryremote caches with old block: state=invalid if dirty

write hit send invalidate (remote caches with block: state=invalid)write into block: state=read/write

write miss wie read miss; new block: state=read/write

• MESI/MOESI

MESI ist ein cache-Koharenz write invalidate/write back Protokoll

Modified wie read/write: dirty, no to be shared

Exclusive wie read only, aber nur genau eine Kopie

Shared wie read only, aber mehrere Kopien

Invalid wie invalid

z.H. Zustandsubergange? MOESI? (Owned = modified shared)

Page 246: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 246

© 1997, 1999, G.Q. Kenney CSC 506, Summer 1999 Page 2

Picture the MESI cache states:

Valid Data

Modified in Cache A

M

Cache A

Invalid Data

Cache B

Invalid DataSystemMemory

Valid Data

Shared in Cache A

S

Cache A

Valid Data

Cache B

Valid Data

Valid Data

Exclusive in Cache A

E

Cache A

Invalid Data

Cache B

Valid Data

Invalid Data

Invalid in Cache A

I

Cache A

Don't Care

Cache B

Don't Care

SI

SystemMemory

SystemMemory

SystemMemory

Page 247: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 247

Coherency & Synchronization Architecture of Parallel Computers Page 3

MESI State Diagram

Invalid Shared

Modified Exclusive

RH

SHR

RHRH

SHR

WH

SHI

RME

Read

SHI

RMS Read

SHR

Push WH

Invalidate

WMSHI

Push

WH

LRU

Push

Invalidate

Read

Events:

RH = Read HitRMS = Read miss, sharedRME = Read miss, exclusiveWH = Write hitWM = Write missSHR = Snoop hit on readSHI = Snoop hit on invalidateLRU = LRU replacement

Bus Transactions:

Push = Write cache line back to memory

Invalidate = Broadcast invalidateRead = Read cache line from

memory

Events:RH = Read HitRMS = Read miss, sharedRME = Read miss, exclusiveWH = Write hitWM = Write missLRU = LRU replacement

Snoop Events:SHR = Snoop hit on readSHI = Snoop hit on invalidate

Bus Transactions:Push = Write back to memoryInvalidate = Broadcast invalidateRead = Read from memory

Page 248: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 248

10.4. Verbindungsstrukturen

• Beispiele

bus

PE PE PE PE PE

mem grid

star

PE

PE

PE

PE

PE

PE

ring

PE

PE

PE

PE

PE

PE

Page 249: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 249

torus crossbar PE

m

PE

m

PE

m

PE

m

PE

m

PE

m

complete

PE

PE

PE

PE

PE

PE

hypercube dim=0 dim=10 1

dim=2

00 01

10 11

dim=3

000 001

010 011

100 101

110 111

Page 250: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 250

c. Omega network switch box

A

B

C

D

P0

P1

P2

P3

P4

P5

P6

P7

a. Crossbar b. Omega network

P0

P1

P2

P3

P4

P5

P6

P7

vgl. z.B.www.top500.org/2007 overview recent supercomputers/shared memory mimd machines

basierend aufwww.top500.org/2007 overview recent supercomputers/main architectural classes

Page 251: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 251

Page 252: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 252

• Merkmale einschlagiger Verbindungsstrukturen

Qualitative Merkmale

• Skalierbarkeit

Quantitative Merkmale

• Durchmesser = langste Weglange

• # ports pro PE

• # switches in Verbindungsstruktur

• total bandwidth = # links × link-bandwidth

• bisection bandwidth

• (min/average/max) Latenz

• Fehlertoleranz = # verschiedene Wege

Page 253: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 10: parallele Architekturen 253

Sei n = # PEs. Alle links seien bidirectional.

Topologie skalierbar Durchmesser #ports #switches # linksBus ja 1 1 – 1 oder20 n− 1Ring ja n 2 – n− 1Stern ja 2 1 – n√

n×√n-Gitter ja 2(

√n− 1) 4 n ? 2

√n(√n− 1)

complete nein 1 n− 1 – 12n(n− 1)

√n×√n-Torus ja 2b

√n

2 c 4 n ? 2nldn-hypercube nein ldn ldn n ldn 1

2n ldncrossbar ja 1 1 n2 2ncrossbarh stages

ja 2h+ 1 hhC fur C = h

√n

C × C-crossbars2hC

Omega ja ldn 4 2n ldn oder20 n2 ldn

mehr-stufig ja log n 1 n ldn n log nBenes ja 2 log n− 1 1 n(ldn− 1/2) n(2 ldn− 1)

z.H. Untersuche Kombinationen. o

20je nach Auslegung

Page 254: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

254

11. Addenda

11.1. Addendum in 2003: top 500

www.top500.org, s.a. c’t ≈14/2003# brand computer1 NEC Earth Simulator2 HP ASCI-Q – AlphaServer 1,25 GHz3 Linux NetworX MCR Linux Cluster XEON 2,4GHZ, Quadrics4 IBM ASCI-White SP Power3, 375MHz5 IBM SP Power3, 375MHz 16way

24 IBM IBM Regatta, Power4, 1,3GHz29 Hitachi Hitachi SR 8000-F133 NEC NEC-SX-6 (6 proc) / 192M24

# TFLOPS Betreiber Jahr N1 35,860 Earth Simulation Center, Yokohama, JP 2002 51202 13,880 Los Alamos Natl. Lab, USA 2002 81923 7,634 Lawrence Livermore Natl. Lab, USA 2002 23044 7,304 Lawrence Livermore Natl. Lab, USA 2000 81925 7,304 NERSC, LBNL, USA 2002 6656

24 2,050 MPI, Garching 2002 76829 1,653 Leibniz-RZ, Munchen 2002 16833 1,484 Dt. Klima-RZ, DKRZ 2003 192

Page 255: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 255

11.2. Addendum in 2004: announced in 2004

vgl. www.top500.org

ASCI =DOE’s Accelerated Strategic Computing InitiativeAdvanced Simulation and Computing Program

• ASCI Purple im Auftrag des DOE, am Lawrence LivermoreNational Laboratory: IBM, 12544 Power5 Prozessoren, 50 TBHaupt-Speicher, 2 PB Festplatten-Speicher, 100 TFLOPS, 156TB/s Speicher-Bandbreite (31200 DVD-Filme/s) und 12,5 TB/sKommunikationsbandbreite

• IBM Blue Gene/L: fur physikalische, biologische und metereo-logische Simulationen; ca 130000 procs, ca 367 TFLOPS, Linux

• IBM Blue Gene: fur Faltung großer Eiweiß-Molekule in der Gen-Technik; SMASH (simple, many and self-healing): 1 Mio procs,8 Mio parallel threads, 1 PFLOPS; jeweils als 32×32×32 = 215

Wurfel

Page 256: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 256

11.3. Addendum in 2005: top 500

s.a. c’t 14/2005, S.18; Rmax = maximal LINPACK performanceRechner Betreiber Land rank procs Rmax

11/04 TFlop/s

BlueGene LLNL/DOE USA 1 65536 PowerPC440, 700MHz 136,7BlueGene IBM, T.J.Watson USA – 40960 PowerPC440, 700MHz 91,3Columbia NASA USA 2 10160 Itanium 2, 1.6GHz 51,9Earth Simulator Earth Simulation Center Japan 3 5120 NEC SX6 35,9MareNostrum Barcelona SCC Spain 4 4800 PowerPC970, 2.2GHz 27,9BlueGene ASTRON/Uni Groningen NL – 12288 PowerPC440, 700MHz 27,5Thunder LLNL USA 7 4096 Itanium 2, 1.4 GHz 19,9BlueGene Ecole Polytec. Lausanne CH – 8192 PowerPC440, 700MHz 18,2BlueGene JAIST Japan – 8192 PowerPC440, 700MHz 18,2Cray Red Storm Oak Ridge NL USA – 500 Opteron, 2GHZ 15,2

unter www.top500.org s.a.

• home: The Linpack benchmark can now be run using HPL,A Portable Implementation of the High-Performance Linpack Benchmark

for Distributed-Memory Computers

• home: lists, list statistics – since June 1995

• home: highlights, trends

• home: Overview of Recent Supercomputers

• InFocus: Literatur, upcoming supercomputers etc.

Page 257: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 257

11.4. Addendum in 2006: top 500

s.a. c’t 15/2006, S.18; Rmax = maximal LINPACK performanceRechner Betreiber Land rank procs Rmax

11/05 TFlop/s

BlueGene DOE/LLNL USA 1 131072 PowerPC440, 700MHz 280,6BlueGene IBM, T.J.Watson USA 2 40960 PowerPC440, 700MHz 91,3ASC purple DOE/LLNL USA 3 12208 PowerS, 1.9GHz 75,8Columbia NASA USA 4 10160 Itanium2, 1,6GHz 51,9Tera-10 Comm.Energ.Atom. France – 8704 Itanium2, 1,6GHz 42,9Thunderbird Sandia Natl.Lab. USA 5 9024 Xeon, 3,6GHz 38,3TSUBAME Tokyo IT Japan – 10368 Opteron, 2,6GHz 38,2JUBL,BlueGene FZ Julich BRD 6 16384 PowerPC440, 700MHz 37,3Cray Red Storm Oak Ridge N.L. USA 10 10880 Opteron, 2,4GHz 36,2Earth Simulator Earth Simulation Ctr Japan 7 5120 NEC SX6 35,9

www.top500.org: The TOP500 table shows the 500 most powerfulcommercially available computer systems known to us.

Die Liste stellt ein halbjahrliches ranking dar. Sie ist unter diversenKriterien durchsuchbar. Es gibt ein Archiv alter Listen.

www.top500.org bietet damit den Herstellern von Super-Computerneine Buhne. Werbung! Die veroffentlichten technischen Details lassenaber auch trends im high performance computing, HPC erkennen.

Page 258: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 258

• statt Linpack benchmark in Zukunft HPC Challenge, HPCC ?

• wohl haufig nur ’transient’ zusammengestellte Super-Computer

• clusters, clouds . . .

• FPGA-Beschleuniger, cell-Prozessoren, GPGPUs . . .

• s. InFocus: Literatur, upcoming supercomputers etc.

Page 259: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 259

11.5. Addendum in 2007: cell-Prozessor

• entwickelt seit 2000 von IBM, Sony, Toshiba

• Ziel: 100-fache PS2-Leistung

• gaming, multi media, real time responsiveness

• von IBM: 90nm-Prozess, SiliconOnInsulator, low-k dielectrics,copper interconnects, Architektur21

B hardware performance and efficiency

• memory latency & -bandwidth (”memory wall/gap“): DRAM

latencies ↗, = hundreds of multi-GHz processor cycles = athousand of (multi-) processor (with shared memory) cycles;Spekulation ist kein Ausweg

• power: improve power efficiency along with performance

• Frequenz-Steigerungssackgasse (kurzere cycles⇒ immer langerepipelines ⇒ immer hohere penalties)

21 Kahle et al: Introduction to the Cell multiprocessor; IBM J. Res.&Dev. Vol49, No 4/5, July/Sept. 2005 http://researchweb.watson.ibm.com/journal/rd/494/kahle.html

Page 260: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 260

B real time responsiveness to user and network

”keep the players satisfied!“

• support real time OS

• support communication oriented workload

• variety of e.g. streaming standards ⇒ flexibility and program-mability of acceleration

• security, DRM, privacy

B Applicability to a wide range of platforms

long term 64bit Broadband Architecture22 + LINUX-based softwaredevelopment environment = software development community

B Introduction in 2005

Power Architecture = basis for Cell

22 s.a. http://www-306.ibm.com/chips/techlib/techlib.nsf/products/Cell

Page 261: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 261

B Design Concept and Architecture

Cell = 64bit Power + synergistic processors + DMA + memory flow control

first generation Cell = dual issue 64bit Power processor element, PPE+ 8 synergistic processor elements, SPE+ on chip memory controller + on chip IO controller

� A high-bandwidth on-chip coherent bus and high

bandwidth memory to deliver performance on

memory-bandwidth-intensive applications and to

allow for high-bandwidth on-chip interactions

between the processor elements. The bus is coherent

to allow a single address space to be shared by the

PPEs and SPEs for efficient communication and ease

of programming.� High-bandwidth flexible I/O configurable to support

a number of system organizations, including a single-

chip configuration with dual I/O interfaces and a

‘‘glueless’’ coherent dual-processor configuration that

does not require additional switch chips to connect

the two processors.� Full-custom modular implementation to maximize

performance per watt and performance per square

millimeter of silicon and to facilitate the design of

derivative products.� Extensive support for chip power and thermal

management, manufacturing test, hardware and

software debugging, and performance analysis.� High-performance, low-cost packaging technology.� High-performance, low-power 90-nm SOI

technology.

High design frequency and low supply voltage

To deliver the greatest possible performance, given a

silicon and power budget, one challenge is to co-optimize

the chip area, design frequency, and product operating

voltage. Since efficiency improves dramatically (faster

than quadratic) when the supply voltage is lowered,

performance at a power budget can be improved by using

more transistors (larger chip) while lowering the supply

voltage. In practice the operating voltage has a minimum,

often determined by on-chip static RAM, at which the

chip ceases to function correctly. This minimum

operating voltage, the size of the chip, the switching

factors that measure the percentage of transistors that

will dissipate switching power in a given cycle, and

technology parameters such as capacitance and leakage

currents determine the power the processor will dissipate

as a function of processor frequency. Conversely, a power

budget, a given technology, a minimum operating

voltage, and a switching factor allow one to estimate a

maximum operating frequency for a given chip size. As

long as this frequency can be achieved without making

the design so inefficient that one would be better off with

a smaller chip operating at a higher supply voltage, this is

the design frequency the project should aim to achieve. In

other words, an optimally balanced design will operate at

the minimum voltage supported by the circuits and at the

maximum frequency at that minimum voltage. The chip

should not exceed the maximum power tolerated by the

application. In the case of the Cell processor, having

eliminated most of the barriers that cause inefficiency in

high-frequency designs, the initial design objective was

a cycle time no more than that of ten fan-out-of-four

Figure 1

(a) Cell processor block diagram and (b) die photo. The first generation Cell processor contains a power processor element (PPE) with a Power core, first- and second-level caches (L1 and L2), eight synergistic processor elements (SPEs) each containing a direct memory access (DMA) unit, a local store memory (LS) and execution units (SXUs), and memory and bus interface controllers, all interconnected by a coherent on-chip bus. (Cell die photo courtesy of Thomas Way, IBM Burlington.)

Powercore

On-chip coherent bus (up to 96 bytes per cycle)

SXU

LS

SXU

LSLS

SXU

LSLS

SXU

LS

Dual RambusXDR**

RambusFlexIO**

LS

SXU

LS

SXU SXU SXU

Bus interfacecontroller

Memorycontroller

L2

L1

DMA DMADMADMA DMADMA DMA DMA

PPE

SPE

(a)

(b)

Rambus XDR DRAM interfaceRambus XDR DRAM interface

PowerPowercorecore

L2L20.5 MB0.5 MB

Memory controllerMemory controller

Test and debug logicTest and debug logic

Coh

eren

t bu

sC

oher

ent

bus

Rambus XDR DRAM interface

Powercore

L20.5 MB

SPESPE SPESPESPE SPE

SPESPE SPESPESPE SPE

SPESPE SPESPESPE SPE

SPESPE SPESPESPE SPE

Memory controller

I/O controllerI/O controllerI/O controller

Rambus RRACRambus RRACRambus RRAC

Test and debug logic

Coh

eren

t bu

s

J. A. KAHLE ET AL. IBM J. RES. & DEV. VOL. 49 NO. 4/5 JULY/SEPTEMBER 2005

592

Page 262: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 262

• high frequency design, i.e. small number of gates per cycle ⇒(low voltage, low power) & (high frequency, high performance)

• Power architecture compatibility ⇒virtualization, multi OS support, symmetric multiprocessing

• SIMD (PPEs vector media extensions, SPEs vector instructions)

• SPEs for coherent offload: SPEs with local memory, asynchro-nous coherent DMA, large register file . . .

• high bandwith coherent bus, high bandwidth memory (singleaddress space)

• high bandwith flexible configurable IO

B High frequency & low voltage

konfligierende Ziele: performance ↗, power ↘, frequency ↗, voltage↘, area ↘An optimally balanced design operates at minimum voltage suppor-ted by the circuits and at the maximum frequency at that minimumvoltage! ⇒ 10 FO4 later 11 FO4

Page 263: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 263

B Power architecture compatibility

erleichtert Portieren von Software: existing Power applications run onCell

B SIMD

Vektorisierung ist entscheidend fur performante multi media Anwen-dungen! typische Entwicklung solcher Anwendungen

1. develop single threaded software without SIMD

2. use SIMD on PPE

3. use SIMD on SPEs

B Power processor element, PPE

• nur 23 pipeline Stufen bei halber cycle time

”short wire“= short communication delays

• dual issue – in order; two threads (cp. Intels hyperthreading)

• 32KB 1st level I-cache and D-cache, 512KB 2nd level cache

• caching is not transparent: data is lockable in 2nd level cache

Page 264: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 264

• two simultaneous threads in PPE ⇒ PPE = two-way multi-processor with shared dataflow ⇒ software sees two processingunits (all registers are duplicated etc)

• PPE = instruction unit, IU+ fixed point execution (+ load/store) unit, XU+ vector scalar (floating point) unit, VSU

– IU fetches 4 instructions per cycle per thread into bufferand dual issues to execution; nearly all combinations pos-sible; 4KB branch history table

– XU with 32 64bit registers per thread + fixed point unit +load/store unit’The load/store unit supports a non-blocking L1 D-cachewhich allows cache hits under misses.’

– VSU with 32 64bit registers per thread; vector execution= 128bit data flow with 32 128bit vector registers (2×64,4×32, 8×16, 16×8, 128×1) + FUs for simple, complex,permute and SP float operations

Power processor element, PPE: IU, XU, VSU

Page 265: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 265

Figure 2

Power processor element (a) major units and (b) pipeline diagram. Instruction fetch and decode fetches and decodes four instructions in parallel from the first-level instruction cache for two simultaneously executing threads in alternating cycles. When both threads are active, two instructions from one of the threads are issued in program order in alternate cycles. The core contains one instance of each of the major execution units (branch, fixed-point, load/store, floating-point (FPU), and vector-media (VMX). Processing latencies are indicated in part (b) [color-coded to correspond to part (a)]. Simple fixed-point instructions execute in two cycles. Because execution of fixed-point instructions is delayed, load to use penalty is limited to one cycle. Branch miss penalty is 23 cycles and is comparable to the penalty in designs with a much lower operating frequency.

Pre-decode

L1 instruction cache

Microcode

SMT dispatch (queue)

Decode

Dependency

Issue

Branch scan

Fetch controlL2

interface

VMX/FPU issue (queue)

VMXload/store/permute

VMXarith./logic unit

FPUload/store

FPUarith./logic unit

Load/storeunit

Branchexecution unit

Fixed-pointunit

FPU completionVMX completion

Completion/flush

8

4

21

2

11 1 1

111

4Thread A Thread B

Threads alternatefetch and dispatchcycles

L1 data cache

2

Fixed-point unit instruction

Branch instruction

Load/store instruction

Branch prediction

IC Instruction cacheIB Instruction bufferBP Branch predictionMC MicrocodeID Instruction decodeIS Instruction issueDLY Delay stageRF Register file accessEX ExecutionWB Write back

ID2 IS1IC1 IC2 IC3 ID1 IS2IB2 IS3IB1 ID3IC4

BP1 BP2 BP3 BP4

RF2 EX1 EX2 EX3RF1DLY EX4 IBZ IC0DLY DLY

RF1 RF2 EX1 EX2 EX3 EX4 EX5 WBDLY DLY DLY

RF1 RF2 EX1 EX3 EX4EX2 EX5 EX7EX6 EX8 WB

PPE pipeline back end

(a)

(b)

Microcode

PPE pipeline front end

Thread AThread B

Thread A

Instruction decode and issue

Instruction cache and buffer

MC1 MC2 MC3 MC4 ... MC10 MC11MC9

IU

XU

VSU

J. A. KAHLE ET AL. IBM J. RES. & DEV. VOL. 49 NO. 4/5 JULY/SEPTEMBER 2005

594

Power processor element, PPE: pipline

Page 266: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 266

Figure 2

Power processor element (a) major units and (b) pipeline diagram. Instruction fetch and decode fetches and decodes four instructions in parallel from the first-level instruction cache for two simultaneously executing threads in alternating cycles. When both threads are active, two instructions from one of the threads are issued in program order in alternate cycles. The core contains one instance of each of the major execution units (branch, fixed-point, load/store, floating-point (FPU), and vector-media (VMX). Processing latencies are indicated in part (b) [color-coded to correspond to part (a)]. Simple fixed-point instructions execute in two cycles. Because execution of fixed-point instructions is delayed, load to use penalty is limited to one cycle. Branch miss penalty is 23 cycles and is comparable to the penalty in designs with a much lower operating frequency.

Pre-decode

L1 instruction cache

Microcode

SMT dispatch (queue)

Decode

Dependency

Issue

Branch scan

Fetch controlL2

interface

VMX/FPU issue (queue)

VMXload/store/permute

VMXarith./logic unit

FPUload/store

FPUarith./logic unit

Load/storeunit

Branchexecution unit

Fixed-pointunit

FPU completionVMX completion

Completion/flush

8

4

21

2

11 1 1

111

4Thread A Thread B

Threads alternatefetch and dispatchcycles

L1 data cache

2

Fixed-point unit instruction

Branch instruction

Load/store instruction

Branch prediction

IC Instruction cacheIB Instruction bufferBP Branch predictionMC MicrocodeID Instruction decodeIS Instruction issueDLY Delay stageRF Register file accessEX ExecutionWB Write back

ID2 IS1IC1 IC2 IC3 ID1 IS2IB2 IS3IB1 ID3IC4

BP1 BP2 BP3 BP4

RF2 EX1 EX2 EX3RF1DLY EX4 IBZ IC0DLY DLY

RF1 RF2 EX1 EX2 EX3 EX4 EX5 WBDLY DLY DLY

RF1 RF2 EX1 EX3 EX4EX2 EX5 EX7EX6 EX8 WB

PPE pipeline back end

(a)

(b)

Microcode

PPE pipeline front end

Thread AThread B

Thread A

Instruction decode and issue

Instruction cache and buffer

MC1 MC2 MC3 MC4 ... MC10 MC11MC9

IU

XU

VSU

J. A. KAHLE ET AL. IBM J. RES. & DEV. VOL. 49 NO. 4/5 JULY/SEPTEMBER 2005

594

RISC = Reduced Inside Complexity

Page 267: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 267

B Synergistic processor elements, SPEs

spezifische ISA23

• 1, 2, 4, 8, 16 byte data types: byte, 12word, word, 2word, 4word

• 128bit SIMD execution unit organisation, 27 registers

• 6 Formate fur die 32bit Instruktionen mit 4–11bit OPcodes:rRR, rRRR (fma = MAC = AXPY), rRI7, rRI10, RI16, RI18

• ISA support to eliminate branches: The SPU ISA defines compare in-

structions to set masks that can be used in three operand select instructions

to create efficient conditional assignments. Such conditional assignments

can be used to avoid difficult-to-predict branches.

• hint for branch instructions, i.e. hints on branch target

• channel instructions, i.e. 128bit IO to external devices

• maskable memory addresses allow for different local memory size

23Synergistic Processor Unit Instruction Set Architecture, s.a.www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/76CA6C7304210F3987257060006F2C44

Page 268: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 268

point and load instructions take six cycles. Two-way

SIMD double-precision floating point is also supported,

but the maximum issue rate is one SIMD instruction per

seven cycles. All other instructions are fully pipelined.

To limit hardware overhead for branch speculation,

branches can be ‘‘hinted’’ by the programmer or compiler.

The branch hint instruction notifies the hardware of an

upcoming branch address and branch target, and the

hardware responds (assuming that local store slots are

available) by pre-fetching at least seventeen instructions

at the branch target address. A three-source bitwise select

instruction can be used to further eliminate branches

from the code.

The control area makes up only 10–15% of the area

of the 10-mm2 SPE core, and yet several applications

achieve near-peak performance on this processor. The

entire SPE is only 14.5 mm2 and dissipates only a few

watts even when operating at multi-GHz frequencies.

High-bandwidth on-chip coherent fabric and

high-bandwidth memory

With the architectural improvements that remove the

latency-induced limitation on bandwidth, the next

challenge is to make significant improvements in

delivering bandwidth to main memory and bandwidth

between the processing elements and interfaces within the

Figure 3

Synergistic processor element (a) organization and (b) pipeline diagram. Central to the synergistic processor is the 256-KB local store SRAM. The local store supports both 128-byte access from direct memory access (DMA) read and write, as well as instruction fetch, and a 16-byte interface for load and store operations. The instruction issue unit buffers and pre-fetches instructions and issues up to two instructions per cycle. A 6-read, 2-write port register file provides both execution pipes with 128-bit operands and stores the results. Instruction execution latency is two cycles for simple fixed-point instructions and six cycles for both load and single-precision floating-point instructions. Instruc-tions are staged in an operand-forwarding network for up to six additional cycles; all execution units write their results in the register file in the same stage. The penalty for mispredicted branches is 18 cycles.

Fixed-point instruction

Floating-point instruction

Branch instruction

Load/store instruction

Permute instruction

IF Instruction fetchIB Instruction bufferID Instruction decodeIS Instruction issueRF Register file accessEX ExecutionWB Write back

ID2 IS1IF1 IF2 IF3 ID1 IS2IB2IB1 ID3IF4

EX4EX1 EX2 EX3

EX4 EX5EX1 EX2 EX3

EX1 EX2

IF5

RF1 RF2

EX1 EX2 EX3 EX4 EX6EX4

SPE pipeline back end

(a)

(b)

SPE pipeline front end

WB

WB

WB

WBEX6

Permute unit

Load/store unit

Floating-point unit

Fixed-point unitBranch unit

Channel unit

Result forwarding and staging

Register file

Local store(256 KB)

Single-port SRAM

128B read 128B write

DMA unit

Instruction issue unit/instruction line buffer

8 bytes per cycle

16 bytes per cycle

64 bytes per cycle

128 bytes per cycle

On-chip coherent bus

J. A. KAHLE ET AL. IBM J. RES. & DEV. VOL. 49 NO. 4/5 JULY/SEPTEMBER 2005

596

• 256KB local memory

• coherent sophisticated DMA access to system memory

• 128bit data flow: all instructions are SIMD (wie PPE)

• max 2 instructions per cycle: fixed/floating point instructiongepaart mit load/store, permutation oder branch

• hint for branch instructions, i.e. hints on branch target:prefetching at least 17 instructions at branch target address

• SPE is only 14.5 mm2, ’only a few watts at multi GHz’

Page 269: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 269

point and load instructions take six cycles. Two-way

SIMD double-precision floating point is also supported,

but the maximum issue rate is one SIMD instruction per

seven cycles. All other instructions are fully pipelined.

To limit hardware overhead for branch speculation,

branches can be ‘‘hinted’’ by the programmer or compiler.

The branch hint instruction notifies the hardware of an

upcoming branch address and branch target, and the

hardware responds (assuming that local store slots are

available) by pre-fetching at least seventeen instructions

at the branch target address. A three-source bitwise select

instruction can be used to further eliminate branches

from the code.

The control area makes up only 10–15% of the area

of the 10-mm2 SPE core, and yet several applications

achieve near-peak performance on this processor. The

entire SPE is only 14.5 mm2 and dissipates only a few

watts even when operating at multi-GHz frequencies.

High-bandwidth on-chip coherent fabric and

high-bandwidth memory

With the architectural improvements that remove the

latency-induced limitation on bandwidth, the next

challenge is to make significant improvements in

delivering bandwidth to main memory and bandwidth

between the processing elements and interfaces within the

Figure 3

Synergistic processor element (a) organization and (b) pipeline diagram. Central to the synergistic processor is the 256-KB local store SRAM. The local store supports both 128-byte access from direct memory access (DMA) read and write, as well as instruction fetch, and a 16-byte interface for load and store operations. The instruction issue unit buffers and pre-fetches instructions and issues up to two instructions per cycle. A 6-read, 2-write port register file provides both execution pipes with 128-bit operands and stores the results. Instruction execution latency is two cycles for simple fixed-point instructions and six cycles for both load and single-precision floating-point instructions. Instruc-tions are staged in an operand-forwarding network for up to six additional cycles; all execution units write their results in the register file in the same stage. The penalty for mispredicted branches is 18 cycles.

Fixed-point instruction

Floating-point instruction

Branch instruction

Load/store instruction

Permute instruction

IF Instruction fetchIB Instruction bufferID Instruction decodeIS Instruction issueRF Register file accessEX ExecutionWB Write back

ID2 IS1IF1 IF2 IF3 ID1 IS2IB2IB1 ID3IF4

EX4EX1 EX2 EX3

EX4 EX5EX1 EX2 EX3

EX1 EX2

IF5

RF1 RF2

EX1 EX2 EX3 EX4 EX6EX4

SPE pipeline back end

(a)

(b)

SPE pipeline front end

WB

WB

WB

WBEX6

Permute unit

Load/store unit

Floating-point unit

Fixed-point unitBranch unit

Channel unit

Result forwarding and staging

Register file

Local store(256 KB)

Single-port SRAM

128B read 128B write

DMA unit

Instruction issue unit/instruction line buffer

8 bytes per cycle

16 bytes per cycle

64 bytes per cycle

128 bytes per cycle

On-chip coherent bus

J. A. KAHLE ET AL. IBM J. RES. & DEV. VOL. 49 NO. 4/5 JULY/SEPTEMBER 2005

596

B High Bandwidth: on-chip (SPE)

• local memory to local memory per DMA

B High Bandwidth: main memory

• main = system memory = Rambus XDR DRAM with two 32bit channels a 12.8GB/s vs 96byte per cycle on chip

Page 270: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 270

B High Bandwidth: IO

• configurable to support multiple high bandwidth system confi-gurations: base, 2-way, 4-way symmetric multiprocessor

Cell processor. Memory bandwidth at a low system cost

is improved on the first-generation Cell processor by

using next-generation Rambus XDR** DRAM memory

[15]. This memory delivers 12.8 GB/s per 32-bit memory

channel, and two of these channels are supported on the

Cell processor for a total bandwidth of 25.6 GB/s. Since

the internal fabric on the chip delivers nearly an order of

magnitude more bandwidth (96 bytes per cycle at peak),

there is almost no perceivable contention on DMA

transfers between units within the chip.

High-bandwidth flexible I/O

In order to build effective dual-processor systems and

systems with a high-bandwidth I/O-connected accelerator

as well as an I/O-connected system interface chip, Cell

is designed with a high-bandwidth configurable I/O

interface. At the physical layer, a total of seven transmit

and five receive Rambus RRAC FlexIO** bytes [16] can

be dedicated to up to two separate logical interfaces, one

of which can be configured to operate as a coherent

interface. Thus, the Cell processor supports multiple

high-bandwidth system configurations (Figure 4).

Full-custom implementation

The first-generation Cell processor is a highly optimized

full-custom high-frequency, low-power implementation

of the architecture [17]. Cell is a system on a chip;

however, unlike most SoCs, Cell has been designed with

a full-custom design methodology. Some aspects of the

physical design stand out in comparison with previous

full-custom efforts:

� Several latch families, ranging from a more

conventional static latch to a dynamic latch with

integrated function to a pulsed latch that minimizes

insertion delay. Most chip designs standardize on a

single latch type and do not achieve the degree of

optimization that is possible with this wide a choice.

To manage the design and timing complexities

associated with such a large number of latches, all

latches share a common block that generates the local

clocking signals that control the latch elements. The

latches support only limited use of cycle-stealing,

simplifying the design process.� Extensive custom design on the wires. Several of the

larger buses are fully engineered, controlling wiring

levels and wire placement and using noise-reduction

techniques such as wire twisting, and can be regarded

as full-custom wire-only macros. A large fraction

of the remaining wires are manually controlled

to run preferentially on specific wiring layers. With

transistors improving more rapidly than wires from

one technology to the next, more of the engineering

resource must be spent on managing and controlling

wires than in the past.� A design methodology which ensures that synthesized

(usually control logic) macros are modified, timed, and

analyzed at the transistor level consistently with custom

designs. This allows macros to be changed smoothly

from synthesized to custom. Among other

advantages, this requires all macros to have

corresponding transistor schematics.� Extensive chip electrical and thermal engineering for

power distribution and heat dissipation. Whereas

previous projects would do the bulk of this analysis

on the basis of static models, this project required

pattern (program)-dependent analysis of the power

dissipation and used feedback from these analysis

tools to drive the design. Fine-grained clock gating

was utilized to activate sections of logic only when

they were needed. Multiple thermal sensors in the chip

Figure 4

Cell system configuration options: (a) Base configuration for small systems. (b) “Glueless” two-way symmetric multiprocessor. (c) Four-way symmetric multiprocessor. (IOIF: Input–output interface; BIF: broadband interface.)

Cellprocessor

Cellprocessor

XDR XDR

XDR XDR XDR XDR

IOIF BIF IOIF

XDR XDR XDR XDR

BIF

BIFSwitch

Cellprocessor

Cellprocessor

XDR XDR XDR XDR

Cellprocessor

Cellprocessor

Cellprocessor

(a)

(b)

(c)

IOIF

IOIF

IOIF

IOIF

IOIF0 IOIF1

IBM J. RES. & DEV. VOL. 49 NO. 4/5 JULY/SEPTEMBER 2005 J. A. KAHLE ET AL.

597

Cell processor. Memory bandwidth at a low system cost

is improved on the first-generation Cell processor by

using next-generation Rambus XDR** DRAM memory

[15]. This memory delivers 12.8 GB/s per 32-bit memory

channel, and two of these channels are supported on the

Cell processor for a total bandwidth of 25.6 GB/s. Since

the internal fabric on the chip delivers nearly an order of

magnitude more bandwidth (96 bytes per cycle at peak),

there is almost no perceivable contention on DMA

transfers between units within the chip.

High-bandwidth flexible I/O

In order to build effective dual-processor systems and

systems with a high-bandwidth I/O-connected accelerator

as well as an I/O-connected system interface chip, Cell

is designed with a high-bandwidth configurable I/O

interface. At the physical layer, a total of seven transmit

and five receive Rambus RRAC FlexIO** bytes [16] can

be dedicated to up to two separate logical interfaces, one

of which can be configured to operate as a coherent

interface. Thus, the Cell processor supports multiple

high-bandwidth system configurations (Figure 4).

Full-custom implementation

The first-generation Cell processor is a highly optimized

full-custom high-frequency, low-power implementation

of the architecture [17]. Cell is a system on a chip;

however, unlike most SoCs, Cell has been designed with

a full-custom design methodology. Some aspects of the

physical design stand out in comparison with previous

full-custom efforts:

� Several latch families, ranging from a more

conventional static latch to a dynamic latch with

integrated function to a pulsed latch that minimizes

insertion delay. Most chip designs standardize on a

single latch type and do not achieve the degree of

optimization that is possible with this wide a choice.

To manage the design and timing complexities

associated with such a large number of latches, all

latches share a common block that generates the local

clocking signals that control the latch elements. The

latches support only limited use of cycle-stealing,

simplifying the design process.� Extensive custom design on the wires. Several of the

larger buses are fully engineered, controlling wiring

levels and wire placement and using noise-reduction

techniques such as wire twisting, and can be regarded

as full-custom wire-only macros. A large fraction

of the remaining wires are manually controlled

to run preferentially on specific wiring layers. With

transistors improving more rapidly than wires from

one technology to the next, more of the engineering

resource must be spent on managing and controlling

wires than in the past.� A design methodology which ensures that synthesized

(usually control logic) macros are modified, timed, and

analyzed at the transistor level consistently with custom

designs. This allows macros to be changed smoothly

from synthesized to custom. Among other

advantages, this requires all macros to have

corresponding transistor schematics.� Extensive chip electrical and thermal engineering for

power distribution and heat dissipation. Whereas

previous projects would do the bulk of this analysis

on the basis of static models, this project required

pattern (program)-dependent analysis of the power

dissipation and used feedback from these analysis

tools to drive the design. Fine-grained clock gating

was utilized to activate sections of logic only when

they were needed. Multiple thermal sensors in the chip

Figure 4

Cell system configuration options: (a) Base configuration for small systems. (b) “Glueless” two-way symmetric multiprocessor. (c) Four-way symmetric multiprocessor. (IOIF: Input–output interface; BIF: broadband interface.)

Cellprocessor

Cellprocessor

XDR XDR

XDR XDR XDR XDR

IOIF BIF IOIF

XDR XDR XDR XDR

BIF

BIFSwitch

Cellprocessor

Cellprocessor

XDR XDR XDR XDR

Cellprocessor

Cellprocessor

Cellprocessor

(a)

(b)

(c)

IOIF

IOIF

IOIF

IOIF

IOIF0 IOIF1

IBM J. RES. & DEV. VOL. 49 NO. 4/5 JULY/SEPTEMBER 2005 J. A. KAHLE ET AL.

597

Cell processor. Memory bandwidth at a low system cost

is improved on the first-generation Cell processor by

using next-generation Rambus XDR** DRAM memory

[15]. This memory delivers 12.8 GB/s per 32-bit memory

channel, and two of these channels are supported on the

Cell processor for a total bandwidth of 25.6 GB/s. Since

the internal fabric on the chip delivers nearly an order of

magnitude more bandwidth (96 bytes per cycle at peak),

there is almost no perceivable contention on DMA

transfers between units within the chip.

High-bandwidth flexible I/O

In order to build effective dual-processor systems and

systems with a high-bandwidth I/O-connected accelerator

as well as an I/O-connected system interface chip, Cell

is designed with a high-bandwidth configurable I/O

interface. At the physical layer, a total of seven transmit

and five receive Rambus RRAC FlexIO** bytes [16] can

be dedicated to up to two separate logical interfaces, one

of which can be configured to operate as a coherent

interface. Thus, the Cell processor supports multiple

high-bandwidth system configurations (Figure 4).

Full-custom implementation

The first-generation Cell processor is a highly optimized

full-custom high-frequency, low-power implementation

of the architecture [17]. Cell is a system on a chip;

however, unlike most SoCs, Cell has been designed with

a full-custom design methodology. Some aspects of the

physical design stand out in comparison with previous

full-custom efforts:

� Several latch families, ranging from a more

conventional static latch to a dynamic latch with

integrated function to a pulsed latch that minimizes

insertion delay. Most chip designs standardize on a

single latch type and do not achieve the degree of

optimization that is possible with this wide a choice.

To manage the design and timing complexities

associated with such a large number of latches, all

latches share a common block that generates the local

clocking signals that control the latch elements. The

latches support only limited use of cycle-stealing,

simplifying the design process.� Extensive custom design on the wires. Several of the

larger buses are fully engineered, controlling wiring

levels and wire placement and using noise-reduction

techniques such as wire twisting, and can be regarded

as full-custom wire-only macros. A large fraction

of the remaining wires are manually controlled

to run preferentially on specific wiring layers. With

transistors improving more rapidly than wires from

one technology to the next, more of the engineering

resource must be spent on managing and controlling

wires than in the past.� A design methodology which ensures that synthesized

(usually control logic) macros are modified, timed, and

analyzed at the transistor level consistently with custom

designs. This allows macros to be changed smoothly

from synthesized to custom. Among other

advantages, this requires all macros to have

corresponding transistor schematics.� Extensive chip electrical and thermal engineering for

power distribution and heat dissipation. Whereas

previous projects would do the bulk of this analysis

on the basis of static models, this project required

pattern (program)-dependent analysis of the power

dissipation and used feedback from these analysis

tools to drive the design. Fine-grained clock gating

was utilized to activate sections of logic only when

they were needed. Multiple thermal sensors in the chip

Figure 4

Cell system configuration options: (a) Base configuration for small systems. (b) “Glueless” two-way symmetric multiprocessor. (c) Four-way symmetric multiprocessor. (IOIF: Input–output interface; BIF: broadband interface.)

Cellprocessor

Cellprocessor

XDR XDR

XDR XDR XDR XDR

IOIF BIF IOIF

XDR XDR XDR XDR

BIF

BIFSwitch

Cellprocessor

Cellprocessor

XDR XDR XDR XDR

Cellprocessor

Cellprocessor

Cellprocessor

(a)

(b)

(c)

IOIF

IOIF

IOIF

IOIF

IOIF0 IOIF1

IBM J. RES. & DEV. VOL. 49 NO. 4/5 JULY/SEPTEMBER 2005 J. A. KAHLE ET AL.

597

Page 271: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 271

B Full custom implementation/optimization

• latch families

• custom design of wires

• design methodology (analysis at transistor level)

• power distribution and heat dissipation engineering:fine grained clock gating, multiple thermal sensors

• modular design allows for multiple PPEs and SPEs

• multiple clock grids

• power-on reset, self test, test support

• packaging

• low power CMOS SOI

Page 272: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 272

B Programming

• Cell runs 32bit and 64bit Power and PowerPC applications!

• inter processor communication and data movement facilities ma-ke a wide range of programming models feasible!

– function offload to one or more SPEs specified by∗ programmer/hints to the compiler/compiler

– device extension, e.g. SPE in isolated mode for DRM, pri-vacy/security

– PPE is host for SPEs which perform tasks in parallel(based both on shared memory or message passing)∗ parallelized/scheduled by programmer/compiler

– streaming models: PPE acts as streaming controller, SPEsas stream data processors in a pipeline

– shared memory multiprocessor model: per DMA: sharedmemory ↔ local store; per load/store: local store ↔ regis-ters; locking per DMA lock line command

– asymmetric thread runtime model: on PPEs or SPEs, mostflexible

Page 273: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 273

B Benchmarking

benchmarking24 according to objectives

• matrix multiplication

• LINPACK

• MPEG2 video decoding

• triangle transform and lightning in the graphic render pipeline

• cryptography: AES, DES, MD5, SHA-1, SHA-256

24 Chen et al: Cell Broadband Engine Architecture and its first implementation– A Performance View; 2005www-128.ibm.com/developerworks/power/library/pa-cellperf

Page 274: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 274

11.6. Addendum in 2010: Core i2000

siehe Christof Windeck: Intels neue Prozessor-Generation Core i-2000alias Sandy Bridge; c’t 3/2011, S. 94-99 Core i3-2000, i5-2000 undi7-2000

in 32nm-Technik gefertigte desktop- und mobil-Versionen im neuenSockel LGA1155 fur neue mainboards mit geanderter Stromversor-gung und neuen Chipsatzen

GPUcore core core core

shared L3 cache, LLCMMU

GPU = Processor graphicsLLC = last level cacheMMU = System Agent

GPU fur 1-2 displays, System Agent = Speicher-, PCI und IO-Controllersowie Taktsteuerung, Einheiten, insbesondere jeder Kern uber Ring-Bus vernetzt (mit ’1000 Signalleitungen in eigenem layer’): max 300GB/s.GPU nutzt auch den LLC: ’das RAM kann haufiger schlafen’.

Unterstutzten Advanced Vector Extensions, AVX, d.h. 256bit breiteArgumente vs 128bit in SSE4: βSSE→AVX ≈ 1.86 fur Linpack aber nurunter Win7SP1, Linux, aber fused multiply add, FMADD erst 2012

Page 275: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 275

Mit AVX einhergehend Verbesserungen bei load/store units, branchprediction, (großerer?) Puffer fur µ-Ops. Aber: AVX-units ’bearbeiteneinige SSE-Instruktionen langsamer als die Vorganger’.

Aus einem externen 100MHz Taktgeber werden alle Takte intern er-zeugt – kein Ubertakten. Wie bisher Turbo-Boost, jetzt aber mit ein-gebautem Ubertakten – konfigurierbar: ’wir haben es jedenfalls raschgeschafft, soviel falsch zu machen, daß das System erst nach BIOS-reset per CMOS clear wieder startete’Turbo Boost auch fur GPU; LLC per Prozessor-Takt.

Automatisches Umschalten zwischen GPU und externer Grafikkarte.GPU mit 6 oder 12 execution units, EUs unterstutzt DirectX 10.1 undOpenCL 1.1. GPU mit separatem Hardware encoder fur das Transco-dieren von Video-streams, z.B. 97min MPEG4 HD-Video mit 8Mbit/sund AAC-Stereo-Ton in iPod-Format per QuickSync in 7’15”, per Me-diaConverter 7 in 25’, auch 3D-Unterstutzung, aber keine 3D-Spieleauf 120Hz displays

PCIe 2.0 mit 500MB/s/lane, sollte u.a. fur USB 3.0 reichen, c’t mißt197MB/s lesend, ca die Halfte schreibend, je nach Chipsatz 12-14

Page 276: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 276

USB 2.0 ports, SATA-6G fur Platten > 2TB, setzt aber notwendigUEFI 2.0 voraus.

Chipsatze mit Fernwartung (Active Management Technology, AMT ),TPM (Trusted Execution Technology), Virtualisierung . . .

Performance-Messungen per SPEC CPU2006, Cinebench, BaPCo SYS-mark 2007, Office, gcc, zip etc. also alles ohne AVX, siehehttp://www.heise.de/ct/inhalt/2011/03/94/ bishttp://www.heise.de/ct/inhalt/2011/03/99/.

Fazit: viel Rechenleistung fur’s Geld, Preis/Leistung besser als beiVorganger-Prozessoren und besser als bei AMD!integrierte GPU ’konkurriert mit 40Euro-Grafikkarten’, vorteilhaft furnotebooks und Buro-Computer, GPU reicht nicht fur gamer.

Page 277: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 277

11.7. Addendum in 2011: K Computer

www.top500.org

The K Computer, built by Fujitsu, currently combines 68544 SPARC64VIIIfx CPUs, each with eight cores, for a total of 548,352 cores - almosttwice as many as any other system in the TOP500. The K Computeris also more powerful than the next five systems on the list combined.

The K Computers name draws upon the Japanese word ’Kei’ for 1016,representing the system’s performance goal of 10 petaflops. RIKEN isthe Institute for Physical and Chemical Research. Unlike the Chinesesystem it displaced from the No. 1 slot and other recent very largesystem, the K Computer does not use graphics processors or otheraccelerators. The K Computer is also one of the most energy-efficientsystems on the list.

Some Other Highlights from the newest List:

• Intel continues to provide the processors for the largest share(77.4 percent) of TOP500 systems. Intels Westmere processorsincreased their presence in the list strongly with 169 systems,

Page 278: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 278

compared with 56 in the last list.

• Quad-core processors are used in 46.2 percent of the systems,while already 42.4 percent of the systems use processors withsix or more cores.

Tracking Changes

• The entry level to the list moved up to the 40.1 Tflop/s mark onthe Linpack benchmark, compared to 31.1 Tflop/s six monthsago.

• The last system on the newest list was listed at position 262 sixmonths ago. This turnover rate has steadily increased duringthe last few lists and is now above average.

Some Final Notes on Power Consumption

• Average power efficiency is 248 Mflops/W (up from 219 Mflops/Wsix months ago and 195 Mflops/watt one year ago).

• The No. 1 system, the K Computer, also reports the highesttotal power consumption of 9.89 MW.

Page 279: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 279

Site RIKEN Advanced Institute for Computational Science (AICS)System Family Fujitsu ClusterSystem Model K computerComputer K computer, SPARC64 VIIIfx 2.0GHz, Tofu interconnectVendor FujitsuApplication area ResearchInstallation Year 2011Operating System LinuxInterconnect CustomProcessor SPARC64 VIIIfx 2000 MHz (16 GFlops)

The K system does not have GPUs, because they really would notadd to the performance of the system. The most important part isthe direct network connection, which currently is based on Infiniband.The individual speed of the nodes is not that important, as long astheir connection is.

Actually most of the porting work goes into parallelisation. Adaptingit to the processor and operating system is only minor work.

K computer is a huge system with over 500.000 nodes. About every15 hours a node fails. So they are working on low level rerouting of

Page 280: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 280

nodes so that applications do not fail.

http://en.wikipedia.org/wiki/K computer:On the 20th of June 2011, K topped the LINPACK benchmark withthe performance of 8.162 petaflops with a computing efficiency ratioof 93.0%, making it the fastest supercomputer in the world.

The system is still under construction and enters service in Novem-ber 2012 with 864 cabinets. Currently it uses 68,544 2.0GHz 8-coreSPARC64 VIIIfx processors packed in 672 cabinets, for a total of548,352 cores, manufactured by Fujitsu with 45 nm CMOS processtechnology. Each cabinet contains 96 compute nodes in addition to 6IO nodes. Each compute node contains a single processor and 16 GBof memory. Its water cooling system minimizes failure rate and powerconsumption.

The K computer uses a special six-dimensional torus network inter-connect called Tofu, and a Tofu-optimized Message Passing Interfacebased on the open-source Open MPI library. Users can create appli-cation programs adapted to either a one-, two-, or three-dimensionaltorus network.

Page 281: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 281

The system adopts a two-level local/global file system with parallel/-distributed functions, and provides users an automatic staging func-tion for moving files between global and local file systems. Fujitsudeveloped an optimized parallel file system based on Lustre, calledFujitsu Exabyte File System, scalable to several hundred petabytes.

The K also reports the highest total power consumption of 9.89 MW.The K computer’s performance equals

”one million linked desktop

computers“. Its power usage is roughly that of 10,000 houses and itsannual running costs are US$10 million.

http://www.golem.de/1106/84337.html

Die Wasserkuhlung des schnellsten Rechners der Welt: Dieser der-zeit schnellste Supercomputer wird durch eine ausgeklugelte Was-serkuhlung auf Betriebstemperatur gehalten. Die einzelnen Nodes desK-Computers sind aus Rackeinschuben mit nur einer Hoheneinheitaufgebaut. Das ist die Grundlage, um die insgesamt uber eine halbeMillion Prozessorkerne noch bei vertretbaren Latenzen zu vernetzen.Jeder Einschub enthalt vier Sparc-VIII-CPUs mit je acht Kernen.

Ein Board des K-Computers misst nur eine Hoheneinheit. Von den

Page 282: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 282

ublicherweise rund 40 Hoheneinheiten eines Racks nutzt Fujitsu nur24 fur die Nodes, sie sind oben und unten in Einheiten von je 12Einschuben untergebracht. In der Mitte sitzen Stromversorgung undNetzanbindung, beide Komponenten werden per Luft gekuhlt. Mitden 24 Nodes mit je vier Achtkern-CPUs ergeben sich 768 Kerne proRack.

Um diese hohe Dichte zu erreichen, muss auch die Wasserkuhlungsehr flach gestaltet werden. Fur jeden Node gibt es daher einen zen-tralen Zu- und Ablauf, auf den Bildern als

”Water Cooling Module“

bezeichnet. Die Pumpen sind fur jedes Rack zentral gehalten. Dahersind die Nodes auch leicht gedreht in die Racks gesetzt, um Platz furdie Wasserleitungen zu schaffen.

Jede der vier CPUs und auch die vier Vernetzungsmodule besitzeneinen eigenen Kupferkuhler - nur der Speicher bleibt luftgekuhlt. Uberdie Art der Verschaltung der Prozessorsockel und der Nodes ist nochwenig bekannt, das japanische Forschungszentrum Riken in Kobe, woder K-Computer steht, bezeichnet es als

”Tofu Interconnect“. Auch die

Tabellen von top500.org verzeichnen fur die Vernetzung nur custom-

Page 283: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 283

es handelt sich also um ein Design, das fur diese Maschine entwickeltwurde.

www.weblearn.hs-bremen.de/risse/RST/docs/Fujitsu/when-high-performance-computing-meets-energy-efficiency.pdf

www.hotchips.org/uploads/archive22/HC22.24.510-1-Toyoishima-Tofu-icc.pdf

www.wseas.us/e-library/conferences/2011/Paris/ECC/ECC-21.pdf

www.weblearn.hs-bremen.de/risse/RST/docs/Fujitsu/programming-on-k-computer.pdf

Page 284: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 284

11.8. Addendum in 2012: Raspberry Pi

www.raspberrypi.org www.raspberrypi.org/faqs

elinux.org/RaspberryPiBoard List of single-board computers

Erste-Schritte-mit-dem-Raspberry-Pi-1573973.html raspberrycenter.de

http://de.wikipedia.org/wiki/Raspberry Pi:Der Raspberry Pi ist ein kreditkartengroßer Einplatinen-Computer,der von der Raspberry Pi Foundation entwickelt wird. Der PC, der zuExperimenten anregen soll, wird in zwei Versionen, A fur 18e und B26e, angeboten.

Page 285: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 285

Die Platine enthalt im Wesentlichen das Ein-Chip-System BCM 2835von Broadcom mit dem 700-MHz-Hauptprozessor ARM1176JZF-S so-wie 256 MB Arbeitsspeicher. Das Modell B hat zudem Ethernet undeinen zweiten USB-Anschluss. Linux und andere Betriebssysteme, diedie ARM-Architektur unterstutzen, konnen installiert werden. EineFestplatte ist nicht vorgesehen. Stattdessen konnen Speicherkarten(SD bzw. MMC) als nicht-fluchtiger Speicher benutzt werden.Auf Versuchsplatinen wurde gezeigt, dass die Desktop-Umgebung LX-DE unter Debian sowie Quake 3 und H.264-Videos mit einer Auflosungvon 1080p via HDMI funktionieren.

Anvisierter Preis US$25 (GBP £16) / US$35 (GBP £22)

Große Große einer Kreditkarte 85,60 mm × 53,98 mm × 17 mm

SoC Broadcom BCM2835

CPU ARM1176JZF-S (700 MHz)

GPU Broadcom VideoCore IV

SDRAM 256 MB

USB 2.0 Anschlusse 1 / 2 (uber integrierten Hub)

Videoausgabe Composite, HDMI

Page 286: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 286

Tonausgabe 3.5 mm Klinkenstecker, HDMI

Nicht-fluchtiger Speicher SD/MMC/SDIO Kartenleser

Netzwerk - / 10/100 MBit Ethernet-Controller (LAN9512 von SMSC)

Bussysteme Bis zu 16 GPIO Pins, SPI, I2C, UART

Echtzeituhr –

Energieverbrauch 500mA, (2,5 Watt) / 700mA, (3,5 Watt)

Stromquelle 5V Micro USB Anschluss, alternativ 4x AA Batterien

Betriebssysteme GNU/Linux (Debian, Fedora, Arch Linux), RISC OS

B Prozessor

Der Prozessor nutzt den ARMv6-Instruktionssatz. Des Weiteren wirdder ARM-Thumb-Instruktionssatz unterstutzt. Der Speicher ist ubereinen 64 bit breiten Bus angebunden und wird direkt als Package onPackage auf den Prozessor gelotet.http://en.wikipedia.org/wiki/Raspberry Pi: Broadcom don’t release a fulldatasheet for the BCM2835, which is the chip at the heart of theRaspberry Pi.

www.broadcom.com/products/BCM2835:

Page 287: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 287

High Definition 1080p Embedded Multimedia Applications ProcessorThe BCM2835 is a cost-optimized, full HD, multimedia applicationsprocessor for advanced mobile and embedded applications that requirethe highest levels of multimedia performance. Designed and optimizedfor power efficiency, BCM2835 uses Broadcom’s VideoCore IV tech-nology to enable applications in media playback, imaging, camcorder,streaming media, graphics and 3D gaming.

• Low Power ARM1176JZ-F Applications Processor• Dual Core VideoCore IV Multimedia Co-Processor• 1080p30 Full HD HP H.264 Video Encode/Decode• Advanced Image Sensor Pipeline (ISP) for up to 20-megapixel ca-meras operating at up to 220 megapixels per second• Low power, high performance OpenGL-ES 1.1/2.0 VideoCore GPU.1 Gigapixel per second fill rate.• High performance display outputs. Simultaneous high resolutionLCD and HDMI with HDCP at 1080p60

Page 288: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 288

B Grafik

Der ARM11-Prozessor ist mit Broadcoms VideoCore-Grafikkoprozes-sor kombiniert. OpenGL ES 2.0 wird unterstutzt, Filme in FullHD-Auflosung (1080p30 H.264 high-profile) konnen dekodiert und uberHDMI und Composite ausgegeben werden.

B Software

Der Linux-Kernel lauft auf dem Raspberry Pi. Eine Entwicklerversiondes RISC OS 5 wurde im Oktober 2011 veroffentlicht.http://en.wikipedia.org/wiki/Raspberry Pi: The Foundation provides De-

Page 289: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 289

bian and Arch Linux ARM distributions for download. Also plannedare tools for supporting Python as the main programming language,with support for BBC BASIC, C, and Perl.

B Zum Vergleich: gooseberry

gooseberry.atspace.co.uk raspberrycenter.de/tags/gooseberry

gooseberry-developer-boards-40-alternative-raspberry-pi.html

Das Gosseberry ist keine Eigenentwicklung. Es handelt sich vielmehrum ein Mainboard, das derzeit in verschiedenen Tablets zum Einsatzkommt. Daraus erklart sich auch das Fehlen einer RJ45-Netzwerk-Schnittstelle (dafur ist WLAN onboard). Findige Briten haben denProduzenten ausgemacht und machen es so Endkunden zuganglich.

Die Hardware des Gooseberry im Uberblick:

• CPU: AllWinner A10, 1GHz• ARM Cortex A8 Dual-Core mit bis zu 1,5 GHz• MALI-400 GPU, 400MHz• OpenGL ES 1.1 und 2.0, OpenVG 1.1• 512 MB RAM

Page 290: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 290

• 4 GB Flash• MicroSD Slot• 802.11 b/g/n Wireless Netzwerk• Kopfhorer- und Mikrophon-Anschluss (Mini-Klinke)• HDMI• MiniUSB• Buttons fur Lautstarke und Power• LVDS-Anschluss (Low Voltage Differential Signaling)

Preis: GBP 40, zzgl. GBP 2,70 fur den Versand innerhalb der EU

Details zur CPU :-( s. z.B. http://rhombus-tech.net/allwinner a10

www.cnx-software.com/.../allwinner-a10a1x-processor-resources-development-board-and-sdk

inote-allwinner-a10-tablet-pc-integrierter-gps-bluetooth-8-zoll-high-definition

affordable-tablet-with-ips-panel-allwinner-a10

Details zur GPU :-( s. z.B. http://limadriver.org/Hardware

www.arm.com/products/multimedia/mali-graphics-hardware/mali-400-mp.php

http://infocenter.arm.com/.../DUI0555A mali optimization guide.pdf

www.arm.com/products/multimedia/mali-graphics-hardware/mali-400-mp.php

Page 291: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 291

typisches SoC, vgl. z.B.

Page 292: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 292

• Benjamin Benz: ARM, aber sexy – Was Smartphones und Ta-blets so schnell macht; c’t 6/2012 S.102-109, also ct 2012 06

S.102-109.pdf auf AULIS, s.a. www.ct.de/1206102

• Benjamin Benz, Christof Windeck: Wohngemeinschaft – DieTechnik der Tablet- und Smartphone-Prozessoren; c’t 6/2012S.110-113, also ct 2012 06 S.110-113.pdf auf AULIS,s.a. www.ct.de/1206110

Page 293: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 293

B Gooseberry vs Raspberry Pi

• The goose-berry has roughly 3 x the processing power of the Pi.• The goose-berry has a newer ARM architecture: the board is com-patible with newer software such as Ubuntu which the Pi can not run.• The goose-berry has double the RAM of the Pi (512MB).• The board does not have a LAN port, although Wifi is present.• The board does not have analogue video: no connection to old TVs.• Only a limited OS (Android) is supported as of yet fully, the boardhowever is capable of running other OSs such as Ubuntu (currentlywithout graphics acceleration). Premade images for Ubuntu are nowavailable and videos of the board running Ubuntu and other Linuxflavours shall be uploaded.

B zeitgenossische Alternativen

74-android-mini-computer-is-slightly-larger-than-a-thumb-drive

cx-01-53-android-4-0-pc-stick.html

Page 294: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 294

11.9. Addendum in 2013: Haswell

Die aktuellen Haswell-Prozessoren geben Anlaß zu prufen, inwieweitdie Inhalte der Veranstaltung RST helfen, popularwissenschaftlicheVeroffentlichungen einzuordnen und zu bewerten.

Andreas Stiller: Der Rechenkunstler – Mikroarchitektur undInstruktionssatze der neuen vierten Core-Generation Haswell;

c’t 14/2013 S.114-119 sowie Material auf AULIS

B Pentium grußt von Ferne

• out of order execution

• eigene load/store unit mit load/store L0 cache

B dicke (breitere) µOps

• 256 bit AVX-Instruktionen

• physical register file mit 160 integer und 144 GP-Registern

• µOp fusion

Page 295: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 295

• Detail-Verbesserungen: Sprungvorhersage, Die Datenpfade sindbreiter, die Puffer und die Reservation Station großer, ebensodie Zahl der physischen Register, der Ports und der Ausfuhrungs-einheiten., s.a. ’Buffer und Register’, 256 bit Vektoren, cache-System mit L4 cache etc., s.a. ’Caches und TLBs’

B Volle Integer-Breitseite

• 256 bit AVX2, BMI1 (s.a. Intrinsics mit CRC), FMA und TSX

• gather (vgl. array of structures in multi body problem),allerdings kein scatter wie im XEON Phi

B Volle FMA Power

• plus zwei 256 bit FMA units mit kleiner Latenz

• plus zwei (?, vgl. rote Verbesserungen) 256 bit FMUL units

• angebunden durch load store unit plus (store?) Address Gene-ration Unit, AGU

FMA mit drei Operanden, FMA3 oder mit vier Operanden, FMA4

Page 296: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 296

B Transactional Memory

Transactional Extension, TSX unterstutzt zwei Programmier-Modelle(s.a. HLE-Kasten):

• Hardware Lock Elision, HLE: optimistisch locks ignorieren undbei konfligierenden Zugriffen die ganze Transaktion verwerfenund mit konventionellem (aufwandigen) locking wiederholen

• Restricted Transactional Memory, RTM: programm-gesteuerteReaktion im Konfliktfall – flexibel und leistungsfahig bei furnicht TSX-fahige Prozessoren inkompatiblem Code!

B Kasten: Zwischen Performance und Leakage

• Energie-bewußter Entwurf: gezielter Einsatz von Transistorenim Bereich Ultra Low Power – High Performance, hpc/ulp = 104

• Feinkornige Stromversorgung:Fully Integrated Voltage Regulator, FIVR

• weiterer Strom-Spar-Zustand

Page 297: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 297

11.10. Addendum in 2014: Advanced RISC Machines, ARM

http://arm.com/products/processors/instruction-set-architectures/

armv8-architecture.php

http://www.arm.com/files/downloads/ARMv8_Architecture.pdf

https://en.wikipedia.org/wiki/ARM_architecture

http://bear.ces.cwru.edu/eecs_382/ARM7-TDMI-manual-pt2.pdf

ARMv8-A for applications, ARMv8-R for real time applications, embedded,

industrial control, ARMv8-M for micro controller applications

ARMv8-A introduces 64-bit architecture support to the ARM archi-tecture and includes:

• 64-bit general purpose registers, SP (stack pointer) and PC (pro-gram counter)

• 64-bit data processing and extended virtual addressing

• Two main execution states: AArch32/AArch64 - The 32-bit/64-bit execution state including exception model, memory model,programmers’ model and instruction set

Page 298: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 298

The execution states support three key instruction sets:

1. A32 (or ARM): a 32-bit fixed length instruction set, enhancedthrough the different architecture variants. Part of the 32-bitarchitecture execution environment now referred to as AArch32.

2. T32 (Thumb) introduced as a 16-bit fixed-length instructionset, subsequently enhanced to a mixed-length 16- and 32-bitinstruction set on the introduction of Thumb-2 technology. Partof the 32-bit architecture execution environment now referredto as AArch32.

3. A64 is a 64-bit fixed-length instruction set that offers similarfunctionality to the ARM and Thumb instruction sets. Introdu-ced with ARMv8-A, it is the AArch64 instruction set.

ARM ISAs are constantly improving to meet the increasing deman-ds of leading edge applications developers, while retaining the back-wards compatibility necessary to protect investment in software de-velopment. In ARMv8-A there are some additions to A32 and T32 tomaintain alignment with the A64 instruction set.

Page 299: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 299

• Cortex A53 and Cortex A57

ACP = Accelarator Coherency Port SCU = Snoop Control Unit

The ARM Cortex-A57 processor is ARMs highest performing processor, de-

signed for mobile and enterprise computing applications including compute

intensive 64-bit applications such as high end computer, tablet and server

products. The processor can be implemented individually or paired with the

Cortex-A53 processor into an ARM big.LITTLE configuration that enables

scalable performance and optimal energy-efficiency.

Page 300: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 300

• A32 – Genese

Page 301: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 301

• A32 – features

ARM developed architecture extensions to provide support for Ja-va acceleration (Jazelle), security (TrustZone), SIMD, and AdvancedSIMD (NEON) technologies. The ARMv8-architecture adds a Cryp-tographic extension as an optional feature.

The ARM architecture is similar to a Reduced Instruction Set Com-puter (RISC) architecture, as it incorporates these typical RISC ar-chitecture features:

• A uniform register file load/store architecture, where data processingoperates only on register contents, not directly on memory contents.

• Simple addressing modes, with all load/store addresses determinedfrom register contents and instruction fields only.

Enhancements to a basic RISC architecture enable ARM processorsto achieve a good balance of high performance, small code size, lowpower consumption and small silicon area.

Page 302: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 302

• ISA, Befehlsformate

ARMv7 Instruction sethttp://bear.ces.cwru.edu/eecs_382/ARM7-TDMI-manual-pt2.pdf

Quick Reference Card

http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_

UAL.pdf

beurteile

• Orthogonalitat

• Heterogenitat

• CPI

• Kompaktheit des Codes

• Was spricht fur RISC? was fur CISC?

Page 303: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 303

http://bear.ces.cwru.edu/eecs_382/ARM7-TDMI-manual-pt2.pdf

ARM Instruction Set - Summary

ARM7TDMI Data SheetARM DDI 0029E

4-2

Ope

n A

cces

s4.1 Instruction Set Summary

4.1.1 Format summary

The ARM instruction set formats are shown below.

Figure 4-1: ARM instruction set formats

Note Some instruction codes are not defined but do not cause the Undefined instruction trapto be taken, for instance a Multiply instruction with bit 6 changed to a 1. Theseinstructions should not be used, as their action may change in future ARMimplementations.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Cond 0 0 I Opcode S Rn Rd Operand 2 Data Processing /PSR Transfer

Cond 0 0 0 0 0 0 A S Rd Rn Rs 1 0 0 1 Rm Multiply

Cond 0 0 0 0 1 U A S RdHi RdLo Rn 1 0 0 1 Rm Multiply Long

Cond 0 0 0 1 0 B 0 0 Rn Rd 0 0 0 0 1 0 0 1 Rm Single Data Swap

Cond 0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 Rn Branch and Exchange

Cond 0 0 0 P U 0 W L Rn Rd 0 0 0 0 1 S H 1 Rm Halfword Data Transfer:register offset

Cond 0 0 0 P U 1 W L Rn Rd Offset 1 S H 1 Offset Halfword Data Transfer:immediate offset

Cond 0 1 I P U B W L Rn Rd Offset Single Data Transfer

Cond 0 1 1 1 Undefined

Cond 1 0 0 P U S W L Rn Register List Block Data Transfer

Cond 1 0 1 L Offset Branch

Cond 1 1 0 P U N W L Rn CRd CP# Offset Coprocessor DataTransfer

Cond 1 1 1 0 CP Opc CRn CRd CP# CP 0 CRm Coprocessor DataOperation

Cond 1 1 1 0 CP Opc L CRn Rd CP# CP 1 CRm Coprocessor RegisterTransfer

Cond 1 1 1 1 Ignored by processor Software Interrupt

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

ARM7cond masks NZCV, 13gp registers +SP,LR,PC4.5 DataProcessing =arithmetisch/logischeInstruktionen,PSR = Program StatusRegister (CPSR, SPSR)4.7 integer MUL/MLARd = Rm*Rs {+Rn}4.8 integerMULL/MLAL (Rd-Hi,RdLo) = Rm*Rs{+(RdHi,RdLo)}4.12 single data swap,SWP to implementsoftware semaphores(LDR,STR)4.3 Branch andExchange, BX alsoswitches between ARMand THUMB4.10 Halfword andSigned Data Transfer,LDRH/STRH LDRS-B/LDRSH4.9 Single Data Trans-fer, LDR/STR4.11 Block Data Trans-fer, LDM/STM4.4 Branch/Branch withLink, B/BL: {R14:=PC}PC += signext(offset<<2)

Page 304: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 304

B z.B. 4.5 DataProcessing = arith./log. instructions

ARM Instruction Set - Data processing

ARM7TDMI Data SheetARM DDI 0029E

4-10

Ope

n A

cces

s4.5 Data Processing

The data processing instruction is only executed if the condition is true. The conditionsare defined in ➲Table 4-2: Condition code summary on page 4-5.

The instruction encoding is shown in ➲Figure 4-4: Data processing instructions below.

Figure 4-4: Data processing instructions

The instruction produces a result by performing a specified arithmetic or logicaloperation on one or two operands. The first operand is always a register (Rn).

Cond 00 I OpCode Rn Rd Operand 2

011121516192021242526272831

Destination register1st operand registerSet condition codes

Operation Code

0 = do not alter condition codes1 = set condition codes

0000 = AND - Rd:= Op1 AND Op2

0010 = SUB - Rd:= Op1 - Op20011 = RSB - Rd:= Op2 - Op10100 = ADD - Rd:= Op1 + Op20101 = ADC - Rd:= Op1 + Op2 + C0110 = SBC - Rd:= Op1 - Op2 + C0111 = RSC - Rd:= Op2 - Op1 + C1000 = TST - set condition codes on Op1 AND Op21001 = TEQ - set condition codes on Op1 EOR Op21010 = CMP - set condition codes on Op1 - Op21011 = CMN - set condition codes on Op1 + Op21100 = ORR - Rd:= Op1 OR Op21101 = MOV - Rd:= Op21110 = BIC - Rd:= Op1 AND NOT Op21111 = MVN - Rd:= NOT Op2

Immediate Operand0 = operand 2 is a register

1 = operand 2 is an immediate value

Shift Rm

Rotate

S

Unsigned 8 bit immediate value

2nd operand registershift applied to Rm

shift applied to Imm

Imm

Condition field

11 8 7 0

03411

0001 = EOR - Rd:= Op1 EOR Op2

- 1- 1

ARM Instruction Set - Data processing

ARM7TDMI Data SheetARM DDI 0029E

4-10

Ope

n A

cces

s

4.5 Data ProcessingThe data processing instruction is only executed if the condition is true. The conditionsare defined in ➲Table 4-2: Condition code summary on page 4-5.

The instruction encoding is shown in ➲Figure 4-4: Data processing instructions below.

Figure 4-4: Data processing instructions

The instruction produces a result by performing a specified arithmetic or logicaloperation on one or two operands. The first operand is always a register (Rn).

Cond 00 I OpCode Rn Rd Operand 2

011121516192021242526272831

Destination register1st operand registerSet condition codes

Operation Code

0 = do not alter condition codes1 = set condition codes

0000 = AND - Rd:= Op1 AND Op2

0010 = SUB - Rd:= Op1 - Op20011 = RSB - Rd:= Op2 - Op10100 = ADD - Rd:= Op1 + Op20101 = ADC - Rd:= Op1 + Op2 + C0110 = SBC - Rd:= Op1 - Op2 + C0111 = RSC - Rd:= Op2 - Op1 + C1000 = TST - set condition codes on Op1 AND Op21001 = TEQ - set condition codes on Op1 EOR Op21010 = CMP - set condition codes on Op1 - Op21011 = CMN - set condition codes on Op1 + Op21100 = ORR - Rd:= Op1 OR Op21101 = MOV - Rd:= Op21110 = BIC - Rd:= Op1 AND NOT Op21111 = MVN - Rd:= NOT Op2

Immediate Operand0 = operand 2 is a register

1 = operand 2 is an immediate value

Shift Rm

Rotate

S

Unsigned 8 bit immediate value

2nd operand registershift applied to Rm

shift applied to Imm

Imm

Condition field

11 8 7 0

03411

0001 = EOR - Rd:= Op1 EOR Op2

- 1- 1

ADDEQ R2,R4,R5 ; If the Z flag is set make R2:=R4+R5

TEQS R4,#3 ; test R4 for equality with 3 (S is redundant)

SUB R4,R5,R7,LSR R2 ; Logical right shift R7 by the number in

; the bottom byte of R2, subtract result

; from R5, and put the answer into R4

MOV PC,R14 ; Return from subroutine

MOVS PC,R14 ; Return from exception and restore CPSR from SPSR_mode

Page 305: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 305

z.B. ganzzahlige Vielfache von integers: Ra := c*Ra

Multiplication by 2n, i.e. by 1,2,4,8,16,32... per MOV Ra, Ra, LSL #n

Multiplication by 2n + 1, i.e. by 3,5,9,17... per ADD Ra,Ra,Ra,LSL #n

Multiplication by 2n−1, i.e. 3,7,15... per RSB Ra,Ra,Ra,LSL #n wherereverse subtract, RSB computes Rd = op2-Rn

Multiplication by 6 per

ADD Ra,Ra,Ra,LSL #1 ; multiply by 3

MOV Ra,Ra,LSL#1 ; and then by 2

Multiply by 10 and add in extra number in Rc per

ADD Ra,Ra,Ra,LSL#2 ; multiply by 5

ADD Ra,Rc,Ra,LSL#1 ; multiply by 2 and add Rc

pp4-63 general recursive method for integer Rb := Ra*C, C a constant

Page 306: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 306

B z.B. 4.9 Single Data Transfer, LDR/STR

ARM Instruction Set - LDR, STR

ARM7TDMI Data SheetARM DDI 0029E

4-28

Ope

n A

cces

s

4.9 Single Data Transfer (LDR, STR)The instruction is only executed if the condition is true. The various conditions aredefined in ➲Table 4-2: Condition code summary on page 4-5. The instruction encodingis shown in ➲Figure 4-14: Single data transfer instructions on page 4-28.

The single data transfer instructions are used to load or store single bytes or words ofdata. The memory address used in the transfer is calculated by adding an offset to orsubtracting an offset from a base register.

The result of this calculation may be written back into the base register if auto-indexingis required.

Figure 4-14: Single data transfer instructions

Cond I Rn Rd

011121516192021242526272831

01 P U B W L Offset

2223

011

Source/Destination registerBase registerLoad/Store bit

0 = Store to memory1 = Load from memory

Write-back bit

Byte/Word bit

0 = no write-back1 = write address into base

0 = transfer word quantity1 = transfer byte quantity

Up/Down bit

Pre/Post indexing bit

0 = offset is an immediate valueImmediate offset

Immediate offset

Unsigned 12 bit immediate offset1 = offset is a register

11 0

shift applied to Rm

34

Condition field

0 = down; subtract offset from base1 = up; add offset to base

0 = post; add offset after transfer1 = pre; add offset before transfer

Offset register

Shift Rm

Page 307: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 307

• A32 vs A64

http://www.arm.com/products/processors/instruction-set-architectures/index.php

A64 is a new 32-bit fixed length instruction set to support the AArch64execution state. The following is a summary of the A64 ISA features:

• Clean decode table based on 5-bit register specifiers• Instruction semantics broadly the same as in AArch32• 31 general purpose 64-bit registers accessible at all times• No modal banking of GP registers - improved performance and energy• Program counter (PC) and Stack pointer (SP) not GP registers• Dedicated zero register available for most instructions

Key differences from A32 are:

• New instructions to support 64-bit operands. Most instructions canhave 32-bit or 64-bit arguments.

• Addresses assumed to be 64-bits in size.• Far fewer conditional instructions than in AArch32 conditional {branches,

compares, selects}• No arbitrary length load/store multiple instructions LD/ST P for

handling pairs of registers added A64

Page 308: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 308

Advanced SIMD and scalar floating-point support are semantically similarto the A32 support; they share a floating-point/vector register file, V0 toV31. A64 provides three major functional enhancements:

• More 128 bit registers: 32 x 128 bit wide registers; can be viewed as64-bit wide registers

• Advanced SIMD supports DP floating-point execution• Advanced SIMD supports full IEEE 754 execution; rounding-modes,

Denorms, NaN handling

There are some additional floating-point instructions for IEEE754-2008:

• MaxNum/MinNum instructions: one operand a NaN• Float to Integer conversions with RoundTiesAway

The register packing model in A64 is also different from A32:

• All vector registers Vx[127:0] are 128-bits wide:Double precision scalar floating point uses Vx[63:0]Single precision scalar floating point uses Vx[31:0]

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0487a.b/index.html

5242p to registered ARM customers only!

Page 309: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 309

• Details aus ARMv8 Instruction Set Overview

https://silver.arm.com/download/ARM_and_AMBA_Architecture/AR100-DA-70501-r0p0-00eac5/

ARMv8_ISA_PRD03-GENC-010197-30-0.pdf 115p only after registration!http://infocenter.arm.com/help/topic/com.arm.doc.aeg0014e/AEG0014E_

ARM_corporate_glossary.pdf 41phttp://infocenter.arm.com/help/topic/com.arm.doc.dui0802a/DUI0802A_

armasm_reference_guide.pdf 1176p

’overview of the ARMv8 instructions sets, being mainly the new A64 in-struction set used in AArch64 state but also those new instructions addedto the A32 and T32 instruction sets since ARMv7-A for use in AArch32state’

3 A64 OVERVIEW p10 32bit Instruktionen, 32 Register; R31=0 if read,discards data if written; R31=SP if used as base register in load/store;R30=LR link register; scalar load/store addressing modes; load/sto-re immediate offsets may be scaled; load/store of pairs of registers;load/store on unaligned addresses? fewer conditionality; shift opti-on for the final register operand; advanced SIMD processing exten-ded to 32 128-bit vector registers; saturating arithmetic instructions;CPSR=Current Program Status Register, system instructions

Page 310: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 310

3.1 Distinguishing 32-bit and 64-bit Instructions p12→ two forms: 32bit instructions vs 64 bit instructions;

3.2 Conditional Instructions p12 → predict poorly

3.3 Addressing Features p13 32bit and 64bit addresses, addressing mo-des; PC-relative addressing;

3.5 Memory Load-Store p13 LDP/STP load/store pairs; LDNP/ST-NP load/store pairs not in cache; PRFM (prefetch memory) prefetchto a specific cache level; exclusive access, acquire-release

3.6 Integer Multiply/Divide p14 MAC;

3.7 Scalar Floating Point p14 32 SP and 32 (!) DP-registers, floatingpoint arithmetic and rounding

4 A64 ASSEMBLY LANGUAGE p16 (disassemblable to identify mal-ware more easily) integer containers: Word; eXtended word; scalar,FP & SIMD containers: Byte; Half-, Single-, Double- and Quad-precision; sub(container) types: load/store and sign-zero-extend: B,SB, H, SH, W, SW; register width changes: High, Narrow, Long, Wi-de (SXTW=sign extend wide?); → ADD instructions with differentopcodes depending on args

Page 311: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 311

4.3 Condition Codes p17 set/not set by instructions (postfix S); CSEL=conditionallyselect s.a. p47; → condition codes

4.4 Register Names p19 WZR=R31=WSP (32bit), XZR=R31=XSP (64bit);LR=R30? mit WLR und XLR? 32 FP/SIMD heißen V0..V31 mit ska-laren Bn, Hn, Sn, Dn, Qn und vektoriellen Vn.8B, Vn.16B, Vn.4H,Vn.8H, Vn.2S, Vn.4S, Vn.1D, Vn.2D mit Adressierung einzelner Ele-mente und lanes; vector register list, vector element list;

4.5 Load/Store Addressing Modes p22 pre/post indexed addressingmods z.B. fur push/pop verschiedene Addressierungsarten (SXT?/UXT?signed/unsigned extend s.a. p39, SBFIZ/UBFIZ signed/unsigned bit-field s.a. p39)

5 A64 INSTRUCTION SET p24 assembler: conventions, features etc

5.2 Control Flow p25 branch instructions, BL/BLR branch and link toR30, BR gives → hints to CPU?

5.3 Memory Access p26 single register:→ addressing modes, write back= base register write back? → loads/stores; Unterschied LDR vsLDUR? load/store pairs, non-temporal or streaming i.e. hint do notcache; load/store unpriviledged w.r.t. exception level; load/store ex-clusive permitting the construction of atomic read-modify-write ope-

Page 312: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 312

rations on shared memory variables, semaphores, mutexes, spinlocks,etc; Load-Acquire/Store-Release remove the need to use the explicitDMB memory barrier instructions; (non-) exclusive; prefetch memo-ry: → hint to MMU;(Programming Language Interface, PLI z.B. fur VERILOG)

5.4 Data Processing (immediate) p34/35 arithmetic instructions withimmediates: add, sub, cmp, cmn, mov; logical instructions with im-mediates: and, or; move with (wide) immediates; pseudo instructions(aliases) of move; PC-relative address calculation: → ADRP(age),ADR; bitfield/→extract operations; shift, sign/zero-extend sind pseu-do instructions per bitfield/extract;

5.5 Data Processing (register) p41 arithmetic instructions with shif-ted register, with extended register: add, sub, cmp, cmn; logic in-structions with shifted register: and, bic, eon, eor, orr, orn, mov asalias for orr; variable shift; bit operations: cls, clz, rbit, rev;bescheuerte Bezeichnung: p46 → conditional data processing p48 →conditional comparison:

5.6 Integer Multiply/Divide p49 multiply (MAC!), divide, CRC

5.7 Scalar Floating-point p52 load/store FP and SIMP registers (ad-

Page 313: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 313

dressing modes wie fur integer registers); load/store pairs; load/sto-re FP/SIMD non-temporal pairs; FP-move (register, immediate) =pseudoinstruction? FP-convert to/from int, to/from fixed (!); round;fabs, fneg, fsqrt; fadd, fdiv, fmul, fsub; fmin, fmax; MAC: fmadd,fmsub; FP-compare; FP conditional select;

5.8 Advanced SIMD p62 → vector registers; p63 polynomial data ty-pe? Data Movement → DUP, Vector Arithmetic → FADD, MUL vsFMUL, FSQRT, FRSQRT; Vector Compare→ CMEQ; Scalar Arith-metic/Compare (where <V> is S or D); Vector Widening bzw. Narro-wing Arithmetic, z.B. 8H←8B bzw. 8H←16B; Scalar Widening/Nar-rowing Arithmetic (where <V> is ...); Vector Unary Arithmetic; Sca-lar Unary Arithmetic (where <V> is ...); Vector-by-element Arithme-tic; Scalar-by-element Arithmetic (where <V> is ...); Vector Permute(?) → TRN1, TRN2; Vector Immediate; Vector Shift (immediate);Scalar Shift (immediate) (where <V> is ...); Vector Floating Point /Integer Convert; Scalar Floating Point/Integer Convert (where <V>is ...); Vector Reduce (across vector lanes) (?)→ ADDV; Vector Pair-wise Arithmetic (?) → ADDP; Scalar Pairwise Reduce → FADDP;Vector Table Lookup (?) → TBL vs TBX; Vector Load-Store Struc-ture p89

Page 314: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 314

5.8.25 AArch32 Equivalent Advanced SIMD Mnemonics p91 FPCR=FloatingPoint Control Register: polynomial nur PMULL, PMULL2,

5.8.26 Crypto Extension p98 shares the FP/SIMD register file for AES(advanced encryption standard), GCM (authenticated encryption byThe Galois/Counter Mode of Operation), and SHA (Secure HashAlgorithm); uses PMULL, PMULL2 (polynomial multiply long)

5.9 System Instructions p99 Exception generating instructions, z.B. de-bug exceptions, System register access, System management (system,cache, TLB), Architectural hints ? p104, Barriers ? p104, CLREX ?p104

z.H. beurteile

• Orthogonalitat

• Heterogenitat

• CPI

• Kompaktheit des Codes

• Was spricht fur RISC? was fur CISC?

o

Page 315: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 315

11.11. Addendum in 2015: IBM z13

IBM zSystems http://www.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ST&infotype=SA&htmlfid=ZSJ03278USEN&attachment=ZSJ03278USEN.PDF

Wieso uberhaupt z? https://www.youtube.com/watch?v=ErZRSQoTFXw einbißchen Werbung zur Einfuhrung . . .

hard facts in AULIS � external docs:

TG Lascu et al: IBM z13 Technical Guide; IBM 2015 sg248251.pdf

TI Lascu et al: IBM z13 Technical Introduction; IBM 2015 sg248250.pdf

Im Folgenden beziehen sich alle Seitenangaben auf TI ...

0’15” IBMs z13, data and transaction engine for cloud, mobile, analytics

1’00” reliable, secure, performant

1’10” vector processing (SIMD), FPGA support, data compression, vir-tualization, crypto

2’00” ’feed the beast’ : caching, memory

2’15” IO

Page 316: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 316

2’30” 141 out of 168 PUs (p26, p34), 22nm, 6 instructions/cycle in parallel

3’00” 8 cores/die @5GHz, on die caches (p26, p34)

34 IBM z13 Technical Introduction

Each z13 processor unit (PU) chip has eight cores. All chips use complementary metal-oxide of silicon (CMOS1) 14S0 technology. CMOS 14S0 is a state-of-the-art microprocessor technology that is based on 17-layer copper interconnections and Silicon-On-Insulator (SOI) technologies. The chip lithography line width is 0.022 µm (22 nm). The processor unit chip contains close to 3,990,000,000 transistors in a 678.8 mm2 die.

There are eight single chip modules (SCMs) per CPC drawer. Six of these SCMs hold the processor chips (PU chips) and two SCMs hold storage control (SC) chips. Each PU chip has six, seven, or eight active cores, L1, L2, and L3 caches; the two SC chips holds L4 caches, as shown in Figure 2-8.

Two CPC drawer configurations are offered with 39 or 42 PUs. All the models employ CPC drawers with 39 PUs except for the model NE1, which has four CPC drawers with 42 active PUs, for a total of 168 PUs.

Figure 2-8 z13 CPC drawer chips and cache structure

Each SC chip packs 480 MB of eDRAM cache, interface logic for three PU chips each, and SMP fabric logic, into 678.78 mm2. The two SC chips are configured to provide a single 960 MB L4 cache that is shared by all cores in the CPC drawer. This amount of cache gives a total of 3.8 GB of cache if all four CPC drawers are implemented, yielding outstanding SMP scalability on real-world workloads.

1 Complementary metal-oxide-semiconductor

Node 0Node 1

64MB eDRAMInclusive L3

L1

L22MB

L1

L22MB

64MB eDRAMInclusive L3

L1

L22MB

L1

L22MB

64MB eDRAMInclusive L3

L1

L22MB

L1

L22MB

64MB eDRAMInclusive L3

L1

L22MB

L1

L22MB

64MB eDRAMInclusive L3

L1

L22MB

L1

L22MB

64MB eDRAMInclusive L3

L1

L22MB

L1

L22MB

480MBeDRAM

L4

224MBeDRAM

NICL3

ownedlines

480MBeDRAM

L4

224MBeDRAM

NICL3

ownedlines

PU chip (8 cores) PU chip (8 cores) PU chip (8 cores) PU chip (8 cores) PU chip (8 cores) PU chip (8 cores)

CP Stores

LRU Cast-out

Data Fetch Return

S-Bus

X-Bus

To other CPC drawers

hierarchic connection network

3’30” cache-hierarchy: ’private’ L1 96/128KB I/D cache, L2 2MB I&D,

Page 317: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 317

L3 64MB, L4 480MB along with the addition of 224MB for non-DataIntegrated Coherent (NIC) Directory for L3 ???, up to 10TB memory(p26)

4’00” up to 8000 virtual machines increase utilization (see 5’)

4’15” ’IO-monster’ mit 160 IO-cards a 2 PowerPC (PowerPC, Performan-ce Optimization With Enhanced RISC)

4’50” i.e. 320 IO-channels

5’00” nearly 100% utilization

5’15” intelligent IO system

5’40” SIMD = ’performance booster’

6’10” simultaneous multi-threading, SMT, https://en.wikipedia.org/

wiki/Simultaneous_multithreading, 2 threads/core

6’30” open system, i.e. supports e.g. JAVA, Linux etcJAVA & SIMD ???

6’50” Hadoop https://de.wikipedia.org/wiki/Apache_Hadoop

8’00” desaster recovery

8’15” intelligent workload distribution with zAware

Page 318: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 318

8’50” resilience analytics

9’10” ’most secure’ , cryptographic co-processors, EAL5 compliant https://en.wikipedia.org/wiki/Evaluation_Assurance_Level

9’50” end-to-end cryptography

10’00” format preserving cryptography?

10’30” tested: unbreakable, resilient, i.e. temperature, voltage, frequency,shock, vibration, earth quakes

12’10” Assurance Kernel Tests – per injecting failures to test e.g. the coo-ling system in order to guarantee high availability

13’00” error checking

14’00” energy efficiency

14’50” pushing the boundaries ???

zu core, out of order execution, cache hierarchy, branch prediction, transac-tional memory, etc. s.a. Dokumente zu Vorganger-z-systems z.B.C.K. Shum, F. Busaba, C. Jacobi: IBM zEC12 – The Third-GenerationHigh-Frequency Mainframe Microprocessor; IEEE 2013 (see e-lib)

Page 319: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 319

Anwendungsbeispiele s.a. ZSM03007USEN.pdf auf AULIS:Kenya Power, Tesco, Travelport, First National Bank of South Africa, SwissRe, Banca Carige of Italy, Petrol of Slovenia, The New York MunicipalShared Services Cloud (Zusammenfassung pp23-25)

• Mainframe vs Multi-Computer-System

Was sagt uns HPC? http://www.top500.org/ vergleiche . . .

Welche Anforderungen sind fur welche Anwendungen zu erfullen?Untersuche

• Datenbank-Anwendungen,vgl. https://en.wikipedia.org/wiki/Apache_Hadoop

• Scientific Computing (FEM fur crash tests, Systeme von PDEs zurWetter-Vorhersage, Atombomben-Modellierung etc.)

• big data (google, facebook etc)

• render farms (Hollywood)

Mainframe vs. Distributed Servers: s.a. http://www-03.ibm.com/systems/es/resources/ZSL03135USEN.pdf

Page 320: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 320

Security, s.a. http://enterprisesystemsmedia.com/article/10-key-security-questions-to-help-determine-the-most-secure-platform

• Mainframes

• http://aspg.com/reasons-why-mainframes-still-matter/#.VZO1iUY5jAo

scalability, security, maintainability

• http://www.computerweekly.com/feature/Is-the-time-right-for-a-mainframe-renaissance

”According to IBM, an IBM System z10 EC mainframe has the equi-valent capacity of nearly 1500 x86 servers with an 85% smaller foot-print and up to 85% lower energy costs.”high availability, reliability, and security

• Distributed Systems

• http://www.cs.cmu.edu/~02317/slides/lec_3.pdf – case study: Ha-doop https://en.wikipedia.org/wiki/Apache_Hadoop

• http://www.cis.upenn.edu/~lee/07cis505/Lec/lec-ch1-DistSys-v4.

pdf – case studies: e-health, sensor networks, smart space

Page 321: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 321

11.12. Addendum in 2016: NN

• VISC, Virtual Instruction Set Computing oder Very Intensive ScalingComputer, whatever

• PowerPC, Performance Optimization With Enhanced RISC

• . . .

Page 322: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Index

8051 µ-Controller, 97

Adressierung, 67Adressierungsarten, 68Aiken, Howard, 15Akkumulator-Architektur, 59Algorithmus

Effektivitat, 217Effizienz, 217Gauß, 200Gauß-Jordan, 204, 214lineare Rekurrenz, 219parallel, 197parallele Summation, 216Vektorisierung, 202

Architektur, parallel, 197Atanasoff, John, 15

Belady, Laszlo

Anomalie 1969, 165Babbage, Charles, 15Baumhohenreduktion, 219Befehlsmix, 71Befehlssatz, siehe instruction set, 58,

101benchmark

BAPCo Sysmark, 22DAXPY, 120, 202, 230Drystones, 22Lapack, 22Linpack, 22Livermore Loops, 22SAXPY, 120, 202, 230SPECfp, 22SPECint, 22SPECmarks, 22Whetstones, 22

322

Page 323: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 323

Beschleunigungsfaktor, 25, 109bus bandwidth, 21

cache, 1341-associative, 1371-assoziativ, 136block, 140, 145copy back, 149data-, 121direct mapped, 135–137fetch on write (miss), 150instruction-, 121Koharenz, 149, 209Konsistenz, 149least recently used, LRU, 144MESI, 209no write allocate, 150physically indexed, 185set assiciative, 143set associative, 144, 145snooping, 150

Verdrangungsstrategie, 140virtually indexed, 185write allocate, 150write around, 150write back, 149write through, 149

CISC, 92, 97Colossus, 16Compiler

Code-Alternativen, 100compiler, 30

block of code, 40Code verschieben, 47constant expression folding, 34Elimination

gemeinsame Teilausdrucke, 34redundante Sprunge, 34tote Variable, 47toter Code, 34, 47

lexikalische Analyse, 35

Page 324: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 324

lokale Optimierung, 34loop unfolding, 34, 231loop unrolling, 34, 231Maschinen-unabhangige Zwischen-

sprache, 38Optimierung, 50

Kontext-neutral, 50parallelisierend, 215Parameter-Ubergabe, 52propagation, 34Prozeß-Wechsel, 52Reduktion der Starke, 47Registerzuteilung, 34semantische Analyse, 37strength reduction, 34syntaktische Analyse, 36vektorisierend, 215Verbreiten von Kopien, 34, 47

condition codes, 72control unit, 114

Convex C1, 122CPI, 109CPI = cycles per instruction, 21Cray

Cray 1, 122, 128Cray 2, 122Cray X-MP, 122CrayY-MP, 122

data hazard, 114, 115RAW, 115WAR, 115

directed acyclic graph, DAG, 221displacement, 69DLX, siehe MIPS

DLXV(ector), 122lhi, 76

DLXV = Vektor-DLX, 123

Eckert, John P., 16EDVAC, 16

Page 325: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 325

ENIAC, 16Enigma, 16

FLOPS = floating point operationsper sec, 21

FPS = frames per sec, 21Fujitsu

VP100/200, 122functional unit, 107functional units

scheduling, 114funktionale Einheit, 107

Havard-Architektur, 151hazard

race condition, 223Hitachi

S810/820, 122Hollerith, Hermann, 15hyperthreading, 225

IBM, 15IBM 3090, 231

compound instructions, 233vector facility, 231Vector Instructions, 236

IBM, z13, 315IBM, zSystem, 315immediate, 69instruction pipeline, 106instruction set, siehe Befehlssatzinstruction set architecture, siehe ISAInstruction Set Architecture, ISA, 58Intel 80x86, 81

8087 coprocessor, 848086, 81, 8980286, 81, 8480386, 81, 84, 9080486, 81Adressierung, 86Adressierungsarten, 86

Page 326: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 326

Akkumulator-Architektur, 83, 84AMD64, 95base pointer, BP, 83Befehlsdekodierung, 92Befehlsformate, 85, 87condition codes, 93, 95destination index, DI, 83extended accumulator architec-

ture, 84IA64, 97instruction pointer, EIP, 86instruction pointer, IP, 83memory management, 192Operationen, 87

Datentypen, 87dyadisch, 87SIMD, 87

Pentium, 81, 151Pentium Pro, 151prefixes, 88

processor status, EFLAGS, 86processor status, FLAGS, 83Register-Architektur, 83, 84Segmentierung, 86source index, SI, 83stack pointer, SP, 83Stack-Architektur, 83, 84

Inter-PE-Kommunikation, 199, 208io bandwidth, 21ISA, siehe instruction set architec-

tureorthogonal, 100

ISA, Instruction Set Architecture, 58

Java VM, 62Joy, Bill – SUN-Mitbegrunder, 27

KLIPS = K inferences per sec, 21

Leibniz, Gottfried, 15lineare Gleichungssystem, LGS, 197

Page 327: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 327

load/store-Architektur, 61Lokalitat, 133

raumlich, 133zeitlich, 133

Lovelace, Augusta Ada King, coun-tess of, 15

MAC-Instruktion, 202Matrix-Multiplikation, 55, 150, 197,

227branch, 55caching, 56, 57jump, 55load, 55loop unfolding, 56loop unrolling, 56store, 55

Mauchly, John William, 16memory, siehe Speicher, 152

buddy systems, 173cache vs TLB, 182

contention, 204distributed, 218DRAM, 152global, 208hierarchy-, 129management, 156

allocation, 156efficient, 156fast, 156page table, 159paging, 159protection, 156relocatable, 156sharing code, 156sharing data, 156

multi port, 208nibble mode, 154page mode, 154paged segments, 177paging

Page 328: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 328

copy back, 161full associative, 161hierarchy of page tables, 162inverted page table, 162LRU, 161, 166paging the page table, 162

physical, 157physically indexed cache, 185protection, 188segmentation, 167

address translation, 167context switch, 167dynamic allocation, 168protection, 167segmentation violation, 179

shared, 208shared , 223SRAM, 152static column mode, 154virtual, 157

virtually indexed cache, 185MicroChip PIC24, 99MIPS, 73

add, 76addi, 76b zal, 73Befehlsabarbeitung, 103, 104Befehlsformat, 77beq, 76bne, 76branch, 95control unit, 103displavcement, 76ISA, 73j, 76jal, 73jalr, 73jr, 76lui, 76lw, 76

Page 329: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 329

lwl, 76lwr, 76multi cycle implementation, 74,

102opCode, 77opCode-Erweiterung, 74Operationen

arithmetisch-logisch, 107branch/jump, 107load/store, 107

pipelinecontrol hazard, 107data hazard, 107

pipeline implementation, 105s , 76s i, 76shift, 79

arithmetisch, 79logisch, 79sll, 79

sllv, 79sra, 79srav, 79srl, 79srlv, 79

single cycle implementation, 74,102

Steuerung, 103µ-Programm, 104Modellierung durch FSM, 104PLA, 104ROM, 104sequencer, 104

sub, 76subi, 76superscalar implementation, 107sw, 76swl, 76swr, 76

MIPS = Mio instructions per sec, 21

Page 330: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 330

Moore, Gordon E. – Intel-Mitbegrunder,27

MOPS = Mio operations per sec, 21Morland, Samuel, 15mutual exclusion, MUTEX, 224

NECSX/2, 122

netconnection, 216

NetzVerbindungs-, 216

Neumann, John von, 16Newman, Max H.A., 16

Operationen, 70arithmetisch-logisch, 70binary coded digit, BCD, 70Daten-Transfer, 70Gleitpunkt = Gleitkomma, 70Register-Register, 65

Register-Speicher, 65Skalar-, 126Speicher-Speicher, 65Steuerung, 70String, 70Vektor-, 126

Parallelisierung, 199Parallelitat, 107Pascal, Blaise, 14PIC24 µ-Controller, 99pipeline, 105

arithmetic, 111control hazard, 106data hazard, 106functional, 111Granularitat, 113superskalar, 106Varibilitat, 113

pipeline control, 106pipeline implementation, 105

Page 331: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 331

PowerPC, 151processing element, PE, 199Prozessor

pipeline-, 126pipeline-vector-, 120, 121superpipeline, 119superskalar, 119Vektor-, 124, 227

Leistung, 126Vektor-Register, 121

Reduced Instruction Set Computer,RISC, 80

Register, 231rekonfigurierbare Vektor-, 232Skalar-, 231Vektor-, 231

Register-Architektur, 59Register-Fenster, 52Register-Satze, 52

RISC, Reduced Instruction Set Com-puter, 80

schedulingdynamic, 224static, 223

Scheduling von PEs, 221scoreboard, 114scorebord, 107SIC, Single Instruction Computer, 58SIMD, 202Single Instruction Computer, SIC, 58single/pipeline implementation, 74Speicher, siehe memorySpeicher-Hierarchie, 129Stack-Architektur, 59Stibitz, George, 15superskalar, 107

TPS = transactions per sec, 21Turing, Alan M., 16

Page 332: [0pt][c]Computer Architektur, COM(P)ARCH = Rechner ... · Computer-Architektur ist die Struktur eines Computers, die ein Maschinen- Sprachen-Programmierer verstehen muˇ, um korrekte

Abschnitt 11: Addenda 332

vector processing, 228Verbindungsstruktur, 209

Bus, 209, 214cross bar, 209, 214Gitter, 209, 214hypercube, 209, 214Kreuzschienenverteiler, 209, 214Ring, 209, 214Stern, 209, 214Torus, 209, 214

wait states, 21Watson, T.J., 15

Zuse, Konrad, 15