Architettura degli Elaboratori,

Documenti analoghi
Esercitazione 4 di verifica

Architettura degli Elaboratori

Architettura degli Elaboratori

Architettura degli Elaboratori, Domanda 1

Architettura degli Elaboratori. Domanda 1 (per tutti)

Architettura degli Elaboratori

Esercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente:

Prima prova di verifica intermedia

Architettura degli Elaboratori

Architettura degli Elaboratori

Architettura degli Elaboratori - Correzione Appello del 18 luglio 2006, A.A. 2005/06

Architettura degli Elaboratori, Prima prova di verifica intermedia. 7 novembre Domanda 1

Architettura degli Elaboratori

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento

Architetture degli Elaboratori Prima prova di verifica intermedia bozza di soluzione

Architettura degli elaboratori A. A o Appello 7 febbraio 2017

Architettura degli Elaboratori. Domanda 1 (tutti)

Architettura degli Elaboratori A.A appello 23 giugno 2010

Architettura degli Elaboratori Seconda prova di verifica intermedia

Architettura degli Elaboratori, a.a Correzione

Architettura degli Elaboratori Appello del 21 febbraio Domanda 1 (tutti)

Architettura degli elaboratori

Architettura degli elaboratori A.A aprile 2019

Architettura degli Elaboratori - Correzione

Architettura degli Elaboratori, Esercitazione 2

Seconda Esercitazione di Verifica Intermedia

Calcolatore: sottosistemi

Architettura degli Elaboratori, Esercitazione 1

Esercitazione 5 di verifica

Architettura degli elaboratori A.A

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

Architettura degli Elaboratori A. A Prima prova di verifica intermedia e appello straordinario 3 novembre 2017

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

Architettura degli Elaboratori, a.a Correzione della Prima Prova di Verifica Intermedia

Note sull utilizzazione di componenti logici di tipo memoria

Ingresso-Uscita e Interruzioni

Architettura degli Elaboratori, Esercitazione 4. Domanda 1

Esercitazione 1 di verifica

Architettura degli elaboratori A.A

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

Architetture degli elaboratori A.A

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 12 Gennaio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 12 Gennaio Attenzione:

SECONDA PROVA INTERMEDIA DEL MODULO DI. 1 giugno 2017 NOME: COGNOME: MATRICOLA:

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Prima Esercitazione di Verifica Intermedia

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

Il Sistema Operativo. Informatica Sistema Operativo 1

Il sistema operativo

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura dei Sistemi Informatici

Archittettura degli elaboratori A.A

Corso di Laurea in Informatica Architetture degli Elaboratori

CALCOLATORI ELETTRONICI 14 giugno 2010

Architettura hardware

Il Processore. Informatica di Base -- R.Gaeta 27

Prof. G. Ascia. Sistema Operativo

Lezione 15 Il Set di Istruzioni (1)

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

Macchina di von Neumann/Turing

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Architettura degli Elaboratori

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Università degli Studi di Milano - Corso Architettura degli elaboratori e delle reti Turno 1 Prof. Borghese. Cognome e nome dello studente:

LABORATORIO DI INFORMATICA

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

Architettura del Calcolatore

Architettura dei sistemi di elaborazione (Input/Output parte 1)

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Il Sistema Operativo

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

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

ALU e Control Unit. ALU e Control Unit

Componenti di un sistema operativo

Richiami sull architettura del processore MIPS a 32 bit

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 2011

Corso di Laurea in Informatica

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

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 7 Febbraio 2002

Corso di Laurea in Informatica Architetture degli Elaboratori

Linguaggi, compilatori e interpreti

CALCOLATORI ELETTRONICI 9 settembre 2011

Corso di Laurea in Informatica

Architettura degli Elaboratori A.A Appello 5 settembre 2016

Il sistema operativo

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 8 novembre Attenzione:

SECONDA PROVA INTERMEDIA DEL MODULO DI

Lezione 17 Il Set di Istruzioni (3)

Fondamenti di Informatica A. A / 1 9

Corso di Laurea in Informatica Architetture degli Elaboratori

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Architettura degli elaboratori Primo Appello A.A gennaio 2018

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 17 Gennaio Attenzione:

Architettura di Von Neumann

Linguaggi, compilatori e interpreti

Transcript:

Architettura degli Elaboratori, 2013-14 Prima prova di verifica intermedia 20 dicembre 2013 Riportare nome, cognome e numero di matricola Un unità di elaborazione U interagisce a domanda-risposta con U1: U riceve una parola A di 32 bit e un byte X, e restituisce il numero NB di byte di A aventi valore uguale a X. Progettare U con l obiettivo di minimizzarne il tempo di servizio T. Spiegare le scelte fatte per soddisfare questa specifica. Valutare T in funzione di t p e t alu. Domanda 2 Compilare una procedura D-RISC, con parametri d ingresso e di uscita in registri generali, che calcola la stessa funzione della (numero di byte di una parola A uguali a X) nei due casi in cui il sistema contenga o non contenga un co-processore di I/O specializzato a firmware. La struttura del co-processore è mostrata in figura: interconnesioni CPU - I/O U1 interfaccia Memory Mapped I/O I/O chip A X NB U1, che costituisce l unità di I/O vera e propria, operante in Memory Mapped I/O, fa in modo che i valori A, X siano inoltrati a U, e il valore NB sia inoltrato correttamente alla CPU. Se ritenuto necessario o conveniente, fare ipotesi sulla realizzazione firmware di U1. Nel caso di non co-processore, valutare il tempo di completamento e il tempo di servizio per istruzione in funzione del ciclo di clock della CPU, del ciclo di clock della memoria principale, e della latenza di trasmissione dei collegamenti inter-chip. Agli effetti della valutazione, si assume trascurabile la probabilità che X sia uguale a un byte di A. Facoltativo: dare la valutazione anche nel caso di esistenza del co-processore, assumendo che questo abbia lo stesso ciclo di clock della CPU, che la latenza di trasmissione inter-chip sia la stessa di cui sopra, e che l interconnessione con la CPU sia costituita da collegamenti dedicati. U unità Domanda 3 Dire quali informazioni sono contenute nel file di configurazione di un processo, e spiegare come tali informazioni sono utilizzate in fase di creazione e caricamento del processo.

2 Soluzione La computazione richiesta NB = f(a, X) è una funzione pura, per la quale è agevole definire e realizzare una rete combinatoria con componenti logici standard. Di conseguenza, il microprogramma è descrivibile da una sola microistruzione: 0. (RDYIN = 0) nop, 0; ( = 1 ) reset RDYIN, set RDYOUT, f(a, X) NB, 0 e l unità è realizzabile come singola rete sequenziale. Questa soluzione ha tempo di servizio uguale a un ciclo di clock: = T + = T f + t p La rete combinatoria T f comprende il confronto in parallelo dei quattro byte di A con X, seguito dalla reduce ad albero dei risultati dei confronti. Questo tempo di servizio risulta certamente minore di quello di qualunque altra soluzione che richieda più cicli di clock per quanto con ciclo di clock minore. Tali soluzioni, infatti, sarebbero realizzate secondo il modello generale con due reti sequenziali, per cui il ritardo complessivo sarebbe almeno uguale a T f più i ritardi della Parte Controllo e/o della funzione delle uscite della Parte Operativa; ciò si può verificare, ad esempio, utilizzando quattro cicli di clock in ognuno dei quali si confronta un byte distinto, oppure due cicli di clock in ognuno dei quali se ne confrontano due in parallelo. La funzione di transizione dello stato interno successivo è data da: La rete combinatoria f è costituita da in NB = when ( NB = 1) do f(a, X) in RDYOUT = when ( RDYOUT = 1) do not RDYOUT in Y_RDYIN = when ( RDYIN = 1) do not Y RDYIN NB = RDYOUT = RDYIN = RDYIN quattro confrontatori a 8 bit in parallelo, ognuno con ingresso X e un byte di A e seguito da una porta OR a 8 bit con uscita negata, un albero di ALU con profondità due: nelle foglie due ALU con ingressi da 1 bit e uscita da 2 bit, nella radice una ALU con uscita a 3 bit. Realizzando i confrontatori a due livelli di logica: = 2 t alu + 4t p Realizzando il confronto come funzione zero della differenza: = 3 t alu + t p

3 Domanda 2 Nella versione senza coprocessore, in D-RISC la procedura deve fare uso di operazioni di estrazioni di campo realizzate con istruzioni DIV e MOD aventi il secondo operando potenza di due. Il risultato dell estrazione di campo fornisce il campo stesso nei bit meno significativi ponendo a zero tutti i rimanenti bit. Lo stesso parametro X è rappresentato nel byte meno significativo di una parola. Lo pseudo-codice della procedura è: NB = 0; for (i = 0; i < 3; i++) lastbyte = A % 256; if (X == lastbyte) A = A/256 NB++; Oltre ai registri generali per i parametri d ingresso (RA, RX), di uscita (RNB) e ritorno da procedura (Rret), il compilatore alloca i registri temporanei Ri, Rlastbyte, e R256 inizializzato alla costante 2 8 = 256 (unico inizializzato). I registri modificati verranno, se necessario, salvati dal main nell immagine del PCB prima della chiamata e ripristinati al ritorno da procedura. La compilazione D-RISC: CLEAR Ri CLEAR RNB; LOOP: MOD RA, R256, Rlastbyte IF RX, Rlastbyte, CONT INCR RNB CONT: DIV RA, R256, RA INCR Ri IF < Ri, 4, LOOP Agli effetti della valutazione, il numero di istruzioni eseguite è: Il tempo di completamento per il calcolatore elementare: ( ) Esprimendo il tempo di accesso equivalente in memoria t a = 2( + T tr ) + M, si ha infine: ( ) Il tempo di servizio per istruzione vale:

4 La versione con co-processore utilizza la tecnica Memory Mapped I/O per passare i valori A, X all unità U1 e per ricevere da essa il risultato NB. Il compilatore alloca nella memoria virtuale del processo una pagina il cui indirizzo logico base costituisce l inizializzazione di un registro generale RI/O. Questa pagina, a tempo di caricamento (in base alle informazioni contenute nel file di configurazione), viene mappata nella memoria fisica locale di U1. Come da specifiche, è compito di U1 interagire con la CPU e con U: attende i due valori A, X, inviati in sequenza dalla CPU mediante due istruzioni di STORE mappate nello spazio fisico di U1; invia A, X in parallelo a U; attende il risultato NB da U; non appena riceve la richiesta di lettura del risultato da parte della CPU (LOAD), gli ritorna il valore NB. In generale (indipendentemente dai ritardi temporali) U1 attende la richiesta di lettura dalla CPU e il risultato NB da U. La memoria locale di U1, che consta di 3 locazioni, in realtà viene implementata con tre registri indipendenti (A U1 ; X U1, NB U1 ). La procedura viene compilata come: STORE RI/O, 0; RA STORE RI/O, 1, RX LOAD RI/O, 2, RNB In alternativa, la sincronizzazione per risultato pronto può essere effettuata utilizzando l istruzione WAITINT in attesa attiva, e di conseguenza realizzando U1 in modo da segnalare tale evento con una interruzione alla quale, in questo semplice caso, è associato anche il valore del risultato comunicato nel messaggio di interruzione stesso (evento = risultato_pronto, dato = NB): STORE RI/O, 0; RA STORE RI/O, 1, RX WAITINT Rmask, Rrisultato_pronto, RNB Agli effetti della valutazione, con le ipotesi del testo, le istruzioni di LOAD e STORE nello spazio di I/O sono eseguite come segue: U1 MMU P Tch Ttr Ttr Quindi: Di conseguenza (il calcolo in U è interamente coperto dalla seconda STORE o dalla LOAD): ( ) ( ) che risulta notevolmente inferiore (circa un ordine di grandezza) rispetto al tempo di completamento della versione senza co-processore, grazie al bassissimo tempo di servizio della funzione f(a, X) realizzata a firmware e grazie al minor numero di istruzioni eseguite. Il tempo di servizio per istruzione risulta dello stesso ordine di grandezza:

5 Domanda 3 Il file di configurazione è costruito a tempo di compilazione usando la struttura della memoria virtuale prodotta dal compilatore stesso, le informazioni, in possesso del compilatore, sull architettura assembler-firmware e sul supporto a tempo di esecuzione dei processi, eventuali informazioni addizionali o annotazioni (pragma) fornite dall utente. Il file di configurazione descrive (meta-file) la struttura del file eseguibile specificando la posizione e dimensione allineate alla pagina di ogni oggetto nella memoria virtuale del processo: codice visibile a programma dati visibili a programma PCB del processo Tabella di Rilocazione del processo codice (librerie) del supporto a tempo di esecuzione del processo dati del supporto a tempo di esecuzione del processo. Inoltre, per ogni oggetto viene specificato: se è condiviso e con quali processi è condiviso, se deve fisicamente essere allocato nella memoria principale o nella memoria locale di una determinata unità di I/O in Memory Mapped I/O. Infine, viene specificato: l insieme di lavoro, o comunque un sottoinsieme minimo di oggetti che deve essere caricato in memoria principale: almeno PCB, Tabella di Rilocazione, (parte iniziale del) codice, (parte riferita inizialmente dei) dati. Queste informazioni sono utilizzate per la funzione di allocazione (iniziale) della memoria principale. Il gestore della memoria tranne che per le pagine condivise già allocate, sceglie le pagine (di memoria principale e di memoria di I/O) in cui caricare il working set, e, utilizzando anche gli identificatori di pagina fisica delle pagine condivise già caricate, inizializza la Tabella di Rilocazione inserendo l identificatore di pagina fisica e settando il bit di presenza delle entrate relative alle pagine logiche allocate (gli altri campi possono essere inizializzati a compilazione). Quindi, utilizzando il file system per riferire le pagine del file eseguibile e dando mandato all unità di I/O (o driver) della memoria secondaria, viene provocato il trasferimento delle pagine nella memoria fisica (principale o di I/O). L ultimo atto è il concatenamento del PCB nella Lista Pronti.