• Non ci sono risultati.

Esercitazione 1° anno

N/A
N/A
Protected

Academic year: 2021

Condividi "Esercitazione 1° anno"

Copied!
24
0
0

Testo completo

(1)

Sommario

Esercizio 1 ... 3

Esercizio 2 ... 3

Esercizio 3 ... 3

Esercizio 4 ... 3

Esercizio 5 ... 3

Esercizio 6 ... 4

Esercizio 7 ... 4

Esercizio 8 ... 5

Esercizio 9 ... 5

Esercizio 10 ... 6

Esercizio 11 ... 6

Esercizio 12 ... 7

Esercizio 13 ... 8

Esercizio 14 ... 9

Esercizio 15 ... 9

Esercizio 16 ... 9

Esercizio 17 ... 10

Esercizio 18 ... 11

Esercizio 19 ... 12

Esercizio 20 ... 12

Esercizio 21 ... 12

Esercizio 22 ... 13

Esercizio 23 ... 14

Esercizio 24 ... 14

Esercizio 25 ... 15

Esercizio 26 ... 16

Esercizio 27 ... 16

Esercizio 28 ... 17

Esercizio 29 ... 17

Esercizio 30 ... 18

Esercizio 31 ... 18

(2)

Esercizio 31 ... 19

Esercizio 32 ... 19

Esercizio 33 ... 19

Esercizio 34 ... 20

Esercizio 35 ... 20

Esercizio 36 ... 21

Esercizio 37 ... 22

Esercizio 38 ... 23

Esercizio 39 ... 24

(3)

Esercizio 1

- Eseguire le seguenti somme: |238 + 348| |888 + 018| |888 + 018|

- Eseguire le seguenti moltipli: |238 * 18| |258 * 08| |278 * 28|

- Quante informazioni possono essere contenute in una combinazione di 3 cifre in base 9?

- Quante informazioni possono essere contenute in una combinazione di 3 cifre in base 2?

- Quante informazioni possono essere contenute in una combinazione di 3 cifre in base 10?

Esercizio 2

- Eseguire le seguenti somme:

AB

16

+ 12

16

FE

16

+ 01

16

EE

16

+ 11

16

00

16

+ 11

16

1101

2

+ 0011

2

23

10

+ 23

10

FF

16

* 0

16

FF

16

* 1

16

FE

16

* 1A

16

AE

16

* 1A

16

1111

2

+ 0011

2

0101

2

+ 0111

2

Esercizio 3

- Disegnare un schema della CPU indicando le varie componenti .

In particolare indicare il ruolo del MAR, MDR, PC ed ALU e della unità di controllo spiegandone le funzioni e facendo esempi.

Esercizio 4

- Eseguire le seguenti somme:

AB

16

+ 21

16

FA

16

+ 03

16

EE

16

+ 12

16

15

16

+ 15

16

1100

2

+ 0011

2

0111

2

+ 1010

2

FA

16

+ 10

16

FF

16

+ 2A

16

FE

16

+ 11

16

AE

16

* AA

16

0111

2

+ 1000

2

1001

2

+ 1111

2

Esercizio 5

- Eseguire le seguenti somme:

AB

16

+ 11

16

FA

16

+ 01

16

EE

16

+ 22

16

03

16

+ 15

16

1101

2

+ 0011

2

0111

2

+ 1000

2

FF

16

+ 10

16

FF

16

+ 1A

16

FE

16

+ 10

16

AE

16

* 1A

16

1000

2

+ 0011

2

0001

2

+ 1111

2

(4)

Esercizio 6

- Un elaboratore ha in un determinato istante la memoria così valorizzata

JMP

1

AAAAAAA8

AAAAAAAD AAAAAAA9

ADD

2

AAAAAAAA

R1 AAAAAAAB

A012 AAAAAAAC

JMP

3

AAAAAAAD

AAAAAAAA AAAAAAAE

ed i registri della CPU così valorizzati

R1 A123

PC AAAAAAAD

Indicare cosa accade nella CPU indicando

4

– passo per passo – come la CPU elabora la informazione.

Esercizio 7

- Un elaboratore ha in un determinato istante la memoria così valorizzata

JMP

5

AAAAAAA8

AAAAAAAD AAAAAAA9

ADD

6

AAAAAAAA

R1 AAAAAAAB

A012 AAAAAAAC

ed i registri della CPU così valorizzati

R1 0123

PC AAAAAAAA

Indicare cosa accade nella CPU indicando

7

– passo per passo – come la CPU elabora la informazione.

1 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>

2 ADD R1, <numero> - somma ad R1 il numero e lascia il risultato in R1

3 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>

4 Ad esempio (1. PC → MAR 2. Inc(PC) 3. Memory Read etc ect)

5 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>

6 ADD R1, <numero> - somma ad R1 il numero e lascia il risultato in R1

7 Ad esempio (1. PC → MAR 2. Inc(PC) 3. Memory Read etc ect)

(5)

Esercizio 8

- Un elaboratore ha in un determinato istante la memoria così valorizzata

JMP

8

AAAAAAA8

AAAAAAAE AAAAAAA9

ADD R1

9

AAAAAAAA

00078B AAAAAAAB

ADD R2

10

AAAAAAAC

00023A AAAAAAAD

JMP

11

AAAAAAAE

AAAAAAA8 AAAAAAAF

ed i registri della CPU così valorizzati

R1 000A12

R2 000012

PC AAAAAAAA

Indicare cosa accade nella CPU nei clock successivi ed in particolare:

Quale è il valore contenuto in R1 ed R2 dopo le istruzioni

Se il programma terminerà o meno (indicare il perché)

In generale descrivere come funziona la CPU e come variano i valori dei vari registri

Esercizio 9

- Dati le operazioni OP1 , OP2, OP3 con le seguenti caratteristiche:

OP1 FETCH 2 clock

OP1 DECODE 1 clock

OP1 EXECUTE 2 clock

OP2 FETCH 1 clock

OP2 DECODE 3 clock

OP2 EXECUTE 4 clock

OP3 FETCH 2 clock

OP3 DECODE 1 clock

OP3 EXECUTE 2 clock

Indicare:

8 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>

9 ADD R1, <numero> - somma ad R1 il numero e lascia il risultato in R1

10 ADD R2, <numero> - somma ad R2 il numero e lascia il risultato in R2

11 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>

(6)

Quanti clock sono necessari per terminare tutte le 3 Operazioni nel caso in cui NON venga attuata la tecnica PIPELINING.

Quanti clock sono necessari per terminare tutte le 3 Operazioni nel caso in cui venga attuata la tecnica PIPELINING

12

.

Descrivere la tecnica PIPELINING.

Esercizio 10

- Un elaboratore ha in un determinato istante la memoria così valorizzata

ADD R213 AAAAAAAA

0007B1 AAAAAAAB

ADD R214 AAAAAAAC

00023A AAAAAAAD

JMP15 AAAAAAAE

AAAAAAB0 AAAAAAAF

JMP16 AAAAAAB0

AAAAAAAE AAAAAAB1

ed i registri della CPU così valorizzati

R1 000A12

R2 000012

PC AAAAAAAA

Indicare cosa accade nella CPU nei clock successivi ed in particolare:

• Quale è il valore contenuto in R1 ed R2 dopo le istruzioni

• Se il programma terminerà o meno (indicare il perché)

In generale descrivere come funziona la CPU e come variano i valori dei vari registri

Esercizio 11

- Un elaboratore ha la RAM e la CACHE rispettivamente così valorizzate:

INDEX DATA

0000 ADD R1 03

0001 MOV R1 R2

0002 ADD R1 03

0003 ADD R1 03

0004 MOV R1 R2

0005 MOV R2 R1

0006 ADD R1 A1

0007 ADD R1 AF

13 ADD R1, <numero> - somma ad R1 il numero e lascia il risultato in R1

14 MOV R1 R2 – copia R1 in R2

15 MOV R2 R1 – copia R2 in R1

16 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>

(7)

INDEX TAG DATA ULTIMA VOLTA USATI

0000 00A0 JMP 0002 13 CLOCK PRIMA

0001 00A1 ADD R1 03h 12 CLOCK PRIMA

0002 0000 ADD1 R1 03h 11 CLOCK PRIMA

0003 0001 MOV1 R1 R2 10 CLOCK PRIMA

0004 0002 ADD1 R1 03h 09 CLOCK PRIMA

0005 0003 ADD1 R1 03h 08 CLOCK PRIMA

0006 0004 MOV1 R1 R2 07 CLOCK PRIMA

0007 0005 MOV R2 R1 06 CLOCK PRIMA

ed i registri della CPU così valorizzati

R1 000A12

R2 000012

PC 0000

Considerando le operazioni finchè il PC arrivi a 0007 indicare:

• Quanti CACHE HIT avvengono.(dare una spiegazione)

• Quanti CACHE MISS avvengono. (dare una spiegazione)

• Quali sono i valori contenuti in R1 ed R2.

• In generale parlare della politica di gestione CACHE / RAM

Esercizio 12

Un elaboratore ha in un determinato istante la memoria così valorizzata

FA A1

03 A2

FB A3

04 A4

FC A5

FD A6

FA A7

FA A8

FE A9

A1 AA

ed i registri della CPU così valorizzati

R1 12

R2 22

PC A9

La tabella di trascodifica della C.U. così definita

FA ADD R1

FB ADD R2

FC MOVE R1 R2

FD INC R1

FE JUMP

Indicare i passi eseguiti dalla CPU (fermarsi quando vengono ripetuti passi già effettuati)

(8)

Esercizio 13

Un elaboratore ha la RAM e la CACHE rispettivamente così valorizzate:

FA A1

03 A2

FC A3

FE A4

A9 A5

FD A6

FA A7

FA A8

FD A9

FD AA

INDEX TAG DATA

0000 A1 FA

0001 A2 03

0002 A3 FC

ed i registri della CPU così valorizzati

R1 0

R2 1

PC A1

La tabella di trascodifica della C.U. così definita

FA ADD R1

FB ADD R2

FC MOVE R1 R2

FD INC R1

FE JUMP

Considerando le operazioni finchè il PC arrivi a AA indicare:

• Quanti CACHE HIT avvengono.(dare una spiegazione)

• Quanti CACHE MISS avvengono. (dare una spiegazione)

• Quali sono i valori contenuti in R1 ed R2.

(9)

Esercizio 14

Eseguire la conversione da esadecimale a binario dei seguenti numeri

AA AC 23 FF 01 DE DC EF 99 10 FA AF AE CE

Eseguire la conversion da binario ad esadecimale dei seguenti numeri

11110000 11001010 10010110 11111111 00000011 01001000 10100101

Esercizio 15

Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:

tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo

ADD R1, 58 INC R1 MOVE R2, R1 ADD R2, 8

Esercizio 16

Data la seguente tabella delle verita

a b c u

0 0 0 1

0 0 1 1

0 1 0 0

0 1 1 0

1 0 0 1

1 0 1 1

1 1 0 0

1 1 1 0

Ottimizzare la rete logica.

(10)

Esercizio 17

Un elaboratore ha in un determinato istante la memoria così valorizzata

FB A1

04 A2

FA A3

40 A4

FC A5

FD A6

FB A7

FB A8

FE A9

A1 AA

ed i registri della CPU così valorizzati

R1 21

R2 23

PC A5

La tabella di trascodifica della C.U. così definita

FA ADD R1

FB ADD R2

FC MOVE R1 R2

FD INC R1

FE JUMP

Indicare i passi eseguiti dalla CPU (fermarsi quando vengono ripetuti passi già effettuati)

(11)

Esercizio 18

Un elaboratore ha la RAM e la CACHE rispettivamente così valorizzate:

FB A1

04 A2

FC A3

FE A4

A9 A5

FC A6

FC A7

FC A8

FA A9

00 AA

INDEX TAG DATA

0000 A1 FB

0001 A2 04

0002 A3 FC

ed i registri della CPU così valorizzati

R1 01

R2 11

PC A1

La tabella di trascodifica della C.U. così definita

FA ADD R1

FB ADD R2

FC MOVE R1 R2

FD INC R1

FE JUMP

Considerando le operazioni finchè il PC arrivi a AA indicare:

• Quanti CACHE HIT avvengono.(dare una spiegazione)

• Quanti CACHE MISS avvengono. (dare una spiegazione) Quali sono i valori contenuti in R1 ed R2.

(12)

Esercizio 19

Eseguire la conversione da esadecimale a binario dei seguenti numeri

BB BA 33 11 00 ED CD EE 88 01 AC BE 76 CE

Eseguire la conversion da binario ad esadecimale dei seguenti numeri

10110100 11101010 11110110 00000000 11000011 11001101 1011

Esercizio 20

Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:

tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo

ADD R2, 58 ADD R2, 58 MOVE R2, R1 ADD R2, 8

Esercizio 21

Data la seguente tabella delle verita

a b c u

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 0

Ottimizzare la rete logica

(13)

Esercizio 22

Un elaboratore ha in un determinato istante la memoria così valorizzata

FB A1

04 A2

FA A3

40 A4

FC A5

FD A6

FB A7

FB A8

FE A9

A1 AA

ed i registri della CPU così valorizzati

R1 23

R2 21

PC A7

La tabella di trascodifica della C.U. così definita

FA ADD R1

FB ADD R2

FC MOVE R1 R2

FD INC R1

FE JUMP

Indicare i passi eseguiti dalla CPU (fermarsi quando vengono ripetuti passi già effettuati)

(14)

Esercizio 23

Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:

tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo

ADD R2, 58 ADD R2, 58 MOVE R2, R1 ADD R2, 8

Esercizio 24

Data la seguente tabella delle verita

a b c u

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 1

1 1 1 1

Ottimizzare la rete logica.

(15)

Esercizio 25

Un elaboratore ha in un determinato istante la memoria così valorizzata

FA A1

03 A2

FB A3

04 A4

FC A5

FD A6

FA A7

FA A8

FE A9

A1 AA

ed i registri della CPU così valorizzati

R1 AC

R2 FF

PC A5

La tabella di trascodifica della C.U. così definita

FA ADD R1

FB ADD R2

FC MOVE R1 R2

FD INC R1

FE JUMP

Indicare i passi eseguiti dalla CPU (fermarsi quando vengono ripetuti passi già effettuati)

(16)

Esercizio 26

Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:

tempo di FETCH: 2 nanosecondo tempo DECODE: 2 nanosecondo tempo EXECUTE: 1 nanosecondo

ADD R1, 58 INC R1 MOVE R2, R1 ADD R2, 8

Esercizio 27

Data la seguente tabella delle verita

a b c u

0 0 0 1

0 0 1 1

0 1 0 0

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 1

Ottimizzare la rete logica.

(17)

Esercizio 28

Scrivere le parti salienti di un programma che fa la somma di tre numeri

Esercizio 29

Scrivere le parti salienti di un programma che fa la somma di tre numeri

Date le seguenti parti salienti di un programma //

segment .data //

segment .bss

N1 resd 1 ; dichiara una zona di memoria di 4 byte e la etichetto N1 //

segment .text //

call read_int ; chiamo read_int che legge un numero da tastiera e lo carica in eax move [N1],eax ; sposto eax nella zona di memoria N1

dec eax ; decrementa eax di una unità

add eax,[N1] ; sommo eax al numero salvato nella zona di memoria N1

call print_int ; chiamo print _int che stampa il numero contenuto in eax a video //

- Indicare brevemente l’algoritmo del programma

- Indicare un possible dump della memoria e descrivere passo passo i passaggi che effettua la CPU(FETCH – DECODE – EXECUTE)

Per il dump della memoria considerare i seguenti dati:

il registro eax è a 32 bit ( 4 x 8 bit )

la memoria è di blocchi di dati da 8 bit (1 x 8 bit) il segmento .BSS sarà indirizzato dall’indirizzo B5 il segmento .TEXT sarà indirizzato dall’indirizzo DB La tabella di trascodifica della C.U. così definita

call read_int FA call print_int FB move [//],eax FC add eax,[//] FD

dec eax FE

(18)

Esercizio 30

Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:

tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo

move [N1],eax dec eax add eax,[N1]

Esercizio 31

Date le seguenti parti salienti di un programma //

segment .data //

segment .bss

N1 resd 1 ; dichiara una zona di memoria di 4 byte e la etichetto N1 //

segment .text //

call read_int ; chiamo read_int che legge un numero da tastiera e lo carica in eax move [N1],eax ; sposto eax nella zona di memoria N1

inc eax ; incremento eax di una unità

add eax,[N1] ; sommo eax al numero salvato nella zona di memoria N1

call print_int ; chiamo print _int che stampa il numero contenuto in eax a video //

- Indicare brevemente l’algoritmo del programma

- Indicare un possible dump della memoria e descrivere passo passo i passaggi che effettua la CPU(FETCH – DECODE – EXECUTE)

Per il dump della memoria considerare i seguenti dati:

il registro eax è a 32 bit ( 4 x 8 bit )

la memoria è di blocchi di dati da 8 bit (1 x 8 bit) il segmento .BSS sarà indirizzato dall’indirizzo B5 il segmento .TEXT sarà indirizzato dall’indirizzo DB La tabella di trascodifica della C.U. così definita

call read_int FA call print_int FB move [//],eax FC add eax,[//] FD

Inc eax FE

(19)

Esercizio 31

Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:

tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo

move [N1],eax inc eax add eax,[N1]

Esercizio 32

Redarre la codifica assembler di un programma che chiede un numero intero, ne chiede un secondo e verifica che sia più piccolo del primo (altrimenti o richiede), ed infine restituisce la differenza.

Esercizio 33

Date le seguenti parti salienti di un programma //

segment .data //

segment .bss //

segment .text //

call read_int ; chiamo read_int che legge un numero da tastiera e lo carica in eax move ebx,eax ; sposto eax nel registro ebx

etichetta:

call read_int ; chiamo read_int che legge un numero da tastiera e lo carica in eax cmp ebx,eax; ; eseguo la comparazione tra il numero conservato in ebx e quello in eax jz etichetta ; ritorno in etichetta il FLAG ZERO = 1

add ebx,eax

call print_int ; chiamo print _int che stampa il numero contenuto in eax a video //

- Indicare brevemente l’algoritmo del programma

- Indicare un possible dump della memoria e descrivere passo passo i passaggi che effettua la CPU(FETCH – DECODE – EXECUTE)

Per il dump della memoria considerare i seguenti dati:

il registro eax è a 32 bit ( 4 x 8 bit )

la memoria è di blocchi di dati da 8 bit (1 x 8 bit) il segmento .TEXT sarà indirizzato dall’indirizzo DB

(20)

La tabella di trascodifica della C.U. così definita call read_int FA call print_int FB move ebx,eax FC add eax,ebx FD cmp ebx,eax FE

Esercizio 34

Redarre la codifica assembler di un programma che chiede due numeri e ne esegue la differenza.

Esercizio 35

Date le seguenti parti salienti di un programma //

segment .data //

segment .bss

N1 resd 1 ; dichiara una zona di memoria di 4 byte e la etichetto N1 //

segment .text //

call read_int ; chiamo read_int che legge un numero da tastiera e lo carica in eax move [N1],eax ; sposto eax nella zona di memoria N1

dec eax ; decrementa eax di una unità

add eax,[N1] ; sommo eax al numero salvato nella zona di memoria N1

call print_int ; chiamo print _int che stampa il numero contenuto in eax a video //

- Indicare brevemente l’algoritmo del programma

- Indicare un possible dump della memoria e descrivere passo passo i passaggi che effettua la CPU(FETCH – DECODE – EXECUTE)

Per il dump della memoria considerare i seguenti dati:

il registro eax è a 32 bit ( 4 x 8 bit )

la memoria è di blocchi di dati da 8 bit (1 x 8 bit) il segmento .BSS sarà indirizzato dall’indirizzo B5 il segmento .TEXT sarà indirizzato dall’indirizzo DB La tabella di trascodifica della C.U. così definita

call read_int FA call print_int FB move [//],eax FC add eax,[//] FD

dec eax FE

(21)

Esercizio 36

Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:

tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo

move [N1],eax dec eax add eax,[N1]

(22)

Esercizio 37

Data la rete logica di seguito indicata:

• Considerando che ogni porta logica comporta 0,01 nanosecondo di ritardo, calcolare Il ritardo complessivo della rete logica

Ottimizzare la rete logica – se possibile

(23)

Esercizio 38

Data la rete logica di seguito indicata:

• Considerando che ogni porta logica comporta 0,01 nanosecondo di ritardo, calcolare Il ritardo complessivo della rete logica

Ottimizzare la rete logica – se possibile

(24)

Esercizio 39

Data la rete logica di seguito indicata:

• Considerando che ogni porta logica comporta 0,01 nanosecondo di ritardo, calcolare Il ritardo complessivo della rete logica

Ottimizzare la rete logica – se possibile

Riferimenti

Documenti correlati

Se non stai utilizzando Google Chrome aprendo il link dell’incontro, verrà mostrata una pagina simile alla precedente, ma il pulsante &#34;Accedi dal Web&#34; sarà assente.. A

NAl e del VP-55 12A.. Ciascuna gamma operativa è resa funzionale mediante l'introduzione di un apposito modulo. Tre moduli possono essere contemporaneamente installati portando

Quindi, scartata una quadri sul terzo giro di fiori, Ovest gioca l’8 di cuori, Nord puntualmente impegna il Fante, ma questa volta Ovest, vinto con il Re, può crearsi un

Ora, partendo dal punto finale della scanalatura per il fondo e parallelamente a quello che sarà il bordo anteriore e posteriore dei pannelli laterali, realizza le scanalature

SPORTELLO.cloud è il portale online che contiene sia FattureWeb (cioè l’online tool per l’emissione delle fatture attive) che Sportello Fatture (cioè la

Per usare corsivo e grassetto insieme occorre chiudere il testo tra cinque paia di apici. ‘‘‘‘‘Grassetto

Il sistema operativo tiene traccia sull’uso dei blocchi di memoria (libero, occupato e a chi assegnato) mediante una tabella dei blocchi Quando un nuovo processo richiede

Ringrazio il Magnifico Rettore Maurizio Tira, il Dipartimento di Giurisprudenza dell’Università degli studi di Brescia per questo riconoscimento che colgo anche come dono alla