cisc, risc pipelining -...

of 29 /29
České vysoké učení technické Fakulta elektrotechnická Struktura a architektura počítačů Ver 1.20 Alfanumerické kódy Řadič procesoru CISC, RISC Pipelining J. Zděnek 2014

Author: vancong

Post on 17-Mar-2019

217 views

Category:

Documents


0 download

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