• Non ci sono risultati.

Università degli Studi dell’Insubria Dipartimento di Scienze Teoriche e Applicate

N/A
N/A
Protected

Academic year: 2021

Condividi "Università degli Studi dell’Insubria Dipartimento di Scienze Teoriche e Applicate"

Copied!
2
0
0

Testo completo

(1)

Università degli Studi dell’Insubria

Dipartimento di Scienze Teoriche e Applicate Architettura degli Elaboratori

Cognome e nome Matricola

Esercizio 1 (6 pts)

(a) Scrivi un’espressione logica in seconda forma (prodotto di somme) ottimizzata che realizzi il comportamento espresso dalla tabella qui a fianco.

Sono riportati solo gli input leciti (cioè, l’espressione logica può restituire qualsiasi risultato, per gli input che non sono riportati). Usa il metodo di ottimizzazione di Karnaugh.

(b) Ipotizza che l’espressione che hai scritto nel punto precedente venga implementata in un circuito usando solo porte OR e AND a due ingressi, e porte NOT. Stima il numero totale di porte di ogni tipo che saranno necessarie. Nota: non è richiesto lo schema del circuito.

Esercizio 2 (6 pts)

Esprimi in notazione esponenziale normalizzata in base 2 le seguenti quantità:

(a) 531 (b) 1/6 (c) 32 Mega (d) 0.04 (e) 30/64 (f) 34.25

Esercizio 3 (3 pts)

Data la seguente rappresentazione in CP2 dei numeri x e y x : 0 0 1 1 0 0 1 1 0 0 1 1 y : 1 1 0 0 1 1 0 0 1 1 0 0

scrivere la rappresentazione dei loro rispettivi valori assoluti |x| e |y|, nello stesso formato.

Esercizio 4 (6 pts)

Un dispositivo timer, provvisto di tre bottoni esterni Start, Stop e Reset, e di un clock interno, fornisce 1 bit in output. Il dispositivo conta internamente i cicli di clock che avvengono dal momento in cui si preme il tasto Start, fino al momento in cui si preme il tasto Stop. Se i cicli di clock trascorsi in questo intervallo superano i cinquecento, allora l’output passa ad 1, e vi rimane fino a che non viene premuto il tasto Reset (che lo azzera di nuovo).

I tasti non possono fisicamente essere premuti contemporaneamente: al più uno è premuto in ogni momento. Premere il tasto Start ha l’effetto di riazzerare il timer e farlo partire (il timer continua a scorrere, anche se il tasto Start viene rilasciato, fino alla pressione del tasto Stop).

Scrivere un circuito che prende in input i tre tasti, e restituisce il bit di output.

Si possono usare tutti i comuni blocchi funzionali combinatori e sequenziali visti a lezione (sommatori, mutex, selezionatori, registri con comando di caricamento e/o precaricamento, latch S-R, etc).

INPUT OUT - A B C D PUT 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1

(2)

Esercizio 5 (6 pts)

Si supponga di avere a disposizione il datapath mostrato a fianco (è uno di quelli visti a lezione). L’ALU dispone delle seguenti funzioni dei suoi due ingressi A e B:

Add: R = A+B Sub: R = A – B PassA: R = A PassB: R = B

IsZero: esiti = A_è_zero Cmp: esiti = A_è_minore_di_B Not: R = not A

Si scriva un microprogramma che

realizza l’operazione: LOAD_MIN rd , rs, rt (“Load the smaller”) avente opcode = 30. L’effetto di di tale operazine è quello di caricare nel registro rd il contenuto della memoria del minore dei due indirizzi rs e rt. Includere anche la fase di fetch.

Il microprogramma deve essere fornito come tabella che riporti, per ogni opcode, esiti, e passo, i comandi della Control Unit, e il passo successivo.

Esercizio 6 (6 pts)

Si completi il programma Assembly MIPS qui sotto.

Come si vede, nella sezione dati è registrata una stringa, che si può assumere contenere solo caratteri alfabetici maiuscoli.

Il tuo programma deve volgere questa stringa in minuscolo. Si ricorda che i caratteri “a” e “A” hanno codice ASCII 97 e 65 rispettivamente.

Per agevolare la stesura del codice, si fornisce qua a fianco una tabella con le sintassi di alcune possibili istruzioni.

.data

stringa: .asciiz "PIPPOPIPPO"

.globl main .text

main:

<qui il tuo codice>

fine:

# exit program li $v0 10

syscall

la reg , etichetta load address li reg , valore load immediate move regA , regB copia regB su regA lw reg , offset(reg) load word

sw reg , offset(reg) store word lh reg , offset(reg) load half word sh reg , offset(reg) store half word lb reg , offset(reg) load byte sb reg , offset(reg) store byte add reg , reg , reg add (somma) addi reg,reg,valore add immediate sub reg , reg , reg subtract (differenza)

j etichetta jump

bgez reg , etichetta branch on greater or equal than zero beqz reg , etichetta branch on euqal zero bnez reg , etichetta branch on not equal

zero

Riferimenti

Documenti correlati

(c) Se una porta AND (a due ingressi) costa quanto 2 porte NOT, e una porta OR (a due ingressi) costa quanto 3 porte NOT (e non è disponibile nessun altro tipo di porta), quale

Quindi possiamo considerarlo come un solo array, con il doppio degli elementi.. Scandiamo il doppio degli elementi a partire dal

I segnali di anomalia del rischio di riciclaggio contenuti nella legge.. L’obbligo di segnalazione delle operazioni sospette..

• Quando si adopera la calcolatrice per la prima volta • Dopo aver sostituito le batterie • Per cancellare il contenuto di tutta la memoria • Quando si verifica una condizione

evitare spostamenti che possano far sospettare il ricorso a suggerimenti di persone e/o appunti (non è consentito assentarsi dal videocollegamento e uscire

Tuttavia se l'Assicurato in caso di emergenza fa ricorso ad un istituto di cura convenzionato e intende usufruire del pagamento diretto delle prestazioni, dovrà personalmente, o

- Premere il tasto [Mode] fino a quando sul display appare l’icona “Comfort”;.. - Impostare la temperatura desiderata con i tasti [+/-] ed attendere che sul display la

Nella pagina del laboratorio clicca sul tasto rosso &#34;Iscriviti&#34; (se il tasto non è visibile le iscrizioni sono terminate). La partecipazione è soggetta a selezione e