Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Architettura degli elaboratori e delle reti
 
[Architettura] Esercizi
Clicca QUI per vedere il messaggio nel forum
Polo
Il nostro libro di architettura(Patterson intendo) ci offre alla fine di ogni capitolo una serie di esercizi molto utili,secondo me, soprattutto per fissare i concetti o controllare di aver capito veramente quello che si è studiato.

L'unico limite di questo strumento è la mancaza dei risultati e delle soluzioni degli esercizi.Si perde così l'opportunità di sapere
la risposta alle classiche domande:

1)Sarà giusto così?
2)Ma come c***o si fa ?:?

Quindi vorrei in questi ultimi mesi prima dell'esame approfittare del forum per marginare questa mancanza attraverso il forum e grazie a tutti voi.

Proponete la vostra risoluzione ad un esercizio o chiedete aiuto.

Sperando che tutto cio risulti utile vi saluto

:D

Walter
Originally posted by Polo
Proponete la vostra risoluzione ad un esercizio o chiedete aiuto.

Potresti cominciare tu per dare il buon esempio :)
:ciao:

Polo
Hai ragione ...

per esempio l'esercizo B.18 pg 783

la soluzione mi pare sia

1° parte di codice = flip-flop D
2° parte di codice = Latch D

....ma nn ne sono per nulla sicuro.


esercizio B.10 uso gli operandi logici di java , ! not , && and , || or

1) (!A || !B || C) && (!A || B || !C) && (A || !B || !C) :FORMA SP

2) ((A && B) || (B && C) || (C && A)) && (!(A && B && C))

3) !A && !(B && C)

4) A && (B || C)

e le forme SP per l'esercizio successivo

1) vedi sopra

2)(!A || B || C) && (A || B || !C) && (!A || B || !C)

3)(!A || !B || !C) && (!A || B || !C) && (!A || !B || C)

4)(!A || !B || C) && (!A || B || C) && (!A || B || !C)

...di questo sono + sicuro.

ora a voi :))

jccc
In appendice B vi è una serie di esericizi tesi a dimostrare che le porte NAND e NOR sono dei gates universali la cui soluzione è davvero banale per cui non la riporto.

Vi è poi un esercizio inquietante! Dimostrare che anche un Mux è una porta universale. Io sono riuscito a dimostrare molto facilmente che da un Mux è possibile ricavare una porta AND ed una porta OR ma non sono riuscito a trovare la soluzione per la porta NOT. Qualcuno potrebbe postarmi la soluzione?

Tahnx
*g

jccc
Ciao a tutti, mi stavo scervellando nel cercare di ricavare un circuito NOT a martire da un MUX. Il mio ragionamento è il seguente. Essendo l'espressione logica del mux del tipo:

M = A*NOT(S) + B*S

ed essendo il not un operatore UNARIO come prima fase ho provato a far passare lo stesso segnale nei tre input da cui, banalmente (scegliendo A come segnale):

M = A *NOT(A) + A*A = A*(NOT(A) + A) = A

conclusione: con un solo MUX non posso fare l'inverter (a meno di non cosiderare segnali esterni tipo 1 e 0).



Mi dite qual'è la soluzione?

jccc
L'esercizio è proposto in appendice B

Polo
L'unica soluzione che ho trovato consinste nell'inserire A nel selettorere S e nel 1° ingresso e !A nel 2° ingresso.
ottenedo :

(A * !A) + (!A * !A) = 0 + !A = !A

.... ma nn so se ha senso perche cmq servirebbe la porta NOT..
...
ma dal altra parte cmq per implementare un Mux servono altre che porte NOT anche porte AND e OR.

nn capisco :?

jccc
La tua (non) soluzione è autoreferenziale... implementi il NOT usando il NOT!

Grrrr..... :twisted:

ShutDown
Esercizi 4.10 - 4.17 - 4.18

4.10 Convertire abs $t2 $t3

addu $t2, $0, $t3
slt $t9, $t3, $0 # if $t3 < 0, $t9 = 1
beq $0, $t9, end # if $t3 >= 0 $t9=0, esci
sub $t2, $0, $t3 end:


4.17 Verificare il carry

addu $at, $t3, $t4
sltu $t2, $at, $t3


4.18 add in doppia precisione

addu $t3, $t5, $t7
sltu $t2, $t3, $t5
add $t2, $t2, $t4
add $t2, $t2, $t6

Invece qualcuno sa darmi info sull'esercizio 8 dell'ultimo compitino? Cos'e' un "latch sincrono di tipo SC" dove trovo dettagli?

jccc
Did you google?

http://www.google.com/search?source...ronous+latch+SC

