SECONDA PROVA INTERMEDIA DEL CORSO DI C A L C O L A T O R I E L E T T R O N I C I NUOVO ORDINAMENTO DIDATTICO 14 Gennaio 2010

Documenti analoghi
Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

Il Processore: i registri

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

2.12 Esercizi risolti

CPU. Maurizio Palesi

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

Caratteristiche di un PC

Informatica. Rappresentazione dei numeri Numerazione binaria

MIPS Instruction Set 2

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Aritmetica dei Calcolatori 2

Interpreti e compilatori La macchina di Von Neumann

CALCOLATORI ELETTRONICI 29 giugno 2010

Informatica Generale 02 - Rappresentazione numeri razionali

Calcolatori Elettronici A a.a. 2008/2009

Architettura di tipo registro-registro (load/store)

CALCOLATORI ELETTRONICI 15 aprile 2014

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

CALCOLATORI ELETTRONICI 29 giugno 2011

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

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

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del COGNOME NOME

Architetture dei Calcolatori Il Bus

Architettura degli Elaboratori (modulo II e B) (Compito 24 Giugno 2009)

L ambiente di simulazione SPIM

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Lezione 7 Sommatori e Moltiplicatori

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

CALCOLATORI ELETTRONICI 31 marzo 2015

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

I sistemi di elaborazione

Calcolatori Elettronici

Lezione 3: Architettura del calcolatore

DIMENSIONI E PRESTAZIONI

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler

Architettura degli elaboratori (A)

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Informatica di base: esame scritto del 2 febbraio 2004 Docente: Prof. Viviana Patti

Architettura. Indice:

Università degli Studi G. d'annunzio C.L. Economia e Informatica per l'impresa. Sistemi Operativi e Reti A.A. 2014/2015 prof.

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Corso di Laurea in Informatica Architetture degli Elaboratori

I componenti di un Sistema di elaborazione. CPU (central process unit)

Valutazione delle Prestazioni

Corso di Calcolo Numerico

Programmazione dello Z80

Calcolatori Elettronici

Le costanti Le modalità di indirizzamento L assembly del MIPS

Informatica Teorica. Macchine a registri

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

IL DSP - Digital Signal Processor

Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

Livello logico digitale. bus e memorie

ESERCIZI di FONDAMENTI DI INFORMATICA RAPPRESENTAZIONE DEI NUMERI

Rappresentazione dei numeri in un calcolatore

ToolChain: Come Generare Applicazioni in Linguaggio Macchina

Architettura di un calcolatore: introduzione

DMA Accesso Diretto alla Memoria

Tutorato Architettura degli elaboratori

Architettura degli Elaboratori e delle Reti

Architettura hardware

Architettura di un calcolatore

= 0, 098 ms. Da cui si ricava t 2 medio

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 10 Settembre 2013

Programmazione modulare a.s

C. P. U. MEMORIA CENTRALE

SOMMARIO. La CPU I dispositivi iti i di memorizzazione Le periferiche di Input/Output. a Montagn Maria

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Architettura del calcolatore

La macchina programmata Instruction Set Architecture (1)

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO

Architetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica

Progetto MIPS/SPIM. Descrizione. Questa tipologia di progetto consiste in

6 ARITMETICA: ALGORITMI E CIRCUITI. Mariagiovanna Sami. Franco Fummi 6.1 INTRODUZIONE. Università di Verona. Politecnico di Milano

2. Codifica dell informazione

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Aritmetica binaria sui numeri relativi (somme e sottrazioni) e Unità aritmetiche

Prova di recupero di Informatica B Corsi di Laurea in Ingegneria Meccanica prof. Francesco Amigoni 20 febbraio 2004

L unità di controllo di CPU multi-ciclo

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Von Neumann. John Von Neumann ( )

La Comunicazione tra i dispositivi

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 9 Settembre 2015

Introduzione all'architettura dei Calcolatori

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Esercizio 2. la dimensione del file risultante la velocità di trasferimento minima dell'hard disk

Sistemi di Numerazione Binaria NB.1

Alessandro Pellegrini

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

L architettura di riferimento

Configurazione & Programmazione Profibus DP. in Ambiente Siemens TIA Portal

Hazard sul controllo. Sommario

Laboratorio di Informatica

L architettura del calcolatore (Terza parte)

L architettura del calcolatore (Prima parte)

