Title: KOMPIUTERIU ELEMENTAI ir ARCHITEKTURA
1KOMPIUTERIU ELEMENTAI ir ARCHITEKTURA
ŠIUOLAIKINIU KOMPIUTERIU ARCHITEKTURA
- Doc. Stasys Maciulevicius
- Kompiuteriu katedra
- stasys.maciulevicius_at_ktu.lt
2Šioje paskaitoje
- Von Neuman'o tipo kompiuteris
- Kompiuteriu strukturu vystymasis
- Šiuolaikiniu kompiuteriu kurimo principai
- Ka (ir kada) mes nagrinsime?
- Procesorius (ižanga)
- Procesoriu duomenu žodžio ilgio didinimas
- Procesorius ir koprocesorius
- Mikroprograminiai procesoriai
- Šiuolaikinis procesorius
3Ketvirtoji kurso dalis
- Skaidres ifko.ktu.lt/stama/ Komp_El_Arch/SiuolK
ompArch.html - Atsiskaitymui egzaminas iš šios kurso dalies
25
4Kurso medžiaga
- J.L.Hennessy, D.A.Patterson. Computer
Architecture A Quantitative Approach. - Morgan
Kaufman, San Mateo, CA, 1990, 1996, 2003 - W.Stallings. Computer Organization and
Architecture Designing for Performance. -
Prentice Hall Int., 2000
5Kurso medžiaga
- Guk M. Apparatnyje sredstva IBM PC. S.-P., Piter,
1999 - Paskaitu skaidres www.ifko.ktu.lt/stama toliau
žr. modulio pavadinima - Kiti šaltiniai Internete
6Paskaitu grafikas
- 04.27 Ižanga. Procesoriai
- 04.28 Šiuolaikiniai procesoriai
- 05.05 Kešas. DRAM
- 05.11 Pagrindine atmintis. VA palaikymas
- 05.12 Magistrales
- 05.19 Išorine atmintis. Ivestis ir išvestis
- 05.25 Kompiuteriu platformos
- 05.26 Apibendrinimas
7Kompiuteriu evoliucija
- apdorojimo spartos augimas
- komponentu dydžio mažejimas
- atminties talpos augimas
- ivesties ir išvesties srautu ir spartos didejimas
- platformu ivairove
- Svarbu skirtingu komponentu darbo spartos
subalansavimas
8von Neuman'o kompiuteris
- Pagal von Neimano suformuluotu principu
paaiškinima galima nubraižyti tokia kompiuterio
struktura
9von Neuman'o kompiuteris
- Šiame paveiksle panaudotos savokos, artimesnes
šiu laiku dvasiai valdymo itaisas pavadintas
komandu procesoriumi, aritmetinis itaisas -
duomenu procesoriumi, o ivedimo ir išvedimo
itaisas ivesties ir išvesties procesoriumi. - Dabar komandu ir duomenu procesorius iprasta
apjungti i viena itaisa centrini procesoriu
(CPU). - Šios idejos buvo realizuotos ju autoriams
vadovaujant sukurtame kompiuteryje ENIAC
(praejusio šimtmecio 4 dešimtmecio pradžia).
I turini
10Pirmosios kartos kompiuteriu struktura
Procesorius kartu ir centrinis valdymo itaisas
jis ne tik interpretuoja programa ir vykdo
komandas, bet ir valdo pradiniu duomenu ivedima
bei rezultatu išvedima
11Antrosios kartos kompiuteriu struktura
Cia visi sistemos elementai sujungti tarpusavyje
bendra magistrale. Lengva prijungti papildomus
modulius, taciau bendra magistrale siaura
sistemos vieta, ribojanti sistemos našuma.
12Treciosios kartos kompiuteriu struktura
Cia informacijos apdorojimo procesas atskirtas
nuo jos ivedimo ir išvedimo. Duomenu ivedima bei
rezultatu išvedima (taip pat ir mainus su išorine
atmintimi) valdo specialus itaisai, vadinami
kanalais arba ivesties ir išvesties
procesoriais. Procesorius interpretuoja programa
ir vykdo komandas bei valdo kanalu darba.
13Pirmuju personaliniu kompiuteriu struktura
14Velesne personaliniu kompiuteriu struktura
15Naujuju personaliniu kompiuteriu struktura
16Naujausiuju personaliniu kompiuteriu struktura
17Šiuolaikiniu serveriu struktura
I turini
18Šiuolaikiniu kompiuteriu kurimo principai
- Daugumos šiuolaikiniu procesoriu kurejai
vadovaujasi tokiais principais - Komandu vykdymas valdomas aparatura. Anksciau
sudetingoms ir ilgai trunkancioms komandoms
realizuoti buvo naudojamas mikroprograminis
valdymo principas, kai kiekviena komanda buvo
realizuojama mikrokomandu seka (mikrokomanda
tai komandos analogas žemesniame lygmenyje kaip
kad programa sudaro komandu seka, taip komanda -
mikrokomandu seka). Mikroprogramos naudojamos tik
ypac sudetingoms ir retai naudojamoms komandoms
realizuoti. - Procesorius vienu metu vykdo kelias komandas.
Lygiagretus keliu komandu vykdymas žymiai
padidina kompiuterio darbo našuma.
19Šiuolaikiniu kompiuteriu kurimo principai
- Komandos turi buti lengvai dekoduojamos.
Dekoduojant komandas nustatoma, kokie resursai
jos vykdymui reikalingi, kokios operacijos turi
buti vykdomos, kur yra komanda apdorojami
duomenys. Tam mažinamas komandu formatu skaicius,
naudojamos vienodo ilgio komandos, mažinamas jas
sudaranciu lauku skaicius. - Procesoriuje turi buti daug registru. Didelis
registru skaicius (bent 32) padeda sumažinti
kreipiniu i atminti skaiciu, laikant juose
tarpinius skaiciavimu rezultatus. Kadangi
kreipiniai i atminti reikalauja kur kas daugiau
laiko nei kreipiniai i registrus, registru
panaudojimas žymiai padidina kompiuterio darbo
našuma.
20Šiuolaikiniu kompiuteriu kurimas
21Blue Gene/L
I turini
222010 lapkritis TOP 500
Vieta Kur yra Kompiuteris Brand. Rmax Rpeak
1 Nat. Supercomputing Centre in Tianjin China Tianhe-1A - NUDT TH MPP, X5670 2.93Ghz 6C, NVIDIA GPU, FT-1000 8C / 2010 186368 2566.00 4701.00
2 Oak Ridge National Lab. United States Jaguar - Cray XT5-HE 2.6 GHz / 2009 Cray Inc. 224162 1759.00 2331.00
3 Nat. Supercomputing Centre in Shenzhen China Nebulae - Dawning TC3600 Blade, Intel X5650, NVidia Tesla C2050 GPU / 2010 Dawning 120640 1271.00 2984.30
4 GSIC Center, Tokyo Institute of Technology, Japan TSUBAME 2.0 - HP ProLiant SL390s G7 Xeon 6C X5670, Nvidia GPU, Linux/Windows / 2010 73278 1192.00 2287.63
5 DOE/SC/LBNL/ NERSC, USA Hopper - Cray XE6 12-core 2.1 GHz / 2010 Cray Inc. 153408 1054.00 1288.63
232010 lapkritis iš TOP 500
Vieta Kur yra Kompiuteris Proc. Rmax Rpeak
1 Nat. Supercomput. Centre in Tianjin China Tianhe-1A - NUDT TH MPP, X5670 2.93Ghz 6C, NVIDIA GPU, FT-1000 8C / 2010 186368 2566.00 4701.00
10 DOE/NNSA/LANL/ SLN, USA Cielo - Cray XE6 8-core 2.4 GHz / 2010 Cray Inc. 107152 816.60 1028.66
50 NOAA/ESRL/GSD USA Jet-Raytheon/Aspen Cluster, Xeon 5560/X5650x 2.8/2.66GHz, QDR Infiniband / 2010 Raytheon/Aspen Systems 13728 102.80 146.43
100 DOE/NNSA/LANL, USA ASC Purple - eServer pSeries p5 575 1.9 GHz, 2006 IBM 12208 75.76 63.80
500 Computacenter (UK) LTD Cluster Platform 3000 BL460c G1, Xeon L5420 2.5 GHz, GigEthernet / 2009 HP 5856 31.11 58.56
24Idomu gigaflopo kaina
- 1961 apie US1,100,000,000,000 naudojant 1
milijarda IBM 1620 kompiuteriu - 1997 apie US30,000 naudojant du16-Pentium-Pro
procesoriu Beowulf klasterius - 2000 balandis 1,000, Bunyip, Australian
National University - 2000 geguže 640, KLAT2, University of Kentucky
- 2003 rugpjutis 82, KASY0, University of
Kentucky - 2006 vasaris apie 1 naudojant ATI PC grafikos
plokštes (X1900 architektura) - 2007 kovas apie 0.42 Ambric AM2045
- 2008 geguže apie 0.13 IBM Roadrunner.
25Idomu peržengtos ribos
- 1 gigaflopo riba peržengta 1987 metais -
CRAY-2/4-256 sistema parode 1,4 Gflops sparta
(sistemoje 4 Cray 243 MHz procesoriai,
kiekvieno sparta - 0.488 GFlops) - 1 teraflopo riba peržengta 1998 metais - ASCI
Blue Mountain sistema parode 1,6 Tflops sparta
(sistemoje 6144 MIPS R10000 250 MHz
procesoriai, kiekvieno sparta - 0.5 GFlops) - 1 petaflopo riba peržengta 2008 metais - IBM
Roadrunner
26Toliau exaflopas
- Oak Ridge National Lab pasirinko Cray ir IBM
superkompiuteriui, kurio našumas siektu 20
Pflops, kurti (tai turetu buti pasiekta 2012
metais) - Apie 2015 metus ketinama pasiekti 100-250 Pflops,
o Eflops riba turetu buti pasiekta 2018 metais
27Ka mes nagrinesime toliau?
1
Proce- sorius
6
Pagr. atmintis
Grafika
Tiltas 1
Standusis diskas
Tiltas 2
7
Išvesties itaisas
Klaviatura
8
Pele
I turini
28Procesorius
Dabar komandu ir duomenu procesorius iprasta
apjungti i viena itaisa centrini procesoriu
(CPU). Todel komandu ir duomenu procesorius
toliau vadinsime valdymo ir operaciniais
itaisais, nes šie pavadinimai geriau atspindi
ju paskirti ir funkcijas
29Procesorius
30Procesorius
- valdymo itaisas išrenka iš atminties komanda, ja
analizuoja ir valdo operacinio itaiso darba (jame
vykdomas operacijas, kreipinius i atminti
duomenims išrinkti ar rezultatui irašyti) - operacinis itaisas vykdo operacija, kuria nurodo
komanda - šie du itaisai dirba kartu valdymo itaisas pagal
operacijos koda formuoja signalus, valdancius
operacinio itaiso darba pastarasis perduoda i
valdymo itaisa signalus, informuojancius apie
operacijos eiga, nuo kuriu gali priklausyti
paskesniu valdymo itaiso signalu formavimas
(pavyzdžiui, operando ženklas, jo kurios nors
skilties reikšme ir t.t.).
31Procesoriaus operacinis itaisas
32Procesoriaus operacinis itaisas
- Jei pažvelgtume i operacinio itaiso vidu,
galetume jame išskirti dvi schemu grupes - vidine atminti, kuri reikalinga apdorojamiems
duomenims (operandams) laikyti ja sudaro
registrai, atskiri trigeriai, spartinancioji
atmintis kešas, kai kuriuose itaisuose
stekas - operacijas vykdancios schemos, kurios atlieka
visus informacijos apdorojimui reikalingus
veiksmus sudeti, logines operacijas, postumius
ir t.t.
I turini
33Procesoriu vystymasis
- Panagrinesime bendruosius procesoriu vystymosi
principus - Vienas procesoriu vystymosi aspektas duomenu
žodžio ilgio didinimas - Pastaba toliau kalbesime apie mikroprocesorius,
kadangi dabartiniu metu procesoriai realizuojami
tik kaip mikroprocesoriai
34Duomenu žodžio ilgio didinimas
- Pirmojo mikroprocesoriaus duomenu žodžio ilgis
4 bitai (Intel 4004).
- Kokia itaka turejo toks žodžio ilgis?
- operacijos su skaiciais atliekamos nuosekliai
- komandu, registru ilgis 4?m bitu
- paprogramiu biblioteka operacijoms su
sveikaisiais (taip pat slankaus kablelio ar
dešimtainiais) skaiciais
35Duomenu žodžio ilgio didinimas
- Antrasis žingsnis 8 bitai
- Kokia itaka turejo toks žodžio ilgis?
- sveikieji skaiciai arba 8 bitu arba 16 (dvieju
baitu) - registru ilgis 16 bitu
- komandu ilgis m baitu
- adresavimo galimybes 64 KB (adreso ilgis 16
bitu) - paprogramiu biblioteka operacijoms su dvieju
baitu sveikaisiais (taip pat slankaus kablelio ar
dešimtainiais) skaiciais
36Duomenu žodžio ilgio didinimas
- Treciasis žingsnis 16 bitu
- Kokia itaka turejo toks žodžio ilgis?
- sveikieji skaiciai - iki 16 bitu
- registru ilgis 16 bitu
- komandu ilgis m baitu
- adresavimo galimybes 64 KB (adreso ilgis 16
bitu) - atsiranda koprocesoriai operacijoms su slankaus
kablelio ir dešimtainiais skaiciais
37Duomenu žodžio ilgio didinimas
- Ketvirtasis žingsnis 32 bitu
- Kokia itaka turejo toks žodžio ilgis?
- sveikieji skaiciai iki 32 bitu
- registru ilgis 32 bitu
- komandu ilgis m baitu
- adresavimo galimybes 4 GB (adreso ilgis 32
bitu) - atsiranda virtualiosios atminties palaikymas
38Duomenu žodžio ilgio didinimas
- Penktasis žingsnis 64 bitai
- Kam to reikejo? Pagrindine priežastis
adresavimo ribotumas 32 bitu procesoriuose - 232 4 G. 4 GB nebepakako ne tik serveriams, bet
ir galingesnems darbo stotims - Slankaus kablelio ar dešimtainiams skaiciams
niekas nepasikeite
I turini
39Koprocesoriai
- Intel 8086, 80286 ir 80386 laikais plokštese buvo
dar vienas lizdas, skirtas aritmetiniam
koprocesoriui - Koprocesorius buvo skirtas operacijoms su
slankaus kablelio ir dešimtainiais skaiciais - Koprocesorius operacijas su slankaus kablelio
skaiciais, reikalingas automatizuoto projektavimo
(CAD) ir kituose uždaviniuose, atliko maždaug 50
kartu sparciau, nei CPU
40Procesorius ir koprocesorius
41Koprocesoriai
- Koprocesoriumi jis vadinamas todel, kad jis
savarankiškai dirbti negalejo komandas
išrinkdavo pagrindinis procesorius, o
koprocesorius, pastebejes magistraleje jam skirta
komanda, ja paimdavo ir vykdydavo - Jei koprocesoriaus plokšteje nebuvo, pagrindinis
procesorius, sutikes slankaus kablelio operacija,
ja traktavo kaip vidine pertaukti, iššaukiancia
operacijos emuliavima (programine realizacija
CPU)
42Procesorius ir koprocesorius
RQ/GT
43Procesorius ir koprocesorius
- Komandu išrinkima valdo 8086. Kai koprocesorius
pastebi, kad išrenkama slankaus kablelio komanda,
jis ja pasiima ir vykdo - Pirmojo duomenu žodžio išrinkima inicijuoja taip
pat 8086 (koprocesorius ji pasiima iš
magistrales), o sekanciu (jei reikia) - pats
koprocesorius - Magistrale pasidalija naudodami RQ/GT
(Request/Grant) linija
I turini
44Mikroprograminiai procesoriai
- Jie buvo populiarus prieš tris dešimtmecius
- Mikroprogramavima kaip procesoriaus projektavimo
pagrinda pasiule M.Wilkes dar 1951 m., taciau šis
metodas buvo pritaikytas kur kas veliau - Mikroprograma komandos vykdymo aprašas, kai
operuojama atskiru procesoriaus komponenciu
valdymo signalais (mikrooperacijomis) ir
loginemis salygomis, informuojanciomis apie
operacijos eiga - Kai kuriu komandu mikroprogramos buvo vykdomos
kelis šimtus ciklu
45Mikroprograminiai procesoriai
- Kuo ypatinga tokia procesoriu realizacija?
- paprastesnis projektavimo procesas
- lengva realizuoti bet kokio sudetingumo
operacijas - patogu atlikti derinimo ir modifikavimo darbus
- galima keisti komandu sistema, pritaikant
procesoriu specialiems taikymams - pertraukciu apdorojimas galimas tiek komandu,
tiek ir mikrokomandu lygyje - komanda realizuojama dideliu žingsniu skaiciumi
- buvo sukurti moduliniai ir sekcijiniai
mikroprocesoriai
I turini
46Šiuolaikinis procesorius
- Tai, apie ka tik kalbejome, galima sakyti,
klasika. Dabar panagrinekime šiuolaikiniu CPU
apibendrintas strukturas ir ju ypatumus - Pažiurekime i šia CPU (branduolio) struktura,
budinga daugeliui procesoriu
47Šiuolaikinis procesorius
48Spartinancioji atmintis (kešas)
Atminties spartai vis labiau atsiliekant nuo
procesoriu darbo spartos, i procesorius buvo
ikelta spartinancioji atmintis kešas
CPU
Kešas
Parametras Galimos reikšmes
Eilutes ilgis (bloko dydis) 32-128 baitai
Išrinkimo laikas pataikius 2-20 taktu
Išrinkimo laikas nepataikius 50-200 taktu
Pataikymo procentas 80-99
Kešo dydis 8 KB - n MB
Pagrindine
atmintis
49Kešo lygiai
- Sparciausias - L1 kešas jo velinimas 2-4
ciklai - Kiek mažesnes spartos L2 kešas jo velinimas
5 (letesniuose procesoriuose) - 20 ciklu
(sparciuose procesoriuose) - Leciausias L3 kešas jo velinimas 20-30 ciklu
vidiniuose procesoriuose išoriniuose dar
didesnis - Palyginimui pasakysime, kad pagrindines atminties
išrinkimo laikas 200-300 procesoriaus ciklu - Šiuolaikiniuose keliu branduoliu procesoriuose L3
(kartais ir L2) kešas buna bendras, kiti atskiri
50Procesorius žvilgsnis gilyn
Programos kodo aktyvioji dalis buna L1 komandu
keše. Kai kuriuose CPU cia laikomos komandos
pradiniame pavidale, kituose iš dalies ar
visiškai perkoduotos Jei šiame keše reikalingu
komandu nera, jos paimamos iš L2 kešo ir, jei
reikia, perkoduojamos
51Procesorius žvilgsnis gilyn
Šios komandos imamos blokais, naudojant
išankstini išrinkima Blokas nukreipiamas i du
itaisus komandu perkodavimo ir perejimu
prognozes Perkodavimo itaisas jas pavercia
mikrooperacijomis (MO), o perejimu prognozes
itaisas nustato, ar taro ju yra perejimo
komandos, ar bus pereinama ir kokiu adresu
52Procesorius žvilgsnis gilyn
Perkoduotos MO patenka i registru pakeitimo bei
resursu išskyrimo itaisus. Registru pakeitimo
itaise MO gali buti suteiktas rezervinis
registras jos vykdymo rezultatui saugoti. Veliau
vykdomos MO tai ivertins ir operanda ims iš tokio
registro Informacija apie tokius registru
pakeitimus laikoma specialioje lenteleje
53Procesorius žvilgsnis gilyn
Po perkodavimo ir registru pakeitimo MO grupe
irašoma i ROB (tvarkos pakeitimo buferio) eiles
gala. Šiame buferyje saugomos MO ir pagalbiniai
duomenys iki pat užbaigimo momento. Tuo paciu
metu šo MO grupe patenka ir i rezervavimo itaisus
(Reservation Station ), kuriuose sekama MO
vykdymo galimybe nepriklausomai nuo MO patekimo
eiles tvarkos
54Procesorius žvilgsnis gilyn
Kai planuotojas nukreipia MO vykdymui i
atitinkama FI, ši MO pašalinama iš planuotojo
eiles, o ivykdžius operacija daroma apie tai
atžyma ROB Kai prieš duotaja MO visos buvusios MO
jau ivykdytos ir apie tai pažymeta jas pašalinant
iš ROB, ši taip pat iš jo pašalinama
55Procesorius žvilgsnis gilyn
- Kiekviena planuotojo eile turi ryši su vienu ar
keliais specializuotais FI - Vieno takto metu ivairiuose procesoriuose
nukreipiama vykdymui nuo 5 iki 10 MO - Be ALU, procesoriuose buna ir ikrovimo/irašymo
(Load/Store) itaisai, kurie vado kreipinius i
kešus ir pagrindine atminti (strukturose jie
dažnai nerodomi)
56Procesorius žvilgsnis gilyn
- Kiekviena planuotojo eile turi ryši su vienu ar
keliais specializuotais FI - Vieno takto metu ivairiuose procesoriuose
nukreipiama vykdymui nuo 5 iki 10 MO - Be ALU, procesoriuose buna ir ikrovimo/irašymo
(Load/Store) itaisai, kurie vado kreipinius i
kešus ir pagrindine atminti (strukturose jie
dažnai nerodomi)
57FI skaiciaus didinimas
- Pirmieji mikroprocesoriai turejo viena funkcini
itaisa (FI), kuris realizavo operacijas su
sveikaisiais skaiciais, loginemis reikšmemis,
perejimo komandas - Operacijos su slankaus kablelio ar dešimtainiais
skaiciais buvo realizuojamos programiniu budu
(paprogramemis, ieinanciomis i specialia
biblioteka) - Operacijoms su slankaus kablelio ir dešimtainiais
skaiciais kuriami koprocesoriai
58FI skaiciaus didinimas
- Po kurio laiko, kai padidejes integracijos lygis
igalino smarkiai padidinti kristale sutalpinamu
tranzistoriu skaiciu, i procesoriaus vidu buvo
idetas antrasis funkcinis itaisas - koprocesorius
- Netrukus procesoriaus viduje atsirado treciasis
funkcinis itaisas, veliau FI skaicius toliau buvo
didinamas, o šie FI imti specializuoti - Kelis funkcinius itaisus turintys procesoriai
vadinami superskaliariniais, o kiek kitokia ju
atmaina labai ilgo komandos žodžio (VLIW)
procesoriais
59Superskaliariniai procesoriai
- Superskaliariniuose procesoriuose komandas i
funkcinius itaisus nukreipia specialios schemos,
vadinamos skirstymo itaisu
IU sveikuju skaiciu Itaisas FPU slankaus
kablelio skaiciu itaisas BPU perejimo itaisas
60VLIW procesoriai
- Labai ilgo komandos žodžio (VLIW) procesoriuose
už tai atsakingas ne pats procesorius, o
kompiliatorius, kuris iš anksto numato, kurios
komandos gali buti vykdomos lygiagreciai
(skirtinguose FI) ir jas apjungia i labai ilga
komandos žodi (jo ilgis buna 128 ar 256 bitai
tai atitinka 4 ar 8 iprastas komandas)
61VLIW procesoriai
Konkretus FI gauna komanda iš vienos ar keliu
poziciju Pozicija gali buti ir tušcia (NOOP)
I turini
62Kontroliniai klausimai
- Kas budinga kompiuteriu evoliucijai?
- Kas budinga pirmosios kartos kompiuteriams?
- Kas budinga antrosios kartos kompiuteriams?
- Koks esminis treciosios kartos kompiuteriu
bruožas? - Kaip keitesi personaliniu kompiuteriu struktura?
- Apibudinkite šiuolaikiniu kompiuteriu kurimo
principus - Apibudinkite operacinio ir valdymo itaisu saryši
procesoriuje - Apibudinkite duomenu žodžio ilgio didinimo
priežastis ir pasekmes
63Kontroliniai klausimai
- Kas yra koprocesorius ir kuo skiriasi nuo
procesoriaus? - Kuo naudingas mikroprogravimas procesoriuose?
- Kas yra spartinancioji atmintis ir kodel ji
naudojama? - Kodel CPU naudojamas komandu perkodavimas?
- Paaiškinkite registru ir komandu vykdymo tvarkos
pakeitimo esme - Paaiškinkite superskaliarinio procesoriaus esme
- Paaiškinkite VLIW procesoriaus esme
64Kita karta
- Procesoriu vystymasis našumo didinimo požiuriu
- Šiuolaikiniu procesoriu pavyzdžiai