ShutDown
Vado con il 4.40

swap $so,$s1


Start $s0=>A $s1=>B
xor $s0,$s0,$s1 $s0=>A XOR B $s1=>B
xor $s1,$s0,$s1 $s0=>A XOR B $s1=>A
xor $s0,$s0,$s1 $s0=>B $s1=>A

Cia.

Polo
3.1

int proc(int n){

int x=0;
int y=1;

while( y >= n){

x=x+y;
y=y+2;
}
return x
}

-------------------------------------------
3.9

Ciclo1:add $s3, $s3, $s4
Ciclo:add $t1, $s3, $s3
.....
lw $t0, 0($t1)
beq $t0 $s5 Ciclo1

la procedura da "Ciclo" penso che sia una corretta soluzione.
Se le iterazioni sono 10 si risparmiano 11 istruzioni(70 - 59)

Grande Shutdown tu si che hai capito lo spirito :) :)

e!ia
tornando 1po' indietro...
°°°°°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°
Vi è poi un esercizio inquietante! Dimostrare che anche un Mux è una porta universale. [jccc]
°°°°°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°

Questa è la mia soluzione:


posto f(a,b)=aS+b!S (a,b entrate; S selettore)

Allora l'unico filo che può essere invertito è S, e ciò si otterrebbe mettendo a=1 e b=0 quindi:



a) se fa parte delle regole poter avere a disposizione dei fili con segnale costante, allora non c'è nessun problema.



b)se invece bisogna tirarsi fuori le due fz. costanti dal MUX...


...
io sono riuscito ad ottenere la fz. costante f(a,b)=1 ponendo S=a => f=aa+b!a; MA NON VALE per (0,0)

f(a,b)=0 invece si può ottenere (penso) non utilizzando "a" e ponendo S=b, MA questo comporta 1 altra serie di problematiche:

-come viene interpretato un filo staccato dal componente?
-viene interpretato?
-bit0=Volt0 e Bit1=V1,5 opppure b0=-1,5V e b1=+2,5V?
-????
-??
-???


QUINDI: a questi quesiti dovrà rispondere qualchedunaltroché io non so praticamente nulla di elettro-quello-che-è

________
baibai,
e!ia.

e!ia
PS: :climb:...

Polo
4.1

0...01000000000

4.2

1...110000000001

4.3

1...110001010011011011111110

4.4

-756

4.5

-1 abbastanza ovvio

4.6

2.147.483.647


questi sono semplici però magari serve il confronto per essere sicuri di aver fatto bene.

TankJr.
Originally posted by Polo


...

4.3

1...110001010011011011111110

4.4

-756

...



scusa, ma al risultato del 4.3 con che procedimento ci sei arrivato(a)?? ..nn dirmi che ti sei fatto i conti a mano!

e del 4.4 a me risulta -500 ...

jccc
Originally posted by e!ia
tornando 1po' indietro...
°°°°°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°
Vi è poi un esercizio inquietante! Dimostrare che anche un Mux è una porta universale. [jccc]
°°°°°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°

Questa è la mia soluzione:


posto f(a,b)=aS+b!S (a,b entrate; S selettore)

Allora l'unico filo che può essere invertito è S, e ciò si otterrebbe mettendo a=1 e b=0 quindi:



a) se fa parte delle regole poter avere a disposizione dei fili con segnale costante, allora non c'è nessun problema.



b)se invece bisogna tirarsi fuori le due fz. costanti dal MUX...

________
baibai,
e!ia.


Insomma, alla fine della fiera non sei andato molto lontano da quello che avevo detto io...

vi carezza l'idea che NON VI SIA UNA SOLUZIONE?

Polo
>scusa, ma al risultato del 4.3 con che procedimento ci sei arrivato
>(a)?? ..nn dirmi che ti sei fatto i conti a mano!

>e del 4.4 a me risulta -500 ...


si mi sono fatto i conti a mano nn è così drammatico sono 22 divisioni per 2 (anzi ti diro le ho fatte al margine del libro in Treno)


ho rifatto i canti ma mi riesce uguale.
il procedimento e risulta

1...1 1110 0000 1100 = -n invertirlo

0...0 0001 1111 0011 = !(-n) aggiungere 1

0...0 0001 1111 0100 = n perchè !n +1 = -n


poi 512 + 128 + 64 + 32 + 16 + 4 = 712 essendo negativo -712


mi sento abbastanza sicuro

Polo
enterò di risolvere le prime due domande del compitino di D'Antona


>1) Scrivere 111 (base trenta) in base decimale

>2)Scrivere la funzione a + ab +abc + abcd come somma di >prodotti completi (spc)


1)sono sicuro = 1 x (30 alla 2°) + 1 x (30 allla 1)+ 1 x (30 alla 0)
= 931


2)non dovrebbe venire così

(a!b!c!d) + (ab!c!d) + (abc!d) + (abcd)


vi invito a risolvere gli altri

TankJr.
Originally posted by Polo
>

...

ho rifatto i canti ma mi riesce uguale.
il procedimento e risulta

1...1 1110 0000 1100 = -n invertirlo

0...0 0001 1111 0011 = !(-n) aggiungere 1

0...0 0001 1111 0100 = n perchè !n +1 = -n


poi 512 + 128 + 64 + 32 + 16 + 4 = 712 essendo negativo -712



non capisco xchè 512 ... scusa, non dovrebbe essere 1*2^8 e quindi 256??

Polo
si sono propio un pirla hai ragione ..... sai quando sei convinto di una cosa e nn la metti nemmeno in discussione

sorry

giuliocap
Originally posted by Polo
enterò di risolvere le prime due domande del compitino di D'Antona


>1) Scrivere 111 (base trenta) in base decimale

>2)Scrivere la funzione a + ab +abc + abcd come somma di >prodotti completi (spc)


1)sono sicuro = 1 x (30 alla 2°) + 1 x (30 allla 1)+ 1 x (30 alla 0)
= 931


2)non dovrebbe venire così

(a!b!c!d) + (ab!c!d) + (abc!d) + (abcd)

Ciao Polo!
Secondo me manca un po' di roba nella tua risposta che, secondo me, dovrebbe essere questa:
(abcd)+(abc!d)+(ab!cd)+(ab!c!d)+(a!bcd)+(a!bc!d)+(
a!b!cd)+(a!b!c!d)
vi invito a risolvere gli altri

TankJr.
Originally posted by giuliocap

Secondo me manca un po' di roba nella tua risposta che, secondo me, dovrebbe essere questa:
(abcd)+(abc!d)+(ab!cd)+(ab!c!d)+(a!bcd)+(a!bc!d)+(

a!b!cd)+(a!b!c!d)


anche a me risulta cosi, ma va bene lasciarla cosi estesa o andrebbe semplificata??

giuliocap
Ciao TankJr
penso che si debba lasciarla cosi' perche' dubito che ci sia modo di semplificarla ulteriormente!

Polo
anc'io l'avevo pensata così all'inizio poi avevo ritenuto inutile alcuni prodotti e l'avevo semplificata in un esame nn mi sarei permesso queste mosse ardite probabilmente :)

jccc
Scusate, qualcuno che voglia gentilemente postare un esempio svolto in aula di codifica MIPS ovvero sorgente C + soluzione proposta dall'esercitatore?

Mi andrebbe di farmi un'idea.

Vi ringrazio

PS.: Purtroppo non ho potuto seguire nemmeno una lezione con l'esercitatore.

marchinkus
AIUTO:
Come ricavare una porta AND e una porta OR da un multiplexer?
:sad:

Grazie:)

pincopallino
c'era gia un thread con questo quesito....prova a guardare dovrebbe essere "[ARCHITETTURA]Esercizi"....nelle pagine qui.....

Ciauuuuuuu

xfaber
Devi partire dalla funzione booleana del multiplexer.
Si parla di un multiplexer a 2 vie.
Supponendo che il multiplexer sia disegnato come nel libro di testo a pag. 749 figura B.4

(Supponiamo che l'apostrfo indichi la negazione del segnale)

La funzione è: C= AS' + BS (1)

Per ottenere una AND bisogna porre il segnale S=A
in questo modo la funzione(1) di sopra diventa:
C = AA' +BA da cui (AA' = 0) per cui C=0 + BA da cui C=BA=AB


Per ottenere una OR bisogna porre il segnale S=B
in questo modo la funzione(1) di sopra diventa:
C = AB' + BB (2) da da cui (siccome BB=B) se ne ricava che C=AB'+B
Ora bisogna dimostrare che AB'+B = A+B.
Lo si vede subito se si costruiscono le tabelle di verità delle due funzioni booleane.
Oppure siccome BB = B(A+A') = BA+BA'
possiamo ricavare dalla (2) che la C = AB'+BA+BA' deve essere uguale a A+B.
Attraverso i diagrammi di Venn questa uguagliana e facilmente visibile.
Inoltre possiamo affermare che AB'+BA+BA' non è altro che la funzione booleana OR in forma canonica, ossia rappresentata da una SPC (Somma di prodotti completi) ricavabile dalla tabella di verità della OR.

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate