DE112004001129T5 - Gemeinsame Nutzungstechnik für Cross-Thread Register - Google Patents

Gemeinsame Nutzungstechnik für Cross-Thread Register Download PDF

Info

Publication number
DE112004001129T5
DE112004001129T5 DE112004001129T DE112004001129T DE112004001129T5 DE 112004001129 T5 DE112004001129 T5 DE 112004001129T5 DE 112004001129 T DE112004001129 T DE 112004001129T DE 112004001129 T DE112004001129 T DE 112004001129T DE 112004001129 T5 DE112004001129 T5 DE 112004001129T5
Authority
DE
Germany
Prior art keywords
registers
physical
mode
thread
processor
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.)
Granted
Application number
DE112004001129T
Other languages
English (en)
Other versions
DE112004001129B4 (de
Inventor
Nicholas Austin Samra
Andrew Austin Huang
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE112004001129T5 publication Critical patent/DE112004001129T5/de
Application granted granted Critical
Publication of DE112004001129B4 publication Critical patent/DE112004001129B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

Vorrichtung, die folgendes umfaßt:
eine physikalische Registerdatei, in der mit Befehlen eines Computerprogramms assoziierte Daten in einer Reihenfolge gespeichert sind, die davon unabhängig ist, ob ein Prozessor, der die Befehle ausführt, sich in einem Multi-Thread-Modus (MT-Modus) oder einem Single-Thread-Modus (ST-Modus) befindet.

Description

  • GEBIET DER ERFINDUNG
  • Die Ausführungsformen der Erfindung betreffen eine Mikroprozessorarchitektur. Ganz besonders betreffen die Ausführungsformen der Erfindung eine Technik zur gemeinsamen Nutzung von Registerressourcen in einem Mikroprozessor.
  • ALLGEMEINER STAND DER TECHNIK
  • In typischen superskalaren Hochleistungsmikroprozessoren besteht eine Technik zum Verbessern der Leistung in der Registerumbenennung, wobei logische Register, auf die von den Befehlen verwiesen wird, auf einen größeren Satz von physikalischen Registern abgebildet werden. Diese physikalische Registerabbildung hilft dabei, falsche Abhängigkeiten zu eliminieren, die in der lokalen Registerabbildung vorliegen würden. Herkömmlicherweise würden Strukturen wie eine Register-Alias-Tabelle (RAT) die Logisch-zu-physikalisch-Abbildungen speichern, wohingegen eine andere Struktur, wie eine Freelist-Tabelle (Freispeicherliste, „Freelist"), die die nicht genutzten oder „freien" physikalischen Register festhalten würde, bis sie von der Umbenennungseinheit zugeordnet und verwendet werden.
  • In Multithreaded-Prozessoren (mehrfädigen Prozessoren), die die Fähigkeit aufweisen, mehrere Threads (Fäden) gleichzeitig auszuführen, kann eine Technik zum Zuordnen von physikalischen Registern aus der Freelist entweder eine hart partitionierte Freelist oder eine gemeinsam genutzte einsetzen. Eine Technik mit gemeinsam genutzter Freelist erfordert für gewöhnlich eine größere Freelist-Tabelle und assoziierte Logik, hat jedoch dadurch einen Leistungsvorteil, daß sie alle Register in der Freelist aufweist, die einem aktiven Thread zur Verfügung stehen, wenn der Prozessor im Single-Thread-Modus (einfädigen Modus) läuft. Eine Technik mit hart partitionierter Freelist erfordert weniger Hardware, kann jedoch die Leistung einschränken, da die Anzahl von Registern pro Thread festgelegt ist.
  • Ein Beispiel einer Technik zur Zuordnung von gemeinsam genutzten Registern des Stands der Technik für einen zweifädigen Prozessor ist in 1 dargestellt. Wenn ein Register für einen oder beide Threads zugeordnet wird, wird es aus der Freelist 105 gelesen und als ein umbenanntes Register in die entsprechende RAT 110 geschrieben. Des weiteren überwacht eine separate Struktur, wie ein Rückordnungspuffer (Re-Order Buffer, ROB) 115, zugeordnete Register, so daß diese zur Freelist zurückgegeben werden können, wenn sie nicht mehr benötigt werden.
  • Es wäre für die gemeinsam genutzte Freelist selbst schwierig, die Registerfreigabe handzuhaben, da zwischen den zwei Threads keine garantierte Rückordnungsreihenfolge besteht. Die Anzahl von Einträgen in der Freelist ist mit der Anzahl von physikalischen Registern identisch und die Freelist wird beim Zurücksetzen mit jeder physikalischen Registernummer initialisiert. Diese initialisierten Register können dann in die RAT eines oder beider Threads zugeordnet werden.
  • Die Menge an Hardware, die für eine bestimmte Anzahl von physikalischen Registern notwendig ist, kann mit einer Technik zur Zuordnung von hart partitionierten Registern verringert werden. Ein Beispiel des Stands der Technik einer Technik zur Zuordnung von hart partitionierten Registern ist in 2 dargestellt. Die Technik zur Zuordnung von hart partitionierten Registern von 2 legt fest, welche Register für jeden Thread verwendet werden können. Des weiteren sind, wenn ein Thread inaktiv ist, die ihm zugewiesenen Register ungenutzt, was ebenso physikalischen Registerplatz verschwendet.
  • Im Beispiel des Stands der Technik von 2 können eine RAT 210 und eine Freelist 205 mit den physikalischen Registernummern initialisiert werden, was jeder Freelist gestattet, nur die derzeit nicht von der RAT verwendeten Register zu überwachen, wodurch die Größe der Freelist begrenzt wird. Angenommen, daß jeder Thread Befehle in der Programmreihenfolge rückordnet, kann jede Freelist die Registerfreigabe ohne einen ROB abwickeln, wodurch die Notwendigkeit einer separaten Struktur zum Durchführen der Neuzuordnung reduziert wird.
  • Das Beispiel des Stands der Technik von 1 maximiert die Größe der Freelist, die einem bestimmten Thread zur Verfügung steht, bedingt jedoch die Verwendung von zusätzlicher Hardware, nämlich des ROB, zum Neuzuordnen von Registern in der Freelist. Andererseits ermöglicht das Beispiel des Stands der Technik von 2, Register in die Freelist ohne Verwendung eines ROB neuzuzuordnen, verringert jedoch die Anzahl von Freelisteinträgen, die einem einzigen Thread zur Verfügung stehen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Ausführungsformen der Erfindung sind beispielhaft und nicht einschränkend in den Figuren der begleitenden Zeichnungen dargestellt, in denen gleiche Bezugszahlen ähnliche Elemente bezeichnen.
  • 1 stellt eine Technik zur gemeinsamen Nutzung von Registern des Stands der Technik für einen Multithreaded-Prozessor dar, der den einem einzigen Thread zur Verfügung stehenden Freelistplatz maximiert.
  • 2 stellt eine Technik zur gemeinsamen Nutzung von Registern des Stands der Technik dar, der die Verwendung von zusätzlichen Hardwarestrukturen zum Neuzuordnen von rückgeordneten Befehlen in der Freelist reduziert.
  • 3 stellt ein Computersystem dar, in dem mindestens eine Ausführungsform der Erfindung verwendet werden kann.
  • 4 stellt eine Mikroprozessorarchitektur dar, in der mindestens eine Ausführungsform der Erfindung verwendet werden kann.
  • 5 stellt eine Technik zur gemeinsamen Nutzung von Registern im Single-Thread-Modus (einfädigen Modus) gemäß einer Ausführungsform der Erfindung dar.
  • 6 stellt eine Technik zur gemeinsamen Nutzung von Registern im Multi-Thread-Modus (mehrfädigen Modus) gemäß einer Ausführungsform der Erfindung dar.
  • 7 ist ein Ablaufdiagramm, das verschiedene auszuführende Arbeitsschritte darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Ausführungsformen der Erfindung betreffen eine Mikroprozessorarchitektur. Ganz besonders betreffen die Ausführungsformen der Erfindung eine Technik zur gemeinsamen Nutzung von Registerressourcen in einem Mikroprozessor für mehrere Threads von Befehlen, die es erleichtert, eine optimale Anzahl von physikalischen Registern auf eine gewünschte Anzahl von logischen Registern abzubilden, ohne einen beträchtlichen Hardware-Overhead mit sich zu bringen.
  • In mindestens einer Ausführungsform der Erfindung wird eine Technik verwendet, die mit einer Technik zur gemeinsamen Nutzung von hart partitionierten Registern assoziierte Hardwarekosten mit sich bringt, die jedoch einem Thread mehr Register zur Verfügung stellt, wenn ein anderer Thread inaktiv ist.
  • 3 stellt ein Computersystem dar, in dem mindestens eine Ausführungsform der Erfindung verwendet werden kann. Ein Prozessor 305 greift auf Daten von einem Zwischenspeicher 310 und einem Hauptspeicher 315 zu. In dem Prozessor von 3 ist eine Ausführungsform 306 der Erfindung dargestellt. Es können jedoch andere Ausführungsformen der Erfindung in anderen Einrichtungen im System, wie einem separaten Busagenten, implementiert oder über das System als Hardware, Software oder eine beliebige Kombination davon verteilt sein.
  • Der Hauptspeicher kann in verschiedenen Speicherquellen implementiert sein, wie einem dynamischen Direktzugriffsspeicher (dynamic random access memory, DRAM), einem Festplattenlaufwerk (hard disk drive, HDD) 320 oder einer Speicherquelle, die sich über eine Netzschnittstelle 330 von dem Computersystem entfernt befindet, die verschiedene Speichereinrichtungen und -technologien umfaßt. Der Zwischenspeicher kann sich entweder im Prozessor oder in direkter Nähe des Prozessors befinden, wie auf dem lokalen Bus 307 des Prozessors. Des weiteren kann der Zwischenspeicher relativ schnelle Speicherzellen enthalten, wie eine Zelle mit sechs Transistoren (6T-Zelle) oder eine andere Speicherzelle mit ungefähr gleicher oder schnellerer Zugriffsgeschwindigkeit.
  • 4 stellt einen Mikroprozessor dar, in dem mindestens eine Ausführungsform der Erfindung verwendet werden kann. Der Prozessor 400 weist eine Ausführungseinheit 420, eine Planungseinheit 415, eine Umbenennungseinheit 410, eine Rückordnungseinheit 425 und eine Dekodiereinheit 405 auf.
  • In einer Ausführungsform der Erfindung ist der Mikroprozessor ein superskalarer Pipeline-Prozessor, der mehrere Verarbeitungsfunktionalitätsstufen in einer Reihen- und/oder Parallelkonfiguration umfassen kann. Dementsprechend können mehrere Befehle gleichzeitig im Prozessor verarbeitet werden, jeder in einer anderen Pipelinestufe. Des weiteren kann die Ausführungseinheit Teil eines Ausführungsclusters sein, um Befehle eines ähnlichen Typs oder mit ähnlichen Attributen, wie Latenzzeittoleranz, zu verarbeiten. In anderen Ausführungsformen kann die Ausführungseinheit eine einzige Ausführungseinheit sein.
  • Die Planungseinheit kann verschiedene funktionelle Einheiten enthalten, einschließlich Ausführungsformen der Erfindung 413. Andere Ausführungsformen der Erfindung können sich an anderer Stelle in der Prozessorarchitektur von 4 befinden, einschließlich der Umbenennungseinheit 407.
  • 5 stellt eine Architektur zur gemeinsamen Nutzung von Registern gemäß einer Ausführungsform der Erfindung dar, die eine Anhebung der Anzahl von Registern erleichtert, die im Single-Thread-Ausführungsmodus zur Verfügung stehen, ohne die Hardwarekosten einer Architektur mit völlig gemeinsam genutzten Freelists mit sich zu bringen. Diese Architektur initialisiert beide RATs 501, 502, die Thread 0 bzw. Thread 1 entsprechen, mit Registerumbenennungen, ungeachtet dessen, ob der Prozessor sich im Single-Thread-Modus (ST-Modus) oder Multi-Thread-Modus (MT-Modus) befindet. Die Freelist 505 wird mit den verbleibenden Umbenennungsregistern initialisiert und überprüft den Modus des Prozessors (ST oder MT). Wenn der Prozessor sich im MT-Modus befindet, partitioniert die Freelist sich selbst, so daß jede Hälfte der Freelist einem anderen Thread zur Verfügung steht. Im ST-Modus stehen alle Register in der Freelist dem aktiven Thread zur Verfügung.
  • In der Ausführungsform von 5, die zwei Threads, acht logische Register pro Thread und insgesamt achtundzwanzig physikalische Register 510 umfaßt, ist auch der Anfangszustand der Maschine, wenn sie sich im ST-Modus befindet, angezeigt. Insbesondere die letzten acht Einträge des physikalischen Registerplatzes werden für Thread 1 (derzeit inaktiv) verwendet, wohingegen die ersten zwanzig Einträge Thread 0 zur Verfügung stehen.
  • Wenn der Prozessor vom ST-Modus in den MT-Modus umschaltet, partitioniert sich die Freelist selbst in zwei Teile, wobei jede Hälfte für einen anderen Thread verwendet wird. Dies ist der Technik zur gemeinsamen Nutzung von hart partitionierten Registern des Stands der Technik ähnlich, wobei der Hauptunterschied darin besteht, daß der Satz von physikalischen Registern, die jedem Thread zugeteilt werden, vom Zustand der Freelist zum Zeitpunkt des Übergangs von ST zu MT anstatt von einem vorbestimmten Satz von physikalischen Registern pro Thread abhängt. Dies bedeutet, daß von jedem Thread verwendete Register in der physikalischen Registerdatei willkürlich über die physikalische Registerdatei verteilt werden.
  • 6 stellt den Zustand der Architektur nach einem Übergang von MT zu ST gemäß einer Ausführungsform der Erfindung dar. Insbesondere departioniert die Freelist 601 sich bei einem Übergang von MT zu ST selbst und ermöglicht, Register, die zu diesem Zeitpunkt in der Freelist verbleiben, dem aktiven Thread zuzuordnen. Der inaktive Thread 605 wird nach wie vor acht Register aufweisen, die in der physikalischen Registerdatei in willkürlichen Positionen zugeordnet sind (und vom aktiven Thread nicht verwendbar sind). Der aktive Thread 610 wird wiederum zwanzig physikalische Register aufweisen, mit denen die acht lokalen Register abzubilden sind.
  • Verschiedene Gesichtspunkte von Ausführungsformen der Erfindung können unter Verwendung von CMOS-Schaltkreisen (complementary metal-oxide semiconductor, Komplementär-Metalloxid-Halbleiter) und logischen Einrichtungen (Hardware) implementiert werden, wohingegen andere Gesichtspunkte unter Verwendung von auf einem maschinenlesbaren Datenträger (Software) gespeicherten Befehlen implementiert werden können, die, wenn sie von einem Prozessor ausgeführt werden, bewirken würden, daß der Prozessor ein Verfahren zum Durchführen von Ausführungsformen der Erfindung ausführt. Des weiteren können manche Ausführungsformen der Erfindung ausschließlich in Hardware ausgeführt werden, wohingegen andere Ausführungsform ausschließlich in Software ausgeführt werden können.
  • 7 ist ein Ablaufdiagramm, das verschiedene an mindestens einer Ausführungsform der Erfindung auszuführende Arbeitsschritte darstellt. Im Arbeitsschritt 701 befindet sich die Ausführungsform der Erfindung im ST-Modus und ist zum Zuordnen und Umbenennen von acht Registern in der physikalischen Registerdatei initialisiert. Des weiteren sind zwölf weitere ungenutzte Register in der physikalischen Registerdatei in der Freelist aufgeführt, die vom aktiven Thread zu verwenden sind. Wenn der Prozessor, in dem die Ausführungsform der Erfindung von 7 ausgeführt wird, im Arbeitsschritt 705 in den MT-Modus umschaltet, wird die Freelist im Arbeitsschritt 710 in zwei Teile unterteilt und der zweite Thread kann die Register verwenden, die in seiner Hälfte der Freelist angegeben sind. Wenn etwaige der Register rückgeordnet sind, gibt die Freelist diese Register im Arbeitsschritt 715 dementsprechend wider, ganz gleich, ob im MT- oder ST-Modus. Wenn die in 7 dargestellte Ausführungsform der Erfindung nicht zwischen dem MT- und dem ST-Modus umschaltet, werden die RAT und die Freelist im Arbeitsschritt 720 gemäß der Register aktualisiert, die von folgenden Befehlen verwendet werden.
  • Obwohl die Erfindung mit Bezugnahme auf veranschaulichende Ausführungsformen beschrieben worden ist, soll die Beschreibung nicht in einem einschränkenden Sinne ausgelegt werden. Verschiedene Modifikationen der veranschaulichenden Ausführungsformen sowie andere Ausführungsformen, die Fachmännern der Technik, welche die Erfindung betrifft, offensichtlich sein werden, sollen als im Sinn und Schutzumfang der Erfindung liegend angesehen werden.
  • Eine Technik zum gemeinsamen Nutzen von Ressourcen innerhalb eines Mikroprozessors. Ausführungen der Erfindung beziehen sich auf eine gemeinsame Nutzung eines Registers innerhalb eines Mikroprozessors für Mehrfach-Threads von Instruktionen, die eine optimale Anzahl von physikalischen Registern ermöglicht, die auf eine gewünschte Anzahl logischer Register abgebildet werden sollen, ohne signifikante Hardwareanforderungen zu erzeugen.

Claims (30)

  1. Vorrichtung, die folgendes umfaßt: eine physikalische Registerdatei, in der mit Befehlen eines Computerprogramms assoziierte Daten in einer Reihenfolge gespeichert sind, die davon unabhängig ist, ob ein Prozessor, der die Befehle ausführt, sich in einem Multi-Thread-Modus (MT-Modus) oder einem Single-Thread-Modus (ST-Modus) befindet.
  2. Vorrichtung nach Anspruch 1, die weiterhin mindestens eine Registerzuordnungstabelle (register allocation table, RAT) umfaßt, um die Zuordnung der Daten von logischen Registern zu physikalischen Registern in der physikalischen Registerdatei anzuzeigen.
  3. Vorrichtung nach Anspruch 1, die weiterhin eine Liste von physikalischen Registern in der physikalischen Registerdatei umfaßt, die nicht einem logischen Register zugeordnet sind, wobei Einträge in der Liste vollständig einem ersten Thread zugeordnet werden, während der Prozessor sich im ST-Modus befindet, und Einträge in der Liste partitioniert werden, so daß ein erster Teil der Einträge einem ersten Thread und ein zweiter Teil der Einträge einem zweiten Thread zugeordnet werden, während der Prozessor sich im MT-Modus befindet.
  4. Vorrichtung nach Anspruch 3, wobei ein erster Teil aller physikalischen Register in der physikalischen Registerdatei dem ersten Thread und ein zweiter Teil aller physikalischen Register in der physikalischen Registerdatei dem zweiten Thread zugeordnet werden, wenn der Prozessor sich im ST-Modus befindet, wobei der erste Teil aller physikalischen Register größer als der zweite Teil aller physikalischen Register ist.
  5. Vorrichtung nach Anspruch 4, wobei der zweite Thread inaktiv ist, wenn der Prozessor sich im ST-Modus befindet.
  6. Vorrichtung nach Anspruch 4, wobei der erste Teil aller physikalischen Register in der physikalischen Registerdatei dem ersten Thread zugeordnet bleibt, nachdem der Prozessor in den MT-Modus übergegangen ist, bis Befehle, die mit Daten im ersten Teil aller physikalischen Register in der Registerdatei assoziiert sind, rückgeordnet werden.
  7. Vorrichtung nach Anspruch 6, wobei die mit den rückgeordneten Befehlen assoziierten physikalischen Register in der Liste von physikalischen Registern angezeigt werden.
  8. Vorrichtung, die folgendes umfaßt: ein erstes Mittel zum Anzeigen von Registern in einer physikalischen Registerdatei zur Verwendung von einem Mikroprozessor, die nicht logischen Registern zugeordnet sind, wobei das erste Mittel während eines zweiten Betriebsmodus des Mikroprozessors partitioniert und während eines ersten Betriebsmodus des Mikroprozessors nicht partitioniert wird; ein zweites Mittel zum Zuordnen der logischen Register zu den physikalischen Registern.
  9. Vorrichtung nach Anspruch 8, wobei die logischen Register den physikalischen Registern unabhängig von der relativen Position der logischen Register zueinander zugeordnet werden.
  10. Vorrichtung nach Anspruch 9, wobei das zweite Mittel eine Registerzuordnungstabelle umfaßt, um die Zuordnung der logischen Register zu den physikalischen Registern anzuzeigen.
  11. Vorrichtung nach Anspruch 9, wobei das zweite Mittel mehrere Registerzuordnungstabellen umfaßt, um die Zuordnung der logischen Register zu den physikalischen Registern anzuzeigen, wobei jede der mehreren Registerzuordnungstabellen mit einem separaten Thread von Befehlen assoziiert ist.
  12. Vorrichtung nach Anspruch 11, wobei es sich bei dem ersten Betriebsmodus um einen Single-Thread-Modus und bei dem zweiten Modus um einen Multiple-Thread-Modus handelt.
  13. Vorrichtung nach Anspruch 12, wobei es sich bei dem ersten Mittel um eine Registerdatei handelt, die eine Liste der physikalischen Register umfaßt, die nicht den logischen Registern zugeordnet sind.
  14. Vorrichtung nach Anspruch 13, wobei die Summe der Anzahl von physikalischen Registern in der Liste und der Anzahl von logischen Registern, die mit einem einzigen Thread assoziiert sind, der Anzahl von physikalischen Registern in der physikalischen Registerdatei entspricht.
  15. Vorrichtung nach Anspruch 14, wobei das erste physikalische Register in der Liste angezeigt wird, nachdem ein Befehl, der mit in dem ersten physikalischen Register gespeicherten Daten assoziiert ist, rückgeordnet worden ist.
  16. System, das folgendes umfaßt: eine Speichereinheit zum Speicher eines ersten und eines zweiten Thread von Befehlen; einen Prozessor zum Durchführen des ersten und des zweiten Thread von Befehlen, wobei der Prozessor eine physikalische Registerdatei umfaßt, wobei dem ersten und dem zweiten Thread von Befehlen entsprechende Daten in einer Reihenfolge gespeichert sind, die davon unabhängig ist, ob der Prozessor sich in einem Multi-Thread-Modus (MT-Modus) oder einem Single-Thread-Modus (ST-Modus) befindet.
  17. System nach Anspruch 16, wobei der Prozessor weiterhin mindestens eine Registerzuordnungstabelle (register allocation table, RAT) umfaßt, um die Zuordnung der Daten von logischen Registern zu physikalischen Registern in der physikalischen Registerdatei anzuzeigen.
  18. System nach Anspruch 16, das weiterhin eine Liste von physikalischen Registern umfaßt, die nicht einem logischen Register zugeordnet sind, wobei Einträge in der Liste vollständig dem ersten Thread zugeordnet werden, während der Prozessor sich im ST-Modus befindet, und Einträge in der Liste partitioniert werden, so daß ein erster Teil der Einträge dem ersten Thread und ein zweiter Teil der Einträge dem zweiten Thread zugeordnet werden, während der Prozessor sich im MT-Modus befindet.
  19. System nach Anspruch 18, wobei ein erster Teil aller physikalischen Register in der physikalischen Registerdatei dem ersten Thread und ein zweiter Teil aller physikalischen Register in der physikalischen Registerdatei dem zweiten Thread zugeordnet werden, wenn der Prozessor sich im ST-Modus befindet, wobei der erste Teil aller physikalischen Register größer als der zweite Teil aller physikalischen Register ist.
  20. System nach Anspruch 19, wobei der zweite Thread inaktiv ist, wenn der Prozessor sich im ST-Modus befindet.
  21. System nach Anspruch 19, wobei der erste Teil aller physikalischen Register in der physikalischen Registerdatei dem ersten Thread zugeordnet bleibt, nachdem der Prozessor in den MT-Modus übergegangen ist, bis Befehle, die mit Daten im ersten Teil aller physikalischen Register in der Registerdatei assoziiert sind, rückgeordnet werden.
  22. System nach Anspruch 21, wobei die mit den rückgeordneten Befehlen assoziierten physikalischen Register in der Liste von physikalischen Registern angezeigt werden.
  23. Verfahren, das folgendes umfaßt: Initialisieren einer Registerzuordnungstabelle (register allocation table, RAT), um eine erste Gruppe von logischen Registern auf eine zweite Gruppe von physikalischen Registern abzubilden; Unterteilen einer Freelist von Registern in zwei Teile, wenn ein mit der Freelist assoziierter Prozessor sich im Multi-Thread-Modus (MT-Modus) befindet; Rückgängigmachen der Unterteilung der Freelist von Registern, wenn der Prozessor sich im Single-Thread-Modus (ST-Modus) befindet.
  24. Verfahren nach Anspruch 23, das weiterhin ein Übergehen vom ST-Modus in den MT-Modus umfaßt, wobei die zweite Gruppe von physikalischen Registern über eine physikalische Registerdatei verteilt ist.
  25. Verfahren nach Anspruch 24, wobei die zweite Gruppe von physikalischen Registern nach dem Übergang vom ST-Modus in den MT-Modus über die physikalische Registerdatei verteilt bleibt.
  26. Verfahren nach Anspruch 23, das weiterhin ein Übergehen vom MT-Modus in den ST-Modus umfaßt, wobei die zweite Gruppe von physikalischen Registern über eine physikalische Registerdatei verteilt ist.
  27. Verfahren nach Anspruch 26, wobei die zweite Gruppe von physikalischen Registern nach dem Übergang vom MT-Modus in den ST-Modus über die physikalische Registerdatei verteilt bleibt.
  28. Verfahren nach Anspruch 23, wobei die logischen Register den physikalischen Registern unabhängig von der relativen Position der logischen Register zueinander zugeordnet werden.
  29. Verfahren nach Anspruch 28, wobei die Summe der Einträge in der Freelist und der Anzahl von logischen Registern, die mit einem einzigen Thread assoziiert sind, der Anzahl von physikalischen Registern in der physikalischen Registerdatei entspricht.
  30. Verfahren nach Anspruch 29, das weiterhin ein Anzeigen eines ersten physikalischen Registers in der Freelist umfaßt, nachdem ein Befehl, der mit in dem ersten physikalischen Register gespeicherten Daten assoziiert ist, rückgeordnet worden ist.
DE112004001129T 2003-06-26 2004-06-09 Gemeinsame Nutzungstechnik für Cross-Thread Register Expired - Fee Related DE112004001129B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/609,264 US20040268093A1 (en) 2003-06-26 2003-06-26 Cross-thread register sharing technique
US10/609,264 2003-06-26
PCT/US2004/018419 WO2005006185A2 (en) 2003-06-26 2004-06-09 Cross-thread register sharing technique

Publications (2)

Publication Number Publication Date
DE112004001129T5 true DE112004001129T5 (de) 2006-05-11
DE112004001129B4 DE112004001129B4 (de) 2008-04-30

Family

ID=33540820

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112004001129T Expired - Fee Related DE112004001129B4 (de) 2003-06-26 2004-06-09 Gemeinsame Nutzungstechnik für Cross-Thread Register

Country Status (5)

Country Link
US (1) US20040268093A1 (de)
JP (1) JP2007520768A (de)
CN (1) CN1577260B (de)
DE (1) DE112004001129B4 (de)
WO (1) WO2005006185A2 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006120367A1 (en) * 2005-05-11 2006-11-16 Arm Limited A data processing apparatus and method employing multiple register sets
US7624257B2 (en) * 2005-11-30 2009-11-24 International Business Machines Corporation Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads
WO2008049938A1 (es) * 2006-10-27 2008-05-02 Intel Corporation Comunicación entre múltiples secuencias de procesamiento en un procesador
US8347068B2 (en) * 2007-04-04 2013-01-01 International Business Machines Corporation Multi-mode register rename mechanism that augments logical registers by switching a physical register from the register rename buffer when switching between in-order and out-of-order instruction processing in a simultaneous multi-threaded microprocessor
US8245016B2 (en) * 2007-09-28 2012-08-14 International Business Machines Corporation Multi-threaded processing
US8250345B2 (en) * 2007-09-28 2012-08-21 International Business Machines Corporation Structure for multi-threaded processing
US9025592B2 (en) * 2008-05-21 2015-05-05 Telefonaktiebolaget L M Ericsson (Publ) Blade cluster switching center server and method for signaling
US20090327661A1 (en) * 2008-06-30 2009-12-31 Zeev Sperber Mechanisms to handle free physical register identifiers for smt out-of-order processors
US9501285B2 (en) 2010-05-27 2016-11-22 International Business Machines Corporation Register allocation to threads
US8561070B2 (en) 2010-12-02 2013-10-15 International Business Machines Corporation Creating a thread of execution in a computer processor without operating system intervention
US8572628B2 (en) 2010-12-02 2013-10-29 International Business Machines Corporation Inter-thread data communications in a computer processor
JP5283739B2 (ja) * 2011-09-27 2013-09-04 インテル・コーポレーション プロセッサ内のマルチスレッド間通信
WO2013099414A1 (ja) * 2011-12-26 2013-07-04 インターナショナル・ビジネス・マシーンズ・コーポレーション レジスタ・マッピング方法
US10534614B2 (en) * 2012-06-08 2020-01-14 MIPS Tech, LLC Rescheduling threads using different cores in a multithreaded microprocessor having a shared register pool
GB2499277B (en) * 2012-08-30 2014-04-02 Imagination Tech Ltd Global register protection in a multi-threaded processor
US9582287B2 (en) * 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US9395988B2 (en) * 2013-03-08 2016-07-19 Samsung Electronics Co., Ltd. Micro-ops including packed source and destination fields
JP5986543B2 (ja) * 2013-07-19 2016-09-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アーキテクチャレジスタの割り付け方法、割り付け装置及び割り付けプログラム
GB2522290B (en) * 2014-07-14 2015-12-09 Imagination Tech Ltd Running a 32-bit operating system on a 64-bit machine
US20160147536A1 (en) * 2014-11-24 2016-05-26 International Business Machines Corporation Transitioning the Processor Core from Thread to Lane Mode and Enabling Data Transfer Between the Two Modes
US11016770B2 (en) * 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US11126433B2 (en) * 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
CN106201989B (zh) * 2016-06-28 2019-06-11 上海兆芯集成电路有限公司 具有从空闲列表的处理器和使用其回收物理寄存器的方法
US11132228B2 (en) * 2018-03-21 2021-09-28 International Business Machines Corporation SMT processor to create a virtual vector register file for a borrower thread from a number of donated vector register files
US11593108B2 (en) * 2021-06-07 2023-02-28 International Business Machines Corporation Sharing instruction cache footprint between multiple threads
US11593109B2 (en) 2021-06-07 2023-02-28 International Business Machines Corporation Sharing instruction cache lines between multiple threads
CN114168197B (zh) * 2021-12-09 2023-05-23 海光信息技术股份有限公司 指令执行方法、处理器以及电子装置
CN118245188A (zh) * 2024-03-29 2024-06-25 海光信息技术股份有限公司 线程控制方法及装置、处理器和计算机可读存储介质
CN118377536B (zh) * 2024-06-24 2024-10-01 山东浪潮科学研究院有限公司 寄存器资源动态调度系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697935B1 (en) * 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6092175A (en) * 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution
US20010042187A1 (en) * 1998-12-03 2001-11-15 Marc Tremblay Variable issue-width vliw processor
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US7051329B1 (en) * 1999-12-28 2006-05-23 Intel Corporation Method and apparatus for managing resources in a multithreaded processor
GB2368932B (en) * 2000-11-02 2003-04-16 Siroyan Ltd Register file circuitry
US6954846B2 (en) * 2001-08-07 2005-10-11 Sun Microsystems, Inc. Microprocessor and method for giving each thread exclusive access to one register file in a multi-threading mode and for giving an active thread access to multiple register files in a single thread mode

Also Published As

Publication number Publication date
US20040268093A1 (en) 2004-12-30
WO2005006185A2 (en) 2005-01-20
CN1577260A (zh) 2005-02-09
JP2007520768A (ja) 2007-07-26
DE112004001129B4 (de) 2008-04-30
CN1577260B (zh) 2012-10-10
WO2005006185A3 (en) 2005-10-27

Similar Documents

Publication Publication Date Title
DE112004001129B4 (de) Gemeinsame Nutzungstechnik für Cross-Thread Register
DE69311330T2 (de) Befehlsablauffolgeplanung von einem risc-superskalarprozessor
DE69211231T2 (de) Verfahren und Vorrichtung zur Verwaltung eines gemeinsam genutzten Speichers ausserhalb des Bildschirms
DE69803624T2 (de) Verfahren und Vorrichtung zur generationellen Freispeichersammlung in einem gemeinsam verwendeten Heapspeicher mittels mehrerer Prozessoreinheiten
DE60033994T2 (de) Verfahren und System zur Ausgabe an und zum Ordnen von Befehlen in einem Festplattenlaufwerk
DE3750306T2 (de) System zum Gewährleisten der logischen Unversehrtheit von Daten.
DE60015395T2 (de) Speicher, der zwischen verarbeitenden threads geteilt ist
DE3889578T2 (de) Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation.
DE112012000303B4 (de) Dynamische binäre Optimierung
DE102005029852B4 (de) Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem
DE102007006190B4 (de) Techniken zur Verwendung von Speicher-Attributen
DE69320847T2 (de) Verfahren und Anordnung zur Ausführung von Prozessen in einem Multiprozessor-System
DE102007025397B4 (de) System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
DE69305366T2 (de) System und verfahren zum kennzeichnen von befehlen zur steuerung der befehlsausführung
DE69114333T2 (de) Rechner mit der Fähigkeit mehrere Befehle gleichzeitig auszuführen.
DE10297166T5 (de) Mechanismus zur Interrupt-Abwicklung in Computersystemen, welche die gleichzeitige Ausführung mehrerer Threads unterstützen
DE2414311C2 (de) Speicherschutzeinrichtung
DE112006003453T5 (de) Per-Satz-Relaxation der Cache-Inklusion
DE60001170T2 (de) Betriebsystemsseitenplazierung zum maximieren der cachedatenwiederverwendung
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE112005002370T5 (de) Ausführung von Kontrollbefehlen in redundanten Multithreadingumgebungen
DE112012004629T5 (de) Dynamischer Speicheraffinitätsanpasser auf Prozess/Objektebene
DE69325473T2 (de) Virtuelles Speichersystem verwendendes Datenverarbeitungssystem und -verfahren
DE112011100098B4 (de) Effiziente Mehrkernverarbeitung von Ereignissen
DE112019000189T5 (de) Programmausführungs-steuerverfahren und fahrzeugsteuervorrichtung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20140101