Documente Academic
Documente Profesional
Documente Cultură
Arhitectura Calculatoarelor
E-mail: florin.oniga@cs.utcluj.ro
1
Coninutul / obiectivul cursului
Se prezint o metod sistematic, pe pai, de proiectare a unui procesor
Se pornete de la arhitectura setului de instruciuni
Rezultatul este procesorul format din calea de date i unitatea de control
Studiul de caz din acest curs: Procesorul MIPS pe 32 de bii, cu un ciclu de ceas
pe instruciune MIPS Single-cycle
2
Faze de proiectare pentru un procesor
1. Se analizeaz setul de instruciuni la nivel RTL cerine pentru ci de date
Secvene de micro-operaii (RTL) pentru instruciunile din ISA
Expresiile RTL specific componentele i conexiunile pentru calea de date
Diagrama de procesare (vezi curs 3).
3
Faze de proiectare pentru un procesor
4
Proiectarea MIPS ciclu unic Pas 1
n aceast seciune se urmrete descrierea din [1], care poate fi consultat opional
pentru detalii suplimentare.
6
Proiectarea MIPS ciclu unic Pas 1
Exemplu tip R: add
add $rd, $rs, $rt
Scop: Adunarea numerelor ntregi de 32-biti cu semn. La depire (overflow) excepie
(ADDU e fr excepie).
Adresare: cu registru
Format pe bii:
Urmtorul pas ?
7
Proiectarea MIPS ciclu unic Pas 1
Exemplu tip R: ADD
RTL abstract
RF[rd] RF[rs] + RF[rt], PC PC + 4
Urmtorul pas ?
8
Proiectarea MIPS ciclu unic Pas 1
Exemplu tip R: ADD
Din analiza descrierii RTL rezult resursele necesare (atenie, n RTL nu apare explicit
aducerea instruciunii - IF, dar se consider implicit):
MEM No operation
WB Bloc de regitri
9
Proiectarea MIPS ciclu unic Pas 1
Instruciuni de tip I: Load Word - LW
lw $rt, imm($rs)
Scop: ncarc un cuvnt de 32 de bii din memoria de date ntr-un registru
Adresare:
Resurse necesare
- cu registru
IF PC, Memoria de instruciuni, sumator
- cu baz a memoriei
ID/OF Bloc de regitri, Unit. princ. de
RTL abstract control, Extensie
- RF[rt] M[RF[rs] + S_Ext(imm)] EX ALU, Unitatea de control ALU
- PC PC + 4 MEM Memoria de date
WB Bloc de regitri
10
Proiectarea MIPS ciclu unic Pas 1
Instruciuni de tip I: Store Word - SW
sw $rt, imm($rs)
Scop: ncarc un cuvnt de 32 de bii dintr-un registru n memoria de date
Adresare:
Resurse necesare
- cu registru
IF PC, Memoria de instruciuni, sumator
- cu baz a memoriei
ID/OF Bloc de regitri, Unit. princ. de
RTL abstract control, Extensie
- M[RF[rs] + S_Ext(imm)] RF[rt] EX ALU, Unitatea de control ALU
- PC PC + 4 MEM Memoria de date
WB No operation
11
Proiectarea MIPS ciclu unic Pas 1
Instruciuni de tip I: Load Upper Immediate LUI
lui $rt, imm
Scop: ncarc o constant n jumtatea superioar a unui cuvnt / folosit mpreun cu ORI
pentru a forma constante de 32 de bii
Adresare:
- cu registru
RTL abstract
- RF[rt] imm || 0x0000
- PC PC + 4
Resurse adiionale necesare: ALU
trebuie s fac deplasare
12
Proiectarea MIPS ciclu unic Pas 1
Instruciuni de tip I: Branch on Equal BEQ
beq $rt, $rs, imm
Scop: compar doi regitri, apoi face salt condiionat relativ la PC
Adresare:
Resurse necesare
- Relativ la PC
IF PC, Memoria de instruciuni, sumator,
sumator, MUX
RTL abstract:
ID/OF Bloc de regitri, Unit. princ. de
If (RF[rs] == RF[rt]) control, Extensie
PC PC + 4 + S_Ext(imm) <<2 EX ALU, Unitatea de control ALU
else MEM Memoria de date
PC PC + 4
WB No operation
13
Proiectarea MIPS ciclu unic Pas 1
Cerine de resurse pentru instruciunile analizate pn acum
PC contorul de program
Memorii
Instruciuni i Date
Blocul de Regitri (32 x 32)
Citire R[rs], Citire R[rt]
Scrie n R[rt] sau R[rd]o singur adres de scriere=> MUX
Extensie cu semn / zero pentru cmpul address / immediate
Unitatea aritmetico-logic ALU => MUX
- Operaii cu doi regitri
- Operaii cu un registru i cu o valoare imediat extins
Pentru valoarea urmtoare a PC => MUX
- Sumator pentru PC+4
- Sumator pentru (PC+4) + Imediat extins cu semn
14
Proiectarea MIPS ciclu unic Pas 2
Pas de proiectare 2: Componentele cilor de date
PC contorul de program
- Registru 32-biti, bistabil D cu ncrcare pe front pozitiv
Memoria de instruciuni (model ROM idealizat)
- O intrare: Adres de instruciune
- O ieire: Instruciunea
- Cuvntul de memorie este selectat combinaional de adres, fr alte semnale de
control
Sumator pentru formarea urmtoarei adrese de instruciune
- Ex. 32-bit ripple carry
15
Proiectarea MIPS ciclu unic Pas 2
16
Proiectarea MIPS ciclu unic Pas 2
17
Proiectarea MIPS ciclu unic Pas 2
Unitatea de Extensie
- ExtOp = 1 extensie cu semn
- ExtOp = 0 extensie cu zero
18
Proiectarea MIPS ciclu unic Pas 2
Pas de proiectare 2: Disciplina semnalului de ceas
Disciplina de ceas
- Definete momentul de scriere i / sau citire pentru semnale
- Impune momentele cnd datele trebuie sa fie valide i stabile fa de ceas (Tsetup,
Thold).
Alternative de sincronizare / temporizare (momentul scrierii)
- activare pe front cresctor
- activare pe front descresctor
- activare pe dou faze (ambele fronturi)
Pentru toate elementele de stocare (ex. PC, Bloc de regitri, Memoria de date) scrierea
se face pe acelai front de ceas
- n mod uzual, aceste elemente sunt la fiecare ciclu de ceas
- Altfel, sunt necesare semnale explicite de control a scrierii
- Scrierea se face doar cnd semnalul de control este activat i apare frontul de ceas
19
Proiectarea MIPS ciclu unic Pas 3
Pas de proiectare 3: Asamblarea cilor de date
Instruction Fetch;
- PC registru 32 bii, Add Sumator 32 bii, 4 increment 4 octei pentru un cuvnt,
Memoria de instruciuni ROM
- IF: Instruction IM [PC], PC PC + 4;
20
Proiectarea MIPS ciclu unic Pas 3
21
Proiectarea MIPS ciclu unic Pas 3
.
.
22
Proiectarea MIPS ciclu unic Pas 3
Se asambleaz totul =>
Ci de date pentru instruciunile discutate / MIPS 32 cu ciclu de ceas unic. Sunt evideniate
semnalele de control.
23
Proiectarea MIPS ciclu unic Pas 4
Pas de proiectare 4: Specificarea comenzii
24
Proiectarea MIPS ciclu unic Pas 4
Semnificaia semnalelor de control
Nume semnal Efect inactiv (0) Efect activ (1)
Cmpul rt este trimis pe adresa de scriere Cmpul rd este trimis pe adresa de scriere
RegDst Write register a blocului de regitri RF Write register a blocului de regitri RF
Registrul a crui adres se gsete pe
intrarea Write register a blocului de
RegWrite Nu are
regitri este scris cu valoarea de pe
intrarea Write data
Al doilea operand ALU vine de la ieirea Al doilea operand ALU este valoarea
ALUSrc Read data 2 a RF imediat extins cu semn
n PC se scrie valoarea de ieire din n PC se scrie valoarea de ieire din
PCSrc
sumatorul PC+4 sumatorul care calculeaz adresa de salt
Coninutul memoriei de date de la adresa
MemRead Nu are de pe intrarea Address este pus pe portul
de ieire Read data
Coninutul memoriei de date de la adresa
MemWrite Nu are de pe intrarea Address este scris cu
valoarea de pe intrarea Write data
Valoarea de pe Write data a RF vine de la Valoarea de pe Write data a RF vine de la
MemtoReg ieirea ALU ieirea memoriei de date
Exerciiu acas: cu cile de date n fa, scriei valorile semnalelor de control pentru
ORI
26
Proiectarea MIPS ciclu unic Pas 4
opcode ALUOp \
| ALUCtrl
Function /
(!) Exemplul este cu ALUOp pe 2 bii (se extinde la 3+ dac sunt necesare alte operaii
pentru instruciuni noi).
28
Proiectarea MIPS ciclu unic Pas 4
30
Proiectarea MIPS ciclu unic
Perioada de ceas este limitat de calea critic:
Calea critic (Load Word) = PCs Clk-to-Q + Instruction Memorys Access Time +
Register Files Access Time + ALU to Perform a 32-bit Add + Data Memory Access Time
+ Setup Time for Register File Write + Clock Skew
31
Proiectarea MIPS ciclu unic
Dezavantajul implementrii cu ciclu unic de ceas:
Durata ciclu ceas: Se alege conform LW => lent
Durata ciclului pentru Load/Store mult mai mare dect minimul necesar pentru restul
instruciunilor => timp pierdut prin inactivitate.
Performanta procesorului
32
Proiectarea MIPS ciclu unic - Posibile extensii
Conectare cu dispozitive de intrare / ieire (I/O)
n figura urmtoare se prezint cile de date modificate pentru a suporta dou porturi de IN
i unul de OUT.
33
Proiectarea MIPS ciclu unic - Posibile extensii
Conectare cu dispozitive
de I/O
Dispozitivele sunt mapate
prin spaiul de adresare a
memoriei:
Cele trei adrese sunt
interceptate:
- 2 IN
- 1 OUT
Semnale de control:
- MemRead
- MemWrite
- MA (n plus)
34
Proiectarea MIPS ciclu unic Mecanism ntreruperi
vezi cursul 3, descrierea din ISA a mecanismului de ntrerupere
cile de date se extind n mod corespunztor
35
Proiectarea MIPS ciclu unic
Implementarea altor instruciuni (urmrii paii de proiectare => calea de date plus controlul
pentru instruciunile implementate):
Instruciuni tipice: add, sub, and, or, lw, sw, beq, bne, j, addi, andi, ori, sll, srl, sra
Alte instruciuni (unele sunt atipice!, necesit modificri ale unor componente de baz):
BLTZ
BNE
JAL
JAL: Indiciu realizai o conexiune / cale de la ieirea sumatorului PC+4 la intrarea de
date a blocului de regitri RF, iar pe Write address a RF punei 31 (registrul unde se
va salva PC+4, vezi JAL) prin adugarea unei intrri la MUX-ul legat pe Write address
JR Jump register
JM (jump memory) formatul este similar cu LW, diferena constnd n nefolosirea
cmpului rt, astfel coninutul memoriei se va scrie n PC
SWAP two registers
Lwnew - adresare a memoriei (ca LW), care nsumeaz doi regitri pentru a obine
adresa efectiv de unde se ia un cuvnt din memoria de date. Format de tip R.
Load/Store ca LW / SW, fr offset / imm, doar adresa dat de registru
ADD3, operaie aritmetic cu 4 operanzi care adun 3 numere n loc de dou: add3
$t5, $t6, $t7, $t8 => $t5 = $t6 + $t7 + $t8
Arithmetic with memory operand
- addm $t2, 100($t3) => $t2 = $t2 + M[$t3+100]
WAI (where am I), pune locaia instruciunii, reprezentat de valoarea lui PC, ntr-un
registru specificat de cmpul rt n biii instruciunii. Variaie: salvarea lui PC+4, n loc
de PC
36
Referine
37