Torna indietro   Hardware Upgrade Forum > Off Topic > Discussioni Off Topic > Scienza e tecnica

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-07-2008, 14:48   #1
Darker
Senior Member
 
L'Avatar di Darker
 
Iscritto dal: Jun 2001
Città: London (UK)
Messaggi: 1788
[PC] Memoria virtuale, indirizzamento, cache. Come funziona?

Ciao ragazzi

Ho cercato su varie fonti, ma, sarò impedito, non riesco a capire all'atto pratico come funziona.
Vorrei capire, di fatto, come vengono gestiti gli indirizzi di memoria nel caso di calcolatore con memoria virtuale e cache di primo livello (TLB).

Per esempio, prendiamo un indirizzo a 32bit:

0000 0000 0000 0000 0000 0011 | 0001 0110

Viene richiesto quest'indirizzo. Gli ultimi 8 bit sono l'offset e indicano la parola richiesta. I primi 32-8 = 24 indicano invece il numero di pagina, ossia la pagina nella quale è contenuto quella word.

E' stata richiesta, quindi, la word 22 nella pagina 3. L'MMU controlla l'indirizzo e vede se la pagina 22 è in memoria fisica:

- Se c'è, prende ottiene il Descrittore di Pagina, ossia l'indirizzo della pagina fisica + vari altri bit (bit di validità, di accesso, diritti RWX) ecc
- Se non c'è, genera una fault e il controllo passa all'OS che prende la pagina dalla memoria secondaria (HD) e la sposta nella RAM, eventualmente togliendo un'altra pagina se la RAM non ha spazi liberi

Che succede se c'è anche la cache?

Prendiamo per esempio una set associative da 512KB a 4 vie (128KB x 4).

Mi è chiaro il fatto che viene prima controllata la cache, se la word non c'è va in ram e così via, ma non capisco quali bit controlla e come fa il matching.

Grazie
Darker è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 14:50   #2
lowenz
Bannato
 
L'Avatar di lowenz
 
Iscritto dal: Aug 2001
Città: Berghem Haven
Messaggi: 13528
Il TLB NON è propriamente una cache: http://it.wikipedia.org/wiki/Transla...okaside_Buffer
lowenz è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 14:53   #3
Darker
Senior Member
 
L'Avatar di Darker
 
Iscritto dal: Jun 2001
Città: London (UK)
Messaggi: 1788
Bhe, come dice wikipedia "Il Translation Lookaside Buffer (TLB) è un buffer (o, nelle implementazioni più sofisticate, una cache)".

In effetti non è correttissimo. Qualche idea su come si comporta, cmq?
Darker è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 14:54   #4
lowenz
Bannato
 
L'Avatar di lowenz
 
Iscritto dal: Aug 2001
Città: Berghem Haven
Messaggi: 13528
Quote:
Originariamente inviato da Darker Guarda i messaggi
Bhe, come dice wikipedia "Il Translation Lookaside Buffer (TLB) è un buffer (o, nelle implementazioni più sofisticate, una cache)".

In effetti non è correttissimo. Qualche idea su come si comporta, cmq?
Non ho ancora capito cosa intendi con "come si comporta"
lowenz è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 14:57   #5
lowenz
Bannato
 
L'Avatar di lowenz
 
Iscritto dal: Aug 2001
Città: Berghem Haven
Messaggi: 13528
Vediamo se questo ti basta

http://www.dsi.unive.it/~arcb/AA98-9.../virtuale1.pdf
http://www.dsi.unive.it/~arcb/AA98-9...aVirtuale2.pdf

lowenz è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 14:59   #6
Darker
Senior Member
 
L'Avatar di Darker
 
Iscritto dal: Jun 2001
Città: London (UK)
Messaggi: 1788
Nel senso "come il calcolatore ricerca la word all'interno della cache / TLB? Come fa il matching?".

La domanda che ho fatto nel primo post, quindi

Ho letto le slide (grazie), ma non è chiaro nemmeno lì.

Sulla prima slide, alla fine del capitolo dice che questa TLB tiene in memoria le ultime traduzioni in modo tale tale da saltare l'operazione di traduzione e risparmiare cicli di clock. Giustissimo, ovviamente.
Dice inoltre che il TLB è "diviso" in Bit di validità, Etichetta (TAG) e indirizzo della pagina fisica, e anche questo è giusto.

Solo che di fatto, nemmeno vedendo il diagramma logico, riesco a capire come fa :|

In pratica, se viene richiesta la stringa "000000000000000000000011 00010110" quali bit sono cercati nella cache? qual'è la tag?

Ultima modifica di Darker : 07-07-2008 alle 15:08.
Darker è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 15:06   #7
lowenz
Bannato
 
L'Avatar di lowenz
 
Iscritto dal: Aug 2001
Città: Berghem Haven
Messaggi: 13528
Quote:
Originariamente inviato da Darker Guarda i messaggi
Nel senso "come il calcolatore ricerca la word all'interno della cache / TLB? Come fa il matching?".

La domanda che ho fatto nel primo post, quindi
Vuoi qualcosa di più tecnico quindi? Il circuito magari?

Ecco

http://mos.stanford.edu/papers/lt_jssc_90.pdf
lowenz è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 15:37   #8
Darker
Senior Member
 
L'Avatar di Darker
 
Iscritto dal: Jun 2001
Città: London (UK)
Messaggi: 1788
Si, voglio qualcosa di più tecnico :P

Ma non gli schemi logici, non ho le competenze per capire quella roba.
Mi basta un "il tlb prende quegli indirizzi là della stringa e fa così"

Darker è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 15:45   #9
lowenz
Bannato
 
L'Avatar di lowenz
 
Iscritto dal: Aug 2001
Città: Berghem Haven
Messaggi: 13528
Quote:
Originariamente inviato da Darker Guarda i messaggi
Si, voglio qualcosa di più tecnico :P

Ma non gli schemi logici, non ho le competenze per capire quella roba.
Mi basta un "il tlb prende quegli indirizzi là della stringa e fa così"

Beh le tecniche di confronto sono le stesse con le quali funzionano le cache.....tanti simpatici comparatori implementati poi come meglio ti pare in hardware (vedi pdf di sopra)

Qui trovi cmq un bel quadro complessivo: http://it.wikipedia.org/wiki/CPU_cache
lowenz è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 16:30   #10
Rand
Senior Member
 
Iscritto dal: Apr 2006
Messaggi: 1464
Il TLB non è solo una cache che evita, nella maggior parte dei casi, al processore di dover accedere in memoria due volte quando deve salvare/prelevare un dato dalla stessa? (una per accedere alla tabella "di conversione" dell'indirizzo e una per il dato)

Riguardo alla cache: Il dato/istruzione può essere messono solo in n posti nella cache (dove n è l'associatività della cache), se l'associatività è maggiore di 1 viene utilizzato come indice "per decidere" un numero adatto (2 posti possibili -> 1 bit, 4 posti -> 2 bit,ecc. ) di bit meno significativi dell'indirizzo.

(Vado a memoria, quindi posso sbagliarmi..)

Ultima modifica di Rand : 07-07-2008 alle 16:45.
Rand è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 17:37   #11
lowenz
Bannato
 
L'Avatar di lowenz
 
Iscritto dal: Aug 2001
Città: Berghem Haven
Messaggi: 13528
Certo, il TLB è una specie di cache per le rimappature degli indirizzi da virtuali a fisici.
lowenz è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 18:01   #12
bjt2
Senior Member
 
L'Avatar di bjt2
 
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
La cache e il tlb sono due cose separate.
Se la memoria virtuale è abilitata la traduzione deve SEMPRE essere fatta. A meno che non siamo nel kernel. Ma limitiamoci a codice lato utente. Parliamo di architetture x86. Il programma richiede un dato all'indirizzo x. L'indirizzo è al livello di byte. La CPU maschera i 12 bit bassi (supponiamo pagine di 4 KB. Esistono anche pagine di 2/4MB e recentemente pagine di 1GB). Con i rimanenti BIT, va a controllare per prima cosa se un elemento con quei bit esiste nella cache TLB (nelle CPU AMD esistono due livelli di TLB.) Se non essite nella cache TLB, la CPU deve fare un accesso in memoria per leggere la tabella delle pagine. E' tutto trasparente al programam e anche al SO. Questo accesso (o più accessi perchè la tabella è fatta a livelli) è come un normale accesso: quindi si leggono i vari livelli di cache ed eventualmente in RAM. La tabella delle pagine è una di quelle cose che deve stare sempre e interamente in RAM. Il caching delle tabelle di pagine può essere disabilitato (e la patch temporanea per il Phenom B2 faceva questeo) ma è sconsigliato... Una volta che la tabella di pagina è stata letta (nella TLB o in RAM), si vedono i vari bit. Se si è abilitati, se si ha il permesso di scrittura e se la pagina è presente in RAM. Se tutto va bene, l'indirizzo viene tradotto e il dato è letto, eventualmente dalla cache. Altrimenti si genera un page fault e il controllo passa al SO...
__________________
0 A.D. React OS
La vita è troppo bella per rovinarsela per i piccoli problemi quotidiani...
IL MIO PROFILO SOUNDCLOUD! IL MIO CANALE YOUTUBE! IL MIO PLUGIN VST PROGRAMMABILE!
bjt2 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 18:59   #13
Darker
Senior Member
 
L'Avatar di Darker
 
Iscritto dal: Jun 2001
Città: London (UK)
Messaggi: 1788
Uhm, non ho capito per bene.

I dati tra RAM e HD sono scambiati per pagine. Nella cache, invece, non ci sono pagine (per questioni di dimensione), ma singoli indirizzi.

Se un processore è a 32bit, tutte le stringhe devono essere a 32bit. Ciò implica che anche lil TLB deve essere multiplo di 32? Quindi un TLB di 128K quanti indirizzi può contenere?

E cmq, scusami Bjt2, ma non ho capito esattamente la faccenda del matching dei bit nel TLB.

Darker è offline   Rispondi citando il messaggio o parte di esso
Old 08-07-2008, 14:17   #14
bjt2
Senior Member
 
L'Avatar di bjt2
 
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
Quote:
Originariamente inviato da Darker Guarda i messaggi
Uhm, non ho capito per bene.

I dati tra RAM e HD sono scambiati per pagine. Nella cache, invece, non ci sono pagine (per questioni di dimensione), ma singoli indirizzi.

Se un processore è a 32bit, tutte le stringhe devono essere a 32bit. Ciò implica che anche lil TLB deve essere multiplo di 32? Quindi un TLB di 128K quanti indirizzi può contenere?

E cmq, scusami Bjt2, ma non ho capito esattamente la faccenda del matching dei bit nel TLB.

La cache è organizzata a linee (attualmente di 64 bytes sia per INTEL che AMD, ma è indipendente dai bit del processore). I processori x86 possono accedere a tutti i dati a 8, 16, 32, 64 e 128 bit a partire da qualsiasi indirizzo in memoria (a parte INTEL che per i dati a 128 bit richiede allineamento esatto). Nella TLB ci sono i bit alti di indirizzo di pagina. Se la pagina è 4KB, ci sono tutti i bit dell'indirizzo, meno i 12 bit bassi... In pratica un TLB contiene la copia esatta di una entry della tabella pagine. Che contiene: indirizzo virtuale (escluso i 12 bit bassi), indirizzo fisico (escluso i 12 bit bassi), permessi/flag. Questo vale per le entry figlie (le tabelle pagine sono alberi. I nodi intermedi puntano a pagine di 4Kb con altre page entry)...
__________________
0 A.D. React OS
La vita è troppo bella per rovinarsela per i piccoli problemi quotidiani...
IL MIO PROFILO SOUNDCLOUD! IL MIO CANALE YOUTUBE! IL MIO PLUGIN VST PROGRAMMABILE!
bjt2 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
Roborock Qrevo Curv S5X a 499€: potenza ...
L'italiana Bending Spoons ha comprato Ev...
Pat Gelsinger, mai darlo per morto: piov...
ECOVACS DEEBOT MINI a 199€: prezzo pi&ug...
Codice rosso in casa OpenAI: priorit&agr...
AWS rinnova lo stack dell'IA: Trainium3,...
AWS entra nell'era degli agenti: il keyn...
Roscosmos: inventario a bordo della ISS ...
Arduino viene acquisita da Qualcomm e ca...
Un razzo spaziale Arianespace Vega C ha ...
Terra Next dà il via a Scale-Up P...
Il veicolo riutilizzabile ESA Space Ride...
Un Mousepad per mirare meglio: uno youtu...
Tokyo Electron sotto accusa: Taiwan cont...
L'ESA sta cercando alternative all'utili...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:47.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v