Introduzione al funzionamento dei processori!

Nei giorni in cui vi prende l'ispirazione hi-tech...prendete in mano la tastiera e sfogatevi qui!

Moderatori: cb_123, tonertemplum

Messaggiodi thrantir il 24 feb 2004, 11:03

Rieccomi

lo so, ho latitato parekkio nel continuare questo post ma alcuni impegni accademici mi hanno tenuto lontano!

Cmq rieccomi come promesso a raccontarvi della memoria cahe.

Nn so se qualcuno l'ha notato ma quando abbiamo visto le prestazioni del processore convenzionale in diversi momenti c'era una degradazione dovta alla lentezza della memoria... in realtà se il sistema rimane quello ke abbiamo descritto la memoria diventa un collo di bottiglia insormontabile e nn ci permette di migliorare le prestazioni... qual'è l'idea? L'idea è di fare la stessa cosa ke ha portato all'introduzione della memoria principale (la RAM) cioè istituire una ulteriore gerarkia di memoria.
Quindi è come se la RAM diventasse la memoria di massa (nella gerarkia di memoria virtuale la memoria di massa era l'hard disk) e la cache diventa la memoria più piccola e veloce...
Per vari motivi di prestazioni la memoria cache viene integrata direttamente sulla cpu.

Come inseriamo la cache nel modello visto nei post precedenti? Siccome il nostro scopo è modificare il minimo possibile noi dobbiamo fare in modo ke il processore nn si accorga ke è stata introdotta questa nuova gerarkia di memoria. Quindi x il processore è come se ci fosse ancora solo la memoria principale. Come si fa?
Se avete seguito i post precedenti nn .troverete difficoltà a capire il procedimento. Ecco quello ke succede

- Il processore genera l'indirizzo logico
- L'MMU deduce dalla tabella di rilocazione se la pagina interessata è caricata in memoria, se nn lo è restituisce al processore un'eccezione ke porterà in azione il meccanismo ke farà arrivare la pagina in memoria

Fino a qui niente di nuovo... ora aggiungiamo i passaggi ke ci mancano

- Se la pagina sta in memoria (stando alla tabella di rilocazione) l'MMU instrada la rikiesta alla memoria cache (tra i due esiste un collegamento diretto)
- A questo punto possono succedere due cose:
1) il dato rikiesto sta in cache
2) il dato rikiesto nn sta in cache, ma da quanto ci ha detto la tabella di rilocazione sta sicuramente in memria principale. in analogia a quanto succedeva nella gerarkia di memoria virtuale qui si ha un fault di cache. In gergo si kiama "cache miss"

Nel primo caso la cache manda direttamente quanto rikiesto al processore senza ripassare x l'MMU. Nel secondo caso la cache, di nuovo senza ripassare x l'MMU, kiede alla memoria di mandarle i dati ke rikiesti; appena i dati arrivano la cache li scriverà al suo interno e li manderà l processore...
In particolare la cache nn rikiede solo la parola rikiesta dal processore ma prende tutto un pezzo della pagina ke contiene quella parola. Questo pezzo viene detto "blocco"... questo esattamete come succedeva x la gerarkia di memoria virtuale dove quando c'è un fault viene kiesta nn solo la parola ke serve al momento ma tutta la pagina ke la contiene.

In assenza di cache miss l'aver introdotto la cache aumenta parekkio le prestazioni del processore tanto ke ora a fare da collo di bottiglia nn è + la memoria ma il processore... questo verrà superato con l'introduzione dell'arkitettura pipeline ma ne parleremo dopo.
Ovviamente i cache miss degradano le prestazioni xkè rendono necessario un accesso in memoria ke come sappiamo rallenta tutto. Quello ke dobbiamo fare quindi è avere la cache sufficientemente grande in modo tale ke dopo un serie di cache miss iniziali si hanno in cache tutti i dati necessari e quindi nn c'è + bsogno di passare x la memoria...

Nei prossimi post espanderò l'argomento è sarò un po + preciso, x il momento cercate di capire xkè la cache è importante x migliorare le prestazioni.

X ora mi limiterò a darvi solo qualke piccola informazione e considerazione.
Intanto fissate bene questo: nella cache ci stanno solo delle istruzioni o dei dati relativi al processo in esecuzione al momento. AL cambiare del processo in esecuzione tutto quello presente nella cache viene marcato come "non significativo" e quindi al cambiare di processo ci sarà una serie di cache miss ke porterà istruzioni e dati relativi al novo processo.

Le gerarkie di memoria possono essere ulteriormente espanse... già da tempo si ha una memoria cache di 2° livello ke prima era integrata nella mobo e successivamente (sempre x un motivo di prestazioni) è stata integrata ank'essa nella cpu e avrete visto ke da poco è disponibile anke un pentium 4 con cache di 3°livello integrata nella cpu...
Il processo è sempre lo stesso: il livello + alto della gerarkia è una memoria + grande e + lenta del livello + basso e ogni memoria fa da tampone a quella superiore.

Beh, mi sa ke vi dato materia x riflettere...

Ci sentiamo alla prossima!

Ciao Ciao
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

 

Messaggiodi thrantir il 29 feb 2004, 13:59

Rieccomi

Ora ke il nostro processore ha la sua bella cache comincia già ad assomigliare ai prodotti odierni, il prossimo passo sarà rivoluzionare un po il modo in cui rikiama, decodifica e esegue la varie istruzioni...

Prima però facciamo un po di considerazioni varie:

Intanto la cache, quanto deve essere grande rispetto alla memoria RAM? Xkè nn la fanno grande quanto la RAM visto ke è molto + veloce? E xkè nn è sufficiente a pompare abbastanza il nostro processore?

Cerkiamo di dare una risposta a questi interrogativi:

Ovviamente + grande è la cache + è improbabile ke un dato non sia dentro la cache ma dentro la memoria principale e quindi l'accesso al dato in memoria è più veloce. Questo si capisce bene se pensate il tutto come un biblioteca: la RAM sono gli scaffali e la cache è il tavolo ke state usando: più il tavolo è grande più libri ci stanno sopra e quindi meno volte dovrete andare a riposare libri per fare spazio a altri ke vi servono... A questo punto verrebbe da desiderare ke la cache fosse grande quanto la RAM! Questo nn è possibile x 2 motivi principali:
Intanto la cache è fatta utilizzando una memoria molto + costosa della RAM, questo xkè vogliamo ke la cache sia molto veloce e questo si traduce in costi superiori di componenti e tecnologia. L'altro problema è meno intuitivo e riguarda l'integrazioni delle componenti nella CPU: infatti nella nostra CPU ci devono stare sia la cache sia tutta la parte "logica" del processore cioè tutte le componenti ke servono x interpretare e eseguire le istruzioni... eccoci al punto, la CPU nn può essere troppo grande!

Xkè?

I motivi sono vari, sia di prestazioni ke di costo: fare CPU troppo grandi tende a farle essere meno "dense" cioè tra le diverse componenti si creano degli spazi xkè nn si riesce a incastrare x bene (tipo puzzle) le diverse componenti... questo si traduce in un aumento dei tempi di comunicazione tra le componenti (xkè stanno + distanti!) e questo non è desisderabile xkè in teoria i ritardi nelle comunicazioni tra le diverse componenti integrate su un chip si ipotizza nullo proprio in virtù della distanza ridottissima dei collegamenti. Questo sarebbe superabile aggiungendo componenti x fare calcoli vari (più in là vedremo ke tipo di componenti) ma queste unità costano parekkio quindi le CPU arriverebbero a prezzi molto + alti...

L'aumento di cache e in generale di componenti nella CPU avviene quindi in relazione a un'altro parametro, la tecnologia di miniaturizzazione, proprio quel processo produttivo di cui si parla spesso per esempio spiegando la differenza tra Barton/Toro e Palomino! I primi due sono a tecnologia 0.13 micron mentre i palomino sono a 0.18 micron! Questo si è tradotto nell'avere prima nei Thoro e poi nei Barton + cache e anke + componenti logici nello stesso spazio o quasi.

