Cammino dei Dati (Datapath)

Slides:



Advertisements
Presentazioni simili
La struttura fisica e logica di un elaboratore
Advertisements

Informatica Generale Susanna Pelagatti
Il Linguaggio Macchina
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
Caratteristiche principali dell’architettura del processore MIPS
Caratteristiche principali dell’architettura del processore MIPS
Il processore PD32.
Criticità sui dati Consideriamo una sequenza di 5 istruzioni
Il pipelining E’ una tecnica Analogia con la catena di montaggio
Il pipelining E’ una tecnica Analogia con la catena di montaggio
Criticità sui dati (1° esempio)
Caratteristiche principali dell’architettura del processore MIPS
Criticità sul controllo
Il pipelining: tecniche di base Lucidi fatti in collaborazione con lIng. Valeria Cardellini.
Criticità sui dati (esempio da fare on line)
Criticità sul controllo
Criticità sul controllo
Il livello Microarchitetturale
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
Calcolatori Elettronici Introduzione al Pipelining Francesco Lo Presti Rielaborate da Salvatore Tucci.
ARCHITETTURA DI UN ELABORATORE
Istruzioni Riferimento alla memoria
Arch. Elab. - S. Orlando 1 Esercitazione su Instruction Level Parallelism Salvatore Orlando.
Calcolatori Elettronici Introduzione al Pipelining
Calcolatori Elettronici Il Processore
Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
CALCOLATORI ELETTRONICI
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
Corso di Laurea in Informatica Architettura degli elaboratori a.a ISA e Asm: esempi e suggerimenti.
Clocking Il segnale di Clock definisce quando i segnali possono essere letti e quando possono essere scritti Fronte di discesa (negativo) Falling edge.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata (3) Istruzioni J-type Istruzioni di salto Istruzioni.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
Z iLOG 80 Calcolatori Elettronici Bartolomeo Bajic.
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
Elementi fondamentali dell’ Architettura di di un elaboratore elettronico.
1 La Unità Aritmetico Logica. Aritmetica 32 operation result a b ALU.
Informatica - CDL in Scienze Politiche e delle Relazioni Internazionali A.A Architettura di un calcolatore Ing. Simona Colucci.
G. Frosini Processore Slide 1
Architettura e funzionalità
I Circuiti Sequenziali ed i Flip/Flop
Comandi assembly Il termine assembly deriva dal programma traduttore in linguaggio macchina assembler, l’assemblatore non fa altro che assemblare il.
LE ARCHITETTURE NON VON NEUMANN
Microcontrollori e microprocessori
Logica binaria Moreno Marzolla
I microprocessori Il microprocessore è un circuito integrato costituito da silicio. Il microprocessore svolge fondamentalmente due funzioni: sovraintende.
I BUS È un insieme di fili conduttori che permette il passaggio di dati tra le varie periferiche del pc.
Architetture non Von Neumann
Architettura dei calcolatori
ALU (Arithmetic Logic Unit)
IL MODELLO DI VON NEUMANN
Controllo e microprogrammazione
Instruction Level Parallelism
Azione delle istruzioni
Esercitazione su Instruction Level Parallelism
LOGICA DI FUNZIONAMENTO
Azione delle istruzioni
Programmazione e Laboratorio di Programmazione
Memorie Laboratorio di Architetture degli Elaboratori I
Programmazione e Laboratorio di Programmazione
Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Relazioni tra CPU e Memoria e Dispositivi I/O
Transcript della presentazione:

Cammino dei Dati (Datapath) R e g i s t r # D a m o y A d P C I n u c L U 1 2 3 4 5

Fetch & Execute Fetch (Prelievo) dell’istruzione (Fetch) Decodifica dell’Istruzione ed accesso ai registri (Dec) Esecuzione, Calcolo dell’indirizzo di memoria, Branch (Exe) Accesso alla Memoria, termina una istruzione di tipo R (Mem) Write-back (WB) Le ISTRUZIONI utilizzano da 3 a 5 fasi

Fetch & Execute Le cinque fasi sono sincronizzate Si utilizza un Clock, ogni fase viene eseguita durante un ciclo di clock tempo di ciclo Fronte di salita Fronte di discesa

