Calcolatori Elettronici
|
|
|
- Nicolina Meloni
- 10 anni fa
- Просмотров:
Транскрипт
1 Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1
2 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche: registri, ALU, MUX Porte logiche: NOT, AND, Transistor REQUISITI Organizzazione di componenti per implementare ISA Modelli logici: si parla di variabili, valori binari! Modelli elettronici: si parla di tensioni, correnti, ecc. Modelli fisici: si parla di dimensioni fisiche, materiali, ecc. 2
3 LIVELLI INTERESSATI NELLA LEZIONE LIVELLO APPLICAZIONI LIVELLO LING. ASSEMBLY LIVELLO SIST. OP. LIVELLO FUNZ.LE (RTL) LIVELLO DELLA LOGICA LIVELLO DEI CIRCUITI LIVELLO DEL LAYOUT Programmi applicativi Programmi assembly Programmi assembly Application Binary Interface (ABI) Application Binary Interface (ABI) ISA Instruction Set Architecture (ISA) Componenti: registri, ALU, bus, memorie, Strutture: registri, ALU, bus, memorie, Componenti: porte logiche, flip-flop, Strutture: porte logiche, flip-flop, Componenti: transistor, resistenze, capacità Strutture: transistor, resistenze, capacità Componenti: materiali (Si, AsGa, ) 3
4 Architettura MIPS Architettura sviluppata da John Hennessy nel 1981 Usata da NEC, Nintendo, Silicon Graphics, Sony Caratteristica fondamentale: semplicità ed eleganza Il processore MIPS è a 32 bit: - tutti i registri sono a 32 bit - gli indirizzi per accedere in memoria sono a 32 bit Il numero di registri visibili al programmatore è 32 (identificati da un numero 0-31: servono 5 bit) 4
5 I registri del MIPS visibili al programmatore Nome Codifica $zero 0 $at 1 $v0-$v1 2-3 $a0-$a3 4-7 $t0-$t $s0-$s $t8-$t $k0-$k $gp 28 $sp 29 $fp 30 $ra 31 vale sempre 0 utilizzato dalla jal NB: ad eccezione di $zero e $ra, i nomi riflettono pure convenzioni sull utilizzo Tutti i registri possono essere usati indifferentemente come operandi 5
6 Tipologie di istruzioni Istruzioni aritmetiche e logiche Istruzioni di trasferimento: - lw - sw Istruzioni di controllo: - salti condizionati - salti incondizionati (includono la chiamata a una procedura e l istruzione di ritorno) 6
7 Istruzioni aritmetiche e logiche DUE VARIANTI A) 3 operandi registro add $s0, $t1, $t2 # $s0 = $t1 + $t2 B) 2 operandi registro e 1 immediato addi $s0, $t1, -4 # $s0 = $t1 + (-4) NB: necessaria estensione di segno a 32 bit della costante 7
8 Specchio riassuntivo Tutte le istruzioni hanno 3 operandi: - un operando destinazione - due operandi sorgente Gli operandi possono essere: - tutti registri (es: istruzione add) - un operando sorgente costante a 16 bit + due registri: istruzione indicata con suffisso i (es: istruzione addi) In assembly, l operando destinazione appare come primo operando NB: Alcune istruzioni aritmetiche hanno anche la versione senza segno ( unsigned ) 8
9 Istruzioni aritmetiche add rd, rs, rt # rd = rs + rt addi rt, rs, const # rt = rs + const sub rd, rs, rt # rd = rs - rt NB: subi non presente (non serve!) 9
10 Esercizio Effettuare $s1 + $s2 $s3 + $s4 e porre il risultato in $s0 10
11 Esercizio Effettuare $s1 + $s2 $s3 + $s4 e porre il risultato in $s0 add $s0, $s1, $s2 # $s0 = $s1 + $s2 sub $s0, $s0, $s3 # $s0 = $s1 + $s2 $s3 add $s0, $s0, $s4 # $s0 = $s1 + $s2 $s3 + $s4 11
12 Istruzioni logiche And bit a bit and rd, rs, rt # rd = rs & rt NB: utile per applicare andi rt, rs, const # rt = rs & const una maschera Or bit a bit or rd, rs, rt # rd = rs rt NB: utile per porre a 1 ori rt, rs, const # rt = rs const determinati bit Nor bit a bit nor rd, rs, rt # rd = ~(rs rt) NB: NOT si ottiene con (NB: nori non disponibile, utilizzo raro) nor rd, rt, rt nor rd, rt, $zero NB: per le istruzioni immediate, la costante viene estesa aggiungendo degli zeri (non estendendo il segno) 12
13 Istruzioni di shift Shift left logical sll rd, rt, const # rd = rt<<const NB: inseriti zeri a destra, utile per moltiplicare per 2 const Shift right logical srl rd, rt, const # rd = rt>>const NB: inseriti zeri a sinistra, utile per dividere numeri positivi per 2 const Shift right arithmetic sra rd, rt, const # rd = rt>>const NB: inserite a sinistra copie del bit di segno, utile per dividere numeri positivi e negativi per 2 const (in realtà numeri negativi dispari divisi e arrotondati per difetto) 13
14 Istruzioni di trasferimento dati load word (lw) Permette di trasferire una parola di memoria (32 bit, 4 byte) in un registro Sintassi: lw rt, const(rs) # rt = M[rs+const] rs e rt sono due registri const è una costante a 16 bit specificata dall istruzione store word (sw) Permette di trasferire il valore di un registro in una parola di memoria Sintassi: sw rt, const(rs) # M[rs+const] = rt rs e rt sono due registri const è una costante specificata dall istruzione 14
15 Esercizio con array di interi (allocato in memoria) Indirizzo base del vettore A contenuto in un registro base A+4*i A+4 A h ES: l indirizzo di h sia $s2 e il registro base del vettore A sia $s3 Traduzione di A[12] = h + A[8] 15
16 Esercizio con array di interi (allocato in memoria) Indirizzo base del vettore A contenuto in un registro base A+4*i A+4 A h ES: l indirizzo di h sia $s2 e il registro base del vettore A sia $s3 Traduzione di A[12] = h + A[8] lw $t0, 32($s3) # carica in $t0 il valore A[8] lw $t1, 0($s2) # carica in $t1 il valore di h add $t0, $t1, $t0 # somma h + A[8] sw $t0, 48($s3) # memorizza la somma in A[12] 16
17 Istruzioni di controllo: salti incondizionati (j, jr e jal) j L1 Vai incondizionatamente all istruzione etichettata con L1 (j = jump) jr rs Vai incondizionatamente all istruzione di indirizzo contenuto nel registro rs (jr = jump register) jal L1 Vai incondizionatamente all istruzione etichettata con L1 e salva l indirizzo dell istruzione successiva in $ra - cfr. procedure (jal = jump and link) 17
18 Chiamata di una procedura jal Procedura $ra add $s0, $s1, $s2 Procedura: add $t0, $t1, $t2 jr $ra CHIAMANTE CHIAMATO 18
19 e ritorno jal Procedura add $s0, $s1, $s2 Procedura: add $t0, $t1, $t2 jr $ra CHIAMANTE CHIAMATO 19
20 Chiamata di una procedura Istruzione jal (jump-and-link): è l istruzione apposita per le procedure, che salta a un indirizzo e contemporaneamente salva l indirizzo di ritorno nel registro $ra jal IndirizzoProcedura In pratica jal salva il valore di PC+4 nel registro $ra, che contiene l indirizzo della prossima istruzione: questo crea un collegamento all indirizzo di ritorno dalla procedura L indirizzo di ritorno è necessario perché la stessa procedura può essere richiamata in più parti del programma Ritorno da una procedura chiamata L istruzione per effettuare il salto di ritorno è jr $ra In questo modo il chiamato restituisce il controllo al chiamante 20
21 Istruzioni di controllo: salti condizionati (beq, bne) beq rs, rt, L1 Vai all istruzione etichettata con L1 se il valore contenuto nel registro rs è uguale al valore contenuto nel registro rt (beq = branch if equal) bne rs, rt, L1 Vai all istruzione etichettata con L1 se il valore contenuto nel registro rs è diverso dal valore contenuto nel registro rt (bne = branch if not equal) 21
22 Esercizio: if-else Frammento di codice C: if (i = = j) f = g + h; else f = g - h ; Supponendo che f, g, h, i, j siano mantenute nei registri $s0, $s1, $s2, $s3, $s4, scrivere la versione assembly 22
23 Esercizio: if-else Frammento di codice C: if (i = = j) f = g + h; else f = g - h ; Supponendo che f, g, h, i, j siano mantenute nei registri $s0, $s1, $s2, $s3, $s4, la versione assembly è: bne $s3, $s4, Else add $s0, $s1, $s2 j Esci Else: sub $s0, $s1, $s2 Esci: 23
24 Versione alternativa equivalente Frammento di codice C: if (i = = j) f = g + h; else f = g - h ; Supponendo che f, g, h, i, j siano mantenute nei registri $s0, $s1, $s2, $s3, $s4, la traduzione è la seguente beq $s3, $s4, If sub $s0, $s1, $s2 j Esci If: add $s0, $s1, $s2 Esci: 24
25 Istruzioni di controllo: l istruzione set on less than (slt) Oltre a testare uguaglianza o diseguaglianza, talvolta è necessario effettuare un confronto di maggioranza e beq, bne non bastano! E prevista un altra istruzione per confrontare due variabili: slt slt rd, rs, rt poni a 1 il valore del registro rd se il valore del registro rs è minore del valore del registro rt, altrimenti rd è posto a 1 (slt = set on less than) Esiste anche la versione immediate: slti rt, rs, immediate Esempio (salta a Minore se $s0<$s1): slt $t0, $s0, $s1 # $t0 diventa 1 se $s0 < $s1 bne $t0, $zero, Minore # vai a Minore se $t0 0 25
26 Esercizio: ciclo for Frammento di programma C: for (i=0; i<k; i++) f = f + A[i]; siano i, k, f mantenute nei registri $s1, $s2, $s3, supponendo che l indirizzo base di A in $s4. Scrivere la versione assembly 26
27 Esercizio: ciclo for Frammento di programma C: for (i=0; i<k; i++) f = f + A[i]; siano i, k, f mantenute nei registri $s1, $s2, $s3, supponendo che l indirizzo base di A in $s4. La versione assembly è: add $s1, $zero, $zero #i=0 Ciclo: slt $t0, $s1, $s2 # poni $t0 a 1 se i < k beq $t0, $zero, Esci # se $t0 = 0 vai a Esci sll $t0, $s1, 2 # $t0 = i * 4 add $t0, $t0, $s4 # $t0 = indirizzo di A[i] lw $t0, 0($t0) # $t0 = A[i] add $s3, $s3, $t0 # f = f + A[i] addi $s1, $s1, 1 # i = i + 1 j Ciclo Esci: 27
28 Caratteristiche dell architettura LOAD-STORE Istruzioni load-store: le uniche che accedono alla memoria Istruzioni aritmetiche: - operandi registro e/o immediato (no accessi in memoria) - consentono di rappresentare due sorgenti e una destinazione (usare i registri è più efficiente rispetto alla memoria; spilling dei compilatori) REGISTRI GENERAL PURPOSE Registri general-purpose (le istruzioni lavorano indifferentemente su tutti i registri) - fa eccezione $zero, che si può usare ma rimane comunque al valore nullo - $ra impostato con indirizzo di ritorno dall istruzione jal (ma può essere usato normalmente dalle istruzioni) 28
29 RISC Evitare la proliferazione delle istruzioni (sono possibili compromessi). P.es. - subi non presente (si può usare addi) - NOT non presente (si può usare NOR + registro $zero) - NORI non presente (poco utilizzato, si può comunque usare or e not con nor ) Per le istruzioni di controllo, abbiamo visto che: - si sono mantenute al minimo le istruzioni di salto condizionato (beq e bne) - per effettuare salti basati su confronto, è necessario decomporre il salto in più istruzioni, utilizzando slt > Questo non pesa nelle architetture che utilizzano il parallelismo > Permette però una semplificazione che porta in generale a maggiore efficienza ad es. ad una diminuzione di T clock 29
30 Linguaggio macchina: i formati delle istruzioni del MIPS Istruzioni a lunghezza costante: 32 bit (una parola di memoria, un registro) Suddivisione in diversi campi per definire il formato delle istruzioni rispettando il principio della regolarità Da quanto visto, le istruzioni esaminate si possono suddividere in 3 categorie: istruzioni che devono indicare 3 registri (add, sub, and, slt, ecc.) istruzioni che devono indicare due registri e una costante, in particolare: - lw e sw - istruzioni che riferiscono un operando immediato (addi, andi, ori, ecc.) - salti condizionati (due registri per il confronto + costante per il salto) istruzioni di salto incondizionato, che non riferiscono alcun registro ma (presumibilmente) indicano una costante con molti bit Le tre categorie danno luogo a tre (semplici) formati, con cui si riescono a rappresentare tutte le istruzioni! 30
31 I 3 formati delle istruzioni MIPS op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit TIPO-R op rs rt 6 bit 5 bit 5 bit const o address 16 bit TIPO-I Op address 6 bit 26 bit TIPO-J 31
32 Perché i due campi sorgente nel TIPO-R precedono il campo destinazione? Si aumenta la similarità con il Formato-I, garantendo che i registri sorgente (se presenti) siano sempre rappresentati negli stessi campi Perché si utilizza un formato che divide il codice operativo in due campi? Le istruzioni che hanno lo stesso codice operativo sono molto simili: p.es. per add, sub, and, or, slt l implementazione può prevedere - prelievo dei due operandi rs e rt - operazione ALU determinata dal campo funct - memorizzazione risultato in rd l unità di controllo fa la stessa cosa se funct è in ingresso alla ALU In questo modo si riesce a rendere il Formato-R quanto più simile ai due successivi 32
33 Formato-R (register) [per istruzioni aritmetiche e logiche] ES. add rd, rs, rt op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit op: codice operativo rs: primo operando sorgente (registro) rt: secondo operando sorgente (registro) rd: registro destinazione shamt: shift amount (per operazioni di scalamento) funct: seleziona una variante specifica dell operazione base definita nel campo op Per esempio: campo funct per le istruzioni add, sub, and, or, slt op = 0 ADD: SUB: AND: OR: SLT:
34 Esempi op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit add $t0, $s1, $s sll $t2, $s0, NON USATO 34
35 Formato-I (immediate) op rs rt const address 6 bit 5 bit 5 bit 16 bit Istruzioni con due operandi registro e una costante. P.es. le istruzioni lw e sw riferiscono: due registri (rs e rt) una costante da sommare a rt per calcolare l indirizzo 35
36 Codifica delle istruzioni immediate ES. addi rt, rs, const op rs rt const 6 bit 5 bit 5 bit 16 bit rs: registro sorgente rt: registro destinazione const: costante da sommare a 16 bit Esempio addi $t0, $t1,
37 Indirizzamento immediato L operando è una costante Usato dalle versioni immediate delle istruzioni aritmetiche (ad es. addi) che usano due operandi registro (sorgente e destinazione) e un operando immediato La costante è contenuta nel immediate nel formato-i Essendo un intero a 16 bit, ha valori da 2 15 a +(2 15-1) o, interpretato come unsigned, da 0 a
38 Codifica delle istruzioni di trasferimento lw rt, const(rs) sw rt, const(rs) op rs rt const rs: registro base al cui contenuto va sommato const rt: primo registro che compare nell istruzione (registro destinazione per lw e registro sorgente per sw) const: costante da sommare a 16 bit ( ) Esempi 6 bit 5 bit 5 bit 16 bit lw $t0, 400($t1) sw $t0, 400($t1)
39 Indirizzamento tramite base o spiazzamento L operando è in memoria. P.es. lw $t1, 32($t0) - $t0 contiene un indirizzo base - 32 è uno spiazzamento da sommare al contenuto di $t0 NB: lo spiazzamento è espresso come intero con segno a 16 bit, quindi può valere da 2 15 a +(2 15-1) 39
40 Codifica delle istruzioni di salto condizionato Anche per le istruzioni beq e bne si usa il Formato-I bne $s0, $s1, Esci # vai Esci se $s0 è diverso da $s Esci 6 bit 5 bit 5 bit 16 bit (dove 16 e 17 sono i numeri dei registri $s0 e $s1) PROBLEMA: come viene codificata l etichetta? Abbiamo a disposizione 16 bit 40
41 Indirizzamento a byte e vincolo di allineamento delle istruzioni Il MIPS indirizza il singolo byte Una parola di memoria = 4 byte Gli indirizzi delle parole sono multipli di 4 (vincolo di allineamento) Ogni istruzione occupa una parola di memoria (4 byte) Gli indirizzi delle istruzioni sono multipli di 4, ovvero hanno gli ultimi due bit a Parola Parola Parola
42 Indirizzamento relativo al Program-Counter (PC-relative) Se si codificasse direttamente l indirizzo con 16 bit nessun programma potrebbe avere dimensioni maggiori di 2 16 idea: specificare un registro da sommare all indirizzo di salto, cioè: Program counter = Registro + Indirizzo di salto Ma quale Registro di partenza usare? - Considerando che normalmente i salti condizionati vengono usati nei cicli e nei costrutti if, i salti sono in genere ad istruzioni vicine usare PC, che ha l indirizzo dell istruzione [successiva a quella] corrente Per sfruttare i 16 bit a disposizione, si può considerare l indirizzo in istruzioni a partire da PC si può saltare fino a una distanza di ± istruzioni (basta moltiplicare per 4 la costante, ovvero concatenarla con 00 ) rispetto all istruzione [successiva a quella] corrente L indirizzamento PC-relative è usato nelle istruzioni di salto condizionato, mentre le istruzioni jump e jump-and-link (chiamata di procedure) utilizzano un altro modo di indirizzamento 42
43 Esempio di indirizzamento PC-relative Supponiamo che alla locazione vi sia l istruzione bne $s0, $s1, Esci L indirizzo PC-relative si riferisce al numero di parole che lo separano dalla destinazione, considerando che il PC contiene già l indirizzo dell istruzione successiva (viene infatti incrementato nella fase preliminare dell esecuzione dell istruzione corrente) Quindi l offset è (52-20) / 4 = 8: l istruzione bne somma 8x4=32 byte all indirizzo dell istruzione successiva (80020) 43
44 Similarità tra i formati op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit op rs rt const address 6 bit 5 bit 5 bit 16 bit Il codice op è nella stessa posizione Il campo per i registri rs e rt è lo stesso: p.es. nel caso un istruzione debba usare il valore di due registri, questi registri sono sempre indicati nei campi rs e rt! 44
45 Formato-J (jump) [per istruzioni di salto incondizionato j e jal] Queste istruzioni non specificano alcun registro I salti della jump e jal non sono in genere locali : abbiamo bisogno di un formato che permetta di specificare una costante con più di 16 bit! Op address Indirizzamento pseudo-diretto (per i salti incondizionati): j # vai alla locazione (espresso come indirizzo di parola) op indirizzo bit 26 bit I 26 bit all interno dell istruzione jump contengono un indirizzo in parole, questi 26 bit vengono concatenati con i 4 bit più significativi del PC L indirizzo in byte si ottiene poi moltiplicando per 4 (ovvero, concatenando altri due bit 00) per ottenere un indirizzo a 32 bit 45
46 Indirizzamento pseudo-diretto (per i salti incondizionati): schema 0010 :00 BLOCCO 2 4 bit PC BLOCCO 1 Op address 0 BLOCCO 0 46
47 Schema riassuntivo: i 5 modi di indirizzamento del MIPS (rs) 47
48 1. Indirizzamento immediato: l operando è una costante specificata in un campo (16 bit) dell istruzione 2. Indirizzamento tramite registro: l operando è un registro specificato in un campo (5 bit) all interno dell istruzione 3. Indirizzamento tramite base o tramite spiazzamento: l operando è in una locazione di memoria individuata dalla somma del contenuto di un registro e di una costante specificata nell istruzione (16 bit) 4. Indirizzamento relativo al program counter (PC-relative addressing): l indirizzo è la somma del contenuto del PC e della costante contenuta nell istruzione (16 bit) moltiplicata per 4 (esprime uno scostamento in parole) 5. Indirizzamento pseudo-diretto: l indirizzo è ottenuto concatenando i 26 bit dell istruzione con i 4 bit più significativi del PC a sinistra e con i bit 00 a destra 48
Architettura di tipo registro-registro (load/store)
Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche
Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali
Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori
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
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
Calcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS Massimiliano Giacomin 1 Architettura MIPS Architettura RISC e load-store sviluppata da John Hennessy nel 1981 Usata da NEC, Nintendo,
CALCOLATORI ELETTRONICI 29 giugno 2011
CALCOLATORI ELETTRONICI 29 giugno 2011 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di una PLA la funzione combinatoria (a 3 ingressi e due uscite)
CPU. Maurizio Palesi
CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore
L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti
Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune
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):
Linguaggio Assembler MIPS
Linguaggio Assembler MIPS Corso di Calcolatori Elettronici Corso di Calcolatori Elettronici A A.A. 2000/2001 Dr. Daniela Fogli Notazione Operazioni aritmetiche: Somma add a, b, c fa la somma di b e c e
Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014
Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS
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
Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):
Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande
Calcolatori Elettronici
Calcolatori Elettronici CPU a singolo ciclo assimiliano Giacomin Schema del processore (e memoria) Unità di controllo Condizioni SEGNALI DI CONTROLLO PC emoria indirizzo IR dato letto UNITA DI ELABORAZIONE
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
ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4
ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio
CALCOLATORI ELETTRONICI 15 aprile 2014
CALCOLATORI ELETTRONICI 15 aprile 2014 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1 Di seguito è riportato lo schema di una ALU a 32 bit in grado
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
La macchina programmata Instruction Set Architecture (1)
Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2014-15 La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione Istruzioni macchina Outline Componenti di un
CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata
Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura
Hazard sul controllo. Sommario
Hazard sul controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione [email protected] Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/28 Sommario Riorganizzazione
Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro
Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro Schema a blocchi di una CPU Arithmetic Logic Unit Control Unit Register File BUS Control
L architettura del calcolatore (Prima parte)
L architettura del calcolatore (Prima parte) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Calcolatore astratto e reale Concetto astratto
CALCOLATORI ELETTRONICI 29 giugno 2010
CALCOLATORI ELETTRONICI 29 giugno 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si disegni lo schema di un flip-flop master-slave S-R sensibile ai fronti di salita e
MIPS Instruction Set 2
Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general
Architettura hardware
Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
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:
Testi di Esercizi e Quesiti 1
Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica
Architettura del calcolatore
Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale
Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18
Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Calcolatore: sottosistemi Processore o CPU (Central Processing
La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1
La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.
CALCOLATORI ELETTRONICI 31 marzo 2015
CALCOLATORI ELETTRONICI 31 marzo 2015 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1. Tradurre in linguaggio assembly MIPS il seguente frammento di
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
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
Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati
Il Livello LogicoDigitale i Blocchi funzionali combinatori Circuiti integrati Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati
Il Processore: i registri
Il Processore: i registri Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) Le dimensioni di un registro sono di pochi byte (4, 8) I registri contengono
CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU
Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi
Calcolatori Elettronici
Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4 Ricapitolando Con
AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio
AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio
Architettura del Set di Istruzioni (ISA)
Architettura del Set di Istruzioni (ISA) Maurizio Palesi Maurizio Palesi 1 Instruction Set Architecture (ISA) Software instruction set Hardware Maurizio Palesi 2 1 Instruction Set Architecture (ISA) Applicazioni
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2
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
Esercitazione sulle CPU pipeline
Esercitazione sulle CPU pipeline Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione parte dell hardware della CPU rimane inutilizzato perché
Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H
Architettura dei calcolatori e sistemi operativi Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Sommario Il processo di assemblaggio Il collegatore (linker) 2 Assemblatore: traduzione
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
Von Neumann. John Von Neumann (1903-1957)
Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su
Introduzione. Indice. Linguaggio macchina. Linguaggio assembler
Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio
Ing. Paolo Domenici PREFAZIONE
Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte
Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo
Calcolatori Elettronici La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo La pipeline CRITICITÀ SUI DATI Calcolatori Elettronici - Pipeline (2) - Slide 2 L. Tarantino
Linguaggio Assembler MIPS
Linguaggio Assembler MIPS Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella [email protected] Architettura MIPS Architettura RISC sviluppata
Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann
Elementi di Informatica e Programmazione Architettura del calcolatore (prima parte) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Problema:
Calcolo numerico e programmazione Architettura dei calcolatori
Calcolo numerico e programmazione Architettura dei calcolatori Tullio Facchinetti 30 marzo 2012 08:57 http://robot.unipv.it/toolleeo Il calcolatore tre funzionalità essenziali:
Rappresentazione dei numeri in un calcolatore
Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri
MODELLO DLX IN UNISIM
Architettura e descrizione del modello MODELLO DLX IN UNISIM RINGRAZIAMENTI : I materiali per questa presentazione sono tratti dal tutorial ufficiale di UNISIM - https://unisim.org/site/tutorials/start
Aritmetica dei Calcolatori 2
Laboratorio di Architettura 13 aprile 2012 1 Operazioni bit a bit 2 Rappresentazione binaria con segno 3 Esercitazione Operazioni logiche bit a bit AND OR XOR NOT IN OUT A B A AND B 0 0 0 0 1 0 1 0 0 1
Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense
Linguaggio del calcolatore Circuiti e reti combinatorie ppendice + dispense Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e nche per esprimere concetti complessi
Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore
Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni
4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS
Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Ing.. Francesco Lo Presti Sviluppata e progettata a Stanford (USA) Progettata nei primi anni 80 Prodotta e
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:
Calcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS ESERCIZI Massimiliano Giacomin ESERCIZIO Utilizzando la green card, tradurre in linguaggio macchina le due istruzioni in assembly
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
L Assembler 8086. Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica
L Assembler 8086 M. Rebaudengo - M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica 1 M. Rebaudengo, M. Sonza Reorda Si suddividono in: istruzioni per il calcolo binario istruzioni
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
Lezione n.9. Introduzione al linguaggio macchina
Lezione n.9 Autore:Luca Orrù 1 Sommario Esecuzione delle istruzioni Architettura interna ed esterna Linguaggio assembler e modi d indirizzamento Consideriamo ora la singola istruzione e la scomponiamo
COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
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
Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno
Parte II Indice Operazioni aritmetiche tra valori rappresentati in binario puro somma sottrazione Rappresentazione di numeri con segno modulo e segno complemento a 2 esercizi Operazioni aritmetiche tra
Codici a barre. Marco Dell Oro. January 4, 2014
Codici a barre Marco Dell Oro January 4, 2014 1 Cosa sono i codici a barre I codici a barre sono dei codici utilizzati nel settore della produzione e del commercio, oltre che nel settore pubblicitario
Lezione n.19 Processori RISC e CISC
Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni
Tutorato Architettura degli elaboratori
Tutorato Architettura degli elaboratori Dott. Damiano Braga Before we start.. Orario 12 Aprile h. 14.00-16.00 aula F6 20 Aprile h. 11.30-13.30 aula F6 10 Maggio h. 14.00-16.00 aula F4 18 Maggio h. 11.30-13.30
Sistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
PROVA INTRACORSO TRACCIA A Pagina 1 di 6
PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento
4. Operazioni aritmetiche con i numeri binari
I Numeri Binari 4. Operazioni aritmetiche con i numeri binari Contare con i numeri binari Prima di vedere quali operazioni possiamo effettuare con i numeri binari, iniziamo ad imparare a contare in binario:
AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000
AXO Achitettura dei Calcolatori e Sistema Operativo Instruction Set Architecture (ISA) e 68000 introduzione a ISA ISA - Instruction Set Architecture insieme delle istruzioni (instruction set) che possono
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
Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile
Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione
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
Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino
Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 3 Ing. Saverio De Vito e-mail: [email protected] Tel.: +39
Memorie ROM (Read Only Memory)
Memorie ROM (Read Only Memory) Considerando la prima forma canonica, la realizzazione di qualsiasi funzione di m variabili richiede un numero di porte AND pari al numero dei suoi mintermini e di prolungare
Esempio di moltiplicazione come somma e spostamento
Esempio di moltiplicazione come somma e spostamento Implementare una moltiplicazione coinvolge algoritmi di shift e somma Istruzioni di Shift:movimento di bit: ROL Rd ROR Rd LSL Rd LSR ASR Rd Rd 22 x 35
Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura
