cisc, risc pipelining -...
Embed Size (px)
TRANSCRIPT
esk vysok uen technick Fakulta elektrotechnick
Struktura a architektura pota
Ver 1.20
Alfanumerick kdy
adi procesoru
CISC, RISC
Pipelining
J. Zdnek 2014
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 2
Alfanumerick kdy
Kdovn zobrazitelnch a dicch (nezobrazitelnch) znak Kd cel ada 5bitovch a 16bitovch (+dal rozen, viz Unicode) Co je teba kdovat?
2 x 26 psmen latinsk abecedy (velk a mal psmena) 10 slic, znaky rka, teka, plus, minus, mezera,... ,dic znaky
Pouvan kdov sady: 5bitov kd CCITT 2 (mlo bit, pepnn dvou sad specilnmi znaky)
7bitov kd ASCII (ASCII-7, USASCII, CCITT 5, ISO-7, KOI-7)
American Standard Code for Information Interchange)
8bitov kd ASCII-8 (ISO-8, KOI-8) 00h 7Fh standardn ASCII (ASCII-7) 80h FFh rozen o znaky nrodn abecedy
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 3
Alfanumerick kdy
Pouvan sady pro znaky esk abecedy: 1250 Windows 1250 852 - IBM page 852 ISO - ISO 8859-2 KOI - KOI-8cs Kam - Kd Kamenickch
8bitov kd EBCDIC (DKOI)
Extended Binary Coded Decima Interchange Code (IBM)
16bitov kd - Unicode 0000h-FFFFh Basic Multilingual Plane (BMP) Unicode 2.0 (1996) - Dal rozen a do 10FFFFh
Celkem k dispozici 1,114,112 kdovch pozic Monost kdovn i znak historickch jazyk a znak nebo grafickch symbol mlo pouvanch
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 4
CCITT 2
Ptibitov alfanumerick (znakov) kd Horn a doln st tabulky se vol specilnmi znaky LTRS, FIGS
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 5
EBCDIC (DKOI)
Osmibitov kd (IBM)
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 6
EBCDIC (DKOI)
Osmibitov kd (IBM)
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 7
ASCII
Sedmibitov kd - American Standard Code for Information Interchange
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 8
Windows 1250
Horn polovina (80h-FFh) kdov strnky Windows 1250 Doln polovina (00h-7Fh) je shodn s ASCII
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 9
adi procesoru (CPU Controller)
Sekvenn obvod (Synchronn konen automat) d innost ostatnch blok procesoru (ALU, PC, SP, )
adi sm je zen instrukcemi petenmi z operan pamti a stavovmi
signly z ostatnch blok CPU a z dic sbrnice potae
Pracuje v instruknch cyklech (Instruction Fetch, Instruction Execution)
Pracuje v nekonenm cyklu
RESET uvede adi a ostatn bloky CPU do znmho potenho stavu
Podle zpsobu realizaci adie CPU rozliujeme: Obvodov (hardwired) adi Mikroprogramov adi
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 10
Instrukn cyklus (typick lenn)
INSTRUCTION FETCH
INSTRUCTION DECODE
OPERANDFETCH
EXECUTEOPERATION
RESULTSTORE
INTERRUPTREQUEST?
INSTRUCTION CYCLE
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 11
adi procesoru - realizace
Obvodov (hardwired) adi: Sekvenn obvod (synchronn konen automat) Realizovan obvodovm zapojenm (klasicky hradla, klopn obvody) Nvrh z vvojovch diagram popisujcch proveden jednotlivch
instrukc bhem instruknho cyklu
Mikroprogramov adi: Sekvenn obvod (synchronn konen automat) ve kterm je kombinan st realizovna pamt. Tato pam se nazv dic pam
(Control Memory), pam mikroinstrukc (Microcode Memory) nebo pam mikroprogramu (Microprogram Memory)
Instrukce je rozdlena na jednotliv dl operace mikroinstrukce, ty jsou uloeny v dic pamti a z n provdny. Soubor mikroinstrukc pro proveden dl instrukce mikroprogram
Soubor vech mikroprogram firmware (mikroprogramov vybaven) Mikroprogramov adi je (mikro)pota uvnit procesoru
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 12
adi procesoru (CPU Controller)
REGISTERS
CPU CONTROLLER(adi procesoru)
INSTRUCTION REGISTER
PROGRAM COUNTER
STACK POINTER
STATUS
ALU
MAINMEMORY
INPUT/OUTPUTCHANNELS
CLK INTRESET
DATA BUS
CONTROL BUS
ADDRESS BUS
CENTRAL PROCESSING UNITCPU
SP
PC
IR
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 13
Mikroprogramov adi
CONTROLMEMORY
(microinstructions)FIRMWARE
INSTRUCTION REGISTER
CLK
PC
IR
MU
LTIP
LEX
ER
ALU/STATUS
PR
OG
RA
M C
OU
NTE
R
MUX CODE MEMORY
CPU CONTROL
MICROPROGRAMMED CPU CONTROLLER
ADDR
FSA - Moore
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 14
Hodnocen vkonu procesoru
Doba provdn programu:
Kde: doba provdn programu (Time per Program)
poet instrukc programu (Instructions per Program)
poet takt na instrukci (Cycles per Instruction)(t znaen CPI)
dlka taktu (zvis na period hodin)(Time per Cycle)
Zrychlen programu zmenit nkter leny , , bez zvten
ostatnch
TcCiIpTp ..=
Ip
Tp
Ci
Tc
Ip Ci Tc
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 15
Pipelining (Proudov zpracovn instrukc)
Pipelining - technika prce procesoru, kter vede ke zmenen lenu Ci v rovnici pro hodnocen vkonu procesoru
Bez proudovho zpracovn: Tp = prost souet dob bhu jednotlivch instrukc
Proudov zpracovn (pipelining):
Princip: Jednotliv fze zpracovn instrukce jsou realizovny rznmi stmi
procesoru. Proto je mon zpracovn zetzit, jakmile se dan st procesoru uvoln (vykon svou st zpracovn dan instrukce) me zahjit zpracovn dal instrukce i v ppad, e dan instrukce je jet zpracovvna nsledujcmi bloky procesoru. Prmrn Tp je men.
Podmnky: Nutn neustl vasn psun novch instrukc do procesoru Problmy: Instrukce vtven naruuj proudov zpracovn. Vad i rzn dlka
provdn instrukc. Nutno dodret kauzalitu operac.
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 16
Pipelining - hloubka pekryt operac
Nejmen inn hloubka pekryt = 2 (Pipelining Depth = 2) P: Pekryt (asov) operac ten instrukce (Fetch) a jej vykonn (Execution) Doba vykonn instrukce - 2 takty (Ci = 2) bez zetzen Doba vykonn instrukce 1 takt (Ci = 1) se zetzenm
INST-1 FETCH INST-1 EXEC
INST-2 FETCH INST-2 EXEC
INST-3 FETCH INST-3 EXEC
Ci = 1 Ci = 1
Ci = 2
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 17
Pipelining - hloubka pekryt operac
Typick hloubky pekryt operac u RISC procesor 4 takty P: Pekryt (asov) operac Fetch, Decode, Execute, Writeback (zpis vsl.) Doba vykonn instrukce - 4 takty (Ci = 4) bez zetzen Doba vykonn instrukce 1 takt (Ci = 1) se zetzenm
INST-1 FETCH INST-1 DECODE INST-1 EXEC INST-1 WRITEBACK
INST-2 FETCH INST-2 DECODE INST-2 EXEC INST-2 WRITEBACK
INST-3 FETCH INST-3 DECODE INST-3 EXEC
INST-4 FETCH INST-4 DECODE
Ci = 4
Ci = 1 Ci = 1
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 18
Pipelining - hloubka pekryt operac
Pklad procesory Intel - CISC
Rok CPU Hodiny [MHz]
Hloubka Pipeline
Poet tranzistor
1978 i8086 4,77 2 29k 1982 i80286 8 3 134k 1985 i80386 16 3 275k 1989 i80486 25 5 1,2M 1993 iPentium I 60 5 3,1M 1997 iPentium II 233 12 7,5M 1999 iPentium II 450 12 9,5M 2002 iPentium 4 2000 20 55M 2004 iPentium 4 3400 31 125M 2010 Core i7 3300 ? 781M
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 19
Dlen pota CISC nebo RISC
Dlen pota do dvou zkladnch kategori podle typu pouitho procesoru
CISC Complex Instruction Set Computer pota s rozshlm souborem instrukc (nebo t pota s plnm instruknm souborem) Mnoho instrukc, jednoduchch (zkladnch) i sloitch Pesun sloitch operac ze software do hardware Nvrh CPU kompromisem ve smru - men kd, vt Ci (CPI) Podpora vych programovacch jazyk (HLL High Level Language)
penesena do hardware
RISC Reduced Instruction Set Computer (Pota s redukovanm souborem instrukc) Men poet zkladnch instrukc jen nezbytn zkladn operace Pesun sloitch operac z hardware do software Nvrh CPU kompromisem ve smru mal Ci (CPI), vt kd Podpora vych programovacch jazyk (HLL High Level Languge)
penesena do software (do kompiltoru)
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 20
CISC vs. RISC historick pohled
70 a 80 lta: Polovodiov operan pamti (DRAM) mal kapacita, velmi drah Extern pamti (HDD) pomal a t drah Expanze software a velikosti kdu vn problm pro dal vvoj Smr dobr potaov kd (program) je kompaktn kd Obtn nvrh peklada (Compiler) z vych jazyk (HLL) een (extrmn):
CISC procesory instrukce (nkter) odpovdaj pkazm HLL Oekvan dsledky:
Snadnj konstrukce peklada Redukce celkov ceny (software + hardware) Redukce ceny vvoje software Redukce systmovho software Programy napsan v HLL budou efektivnj Vsledn kd bude kompaktnj Ladn program bude sna a efektivnj
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 21
CISC vs. RISC historick pohled
CISC procesory: Nvrh sloitch instrukc podstatn usnadnil princip
mikroprogramovanho adie (pota s dic pamt uvnit procesoru, sloit instrukce rozloeny na posloupnost jednduch a ty vykonny na zklad mikrokdu uloenho v dic pamti mikroadie)
Nsledek adi je sloitj a pomalej ve srovnn s adiem obvodov eenm (klasickm).
Vvoj polovodiov technologie ale umonil podstatn zrychlit innost mikroprogramovanch adi instrukn soubor se dle zvtoval a tm rostla i velikost dic pamti s sloitost mikrokdu.
Program dic pamti se stval obtn laditeln, rostl poet neodladnch chyb v mikrokdu.
Narstaly pochyby zda smr Sloitost ze software do hardware je sprvn.
Statistick (kvantitativn) studie (profilovn ) program existujcch pota komplexn instrukce a sloit adresovac mdy jsou velmi mlo vyuvny. 20 % instrukc se vyuv 80 % asu. Vznik mylenka procesoru s redukovanm potem zkladnch instrukc - RISC.
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 22
CISC - charakteristika
Pesun sloitch operac ze software do hardware Zmenen velikosti vslednho kdu Zvten potu takt pi vykonn instrukce (zvten Ci (CPI))
Velk a znan lenn instrukn soubor.
Jednoduch a rychl instrukce pro zkladn operace. Sloit mnohataktov instrukce odpovdajc pkazm vych
programovacch jazyk (HLL) Podpora HLL je pesunuta do hardware Adresovac mdy pro ten-zpracovn-uloen dat do pamti jednou
instrukc (memory-to-memory addressing modes) Mikroprogramovan adi procesoru Men poet universlnch registr v procesoru
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 23
RISC - charakteristika
Pesun sloitch operac z hardware do software Zmenen potu takt pi vykonn instrukce (zmenen Ci (CPI)) Zvten velikosti vslednho kdu
Redukovan poet pouze nezbytnch zkladnch instrukc (32 128)
Jednoduch zkladn instrukce, vyadujc mlo takt (1 3) Instrukce odpovdaj mikroinstrukcm v procesoru CISC
Mal poet formt instrukc (2 4) Podpora HLL je pesunuta do software (vhodn optimalizujc peklada) Jednoduch adresovac mdy umoujc pouze pesun operand do
registr procesoru a uloen vsledku z registr do pamti (LOAD/STORE access)
Ostatn operace mon pouze mezi registry procesoru (register-to-register) Obvodov adi (ne mikroprogramovan) Velk poet registr na procesoru (>16) Pipelining (proudov zpracovn instrukc)
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 24
Souasn stav Post-RISC architecture
Dnen modern procesory vyuvaj vhod obou pvodnch technik CISC i RISC. Nelze je dsledn zaadit ani do jedn kategorie. Souasn procesory se mohou navenek tvit jako CISC (nap. z dvod kompatibility hotovch program) a uvnit vyuvat techniky RISC (nap. ada x86 Pentium) Pokrok v polovodiov technologii dovolil ke konstrukci CPU vyut velk
mnostv tranzistor (stovky milion), to umonilo: Zvtit poet registr na CPU Vyrovnvac pamti (Cache) na ipu tm tak rychl jako procesor Pidat dal ALU do procesoru (Superscalar Execution) Pidat dodaten non-RISC instrukce (ale velmi rychl) Zvtit hloubku pipeline (poet zetzen pi pekrvn operac) Pidat predikci vtven programu Pidat monost vykonn instrukc mimo jejich poad v programu
(out-of-order execution)
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 25
miniRISC pic10
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 26
miniRISC pic10 33 instrukc, 1-2 takty
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 27
miniRISC pic10 33 instrukc, 1-2 takty
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 28
miniRISC pic10 - pipeline depth = 2
Naruen pekryt - vtven programu
A7B14SAP Struktura a architektura pota 12 - ASCII, adi, CISC, RISC 29
esk vysok uen technick Fakulta elektrotechnick
Struktura a architektura pota
Alfanumerick kdy adi procesoru
CISC, RISC Pipelining
KONEC
Snmek slo 1Alfanumerick kdyAlfanumerick kdyCCITT 2EBCDIC (DKOI)EBCDIC (DKOI)ASCIIWindows 1250adi procesoru (CPU Controller)Instrukn cyklus (typick lenn)adi procesoru - realizace adi procesoru (CPU Controller)Mikroprogramov adiHodnocen vkonu procesoruPipelining (Proudov zpracovn instrukc)Pipelining - hloubka pekryt operacPipelining - hloubka pekryt operacPipelining - hloubka pekryt operacDlen pota CISC nebo RISCCISC vs. RISC historick pohledCISC vs. RISC historick pohledCISC - charakteristikaRISC - charakteristikaSouasn stav Post-RISC architectureminiRISC pic10miniRISC pic10 33 instrukc, 1-2 taktyminiRISC pic10 33 instrukc, 1-2 taktyminiRISC pic10 - pipeline depth = 2Snmek slo 29