Calcolatori Elettronici T. ISA DLX: Implementazione Tramite Struttura Sequenziale

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Calcolatori Elettronici T. ISA DLX: Implementazione Tramite Struttura Sequenziale"

Transcript

1 Calcolatori Elettronici T ISA DLX: Implementazione Tramite Struttura Sequenziale 1

2 E disponibile un interprete e simulatore (EasyDLX) per un insieme semplificato dell ISA DLX realizzato da Daniele Biagi nell ambito di un progetto del corso di Linguaggi e Modelli computazionali (prof. Denti). Il simulatore è in grado di eseguire salti, evidenziando step by step la prossima istruzione che sarà eseguita. Supporta tutte operazioni logiche e aritmetiche con operandi interi. Home page (Google code): Pagina web sul sito di Linguaggi e Modelli computazionali: index.html 2

3 Riassunto delle principali caratteristiche dell ISA del DLX 32 registri da 32 bit di uso generale (R0..R31, con R0=0) 32 registri floating point da 32 bit (utilizzati esclusivamente dalle unità funzionali in virgola mobile) Istruzioni di lunghezza costante 32 bit allineate Campi di dimensioni fisse nell ambito di istruzioni diverse 3 formati di istruzione: I, R, J Non ci sono istruzioni specifiche per la gestione dello stack Nelle istruzioni di tipo JL l indirizzo di ritorno e salvato in R31 Non c è un registro di FLAG settato dalle istruzioni ALU; le condizioni vengono settate esplicitamente nei registri con il gruppo di istruzioni SET condition IN REGISTER (SCN): SetCoNdition Rd, Rs1, Rs2/Immediato (ex. Cond: EQ (if Rs1=Rs2 then Rd <- 1, else Rd <- 0), LT, NEQ, ) C è un registro di FLAG testabile a controllo di programma per le condizioni settate dall unità Floating Point Una sola modalità di indirizzamento di memoria (registro + offset) MOVS2I e MOVI2S: sposta un registro speciale (eg IAR) da/verso un registro general purpose (i.e. R0..R31). Utile per implementare annidamento degli interrupt (stack...) 3

4 Il set di istruzioni del DLX Le principali istruzioni aritmetiche e logiche Istruzioni logiche anche con op. immediato: AND, ANDI, OR, ORI, XOR, XORI Istruzioni aritmetiche: ADD, ADDI, SUB, SUBI, MULT, DIV Istruzioni di traslazione logica (a destra anche aritmetica): SLL(I) 1, SRL(I), SRA(I) 2 Istruzioni di SET CONDITION: Scn, ScnI(mmediate), con cn = EQ, NE, LT, GT, LE, GE Le principali istruzioni di trasferimento dati Load byte (signed/unsigned), Load Halfword (signed/unsigend), Load Word (LB, LBU, LH, LHU, LW) Store byte, Store Halfword, Store Word (SB, SH, SW) Load/Store Floating Point in singola o doppia precisione (LF/SF e LD/SD) Copia un dato da un GPR a un FPR e viceversa (MOVI2FP e MOVFP2I) Le principali istruzioni di trasferimento del controllo Istruzioni di salto condizionato (PC+4 relative): BNEZ, BEQZ Istruzioni di salto incondizionato diretto e indiretto(pc+4 relative): J, JR Istruzioni di chiamata a procedura (Jump and Link, l indirizzo di ritorno viene automaticamente salvato in R31): JAL, JALR Istruzione di ritorno dalla procedura di servizio delle interruzioni: RFE 1) Shift logico a sinistra e shift aritmetico a sinistra coincidono (entrano 0 nei bit meno significativi). Per questa ragione NON esiste SLA. Fare attenzione con shift a sinistra, non preserva il segno e può generare overflow. 2) NB. Trascinando a destra di una posizione un registro e inserendo a sinistra sempre il bit del segno si mantiene il segno del dato mentre lo si divide successivamente per 2 4

5 DLX: formato delle istruzioni Attenzione: in alcune istruzioni I (LOAD e ALU) RS2 rappresenta il registro destinazione I Codice operativo RS2/Rd RS1 Operando immediato di 16 bit Load, Store, Branch condizionale, JR e JALR (trasf. controllo via registro), SetCond e ALU con op. imm. Nelle operazioni di LD e ALU RS2=Rdest, nelle ST RS2=sorg. -- RS1 per indirizzo o sorgente (con imm.) 6 bit 5 bit 5 bit 5 bit 11 bit R Codice operativo RS2 RS1 Rd Estensione al Cod. op (11 bit) Istruzioni aritmetiche e logiche del tipo Rd Rs1 op Rs2 oppure SetCond fra registri J 31 Codice operativo Offset di 26 bit (PC relative) Trasferimento del controllo diretto e incondizionato (J e JAL) Numerazione dei bits 0 5

