Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
ComputergrundlagenGeschichte des Computers
Axel Arnold
Institut fur ComputerphysikUniversitat Stuttgart
Wintersemester 2011/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
1641: Rechenmaschine von B. Pascal
B. Pascal,1623 - 1662
• mechanische Rechenmaschine• addierte & subtrahierte ganze Zahlen• nicht programmierbar
A. Arnold Computergrundlagen 2/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
1837: Analytical Engine von C. Babbage
C. Babbage,1791 - 1871
• programmierbare mechanische Rechenmaschine• 3 Lochkartenleser fur Programm, Konstanten und Eingabezahlen• 4 Grundrechenarten, Sprunge• nie gebaut
A. Arnold Computergrundlagen 3/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
1941: Z3 von K. Zuse
K. Zuse,1910 - 1995
Zuse Z1 Zuse Z3
Z1, 1937: programmierbare mechanische RechenmaschineZ3, 1941: elektromechanischer Rechner:Relais und Kernspeicher
• 0,9 / 1,4 Flops (Fliesskomma-Operationen / Sekunde)• Programm und Daten uber eigene Lochkartenleser• im 2. Weltkrieg zerstort, Rekonstruktion in Munchen
A. Arnold Computergrundlagen 4/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
1946: ENIAC
• erster Rohrenrechner• 350 Flops• Grundrechenarten + Wurzeln• Programmeingabe durch Verdrahtung• 1948 Einbau eines Befehlsspeichers
A. Arnold Computergrundlagen 5/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
Von Neumann-Architektur (1945)
J. von Neumann,1903 - 1957
arithmetic
logic
unit
control
unit
CPU
accumulators
memory0 1 2 3 4 5 6 7 8 9 ...10
inp
ut/o
utp
ut
• Grundlage aller modernen Rechnerarchitekturen nach ENIAC• ein linearer Ganzzahl-Speicher fur Programme und Daten• random access memory (RAM) – Speicher mit wahlfreiem Zugriff• Befehle sind Zahlen im Speicher, konnen uberschrieben werden
A. Arnold Computergrundlagen 6/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
Von Neumann-Architektur (1945)
J. von Neumann,1903 - 1957
arithmetic
logic
unit
control
unit
CPU
accumulators
memory0 1 2 3 4 5 6 7 8 9 ...10
inp
ut/o
utp
ut
• Befehle werden sequenziell abgearbeitet• Befehlszahler enthalt die Adresse des aktuellen Befehls• wird normalerweise hochgezahlt• Sprunge und Verzweigung sind spezielle Befehle
A. Arnold Computergrundlagen 6/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
1976: Apple I / II
• 1976: Apple I, erster ”Serien“-PC, 100 Exemplare• 1977: Apple II, 2 Millionen Exemplare• 8-bit CPU (6502), 48kB RAM, 1000 Flops• Massenmarkt: C64 – 30 Millionen Exemplare• Grund: zahlreiche Computerspiele• erst ab ca 1990 setzen sich IBM-kompatible Heim-PCs durch
A. Arnold Computergrundlagen 7/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
2008: Intel Nehalem
quadruple associative Instruction Cache 32 KByte,128-entry TLB-4K, 7 TLB-2/4M per thread
Prefetch Buffer (16 Bytes)
Predecode & Instruction Length Decoder
Instruction Queue18 x86 Instructions
AlignmentMacroOp Fusion
ComplexDecoder
SimpleDecoder
SimpleDecoder
SimpleDecoder
Decoded Instruction Queue (28 µOP entries)
MicroOp Fusion
LoopStream
Decoder
2 x Register Allocation Table (RAT)
Reorder Buffer (128-entry) fused
2 xRetirement
RegisterFile
Reservation Station (128-entry) fused
StoreAddr.Unit
AGU
LoadAddr.Unit
AGUStoreData
MicroInstructionSequencer
256 KByte8-way,64 Byte
Cacheline,private
L2-Cache
512-entryL2-TLB-4K
Integer/MMX ALU,
Branch
SSEADDMove
Integer/MMX ALU
SSEADDMove
FPADD
Integer/MMX ALU,
2x AGU
SSEMUL/DIV
Move
FPMUL
Memory Order Buffer (MOB)
octruple associative Data Cache 32 KByte,64-entry TLB-4K, 32-entry TLB-2/4M
BranchPrediction
global/bimodal,loop, indirect
jmp
128
Port 4 Port 0Port 3 Port 2 Port 5 Port 1
128 128
128 128 128
Result Bus256
Quick PathInter-
connect
DDR3Memory
Controller
CommonL3-Cache8 MByte
Uncore
4 x 20 Bit6,4 GT/s
3 x 64 Bit1,33 GT/s
Intel Nehalem microarchitectureTo Input/OutputControl unit
To Memory
ALUs + FPUs
• auch ein Nehalem-Kern ist immer noch eine von Neumann-CPU• ... aber mit 50-100 Gigaflops• Millionen verkaufte Einheiten — pro Jahr
A. Arnold Computergrundlagen 8/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
Theoretische Informatik, Berechenbarkeit
A. Turing, 1912 - 1954Turingmaschine
Zustand s
1 0 1 0 1 0 1 0
Arbeitsband (Speicher)
Aktuelle Schreib−/Leseposition p
• ca 1920, D. Hilbert: Was ist berechnenbar, was beweisbar?• 1931, K. Godel: Entweder widerspruchsfrei oder vollstandig!• 1936: A. Turing: Turingmaschine, in ”On Computable Numbers,
with an Application to the ”Entscheidungsproblem” “• Nicht alles ist berechnenbar!• Wir konnen nicht mal bestimmen, was nicht beweisbar ist
A. Arnold Computergrundlagen 9/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
Turingmaschinen
Eine Turingmaschine ist definiert durch• eine endliche Menge Γ, das Arbeitsalphabet, mit Leerzeichent ∈ Γ
• eine endliche Menge Z von Zustanden der Maschine• den Startzustand s ∈ Z und den Haltezustand h ∈ Z• eine Uberfuhrungsfunktion δ : Z × Γ→ Z × Γ× {←, ↓,→}
Eine Konfiguration ist• eine Zeichenkette w uber dem Arbeitsalphabet• eine Position p in w , die aktuelle Arbeitsposition• der aktuelle Zustand z der Turingmaschine
Eine Konfiguration (w ,p, z) fuhrt in eine andere (w ′,p′, z ′) uber,wenn δ(z,wp) = (z ′,w ′
p,d), und d p nach p′ versetzt.Startkonfiguration: Eine Eingabe w , p am Anfang von w , Zustand s.A. Arnold Computergrundlagen 10/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
Darstellung von Turingmaschinen
Beispiel: Eine ”1“ vorne einfugen
B
h
A
s
t : 1,→
0 : 1,→
1 : 1,→
0 : 0,→
1 : 1,→
1 : 0,→0 : 1,→
t : 0,→
t : 1,→
A: ”0“ gemerkt
B: ”1“ gemerkt
s 0 A 1 →s 1 B 1 →s t h 1 →A 0 A 0 →A 1 B 0 →A t h 0 →B 0 A 1 →B 1 B 1 →B t h 1 →
Ablauf: Schreibe Zustand in das Arbeitsband vor die aktuellePosition, ` bezeichnet Ubergang
s101 ` 1B01 ` 11A1 ` 110Bt ` 1101ht
A. Arnold Computergrundlagen 11/12
http
://w
ww
.icp.
uni-s
tuttg
art.d
e
Turingmaschinen II
• Turingmaschinen konnen kombiniert werdenBeispiel: Hinter jedem Zeichen eine 0 einfugen
• universelle Turingmaschine: eine Turingmaschine, die berechnet,was eine Turingmaschine tut
• Halteproblem: es gibt keine Turingmaschine, die entscheidet, obeine gegebene Turingmaschine bei leerer Eingabe anhalt
• Turingmaschinen und von Neumann-Computer sind aquivalent
• Church-Turing-These:
Turing-berechenbare Funktionen sind genau die vonMenschen intuitiv berechenbaren Funktionen
A. Arnold Computergrundlagen 12/12