(c) INTRODUZIONE ALLE ARCHITETTURE DI PROCESSORI (II)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "(c) INTRODUZIONE ALLE ARCHITETTURE DI PROCESSORI (II)"

Transcript

1 (c) INTRODUZIONE ALLE ARCHITETTURE DI PROCESSORI (II) 1 IL PROCESSORE MIPS ISA RIDOTTO emips PROGRAMMAZIONE ASSEMBLY DELL emips MICROARCHITETTURA SINGOLO CICLO emips-sc SEQUENZA DELLE ARCHITETTURE CHE ANALIZZEREMO DURANTE IL CORSO FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc VALUTAZIONE DELLE PRESTAZIONI DEI PROCESSORI MICROARCHITETTURA MULTI-CICLO SEQUENZIALE emips-mc

2 2 LA FAMIGLIA DI PROCESSORI MIPS

3 LA FAMIGLIA MIPS 3 La prima versione dell ISA MIPS è una delle prime architetture di tipo RISC (Reduced Instruction Set Compnent) ed è stata sviluppata da John L. Hennessy. L ISA si è quindi evoluta in innumerevoli versioni ciascuna delle quali è stata implementata da diverse microarchitetture. Si parla di famiglia di processori Mips. Le più evolute versioni di processori MIPS sono attualmente integrate in dispositivi elettronici embedded di largo utilizzo. Consolle per l intrattenimento (la Playstation!!) Stampanti Laser Decoder TV Satellitare Router Navigatori satellitari per automobili Macchine fotografiche digitali

4 MIPS ISA: GENERALITA 4 L architettura dei processori della famiglia Mips è di tipo load/store: non è possibile operare direttamente sui dati residenti in memoria ma è necessario prima copiarli nei registri interni tramite istruzioni dedicate. E prevista la presenza di un moltiplicare integrato per dati a 32 bit con risultato a 64 bit. I registri interni visibili del Mips sono: 32 registri general purpose a 32 bit, il registro zero contiene 0 e non può essere modificato due registri a 32 bit, Hi e Lo, per memorizzare rispettivamente i 32 bit più significativi e i 32 bit meno significativi del risultato di moltiplicazione un registro Program Counter a 32 bit, che contiene l indirizzo dell istruzione da eseguire un registro Interrupt Address Register Registri per elaborazione Floating Point

5 MIPS R2000 ISA : ISTRUZIONI 5 Il documento che specifica l'instruction Set completo è disponibile sul sito community

6 MIPS R2000 ISA DEDICATO AGLI INTERI 6 Ci occuperemo del sottoinsieme dell ISA del MIPS R2000 (da ora in poi semplicemente MIPS ISA) dedicato agli interi. Trascureremo per motivi di tempo la gestione dell elaborazione floating point (che è comunque opzionale nella maggior parte degli ISA per elaborazione embedded) Il sottoinsieme dedicato agli interi consta di 75 istruzioni, che possono essere classificate per funzionalità: Istruzioni di lettura e scrittura dalla memoria (8) Istruzioni aritmetico-logiche (40) Istruzioni di scambio dati fra registri interni (4) Istruzioni di modifica del flusso di esecuzione Salto incondizionato (4) Salto condizionato (17)

7 MIPS ISA: FORMATO DELLE ISTRUZIONI 7 Le istruzioni sono a lunghezza fissa (32 bit), in tre possibili formati: 1. Immediate (I Type) opcode rs rt Immediate 6bit 5bit 5bit 16bit 2. Reg Type (R Type) opcode rs rt rd shamt function 6bit 5bit 5bit 5bit 5bit 6bit 3. Jump (J Type) opcode target 6bit 26bit

8 8 MIPS ISA RIDOTTO: emips

9 INSTRUCTION SET emips 9 Inizieremo la trattazione analizzando nel dettaglio microarchitetture semplificate che implementano un sottoinsieme minimo delle istruzioni, che chiameremo emips Non è implementata la moltiplicazione, non vi sono quindi istruzioni di scambio fra registri interni. L IS semplificato contiene almeno una istruzione per ciascuna delle categorie rimanenti: Istruzioni di lettura e scrittura dalla memoria (2 su 8) Istruzioni aritmetico-logiche (5 su 40) Istruzioni di scambio di dati tra registri interni (0 su 4) Istruzioni di modifica del flusso di esecuzione - Salto incondizionato (0 su 4) - Salto condizionato (1 su 17)

10 INSTRUCTION SET emips 10 load word (lw): carica su un registro interno un valore dalla memoria store word (sw): scrive in memoria il valore contenuto in un registro add : somma del valore di due registri subtract (sub): sottrazione tra il valore di due registri and: and logico bit a bit del contenuto di due registri or: or logico bit a bit del contenuto di due registri set on less than (slt): scrive 1 sul registro destinazione se il primo operando è minore del secondo, zero altrimenti. branch on equal (beq): salto condizionato all'uguaglianza dei valori contenuti nei 2 registri confrontati

11 INSTRUCTION SET emips 11 NOTAZIONE CON INDICAZIONE DI REGISTRI GENERICI DESCRIZIONE Load word Store word Add Subtract And Or Set on less than Branch if equal ASSEMBLY lw Rt, imm(rs) sw Rt, imm(rs) add Rd, Rs, Rt sub Rd, Rs, Rt and Rd, Rs, Rt or Rd, Rs, Rt slt Rd, Rs, Rt beq Rs, Rt, label1 FUNZIONALITA REGS[Rt] = Mem(REGS[Rs]+imm) Mem(REGS[Rs] + imm) = REGS[Rt] REGS[Rd] = REGS[Rs] + REGS[Rt] REGS[Rd] = REGS[Rs] REGS[Rt] REGS[Rd]= REGS[Rs] and REGS[Rt] REGS[Rd] = REGS[Rs] or REGS[Rt] if (REGS[Rs]<REGS[Rt]) REGS[Rd] = 1 if (REGS[Rs]==REGS[Rt]) PC = PC+4+imm N.B. REGS[Rs] = contenuto del registro Rs del register file imm = valore che concorre a definire la locazione di memoria interessata al trasferimento