6 Istruzioni Aritmetico Logiche (ALU) Istruzioni a 3 operandi 2 operandi sorgente 1 operando destinazione. destinazione : registro sorgente : registro, registro / operando immediato (16 bit) Esempi: ADD R1, R2, R3 R1 ß R2+R3 formato R R1 in posizione Rd nel formato della istruzione ADDI R1, R2, 3 R1 ß R2+3 formato I R1 in posizione Rd, R2 e R0 in posizione RS1 nel formato della istruzione ADDI R1, R0, 5 R1 ß 0+5 (cioè : R1 ß 5 ) formato I ADD R1, R5, R0 R1 ß R5+R0 (cioè : R1 ß R5 ) formato R 6

7 Istruzioni di Set Condition Queste istruzioni confrontano i due operandi sorgente e mettono a 1 oppure a 0 l operando destinazione in funzione del risultato del confronto SET EQUAL (SE, =), SET NOT EQUAL (SNE, =), SET LESS THAN (SLT, <),.. ESEMPI: SLT R1,R2,R3 if (R2<R3): R1 ß 1 else R1 ß 0 Nel caso di operando sorgente immediato: SLTI R1,R2,5 if (R2<5): R1 ß 1 else R1 ß 0 formato R R1 in posizione RS2 e R2 in posizione RS1 nel formato della istruzione formato I Nel caso di confronto fra operandi unsigned : SLTU R1,R2,R4 if (R2<R4): R1 ß 1 else R1 ß 0 formato R 7

8 Istruzioni per il trasferimento dati (formato I, unica modalità di indirizzamento) Sono istruzioni che accedono alla memoria (load e store) L indirizzo dell operando in memoria è la somma del contenuto di un registro con un offset di 16 bit L istruzione è codificata secondo il formato I Esempi: LW R1, 40(R3) R1 ß 32 M[40+R3] LB R1, 40(R3) R1 ß (M[40+R3] 7 ) 24 ## M[40+R3] Sign Extension LBU R1,40(R3) R1 ß (0) 24 ## M[40+R3] LH R1, 40(R3) R1 ß (M[41+R3] 7 ) 16 ## M[41+R3] ## M[40+R3] SW R7,10(R5) M[10+R5] ß 32 R7 8

9 Istruzioni per il trasferimento del controllo: salti incondizionati (con e senza ritorno) JUMP : Trasferimento del controllo (o salto) incondizionato JUMP AND LINK: Trasferimento di controllo con salvataggio dell indirizzo di ritorno (chiamata a procedura) BRANCH : Trasferimento di controllo condizionato (salto condizionato) JUMP J alfa PC ß (PC +4) + OFFSET(alfa) Formato Istruz. di tipo J ( PC relative, OFFSET di 26 bit) J R3 PC ß R3 Formato Istruz. di tipo I JUMP AND LINK (salto a procedura e ritorno) JAL alfa JALR R3 R31 ß PC+4 ; PC ß (PC +4) + OFFSET(alfa) R31 ß PC+4 ; PC ß R3 J R31 PC ß R31 Questa è l istruzione di ritorno da procedura (senza stack è possibile un solo livello di nesting!!) 9

10 Istruzioni per il trasferimento del controllo: salti condizionati (Branch) BRANCH BRANCH EQUAL ZERO BRANCH NOT EQUAL ZERO N.B. il registro da cui dipende il salto è indicato nel formato della istruzione nella posizione RS1 BEQZ R4, alfa if (R4=0): PC ß (PC +4)+OFFSET(alfa) BNEZ R4, alfa if (R4=0): PC ß (PC +4)+OFFSET(alfa) ( sono entrambe istruzioni PC relative, con OFFSET di 16 bit) BEQZ e BNEZ sono istruzioni di formato I Con una istruzione di tipo set condition seguita da un istruzione di salto condizionato si realizza la funzione di Compare and Branch (confronto e salto condizionato dal risultato del confronto) senza bisogno di flag dedicati 10

11 Esempio di codice assembler DLX Si scriva il codice assembler per il calcolo della somma degli elementi di un vettore di indirizzo iniziale A (<2^15) di 8 elementi (32 bytes) e lo si scriva all indirizzo Z utilizzando i seguenti registri: R1 per la somma corrente R2 per l indice R3 per il contatore delle iterazioni ADD R1, R0, R0 ; azzera la somma corrente ADD R2, R0, R0 ; azzera R2 registro indice ADDI R3, R0, 8 ; inizializza il contatore dei cicli CICLO LW R4, A(R2) ; indirizzo dell operando in memoria (calcolato a run time ) ADD R1, R1, R4 ; aggiorna somma corrente ADDI R2, R2, 4 ; 4 e il numero di bytes per word ADDI R3, R3, -1 BNEZ R3, CICLO ; Qui niente SCN: implicita nella istruzione precedente ; vero se il test è fatto sull intero contenuto del registro : altrimenti SC SW Z(R0), R1 ; Z e l indirizzo della variabile con il risultato (R0=0).. Come si sarebbe dovuto trasformare il codice se A>= 2^15? 11

12 Datapath e Unità di Controllo La struttura di una CPU, come tutte le reti logiche sincrone che elaborano dati, può essere strutturata in due blocchi Unità di Controllo e Datapath. La CPU, per funzionare, ha bisogno della memoria esterna su cui risiedono il programma e i dati. Rete logica processore indirizzi ready interrupt memoria istruzioni U.d.C. reset clock Dati (in) Data Path Dati (out) CPU 12

