DE112013001751T5 - Hybride Adressumsetzung - Google Patents

Hybride Adressumsetzung Download PDF

Info

Publication number
DE112013001751T5
DE112013001751T5 DE112013001751.2T DE112013001751T DE112013001751T5 DE 112013001751 T5 DE112013001751 T5 DE 112013001751T5 DE 112013001751 T DE112013001751 T DE 112013001751T DE 112013001751 T5 DE112013001751 T5 DE 112013001751T5
Authority
DE
Germany
Prior art keywords
address
radix tree
search
computer
slb
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
DE112013001751.2T
Other languages
English (en)
Inventor
c/o IBM Corporation Inte Bybell Anthony Joseph
c/o IBM Corporation Gschwind Michael Karl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112013001751T5 publication Critical patent/DE112013001751T5/de
Pending legal-status Critical Current

Links

Images

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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Ausführungsformen der Erfindung betreffen eine hybride Adressumsetzung. Ein Aspekt der Erfindung beinhaltet den Empfang einer ersten Adresse, wobei die erste Adresse auf einen Speicherplatz in einem ersten Adressraum verweist. Der Computer durchsucht einen Segmentumsetzpufferspeicher (SLB) nach einem SLB-Eintrag, der der ersten Adresse entspricht; der SLB-Eintrag weist ein Typfeld und ein Adressfeld auf und stellt fest, ob ein Wert des Typfelds in dem SLB-Eintrag eine Suche in einer Hashed Page Table (HPT) oder eine Suche in einem Radixbaum anzeigt. Auf der Grundlage der Feststellung, dass der Wert des Typfelds die HPT-Suche anzeigt, wird eine HPT durchsucht, um eine zweite Adresse zu ermitteln, wobei die zweite Adresse eine Umsetzung der ersten Adresse in einen zweiten Adressraum aufweist; und auf der Grundlage der Feststellung, dass der Wert des Typfelds die Suche in einem Radixbaum anzeigt, wird ein Radixbaum durchsucht, um die zweite Adresse zu ermitteln.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft allgemein Datenverarbeitungssysteme und insbesondere Computer-Adressierungsverfahren.
  • In den heutigen Computersystemen wird der Systemspeicher vom Betriebssystem verwaltet und nach Bedarf verschiedenen Software-Anwendungen zugeordnet. Die verschiedenen Software-Anwendungen können in einer oder in mehreren Partitionen ausgeführt werden, und die eine oder die mehreren Partitionen können verschiedene Betriebssysteme (operating systems (OSs) ausführen. Virtuelle Speicherverfahren können in solch einem Computersystem verwendet werden, um den physischen Speicher des Datenverarbeitungssystems unter vielen Prozessen und Anwendungen aufzuteilen. Die Software-Anwendungen haben es daher mit effektiven Adressen in einem virtuellen Speicherbereich zu tun, die es den Anwendungen ermöglichen, bei Bedarf zu lesen, zu schreiben und auszuführen, ohne sich mit dem tatsächlichen physischen Speicherplätzen befassen zu müssen, an denen die Operationen stattfinden. Die Anwendungen stützen sich auf das Betriebssystem, auf dem jede Anwendung aufsetzt, um die Zuordnung der effektiven Adresse, die von der Anwendung verwendet wird, zu einer physischen Adresse im Computerspeicher durchzuführen. Die Adressumsetzung ist der Mechanismus, mittels dem effektive Adressen, die auf virtuellen Speicher verweisen, in reale Speicheradressen umgesetzt werden. Die Adressumsetzung ist ein komplexer Vorgang, der, wenn er nicht gut durchgeführt wird, auf dem kritischen Pfad enden kann, der den Taktzyklus des Prozessors bestimmt.
  • Wenn die CPU eine effektive Adresse anfordert, prüft das System zuerst einen Cachespeicher für die Umsetzung von effektiven in reale Adressen (effective-to-real-address translation (ERAT)), um eine reale Adresse zu ermitteln, die der effektiven Adresse entspricht. Wenn sich die effektive Adresse nicht im ERAT-Cachespeicher befindet, können verschiedene andere Cachespeicher einschließlich eines Segmentumsetzpufferspeichers (segment lookaside buffer (SLB)) und eines Adressumsetzungspufferspeichers (translation lookaside buffer (TLB)) geprüft werden, um die reale Adresse zu ermitteln, die der effektiven Adresse entspricht. Der ERAT-Cachespeicher, der SLB und der TLB speichern Daten, die Umsetzungen für kürzlich verwendete effektive Adressen betreffen, und sie werden durchsucht, um für den Adressumsetzungsprozess notwendige Informationen bereitzustellen. Wenn sich die effektive Adresse jedoch in keinem dieser Cachespeicher befindet, muss eine zusätzliche Suche in einer Seitentabelle durchgeführt werden, um die korrekte Umsetzung der effektiven Adresse zu ermitteln.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Zu Ausführungsformen gehören ein Computerprogrammprodukt, ein System und ein Verfahren für eine hybride Adressumsetzung. Ein Aspekt der Erfindung beinhaltet den Empfang einer ersten Adresse, wobei die erste Adresse auf einen Speicherplatz in einem ersten Adressraum verweist. Der Computer durchsucht einen Segmentumsetzpufferspeicher (SLB) nach einem SLB-Eintrag, der der ersten Adresse entspricht; der SLB-Eintrag weist ein Typfeld und ein Adressfeld auf und stellt fest, ob ein Wert des Typfelds in dem SLB-Eintrag eine Suche in einer mit einem Hashverfahren kombinierten Seitentabelle (Hashed Page Table (HPT)) oder eine Suche in einem Radixbaum anzeigt. Auf der Grundlage der Feststellung, dass der Wert des Typfelds die HPT-Suche anzeigt, wird eine HPT durchsucht, um eine zweite Adresse zu ermitteln, wobei die zweite Adresse eine Umsetzung der ersten Adresse in einen zweiten Adressraum aufweist; und auf der Grundlage der Feststellung, dass der Wert des Typfelds die Suche in einem Radixbaum anzeigt, wird ein Radixbaum durchsucht, um die zweite Adresse zu ermitteln.
  • Zusätzliche Merkmale und Vorteile werden durch die Methoden der vorliegenden Erfindung realisiert. Weitere Ausführungsformen und Aspekte der Erfindung werden hier ausführlich beschrieben und als ein Teil der beanspruchten Erfindung betrachtet. Um die Erfindung mit den Vorteilen und den Merkmalen besser verstehen zu können, sei auf die Beschreibung und die Zeichnungen verwiesen.
  • KURZE BESCHREIBUNG DER DIVERSEN ANSICHTEN DER ZEICHNUNGEN
  • Der als Erfindung betrachtete Gegenstand ist in den Ansprüchen am Ende der Beschreibung im Einzelnen dargelegt und gesondert beansprucht. Die vorstehenden und andere Merkmale und Vorteile der Erfindung gehen aus der folgenden ausführlichen Beschreibung, in Verbindung mit den beiliegenden Zeichnungen betrachtet, hervor, bei denen:
  • die 1A bis 1B ein System für eine hybride Adressumsetzung gemäß einer Ausführungsform zeigen;
  • 2 einen Prozessablauf eines Verfahrens für eine hybride Adressumsetzung gemäß einer Ausführungsform zeigt;
  • die 3 bis 5 einen Prozessablauf eines Verfahrens zum Durchsuchen eines Radixbaums gemäß einer Ausführungsform zeigen;
  • 6 einen Prozessablauf eines Verfahrens zum Durchsuchen einer Hashed Page Table gemäß einer Ausführungsform zeigt; und
  • 7 ein Computerprogrammprodukt gemäß einer Ausführungsform darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen von Systemen und Verfahren für eine hybride Adressumsetzung werden bereitgestellt, wobei beispielhafte Ausführungsformen nachstehend ausführlich erörtert werden. Eine hybride Adressumsetzung ermöglicht es, verschiedene Arten von Seitentabellen, insbesondere eine Hashed Page Table (HPT) und einen Radixbaum, in einem einzigen Datenverarbeitungssystem zu verwenden, um eine Umsetzung einer ersten Adresse in eine zweite Adresse zu erreichen. Die Art der Seitentabelle, die für eine bestimmte Adressumsetzung verwendet wird, beruht auf der Art der Anforderung und/oder dem Betriebssystem (OS), auf dem die Anwendung aufsetzt, welche die Adresse, die umgesetzt werden soll, ausgegeben hat. HPT wird für wenige zufällige Zugriffe über verhältnismäßig große Datensätze bevorzugt, während ein Radixbaum für Zugriffe mit einem hohen Grad an räumlicher Lokalität bevorzugt wird. Daher können beispielsweise datenseitige Zugriffe in einer Anwendung mit großem Speicherbedarf wie zum Beispiel der Datenbank DB2 an eine HPT gerichtet werden, während anweisungsseitige Zugriffe jedoch einen Radixbaum verwenden können. Dank des hybriden Adressumsetzungsschemas kann die Leistungsfähigkeit von verschiedenen Software-Anwendungen, die auf einem einzigen Datenverarbeitungssystem ausgeführt werden, gesteigert werden, indem die jeweilige Art der Adressumsetzung verwendet wird, die für die einzelne Art der Software-Anwendung oder die einzelne Art des Speicherzugriffs geeignet ist. Überdies kann eine Adressumsetzung auch über mehrere nicht zusammenhängende Speicherbereiche durchgeführt werden, und bei der Suche in einem Radixbaum können gegebenenfalls mehrere Wurzeln des Radixbaums verwendet werden, was den für die Durchführung einer Umsetzung mittels Radixbaum erforderlichen Zeitaufwand verringert.
  • Um den Typ der Suche in der Seitentabelle zu ermitteln, der für eine bestimmte Adressumsetzung verwendet werden soll, enthalten die SLB-Einträge für jede Adresse ein jeweiliges Typfeld, das angibt, ob eine HPT-Suche oder eine Suche in einem Radixbaum für die jeweilige Adresse verwendet werden soll. Das Typfeld weist ein einziges Bit auf und kann in einen beliebigen geeigneten Speicherplatz in einem SLB-Eintrag aufgenommen werden. Für die Angabe einer Radixbaum- oder einer HPT-Suche können beliebige geeignete Typwerte verwendet werden. In der nachstehenden Erläuterung gibt ein Typwert von 0 eine HPT-Suche und ein Typwert von 1 eine Suche in einem Radixbaum an; dies dient jedoch lediglich der Veranschaulichung.
  • Die SLB-Einträge können auch Radixbaum-Zeiger enthalten, die verwendet werden, um die Wurzel einer Suche in einem Radixbaum festzulegen. Der Kennung des virtuellen Bereichs (VSID) des SLB kann ein neuer Zweck in Form von dem Zeiger auf die Wurzel einer Suche in einem Radixbaum zugewiesen werden. Ein Radixbaum-Zeiger kann eine Adressraumkennung (Adressraum-ID) aufweisen, die einen Block mit Einträgen in dem Radixbaum angibt, die nach der Adresse durchsucht werden sollen. Die Größe des Blocks mit Einträgen bestimmt die Anzahl der Ebenen des Radixbaums, die durchsucht werden sollen; ein Block mit Einträgen, der größer dimensioniert ist, befindet sich weiter oben in dem Radixbaum. Gültige Blatteinträge in dem Radixbaum geben eine Seitengröße an, die der Ebene in dem Baum entspricht. Die Adressraum-ID, die zu einer Adresse gehört, kann in dem SLB-Eintrag mit Hilfe eines beliebigen Mechanismus gespeichert werden, der eine effektive Adresse über ihre natürliche Größe hinaus erweitert. In Abhängigkeit von den Software-Voraussetzungen kann es sich bei einer solchen Adresserweiterung um so wenig wie null Bit handeln. Die Adressraum-ID kann eine Prozesskennung (PID) aufweisen, bei der es sich um eine externe PID handeln kann, die in manchen Ausführungsformen zu der Adresse gehört. Da eine effektive Adresse eines Radixbaums als 48-Bit-Adresse festgelegt ist, können effektive Adressen, deren erste 16 Bit auf einen anderen Wert als null gesetzt sind, als eine implizite Kennung eines Adressraums betrachtet werden. Die Verwendung der Adressraum-ID in dem SLB-Eintrag, um eine Wurzel der Suche in einem Radixbaum anzugeben, ermöglicht Suchläufe über mehrere nicht zusammenhängende Speicherbereiche hinweg, ohne einen Radixbaum bereitzustellen, der den gesamten Adressraum abdeckt. Baumdurchläufe können kürzer sein (zum Beispiel weniger als 4 Schritte) als ein vollständig spezifizierter Radixbaum, der Zeiger auf die Wurzel der Seitentabelle verwendet, wenn mehrere höherwertige Bits der effektiven Adresse übereinstimmen. Beispielsweise kann Software mehr Bits explizit für häufig angetroffene Umsetzungen angeben, oder Hardware kann eine gewisse Anzahl von SLB-Einträgen als einen Page-Walk-Cache verwalten, der für die Auswahl des SLB, der die größte Anzahl von übereinstimmenden höherwertigen Bits enthält, einen Greedy-Algorithmus verwendet. Um die Anzahl der durchlaufenen Ebenen zu verringern, wird die kleinste Segmentgröße, die dem SLB-Eintrag entspricht, verwendet, um einen Durchlauf des Radixbaums einzuleiten. Die Adressraum-ID kann auch unnötige Löschvorgänge des Inhalts des TLB verhindern, indem verschiedenen Adressraum-IDs beispielsweise unterschiedliche Kontexte zugewiesen werden.
  • Eine hybride Adressumsetzung, wie sie nachstehend mit Bezug auf die 1A bis 1B und 2 bis 6 beschrieben ist, kann für eine beliebige Art einer Adressumsetzung in einem Datenverarbeitungssystem verwendet werden, zum Beispiel Eingabe/Ausgabe, Partitionsebene oder Partitionsebene auf physische Ebene. Während die 1A bis 1B und 2 bis 6 nachstehend mit Bezug auf die Umsetzung einer effektiven Adresse in eine reale Adresse erörtert werden, die einen physischen Speicherplatz in einem Computerspeicher angibt, können die in den 2 bis 6 beschriebenen Verfahren in verschiedenen Ausführungsformen für eine beliebige Adressumsetzungsebene verwendet werden, um eine beliebige Art einer ersten Adresse in einem ersten Adressraum in eine beliebige Art einer zweiten Adresse in einem zweiten Adressraum umzusetzen.
  • 1A zeigt ein beispielhaftes Datenverarbeitungssystem 100A einschließlich einer hybriden Adressumsetzung und 1B zeigt eine Ausführungsform eines Systems 1008 für eine hybride Adressumsetzung einschließlich eines SLB-Eintrags, einer HPT und eines Radixbaums, die in einem Datenverarbeitungssystem wie zum Beispiel dem Datenverarbeitungssystem 100A realisiert werden können. Das in 1A gezeigte Datenverarbeitungssystem 100A enthält einen Prozessor 101 und einen Hauptspeicher 109. Eine Adressumsetzungslogik 103, ein ERAT Cachespeicher 104, ein SLB 105 und ein TLB 106 sind in dem Prozessor 101 gespeichert. Eine Vielzahl von Software-Anwendungen 102A bis 102N, eine HPT 107 und ein Radixbaum 108 sind in dem Hauptspeicher 109 gespeichert. Jede der Software-Anwendungen 102A bis 102N greift über die Adressumsetzungslogik 103 auf bestimmte Speicherplätze in dem Hauptspeicher 109 zu. Effektive Adressen werden vom den Software-Anwendungen 102A bis 102N ausgegeben und die Adressumsetzungslogik 103 wandelt die effektive Adresse in eine reale Adresse um, die für den Zugriff auf Speicherplätze in dem Hauptspeicher 109 verwendet werden kann. Die Adressumsetzungslogik 103 durchsucht zusätzlich zu der HPT 107 und dem Radixbaum 108 verschiedene Cachespeicher einschließlich des ERAT-Cachespeichers 104, des SLB 105 und des TLB 106, um Adressumsetzungen durchzuführen. Der ERAT-Cachespeicher 104 kann in manchen Ausführungsformen einen inhaltadressierbaren Speicher (content adressable memory (CAM)) aufweisen. Der SLB 105 enthält eine Vielzahl von SLB-Einträgen, von jeden jeder einer effektiven Adresse entspricht. Der TLB 106 speichert eine Vielzahl von Umsetzungen von realen Adressen, die virtuellen Adressen entsprechen.
  • Wenden wir uns nun 1B zu, in der ein beispielhafter SLB-Eintrag 110 gezeigt ist, der ein Adressfeld 111A und ein Typfeld 111b enthält. Der SLB-Eintrag 110 kann im SLB 105 von 1A gespeichert werden. Das Typfeld 111B gibt an, ob nach der effektiven Adresse, die im Adressfeld 111A in dem SLB-Eintrag 110 gespeichert ist, in der HPT 107 (z. B. Typ = 0) oder im Radixbaum 108 (z. B. Typ = 1) gesucht werden soll, und es kann auf dem Typ der Anwendung oder auf dem Typ des Speicherzugriffs basieren, die beziehungsweise der die effektive Adresse ausgegeben hat. Bei einem SLB-Eintrag, bei dem das Typfeld 111B den Wert ”0” hat, was eine Suche in der HPT 107 anzeigt, enthält das Adressfeld 111A eine virtuelle Adresse, die der passenden effektiven Adresse entspricht; nach der virtuellen Adresse wird in dem TLB 106 und in der HPT 107 gesucht. Bei einem SLB-Eintrag, bei dem das Typfeld 111B den Wert ”1” hat, was eine Suche im Radixbaum 108 anzeigt, enthält das Adressfeld 111A eine effektive Adresse und Informationen über die ID des Adressraums, nach denen im TLB 106 und im Radixbaum 108 gesucht wird. In verschiedenen Ausführungsformen kann die Adressraum-ID im Adressfeld 111A eine PID aufweisen und sie kann eine externe PID sein. Der Radixbaum 108 enthält verschiedene Ebenen, von denen jede unterschiedlich große Speichersegmente in dem Datenverarbeitungssystem angibt. Das 256-Terabyte-(TB-)Segment 112 der höchsten Ebene hat verschiedene 512-Gigabyte-(GB-)Teilsegmente 113A bis 113N; das 512 GB-Teilsegment 113A hat verschiedene 1 GB-Teilsegmente 114A bis 114N; und das 1 GB-Teilsegment 114A verfügt über das 2-Megabyte-(MB-)Teilsegment 115. Die effektive Adresse und die Informationen über die Adressraum-ID im Adressfeld 111A für einen SLB-Eintrag vom Typ 1 werden verwendet, um eine Ebene zu ermitteln, auf der mit dem Durchsuchen des Radixbaums 108 begonnen werden soll. Die Segmente 112, 113A bis 113N, 114A bis 114N und 115A sind lediglich zum Zweck der Veranschaulichung gezeigt; ein Radixbaum wie zum Beispiel der Radixbaum 108 kann eine beliebige geeignete Anzahl und Größe sowie Struktur der Segmente und der Teilsegmente aufweisen.
  • 2 zeigt einen Prozessablauf eines Verfahrens 200 für eine hybride Adressumsetzung gemäß einer Ausführungsform. 2 wird mit Bezug auf die 1A bis 1B erörtert und kann in der Adressumsetzungslogik 103 realisiert sein. Im Block 210 wird zunächst der ERAT-Cachespeicher 104 nach einer umzusetzenden effektiven Adresse, die von einer der Anwendungen 102A bis 102N ausgegeben wurde, durchsucht. Im Block 202 wird dann festgestellt, ob die effektive Adresse im ERAT-Cachespeicher 104 gefunden wurde. Wenn sich die effektive Adresse im ERAT-Cachespeicher 104 befindet, wird die Umsetzung aus dem ERAT-Cachespeicher 104 im Block 203 für den Zugriff auf den Hauptspeicher 109 verwendet, und der Ablauf des Verfahrens 200 endet. Wenn sich die effektive Adresse jedoch nicht im ERAT-Cachespeicher 104 befindet, wird der SLB 105 im Block 204 nach der Adresse durchsucht, und im Block 205 wird festgestellt, ob in dem SLB 105 ein SLB-Eintrag für die effektive Adresse vorhanden ist. Wenn ein SLB-Eintrag 110 für die effektive Adresse in dem SLB 105 gefunden wird, wird anschließend festgestellt, ob das Typfeld 111B, das zu dieser effektiven Adresse gehört, eine Suche im Radixbaum oder eine HPT-Suche angibt. Wenn das Typfeld 111B eine Suche im Radixbaum angibt, schaltet der Ablauf vom Block 205 zum Block 206 und der TLB 106 und der Radixbaum 108 werden nach der effektiven Adresse und der Adressraum-ID, die zu der effektiven Adresse gehört, welche vom Adressfeld 111A angegeben wird, durchsucht; dies wird mit Bezug auf die 3 bis 5 ausführlicher erläutert. Wenn das Typfeld 111B für die effektive Adresse eine HPT-Suche angibt, schaltet der Ablauf vom Block 205 zum Block 207 und der TLB 106 und die HPT 107 werden nach der virtuellen Adresse, die zu der effektiven Adresse gehört, die vom Adressfeld 111A angegeben wird, durchsucht; dies wird mit Bezug auf 6 näher erläutert. Wenn im Block 205 festgestellt wird, dass im SLB 105 kein SLB-Eintrag für die effektive Adresse vorhanden ist, wird im Block 208 ein Fehler aufgrund eines Nicht-Treffers im SLB ausgegeben und der Ablauf des Verfahrens 200 endet.
  • 3 zeigt einen Prozessablauf eines Verfahrens 300 für eine Suche im Radixbaum gemäß einer Ausführungsform. Das Verfahren 300 wird von der Adressumsetzungslogik 103 während des Blocks 206 des Verfahrens 200 von 2 durchgeführt, wenn das Typfeld im Typfeld 111B in dem SLB-Eintrag 110, der zu der effektiven Adresse gehört, eine Suche im Radixbaum angibt. Im Block 301 wird dem Adressfeld 111A in dem SLB-Eintrag 110 zunächst die Adressraum-ID für die effektive Adresse entnommen. Dann wird der TLB 106 im Block 302 nach der effektiven Adresse und der Adressraum-ID, die zu der effektiven Adresse gehört, durchsucht. Daraufhin wird im Block 303 festgestellt, ob sich die effektive Adresse und die Adressraum-ID im TLB 106 befinden. Wenn sich die effektive Adresse und die Adressraum-IB im TLB 106 befinden, wird die für die effektive Adresse im TLB 106 angegebene Umsetzung der realen Adresse in den ERAT-Cachespeicher 104 eingefügt und im Block 304 für den Zugriff auf den Hauptspeicher 109 verwendet. Wenn im Block 303 jedoch festgestellt wird, dass sich die effektive Adresse und die Adressraum-ID nicht im TLB befinden, schaltet der Ablauf zum Block 305, in dem der Radixbaum 108 nach der effektiven Adresse durchsucht wird, und die Adressraum-ID wird verwendet, um eine Wurzel der Suche im Radixbaum festzulegen.
  • Das Durchsuchen des Radixbaums 108, das im Block 306 des Verfahrens 300 stattfindet, wird mit Bezug auf 4 ausführlicher erörtert, das von der Adressumsetzungslogik 103 durchgeführt wird und einen Prozessablauf eines Verfahrens 400 für eine Suche im Radixbaum nach einer effektiven Adresse unter Verwendung einer Adressraum-ID als eine Wurzel der Suche gemäß einer Ausführungsform zeigt. Zunächst wird im Block 401 eine Größe des Blocks mit Einträgen, die zu der Adressraum-ID gehören, ermittelt. Die Größe des Blocks mit Einträgen, die auch als Segmentgröße bezeichnet wird, welche von der Adressraum-ID angegeben wird, gibt die Ebene an, auf der mit der Suche im Radixbaum 108 begonnen werden soll. Eine größere Segmentgröße gibt eine höhere Ebene und eine Suche im Radixbaum, die eine größere Anzahl von Schritten aufweist, an, während eine kleinere Segmentgröße eine niedrigere Ebene und eine Suche im Radixbaum, die eine kleinere Anzahl von Schritten aufweist, angibt. Wie in 4 gezeigt ist, gibt eine Segmentgröße von 256 TB eine 4 Ebenen umfassende Radixbaum-Suche im Block 402A an; eine Segmentgröße von 512 GB gibt eine 3 Ebenen umfassende Radixbaum-Suche im Block 402B an; eine Segmentgröße von 1 GB gibt eine 2 Ebenen umfassende Radixbaum-Suche im Block 402B an; und eine Segmentgröße von 2 MB gibt eine 1 Ebene umfassende Radixbaum-Suche im Block 402D an; die Segmentgrößen und die Anzahl der Ebenen, die in 4 dargestellt sind, dienen jedoch lediglich dem Zweck der Veranschaulichung und können auf der Grundlage der Struktur des Radixbaums, der durchsucht wird, voneinander abweichen.
  • Der Radixbaum 108 wird nach der effektiven Adresse durchsucht, wobei auf der Ebene begonnen wird, die von der ermittelten Segmentgröße in den Blöcken 402A bis 402D angegeben wird; dies wird mit Bezug auf 5 ausführlicher erörtert. 5 zeigt einen Prozessablauf eines Verfahrens 500 für eine Suche im Radixbaum gemäß einer Ausführungsform. Die Suche im Radixbaum, die von dem Verfahren 500 veranschaulicht wird, kann an einem beliebigen der Blöcke 501, 504, 507 oder 510 in Abhängigkeit von der Segmentgröße, die im Block 401 von 4 ermittelt wurde, beginnen. Eine 4 Ebenen umfassende Suche im Radixbaum, wie vom Block 402A von 4 angegeben, beginnt am Block 501; dies entspricht einem Start der Suche auf der Ebene des Segments 112 des Radixbaums 108 von 1B. Eine 3 Ebenen umfassende Suche im Radixbaum, wie vom Block 402B von 4 angegeben, beginnt am Block 504; dies entspricht einem Start der Suche auf der Ebene der Segmente 113A bis 113N des Radixbaums 108 von 1B. Eine 2 Ebenen umfassende Suche im Radixbaum, wie vom Block 402C von 4 angegeben, beginnt am Block 507; dies entspricht einem Start der Suche auf der Ebene der Segmente 114A bis 114N des Radixbaums 108 von 1B. Eine 1 Ebene umfassende Suche im Radixbaum, wie vom Block 402D von 4 angegeben, beginnt am Block 510; dies entspricht einem Start der Suche auf der Ebene des Segments 115 des Radixbaums 108 von 1B. Wenn man die Suche auf der untersten Ebene in dem Radixbaum beginnt, die von der Segmentgröße angegeben wird, welche zur Adressraum-ID der effektiven Adresse gehört, kann gegebenenfalls die Anzahl der Schritte verringert werden, die notwendig sind, um den Radixbaum zu durchsuchen, was die Umsetzung der effektiven Adresse beschleunigt.
  • Der Ablauf des Verfahrens 500 von 5 wird nun erörtert. Zunächst wird im Block 501 die vierte (höchste) Ebene des Radixbaums 108 nach der effektiven Adresse durchsucht, um ein kleineres entsprechendes Segment in der dritten Ebene des Radixbaums 108 zu finden. Im Block 502 wird dann festgestellt, ob ein SLB-Eintrag für das kleinere entsprechende Segment in der dritten Ebene des Radixbaums 108 für die effektive Adresse in dem SLB 105 vorhanden ist. Wenn der SLB-Eintrag für das kleinere entsprechende Segment in der dritten Ebene in dem SLB vorhanden ist, schaltet der Ablauf zum Block 504; andernfalls wird im Block 503 ein SLB-Eintrag für das kleinere entsprechende Segment in der dritten Ebene zu dem SLB hinzugefügt und der Ablauf schaltet zum Block 504. Im Block 504 wird das kleinere entsprechende Segment in der dritten Ebene, das im Block 501 ermittelt wurde, nach der effektiven Adresse durchsucht, um ein kleineres entsprechendes Segment in der zweiten Ebene zu finden. Im Block 505 wird dann festgestellt, ob ein SLB-Eintrag für das kleinere entsprechende Segment in der zweiten Ebene in dem SLB 105 vorhanden ist. Wenn der SLB-Eintrag für das kleinere entsprechende Segment in der zweiten Ebene in dem SLB 105 vorhanden ist, schaltet der Ablauf zum Block 507; andernfalls wird im Block 506 ein SLB-Eintrag für das kleinere entsprechende Segment zu dem SLB 105 hinzugefügt und der Ablauf schaltet zum Block 507. Im Block 507 wird das kleinere entsprechende Segment in der zweiten Ebene des Radixbaums 108, das im Block 504 ermittelt wurde, nach der effektiven Adresse durchsucht, um ein kleineres entsprechendes Segment in der ersten Ebene des Radixbaums zu finden. Im Block 508 wird dann festgestellt, ob ein SLB-Eintrag für das kleinere entsprechende Segment in der ersten Ebene in dem SLB 105 vorhanden ist. Wenn der SLB-Eintrag für das kleinere entsprechende Segment in der ersten Ebene in dem SLB 105 vorhanden ist, schaltet der Ablauf zum Block 510; andernfalls wird im Block 509 ein SLB-Eintrag für das kleinere entsprechende Segment in der ersten Ebene zu dem SLB 105 hinzugefügt und der Ablauf schaltet zum Block 510. Im Block 510 wird das kleinere entsprechende Segment in der ersten Ebene, das im Block 507 ermittelt wurde, nach der effektiven Adresse durchsucht, wobei das Durchsuchen des Radixbaums 108, das von dem Verfahren 500 von 5 beschrieben wird, an diesem Punkt abgeschlossen ist, und der Ablauf kehrt zum Block 403 des Verfahrens 400 von 4 zurück.
  • Nochmals Bezug nehmend auf 4 schaltet der Ablauf zum Block 403, in dem festgestellt wird, ob es während der Suche, die im Verlauf des Verfahrens 500 von 5 durchgeführt wurde, einen Treffer im Radixbaum 108 gab. Wenn im Block 403 festgestellt wird, dass es im Radixbaum 108 einen Treffer hinsichtlich der effektiven Adresse gab, schaltet der Ablauf zum Block 404, und die für die effektive Adresse von dem Radixbaum 108 angegebene Umsetzung wird in den TLB 106 und in den ERAT-Cachespeicher 104 eingefügt und im Block 404 für den Zugriff auf den Hauptspeicher 109 verwendet, und der Ablauf des Verfahrens 400 endet. Wenn im Block 403 festgestellt wird, dass es im Radixbaum keinen Treffer gibt, wird im Block 405 ein Fehler aufgrund eines Nicht-Treffers im Radixbaum angegeben, und der Ablauf des Verfahrens 400 endet. Die Suche im Radixbaum, die auf die effektiven Adressen angewendet wird, welche ein Typfeld 111B aufweisen, das eine Radixbaum-Suche angibt, ist damit abgeschlossen,
  • 6 zeigt einen Prozessablauf eines Verfahrens 600 für ein Durchsuchen einer HPT gemäß einer Ausführungsform. Das Verfahren 600 wird von der Adressumsetzungslogik 103 während des Blocks 207 des Verfahrens 200 von 2 durchgeführt, wenn das Typfeld 111B in dem SLB-Eintrag 110 eine HPT-Suche angibt. Im Block 601 wird dem Adressfeld 111A des SLB-Eintrags 110, der zu der effektiven Adresse im SLB 105 gehört, zunächst eine virtuelle Adresse entnommen, die der effektiven Adresse entspricht. Im Block 602 wird dann der TLB 106 nach der virtuellen Adresse durchsucht. Daraufhin wird im Block 603 festgestellt, ob die virtuelle Adresse in dem TLB 106 gefunden wurde. Wenn die virtuelle Adresse in dem TLB 106 gefunden wurde, wird die von dem TLB 106 für die virtuelle Adresse angegebene Umsetzung in den ERAT-Cachespeicher 104 eingefügt und im Block 604 für den Zugriff auf den Hauptspeicher verwendet, und der Ablauf des Verfahrens 600 endet. Wenn sich die virtuelle Adresse nicht in dem TLB befindet, schaltet der Ablauf zum Block 605, in dem die HPT 107 nach der virtuellen Adresse durchsucht wird. Die HPT 107 kann mit einem beliebigen geeigneten Verfahren durchsucht werden. Daraufhin wird im Block 606 festgestellt, ob die virtuelle Adresse in der HPT 107 gefunden wurde. Wenn die virtuelle Adresse in der HPT 107 gefunden wurde, wird die von der HPT 107 für die virtuelle Adresse angegebene Umsetzung in den TLB 106 und in den ERAT-Cachespeicher 104 eingegeben und im Block 607 für den Zugriff auf den Hauptspeicher 109 verwendet, und der Ablauf des Verfahrens 600 endet. Andernfalls wird im Block 608 ein Fehler aufgrund eines Nicht-Treffers in der HPT ausgegeben und der Ablauf des Verfahrens 600 endet.
  • Wie vorstehend beschrieben wurde, können Ausführungsformen in Form von Prozessen, die von einem Computer ausgeführt werden, und Vorrichtungen realisiert werden, die dazu dienen, diese Prozesse in die Praxis umzusetzen. Eine Ausführungsform kann ein Computerprogrammprodukt 700, das in 7 gezeigt ist, auf einem von einem Computer lesbaren/nutzbaren Datenträger 702 enthalten, wobei Computerprogrammcode-Logik 704 Anweisungen enthält, die in physisch greifbaren Datenträgern als ein Herstellungsgegenstand ausgebildet sind. Zu beispielhaften Herstellungsgegenständen für den von einem Computer lesbaren/nutzbaren Datenträger 702 können Disketten, CD-ROMs, Festplattenlaufwerke, Universal Serial Bus (USB) Flash Drives oder jedes andere von einem Computer lesbare Speichermedium gehören, wobei, wenn die Computerprogrammcode-Logik 704 in einen Computer geladen und von einem Computer ausgeführt wird, der Computer zu einer Vorrichtung wird, mit der die Erfindung in die Praxis umgesetzt werden kann. Zu Ausführungsformen gehören beispielsweise Computerprogrammcode-Logik 704, ungeachtet dessen, ob sie in einem Speichermedium gespeichert ist, das in einen Computer geladen und/oder von einem Computer ausgeführt wird, oder ob sie über ein bestimmtes Übertragungsmedium wie zum Beispiel über elektrische Verdrahtung oder Verkabelung, über Lichtwellenleitertechnik oder über elektromagnetische Strahlung übertragen wird, wobei, wenn die Computerprogrammcode-Logik 704 in einen Computer geladen und von einem Computer ausgeführt wird, der Computer zu einer Vorrichtung wird, mit der die Erfindung in die Praxis umgesetzt werden kann. Wenn sie auf einem Universal-Mikroprozessor realisiert wird, konfigurieren Segmente der Computerprogrammcode-Logik 704 den Mikroprozessor so, dass bestimmte Logikschaltungen erzeugt werden.
  • Zu technischen Wirkungen und Vorteilen gehören eine verbesserte Leistungsfähigkeit bei verschiedenen Arten von Speicherzugriffen und/oder Anwendungen, die auf einem Datenverarbeitungssystem ausgeführt werden, indem, soweit erforderlich, verschiedene Adressumsetzungssuchschemata verwendet werden.
  • Die hier verwendete Terminologie dient lediglich zur Beschreibung von bestimmten Ausführungsformen und ist nicht als Einschränkung der Erfindung zu verstehen. Die Singular-Formen ”ein”, ”eine” und ”der”, ”die”, ”das” sollen in der hier verwendeten Weise auch die Plural-Formen einschließen, sofern der Kontext nicht eindeutig etwas anderes angibt. Des Weiteren versteht es sich, dass die Begriffe ”aufweist” und/oder ”aufweisend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen/weiteren Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen der Vorgenannten jedoch nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Vorgänge und Gleichwertiges von allen Mitteln oder Schritten plus Funktionselementen in den nachstehenden Ansprüchen sollen jedwede Struktur, jedwedes Material oder jedweden Vorgang zur Ausführung der Funktion in Kombination mit anderen beanspruchten Elementen, die im Einzelnen beansprucht werden, beinhalten. Die Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung und Erläuterung, erhebt jedoch keinen Anspruch auf Vollständigkeit und ist auch nicht als auf die Erfindung in der offenbarten Form beschränkt zu verstehen. Viele Ab- und Veränderungen sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erklären und um anderen Fachleuten das Verständnis der Erfindung hinsichtlich verschiedener Ausführungsformen mit verschiedenen Änderungen, wie sie für die entsprechende vorgesehene Verwendung geeignet sind, zu ermöglichen.
  • Wie der Fachmann verstehen wird, können Aspekte der vorliegenden Erfindung als ein System, ein Verfahren oder ein Computerprogrammprodukt ausgebildet sein. Folglich können Aspekte der vorliegenden Erfindung die Form einer ganz in Hardware realisierten Ausführungsform, einer ganz in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier alle allgemein als eine ”Schaltung”, ein ”Modul” oder ein ”System” bezeichnet werden können. Überdies können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren von einem Computer lesbaren Datenträgern enthalten ist, auf dem beziehungsweise denen von einem Computer lesbarer Programmcode ausgebildet ist.
  • Jede beliebige Kombination aus einem oder mehreren von einem Computer lesbaren Datenträgern kann verwendet werden. Der von einem Computer lesbare Datenträger kann ein von einem Computer lesbarer Signaldatenträger oder ein von einem Computer lesbares Speichermedium sein. Ein von einem Computer lesbares Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede beliebige geeignete Kombination des Vorstehenden sein. Zu konkreteren Beispielen (wobei die Liste keinen Anspruch auf Vollständigkeit erhebt) für das von einem Computer lesbare Speichermedium würden folgende gehören: eine elektrische Verbindung mit einem oder mehreren Kabeln, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden. In Zusammenhang mit diesem Schriftstück kann ein von einem Computer lesbares Speichermedium jedes physisch greifbare Medium sein, das ein Programm zur Verwendung durch ein Anweisungsausführungssystem, eine Anweisungsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungsvorrichtung oder -einheit enthalten oder speichern kann.
  • Ein von einem Computer lesbarer Signaldatenträger kann ein weitergegebenes Datensignal mit darin enthaltenem, von einem Computer lesbarem Programmcode, beispielsweise im Basisband oder als Teil einer Trägerwelle, enthalten. Solch ein weitergegebenes Signal kann eine beliebige einer Vielzahl von Formen einschließlich elektromagnetischer, optischer Formen oder jede beliebige geeignete Kombination dieser Formen, ohne darauf beschränkt zu sein, annehmen. Bei einem von einem Computer lesbaren Signaldatenträger kann es sich um jeden beliebigen von einem Computer lesbaren Datenträger handeln, der kein von einem Computer lesbares Speichermedium ist und der ein Programm zur Verwendung durch ein Anweisungsausführungssystem, eine Anweisungsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungsvorrichtung oder -einheit übertragen, weitergeben oder senden kann.
  • Programmcode, der sich auf einem von einem Computer lesbaren Datenträger befindet, kann mittels eines beliebigen geeigneten Mediums einschließlich eines drahtlosen Mediums, eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz (HF) usw., ohne darauf beschränkt zu sein, oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
  • Computerprogrammcode zur Durchführung von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Java, Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache ”C” oder in ähnlichen Programmiersprachen geschrieben sein. Die Ausführung des Programmcodes kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server erfolgen. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden sein oder die Verbindung kann zu einem externen Computer (zum Beispiel über das Internet mittels eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung sind vorstehend mit Bezug auf Darstellungen in Ablaufplänen und/oder schematische Darstellungen von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern mittels Anweisungen eines Computerprogramms realisiert werden können. Diese Anweisungen eines Computerprogramms können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Diese Anweisungen eines Computerprogramms können auch auf einem von einem Computer lesbaren Datenträger gespeichert werden, der einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem von einem Computer lesbaren Datenträger gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, der Anweisungen enthält, die die Funktion/den Vorgang ausführen, welche beziehungsweise welcher in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.
  • Die Anweisungen des Computerprogramms können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf andere Einheiten geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf anderen Einheiten zu bewirken, um einen von einem Computer ausgeführten Prozess so zu erzeugen, dass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Ausführung der Funktionen/Vorgänge ermöglichen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Wie vorstehend beschrieben wurde, können Ausführungsformen in Form von Prozessen, die von einem Computer ausgeführt werden, und Vorrichtungen realisiert werden, die dazu dienen, diese Prozesse in die Praxis umzusetzen. In Ausführungsformen wird die Erfindung in Computerprogrammcode realisiert, der von einem oder mehreren Netzwerkelementen ausgeführt wird. Zu Ausführungsformen gehört ein Computerprogrammprodukt auf einem von einem Computer nutzbaren Datenträger mit Computerprogrammcode-Logik, die Anweisungen enthält, welche in physisch greifbaren Datenträgern als ein Herstellungsgegenstand ausgebildet sind. Zu beispielhaften Herstellungsgegenständen für einen von einem Computer nutzbaren Datenträger können Disketten, CD-ROMs, Festplattenlaufwerke, Universal Serial Bus (USB) Flash Drives oder jedes andere von einem Computer lesbare Speichermedium gehören, wobei, wenn die Computerprogrammcode-Logik in einen Computer geladen und von einem Computer ausgeführt wird, der Computer zu einer Vorrichtung wird, mit der die Erfindung in die Praxis umgesetzt werden kann. Zu Ausführungsformen gehören beispielsweise Computerprogrammcode-Logik, ungeachtet dessen, ob sie in einem Speichermedium gespeichert ist, das in einen Computer geladen und/oder von einem Computer ausgeführt wird, oder ob sie über ein bestimmtes Übertragungsmedium wie zum Beispiel elektrische Verdrahtung oder Verkabelung, über Lichtwellenleitertechnik oder über elektromagnetische Strahlung übertragen wird, wobei, wenn die Computerprogrammcode-Logik in einen Computer geladen und von einem Computer ausgeführt wird, der Computer zu einer Vorrichtung wird, mit der die Erfindung in die Praxis umgesetzt werden kann.
  • Der Ablaufplan und die Blockschaubilder in den Figuren zeigen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den Ablaufplänen oder in den Blockschaubildern ein Modul, ein Segment oder einen Teil von Code darstellen, das beziehungsweise der einen oder mehrere ausführbare Anweisungen zur Durchführung der angegebenen logischen Funktion(en) aufweist. Es sei auch angemerkt, dass die in dem Block angegebenen Funktionen in manchen alternativen Ausführungsarten mitunter in einer anderen als in der in den Figuren angegebenen Reihenfolge auftreten können. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Man wird auch feststellen, dass jeder Block der Blockschaubilder und/oder der Darstellung in dem Ablaufplan sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Darstellung in dem Ablaufplan von Systemen, die auf Spezial-Hardware beruhen und die angegebenen Funktionen oder Vorgänge durchführen, oder von Kombinationen aus Spezial-Hardware und Computer-Anweisungen ausgeführt werden können.

Claims (20)

  1. Computerprogrammprodukt zur Realisierung einer hybriden Adressumsetzung, wobei das Computerprogrammprodukt aufweist: ein physisch greifbares Speichermedium, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung speichert, um ein Verfahren durchzuführen, welches aufweist: Empfangen einer ersten Adresse, wobei die erste Adresse auf einen Speicherplatz in einem ersten Adressraum verweist; Durchsuchen eines Segmentumsetzpufferspeichers (SLB) nach einem SLB-Eintrag, der der ersten Adresse entspricht; wobei der SLB-Eintrag ein Typfeld und ein Adressfeld aufweist; Feststellen, ob ein Wert des Typfelds in dem SLB-Eintrag eine Suche in einer Hashed Page Table (HPT) oder eine Suche in einem Radixbaum anzeigt; auf der Grundlage der Feststellung, dass der Wert des Typfelds die HPT-Suche anzeigt, Durchsuchen einer HPT, um eine zweite Adresse zu ermitteln, wobei die zweite Adresse eine Umsetzung der ersten Adresse in einen zweiten Adressraum aufweist; und auf der Grundlage der Feststellung, dass der Wert des Typfelds die Suche in einem Radixbaum anzeigt, Durchsuchen eines Radixbaums, um die zweite Adresse zu ermitteln.
  2. Computerprogrammprodukt nach Anspruch 1, wobei das Durchsuchen der HPT, um die zweite Adresse zu ermitteln, aufweist: Entnehmen einer virtuellen Adresse, die zu der ersten Adresse gehört, aus dem Adressfeld des SLB-Eintrags, der der ersten Adresse entspricht; und Durchsuchen der HPT nach der virtuellen Adresse.
  3. Computerprogrammprodukt nach Anspruch 1, wobei das Durchsuchen des Radixbaums, um die zweite Adresse zu ermitteln, die zu der ersten Adresse gehört, aufweist: Entnehmen einer Adressraumkennung (ID) und einer Segmentgröße, die zu der ersten Adresse gehören, aus dem Adressfeld des SLB-Eintrags, der der ersten Adresse entspricht; Festlegen einer Wurzel der Suche im Radixbaum auf der Grundlage der Adressraum-ID und der Segmentgröße; und Durchsuchen des Radixbaums nach der ersten Adresse, wobei an der Wurzel begonnen wird.
  4. Computerprogrammprodukt nach Anspruch 3, wobei die Adressraum-ID eine Prozess-ID aufweist, die zu der ersten Adresse gehört.
  5. Computerprogrammprodukt nach Anspruch 3, wobei die Adressraum-ID und die Segmentgröße anzeigen, dass die Wurzel eine Ebene in dem Radixbaum ist, die sich unterhalb einer obersten Ebene des Radixbaums befindet, und wobei das Durchsuchen des Radixbaums nach der ersten Adresse auf der Ebene beginnt, die sich unterhalb der obersten Ebene des Radixbaums befindet, so dass die oberste Ebene des Radixbaums nicht durchsucht wird.
  6. Computerprogrammprodukt nach Anspruch 1, wobei die erste Adresse eine effektive Adresse aufweist, die von einer Anwendung, welche auf einem Computer ausgeführt wird, als Teil eines Speicherzugriffs ausgegeben wird, wobei die zweite Adresse eine reale Adresse aufweist und wobei der zweite Adressraum einen physischen Computerspeicher des Computers aufweist.
  7. Computerprogrammprodukt nach Anspruch 1, wobei der Wert des Typfelds auf mindestens einer Art von Speicherzugriff und/oder einer Art von Anwendung beruht, die zu der ersten Adresse gehören.
  8. Computerprogrammprodukt nach Anspruch 1, wobei der erste Adressraum eine Vielzahl von nicht zusammenhängenden Speicherbereichen aufweist.
  9. Computersystem für eine hybride Adressumsetzung, wobei das System aufweist: Adressumsetzungslogik; und einen Segmentumsetzpufferspeicher (SLB), wobei das System so konfiguriert ist, dass es ein Verfahren durchführt, das aufweist: Empfangen einer ersten Adresse durch die Adressumsetzungslogik, wobei die erste Adresse auf einen Speicherplatz in einem ersten Adressraum verweist; Durchsuchen des SLB durch die Adressumsetzungslogik nach einem SLB-Eintrag, der der ersten Adresse entspricht; wobei der SLB-Eintrag ein Typfeld und ein Adressfeld aufweist; Feststellen, ob ein Wert des Typfelds in dem SLB-Eintrag eine Suche in einer Hashed Page Table (HPT) oder eine Suche in einem Radixbaum anzeigt; auf der Grundlage der Feststellung, dass der Wert des Typfelds die HPT-Suche anzeigt, Durchsuchen einer HPT, um eine zweite Adresse zu ermitteln, wobei die zweite Adresse eine Umsetzung der ersten Adresse in einen zweiten Adressraum aufweist; und auf der Grundlage der Feststellung, dass der Wert des Typfelds die Suche in einem Radixbaum anzeigt, Durchsuchen eines Radixbaums, um die zweite Adresse zu ermitteln.
  10. Computersystem nach Anspruch 9, wobei das Durchsuchen der HPT, um die zweite Adresse zu ermitteln, aufweist: Entnehmen einer virtuellen Adresse, die zu der ersten Adresse gehört, aus dem Adressfeld des SLB-Eintrags, der der ersten Adresse entspricht; und Durchsuchen der HPT nach der virtuellen Adresse.
  11. Computersystem nach Anspruch 9, wobei das Durchsuchen des Radixbaums, um die zweite Adresse zu ermitteln, die zu der ersten Adresse gehört, aufweist: Entnehmen einer Adressraumkennung (ID) und einer Segmentgröße, die zu der ersten Adresse gehören, aus dem Adressfeld des SLB-Eintrags, der der ersten Adresse entspricht; Festlegen einer Wurzel der Suche im Radixbaum auf der Grundlage der Adressraum-ID und der Segmentgröße; und Durchsuchen des Radixbaums nach der ersten Adresse, wobei an der Wurzel begonnen wird.
  12. Computersystem nach Anspruch 11, wobei die Adressraum-ID eine Prozess-ID aufweist, die zu der ersten Adresse gehört.
  13. Computersystem nach Anspruch 11, wobei die Adressraum-ID und die Segmentgröße anzeigen, dass die Wurzel eine Ebene in dem Radixbaum ist, die sich unterhalb einer obersten Ebene des Radixbaums befindet, und wobei das Durchsuchen des Radixbaums nach der ersten Adresse auf der Ebene beginnt, die sich unterhalb der obersten Ebene des Radixbaums befindet, so dass die oberste Ebene des Radixbaums nicht durchsucht wird.
  14. Computersystem nach Anspruch 9, wobei die erste Adresse eine effektive Adresse aufweist, die von einer Anwendung, welche auf dem Computer läuft, als Teil eines Speicherzugriffs ausgegeben wird, wobei die zweite Adresse eine reale Adresse aufweist und wobei der zweite Adressraum einen physischen Computerspeicher des Computers aufweist.
  15. Computersystem nach Anspruch 9, wobei der Wert des Typfelds auf mindestens einer Art von Speicherzugriff und/oder einer Art von Anwendung, die zu der ersten Adresse gehören, beruht.
  16. Von einem Computer ausgeführtes Verfahren für eine hybride Adressumsetzung in einem Computer, wobei das Verfahren aufweist: Empfangen einer ersten Adresse, wobei die erste Adresse auf einen Speicherplatz in einem ersten Adressraum verweist; Durchsuchen eines Segmentumsetzpufferspeichers (SLB) durch den Computer nach einem SLB-Eintrag, der der ersten Adresse entspricht, wobei der SLB-Eintrag ein Typfeld und ein Adressfeld aufweist; Feststellen, ob ein Wert des Typfelds in dem SLB-Eintrag eine Suche in einer Hashed Page Table (HPT) oder eine Suche in einem Radixbaum anzeigt; auf der Grundlage der Feststellung, dass der Wert des Typfelds die HPT-Suche anzeigt, Durchsuchen einer HPT, um eine zweite Adresse zu ermitteln, wobei die zweite Adresse eine Umsetzung der ersten Adresse in einen zweiten Adressraum aufweist; und auf der Grundlage der Feststellung, dass der Wert des Typfelds die Suche in einem Radixbaum anzeigt, Durchsuchen eines Radixbaums, um die zweite Adresse zu ermitteln.
  17. Von einem Computer ausgeführtes Verfahren nach Anspruch 16, wobei das Durchsuchen der HPT, um die zweite Adresse zu ermitteln, aufweist: Entnehmen einer virtuellen Adresse, die zu der ersten Adresse gehört, aus dem Adressfeld des SLB-Eintrags, der der ersten Adresse entspricht; und Durchsuchen der HPT nach der virtuellen Adresse.
  18. Von einem Computer ausgeführtes Verfahren nach Anspruch 16, wobei das Durchsuchen des Radixbaums, um die zweite Adresse zu ermitteln, die zu der ersten Adresse gehört, aufweist: Entnehmen einer Adressraumkennung (ID) und einer Segmentgröße, die zu der ersten Adresse gehören, aus dem Adressfeld des SLB-Eintrags, der der ersten Adresse entspricht; Festlegen einer Wurzel der Suche im Radixbaum auf der Grundlage der Adressraum-ID und der Segmentgröße; und Durchsuchen des Radixbaums nach der ersten Adresse, wobei an der Wurzel begonnen wird.
  19. Von einem Computer ausgeführtes Verfahren nach Anspruch 18, wobei die Adressraum-ID eine Prozess-ID aufweist, die zu der ersten Adresse gehört.
  20. Von einem Computer ausgeführtes Verfahren nach Anspruch 18, wobei die Adressraum-ID und die Segmentgröße anzeigen, dass die Wurzel eine Ebene in dem Radixbaum ist, die sich unterhalb einer obersten Ebene des Radixbaums befindet, und wobei das Durchsuchen des Radixbaums nach der ersten Adresse auf der Ebene beginnt, die sich unterhalb der obersten Ebene des Radixbaums befindet, so dass die oberste Ebene des Radixbaums nicht durchsucht wird.
DE112013001751.2T 2012-03-28 2013-02-19 Hybride Adressumsetzung Pending DE112013001751T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/432,381 US9256550B2 (en) 2012-03-28 2012-03-28 Hybrid address translation
USUS-13/432,381 2012-03-28
PCT/EP2013/053287 WO2013143784A1 (en) 2012-03-28 2013-02-19 Hybrid address translation

Publications (1)

Publication Number Publication Date
DE112013001751T5 true DE112013001751T5 (de) 2014-12-31

Family

ID=47750659

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013001751.2T Pending DE112013001751T5 (de) 2012-03-28 2013-02-19 Hybride Adressumsetzung

Country Status (6)

Country Link
US (2) US9256550B2 (de)
JP (1) JP6091598B2 (de)
CN (1) CN104205068B (de)
DE (1) DE112013001751T5 (de)
GB (1) GB2514500B (de)
WO (1) WO2013143784A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256550B2 (en) 2012-03-28 2016-02-09 International Business Machines Corporation Hybrid address translation
CN103927132B (zh) * 2014-03-31 2017-08-25 华为技术有限公司 数据处理方法及装置
US9798674B2 (en) * 2014-12-12 2017-10-24 Cisco Technology, Inc. N-ary tree for mapping a virtual memory space
US10235371B1 (en) * 2016-06-28 2019-03-19 EMC IP Holding Company LLC Incremental physical locality repair for live data
US9864700B1 (en) 2016-08-17 2018-01-09 Advanced Micro Devices, Inc. Method and apparatus for power reduction in a multi-threaded mode
US10838656B2 (en) * 2016-12-20 2020-11-17 Mediatek Inc. Parallel memory access to on-chip memory containing regions of different addressing schemes by threads executed on parallel processing units
US10402355B2 (en) * 2017-02-08 2019-09-03 Texas Instruments Incorporated Apparatus and mechanism to bypass PCIe address translation by using alternative routing
KR102540964B1 (ko) 2018-02-12 2023-06-07 삼성전자주식회사 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작
US10621106B1 (en) 2018-12-05 2020-04-14 International Business Machines Corporation Methods and systems for incorporating non-tree based address translation into a hierarchical translation lookaside buffer (TLB)
US11422947B2 (en) * 2020-08-12 2022-08-23 International Business Machines Corporation Determining page size via page table cache
CN111988444B (zh) * 2020-08-19 2022-10-18 成都安可信电子股份有限公司 一种同步总线快速搜索终端地址搜索方法
US11734188B2 (en) * 2021-03-11 2023-08-22 International Business Machines Corporation Unified translation miss queue for multiple address translation modes

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US468070A (en) * 1892-02-02 Washing-machine
GB2251102B (en) * 1990-12-21 1995-03-15 Sun Microsystems Inc Translation lookaside buffer
US5390173A (en) * 1992-10-22 1995-02-14 Digital Equipment Corporation Packet format in hub for packet data communications system
JPH06332803A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd 仮想計算機システムにおけるtlb制御方法
US5873123A (en) * 1996-06-25 1999-02-16 International Business Machines Corporation Processor and method for translating a nonphysical address into a physical address utilizing a selectively nonsequential search of page table entries
US5809563A (en) 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US5946679A (en) * 1997-07-31 1999-08-31 Torrent Networking Technologies, Corp. System and method for locating a route in a route table using hashing and compressed radix tree searching
US7111145B1 (en) * 2003-03-25 2006-09-19 Vmware, Inc. TLB miss fault handler and method for accessing multiple page tables
US20040210588A1 (en) 2003-04-18 2004-10-21 Simkins Mark B. Methods and apparatus for address lookup
JP2005242757A (ja) * 2004-02-27 2005-09-08 Hitachi Ltd ストレージシステム
US20060083247A1 (en) * 2004-10-14 2006-04-20 Sun Microsystems, Inc. Prefix lookup using address-directed hash tables
JP4060847B2 (ja) * 2004-12-22 2008-03-12 株式会社東芝 メモリ管理装置、コンピュータシステム及びメモリ管理方法
US7428626B2 (en) 2005-03-08 2008-09-23 Microsoft Corporation Method and system for a second level address translation in a virtual machine environment
US8356021B2 (en) * 2005-03-11 2013-01-15 Ross Neil Williams Method and apparatus for indexing in a reduced-redundancy storage system
US7330958B2 (en) * 2005-09-22 2008-02-12 International Business Machines Corporation Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
JP2007122305A (ja) * 2005-10-27 2007-05-17 Hitachi Ltd 仮想計算機システム
US7827381B2 (en) * 2006-06-05 2010-11-02 Oracle America, Inc. Hybrid techniques for memory virtualization in a computer system
US7856536B2 (en) * 2007-10-05 2010-12-21 International Business Machines Corporation Providing a process exclusive access to a page including a memory address to which a lock is granted to the process
US8015361B2 (en) 2007-12-14 2011-09-06 International Business Machines Corporation Memory-centric page table walker
US8041923B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Load page table entry address instruction execution based on an address translation format control field
US7930515B2 (en) * 2008-07-29 2011-04-19 International Business Machines Corporation Virtual memory management
US8296547B2 (en) * 2008-08-27 2012-10-23 International Business Machines Corporation Loading entries into a TLB in hardware via indirect TLB entries
US9256550B2 (en) 2012-03-28 2016-02-09 International Business Machines Corporation Hybrid address translation

Also Published As

Publication number Publication date
JP2015515057A (ja) 2015-05-21
GB201414518D0 (en) 2014-10-01
US9256550B2 (en) 2016-02-09
JP6091598B2 (ja) 2017-03-08
CN104205068A (zh) 2014-12-10
CN104205068B (zh) 2017-02-22
GB2514500B (en) 2015-05-06
US20130262815A1 (en) 2013-10-03
WO2013143784A1 (en) 2013-10-03
GB2514500A (en) 2014-11-26
US9251092B2 (en) 2016-02-02
US20130262817A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
DE112013001751T5 (de) Hybride Adressumsetzung
DE112013002934B4 (de) Verwalten eines Zugreifens auf Seitentabelleneinträge
DE112013002938B4 (de) Übersetzen der Basistabelle von Speichern
DE112015001977B4 (de) Synchronisieren von Aktualisierungen von Statusanzeigern in einer Datenverarbeitungsumgebung
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE602004011018T2 (de) Ungültigkeitserklärung eines speichers und löschen von puffereinträgen
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE112012005533B4 (de) Unterstützende Abfrage und ein Abfragen
DE102014014076A1 (de) Reduzierte Adressenkonvertierung mit mehreren Seitengrößen
DE112018005692T5 (de) Speichern unstrukturierter daten in einem strukturierten rahmen
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE112013000650B4 (de) Datenzwischenspeicherungsbereich
DE112018004222T5 (de) Datenbankaufteilung
DE112013004397T5 (de) Auswählbare Adressumsetzungsmechanismen
DE112018003032T5 (de) Cachestruktur, die ein logisches verzeichnis verwendet
DE102013204521A1 (de) Transaktionsverwaltung für Datenbanksysteme
DE102020104701B4 (de) System zur Lokalisierung von Cachedaten
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE102008025476A1 (de) Übersetzung einer virtuellen Adresse in eine physikalische Adresse mit Unterstützung von Seitenattributen
DE112018002032T5 (de) Gemeinsames nutzen von virtuellen und realen übersetzungen in einem virtuellen cache
DE112017001027T5 (de) Seitenfehlerbehebung
DE112018002028T5 (de) Umsetzungsunterstützung für einen virtuellen cache
DE102008062044A1 (de) Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE102014116031A1 (de) SWAT-Befehl und API für atomare Auslagerung und Trimmen von LBAs
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication