Anteprima
Vedrai una selezione di 4 pagine su 15
Temi d'esame svolti di Calcolatori elettronici Pag. 1 Temi d'esame svolti di Calcolatori elettronici Pag. 2
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Temi d'esame svolti di Calcolatori elettronici Pag. 6
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Temi d'esame svolti di Calcolatori elettronici Pag. 11
1 su 15
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Il trasferimento si divide in due fasi:

Programmazione: la CPU modifica i registri IOR e DC inserendo l’indirizzo di memoria

associato al trasferimento e in DC il numero di parole da trasferire, inoltre la CPU informa il

DMA della direzione di trasferimento. Dopo la programmazione il DMA invia un segnale di

DMA request alla CPU per prendere il controllo del bus, la CPU appena è pronta a rilasciare

il bus invia un segnale di Acknowledge e rilascia il bus, così il DMA diventerà master del bus

e potrà iniziare il trasferimento. Durante il trasferimento ad parola trasferita avremo un

aggiornamento di DC e IOR, per interrompere temporaneamente il trasferimento il DMA

disattiva la linea di richiesta e di conseguenza la CPU disattiva il segnale di Acknowledge.

Quando il trasferimento è terminato il DMA invia un interrupt alla CPU

2. Si descrivano le differenti soluzioni di arbitraggio di un bus elencandone

vantaggi e svantaggi.

Per poter gestire l’arbitraggio di un bus abbiamo differenti soluzioni quali:

Distribuito: Preso come esempio il bus SCSI aventi 8 linee di dato, ogni modulo che può

diventare Master è connesso ad una linea di dato. Ogni linea di dato ha una propria priorità

che va diminuendo scendendo nell'ordine delle linee DB7 > DB0. Quando il bus è libero, Bus

Busy a 0, i moduli possono fare richiesta di diventare master alzando propria la linea di dato.

Il master sarà il modulo associato alla linea con priorità maggiore

Svantaggi: priorità statica, Vantaggi: Tollerante ai guasti, costo medio

Daisy chain: In questo caso consideriamo n moduli che possono fare richiesta per diventare

master, un arbitro, e 3 linee di controllo, bus busy - bus request - bus grant. Quando il bus

busy è a 0, i moduli possono fare richiesta all’arbitro, dopo che l’arbitro ha ricevuto la

richiesta attiva il bus grant verso il primo modulo modulo, se è effettivamente il primo ad aver

fatto richiesta, diventerà master, in caso contrario attiverà il bus grant verso il modulo

successivo e così via.

Svantaggi: Poco tollerante ai guasti, lento, priorità statica

Vantaggi: Poco costoso

Polling: In questo caso considerati n moduli collegati ad un arbitro e 2+logn linee di controllo.

Quando il bus busy è a 0 le varie unità possono richiedere l’accesso al bus attivando il bus

request, quando l’arbitro riceve la richiesta scandisce i vari moduli mettendo sulle linee

POLL COUNTER l’identificativo di ciascuna, se l’unità aveva fatto richiesta mette il bus busy

a 1 e prende il controllo del bus, in caso contrario non fa nulla e l’arbitro passa all’unità

successiva

Svantaggi: Costo medio

Vantaggi: Tollerante ai guasti, priorità dinamica, velocità media

RIchieste indipendenti: Formato da n moduli collegati ad una logica, ogni modulo ha il

proprio bus grant e proprio bus request, avremo quindi 1 + 2n linee di controllo, l’arbitro è il

più complesso visto fin ora, infatti si baserà sulla priorità delle linee di bus request ricevute,

attivando il bus grant corrispondente

Svantaggi: Più costoso

Vantaggi: Tollerante ai guasti, Priorità dinamica, Velocità massima

3. Si illustri un esempio di articolazione in stadi di un’architettura pipeline

(spiegando la funzione di ciascuno stadio) e si descrivano le principali cause

di stallo e le principali contromisure software.

L'architettura a pipeline è l’equivalente elettronico della catena di montaggio, ogni istruzione

è suddivisa in stadi e ogni modulo del processore si occupa di eseguire uno stadio ben

definito. Ogni processore può essere progettato avente stadi diversi ad esempio il Mips ha 5

stadi, l’Arm invece ne ha 4. Considerando quest’ultimo caso ogni istruzione è suddivisa in 4

stadi ( Fetch (caricamento delle istruzioni dalla memoria), decode ( decodifica delle istruzioni

precedentemente caricate), operate ( svolgimento di tali operazioni ), write ( scrittura sul

registro di destinazione) ). Idealmente ad ogni colpo di clock viene eseguito uno stadio di

una determinata istruzione e contemporaneamente entra una nuova istruzione in pipeline,

cosicché i moduli possano lavorare in parallelo, in questo modo avremo un CPI = 1.

Nella realtà il CPI è più alto di uno perché sorgono problemi che limitano la velocità di

questo processo:

● Uno degli stadi perde più di un periodo di clock per essere eseguito, in questo caso

tutti gli stadi a valle vengono bloccati (stallo) e quelli a monte continuano a lavorare

per smaltire i dati dello stadio critico.

● Dipendenze fra dati: quando i dati di due istruzioni consecutive sono dipendenti tra

loro c’è bisogno di un meccanismo che rilevi tale dipendenza e che blocchi

temporaneamente l’esecuzione della seconda istruzione fino a che la prima non

abbia terminato lo stadio di write

● Istruzioni di salto: quando è presente un’istruzione di salto bisogna svuotare la

pipeline delle istruzioni che erano entrate ma che a causa del salto adesso non

servono più

Per introdurre questi stalli nel sistema si utilizzano soluzioni HW e SW.

Le soluzioni software consistono nell’introduzione di NOP apposite nel codice da parte del

compilatore. ESAME 11/02/2020

1. Si consideri un sistema a processore che utilizza un DMA Controller per

gestire la comunicazione con un dispositivo di output. Si disegni lo schema di

connessione tra CPU, DMA Controller, memoria e dispositivo periferico,

riportando i relativi segnali di interconnessione. Si descrivano le operazioni

eseguite dal sistema a partire dal momento in cui esso programma il DMA

Controller per eseguire il trasferimento di un blocco di dati dalla memoria al

periferico e fino al termine dell’operazione di trasferimento, assumendo che

venga utilizzato il meccanismo del trasferimento a blocchi (burst transfer).

Il DMA viene usata per il trasferimento di grosse moli di dati, si interfaccia con il bus e la

CPU con la quale condivide due segnali, DMA request, DMA Acknowledge. Il trasferimento

si articola in due fasi, la prima è la programmazione, dove la CPU scrive i registri di IOR e

DC e fornisce al DMA l’indirizzo di memoria e il numero di parole da trasferire e la direzione

del trasferimento. La seconda fase è quella del trasferimento dove la DMA riceve la richiesta

di trasferimento dalla periferica, attiva verso la CPU il segnale di DMA request, la cpu allora

in questo caso, una volta finito il proprio lavoro,libererà il bus e tramite il segnale di DMA

Acknowledge permetterà al DMA di iniziare il trasferimento, in questo caso utilizzerà l’intero

bus per tutta la durata del trasferimento, questo è il metodo più veloce ma meno efficiente,

perché il bus sarà occupato dal DMA e la CPU non potrà usarlo.

2. Si descrivano le caratteristiche di un processore RISC.

I RISC, come ben sappiamo, hanno un ridotto set di istruzioni ma un elevato numero di

registri, implementano architettura a pipeline e idealmente riescono a completare ciascuna

istruzione in un singolo periodo di clock, il CPI è pari a uno anche se dato che può accadere

che un istruzione utilizzi più di un ciclo di clock. La pipeline è l’equivalente alla catena di

montaggio elettronica, dove idealmente ogni istruzione è suddivisa in stadi e ogni modulo

esegue sempre lo stesso stadio, nei processori ARM si hanno 3 e in quelli MIPS se ne

hanno 5, tra i vari moduli addetti ai vari stati abbiamo dei registri utili per la sincronizzazione.

In un modello a pipeline infatti può accadere che si abbiano degli stalli, infatti per ovviare al

problema relativo al miss di qualche istruzione si hanno un numero maggiore di registri in cui

vengono caricate più istruzioni durante la fase di fetch, questo prende il nome di coda delle

istruzioni. Altri problemi che potrebbero mandare in stallo la pipeline sono: dipendenze tra

dati e istruzioni di salto che potrebbero far svuotare la pipeline e quindi ritardarne il normale

ciclo di lavoro. Per ovviare a questo problema esistono delle soluzioni HW(Logica che rileva

eventuali istruzioni di salto o eventuali dipendenze per creare stalli appositi) e delle soluzioni

SW (Istruzioni NOP da parte del compilatore)

3. Si disegni l’architettura di un’unità di controllo microprogrammata che utilizza

la microprogrammazione orizzontale e se ne descriva il funzionamento.

Assumendo che la memoria di microcodice sia composta da 250 parole da 180

bit ciascuna e che non esistano microistruzioni di salto, si dimensionino il PC

e il IR.

Un’unità di controllo microprogrammata è composta da una memoria di microcodice

collegata a due registri il micro-IR e micro-PC, inoltre è presente al suo interno anche una

logica per la generazione degli indirizzi. Nella memoria di microcodice sono presenti per ogni

riga i segnali di controllo da attivare per ogni operazione ( la memoria non sarà

eccessivamente grande se il processore è RISC dato che ha un set di istruzioni ridotto), la

logica che genera gli indirizzi comunica con l’esterno e con il micro-IR e a seconda dei suoi

segnali di ingresso genererà l’indirizzo corretto e lo manderà al micro-PC, cosicchè la

memoria lo possa prelevare e accedere alla corretta linea. Rispetto alla

microprogrammazione verticale è più efficiente ma in quest’ultimo caso si risparmia in

termini di dimensioni della memoria di microcodice.

Il micro-PC sarà composto da 8 bit e quindi di conseguenza anche gli indirizzi per accedere

in memoria di microcodice saranno su 8 bit.

Nel micro-IR è su 180 bit dato che le parole sono su 180 bit

ESAME 20-09-2019

1. Si disegni lo schema di connessione tra CPU, Interrupt Controller e dispositivi

periferici, riportando i principali segnali di interconnessione. Si descrivano le

operazioni eseguite da una CPU a partire dal momento in cui un dispositivo

periferico esterno manda un segnale di richiesta di interrupt e sino al momento

in cui inizia l’esecuzione della Interrupt Service Routine corrispondente a tale

richiesta.

Lo schema è composto da una CPU, collegata all’interrupt controller ( IC ), quest’ultimo è

collegato a tutte le periferiche. Quando una periferica vuole richiedere un interrupt alla CPU

manda la richiesta all’interrupt controller che ha il compito di inoltrare la richiesta alla CPU e

inoltre gestire eventuali richieste contemporanee. Una volta che la CPU ha terminato

l’operazione corrente manda un segnale di interrupt acknowledge verso la periferica (

passando sempre per IC ), a questo punto la periferica invia alla CPU il proprio identificativo

e attraverso quest’ultimo la CPU farà accesso all’interrupt vector table ( u

Dettagli
Publisher
A.A. 2022-2023
15 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher __Giovanni__ di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Torino o del prof Rebaudengo Maurizio.