13 Datapath e Unità di Controllo Datapath: contiene tutte le unità di elaborazione ed i registri necessari per l esecuzione delle istruzioni della CPU. Ogni istruzione appartenente all Instruction Set è eseguita mediante una successione di operazioni elementari, dette micro-operazioni. Micro-operazione: operazione eseguita all interno del DATAPATH in un ciclo di clock (esempi: trasferimento di un dato da un registro ad un altro registro, elaborazione ALU) Unità di Controllo: è una RSS che in ogni ciclo di clock invia un ben preciso insieme di segnali di controllo al DATAPATH al fine di specificare l esecuzione di una determinata microoperazione. 13

14 Struttura del DLX (esecuzione sequenziale) C O N T R O U N I T S1 S2 A B alu Register file PC TEMP C dest L IAR MAR Instruction register MDR dati in scrittura CPU fetch Indirizzi Memoria dati/istruzioni in lettura execute Parallelismo dell architettura: 32 bit (bus, alu e registri hanno parallelismo 32) I segnali di controllo non sono riportati! 14

15 I registri del DLX (tutti a 32 bit) A parte il Register File questi registri NON sono accessibili al programmatore!!! In alcuni casi istruzioni speciali per accedere ad alcuni (e.g., IAR) Register file: 32 Registri General Purpose Registers R0.R31 con R0=0 IAR: Interrupt Address Register Deposito dell indirizzo di ritorno in caso di interruzione PC: Program Counter MAR: Memory Address Register Contiene l indirizzo del dato da scrivere o leggere in memoria IR: Instruction Register Contiene l istruzione attualmente in esecuzione TEMP: Temporary Register Registro di deposito temporaneo di risultati MDR: Memory Data Register Registro di transito temporaneo dei dati da e per la memoria A e B: Registri di uscita dal Register File 15

16 Funzioni della ALU Dest (uscite) 4 bit di comando S1 + S2 S1 S2 S1 and S2 S1 or S2 S1 exor S2 Shift S1 a sinistra di S2 posizioni Shift S1 a destra di S2 posizioni Shfit S1 aritmetico a destra di S2 posizioni S1 S2 0 1 Flag di uscita Zero Segno negativo Carry La ALU è una rete PURAMENTE combinatoria 16

17 Trasferimento dati sul datapath I bus S1 ed S2 sono multiplexati (tri-state) con parallelismo 32 bit. I registri campionano sul fronte positivo del clock, hanno due porte di uscita O1 e O2 per i due bus (o i registri A e B) e dispongono di tre ingressi di controllo: un ingresso di Write Enable (WE*) ed uno di Output Enable per ogni porta di uscita, una per ogni bus S1 e S2 (OE1* e OE2*). Al fine di valutare la massima frequenza a cui è possibile far funzionare il datapath è importante conoscere le seguenti temporizzazioni: T C (max) : ritardo max tra il fronte positivo del clock e l istante in cui i segnali di controllo generati dall unità di controllo sono validi; T OE (max): ritardo max tra l arrivo del segnale OE e l istante in cui i dati del registro sono disponibili sul bus; T ALU (max): ritardo massimo introdotto dalla ALU; T SU (min) : tempo di set-up minimo dei registri (requisito minimo per il corretto campionamento da parte dei registri). La massima frequenza di funzionamento del data path si calcola come segue: T CK > T C (max) + T OE (max) + T ALU (max) + T SU (min) f CK (max) = 1/T CK 17

18 Esempio : esecuzione della microistruzione Rin Rout I segnali in blu (segnali di controllo) provengono dall Unità di Controllo Clock sempre collegato: write enable! S1 S2 OE1* OE2* OE2Rout* (e.g. TEMP) O1 Rout I O2 WE* O1 OE1* OE2* (e.g. MAR) Rin I O2 WE* WERin* i1 alu i2 u = i2 clock dest I segnali di controllo in grassetto sono attivi nel ciclo di clock in cui il micro-step Rin Rout viene eseguito 18

19 Il set di istruzioni non floating-point del DLX Data Transfer LW Ra, offset(rb) LB Ra, offset(rb) LBU Ra, offset(rb) LH Ra, offset(rb) LHU Ra, offset(rb) SW Ra, offset(rb) SH Ra, offset(rb) SB Ra, offset(rb) LHI Ra, value *MOVS2I Ra, Rs *MOVI2S Rs, Ra * Special register Rs (IAR) Aritmetiche/logiche ADD Ra,Rb,Rc ADDI Ra,Rb,value ADDU Ra,Rb,Rc ADDUI Ra,Rb, value SUB Ra,Rb,Rc SUBI Ra,Rb,value SUBU Ra,Rb,Rc SUBUI Ra,Rb, value DIV Ra,Rb,Rc DIVI Ra,Rb,value MULU Ra,Rb,Rc MULI Ra,Rb, value SLL Ra,Rb,Rc SLLI Ra,Rb;value SHR Ra,Rb.Rc SHRI Ra,Rb,value SLA Ra,Rb,Rc SLAI Ra,Rb,value OR Ra,Rb,Rc ORI Ra,Rb,value XOR Ra,Rb,Rc XORI Ra,Rb,value AND Ra,Rb,Rc ANDI Ra,Rb,value Controllo SETx Ra,Rb,Rc SETIx Ra,Rb,value BEQZ Ra, offset BNEQZ Ra, offset J offset JR Ra JL offset JLR Ra N.B. x può essere LT, GT, LE, GE, EQ, NE Esiste anche l istruzione TRAP che esegue una chiamata a interrupt software vettorizzata 19

20 Il progetto dell Unità di Controllo Una volta definito il Set di Istruzioni e progettato il DATAPATH, il passo successivo del progetto di una CPU è il progetto dell Unità di Controllo (CONTROLLER). Il CONTROLLER è una RSS: il suo funzionamento può essere specificato tramite un diagramma degli stati. Il CONTROLLER (come tutte le RSS) permane in un determinato stato per un ciclo di clock e transita (può transitare) da uno stato all altro in corrispondenza degli istanti di sincronismo (fronti del clock). Ad ogni stato corrisponde quindi un ciclo di clock. Le micro-operazioni che devono essere eseguite in quel ciclo di clock sono specificate (in linguaggio RTL) nel diagramma degli stati che descrive il funzionamento del CONTROLLER all interno degli stati. A partire dalla descrizione RTL si sintetizzano poi i segnali di controllo che devono essere inviati al DATAPATH per eseguire le operazioni elementari associate ad ogni stato. 20

21 Il diagramma degli Ready? MAR <- PC IR <- M [MAR] INSTRUCTION FETCH stati del controller PC<- PC+4 A <- RS1 B <- RS2 INSTRUCTION DECODE * Qui non si sa ancora quale sia l istruzione ma il trasferimento ai registri è fatto comunque!! Data transfer ALU Oltre a decodificare l istruzione si prelevano gli operandi sorgente dal RF (anche se non utilizzati!) e si incrementa il PC. N.B. I primi tre stadi sono comuni a tutte le istruzioni Set Jump Branch 21

22 Estrazione automatica dei registri durante la fase di decode di una istruzione (qualsiasi) B A I Codice operativo < RS2/Rd RS1 Operando immediato di 16 bit R Codice operativo RS2 RS1 Rd Estensione al Cod. op (11 bit) J Codice operativo Offset di 26 bit (PC relative) 31 0 Questi bit sono utilizzati per estrarre, preventivamente e ancora prima di conoscere che tipo di istruzione che è stata letta dalla memoria, dal Register File due registri in A e B. Nel caso di istruzione J non ci sono registri coinvolti e quindi saranno estratti bit corrispondenti all offset. Nel caso di istruzione I, in B potrebbe finire il valore del registro destinazione (e.g. in una LD o operazione ALU (tipo I)). Infine: i bit rappresentano gli indici (o presunti tali) ma non il valore dei due registri che è contenuto nel Register File.

23 Gli stati della fase di fetch In questa fase si deve verificare se è presente un interrupt (evento esterno asincrono che la CPU deve servire con apposito software); se l interrupt è presente e può essere servito (IEN = true) si esegue implicitamente l istruzione di chiamata a procedura all indirizzo 0, e si salva l indirizzo di ritorno nell apposito registro IAR; se l interrupt non è presente o le interruzioni non sono abilitate, si va a leggere in memoria la prossima istruzione da eseguire (il cui indirizzo è in PC) Dall ultimo stato dell istruzione precedente (int and IEN) = 0 MAR PC IR M(MAR) Ready = 1 Alla fase di decodifica Ready = 0 (int and IEN) = 1 IAR PC PC 0 IEN 0 IAR: Interrupt Address Register IEN: Interrupt Enable Flag 23

24 Il diagramma degli stati del controller Ready? IR <- M [PC] PC <- PC +4 A <- RS1 B <- RS2 INSTRUCTION FETCH INSTRUCTION DECODE * Si modifica il DATAPATH in maniera da poter indirizzare la memoria dal PC. Meno stati ma maggiore complessità Data transfer ALU Set Tutte le istruzioni impiegano un clock in meno per essere eseguite! Ma potenzialmente aggiore lentezza -> minore freq. clock Jump Branch 24

25 Controllo per l istruzione LB (LOAD BYTE) Ready? IR <- M [PC] PC <- PC +4 A <- RS1 B <- RS2 Parte comune LOAD MAR <- A + (IR 15 ) 16 ## IR ALU (A) = (RS1) Ready? MDR <- M[MAR] LB C <- (MDR 7 ) 24 ## MDR 7..0 RD <- C Estensione segno ALU RS2 è da intendersi come registro di destinazione 25

26 Estensione del segno (IR 15 ) 16 ## IR IR Da UdC BUS S1 o S0 26

27 Controllo per le istruzioni di DATA TRANSFER NB: in lettura la parte meno significativa del dato viene letta sempre allineata al registro MDR per permettere il filling Mancano nell esempio SH e SB (sempre unsigned) che corrispondono a attivazione degli specifici WE delle memorie e traslatori dei bytes del registro MDR. Come si realizzerebbero? STORE Byte -> SB Half Word > SH Word -> SW MDR <- M[MAR] C <- (MDR 15 ) 16 ## MDR C <-(0) 16 ## MDR RD <- C INIT LB LB LH LH Ready? Il contenuto di A come unsigned MAR <- A + (IR 15 ) 16 ## IR LOAD M[MAR] <-MDR LBU LBU LHU LHU LW C <- MDR SW STORE LW C <-(MDR 7 ) 24 ## MDR 7..0 C <- (0) 24 ## MDR 7..0 Ready? MDR <- B 27

28 Memoria logica Memoria fisica 8 i 8 7 h 7 6 g 6 5 f 5 4 e 4 3 d 2 c 2 l i 1 b h g 1 f e 0 a d bit BUS 3 c 0 b a BUS 2 BUS 1 BUS 0

29 Trasferimenti BYTE, HW I trasferimenti di bytes sono SEMPRE considerati allineati I trasferimenti di HW debbono avvenire a indirizzi multipli di 2 I trasferimenti di Word debbono sempre avvenire a indirizzi multipli di 4 In caso di disallineamento: fault Nel caso di store di dati di dimensione inferiore alla word NON si ha estensione del segno La lettura/scrittura di bytes e HW (a causa del reciproco disallineamento fra i registri e la memoria) implica che fra i registri e la memoria siano interposti dei mux/demux (realizzati con tristate) Registro MDR Come sono attivati i WE delle memorie? Progettare la rete Memoria 29

30 Trasferimento unsigned Trasferimenti BYTE, HW MDR Solo in lettura 0 Bit più signif. byte precedenti Mux Demux Mux Demux I MUX e hanno come ingresso anche il bit 7 del byte 7-0 della memoria (LB) e il bit 15 del byte 15-8 della memoria (LH) Ad esempio in una LB il MUX 7-0 si collega direttamente alla memoria mentre i MUX 15-8, e si collegano al bit 7 del MUX 7-0 proveniente dalla memoria. In una SH a indirizzo multiplo di 2 e non di 4 il DEMUX 7-0 dal MDR si collega alla memoria e il DEMUX 15-8 alla memoria Gli altri due bytes della memoria rimangono invariati Memoria 30

31 Registro (formato R) Immediato (formato I) Esempi di istruzioni ALU Temp <- B Temp <- (IR 15 ) 16 ## IR Il contenuto dei registri come signed se op aritmetica Duplicando i percorsi si potrebbe risparmiare il passaggio in TEMP ADD C <- A + Temp AND C <- A and Temp Lo stesso schema si può usare per gli shift etc. SUB XOR OR C <- A - Temp C <- A xor Temp C <- A or Temp RD <- C INIT 31

32 Controllo per le istruzioni di SET (confronto) ex. SLT R1,R2,R3 Duplicando i percorsi si potrebbe risparmiare il passaggio in TEMP Registro (formato R) Immediato (formato I) Temp<- B Temp <- (IR 15 ) 16 ## IR SEQ SLT SGE A = Temp A < Temp A >= Temp Il contenuto dei registri come signed SNE SGT SLE A! = Temp A > Temp A <= Temp I micropassi sono eseguiti in ALU ma il risultato NON è memorizzato in un registro: i flag sono utilizzati dalla ALU per impostare (almeno) il bit 0 del registro C YES C <- 1 Il risultato del test è un input per il controller! NO C <- 0 RD <- C INIT 32

33 Per il salvataggio in R31 JALR JR JAL Controllo per le istruzioni di JUMP C <- PC JALR JMP C <- PC JAL Istruzione formato I PC <- A Istruzione formato J PC <- PC + (IR 25 ) 6 ## IR (IR15)16 ## IR15..0 JALR JAL JR R31 <- C JALR JAL JMP INIT 33

34 Controllo per le istruzioni BRANCH A = 0 A! = 0 di BRANCH Ex. BNEQZ R5, 100 Il controllo se 0 (o!=0) è fatto sull intero registro A (a 32 bit) e non solo sul bit meno significativo YES BEQZ NO YES BNEZ NO PC <- PC + (IR 15 ) 16 ## IR INIT 34

35 Numero di clock necessari per eseguire le istruzioni Istruzione Cicli Wait Totale Load Store ALU Set Jump Jump and link Branch (taken) Branch (not taken) CPI = n N i CPIi numero totale di istruzioni i = 1 ( * ) Esempio su DLX LOAD: 21%, STORE: 12%, ALU: 37%, SET: 6%, JUMP: 2% BRANCH (taken): 12%, BRANCH (not-taken): 11% CPI =

36 Controllo cablato ( hardwired ) 2 28 righe U.d.C. Segnali di controllo Rete combinatoria che genera uscite e stato futuro 40 Datapath Int e ready Opcode + OpCode Extension Stato presente Stato futuro Rs1, Rs2, Rd IR Flag INSTRUCTION REGISTER (IR) 32 bit dalla memoria - Indici di Rs1, Rs2 e Rd provengono da IR - IR sono portati ai bus S1 ed S2 del data path attraverso due buffer tristate - U.d.C. genera anche i segnali di comando per la memoria (MEMRD e MEMWR) 36

37 I passi dell esecuzione delle istruzioni Nel DLX l esecuzione di tutte le istruzioni può essere scomposta in 5 passi, ciascuno eseguito in uno o più cicli di clock. Tali passi sono detti: 1) FETCH: l istruzione viene prelevata dalla memoria e posta in IR. 2) DECODE: l istruzione in IR viene decodificata e vengono prelevati gli operandi sorgente dal Register File. 3) EXECUTE: elaborazione aritmetica o logica mediante la ALU. 4) MEMORY: accesso alla memoria e, nel caso di BRANCH aggiornamento del PC ( branch completion ). 5) WRITE-BACK: scrittura sul Register File. 37

38 Le micro-operazioni eseguite in ciascun passo 1) FETCH MAR ß PC ; IR ß M[MAR]; 2) DECODE A ß RS1, B ß RS2, PC ß PC+4 38

39 Le micro-operazioni eseguite in ciascun passo 3) EXECUTE MEMORIA: MAR ß A + (IR 15 ) 16 ## IR ; MDR ß B; ALU: C <- A op B (oppure A op (IR 15 ) 16 ## IR ) ; (utilizzano ALU, S1, S2, dest) (NB: serve nelle Store ove RD=RS2 operazione non significativa nelle LOAD) C <- sign( A op B (oppure A op (IR 15 ) 16 ## IR )); se SCn BRANCH: Temp ß PC + (IR 15 ) 16 ## IR ) ; (utilizza ALU, S1, S2, dest: qui non si sa ancora se si deve J e JAL saltare) Temp PC + (IR 25 ) 6 ## IR ) ; ß JR e JALR Temp A; ß 39

40 Le micro-operazioni eseguite in ciascun passo 4) MEMORY Memoria: MDR ß M[MAR]; (LOAD) M[MAR] ß MDR; (STORE) BRANCH: If (Cond) PC ß Temp; [A] è il registro che condiziona il salto (Cond) ; JAL e JALR: C ß PC; 40

41 Le micro-operazioni eseguite in ciascun passo 5) WRITE-BACK istruzioni diverse da J, JR, JAL, JALR C ß MDR; (se è una LOAD due micropassi)) RD ß C ; istruzioni J, JR, JAL, JALR PC ß Temp; RD ß C ; 41

Calcolatori Elettronici T Ingegneria Informatica. DLX: implementazione sequenziale

Calcolatori Elettronici T Ingegneria Informatica. DLX: implementazione sequenziale Calcolatori Elettronici T Ingegneria Informatica DLX: implementazione sequenziale Datapath e Unità di Controllo La struttura di una CPU, come tutte le reti logiche sincrone che elaborano dati, può essere

Dettagli

ISA DLX: Implementazione Tramite Struttura Sequenziale

ISA DLX: Implementazione Tramite Struttura Sequenziale Calcolatori Elettronici L-A ISA DLX: Implementazione Tramite Struttura Sequenziale DLX "sequenziale" 1 Richiamo: caratterirtiche della CPU DLX DLX è un nome di fantasia (sta per De LuXe). Questa CPU è

Dettagli

ISA DLX: Implementazione Tramite Struttura Sequenziale

ISA DLX: Implementazione Tramite Struttura Sequenziale Calcolatori Elettronici L-A ISA DLX: Implementazione Tramite Struttura Sequenziale DLX "sequenziale" 1 Richiamo: caratterirtiche della CPU DLX DLX è un nome di fantasia (sta per De LuXe). Questa CPU è

Dettagli

Calcolatori Elettronici T Ingegneria Informatica 03 Linguaggio macchina

Calcolatori Elettronici T Ingegneria Informatica 03 Linguaggio macchina Calcolatori Elettronici T Ingegneria Informatica 03 Linguaggio macchina Stefano Mattoccia Instruction Set Architecture L insieme delle istruzioni e dei registri di una CPU costituiscono l Instruction Set

Dettagli

6 Linguaggio Macchina Fondamenti di Informatica P2 Ingegneria Meccatronica

6 Linguaggio Macchina Fondamenti di Informatica P2 Ingegneria Meccatronica 6 Linguaggio Macchina Fondamenti di Informatica P2 Ingegneria Meccatronica Stefano Mattoccia Dipartimento di Informatica Università di Bologna 1 Instruction Set Architecture L insieme delle istruzioni

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

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

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

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

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

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

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

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

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

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

Dettagli

Fetch Decode Execute Program Counter controllare esegue prossima

Fetch Decode Execute Program Counter controllare esegue prossima Stored Program Istruzioni sono stringhe di bit Programmi: sequenze di istruzioni Programmi (come i dati) memorizzati in memoria La CPU legge le istruzioni dalla memoria (come i dati) Ciclo macchina (ciclo

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

Architettura degli Elaboratori

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

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

Manualino minimale MIPS

Manualino minimale MIPS Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Manualino minimale MIPS Marco Tarini Operazioni aritmetiche Nome Comando completo Esempio Sintassi (es) Significato Semantica

Dettagli

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

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

Dettagli

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

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

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

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, D,

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

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE:

Dettagli

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Lezione 8 CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 8 /33 Sommario! La

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

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

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

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

Esercizio I-DLX. Calcolatori Elettronici L-A

Esercizio I-DLX. Calcolatori Elettronici L-A Esercizio I-DLX Calcolatori Elettronici L-A Esercizio 1 Si supponga di voler estendere il set di istruzioni del DLX con l istruzione BEQ Ri, Rj, (Rz) L istruzione confronta i due registri Ri e Rj e, in

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

ISA (Instruction Set Architecture) della CPU MIPS32

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

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

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

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

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

Calcolatore: sottosistemi

Calcolatore: sottosistemi Calcolatore: sottosistemi Processore o CPU (Central Processing Unit) Memoria centrale Sottosistema di input/output (I/O) CPU I/O Memoria Calcolatore: organizzazione a bus Il processore o CPU Unità di controllo

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

Architettura degli elaboratori CPU a ciclo singolo

Architettura degli elaboratori CPU a ciclo singolo Architettura degli elaboratori CPU a ciclo singolo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo

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

Linguaggio macchina e register file

Linguaggio macchina e register file Linguaggio macchina e register file 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,

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

Lezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly

Lezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly Architettura degli Elaboratori e delle Reti Lezione 12 Assembly II Set di Istruzioni MIPS Strutture di controllo in Assembly Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università

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

Il linguaggio Assembly. Architettura degli Elaboratori e delle Reti Turno I

Il linguaggio Assembly. Architettura degli Elaboratori e delle Reti Turno I Il linguaggio Assembly Architettura degli Elaboratori e delle Reti Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it 1 Linguaggio

Dettagli

Architettura degli elaboratori CPU a ciclo singolo

Architettura degli elaboratori CPU a ciclo singolo Architettura degli elaboratori CPU a ciclo singolo Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano iferimento sul Patterson: capitolo 4.2, 4.4,

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

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Realizzazione del path path a ciclo singolo Anno Accademico 24/25 Francesco Tortorella Realizzazione del data path. Analizzare l instruction set => Specifiche sul datapath il significato di ciascuna

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

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare

Dettagli

Formato tipico delle istruzioni nelle architetture R-R (Es. DLX)

Formato tipico delle istruzioni nelle architetture R-R (Es. DLX) Formato tipico delle istruzioni nelle architetture R-R (Es. DLX) 6 bit 5 bit 5 bit 5 bit bit R Codice operativo RS RS2 Rd Estensione al Cod. op ( bit) Istruzioni aritmetiche e logiche del tipo Rd Rs op

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

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

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

Progetto CPU a singolo ciclo

Progetto CPU a singolo ciclo Architettura degli Elaboratori e delle Reti Progetto CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1/50 Sommario! La CPU! Sintesi di

Dettagli

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto Un quadro della situazione Lezione 15 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli

ALU e Control Unit. ALU e Control Unit

ALU e Control Unit. ALU e Control Unit Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Unità aritmentica/logica Unità di controllo. 2 M. Violante 1.1 Unità aritmetica/logica Contiene tutti i circuiti

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

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

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

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

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI Progettare una unità centrale di elaborazione microprogrammata, dotata di registri ad uso generale di bit, che sia in grado di indirizzare una memoria di 64k

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Realizzazione del Data path Data path a ciclo singolo Anno Accademico 27/28 Francesco Tortorella (si ringrazia il prof. M. De Santo per parte del materiale presente in queste slides) Realizzazione

Dettagli

Appunti di Calcolatori Elettronici Capitolo 4 Architettura del DLX DLX istruzioni load/store pipeline decodifica dell insieme di istruzioni

Appunti di Calcolatori Elettronici Capitolo 4 Architettura del DLX DLX istruzioni load/store pipeline decodifica dell insieme di istruzioni Appunti di Calcolatori Elettronici Capitolo 4 Architettura del DLX Introduzione... 1 Descrizione generale dell architettura DLX... 2 Istruzioni del DLX... 3 Istruzioni di caricamento/memorizzazione...

Dettagli

Architettura dell elaboratore

Architettura dell elaboratore Architettura dell elaboratore Riprendiamo il discorso lasciato in sospeso ad inizio corso Riepilogando I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati

Dettagli

Architettura dell elaboratore

Architettura dell elaboratore Architettura dell elaboratore Riprendiamo il discorso lasciato in sospeso ad inizio corso Riepilogando I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati

Dettagli

Istruzioni di controllo del flusso

Istruzioni di controllo del flusso Istruzioni di controllo del flusso Il flusso di esecuzione è normalmente sequenziale Le istruzioni di controllo cambiano la prossima istruzione da eseguire Istruzioni di salto condizionato branch if equal

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

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

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2012-2013 Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e

Dettagli

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Codifica dei numeri Rappresentazioni in base 2, 8, 10 e 16 Rappresentazioni M+S, C1 e C2 Algoritmi di conversione di base Algoritmi di somma, moltiplicazione e divisione

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

Esercizio II-DLX. Calcolatori Elettronici L-A

Esercizio II-DLX. Calcolatori Elettronici L-A Esercizio II-DLX Calcolatori Elettronici L-A Esercizio n. 1 Con riferimento al DLX con Datapath sequenziale visto durante il corso si indichi un possibile formato e il diagramma degli stati ottimizzato

Dettagli

Architettura del calcolatore (Seconda parte)

Architettura del calcolatore (Seconda parte) Architettura del calcolatore (Seconda parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin LINGUAGGIO E ORGANIZZAZIONE DEL CALCOLATORE Linguaggio assembly

Dettagli

Architettura e funzionamento del calcolatore

Architettura e funzionamento del calcolatore FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Università degli Studi di Udine Architettura e funzionamento del calcolatore Modello di calcolatore Si farà uso di un modello semplificato di elaboratore

Dettagli

Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti

Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti Prof. Alberto Borghese Ing. Iuri Frosio Dipartimento di Scienze dell Informazione borghese,frosio@dsi.unimi.it Università degli Studi

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2010-2011 Architettura di un calcolatore: introduzione Lezione 18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

La CPU a singolo ciclo

La CPU a singolo ciclo La CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 5 (fino a 5.4) 1/44 Sommario

Dettagli

Progetto CPU a singolo ciclo

Progetto CPU a singolo ciclo Architettura degli Elaboratori e delle Reti Progetto CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1/60 Sommario v La CPU v Sintesi di

Dettagli

Fondamenti di Informatica A. A / 1 9

Fondamenti di Informatica A. A / 1 9 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2 1 8 / 1 9 Architettura di Von Neumann Architettura di Von Neumann: l Unità di Elaborazione L Unità di Elaborazione L unità di elaborazione (CPU) contiene

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

Architettura di un calcolatore: introduzione

Architettura di un calcolatore: introduzione Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

Calcolatori Elettronici T Ingegneria Informatica. ISA DLX: implementazione pipelined

Calcolatori Elettronici T Ingegneria Informatica. ISA DLX: implementazione pipelined Calcolatori Elettronici T Ingegneria Informatica ISA DL: implementazione pipelined Principio del Pipelining Il pipelining è oggi la principale tecnica di base impiegata per rendere veloce una CP. L idea

Dettagli

La CPU a singolo ciclo

La CPU a singolo ciclo La CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 5 (fino a 5.4) /46 Sommario

Dettagli

Architettura del processore MIPS

Architettura del processore MIPS Architettura del processore IPS Prof. Cristina Silvano Dipartimento di Elettronica e Informazione Politecnico di ilano email: : silvano@elet elet.polimi.itit Sommario Instruction Set semplificato Esecuzione

Dettagli

Il processore minimo MU0. S. Salvatori - Microelettronica marzo 2019 (50)

Il processore minimo MU0. S. Salvatori - Microelettronica marzo 2019 (50) Il processore minimo S. Salvatori - Microelettronica marzo 209 (50) Il processore minimo Il tipo più semplice di processore prevederà: un, Program Counter, per puntare all istruzione da eseguire un, Instruction

Dettagli

Funzionalità di un calcolatore. Il calcolatore: modello architetturale. Lo schema di riferimento. L hardware dei sistemi di elaborazione (prima parte)

Funzionalità di un calcolatore. Il calcolatore: modello architetturale. Lo schema di riferimento. L hardware dei sistemi di elaborazione (prima parte) Funzionalità di un calcolatore L hardware dei sistemi di elaborazione (prima parte) Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Ivan

Dettagli

Esercitazione 11. Control-Unit. Data-Path

Esercitazione 11. Control-Unit. Data-Path Esercitazione 11 Sommario Unità di controllo cablate 1. Unità di controllo L architettura interna di una CPU può essere modellata attraverso una struttura costituita da 2 unità interagenti: percorso dati

Dettagli

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Introduzione all'architettura dei Calcolatori. Maurizio Palesi Introduzione all'architettura dei Calcolatori Maurizio Palesi 1 Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione La CPU Miglioramento delle

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

Introduzione al linguaggio macchina

Introduzione al linguaggio macchina Corso di Calcolatori Elettronici I Introduzione al linguaggio macchina Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Dettagli

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione ESERCITAZIONE 8 Sommario Unità centrale di elaborazione Meccanismo di interruzione CPU-Memoria Architettura di una CPU Linguaggio macchina Modi di indirizzamento 1. Unità centrale di elaborazione L unità

Dettagli

Progetto CPU (ciclo singolo)

Progetto CPU (ciclo singolo) 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

La struttura delle istruzioni elementari: il linguaggio Macchina. Sommario

La struttura delle istruzioni elementari: il linguaggio Macchina. Sommario La struttura delle istruzioni elementari: il linguaggio Macchina Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul

Dettagli

Una CPU multi-ciclo. Sommario

Una CPU multi-ciclo. Sommario Una CPU multi-ciclo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/3 http:\\homes.dsi.unimi.it\ borghese Sommario I problemi della

Dettagli