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 14 gen 2004, 04:29

scoprirai ke anke all'uni tante materie saranno noiose e poco pertinenti con quello ke ti piacerebbe studiare... quindi tiri vanti e fai almeno il minimo indispensabile x passare... poi se uno è tra gli incaricati della scuola a far andare l'unico computer connesso (si parla di 8 anni fa) può capitare di saltare le lezioni di autori latini e geografria astronomica x un anno... vero sku?
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 Imrik il 14 gen 2004, 18:21

plz non andate ot! :o

oggi ha fatto sega professore? niente lezioni? :P

e nn si aggreghi anke lei a questi kiakkeroni!
Imrik
 

Messaggiodi thrantir il 14 gen 2004, 18:55

Ha ragione Imrik, in questo post meglio nn andare ot sennò diventa veramente inseguibile... invece x smentirlo ecco pronta una nuova puntata!

Allora siamo arrivati a capire ke dietro all'elaborazione di un'istruzione si cela in realtà un ciclo di cose ke il processore fa per poter effettivamente eseguire l'istruzione. Quello ke vi voglio raccontare oggi non è direttamente legato a quello ke abbiamo detto finora ma diciamo ke gli sta affianco, infatti tra un po scoprire come il processore colloquia con la memoria.
Attenzione! Nn vi spiegherò come funziona il controller della memoria e nn vi descriverò per bene ke tipo di comunicazioni si scambiano... quello ke mi preme è farvi capire cosa significa quando il processore rikiede una parola alla memoria.

Per farvi capire per bene devo xò spiegarvi (o almeno tentare!) il meccanismo della memoria virtuale (attenzione nn quella ke intende windows, quella è tutta un'altra cosa e infatti è realizzata a livello di sistema operativo mentre qui siamo immersi fino al collo nell'hardware!!!)

Per prima cosa diamo una rappresentazione della memoria: la memoria per noi sarà rappresentata come un array (vettore) di registri, proprio come quelli ke stanno dentro il processore. Siccome la memoria deve contenere tante cose è ben + grande dell'insieme dei registri, voi sapete bene ke oggi nn è così strano arrivare fino al Gb di RAM... ebbene per indirizzare i registri del processore usavamo 8bit (vi ricordate?) mentre per indirizzare la memoria useremo tutti i 32 bit di una parola! Quindi le celle di memoria indirizzabili sono 2 alla 32 ke vuol dire fino a 4 Giga-parole. Siccome ogni parola è composta da 32 bit la nostra memoria al massimo potrà contenere 4Giga-parole * 4 byte = 16Gigabyte... in realtà nn funziona esattamente così ma questa è un'ottima approssimazione. Quindi ora con uno sforzo immaginatevi 4 miliardi di celle una dopo l'altra, questo è lo spazio ke possiamo utilizzare per memorizzare i dati ke vengono usati dal processore.

Ora invece un breve excursus su come sono fatti i programmi ke tutti noi usiamo...
Dovete sapere ke quando si compila un programma (ke per i non addetti vuol dire dopo aver scritto utto il programma si genera quel file .exe ke in pratica nn è altro ke lo stesso programma scritto in modo ke il processore sia in grado di eseguirlo) quello ke ne viene fuori è una serie di istruzioni e di dati sotto forma di tante parole... Queste parole vengono di volta in volta portate dall'hard disk alla memoria quando il processore ne ha bisogno

Quando il processore ha bisogno di una certa parola di un certo programma la kiede alla memoria, e qui dovrebbe nascervi questo problema (questo è un dei punti kiave)... siccome non possiamo sapere in quale cella della memoria è stata inserita la parola ke il processore vuole (perchè è tutto dinamico e ognivolta viene scelta una cella disponibile secondo diversi criteri) come si fa a capire dov'è? Ma cos'è ke kiede il processore alla memoria?...

Torniamo ai programmi e mettiamo un po' d'ordine: il programma eseguibile si presenta come una lista di parole ke sono numerate da 0 a n-1 dove n è il numero totale delle parole... questo significa ke per lui (e quindi per il processore) è come se la prima parola del programma stesse nella prima cella di di memoria... Kiaramente in realtà nn è così questa memoria "finta", se volete "virtuale" del programma viene kiamata "spazio logico di indirizzamento". Per questo motivo quando parleremo del numero corrispondente ad una parola del programma nello spazio di indirizzamento logico parleremo di "indirizzo logico" per distinguerlo da quello effettivo ke avrà in memoria ke kiameremo "indirizzo fisico"

Abbiamo detto però ke in realtà nella memoria la parola ke secondo il programma sta all'indirizzo 0 nn si sa se sarà all'indirizzo 0 o in un altro e nn esiste modo di saperlo a priori... Adesso parlerò come avrebbe parlato il mio prof: stampatevi questa cosa in testa, in informatica quando non si sa a priori la corrispondenza ke possono avere due cose (nel nostro caso l'inidirizzo logico con quello fisico) la cosa si risolve in un solo modo: si usa una tabella!

Adesso quindi dovete immaginarvi ke esista una semplice tabella di due colonne: su ogni riga a sinistra c'è l'indirizzo logico ke corrisponde ad una certa parola del programma, a destra troveremo il corrispondente indirizzo fisico ke ci dice dove questa parola sta attualmente in memoria...
Ogni programma al suo interno ha questa tabella di corrispondenze.
Ora voi starete pensando ke abbiamo solo spostato il problema, adeso ci serve qualcuno ke questa tabella la aggiorni, x ora vi basti sapere ke lo fa un pezzo del sistema operativo ke si kiama LOADER...

Questa soluzione così come ve l'ho presentata porta diversi vantaggi: intanto al momento di creare l'eseguibile il programmatore se ne sbatte altamente di come questo programma verrà caricato sulla ram e in più se il programma è così grande ke magari nella ram disponibile nn ci entra tutto nn è un problema xkè al momento del bisogno un pezzo inutile verrà tolto dalla ram x inserire quello ke serve al momento senza problema. Il vantaggio maggiore xò è senza dubbio ke il processore a questo punto è completamente ignare su come sia organizzata la memoria, infatti lui utilizza solo indirizzi logici, quindi ora ci manca solo di sapere ki si incarica di guardare la tabella di corrispondenze e capire quale sia la cella di memoria ke contiene la parola ke vuole il processore... signore e signori nella prossima puntata farete la conoscenza di un simpatico amico, il signor MMU
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 14 gen 2004, 22:01

Bada che post...O.ò :roll: :roll: :roll: :roll:
.::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 16 gen 2004, 15:14

Ieri ho avuto un po di robe accademike da sistemare e quindi nn ho avuto il tmepo di continuare la nostra discussione... nn so se sia x questo motivo ma imrik h espresso dei dubbi sulla mia sessualità ke mi hanno lasciato perplesso... mah, proseguiamo...

Allora, adesso siamo tutti coscienti ke il processore lavora su indirizzi logici ma a noi serve anke sapere gli indirizzi fisici corrispondenti e questa corrispondenza è realizzata con una tabella ke d'ora in poi kiameremo "tabella di rilocazione". Oni programma ha già pronta la sua tabella di rilocazione ke va riempita ogni volta ke il programma viene caricato mettendo gli indirizzi fisici al giusto posto... come vi ho già detto nn è necessario parlare ora dei meccanismi ke vengono usati per riempire nel modo giusto la tabella, cmq lo fa x noi un pezzo del sistema operativo...

Noto ke a nessuno di voi è venuto un dubbio: abbiamo detto ke ogni "parola" ke compone il programma è identificata da un indirizzo logico al quale poi corrisponde un indirizzo fisico, e entrambi questi indirizzi sono di 32 bit, ma questo porta una conseguenza notevole! Vuol dire infatti ke la nostra tabella di rilocazione per ogni parola del programma deve contenere i 32 bit dell'indirizzo logico e i 32 bit dell'indirizzo fisico per poter realizzare la corrispondenza tra i due! Questo nn è verosimile xkè vorrebbe dire ke per ogni parola ke vi ricordo è di 32 bit noi avremmo altri 64 bit! Quindi il programma diventerebbe 3 volte + grande! Siccome questo nn è pensabile si usa una tecnica + raffinata: la "paginazione". Dobbiamo ora immaginare la nostra memoria come divisa in "pagine" ke contengono al loro interno un numero fisso di parole, come a dire "il quaderno è diviso in un insieme di pagine ke contengono tutte lo stesso numero di quadretti.
Facciamo un esempio realistico, diciamo ke abbiamo 128Mb di RAM e ke vogliamo pagine ke contengano 64 parole. Siccome ogni parola è grande 32 bit 64 parole sono 2Kb e la nostra memoria viene quindi divisa in 128Mb/2Kb = 64000 circa...
Cosa ce ne facciamo di tutto cio? Osservate bene e vi accorgerete ke adesso invece di indirizzare 4000000 di parole indirizzeremo 64000 pagine, cioè abbiamo ridotto il numero di cose da indirizzare di mille volte!
Quindi noi agiremo così: Nella tabella di rilocazione ci sarà nella colonna di sinistra le pagine logike e in quella di destra l'indirizzo delle corrispondenti pagine fisike, il ke riduce abbastanza lo spazio occupato dalla tabella stessa...
Adesso dovreste kiedervi...ok, ora riusciamo a tradurre l'indirizzo logico di una pagina in un indirizzo fisico, ma noi volgiamo accedere ad una parola in particolare, nn alla pagina ke la contiene! Per raggiungere questo scopo utilizziamo un altro indirizzo ke in gergo si kiama "offset", ora vediamo se riesco a farvelo capire con un esempio:
Immagina te di avere un quadernone ad anelli, questo rappresenta la nostra memoria e voi attaccate le pagine quando vi serve ke stiano nel quadernone... siccome + di un certo tot di pagine nn ci stanno a volte sarete costretti a togliere una pagina ke magari nn vi serve + e metterne una ke vi serve immediatamente (x essere coerenti diciamo ke la pagina nuova la mettete al posto di quella vekkia). Alla fine avrete un bel casino di pagine tutte sparse senza un ordine preciso quindi ke fate? Avete una tabella ke vi dice ke la pagina ke magari per voi è la 3 corrisponde a quella ke sul quadernone sta al posto 26 quindi riuscite a reggiungere subito quella pagina... ma voi volete una linea in particolare di quella pagina e quindi una volta trovata la pagina reale andate a cercare quella linea in particolare... il numero della linea è il nostro "offset"... Notate in particolare ke siccome la pagina logica corrisponde perfettamente alla pagina fisica l'offset sulla pagina logica è lo stesso ke sulla pagina fisica
Uhm, per un post mi sembra di aver scritto abbastanza, meglio ke ancora nn vi parli dell'MMU, ditemi se avete tutto ben kiaro e poi procedo!
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 Imrik il 16 gen 2004, 16:01

nn ho capito come si fa a sapere la linea.. viene detta per ogni parola? non credo altrimenti aumenterebbe di nuovo...
:(



ps: x don vincè: tanto ogni volta torna su ke ci viene scritto! e poi... 5 pagine mi sembrano che lo markino.. considerato ke aumenteranno!! :)
ho postato qui editando qst msg così evito di fare troppi msg!
Ultima modifica di Imrik su 16 gen 2004, 16:07, modificato 1 volte in totale.
Imrik
 

Messaggiodi don_supa_vincè il 16 gen 2004, 16:05

Jaber...........nn si può marcare questo post in maniera diversa??? Qualcosa che lo distingua dagli altri.................nn è bello che si confonda con gli altri...........se nessuno risponde per un po' finisce in fondo.........

Che ne pensi??
Athlon 2500+@ 2333 (166*14)........Epox EP-8K9A.......1Gb ddr Pc2700.......mitica nVIDIA GeForce 3 titanium 500 (@288 MHz GPU 600 MHz DDR).....e tutto il resto che serve a funzionare... Don Vincè
Avatar utente
don_supa_vincè
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 442
Iscritto il: 07 nov 2003, 21:06
Località: Milano

Messaggiodi dario55 il 16 gen 2004, 16:39

però così nn vale, nn ho più il coraggio di postare ancora, mi rendo conto che nn sò proprio niente di cpu e resto.
però è molto interessante io seguo la vicenda con molto interesse anche se nn posto, leggo!
continua che poi ti dico che c'iò capito.
dario55
Cittadino verde
Cittadino verde
 
Messaggi: 82
Iscritto il: 11 ago 2003, 03:46

Messaggiodi thrantir il 16 gen 2004, 16:45

Imrik ha scritto:nn ho capito come si fa a sapere la linea.. viene detta per ogni parola? non credo altrimenti aumenterebbe di nuovo...
:(


Per ora ti dico ke il passo importante ke abbiamo fatto è decidere di separare le due questioni, cioè "quale pagina mi serve?" e all'interno di quella pagina "quale linea (= parola) mi serve?"

A brevissimo vi spiegherò come e xkè di volta in volta il procio kiede una linea diversa...

Tanto per imncominciare comincia a pensare come può presentarsi un programma, ora sai ke nel programma ci sono delle parole ke sono le istruzioni del programma ke il processore eseguirà, ci sono delle parole ke sono i dati ke il programma userà, ci sono altre parole ke sono la tablella di rilocazione... Siccome ki fa i computer (in questo caso in particolare ki fa i copilatori!) fa le cose per bene tutti questi pezzi ke vanno a comporre un programma sono suddivisi per bene: mi spiego, in una pagina del programma (tu immaginala sempre come la pagina di un quaderno) non ci possono essere cose di tpo diverso cioè se ci sono istruzioni nn ci possono essere dati ecc. Quindi il nostro programma tipo comincia un po a delinearsi! Immaginiamolo meglio:

Le prime pagine (ke iniziano a essere numerate da zero!) conterranno le istruzioni... se le pagine contengono al massimo 64 parole e noi invece abbiamo 65 parole di istruzioni vuol dire ke le pagine ke contengono le istruzioni saranno 2, la numero 0 piena e la numero 1 contenente una sola parola ke è l'ultima istruzione, per il resto la pagina è vuota! Poi dobbiamo scrivere i dati ke quindi saranno scritti dalla pagina numero 2 in poi seguendo lo stesso discorso...

Consiglio a tutti di fare una cosa ke vi renderà + facile capire il resto del discorso, fatevi un disegno in cui ci sono tante paginette una dopo l'altra e numeratele a partire da 0... poi decidete per esempio ke fino alla numero 3 ci sono istruzioni, fino alla 5 i dati... a questo punto nella pagina 6 ci vogliamo mettere la tabella di rilocazione, come facciamo? E' molto semplice, noi sappiamo ke qualcuno si preoccuperà, una volta conosciuto l'indirizzo fisico della pagine del programma, di scriverlo in questa tabella quindi noi ipotizziamo questo semplice metodo: la parola numero 0 della pagina 6 (ke è la nostra tabella di rilocazione) a tempo debito conterrà l'indirizzo fisico della pagina numero 0, la parola numero 1 della pagina 6 a tempo debito conterrà l'indirizzo fisico della pagina numero 1 e così via... in pratica la pagina numero 6 è come un sommario ke va letto così: A me interessa l'indirizzo della pagina 1 (ke vi ricordo è la seconda xkè si inizia a numerare da 0!), allora leggo la riga numero 1 e lì ci sarà l'indirizzo ke cerco!
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 16 gen 2004, 16:47

dario55 ha scritto:però così nn vale, nn ho più il coraggio di postare ancora, mi rendo conto che nn sò proprio niente di cpu e resto.
però è molto interessante io seguo la vicenda con molto interesse anche se nn posto, leggo!
continua che poi ti dico che c'iò capito.


Nn credere ke io sia un esperto! Diciamo ke so abbastanza bene la teoria ke sta alla base dei processori ma x esempio nn sono informatissimo su tutto ciò ke poi realmente c'è in ogni processore sul mercato!
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 jaber il 16 gen 2004, 19:09

Richiesta accolta Don :wink:
- AmdPlanet Staff -
Responsabile News
Avatar utente
jaber
Site Admin
Site Admin
 
Messaggi: 2548
Iscritto il: 24 mag 2003, 02:57
Località: roma

Messaggiodi thrantir il 16 gen 2004, 19:13

Grazie a jaber ke ha messo in posizione privilegiata la nostra piccola discussione, spero ke in questo modo sia più facile x voi seguirmi nei miei discorsi incasinati e ke altre persone leggano questi post e li trovino interessanti!
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 16 gen 2004, 19:19

sempre grazie a jaber la nostra discussione adesso ha un titolo + consono!
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 don_supa_vincè il 17 gen 2004, 00:03

Urràààà.......finalmente qualcuno accetta le mie proposte....... :lol: :lol:

Grazie Papaaaa''
Athlon 2500+@ 2333 (166*14)........Epox EP-8K9A.......1Gb ddr Pc2700.......mitica nVIDIA GeForce 3 titanium 500 (@288 MHz GPU 600 MHz DDR).....e tutto il resto che serve a funzionare... Don Vincè
Avatar utente
don_supa_vincè
Saggio del pianeta
Saggio del pianeta
 
Messaggi: 442
Iscritto il: 07 nov 2003, 21:06
Località: Milano

Messaggiodi thrantir il 19 gen 2004, 20:18

Rieccomi, scusate il ritardo ma ho avuto casini vari, nn ultimo il mio xp ke simpaticamente è morto costrigendomi a reinstallarlo (tmepo record, in un'ora avevo sistema e applicazioni varie, ormai lo potrei fare a okki kiusi :D )

E' arrivato il momento ke vi parli dell'MMU: questo è un acronimo ke sta x Memory Management Unit, e come potete capire dal nome è l'unità ke si preoccupa di effettuare la famosa traduzione da indirizzo logico a fisico di cui abbiamo già parlato... come avviene questa traduzione? Sappiamo già ke dobbiamo usare la tabella di rilocazione ke il loader ha provveduto a riempire x noi....

Il nostro scopo è di nn far "vedere" al processore ke l'indirizzo da lui rikiesto (ke è logico!) va in realtà tradotto in un indirizzo fisico... in questo modo il processore è "svincolato" dalla tecnica usata per gestire la memoria virtuale (ke in questo contesto vi ricordo ke NON è quella di windows, parliamo di cose diverse).

Allora, dobbiamo usare questa benedetta tabella di rilocazione e x far questo l'MMU deve averne una copia in una sua memoria veloce interna... in particolare x aumentare l'efficienza della traduzione dell'indirizzo viene usata una memoria di tipo associativo, x ora nn preoccupatevi di sapere cos'è, magari si farà un post apposito x spiegarlo x bene, vi basti sapere ke è + veloce e anke + costosa della memoria "normale" dove con memoria normale si intende in questo caso qualcosa tipo i registri del processore... siccome come vi ho detto questa memoria è costosa in genere nn la si fa sufficientemente grande per contenere tutta la tabella di rilocazione... come si fa? Ora capirete meglio, vi illustrerò il meccanismo alla base della traduzione:

1) Il processore genera l'indirizzo logico e kiede una determinata parola.

2) La rikiesta arriva all'MMU, possono verificarsi 2 possibilità, ke la riga della tabella di rilocazione ke ci serve x tradurre questo indirizzo sia all'interno della memoria dell'MMU o ke nn ci sia...

3) Se la riga nn c'è l'MMU decide di sostituire un'altra riga ke ha al suo interno con quella ke ci occorre ke viene rikiesta direttamente alla memoria, appena la riga è presente nella memoria interna si procede con la traduzione

4) La traduzione consiste nel vedere l'indirizzo fisico corrispondente all'indirizzo logico kiesto dal processore. Se la pagina ke contiene quella parola è presente in memoria si inoltra la rikiesta alla memoria ke provvederà a fornirla all'MMU ke la passa poi al processore.

5) Se la pagina nn è presente in memoria centrale l'MMU genera quella ke si kiama un'"eccezione di fault di memoria virtuale"... in pratica dice al processore ke la pagina nn c'è e va messa in memoria, a questo punto una parte del sistema operatico si preoccupa di rendere disponibile in memoria la pagina, appena questo avviene il processore rifarà la rikiesta all'MMU e stavolta otterrà la parola rikiesta.

Notate ke a meno di fault il processore è ignaro di tutto quello ke succede, infatti l'MMU e la memoria parlano tra loro direttamente...

Ditemi se avete capito tutto xkè in seguito torneremo a parlare di queste cose quando approfondiremo il discorso su "come è fatto un programma e come il processore lo esegue" e quando introdurremo la cache
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

 
PrecedenteProssimo

Torna a Guide

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron