DE112012005085B4 - Bereitstellen logischer Partitionen mit einer ausschließlichen Nutzung eines Prozessorkerns wiedergebenden hardware-strang-spezifischen Information - Google Patents

Bereitstellen logischer Partitionen mit einer ausschließlichen Nutzung eines Prozessorkerns wiedergebenden hardware-strang-spezifischen Information Download PDF

Info

Publication number
DE112012005085B4
DE112012005085B4 DE112012005085.1T DE112012005085T DE112012005085B4 DE 112012005085 B4 DE112012005085 B4 DE 112012005085B4 DE 112012005085 T DE112012005085 T DE 112012005085T DE 112012005085 B4 DE112012005085 B4 DE 112012005085B4
Authority
DE
Germany
Prior art keywords
hardware
thread
specific information
logical
register
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.)
Active
Application number
DE112012005085.1T
Other languages
English (en)
Other versions
DE112012005085T5 (de
Inventor
c/o IBM Corporation Frazier Giles Roger
c/o IBM Corporation Nayar Naresh
c/o IBM Corporation Mealey Bruce
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 DE112012005085T5 publication Critical patent/DE112012005085T5/de
Application granted granted Critical
Publication of DE112012005085B4 publication Critical patent/DE112012005085B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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, 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

Abstract

Verfahren zum Bereitstellen von hardware-strang-spezifischen Informationen in einem Prozessor (10A-10D) mit mehreren Strängen, welcher eine Anzahl an Hardware-Strängen unterstützt, auf dem mehrere Prozesse innerhalb logischer Partitionen ausgeführt werden, wobei das Verfahren aufweist:Pflegen der hardware-strang-spezifischen Informationen in einem Register (51) innerhalb des Prozessors mit mehreren Strängen;Erkennen eines Zugriffs auf die hardware-strang-spezifischen Informationen durch einen der derzeit ausgeführten Prozesse;Feststellen, ob eine Berechtigungsebene des derzeit ausgeführten Prozesses anzeigt, dass der derzeit ausgeführte Prozess einem Prozess innerhalb einer gegebenen der mehreren logischen Partitionen entspricht; undals Reaktion auf das Feststellen dass der derzeit ausgeführten Prozess einem Prozess innerhalb einer gegebenen der mehreren logischen Partitionen entspricht, selektives Umwandeln der hardware-strang-spezifischen Informationen auf eine Weise, die als ausschließliche Nutzung des Prozessors mit mehreren Strängen durch Hardware-Stränge anzeigt, die für Prozesse der gegebenen logischen Partition ausgeführt werden, während Hardware-Strang spezifische Informationen maskiert werden, die in dem Register vorhanden sind, das einem oder mehreren Hardware-Strängen des Prozessors mit mehreren Strängen entspricht, die zur Ausführung von Prozessen einer anderen logischen Partition zugewiesen wird, bei der es sich nicht um die gegebene logische Partition handelt

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Verarbeitungssysteme und Prozessoren und genauer Techniken zum Verwalten von Werten von hardware-strang(thread)-spezifischen Informationen, die an durch Hardware-Stränge eines Prozessorkerns ausgeführte logische Partitionen ausgegeben werden.
  • Beschreibung des Standes der Technik
  • In großen Computersystemen, insbesondere in Mehrbenutzer-Computersystemen oder so genannten Cloud-Computing-Systemen, in denen mehrere Prozessoren mehrere virtuelle Betriebssysteme und Images unterstützen, die als logische Partitionen (logical partitions (LPARs)) bezeichnet werden, verwaltet ein Hypervisor die Zuweisung von Ressourcen zu den LPARs sowie das Starten/Anhalten von LPARs beim Hochfahren/Herunterfahren des Systems und Kontextwechseln. Die LPARs sind vorzugsweise voneinander isoliert, wenn das System verwendet wird, um zum Beispiel das Ausführen unterschiedlicher LPARs für unterschiedliche Kunden zu unterstützen. Üblicherweise unterstützen die in solch einem Computersystem verwendeten Prozessorkerne ein gleichzeitiges Ausführen mehrerer Hardware-Stränge, z.B. 8 oder mehr Hardware-Stränge, die parallelen Ausführungs-Pipelines innerhalb des Prozessorkerns entsprechen. Üblicherweise weist der Hypervisor zudem jeder LPAR eine Anzahl von Strängen zu.
  • Ein Status und andere informative Werte innerhalb des Prozessors sind hardware-spezifisch, d.h. bei den Werten kann es sich entweder um einen Wert für jede Hardware-Strang-Nummer handeln, sie können vom Strang abhängen, der versucht, auf den Wert zuzugreifen, oder es kann sich um die Anzahl von Hardware-Strängen handeln, die der Prozessor unterstützt.
  • Es wäre wünschenswert, Techniken zum Verwalten von Zugriffen auf hardware-strang-spezifische Informationen bereitzustellen, die unabhängig davon sind, welche LPAR auf die Informationen zugreift, und Sicherheit zwischen LPARS bereitstellen.
  • Im Stand der Technik offenbart US 2006 / 0 004 942 A1 einen Prozessor mit mehreren Kernen und Unterstützung für mehrere virtuelle Prozessoren. US 2006 / 0 253 682 A1 offenbart die Verwaltung des Computerspeichers in einem Computer mit dynamischer logischer Partitionierung, die in Bezug auf die Betriebssysteme in logischen Partitionen transparent arbeitet.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die Erfindung ist in einem Verfahren, Computersystemen, einem Prozessorkern und einem Computerprogrammprodukt ausgebildet, die hardware-strang-abhängige Statusinformationen als Reaktion auf Zugriffsanfragen bereitstellen. Die als Reaktion auf die Zugriffsanfragen ausgegebenen Informationen werden umgewandelt, wenn es sich beim Anfrager um ein Programm handelt, das mit einer niedrigeren Berechtigungsebene als der Berechtigungsebene des Hypervisors ausgeführt wird, so dass jede logische Partition den Prozessor so wahrnimmt, als ob sie eine ausschließliche Nutzung des Prozessorkerns besitzt.
  • Das Verfahren kann durch einen logischen Schaltungsblock innerhalb des Prozessors realisiert werden, welche die hardware-strang-spezifischen Informationen in eine logische Darstellung der hardware-strang-spezifischen Informationen umwandelt, die eine ausschließliche Nutzung des Prozessorkerns durch Stränge einer durch den Prozessor ausgeführten logischen Partition wiedergibt. Alternativ dazu kann die Umwandlung durch Programmanweisungen eines Interrupt-Abwicklers durchgeführt werden, der den Zugriff auf das physische Register des Prozessorkerns unterbricht. Der Interrupt-Abwickler wandelt entweder die Inhalte des Registers direkt um oder führt die Umwandlung über ein Nachschlagen im Speicher einer Tabelle durch, die zuvor umgewandelte strang-spezifische Informationen enthält.
  • Die vorstehenden und weitere Ziele, Merkmale und Vorteile der Erfindung werden aus der folgenden genaueren Beschreibung der bevorzugten Ausführungsform der Erfindung ersichtlich, wie in den begleitenden Zeichnungen veranschaulicht.
  • KURZBESCHREIBUNG DER MEHREREN ZEICHNUNGSANSICHTEN
  • Die neuartigen Merkmale, die als die Erfindung kennzeichnend angesehen werden, sind in den angehängten Ansprüchen dargelegt. Die Erfindung an sich sowie eine bevorzugte Verwendungsart, weitere Ziele und Vorteile davon werden jedoch am besten unter Bezugnahme auf die folgende detaillierte Beschreibung der Erfindung in Verbindung mit den begleitenden Figuren verständlich, in denen gleiche Bezugszeichen gleiche Komponenten bezeichnen und:
    • 1 ein Blockschaubild zeigt, das ein Verarbeitungssystem veranschaulicht, in dem Techniken gemäß einer Ausführungsform der vorliegenden Erfindung ausgeführt werden;
    • 2 ein Blockschaubild zeigt, das Details eines Prozessorkerns 20 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
    • 3 ein Blockschaubild zeigt, das Details eines logischen Stranginformationsblocks 50 innerhalb des Prozessorkerns 20 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
    • 4 einen Ablaufplan zeigt, der ein Verfahren gemäß einer weiteren Ausführungsform der vorliegenden Erfindung darstellt.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Prozessorkerne und Verarbeitungssysteme, in denen innerhalb von Prozessorkernen gespeicherte hardware-strang-abhängige umgewandelt werden, wenn auf sie durch logische Partitionen (LPARs) zugegriffen wird, die auf die Informationen zugreifen. Die Umwandlung wird so durchgeführt, dass es jeder LPAR so erscheint, als ob die LPAR eine ausschließliche Nutzung des Prozessorkerns besitzt. Wenn zum Beispiel ein Prozessorkern 8 Hardware-Stränge unterstützt und die Stränge gleichmäßig zwischen zwei durch den Prozessorkern ausgeführten LPARs verteilt sind, werden Anfragen nach der Anzahl von durch den Prozessor unterstützten Hardware-Strängen als 4 ausgegeben, wenn die LPAR auf diese Information zugreift. Gleichermaßen werden Arrays von hardware-strang-spezifischen Informationen oder Wörtern, die Felder von strang-spezifischen Informationen enthalten, so modifiziert, dass sie nur 4 mit null (oder einer anderen durch den Prozessor verwendeten Basis-Strang-Nummer) beginnende Einträge enthalten. Die Umwandlung der hardware-strang-spezifischen Informationen wird durch einen Zugriff von einer Berechtigungsebene aus ausgelöst, die niedriger als die Berechtigungsebene des Hypervisors ist, so dass im Falle, dass der Hypervisor auf die hardware-strang-spezifischen Informationen zugreift, die hardware-strang-spezifischen Informationen für alle Hardware-Stränge ausgegeben werden. Die Umwandlung hardware-strang-spezifischer Registerwerte kann durch eine logische Schaltung oder durch einen Interrupt-Abwickler durchgeführt werden, der den Zugriff auf das Register unterbricht und den umgewandelten Wert ausgibt, der aus einer Tabelle in einem Speicher abgerufen oder direkt durch den Interrupt-Abwickler berechnet werden kann.
  • Unter Bezugnahme auf 1 wird nun ein Verarbeitungssystem gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Das abgebildete Verarbeitungssystem enthält eine Anzahl von Prozessoren 10A bis 10D, von denen jeder mit einer Ausführungsform der vorliegenden Erfindung konform ist. Das abgebildete Mehrfach-Verarbeitungssystem ist veranschaulichend, und zu Verarbeitungssystemen gemäß anderen Ausführungsformen der vorliegenden Erfindung zählen Ein-Prozessor-Systeme mit symmetrischen Mehrfachstrangkernen (symmetric multi-threading (SMT) cores). Die Prozessoren 10A bis 10D sind in ihrem Aufbau identisch und enthalten Kerne 20A bis 20B und einen lokalen Datenspeicher 12, bei dem es sich um eine Cachespeicherebene oder eine Ebene von einem internen Systemspeicher handeln kann. Die Prozessoren 10A bis 10B sind mit einem Systemspeicher 14, einem feste Laufwerke und optische Laufwerke beinhaltenden Datenspeicher-Teilsystem 16 zum Lesen von Medien, wie beispielsweise einer CD-ROM 17, verbunden, die ein Computerprogrammprodukt ausbilden und Programmanweisungen enthalten, die einen Hypervisor zum Steuern mehrere logischer Partitionen (LPARs) zur Ausführung durch die Prozessoren 10A bis 10D realisieren, und zudem Betriebssysteme, von denen jedes mindestens einen Überwachungsstrang zum Verwalten des Betriebssystemplaners und anderer Dienste besitzt, und auch ausführbare Programme enthalten, die innerhalb der logischen Partitionen ausgeführte Anwendungen und Dienste realisieren. Das veranschaulichte Verarbeitungssystem enthält zudem Eingabe/Ausgabe(E/A)-Schnittstellen und -Einheiten 18, wie beispielsweise Mäuse und Tastaturen zum Empfangen von Benutzereingaben, sowie grafische Anzeigen zum Anzeigen von Informationen. Während das System von 1 verwendet wird, um eine Veranschaulichung eines Systems bereitzustellen, in dem die Prozessorarchitektur der vorliegenden Erfindung realisiert ist, versteht es sich, dass die abgebildete Architektur nicht einschränkend ist und dazu beabsichtigt ist, ein Beispiel eines geeigneten Computersystems bereitzustellen, in dem die Techniken der vorliegenden Erfindung angewandt werden.
  • Unter Bezugnahme auf 2 werden nun Details der Prozessorkerne 20A bis 20B von 1 im abgebildeten Kern 20 veranschaulicht. Der Kern 20 enthält eine Anweisungsabrufeinheit (instruction fetch unit (IFU)) 22, die einen oder mehrere Anweisungsströme aus Cachespeicher oder Systemspeicher abruft und den Anweisungsstrom oder die Anweisungsströme einer Anweisungsdecodiereinheit 24 vorlegt. Eine globale Verteileinheit 25 verteilt die decodierten Anweisungen auf eine Anzahl interner Prozessor-Pipelines. Die Prozessor-Pipelines enthalten jeweils einen Registerzuordner 26, eine von Ausgabewarteschlangen 27A bis 27D und eine durch eine Zweigausführungseinheit (branch execution unit (BXU)) 28 bereitgestellte Ausführungseinheit, eine Bedingungsergebniseinheit (condition result unit (CRU)) 29, eine Festkommaeinheit-Ladespeichereinheit (fixed-point unit load-store unit (FXU/LSU)) 30 oder Fließkommaeinheiten (floating point units (FPUs)) 31A bis 31B. Register, wie beispielsweise ein Zählerregister (counter register (CTR)) 23A, ein Bedingungsregister (condition register (CR)) 23B, universelle Register (general-purpose registers (GPR)) 23D und Fließkomma-Ergebnisregister (floating-point result registers (FPR)) 23C stellen Speicherorte für durch die entsprechende(n) Ausführungseinheit(en) durchgeführte Operationen bereit. Eine globale Durchführungstabelle (global completion table (GCT)) 21 stellt eine Angabe ausstehender Operationen dar, die als abgeschlossen markiert ist, wenn die Ergebnisse einer Anweisung an das entsprechende der Ergebnisregister 23A bis 23D übertragen werden. Die Registerzuordner 26 weisen Datenspeicher in den verschiedenen Registersätzen zu, so dass ein gleichzeitiges Ausführen von Programmcode durch die verschiedenen Pipelines unterstützt werden kann. Die FXU/LSU 30 ist mit einem Datencachespeicher 44 verbunden, der ein Laden und Speichern von Datenwerten im Speicher bereitstellt, die durch die Pipelines im Kern 20 benötigt oder modifiziert werden. Der Datencachespeicher 44 ist mit einem oder mehreren Adressumsetzpuffern (translation look-aside buffers (TLB)) 45 verbunden, die reale oder virtuelle Adressen im Datencachespeicher 44 Adressen in einem externen Speicherraum zuordnen.
  • Der beispielhafte Prozessorkern 20 enthält zudem einen logischen Stranginformationsblock 50, der im veranschaulichenden Beispiel und der Einfachheit der Veranschaulichung wegen alle hardware-strang-spezifischen Register innerhalb des Prozessorkerns 20 enthält. Während die hardware-strang-spezifischen Register allgemein zusammen mit anderen Registern oder an jedem beliebigen Standort angeordnet sein können, sind sie in der abgebildeten Ausführungsform eines Prozessorkerns mit anderer Logik organisiert, die den Zugriff durch die FXU/LSU 30 auf die hardware-strang-abhängigen Statusinformationen innerhalb des Kerns 20 durch sowohl den Hypervisor als auch durch die LPARs und innerhalb der LPARs ausgeführte Anwendungen steuert. Zu beispielhaften hardware-strang-abhängigen Statusinformationen zählen ein Strangidentifikationsregister (thread identification register (TIR)) 41 und ein Strangstatusregister (thread status register (CR)) 42 zusammen mit einem strangübergreifenden Nachrichtenzustellungs-Statusregister 43. In der nachstehenden Tabelle 1 sind die beispielhaften hardware-strang-spezifischen Statusregister und deren Funktion sowie Inhalte/Bereiche physischer Register aufgeführt. Tabelle I zeigt zudem die logischen Bereiche/Inhalte, die an eine LPAR ausgegeben werden, die versucht, auf das physische hardware-strang-spezifische Register entweder durch die nachstehend unter Bezugnahme auf 3 beschriebene Steuerlogik oder durch die nachstehend unter Bezugnahme auf 4 beschriebene Interrupt-Abwicklungssoftware zuzugreifen. Tabelle I
    Registername Funktion/ Bedeutung Physischer Wertebereich Logischer Wertebereich Umwandlungsalgorithmus für logische Werte
    TIR (Strangidentifikationsregister) Enthält die Stranganzahl des zugreifenden Prozesses 0 bis N, wobei N = Anzahl der Stränge minus 1 0 bis M, wobei M = Anzahl von der LPAR zugewiesenen Strängen minus 1 TIR - Basis[LPAR]
    Strangausführungs-Statusregister (CR) Gibt an, ob ein Strang aktiv ist (ausgeführt wird) Enthält ein Bit für jeden der Stränge 0 bis N Enthält linksausgerichtete Bits für jeden der Stränge 0 bis M shl(Basis[LPAR]) & Maskieren
    Strangübergreifende Nachrichtenzustellungs- Statusregister Gibt an, ob Nachrichten an Zielstrang zugestellt wurden Enthält ein Bit für jeden der Stränge 0 bis N Enthält linksausgerichtete Bits für jeden der Stränge 0 bis M shl(Basis[LPAR]) & Maskieren
  • Beim TIR 41 handelt es sich um ein Register, das den Wert der Hardware-Strang-Nummer des Strangs ausgibt, der auf das TIR 41 zugreift. Um der LPAR ein logisches Äquivalent bereitzustellen, das eine ausschließliche Nutzung des Prozessorkerns 20 durch einen Hardware-Strang simuliert, muss die Strang-Nummer auf einen Bereich von Hardware-Strang-Nummern normiert werden, der zur LPAR gehört. Der Einfachheit wegen und zum Zwecke der Veranschaulichung wird hierin davon ausgegangen, dass die zum Ausführen einer LPAR zugewiesenen Stränge aufeinander folgend nummeriert sind und sich von einer Basis-Hardware-Strang-Nummer Basis[LPAR] bis Basis[LPAR]+M erstrecken, wobei M um eins kleiner als die Anzahl von für die LPAR zugewiesenen Strängen ist.
  • Ein Umwandeln der Werte von TIR 41 erfordert lediglich ein Subtrahieren von Basis[LPAR] von der Strang-Nummer im TIR 41. Als ein Beispiel beträgt für einen Fall, in dem LPAR Nr. 1 Hardware-Strängen 0 bis 2 zugewiesen ist und somit Basis[LPAR]=0 aufweist und LPAR Nr. 2 Hardware-Strängen 3 bis 7 zugewiesen ist und somit Basis[LPAR]=3 besitzt, bei einem Zugriff des physischen Strangs 5 (von LPAR Nr. 2) auf TIR 41 der logische Wert, der durch eine die vorliegende Erfindung realisierende Hardware oder Software ausgegeben werden sollte, 2 (d.h. physischer Strang 5 minus Basis[LPAR], was 2 ergibt). Somit erscheint es für LPAR Nr. 1 durch die Umwandlung der physischen strang-spezifischen Informationen in logische strang-spezifische Informationen so, als ob sich der Bereich der Werte von TIR 41 von 0 bis 4 erstreckt, was das Ergebnis einer ausschließlichen Nutzung eines Prozessorkerns wäre, der fünf Hardware-Stränge unterstützt. Beim CR 42 handelt es sich um ein Register, dass den Ausführungszustand (aktiv/inaktiv) jedes Hardware-Strangs mit einem Bit für jeden durch den Prozessorkern 20 unterstützten Hardware-Strang enthält. Unter der Annahme, dass alle Bits von links nach rechts und beginnend mit 0 durchnummeriert sind, enthält der ausgegebene Wert im Falle eines Zugriffs durch eine LPAR auf das CR 42 ein Bit für jeden der für die LPAR zugewiesenen Stränge, so dass der physische Wert des CR 42 um Basis[LPAR] Bitpositionen nach links verschoben wird, um den an die LPAR ausgegebenen logischen Wert des CR 42 zu erhalten, und wird weiterhin mit einem Maskenwert maskiert der ein 1-Bit für jeden der LPAR zugewiesenen Hardware-Strang enthält. Wenn somit für das vorstehend gegebene Beispiel durch einen Strang von LPAR Nr.2, der eine Basis[LPAR] = 3 besitzt, auf das CR 42 zugegriffen wird, wird das CR 42 um drei Bitpositionen nach links verschoben und maskiert. Beim logischen Wert von CR 42 für LPAR Nr. 2 handelt es sich um ein 5-Bit-Feld, das die Bits 3 bis 7 des CR 42 enthält, das mit einer Maske 11111000 maskiert ist, um Informationen zu entfernen, die von rechts hereinverschoben wurden. LPAR Nr. 1, die eine Basis[LPAR] = 0 besitzt, empfängt ein Feld mit 3 Bits, das nur die Bits 0 bis 2 des CR 42 enthält, wobei es sich um den nicht verschobenen Wert des CR 42 handelt (da Basis[LPAR] = 0), der mit Maske = 11100000 maskiert ist, um Bits zu entfernen, die den physischen Strängen 3 bis 7 entsprechen. Das Umwandeln des Wertes des strangübergreifenden Nachrichtenzustellungs-Statusregisters 43 entspricht dem Umwandeln für das vorstehend beschriebene Steuerregister CR 42. Das strangübergreifende Nachrichtenzustellungs-Statusregister 43 enthält Bits, die anzeigen, ob eine Nachricht an einen anderen Strang zugestellt wurde. Das Register enthält ein Bit für jeden der anderen Stränge, so dass Nachrichten an jeden anderen Strang vom auf das Register zugreifenden Strang verfolgt werden können. Um den Wert des strangübergreifenden Nachrichtenzustellungs-Statusregisters 43 umzuwandeln, wird der tatsächliche Wert des strangübergreifenden Nachrichtenzustellungs-Statusregisters 43 um die durch Basis[LPAR] festgelegte Anzahl von Bits nach links verschoben. Somit empfängt im vorstehend gegebenen Beispiel LPAR Nr. 2 einen Wert für das strangübergreifende Nachrichtenzustellungs-Statusregister 43, bei dem es sich um ein 5-Bit-Feld handelt, das die Bits für die Stränge 3 bis 7 enthält, das um 3 Bits nach links verschoben und mit einem Wert von 11111000 maskiert ist, um Informationen zu entfernen, die unter Umständen von rechts hereinverschoben wurden. Gleichermaßen empfängt LPAR Nr. 1 einen Wert für das strangübergreifende Nachrichtenzustellungs-Statusregister 43, bei dem es sich um ein 3-Bit-Feld handelt, das die Bits für die Stränge 0 bis 2 enthält, das nicht verschoben ist und mit einem Wert von 11100000 maskiert ist, um Informationen über die physischen Stränge 3 bis 7 zu entfernen. Beim Senden von Nachrichten zwischen Strängen verwenden die durch die LPARs ausgeführten Programmanweisungen logische Strang-Nummern. Wenn eine logische Strang-Nummer, an die eine Nachricht gesendet wird, außerhalb des zum Ausführen der LPAR zugewiesenen Bereichs liegt, von welcher die Nachricht stammt, wird ein Fehler berichtet. Nachrichten an Stränge, die nicht zum Ausführen der LPAR zugewiesen sind, werden somit gesperrt, um einen Datenaustausch mit einem Strang einer anderen LPAR zu verhindern.
  • Unter Bezugnahme auf 3 werden nun Details eines logischen Stranginformationsblockes 50 von 2 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Die in 3 abgebildete Schaltung stellt ein einzelnes Beispiel bereit, obwohl es viele unterschiedliche Arten gibt, den logischen Stranginformationsblock 50 zu realisieren. Innerhalb des logischen Stranginformationsblocks 50 werden hardware-strang-abhängige Informationsstatusregister durch ein Register 51 dargestellt, und es versteht sich, dass die Eingaben, Ausgaben und Schaltungen, die zum Durchführen der vorstehend beschriebenen Umwandlungen erforderlich sind, bei Bedarf für jedes solche Statusregister 51 dupliziert werden. Ein Auswähler 53 wählt die Ausgabe des Statusregisters 51 aus, es sei denn auf das Statusregister 51 wird durch einen Nicht-Hypervisor-Prozess (Steuersignal /hyp = 1) zugegriffen. Ein Logisches UND-Gatter 54 stellt dem Auswähler 53 das Auswahlsignal bereit, das im Falle, dass auf das Statusregister 51 durch einen Nicht-Hypervisor-Prozess zugegriffen wird, die Ausgabe der Umwandlungslogik 52 auswählt, welche die vorstehend unter Bezugnahme auf 2 beschriebenen Umwandlungen durchführt.
  • Unter Bezugnahme auf 4 wird nun in einem Ablaufplan ein Verfahren zum Bereitstellen von hardware-strang-abhängigen Statusinformationen für LPARs gemäß einer alternativen Ausführungsform der vorliegenden Erfindung veranschaulicht. Das in 4 veranschaulichte Verfahren erfordert keine Realisierung des logischen Stranginformationsblocks 50 im Prozessorkern 20 und stellt einen alternativen Mechanismus zum Umwandeln der physischen hardware-strang-abhängigen Registerwerte in Werte bereit, die eine ausschließliche Nutzung des Prozessorkerns 20 durch jede der LPARs simuliert. Wie in 4 veranschaulicht, wird bei einem Zugriff eines Programms auf ein Register, das hardware-strang-spezifische Informationen enthält (Schritt 60) im Falle, dass es sich bei dem zugreifenden Prozess um den Hypervisor handelt (Entscheidung 61), der physische Registerwert ausgegeben (Schritt 62). Wenn es sich bei dem zugreifenden Prozess jedoch nicht um den Hypervisor handelt (Entscheidung 61), d.h. der zugreifende Prozess zu einer der LPARs gehört, wird ein Hardware-Interrupt ausgelöst, um den Zugriff zu unterbrechen (Schritt 63). Der Prozessorkern 20 besitzt programmatische Kontrolle über die Ausgabeadresse, an die der Interrupt-Dienst-Abwickler die Ausgabe vornehmen wird, und setzt die Ausgabeadresse auf die Adresse der Anweisung, die der Anweisung folgt, die versucht hat, auf das hardware-strang-abhängige Register zuzugreifen. Der logische Registerwert wird entweder erhalten, indem programmatisch Operationen durchgeführt werden, die ähnlich den durch die vorstehend unter Bezugnahme auf 3 beschriebene Logik durchgeführten sind, oder die Umwandlung kann im Voraus durchgeführt und jedes Mal gepflegt werden, wenn eines der strang-abhängigen Statusinformationsregister im Speicher aktualisiert wird, so dass die logischen hardware-strang-abhängigen Registerwerte abgerufen (Schritt 64) und dann als Reaktion auf den Zugriff ausgegeben werden können (Schritt 65), was allgemein durchgeführt wird, indem das durch die zugreifende Anweisung angegebene Zielregister oder der entsprechende Speicherort mit den umgewandelten hardware-strang-abhängigen Informationen beschrieben wird. Der Prozess der Schritte 60 bis 65 wird wiederholt, bis das System heruntergefahren wird oder optional, falls ein LPAR tatsächlich volle und ausschließliche Nutzung des Prozessorkerns besitzt (Entscheidung 65),
  • Wie vorstehend festgehalten, können Teile der vorliegenden Erfindung in einem Computerprogrammprodukt ausgebildet werden, zu dem Firmware, ein Image in Systemspeicher oder einem anderen Speicher/Cachespeicher zählen, oder auf einem festen oder wiederbeschreibbaren Medium, wie beispielsweise einer optischen Platte mit darauf gespeichertem computerlesbarem Code gespeichert werden. Auf jeder beliebigen Kombination aus einem oder mehreren computerlesbaren Medien kann ein Programm gemäß einer Ausführungsform der Erfindung gespeichert werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um ein System, eine Vorrichtung oder eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot oder Halbleiter verwendender Art sowie jede beliebige geeignete Kombination des Vorgenannten handeln. Zu spezielleren Beispielen für das computerlesbare Speichermedium kann Folgendes gehören (nicht abschließende Liste): eine elektrische Verbindung mit einer oder mehreren Leitungen, eine transportable Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (random access memory (RAM)), ein Nur-Lese-Speicher (read-only memory (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory (EPROM) oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler Compact-Disk-Nur-Lese-Speicher (compact disc read-only memory (CD-ROM)), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorgenannten.
  • Im Kontext der vorliegenden Anmeldung kann es sich bei einem computerlesbaren Speichermedium um jedes gegenständliche Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen beinhalten oder speichern kann. Zu einem computerlesbaren Signalmedium kann ein verbreitetes Datensignal mit darin zum Beispiel in einem Basisband oder als Teil einer Trägerwelle ausgebildetem computerlesbarem Programmcode zählen. Solch ein verbreitetes Signal kann in jeder beliebigen einer Vielfalt von Formen ausgebildet werden, einschließlich, ohne auf diese beschränkt zu sein, elektromagnetische, optische oder jede geeignete Kombination davon. Bei einem computerlesbaren Signalmedium kann es sich um jedes computerlesbare Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen übertragen, verbreiten oder transportieren kann. In einem computerlesbaren Medium enthaltener Programmcode kann mittels eines beliebigen geeigneten Mediums übertragen werden, wie beispielsweise, jedoch nicht beschränkt auf, kabellose, kabelgebundene, Lichtwellenleiterkabel, Hochfrequenz (HF) usw., oder einer beliebigen geeigneten Kombination des zuvor Genannten.
  • Obwohl die Erfindung insbesondere unter Bezugnahme auf die bevorzugten Ausführungsformen davon gezeigt und beschrieben wurde, versteht es sich für den Fachmann, dass die vorhergehenden und weitere Änderungen in Form und Einzelheiten daran vorgenommen werden können, ohne vom Geist und Umfang der Erfindung abzuweichen.

Claims (8)

  1. Verfahren zum Bereitstellen von hardware-strang-spezifischen Informationen in einem Prozessor (10A-10D) mit mehreren Strängen, welcher eine Anzahl an Hardware-Strängen unterstützt, auf dem mehrere Prozesse innerhalb logischer Partitionen ausgeführt werden, wobei das Verfahren aufweist: Pflegen der hardware-strang-spezifischen Informationen in einem Register (51) innerhalb des Prozessors mit mehreren Strängen; Erkennen eines Zugriffs auf die hardware-strang-spezifischen Informationen durch einen der derzeit ausgeführten Prozesse; Feststellen, ob eine Berechtigungsebene des derzeit ausgeführten Prozesses anzeigt, dass der derzeit ausgeführte Prozess einem Prozess innerhalb einer gegebenen der mehreren logischen Partitionen entspricht; und als Reaktion auf das Feststellen dass der derzeit ausgeführten Prozess einem Prozess innerhalb einer gegebenen der mehreren logischen Partitionen entspricht, selektives Umwandeln der hardware-strang-spezifischen Informationen auf eine Weise, die als ausschließliche Nutzung des Prozessors mit mehreren Strängen durch Hardware-Stränge anzeigt, die für Prozesse der gegebenen logischen Partition ausgeführt werden, während Hardware-Strang spezifische Informationen maskiert werden, die in dem Register vorhanden sind, das einem oder mehreren Hardware-Strängen des Prozessors mit mehreren Strängen entspricht, die zur Ausführung von Prozessen einer anderen logischen Partition zugewiesen wird, bei der es sich nicht um die gegebene logische Partition handelt
  2. Verfahren nach Anspruch 1, wobei das Feststellen ferner feststellt, dass die Berechtigungsebene des derzeit ausgeführten Prozesses einem Hypervisor entspricht, der die mehreren logischen Partitionen verwaltet, und wobei das Verfahren ferner umfasst, dass als Reaktion auf die Feststellung, dass der aktuell ausgeführte Prozess ein Prozess des Hypervisors ist, die hardware-strang-spezifischen Informationen in einer Weise zu formatieren, die alle hardware-strang-spezifischen Informationen in dem Register für alle der Anzahl an durch den Prozessors mit mehreren Strängen unterstützten Hardware-Stränge zeigt.
  3. Verfahren nach Anspruch 1, wobei das Umwandeln durch eine Schaltung durchgeführt wird, aufweisend: einen Logikblock, der einen logischen Registerwert aus den hardware-strang-spezifischen Informationen im Register erzeugt, um die ausschließliche Nutzung des Prozessors mit mehreren Strängen durch die gegebene Partition zu simulieren, wobei sich der logische Registerwert von einem tatsächlichen Wert im Register unterscheidet; und einen mit dem Logikblock verbundenen Datenauswähler, der eine Ausgabe des Logikblocks auswählt, um den logischen Registerwert dem derzeit ausgeführten Prozess als Reaktion auf den Zugriff bereitzustellen.
  4. Verfahren nach Anspruch 2, wobei das Formatieren durchgeführt wird durch: Erzeugen eines Unterbrechungs-Interrupt, wenn der Zugriff auf die hardware-strang-spezifischen Informationen durch das Erkennen erkannt wird; Umwandeln der hardware-strang-spezifischen Informationen im Register durch den Prozessor mit mehreren Strängen, der eine den Unterbrechungs-Interrupt bedienende Interrupt-Dienstroutine ausführt, um die ausschließlich Nutzung des Prozessors mit mehreren Strängen durch die gegebene Partition zu simulieren, um einen logischen Registerwert zu erzeugen, der sich von einem tatsächlichen Wert im Register unterscheidet; und Ersetzen eines Ausgabewertes für den Zugriff auf die hardware-strang-spezifischen Informationen durch den logischen Registerwert.
  5. Verfahren nach Anspruch 1, wobei es sich bei den hardware-strang-spezifischen Informationen um eine Anzahl von durch den Prozessor mit mehreren Strängen unterstützten Hardware-Strängen handelt, und wobei das Umwandeln eine Menge der Anzahl der Hardware-Stränge ausgibt, die der gegebenen Partition zugewiesenen sind.
  6. Verfahren nach Anspruch 1, wobei es sich bei den hardware-strang-spezifischen Informationen um einen Wert handelt, der von einer logischen Hardware-Strang-Nummer eines bestimmten Hardware-Strangs abhängt, welcher der gegebenen Partition zugewiesen ist und durch den Zugriff festgelegt wird, und wobei das Umwandeln aufweist: Erzeugen einer tatsächlichen Hardware-Strang-Nummer aus der logischen Hardware-Strang-Nummer; Abrufen der hardware-strang-spezifischen Informationen für den bestimmten Hardware-Strang unter Benutzung der tatsächlichen Hardware-Strang-Nummer; und Ausgeben der abgerufenen hardware-strang-spezifischen Informationen als Reaktion auf den Zugriff.
  7. Verfahren nach Anspruch 6, wobei es sich bei den hardware-strang-spezifischen Informationen um die Hardware-Strang-Nummer des den Zugriff durchführenden Hardware-Strangs handelt, und wobei bei dem Ändern eine Basis-Strang-Nummer für die gegebene Partition subtrahiert wird, um die tatsächliche Hardware-Strang-Nummer zu erhalten.
  8. Computerprogrammprodukt, das, wenn es auf einem Prozessor ausgeführt wird, diesen veranlasst, die Vorgänge nach einem der Ansprüche 1 bis 7 durchzuführen.
DE112012005085.1T 2012-01-06 2012-12-10 Bereitstellen logischer Partitionen mit einer ausschließlichen Nutzung eines Prozessorkerns wiedergebenden hardware-strang-spezifischen Information Active DE112012005085B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/345,002 2012-01-06
US13/345,002 US9069598B2 (en) 2012-01-06 2012-01-06 Providing logical partions with hardware-thread specific information reflective of exclusive use of a processor core
PCT/EP2012/074935 WO2013102532A2 (en) 2012-01-06 2012-12-10 Providing logical partitions with hardware-thread specific information reflective of exclusive use of a processor core

Publications (2)

Publication Number Publication Date
DE112012005085T5 DE112012005085T5 (de) 2014-08-28
DE112012005085B4 true DE112012005085B4 (de) 2024-01-18

Family

ID=47469923

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012005085.1T Active DE112012005085B4 (de) 2012-01-06 2012-12-10 Bereitstellen logischer Partitionen mit einer ausschließlichen Nutzung eines Prozessorkerns wiedergebenden hardware-strang-spezifischen Information

Country Status (5)

Country Link
US (4) US9069598B2 (de)
CN (1) CN104011681B (de)
DE (1) DE112012005085B4 (de)
GB (1) GB2513266B (de)
WO (1) WO2013102532A2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069598B2 (en) 2012-01-06 2015-06-30 International Business Machines Corporation Providing logical partions with hardware-thread specific information reflective of exclusive use of a processor core
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
US9218185B2 (en) 2014-03-27 2015-12-22 International Business Machines Corporation Multithreading capability information retrieval
US9417876B2 (en) 2014-03-27 2016-08-16 International Business Machines Corporation Thread context restoration in a multithreading computer system
US9921848B2 (en) 2014-03-27 2018-03-20 International Business Machines Corporation Address expansion and contraction in a multithreading computer system
US9804846B2 (en) 2014-03-27 2017-10-31 International Business Machines Corporation Thread context preservation in a multithreading computer system
US9354883B2 (en) 2014-03-27 2016-05-31 International Business Machines Corporation Dynamic enablement of multithreading
US9594660B2 (en) 2014-03-27 2017-03-14 International Business Machines Corporation Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores
US10102004B2 (en) 2014-03-27 2018-10-16 International Business Machines Corporation Hardware counters to track utilization in a multithreading computer system
GB2537115B (en) * 2015-04-02 2021-08-25 Advanced Risc Mach Ltd Event monitoring in a multi-threaded data processing apparatus
US10908909B2 (en) * 2015-06-09 2021-02-02 Optimum Semiconductor Technologies Inc. Processor with mode support
US10209889B2 (en) 2016-07-14 2019-02-19 International Business Machines Corporation Invalidation of shared memory in a virtual environment
US10176115B2 (en) 2016-07-14 2019-01-08 International Business Machines Corporation Shared memory in a virtual environment
US10552211B2 (en) * 2016-09-02 2020-02-04 Intel Corporation Mechanism to increase thread parallelism in a graphics processor
US10664306B2 (en) 2017-01-13 2020-05-26 Arm Limited Memory partitioning
US10268379B2 (en) * 2017-01-13 2019-04-23 Arm Limited Partitioning of memory system resources or performance monitoring
WO2018129708A1 (en) * 2017-01-13 2018-07-19 Alibaba Group Holding Limited Determining processor utilization of multiprocessing system
US10649678B2 (en) 2017-01-13 2020-05-12 Arm Limited Partitioning of memory system resources or performance monitoring
US10394454B2 (en) 2017-01-13 2019-08-27 Arm Limited Partitioning of memory system resources or performance monitoring
US20180203807A1 (en) 2017-01-13 2018-07-19 Arm Limited Partitioning tlb or cache allocation
US10664400B2 (en) 2017-07-11 2020-05-26 Arm Limited Address translation cache partitioning
US20190095554A1 (en) * 2017-09-28 2019-03-28 Intel Corporation Root complex integrated endpoint emulation of a discreet pcie endpoint
GB2570161B (en) * 2018-01-16 2020-03-25 Advanced Risc Mach Ltd Simulation of exclusive instructions
US10747508B2 (en) * 2018-12-31 2020-08-18 Rockwell Automation Technologies, Inc. Function block framework generation
US11256625B2 (en) 2019-09-10 2022-02-22 Arm Limited Partition identifiers for page table walk memory transactions
US11500568B2 (en) 2020-01-02 2022-11-15 International Business Machines Corporation LPM management using contingent and conditional inputs
US20220318051A1 (en) * 2021-03-31 2022-10-06 Arm Limited Circuitry and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060004942A1 (en) 2004-06-30 2006-01-05 Sun Microsystems, Inc. Multiple-core processor with support for multiple virtual processors
US20060253682A1 (en) 2005-05-05 2006-11-09 International Business Machines Corporation Managing computer memory in a computing environment with dynamic logical partitioning

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
US6539427B1 (en) * 1999-06-29 2003-03-25 Cisco Technology, Inc. Dynamically adaptive network element in a feedback-based data network
US6438671B1 (en) * 1999-07-01 2002-08-20 International Business Machines Corporation Generating partition corresponding real address in partitioned mode supporting system
US6668317B1 (en) * 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6542920B1 (en) 1999-09-24 2003-04-01 Sun Microsystems, Inc. Mechanism for implementing multiple thread pools in a computer system to optimize system performance
US7216233B1 (en) 2000-08-14 2007-05-08 Sun Microsystems, Inc. Apparatus, methods, and computer program products for filtering information
US6748556B1 (en) * 2000-08-15 2004-06-08 International Business Machines Corporation Changing the thread capacity of a multithreaded computer processor
US20020161828A1 (en) * 2001-04-30 2002-10-31 Michael Edison System and method for communicating with a device
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7287254B2 (en) * 2002-07-30 2007-10-23 Unisys Corporation Affinitizing threads in a multiprocessor system
JP4123942B2 (ja) * 2003-01-14 2008-07-23 株式会社日立製作所 情報処理装置
US20050028105A1 (en) * 2003-02-28 2005-02-03 Scott Musson Method for entitling a user interface
US7328438B2 (en) 2003-03-27 2008-02-05 International Business Machines Corporation Deallocation of computer data in a multithreaded computer
US7000051B2 (en) * 2003-03-31 2006-02-14 International Business Machines Corporation Apparatus and method for virtualizing interrupts in a logically partitioned computer system
US7496915B2 (en) 2003-04-24 2009-02-24 International Business Machines Corporation Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes
US7350060B2 (en) 2003-04-24 2008-03-25 International Business Machines Corporation Method and apparatus for sending thread-execution-state-sensitive supervisory commands to a simultaneous multi-threaded (SMT) processor
US7197745B2 (en) * 2003-05-02 2007-03-27 Microsoft Corporation User debugger for use on processes running in a high assurance kernel in an operating system
US8032890B2 (en) * 2003-07-22 2011-10-04 Sap Ag Resources managing in isolated plurality of applications context using data slots to access application global data and specification of resources lifetime to access resources
US7418585B2 (en) * 2003-08-28 2008-08-26 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7089341B2 (en) * 2004-03-31 2006-08-08 International Business Machines Corporation Method and apparatus for supporting interrupt devices configured for a particular architecture on a different platform
US7216223B2 (en) * 2004-04-30 2007-05-08 Hewlett-Packard Development Company, L.P. Configuring multi-thread status
US7890735B2 (en) * 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US7370156B1 (en) * 2004-11-04 2008-05-06 Panta Systems, Inc. Unity parallel processing system and method
US7810083B2 (en) 2004-12-30 2010-10-05 Intel Corporation Mechanism to emulate user-level multithreading on an OS-sequestered sequencer
US20060212870A1 (en) 2005-02-25 2006-09-21 International Business Machines Corporation Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
US8230423B2 (en) * 2005-04-07 2012-07-24 International Business Machines Corporation Multithreaded processor architecture with operational latency hiding
CN100552771C (zh) * 2005-04-15 2009-10-21 松下电器产业株式会社 显示控制电路及显示系统
US20070094664A1 (en) * 2005-10-21 2007-04-26 Kimming So Programmable priority for concurrent multi-threaded processors
JP2007133807A (ja) 2005-11-14 2007-05-31 Hitachi Ltd データ処理システム、ストレージ装置及び管理装置
US7669186B2 (en) * 2005-11-16 2010-02-23 Sun Microsystems, Inc. Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents
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
WO2008077628A2 (en) 2006-12-22 2008-07-03 Virtuallogix Sa System for enabling multiple execution environments to share a device
US7783849B2 (en) * 2007-01-05 2010-08-24 International Business Machines Corporation Using trusted user space pages as kernel data pages
US7941803B2 (en) 2007-01-15 2011-05-10 International Business Machines Corporation Controlling an operational mode for a logical partition on a computing system
US9003410B2 (en) * 2007-01-30 2015-04-07 Hewlett-Packard Development Company, L.P. Abstracting a multithreaded processor core to a single threaded processor core
US7711822B1 (en) * 2007-03-26 2010-05-04 Oracle America, Inc. Resource management in application servers
US8812824B2 (en) 2007-06-13 2014-08-19 International Business Machines Corporation Method and apparatus for employing multi-bit register file cells and SMT thread groups
US8161476B2 (en) * 2007-07-04 2012-04-17 International Business Machines Corporation Processor exclusivity in a partitioned system
US8219988B2 (en) * 2007-08-02 2012-07-10 International Business Machines Corporation Partition adjunct for data processing system
US7739434B2 (en) * 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
US7734900B2 (en) * 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US8897742B2 (en) * 2009-11-13 2014-11-25 William J. Johnson System and method for sudden proximal user interface
US8634796B2 (en) * 2008-03-14 2014-01-21 William J. Johnson System and method for location based exchanges of data facilitating distributed location applications
US8200947B1 (en) * 2008-03-24 2012-06-12 Nvidia Corporation Systems and methods for voting among parallel threads
US9058483B2 (en) * 2008-05-08 2015-06-16 Google Inc. Method for validating an untrusted native code module
JP5379122B2 (ja) * 2008-06-19 2013-12-25 パナソニック株式会社 マルチプロセッサ
US8151095B1 (en) * 2008-07-18 2012-04-03 Nvidia Corporation System and method for context migration across CPU threads
US8136158B1 (en) * 2008-07-21 2012-03-13 Google Inc. User-level segmentation mechanism that facilitates safely executing untrusted native code
US8560568B2 (en) * 2008-08-26 2013-10-15 Zeewise, Inc. Remote data collection systems and methods using read only data extraction and dynamic data handling
US9405931B2 (en) * 2008-11-14 2016-08-02 Dell Products L.P. Protected information stream allocation using a virtualized platform
US8949838B2 (en) * 2009-04-27 2015-02-03 Lsi Corporation Multi-threaded processing with hardware accelerators
US8195879B2 (en) * 2009-05-08 2012-06-05 International Business Machines Corporation Demand based partitioning of microprocessor caches
US8484648B2 (en) 2009-10-19 2013-07-09 International Business Machines Corporation Hardware multi-threading co-scheduling for parallel processing systems
US8615644B2 (en) 2010-02-19 2013-12-24 International Business Machines Corporation Processor with hardware thread control logic indicating disable status when instructions accessing shared resources are completed for safe shared resource condition
US8775781B2 (en) * 2010-03-25 2014-07-08 Microsoft Corporation Intelligent boot device selection and recovery
US8719561B2 (en) * 2010-11-29 2014-05-06 International Business Machines Corporation Automatic configuration sampling for managing configuration parameters of a computer system
US9547593B2 (en) * 2011-02-28 2017-01-17 Nxp Usa, Inc. Systems and methods for reconfiguring cache memory
US8793284B2 (en) * 2011-05-26 2014-07-29 Laurie Dean Perrin Electronic device with reversing stack data container and related methods
US8751872B2 (en) * 2011-05-27 2014-06-10 Microsoft Corporation Separation of error information from error propagation information
US9092236B1 (en) * 2011-06-05 2015-07-28 Yong-Kyu Jung Adaptive instruction prefetching and fetching memory system apparatus and method for microprocessor system
US8667600B2 (en) * 2011-06-30 2014-03-04 International Business Machines Corporation Trusted computing source code escrow and optimization
US8694738B2 (en) * 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US8898434B2 (en) * 2011-11-11 2014-11-25 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Optimizing system throughput by automatically altering thread co-execution based on operating system directives
US9069598B2 (en) 2012-01-06 2015-06-30 International Business Machines Corporation Providing logical partions with hardware-thread specific information reflective of exclusive use of a processor core
WO2013147865A1 (en) * 2012-03-30 2013-10-03 Intel Corporation A mechanism for saving and retrieving micro-architecture context
JP5813554B2 (ja) * 2012-03-30 2015-11-17 ルネサスエレクトロニクス株式会社 半導体装置
US8578069B2 (en) * 2012-04-04 2013-11-05 International Business Machines Corporation Prefetching for a shared direct memory access (DMA) engine
WO2013151454A1 (en) * 2012-04-06 2013-10-10 Google Inc. Hosted application sandboxing
US8804523B2 (en) * 2012-06-21 2014-08-12 Microsoft Corporation Ensuring predictable and quantifiable networking performance
US9524263B2 (en) * 2012-06-29 2016-12-20 Intel Corporation Method and apparatus for bus lock assistance
US9436626B2 (en) * 2012-08-09 2016-09-06 Freescale Semiconductor, Inc. Processor interrupt interface with interrupt partitioning and virtualization enhancements
CN103853527A (zh) * 2012-11-29 2014-06-11 国际商业机器公司 切换多线程程序中的对象锁定模式的方法和系统
US9183399B2 (en) * 2013-02-14 2015-11-10 International Business Machines Corporation Instruction set architecture with secure clear instructions for protecting processing unit architected state information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060004942A1 (en) 2004-06-30 2006-01-05 Sun Microsystems, Inc. Multiple-core processor with support for multiple virtual processors
US20060253682A1 (en) 2005-05-05 2006-11-09 International Business Machines Corporation Managing computer memory in a computing environment with dynamic logical partitioning

Also Published As

Publication number Publication date
WO2013102532A2 (en) 2013-07-11
US20180121675A1 (en) 2018-05-03
US20130179886A1 (en) 2013-07-11
GB2513266B (en) 2020-09-23
CN104011681B (zh) 2017-07-28
GB2513266A (en) 2014-10-22
US8990816B2 (en) 2015-03-24
DE112012005085T5 (de) 2014-08-28
GB201412799D0 (en) 2014-09-03
US9069598B2 (en) 2015-06-30
US9898616B2 (en) 2018-02-20
US10354085B2 (en) 2019-07-16
CN104011681A (zh) 2014-08-27
US20130179892A1 (en) 2013-07-11
US20150254473A1 (en) 2015-09-10
WO2013102532A3 (en) 2013-08-29

Similar Documents

Publication Publication Date Title
DE112012005085B4 (de) Bereitstellen logischer Partitionen mit einer ausschließlichen Nutzung eines Prozessorkerns wiedergebenden hardware-strang-spezifischen Information
DE3716229C2 (de) Mikroprozessorchip mit einem Stapelrahmen-Cache
DE112015004983T5 (de) Parallel-Slice-Prozessor mit einer Lade-Speicher-Umlaufwarteschlange für eine schnelle Freigabe von Einträgen in einer Ausgabewarteschlange
DE112005003863B3 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE60308201T2 (de) Datenverarbeitungssystem mit externen und internen anweisungssätzen
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE102014003790A1 (de) Parallelvorrichtung für hochkomprimierte Hochgeschwindigkeits-LZ77-Tokenisierung und Huffman-Codierung für Deflate-Komprimierung
DE112010003595T5 (de) Verfahren, System und maschinenverarbeitbares Medium zur Bereitstellung einer verteiltenPrädikatvorhersage
DE102014003563A1 (de) Fusionierbare befehle und logik zum versehen mit or-test- und and-test-funktionalität unter benutzen von mehrfachtestquellen
DE102014004564A1 (de) Prozessoren, verfahren und systeme zum implementieren von teilregisterzugriffen mit maskierten gesamtregisterzugriffen
DE2517276A1 (de) Datenverarbeitungssystem
DE112013004783T5 (de) Durch Lese- und Schreibmasken gesteuerter Vektor-Verschiebebefehl
DE102018125805A1 (de) Systeme, verfahren, und vorrichtungen für skalarproduktoperationen
DE112012007088T5 (de) Befehl zum Reduzieren von Elementen in einem Vektorregister mit einem schrittweisen Zugriffsmuster
DE102009051288A1 (de) Befehl und Logik zur Ausführung von Bereichserkennung
DE102020129549A1 (de) Leistungsüberwachung in heterogenen systemen
DE112011103197T5 (de) Verfahren und Vorrichtung für universelle logische Operationen
DE102019119956A1 (de) Architektur und verfahren zur datenparallelen einzelprogramm- mehrfachdaten(spmd)-ausführung
DE102018005039A1 (de) System und verfahren für pro-agent-steuerung und - dienstqualität gemeinsam genutzter ressourcen in chip-mehrprozessor-plattformen
DE102018126036A1 (de) Systeme und verfahren zum setzen eines kachelregisterpaars auf null
DE102018128626A1 (de) Systeme, Verfahren und Vorrichtungen für Matrixoperationen
DE102021116489A1 (de) Verwaltung von Prefetch-Anfragen auf Basis von Stream-Informationen für zuvor erkannte Streams
DE102018125971A1 (de) Systeme und verfahren zum berechnen von skalaprodukten von halbbytes in operanden aus zwei kacheln
DE112012004468B4 (de) Anwendungs-Level-Spekulative-Verarbeitung
DE112017003337T5 (de) Architekturregisteraustausch für anweisungen, die mehrere architekturregister verwenden

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence
R016 Response to examination communication
R018 Grant decision by examination section/examining division