DE102009060265A1 - Efficient use of a remapping engine - Google Patents

Efficient use of a remapping engine Download PDF

Info

Publication number
DE102009060265A1
DE102009060265A1 DE102009060265A DE102009060265A DE102009060265A1 DE 102009060265 A1 DE102009060265 A1 DE 102009060265A1 DE 102009060265 A DE102009060265 A DE 102009060265A DE 102009060265 A DE102009060265 A DE 102009060265A DE 102009060265 A1 DE102009060265 A1 DE 102009060265A1
Authority
DE
Germany
Prior art keywords
remapping
traffic
engine
amount
remapping engine
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.)
Ceased
Application number
DE102009060265A
Other languages
German (de)
Inventor
Ramakrishna Cornelius Saripalli
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 DE102009060265A1 publication Critical patent/DE102009060265A1/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Bus Control (AREA)

Abstract

Ein Gerät, System und Verfahren werden offenbart. Bei einer Ausführungsform enthält das Gerät Remapping-Engine-Neuzuweisungs-Logik, die in der Lage ist, eine erste Menge an Verkehr zu überwachen, welche durch eine erste Remapping-Engine übersetzt wird. Wenn die erste Menge an Verkehr den Schwellenwert der ersten Remapping-Engine erreicht, wird die Logik einen Teil des Verkehrs umleiten, um durch eine zweite Remapping-Engine übersetzt zu werden.An apparatus, system and method are disclosed. In one embodiment, the device includes remapping engine reallocation logic that is capable of monitoring a first amount of traffic that is translated by a first remapping engine. When the first amount of traffic hits the first remapping engine's threshold, the logic will reroute some of the traffic to be translated by a second remapping engine.

Description

GEBIET DER ERFINDUNGFIELD OF THE INVENTION

Die Erfindung betrifft Remapping-Engine-Übersetzungen bei einer Computerplattform, die Virtualisierung implementiert.The Invention relates to remapping engine translations in a computer platform, implemented the virtualization.

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION

Viele Computerplattformen verwenden Virtualisierung, um Ressourcen effizienter zu handhaben und zu priorisieren. Eingabe/Ausgabe-(I/O – Input/Output)-Geräte können aus der Virtualisierung ebenso einen Nutzen ziehen. Intel® Corporation hat eine Virtualisierungstechnologie für die Direct-I/O-(VT-d)-Spezifikation (Revision 1.0, September 2008) herausgebracht, welche die Implementierungsdetails beschreibt, Direct-Memory-Access-(DMA)-aktivierte I/O-Geräte in einem virtualisierten Umfeld zu nutzen.Many computer platforms use virtualization to more efficiently manage and prioritize resources. Input / output (I / O) devices can also benefit from virtualization. Intel ® Corporation has released a virtualization technology for direct I / O (VT-d) specification (Revision 1.0, September 2008), which describes the implementation details, Direct Memory Access (DMA) -enabled I / O Use devices in a virtualized environment.

Um virtuelle Adressen in DMA- und Interrupt-Anfragen, die von einem I/O-Gerät empfangen wurden, effizient in physische Speicheradressen zu übersetzen, wurde eine Logik, genannt Remapping-Engine, entwickelt, welche die Übersetzung durchführt. Eine gegebene Computerplattform kann mehrere Remapping-Engines besitzen. Die VT-d-Spezifikation ermöglicht einem gegebenen I/O-Gerät, wie beispielsweise einem Platform-Component-Interconnect-(PCI)- oder einem PCI-Express-Gerät, sich im Umfang einer einzelnen Remapping-Engine zu befinden. Diese Zuordnung eines Gerätes zu einer Remapping-Engine erfolgt zur Zeit des Hardware-Designs und ist eine Eigenschaft des Designs der Computerplattform.Around virtual addresses in DMA and interrupt requests issued by a I / O device to efficiently translate into physical memory addresses, was a logic, called remapping engine, developed which the translation performs. A given computer platform may have multiple remapping engines. The VT-D specification allows a given I / O device, such as a Platform Component Interconnect (PCI) or a PCI Express device, to be within the scope of a single remapping engine. These Assignment of a device to a remapping engine is done at the time of hardware design and is a feature of the design of the computer platform.

Die Zuordnung eines I/O-Gerätes zu einer einzelnen Remapping-Engine macht es für einen Virtual Machine Monitor (VMM) oder ein Betriebssystem (OS) unflexibel. Das kann auch in verminderter Leistung resultieren.The Assignment of an I / O device It makes for a single remapping engine for a virtual machine monitor (VMM) or an operating system (OS) inflexible. That can also be done in reduced power result.

KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Die vorliegende Erfindung ist exemplarisch und in keiner Weise einschränkend durch die Zeichnungen dargestellt, in denen gleiche Bezugsnummern ähnliche Elemente bezeichnen und in denen Folgendes dargestellt ist:The The present invention is exemplary in nature and not restrictive in any way the drawings are shown in which like reference numerals are similar Denote elements and in which:

1 beschreibt eine Ausführungsform eines Systems und eines Gerätes, um Remapping-Engines neu zuzuweisen und damit die gesamte Remapping-Last zwischen verfügbaren Remapping-Engines auszugleichen. 1 describes one embodiment of a system and device to reassign remapping engines to balance the entire remapping load between available remapping engines.

2 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses, um ein I/O-Gerät von einer Remapping-Engine zu einer anderen Remapping-Engine zu migrieren. 2 FIG. 10 is a flowchart of one embodiment of a process to migrate an I / O device from a remapping engine to another remapping engine.

AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNGDETAILED DESCRIPTION OF THE INVENTION

Ausführungsformen von einem Gerät, System und Verfahren, um Remapping-Engines neu zuzuweisen und damit die gesamte Remapping-Last zwischen verfügbaren Remapping-Engines auszugleichen, werden offenbart. Bei vielen Szenarien kann eine primäre Remapping-Engine auf einer Computerplattform auf Grund einer hohen Menge an Übersetzungen, die ein bestimmtes zugeordnetes I/O-Gerät (durch DMA- oder Interrupt-Anfragen) anfordert, beansprucht werden. Die Logik innerhalb der Computerplattform kann diese anstrengende Situation bemerken und eine sekundäre Remapping-Engine auffinden, die gegenwärtig nicht belastet ist. Die Logik kann das I/O-Gerät zur nicht belasteten sekundären Remapping-Engine migrieren, um die Belastung von der primären Remapping-Engine wegzunehmen. Wenn die Migration vollständig ist, werden alle nachfolgenden DMA- und Interrupt-Anfragen des I/O-Gerätes, welches Übersetzung erfordern, durch die sekundäre Remapping-Engine übersetzt.embodiments from a device, System and method to reassign remapping engines and thus the balance the entire remapping load between available remapping engines, are revealed. In many scenarios, a primary remapping engine can on a computer platform due to a high amount of translations, which requests a specific dedicated I / O device (through DMA or interrupt requests) be claimed. The logic within the computer platform can notice this stressful situation and a secondary remapping engine find the present not burdened. The logic can be the I / O device to the unloaded secondary remapping engine migrate to remove the load from the primary remapping engine. When the migration is complete is, all subsequent DMA and interrupt requests of the I / O device, which translation require, by the secondary Remapping engine translated.

Die Verweise in der folgenden Beschreibung und in den Schutzansprüchen auf „eine Ausführungsform” oder „die Ausführungsform” der offenbarten Technologien bedeuten, dass eine bestimmte in Verbindung mit der Ausführungsform beschriebene Funktion, Struktur oder Eigenschaft zumindest in einer Ausführungsform der offenbarten Technologien enthalten ist. Aus diesem Grund verweisen verschiedene Vorkommen des in dieser Spezifikation häufig verwendeten Ausdrucks „in einer Ausführungsform” nicht immer zwingend auf dieselbe Ausführungsform.The References in the following description and in the claims to "one embodiment" or "embodiment" of the disclosed Technologies mean that a certain in connection with the embodiment described function, structure or property at least in one embodiment contained in the disclosed technologies. For that reason, refer different occurrences of the frequently used in this specification Expression "in an embodiment "not always necessarily on the same embodiment.

In der folgenden Beschreibung und in den Schutzansprüchen sind die verwendeten Begriffe „enthält” und „umfassen” sowie deren möglicherweise verwendeten Ableitungen als Synonyme zu verstehen. Zusätzlich können in der folgenden Beschreibung und in den Schutzansprüchen die Begriffe „gekoppelt” und „verbunden” und deren Ableitungen verwendet werden. Diese Begriffe sind jedoch nicht als Synonyme füreinander zu verstehen. Stattdessen kann in bestimmten Ausführungsformen „verbunden” verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt” kann bedeuten, dass zwei oder mehrere Elemente in direktem physischen oder elektrischen Kontakt sind. Jedoch kann „gekoppelt” auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, trotzdem aber miteinander arbeiten oder interagieren.In the following description and in the claims the terms "contains" and "includes" as well as whose possibly used derivatives as synonyms to understand. In addition, in the following description and in the claims Terms "coupled" and "connected" and their Derivatives are used. However, these terms are not as Synonyms for each other to understand. Instead, in certain embodiments, "connected" may be used to indicate that two or more items are in direct physical or electrical contact with each other. "Coupled" can mean that two or more elements in direct physical or electrical Contact are. However, "coupled" can also mean that two or more elements are not in direct contact with each other, but still working or interacting with each other.

