pojednostavnjeni model cisc

Click here to load reader

Post on 28-Oct-2014

53 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

3. Pojednostavnjeni modeli CISC I RISC procesora Komponente modela CISC Primjer izvoenja programa Stanje registara Stanje na sabirnicama Komponente modela (S)RISC ISA-model procesora

AIOR, S. Ribari

1

Model (mikro)procesora CISC arhitekture7

AAkumulator A

0

15

DCBrojilo podataka

0

15

PCProgramsko brojilo

0

A

DC

PC

Interna sabirnica7 0PRIVREMENI REGISTAR

7

IInstruk. Reg.

0

PRSTATUSREGISTAR

IRDekoder Skup registar a ope namjene

ALUUpravljaki sklop Upravljak a jedinica

ITAJ (R) PII (W)

(signal vremenskog voenja) AIOR, S. Ribari

2

Komponente modela Akumulator A Programsko brojilo PC Instrukcijski registar IR Brojilo podataka DC Privremeni registar PR Status-registar (Registar stanja)

ALU (Skup registara ope namjene) Interna sabirnica Upravljaka jedinica

AIOR, S. Ribari

3

Primjer programa: Program samo od jedne instrukcije INC $05FF0100 0101 0102 7C 05 FFInkrementiraj sadraj memorijske lokacije s adresom 05FF

05FE 05FF 0600

23

AIOR, S. Ribari

4

Poetni uvjeti7

A

0

15

DC

0

15

PC 0100H

0

Interna sabirnica7 PR 0 7

I

0

STATUSREGISTAR

Dekoder

ALUUpravljaki sklop Upravljaka jedinica

Skup registara ope namjene

ITAJ (R) PII (W)

(signal vremenskog voenja)

AIOR, S. Ribari

5

Stanje nakon pribavljanja operacijskog koda instrukcije7

A

0

15

DC

0

15

PC 0101H

0

A

DC

PC

Interna sabirnica7 PR 0 7

I 7CH

0

STATUSREGISTAR

Dekoder

ALUUpravljaki sklop Upravljaka jedinica

Skup registara ope namjene

ITAJ (R) PII (W)

(signal vremenskog voenja)

AIOR, S. Ribari

6

7

0

7C

Operacijski kod 7C = 01111100 se tumai kao: Poveaj za 1 vrijednost operanda ija je adresa sadrana u dva bajta koja slijede ovom operacijskom kodu.

AIOR, S. Ribari

7

Stanje nakon pribavljanja znaajnijeg bajta adrese operanda7

Pazi: Faza Pribavi jo uvijek traje!PC 0102H0

A

0

15

DC 05H

0

15

Interna sabirnica7 PR 0 7

I 7CH

0

STATUSREGISTAR

Dekoder

ALUUpravljaki sklop Upravljaka jedinica

Skup registara ope namjene

ITAJ (R) PII (W)

(signal vremenskog voenja)

AIOR, S. Ribari

8

Stanje nakon pribavljanja manje znaajnijeg bajta adrese operanda7

A

0

15

DC 05FFH

0

15

PC 0103H

0

!!!

Interna sabirnica7 PR 0 7

I 7CH

0

STATUSREGISTAR

Dekoder

ALUUpravljaki sklop Upravljak a jedinica

Skup registar a ope namjene

ITAJ (R) PII (W)

(signal vremenskog voenja)

AIOR, S. Ribari

9

Faza Pribavi je zavrena!

Instrukcijski registar

Registar: Brojilo podataka

01111100 7CIR Format instrukcije: Operacijski kod DC

00000101 05

11111111 FF

Adresa operanda

AIOR, S. Ribari

10

Stanje nakon dohvata operanda (faza IZVRI)7

A

0

15

DC 05FFH

0

15

PC 0103H

0

Interna sabirnica7 PR 0 7

I 7CH

0

23H

STATUSREGISTAR

Dekoder

ALUUpravljaki sklop Upravljaka jedinica

Skup registara ope namjene

ITAJ (R) PII (W)

(signal vremenskog voenja)

AIOR, S. Ribari

11

Stanje nakon poveanja operanda za jedan (faza IZVRI)7

A

0

15

DC 05FFH

0

15

PC 0103H

0

A

DC

PC

Interna sabirnica7 PR 0 7

I 7CH

0

24H

STATUSREGISTAR

Dekoder

ALUUpravljaki sklop Upravljaka jedinica

Skup registara ope namjene

ITAJ (R) PII (W)

(signal vremenskog voenja)

AIOR, S. Ribari

12

Stanje na vanjskim sabirnicama

#1 A0-A15 R W D0-D7 7C

#2

#3

#4

#5

#6

0100

0101

0102

05FF

**

05FF

05

FF

23

**

24

FAZA PRIBAVI (FETCH) AIOR, S. Ribari

FAZA IZVRI (EXECUTE) 13

Prva perioda signala vremenskog voenja

#1 A0-A15 R W D0-D7 7C

0100

AIOR, S. Ribari

14

Druga perioda signala vremenskog voenja

#1 A0-A15 R W D0-D7 7C

#2

0100

0101

05

AIOR, S. Ribari

15

Trea perioda signala vremenskog voenja

#1 A0-A15 R W D0-D7 7C

#2

#3

0100

0101

0102

05

FF

FAZA PRIBAVI (FETCH) AIOR, S. Ribari 16

etvrta perioda signala vremenskog voenja

#1 A0-A15 R W D0-D7 7C

#2

#3

#4

0100

0101

0102

05FF

05

FF

23

FAZA PRIBAVI (FETCH) AIOR, S. Ribari 17

Peta perioda signala vremenskog voenja Pozor:** - Oznaava stanje visoke impedancije /tree stanje/

#1 A0-A15 R W D0-D7 7C

#2

#3

#4

#5

0100

0101

0102

05FF

**

05

FF

23

**

FAZA PRIBAVI (FETCH) AIOR, S. Ribari 18

esta perioda vremenskog voenja

#1 A0-A15 R W D0-D7 7C

#2

#3

#4

#5

#6

0100

0101

0102

05FF

**

05FF

05

FF

23

**

24

FAZA PRIBAVI (FETCH) AIOR, S. Ribari

FAZA IZVRI (EXECUTE) 19

Motorola MC 6800( izravni proireni nain adresiranja)

OP

~ 6

# 3

INC

7C

Zahtijeva 6 periode signala vremenskog voenja! Na model obavlja ovu instrukciju takoer za 6 perioda!

AIOR, S. Ribari

20

Stanje na sabirnicama za instrukciju STA $07

#1 A0 A15 D0 D7 R W

#2

#3

0103 97

0104 07 ?

0007 (A)

PRIBAVI

IZVRI

AIOR, S. Ribari

21

Motorola MC 6800(izravni nain adresiranja)

OP

~ 4

# 2

STA A

97

Zahtijeva 4 periode signala vremenskog voenja! Na model obavlja ovu instrukciju tijekom 3 periode?!

AIOR, S. Ribari

22

Primjer:

0100 0101 0102 0103 0104

B6 02 01 9B FF

LDA $0201

ADD #$FF

.0201 24 .

.

AIOR, S. Ribari

23

Primjer: MC 6800

AIOR, S. Ribari

24

Signali vremenskog voenja 1 i 2

AIOR, S. Ribari

25

MC 6800

AIOR, S. Ribari

26

Stanje na sabirnicama za STA A $010F (MC 6800)

AIOR, S. Ribari

27

Intel 8080

AIOR, S. Ribari

28

RCA 1802

AIOR, S. Ribari

29

MC 68000Address Bus (A0-A23) Data Bus (D0-A15) Data Strobes (UDS, LDS)

Address Buffer

Data Buffer

16-Bit Internal Address Bus

16-Bit Internal Data BusAddress - Stack Registers 31 16 15 A0 A1 A2 A3 A4 A5 A6 User Stack Pointer A7 Supervisor Stack Pointer 23 Program Counter

0

Instruction Register

32-Bit ALU(or two 16-Bit ALUs) 31 D0 D1 D2 D3 D4 D5 D6 D7 Data Registers 16 15 8 7 0 15 Status Register 0 Register and ALU Function Selection Instruction Decode A 2-Level Microcoded Control Store

0

Control Signals to Execution Unit

Timing and Control Circuitry

AIOR, S. Ribari

30

Intel 80286Bus Unit (BU)Address Latches & Drivers Processor Extension (nter.) Bus Controll Instruction Prefetcher Data Transcievers Data Bus Address Bus

Address Unit (AU)

Control Bus

Execution Unit (EU)

6-Byte Prefetch Queue

Instruction Decoder Decoden Instruction Queue (3der.)

Instruction Unit (IU) AIOR, S. Ribari 31

Intel 80286 i 80386 CLOCK input Frekvencija signala na ulazu CLOCK interno se dijeli s 2: fPCLOCK(ProcessorCLOCK) = fCLOCK

Intel 486 DXfPCLOCK(ProcessorCLOCK) = fCLOCK

Proizvoai se obino Proizvoai se obino referenciraju na PCLOCK referenciraju na PCLOCK

Intel 486 DX4fPCLOCK(ProcessorCLOCK) = 2fCLOCK 3fCLOCKIzvor: T. Shanley, D. Anderson, ISA System Architecture, Addison-Wesley, 1995. 32

AIOR, S. Ribari

Sabirniki ciklusKada procesor izvodi operaciju ITANJA ili PISANJA, zapoinje sljed dogaaja koji se naziva SABIRNIKI CIKLUS (Bus Cycle).

Tijekom sabirnikog ciklusa:- procesor postavlja adresu na adresnu sabirnicu

- generira upravljake signale i postavlja ih na upravljaku sabirnicu - oznaava vrstu prijenosa - prenose se podaci izmeu ciljne lokacije i procesora

x86 procesori imaju podsustav sabirniku jedinicu (bus unit) koja podrava sabirniki ciklus

AIOR, S. Ribari

33

Sabirnika jedinica stroj stanja Vrijeme trajanja stanjastanje CLOCK stanje

perioda PCLOCK-astanje stanje stanje 40 MHz

PCLK 50 ns 50 ns 50 ns 50 ns 50 ns

20 MHz

AIOR, S. Ribari

34

Stanja: Vrijeme neaktivnosti (Idle) Vrijeme adresiranja (Address Time) Vrijeme podataka (Data Time)IDLE CLOCK IDLE Address Time Data Time IDLE

PCLK

1 READY # SE UZORKUJE OD STRANE pAIOR, S. Ribari 35

Vrijeme adresiranja: -sabirnika jedinica zapoinje sabirniki ciklus iz stanja IDLE prelazi u stanje Vrijeme adresiranja -Tijekom tog stanja (traje jednu periodu PCLOCK-a) sabirnika jedinica postavlja adresu na adresnu sabirnicu a na upravljaku sabirnicu postavlja informaciju o vrsti sabirnikog ciklusa

AIOR, S. Ribari

36

Vrijeme podataka: - Iz stanja Vremena adresiranja sabirnika jedinica prelazi u stanje Vrijeme podataka -Tijekom tog stanja (traje jednu periodu PCLOCK-a) sabirnika jedinica obavlja prijenos podataka - Na kraju tog stanja, sinkrono sa signalom PCLOCK, procesor ispituje stanje READY# ulaza - Ako je READY# nisko, tj. logiko 0 sabirnika jedinica zavrava sabirniki ciklus

AIOR, S. Ribari

37

0 Wait-state bus cycle (sabirniki ciklus sa nula stanja ekanja)IDLE CLOCK IDLE Address Time Data Time IDLE

PCLK

1 READY # SE UZORKUJE OD STRANE p

Najbri sabirniki ciklus x86 procesora traje dvije periode PCLOCK-aAIOR, S. Ribari 38

ISA sabirnica (Industry Standard Architecture)- Proirenje IBM PC sabirnice /temelji se Intel 8088 sustavima

- 62 signalne linije (20 linija za adresiranje, 8 linija podataka, te upravljake linije (npr., Memory read, Memory Write, I/O read, I/O write, linije za zahtijevanje prekida, potvrdu prekida, te linije za DMA) - Frekvencija (PCLOCK-a) 8.33MHz /brzina prijenosa 4.166MB/s ili 8.33 MB/s (za 16 bitnu sabirnicu podataka)

AIOR, S. Ribari

39

EISA (Extended ISA) - 32-bitna adresna sabirnica - 8-, 16- ili 32-bitni prijenos podataka - Brzina prijenosa 33 MB/s

AIOR, S. Ribari

40

PCI (Peripheral Component Interconnect Bus) Potreba za veom propusnosti sabirnice! Primjer: Slika /zaslon/ rezolucije 1024 x 768 slikovnih elemenata (pixel) true color (3 bajta/pixel) 1 zaslon = 2.25 MB podataka Slika u pokretu: 30 zaslona/s. Potrebna brzina: 67.5 MB/sAIOR, S. Ribari 41

Prikaz video zapisa sa vrstog diska, CD-ROM-a ili DVD-a - podaci se s diska preko sabirnice prenose u memoriju i tek tada, da bi se prikazali, putuju preko sabirnice prema grafikoj kartici Potrebna brzina prijenosa 135 MB/s! /to je samo za video ne uzimajui u obzir potrebe CPU-a i drugih ureaja prikljuenih na sabirnicu/

Intel, 1990. godine uvodi PCI sabirnicu za raunala temeljena na njihovim procesorima Pentium, Sun Ultra SPARC IIAIOR, S. Ribari 42

Izvorno: PCI prenosi 32 bita/perioda i radi na 33 MHz (perioda 30 ns) - Brzina prijenosa 133 MB/s 1993. godine: PCI 2.0 1995. godine: PCI 2.1 PCI 2.2 -66 MHz i rukuje 64-bitnim prijenosom - Brzina prijenosa 528 MB/s Jo uvijek nije dovoljna brzina prijenosa (npr., za memorijsku sabirnicu) Brzina nije kompatibilna s ISA/EISA modulimaAIOR, S. Ribari 43

Intel ponudio rjeenje:Level 2 Cache Cache bus CPU Local bus PCI bridge Memory bus Main memory

PCI bus 2x

IDE disk

SCSI

USB

ISA bridge

Graphic adapter

Mouse

Keyboard

Monitor ISA bus

Modem

Sound card

Printer

Slot44

AIOR, S. Ribari

IDE - Integrated Drive Electronics EIDE Extended IDE (adresna shema LBA /Logical Block Address; 0 do 224 1 broj sektora; kapacitet diskova 528 MB/) USB - Universal Serial Bus - USB male brzine: 1.5 Mbita/s (USB 1.0) - USB srednje brzine: 12 Mbita/s (USB 1.0) - USB velike brzine: 480 Mbita/s (USB 2.0) SCSI - Small Computer System Interface

AIOR, S. Ribari

45

Neke znaajke SCSINaziv SCSI-1 Fast SCSI Wide Fast SCSI Ultra SCSI Wide Ultra SCSI Ultra2 SCSI Wide Ultra2 SCSI Broj bitova 8 8 16 8 16 8 16 Frekvencija sabirnice(MHz) 5 10 10 20 20 40 40 MB/s 5 10 20 20 40 40 80

AIOR, S. Ribari

46

PC - 1986. godina32 bita CPU 8 ISA Sabirnica (16 bita) MEMOR.

Serial / Parallel

Video

IDE

Exp.

AIOR, S. Ribari

47

PC 1993. godine

32 ili 64bita MEMOR. CPU

32 ili 64bita Local bus

16 bita

Graf. akc.

IDE / SCSI

16-bitna ISA ili 32-bitna EISA / MCA

Serial / Parallel

Exp.

AIOR, S. Ribari

48

DBG#

BG# BR = Address Bus Req. BG = Address Bus Grant DBG = Data Bus Grant

Power PC 601

Main memory

BR#

HOST BUSHit SHD ARTRY GBL

Host Bus Arbiter

L2 Cache

Host PCI Bridge

Mem. Target

I/O Target

PCI BUS

SCSI Host Adapter

LAN Adapter

SIO PCI/ISA Bridge

Graph. Adapt. Video Frame Memory

S C S I

LAN Disk Tape ISA EXTENSION BUS

AIOR, S. Ribari

CDROM

Bus Master

I/O Slave

Memory Slave

49

Pentium III processor L2 2.0 GB/s Cache Core800 MB/s

AGP Accelerated Graphic Port AGP 1.0 AGP 2.0 AGP Pro Mode Clock Rate Transfer Rate 8x 533 MHz 2.133 GB/s

AGP Intel 740 Graphics Accelerator 528 MB/s

System Memory 800 MB/s

Intel 440BX AGP set

PCI Local Memory 132 MB/sAIOR, S. Ribari

Textures

I/O

50

SRISC Simple RISC Programski model

AIOR, S. Ribari

51

Znaajke: Memorija bajtno organizirana dohvat samo 32-bitne rijei load/store arhitektura Big Endian Byte Ordering

AIOR, S. Ribari

52

Trosabirniki SRISC

AIOR, S. Ribari

53

ISA Instruction Set Architecture SRISC ima osam razliitih formata instrukcija:

1. format Instrukcije: ld, st, la, addi, andi, ori

AIOR, S. Ribari

54

2. format Instrukcije: ldr, str, lar

AIOR, S. Ribari

55

3. format Instrukcije: neg, not

AIOR, S. Ribari

56

4. format Instrukcija: br

AIOR, S. Ribari

57

5. format Instrukcija: brl

AIOR, S. Ribari

58

6. format Instrukcije: add, sub, and, or

Troadresni format instrukcije!

AIOR, S. Ribari

59

7. format Instrukcije: nop, stop

AIOR, S. Ribari

60

8. format Instrukcije: shr, shl

a)

