Pagina 4 di 8

MessaggioInviato: 13 gen 2004, 01:59
di thrantir
E' l'una meno un quarto e prob dovrei andarmene a letto ma nn ho resistito a concludere la parte sulle istruzioni ed eccomi qua!

Ci rimangono solo le istruzioni di accesso in memoria...questo sono essenzialmente 2, una di lettura e una di scrittura, poi ovviamente si possono aggiungere istruzioni + sofisticate ma x noi queste due basteranno... a seconda delle diverse scuole di pensiero queste istruzioni vengono kiamate in diversi modi, io x mia personale formazione le kiamerò LOAD e STORE

Allora, nel caso della lettura quello ke succede è ke una parola contenuta in memoria venga trasferita in un registro generale. L'istruzione di load si presenta così:

LOAD, registro1, registro2, registro3

Questo si traduce così: somma il contenuto del registro 1 e del registro 2, questo darà un indirizzo di memoria a cui accedere, il contenuto della cella corrispondente a questo indirizzo verrà copiato nel registro 3.
Penso ke a questo punto vi starete kiedendo perkè bisogna sommare i due registri, per ora nn ne parliamo e riprenderemo l'argomento quando vedremo + in dettaglio come avviene l'accesso in memoria.
I set di istruzioni + evoluti rendono disponibili alcune istruzioni ke consentono per esempio di fare somme con un valore contenuto in un registro e con uno contenuto nella memoria, queste in gergo sono dette istruzioni aritmetike registro-memoria, oppure di sommare due valori contenuti in memoria, istruzioni aritmetike memoria-memoria... noi per semplicità supporremo ke il nostro processore possa sommare solo valori contenuti nei registri, proprio come l'istruzione di somma ke abbiamo visto un po di tempo fa.

L'istruzione di scrittura in memoria invece sarà del tipo

STORE, registro1, registro2, registro3

Come potete intuire questo vuol dire: somma il contenuto dei registri 1 e 2 e metti nella cella di memoria corrispondente al numero così ottenuto il valore contenuto nel registro 3

Abbiamo così disponibili le istruzioni base per effettuare piccole computazioni proprio come quella ke vi ho proposto prima...

MessaggioInviato: 13 gen 2004, 02:20
di thrantir
Siccome adesso avete una panoramica di quello ke il processore fa quando gli arriva un'istruzione vi posso cominciare a mostrare cosa succede in una esecuzione di un programma:

1) Il processore rikiede alla memoria l'istruzione da eseguire, questa fase viene detta di "chiamata dell'istruzione"

2) L'istruzione così ottenuta viene decodificata per capire cosa bisogna fare

3) Si esegue finalmente l'istruzione

4) Si rikiede la prossima istruzione e così via

Attenzione! In questa descrizione mancano alcuni passi ke x ora sarebbero troppo oscuri e sono abilmente celati alcuni meccanismi ke consentono il funzionamento del tutto come noi vogliamo... potete però capire ke per eseguire un'istruzione occorre un certo tempo ke è la somma del tempo necessario a eseguire le tre fasi:

tempo di kiamata +tempo di decodifica + tempo di esecuzione

Vi ricordate sicuramente cos'è il ciclo di clock (e se nn ve lo ricordate andate a rileggerlo!), ebbene, ognuna di queste fasi in realtà è composta da una serie di operazioni elementari ke possono essere fatte in un ciclo di clock quindi sommando tutto possiamo capire più o meno quanto ci vuole a eseguire un'istruzione:

1) il tempo di kiamata è composto da un ciclo di clock per fare la rikiesta, un certo tempo di "accesso in memoria" e un ciclo di clock per ricevere la risposta, a questo punto abbiamo la nostra istruzione!

2) la fase di decidifica è veloce, ci mettiamo 2 ciclo di clock

