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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 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... 3 Istruzioni ALU... 5 Controllo di flusso: diramazioni e salti... 6 Istruzioni in virgola mobile... 7 Tabella completa delle istruzioni... 8 Formato delle istruzioni Confronto del DLX con altre macchine Introduzione In questo capitolo vogliamo descrivere una semplice architettura di tipo load/store (carica/memorizza), chiamata DLX (che sta per Deluxe ). Tale architettura è stata scelta in base ad osservazioni sulle primitive maggiormente usate nei programmi. Eventuali funzioni più sofisticate (ed anche meno critiche per quanto riguarda le prestazioni) devono essere realizzate via software con più istruzioni. Al pari delle più recenti macchine load/store, il DLX mette in rilievo le seguenti caratteristiche salienti: un semplice insieme di istruzioni load/store; un progetto per una pipeline efficiente (di cui si parlerà nel capitolo 6); un semplice meccanismo di decodifica dell insieme di istruzioni; l efficienza come obbiettivo del compilatore.

2 Appunti di Calcolatori Elettronici Capitolo 4 Descrizione generale dell architettura DLX L architettura DLX può essere sintetizzata nel modo seguente: sono previsti 32 registri per uso generale (GPR, General Purpose Register), ciascuno da 32 bit; il primo di tali registri, denominato R0, ha sempre valore 0; vi è inoltre un insieme di registri in virgola mobile (FPR, Floating Point Register), che possono essere usati sia come 32 registri (da 32 bit) in singola precisione sia come coppie pari-dispari in doppia precisione. Tali registri, se considerati per numeri in singola precisione, sono chiamati F0, F1,F2,F3,,F31. Se invece li si considera come registri da 64 bit in virgola mobile, sono chiamati F0 (che sta per F0-F1), F2 (che sta F2,F3),, F28 (che sta per F28-F29), F30 (che sta per F30-F31): si considera cioè il registro di indice pari; sono fornite operazioni aritmetica in virgola mobile sia in semplice precisione sia in doppia precisione; esiste un insieme di registri speciali, usati per accedere alle informazioni sullo stato della macchina. In particolare, il registro di stato FP è quello impiegato sia per i confronti sia per le eccezioni. Tutti i movimenti da e verso il registro di stato avvengono attraverso i registri GPR; esiste una particolare diramazione che verifica il bit di confronto posto nel registro FP; la memoria è indirizzabile al byte con indirizzi a 32 bit; l ordinamento dei byte è di tipo Big Endian (finale grande); tutti i riferimenti in memoria avvengono tramite letture o memorizzazioni tra memoria e registri (GPR o FPR). Gli accessi che riguardano i GPR possono essere ad un byte, ad una parola corta (16 bit) o ad una parola intera (32 bit). Gli FPR possono essere caricati e memorizzati con parole di precisione singola (32 bit) o doppia (64): in questo secondo caso, si usa ovviamente una coppia di registri per la doppia precisione); tutti gli accessi alla memoria devono essere necessariamente allineati; esistono istruzioni per spostare dati tra FPR e GPR; tutte le istruzioni sono da 32 bit e devono essere allineate in memoria; esistono infine alcuni registri speciali il cui contenuto può essere trasferito da e verso i registri interi. Un esempio è proprio il registro di stato FP, usato per contenere le informazioni relative ai risultati delle operazioni in virgola mobile. aggiornamento: 8 luglio

3 Architettura del DLX Istruzioni del DLX L architettura DLS prevede 4 classi di istruzioni: 1. istruzioni di caricamento (load) e memorizzazione (store); 2. operazioni aritmetico-logiche (ALU operations); 3. diramazioni e salti; 4. operazioni in virgola mobile. IIstruziionii dii cariicamento/memoriizzaziione Tutti i registri per uso generale (GPR) e in virgola mobile (FPR) possono essere caricati e memorizzati, ad eccezione del registro R0, per il quale il caricamento è privo di effetto dato che il suo valore rimane sempre pari a 0. Esiste una sola modalità di indirizzamento: registro base + spiazzamento a 16 bit con segno I caricamenti di parole corte (16 bit) o byte (8 bit) mettono sempre l oggetto caricato nella parte bassa del registro, mentre la parte alta viene automaticamente riempita o con 0 oppure con l estensione di segno del valore caricato, a seconda del codice operativo dell istruzione di caricamento. I numeri in virgola mobile in singola precisione (32 bit) occupano un unico registro per virgola mobile, mentre invece i valori in doppia precisione (64 bit) richiedono una coppia di registri. Le eventuali conversioni tra singola e doppia precisione non sono automatiche, ma devono essere effettuate in modo esplicito. Il formato della virgola mobile è quello previsto dallo standard IEEE 754. Nella seguente tabella sono riportati una serie di esempi delle istruzioni di caricamento e memorizzazione, mentre in seguito riporteremo la tabella completa con tutte le istruzioni: Nome Esempio Significato Istruzione Carica parola LW R1,30(R2) R1 32 M[30+R2] Carica parola LW R1,1000(R0) R1 32 M[1000+0] Carica byte LB R1,40(R3) R1 32 (M[40+R3] 0 ) 24 ##M[40+R3] Carica byte senza LBU R1,40(R3) segno R ## M[40+R3] Carica parola corta LH R1,40(R3) R1 32 (M[40+R3] 0 ) 16 ##M[40+R3] ##M[41+R3] Carica dato in virgola mobile LF F0,50(R3) F0 32 M[50+R3] Carica double LD F0,50(R2) F0##F1 64 M[50+R2] Memorizza parola SW 500(R4),R3 M[500+R4] 32 R3 Memorizza dato virgola mobile SF 40(R3),F0 M[40+R3] 32 F0 Memorizza double SD 40(R3),F0 M[40+R3] 32 F0; M[44+R3] 32 F1 Memorizza parola corta SH 502(R2),R3 M[502+R2] 16 R Memorizza byte SB 41(R3),R2 M[41+R3] 8 R aggiornamento: 8 luglio