1 beschreibt eine Ausführungsform von einem System und Gerät, um Remapping-Engines neu zuzuweisen und damit die gesamte Remapping-Last zwischen verfügbaren Remapping-Engines auszugleichen. Das Remapping-Neuzuweisungs-System kann ein Teil einer Computerplattform sein (d. h. Computersystem), welche eine oder mehrere Prozessoren enthält. Die Prozessoren können jeweils einen oder mehrere Kerne aufweisen. Die Prozessoren können bei verschiedenen Ausführungsformen Intel® Mikroprozessoren oder eine andere Marke von Mikroprozessoren sein. Die Prozessoren sind in 1 nicht gezeigt. 1 describes an embodiment of a system and device to reassign remapping engines to balance the entire remapping load between available remapping engines. The remapping reassignment system may be part of a computer platform (ie, computer system) that includes one or more processors. The processors may each have one or more cores. The processors may be Intel® microprocessors or another brand of microprocessor in various embodiments. The processors are in 1 Not shown.

Das System enthält einen physischen Systemspeicher 100. Bei einigen Ausführungsformen kann der Systemspeicher 100 eine Art dynamische Random Access Memory (DRAM) sein. Zum Beispiel kann der Systemspeicher eine Art Double Data Rate (DDR; doppelte Datenrate) Synchronous DRAM sein. Bei anderen Ausführungsformen kann der Systemspeicher eine andere Art von Speicher, wie beispielsweise ein Flash-Speicher, sein.The system contains a physical system memory 100 , In some embodiments, system memory 100 a kind of dynamic Random Access Memory (DRAM). For example, the system memory may be a kind of double data rate (DDR) synchronous DRAM. In other embodiments, the system memory may be another type of memory, such as a flash memory.

Das System enthält Direct-Memory-Access-(DMA; direkter Speicherzugriff)- und Interrupt-Remapping-Logik 102. Virtualisierungs-Remapping-Logik, wie beispielsweise DMA- und Interrupt-Remapping-Logik 102, schützt physische Regionen von Systemspeicher 100 durch Begrenzen des DMA von I/O-Geräten, wie beispielsweise I/O-Gerät 1 (104) und I/O-Gerät 2 (106) auf vorherig zugeordnete physische Speicherregionen, wie beispielsweise Domäne A (108) für das I/O-Gerät 1 (104) und Domäne B (110) für das I/O-Gerät 2 (106). Die Remapping-Logik schränkt ebenso von I/O-Geräten generierte Interrupts auf diese Regionen ein. Die DMA- und Interrupt-Remapping-Logik 102 kann in einem Prozessor in dem System, in einem I/O-Komplex in dem System oder an anderer Stelle unterbracht sein. Ein I/O-Komplex kann ein integrierter Schaltkreis innerhalb des Computersystems sein, welcher von dem einen oder den mehreren Prozessoren getrennt ist. Der I/O-Komplex kann einen oder mehrere I/O-Host-Controller enthalten, um den Informationsaustausch zwischen den/dem Prozessoren/Speicher und einem oder mehreren I/O-Geräten in dem System, wie beispielsweise I/O-Gerät 1 (104) und I/O-Gerät 2 (106), zu erleichtern. Während bei bestimmten Ausführungsformen die DMA- und Interrupt-Remapping-Logik 102 in den I/O-Komplex integriert sein kann, sind die anderen Teile des I/O-Komplexes in 1 nicht gezeigt. Bei einigen Ausführungsformen, wie beispielsweise bei vielen „System auf einem Chip”-Ausführungsformen, kann der I/O-Komplex in einen Prozessor integriert sein. Wenn somit die DMA- und Interrupt-Remapping-Logik 102 in den I/O-Komplex integriert ist, wäre sie in diesen Ausführungsformen daher auch in einen Prozessor integriert.The system includes Direct Memory Access (DMA) and interrupt remapping logic 102 , Virtualization remapping logic, such as DMA and interrupt remapping logic 102 , protects physical regions from system memory 100 by limiting the DMA of I / O devices, such as I / O device 1 (FIG. 104 ) and I / O device 2 ( 106 ) to previously assigned physical storage regions, such as domain A ( 108 ) for the I / O device 1 ( 104 ) and domain B ( 110 ) for the I / O device 2 ( 106 ). Remapping logic also restricts I / O-generated interrupts to these regions. The DMA and interrupt remapping logic 102 may be located in a processor in the system, in an I / O complex in the system or elsewhere. An I / O complex may be an integrated circuit within the computer system that is separate from the one or more processors. The I / O complex may include one or more I / O host controllers to facilitate the exchange of information between the processor / memory and one or more I / O devices in the system, such as I / O device 1 ( 104 ) and I / O device 2 ( 106 ), to facilitate. While in certain embodiments, the DMA and interrupt remapping logic 102 can be integrated into the I / O complex, the other parts of the I / O complex are in 1 Not shown. In some embodiments, such as many "on-chip system" embodiments, the I / O complex may be integrated into a processor. So if the DMA and interrupt remapping logic 102 integrated into the I / O complex, it would therefore also be integrated into a processor in these embodiments.

Die DMA- und Interrupt-Remapping-Logik 102 kann bei einigen Ausführungsformen, die ein virtualisiertes Umfeld innerhalb des Computersystems ermöglichen, mit einem Virtual Machine Monitor (VVM) programmiert werden. Bei anderen Ausführungsformen kann die DMA- und Interrupt-Remapping-Logik 102 durch ein Betriebssystem (OS) programmiert werden.The DMA and interrupt remapping logic 102 may be programmed with a Virtual Machine Monitor (VVM) in some embodiments that enable a virtualized environment within the computer system. In other embodiments, the DMA and interrupt remapping logic may be 102 be programmed by an operating system (OS).

Bei vielen Ausführungsformen sind I/O-Gerät 1 (104) und I/O-Gerät 2 (106) DMA-fahige und Interrupt-fähige Geräte. Bei diesen Ausführungsformen übersetzt die DMA- und Interrupt-Remapping-Logik 102 die Adresse von jeder eingehenden DMA-Anfrage und von jedem Interrupt von den I/O-Geräten in die richtige Adresse des physischen Speichers im Systemspeicher 100. Bei vielen Ausführungsformen prüft die DMA- und Interrupt-Remapping-Logik 102 basierend auf der Information, die durch den VVM oder das Betriebssystem (OS) bereitgestellt wird, die Erlaubnis, auf die übersetzte physische Adresse zuzugreifen.In many embodiments, I / O device 1 (FIG. 104 ) and I / O device 2 ( 106 ) DMA-capable and interrupt-capable devices. In these embodiments, the DMA and interrupt remapping logic translates 102 the address of each incoming DMA request and interrupt from the I / O devices to the correct physical memory address in system memory 100 , In many embodiments, the DMA and interrupt remapping logic checks 102 based on the information provided by the VVM or the operating system (OS), permission to access the translated physical address.

Die DMA- und Interrupt-Remapping-Logik 102 ermöglicht dem VVM oder OS mehrere DMA-Schutzdomänen, wie beispielsweise Domäne A (108) für I/O-Gerät 1 (104) und Domäne B (110) für I/O-Gerät 2 (106), anzulegen. Jede Schutzdomäne ist ein isoliertes Umfeld, das einen Teilsatz des physischen Host-Speichers enthält. Die DMA- und Interrupt-Remapping-Logik 102 aktiviert den VMM oder das OS, um ein oder mehrere I/O-Geräte einer Schutzdomäne zuzuordnen. Wenn irgendein beliebiges I/O-Gerät versucht, Zugriff auf einen bestimmten Speicherplatz im Systemspeicher 100 zu erhalten, schaut die DMA- und Interrupt-Remapping-Logik 102 die Remapping-Seitentabellen 112 nach der Zugriffsberechtigung dieses I/O-Gerätes zu dieser spezifischen Schutzdomäne durch. Wenn das I/O-Gerät versucht, außerhalb des Bereichs zuzugreifen, auf den es zugreifen darf, blockiert die DMA- und Interrupt-Remapping-Logik 102 den Zugriff und meldet einen Fehler an den VMM oder das OS.The DMA and interrupt remapping logic 102 allows the VVM or OS to have multiple DMA protection domains, such as domain A ( 108 ) for I / O device 1 ( 104 ) and domain B ( 110 ) for I / O device 2 ( 106 ). Each protection domain is an isolated environment that contains a subset of the physical host memory. The DMA and interrupt remapping logic 102 Enables the VMM or the OS to map one or more I / O devices to a protection domain. When any I / O device tries to access a specific location in system memory 100 get the DMA and interrupt remapping logic looks 102 the remapping page tables 112 after the access authorization of this I / O device to this speci fish through protection domain. If the I / O device tries to access outside the area it is allowed to access, the DMA and interrupt remapping logic blocks 102 access and reports an error to the VMM or the OS.