12 INSTRUCTION SET emips 12 NOTAZIONE CON INDICAZIONE DI REGISTRI DI ESEMPIO DESCRIZIONE ASSEMBLY FUNZIONALITA Load word lw $3, 0x0100($2) REGS[$3] = Mem(REGS[$2]+0x0100) Store word sw $3, 0x0100($2) Mem(REGS[$2] + 0x0100) = REGS[$3] Add add $4, $2, $3 REGS[$4] = REGS[$2] + REGS[$3] Subtract sub $4, $2, $3 REGS[$4] = REGS[$2] REGS[$3] And and $4, $2, $3 REGS[$4]= REGS[$2] and REGS[$3] Or or $4, $2, $3 REGS[$4 = REGS[$2] or REGS[$3] Set on less than slt $4, $2, $3 if (REGS[$2]<REGS[$3]) REGS[$4] = 1 Branch if equal beq $2, $3, label1 if (REGS[$2]==REGS[$3]) PC = PC+4+imm N.B. $2 = REGISTRO 2 REGS[$2] = contenuto del registro $2 del register file

13 INSTRUCTION SET emips: GESTIONE DELLA MEMORIA L'ISA MIPS completo gestisce dati di 6 tipi diversi: a 8, 16, 32 bit in rappresentazione naturale o complemento a 2. Il sistema di memoria deve poter gestire tutti i tipi di dato esistenti, fornendo i dati in uscita nella maniera appropriata, a seconda del valore assunto dai bit di controllo associati (optype). Essendo il dato minimo a 8 bit, la locazione di memoria elementare deve essere di 8 01 // Most significant byte del dato 21 // byte 2 del dato AB // byte 3 del dato 00 // Least significant byte del dato 43 // Most significant byte del dato 01 // Least significant byte del dato C1 // Dato 3 DATO 1, a 32 bit: 0121AB00 DATO 2, a 16 bit: 4301 DATO 3, a 8 bit: C1 13 // MODELLO VERILOG DELLA MEMORIA DATI case (optype) (word) DataOut = {Data[Addr+0],Data[Addr+1],Data[Addr+2],Data[Addr+3]}; (halfword) DataOut = {16 h0000,data[addr+0],data[addr+1]}; (byte) DataOut = {24 h000000, Data[Addr] }; endcase

14 INSTRUCTION SET emips: GESTIONE DELLA MEMORIA 14 Per non escludere la possibilità che al processore sia associato un sistema di memoria con memoria dati ed istruzioni non separate (memoria unica, modello di Von Neumann) è necessario che anche la memoria istruzioni sia indirizzabile un byte alla volta, nonostante le istruzioni siano sempre di 4 byte Ciò implica che l'aggiornamento del PC sia di 4 in 01 // Most significant byte dell istr 00 // Least significant byte dell istr 43 // Most significant byte dell istr 01 // Least significant byte dell istr 2 ISTRUZIONE 1:0121AB00 ISTRUZIONE 2: 4301C101 // MODELLO VERILOG DELLA MEMORIA INSTRUZIONI DataOut = {Data[Addr+0],Data[Addr+1],Data[Addr+2],Data[Addr+3]};

15 15 PROGRAMMAZIONE ASSEMBLY DEL PROCESSORE emips-sc

16 PROGRAMMAZIONE ASSEMBLY: ISTRUZIONI DI ASSEGNAMENTO SIMULAZIONE emips_s1 16 Specifica C integer A,B,C; // dati a 32 bit C= A + B; Specifica aggiuntiva 1: memoria dati B emips assembly lw $1,0x0100($0) lw $2, 0x0104($0) add $3,$2,$1 sw $3, 0x0200($0) Specifica aggiuntiva 2: memoria dati (t=fine C

17 PROGRAMMAZIONE ASSEMBLY: ESECUZIONE CONDIZIONALE (2) 17 L'ESECUZIONE CONDIZIONALE PUÒ ESSERE GESTITA TRAMITE L'USO DI ISTRUZIONI DI SALTO CONDIZIONATO E DI SALTO INCONDIZIONATO. if (cond) A; else B; branch(cond==1),taga; tagb: B; branch(1),end; taga: A; end: if (cond) A; branch(cond==1),taga; branch(1),end; taga: A; end:

18 PROGRAMMAZIONE ASSEMBLY: ESECUZIONE CONDIZIONALE (1) SIMULAZIONE emips_s2 18 Specifica C integer A,B,C; // dati a 32 bit if (A!=B) C = A + B; else C = A - B; Specifica aggiuntiva 1: memoria dati B Specifica aggiuntiva 2: memoria dati (t=fine C emips assembly lw $1,0x0100($0) lw $2, 0x0104($0) beq $1,$2, else_tag if_tag: add $3,$2,$1 beq $0,$0, store else_tag: sub $3,$2,$1 store: sw $3, 0x0200($0)

19 PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (1) 19 SIMULAZIONI emips_s3 ed emips_s4: SPECIFICA C Specifica C integer acc; // dati a 32 bit integer a[16]; acc = 0; for( i=0; i<16;i++ ) acc=acc+a[i]; Specifica aggiuntiva 1: memoria dati 0x4 Specifica aggiuntiva 2: memoria dati (t=fine acc

20 PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (2) 20 L'ESECUZIONE CICLICA (LOOP) VIENE GESTITA TRAMITE L'UTILIZZO DI UN REGISTRO CONTATORE CHE: VIENE INIZIALIZZATO ALL'ESTERNO DEL LOOP IN FUNZIONE DEL NUMERO DI ITERAZIONI DA ESEGUIRE VIENE AGGIORNATO AD OGNI ITERAZIONE DEL LOOP VIENE TESTATO AD OGNI ITERAZIONE DEL LOOP, IL TEST CHE VERIFICA LA FINE DEL CICLO NE INTERROMPE L'ESECUZIONE L'ACCESSO AGLI ELEMENTI DI UN VETTORE CON INDICE DIPENDENTE DALL'INDICE DEL LOOP PUO' ESSERE GESTITA TRAMITE UN REGISTRO PUNTATORE CHE: VIENE INIZIALIZZATO ALL'ESTERNO DEL LOOP VINE UTILIZZATO AD OGNI ITERAZIONE DEL LOOP PER COMPORRE L'INDIRIZZO DELLA LOCAZIONE DI VIENE AGGIORNATO AD OGNI ITERAZIONE DEL LOOP. L'AGGIORNAMENTO DIPENDE DAL NUMERO DI LOCAZIONI DI MEMORIA OCCUPATE DA CIASCUN ELEMENTO DEL VETTORE

21 PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (3) 21 SIMULAZIONE emips_s3: CODIFICA ASSEMBLY UTILIZZO DEI REGISTRI $1 HA LA FUNZIONE DI REGISTRO ACCUMULATORE $2 HA LA FUNZIONE DI CONTATORE DEL LOOP $3 HA LA FUNZIONE DI PUNTATORE ALL'ELEMENTO CORRENTE DEL VETTORE $4 MEMORIZZA LA COSTANTE USATA PER AGGIORNARE IL REGISTRO CONTATORE $5 MEMORIZZA LA COSTANTE USATA PER AGGIORNARE IL REGISTRO PUNTATORE $6 MEMORIZZA LA COSTANTE USATA PER IL TEST DI FINE CICLO $7 HA LA FUNZIONE DI BUFFER TEMPORANEO LA SEQUENZA UTILIZZATA E' CRESCENTE, DALL'ELEMENTO 1 ALL'ELEMENTO 15. L'ELEMENTO 0 E' UTILIZZATO PER INIZIALIZZARE L'ACCUMULATORE

22 PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (4) 22 SIMULAZIONE emips_s3: CODIFICA ASSEMBLY lw $1,0x100($0) ; inizializza il registro accumulatore $1 col dato a[0] add $2,$0,$0 ; inizializza il reg contatore $2 a 0 add $3,$0,$0 ; inizializza il reg puntatore $3 a 0 lw $4,0x400($0) ; inizializza il reg $4 utilizzato per aggiornare il registro contatore lw $5,0x404($0) ; inizializza il reg $5 utilizzato per aggiornare il reg puntatore lw $6,0x408($0) ; inizializza il registro utilizzato per il test di fine ciclo a 15=0xF loop: add $2,$2,$4 ; aggiorna il registro contatore sommando 1 add $3,$3,$5 ; aggiorna il registro puntatore sommando 4 lw $7, 0x100($3); carica il dato a[i] sul registro buffer $7, la seq è 1,2,..,15. add $1,$1,$7 ; aggiorna l'accumulatore sommando il buffer beq $2,$6,store ; fa il test del registro contatore, se $2=$6 interrompe il ciclo beq $0,$0, loop ; salta all'inizio del ciclo store: sw $1,0x200($0) ; scrive il risultato in memoria ;la coppia di istruzioni seguente provoca lo stop della simulazione lw $10, 0x500($0); sw $0, 0x0($10) ;

23 PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (5) 23 SIMULAZIONE emips_s4: CODIFICA ASSEMBLY E' POSSIBILE UTILIZZARE UN SOLO REGISTRO CHE ACCORPI LE FUNZIONALITA' DI REGISTRO CONTATORE E DI REGISTRO PUNTATORE IN QUESTO CASO L'INIZIALIZZAZIONE E L'AGGIORNAMENTO DEL REGISTRO, NONCHE' IL TEST DI FINE CICLO, VANNO GESTITI IN FUNZIONE DEL FATTO CHE LA FUNZIONALITA' DI REGISTRO PUNTATORE RICHIEDE L'ACCESSO A DATI CHE POSSONO OCCUPARE PIU' LOCAZIONI DI MEMORIA

24 PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (6) 24 SIMULAZIONE emips_s4: CODIFICA ASSEMBLY UTILIZZO DEI REGISTRI $1 HA LA FUNZIONE DI REGISTRO ACCUMULATORE $2 HA LA FUNZIONE DI CONTATORE DEL LOOP E ANCHE DI PUNTATORE ALL'ELEMENTO CORRENTE DEL VETTORE $3 HA LA FUNZIONE DI BUFFER TEMPORANEO $4 MEMORIZZA LA COSTANTE USATA PER AGGIORNARE IL REGISTRO CONTATORE-PUNTATORE LA SEQUENZA UTILIZZATA E' STAVOLTA DECRESCENTE, DALL'ELEMENTO 15 ALL'ELEMENTO 1. L'ELEMENTO 0 E' UTILIZZATO PER INIZIALIZZARE L'ACCUMULATORE

25 PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (7) 25 SIMULAZIONE emips_s4: CODIFICA ASSEMBLY lw $1,0x100($0) ; inizializza l'accumulatore col dato a[0] lw $2,0x400($0) ; inizializza il reg contatore/puntatore $2 lw $4,0x404($0) ; inizializza il reg utilizzato per aggiornare il reg contatore/puntatore loop: lw $3, 0x100($2); carica il dato su $3, la seq è 15,14,..,1. sub $2,$2,$4 ; aggiorna il registro contatore/puntatore sottraendo 4 add $1,$1,$3 ; aggiorna l'accumulatore beq $2,$0,store ; fa il test del registro contatore/puntatore, se $2=0 interrompe il ciclo beq $0,$0, loop ; salta all'inizio del ciclo store: sw $1,0x200($0); scrive il risultato in memoria ;la coppia di istruzioni seguente provoca lo stop della simulazione lw $10, 0x500($0); sw $0, 0x0($10);

26 26 MICROARCHITETTURA SINGOLO CICLO emips-sc

27 ARCHITETTURA DI MEMORIA 27 L architettura di memoria è di Harvard: vi sono 2 memorie separate, una per i dati ed una per le istruzioni. MemRead MemWrite Instr_addr_bus proc_dout_bus INSTRUCTIONS MEMORY Instr_Data_bus emips-sc proc_din_bus Addr_bus DATA MEMORY clk rst clk

28 CARICAMENTO DELLE ISTRUZIONI (FETCH) 28 La prima operazione da eseguire all inizio di ciascuna istruzione è la lettura dell istruzione stessa dalla memoria. Questa operazione è chiamata fetch. Il registro Program Counter contiene l indirizzo da cui leggere l istruzione La fase di fetch si conclude con l incremento del Program Counter in modo che contenga l indirizzo dell istruzione successiva da leggere e quindi eseguire. Il flusso di esecuzione normale del programma è quindi sequenziale. Il PC viene incrementato di 4 anzichè di 1 perchè si suppone sempre di indirizzare una memoria indirizzabile a singoli byte, mentre le istruzioni sono di 4 byte ciascuna. PC nextpc PC_out 4 PC ADDER INSTRUCTION DATA DECODIFICA, LETTURA DEI REGISTRI ECC. INSTRUCTION ADDRESS INSTRUCTIONS MEMORY

29 COMPLETAMENTO DELL ISTRUZIONE LOAD 29 Copia un dato residente in memoria in uno dei registri del register file. L indirizzo di accesso alla memoria è la somma dell immediato e del contenuto del registro rs. Il registro rt è il registro destinazione DESCRIZIONE Load word ASSEMBLY lw Rt, imm(rs) FUNZIONALITA Rt = Mem[Rs+imm] RegWrite Instr[25:21] RaddrA ALU Operation opcode rs rt Immediate Instr[20:16] RaddrB Waddr DataIn REG FILE A B ALU Instr[15:0] IMMEDIATE EXTENDER INSTRUCTIONS MEMORY DataOut AddrIn DATA MEMORY

30 COMPLETAMENTO DELL ISTRUZIONE STORE 30 Copia il dato contenuto di uno dei registri del register file in una locazione di memoria. L indirizzo di accesso alla memoria è la somma dell immediato e del contenuto del registro rs. Il registro rt contiene l indirizzo di memoria sul quale scrivere il dato DESCRIZIONE Store word ASSEMBLY sw Rt, imm(rs) FUNZIONALITA Mem[Rs+imm] = Rt RegWrite opcode rs rt Immediate Instr[25:21] Instr[20:16] RaddrA RaddrB REG Waddr FILE DataIn A B ALU Operation ALU Instr[15:0] IMMEDIATE EXTENDER INSTRUCTIONS MEMORY DataIn AddrIn DATA MEMORY

31 COMPLETAMENTO DELLE ISTRUZIONI ARITMETICO-LOGICHE 31 La ALU compie l operazione specificata dal campo function I 2 operandi sono specificati dal contenuto dei campi rs ed rt. Il risultato va in ingresso al registro specificati dal contenuto dei campi rd DESCRIZIONE Add ASSEMBLY add Rd, Rs, Rt FUNZIONALITA Rd = Rs + Rt RegWrite opcode rs rt rd shamt function Instr[25:21] Instr[20:16] Instr[15:11] RaddrA RaddrB Waddr DataIn REG FILE A B ALU Operation ALU Instr[15:0] INSTRUCTIONS MEMORY

32 COMPLETAMENTO DELLE ISTRUZIONE BRANCH EQUAL 32 Modifica condizionalmente il flusso sequenziale di esecuzione scrivendo il contenuto del campo immediate sul PC nel caso si verifichi la condizione di uguaglianza fra i 2 registri puntati dai campi rs ed rt La ALU genera un segnale di controllo che segnala se il risultato di una operazione è nullo (segnale zero). Si esegue la sottrazione tra i contenuti dei registri rs e rt. Il segnale zero controlla un mux che permette di condividere l ingresso del PC tra PC+4 e l indirizzo di salto. L indirizzo di salto si ottiene sommando PC+4 all immediato (offset). DESCRIZIONE Branch if equal ASSEMBLY beq Rs, Rt, offset FUNZIONALITA if (Rs==Rt) PC = PC+offset opcode rs rt Immediate Instr[25:21] Instr[20:16] RaddrA RegWrite RaddrB REG Waddr FILE DataIn A B PC+4 2 shift ADD Branch zero ALU PC+4 and 0 1 PCSrc PC INSTRUCTIONS MEMORY Instr[15:0] IMMEDIATE EXTENDER

33 COMPOSIZIONE DEL DATAPATH 33 Possiamo ottenere il datapath dall unione dei pezzi di datapath dedicati alla singole classi di istruzioni basandoci sul massimo riutilizzo delle risorse. La maggior parte delle risorse possono infatti essere condivisa da più classi di istruzioni Quando una porta può ricevere segnali diversi a seconda dell istruzione è richiesta la presenza di un multiplexer per condividere la porta. il campo rs dell istruzione va sempre nell ingresso RaddrA del register file il campo rt dell istruzione va sempre nell ingresso RaddrB del register file in ingresso a Waddr può andare o il campo rt o il campo rd a seconda del valore dell opcode Il primo operando della ALU è sempre la prima uscita del register file Il secondo operando della ALU può essere la seconda uscita del register file o l immediato esteso a 32 bit a seconda del valore dell opcode L ingresso DataIn del register file può essere il dato in lettura dalla memoria oppure il risultato della ALU.

34 DATAPATH 34

35 DATAPATH + BLOCCHI AUSILIARI DI CONTROLLO 35

36 MICROARCHITETTURA COMPLETA 36

37 IMPLEMENTAZIONE DEL CONTROLLO 37 Il controllo è implementato tramite una RETE COMBINATORIA che prende in ingresso il campo opcode dell istruzione e produce gli 8 segnali di controllo, 2 che vanno alla alla memoria dati esterna, e 6 che controllano i registri, i mux e gli altri moduli combinatori del datapath opcode 6 Control 2 Regdst RegWrite ALUSrc ALUOp Branch MemtoReg Jump MemRead MemWrite

38 CARICAMENTO DELLE ISTRUZIONI (FETCH) 38 La prima operazione da eseguire all inizio di ciascuna istruzione è la lettura dell istruzione stessa dalla memoria. Questa operazione è chiamata fetch. Il registro Program Counter contiene l indirizzo da cui leggere l istruzione La fase di fetch si conclude con l incremento del Program Counter in modo che contenga l indirizzo dell istruzione successiva da leggere e quindi eseguire. Il flusso di esecuzione normale del programma è quindi sequenziale. Il PC viene incrementato di 4 anzichè di 1 perchè si suppone sempre di indirizzare una memoria indirizzabile a singoli byte, mentre le istruzioni sono di 4 byte ciascuna.

39 DECODIFICA / LETTURA DEI REGISTRI 39 La fase di lettura dei registri prevede che i campi rs ed rt indirizzino il file dei registri e che il campo immediato sia decodificato In questo modo tutti i possibili operandi sono pronti per la fase di esecuzione.

40 FASI DI ESECUZIONE, LETTURA MEMORIA E RISCRITTURA DELL' ISTRUZIONI LW Copia un dato residente in memoria in uno dei registri del register file. L indirizzo di accesso alla memoria è la somma dell immediato e del contenuto del registro rs. Il registro rt è il registro destinazione DESCRIZIONE ASSEMBLY FUNZIONALITA 40 Load word lw Rt, imm(rs) Rt = Mem[Rs+imm]

41 FASI DI ESECUZIONE E LETTURA MEMORIA DELL' ISTRUZIONI SW Copia il dato contenuto di uno dei registri del register file in una locazione di memoria. L indirizzo di accesso alla memoria è la somma dell immediato e del contenuto del registro rs. Il registro rt contiene l indirizzo di memoria sul quale scrivere il dato 41 DESCRIZIONE Store word ASSEMBLY sw Rt, imm(rs) FUNZIONALITA Mem[Rs+imm] = Rt

42 FASI DI ESECUZIONE E RISCRITTURA DELLE ISTRUZIONI ARITMETICO-LOGICHE 42 La ALU compie l operazione specificata dal campo function I 2 operandi sono specificati dal contenuto dei campi rs ed rt. Il risultato va in ingresso al registro specificati dal contenuto dei campi rd DESCRIZIONE Add ASSEMBLY add Rd, Rs, Rt FUNZIONALITA Rd = Rs + Rt

43 FASI DI ESECUZIONE ED EVENTUALE SALTO DELL ISTRUZIONE BRANCH IF EQUAL Modifica condizionalmente il flusso sequenziale di esecuzione scrivendo il contenuto del campo immediate sul PC nel caso si verifichi la condizione di uguaglianza fra i 2 registri puntati dai campi rs ed rt La ALU genera un segnale di controllo che segnala se il risultato di una operazione è nullo (segnale zero). Si esegue la sottrazione tra i contenuti dei registri rs e rt. Il segnale zero controlla un mux che permette di condividere l ingresso del PC tra PC+4 e l indirizzo di salto. L indirizzo di salto si ottiene sommando PC+4 all immediato (offset). DESCRIZIONE Branch if equal ASSEMBLY beq Rs, Rt, offset FUNZIONALITA if (Rs==Rt) PC = PC+offset 43

44 MICROARCHITETTURA SINGOLO CICLO emips-sc 44 PER CHI VOLESSE APPROFONDIRE (?), UNA DESCRIZIONE PIU' DETTAGLIATA SI TROVA IN UNO DEI SEGUENTI LIBRI a) David A. Patterson, John L. Hennessy - "Computer Organization and Design: The Hardware/Software Interface, 2nd Edition" b) David A. Patterson, John L. Hennessy - "Struttura e Progetto dei Calcolatori -- l'interfaccia Hardware-Software"; Zanichelli - ISBN (disponibile in commercio) c) Dominic Sweetman - "See MIPS run "; Morgan Kaufmann; 1st edition (April 15, 1999) - ISBN: (36.99 $ + shipping direttamente da morgan kaufmann) Paragrafi 5.1, 5.2, 5.3.

45 45 SEQUENZA DELLE ARCHITETTURE CHE ANALIZZEREMO DURANTE IL CORSO

46 SEQUENZA DI ARCHITETTURE MIPS Architettura singolo ciclo IS ridotto - emips-sc (teoria+simulaz) 2. Architettura multiciclo IS ridotto - emips-mc (teoria) 3. Architettura multiciclo IS completo (integer) - MIPS-mc (teoria+simulaz) 4. Architettura pipelined IS completo (integer) - MIPS-pipe (teoria)

47 47 MIPS: TRADUZIONE ASSEMBLY -> LINGUAGGIO MACCHINA

48 MIPS: TRADUZIONE ASSEMBLY => LINGUAGGIO MACCHINA 48 CODIFICA IN LINGUAGGIO MACCHINA: emips_s2-istr #0 lw $1, 0x100($0) // inizializza l accumulatore col dato a[0] Istruzioni I-type: lw Rt, Imm(Rs) opcode Rs Rt Immediate 6 bit 5 bit 5 bit 16 bit ASM Op=6h 23 Rs=$0 Rt=$1 Imm=16h 100 BIN BIN HEX 8 c HEX 8c010100

49 MIPS: TRADUZIONE ASSEMBLY => LINGUAGGIO MACCHINA 49 CODIFICA IN LINGUAGGIO MACCHINA: emips_s2-istr #1 lw $2, 0x104($0) // inizializza l accumulatore col dato a[0] Istruzioni I-type: lw Rt, Imm(Rs) opcode Rs Rt Immediate 6 bit 5 bit 5 bit 16 bit ASM Op=6h 23 Rs=$0 Rt=$2 Imm=16h 104 BIN BIN HEX 8 c HEX 8c020104

50 50 FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc

51 MODELLO VERILOG DEL PROCESSORE 51 MODELLO VERILOG DEL SISTEMA COMPLETO La gerarchia del modello verilog del sistema è la seguente: testbench.v (istanza testbench) instructions_rom.v (istanza InstrROM) data_ram.v (istanza DataRAM) emips_sc.v (istanza MIPS) pc_reg.v (istanza PC) pc_adder.v (istanza NPC)...

52 FRAMEWORK DI SVILUPPO (I) 52 file instructions.hex MIPS ASSEMBLER CON CONVERSIONE IN UN FORMATO LEGGIBILE DAL SIMULATORE VERILOG (READMEMH) CODICE ASSEMBLY MEMORIA ISTRUZIONI (MODELLO VERILOG) INSTRUCTIONS BUS INSTR ADDRESSES BUS MIPS (MODELLO VERILOG) DATA BUS DATA ADDRESSES BUS MEMORIA DATI (MODELLO VERILOG) SIMULATORE VERILOG (MODELSIM) DATI INIZIALI CONVERSIONE IN UN FORMATO LEGGIBILE DAL SIMULATORE VERILOG (READMEMH) file data_ram.hex

53 FRAMEWORK DI SVILUPPO (II) STRUTTURA DI FILE E DIRECTORY 53 emips-sc_s3 S3.mpf compila.bat emips_s3.asm HEX instructions.hex data_ram.hex ASM file eseguibili dell'assembler... VERILOG testbench_emips_s3.v Memories emips-sc

54 FRAMEWORK DI SVILUPPO (III) SEQUENZA DELLE OPERAZIONI PER LA SIMULAZIONE DELLE APPLICAZIONI 1. Creare il progetto e caricare i file verilog. Il progetto va creato nella cartella cartella2, allo stesso livello delle cartelle HEX e VERILOG. 2. Caricare anche i file assembla.bat, emips_s3.asm, instructions.hex, data_ram.hex 3. Editare il file assembly nella directory ASM. 4. Lanciare il comando assembla.bat rieditando il file instructions.hex fino a verificare che non ci siano più errori 5. Editare il file data_ram.hex per definire l'inizializzazione dei dati iniziali e delle ostanti del programma 6. Impostare la simulazione (modificando opportunamente il testbench) in modo che si stoppi all esecuzione di ogni istruzione oppure solo alla fine della stessa. 7. Compilare il progetto, caricare il top del progetto, e lanciare la simulazione. 8. MONITORARE IL FUNZIONAMENTO DELLA SIMULAZIONE VERIFICANDO CHE I REGISTRI E LE LOCAZ DI MEMORIA INTERESSATI ASSUMANO IL VALORE CORRETTO. Per verificare la sequenza delle istruzioni utilizzare come promemoria i file emips_sx.asm ed instructions.hex. 54

55 FRAMEWORK DI SVILUPPO (IV) STOP DELLA SIMULAZIONE I sistemi di sviluppo dei compilatori mettono a disposizione la possibilità di eseguire dei breakpoints, stoppando la simulazione. Una funzionalità di questo tipo risulta molto utile quando si vuole stoppare la simulazione solo alla fine della stessa. Questa funzionalità è stata implementata nel nostro framework facendo interagire il fw ed il simulatore verilog. Una coppia di istruzioni assembly, accoppiate ad un processo verilog nel testbench, fanno si che all'esecuzione di questa coppia di istruzioni la simulazione sia stoppata tramite una istruzione $stop. La coppia di istruzioni assembly fa si che il processore tenti una scrittura del valore 0 sulla locazione 0x7FFF. La scrittura non ha alcun esito poichè non vi è alcuna locazione di memoria a quell'indirizzo (..) Il processo dedicato esegue la funzione stop e fa il display di una scritta che indica la fine della simulazione 55 ASSEMBLY LEVEL - FRAMMENTO DI CODICE... lw $10, 0x500($0); sw $0, 0x0($10) ;... ASSEMBLY LEVEL - INIZIALIZZ MEMORIA F FF... VERILOG LEVEL - PROCESSO DEDICATO PER IL BREAKPOINT clk) if ( (data_addr_bus == (32'h7FFF)) && (MemWrite == 1)) begin $display(" \n \n STOP FW-SW DELLA SIMULAZIONE \n \n \n \n \n \n \n \n \n "); $stop; end

56 56 VALUTAZIONE DELLE PRESTAZIONI DEI PROCESSORI

57 METRICA DI MISURA 57 La figura di merito utilizzata per la valutazione delle prestazioni di un processore è il Tempo Medio di Istruzione. Tempo Medio di Instruzione = TMI = CPI x CC CPI = numero medio di cicli necessari per l'esecuzione di una istruzione (Clock per Instruction) CC = Clock Cycle = durata del ciclo di clock

58 VALUTAZIONE DELL'ARCHITETTURA SINGOLO CICLO PERCHE' NON SI USANO MICROARCHITETTURE A SINGOLO CICLO Anche se l implementazione a singolo ciclo di clock funziona perfettamente ed è molto semplice, non è usata perché rispetto ad altri tipi di implementazione è inefficiente. TMI = CPI x CC = 1 x CC = CC La durata del ciclo di clock dipende dal tempo che il segnale più lento impiega a percorrere il datapath. Il ciclo di clock deve durare a sufficienza affinchè ciascun segnale in uscita da un registro si sia propagato completamente fino all'ingresso del registro di destinazione che lo deve memorizzare. Il CC è quindi determinato dal segnale o meglio dal percorso del segnale più lento (percorso critico). Nella architettura singolo-ciclo la quantità ed il tipo di reti combinatorie da attraversare sono molto diversi per classi diverse di istruzione, quindi il tempo di propagazione attraverso il datapath sarà molto diverso. Tuttavia il periodo di clock deve essere uguale per ogni istruzione quindi deve essere pari al percorso critico dell istruzione più lenta. Approssimativamente l'istruzione più lenta è quella che deve attraversare il maggior numero di unità funzionali, nel caso è emips-sc l istruzione load, che attraversa anche il sottosistem di memoria 58

59 VALUTAZIONE DELL'ARCHITETTURA SINGOLO CICLO PERCHE' NON SI USANO MICROARCHITETTURE A SINGOLO CICLO La microarchitettura singolo ciclo prevede che tutte le istruzioni potenzialmente più veloci siano rallentate per uniformarsi all istruzione più lenta Questo è estremamente inefficiente. TMI = CPI x CC CPI = OK CC = Per raggiungere prestazioni più accettabili procediamo per gradi: Inizialmente sacrifichiamo il CPI in modo da avere un valore di CC più accettabile. Per fare ciò suddividiamo la esecuzione di ciascuna istruzione in fasi più semplici, ed eseguiamo ciascuna fase in un ciclo di clock. Nel nostro caso CPI = 5. Il risultato è la microarchitettura multiciclo sequenziale emips-mc Stiamo (per ora) sacrificando il CPI per poter ottimizzare il CC. Vedremo in seguito come tenendo basso il CC è possibile ritornare ad un CPI vicino a 1. 59

60 60 MICROARCHITETTURA MULTI- CICLO emips-mc

61 MICROARCHITETTURA SEQUENZIALE 61 In una microarchitettura di tipo sequenziale il datapath è suddiviso in più parti ciascuna delle quali è percorsa dall istruzione in un ciclo di clock. In un ciclo di clock una parte del datapath preleva i dati da uno o più registri, li elabora attraverso blocchi di logica combinatoria e memorizza i risultati in altri registri. Le uscite di questi registri saranno utilizzati nel ciclo successivo di clock nella porzione successiva del datapath. State element 1 LO GICA COMBINAT. State element 2 LO GICA COMBINAT. State element 3 LO GICA COMBINAT. State element 4 clock

62 MICROARCHITETTURA SEQUENZIALE 62 La suddivisione del datapath rispecchia la suddivisione dell esecuzione dell istruzione in operazioni elementari ciascuna eseguita in un ciclo di clock. In un ciclo di clock ogni unità funzionale può compiere una sola operazione: per esempio, si può effettuare un solo accesso alla memoria, la ALU può eseguire una sola operazione e si può eseguire un solo accesso al register file (due letture e una scrittura). Le operazioni elementari in cui dividiamo l esecuzione delle istruzioni sono 5: FETCH DECODE EXECUTE MEMORY ACCESS WRITE BACK

63 MICROARCHITETTURA SEQUENZIALE FASI DI ESECUZIONE INDIVIDUABILI NELLA MICROARCHITETTURA SINGOLO CICLO 63 (scan di figura 6.1 libro)

64 MICROARCHITETTURA SEQUENZIALE FASI DI ESECUZIONE DELLA MICROARCHITETTURA MULTI CICLO 64 (scan di figura 5.38 libro)

65 MICROARCHITETTURA SEQUENZIALE DESCRIZIONE AD ALTO LIVELLO DEL DATAPATH 65 (scan di figura 5.34 del libro)

66 MICROARCHITETTURA SEQUENZIALE COMPLETA 66 Possiamo costruire il datapath per la versione multiciclo sulla base dell' osservazione che alcune unità funzionali che nella versione a singolo ciclo erano state replicate, in questo caso possono essere condivise perché non vengono mai usate per due scopi diversi nello stesso ciclo di clock E' possibile usare una sola memoria sia per i dati che per le istruzioni dal momento che l istruzione è sempre caricata nella fase di IF mentre la lettura o scrittura dei dati avviene sempre nel quarto ciclo di clock. (architettura di VON NEUMANN) E' possibile usare la ALU anche per calcolare PC+4, che avviene sempre nella fase di IF, e per calcolare l indirizzo di salto condizionato, che avviene sempre nella fase di ID, mentre tutte le altre operazioni sono eseguite dalla ALU nel terzo ciclo di clock. Queste condivisioni sono possibili solo con l utilizzo di multiplexer.

67 MICROARCHITETTURA SEQUENZIALE: CICLI DI ESECUZIONE CICLO 1: FETCH Viene caricata sul registro IR l istruzione contenuta nell indirizzo della memoria istruzioni contenuto nel PC. Nello stesso tempo il PC viene aggiornato con il suo stesso valore incrementato di quattro IR <= InstrMem[PC]; PC <= PC+4; PC nextpc PC_out 4 PC ADDER INSTRUCTION DATA IR 67 INSTRUCTION ADDRESS INSTRUCTIONS MEMORY

68 MICROARCHITETTURA SEQUENZIALE: CICLI DI ESECUZIONE CICLO 2: DECODE (I) Si leggono dal register file i valori dei registri puntati dai campi rs e rt dell istruzione e vengono memorizzati rispettivamente nei registri A e B. Nel frattempo i 16 bit meno significativi dell istruzione vengono estesi a 32 bit e moltiplicati per quattro. Il risultato di queste due operazioni non necessita di essere memorizzato in un registro al termine del ciclo di clock perché l uscita dell IR non cambierà fino al prossimo fetch. Viene eseguita la somma dell immediato esteso a 32 bit e moltiplicato per quattro e di PC+4, il risultato viene memorizzato sul registro ALUOut. Questa operazione serve nel caso in cui l istruzione in esecuzione sia BEQ per calcolare l indirizzo di salto condizionato. In tutti gli altri casi il risultato dell operazione sarà ignorato. Questa fase è uguale per tutte le operazioni perché sarà nella fase successiva che si scarteranno i valori che non servono. Per esempio in una istruzione di load il contenuto del registro B non serve, quindi verrà scartato. PC RegWrite ADD ALUOut 68 Instr[25:21] RaddrA A A Instr[20:16] RaddrB Waddr Register File B B DataIn Instr[15:0] Imm Ext left shifter

69 MICROARCHITETTURA SEQUENZIALE: CICLI DI ESECUZIONE CICLO2: DECODE (II) 69 PC RegWrite ADD ALUOut Instr[25:21] RaddrA A A Instr[20:16] RaddrB Waddr Register File B B DataIn Instr[15:0] Imm Ext left shifter

70 MICROARCHITETTURA SEQUENZIALE: CICLI DI ESECUZIONE CICLO 3: EXECUTE - CASO MEMORY REFERENCE La terza fase dipende dal tipo di istruzione che si sta eseguendo la ALU esegue la somma del contenuto del registro A e dell immediato esteso a 32 bit (non shiftato). Il risultato, che è l indirizzo di lettura o scrittura in memoria, viene memorizzato nel registro ALUOut. 70 Instr[15:0] A Imm Ext ALU ALUOut

71 MICROARCHITETTURA SEQUENZIALE: CICLI DI ESECUZIONE CICLO 3: EXECUTE - CASO REGISTER la ALU esegue l operazione specificata dal campo function sui contenuti dei registri A e B Il risultato viene memorizzato nel registro ALUOut 71 A B ALU ALUOut Instr[5:0] ALU ctrl signal ALU_ctrl ALUOp

72 MICROARCHITETTURA SEQUENZIALE: CICLI DI ESECUZIONE CICLO 3: EXECUTE - CASO BEQ La ALU esegue la sottrazione tra i valori dei registri A e B. L uscita zero della ALU va in ingresso alla logica combinatoria che genera, in funzione dei segnali di controllo PCWriteCond e PCWrite, il segnale che abilita la scrittura del PC. Il PC viene sempre aggiornato con PC+4 alla fine del ciclo IF; in questa fase verrà nuovamente aggiornato con l uscita del registro ALUOut scritto nel ciclo precedente se l istruzione in esecuzione è BEQ e la condizione di salto è verificata. PC_Write_Cond PC_Write 72 A zero B ALU ALUOut PC ALU ctrl signal Instr[5:0] ALU_ctrl ALUOp

73 MICROARCHITETTURA SEQUENZIALE: CICLI DI ESECUZIONE CICLO 4: MEMORY - CASO LOAD Questa fase è presente solo per le istruzioni di lettura e scrittura in memoria e per le istruzioni RegType e il comportamento cambia a seconda che l istruzione sia una load, una store o RegType la memoria fornisce il dato presente nella locazione puntata dall indirizzo calcolato nel ciclo precedente e salvato nel registro ALUout Tale dato viene memorizzato nel registro MDR (Memory Data Register) 73 ALUOut MDR Memory Address Memory DataOut

74 MICROARCHITETTURA SEQUENZIALE: CICLI DI ESECUZIONE CICLO 4: MEMORY - CASO STORE Il dato contenuto nel registro B viene scritto in memoria alla locazione puntata dall indirizzo calcolato nel ciclo precedente e memorizzato nel registro ALUout 74 ALUOut B Memory Address Memory DataIn

75 MICROARCHITETTURA SEQUENZIALE: CICLI DI ESECUZIONE CICLO 4: MEMORY - CASO REGISTER Il contenuto del registro ALUOut, scritto nel ciclo precedente con il risultato della ALU, deve essere memorizzato nel registro del register file puntato dal campo rd dell istruzione, ancora memorizzata nell IR. 75 instr[15:11] Waddr DataIn REGISTER FILE ALUOut

76 MICROARCHITETTURA SEQUENZIALE: CICLI DI ESECUZIONE CICLO 5: WRITE BACK Quest ultima fase è compiuta solo dall istruzione di load Il contenuto del registro MDR viene memorizzato nel registro del register file puntato dal campo rt dell istruzione, che è ancora memorizzata nell IR 76 instr[20:16] Waddr DataIn REGISTER FILE MDR

77 MICROARCHITETTURA SEQUENZIALE DATAPATH 77 (scan di figura 5.35 del libro)

78 MICROARCHITETTURA SEQUENZIALE DATAPATH CON INDICAZIONE DEI SEGNALI DI CONTROLLO (scan di figura 5.36 del libro) 78

79 MICROARCHITETTURA SEQUENZIALE RIASSUNTO CICLI DI ESECUZIONE 79 (scan di figura 5.38 del libro)

80 IMPLEMENTAZIONE DEL CONTROLLO 80 Il controllo può essere implementato con una semplice macchina a stati (FSM) Il diagramma di flusso di una possibile macchina a stati che implementa il controllo della microarchitettura emips-mc è descritto in figura Sono presenti 9 stati L'esecuzione di una istruzione può essere completata in 3, 4 o 5 cicli. IF ID Memory reference RegType branch jump MAC EX BC JC load store LMA SMA RC MRC

LA FAMIGLIA DI PROCESSORI MIPS

LA FAMIGLIA DI PROCESSORI MIPS 1 INTRODUZIONE ALLA PROGRAMMAZIONE ASSEMBLY DI PROCESSORI MIPS IL PROCESSORE MIPS ISA RIDOTTO emips PROGRAMMAZIONE ASSEMBLY DELL emips FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

Dettagli

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

L'architettura del processore MIPS

L'architettura del processore MIPS L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento

Dettagli

(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI

(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI 1 (a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI ISA E MICROARCHITETTURA DI PROCESSORI IL PROCESSORE MU0 MODELLAZIONE VERILOG E SIMULAZIONE DEL PROCESSORE MU0 2 ISA E MICROARCHITETTURA

Dettagli

Il processore: unità di elaborazione

Il processore: unità di elaborazione Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

L unità di controllo di CPU a singolo ciclo

L unità di controllo di CPU a singolo ciclo L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,

Dettagli

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Implementazione semplificata

Implementazione semplificata Il processore 168 Implementazione semplificata Copre un sottoinsieme limitato di istruzioni rappresentative dell'isa MIPS aritmetiche/logiche: add, sub, and, or, slt accesso alla memoria: lw, sw trasferimento

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

Dettagli

CPU a ciclo multiplo

CPU a ciclo multiplo Architettura degli Elaboratori e delle Reti Lezione CPU a ciclo multiplo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 1/8 Sommario! I problemi

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Parte di Controllo La Parte Controllo (Control) della CPU è un circuito sequenziale istruzioni eseguite in più cicli di clock

Dettagli

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H Architettura dei calcolatori e sistemi operativi Il processore Capitolo 4 P&H 4. 11. 2015 Sommario Instruction Set di riferimento per il processore Esecuzione delle istruzioni Struttura del processore

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Dettagli

CPU a ciclo multiplo

CPU a ciclo multiplo Architettura degli Elaboratori e delle Reti Lezione CPU a ciclo multiplo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L /9 Sommario! I problemi

Dettagli

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Dettagli

(RICHIAMI) INTRODUZIONE ALLA PROGRAMMAZIONE ASSEMBLY DI PROCESSORI MIPS

(RICHIAMI) INTRODUZIONE ALLA PROGRAMMAZIONE ASSEMBLY DI PROCESSORI MIPS 1 (RICHIAMI) INTRODUZIONE ALLA PROGRAMMAZIONE ASSEMBLY DI PROCESSORI MIPS COS'E' UN PROCESSORE IL PROCESSORE MIPS ISA RIDOTTO emips PROGRAMMAZIONE ASSEMBLY DELL emips 2 COSA E' UN PROCESSORE INSTRUCTION

Dettagli

Istruzioni di trasferimento dati

Istruzioni di trasferimento dati Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:

Dettagli

Progetto CPU (ciclo singolo) Salvatore Orlando

Progetto CPU (ciclo singolo) Salvatore Orlando Progetto CPU (ciclo singolo) Salvatore Orlando Arch. Elab. - S. Orlando 1 Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Semplificato in modo

Dettagli

FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc

FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc 44 FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc MODELLO VERILOG DEL PROCESSORE 45 MODELLO VERILOG DEL SISTEMA COMPLETO

Dettagli

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Salvatore Orlando Arch. Elab. - S. Orlando 1 Livelli di astrazione Scendendo di livello, diventiamo più concreti e scopriamo

Dettagli

Architettura degli Elaboratori B Introduzione al corso

Architettura degli Elaboratori B Introduzione al corso Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando Arch. Elab. - S. Orlando 1 Componenti di un calcolatore convenzionale Studieremo il progetto e le prestazioni delle varie componenti

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div

Dettagli

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Progetto CPU (ciclo singolo) Semplificato in modo tale da eseguire solo: istruzioni di memory-reference:

Dettagli

Realizzazione a cicli di clock multipli

Realizzazione a cicli di clock multipli Realizzazione a cicli di clock multipli Riprendiamo in esame la realizzazione dell'unità di calcolo per individuare, per ciascuna classe di istruzioni, le componenti utilizzate e suddividere le azioni

Dettagli

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base

Dettagli

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Architetture degli Elaboratori e delle Reti Lezione 17 Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano Giacomin 1 Prima tipologia di esercizi: valutazione delle prestazioni 2 Specchio riassuntivo su prestazioni e CPI 0) In generale: T esecuzione

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Elementi base per la realizzazione dell unità di calcolo

Elementi base per la realizzazione dell unità di calcolo Elementi base per la realizzazione dell unità di calcolo Memoria istruzioni elemento di stato dove le istruzioni vengono memorizzate e recuperate tramite un indirizzo. ind. istruzione Memoria istruzioni

Dettagli

Macchina di Riferimento: argomenti

Macchina di Riferimento: argomenti Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

ISA e linguaggio macchina

ISA e linguaggio macchina ISA e linguaggio macchina Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1, D2. 1/55

Dettagli

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F. Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/32 Linguaggio

Dettagli

Sistemi e reti CPU Concetti di base

Sistemi e reti CPU Concetti di base Sistemi e reti CPU Concetti di base A cura dell Ing. Claudio Traini Cenni Storici 1971 il primo processore mai realizzato : Intel 4004 Progettato dal vicentino Federico Faggin 1 Cenni Storici 1976 Faggin

Dettagli

Il linguaggio macchina

Il linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/33 Linguaggio

Dettagli

Calcolatori Elettronici B a.a. 2007/2008

Calcolatori Elettronici B a.a. 2007/2008 Calcolatori Elettronici B a.a. 27/28 Tecniche Pipeline: Elementi di base assimiliano Giacomin Reg[IR[2-6]] = DR Dal processore multiciclo DR= em[aluout] em[aluout] =B Reg[IR[5-]] =ALUout CASO IPS lw sw

Dettagli

CALCOLATORI ELETTRONICI 15 aprile 2014

CALCOLATORI ELETTRONICI 15 aprile 2014 CALCOLATORI ELETTRONICI 15 aprile 2014 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1 Di seguito è riportato lo schema di una ALU a 32 bit in grado

Dettagli

ISA (Instruction Set Architecture) della CPU MIPS

ISA (Instruction Set Architecture) della CPU MIPS Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina

Dettagli

Il processore: unità di controllo

Il processore: unità di controllo Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

CPU pipeline hazards

CPU pipeline hazards Architettura degli Elaboratori e delle Reti Lezione 23 CPU pipeline hazards Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 23 /24 Sommario!

Dettagli

Problemi del ciclo singolo

Problemi del ciclo singolo Problemi del ciclo singolo Ciclo di clock lungo Istruzioni potenzialmente veloci sono rallentate Impiegano sempre lo stesso tempo dell istruzione più lenta Unità funzionale e collegamenti della parte operativa

Dettagli

UN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI

UN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI 1 RICHIAMI SUL MIPS UN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI L ARCHITETTURA DI RIFERIMENTO: LA MACCHINA MIPS INSTRUCTION SET MIPS R2000 ISTRUCTION SET SEMPLIFICATO: emips ESEMPI DI PROGRAMMAZIONE

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore

Dettagli

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003 Il Ciclo Fetch-Decode-Execute C Nyssen/Aberdeen College 2003 Linguaggio Assembler Op code (Mnemonico) Operando #assembly code program 0000 LDA-24 #loads 0001 ADD-25 #adds 0002 HLT #stops #end of program

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

Dettagli

Il linguaggio macchina

Il linguaggio macchina Il linguaggio macchina Istruzioni macchina (PH 2.4) Indirizzamento (PH 2.9) Costanti a 32-bit (PH 2.9) 1 Linguaggio macchina Le istruzioni in linguaggio assembly devono essere tradotte in linguaggio macchina

Dettagli

UN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI

UN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI 1 RICHIAMI SUL MIPS UN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI L ARCHITETTURA DI RIFERIMENTO: LA MACCHINA MIPS INSTRUCTION SET MIPS R2000 ISTRUCTION SET SEMPLIFICATO: emips ESEMPI DI PROGRAMMAZIONE

Dettagli

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 016/017 Sommario Funzionamento del

Dettagli

Istruzioni assembler Istruzione N Registri

Istruzioni assembler Istruzione N Registri Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e

Dettagli

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

Architettura degli Elaboratori B Introduzione al corso

Architettura degli Elaboratori B Introduzione al corso Componenti di un calcolatore convenzionale Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando http://www.dsi.unive.it/~arcb Studieremo il progetto e le prestazioni delle varie componenti

Dettagli

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App. Assembly Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A 1 Linguaggio assembly (App. A) Rappresentazione simbolica del linguaggio macchina Più comprensibile

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

Cicli di clock e istruzioni

Cicli di clock e istruzioni Cicli di clock e istruzioni Numero di cicli di clock differenti per istruzioni differenti Le moltiplicazioni impiegano più tempo delle addizioni Operazioni in virgola mobile impiegano più tempo delle operazioni

Dettagli

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori rchitettura dei Calcolatori Giuseppe Pozzi Impianti di Elaborazione Facoltà di Ingegneria dell'informazione Politecnico di Milano giuseppe.pozzi@polimi.it - versione del 20 settembre 2002 - rchitettura

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche:

Dettagli

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Architettura dei sistemi a microprocessore prof. Stefano Salvatori A.A. 2014/2015 Eccetto dove diversamente specificato, i contenuti

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori circuiti combinatori: ALU slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello 1 ALU ALU (Arithmetic Logic Unit) circuito combinatorio all interno del processore per l esecuzione di istruzioni

Dettagli

ESECUZIONE DI APPLICAZIONI SU SISTEMI EMBEDDED MIPS-based

ESECUZIONE DI APPLICAZIONI SU SISTEMI EMBEDDED MIPS-based 1 ESECUZIONE DI APPLICAZIONI SU SISTEMI EMBEDDED MIPS-based SPECIFICA MISTA C-ASSEMBLY, UTILIZZO DELLA MEMORIA A BASSO LIVELLO, CONVENZIONI DI CHIAMATA A SUBROUTINE COMPILAZIONE C 2 L utilizzo di programmi

Dettagli

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Dettagli

CALCOLATORI ELETTRONICI

CALCOLATORI ELETTRONICI CALCOLATORI ELETTRONICI Giuseppe Coldani Tel. 0382 985678 e-mail: giuseppe.coldani@unipv.it giuseppe.coldani@tin.it orario delle lezioni: Mercoledì 14.00-18.00 orario di ricevimento: su appuntamento 1

Dettagli

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware.

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 2. Spiegare i diversi tipi di indirizzamento usati dalle istruzioni del set

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

L insieme delle istruzioni (6)

L insieme delle istruzioni (6) L insieme delle istruzioni (6) Architetture dei Calcolatori (lettere A-I) Alcune note conclusive I due principi dell architettura a programma memorizzato Uso di istruzioni indistinguibili dai dati Uso

Dettagli

CPU a singolo ciclo: l unità di controllo, istruzioni tipo J

CPU a singolo ciclo: l unità di controllo, istruzioni tipo J Architettura degli Elaboratori e delle Reti Lezione 9 CPU a singolo ciclo: l unità di controllo, istruzioni tipo J Pro. A. Borghese, F. Pedersini Dipartimento di Scienze dell Inormazione Università degli

Dettagli

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo Prof. Carlo Rossi DEIS - Università di Bologna Tel: 051 2093020 email: crossi@deis.unibo.it Classificazione Processori

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

ARCHITETTURA DI UN ELABORATORE

ARCHITETTURA DI UN ELABORATORE ARCHITETTURA DI UN ELABORATORE Unità funzionali Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40). La macchiana di Von Neumann: Non distingueva fra RAM

Dettagli

Struttura di un elaboratore

Struttura di un elaboratore Struttura di un elaboratore Fondamenti di Informatica 1 Modello architetturale di un computer Ogni computer è costituito da un insieme di blocchi funzionali tra loro interconnessi da sistemi di comunicazioni,

Dettagli

Lezione 12: L architettura LC-3

Lezione 12: L architettura LC-3 Lezione 12: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 24 Maggio 2012 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio

21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio 02: ESERCITAZIONE 01 21 March 2011 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA I. Frosio 1 SOMMARIO Organizzazione della memoria Istruzioni di accesso alla memoria Vettori Istruzioni

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

DEC PDP8, III Generazione, '65-'75

DEC PDP8, III Generazione, '65-'75 Parte I DEC PDP8, III Generazione, '65-'75 PDP8 Architettura (Livello Registri) 12 bit Program Counter PC 12 bit Memory Address Register MAR Random Access Memory RAM 4096 x 16 1 bit I 3 bit Operation Code

Dettagli

HARDWARE 1.4a: (Processore)

HARDWARE 1.4a: (Processore) HARDWARE 1.4a: (Processore) 2 23 nov 2011 Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill Sciuto, Buonanno, Mari, Introduzione ai sistemi informatici, Mc Graw Hill Questi lucidi

Dettagli

Esercitazione sulle CPU pipeline

Esercitazione sulle CPU pipeline Esercitazione sulle CPU pipeline Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione parte dell hardware della CPU rimane inutilizzato perché

Dettagli

Lezione4: MIPS e Istruzioni (1 Parte)

Lezione4: MIPS e Istruzioni (1 Parte) Architettura degli Elaboratori Lezione4: MIPS e Istruzioni (1 Parte) Michele Nappi mnappi@unisa.it http://www.biplab.unisa.it/ Alcune slide di questa lezione sono prodotte dal Prof. Luigi Palopoli AGENDA

Dettagli

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2 La CPU e la Memoria Sistemi e Tecnologie Informatiche 1 Struttura del computer Sistemi e Tecnologie Informatiche 2 1 I registri La memoria contiene sia i dati che le istruzioni Il contenuto dei registri

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Classificazione dei calcolatori elettronici Sistemi basati sull architettura di Von Neumann Sistemi basati sull architettura Harward Architettura dei calcolatori: definizioni Evoluzione

Dettagli

Il Linguaggio Assembly: Gestione della memoria e controllo

Il Linguaggio Assembly: Gestione della memoria e controllo Il Linguaggio Assembly: Gestione della memoria e controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/42 Sommario L organizzazione

Dettagli

L unità di elaborazione PC: MAR/MDR IR: R0 Rn: TEMP, V, Z

L unità di elaborazione PC: MAR/MDR IR: R0 Rn: TEMP, V, Z Struttura del processore L unità di elaborazione Corso ACSO prof. Cristina SILVANO Politecnico di Milano Datapath ad un solo bus interno Faremo riferimento ad una generica CPU e a una memoria con parole

Dettagli

Corso di Fondamenti di Informatica Elementi di Architettura

Corso di Fondamenti di Informatica Elementi di Architettura di Cassino e del Lazio Meridionale Corso di Informatica Elementi di Architettura Anno Accademico 2016/2017 Francesco Tortorella Modello di von Neumann Bus di sistema CPU Memoria Centrale Interfaccia Periferica

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 28/29 CPU multiciclo Massimiliano Giacomin Esempi di processori che usano controllo a singolo ciclo: NESSUNO! Perché? Periodo di clock: abbastanza lungo per garantire la

Dettagli

Laboratorio di Architettura degli Elaboratori

Laboratorio di Architettura degli Elaboratori Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni

Dettagli