curs1_ro
DESCRIPTION
curs cn 1TRANSCRIPT
Calculatoare Numerice
- Cursul 0 -
Dan Tudose
1 20.02.2013
Facultatea de Automatică și Calculatoare Universitatea Politehnica București
28-Feb-13
Comic of the day
slide 2 Calculatoare Numerice
htt
p:/
/ab
stru
sego
ose
.co
m/9
8
28-Feb-13
Important Stuff
slide 3 Calculatoare Numerice
Dan Tudose • [email protected] • [email protected] Laboratoare: http://elf.cs.pub.ro/cn/wiki Notare: 3 puncte activitatea laborator 2 puncte lucrare laborator 5 puncte examen final
Cerinte pentru a promova: • minim 6 prezente la laborator • minim 1.5 puncte din cele 3 puncte pentru activitatea laborator • minim 2.5 puncte din cele 5 puncte din examenul final • Activitate la curs!
28-Feb-13
Ce este o arhitectură de calcul?
slide 4 Calculatoare Numerice
Aplicație
Fenomen fizic
Distanță prea mare pentru a fi acoperită într-un singur pas
Definiție generală: o arhitectura de calcul presupune design-ul unor niveluri succesive de abstractizare ce ne permit implementarea eficientă a unei aplicații de procesare de informație, în limitele tehnologiilor curente de fabricație.
(cu câteva excepții, e.g. Busola magnetică)
28-Feb-13
Niveluri de abstractizare într-
un sistem de calcul modern
slide 5 Calculatoare Numerice
Algoritm
Porți logice/Transfer de registre
Aplicație
Instruction Set Architecture (ISA)
Sistem de operare/Mașină virtuală
Microarhitectură
Dispozitive și componente
Limbaj de programare
Circuite electronice
Fenomen fizic
28-Feb-13
Arhitectura este într-o
continuă schimbare
slide 6 Calculatoare Numerice
Costul software development face compatibilitatea să fie o forță puternică pe piață
Aplicații
Technologie
Aplicațiile dau indicii asupra modului în care poate fi îmbunătățită tehnologia de fabricație și produc venit pentru a finanța dezvoltarea.
Îmbunătățirea tehnologiei de calcul face posibilă dezvoltarea de noi aplicații
28-Feb-13
Sistemele de calcul atunci...
slide 7 Calculatoare Numerice
EDSAC, University of Cambridge, UK, 1949
28-Feb-13
Sisteme de calcul
contemporane
slide 8 Calculatoare Numerice
Roboți
Supercalculatoare Automobile
Laptopuri
Set-top boxes
Smart phones
Servere Playere media
Rețele de senzori
Rutere
Camere Console
28-Feb-13
Performanța procesoarelor
slide 9 Calculatoare Numerice
1
10
100
1000
10000
1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006
Pe
rfo
rma
nce
(vs. V
AX
-11
/78
0)
25%/year
52%/year
??%/year
• VAX : 25%/an 1978 to 1986 • RISC + x86: 52%/an 1986 to 2002 • RISC + x86: ??%/an 2002 to present
Din Hennessy and Patterson, Computer Architecture: A Quantitative Approach, 4th edition, October, 2006
28-Feb-13 slide 10 Computer Engineering
[from Kurzweil]
Major Technology Generations Bipolar
nMOS
CMOS
pMOS
Relays
Vacuum Tubes
Electromechanical
?
28-Feb-13
Sfârșitul erei uni-procesor
slide 11 Calculatoare Numerice
Cea mai importantă schimbare din întreaga istorie a sistemelor de calcul
28-Feb-13
Arhitectura Calculatoarelor:
Scurt Istoric
slide 12 Calculatoare Numerice
De ce ar trebui să ne preocupe așa ceva?
• Ajută în înțelegerea procesului de proiectare a structurilor de calcul și explică de ce au fost luate anumite decizii
• Pentru că tehnologiile viitoare ar putea fi la fel de supuse la constrângeri ca și cele trecute
• Cei care ignoră istoria sunt predispuși să o repete
– Fiecare greșeală făcută în proiectarea de calculatoare mainframe a fost făcută și în proiectarea minicomputerelor și a microcomputerelor.
28-Feb-13
Charles Babbage 1791-1871 Lucasian Professor of Mathematics,
Cambridge University, 1827-1839
slide 13 Calculatoare Numerice
28-Feb-13
Charles Babbage
slide 14 Calculatoare Numerice
• Mașina diferențială 1823 • Mașina analitică 1833
– Precursorul calculatorului digital modern!
Aplicații – Tabele matematice - astronomie – Tabele nautice - marină
Ideea de bază – Orice funcție continuă poate fi aproximată printr-un polinom ---
Weierstrass
Tehnologie – mecanică – roți dințate, războiul lui Jacquard, calculatoare
simple
28-Feb-13
Mașina diferențială O mașină pentru calculul tabelelor matematice
slide 15 Calculatoare Numerice
Weierstrass: – Orice funcție continuă poate fi aproximată printr-un polinom
– Orice polinom poate fi calculat folosind tabele diferențiale
De exemplu f(n) = n2 + n + 41
d1(n) = f(n) - f(n-1) = 2n
d2(n) = d1(n) - d1(n-1) = 2
f(n) = f(n-1) + d1(n) = f(n-1) + (d1(n-1) + 2)
Tot ce trebuie să faci este să aduni!
n
d2(n)
d1(n)
f(n)
0
41
1
2
2
2
3
2
4
2
4 6 8
43 47 53 61
28-Feb-13
Mașina diferențială
slide 16 Calculatoare Numerice
1823 – Babbage publică un articol în care descrie
mașina diferențială
1834 – Articolul este citit de Scheutz și fiul lui în
Suedia
1842 – Babbage renunță la ideea de-a construi un
prototip funcțional; dorește să construiască Mașina Analitică!
1855 – Scheutz expune mașina la Expoziția Mondială
de la Paris – Poate calcula orice polinom până la gradul 6. – Viteză de calcul: 33 până la 44 numere de 32
de cifre pe minut!
Acum, mașina se află la Smithsonian
28-Feb-13
Mașina Analitică
slide 17 Calculatoare Numerice
1833: Babbage publică un articol în care-i descrie funcționarea – Dezvoltată în timpul unei pauze pe care a făcut-o în
dezvoltarea mașinii diferențiale
Inspirația: Războaiele de țesut Jacquard – Controlate prin cartele perforate
• Modelul găurilor perforate în cartele dictează modelul țesăturii program
• Același set de cartele poate fi folosit cu fire de culori diferite
numere
1871: Babbage moare – Mașina analitică rămâne neconstruită
Nu este clar dacă mașina analitică ar fi putut fi construită cu tehnologia din vremea lui Babbage
28-Feb-13
Mașina Analitică Primul model al unui calculator numeric
slide 18 Calculatoare Numerice
1. Unitatea de stocare, în care sunt păstrate toate variabilele folosite precum și rezultatele operațiilor precedente.
2. Râșnița, în care sunt aduși operanzii.
Programul Operația variabila1 variabila2 variabila3 O operație în râșniță necesită introducerea a două catele perforate și rezultă în producerea unei noi cartele perforate ce va fi dusă în unitatea de stocare.
28-Feb-13
Primul programator Ada Byron aka “Lady Lovelace” 1815-52
slide 19 Calculatoare Numerice
Mentorul lui Lady Lovelace a fost chiar Babbage!
28-Feb-13
Influența lui Babbage
slide 20 Calculatoare Numerice
• Ideile lui Babbage au fost influențiale, în mare parte datorită – Luigi Menabrea, care a publicat lucrările lui Babbage în Italia – Lady Lovelace, care a tradus notițele lui Menabrea în engleză, cu multe
adăugiri “... Analytic Engine weaves algebraic patterns....”
• La începutul sec. XX – interesul s-a mutat spre calculatoarele analogice, dar – Harvard Mark I construit în 1944 este foarte apropiat ca și concept de
Mașina Analitică.
28-Feb-13
Harvard Mark I
slide 21 Computer Engineering
• Construit în 1944 în Labortoarele IBM Endicott – Howard Aiken – Profesor de fizică la Harvard – În mare parte mecanic, dar include și relee și angrenaje acționate
electro-magnetic – Cântarea 5 tone și avea 750,000 de componente – Ceas pentru sincronizare cu o perioadă de 0.015 secunde (66Hz)
Performanță: 0.3 secunde pentru adunare 6 secunde pentru o înmulțire 1 minut pentru calculul sin(x) Aritmetică zecimală Fără salturi condiționale!
Se defecta o dată pe saptamână!
28-Feb-13
Linear Equation Solver John Atanasoff, Iowa State University
slide 22 Calculatoare Numerice
1930: – Atanasoff construiește Linear Equation Solver. – Avea 300 de tuburi! – Calculator digital binar dedicat. – RAM dinamic(valori binare stocate în
condensatoare la care se făcea refresh) Aplicație:
– Rezolvarea ecuațiilor liniare integrale și diferențiale.
Competiția: – Analizorul Diferențial al lui Vannevar Bush --- calculator analogic
Tehnologie: – Tuburi și relee electromagnetice
Atanasoff a decis că modul corect de-a face calcule este prin folosirea de numere binare stocate electronic ca tensiuni.
28-Feb-13
Electronic Numerical Integrator
and Computer (ENIAC)
slide 23 Calculatoare Numerice
• Inspirați de Atanasoff și Berry, Eckert și Mauchly construiesc ENIAC (1943-45) la University of Pennsylvania
• Primul calculator electronic digital, complet operațional și general-purpose!
– 30 tone, 72 metri pătrați, 200KW
• Performanță
– Citea 120 cartele pe minut
– Adunare în 200ms, Împărțire in 6ms
– De 1000x mai rapid decât Mark I
• Nu și foarte fiabil!
Applicație: Calcule balistice unghi = f (locație, vânt spate, vânt lateral, densitate aer, temperatură, greutate obuz, putere propelant, ... )
Proiectat în timpul WW2
28-Feb-13
Electronic Discrete Variable
Automatic Computer (EDVAC)
slide 24 Calculatoare Numerice
• Unitatea de programare pt ENIAC era externă
– Diferite secvențe de operații erau executate independent de rezultatele operațiilor respective
– Pentru a modifica ordinea execuției era nevoie de intervenția unui operator uman
• Eckert, Mauchly, John von Neumann și alții au proiectat EDVAC (1944) pentru a rezolva această problemă
– Soluția era calculatorul cu program stocat (stored program computer)
“programul poate fi manipulat ca și datele”
• Primul draft despre EDVAC publicat în 1945, dar avea doar pe von Neumann ca autor!
– În 1973 tribunalul Minneapolis atribuie onoarea inventării primului calculator lui John Atanasoff
28-Feb-13
Stored Program Computer
slide 25 Calculatoare Numerice
control manual calculatoare Control automat
extern (bandă perforată) Harvard Mark I , 1944 Zuse Z1, WW2
intern Tablou de conexiuni ENIAC 1946 read-only memory ENIAC 1948
read-write memory EDVAC 1947 (concept )
– Aceeași memorie poate fi folosită și pentru instrucțiuni și pentru date
Program = O secvență de instrucțiuni
Cum poate fi controlată secvențierea instrucțiunilor?
EDSAC 1950 Maurice Wilkes
28-Feb-13
Probleme tehnologice
slide 26 Calculatoare Numerice
ENIAC vs. EDVAC 18,000 tuburi 4,000 tuburi 20 numere de 10 cifre 2000 de cuvinte stocate linii de întârziere cu mercur ENIAC avea mai multe unități asincrone paralele dar numai una era activă la un moment dat
BINAC : Două procesoare care se verificau unul pe celălalt pentru a mări fiabilitatea.
nu a funcționat foarte bine pentru ca procesoarele cădeau rareori de acord
28-Feb-13
Problema majoră: Fiabilitatea!
slide 27 Calculatoare Numerice
Mean time between failures (MTBF) Whirlwind de la MIT, cu un MTBF de 20 min. era probabil cea mai fiabilă mașină de calcul a vremii!
Motivele lipsei de fiabilitate 1. Tuburi cu vid 2. Mediul de stocare
Linii acustice de întârziere Linii de întârziere cu mercur Tuburi Williams Selecții
Fiabilitatea mărită odată cu inventarea memoriei cu miez de ferită de J. Forrester 1954 la MIT pentru proiectul Whirlwind
28-Feb-13
Activitate comercială: 1948-52
slide 28 Calculatoare Numerice
IBM SSEC (versiunea avansată a Harvard Mark I)
Selective Sequence Electronic Calculator
– Memorie de 150 cuvinte. – Instrucțiuni, constrângeri, și tabele de date citite de pe bandă
de hârtie perforată. – 66 citittoare de bandă! – Benzile puteau fi lipite la capate pentru a forma o buclă! – Datele puteau fi scrise într-o etapă a calculelor apoi citite
într-o altă fază a calculelor.
28-Feb-13
Și apoi a venit IBM 701
slide 29 Calculatoare Numerice
IBM 701 -- 30 mașini vândute intre 1953-54 foloseau tuburi catodice drept memorie, 72 tuburi, 32x32 biti fiecare IBM 650 -- versiune mai ieftină bazată pe memorie pe tambur, mai mult de 120 de unități vândute în 1954 și comenzi pentru încă 750!
De ce a intrat IBM în industria tehnicii de calcul?
IBM făcea prea mulți bani! Chiar și fără calculatoare, veniturile IBM se dublau o dată la 4-5 ani în anii 40 și 50.
28-Feb-13
Calculatoarele anilor 50
slide 30 Calculatoare Numerice
• Hardware-ul foarte costisitor
• Memorii foarte mici (mii de cuvinte) Fără un program rezident de sistem în memorie!
• Accesul la memorie de 10-50x mai lent decât un ciclu de procesor Timpul de execuție al unei instrucțiuni era dominat de timpul de acces la
memorie.
• Capabilitatea de-a proiecta circuite complexe de control pentru execuția unei instrucțiuni era principala problemă și nu viteza de execuție sau decodificare a unei instrucțiuni
• Modul în care un programator vedea mașina de calcul nu era deloc diferit față de un proiectant hardware.
28-Feb-13
IBM 650 (1953-4)
slide 31 Calculatoare Numerice
[Din 650 Manual, © IBM]
Tambur magnetic (1,000 sau 2,000
cuvinte de 10 cifre zecimale)
Registru acumulator de 20
de cifre
Instrucțiunea curentă (inclusiv
contorul de program)
UAL serială
28-Feb-13
IBM 650 – perspectiva
programatorului
slide 32 Calculatoare Numerice
O mașină cu tambur magnetic și 44 de instrucțiuni Instrucțiune: 60 1234 1009
• “Încarcă conținutul locației 1234 în registrul distribuție; încarcă-l de asemenea în acumulatorul superior; setează acumulatorul inferior la zero; apoi merrgi la locația 1009 pentru următoarea instrucțiune”
Programatorii pricepuți optimizau amplasamentul instrucțiunilor pe tambur pentru a reduce latența!
28-Feb-13
Primele seturi de instrucțiuni
slide 33 Calculatoare Numerice
Single Accumulator - o moștenire de la mașinile de calcul. LOAD x AC <- M[x] STORE x M[x] <- (AC) ADD x AC <- (AC) + M[x] SUB x MUL x exista un registru pentru rezultat DIV x SHIFT LEFT AC <- 2 (AC) SHIFT RIGHT JUMP x PC <- x JGE x if (AC) >= 0 then PC <- x LOAD ADR x AC <- adresa la care pointează (M[x]) STORE ADR x
De obicei, mai puțin de 24 de instrucțiuni!
28-Feb-13
Programare:
Single Accumulator Machine
slide 34 Calculatoare Numerice
LOOP LOAD N JGE DONE ADD ONE STORE N
F1 LOAD A F2 ADD B F3 STORE C
JUMP LOOP DONE HLT
Ci Ai + Bi, 1 i n
Cum pot modifica adresele A, B și C ?
A
B
C
N
ONE
cod
-n
1
28-Feb-13
Cod care se auto-modifică
slide 35 Calculatoare Numerice
LOOP LOAD N JGE DONE ADD ONE STORE N
F1 LOAD A F2 ADD B F3 STORE C
JUMP LOOP DONE HLT
Modifică programul pentru următoarea iterație
Fiecare iterație total book- keeping instruction fetches operand fetches stores
Ci Ai + Bi, 1 i n
LOAD ADR F1 ADD ONE STORE ADR F1 LOAD ADR F2 ADD ONE STORE ADR F2 LOAD ADR F3 ADD ONE STORE ADR F3 JUMP LOOP
DONE HLT
17
10 5
14 8 4
28-Feb-13
Registre de index Tom Kilburn, Manchester University, mid 50’s
slide 36 Calculatoare Numerice
Modifică instrucțiunile existente LOAD x, IX AC M[x + (IX)] ADD x, IX AC (AC) + M[x + (IX)] ...
Addaugă instrucțiuni noi pentru a modifica registrele de index
JZi x, IX if (IX)=0 then PC x else IX (IX) + 1 LOADi x, IX IX M[x] (truncated to fit IX) ...
De ce să nu folosim unul sau mai multe registre special pentru calculul adreselor?
Registrele de index au o funcționalitate similară cu acumulatoarele
28-Feb-13
Folosirea registrelor index
slide 37 Calculatoare Numerice
LOADi -n, IX LOOP JZi DONE, IX
LOAD LASTA, IX ADD LASTB, IX STORE LASTC, IX JUMP LOOP
DONE HALT
• Programul nu se mai auto-modifică • Eficiență îmbunătățită dramatic (ops / iter) cu index regs fără index regs
instruction fetch 17 (14) operand fetch 10 (8) store 5 (4)
• Costuri: Instrucțiunile sunt cu 1-2 biți mai lungi
Registrele index necesită circuite similare cu UAL Control complex
A
LASTA
Ci Ai + Bi, 1 i n
5(2) 2 1
28-Feb-13
Operații cu registre index
slide 38 Calculatoare Numerice
Incrementează registrul index cu k AC (IX) instrucține nouă AC (AC) + k IX (AC) instrucțiune nouă
De asemenea, conținutul AC trebuie salvat și refăcut.
Mai bine incrementăm IX direct INCi k, IX IX (IX) + k
Mai multe instrucțiuni care manipulează reg. index STOREi x, IX M[x] (IX)
...
IX începe să arate ca un reg. acumulator mai multe registre index
Mai multe acumuatoare General Purpose Registers
28-Feb-13
Evoluția modurilor de
adresare
slide 39 Calculatoare Numerice
1. Single accumulator, absolute address LOAD x
2. Single accumulator, index registers LOAD x, IX
3. Indirection LOAD (x)
4. Multiple accumulators, index registers, indirection LOAD R, IX, x
sau LOAD R, IX, (x) ce înseamnă?
R M[M[x] + (IX)]
or R M[M[x + (IX)]] 5. Indirect through registers
LOAD RI, (RJ)
6. The works LOAD RI, RJ, (RK) RJ = index, RK = base addr
28-Feb-13
Varietatea formatelor de
instrucțiune
slide 40 Calculatoare Numerice
• One address format: Mașină cu acumulator – Registrul acumulator este întotdeauna sursa precum și destinația pentru
unul din operanzi
• Two address format: destinația este identică cu unul din operanzi
(Reg Reg) to Reg RI (RI) + (RJ) (Reg Mem) to Reg RI (RI) + M[x] – x poate fi operand imediat sau specificat printr-un registru – Calculul efectiv al lui x poate implica indexare, adresare indirectă etc.
• Three address format: O destinație și până la două surse pentru operanzi pentru fiecare instrucțiune
(Reg x Reg) to Reg RI (RJ) + (RK) (Reg x Mem) to Reg RI (RJ) + M[x]
28-Feb-13
Formatul pentru Zero Address
slide 41 Calculatoare Numerice
• Operanzii sunt puși pe stivă
add M[sp-1] M[sp] + M[sp-1] load M[sp] M[M[sp]] – Stiva poate fi mapată peste registre sau în memorie (de obicei,
pointer-ul cître vârful stivei se află într-un registru general)
C
B
A SP
Registru
28-Feb-13
Arhitectura Burrough B5000: Mașină ALGOL, Robert Barton, 1960
slide 42 Calculatoare Numerice
• Implementarea hadware poate fi complet transparentă pentru programator, dacă acesta are la dispoziție o interfață de limbaj de nivel înalt.
• Organizată ca o mașină cu stivă, pentru că astfel de mașini sunt utile pentru:
1. Evaluarea expresiilor; 2. Apeluri la subrutine, recursivitate, întreruperi imbricate; 3. Accesul la variabile pentru limbajele structurate pe blocuri.
• B6700, un model mai târziu, avea mai multe funcționalități – Date etichetate – Memorie virtuală – Suport pentru procesoare și memorii multiple
28-Feb-13
Evaluarea Expresiilor
slide 43 Calculatoare Numerice
a
b
c
(a + b * c) / (a + d * c - e)
/
+
* + a e
-
a c
d c
* b
Reverse Polish a b c * + a d c * + e - /
push a push b push c multiply
*
Evaluation Stack
b * c
28-Feb-13
Evaluarea Expresiilor
slide 44 Calculatoare Numerice
a
(a + b * c) / (a + d * c - e)
/
+
* + a e
-
a c
d c
* b
Reverse Polish a b c * + a d c * + e - /
add
+
Evaluation Stack
b * c
a + b * c
28-Feb-13
Organizarea hardware a stivei
slide 45 Calculatoare Numerice
• Stiva face parte din starea procesorului stiva trebuie sa fie limitată și de
dimensiune mică numărul de registre, nu mărimea memoriei principale
• Conceptual, stiva este nelimitată o parte a stivei este inclusă în starea
procesorului; restul este ținută în memoria principală
28-Feb-13
Operațiile pe stivă și referințele
implicite la memorie
slide 46 Calculatoare Numerice
• Presupunem că primele 2 elemente din stivă sunt ținute în registre și restul în memorie.
fiecare push 1 referintă la memorie pop 1 referință la memorie
Nu e suficient de bine!
• Performanțe mai bune pot fi atinse dacă primele N elemente sunt stocate în registre și referințele la memorie sunt făcute doar atunci când stiva face overflow sau underflow.
Problemă – când să fac Load/Unload la registre?
28-Feb-13
Mărimea stivei și referințele la
memorie
slide 47 Calculatoare Numerice
program stack (size = 2) memory refs push a R0 a push b R0 R1 b push c R0 R1 R2 c, ss(a) * R0 R1 sf(a) + R0 push a R0 R1 a push d R0 R1 R2 d, ss(a+b*c) push c R0 R1 R2 R3 c, ss(a) * R0 R1 R2 sf(a) + R0 R1 sf(a+b*c) push e R0 R1 R2 e,ss(a+b*c) - R0 R1 sf(a+b*c) / R0
a b c * + a d c * + e - /
4 stores, 4 fetches (implicit)
28-Feb-13
Mărimea stivei și evaluarea
expresiilor
slide 48 Calculatoare Numerice
program stack (size = 4) push a R0 push b R0 R1 push c R0 R1 R2 * R0 R1 + R0 push a R0 R1 push d R0 R1 R2 push c R0 R1 R2 R3 * R0 R1 R2 + R0 R1 push e R0 R1 R2 - R0 R1 / R0
a b c * + a d c * + e - /
a și c sunt “încărcate” de 2x
Nu e cea mai bună utilizare a registrelor!
28-Feb-13
Folosirea registrelor într-o
mașină GPR
slide 49 Calculatoare Numerice
Mai mult control asupra registrelor. Pot fi numite explicit în cod.
Load Ri m Load Ri (Rj) Load Ri (Rj) (Rk)
- Elimină nevoia pentru
Load-uri și Store-uri inutile -Mai puține registre
dar crește dimensiunea instrucțiunilor!
Load R0 a Load R1 c Load R2 b Mul R2 R1
(a + b * c) / (a + d * c - e)
Reuse R2
Add R2 R0 Load R3 d Mul R3 R1 Add R3 R0
Reuse R3
Load R0 e Sub R3 R0 Div R2 R3
Reuse R0
28-Feb-13
Mașini cu stivă: caracteristici
esențiale
slide 50 Calculatoare Numerice
• Pe lângă push și pop, setul de instrucțiuni trebuie să aibă și capabilități pentru:
– Adresarea oricui element din
memoria de date – Salturi la orice instrucțiune
din memoria de program – Mută orice element din stivă
în vârful stivei
machinery to carry out +, -, etc.
stack SP
DP
PC
data
.
.
.
a b c
push a push b push c * + push e /
code
28-Feb-13
Mașinile cu stivă au dispărut
în anii 80
slide 51 Calculatoare Numerice
1. Programele lor nu sunt mai mici ca dimensiune dacă este permisă adresarea scurtă.
2. Compilatoarele moderne pot să adreseze mai eficient registrele generale decât să lucreze cu stiva.
Registrele și memoriile cache sunt mai bune decât stiva
Arhitecturile timpurii nu țineau cont de rolul pe care îl avea compilatorul! B5000, B6700, HP 3000, ICL 2900, Symbolics 3600
28-Feb-13
Dezvoltarea software
slide 52 Calculatoare Numerice
Până în 1955 – librării de rutine numerice - Operații în virgulă mobilă - Funcții transcendentale - Manipulare de matrici, rezolvare de ecuații . . .
1955-60 Limbaje de nivel înalt - Fortran 1956
Sisteme de operare - - Asambloare, Loadere, Linkere, Compilatoare
- Programe pentru monitorizarea utilizării și încărcării sistemului
Mașinile aveau nevoie de operatori experimentați Majoritatea utilizatorilor nici nu puteau înțelege programele darămite să scrie altele noi
Mașinile de calcul erau vândute cu suita software aferentă
28-Feb-13
Probleme de compatibilitate
slide 53 Calculatoare Numerice
În anii 60’, IBM avea 4 familii incompatibile de calculatore!
701 7094 650 7074 702 7080 1401 7010
Fiecare sistem avea propriul • Set de instrucțiuni • Sistem I/O și elementr de stocare: bandă magnetică, memorii pe tambur și unități de disc • asambloare, compilatoare, librării,... • nișă de piață afaceri, cercetare, timp real, ...
IBM 360
28-Feb-13
IBM 360 : Idei de design Amdahl, Blaauw and Brooks, 1964
slide 54 Calculatoare Numerice
• Design-ul trebuie să fie făcut a.î. să permită extinderea și dezvoltarea de mașini succesoare
• O metodă generală de-a conecta dispozitive de I/O
• Performanța totală – rezultate pe lună în locul biți pe microsecundă
• Mașina trebuie să fie capabilă să se auto-monitorizeze, fără intervenția operatorului uman.
• Fault checking construit în hardware și metode de-a localiza un defect, pentru a reduce timpii de nefuncționare
• Sisteme simplu de asamblat cu dispozitive I/O, memorii, procesoare redundante, pentru a implmenta toleranta la defecte
• Operații în virgulă mobilă cu precizie mare
28-Feb-13
IBM 360: O mașină General-
Purpose Register (GPR)
slide 55 Calculatoare Numerice
• Starea procesorului – 16 registre General-Purpose de 32 de biti
• Pot fi folosite pentru adresare indexată și bazată
• Registrul 0 avea proprietăți speciale
– 4 registre în virgulă mobilă de 64 de biți
– Program Status Word (PSW)
• PC, Flag-uri condiționale, Flag-uri de control
• O mașină de 32 de biți cu adresare pe 24 de biți – Nici o instrucțiune nu putea să conțină o adresă pe 24 de biți!
• Format diferit pentru date – 8-bit bytes, 16-bit half-words, 32-bit words, 64-bit double-words
Din cauza IBM 360 un byte are 8 biți în ziua de azi!
28-Feb-13
IBM 360: Implementări inițiale
slide 56 Calculatoare Numerice
Model 30 . . . Model 70
Storage 8K - 64 KB 256K - 512 KB
Datapath 8-bit 64-bit
Circuit Delay 30 nsec/level 5 nsec/level
Local Store Main Store Transistor Registers
Control Store Read only 1~sec Conventional circuits
Arhitectura setului de instrucțiuni (ISA) IBM 360 ascundea complet diferențele tehnologice dintre diferitele modele.
Primul ISA proiectat să aibă o interfață portabilă hardware-software!
Încă este prezent în ziua de azi, cu mici modificări!
28-Feb-13
IBM 360: 47 de ani mai târziu… The zSeries z11 Microprocessor
slide 57 Calculatoare Numerice
• 5.2 GHz in IBM 45nm PD-SOI CMOS technology
• 1.4 billion transistors in 512 mm2
• 64-bit virtual addressing – original S/360 was 24-bit, and S/370 was 31-bit extension
• Quad-core design
• Three-issue out-of-order superscalar pipeline
• Out-of-order memory accesses
• Redundant datapaths – every instruction performed in two parallel datapaths and results
compared
• 64KB L1 I-cache, 128KB L1 D-cache on-chip
• 1.5MB private L2 unified cache per core, on-chip
• On-Chip 24MB eDRAM L3 cache
• Scales to 96-core multiprocessor with 768MB of shared L4 eDRAM
[ IBM, HotChips, 2010]
28-Feb-13
În concluzie …
slide 58 Calculatoare Numerice
• Arhitectura Calculatoarelor >> ISA și RTL
• CN se bazează pe interacțiunea dintre hardware și software și design-ul nivelelor de abstractizare
• Arhitectura de calcul este modelată de tehnologie și aplicații – Istoria dispozitivelor de calcul ne poate da indicii despre viitorul
tehnologiei
• Computer Science este la un punct de trecere între calculul secvențial și cel paralel – Menținerea creșterii de performanță necesită numeroase
inovații, inclusiv în domeniul arhitecturii de calcul.
28-Feb-13
Acknowledgements
slide 59 Calculatoare Numerice
• Aceste slide-uri contin materiale dezvoltate de: – Arvind (MIT)
– Krste Asanovic (MIT/UCB)
– Joel Emer (Intel/MIT)
– James Hoe (CMU)
– John Kubiatowicz (UCB)
– David Patterson (UCB)
• MIT material derived from course 6.823
• UCB material derived from course CS252