Bei vielen Ausführungsformen gibt es zwei oder mehr Remapping-Engines, wie beispielsweise Remapping-Engine 1 (114) und Remapping-Engine 2 (116), die in der DMA- und Interrupt-Remapping-Logik 102 integriert sind. Jede Remapping-Engine enthält Logik, um Ströme von DMA-Anfragen und Interrupts von einem oder mehreren I/O-Geräten zu behandeln. Die Remapping-Engines starten generell als spezifischen I/O-Geräten zugeordnet. Zum Beispiel kann Remapping-Engine 1 (114) zugeordnet sein, die DMA-Anfragen und Interrupts an Domäne A (108) zu behandeln, die von I/O-Gerät 1 (104) empfangen wurden, und Remapping-Engine 2 (116) kann zugeordnet sein, die DMA-Anfragen und Interrupts an Domäne B (110) zu behandeln, die vom I/O-Gerät 2 (106) empfangen wurden.In many embodiments, there are two or more remapping engines, such as remapping engine 1 (FIG. 114 ) and remapping engine 2 ( 116 ) in the DMA and interrupt remapping logic 102 are integrated. Each remapping engine contains logic to handle streams of DMA requests and interrupts from one or more I / O devices. The remapping engines generally start as specific I / O devices. For example, remapping engine 1 ( 114 ), the DMA requests and interrupts to domain A ( 108 ) to be handled by I / O device 1 ( 104 ) and remapping engine 2 ( 116 ) can be assigned to the DMA requests and interrupts to domain B ( 110 ) to be handled by the I / O device 2 ( 106 ) were received.

Obwohl die Remapping-Engines ursprünglich zugeordnet sein können, DMA-Anfragen und Interrupts zu physischen Adressen für ein spezifisches I/O-Gerät zu übersetzen, kann bei vielen Ausführungsformen Remapping-Neuzuweisung-Logik 118 diese ursprünglichen Zuweisungen auf Grund beobachteter Arbeitslasten für jede Remapping-Engine dynamisch ändern. Bei vielen Ausführungsformen werden die DMA- und Interrupt-Remapping-Logik 102 und die Remapping-Neuzuweisungs-Logik 118 zusammen in einer Computerplattform genutzt, die I/O-Virtualisierungstechnologien verwendet. Zum Beispiel kann I/O-Gerät 1 (104) eine sehr schwere DMA-Anfrage-Arbeitslast generieren, während I/O-Gerät 2 (106) untätig ist. Die schwere DMA-Anfrage-Arbeitslast von I/O-Gerät 1 (104) kann die Kapazität von Remapping-Engine 1 (114) überlasten, was eine Verschlechterung der Leistung (d. h. Ansprechzeit) für die Anfragen von I/O-Gerät 1 (104) sowie einem oder mehreren zusätzlichen I/O-Geräten (nicht abgebildet), die auch von der Remapping-Engine 1 (114) abhängig sein können, hervorrufen würde. In diesem Beispiel kann Remapping-Neuzuweisung-Logik 118 die Diskrepanz in den Arbeitslasten bemerken und entscheiden, die von I/O-Gerät 1 (104) empfangene DMA-Anfrage-Arbeitslast zwischen der Remapping-Engine 1 (114) und der andernfalls ungenutzten Remapping-Engine 2 (116) aufzuteilen. Somit würde die zusätzliche Kapazität von Remapping-Engine 2 (116) die Arbeitslast, die von Remapping-Engine 1 (114) gefordert wird, erleichtern und kann die Reaktionsfähigkeit bezüglich Anfragen für I/O-Gerät 1 (104) erhöhen.Although the remapping engines may be originally assigned to translate DMA requests and interrupts to physical addresses for a specific I / O device, in many embodiments, remapping reassignment logic may be used 118 dynamically change these original assignments for each remapping engine based on observed workloads. In many embodiments, the DMA and interrupt remapping logic become 102 and the remapping reassignment logic 118 used together in a computer platform that uses I / O virtualization technologies. For example, I / O device 1 (FIG. 104 ) generate a very heavy DMA request workload while I / O device 2 ( 106 ) is inactive. The heavy DMA request workload of I / O device 1 ( 104 ), the capacity of remapping engine 1 ( 114 ), which results in a deterioration of the performance (ie response time) for the requests from I / O device 1 ( 104 ) and one or more additional I / O devices (not shown) that are also used by the remapping engine 1 (FIG. 114 ) could be dependent. This example can use remapping reassignment logic 118 notice the discrepancy in the workloads and decide which of I / O device 1 ( 104 ) received DMA request workload between the remapping engine 1 ( 114 ) and the otherwise unused remapping engine 2 ( 116 ). Thus, the additional capacity of remapping engine 2 (FIG. 116 ) the workload used by remapping engine 1 ( 114 ) and facilitate the responsiveness to requests for I / O device 1 (FIG. 104 ) increase.

Bei einem anderen Beispiel kann das Gegenteil der Fall sein, wobei Remapping-Engine 2 (116) mit von I/O-Gerät 2 (106) empfangenen DMA-Anfragen überlastet ist, und somit Remapping-Neuzuweisungs-Logik 118 einen Teil der empfangenen Arbeit zur Remapping-Engine 1 (114) abspalten. Bei noch einem weiteren Beispiel kann ein drittes I/O-Gerät (nicht dargestellt), das anfänglich Remapping-Engine 1 (114) zugewiesen war, sehr viel Interrupt-Verkehr zur Übersetzung zu Remapping-Engine 1 (114) senden. Dieser Interrupt-Verkehr von I/O-Gerät 3 kann mehr Verkehr sein als die Kombination von DMA- und Interrupt-Anfragen von I/O-Gerät 1 und 2 zusammen. In diesem Beispiel kann Remapping-Neuzuweisungs-Logik 118 es Remapping-Engine 1 (114) überlassen, die eingehenden Anfragen von I/O-Gerät 3 zu behandeln, kann aber I/O-Gerät 1 (104) zu Remapping-Engine 2 (116) neu zuweisen. Somit müsste Remapping-Engine 2 (116) jetzt die eingehenden Anfragen sowohl für I/O-Gerät 1 und als auch für I/O-Gerät 2 übersetzen.In another example, the opposite may be the case where remapping engine 2 (FIG. 116 ) with I / O device 2 ( 106 ) is overloaded, and thus remapping reassignment logic 118 a part of the work received for the remapping engine 1 ( 114 split off). In yet another example, a third I / O device (not shown), the initial remapping engine 1 (FIG. 114 ), a lot of interrupt traffic for translation to remapping engine 1 ( 114 ). This interrupt traffic from I / O device 3 may be more traffic than the combination of DMA and interrupt requests from I / O devices 1 and 2 together. In this example, remapping reassignment logic 118 it remapping engine 1 ( 114 ) to handle the incoming requests from I / O device 3, but can handle I / O device 1 ( 104 ) to remapping engine 2 ( 116 reassign). Thus, remapping engine 2 ( 116 ) now translate the incoming requests for both I / O device 1 and I / O device 2.

Bei vielen DMA- und Interruptverkehr-Szenarien kann die Remapping-Neuzuweisung-Logik 118 versuchen, DMA-Anfragen von einer Remapping-Engine einer anderen neu zuzuweisen, um die empfangene Arbeitslast unter allen verfügbaren Remapping-Engines auszugleichen. Bei vielen in 1 nicht gezeigten Ausführungsformen kann es einen Pool von Remapping-Engines geben, der mehr als zwei gesamte Remapping-Engines enthält. Bei diesen Ausführungsformen kann die Remapping-Neuzuweisungs-Logik 118 jedem der Remapping-Engines im Pool Arbeit neu zuordnen, um die Gesamtzahl an DMA-Anfragen unter dem gesamten Pool leidlich auszugleichen. Wenn bei einigen Ausführungsformen eine einzelne Remapping-Engine, wie Remapping-Engine 1 (114), die ganze DMA-Anfragearbeit ausführt, aber die Menge an Arbeit klein genug ist, um die Kapazität der bestimmten Remapping-Engine nicht zu belasten, kann die Remapping-Neuzuweisung-Logik 118 einen Teil der DMA-Anfrage-Arbeitslast nicht neu zuweisen. Bei einigen Ausführungsformen wird die Neuzuweisung deshalb generell ausgeführt, wenn die Arbeitslast für eine gegebene Remapping-Engine den Schwellenwert der Remapping-Engine bezüglich Anfragen erreicht hat. Bei vielen Ausführungsformen werden wiederum die DMA- und Interrupt-Remapping-Logik 102 und die Remapping-Neuzuweisung-Logik 118 beide in einer Computerplattform genutzt, die I/O-Virtualisierungstechnologien verwendet.Many DMA and interrupt traffic scenarios can use the remapping-reassignment logic 118 try to reassign DMA requests from one remapping engine to another to balance the received workload among all available remapping engines. In many in 1 In the embodiments not shown, there may be a pool of remapping engines that includes more than two entire remapping engines. In these embodiments, the remapping reassignment logic 118 Reassign work to each of the remapping engines in the pool to fairly balance the total number of DMA requests across the entire pool. In some embodiments, when a single remapping engine, such as remapping engine 1 (FIG. 114 ), which performs all the DMA request work, but the amount of work is small enough not to burden the capacity of the particular remapping engine, can be the remapping-reassignment logic 118 Do not reassign a portion of the DMA request workload. In some embodiments, the reallocation is generally performed when the workload for a given remapping engine has reached the threshold of the remapping engine for requests. In many embodiments, again, the DMA and interrupt remapping logic 102 and the remapping-reassignment logic 118 both used in a computer platform that uses I / O virtualization technologies.

Bei vielen Ausführungsformen ist der Schwellenwert von Anfragen eine Anzahl an Anfragen während einer gegebenen Zeitspanne, welche der Grenze gleicht, die die Remapping-Engine ohne eine Leistungsverschlechterung behandeln kann. Eine Verschlechterung der Leistung der Remapping-Engine kann durch eine Warteschlange von sich anhäufenden DMA-Anfragen hervorgerufen werden, da die Anfragen durch die Remapping-Engine mit einer schnelleren Geschwindigkeit empfangen werden, als die Remapping-Engine Anfragen übersetzen kann. Die Remapping-Neuzuweisungs-Logik 118 kann eines von mehreren unterschiedlichen Verfahren nutzen, um die gegenwärtige Arbeitslast von DMA-Anfragen mit dem Schwellenwert zu vergleichen. Zum Beispiel kann ein Verhältnis von Anfragen zu Systemtaktzyklen mit einem Schwellenverhältnis verglichen werden. Die Überwachungslogik kann in die Remapping-Neuzuweisungs-Logik 118 integriert sein, da sie alle Anfragen vom Satz an I/O-Geräten empfängt und jede Anfrage einer Remapping-Engine zuordnet.In many embodiments, the threshold of requests is a number of requests during a given period of time, which is similar to the limit that the remapping engine can handle without performance degradation. A degradation in the performance of the remapping engine can be caused by a queue of accumulating DMA requests, since the requests are handled by the Re The mapping engine can be received at a faster rate than the remapping engine can translate queries. The remapping reassignment logic 118 can use one of several different methods to compare the current workload of DMA requests with the threshold. For example, a ratio of requests to system clock cycles may be compared to a threshold ratio. The watchdog logic can be used in the remapping reassignment logic 118 be integrated because it receives all requests from the set of I / O devices and maps each request to a remapping engine.

Bei vielen Ausführungsformen stellt die DMA-Remapping-Logik 102 ein oder mehrere Steuerregister für den VMM oder das OS bereit, um die Fähigkeit, DMA-Anfragearbeitslasten zwischen Remapping-Engines neu zuzuweisen, für die Remapping-Neuzuweisung-Logik 118 zu aktivieren oder zu deaktivieren. Bei vielen Ausführungsformen können Remapping-Engines als äquivalente Remapping-Engines bezeichnet werden, wenn der gleiche Satz an I/O-Geräten für jede einzelne verfügbar ist. Somit könnte eine Remapping-Engine theoretisch DMA-Anfrageübersetzungen für einen Satz von I/O-Geräten ausführen, während eine zweite Remapping-Engine untätig ist, wobei das Gegenteil ebenfalls zutrifft. Wenn ein I/O-Gerät für eine Remapping-Engine zugänglich ist, nicht aber für eine andere Remapping-Engine, können die Remapping-Engines nicht als äquivalent betrachtet werden. Äquivalente Remapping-Engines ermöglichen der Remapping-Neuzuweisungs-Logik 118, DMA-Anfragearbeitslasten mit jeder äquivalenten Remapping-Engine frei zu mischen und anzupassen.In many embodiments, the DMA remapping logic 102 one or more control registers for the VMM or OS ready to remap the ability to reassign DMA request workloads between remapping engines for the remapping reassignment logic 118 to activate or deactivate. In many embodiments, remapping engines may be referred to as equivalent remapping engines if the same set of I / O devices is available to each one. Thus, a remapping engine could theoretically execute DMA query translations for one set of I / O devices while a second remapping engine is idle, the opposite also being true. If an I / O device is accessible to a remapping engine, but not to another remapping engine, the remapping engines can not be considered equivalent. Equivalent remapping engines enable remapping reassignment logic 118 Free to mix and match DMA query workloads with any equivalent remapping engine.

Wenn die Äquivalenz zwischen Remapping-Engines vom VMM oder OS durch das eine oder mehrere Steuerregister aktiviert ist, kann jede Remapping-Engine den gleichen Satz an Remapping-Seitentabellen 112 und alle anderen Remapping-bezogenen Register aktiv verwenden, um am DMA-Anfrage-Übersetzungsprozess teilzunehmen. Bei vielen Ausführungsformen sind das eine oder die mehreren Steuerregister softwarebasierte Register, die sich im Systemspeicher befinden, wie beispielsweise die Steuerregister 120A. Bei anderen Ausführungsformen sind das eine oder die mehreren Steuerregister hardwarebasierte Register, die sich physisch in der DMA-Remapping-Logik 102 befinden, wie beispielsweise die Steuerregister 120B.If the equivalence between VMM or OS remapping engines is enabled by the one or more control registers, each remapping engine can use the same set of remapping page tables 112 and actively use all other remapping-related registers to participate in the DMA request translation process. In many embodiments, the one or more control registers are software-based registers residing in system memory, such as the control registers 120A , In other embodiments, the one or more control registers are hardware-based registers that are physically in the DMA remapping logic 102 located, such as the control registers 120B ,

Bei vielen Ausführungsformen kann die DMA-Remapping-Logik 102 zum VMM oder OS die äquivalente Beziehung zwischen zwei oder mehr Remapping-Engines kommunizieren, indem eine Erweiterung zur gegenwärtigen DRHD-(DMA Remapping Hardware unit Definition)-Struktur verwendet wird, die in der Intel® VT-d Spezifikation definiert ist.In many embodiments, the DMA remapping logic may be 102 to the VMM or OS communicate the equivalent relationship between two or more remapping engines by using an extension to the current DMA Remapping Hardware Unit Definition (DRHD) structure defined in the Intel® VT-d specification.

Jede Remapping-Engine hat eine DRHD-Struktur im Speicher. Zum Beispiel können sich die DRHD-Strukturen in den Remapping-Seitentabellen/-Strukturen 112 befinden, die Teil des Systemspeichers 100 sind. Bei anderen Ausführungsformen kann sich die DRHD-Struktur an einem anderen Ort innerhalb des Systemspeichers 100befinden. Die DRHD-Struktur für jede Remapping-Engine enthält ein Array von Remapping-Engines, die der betreffenden Remapping-Engine äquivalent sind. Dieses Array wird das „äquivalente DRHD Array” genannt. Dieses Array ist eine Sammlung von Feldern. Es ist in Tabelle 1 definiert. Das Array wird verwendet, um dem VMM oder OS solche Äquivalenz mitzuteilen. Es liegt am VMM oder OS zu entscheiden, wenn nötig die alternativen Remapping-Engines mit der Remapping-Engine, die primär einem gegebenen I/O-Gerät zugewiesen war, zu verwenden. Tabelle 1. Das strukturelle Layout eines äquvalenten DRHD-Array. Anzahl an Einheiten im äquivalenten Array Ein 16-Bit-Feld, das indirekt die Länge dieses gesamten Feldes anzeigt. Basisadresse der ersten äquivalenten Einheit Das ist ein 64-Bit-Feld. Siehe die Register-Basisadresse im DRHD (Abschnitt 8.3 der VT-d-Spezifikation). Basisadresse der n-ten äquivalenten Einheit N wird im ersten Feld angezeigt. Each remapping engine has a DRHD structure in memory. For example, the DRHD structures may reside in the remapping page tables / structures 112 which are part of the system memory 100 are. In other embodiments, the DRHD structure may be located elsewhere in the system memory 100 are located. The DRHD structure for each remapping engine contains an array of remapping engines that are equivalent to the remapping engine in question. This array is called the "equivalent DRHD Array". This array is a collection of fields. It is defined in Table 1. The array is used to tell the VMM or OS such equivalence. It is up to the VMM or OS to decide, if necessary, to use the alternative remapping engines with the remapping engine that was primarily assigned to a given I / O device. Table 1. The structural layout of an equivalent DRHD array. Number of units in the equivalent array A 16-bit field that indirectly indicates the length of this entire field. Base address of the first equivalent unit That's a 64-bit field. See the register base address in the DRHD (Section 8.3 of the VT-d Specification). Base address of the nth equivalent unit N is displayed in the first field.

Bei einigen Ausführungsformen kann die Remapping-Neuzuweisungs-Logik 118 die DMA-Anfrageübersetzungsarbeitslast für jede Remapping-Engine an den VMM oder das OS melden, was dem VMM oder OS die Entscheidung ermöglichen würde, alternative Remapping-Engines zu aktivieren und zu nutzen, um den Übersetzungsdruck auf die primäre Remapping-Engine zu reduzieren.In some embodiments, the remapping reassignment logic 118 report the DMA request translation workload for each remapping engine to the VMM or OS, which would allow the VMM or OS to decide to enable and use alternate remapping engines to reduce translation pressure to the primary remapping engine.

Die DMA-Remapping-Logik 102 kann auch Informationen über die Fähigkeiten jeder einzelnen Remapping-Engine in Bezug auf migrierende Remapping-Seitentabellen zwischen Remapping-Engines kommunizieren. Wenn im Speziellen der VMM oder das OS bestimmt, die Zuordnungseinträge für DMA- und Interrupt-Anfragen von einer Remapping-Engine zu einer anderen zu migrieren, kann es eine softwarebasierte oder hardwarebasierte Seitentabellenkopie geben.The DMA remapping logic 102 can also communicate information about the capabilities of each remapping engine in terms of migrating remapping page tables between remapping engines. Specifically, if the VMM or OS determines the mapping entries for DMA and Inter There may be a software-based or hardware-based page table copy of root requests from one remapping engine to another.

Bei einigen Ausführungsformen kann der VMM oder das OS die Seitentabellen, bezogen auf das neu zugewiesene I/O-Gerät, aufstellen und dann die Remapping-Seitentabellen vom alten Remapping-Engine-Speicherplatz für Seitentabellen zum neuen Remapping-Engine-Speicherplatz für Seitentabellen kopieren. Bei anderen Ausführungsformen kann die DMA- und Interrupt-Remapping-Logik 102 die Seitentabellen zwischen den Remapping-Engine-Speicherplätzen still kopieren. Das stille Kopieren dieser Seitentabellen ermöglicht es, den Overhead von VMM- oder OS-Softwareebene zu entfernen und auf eine untere Hardware-Ebene zu bringen. Das kann ohne die Kenntnis von Software geschehen.In some embodiments, the VMM or OS may set up the page tables relative to the newly assigned I / O device and then copy the remapping page tables from the old remapping engine storage for page tables to the new remapping engine storage for page tables. In other embodiments, the DMA and interrupt remapping logic may be 102 silently copy the page tables between the remapping engine storage locations. Quiet copying of these page tables allows VMM or OS software level overhead to be removed and brought to a lower hardware level. This can be done without the knowledge of software.

Wenn die Seitentabellen einmal vom alten Remapping-Engine-Speicherplatz zum neuen kopiert (d. h. migriert) sind, ist die neue Remapping-Engine diejenige, die für die Bedienung aller zukünftigen Übersetzungsanfragen des betreffenden I/O-Gerätes verantwortlich ist. Die alte Remapping-Engine ist für das I/O-Gerät nicht mehr verantwortlich und wird keine vom Gerät empfangene DMA- oder Interrupt-Anfrage mehr übersetzen.If the page tables once from the old remapping engine storage space to be copied to new (that is, migrated) is the new remapping engine the one who for the handling of all future translation requests of the relevant I / O device responsible for. The old remapping engine is not for the I / O device more responsible and will not receive any DMA or interrupt request received from the device translate more.

2 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses, um ein I/O-Gerät von einer Remapping-Engine zu einer anderen Remapping-Engine zu migrieren. Der Prozess erfolgt durch eine Verarbeitungslogik, die eine Hardware, eine Software oder eine Kombination aus Hardware und Software sein kann. Der Prozess beginnt, indem die Verarbeitungslogik eine DMA- oder Interrupt-Anfrage von einem I/O-Gerät (Verarbeitungsblock 200) empfängt. 2 FIG. 10 is a flowchart of one embodiment of a process to migrate an I / O device from a remapping engine to another remapping engine. The process is performed by processing logic, which may be hardware, software, or a combination of hardware and software. The process begins by processing a DMA or interrupt request from an I / O device (processing block 200 ) receives.

Die Verarbeitungslogik bestimmt, ob die primäre Remapping-Engine, die zum Bedienen der Anfrage zugewiesen ist, ihren Schwellenwert an Anfragen im Laufe einer bestimmten Zeitspanne (Verarbeitungsblock 202) erreicht hat. Diese Bestimmung kann Leistungszähler, Zeitstempel, Algorithmen und andere Methodiken zu der Feststellung nutzen, ob die primäre Remapping-Engine gegenwärtig genug Übersetzungsanfragen hat, um die Übersetzungsreaktionsfähigkeit der Engine pro Anfrage zu verschlechtern.The processing logic determines whether the primary remapping engine assigned to service the request reaches its threshold of requests over a certain period of time (processing block 202 ) has reached. This determination may use performance counters, timestamps, algorithms, and other methodologies to determine if the primary remapping engine currently has enough translation requests to degrade the translation responsiveness of the engine per request.

Zum Beispiel kann der VMM oder das OS jede Remapping-Engine entweder direkt oder durch die Remapping-Zuweisungslogik 118 abfragen, um den gegenwärtigen Zustand des Remapping-Übersetzungsdrucks auf jede Remapping-Engine abzufragen. Bei einem anderen Beispiel kann die DMA- und Interrupt-Remapping-Logik 102 den VMM oder das OS unterbrechen, wenn mindestens eine der Remapping-Engines beginnt, Übersetzungsdruck oder Einschränkungen bei seinen Übersetzungsressourcen zu erfahren. Bei beiden Beispielen kann die DMA- und Interrupt-Remapping-Logik 102 auch ausführlichere Information über die genaue Art des Übersetzungsdrucks kommunizieren, einschließlich der Hierarchie oder der genauen I/O-Geräte, die der Grund für den Übersetzungsdruck sind. Der VMM oder das OS können entscheiden, welche Leistungsinformationen, wenn überhaupt, zu verwenden sind, wenn sie bestimmen, ob die Übersetzungseinträge eines I/O-Geräts zu einer anderen äquivalenten Remapping-Engine zu migrieren sind.For example, the VMM or the OS can use any remapping engine either directly or through the remapping assignment logic 118 to query the current state of remapping translation printing on each remapping engine. In another example, the DMA and interrupt remapping logic 102 disrupt the VMM or OS when at least one of the remapping engines begins to experience translation pressure or constraints on its translation resources. In both examples, the DMA and interrupt remapping logic 102 also communicate more detailed information about the exact nature of the translation pressure, including the hierarchy or the exact I / O devices that are the cause of the translation pressure. The VMM or OS can decide which performance information, if any, to use when determining whether to migrate the translation entries of one I / O device to another equivalent remapping engine.

Kehren wir zurück zu 2: Wenn dieser Schwellenwert von Anfragen nicht erreicht wurde, lässt die Verarbeitungslogik die primäre Remapping-Engine die DMA- oder Interrupt-Anfrage übersetzen, und der Prozess ist abgeschlossen.Let's go back to 2 : If this request threshold has not been reached, the processing logic causes the primary remapping engine to translate the DMA or interrupt request, and the process is complete.

Andernfalls, wenn der Schwellenwert von Anfragen erreicht wurde, bestimmt die Verarbeitungslogik, welche Remapping-Engine von einer oder mehreren anderen äquivalenten Remapping-Engines verfügbar ist und entweder gegenwärtig zu wenig oder überhaupt nicht verwendet wird. Dies kann die Bestimmung einschließen, ob es genügend Überkapazität in einer gegebenen Backup-Remapping-Engine gibt, um den zusätzlichen Druck im zusätzlichen Verkehr des Gerätes aufzunehmen.Otherwise, when the threshold of requests has been reached, the Processing logic, which remapping engine of one or more other equivalents Remapping engines available is and is either present too little or at all not used. This may include the determination of whether there is enough overcapacity in one given backup remapping engine gives to the extra Pressure in the additional Traffic of the device take.

Sobald eine verfügbare Backup-Remapping-Engine gefunden wurde, migriert Verarbeitungslogik dann die Remapping-Seitentabellen für das I/O-Gerät von der primären Remapping-Engine zur Backup-Remapping-Engine (Verarbeitungsblock 206). Wenn die Backup-Remapping-Engine die Seitentabellen des I/O-Gerätes, die für das Remapping genutzt werden können, empfangen hat, leitet Verarbeitungslogik dann die DMA- oder Interrupt-Anfrage zur Backup-Remapping-Engine um (Verarbeitungsblock 208), und der Prozess ist abgeschlossen.Once an available backup remapping engine is found, processing logic then migrates the remapping page tables for the I / O device from the primary remapping engine to the backup remapping engine (processing block 206 ). If the backup remapping engine has received the page tables of the I / O device that can be used for remapping, then processing logic redirects the DMA or interrupt request to the backup remapping engine (processing block 208 ), and the process is complete.

