You are on page 1of 23

12/18/2019

Leksion 7: Ndërtimi i proçesorit –


Datapath-i.

Përgatiti: Dr. Ina Papadhopulli

Hyrje
• Performanca e kompjuterit përcaktohet nga:
– Numri i instruksioneve (varet nga kompilatori dhe
ISA)
– Perioda e clock-ut të sistemit (varet nga
projektimi i proçesorit)
– Numri i cikleve për një instruksion (varet nga
projektimi i proçesorit)
• Qëllimi i kapitullit: të kuptojmë parimet mbi të
cilat ndërtohet një proçesor.
2

1
12/18/2019

Organizimi i Kompjuterit
data bus

Registers

I/O I/O
Processor Memory Device Device
(CPU)
#1 #2

ALU CU clock

control bus

address bus

Proçesori
• Proçesori përmban:
Datapath
 ALU
 Regjistrat
Control unit

• Implementimi është i ndryshëm nga një proçesor tek


tjetri
• Qëllimi i leksionit: të ndërtojmë datapath-in për një
proçesor MIPS. 4

2
12/18/2019

Elementet kryesore të proçesorit


• Regjistrat
• ALU
• Njësia e kontrollit (me anë të sinjaleve të
kontrollit përcakton sekuencën e veprimeve
që do të kryejë CPU-ja)
• Bus-et e brendshëm
• Bus-et e jashtëm
5

Një implementim i thjeshtë MIPS


• Do të përmbajë vetëm instruksionet:
– Arithmetic/Logical operations
• add, sub, and, or, slt
– Data transfer instructions
• lw, sw
– Branches
• beq, j (Leksioni 7)
• ISA përcakton aspekte të implmentimit; strategjitë e
implementimit përcaktojnë Tck dhe CPI
• Shumica e koncepteve të implementimit janë të
njëjta për server-at, kompjuterat embedded etj 6

3
12/18/2019

Hapat për ekzekutimin e Instruksioneve

1. Lexo instruksionin tek adresa


Fetch i Instruksionit
[PC], PC = PC + 4
2. Dekodimi i Instruksionit,
Dekodimi i instruksionit,
Leximi i Regjistrave Leximi i Regjistrave
3. Veprime me ALU, llogaritja e
Veprimet e ALU-së,
Adresat e Kercimit adresave të Branch
Veprime me Memorjen e
4. LOAD/STORE në memorjen
të Dhënave e të dhënave
Shkrimi në Regjistra 5. Shkrimi në regjistra

MIPS me 5 faza

add $3, $1, $2 lw $3, 20( $1 ) beq $1, $2, label

Fetch Read inst. at [PC] Read inst. at [PC] Read inst. at [PC]

Decode
& o Read [$1] as opr1 o Read [$1] as opr1 o Read [$1] as opr1
Operand o Read [$2] as opr2 o Use 20 as opr2 o Read [$2] as opr2
Fetch
Taken = (opr1 == opr2 )?
ALU Result = opr1 + opr2 MemAddr = opr1 + opr2 Target = (PC+4) or
(PC+4) + offset
Memory Use MemAddr to read
Access data from memory
Result Memory data stored in 8
Result stored in $3 PC = Target
Write $3

4
12/18/2019

Algoritmi për projektimin e


proçesorit
• Pasi është përcaktuar ISA…
• Projektohet datapath-i
(Datapath: njësitë që shërbejnë për të
vepruar mbi të dhënat ose për të ruajtur të
dhëna, p.sh. ALU, regjistra, memorja,
mbledhës etj)
• Projektohet kontrolli (leksioni 7)

Hapat për ekzekutimin e instruksioneve


• Dërgohet adresa e PC tek memorja dhe bëhet
fetch i instruksionit përkatës
• Lexohen një ose dy regjistra për lexim nga file i
regjistrave
(File i regjistrave: bashkësia e regjistrave të
CPU-së ku secili prej tyre ka një numër)
• Hapi pasardhës varet nga klasa e instruksionit
• Thjeshtësia e instruksioneve MIPS e bën
implementimin të tjeshtë! (p.sh. Gjithë
instruksionet përveç atij “jump” përdorin ALU-
10
në pas leximit të regjistrave)

5
12/18/2019

Pamje e implementimit të MIPS (jo e plotë)

11

Qarqet logjike në kompjuter


• Janë dy llojesh:
– Elementë që veprojnë mbi të dhënat (qarqet
kombinatore)
– Elementë që mbajnë gjendje (qarqet
sekuenciale)

12

6
12/18/2019

Latch D/ Flip-Flop D
Latch D Flip-Flop D
(negative edge triggered)

C D Q(t+1) D CLK Q(t+1) Comments


1 0 0 Reset 1 ↓ 1 Set
1 1 1 Set 0 ↓ 0 Reset
0 X Q(t) No change
↓ = tranzicion i clock-ut HIGH - LOW
13

Clock-u
• Proçesori: sistem numerik i sinkronizuar
• Clock-u përcakton se kur sinjalet do të lexohen edhe
kur do të shkruhen (kur janë stabël).
• Këtu do të marrim në konsideratë metodën edge-
triggered

14

7
12/18/2019