b)

AIOR, S. Ribari

61

Instrukcije za pristup memoriji (load i store tip instrukcija) load i store jedine su instrukcije za dohvat i pohranu operanada iz/u memorije (i):

4 load instrukcije: ld, ldr, la, lar 2 store instrukcije: st, str load: /mnemonik ld/ puni registar odreen 5-bitnim poljem ra (1. format instrukcije) adresa izvorita odreena je 17-bitnom vrijednosti u polju c2 polje rb ima dvostruku ulogu: 1. Ako je rb = 0 (00000B) tada (rb = 0) slui kao signal upravljakoj jedinci da je adresa memorijske lokacije (izvorita) vrijednost c2 koja se pretvara u 32-bitnu i to irenjem bita predznaka (engl. sign-extended)AIOR, S. Ribari 62

irenje bita predznaka

AIOR, S. Ribari

63

2. Ako je rb 0 tada se adresa memorije oblikuje kao c2 + R[rb] (based, displacement addressing mode) POZOR: zbrajanje c2 + R[rb] obavlja se TIJEKOM izvoenja instrukcije ( engl. run time)

AIOR, S. Ribari

64

Instrukcije koje koriste 1. format instrukcije: ld ra, c2 ; izravno (direktno) adresiranje: R[ra] = M[c2] ; indeksno adresiranje (rb 0): R[ra] = M[c2 + R[rb]]

ld ra, c2(rb)

AIOR, S. Ribari

65

store: /mnemonik st/ -Instrukcija st obavlja obrnutu (u odnosu na ld) operaciju: 1. Ako rb = 0 (00000B) tada se R[ra] pohranjuje na memorijskoj lokaciji s adresom c2 2. Ako je rb 0 tada se R[ra] pohranjuje na memorijskoj lokaciji s adresom c2 + R[rb]

AIOR, S. Ribari

66

Instrukcije koje koriste 1. format instrukcije: st ra, c2 ; izravno adresiranje M[c2] = R[ra] ; indeksno adresiranje (rb 0): M[c2 + R[rb]] = R[ra]

st ra, c2(rb)

AIOR, S. Ribari

67

Instrukcije koje koriste 1. format instrukcije (nastavak): la load address - rauna adresu operanda (kao u prethodnim sluajevima ali umjesto dohvata operanda pohranjuje se izraunata adresa u R[ra] la ra, c2 la ra, c2(rb) ; napuni R[ra] s adresnim pomaknuem: R[ra] = c2 ; napuni R[ra] s adresnim pomaknuem: R[ra] = c2 + R[rb]

la se koristi za sintezu sloenijih naina adresiranja!

AIOR, S. Ribari

68

Ogranienje izravnog adresiranja Pazi: c2 je 17-bitna konstanta Operandi se nalaze: 1) Na prvih 216 bajtova:

2)

AIOR, S. Ribari

69

Adresni prostori: 00000000 - 0000FFFF FFFF0000 FFFFFFF 1. prostor 2. prostor

Kako ostvariti pristup operandima drugdje u memoriji?

AIOR, S. Ribari

70

Za pristup operandima drugdje u memorijskom prostoru:

Adresiranje pomaknuem: R[rb] baza c2 pomaknue efektivna adresa = R[rb] + c2 Indirektno adresiranje: uporaba R[rb] pri c2 = 0 efektivna adresa = R[rb] + 0 POZOR: U postupku raunanja (zbrajanja) adrese prvo se 17-bitno pomaknue treba pretvoriti u 32-bitni brojAIOR, S. Ribari 71

Instrukcije: ldr, str, lar Koriste 2. format instrukcije

ldr ra, c1 str ra, c1

; napuni registar R[ra] = M [PC + c1] ; relativni nain adresiranja ; pohrani M [PC + c1] = R[ra]

lar ra, c1 ; napuni relativnu adresu: R[ra] = PC + C1 POZOR: Efektivna se adresa oblikuje tijekom izvoenja instrukcije (run-time addition)AIOR, S. Ribari 72

Premjestive instrukcije (engl. Relocatable instructions) relativne adrese (u odnosu na PC) ine instrukcije premjestivim cijeli se programski moduli mogu premjetati bez mijenjanja vrijednosti pomaknua c1 je duljine 22 bita moe se specificirati adresa u prostoru od 221 u odnosu na tekuu instrukciju

AIOR, S. Ribari

73

Primjeri instrukcija load i store

AIOR, S. Ribari

74

Aritmetike i logike instrukcije Instrukcije s jednim operandom - Koriste 3. format instrukcije:

neg ra, rc not ra, rc

; R[ra] = - R[rc] / dvojni komplement/ ; R[ra] = R[rc] /jedinini komplement/

AIOR, S. Ribari

75

ALU instrukcije (binarne operacije) - koriste 6. format instrukcije (troadresni!):

add ra, rb, rc sub ra, rb, rc and ra, rb, rc or ra, rb, rc

; R[ra] = R[rb] + R[rc] ; R[ra] = R[rb] - R[rc] ; R[ra] = R[rb] R[rc] ; R[ra] = R[rb] R[rc]AIOR, S. Ribari 76

ALU instrukcije (usputno adresiranje) - koriste 1. format instrukcije:

addi ra, rb, c2 andi ra, rb, c2 ori ra, rb, c2

; R[ra] = R[rb] + c2 : ; R[ra] = R[rb] c2 ; R[ra] = R[rb] c2

c2 usputna konstanta

AIOR, S. Ribari

77

Posmane instrukcije - koriste 8a) format instrukcije:

Instrukcije posmiu operand iz R[rb] (udesno, ulijevo ili kruno) i smjetavaju rezultat u R[ra]. Broj posmaknutih mjesta odreen je 5-bitnim nepredznaenim brojem

AIOR, S. Ribari

78

5-bitna vrijednost

iznos posmaka od 0 do 31

Ako je ta vrijednost 0 onda se kao iznos posmaka uzima 5 LSb registra R[rc] (format 8b))

AIOR, S. Ribari

79

-Razlikujemo dvije vrste posmaka: 1) logiki posmak 2) aritmetiki posmak

Primjer: shr logiki posmak udesno

AIOR, S. Ribari

80

Primjer: shra aritmetiki posmak udesno

Ohranjuje se bit predznaka

AIOR, S. Ribari

81

shra (:=op = 27) shra r4, r5, 6

R[ra]

([email protected][rb] ) # R[rb]

R[rb] 31

6 0

R[r5] = 10100010000000111111111111111001 R[r4] = xxx... n =6 R[r5] =1 [email protected][email protected] R[r4] = 111111 10100010000000111111111111AIOR, S. Ribari 82

...xxx

Posmak ulijevo shl

Kruni posmak shc

AIOR, S. Ribari

83

Posmane instrukcije primjeri: shr ra, rb, rc ; posmakni R[rb] (za broj mjesta koji je odreen s R[rc]) i pohrani ga u R[ra]

shr ra, rb, count ; posmakni R[ra] udesno i pohrani ga u R[ra] (za broj mjesta odreen u 0-4 polju c3) shra ra, rb, rc shl ra, rb, rc shl ra, rb, count shc ra, rb, rc shc ra, rb, countAIOR, S. Ribari 84

Ako je count polje u instrukciji 0 (format 8b) tada se za broj mjesta posmaka uzima iz registra koji je odreen bitovima instrukcije na poziciji 12 - 16

Instrukcije grananja br i brl Instrukcije koriste 4. i 5. format:

Instrukcija br se izvodi tako da se mijenja sadraj PC s ciljnom adresom

AIOR, S. Ribari

85

Instrukcija brl (branch&link) se izvodi tako da kopira PC u povezni (engl. linkage) registar i to prije grananja Povezni registar doputa povratak iz potprograma i rabi se za implementaciju procedura i funkcija u HLL Pozor: PC se kopira u povezni registar bez obzira da li e se grananje izvesti (ili ne)

AIOR, S. Ribari

86

Instrukcije grananja (uvjeti!): zbirni jezik brnv, brlnv br, brl brzr, brlzr brnz, brlnz brpl, brlpl brmi, brlmi c3 0 1 2 3 4 5 Uvjeti grananja Nikada Bezuvjetno Ako je R[rc] = 0 Ako je R[rc] 0 Ako je R[rc] = 0 Ako je R[rc] < 0

AIOR, S. Ribari

87

Primjer:

brl ra, rc, c3

; R[ra] PC i granaj na ciljnu ; adresu odreenu s R[rb] ako je ; zadovoljen uvjet c3

AIOR, S. Ribari

88

Mjeovite instrukcije

nop stop

; ne ini nita ; zaustavi stroj

nop ???

vana instrukcija u protonoj izvedbi procesora!!!

AIOR, S. Ribari

89

ARM 6 procesor - Acorn RISC MachineAddress bus INCREM ENTER BUS INSTRUCTION PIPELINE & READ DA REGISTER TA Data bus ADDRESS REGISTER PC BUS ALU bus

ADDRESS INCREMENTER

REGISTER BANK (31 32-bit register) (6 status registers) INSTRUCTION DECODER & CONTROL LOGIC

BARREL SHIFTER

32-BIT ALU

WRITE DA REGISTER TA

Data bus

AIOR, S. Ribari

B BUS

ABUS

BOOTH'S MUL TIPLIER

90

Model protone strukture dubine M t1

2

Protoni segment 1

N >> M parova operanada Vrijeme obrade u protonom segmentu: t1 = t2 = ... = tM = tS Prvi rezultat: M . tS Svaki slijedei rezultat nakon ts Vrijeme obrade N parova operanada: TN = MtS + (N 1) tS Vrijeme obrade jednog para operanada: Tef = TN / N Tef = (MtS + (N 1) tS) / N

t2

Protoni segment 2

tM

Protoni segment M

1

AIOR, S. Ribari

91

Vrijeme obrade para operanda: Tef = (MtS + (N 1) tS) / N N >> M; N

T = lim ((MtS + (N 1) tS) / N)N

Vrijeme obrade jednog para operanada: T = tS !!!

AIOR, S. Ribari

92

Protonost znaajka RISC i CISC procesora!

AIOR, S. Ribari

93