Abbiamo visto ke oltre alla cache ci sono tante altre cose ke occupano spazio nella CPU, la dimensione della cache dipende quindi anke dallo spazio occupato da queste altre componenti... A parte le componenti ke si occupano di fare calcoli (quelle + ce n'è meglio è! :wink: ) ci sono anke le componenti ke decodificano le istruzioni... sembrerà strano ma queste possono occupare moooolto spazio, dipende da quanto sono complesse le istruzioni del set... in particolare alcune makkine con set CISC (se ci sarà tempo vedremo cosa vuol dire CISC e RISC, l'ultimo termine l'avrete sentito abbastanza spesso credo) dove la cache nella CPU nn ci entrava xkè tutto lo spazio era occupato dai componenti di decodifica e esecuzione (mi sembra fossero CPU della HP)!

Insomma nn è facile decidere quanta cache integrare e farcela entrare... in generale si cerca di studiare statisticamente i la velocità nel reperire un dato in base alla dimensione della cache e in base a questi risultati si dimensiona la quantità di memoria...

Altro argomento è la quantità di cache di primo e di secondo livello... siccome ora sapete un po di cose intuirete ke la cache di primo livello è + veloce e quindi + costosa ed è x questo ke c'è sia quella di primo sia quella di secondo livello invece di averne una intera... addirittura nell'ultima versione di P4 c'è anke la cache di 3° livello... esistono anke delle tecnike di predizione ke cercano di rendere le cache intelligenti percui una cache a un certo livello kiede alla memoria di livello superiore i dati ke "probabilmente" serviranno a breve cercando di minimizzare i ritardi dovuti ai cache miss...

Dopo tutto questo discorso evito di spiattellarvi davanti i calcoli e vi assicuro (credetemi sulla parola!) che le cache sono ben dimensionate e intelligenti e ke quindi i rallentamenti dovuti ai cache miss sono trascurabili... i nostri accessi in memoria sono quindi ora mooolto + veloci e il nostro processore dovrebbe volare! Invece no, il processore è rallentato dalla sua poca potenza nel fare calcoli complessi come le moltiplicazioni sugli interi e tutte le operazioni sui numeri con la virgola... dobbiam cercare di spingerlo ancora...

Nel prossimo post si parlerà di parallellismo e cominceremo ad addentrarci in tre tecnologie ke al giorno d'oggi stanno alla base della logica di CPU, GPU e di unità di elaborazione in generale... le parole kiave sono pipeline, farm e functional partition
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi azarius il 01 mar 2004, 16:38

Prof. thrantir una domandaz... perchè la cahe l1 è L1 INST CACHE e L1 DATA CACHE????
.::Abit_An7_-_XP-M_2400+_-_Thermaltake_Pipe101_&_UFO_-_2*256mb_KingSton_DDR_400mhz_2_3_2_11_-_5900xt_128mb_-_r::. .::ThermalTake Xaser V::.
azarius
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 704
Iscritto il: 31 dic 2003, 10:40
Località: il deserto....

Messaggiodi thrantir il 01 mar 2004, 16:55

bravo! Ottima domanda!

Per ora nn ti rispondo, infatti questo aspetto rientra nelle ottimizzazioni dei processori pipeline, quando ne parleremo troverai la risposta!
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi thrantir il 12 mar 2004, 18:21

tra un esaurimento e l'altro (tutta colpa della tesi :wink: ) è una altro post da aggiungere alla nostra discussione...

Come vi ho preannunciato devo parlarvi dei 3 tipi di parallelizzazione principe ke vengono applicati in informatica...

Tutte e tre queste tecnike sono intuitive come vi accorgerete, partimo dal Pipeline

Il Pipeline è niente + del concetto di catena di montaggio: si tratta di prendere una qualsiasi processo e suddividerlo in vari stadi ke si occupano ognuno di un pezzo del processo... esattamente quello ke avviene in una fabbrica, ogni reparto ha un compito preciso e la lavorazione è eseguita in un certo ordine per ottenere il prodotto finito...
Siccome in genere i pezzi del computer (e anke i programmi ke ci girano sopra!) fanno delle operazioni aritmetike quello ke ci serve è avere una funzione (e qui ditemi se il concetto di funzione nn vi è kiaro o vi fa venire l'allergia :wink: ) scomponibile in + sottofunzioni...

Mettiamo x esempio ke mi arrivi un numero e ke io questo numero lo debba moltiplicare per 2, il risultato lo debba elevare a potenza 2 e il risultato di questo lo debba dividere per 3... Quindi quello ke posso fare è avere un modulo ke quando arriva il numero iniziale li divida x 2 e mandi il risultato ad un secondo modulo ke lo eleverà a potenza e il risultato infine andrà ad un terzo modulo ke farà la divisione x 3 3 invierà il risultato a ki di dovere...
Kiaramente questo ha senso solo se tutto sto processo lo dobbiamo fare per una serie di dati abbastanza lunga! A proposito vi introduco il termine stream ke viene usato per indicare un flusso di dati, immaginatevi come se ci fosse un qualcosa ogni tot intervallo di tempo "spara" i numeri ke noi dobbiamo elaborare...
Se vi fermate un attimo a eseminare cosa vuol dire parallelizzare in pipeline un processo vi accorgerete di 2 aspetti ke lo limitano:

- Bisogna conoscere a priori il processo per poterlo scomporre in stadi

- Nn è detto ke sia possibile parallelizzare

Vediamo quanto ci guadagnamo... visto ke stiamo lavorando su stream ci interessa il tempo ke passa tra la fine di due elaborazioni successive. se fossimo in una fabbrica della fiat sarebbe il tempo ke passa tra l'uscita di una punto e l'uscita della punto successiva... Siccome abbiamo scomposto il processo in n stadi vorremmo ke questo tempo (ke si kiama Tempo di servizio) fosse il tempo iniziale diviso n... Segnatevela questa, quando si parallelizza un processo in n "cose" il tentativo e di ottenere un tempo di servizio ke sia un ennesimo del tempo del processo nn parallelizzato...

Ora fate un piccolo sforzo e rendetevi conto ke il tempo di servizio del pipeline sarà almeno uguale al tempo ke impiega x fare quello ke deve fare il sottoprocesso + lento...

X ora mi sa ke basta, il prossimo post sarà sul parallelismo Farm...

P.S. L'argomento nn è proprio facile facile, se avete dubbi kiedete sennò poi quando applikeremo questre tecnike nn riuscirete a seguire il discorso!
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi azarius il 12 mar 2004, 21:11

thrantir ecco che ti riseguo ;)... e ti ricomincio a rompere... hihihihihihi :P

una cosa nn ho capito se mi è chiara ed è il tempo che impiegano i vari stadi... puoi fare gentilmente un esempio numerico?? :D :D
.::Abit_An7_-_XP-M_2400+_-_Thermaltake_Pipe101_&_UFO_-_2*256mb_KingSton_DDR_400mhz_2_3_2_11_-_5900xt_128mb_-_r::. .::ThermalTake Xaser V::.
azarius
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 704
Iscritto il: 31 dic 2003, 10:40
Località: il deserto....

Messaggiodi thrantir il 13 mar 2004, 11:28

allora, vediamo di fare un esempio + vicino alla vita quatidiana... immaginiamo di avere una pasticceria e x semplicità suponiamo di fare solo un certo tipo di torta...
Dividiamo il processo di preparazione della torta in
- preparazione dell'impasto
- cottura
- farcitura

diciamo ke a preparare l'impasto ci si mette 15 minuti, la cottura impiega 40 minuti e la farcitura 5 minuti...

quindi se preparassimo le torte senza parallelizzare il processo ci metteremmo un'ora per ogni torta e si avrebbe una torta ogni ora...

Ora analizziamo il processo x come l'abbiamo parallelizzato... cominciamo a fare la prima torta, dopo 15 minuti abbiamo finito di impastare, passiamo avanti l'impasto pronto ke va messo nel forno e ricominciamo a fare l'impasto per una nuova torta.... dopo 15 minuti abbiamo finito ma nn possiamo mandare avanti l'impasto xkè il forno è ancora impegnato da quella precedente e dobbiamo aspettare ke finisca.... dopo altri 25 minuti il forno ha finito, la torta cotta viene mandata ad avere la sua farcitura e viene messo a cuocere l'impasto nuovo... a questo punto tutti gli stadi del processo (impastatura, cottura e farcitura) stanno lavorando contemporaneamente, siamo a regime.... La domanda è, ogni quanto tempo abbiamo una torta pronta? quello k succede è ke il tempo ke passa tra la fine di una lavorazione e quella successiva è uguale al tempo impiegato dallo stadio + lento del processo ke nel nostro caso è la cottura, quindi abbiamo una torta ogni 40 minuti, abbiamo guadagnato 20 minuti sul tempo di servizio della lavorazione sequenziale (quella senza parallelizzazione ndt).
Quando si parallelizza in realtà si vuol raggiungere un tempo di servizio ke è uguale a quello sequanziale diviso il grado di paralelismo ke nel pipeline è il numero degli stadi, quindi quello ke noi vorremmo avere è una torta ogni 20 minuti (60/3 = 20). Noi invece abbiamo ottenuto un risultato peggiore (40 minuti) e questo dipende dal fatto ke il nostro pipeline è sbilanciato, cioè gli stadi hanno tempi diversi e questo porta ad avere dei tempi morti di lavorazione in qualke stadio...

Spero di essermi spiegato x bene, se ce la faccio vi faccio uno skemino ke rende la cosa + facile da osservare
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi G.Threepwood il 19 mag 2004, 09:00

Quindi se una delle fasi ha T = 2t dove t e' il tempo impiegato per completare una delle altre fasi, posso provare a spezzarlo...

nel caso della torta posso provare a mettere 2 torte in cottura (se il forno e' abbastanza grande):

t1 Impasto la torta1
t2 metto la torta1 nella meta' A del forno, inizio a impastare un'altra torta2
t3 sposto la torta1 dalla meta' A alla meta' B, metto la torta2 nella meta' a del forno, impasto la torta3
t4 tiro fuori la torta1 dal forno, sposto la torta2 dalla meta' A alla meta' B, metto la torta3 nella meta' A del forno, impasto la torta4
t5 tiro fuori la torta2, sposto la torta3 dalla meta' A alla meta' B, metto la torta4 nella meta'A del forno, impasto la torta5...
...
t(n) tiro fuori la torta(n-3) dal forno, sposto la torta(n-2) dalla meta' A alla meta'B del forno, metto la torta(n-1) nella meta' A del forno, inizio a impastare la torta(n).

Ok, e se a t(x) la torta(x-3) casca per terra e perdo t(x) t(x+1) e t(x+2) a pulire per terra?
(Ovvero la pipeline genera degli errori per cui lo stream si blocca?).

Complimenti per le spiegazioni riportate finora eh?
:)

G.T.
G.Threepwood
Cittadino verde
Cittadino verde
 
Messaggi: 9
Iscritto il: 18 mag 2004, 12:34

Messaggiodi thrantir il 19 mag 2004, 09:53

Acc... quanto tempo ke nn continuo sto post... mi sa ke è arrivato il momento di rimetterci mano!

Allora, caro Guybrush :wink:
diciamo ke è + o - così anke se in un pipeline puro nn dovrebbe esserci qualcosa come metà forno, ogni stadio (cioè ogni parte della lavorazione) dovrebbe occuparsi di un prodotto solo... quindi x avere un pipeline puro ci dovrebbero essere due forni e nn uno utilizzato a metà...

Se ti cade una torta si genera quella ke in gergo viene definita "bolla" nel pipeline... il pipeline funziona bene quando tutti i suoi stadi funzionano contemporaneamente... se viene generata una bolla cioè per qualke motivo uno stadio si svuota si perde il tempo necessario a mandare in parallelo di novo tutti gli stadi
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi Nokia-xp il 06 set 2004, 18:06

Premetto che studiando informatica queste cose le so già, ma rispetto a scuola sono spiegate in modo più semplice, bravo!
Thantir se vuoi una mano, chiedi pure :D

edit: non vorrei peccare di superbia, le so già in linea di massima... :D :oops: :lol:
Amd 3800+ X2 - asrock 939dual-sataII - 2x512 vitesta 566 - 160gb hitachi deskstar sataII - plextor 716A - thermaltake xaser 3 - cooler master aurora dual verdi (rotti?)- Ati 9800pro@xt (no overdrive)

da montare: liquid cooled by Ybris - newjet 1700 + k10 + k5 + cristaltrap + airfreezer200
Nokia-xp
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 929
Iscritto il: 04 set 2004, 13:26

Messaggiodi thrantir il 06 set 2004, 20:57

grazie dei complimenti!

Ho cercato di essere il meno dettagliato possibile xkè lo scopo di questo 3d era di dare una visione un po + tecnica del funzionamento dei processori... purtroppo ultimamente ho avuto poco tempo e questo 3d nn l'ho + continuato... xò vi assicuro ke l'idea nn è morta e qualcosa bolle in pentola, ma x ora nn vi dico niente xkè tante cose vanno definite meglio :wink:
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi Nokia-xp il 06 set 2004, 21:52

volevo solo aggiungere una cosa, i processori moderni a 32 bit hanno anche registri speciali a 64 e altri a 128 bit, per contenere i dati di quelle dimensione, è una cosa non detta spiegando la differenza fra 32 bit e 64...
Amd 3800+ X2 - asrock 939dual-sataII - 2x512 vitesta 566 - 160gb hitachi deskstar sataII - plextor 716A - thermaltake xaser 3 - cooler master aurora dual verdi (rotti?)- Ati 9800pro@xt (no overdrive)

da montare: liquid cooled by Ybris - newjet 1700 + k10 + k5 + cristaltrap + airfreezer200
Nokia-xp
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 929
Iscritto il: 04 set 2004, 13:26

Messaggiodi thrantir il 06 set 2004, 22:18

vero! quando parlavo dei registri volevo ke la gente capisse bene quale fosse il funzionamento e nn volevo parlare delle "eccezioni"... in realtà nn è molto preciso neanke il discorso sulla parte puramente aritmetico-logica
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Messaggiodi Godel il 02 nov 2004, 18:08

thrantir mi butto in uno schemino...occhio che sbaglierò sicuramente qualcosa :D ...
Il ciclo fondamentale del procio:

1-becca l'istruzione
2-eseguila(se errore -> registro"errore" diventa 1)
3-aumenta di 1 il registro "numero dell'istruzione"
4-controlla se ci sono stati errori
5-torna all'1

Il ciclo idle(quello che fa quando non è occupato al 100%:

1-istruzione idle(diminuisci numero istruzione di 1)
2-eseguila(se errore -> registro"errore" diventa 1)
3-aumenta di 1 il registro "numero dell'istruzione"
4-controlla se ci sono stati errori
5-torna all'1

notare che in idle (dovrebbe voler dire "stupido") la parte 2 e la 3 si neutralizzano a vicenda,cosi il processore effettivamente non fa niente.
Poichè l'idle non chiama memoria,MMU,cache,altri registri,se non pochissime porte logiche, molti programmi per raffreddare forzano il procio a fare più idle possibile,perchè meno cose fatte=meno calore.
thrantir,lei conferma? :D
http://www.raixevenete.net
GigabyteK8NS(nForce3 250),Sempron 3100+@3272+,CorsairDDR 2x256PC3200(2,5-3-3-8 ),Quantum Fireball LM 20,5 GB + Maxtor 80GB,Samsung Syncmaster710t,Epson Stylus Photo R200
Avatar utente
Godel
Cittadino verde
Cittadino verde
 
Messaggi: 34
Iscritto il: 01 nov 2004, 21:03
Località: provincia di Venexia

Messaggiodi RedBull il 12 dic 2004, 17:10

proprio 1 bel corso 8)
Immagine
Danger Extreme Power - Life is too short, don't waste it. GO MODDING!
Avatar utente
RedBull
Cittadino onorario
Cittadino onorario
 
Messaggi: 166
Iscritto il: 30 nov 2004, 18:47
Località: Mondo Lontano

 
PrecedenteProssimo

Torna a Guide

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron