ITMI990250A1 - Procedimento di controllo di accesso in memoria su una macchina con memoria ad accesso non uniforme e macchine che consente di mettere in op - Google Patents

Procedimento di controllo di accesso in memoria su una macchina con memoria ad accesso non uniforme e macchine che consente di mettere in op

Info

Publication number
ITMI990250A1
ITMI990250A1 IT1999MI000250A ITMI990250A ITMI990250A1 IT MI990250 A1 ITMI990250 A1 IT MI990250A1 IT 1999MI000250 A IT1999MI000250 A IT 1999MI000250A IT MI990250 A ITMI990250 A IT MI990250A IT MI990250 A1 ITMI990250 A1 IT MI990250A1
Authority
IT
Italy
Prior art keywords
memory
machine
physical
page number
lpn
Prior art date
Application number
IT1999MI000250A
Other languages
English (en)
Inventor
Nadia Bouraoui
Jean-Pascal Mazzilli
Original Assignee
Bull Sa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull Sa filed Critical Bull Sa
Publication of ITMI990250A1 publication Critical patent/ITMI990250A1/it
Application granted granted Critical
Publication of IT1309544B1 publication Critical patent/IT1309544B1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

Descrizione dell'invenzione avente per titolo:
PROCEDIMENTO DI CONTROLLO DI ACCESSO IN MEMORIA SU UNA MACCHINA CON MEMORIA AD ACCESSO NON UNIFORME E MACCHINA CHE CONSENTE DI METTERE IN OPERA UN TALE PROCEDIMENTO"
Nel campo informatico, è possibile aumentare la potenza di una macchina aumentando il numero di processori di cui è composta. Un tipo di macchine noto col nome SMP permette ai diversi processori di una stessa macchina di accedere in modo simmetrico alla sua memoria mediante un bus di sistema. Sono macchine con memoria ad accesso uniforme in quanto il tempo di accesso in memoria e sostanzialmente lo stesso per tutti i dati a cui si accede. Tuttavia, la curva di prestazioni di tali macchine non cresce in modo lineare in funzione del numero di processori. Un numero elevato di processori fa sì che la macchina gestisca più problemi di accessibilità alle sue risorse di quante siano le risorse di cui dispone per eseguire le sue applicazioni. ciò ha come conseguenza di inflettere notevolmente la curva di prestazioni quando il numero di processori supera un valore ottimale spesso stimato dell 'ordine di quattro. La tecnica nota propone soluzioni differenti a questo problema.
Una soluzione nota consiste nel raggruppare in grappoli più macchine in modo da farle comunicare fra loro mediante una rete.
Ciascuna macchina possiede un numero ottimale, ad esempio di quattro processori e il proprio sistema operativo. Essa stabilisce una comunicazione con un'altra macchina tutte le volte che effettua un trattamento su dati tenuti aggiornati da questa altra macchina. Il tempo necessario a queste comunicazioni e la necessità di lavorare su dati coerenti pongono problemi di latenza per applicazioni voluminose, quali ad esempio le applicazioni distribuite che richiedono numerose comunicazioni. La latenza è la durata che separa l'istante di emissione di una richiesta di accesso in memoria e l'istante al quale è ricevuta la risposta a questa richiesta.
Un'altra soluzione nota è quella delle macchine di tipo NUMA. Sono macchine con memoria ad accesso non uniforme (Non Uniform Memory Access, in inglese), in quanto il tempo di accesso in memoria varia a seconda della localizzazione dei dati a cui si accede. Una macchina di tipo NUMA è costituita da più moduli, ciascun modulo comprendendo un numero ottimale di processori ed una parte fisica della memoria totale della macchina. Una tale macchina è ad accesso in memoria non uniforme poiché un modulo accede generalmente più facilmente ad una parte fisica della memoria che non condivide con un altro modulo, che ad una parte che condivide. Benché ciascun modulo possieda un bus di sistema privato che collega i suoi processori e la sua memoria fisica, un sistema operativo comune a tutti i moduli permette di considerare l'insieme di bus di sistemi privati come un solo e unico bus di sistema della macchina. Un indirizzamento logico assegna un luogo di residenza in una posizione di memoria fisica determinata di un modulo. Per un processore considerato, si distinguono gli accessi ad una parte di memoria locale, situata fisicamente sullo stesso modulo del processore, e gli accessi ad una parte di memoria distante, situata fisicamente su uno o più altri moduli diversi da quello ove è situato,il processore.
Un tipo particolare di macchina NUMA è il tipo CCNUMA, cioè quello delle macchine a coerenza cache (Cache Coherency, in inglese). Un meccanismo di cache condivisa fa sì che, a un dato istante, una copia valida, cioè aggiornata di questo blocco non sia necessariamente localizzata nella sua posizione di memoria fisica di residenza. Una o più copie aggiornate del blocco possono così migrare da un modulo all'altro a seconda delle richieste applicative e delle chiamate di sistema. La memoria fisica, localizzata in un modulo considerato, è quella alla quale il modulo considerato accede più rapidamente, in quanto direttamente mediante il suo bus di sistema locale. La memoria fisica, remota in un altro modulo, è quella alla quale il modulo considerato accede meno rapidamente, occorrendo una o più transazioni fra moduli. La memoria fisica, locale al modulo considerato, comprende una prima parte assegnata particolarmente ai blocchi di dati residenti in questo modulo, ed una seconda parte particolarmente assegnata alle copie di blocchi residenti in altri moduli. La seconda parte di memoria fisica costituisce una memoria cache di memoria remota negli altri moduli.
Un blocco residente nella prima parte di memoria fisica non è immediatamente disponibile se il suo contenuto non costituisce una copia aggiornata; è questo il caso, ad esempio, se uno o più altri moduli condividono questo blocco e se uno di questi altri moduli ne detiene una copia aggiornata, in termini di coerenza di memoria. Per gestire la condivisione di blocchi residenti nella sua prima parte di memoria fisica, con altri moduli, il modulo considerato dispone di un organo di controllo di memoria cache a distanza RCC (Remote Cache Controller, in inglese).
L'interesse delle macchine con memoria ad accesso non uniforme e coerenza cache è che ciascun modulo lavora su blocchi di dati residenti in una prima parte della sua memoria locale o su copie in una seconda parte della sua memoria locale, di blocchi residenti in una prima parte di memoria di un altro modulo. Un modulo considerato non ha allora bisogno dì comunicare con altri moduli altro che per lavorare su copie aggiornate in modo da assicurare una coerenza dei dati. In esecuzione, è quindi a priori indifferente che un blocco di dati sia residente in un modulo o in un altro, ciascun modulo facendo rientrare, se necessario, nella sua memoria locale, copie di blocchi di cui ha bisogno. Tuttavia, per un'esecuzione del sistema operativo comune a tutti i moduli o di certe applicazioni di tipo distribuito, è possibile che certi dati siano spesso utili all'insieme dei moduli. Questi dati riguardano, a titolo di esempio non limitativo, delle tabelle di assegnazione di processo, tabelle di archivio aperto o tabelle di prese di blocco su risorse condivise. La coerenza di questi dati rischia di richiedere numerosi scambi fra moduli e di perturbare così l'aumento di prestazioni atteso da tali macchine.
D'altra parte, è interessante utilizzare un modo di indirizzamento virtuale per fare eseguire processi da una macchina informatica. Come è noto dalla tecnica, uno spazio di indirizzamento virtuale è assegnato a ciascun processo eseguito dalla macchina. Lo spazio di indirizzamento virtuale permette di liberarsi dalle limitazioni di dimensione di memoria che possono presentarsi in uno spazio di indirizzamento fisico. I processi (process, in inglese) e i compiti (thread, in inglese) all'interno di un processo accedono al loro spazio di indirizzamento virtuale mediante indirizzi effettivi che generano numeri di pagine logiche, a ciascuna delle quali la macchina fa corrispondere un numero di pagina fisica (frame, in inglese), accessibile in memoria fisica, a seconda dei bisogni reali di accesso. Il meccanismo di memoria virtuale è indipendente dal meccanismo di coerenza cache. Tuttavia, se un compito di processo si esegue su un processore situato su un modulo differente dal modulo nella memoria del quale risiede una pagina fisica a cui accede detto compito, la messa in opera del protocollo di coerenza cache fra moduli rischia di rallentare gli accessi in memoria e di nuocere alle prestazioni del sistema.
La complessità dei meccanismi di corrispondenza e dei bisogni di memoria fisica dei numerori processi eseguiti dalla macchina fa sì che sia difficile apprendere a priori la ripartizione delle pagine fisiche sui moduli per corrispondere a pagine logiche.
L'invenzione propone un procedimento di controllo di accesso in memoria su una macchina con memoria ad accesso non uniforme ripartita su più moduli, ciascun modulo comprendendo uno o più processori CPU per eseguire i compiti su uno spazio di indirizzamento virtuale o fisico mediante indirizzi effettivi EA, che generano numeri di pagine logiche LPN, alle quali è possibile far corrispondere numeri di pagine fisiche PPN in detta memoria mediante una tabella di corrispondenza LPT, una generazione di numero di pagina logica LPN provocando un'eccezione di tipo mancanza di pagina di primo livello quando detto numero di pagina logica LPN è assente dalla tabella di corrispondenza, caratterizzato a ciò che comprende una fase per attivare, in seguito a ciascuna eccezione di tipo mancanza di pagina di primo livello, una funzione di traccia che registra il valore dell'indirizzo effettivo EA, che ha generato il numero di pagina logica LPN che ha provocato detta eccezione, la data in cui detta eccezione è provocata, un identificatore del compito che utilizza detto indirizzo effettivo EA, un identificatore del processore che esegue detto compito e il numero di pagina fisica PPN corrispondente al numero di pagina logica che ha provocato detta eccezione.
L'attivazione della funzione di traccia ad ogni eccezione di tipo mancanza di pagina di primo livello permette di rilevare ogni nuovo primo accesso di un processore ad una pagina della memoria fisica, che questa pagina sia bloccata o no. L'identificazione del processore e il numero di pagina fisica permettono di sapere in quale modulo sono situate la pagina fisica e il processore. Esiste una buona affinità fra processore e memoria fisica se essi sono situati nello stesso modulo. La data permette di definire l'istante nel quale si è verificato questo nuovo primo accesso; essa permette di correlare i risultati di traccia fra di essi o con altri risultati ottenuti altrimenti. L'identificatore di compito permette di sapere a quale compito è legato l'accesso in memoria e di correlare così accessi in memoria differenti legati ad uno stesso compito, che può eseguirsi ad esempio su processori differenti nel corso del tempo. Il valore dell'indirizzo effettivo permette di precisare il tipo di indirizzamento utilizzato dal compito, il numero di pagina fisica associato ad uno stesso indirizzo effettivo può evolvere nel corso del tempo se la pagina fisica non è bloccata. Per comunicare, compiti differenti possono utilizzare uno stesso indirizzo effettivo.
Avviando il procedimento contemporaneamente all’esecuzione dei processi sulla macchina, si è così sicuri di rilevare tutte le configurazioni di accesso alla memoria fisica. Per un avvio del processo indipendente da quello dell'esecuzione dei processi sulla macchina, l'invenzione propone di invalidare tutte le entrate della tabella di corrispondenza LPT all'avvio del processo.
L'invenzione propone anche una macchina per mettere in opera il procedimento di controllo di accesso in memoria, comprendente primi mezzi per attivare una funzione che introduce un numero di pagina logica LPN con una corrispondenza su un numero di pagina fisica PPN in una tabella di corrispondenza, in seguito ad un'eccezione provocata da un'assenza di entrata valida, contenente detto numero di pagina logica LPN in detta tabella di corrispondenza, caratterizzata da ciò che comprende:
- secondi mezzi per sostituire i primi mezzi con terzi mezzi che attivano una funzione di traccia.
L'invenzione sarà meglio compresa con l'ausilio della descrizione di un esempio di realizzazione, con riferimento alle figure, in cui:
fig. 1 richiama brevemente il funzionamento di un indirizzamento virtuale segmentato;
fig. 2 presenta tabelle di corrispondenza fra numeri di pagina fisica e numeri di pagine logiche;
fig. 3 mostra differenti livelli di mancanza di pagina e le principali azioni che ne risultano abitualmente;
fig. 4 mostra modificazioni della fig. 3, secondo l'invenzione;
fig. 5 presenta un esempio di macchina informatica per mettere in opera l'invenzione;
fig. 6 presenta una tabella conforme al procedimento di controllo secondo l'invenzione;
fig. 7 presenta altre fasi del procedimento conformemente alla macchina.
La fig. 1 richiama brevemente il funzionamento di un indirizzamento virtuale segmentato, i cui termini possono essere utili alla spiegazione dell'invenzione, con riferimento alle figure che seguono.
Si chiama indirizzo effettivo EA un'entità logica 113 comprendente essenzialmente tre campi STE, SPN e SPRA. Il campo STE contiene un numero i di bit per codificare un'entrata di tabella di segmenti 106 costituita da 2<i >registri. Ad esempio, la tabella 106 contiene sedici registri se il valore di i è di quattro. Ciascun registro è destinato a contenere un numero m di bit per provvedere di riferimento un identificatore di segmento SD. Ciò permette di segmentare uno spazio di indirizzamento in 2<m >segmenti di memoria virtuale. Ad esempio, l'identificatore SD permette di distinguere sedici megasegmenti se il valore di m è ventiquattro. Il prefisso mega va preso qui nel senso informatico del termine, e cioè equivalente a milleventiquattro kilo, il kilo valendo a sua volta milleventiquattro unità. Il campo SPN contiene un numero j di bit per codificare un numero di pagina in un segmento. Un segmento può allora contenere 2<j >pagine distinte di memoria virtuale, ad esempio sessantaquattro kilopagine se il valore di j è di sedici. Il campo SPRA contiene un numero k di bit per codificare un indirizzo relativo di multipletto, nell'ambito di una pagina, il multipletto essendo la più piccola entità di dati informatici, generalmente di otto o nove bit, indirizzabile dal sistema. Una pagina può allora contenere 2 multipletti informatici, ad esempio quattro kilomultipletti se il valore di k è di dodici.
Una concatenazione di identificatore di segmento SD e di numero di pagina SPN dà un numero di pagina logica LPN 107. E' allora possibile provvedere di riferimento 2<m+j >pagine logiche distinte, ad esempio un terapagine se il valore di m+j è di quaranta. Indirizzando i multipletti di ciascuna pagina mediante il campo SPRA, è possibile ottenere cosi uno spazio di indirizzamento virtuale di quattro petamultipletti, i prefissi tera e peta essendo da prendere nel senso informatico dei termini.
Una tabella di pagine logiche LPT 110 permette di fare corrispondere un numero di pagina fisica PPN ad un dato numero di pagina logica LPN. Concatenando il numero di pagina fisica PPN ad un indirizzo relativo PRA nella pagina così provvista di riferimento, si ottiene un indirizzo fisico 112 di multipletto. L'indirizzo relativo PRA è una copia diretta del campo SPRA. Se, ad esempio, il numero di pagina fisica è codificato su venti bit, è possibile ottenere un indirizzo fisico codificato su trentadue bit per accedere ad una memoria fisica di quattro megamultipletti.
Fra i diversi meccanismi possibili di trattamento della tabella 110, si può citare quello del brevetto US4279014 di J-C. Cassonnet et al. del quale alcuni riferimenti della fig. 1 sono volontariamente ripresi nella presente descrizione con riferimento a questa figura.
L'indirizzamento virtuale permette di ottenere uno spazio di indirizzamento notevolmente maggiore dello spazio di indirizzamento fisico disponibile. Il tecnico del ramo conosce anche altri vantaggi quale quello di facilitare il concatenamento dinamico all'esecuzione di programmi.
La dimensione notevole dello spazio di indirizzamento virtuale fa sì che, a un dato istante, una pagina logica di numero LPN non sia necessariamente provvista di riferimento nella tabella LPT. E' tuttavia possibile che esista una pagina fisica di numero PPN in memoria fisica, atta a corrispondere alla pagina logica di numero LPN. La fig. 2 mostra una tabella di corrispondenza inversa PPT 55, ciascuna entrata della quale ha come riferimento un numero di pagina fisica PPN, in modo da coprire l'insieme dello spazio di indirizzamento fisico utilizzato.
Ciascuna entrata della tabella 55 dà accesso ad un numero di pagina logica LPN corrispondente al numero di pagina fisica PPN, e ad un insieme di proprietà della pagina fisica PPN, di cui ad esempio un indicatore Pin, un indicatore Lib e un indicatore ES. Uno stato Y dell'indicatore Pin significa che la pagina fisica di numero PPN è bloccata in memoria fisica, cioè non deve essere sostituita dal contenuto di un'altra pagina fisica. Uno stato N dell'indicatore Pin significa che la pagina fisica di numero PPN non e bloccata in memoria fisica, cioè che è possibile sostituirla col contenuto di un'altra pagina fisica, ad esempio se la dimensione della memoria fisica non basta per soddisfare tutte le corrispondenze fra pagine logiche e pagine fisiche. Uno stato Y dell'indicatore Lib significa che la pagina fisica di numero PPN è libera, cioè che è disponibile per corrispondere ad una eventuale pagina logica di nuovo numero LPN. Uno stato Y dell'indicatore ES significa che la pagina fisica di numero PPN è in corso di sostituzione mediante un dispositivo di entrata/uscita in comunicazione con una memoria di massa e che questa pagina fisica non è quindi disponibile.
La fig. 3a mostra come un processore CPU, quale ad esempio uno di quelli presentati ulteriormente con riferimento alla fig. 5, accede ad una pagina fisica di numero FPN corrispondente alla pagina logica di numero LPN che esso indirizza conformemente alle spiegazioni aventi riferimento alla fig. 1. Un accesso al numero di pagina logica LPN nella fase 59 provoca un'interrogazione ciclica della tabella 110, ad esempio secondo un modo simile a quello spiegato nel brevetto US-4.279.014 con riferimento alla sua figura 3c. Se il processore CPU trova nella fase 60 un'entrata valida della tabella LPT contenente il numero di pagina logica LPN, esso accede direttamente alla pagina fisica di numero PPN corrispondente, nella fase 61. Se no, il processore CPU provoca nella fase 62 un'eccezione intitolata difetto di pagina primo livello per significare che il numero di pagina logica LPN è assente dalla tabella LPT 110. L'eccezione provocata nella fase 62 ha per effetto di attivare una funzione software V_Recharge nella fase 63. La funzione V_Recharge è attivata in modo di indirizzamento fisico, in modo da modificare il contenuto della tabella LPT per farle corrispondere un numero di pagina fisica PPN al numero di pagina logica LPN. Il modo di indirizzamento fisico consiste nell'utilizzare direttamente l'indirizzo 112 senza passare per il meccanismo della fig. 1. Una fase 69 prova successivamente se il ritorno della funzione V_Recharge si effettua con successo, cioè se la pagina di numero PPN è presente in memoria fisica. Il processore CPU può allora accedere alla pagina fisica di numero PPN nella fase 61. Se no, si è nel caso di un difetto di pagina di secondo livello. Il processore CPU provoca allora l'attivazione di una funzione software chiamata p_obtenir nella fase 70. E' possibile attivare la funzione p_obtenir in modo di indirizzamento virtuale, in modo da modificare il contenuto della tabella PPT per farvi corrispondere un numero di pagina fisica PPN ad un numero di pagina logica LPN. Il modo di indirizzamento virtuale semplifica una messa in opera di algoritmi complessi che escono dal quadro della presente invenzione. La funzione p_obtenir attiva nella fase 71 una funzione chiamata p_entrer in modo di indirizzamento virtuale. La funzione p_obtenir comprende anche altre fasi, non rappresentate in quanto non direttamente utili alla comprensione dell'invenzione. Ad esempio, in seguito ad una liberazione di pagina fisica di numero PPN per assegnarne la posizione alla pagina logica di numero LPN, tutte le entrate della tabella 110 che stabilivano prima una corrispondenza con questo numero di pagina fisica PPN, sono invalidate. E' bene notare che possono essere liberate solo le pagine fisiche non bloccate. In seguito all'esecuzione della fase 71, il processore CPU può allora accedere alla pagina fisica di numero PPN nella fase 61.
La fig. 3b mostra le fasi essenziali della funzione V_Recharge per risolvere la mancanza di pagina primo livello. Nella fase 64, la funzione V_Recharge interroga la tabella PPT 55. Se la funzione V_Recharge trova (56) in fase 65 un numero di pagina fisica PPN che provvede di riferimento il numero di pagina logica LPN che mancava nella tabella LPT, la funzione V_Recharge attiva in modo di indirizzamento fisico la funzione p_enter nella fase 66. Se no, la funzione V_Recharge termina nella fase 68 rinviando un segnale di insuccesso per significare un'assenza di successo di accesso alla tabella PPT 55. Successivamente all'esecuzione della fase 66, la funzione V_Recharge termina nella fase 67 ritornando un segnale di successo per significare che una corrispondenza è stata stabilita nella tabella LPT per il numero di pagina logica LPN.
La fig. 3c spiega le azioni essenziali della funzione p_entrer che comincia nella fase 74. Nella fase 75, il numero di pagina logica LPN risultante dalle fasi che precedono la fase 74 è introdotto (57) nella tabella LPT 110 con (58) il numero di pagina fisica PPN corrispondente .
Le figg. 4a e 4b sono simili rispettivamente alle figg. 3a e 3b a parte il fatto che le fasi 71 e 66 sono sostituite rispettivamente da fasi 72 e 73, che attivano una funzione P_Entrer differente dalla funzione p_entrer, distinta nella descrizione mediante lettere maiuscole.
La fig. 4c spiega le azioni essenziali della funzione P_Entrer, che comincia nella fase 76. Nella fase 77, la funzione P_Entrer attiva una funzione Trace, spiegata nel seguito della descrizione. Nella fase 78, la funzione P_Entrer attiva la funzione originale p_entrer. Questo modo di realizzazione è quello che concilia una buona adattabilità del procedimento di traccia ad un tipo gualungue di macchina perturbando il meno possibile il funzionamento della macchina alla quale è applicato. In effetti, si potrebbe pensare di creare un processo particolare per effettuare la traccia.
Tuttavia questo processo rischierebbe di perturbare le misure con le risorse, in particolare in termini di memoria e di processori ad essa assegnati. Si potrebbe anche pernsare di utilizzare un dispositivo di hardware che spii gli accessi in memoria, quale un controllore di bus specifico. Tuttavia questo dispositivo sarebbe necessariamente legato alla costruzione di hardware della macchina per la quale sarebbe stato previsto. Qui, al contrario, ciascuna esecuzione della funzione di traccia fa parte integrante del compito di cui essa effettua un'impronta degli accessi in memoria.
La fig. 5 presenta un esempio di macchina informatica 17 comprendente più moduli 14, 15 collegati da un bus 16 in modo che lo stesso sistema operativo giri su tutti i moduli. Il modulo 14 comprende più processori 0, 1, 2, 3, il modulo 15 comprende più processori 4, 5, 6, 7, questi processori essendo chiamati nel seguito CPU. Ciascun processore CPU contiene più registri interni, di cui teniamo per il seguito della descrizione un registro di indirizzo di istruzione IAR, un registro di collegamento LR, un registro di salto CTR ed un registro di base di tempo TBR. I registri IAR, LR e CTR servono al processore CPU al quale essi appartengono per effettuare sequenze di istruzioni durante l'esecuzione di un compito Th sottoposto al processore CPU. Il registro TBR serve al processore CPU al quale esso appartiene, per datare, se occorre, un avvenimento sopraggiunto in corso di esecuzione. Ciascun modulo 14, 15 comprende un'unità di memoria fisica 8, 9 ed un organo di controllo di coerenza cache a distanza RCC 10, 11 che comunica tramite il bus 16 con l'altro o con gli altri moduli.
Un processore CPU del modulo 14 può fare, mediante un bus 12, accessi diretti locali all'unità di memoria fisica 8 ed accessi diretti distanti all'unità di memoria fisica 9, tramite gli organi di controllo 10, 11 e il bus 16. Così pure, un processore CPU di ogni altro modulo 15 può fare, mediante un bus 13, degli accessi diretti locali all'unità di memoria fisica 9 ed accessi diretti distanti all'unità di memoria fisica 8 tramite gli organi di controllo 11, 10 e il bus 16. L'insieme delle unità di memoria 8, 9 costituisce la memoria fisica della macchina gestita da un sistema operativo unico, comune all'insieme dei moduli. Gli accessi distanti essendo più lunghi degli accessi locali, la macchina è di tipo NUMA, cioè ad accesso di memoria non uniforme.
Ciascun processore possiede un identificatore, che lo distingue dagli altri processori; questo identificatore gli è attribuito in funzione del modulo sul quale è situato, ad esempio un numero da 0 a 3 per il modulo 14, un numero da 4 a 7 per il modulo 15, e così via. Il numero di una pagina fisica è distintivo del modulo sul quale essa risiede, ad esempio i numeri esadecimali da 0 a FFFF sul modulo 14 se la memoria 8 contiene 256 Megamultipletti, i numeri da 10000 a 2FFFF sul modulo 15 se la memoria 9 contiene 512 Megamultipletti, e così di seguito.
La macchina 17 comprende mezzi differenti per realizzare le fasi rappresentate nella figg. 3 e 4. Le fasi da 59 a 62 sono realizzate da mezzi di hardware quali circuiti di porte logiche e mezzi microsoftware. Questi mezzi si ritrovano in ciascun processore CPU della macchina. Le tabelle di corrispondenza 110 e 55 si ritrovano in memoria fisica 8, 9 della macchina. La tabella di corrispondenza 110 è direttamente accessibile da parte di ciascun processore CPU in modo di indirizzamento fisico. La tabella di corrispondenza 110 è residente in un solo modulo o ripartita in più moduli. La fase 63 si affida a mezzi di software, cioè mezzi costituiti da sequenze di istruzioni codificate sotto forma di testo residente in memoria fisica 8, 9 della macchina, al quale ciascun processore CPU accede in modo di indirizzamento fisico, poiché questa fase avvia un intervento diretto sulla tabella di corrispondenza 110, che non può quindi essere utilizzata in questo momento in un modo di indirizzamento virtuale. Le fasi da 64 a 68 sono quindi realizzate da mezzi di software utilizzanti il modo di indirizzamento fisico. La fase 70 si affida ad altri mezzi di software che utilizzano il modo di indirizzamento virtuale. Il modo di indirizzamento virtuale facilita una messa in opera di funzioni complesse, percorso di liste, accesso a memorie di massa da entrate uscite, e così via. Esso è reso possibile dall'assenza di intervento diretto sugli elementi del meccanismo di memoria virtuale come descritto con riferimento alla fig. 1. Le fasi 74 e 75 sono realizzate con mezzi di software utilizzanti il modo di indirizzamento fisico o utilizzanti il modo di indirizzamento virtuale in una zona di spazio di indirizzamento in cui numeri di pagina logica LPN ed i numeri di pagina fisica PPN sono identici e bloccati in tabella PPT.
I mezzi delle fasi dà 63 a 75 non sono costituiti unicamente da linee di codice residenti in memoria della macchina, ma anche da circuiti, residenti in ciascun processore, per interpretare queste linee di codice ed avviare le sequenze di azioni che risultano da questa interpretazione. Ciò è perfettamente noto nella tecnica.
La fig. 6 presenta una tabella costituita da più colonne. La prima colonna contiene una successione di date espresse in ore, minuti, secondi e nanosecondi. A ciascuna data corrisponde una traccia dettagliata nelle colonne seguenti, effettuata alla data elencata sulla stessa riga nella prima colonna. La data permette d'altra parte di fare correlazioni con dei risultati ottenuti.
La seconda colonna contiene un nome Pnom di processo. Questo nome di processo permette di riconoscere, in modo macroscopico, il processo che ha effettuato un accesso in memoria di cui risulta la traccia. Questa colonna è facoltativa.
La terza colonna contiene un identificatore Pid del processo sopra citato, questo identificatore è generalmente attribuito automaticamente dal sistema operativo, per ciascun processo creato.
La quarta colonna contiene un identificatore di compito Tid eseguito per il processo identificato in terza colonna, più particolarmente responsabile della traccia elencata.
La quinta colonna contiene un identificatore di processore CPU che eseguiva il compito a cui si fa riferimento in quarta colonna, alla data nella quale fu elaborata la traccia. La conoscenza di questo identificatore permette di determinare il modulo sul quale si trova il processore CPU. Ad esempio, un valore da zero a tre indica che il processore si trova sul modulo 14, un valore da quattro a sette indica che il processore si trova sul modulo 15. Aggiungendo un modulo supplementare con sei processori, un valore compreso fra otto e tredici indica che il processore si trova su questo modulo supplementare. Un trattamento congiunto della quinta e della quarta colonna permette di determinare come sono ripartiti i compiti sui moduli.
La sesta colonna contiene un segnale IT di cui un valore Y significa un intervento di interruzione. Nel caso contrario, il valore è N. Un valore Y indica che l'informazione riguardante il compito identificato in quarta colonna non è significativo. In effetti, le istruzioni eseguite al momento di mancanza di pagina non sono, propriamente parlando, quelle del compito ma quelle di un gestore di interruzioni.
La settima colonna contiene il valore del registro LR, codificato in esadecimale, del processore CPU a cui si fa riferimento in quinta colonna sulla stessa linea, il valore del registro LR è l'indirizzo dell'istruzione che segue una chiamata di funzione contenente l'istruzione corrente eseguita dal processore CPU, in una sequenza di codice.
L'ottava colonna contiene il valore del registro IAR, codificato in esadecimale, del processore CPU a cui si fa riferimento in quinta colonna sulla stessa riga. Il valore del registro IAR è l'indirizzo dell'istruzione corrente eseguita dal processore CPU, nella sequenza di codice. I valori dei registri LR e IAR permettono di dedurre, ad esempio, se il compito Tid è eseguito in modo nucleo, cioè se, in seguito ad una chiamata sistema, è la sequenza di codice di una funzione di nucleo che viene eseguita, e non la sequenza di codice propria del compito Tid di per sé. Questi valori consentono quindi di stabilire una relazione fra un'assegnazione di pagina al compito Tid e la sua origine in quanto entità logica, codice proprio del compito o codice proprio del nucleo. In un procedimento di ottimizzazione della macchina, i valori ottenuti in settima e ottava colonna, in comparazione con quelli ottenuti nelle altre colonne, permettono di decidere, ad esempio, di riorganizzare il codice.
La nona colonna contiene l'indirizzo effettivo EA, codificato in esadecimale, a cui accede il compito a cui si fa riferimento in quarta colonna sulla stessa riga. Se ciascun registro della tabella di segmenti 106 è destinato a contenere un tipo di segmento particolare, dati, testo, biblioteca condivisa, e così via è possibile dedurre dal campo STE l'area dello spazio di indirizzamento virtuale interessato dalla traccia. Si accede generalmente in lettura ad un segmento di testo che riguarda dal codice eseguibile. La conoscenza del tipo di segmento permette allora di prevedere strategie differenti per aumentare le prestazioni della macchina, quali una replica o una migrazione di pagine nel modulo contenente il processore CPU a cui si fa riferimento in quinta colonna sulla stessa riga. Se molte pagine calde, cioè pagine a cui si accede spesso, sono rilevate in un segmento di testo, una riproduzione delle pagine in moduli differenti evita le latenze provocate da un accesso alla memoria fisica di un modulo distante. Ciò è possibile in guanto si accede a questo segmento di testo unicamente in lettura. Se sono rilevate molte pagine calde in un segmento di dati per l'esecuzione di un compito e queste pagine sono ripartite fisicamente su più moduli, una migrazione delle pagine e del compito stesso su un modulo unico evita le latenze provocate da un accesso alla memoria fisica di un modulo distante. Questa soluzione è vantaggiosa poiché un segmento di dati è accessibile sia in lettura sia in scrittura. Se più compiti, ripartiti su moduli differenti, utilizzano una stessa biblioteca condivisa, è interessante riprodurre le pagine associate a questa biblioteca su ciascuno dei moduli in questione.
Il campo SPRA permette di dedurre più precisamente a quale indirizzo si accede nello spazio di indirizzamento virtuale. Essendo identico al valore del campo PRA nello spazio di indirizzamento fisico, esso permette di sapere se ci si trova all'inizio, alla fine o all'interno di una pagina fisica.
La decima colonna contiene il numero di pagina fisica PPN, codificato in esadecimale, corrispondente all'indirizzo effettivo a cui si fa riferimento nella nona colonna sulla stessa riga. La conoscenza di questo numero di pagina permette di dedurre il modulo nel quale la pagina fisica è residente. Ad esempio, una capacità di duecentocinquantasei megamultipletti per l'unità di memoria 8 permette di farvi riferimento a numeri di pagine fisiche PPN che vanno da 0 a FFFP ; le pagine fisiche a cui si fa così riferimento sono allora fesidenti nel modulo 14. Una capacità di cinquecentododici megamulipletti per l'unità di memoria 9 permette di farvi riferimento a numeri di pagine fisiche PPN che vanno da 10000 a 2FFFF; le pagine fisiche a cui si fa così riferimento sono allora residenti nel modulo 15. Aggiungendo un modulo supplementare collegato al bus 16, è possibile farvi riferimento a numeri PPN oltre 30000, ad un valore dipendente dalla capacità dell'unità di memoria di questo modulo, e così di seguito fino a FFFFF a seconda del numero di moduli aggiunti e della capacità della loro unità di memoria rispettiva.
L'undicesima colonna contiene l'identificatore di segmento SD, codificato in esadecimale, corrispondente all'indirizzo effettivo a cui si fa riferimento in nona colonna sulla stessa riga. Il valore di questo identificatore, concatenato al valore del campo SPN, procura un numero di pagina logica LPN. Aggiungendo il numero di pagina logica LPN all'identificatore di compito Tid ottenuto in quarta colonna, ci si assicura dell'unicità di un numero di pagina virtuale. E' così possibile riconoscere i numeri di pagine logiche utilizzati da più compiti.
La dodicesima colonna contiene il valore dell'indicatore Pin attribuito alla pagina fisica a cui si fa riferimento sulla stessa riga in decima colonna. Uno stato Y corrisponde generalmente a pagine bloccate in memoria. Se una pagina fisica inamovibile è residente in un modulo differente da quello ove si trova il processore che esegue il compito Tid, il tempo di accesso a questa pagina sarà più lungo che se il processore si trova sullo stesso modulo. Uno stato Y dell'indicatore Pin troppo frequente è quindi di pregiudizio alle prestazioni della macchina.
Così, duplicando pagine di memoria a cui si accede spesso ma unicamente in lettura, in più moduli, facendo migrare pagine verso il modulo ove si accede ad esse più spesso, o riorganizzando il codice in modo da facilitarne l'esecuzione, è possibile ottimizzare il funzionamento della macchina.
La fig. 7 presenta altre fasi del procedimento in conformità con la macchina. Il procedimento parte con una fase di preparazione costituita dalle fasi 79, 80 e 83. Una zona è riservata in memoria 8 , 9 della macchina per registrare temporaneamente i dati elencati nella tabella della fig. 6 man mano che compaiono. In modo vantaggioso, la zona di memoria della macchina è divisa in due tamponi 81, 82 per ciascun processore CPU. Questi tamponi sono riempiti e riversati alternativamente per detto processore CPU. L'attribuzione di una coppia di tamponi a ciascun processore CPU della macchina 17 evita accessi concorrenti a questi tamponi da parte di processori distinti. Così, il loro contenuto resta coerente senza utilizzare dei blocchi.
Nella fase di inizializzazione 79, uno dei tamponi, ad esempio il tampone 81, è qualificato tampone corrente e l'altro tampone, in questo caso il tampone 82, è qualificato tampone di scorta. Il tampone corrente è quello nel quale sono scritti i dati di traccia man mano che vengono registrati, il tampone di scorta è quello destinato a diventare nuovo tampone corrente quando il tampone corrente attuale è pieno.
Nella fase di sostituzione 80, le fasi 66 e 71 sono sostituite rispettivamente dalle fasi 73 e 72. Nella fattispecie, ciascuna attivazione della fase 77 provoca un'attivazione di fase 84 che incomincia la funzione di traccia.
Nella fase di disabilitazione 83, tutte le entrate della tabella 110 sono disabilitate. In questo modo, gli accessi a pagine logiche il cui numero possedeva già una corrispondenza con un numero di pagina fisico prima dell'avvio del precesso di traccia sono cionondimeno registrati. Ci si assicura quindi di conservare una traccia di tutti i tipi di accesso alla memoria fisica della macchina.
Per facilitarne la messa in opera, la fase di preparazione può essere realizzata in modo di indirizzamento virtuale.
Nella fase 85, viene provato lo stato del tampone corrente. Se il tampone corrente è pieno, viene provato nella fase 89 lo stato del tampone di scorta. Se il tampone corrente non è pieno, questo viene riempito nella fase 86 con i dati citati con riferimento alla fig. 6. Al tampone corrente si accede in modo di indirizzamento virtuale se la fase 77 risulta da un'attivazione della fase 72. Al tampone corrente si accede in modo di indirizzamento fisico se la fase 77 risulta da un'attivazione della fase 73.
Nella fase 87, viene provato lo stato del tampone corrente. Se il tampone corrente e pieno, viene provato nella fase 89 lo stato del tampone di scorta. Se il tampone corrente non è pieno, la funzione traccia termina nella fase 88 per ritornare alla fase 78.
Nella fase 89, se il tampone di scorta non è vuoto, la funzione traccia termina nella fase 88 per ritornare alla fase 78. Il tampone corrente resta pieno e altre mancanze di pagina potranno portare un risultato positivo sulla prova della fase 85. Se il tampone di scorta è vuoto, il riversamento del tampone corrente è attivato nella fase 90. Il modo di indirizzamento virtuale facilita il riversamento della zona di memoria e il trasferimento del suo contenuto verso memorie di massa quali dischi.
Nella fase 91, una permutazione nella quale il tampone di scorta, allora vuoto, diventa tampone corrente per riempimenti ulteriori, permette di qualificare il vecchio tampone come tampone di scorta, che ridiventerà a sua volta disponibile per riempimenti ulteriori una volta che questo sarà stato riversato; la funzione traccia termina nella fase 88 per ritornare alla fase 78.
Quando la funzione di traccia è preparata in modo di indirizzamento virtuale, per facilitarne la codifica sulla macchina, è bene che il codice ottenuto sia allineato all'inizio della pagina virtuale e stia nella sua totalità su una pagina virtuale. In effetti, questo codice viene successivamente eseguito in modo di indirizzamento fisico per i motivi spiegati precedentemente ed è bene che non superi la dimensione di una pagina fisica.

Claims (11)

  1. RIVENDICAZIONI 1) Procedimento di controllo di accesso in memoria su una macchina con memoria (8, 9) ad accesso non uniforme ripartita su più moduli (14, 15), ciascun modulo comprendendo uno o più processori CPU (4, 5, 6, 7) per eseguire i compiti su uno spazio di indirizzamento virtuale o fisico mediante indirizzi effetivi EA (113) che generano numeri di pagine logiche LPN alle quali è possibile far corrispondere numeri di pagine fisiche PPN, in detta memoria (B, 9), mediante una tabella di corrispondenza (110), una generazione di numero di pagina logica LPN provocando un'eccezione di tipo mancanza di pagina di primo livello quando detto numero di pagina logica LPN è assente dalla tabella di corrispondenza (110), caratterizzato da ciò che comprende una fase (72) per attivare, in seguito a ciascuna eccezione di tipo mancanza di pagina di primo livello, una funzione (Trace) che registra il valore dell'indirizzo effettivo EA che ha generato il numero di pagina logica LPN che ha provocato detta eccezione, la data in cui detta eccezione è provocata, l'identificatore (Tid) del compito che utilizza detto indirizzo effettivo EA, l'identificatore (CPU) del processore che esegue detto compito e il numero di pagina fisica PPN corrispondente al numero di pagina logica che ha provocato detta eccezione.
  2. 2) Procedimento di controllo di accesso in memoria su una macchina con una memoria (8, 9) ad accesso non uniforme, come nella rivendicazione 1), caratterizzato da ciò che, al suo avvio, tutte le entrate della tabella di corrispondenza (110) sono disabilitate.
  3. 3) Procedimento di controllo di accesso in memoria su una macchina con memoria (8, 9) ad accesso non uniforme, come nella rivendicazione 1) o 2), caratterizzato da ciò che la funzione (Trace) registra simultaneamente un indicatore (Pin) per notificare se la pagina fisica è bloccata o non bloccata.
  4. 4) Procedimento di controllo di accesso in memoria su una macchina con memoria (8, 9) ad accesso non uniforme, come in una delle rivendicazioni precedenti, caratterizzato da ciò che la fase (72) sostituisce una fase (65) inizialmente prevista per effettuare semplicemente una nuova corrispondenza nella tabella (110) in seguito a una mancanza di pagina di primo livello.
  5. 5) Procedimento di controllo di accesso in memoria su una macchina con memoria (8, 9) ad accesso non uniforme, come in una delle rivendicazioni precedenti, caratterizzato da ciò che i dati tracciati sono salvati in una zona di memoria a cui si può accedere indifferentemente in modo di indirizzamento virtuale o in modo di indirizzamento fisico.
  6. 6) Procedimento di controllo di accesso in memoria su una macchina con memoria (8, 9) ad accesso non uniforme, come in una delle rivendicazioni precedenti, caratterizzato da ciò il codice della funzione (Trace) e i dati ad esso necessari non superano la dimensione di una pagina virtuale, e da ciò che detto codice è allineato su un inizio di pagina virtuale.
  7. 7) Macchina per mettere in opera il procedimento come in una delle rivendicazioni precedenti, comprendente primi mezzi (65) per attivare una funzione che introduce un numero di pagina logica LPN, con una corrispondenza su un numero di pagina fisica PPN in una tabella di corrispondenza (110), in seguito ad un'eccezione provocata da un'assenza di entrata valida contenente detto numero di pagina logica LPN in detta tabella di corrispondenza (110), caratterizzata da ciò che comprende: - secondi mezzi per sostituire i primi mezzi (65) con terzi mezzi (70) che attivano una funzione (Trace).
  8. 8) Macchina come nella rivendicazione 7), caratterizzata da ciò che comprende quarti mezzi per disabilitare le entrate della tabella di corrispondenza (110) prima della messa in opera di detti secondi mezzi.
  9. 9) Macchina come nella rivendicazione 7) o 8), caratterizzata da ciò che comprende due tamponi per salvare temporaneamente i dati tracciati, un tampone essendo alternativamente riversato verso una memoria di massa mentre 1<1>altro tampone viene riempito con i risultati della funzione traccia.
  10. 10) Macchina come nella rivendicazione 9), caratterizzata da ciò che una coppia di tamponi (81, 82) differente è attribuita a ciascun processore per evitare gli accessi concorrenti ai tamponi in corso di riversamento e riempimento.
  11. 11) Procedimento come in una delle rivendicazioni da 1) a 16), caratterizzato da ciò che viene utilizzato per duplicare o fare migrare pagine di memoria, in modo da ottimizzare il funzionamento della macchina alla quale è applicato.
IT1999MI000250A 1998-02-12 1999-02-09 Procedimento di controllo di accesso in memoria su una macchina conmemoria ad accesso non uniforme e macchina che consente di mettere in IT1309544B1 (it)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9801701A FR2774788B1 (fr) 1998-02-12 1998-02-12 Procede de controle d'acces memoire sur une machine avec memoire a acces non uniforme et machine pour mettre en oeuvre ce procede

Publications (2)

Publication Number Publication Date
ITMI990250A1 true ITMI990250A1 (it) 2000-08-09
IT1309544B1 IT1309544B1 (it) 2002-01-23

Family

ID=9522906

Family Applications (1)

Application Number Title Priority Date Filing Date
IT1999MI000250A IT1309544B1 (it) 1998-02-12 1999-02-09 Procedimento di controllo di accesso in memoria su una macchina conmemoria ad accesso non uniforme e macchina che consente di mettere in

Country Status (5)

Country Link
US (1) US6473848B2 (it)
DE (1) DE19905541B4 (it)
FR (1) FR2774788B1 (it)
GB (1) GB2337614B (it)
IT (1) IT1309544B1 (it)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2795196B1 (fr) 1999-06-21 2001-08-10 Bull Sa Processus de liberation de pages physiques pour mecanisme d'adressage virtuel
KR100628201B1 (ko) * 2000-10-16 2006-09-26 엘지전자 주식회사 터보 디코딩 방법
US7313734B2 (en) * 2002-01-14 2007-12-25 International Business Machines Corporation Method and system for instruction tracing with enhanced interrupt avoidance
JP4028444B2 (ja) * 2003-06-27 2007-12-26 株式会社東芝 スケジューリング方法およびリアルタイム処理システム
CN102043594A (zh) * 2010-12-31 2011-05-04 中科海量存储技术(北京)有限公司 分布式环境下实现输入输出踪迹收集回放的系统和方法
DE102014116865B4 (de) * 2014-11-18 2020-08-13 Phoenix Contact Gmbh & Co. Kg Analysevorrichtung zur Analyse und Manipulation einer Kommunikationssequenz
US11275721B2 (en) * 2015-07-17 2022-03-15 Sap Se Adaptive table placement in NUMA architectures
KR20180009217A (ko) * 2016-07-18 2018-01-26 삼성전자주식회사 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
US10642751B2 (en) * 2017-07-20 2020-05-05 Vmware, Inc. Hardware-assisted guest address space scanning in a virtualized computing system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2400729A1 (fr) * 1977-08-17 1979-03-16 Cii Honeywell Bull Dispositif pour la transformation d'adresses virtuelles en adresses physiques dans un systeme de traitement de donnees
IN169636B (it) * 1987-07-01 1991-11-23 Digital Equipment Corp
JP2625385B2 (ja) 1994-06-30 1997-07-02 日本電気株式会社 マルチプロセッサシステム
US5721917A (en) * 1995-01-30 1998-02-24 Hewlett-Packard Company System and method for determining a process's actual working set and relating same to high level data structures
US5787476A (en) * 1995-05-05 1998-07-28 Silicon Graphics, Inc. System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US5897664A (en) * 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
FR2767939B1 (fr) 1997-09-04 2001-11-02 Bull Sa Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur

Also Published As

Publication number Publication date
FR2774788A1 (fr) 1999-08-13
FR2774788B1 (fr) 2000-03-24
GB9903120D0 (en) 1999-04-07
DE19905541A1 (de) 1999-08-19
GB2337614B (en) 2002-08-14
US20020062432A1 (en) 2002-05-23
DE19905541B4 (de) 2005-12-22
GB2337614A (en) 1999-11-24
US6473848B2 (en) 2002-10-29
IT1309544B1 (it) 2002-01-23

Similar Documents

Publication Publication Date Title
US5073851A (en) Apparatus and method for improved caching in a computer system
US6920521B2 (en) Method and system of managing virtualized physical memory in a data processing system
US6907494B2 (en) Method and system of managing virtualized physical memory in a memory controller and processor system
EP3121731B1 (en) Memory management method and device
CN100570563C (zh) 在具有动态逻辑分区的计算环境中管理计算机存储器
CA1165898A (en) Computer having indexed local ram
IT8922593A1 (it) Sistema multiprocessore a risorse distribuite con replicazione dinamica di dati globali
US6904490B2 (en) Method and system of managing virtualized physical memory in a multi-processor system
JP2010097558A (ja) 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
JPH11232173A (ja) ローカルメモリに組み込んでいるリモートキャッシュとcc−NUMA(キャッシュ整合型の不均一メモリアクセス)アーキテクチュアを有するデータ処理システム
JPH0315211B2 (it)
ITMI990250A1 (it) Procedimento di controllo di accesso in memoria su una macchina con memoria ad accesso non uniforme e macchine che consente di mettere in op
JPH10320283A (ja) マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置
US5375220A (en) Multiprocessor system including a cache memory with tag copy units
JP2001051900A (ja) 仮想計算機方式の情報処理装置及びプロセッサ
US5459872A (en) Software control of hardware interruptions
EP0674269B1 (en) Translation mechanism for input/output addresses
KR19980086620A (ko) 대기 행렬 및 스누프 테이블을 갖는 메모리 제어기
CN118312277A (zh) 虚拟机内存管理方法、装置、处理器和存储介质
EP0173909A2 (en) Look-aside buffer least recently used marker controller
EP0388032A2 (en) Storage control in cached multi-processor systems
JPH0793221A (ja) 仮想計算機システム及びその制御方法
US7356647B1 (en) Cache with integrated capability to write out entire cache
Bellino et al. Virtual machine or virtual operating system?
JP7369699B2 (ja) データ処理装置におけるアドレス変換