4 Appunti di Calcolatori Elettronici Capitolo 4 Come si vede, in tutti i casi si usa l indirizzamento con registro base e spiazzamento, entrambi indicati esplicitamente nell istruzione. Inoltre, il primo operando indicato è sempre la destinazione (in particolare, si tratta di un registro per le istruzioni di caricamento e di una locazione di memoria per quelle di memorizzazione), mentre il secondo è la sorgente. E opportuno fare una serie di considerazioni a proposito delle singole righe di questa tabella: la prima istruzione riportata è la più semplice possibile, in quanto indica il caricamento di un registro (R1) con una parola (che quindi lo riempirà interamente): il codice operativo simbolico di tale istruzioni è LW (Load Word). L istruzione riportata come esempio è R1 32 M[30+R2]: il significato della freccia rivolta verso sinistra ( ) è già noto ed è quello di un trasferimento di bit da una sorgente (a destra) ad una destinazione (a sinistra); il pedice 32, a destra della freccia, indica che il trasferimento coinvolge 32 bit; l indirizzo di memoria da cui prelevare la parola è ottenuto come somma di uno spiazzamento (30) al contenuto di un registro (R2); la seconda riga della tabella è semplicemente un caso particolare della prima, in quanto il registro usato per l indirizzo di memoria è R0, che contiene sempre il valore 0, il che significa che lo spiazzamento coincide in questo caso con l indirizzo effettivo di memoria; la terza riga riguarda una istruzione di caricamento di un registro (R1) non più tramite una parola, bensì tramite un singolo byte: il codice operativo simbolico di tale istruzione è perciò LB (Load Byte). Si tratta ovviamente di una situazione particolare, in quanto il byte riempirà solo gli 8 bit più a sinistra del registro, per cui bisogna decidere come riempire i restanti 24 bit più significativi. Nell esempio considerato, R1 32 (M[40+R3] 0 ) 24 ##M[40+R3], tale riempimento avviene tramite l estensione in segno del byte caricato: il primo bit di tale byte, M[40+R3] 0, viene replicato 24 volte, come indicato dalla simbologia (M[40+R3] 0 ) 24, e questa sequenza di 24 bit viene concatenata (operatore ##) al byte originale (in particolare, questo viene posto a destra), in modo da generare i 32 bit da collocare nel registro R1; la quarta riga è analoga alla precedente, se non per il fatto che in questo caso viene espressamente rifiutata l estensione in segno del byte (per cui il codice operativo simbolico è LBU, ossia Load Byte Unsigned), per cui i rimanenti 24 bit del registro devono essere posti tutti a 0: di conseguenza, vengono generati 24 bit a 0 (come indicato dalla simbologia 0 24 ) e vengono concatenati alla sinistra del byte originale, in modo da ottenere i 32 bit da porre nel registro; la quinta riga è ancora un esempio di caricamento, che però coinvolge una parola corta (16 bit): il codice operativo simbolico di tale istruzione è perciò LH (Load Half). Anche in questo caso si pone il problema di come riempire i restanti 16 bit, ma si pone anche il problema che la mezza parola si trova in due locazioni di memoria (ciascuna da un byte) consecutive: R1 32 (M[40+R3] 0 ) 16 ##M[40+R3]##M[41+R3]. Vengono perciò eseguite varie operazioni: le due locazioni di memoria vengono prelevate, la prima di esse viene estesa in segno (per 16 bit, come testimoniato dall apice recante il valore 16 e relativo al bit di ordine 0, ossia quello più significativo) e i tre gruppi di bit vengono concatenati (operatore ##) per formare i 32 bit da collocare nel registro di destinazione; aggiornamento: 8 luglio

5 Architettura del DLX la riga successiva coinvolge un numero in virgola mobile in singola precisione, che deve essere collocato in un registro per virgola mobile (F0 nell esempio): il codice operativo simbolico dell istruzione è dunque LF (Load Floating). Si tratta evidentemente di un caso semplice in quanto è coinvolto un solo registro; la riga ancora successiva propone invece un caso leggermente più complesso, in quanto il numero da carica è in doppia precisione (64 bit), per cui i registri coinvolti sono due. Il codice operativo simbolico dell istruzione è in questo caso LD (Load Double). Il contenuto della locazione di memoria specificata (sempre tramite registro base e spiazzamento) viene perciò copiato trasferendo i 32 bit meno significativi in F1 e quelli più significativi in F0; dalla ottava riga in poi sono riportati casi di memorizzazione del contenuto dei registri in memoria; non sono qui necessarie ulteriori considerazioni particolari, se non per gli ultimi due casi, in cui si propone il trasferimento di una parola corta (penultima riga, codice operativo SH, ossia Store Half) e di un solo byte (ultima riga, codice operativo SB, ossia Store Byte): in questi casi, è necessario specificare quali bit del registro sorgente trasferire, per cui la simbologia M[502+R2] 16 R indica che devono essere trasferiti i 16 bit meno significativi di R1, mentre la simbologia M[41+R3] 8 R indica che devono essere trasferiti gli 8 bit meno significativi di R2. IIstruziionii ALU Tutte le istruzioni ALU del DLX sono di tipo registro-registro, ossia coinvolgono operandi (sorgente e destinazione) situati sempre nei registri interni alla CPU (in particolare all unità di calcolo, come vedremo nel prossimo capitolo). Esse includono tutte le operazioni aritmetiche e logiche più semplici: somma, sottrazione, AND, OR, XOR e scorrimento. Per tutte queste istruzioni sono previste anche le forme con operandi immediati: in particolare, si considera al massimo un operando immediato, da 16 bit con segno. L operazione LHI (che sta per carica immediato alto ) carica la parte alta di un registro (i 16 bit più significativi) e pone a zero quella bassa (i 16 bit meno significativi). Tale istruzione consente perciò il caricamento di una costante da 32 bit tramite due istruzioni successive di caricamento, la prima delle quali è appunto LHI. Talvolta, viene usato il codice mnemonico LI, che indica caricamento immediato, come abbreviazione per una somma immediata in cui uno dei due operandi è R0; analogamente, l istruzione MOV è talvolta impiegata al posto di un ADD in cui uno degli addendi è R0. Nella categoria delle istruzioni ALU rientrano anche le istruzioni di confronto, che operano sempre su registri: i confronti previsti sono uguaglianza (=), disuguaglianza ( ), maggiore di (>), minore di (<), maggiore o uguale di ( ), minore o uguale di ( ). Se la condizione è verificata, queste istruzioni pongono ad 1 il registro destinazione (appunto per rappresentare l esito true del confronto), mentre in caso contrario lo pongono a zero (esito false). Proprio per il fatto di effettuare il set del registro destinazione, queste istruzioni vengono chiamate set-equal, set-not-equal, set-less-than e così via. Anche per questi confronti sono previste forme con operando immediato. La seguente tabella mostra alcuni esempi di istruzioni ALU su DLX, con e senza operandi immediati: aggiornamento: 8 luglio

6 Appunti di Calcolatori Elettronici Capitolo 4 Nome Istruzione Esempio Significato Somma ADD R1,R2,R3 R1 R2+R3 Somma immediato ADD R1,R2,#3 R1 R2+3 Carica immediato alto LHI R1,#42 R1 42##0 16 Scorrimento logico a sinistra SLL R1,R2,#5 R1 R2<<5 Set-less-than SLT R1,R2,R3 If (R2<R3) R1 1 Else R1 0 Ci sono ben pochi commenti da fare su questa tabella. Ad esempio, nella terza riga, viene riportato un esempio dell istruzione LHI con operando immediato (valore 42): i bit corrispondenti all operando immediato vengono posti nella parte alta del registro R1 (16 bit più significativi), mentre i rimanenti bit (i 16 meno significativi) vengono posti a 0. L ultima riga riporta invece una istruzione di confronto senza operandi immediati: se la condizione (R2<R3 nell esempio) è vera, il registro di destinazione (che nell esempio è R1) viene posto ad 1 (appunto per rappresentare true), mentre in caso contrario viene posto a 0. Notiamo infine che, in tutte le istruzioni riportate nella tabella, il primo registro è quello destinazione (negli esempi citati, si tratta sempre di R1), mentre gli altri fanno da sorgente. Controllllo dii ffllusso:: diiramaziionii e salltii Il controllo di flusso nel DLX viene gestito mediante un insieme di salti e di diramazioni. Esistono quattro tipologie di istruzioni di salto: due di esse (J e JAL) usano uno spiazzamento senza segno da 26 bit sommato al registro contatore di programma (PC) incrementato di 4 ( 1 ), per determinare l indirizzo di destinazione del salto; le altre due (JR e JALR) specificano invece direttamente un registro che contiene l indirizzo di destinazione. Questa particolarità dell indirizzo di destinazione sito in un registro è indicata dal suffisso R. In aggiunta, due di queste istruzioni (J e JR) effettuano il cosiddetto salto semplice, mentre le altre due (JAL e JALR) effettuano il salto con collegamento, che viene usato per le chiamate a procedura in quanto fa in modo che l indirizzo di ritorno dalle procedure venga automaticamente caricato nel registro R31. Quest ultima particolarità del collegamento è indicata dagli stessi nomi simbolici: JAL sta infatti per Jump And Link. Per quanto riguarda, invece, le diramazioni, ce ne sono solo due e sono tutte con condizione : esse verificano l uguaglianza o la disuguaglianza di un operando con 0. L indirizzo di destinazione delle diramazioni è sempre specificato da uno spiazzamento a 16 bit con segno che viene sommato al registro contatore di programma. La tabella seguente riporta alcuni tipici esempi delle quattro istruzioni di salto e due istruzioni di diramazione: 1 Il fatto per cui lo spiazzamento viene sommato non a PC, bensì a PC+4 sarà meglio compreso quando parleremo della pipeline. aggiornamento: 8 luglio

7 Architettura del DLX Nome Istruzione Esempio Significato Salto J nome PC nome; ((PC+4)-2 25 ) nome < ((PC+4)+2 25 ) Salto e collegamento JAL nome R31 PC+4; PC nome; ((PC+4)-2 25 ) nome < ((PC+4)+2 25 ) Salta e collega a registro JALR R2 R31 PC+4; PC R2 Salta a registro JR R3 PC R3 Salta se uguale a zero BEQZ R4,nome If (R4==0) PC nome; (diramazione) ((PC+4)-2 25 ) nome < ((PC+4)+2 25 ) Salta se non uguale a zero (diramazione) BNEZ R4,nome If (R4!=0) PC nome; ((PC+4)-2 25 ) nome < ((PC+4)+2 25 ) Notiamo, come anticipato prima, che le uniche due diramazioni prevedono l uguaglianza (BEQZ) o la disuguaglianza (BNEZ) di un registro con 0. Se tale registro è R0, l istruzione si ritiene senza condizione. Per quanto riguarda l aggiornamento del registro PC per l eventuale destinazione del salto, si nota quanto segue: le due istruzioni JALR e JR specificano l indirizzo di destinazione in un registro (rispettivamente R2 ed R3 negli esempi citati), che quindi deve essere copiato nel registro PC; le due istruzioni BEQZ e BNEZ specificano uno spiazzamento di 16 bit (con segno) che deve essere sommato a PC+4; stesso discorso per le istruzioni di salto J e JAL (dove quest ultima ha la particolarità di inserire l indirizzo di ritorno, cioè PC+4, in R31, come anche JALR). L insieme delle istruzioni di controllo di flusso è completato da altre due istruzioni, TRAP e RFE, che però in questo momento non ci interessa approfondire (lo faremo nel capitolo 5). IIstruziionii iin viirgolla mobiille Le istruzioni in virgola mobile operano sui registri in virgola mobile (FPR) e indicano sempre se l operazione da effettuare è in singola precisione oppure in doppia precisione: le operazioni in singola precisione si possono applicare ad ogni registro FPR; le operazioni in doppia precisione si possono effettuare solo su una coppia pari-dispari di registri FPR (ad esempio F4-F5), che viene identificata dal numero del registro pari. Le istruzioni di caricamento e memorizzazione per i registri FPR spostano dati tra la memoria e tali registri, sia in precisione singola sia in precisione doppia: ad esempio, le istruzioni MOVF e MOVD copiano un registro in precisione singola (MOVF) o doppia (MOVD) in un altro registro dello stesso tipo; le istruzioni MOVFP2I e MOVI2FP spostano dati tra un registro in virgola mobile a precisione singola ed un registro per interi; invece, per spostare un aggiornamento: 8 luglio

8 Appunti di Calcolatori Elettronici Capitolo 4 valore in precisione doppia in due registri interi richiede due distinte istruzioni. Sono inoltre disponibili la moltiplicazione e la divisione tra interi, che operano su registri in virgola mobile da 32 bit, così come le conversioni da interi a virgola mobile e viceversa. Le operazioni previste sui numeri in virgola mobile sono le 4 solite: somma, sottrazione, moltiplicazione e divisione. Quando si usa il suffisso D, si intende doppia precisione, mentre invece il suffisso F è per la singola precisione. Ad esempio, alcuni codici mnemonici sono ADDD (somma in doppia precisione), ADDF (somma in singola precisione), SUBD (sottrazione in doppia precisione), SUBF (sottrazione in singola precisione) e così via (MULTD, MULTF, DIVD, DIVF). I confronti in virgola mobile modificano un bit nel registro di stato della virgola mobile. Tale bit può successivamente essere verificato con una diramazione: ad esempio, il codice mnemonico BFPT corrisponde a esegui il codice del ramo se la condizione è verificata (true), mentre invece il codice BFPF corrisponde a esegui il codice del ramo se la condizione non è verificata (false). Tabelllla complleta delllle iistruziionii La seguente tabella contiene la lista di tutte le istruzioni con il loro significato: Tipo Istruzione / Codice Operativo Istruzioni di trasferimento dati LB LBU SB LH LHU SH LW SW LF LD SF SD MOVI2S MOVS2I MOVF MOVD MOVFP2I MOVI2FP Significato dell istruzione Servono a spostare dati tra registri e memoria, tra interi e dati in virgola mobile o tra registri speciali. Solo la modalità di indirizzamento a memoria fa uso di uno spiazzamento a 16 bit con segno sommato al contenuto di un registro GPR Caricamento di un byte Caricamento di un byte senza segno Memorizzazione di un byte Caricamento di una parola corta Caricamento di una parola corta senza segno Memorizzazione di una parola corta Caricamento di una parola in un registro per interi Memorizzazione di una parola da un registro per interi Caricamento di un dato in virgola mobile in singola precisione Caricamento di un dato in virgola mobile in doppia precisione Memorizzazione di un dato in virgola mobile in singola precisione Memorizzazione di un dato in virgola mobile in doppia precisione Spostamento di un registro GPR verso un registro speciale Spostamento verso un registro GPR da un registro speciale Copia di un registro in virgola mobile in un altro registro Copia di una coppia di registri in virgola mobile in un'altra coppia Spostamento da registri in virgola mobile da 32 bit verso registri per interi Spostamento verso registri in virgola mobile da 32 bit da registri per interi aggiornamento: 8 luglio

9 Architettura del DLX Istruzioni ALU Servono per effettuare operazioni su dati interi o logici situati nei GPR ADD Somma con segno ADDI Somma di un immediato con segno ( 2 ) ADDU Somma senza segno ADDUI Somma di un immediato senza segno SUB Sottrazione con segno SUBI Sottrazione di un immediato con segno SUBU Sottrazione senza segno SUBUI Sottrazione di un immediato senza segno MULT Moltiplicazione con segno; gli operandi devono essere registri per virgola mobile; tutte le operazioni producono numeri a 32 bit MULTU Moltiplicazione senza segno; gli operandi devono essere registri per virgola mobile; tutte le operazioni producono numeri a 32 bit DIV Divisione con segno; gli operandi devono essere registri per virgola mobile; tutte le operazioni producono numeri a 32 bit DIVU Divisione senza segno; gli operandi devono essere registri per virgola mobile; tutte le operazioni producono numeri a 32 bit AND AND ANDI AND di un immediato OR OR ORI OR di un immediato XOR OR esclusivo XORI OR esclusivo di un immediato LHI Caricamento alto di un immediato: carica l immediato nella metà alta del registro SLL,SRL,SRA Scorrimenti in formato variabile SLLI, SRLI Scorrimenti immediati SRAI (S ); gli scorrimenti sono logici verso sinistra, logici verso destra, aritmetici verso destra S, S I Modifica condizionata: al posto di ci può essere LT (<), GT (>), LE (<=), GE (>=), EQ (=), NE ( ) Istruzioni di controllo Diramazioni condizionate e salti; relativi al registro contatore di programma oppure tramite registri BEQZ Salta se il registro sorgente (GPR) è uguale a zero; spiazzamento di 16 bit a partire da PC+4 BNEZ Salta se il registro sorgente (GPR) è diverso da zero; spiazzamento di 16 bit a partire da PC+4 BFPT Verifica il bit di confronto del registro di stato della virgola mobile e salta se vale 1 (true); spiazzamento di 16 bit a partire da PC+4 BFPF Verifica il bit di confronto del registro di stato della virgola mobile e salta se vale 0 (false); spiazzamento di 16 bit a partire da PC+4 J Salto: spiazzamento, da 26 bit con segno, a partire da PC+4 JR Salto: indirizzo destinazione contenuto nel registro indicato JAL Salto e collegamento: salva PC+4 in registro R31 e somma lo spiazzamento (26 bit con segno) a PC+4 JALR Salto e collegamento: salva PC+4 in registro R31 e copia (in PC) l indirizzo di destinazione dal registro indicato TRAP Trasferimento controllo al sistema operativo ad un indirizzo vettorizzato RFE Ritorno al codice utente dopo una eccezione; ripristino della modalità utente Istruzioni per la Operazioni in virgola mobile per formati in singola e doppia precisione virgola mobile ADDD Addizione di numeri in singola precisione ADDF Addizione di numeri in doppia precisione 2 Ricordiamo che tutti gli immediati sono da 16 bit aggiornamento: 8 luglio

10 Appunti di Calcolatori Elettronici Capitolo 4 SUBD SUBF MULTD MULTF DIVD DIVF CVTF2D, CVTF2I, CVTD2F, CVTD2D, CVTI2F, CVTI2D D, F Sottrazione di numeri in singola precisione Sottrazione di numeri in doppia precisione Moltiplicazione di numeri in singola precisione Moltiplicazione di numeri in doppia precisione Divisione di numeri in singola precisione Divisione di numeri in doppia precisione Istruzioni di conversione: CVTx2y converte il tipo x nel tipo y, dove x ed y possono essere interi (I), doppia precisione (D) o singola precisione (F). Entrambi gli operandi sono contenuti in registri FPR Confronti in precisione singola e doppia: può essere LT, GT, LE, GE, EQ, NE. Ha effetto sui bit di confronto nei registri di stato della virgola mobile Formato delle istruzioni Le caratteristiche fondamentali delle istruzioni del DLX sono le seguenti (alcune le abbiamo già viste nei paragrafi precedenti): tutte le istruzioni del DLX sono lunghe 32 bit (cioè una parola) le istruzioni ALU trovano gli operandi in due registri sorgente Rs1 ed Rs2, a meno che uno dei due operandi non sia un valore immediato (nel qual caso c è un solo registro sorgente); esse scrivono il proprio risultato in un registro destinazione Rd; le uniche istruzioni che accedono esplicitamente alla memoria sono quelle di load (lettura dalla memoria e scrittura in un registro) e quelle di store (lettura da un registro e scrittura in memoria): l indirizzamento della memoria avviene sempre specificano un registro che contiene la base e indicando lo spiazzamento da sommare a tale base; i salti possono essere con indirizzamento relativo al PC (spiazzamento, da 16 o da 26 bit, da sommare a PC+4) oppure con indirizzamento indiretto a registro (l indirizzo di destinazione si trova in un registro); la memoria viene indirizzata con riferimento al byte (per cui gli indirizzi di due istruzioni consecutive differiscono di 4 byte). Esistono tre tipi di istruzioni: istruzioni di tipo I: queste istruzioni servono per l accesso alla memoria (caricamento o memorizzazione di byte, parole e parole corte), per le istruzioni aritmetiche in cui uno degli operandi è un valore immediato, per i salti condizionati (nel qual caso rs1 è un registro, mentre rd non è usato), per i salti ad un indirizzo ricavato da un registro e per le chiamate o i ritorni da subroutine che coinvolgono un registro (in questi ultimi due casi risulta rd=0, immediato=0 e rs1=destinazione). Il formato è il seguente ( 3 ): 3 Facciamo notare che i bit riservati ai campi per l individuazione dei registri sono sempre 5, in quanto i registri del banco sono 32 (=2 5 ) aggiornamento: 8 luglio

11 Architettura del DLX 6 bit 5 bit 5 bit 16 bit Codice operativo rs1 rd Immediato Esempi: ADD R1,R2,#5 LW R1,30(R2) BEQZ R4,nome JR R3 istruzioni di tipo R: servono tipicamente per le operazioni ALU da registro a registro (quindi senza operandi immediati, del tipo rd rs1 funzione rs2, dove funzione codifica l operazione, ad esempio Add, Sub, ). Servono anche per la lettura/scrittura dei registri speciali e per gli spostamenti di dati tra registri. Il formato è il seguente: 6 bit 5 bit 5 bit 5 bit 11 bit Codice operativo rs1 rs2 rd Estensione codice operativo istruzioni di tipo J: servono per le istruzioni di salto semplice e di salto con collegamento, nonché per le trappole (TRAP) e i ritorni al codice utente (RFE). Lo spiazzamento viene considerato sia positivo sia negativo, dove il bit più significativo è appunto indicativo del segno (0 per positivo ed 1 per negativo). Il formato è il seguente: 6 bit 26 bit Codice operativo Spiazzamento relativo al registro Program Counter Esempi: JAL nome J nome RFE TRAP In tutte le istruzioni, i primi 6 bit corrispondono al codice operativo primario; per le istruzioni di tipo I, i successivi due gruppi da 5 bit indicano sempre una coppia di registri all interno di un unico banco da 32 registri; nel caso invece delle istruzioni di tipo R, il codice operativo è seguito da 15 bit, 5 per ciascun registro del banco (due registri sorgente ed un registro destinazione). Nel caso delle istruzioni di tipo R, che sono in gran parte usate per istruzioni con riferimento all ALU, i 6 bit del codice operativo primario potrebbero risultare insufficienti per identificare in modo completo: in questi casi, si usano gli 11 bit meno significativi per specificare ulteriormente la funzione aritmetica o logica da applicare. Per quanto riguarda la istruzioni di tipo I, si è detto che l eventuale valore immediato è lungo 16 bit: tale numero di bit è stato ritenuto sufficiente sulla base di una accurata analisi di programmi tipici fatti girare sui calcolatori; tali 16 bit sono risultati idonei ad ospitare un operando immediato per le istruzioni ALU così come aggiornamento: 8 luglio