Fetch & Execute 1 2 3 4 5 Fetch Dec Exe Mem WB Le ISTRUZIONI utilizzano da 3 a 5 cicli di clock

Fetch & Execute Una esecuzione tipica di una fase: Legge il contenuto da registro o memoria (elementi di stato), Invia i valori ad un circuito combinatorio Scrive i risultati in registri o memoria Mem1 Circuito Combinatorio Mem2 Ciclo di clock

Elementi Funzionali A L U c o n t r l e s u Z 3 P C

Elementi Funzionali Banco dei registri (lettura) W r i t e Registro Lettura 1 Registro Lettura 2 Registro Lettura 1 Registro Scrittura R e g i s t e r R e g i s t e r 1 M u Data W r i t e R e g i s t e r n – 2 x R e g i s t e r n-1 Registro Lettura 2 M u x

Elementi Funzionali Banco dei registri (Scrittura) W r i t e C R e g i R e g i s t e r 1 D Registro Decoder C R e g i s t e r 1 D n – 2 n-1 C R e g i s t e r n – 2 D C R e g i s t e r n-1 d a t a D

Elementi Funzionali M e m W r i t e A d d r e s s R e a d d a t a 1 6 3 2 S i g n e x t e n d W r i t e d a t a Memoria M e m R e a d

Flip-flop D il flip-flop D (delay) un unico input che viene dato al flip-flop l’output (e quindi lo stato) del flip-flop D è uguale all’input precedentemente dato

La Memoria 8 bit 32 bit Decoder 32 a 232 232 parole MEMWRITE MEMREAD

La Memoria Decoder MEMWRITE Ck MEMREAD

La Memoria 2 a 4 8x230 8x230 8x230 8x230 MAR (30 bit) MBR (32 bit)

Cammino dei Dati (Tipo R) y D a t W i d R g s 1 2 4 I n u c [ 5 – ] 6 11] A L U l Z B O

Cammino dei Dati (Tipo R) y D a t W i d R g s 1 2 4 I n u c [ 5 – ] 6 11] A L U l Z B O x 3

Cammino dei Dati (Tipo R + sw) y D a t W i d R g s 1 2 4 I n u c [ 5 – ] 6 0] A L U l Z B O x 3 S

Cammino dei Dati (Tipo R + sw) y D a t W i d R g s 1 2 4 I n u c [ 5 – ] 6 0] A L U l Z B O x 3 S

Cammino dei Dati (Tipo R + sw) 43 2 1 100 P C I n s t r u c t i o n M R e a d u A d d r e s s [ 2 5 – 2 1 ] r e g i s t e r 1 M u x I n s t r u c t i o n x M e m o r y R e a d R e a d A Z e r o 1 [ 2 – 1 6 ] r e g i s t e r 2 d a t a 1 1 A L U M e m D a t a R e g i s t e r s A L U A L U O u t I n s t r u c t i o n W r i t e r e s u l t R e a d [ 1 5 – 0] I n s t r u c t i o r e g i s t e r d a t a 2 B W r i t e [ 1 5 – 1 1 ] I n s t r u c t i o n 4 1 M d a t a W r i t e r e g i s t e r u d a t a 2 x 3 1 6 3 2 S i g n e x t e n d

Cammino dei Dati (Tipo R + sw + lw) 35 2 1 100 P C M e m o r y D a t W i d R g s 1 2 4 I n u c [ 5 – ] 6 0] A L U l Z B O x 3 S

Cammino dei Dati (R + sw + lw + beq(?)) 1000 4 8 17 249 P C M e m o r y D a t W i d R g s 1 2 4 I n u c [ 5 – ] 6 0] A L U l Z B O x 3 S h f

Cammino dei Dati (Tipo R + sw + lw + beq + j) y D a t W i d R g s 1 2 4 I n u c [ 5 – ] 6 0] A L U l Z B O x 3 S h f 8 J p -

Fase 1: Fetch Si utilizza PC per prelevare l’istruzione e registrarla nel Registro Istruzione (IR). Si incrementa il PC di 4. IR = Memory[PC]; PC = PC + 4;

Fase 2: Decodifica ed Accesso ai Registri Si leggono i registri rs ed rt (potremmo averne bisogno) Si calcola l’indirizzo del Salto Condizionato (qualora l’instruzione sia una BEQ o BNE) A = Reg[IR[25-21]]; B = Reg[IR[20-16]]; ALUOut = PC + (sign-extend(IR[15-0]) << 2); Non abbiamo utilizzato ancora nulla della istruzione specifica

Fase 3: Esecuzione (dipende dalla istruzione) L’ALU esegue una delle seguenti operazioni sulla base della istruzione lw, sw : ALUOut = A + sign-extend(IR[15-0]); tipo R: ALUOut = A op B; Beq: if (A==B) PC = ALUOut; Bne: if (A!=B) PC = ALUOut;

Fase 4 Tipo R o Accesso alla memoria lw o sw: MDR = Memory[ALUOut]; o Memory[ALUOut] = B; Istruzione di tipo R Reg[IR[15-11]] = ALUOut;

Fase 5: Write-back lw: Reg[IR[20-16]]= MDR;

In sintesi Nome della fase Tipo R Lw o Sw Beq o Bne jump fetch IR = Memory[PC] PC = PC + 4 A = Reg [IR[25-21]] dec B = Reg [IR[20-16]] ALUOut = PC + (sign-extend (IR[15-0]) << 2) ALUOut = A op B ALUOut = A + sign-extend if (salto) then PC = PC [31-28] II Exe (IR[15-0]) PC = ALUOut (IR[25-0]<<2) Reg [IR[15-11]] = Load: MDR = Memory[ALUOut] Mem ALUOut or Store: Memory [ALUOut] = B Wb Load: Reg[IR[20-16]] = MDR

Cammino dei Dati (Segnali di Controllo) PC S r c P C W r i t e C o n d P C W r i t e PCWrt R e g D s t R e g W r i t e A L U S r c A I o r D M e m R e a d M e m W r i t e I R W r i t e 1 M J u m p u I n s t r u c t i o n [ 2 5 – ] 2 6 2 8 S h i f t a d d r e s s [ 3 1 - ] x 2 l e f t 2 P C P C [ 3 1 - 2 8 ] I n s t r u c t i o n M R e a d u A d d r e s s [ 2 5 – 2 1 ] r e g i s t e r 1 M u x I n s t r u c t i o n R e a d R e a d A x 1 M e m o r y Z e r o [ 2 – 1 6 ] r e g i s t e r 2 d a t a 1 1 A L U M e m D a t a R e g i s t e r s A L U A L U O u t I n s t r u c t i o n M W r i t e r e s u l t R e a d [ 1 5 – 0] I n s t r u c t i o n u r e g i s t e r d a t a 2 B W r i t e x I n s t r u c t i o n [ 1 5 – 1 1 ] 1 W r i t e 4 1 M d a t a r e g i s t e r u d a t a 2 x 3 M u x A L U M e m o r y 1 c o n t r o l 1 6 3 2 d a t a S i g n S h i f t r e g i s t e r e x t e n d l e f t 2 M e m t o R e g A L U S r c B

Cammino dei Dati (Segnali di Controllo) PC S r c P C W r i t e C o n d P C W r i t e PCWrt R e g D s t R e g W r i t e A L U S r c A I o r D M e m R e a d M e m W r i t e I R W r i t e 1 M J u m p u I n s t r u c t i o n [ 2 5 – ] 2 6 2 8 x S h i f t a d d r e s s [ 3 1 - ] 2 l e f t 2 P C P C [ 3 1 - 2 8 ] I n s t r u c t i o n M R e a d M u A d d r e s s [ 2 5 – 2 1 ] r e g i s t e r 1 u x I n s t r u c t i o n R e a d A x 1 M e m o r y R e a d d a t a 1 Z e r o [ 2 – 1 6 ] r e g i s t e r 2 1 A L U M e m D a t a R e g i s t e r s A L U A L U O u t I n s t r u c t i o n M W r i t e r e s u l t R e a d [ 1 5 – 0] I n s t r u c t i o n u r e g i s t e r d a t a 2 B W r i t e x I n s t r u c t i o n [ 1 5 – 1 1 ] 4 1 M d a t a 1 W r i t e r e g i s t e r u d a t a 2 x 3 M u x M e m o r y 1 1 6 3 2 d a t a A L U S i g n S h i f t r e g i s t e r c o n t r o l e x t e n d l e f t 2 I n s t r u c t i o n [ 5 – ] M e m t o R e g A L U O p A L U S r c B

ALU Control Decidere l’operazione da effettuare (ADD, SUB, …) sulla base dei 32 bit della istruzione Esempio: add $8, $17, $18 Formato Istruzione: 0 17 18 8 0 32 op rs rt rd shamt funct L’operazione dell’ALU è basata sul tipo di istruzione e sul campo funct

ALU Control Se la istruzione è di tipo diverso cosa deve fare l’ALU ? Esempio: lw $1, 100($2) 35 2 1 100 op rs rt 16 bit offset Gli input all’ALU sono: 000 AND 001 OR 010 add 110 subtract 111 set-on-less-than

ALU Control Descriviamo il circuito logico che calcola i 3-bit di controllo dell’ALU dato il tipo di istruzione 00 = lw, sw 01 = beq, 11 = arithmetic dato il campo funct dell’istruzione di tipo R Il campo funct per le istruzioni di tipo R è ADD 100000 SUB 100010 AND 100100 OR 100101 SLT 101010 Codifica arbitraria sulla base del Codice Operativo

ALU Control Utilizziamo la tavola di verità: ALUOp Funct field Operation ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 X X X X X X 010 1 X X X X X X 110 1 1 1 010 1 1 1 1 110 1 1 1 1 000 1 1 1 1 1 001 1 1 1 1 1 111

ALU Control La tavola di verità modificata: ALUOp Funct field Operation ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 X X X X X X 010 1 X X X X X X 110 1 X X X 010 1 X X X 1 110 1 X X X 1 000 1 X X X 1 1 001 1 X X X 1 1 111

ALU Control Realizzazione con circuito logico A L U O p A L U c o n t b l o c k A L U O p A L U O p 1 O p e r a t i o n 2 F 3 O p e r a t i o n F 2 O p e r a t i o n 1 F ( 5 – ) F 1 O p e r a t i o n F

Cammino dei Dati (istruzione lw) 35 2 1 100 I o r D M e m R e a d M e m W r i t e I R W r i t e R e g D s t R e g W r i t e A L U S r c A M u M x u 1 x 1 Z e r o A L U A L U M r e s u l t u x 1 4 1 M 2 u x 3 M u x 1 1 6 S i g n 3 2 S h i f t A L U e x t e n d l e f t 2 c o n t r o l M e m t o R e g A L U S r c B A L U O p

Cammino dei Dati (istruzione add) 0 17 18 8 0 32 I o r D M e m R e a d M e m W r i t e I R W r i t e R e g D s t R e g W r i t e A L U S r c A M u M x u 1 x 1 Z e r o A L U A L U M r e s u l t u x 1 4 1 M 2 u x 3 M u x 1 1 6 S i g n 3 2 S h i f t A L U e x t e n d l e f t 2 c o n t r o l M e m t o R e g A L U S r c B A L U O p

Cammino dei Dati (istruzione beq) 1000 4 8 17 249 I o r D M e m R e a d M e m W r i t e I R W r i t e R e g D s t R e g W r i t e A L U S r c A PC S r c P C W r i t e C o n d P C W r i t e 2 6 2 8 a J u M d m d r p e s s [ 3 1 - ] 1 u x S h i f t I n s t r u c t i o n [ 2 5 – ] l e f t 2 2 P C [ 3 1 - 2 8 ] M M u x u A x 1 1 Z e r o A L U A L U M r e s u l t u B x 1 4 1 M u 2 x 3 M u x 1 1 6 3 2 S i g n S h i f t e x t e n d l e f t 2 M e m t o R e g A L U S r c B A L U c o n t r o l

Cammino dei Dati (Datapath) S h i f t l e 2 P C M u x 1 R g s r W d a I n c o [ 5 – ] 4 3 6 A L U Z m y B D O p - J 8