PDA

View Full Version : Architetture degli elaboratori, sapreste fare questo esercizio?


-Ivan-
13-06-2006, 11:48
Sia x l’ultima cifra della propria matricola in base 10 (esempio: matricola 3465  x=5). Un programma P viene eseguito in 100 secondi su una CPU A, dotata di una frequenza di clock di (1+x)*10 MHz. È stata progettata una nuova CPU B in grado di operare a una frequenza maggiore: B esegue P in soli 60 secondi. Sapendo che, al fine di consentire l’aumento della frequenza, si è dovuto aumentare il numero di clock per istruzione (CPI) in media del 20% (ad esempio, un’istruzione che nella CPU A richiedeva 5 CPI, nella CPU B ne richiede 6), si stimi la frequenza a cui opera la CPU B.


Io ho saltato l'ultima settimana di lezione perchè ho dovuto lavorare e non ho visto questo tipo di esercizi come si risolve, qualcuno mi saprebbe dare una manina?

-Ivan-
13-06-2006, 19:01
No purtroppo non ho i risultati degli esercizi, mi puoi spiegare quale sarebbe il procedimento?
Grazie mille.

pietro84
13-06-2006, 20:26
a occhio mi sembra che la CPU B vada a 120MHz. Se nessuno lo conferma faccio meglio i calcoli quando ho tempo

pietro84
13-06-2006, 20:33
No purtroppo non ho i risultati degli esercizi, mi puoi spiegare quale sarebbe il procedimento?
Grazie mille.

allora il procedimento è questo:

CPU A ----> 100s per eseguire P a 60MHz
CPU B ----> 60s per eseguire P a x MHz

supponiamo all'inizio che i CPI siano uguali in entrambi i processori
sotto questa ipotesi si ha:
60*x1=100*60
x1=100 Mhz nel caso CPI uguale
ora rimuoviamo questa ipotesi.
Poichè la CPU B necessità di più cicli per eseguire una istruzione la frequenza è stata sottostimata.
Bisogna aumentare il valore calcolato del 20% perchè per eseguire P vengono fatti il 20% di cicli di clock in più.
quindi 100+ 0.2 *100 = 120

x=120MHz

il risultato sembra plausibile

-Ivan-
15-06-2006, 13:00
Grazie penso di aver capito, non mi erano chiare alcune cose, ho fatto un altro esercizio leggermente diverso adesso.

Siano x e y le due cifre meno significative della propria matricola in base 10 (esempio: matricola 3465  x=6, y=5). Date due CPU A e B che implementano il medesimo set di istruzioni, sapendo che A ha un periodo di clock di (x+1) ns, mentre B di (y+11) ns e che, per un determinato programma P, il Clock Per Istruzione (CPI) medio di A è 2 e quello di B 1.2, si determini qual è la macchina più veloce e si calcoli il rapporto fra il tempo di esecuzione di P sulla macchina più veloce e su quella più lenta.

L'ho risolto così:

in pratica la cpu A per eseguire una istruzione impiega due clock, la cpu b ne impiega 1,2.
Un clock per la cpu A dura 7 ns, per la cpu B 16 ns.
Quindi per esegiore una istruzione la cpu A ci impiega 14ns, la cpu B 19,2 ns.
Per un programma di n istruzioni la cpu A ci impiega n*14 ns, la cpu B n*19,2 ns.
Dunque è più prestante la prima cpu.

Sono esatti questi ragionamenti o mi sono perso qualcosa?

Marco Giunio Silano
15-06-2006, 13:42
Trasforma tutto in MIPS

Marco Giunio Silano
15-06-2006, 13:50
1 istruzione a clk è un DSP.

pietro84
15-06-2006, 14:01
Grazie penso di aver capito, non mi erano chiare alcune cose, ho fatto un altro esercizio leggermente diverso adesso.

Siano x e y le due cifre meno significative della propria matricola in base 10 (esempio: matricola 3465  x=6, y=5). Date due CPU A e B che implementano il medesimo set di istruzioni, sapendo che A ha un periodo di clock di (x+1) ns, mentre B di (y+11) ns e che, per un determinato programma P, il Clock Per Istruzione (CPI) medio di A è 2 e quello di B 1.2, si determini qual è la macchina più veloce e si calcoli il rapporto fra il tempo di esecuzione di P sulla macchina più veloce e su quella più lenta.

L'ho risolto così:

in pratica la cpu A per eseguire una istruzione impiega due clock, la cpu b ne impiega 1,2.
Un clock per la cpu A dura 7 ns, per la cpu B 16 ns.
Quindi per esegiore una istruzione la cpu A ci impiega 14ns, la cpu B 19,2 ns.
Per un programma di n istruzioni la cpu A ci impiega n*14 ns, la cpu B n*19,2 ns.
Dunque è più prestante la prima cpu.

Sono esatti questi ragionamenti o mi sono perso qualcosa?

sì sono esatti i ragionamenti
poi devi calcolare il rapporto naturalmente che è banale: R=14/19.2

-Ivan-
15-06-2006, 14:02
Si è vero mi ero dimenticato che l'esercizio chiedeva quello.


@marco giunio: non ho capito cosa intendi.

Marco Giunio Silano
15-06-2006, 14:25
Si è vero mi ero dimenticato che l'esercizio chiedeva quello.


@marco giunio: non ho capito cosa intendi.

MIPS (in ita) = Milioni di istruzioni per secondo, è l'unico vero metodo per misurare la potenza di calcolo di una CPU. Perché poi interagiscono altri fattori, come accesso alla memoria etc.
Una cpu che esegue un flech per ogni clk, è un dps, anche se molte istruzioni arm sono eseguite in un colpo di clk, ma non tutte. Per velocizzare le cpu, mentre è eseguira l'istruzione A, viene già caricata la successiva.
cmq il tuo ragionamento è piuttosto corretto (anche se non ho ben letto il quesito). Ma se misuri le istruzioni eseguite al secondo per le due cpu, fai presto a capire qual'è più "veloce".

