Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizi Reti Sequenziali Sincrone e Macchine a Stack - Prova Scritta 4/7/2013, Prove d'esame di Reti Logiche

Documento che contiene tre esercizi relativi alla programmazione di reti sequenziali sincrone e macchine a stack. Gli esercizi riguardano la realizzazione di reti sincrone che eseguono l'and e l'or sequenziale, l'estensione del set di istruzioni di una macchina a stack con le operazioni addodd, delodd, compact e sum16@, e la scrittura di una procedura assembly per restituire una matrice contenente solo le colonne di indice dispari di una matrice data.

Tipologia: Prove d'esame

2019/2020

Caricato il 18/01/2020

davide-garofalo
davide-garofalo 🇮🇹

5

(1)

29 documenti

1 / 2

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
PROVA SCRITTA DI CALCOLATORI ELETTRONICI DEL 4/7/2013
(Tempo a disposizione: 3 ore)
TRACCIA A
ESERCIZIO 1 (Tutti):
Si realizzi una rete sequenziale sincrona R con un ingresso X ed una uscita Z. La rete esegue l'AND sequenziale di due
numeri a 2 bit. In particolare, in 4 istanti di tempo consecutivi, la rete riceve i due operandi, contemporaneamente alla
ricezione dell'ultimo bit del secondo operando restituisce il primo bit del risultato e nel successivo istante di tempo restituisce
il secondo bit del risultato. Inoltre, le sequenze di 4 bit (riconosciute come coppie di operandi) sono sovrapposte di un bit,
ovvero il secondo bit del secondo operando di un'operazione è anche il primo bit del primo operando della successiva
operazione.
Segue un possibile funzionamento di R:
t: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
X: 001011111110101 0…
Z: 0000 0 00101100 1 01 0
La rete riceve negli istanti di tempo t=0 e t=1 il primo operando della prima operazione, ovvero “00” e negli istanti di tempo
t=2 e t=3 il secondo operando, ovvero “10”. Il risultato dell'operazione è “00” che viene restituito negli istanti t=3 e t=4. La
successiva operazione sarà eseguita sugli operandi ricevuti negli istanti di tempo t=3 e t=4 (valore dell'operando “01”) e
negli istanti t=5 e t=6 (valore dell'operando “11”). Il risultato, restituito negli istanti t=6 e t=7 è “01”, e così via.
ESERCIZIO 2 ( DM270 – 9CFU ):
Estendere il set di istruzioni della macchina a stack con l’operazione
ADDODD, definita come segue. In cima allo stack è presente il puntatore
alla cima di una lista L1 e, nella locazione precedente, il puntatore alla
cima di una lista L2. Si assuma che la lunghezza di L2 sia maggiore o
uguale alla lunghezza di L1. L'istruzione compie la seguente operazione:
se l'i-esimo elemento della lista L1 è pari, un nuovo elemento il cui valore
è pari all'i-esimo elemento di L1, deve essere inserito in quella che era la
posizione i della lista L2 prima di qualsiasi inserimento.
Si consideri l'esempio riportato in figura. Sulla sinistra è riportata la
situazione della memoria dati prima dell'esecuzione dell'istruzione.
Essendo l'elemento in posizione 1 di L1 pari, un nuovo elemento deve
essere allocato nell'heap e inserito in posizione 1 di L2. La situazione
della memoria dati dopo l'esecuzione dell'istruzione è riportata sulla
destra.
ESERCIZIO 2 ( DM270 – 6CFU ):
Estendere il set di istruzioni della macchina a stack con l’operazione
COMPACT, definita come segue. In cima allo stack è presente il
puntatore ad un array A. L'istruzione compie la seguente operazione: se
l'i-esimo elemento dell'array A è nullo (ossia, è uguale a 0) deve essere
rimosso dall'array, ovvero l'array deve essere ricompattato e la sua
lunghezza decrementata di un'unità.
ESERCIZIO 2 ( DM509 ):
Estendere il set di istruzioni della macchina ad accumulatore con l’operazione SUM16@ X, definita come segue. Nella
locazione di indirizzo X è presente l'indirizzo di un vettore la cui lunghezza è specificata nell'accumulatore. Il primo elemento
del vettore sarà pertanto contenuto nella locazione di indirizzo M[X]. Al termine dell’istruzione, l'accumulatore dovrà
contenere la somma degli elementi multipli di 16 presenti nel vettore.
Ad esempio, si consideri la seguente situazione. L'accumulatore contiene 5 ed il contenuto della RAM è quello specificato di
seguito (per semplicità sono state riportate solo le prime 16 locazioni di memoria). Al termine dell'istruzione SUM16@ 2,
l'accumulatore conterrà il numero 80, ottenuto come somma di M[10] e di M[12].
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
7 14 9 8 54 62 34 12 31 15 32 34 48 18 16 35
ESERCIZIO 3 (DM 270 – 9CFU/6CFU ):
Scrivere una procedura assembly che, data una matrice M di word di
dimensione 5x5, restituisca una matrice R (di dimensione 5x2) contenente
le sole colonne di indice dispari di M. Scrivere, inoltre, il programma
principale che invochi opportunamente la suddetta procedura.
Ad esempio si consideri la matrice M riportata sulla destra, la procedura
dovrà restituire la matrice R riportata sulla sinistra.
M: 2 5 8 -4 7 R: 5 -4
-21 3 -12 -10 -11 3 -10
5 31 4 0 14 31 0
-8 3 89 9 -56 3 9
-23 -45 -97 8 30 -45 8
SP 1051 8231 SP 1051 8231
1053 1052 6123 1053 1052 6123
: : : :
HP : : HP 4114 7246
4115 : : 4113 4115 18
: : : :
6122 7543 6122 7543
6123 17 6123 17
: : : :
7245 -1 7245 -1
7246 27 7246 27
: ; : ;
7542 -1 7542 -1
7543 18 7543 18
: : : :
8230 7246 8230 4115
8231 15 8231 15
SP 1052 8231 SP 1052 8231
1053 : : 1053 : :
8226 7 : :
8227 0 : :
8228 11 8228 7
8229 0 8229 11
8230 56 8230 56
8231 5 8231 3
pf2

Anteprima parziale del testo

Scarica Esercizi Reti Sequenziali Sincrone e Macchine a Stack - Prova Scritta 4/7/2013 e più Prove d'esame in PDF di Reti Logiche solo su Docsity!

PROVA SCRITTA DI CALCOLATORI ELETTRONICI DEL 4 / 7 /201 3

(Tempo a disposizione: 3 ore)

TRACCIA A

ESERCIZIO 1 (Tutti) :

Si realizzi una rete sequenziale sincrona R con un ingresso X ed una uscita Z. La rete esegue l'AND sequenziale di due

numeri a 2 bit. In particolare, in 4 istanti di tempo consecutivi, la rete riceve i due operandi, contemporaneamente alla

ricezione dell'ultimo bit del secondo operando restituisce il primo bit del risultato e nel successivo istante di tempo restituisce

il secondo bit del risultato. Inoltre, le sequenze di 4 bit (riconosciute come coppie di operandi) sono sovrapposte di un bit,

ovvero il secondo bit del secondo operando di un'operazione è anche il primo bit del primo operando della successiva

operazione.

Segue un possibile funzionamento di R:

t: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 X: 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 … Z: 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0

La rete riceve negli istanti di tempo t=0 e t=1 il primo operando della prima operazione, ovvero “00” e negli istanti di tempo

t=2 e t=3 il secondo operando, ovvero “10”. Il risultato dell'operazione è “00” che viene restituito negli istanti t=3 e t=4. La

successiva operazione sarà eseguita sugli operandi ricevuti negli istanti di tempo t=3 e t=4 (valore dell'operando “01”) e

negli istanti t=5 e t=6 (valore dell'operando “11”). Il risultato, restituito negli istanti t=6 e t=7 è “01”, e così via.

ESERCIZIO 2 (DM270 – 9CFU):

Estendere il set di istruzioni della macchina a stack con l’operazione

ADDODD, definita come segue. In cima allo stack è presente il puntatore

alla cima di una lista L1 e, nella locazione precedente, il puntatore alla

cima di una lista L2. Si assuma che la lunghezza di L2 sia maggiore o

uguale alla lunghezza di L1. L'istruzione compie la seguente operazione:

se l' i -esimo elemento della lista L1 è pari, un nuovo elemento il cui valore

è pari all' i -esimo elemento di L1, deve essere inserito in quella che era la

posizione i della lista L2 prima di qualsiasi inserimento.

Si consideri l'esempio riportato in figura. Sulla sinistra è riportata la

situazione della memoria dati prima dell'esecuzione dell'istruzione.

Essendo l'elemento in posizione 1 di L1 pari, un nuovo elemento deve

essere allocato nell'heap e inserito in posizione 1 di L2. La situazione

della memoria dati dopo l'esecuzione dell'istruzione è riportata sulla

destra.

ESERCIZIO 2 (DM270 – 6CFU):

Estendere il set di istruzioni della macchina a stack con l’operazione

COMPACT, definita come segue. In cima allo stack è presente il

puntatore ad un array A. L'istruzione compie la seguente operazione: se

l' i- esimo elemento dell'array A è nullo (ossia, è uguale a 0) deve essere

rimosso dall'array, ovvero l'array deve essere ricompattato e la sua

lunghezza decrementata di un'unità.

ESERCIZIO 2 (DM509):

Estendere il set di istruzioni della macchina ad accumulatore con l’operazione SUM16@ X, definita come segue. Nella

locazione di indirizzo X è presente l'indirizzo di un vettore la cui lunghezza è specificata nell'accumulatore. Il primo elemento

del vettore sarà pertanto contenuto nella locazione di indirizzo M[X]. Al termine dell’istruzione, l'accumulatore dovrà

contenere la somma degli elementi multipli di 16 presenti nel vettore.

Ad esempio, si consideri la seguente situazione. L'accumulatore contiene 5 ed il contenuto della RAM è quello specificato di

seguito (per semplicità sono state riportate solo le prime 16 locazioni di memoria). Al termine dell'istruzione SUM16@ 2 ,

l'accumulatore conterrà il numero 80, ottenuto come somma di M[10] e di M[12].

ESERCIZIO 3 (DM 270 – 9CFU/6CFU):

Scrivere una procedura assembly che, data una matrice M di word di

dimensione 5x5, restituisca una matrice R (di dimensione 5x2) contenente

le sole colonne di indice dispari di M. Scrivere, inoltre, il programma

principale che invochi opportunamente la suddetta procedura.

Ad esempio si consideri la matrice M riportata sulla destra, la procedura

dovrà restituire la matrice R riportata sulla sinistra.

M: 2 5 8 -4 7 R: 5 -

SP 1051 8231 SP 1051 8231

HP : : HP 4114 7246

SP 1052 8231 SP 1052 8231

PROVA SCRITTA DI CALCOLATORI ELETTRONICI DEL 4 / 7 /201 3

(Tempo a disposizione: 3 ore)

TRACCIA B

ESERCIZIO 1 (Tutti) :

Si realizzi una rete sequenziale sincrona R con un ingresso X ed una uscita Z. La rete esegue l'OR sequenziale di due

numeri a 2 bit. In particolare, in 4 istanti di tempo consecutivi, la rete riceve i due operandi, contemporaneamente alla

ricezione dell'ultimo bit del secondo operando restituisce il primo bit del risultato e nel successivo istante di tempo restituisce

il secondo bit del risultato. Inoltre, le sequenze di 4 bit (riconosciute come coppie di operandi) sono sovrapposte di un bit,

ovvero il secondo bit del secondo operando di un'operazione è anche il primo bit del primo operando della successiva

operazione.

Segue un possibile funzionamento di R:

t: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 X: 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 … Z: 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0

La rete riceve negli istanti di tempo t=0 e t=1 il primo operando della prima operazione, ovvero “00” e negli istanti di tempo

t=2 e t=3 il secondo operando, ovvero “10”. Il risultato dell'operazione è “10” che viene restituito negli istanti t=3 e t=4. La

successiva operazione sarà eseguita sugli operandi ricevuti negli istanti di tempo t=3 e t=4 (valore dell'operando “01”) e

negli istanti t=5 e t=6 (valore dell'operando “11”). Il risultato, restituito negli istanti t=6 e t=7 è “11”, e così via.

ESERCIZIO 2 (DM270 – 9CFU):

Estendere il set di istruzioni della macchina a stack con l’operazione

DELODD, definita come segue. In cima allo stack è presente il puntatore

alla cima di una lista L1 e, nella locazione precedente, il puntatore alla

cima di una lista L2. Si assuma che la lunghezza di L2 sia maggiore o

uguale alla lunghezza di L1. L'istruzione compie la seguente operazione:

se l' i -esimo elemento della lista L1 è pari, l'elemento che, prima di

qualsiasi rimozione, si trovava in posizione i della lista L2 deve essere

rimosso. Si consideri l'esempio in figura. Sulla sinistra è riportata la

situazione della memoria dati prima dell'esecuzione dell'istruzione.

Essendo pari il secondo elemento di L1, il secondo elemento di L2 deve

essere eliminato. La situazione della memoria dati dopo l'esecuzione

dell'istruzione è riportata sulla destra.

ESERCIZIO 2 (DM270 – 6CFU):

Estendere il set di istruzioni della macchina a stack con l’operazione

COMPACT, definita come segue. In cima allo stack è presente il

puntatore ad un array A. L'istruzione compie la seguente operazione: se

l' i- esimo elemento dell'array A è nullo (ossia, è uguale a 0) deve essere

rimosso dall'array, ovvero l'array deve essere ricompattato e la sua

lunghezza decrementata di un'unità.

ESERCIZIO 2 (DM509):

Estendere il set di istruzioni della macchina ad accumulatore con l’operazione SUM16@ X, definita come segue. Nella

locazione di indirizzo X è presente l'indirizzo di un vettore la cui lunghezza è specificata nell'accumulatore. Il primo elemento

del vettore sarà pertanto contenuto nella locazione di indirizzo M[X]. Al termine dell’istruzione, l'accumulatore dovrà

contenere la somma degli elementi multipli di 16 presenti nel vettore.

Ad esempio, si consideri la seguente situazione. L'accumulatore contiene 5 ed il contenuto della RAM è quello specificato di

seguito (per semplicità sono state riportate solo le prime 16 locazioni di memoria). Al termine dell'istruzione SUM16@ 2 ,

l'accumulatore conterrà il numero 80, ottenuto come somma di M[10] e di M[12].

ESERCIZIO 3 (DM 270 – 9CFU/6CFU):

Scrivere una procedura assembly che, data una matrice M di word di

dimensione 5x5, restituisca una matrice R (di dimensione 5x3) contenente

le sole colonne di indice pari di M. Scrivere, inoltre, il programma principale

che invochi opportunamente la suddetta procedura.

Ad esempio si consideri la matrice M riportata sulla destra, la procedura

dovrà restituire la matrice R riportata sulla sinistra.

M: 2 5 8 -4 7 R: 2 8 7

SP 1051 8231 SP 1051 8231

SP 1052 8231 SP 1052 8231