Bei vielen Ausführungsformen kann Verarbeitungslogik, nachdem sie überprüft hat, dass es eine verfügbare äquivalente Remapping-Engine gibt, ein Steuerregister in der Hardware (1, 120B) programmieren, um anzuzeigen, dass die neue Backup-Remapping-Engine als äquivalent zu der primären Remapping-Engine betrachtet werden sollte.In many embodiments, processing logic, after verifying that there is an available equivalent remapping engine, may have a control register in the hardware ( 1 . 120B ) to indicate that the new backup remapping engine is equivalent to the primary remapping en gine should be considered.

Um dieses Register-Programmieren zu berücksichtigen, können gegenwärtig belegte Felder im Global Command Register (das gegenwärtig in der Spezifikation Intel® VT-d definiert ist) für diesen Befehl neu definiert werden (z. B. ein Befehl, der „Aktivieren der äquivalenten Remapping-Engine” genannt wird). Die neue Remapping-Engine kann zu diesem Zweck durch ein anderes 8-Byte-Register identifiziert werden. Die Tabelle 2 zeigt ein Beispiel für die Modifizierungen, die an den globalen Befehls- und Statusregistern durchgeführt wurden, um die Überprüfung auf Äquivalenz unter Remapping-Engines zu. Tabelle 2. Für die Remapping-Engine-Äquivalenz genutzten globalen Befehls- und Statusregister-Bits. Bit 21 des globalen Befehlsregisters Wenn es auf 1 gesetzt ist, wurde eine neue äquivalente Remapping-Engine identifiziert Wenn es auf 0 gesetzt ist, wird jede vorhandene Äquivalenz-Beziehung entfernt. Bit 21 des globalen Statusregisters Dieses Bit wird auf 1 gesetzt, nachdem die Hardware mit der Ausführung des Befehls fertig ist. To accommodate this register programming, currently occupied fields in the Global Command Register (currently defined in the Intel® VT-d specification) can be redefined for this command (eg, a command that "Enable equivalent remapping Engine is called). The new remapping engine can be identified by another 8-byte register for this purpose. Table 2 shows an example of the modifications made to the global command and status registers to allow for equivalence checking among remapping engines. Table 2. Global command and status register bits used for remapping engine equivalence. Bit 21 of the global command register If set to 1, a new equivalent remapping engine has been identified. If set to 0, any existing equivalence relationship is removed. Bit 21 of the global status register This bit is set to 1 after the hardware finishes executing the command.

Der VMM oder das OS kann Äquivalenz entweder für alle gegenwärtigen Geräte aktivieren, die zum Umfang der Remapping-Engine A gehören, oder nur für einen bestimmten Satz von Geräten, die gegenwärtig zum Umfang der Remapping-Engine A gehören. Kann die Äquivalenz nicht ausgeführt werden, kann die DMA- und Interrupt-Remapping-Logik 102 diesen Fehlerstatus durch ein Fehlerregister kommunizieren.The VMM or the OS may enable equivalence for either all current devices belonging to the scope of the remapping engine A, or only for a particular set of devices that currently belong to the scope of the remapping engine A. If the equivalence can not be performed, the DMA and interrupt remapping logic can be used 102 communicate this error status through an error register.

Somit werden Ausführungsformen von einem Gerät, System und Verfahren offenbart, um Remapping-Engines neu zuzuweisen und damit die gesamte Remapping-Last zwischen verfügbaren Remapping-Engines auszugleichen. Die hier beschriebenen Ausführungsformen wurden mit Bezug auf bestimmte beispielhafte Ausführungsformen erläutert. Es ist für Personen, die Einsicht in diese Offenbarung haben, offensichtlich, dass verschiedene Anpassungen und Veränderungen an diesen Ausführungsformen vorgenommen werden müssen, ohne dabei im weiteren Sinne und dem Umfang der hierin beschriebenen Ausführungsformen abzuweichen. Die Beschreibung und die Zeichnungen sind demgemäß als exemplarische Darstellung, jedoch nicht in einem einschränkenden Sinne, anzusehen.Consequently become embodiments from a device, System and method disclosed to reassign remapping engines and thus the entire remapping load between available To balance remapping engines. The embodiments described herein were with reference to certain exemplary embodiments explained. It is for People who have insight into this revelation, obviously, that different adjustments and changes in these embodiments must be made without going in the broader sense and scope of the herein described embodiments departing. The description and the drawings are accordingly exemplary Representation, but not in a limiting sense.

Claims (24)

Gerät, das Folgendes umfasst: Remapping-Engine-Neuzuweisungs-Logik, um eine erste Menge an Verkehr zu überwachen, die durch eine erste Remapping-Engine übersetzt wird; und einen Teil der ersten Menge an Verkehr umzuleiten, um durch eine zweite Remapping-Engine übersetzt zu werden, wenn die erste Menge an Verkehr einen ersten Remapping-Engine-Verkehrsschwellenwert erreicht.Device, which includes: Remapping engine reallocation logic to monitor a first amount of traffic passing through a first Remapping engine translated becomes; and redirect some of the first amount of traffic to be translated by a second remapping engine when the first amount of traffic a first remapping engine traffic threshold reached. Gerät nach Anspruch 1, wobei die Remapping-Engine-Neuzuweisungs-Logik weiter Folgendes bewirkt: vor dem Umleiten des Teils der ersten Menge an Verkehr das Abfragen der zweiten Remapping-Engine, um eine Menge an verfügbarer Übersetzungskapazität zu bestimmen; und das Ermöglichen der Umleitung, wenn die verfügbare Menge an Übersetzungskapazität in der Lage ist, den Teil der ersten Menge an umzuleitendem Verkehr zu bedienen.device The claim of claim 1, wherein the remapping engine reassignment logic further comprises causes: before redirecting the portion of the first amount of traffic querying the second remapping engine to determine an amount of available translation capacity; and the enabling the diversion, if available Amount of translation capacity in the Able to be the part of the first amount of traffic to be diverted serve. Gerät nach Anspruch 2, wobei die Remapping-Engine-Neuzuweisungs-Logik weiter Folgendes bewirkt: das Bestimmen der Kapazität der ersten und zweiten Remapping-Engine; und das Aufteilen eines Teil der ersten Menge an Verkehr auf jeweils die erste und die zweite Remapping-Engine, so dass jede Engine im Verhältnis zur maximalen Kapazität jeder Engine im Wesentlichen den gleichen Prozentsatz an Verkehr aufweist.device The method of claim 2, wherein the remapping engine reassignment logic further comprises causes: determining the capacity of the first and second remapping engines; and splitting up a portion of the first amount of traffic respectively the first and the second remapping engine, so each one Engine in proportion to the maximum capacity each engine has essentially the same percentage of traffic having. Gerät nach Anspruch 3, wobei die Remapping-Engine-Neuzuweisungs-Logik weiter Folgendes bewirkt: das Umleiten eines Teils der ersten Menge an Verkehr zu einer oder mehreren zusätzlichen Remapping-Engines, wobei die erste, die zweite und eine oder mehrere zusätzliche Remapping-Engines im Verhältnis zur maximalen Kapazität jeder Engine jeweils im Wesentlichen den gleichen Prozentsatz an Verkehr aufweisen.device The claim of claim 3, wherein the remapping engine reassignment logic further comprises causes: redirecting part of the first amount of traffic to one or more additional ones Remapping engines, with the first, the second and one or more additional Remapping Engines in Relation to the maximum capacity each engine essentially the same percentage Have traffic. Gerät nach Anspruch 1, wobei die erste Menge an Verkehr zumindest den Verkehr von einem ersten Gerät und einem zweiten Gerät umfasst.device according to claim 1, wherein the first amount of traffic at least the Traffic from a first device and a second device includes. Gerät nach Anspruch 5, wobei der Teil der ersten Menge an Verkehr, der zur zweiten Remapping-Engine umgeleitet wird, zumindest den Verkehr vom zweiten Gerät umfasst.device according to claim 5, wherein the part of the first amount of traffic, the redirected to the second remapping engine, at least the traffic from the second device includes. Gerät nach Anspruch 1, wobei die Remapping-Engine-Neuzuweisungs-Logik weiter Folgendes bewirkt: das Überwachen der ersten Menge an Verkehr, die durch die erste Remapping-Engine und die zweite Remapping-Engine übersetzt wird; und das Umleiten des Teils der ersten Menge an Verkehr, der durch die zweite Remapping-Engine übersetzt wird, zur ersten Remapping-Engine, wenn die erste Menge an Verkehr unter den ersten Verkehrsschwellenwert zurückkehrt.device The claim of claim 1, wherein the remapping engine reassignment logic further comprises causes: the monitoring the first amount of traffic passing through the first remapping engine and the second Remapping engine translated becomes; and redirecting the part of the first amount of traffic, which is translated by the second remapping engine, to the first remapping engine, if the first amount of traffic is below the first traffic threshold returns. Gerät nach Anspruch 7, wobei die Remapping-Engine-Neuzuweisungs-Logik weiter Folgendes bewirkt: das Kommunizieren an eine Power-Management-Logik, dass die zweite Remapping-Engine beendet werden kann, nachdem der Teil der ersten Menge an Verkehr, der durch die zweite Remapping-Engine übersetzt wird, zur ersten Remapping-Engine zurückgeleitet wird.device The method of claim 7, wherein the remapping engine reassignment logic further comprises causes: communicating to a power management logic, that the second remapping engine can be stopped after the Part of the first amount of traffic being translated by the second remapping engine will be returned to the first remapping engine. System, das umfasst: ein erstes Gerät und ein zweites Gerät; eine erste Remapping-Engine und eine zweite Remapping-Engine, wobei jede Remapping-Engine sowohl mit dem ersten als auch mit dem zweiten Gerät gekoppelt ist; und Remapping-Engine-Neuzuweisungs-Logik, die sowohl mit der ersten als auch mit der zweiten Remapping-Engine gekoppelt ist, wobei die Remapping-Engine-Neuzuweisungs-Logik eine erste Menge an Verkehr überwacht, die durch eine erste Remapping-Engine übersetzt wird; und einen Teil der ersten Menge an Verkehr, der durch eine zweite Remapping-Engine zu übersetzen ist, umleitet, wenn die erste Menge an Verkehr einen ersten Remapping-Engine-Verkehrsschwellenwert erreicht.System comprising: a first device and a second device; a first remapping engine and a second remapping engine, each one Remapping engine with both the first and the second Device coupled is; and Remapping engine reassignment logic that works with both the first as well as the second remapping engine is coupled, with the remapping engine reassignment logic a monitored first amount of traffic, which translates through a first remapping engine becomes; and a part of the first amount of traffic passing through a second remapping engine to translate is, redirects when the first amount of traffic a first remapping engine traffic threshold reached. System nach Anspruch 9, wobei die Remapping-Engine-Neuzuweisungs-Logik weiter Folgendes bewirkt: vor dem Umleiten des Teils der ersten Menge an Verkehr das Abfragen der zweiten Remapping-Engine, um eine Menge an verfügbarer Übersetzungskapazität zu bestimmen; und das Ermöglichen der Umleitung, wenn die verfügbare Menge an Übersetzungskapazität den Teil der ersten Menge an umzuleitendem Verkehr bedienen kann.The system of claim 9, wherein the remapping engine reassignment logic further comprises causes: before redirecting the portion of the first amount of traffic querying the second remapping engine to determine an amount of available translation capacity; and the enabling the diversion, if available Amount of translation capacity the part can serve the first amount of traffic to be redirected. System nach Anspruch 10, wobei die Remapping-Engine-Neuzuweisungs-Logik weiter Folgendes bewirkt: das Bestimmen der Kapazität der ersten und zweiten Remapping-Engine; und das Aufteilen eines Teils der ersten Menge an Verkehr auf jeweils die erste und die zweite Remapping-Engine, so dass jede Engine im Verhältnis zur maximalen Kapazität jeder Engine im Wesentlichen den gleichen Prozentsatz an Verkehr aufweist.The system of claim 10, wherein the remapping engine reassignment logic further comprises causes: determining the capacity of the first and second remapping engines; and splitting up a portion of the first amount of traffic respectively the first and the second remapping engine, so each one Engine in proportion to the maximum capacity each engine has essentially the same percentage of traffic having. System nach Anspruch 11, wobei die Remapping-Engine-Neuzuweisungs-Logik weiter Folgendes bewirkt: das Umleiten eines Teils der ersten Menge an Verkehr zu einer oder mehreren zusätzlichen Remapping-Engines, wobei die erste, die zweite und eine oder mehrere zusätzliche Remapping-Engines im Verhältnis zur maximalen Kapazität jeder Engine jeweils im Wesentlichen den gleichen Prozentsatz an Verkehr aufweisen.The system of claim 11, wherein the remapping engine reassignment logic further comprises causes: redirecting part of the first amount of traffic to one or more additional ones Remapping engines, with the first, the second and one or more additional Remapping Engines in Relation to the maximum capacity each engine essentially the same percentage Have traffic. System nach Anspruch 9, wobei die erste Menge an Verkehr zumindest den Verkehr von dem ersten Gerät und dem zweiten Gerät umfasst.The system of claim 9, wherein the first quantity Traffic comprises at least the traffic from the first device and the second device. System nach Anspruch 13, wobei der Teil der ersten Menge an Verkehr, der zur zweiten Remapping-Engine umgeleitet wird, mindestens den Verkehr von zumindest dem zweiten Gerät umfasst.The system of claim 13, wherein the part of the first Amount of traffic redirected to the second remapping engine at least the traffic of at least the second device comprises. System nach Anspruch 9, wobei die Remapping-Engine-Neuzuweisungs-Logik weiter Folgendes bewirkt: das Überwachen der ersten Menge an Verkehr, die durch die erste Remapping-Engine und die zweiten Remapping-Engine übersetzt wird; und das Umleiten des Teils der ersten Menge an Verkehr, der durch die zweite Remapping-Engine übersetzt wird, zur ersten Remapping-Engine, wenn die erste Menge an Verkehr unter den ersten Verkehrsschwellenwert zurückkehrt.The system of claim 9, wherein the remapping engine reassignment logic further comprises causes: the monitoring the first amount of traffic passing through the first remapping engine and the second Remapping engine translated becomes; and redirecting the part of the first amount of traffic, which is translated by the second remapping engine, to the first remapping engine, if the first amount of traffic is below the first traffic threshold returns. System nach Anspruch 15, das weiter umfasst: eine Power-Management-Logik, um die Leistung, die zumindest zu jeweils der ersten und zweiten Remapping-Engine geliefert wird, zu regeln, wobei die Remapping-Engine-Neuzuweisungs-Logik weiter Folgendes bewirkt: das Kommunizieren an die Power-Management-Logik, um zumindest die Menge an Leistung, der zur zweiten Remapping-Engine geliefert wird, abzusenken, nachdem der Teil der ersten Menge an Verkehr, der durch die zweite Remapping-Engine übersetzt wird, zur ersten Remapping-Engine zurückgeleitet wird.The system of claim 15, further comprising: power management logic to control the power provided to at least each of the first and second remapping engines, wherein the remapping engine reassignment logic further comprises: communicating with the power management logic to lower at least the amount of power delivered to the second remapping engine after the portion of the first amount of traffic translated by the second remapping engine is returned to the first remapping engine. Verfahren, das Folgendes umfasst: das Überwachen einer ersten Menge an Verkehr, die durch eine erste Remapping-Engine übersetzt wird; und das Umleiten eine Teil der ersten Menge an Verkehr, die durch eine zweite Remapping-Engine zu übersetzen ist, wenn die erste Menge an Verkehr einen ersten Remapping-Engine-Verkehrsschwellenwert erreicht.A method comprising: the monitoring a first set of traffic translated by a first remapping engine becomes; and diverting a portion of the first amount of traffic, which is to be translated by a second remapping engine, if the first Amount of traffic a first remapping engine traffic threshold reached. Verfahren nach Anspruch 17, das weiter Folgendes umfasst: vor dem Umleiten des Teils der ersten Menge an Verkehr das Abfragen der zweiten Remapping-Engine, um eine Menge an verfügbarer Übersetzungskapazität zu bestimmen; und das Ermöglichen der Umleitung, wenn die verfügbare Menge an Übersetzungskapazität in der Lage ist, den Teil der ersten Menge an umzuleitendem Verkehr zu bedienen.The method of claim 17, further comprising includes: before redirecting the portion of the first amount of traffic querying the second remapping engine to determine an amount of available translation capacity; and the enabling the diversion, if available Amount of translation capacity in the Able to be the part of the first amount of traffic to be diverted serve. Gerät nach Anspruch 18, das weiter Folgendes umfasst: das Bestimmen der Kapazität der ersten und zweiten Remapping-Engine; und das Aufteilen eines Teils der ersten Menge an Verkehr auf jeweils die erste und zweite Remapping-Engine, so dass jede Engine im Verhältnis zur maximalen Kapazität jeder Engine im Wesentlichen den gleichen Prozentsatz an Verkehr aufweist.device according to claim 18, further comprising: the determining the capacity the first and second remapping engines; and splitting a portion of the first amount of traffic to each of the first and second remapping engine, so that each engine in relation to maximum capacity each engine has essentially the same percentage of traffic having. Gerät nach Anspruch 19, das weiter Folgendes umfasst: das Umleiten eines Teils der ersten Menge an Verkehr zu einer oder mehreren zusätzlichen Remapping-Engines, wobei die erste, die zweite und eine oder mehrere zusätzliche Remapping-Engines im Verhältnis zur maximalen Kapazität jeder Engine jeweils im Wesentlichen den gleichen Prozentsatz an Verkehr aufweisen.device according to claim 19, further comprising: the rerouting a portion of the first amount of traffic to one or more additional ones Remapping engines, with the first, the second and one or more additional Remapping Engines in Relation to the maximum capacity each engine essentially the same percentage Have traffic. Gerät nach Anspruch 17, wobei die erste Menge an Verkehr zumindest den Verkehr von einem ersten Gerät und einem zweiten Gerät umfasst.device according to claim 17, wherein the first amount of traffic at least the Traffic from a first device and a second device includes. Gerät nach Anspruch 21, wobei der Teil der ersten Menge an Verkehr, der zur zweiten Remapping-Engine umgeleitet wird, zumindest den Verkehr von dem zweiten Gerät umfasst.device according to claim 21, wherein the part of the first amount of traffic, the redirected to the second remapping engine, at least the traffic from the second device includes. Gerät nach Anspruch 17, das weiter umfasst: das Überwachen der ersten Menge an Verkehr, die durch die erste Remapping-Engine und die zweite Remapping-Engine übersetzt wird; und das Umleiten des Teils der ersten Menge an Verkehr, die durch die zweite Remapping-Engine übersetzt wird, zur ersten Remapping-Engine, wenn die erste Menge an Verkehr unter den ersten Verkehrsschwellenwert zurückkehrt.device according to claim 17, further comprising: monitoring the first set traffic translated by the first remapping engine and the second remapping engine becomes; and redirecting the part of the first amount of traffic, which is translated by the second remapping engine, to the first remapping engine, if the first amount of traffic is below the first traffic threshold returns. Gerät nach Anspruch 23, das weiter umfasst: das Kommunizieren an eine Power-Management-Logik, dass die zweite Remapping-Engine beendet werden kann, nachdem der Teil der ersten Menge an Verkehr, der durch die zweite Remapping-Engine übersetzt wird, zur ersten Remapping-Engine zurückgeleitet wurde.device according to claim 23, further comprising: communicating a power management logic that stops the second remapping engine can be after the part of the first amount of traffic passing through the second remapping engine translated is returned to the first remapping engine.
DE102009060265A 2008-12-31 2009-12-23 Efficient use of a remapping engine Ceased DE102009060265A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/319,060 US20100169673A1 (en) 2008-12-31 2008-12-31 Efficient remapping engine utilization
US12/319,060 2008-12-31

Publications (1)

Publication Number Publication Date
DE102009060265A1 true DE102009060265A1 (en) 2011-02-03

Family

ID=41716941

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009060265A Ceased DE102009060265A1 (en) 2008-12-31 2009-12-23 Efficient use of a remapping engine

Country Status (5)

Country Link
US (1) US20100169673A1 (en)
JP (1) JP2010157234A (en)
CN (1) CN101794238B (en)
DE (1) DE102009060265A1 (en)
GB (1) GB2466711A (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5320140B2 (en) * 2009-04-14 2013-10-23 株式会社日立製作所 Computer system, interrupt relay circuit, and interrupt relay method
US8285915B2 (en) * 2010-01-13 2012-10-09 International Business Machines Corporation Relocating page tables and data amongst memory modules in a virtualized environment
US8478845B2 (en) * 2010-08-16 2013-07-02 International Business Machines Corporation End-to-end provisioning of storage clouds
KR101867960B1 (en) * 2012-01-05 2018-06-18 삼성전자주식회사 Dynamically reconfigurable apparatus for operating system in manycore system and method of the same
JP5981020B2 (en) 2012-04-24 2016-08-31 インテル コーポレイション Dynamic interrupt reconfiguration for efficient power management
US10303618B2 (en) * 2012-09-25 2019-05-28 International Business Machines Corporation Power savings via dynamic page type selection
US8966132B2 (en) * 2012-11-16 2015-02-24 International Business Machines Corporation Determining a mapping mode for a DMA data transfer
US8984179B1 (en) 2013-11-15 2015-03-17 International Business Machines Corporation Determining a direct memory access data transfer mode
US20180039518A1 (en) * 2016-08-02 2018-02-08 Knuedge Incorporated Arbitrating access to a resource that is shared by multiple processors
FR3070514B1 (en) * 2017-08-30 2019-09-13 Commissariat A L'energie Atomique Et Aux Energies Alternatives DIRECT MEMORY ACCESS CONTROLLER, DEVICE AND METHOD FOR RECEIVING, STORING AND PROCESSING CORRESPONDING DATA
CN109783196B (en) * 2019-01-17 2021-03-12 新华三信息安全技术有限公司 Virtual machine migration method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061549A1 (en) * 2005-09-15 2007-03-15 Kaniyur Narayanan G Method and an apparatus to track address translation in I/O virtualization
US20080134192A1 (en) * 2002-02-21 2008-06-05 Jack Allen Alford Apparatus and method of dynamically repartitioning a computer system in response to partition workloads

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
JP2774862B2 (en) * 1990-07-16 1998-07-09 株式会社日立製作所 DMA control device and information processing device
JPH05216842A (en) * 1992-02-05 1993-08-27 Mitsubishi Electric Corp Resources managing device
WO2003075161A1 (en) * 2002-03-07 2003-09-12 Fujitsu Limited Storage virtualization system conversion management apparatus and storage virtualization system conversion management method
JP2005293427A (en) * 2004-04-02 2005-10-20 Matsushita Electric Ind Co Ltd Data transfer processing apparatus and data transfer processing method
US9264384B1 (en) * 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
JP2006113827A (en) * 2004-10-15 2006-04-27 Hitachi Ltd Load distribution method by cpu margin management and transaction priority
US20060288130A1 (en) * 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US20070067505A1 (en) * 2005-09-22 2007-03-22 Kaniyur Narayanan G Method and an apparatus to prevent over subscription and thrashing of translation lookaside buffer (TLB) entries in I/O virtualization hardware
US8001543B2 (en) * 2005-10-08 2011-08-16 International Business Machines Corporation Direct-memory access between input/output device and physical memory within virtual machine environment
US7613898B2 (en) * 2006-01-17 2009-11-03 Globalfoundries Inc. Virtualizing an IOMMU
US20080077767A1 (en) * 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080134192A1 (en) * 2002-02-21 2008-06-05 Jack Allen Alford Apparatus and method of dynamically repartitioning a computer system in response to partition workloads
US20070061549A1 (en) * 2005-09-15 2007-03-15 Kaniyur Narayanan G Method and an apparatus to track address translation in I/O virtualization

Also Published As

Publication number Publication date
JP2010157234A (en) 2010-07-15
GB2466711A (en) 2010-07-07
CN101794238B (en) 2014-07-02
US20100169673A1 (en) 2010-07-01
CN101794238A (en) 2010-08-04
GB0922600D0 (en) 2010-02-10

Similar Documents

Publication Publication Date Title
DE102009060265A1 (en) Efficient use of a remapping engine
DE3687805T2 (en) INPUT AND CONTROL SYSTEM IN A VIRTUAL MACHINE SYSTEM.
DE3586359T2 (en) SYSTEM AND METHOD FOR CARRYING OUT I / O OPERATIONS FOR A VIRTUAL SYSTEM.
DE112011102183B4 (en) Accelerator for migrating virtual machines
DE69233655T2 (en) Microprocessor architecture with the possibility to support several different processors
DE102008035120B4 (en) Processor selection for an interrupt identifying a processor cluster
DE102010001339A1 (en) Manage requirements of operating systems that run in virtual machines
DE69735575T2 (en) Method and apparatus for interrupt distribution in a scalable symmetric multiprocessor system without changing the bus width or the bus protocol
DE10297166T5 (en) Interrupt handling mechanism in computer systems that support the simultaneous execution of multiple threads
DE112011103408T5 (en) Manage compressed storage using staged interrupts
DE112011102822T5 (en) Performance-optimized interrupt delivery
DE112012005209T5 (en) Bridge function between virtual machine monitor and bare-metal boot process
DE112007002201T5 (en) Quality of service implementation for platform resources
DE102010001985A1 (en) Device for switching the operation of a virtual machine between several computers, which are assigned to the same computer platform, and corresponding switching methods
DE112015007188T5 (en) Batch migration of virtual machines during active operation
DE102010035603A1 (en) Providing hardware support for shared virtual memory between physical local and remote storage
DE112010005821T5 (en) context switching
DE112010003554T5 (en) Symmetrical direct migration of virtual machines
DE112010002425B4 (en) Delegate a request operation to another facility
DE102005029852A1 (en) Multiprocessor system with multiple memory locations for respectively storing TLB launch data for multiple processor nodes
DE102015002191A1 (en) Security hypervisor function
DE602005006338T2 (en) Apparatus and method for data transmission processing
DE102016203808A1 (en) Reduce virtual machine preemption in a virtualized environment
DE102020103521A1 (en) Minimizing the use of hardware counters in triggered operations for collective communication
DE112015001502T5 (en) Exit from multiple threads in a computer

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final