Imrahil
15-06-2006, 14:32
Pure secondo me viaggia al doppio della velocità della prima.

-Ivan-
15-06-2006, 15:04
MIPS (in ita) = Milioni di istruzioni per secondo, è l'unico vero metodo per misurare la potenza di calcolo di una CPU. Perché poi interagiscono altri fattori, come accesso alla memoria etc.
Una cpu che esegue un flech per ogni clk, è un dps, anche se molte istruzioni arm sono eseguite in un colpo di clk, ma non tutte. Per velocizzare le cpu, mentre è eseguira l'istruzione A, viene già caricata la successiva.
cmq il tuo ragionamento è piuttosto corretto (anche se non ho ben letto il quesito). Ma se misuri le istruzioni eseguite al secondo per le due cpu, fai presto a capire qual'è più "veloce".

Ah ok grazie mi sono riletto anche la dispensa del prof e infatti inizio a capire cosa intendi.
Adesso ne sto facendo uno sui dischi magnetici, mi sto incasinando però devo dire che sono davvero interessanti questi esercizi anche se me li aspettavo più difficili, alla fine si risolvono tutti con 2 calcoli buttati li.

Marco Giunio Silano
15-06-2006, 15:17
Ah ok grazie mi sono riletto anche la dispensa del prof e infatti inizio a capire cosa intendi.
Adesso ne sto facendo uno sui dischi magnetici, mi sto incasinando però devo dire che sono davvero interessanti questi esercizi anche se me li aspettavo più difficili, alla fine si risolvono tutti con 2 calcoli buttati li.

non per scoraggiarti (anzi) ma aspetta quando dovrai mettere il tutto in pratica nel mondo del lavoro! Quando saranno migliaia i fattori ad interagire con i tuoi calcoli... capacità parassite... disturbi sui segnali... freq troppo alte... cmq sarà divertente! ;)

pietro84
15-06-2006, 16:10
Ah ok grazie mi sono riletto anche la dispensa del prof e infatti inizio a capire cosa intendi.
Adesso ne sto facendo uno sui dischi magnetici, mi sto incasinando però devo dire che sono davvero interessanti questi esercizi anche se me li aspettavo più difficili, alla fine si risolvono tutti con 2 calcoli buttati li.

penso che questo sia l'inizio del corso però.
il difficile è progettare una cpu... lì si che c'è da impazzire :D

-Ivan-
15-06-2006, 19:09
Io intendevo che sono facili gli esercizi che ci da il prof.

-Ivan-
15-06-2006, 22:25
Visto che siete ferrati più di me ne approfitto e vi chiedo un altra cosa se qualcuno avesse voglia di rispondere.

Si trasformi in formato IEEE 754 singola precisione il numero 80032,5625.
Come faccio a farcelo stare nei singola precisione che sono a 32 bit?

A me viene fuori così ed ora i valori li prendo dalla calcolatrice scientifica che non sbaglia:

80032 = 10011100010100000
5625 = 1010111111001

80032.5625 = 10011100010100000,1010111111001

normalizzo lo mantissa e diventa:
1.00111000101000001010111111001 * 2^16

scrivendo in eccesso 127--> 127+16 = 143 = 10001111

dunque il numero in formato IEEE 754 mi risulta essere:

0 10001111 00111000101000001010111111001 ovvero:
segno eccesso numero

sbaglio qualcosa?
Come faccio a farcelo stare in 32 bit?

Marco Giunio Silano
16-06-2006, 10:38
Si trasformi in formato IEEE 754 singola precisione il numero 80032,5625.

:(

-Ivan-
16-06-2006, 11:12
Ho scritto una boiata.
Me ne sono reso conto adesso facendo degli altri esercizi solo che non mi ricordo come funzia la conversione per i numeri con la virgola. :D

Marco Giunio Silano
16-06-2006, 12:45
Ho scritto una boiata.
Me ne sono reso conto adesso facendo degli altri esercizi solo che non mi ricordo come funzia la conversione per i numeri con la virgola. :D

ma nn hai libri di testo?

Scoperchiatore
18-06-2006, 12:22
Sia x l’ultima cifra della propria matricola in base 10 (esempio: matricola 3465  x=5).

Senti, qui urge una domanda: questa "tecnica" della matricola per differenziare le cose è usata anche dal professore di Calcolatori Elettronici (il corso equivalente) a Roma3. Ora, secondo me il nostro, consocendolo, ha copiato il vostro :D
Mi potresti dare un link al vostro materiale didattico?

-Ivan-
19-06-2006, 19:15
ma nn hai libri di testo?

Si ma c'era solo un esempio e non lo riuscivo a capire bene, adesso ho rimediato facendomelo spiegare da un compagno di corso.
Grazie cmq.

-Ivan-
19-06-2006, 19:16
Senti, qui urge una domanda: questa "tecnica" della matricola per differenziare le cose è usata anche dal professore di Calcolatori Elettronici (il corso equivalente) a Roma3. Ora, secondo me il nostro, consocendolo, ha copiato il vostro :D
Mi potresti dare un link al vostro materiale didattico?

http://bias.csr.unibo.it/maltoni/arc/
questo è il sito da cui puoi scaricare anche i vecchi compiti, io sto lavorando su quelli adesso e li ho fatti circa tutti.

ps: cmq la differenziazione degli esercizi con la matricola la fanno gran parte dei professori universitari