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

Documenti analoghi
Istruzioni assembler Istruzione N Registri

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

Richiami sull architettura del processore MIPS a 32 bit

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

Richiami sull architettura del processore MIPS a 32 bit

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

Esercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 5 Linguaggio Assembly

Il linguaggio macchina

Richiami: v[i] e &v[i] Organizzazione della memoria. Organizzazione della memoria. Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004

Architettura degli Elaboratori

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

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

Università degli Studi di Cassino

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

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

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

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

Implementazione semplificata

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

ISA (Instruction Set Architecture) della CPU MIPS

Linguaggio Assembly e linguaggio macchina

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

CALCOLATORI ELETTRONICI 15 aprile 2014

Istruzioni MIPS per floating point

Architettura degli Elaboratori

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

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

Il linguaggio Assembly

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

Linguaggio Assembly e linguaggio macchina

Il processore: unità di controllo

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

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Il processore: unità di elaborazione

Dal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione

Architettura di tipo registro-registro (load/store)

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

Calcolatori Elettronici

Lezione 7 Sommatori e Moltiplicatori

5 April LABORATORIO 03 CONTROLLO DEL FLUSSO DI UN PROGRAMMA JUMP ADDRESS TABLE. I. Frosio

Esercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS

Architetture dei Calcolatori

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO ORDINAMENTO DIDATTICO 14 Settembre 2004

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Lezione 7 ALU: Moltiplicazione e divisione

PROVA SCRITTA DEL MODULO/CORSO DI. 24 novembre 2016

OPERAZIONI ARITMETICHE

1 Esercizio. 2 Esercizio

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

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

Calcolatori Elettronici

ARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining

0/0 1/0 1/0 0/0 0/1 1/0 1/0

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Lecture 2: Prime Istruzioni

Rappresentazione in virgola mobile. 5 ottobre 2015

Unità aritmetica e logica

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Arithmetic and Logic Unit e moltiplicatore

CALCOLATORI ELETTRONICI 29 giugno 2010

Argomenti trattati: Rappresentazione dell informazione. Proprietà di una codifica: Codifica: Teoria generale

Il processore. Istituzionii di Informatica -- Rossano Gaeta

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

Componenti di un processore

Calcolo numerico e programmazione Rappresentazione dei numeri

Architettura hardware

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Esame di Architetture Canale AL Prof. Sterbini 8/7/13 Compito A

Laboratorio di Architettura degli Elaboratori

Esercizio 1.A Aritmetica binaria (nel presentare le soluzione mostrare, almeno nei passaggi piú significativi, i calcoli eseguiti) (3 punti)

Aritmetica in virgola mobile Algebra di Boole e reti logiche Esercizi. Mercoledì 8 ottobre 2014

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Unità Aritmetico-Logica

Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Aritmetica dei Calcolatori - Operazioni

Lezione 3. I numeri relativi

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

Circuiti combinatori ALU

Architettura dei computer

Corso di Laurea in Informatica

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

Esame di Architetture Canale MZ Prof. Sterbini 8/6/15

Corso di Laurea in Ingegneria Elettronica

CALCOLATORI ELETTRONICI 29 giugno 2011

CPU pipeline hazards

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Architettura degli Elaboratori

Componenti e connessioni. Capitolo 3

Architettura degli Elaboratori

PROGRAMMA EFFETTIVAMENTE SVOLTO

Progetto CPU (ciclo singolo) Salvatore Orlando

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

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

Transcript:

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 MIPS ed indicare quale di essi è usato nell'istruzione sw $s0, 4($t2). 3. Spiegare a cosa corrisponde il seguente frammento di codice commentando le istruzioni presenti e dire qual è il valore del registro $s1 prima di eseguire l istruzione j exit, nell ipotesi che inizialmente $s1=0, $s2=$s3=4, $s4=1, $s5=1000 e la memoria sia organizzata a partire dall indirizzo 1000 come mostrato in tabella. Loop: add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s5 lw $t0, 0($t1) add $s1, $s1, $t0 add $s3, $s3, $s4 beq $s3, $s2, Loop exit: j exit Indirizzo Cella di memoria 1000 70 1004 1920 1008 2 1012 3101 1016 25 1020 7135 1024 77 1028 4900

1. Si calcoli la quantità 5/3 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 2. Si descrivano i formati possibili delle istruzioni MIPS facendo per ciascuno di essi l esempio di una istruzione corrispondente. 3. Spiegare a cosa corrisponde il seguente frammento di codice commentando le istruzioni presenti e dire qual è il valore del registro $s1 prima di eseguire l istruzione j exit, nell ipotesi che inizialmente $s1=0, $s2=$s3=2, $s4=1, $s5=1000 e la memoria sia organizzata a partire dall indirizzo 1000 come mostrato in tabella. Loop: add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s5 lw $t0, 0($t1) add $s1, $s1, $t0 add $s3, $s3, $s4 beq $s3, $s2, Loop exit: j exit Indirizzo Cella di memoria 1000 70 1004 1920 1008 2 1012 3101 1016 25 1020 7135 1024 77 1028 4900

1. Si calcoli la quantità 7*5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 2. Si descriva la modalità di chiamata delle procedure con passaggio di parametri. 3. Spiegare a cosa corrisponde il seguente frammento di codice commentando le istruzioni presenti e dire qual è il valore del registro $s3 al termine del programma, nell ipotesi che inizialmente $s3=0, $s4=4, $s5=70 e $s6=1000 e la memoria sia organizzata a partire dall indirizzo 1000 come mostrato in tabella. Indirizzo Cella di memoria 1000 70 1004 1920 1008 2 1012 3101 1016 25 1020 7135 1024 77 1028 4900 Loop: add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit add $s3, $s3, $s4 j Loop Exit:

1. Si calcoli la quantità 7*(-3) utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 2. Si descriva l architettura di un ALU a 1 bit necessaria per implementare operazioni di AND/OR, somma e sottrazione, set less than su dati a 32 bit. 3. Spiegare a cosa corrisponde il seguente frammento di codice commentando le istruzioni presenti e dire qual è il valore del registro $s3 al termine del programma, nell ipotesi che inizialmente $s3=2, $s4=4, $s5=2 e $s6=1000 e la memoria sia organizzata a partire dall indirizzo 1000 come mostrato in tabella. Loop: add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit add $s3, $s3, $s4 j Loop Exit: Indirizzo Cella di memoria 1000 70 1004 1920 1008 2 1012 3101 1016 25 1020 7135 1024 77 1028 4900

1. Si spieghi la gestione delle eccezioni in una tipica architettura MIPS. 2. Si spieghi come realizzare l istruzione lw $s1,cost($s2) utilizzando l unità di elaborazione multi-ciclo vista a lezione (motivando sullo schema allegato in fotocopia il datapath seguito). 3. Si descrivano i campi di una microistruzione e se ne spieghi il funzionamento nel caso in cui si debba eseguire una scrittura di un dato in memoria.

1. Illustrare le differenze tra eccezioni e interrupt. Spiegare cosa si intende per gestione vettorizzata degli interrupt. 2. Si spieghi come realizzare l istruzione beq $s1,$s2,etichetta utilizzando l unità di elaborazione multi-ciclo vista a lezione (motivando sullo schema allegato in fotocopia il datapath seguito). 3. Si descrivano i campi di una microistruzione e se ne spieghi il funzionamento nel caso in cui si debba eseguire una lettura di un dato in memoria.

1. L istruzione li $a0, 12345678 è un istruzione standard del processore MIPS? Se no, a quali istruzioni corrisponde e come viene eseguita? 2. Si descriva il formato IEEE 754 per la rappresentazione in virgola mobile in singola e doppia precisione. In particolare si rappresenti il numero -5. 3. Si spieghi come realizzare istruzione addi $s1,$s2,costante utilizzando l unità di elaborazione multi-ciclo vista a lezione (aggiungendo, se è il caso, unità funzionali e segnali di controllo necessari allo schema allegato in fotocopia o motivando su di esso il datapath seguito). 4. Si scriva una sequenza di istruzioni MIPS in grado di implementare la pseudo istruzione abs $t2, $t3 che pone nel registro $t2 il valore assoluto del valore contenuto nel registro $t3. 5. Dire a cosa corrisponde la seguente sequenza di codice. Name: Move $t0, Szero Loop: add $t1, $t0, $t0 add $t1, $t1, $t1 add $t2, $a0, $t1 sw $zero, 0($t2) addi $t0, $t0, 1 slt $t3, $t0, $a1 bne $t3, $zero, Loop jr $ra 6. Si spieghi il funzionamento dell unità Carry Look Ahead Adder spiegandone l utilità.

1. Si descriva il formato IEEE 754 per la rappresentazione in virgola mobile in singola e doppia precisione. In particolare si rappresenti il numero -5. 2. Si scriva una sequenza di istruzioni MIPS in grado di implementare la pseudo istruzione abs $t2, $t3 che pone nel registro $t2 il valore assoluto del valore contenuto nel registro $t3. 3. Dire a cosa corrisponde la seguente sequenza di codice. Name: Move $t0, Szero Loop: add $t1, $t0, $t0 add $t1, $t1, $t1 add $t2, $a0, $t1 sw $zero, 0($t2) addi $t0, $t0, 1 slt $t3, $t0, $a1 bne $t3, $zero, Loop jr $ra

1. Si spieghi come realizzare istruzione addi $s1,$s2,costante utilizzando l unità di elaborazione multi-ciclo vista a lezione (aggiungendo, se è il caso, unità funzionali e segnali di controllo necessari allo schema allegato in fotocopia o motivando su di esso il datapath seguito). 2. Si descrivano i segnali di controllo dell unità di elaborazione allegata in fotocopia dettagliandone il funzionamento in relazione alle diverse istruzioni che possono essere eseguite. 3. Si scriva la sequenza di microistruzioni per eseguire le fasi di fetch e di decodifica di una qualunque istruzione mettendone in evidenza i vari campi e spiegandone il significato.

1. Come viene eseguita l istruzione bne $t2, $t1, label se il suo indirizzo è 0x40001234 e label corrisponde a 0x40122468? 2. Quale numero decimale è rappresentato dalla seguente parola: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sapendo che è conforme allo standard IEEE 754? 3. Si spieghi come realizzare istruzione andi $s1, $s2, costante utilizzando l unità di elaborazione multi-ciclo allegata in fotocopia ed aggiungendo, se è il caso, unità funzionali e segnali di controllo. 4. Si scriva una sequenza di istruzioni MIPS in grado di implementare la pseudo istruzione sic $t2, $t3, $t4 che pone nel registro $t2 0 o 1 a seconda che la somma di $t3 e $t4 abbia generato riporto o meno. 5. Dire a cosa corrisponde la seguente sequenza di codice. Name: add $t8, $a1, $a1 add $t8, $t8, $t8 add $t8, $a0, $t8 lw $t4, 12($t8) lw $t5, 16($t8) sw $t5, 0($t8) sw $t4, 4($t8) jr $ra 6. Si descriva la macchina a stati finiti per l implementazione dell istruzione add $s0, $s1, $s2 mettendo in evidenza il significato di ogni segnale di controllo da attivare (per il nome dei vari segnali di controllo, si faccia riferimento alla fotocopia allegata).

1. Si spieghi come deve esssere modificata l unità di elaborazione multi-ciclo allegata in fotocopia per gestire le eccezioni di una tipica architettura MIPS. 2. Si descriva la macchina a stati finiti per l implementazione dell istruzione add $s0, $s1, $s2 mettendo in evidenza il significato di ogni segnale di controllo da attivare (per il nome dei vari segnali di controllo, si faccia riferimento alla fotocopia allegata). 3. Si spieghi come realizzare istruzione andi $s1, $s2, costante utilizzando l unità di elaborazione multi-ciclo allegata in fotocopia ed aggiungendo, se è il caso, unità funzionali e segnali di controllo.

1. Spiegare i diversi tipi di indirizzamento usati dalle istruzioni del set MIPS ed indicare quale di essi è usato nell'istruzione jal proc1? 2. Si consideri il formato IEEE 754 per la rappresentazione in virgola mobile in singola precisione e si rappresenti il numero 21,75. 3. Come si distinguono le varie istruzioni di tipo R che hanno codice operativo uguale a 0? Quali segnali di controllo (considerando l unità di elaborazione multi-ciclo allegata in fotocopia) si attivano in questo caso? 4. Si scriva la sequenza di microistruzioni per eseguire l istruzione subi $s1, $s2, costante (fasi di fetch e di decodifica comprese) mettendone in evidenza i vari campi e spiegandone il significato. 5. Dire a cosa corrisponde la seguente sequenza di codice. scr: red: loop: err: li $t0, 0x10000000 lui $t1, 0x1001 sw $t0, 0($t0) addi $t0, $t0, 4 bne $t1, $t0, scr lui $t0, 0x1000 lw $t2, 0($t0) sub $t3, $t0, $t2 bne $t3, $zero, err addi $t0, $t0, 4 bne $t1, $t0, red j loop j err

1. Spiegare il significato delle seguenti direttive per l assemblatore:.asciiz prova.byte 0x33, 0x45, 0xFF.text.word 20. 2. Si consideri il formato IEEE 754 per la rappresentazione in virgola mobile in singola precisione. Si rappresenti il numero 2,75 e si esegua la moltiplicazione binaria di 2,75 con 0,5. 3. Si scriva la sequenza di microistruzioni per gestire un eccezione dovuta ad overflow mettendone in evidenza i vari campi e spiegandone il significato (si aggiungano, se è il caso, nuovi campi, motivandone l introduzione). 4. Il seguente frammento di codice lavora su un vettore e genera due valori rilevanti nei registri $v0 e $v1. Si assuma che il vettore sia lungo 5000 parole, con l indice che varia da 0 a 4999, che il suo indirizzo di base si trovi in $a0 e la sua dimensione (5000) in $a1. Commentare il codice mettendo in evidenza che cosa viene restituito in $v0 e $v1. add $a1, $a1, $a1 add $a1, $a1, $a1 add $v0, $zero, $zero add $t0, $zero, $zero esterno: add $t4, $a0, $t0 lw $t4, 0($t4) add $t5, $zero, $zero add $t1, $zero, $zero interno: add $t3, $a0, $t1 lw $t3, 0($t3) bne $t3, $t4, salta addi $t5, $t5, 1 salta: addi $t1, $t1, 4 bne $t1, $a1, interno slt $t2, $t5, $v0 bne $t2, $zero, avanti add $v0, $t5, $zero add $v1, $t4, $zero avanti: addi $t0, $t0, 4 bne $t0, $a1, esterno 5. Descrivere l architettura interna dell unità di controllo che implementa la macchina a stati finiti usata per generare i segnali di controllo corrispondenti all istruzione decodificata. Spiegare in particolare il motivo dell utilizzo di due memorie ROM.

1. Come si possono recuperare resto e quoziente dopo una divisione? 2. Quale numero decimale è rappresentato dalla seguente parola: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 1 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sapendo che è conforme allo standard IEEE 754? 3. Si descriva l architettura di un ALU a 1 bit necessaria per implementare operazioni di AND/OR, somma e sottrazione, set less than su dati a 32 bit. 4. Dire quale funzione viene svolta dalla seguente sequenza di codice. Si supponga che nel registro $a0 sia contenuto un numero intero (per es. 10). func: sub $sp, $sp, 8 sw $ra, 4($sp) sw $a0, 0($sp) slt $t0, $a0, 1 beq $t0, $zero, L1 add $v0, $zero, 1 add $sp, $sp, 8 jr $ra L1: sub $a0, $a0, 1 jal func lw $a0, 0($sp) lw $ra, 4($sp) add $sp, $sp, 8 mult $v0, $a0, $a0 jr $ra 5. L unità di elaborazione mostrata in figura funzionerebbe ancora se si togliesse il segnale di controllo MemtoReg sostituendolo nel multiplexer corrispondente con il segnale MemRead? Motivare la risposta.