3) la fase di esecuzione dipende molto dall'istruzione ke dobbiamo eseguire... siccome stiamo trattando un processore alquanto "obsoleto" supporremo ke per le addizioni ci metta 2 ciclo di clock, per le moltiplicazioni circa 50 cicli, per le istruzioni di salto 2 cicli e per le istruzioni di lettura o scrittura in memoria ci mette 2 cicli + un tempo di accesso in memoria...

Capite ke per fare il calcolo dobbiamo sapere quanto è questo fantomatico "tempo di accesso in memoria"... ebbene potete intuirlo, il vostro procio va a (poniamo) 2Ghz, la memoria viaggio diciamo a 200Mhz quindi questo tempo di accesso è almeno 10 volte più grande di un ciclo di clock del processore... siccome ci vogliono un po di cicli della memoria per ottenere il dato rikiesto diciamo ke il tempo di acceso in memoria è circa 20 volte il ciclo di clock del processore

Per calcolare quanto ci vuole a eseguire un'istruzione bisognerebbe fare una media pesata, ma questo esula dall'obiettivo di questo discorso percui vi darò un risultato approssimativo, diciamo ke il nostro processore ha bisogno di circa 50 cicli di clock in media... mettiamo ke il nostro processore vada a 2Ghz, questo vuol dire ke l'impulso di clock arriva ogni mezzo nanosecondo, quindi il tempo finale è 0,5 nanosecondi * 50 = 25 nanosecondi

Ok, vi ho ucciso con quest'ultimo post, ma per fortuna non è essenziale ke capite tutto, l'importante è ke afferriate per bene ke per eseguire un'istruzione il processore ke abbiamo fino ad ora descritto ha bisogno di passare per alcune fasi ke pesano nn poco sul tempo effettivo di esecuzione!

MessaggioInviato: 13 gen 2004, 16:19
di thrantir
mi sa ke vi ho proprio uccisi con l'ultimo post, nessuno ancora si è ripreso a sufficienza x rispondermi, forse ho esagerato con l'approfondimento.... vabbè, aspetto un po x sapere come avete digerito le ultime cose, se sono state troppo pesanti il discorso si può rilassare introducendo qualke argomento di contorno + semplice e probabilmente molto interessante

MessaggioInviato: 13 gen 2004, 16:30
di azarius
dillo dilo... come mai nn c'è Azarius a rompere i cojons puntualmente.... :D :D :D...

hihihihihihihihihihihihi....

bhè si dal caso che ho capito che ci sono delle fasi da seguire perchè si esegua un'istruzione...(c'è la fase anche per il richiamo dell'istruzione).. e che nn passa una vita per far girare i programmi bastano 25nanosecondi dati dai 50 cicli di clock ogni clock dovrebbe esere 0.5nanosecondi perchè il nostro procio va a 2ghz... ma come sei arrivato 2ghz=0.5nanosecondi!!!

MessaggioInviato: 13 gen 2004, 16:37
di thrantir
Se nn ricordo male hai detto ke studi fisica quindi penso ke mi seguirai facilmente nel discorso: prendi per esempio l'oscillatore armonico (il nostro caro amico pendolo! :wink: ), come saprai esso è caratterizzato da un tempo kiamato "periodo" entro il quale compie un il moto ke poi si ripeterà uguale nel periodo successivo... questo periodo è espresso in secondi. Nel nostro caso il periodo è il tempo ke intercorre tra un due impulsi di clock. La frequenza nn è altro ke il numero di oscillazioni nell'unità di tempo e quindi in soldoni è l'inverso del periodo quindi se tu vuoi sapere il periodo data la frequenza fai "1 diviso frequenza"... 2Gzh vuol dire 2 miliardi di hz quindi nn devi fare altro ke fare 1 diviso 2 miliardi e otterrai 0,5 miliardesimi di secondo, cioè appunto 0,5 nanoscondi

MessaggioInviato: 13 gen 2004, 16:44
di azarius
il nostro periodo di clock (o forse ciclo di clock..)nn si ha quando il processore lancia un'impulso e gli viene restituito???quel tempo che l'impulso viaggia viene detto periodo..ma noi facendo 1/hz diciamo che 1hz equivale a un secondo?!?!?!

MessaggioInviato: 13 gen 2004, 16:51
di sku
azarius ha scritto:ma noi facendo 1/hz diciamo che 1hz equivale a un secondo?!?!?!


diciamo che 1hz equivale ad impulsi di clock scanditi secondo per secondo. praticamente come collegare il tuo orologio alla cpu per scandirne il funzonamento :lol:

il tuo procio ha in realta' collegato un orologio con la lancetta dei secondi che girerebbe cosi' velocemente da non essere piu' visibile! !!

MessaggioInviato: 13 gen 2004, 16:51
di thrantir
il segnale di clock nn è lanciato dal processore ma è un meccanismo esterno ke serve a ritmare l'esecuzione delle operazioni elementari... metti ke tu debba scrivere delle parole sul quaderno e ke le scriva lettera x lettera... è come se ci fosse qualcuno ke dandoti un segnale ti permette di scrivere la lettera successiva, allo stesso modo ogno volta ke arriva il segnale di clock il processore passa ad eseguire una operazione elementare successiva... di queste operazioni elementari non vi ho parlato nè ve ne parlerò xkè presuppongono alcune conoscenze di reti logike ke nn ha senso darvi, mica stiamo studiando x un esame!
Detto questo per noi 1hz vuol dire ke tra l'inizio e la fine di un ciclo passa un secondo, cioè il nostro periodo dura un secondo

MessaggioInviato: 13 gen 2004, 16:57
di azarius
ok capito capito... :D

MessaggioInviato: 13 gen 2004, 18:18
di thrantir
complimenti ad azarius ke è senz'altro lo studente + assiduo :wink:
Aspetto un po di feedback anke dagli altri perkè stiamo x esaurire la prima parte dell'argomento e quindi prepararci a passare a tecnike e tecnologie + recenti!

MessaggioInviato: 13 gen 2004, 18:23
di Imrik
io nn dico nulla xkè preferisco avere questo post più rdinato possibile.. tanto riesco a capire ciò ke dici. se nn capisco ovvio kiedo!

MessaggioInviato: 13 gen 2004, 19:01
di thrantir
ottimo, allora adesso devo vedere un po cosa scrivere nel prossimo post, sono un po indeciso xkè stiamo per fare un passo abbastanza importante!

MessaggioInviato: 13 gen 2004, 21:29
di azarius
io dovrò prendere ingegneria informatica così è meglio incominciare a imparare ora... ma per voi che siete già all'università cos'avete fatto per arrivarci.. chi ha fatto scientifico mi può spiegare come ha fatto a superare latino... ghghghhghghg.... dannato latino...

MessaggioInviato: 13 gen 2004, 21:48
di don_supa_vincè
Beh.......si impara presto.........penso di nn aver mai fatto una versione dopo la 2° Liceo.......maimaimaimaimai..............avevo una riedizione del Campanini Carboni rielaborata........ammicca ammicca..........

basta che prendi tutti gli scritti degli autori che fai...........li stampi carattere 4 e li incolli....................strappa pure un po' di pagine dal dizionario...........tanto nn te ne farai mai nulla............

Poi..........copia...........qualunque cosa...........anche solo per principio............ :D

SciaU

MessaggioInviato: 13 gen 2004, 22:01
di azarius
ghhghghghghghghghghghgh.... sta il fatto ke io nn la faccio dal primo quadimestre del 1° liceo... ghghghghghghghghghg...

l'anno prossimo rappresentante d'istituto e obbietto principale.... permettere di cercare le versioni su internet durante i compiti o se nn si trova... mettersi il voto a piacimento sul compito... ghghhghghghghghghghghghghghghgh