12 Appunti di Calcolatori Elettronici Capitolo 4 per le istruzioni di load e store, per le quali essi specificano uno spiazzamento da sommare al valore contenuto in un registro base (il che consente di esplorare aree dati sufficientemente ampie). Lo stesso spiazzamento risulta idoneo nel caso dei salti gestiti con indirizzamento indiretto da registro. Naturalmente, il fatto di usare 16 bit anche per gli operandi delle istruzioni ALU comporta una complicazione legata al fatto che tali istruzioni operano comunque su valori a 32 bit: questo comporta che un valore immediato a 16 bit debba essere esteso in segno a 32 bit prima di poter essere inviato in ingresso alla ALU. Confronto del DLX con altre macchine Si ritiene utile, a questo punto, fare un confronto tra le caratteristiche salienti del DLX e quelle di altri processori di una certa importanza. Lo facciamo servendoci della solita struttura tabellare: Macchine Registri Modalità di indirizzamento DLX 32 registri interi; 16 Spiazzamento a 16 bit registri in doppia (con segno); precisione o 32 in operandi immediati a 16 bit singola precisione AMD Intel i registri interi con cache della pila; 8 registri in doppia precisione Come il DLX Solo a registro indiretto; operandi immediati a 8 bit Spiazzamento a 16 bit; modalità indicizzata; autoincremento; operandi immediati a 16 bit MIPS R2000/R registri interi Spiazzamenti ed immediati a 16 bit Motorola SPARC 32 registri di uso generale (GPR) Finestra di registri con 32 registri interi disponibili per le procedure. 16 registri in doppia precisione oppure 32 in singola precisione Spiazzamenti a 16 bit; modalità indicizzata Spiazzamento ed immediati a 13 bit; modalità di indirizzamento indicizzata Operazioni Si vedano le tabelle riportate in precedenza Moltiplicazioni/divisioni tra interi con trappola software. Solo le diramazioni sulle condizioni =0 e 0 Le diramazioni effettuano il confronto di uguaglianza tra due registri. Sono supportate le trappole su condizione. La virgola mobile effettua le divisioni tramite i reciproci. E fornito un supporto parziale per i caricamenti e le memorizzazioni a 128 bit Spostamenti per caricamento/memorizzazione di dati in virgola mobile da 32 bit in un registro. Le condizioni delle diramazioni possono confrontare due registri. Moltiplicazione/divisione intera tra GPR. Istruzioni speciali per caricamento/memorizzazione di parole parziali Istruzioni speciali di manipolazione dei bit. Le diramazioni possono effettuare test di zero e verificare i bit tramite confronti Le diramazioni usano il codice condizionato modificato selettivamente dalle istruzioni. Moltiplicazione/Divisione tra interi. Non sono consentiti spostamenti tra registri per interi e registri in virgola mobile. aggiornamento: 8 luglio

13 Architettura del DLX Aggiungiamo, a quanto riportato in questa tabella, quanto segue: tutte le macchine riportate hanno la dimensione base delle istruzioni a 32 bit, nonostante siano in taluni casi forniti dei meccanismi per dimensioni sia maggiori sia minori; le finestre di registri usate nell architettura SPARC e la cache usata nell architettura AMD sono due particolarità di tali architetture; l architettura MIPS R2000 è usata nella DECStation 3100, che è la macchina analizzata nel capitolo 2 ed usata inoltre come macchina load/store nel capitolo 3; il numero di registri in virgola mobile a doppia precisione è stato indicato solo se essi sono separati dai registri per interi. In generale, si può affermare che il DLX presenta una stretta similitudine con tutte le macchine load/store riportate in tabella. Di conseguenza, le misure condotte sul DLX possono essere viste come ragionevoli approssimazioni del comportamento di una qualsiasi di tali macchine. sandry@iol.it sito personale: aggiornamento: 8 luglio

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

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

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

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

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

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

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

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

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

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

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

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

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

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H Architettura dei calcolatori e sistemi operativi Architettura MIPS e set istruzioni Capitolo 2 P&H Instruction Set Architecture ISA Linguaggio assemblatore e linguaggio macchina ISA processore MIPS Modello

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. 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

Il linguaggio macchina

Il linguaggio macchina Il linguaggio macchina Un istruzione in linguaggio macchina è, sul piano astratto, una tripla strutturata: i = (f, P1, P2) ove: f F insieme dei codici operativi del processore, cioè delle operazioni elementari

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

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

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

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II) 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 La inserita nella architettura dell elaboratore Informatica Facoltà di Medicina Veterinaria a.a.

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

Istruzioni MIPS per floating point

Istruzioni MIPS per floating point Istruzioni MIPS per floating point Architetture dei Calcolatori (lettere A-I) Coprocessore per floating point L architettura MIPS ha un coprocessore (indicato con il numero 1) che opera sui numeri in virgola

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

Introduzione al linguaggio macchina. Istruzione l/m

Introduzione al linguaggio macchina. Istruzione l/m 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

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione Informazioni varie Lezione 18 Il Set di Istruzioni (5) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno La lezione di martedì 20 maggio (9-12) non si tiene

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

Modifiche di orario. Lezione 19 Il Set di Istruzioni (6) Dove siamo nel corso. Un quadro della situazione

Modifiche di orario. Lezione 19 Il Set di Istruzioni (6) Dove siamo nel corso. Un quadro della situazione Modifiche di orario Lezione 19 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Al posto della lezione di domani giovedì 22/5 (12-1)

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

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 17 Il Set di Istruzioni (3)

Lezione 17 Il Set di Istruzioni (3) Lezione 17 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Un richiamo su: Operazioni aritmetiche (add

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

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

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

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

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto Un quadro della situazione Lezione 14 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

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

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

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

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

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

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

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

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

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 Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull

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

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di MIPS: modello di programmazione Anno Accademico 2007/2008 Francesco Tortorella CPU Compito della CPU: eseguire istruzioni Le istruzioni costituiscono le operazioni primitiva eseguibili dalla CPU

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

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

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale Università degli Studi di Cassino e del Lazio Meridionale di Calcolatori Elettronici MIPS: modello di programmazione Anno Accademico 2012/2013 Alessandra Scotto di Freca Si ringrazia il prof.francesco

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

LA CPU INTEL Vantaggi dei programmi Assembly

LA CPU INTEL Vantaggi dei programmi Assembly 1 LA CPU INTEL 8086 Vantaggi dei programmi Assembly L utilizzo del linguaggio Assembly anzichè di un linguaggio ad alto livello (tipo C o Pascal) è talvolta giustificato dalla maggiore efficienza del codice;

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

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

Corso di Calcolatori Elettronici

Corso di Calcolatori Elettronici di Cassino e del Lazio Meridionale Corso di MIPS: modello di programmazione Anno Accademico Francesco Tortorella CPU Compito della CPU: eseguire istruzioni Le istruzioni costituiscono le operazioni primitiva

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

L insieme delle istruzioni del processore MIPS. Corso Calcolatori Elettronici presso POLITECNICO DI MILANO

L insieme delle istruzioni del processore MIPS. Corso Calcolatori Elettronici presso POLITECNICO DI MILANO L insieme delle istruzioni del processore MIPS Corso Calcolatori Elettronici presso POLITECNICO DI MILANO Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione email:

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

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

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini [http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a. 2005-2006 Docente: H. Muccini Lecture 2: Prime Istruzioni -Concetti Fondamentali

Dettagli

I formati delle istruzioni

I formati delle istruzioni Appunti di Calcolatori Elettronici Le istruzioni I formati delle istruzioni... 1 Criteri generali di progettazione dei formati delle istruzioni... 2 Cenni all indirizzamento... 4 Indirizzamento immediato...

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

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

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

Capitolo 5 Struttura di base del processore

Capitolo 5 Struttura di base del processore Capitolo 5 Struttura di base del processore 5.1. Il periodo di clock deve ospitare tutti i ritardi di propagazione più il tempo di impostazione per i registri. a. Minimo periodo di clock = 70 + 600 + 50

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

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Il linguaggio assemblativo MIPS (1) Istruzioni di ALU: operazioni ed operandi Trasferimenti tra memoria e CPU Vettori (1) Le costanti Livelli di astrazione s o f t w a r e H W Linguaggio

Dettagli

The DLX Assembly. DLX Instruction Set Architecture

The DLX Assembly. DLX Instruction Set Architecture The DLX Assembly 1 DLX Instruction Set Architecture Concetti architetturali: Semplicità del load/store IS ( fissa Semplicità nella decodifica (istruzioni a lunghezza Caratteristiche 32 General Purpose

Dettagli

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly PH 2.3 (continua) 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Istruzioni logiche 2 1 La memoria del MIPS I contenuti delle locazioni di memoria

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

Autilia Vitiello Dip. di Informatica ed Applicazioni Stecca 7, 2 piano, stanza 12

Autilia Vitiello Dip. di Informatica ed Applicazioni Stecca 7, 2 piano, stanza 12 Autilia Vitiello Dip. di Informatica ed Applicazioni Stecca 7, 2 piano, stanza 12 vitiello@dia.unisa.it http://www.dia.unisa.it/~avitiello Presentazione Corso di Architettura matricole congruo a 0: prof.

Dettagli

Il Linguaggio Assembly

Il Linguaggio Assembly Il Linguaggio Assembly Luca Abeni March 16, 2016 Linguaggio Macchina ed Assembly CPU: capisce (e riesce ad eseguire) solo il suo linguaggio macchina Sequenza di 0 e 1 Non proprio utilissimo per noi umani...

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

Calcolatori Elettronici T. ISA DLX: Implementazione Tramite Struttura Sequenziale

Calcolatori Elettronici T. ISA DLX: Implementazione Tramite Struttura Sequenziale Calcolatori Elettronici T ISA DLX: Implementazione Tramite Struttura Sequenziale 1 E disponibile un interprete e simulatore (EasyDLX) per un insieme semplificato dell ISA DLX realizzato da Daniele Biagi

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

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

Assembly IV Le procedure

Assembly IV Le procedure rchitettura degli Elaboratori e delle Reti Lezione 14 ssembly IV Le procedure Proff.. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:

Dettagli

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A. < < } } Lezione 5 e 6 Accesso a memoria A questo livello di astrazione, la memoria viene vista come un array di byte Per ogni richiesta di un dato ad un certo indirizzo, la CPU ottiene un numero di byte

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

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Istruzioni del processore Abbiamo visto in precedenza alcuni esempi di istruzioni

Dettagli

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da

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

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

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini [http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a. 2006-2007 Docente: H. Muccini Lecture 12: - Numeri con segno -Somma e sottrazione

Dettagli

Assembly (3): le procedure

Assembly (3): le procedure Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:

Dettagli