L'informazione e la sua codifica

Esercitazione Informatica I AA Nicola Paoletti

Transcript:

SECONDA PROVA INTERMEDIA DEL CORSO DI C A L C O L A T O R I E L E T T R O N I C I NUOVO ORDINAMENTO DIDATTICO 14 Gennaio 2010 NOME: COGNOME: MATRICOLA: ESERCIZIO 1 (11 punti) Si consideri un calcolatore in cui la CPU lavora alla frequenza di 1 Ghz. L esecuzione di una istruzione richiede 5 cicli di clock, 3 dei quali tengono occupato il bus di sistema. Il 90% delle istruzioni è usato dalla CPU per eseguire programmi che non contengono trasferimenti di I/O. L'ampiezza della linea dati del bus è pari a 64 bit. Si ipotizzi che il bus sia sincrono, la durata di una trasmissione sul bus corrisponda a 1 ciclo di clock e che il tempo di ciclo della memoria sia 3 ns. 1. (2 punti) Calcolare il numero di cicli di clock necessari per trasferire una parola da 64 bit, mostrando chiaramente il protocollo di lettura dati sul bus. 2. Utilizzando il risultato ottenuto al punto precedente, calcolare la massima velocità di trasferimento (in parole/s): a. (2 punti) in modalità Block Transfer DMA ; b. (2 punti) in modalità Transparent DMA ; c. (2 punti) in modalità DMA con furto di ciclo, in cui vengono rubati 2 cicli a istruzione. 3. (3 punti) Si illustrino brevemente le diverse tecniche di arbitraggio del bus (centralizzato e distribuito), riportandone vantaggi e svantaggi. ESERCIZIO 2 (8 punti) Considerato un campo di 64 bit, siano dati i seguenti formati: a. rappresentazione di interi senza segno; b. rappresentazione in virgola fissa con 20 bit di parte frazionaria; c. rappresentazione in virgola mobile con mantissa frazionaria e normalizzata in segno e valore (1.M) ed esponente a 8 bit in eccesso 128. 1. (3 punti) Calcolare il minimo e il massimo valore (entrambi positivi e non nulli) nei tre casi. 2. (3 punti) Sommare, secondo l'algoritmo dei calcolatori, i numeri (12.5)10 e (5.25)10, esprimendoli in virgola mobile secondo la rappresentazione c. 3. (2 punti) Qual è il valore da attribuire all eccesso (sempre secondo la rappresentazione c) per fare in modo che l esponente massimo rappresentabile sia pari a 64? ESERCIZIO 3 (6 punti) Si progetti un addizionatore parallelo a 2 bit utilizzando un half adder ed un full adder. Gli ingressi dell addizionatore parallelo sono due operandi A e B rappresentati su 2 bit. In uscita l addizionatore dovrà fornire la somma (A+B, sempre su 2 bit) e il riporto (per segnalare le situazioni di overflow, es.: 11 + 11 = 10 con riporto 1). Si mostrino chiaramente i collegamenti tra i due moduli (half e full adder) e si descrivano le problematiche relative alla propagazione del riporto, indicando schemi progettuali più efficienti. ESERCIZIO 4 (8 punti) Scrivere il codice Assembly MIPS di una funzione che, dati l indirizzo iniziale di un vettore v e la sua dimensione N (in $4 e $5, rispettivamente), scambi i valori v[i] con v[n-1-i], per i=0,,(n/2-1). Si utilizzi inoltre una funzione esistente div, che esegue la divisione tra i valori contenuti in $4 e $5 e scrive in $6 il risultato. Si implementi inoltre il salvataggio/ripristino del contesto (modalità callee save ). E dato il codice C della funzione corrispondente: void inverti(int *v, int N) { int Nmezzi=div(N,2); for (int i=0 ; i<nmezzi; i++) { int temp=v[i]; v[i]=v[n-1-i]; v[n-1-i]=temp; } }

ESERCIZIO 1 1. IR = 1GHz /(5 cicli / istr) = 2 x 10 8 istruzioni/s. Dato che una trasmissione dura un solo ciclo di clock: T = 1/f = 1 ns In totale sono necessari 5 cicli di clock per trasferire una parola (1/5 parole/ciclo). 2. a. In modalità DMA block transfer il modulo DMA diventa il master del bus quindi tutti i trasferimenti da parte della CPU vengono sospesi. Si ha: max velocita di trasferimento = 2 x 10 8 (istruzioni/s) x 5 (cicli/istruzione) x 1/5 (parole / ciclo) = 2 x 10 8 parole/s b. In modalità DMA transparent il modulo DMA può intervenire solo quando alla CPU non occorre il bus di sistema. Quindi: max velocità di trasferimento = = (2 cicli/istr x 0.9 + 5 cicli/istr x 0. 1) x 1/5 (parole/ciclo) x 2 x 10 8 (istruzioni/s) = 0.92 x 10 8 parole/s c. In modalita furto di ciclo, vengono rubati 2/7 x 10 9 cicli/s. Potendo trasferire 1/5 (parole / ciclo), la max velocità di trasferimento risulta: 2/7 x 10 9 cicli/s x 1/5 (parole / ciclo) = 0.57 x 10 8 parole/s 3. Vedi lucidi del corso (cap. 7).

ESERCIZIO 2 1. a. Minimo: 1 Max: 2 64-1. b. Minimo: 2-20 Max: 2 43-2 -20 c. Minimo: 2-128 Max: 2 127 (2-2 -55 ). 2. (12.5)10 = 1100.1 = 1.1001*2 3 (5.25)10 = 101.01 = 1.0101*2 2 I due numeri si possono rappresentare nel seguente modo: Segno Esponente Mantissa 0 10000011 10010000000000000000000 0 0 10000010 01010000000000000000000 0 Poiché il primo ha esponente maggiore del secondo (3>2) di quest'ultimo si fa scorrere la mantissa a destra di una posizione. I due numeri da sommare sono: E necessario normalizzare il risultato 1.10010 + 0.10101 = ------------------------ 10.00111 (*2 3 ) Segno Esponente Mantissa 0 10000100 0001110000000000000000 0 3. Con 8 bit si possono rappresentare 256 valori (con eccesso 0 corrisponderebbero a 0,, 255). Per fare in modo che il valore 64 sia il valore massimo dell esponente, dobbiamo scegliere un valore per l eccesso pari a 255-64 = 191 (in modo che il range rappresentabile sia [-191, 64]).

ESERCIZIO 3 Lo schema realizzativo è indicato nella figura a fianco, in cui si vede come viene calcolata l uscita Q1Q0 e il bit di riporto R, partendo dai singoli bit degli operandi A e B. Il principale limite degli addizionatori paralleli progettati utilizzando questi componenti (half e full adder) è relativo alla propagazione del riporto. Infatti, perché l uscita del parallel adder sia valida, occorre attendere che il riporto in uscita dall half adder sia valido (e quindi occorre attendere che l half adder sommi i bit meno significativi di A e B). Si possono utilizzare schemi di progetto più efficienti come il carry look-ahead adder, in cui i riporti sono calcolati a priori utilizzando una rete logica oppurtuna, e quindi non è necessario attenderne la propagazione.

ESERCIZIO 4 i $8; &v[0]+i*4 $9; &v[0]+(n-1-i)*4 $10 v[i] $11; v[n-1-i] $12 copia di &v[0] $13; copia di N $14 inverti: addi $29, $29, -32 sw $8, 0($29) sw $9, 4($29) sw $10, 8($29) sw $11, 12($29) sw $12, 16($29) sw $13, 20($29) sw $14, 24($29) sw $31, 28($29) move $13, $4 move $14, $5 move $4, $5 addi $5, $0, 2 move $5, $14 subi $14, $14, 1 move $4, $13 jal div move $8, $0 for: beq $8, $6, exit subi $10, $14, $8 muli $9, $8, 4 muli $10, $10, 4 add $9, $9, $13 add $10, $10, $13 lw $11, 0($9) lw $12, 0($10) sw $11, 0($10) sw $12, 0($9) addi $8, $8, 1 j for exit: lw $8, 0($29) lw $9, 4($29) lw $10, 8($29) lw $11, 12($29) lw $12, 16($29) lw $13, 20($29) lw $14, 24($29) lw $31, 28($29) addi $29, $29, 32 jr $31 Si noti che non è necessario salvare e ripristinare $4 e $5 usando lo stack, visto che i loro valori sono temporaneamente copiati in $13 e $14 e successivamente ripristinati usando l istruzione move (quindi di fatto il corpo della procedura non ne altera il valore).