Clock-u
• Nëse përdoret metoda edge-triggered, nga
një element i memorjes mund të bëhet
lexim në të njëjtën kohë që bëhet update.

15

Ekzekutimi i instruksioneve
• Ekzekutimi i instruksioneve
1. Lexo përmbajtjen e një ose më shumë elementëve të memorjes
(regjistra/memorje)
2. Kryen veprimet duke përdorur qarqet kombinatore
3. Shkruan rezultatin në një ose më shumë elementë të memorjes
(regjistra/memorje)
• Gjithë këto hapa kryhen në një periodë clock-u
Perioda e Clock-ut

Clock-u Lexo Llogarit Shkruaj

Një element i memorjes nuk lexohet kur është duke u shkruar!


16

8
12/18/2019

Projektimi i Datapath-it
• Cilët elementë duhen për secilin
instruksion?
– Do të tregojmë elementët që duhen për secilën
klasë instruksionesh edhe ndërtimin e tyre.

17

Elementët për fazën FETCH


Një
mbledhës i
thjeshtë
Add
4
Faza Decode

PC Read
address
Instruction
Instruction

Instruction
memory

Një regjistër
Memorja që mban
instruksionet e
programit

18

9
12/18/2019

Instruction Memory
• Instruction Memory: qark Instruction
sekuencial i sinkronizuar Address

(sinjali i clock-ut nuk paraqitet Instruction

në figurë) Instruction
Memory

Memory

• Jep si output instruksionin që ………..

ndodhet në adresën që merr si 2048 add $3, $1, $2

2052 sll $4, $3, 2


input
2056 andi $1, $4, 0xF

…… ………..
19

Ideja e clock-ut
• Duket sikur po lexohet edhe po shkruhet PC në të
njëjtën kohë.
– Si funksionon?
• Update ndodh vetëm gjatë next rising clock edge

Add
4
Time
PC Read
In address Clk
Instruction
PC 100 104 108 112
Instruction
memory
In 104 108 112 116

20

10
12/18/2019

Faza e Dekodimit
Register
Number
5 Read Read
Data
register 1

Execute Stage
data 1
Fetch Stage

5 Read
Inst. register 2 Register
File
Operands
5 Write
register
Read
data 2

Numrat e regjistrave Bashkësi regjistrash:


varen nga klasa e Register File
instruksionit

21

Portat Read tek file i regjistrave

22

11
12/18/2019

Porta Write tek file i regjistrave

23

Tipi i Instruksioneve R

24

12
12/18/2019

Tipi i Instruksioneve R

25

Tipi i Instruksioneve R

26

13
12/18/2019

Tipi i Instruksioneve R

27

Tipi i Instruksioneve R

28

14
12/18/2019

Tipi i Instruksioneve R

29

Tipi i Instruksioneve R

30

15
12/18/2019

Tipi i Instruksioneve R

31

Sign Extension (I)


• Nëse numri me 16-bit ka zero si MSB:
– Eshtë pozitiv
– Duhet të shtohen 16 bite me vlerën zero

0110 1010 1010 0100

0000 0000 0000 0000 0110 1010 1010 0100


32

16
12/18/2019

Sign Extension (II)


• Nëse numri me 16-bit ka njësh si MSB:
– Eshtë negativ
– Duhet të shtohen 16 bite me vlerën një

1110 1010 1010 0100

1111 1111 1111 1111 1110 1010 1010 0100


33

Tipi i Instruksioneve I (ADDI)

34

17
12/18/2019

Tipi i Instruksioneve I (ADDI)

35

Njësia e memorjes
• Address Bus • Dy sinjale kontrolli
– Adresa vendoset në bus-in e  Read
adresave
 Write
• Data Bus
 Kontrollojnë nëse
– Të dhënat vendosen në bus-in e të memorja do të
dhënave shkruhet apo do të
lexohet

18
12/18/2019

Tipi i Instruksioneve I (Load Word)

37

Tipi i Instruksioneve i (Load Word)

38

19
12/18/2019

Tipi i Instruksioneve i (Store Word)

39

Tipi i Instruksioneve i (Store Word)

40

20
12/18/2019

Tipi i Instruksioneve I (Branch Equal)

41

Tipi i Instruksioneve I (Branch Equal)

42

21
12/18/2019

(dhe sinjalet e kontrollit)


DataPath-i i plotë
Instruction
Memory

PC Add
4
M
Instruction
U
Add X
Left Shift
Address
2-bit

PCSrc
opcode
000000
31:26

ALUcontrol
25:21

01001

Inst [25:21] 4
5
rs

RR1 RD1
5 is0?
RR2 1 MemWrite
20:16

01010
rt

Registers ALU
5 ALUSrc
WR ALU
M Address
result
15:11

01000

RD2 M
rd

U WD Data MemToReg
Inst [15:11]
X U Memory
X Read
shamt
00000

RegWrite
10:6

RegDst Write
Data M
Data U
Inst [15:0] Sign X
100000
funct

Extend
5:0

MemRead

43

Referenca
• Libri:
Computer Organization and Design. The
Hardware/Software Interface, 4th Edition
Kapitulli 4 (faqe 298-316)
Shtojca C (faqe C48 - C56)

44

22
12/18/2019

FALEMINDERIT!

45

23

You might also like