DE102009049078A1 - Verwendung von Ausführer-Wissen über Speicherregion-Ordnungsanforderungen zum Modifizieren von Transaktionsattributen - Google Patents
Verwendung von Ausführer-Wissen über Speicherregion-Ordnungsanforderungen zum Modifizieren von Transaktionsattributen Download PDFInfo
- Publication number
- DE102009049078A1 DE102009049078A1 DE102009049078A DE102009049078A DE102009049078A1 DE 102009049078 A1 DE102009049078 A1 DE 102009049078A1 DE 102009049078 A DE102009049078 A DE 102009049078A DE 102009049078 A DE102009049078 A DE 102009049078A DE 102009049078 A1 DE102009049078 A1 DE 102009049078A1
- Authority
- DE
- Germany
- Prior art keywords
- read access
- order
- access execution
- endpoint device
- attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 15
- 230000007246 mechanism Effects 0.000 claims description 10
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000002040 relaxant effect Effects 0.000 abstract description 2
- 241001295925 Gegenes Species 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000543 intermediate Substances 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
- Memory System (AREA)
- Power Sources (AREA)
Abstract
Verfahren und System zur Lockerung der Ordnung einer Lesezugriffsausführung, indem ein Ordnungsattribut in der Lesezugriffsausführung gesetzt wird. Die gelockerte Ordnung ermöglicht es der Lesezugriffsausführung, ausstehende Schreibzugriffe zu umgehen.
Description
- Technisches Gebiet
- Erfindungsgemäße Ausführungsformen beziehen sich im Allgemeinen auf Transaktionsordnung und insbesondere auf Systeme und Verfahren, die ein Modifizieren der strikten Ordnung ermöglichen.
- Hintergrund
- Peripheral Component Interconnect (PCI) ist eine parallele Busarchitektur der zweiten Generation, die 1992 als Ersatz für den Industry Standard Architecture-Bus (ISA-Bus) entwickelt wurde. Beim PCI-Standard teilen sich alle Geräte denselben bidirektionalen, parallelen 32-Bit-Signalweg (oder 64-Bit-Signalweg). Der PCI-Bus bietet Vorteile gegenüber dem ISA-Bus, darunter Prozessorunabhängigkeit, gepufferte Isolation, Bus-Mastering sowie echten Plug-and-Play-Betrieb. PCI Express (PCIe) ist eine universelle serielle Ein-/Ausgabe-(I/O – Input/Output)-Verbindung der dritten Generation, die dafür konzipiert ist, den PCI-Bus zu ersetzen. PCIe ist weniger als ein Bus zu sehen, sondern ist eher um serielle Punkt-zu-Punkt-Verbindungen herum strukturiert, die als „Lanes” bezeichnet werden.
- Die serielle Punkt-zu-Punkt-Verbindungsarchitektur von PCIe eignet sich gut für verteilte Datenverarbeitung mittels eines verteilten Mehrprozessor-Architektur-Modells. Verteilte Prozessoren sind im Allgemeinen dafür optimiert, Datenpaket-Verarbeitungsfunktionen zu realisieren. Anders als bei universellen Zentralprozessoren (Central Processing Units, CPUs), die zur Leistungssteigerung sehr auf Caching angewiesen sind, fehlt bei verteilten Prozessoren der lokale Aspekt bei der Paketverarbeitung sowie der Bedarf an leistungsstarker Ein-/Ausgabe (I/O), der Designer dazu motiviert hat, innovative Architekturen zu entwickeln, um die Verarbeitungslatenz bei gleichzeitiger Paketverarbeitung mit hohen Datenraten zu reduzieren.
- Derzeit müssen Transaktionsordnungsattribute in einem PCIe und ähnlichen Verbindungen von dem Anfrager gesetzt werden. Da die Host-CPUs eine allgemeine Ressource sind, sind sie typischerweise nicht in der Lage, Ordnungsattribute gemäß den spezifischen Anforderungen der geleisteten Aktivität zu setzen und müssen auf den kleinsten gemeinsamen Nenner zurückgreifen, was zu geringer Leistung führt. Lesezugriffe von der CPU auf die I/O sind oftmals die kritischsten Systemtransaktionen bezüglich der Leistung, da ein CPU-Kern blockieren kann, während er auf das Ergebnis wartet. Eine Leistungssteigerung solcher Lesezugriffe führt daher direkt zu einer Steigerung der Gesamtleistung des Systems, indem CPU-Ressourcen für andere, nützlichere Arbeiten freigegeben werden.
- Kurze Beschreibung der Zeichnungen
- Am besten ist die Erfindung zu verstehen, wenn auf die folgende Beschreibung und die sie begleitenden Zeichnungen, die die Ausführungsformen der Erfindung veranschaulichen, Bezug genommen wird.
-
1 ist eine schematische Veranschaulichung eines PCIe Request Header, die das Attribut für die gelockerte Ordnung veranschaulicht. -
2 ist eine schematische Veranschaulichung eines PCIe Completion Header, die das Attribut für die gelockerte Ordnung veranschaulicht. -
3 ist eine schematische Veranschaulichung einer erfindungsgemäßen Ausführungsform. -
4 ist eine schematische Veranschaulichung einer weiteren erfindungsgemäßen Ausführungsform. - Ausführliche Beschreibung
- Werden in der Beschreibung und den Ansprüchen die Singularformen „ein”, „eine” und „der”, „die”, „das” verwendet, schließen diese den Plural mit ein, sofern der Kontext nicht ausdrücklich etwas anderes vorgibt. Ein „Root-Complex” („RC”) ist ein PCI-Express-Baugruppe, die einen Zentralprozessor („CPU” oder „Prozessor”) und einen Speicher mit der PCI Express-Switch-Fabric verbindet. Der Root-Complex erzeugt für den Prozessor Transaktionsanfragen. Ein „Anfrager” ist jedes Gerät, das eine Anfrage stellt. Ein „Ausführer” ist jede Einheit, die eine Anfrage bedient. Ein „Intermediate” ist jedes Gerät, wie beispielsweise ein Switch, zwischen dem Anfrager und dem Ausführer. Typischerweise leiten Intermediates die Anfrage lediglich weiter. „Upstream” wie in der Beschreibung und den Ansprüchen verwendet, zeigt einen Fluss in Richtung des Root-Complexes an. „Downstream” zeigt einen Fluss weg von dem Root-Complex an. Eine „Region” ist ein Teil des Speichers, der durch eine Adresse oder viele verschiedene Adressen definiert ist. Ein Gerät könnte beispielsweise verschiedene Verhalten für Regionen verlangen, wobei die eine Region zur Speicherung von Anweisungen an das Gerät verwendet wird, und die andere Region für Daten verwendet wird, die von dem Gerät erzeugt oder verarbeitet werden.
- Erfindungsgemäße Ausführungsformen beschreiben, wie ein Teil der Leistung, die aufgrund einer unnötig strikten Ordnung verloren ging, für Lesezugriffe von der CPU auf das I/O-Gerät zurückgewonnen werden kann, indem das I/O-Gerät die Ordnungsattribute der Ausführung basierend auf dem Verstehen des Geräts der Transaktion-spezifischen Anforderungen modifiziert. Als Beispiel für das Problem der strikten Ordnung muss man berücksichtigen, dass wenn ein Lesezugriff, dessen Ausführung anfangs 2 μs dauert, auf 1 μs verbessert werden kann, die Differenz von 1 μs an den Kern „zurückgegeben” werden kann, um nützliche Arbeit zu erledigen – genug Zeit, um viele Tausend Anweisungen auszuführen. Derzeit treten häufig Latenzzeiten bei Lesezugriffen von der CPU auf das I/O-Gerät von 0,6 μs bis zu mehreren μs auf. Bei großen Systemen können Latenzzeiten für herkömmlich geordnete Lesezugriffe von der CPU auf das I/O-Gerät von 4 μs auftreten. Ein Großteil dieser Verzögerung wird durch die herkömmliche Ordnungsanforderung hervorgerufen, die es Ausführungen verbietet, Schreibzugriffe zu umgehen. Da der Schreibzugriff-Traffic von I/O-Geräten zum Hauptspeicher oft sehr hoch ist, sind Lesezugriffsausführungen zu der CPU oft einfach durch die Warteschlangenverzögerungen, die durch diese vielen Schreibzugriffe verursacht werden, verzögert.
- PCIe und ähnliche Kopplungsstrukturen assoziieren Ordnungsattribute mit Transaktionen, um eine optimierte Handhabung zu ermöglichen. Im Falle des PCI/PCIe beispielsweise erfordern die Standardregeln für die Ordnung als Korrektheitsanforderung des PCI Erzeuger/Verbraucher-Ordnungsmodells, dass Lesezugriffsausführungen auf alle vorher ausgegebenen Schreibzugriffe warten, die in die gleiche Richtung fließen. Dieses Modell ist jedoch zumeist allzu konservativ. Im Allgemeinen ist es beispielsweise notwendig, die Schreibzugriffe des I/O-Geräts in den Hauptspeicher zu flushen, bevor eine Datenstruktur gelesen wird, die den Status eines I/O-Geräts beschreibt. Das Flushen des Schreibzugriffs eines Gerätes wird oft durchgeführt, indem die CPU aus dem Gerät liest. Sobald jedoch der Lesezugriff zum Flushen ausgeführt ist, müssen zusätzliche Lesezugriffe bezüglich des Gerätestatus typischerweise nicht gegen Upstream-Schreibzugriffe geordnet sein. Ferner ist es im Allgemeinen nicht notwendig, den Lesezugriff der CPU gegen Upstream-Schreibzugriffe von Geräten ohne Beziehung zueinander zu ordnen, auch wenn die PCI/PCIe-Standardregeln für die Ordnung dieses Verhalten erfordern.
- Typischerweise gibt es für die Host-CPU keine Möglichkeit zu wissen, wie sie Lesezugriffsanfragen markieren soll, um die erforderlichen Ordnungsattribute anzugeben. Typischerweise weiß das I/O-Gerät jedoch, welche Regionen eine herkömmliche Ordnung erfordern und welche nicht. Die Ordnungsanforderungen können stark von Gerät zu Gerät variieren, von einem Register innerhalb eines Gerätes zu einem anderen Register in dem gleichen Gerät und sogar für ein Register, je nachdem, wie auf das Register zugegriffen wird. Das Wissen der Ordnungsanforderungen könnte theoretisch über auf dem Host laufende Gerätetreibersoftware weitergegeben werden, aber die meisten aktuellen Architektur-CPUs stellen keinen Mechanismus dafür bereit. Typischerweise besitzt das I/O-Gerät selbst jedoch das Wissen der Ordnungsanforderungen. Das I/O-Gerät kann die CPU jedoch nicht auf Geräteanfrage markieren – dieser Teil der Transaktion muss durchgeführt werden unter der Annahme, dass die konservativsten Ordnungsanforderungen gelten, falls nicht ein anderer Mechanismus für eine anderweitige Anzeige verwendet wird.
- In vielen Fällen verursachen die auf der Ausführung angeordneten Ordnungsanforderungen signifikante Blockierungen. Mit den erfindungsgemäßen Systemen und Verfahren kann jedoch die Ordnungsanforderung durch das I/O-Gerät markiert werden, um gegebenenfalls die Ordnungsanforderung zu lockern. Die Ordnungsanforderung hängt von der implementierenden Architektur ab. Bei einer erfindungsgemäßen Ausführungsform ist die Architektur PCIe. PCIe-Geräte haben bereits Zugriff auf ein Ordnungsattribut namens „gelockerte Ordnung” (Relaxed Ordering – RO).
-
1 zeigt die Position des RO-Bits in dem PCIe Request Header. Das RO-Bit in der Anfrage ist typischerweise auf 0 gesetzt, es sei denn, es gibt einen Mechanismus, der Informationen für die CPU bereitstellt, damit diese nachvollziehen kann, welche Anfragen es ermöglichen könnten, das RO-Bit zu setzen. Gemäß vorliegender PCIe-Regeln, werden das RO-Bit (und damit verbundene Ordnungsimplikationen) einfach durch den Ausführer von der Anfrage- in die Antwortnachricht kopiert.2 zeigt das entsprechende RO-Bit in dem PCIe Completion Header. - Beim heutigen PCI-x/PCIe wird das RO-Bit nur in dem Completion Header gesetzt, wenn es in der entsprechenden Anfrage gesetzt war. Diese Richtlinie ist für Lesezugriffe des Gerätes auf den Hauptspeicher sinnvoll, da man annimmt, dass das Gerät „weiß”, welche Anfragen mit RO markiert werden können und welche nicht. Erfindungsgemäße Ausführungsformen erkennen, dass CPU-Lesezugriffe von einem Gerät für die von dem Gerät zurückgeschickte Antwortnachricht mit RO markiert werden können. Dies ermöglicht es der Ausführung, Schreibzugriffe von Geräten ohne Beziehung zueinander auf den Speicher zu umgehen.
-
3 zeigt ein Beispiel, wie ein Attribut für die gelockerte Ordnung (in diesem Fall das RO-Bit einer PCI/PCIe-Ausführung) von einem I/O-Gerät gesetzt werden kann. Bei diesem Beispiel beinhaltet das System100 drei PCI/PCIe-Endpunkte 1, 2, 3. Das System100 kann jedoch jede beliebige Anzahl an PCI/PCIe-Endpunkten aufweisen. Die ersten beiden PCI/PCIe-Endpunkte 1, 2 verbinden sich mit einem Switch108 über PCIe-Verbindungen122 . Der Switch108 verbindet sich mit dem Root-Complex110 über eine weitere PCIe-Verbindung122 . Der dritte PCI/PCIe-Endpunkt 3 verbindet sich direkt mit dem Root-Complex110 über eine PCIe-Verbindung122 . Der Root-Complex110 umfasst einen Ein-/Ausgabe Controller-Hub-Controller (input/output controller hub controller – ICH)112 , einen Speicher-Controller-Hub (memory controller hub – MCH)114 , Hauptspeicher116 und eine CPU118 . Der Ein-/Ausgabe Controller-Hub-Controller (input/output controller hub controller – ICH)112 verbindet sich mit dem Speicher-Controller-Hub (memory controller hub – MCH)114 über ein Desktop Management Interface (DMI)120 . - Bei dieser Ausführungsform schreiben die Endpunkte 2 und 3 Daten auf den Hauptspeicher
116 . Diese Schreibzugriffe betreffen die Aktivitäten von Endpunkt 1 nicht. Ein CPU-Kern118 liest von Endpunkt 1. Herkömmliche PCI-Regeln für die Ordnung verbieten es der Ausführung, die Schreibzugriffe auf den Speicher zu umgehen, unter der (allzu konservativen) Annahme, dass diese Schreibzugriffe die gelesenen Daten betreffen könnten. Dieses Verhalten ist von dem PCI Erzeuger/Verbraucher-Modell vorgesehen. Typischerweise „weiß” Endpunkt 1, ob die von der CPU gelesenen Daten die ausstehenden Schreibzugriffe auf den Speicher betreffen und zeigt RO für die gelesene Ausführung nicht an, wenn es eine Beziehung zu den ausstehenden Schreibzugriffen gibt. In den meisten Fällen „weiß” Endpunkt 1 jedoch, dass der Lesezugriff keinerlei ausstehende Schreibzugriffe betrifft und in diesem Fall kann Endpunkt 1 die Ausführung sicher für RO markieren. -
4 veranschaulicht eine weitere erfindungsgemäße Ausführungsform, bei der die adressierenden Geräte in einen Root-Complex110 integriert sind. Das System200 umfasst zwei integrierte Endpunkte124 ,126 , die mit einem Ein-/Ausgabe Controller-Hub-Controller (input/output controller hub controller – ICH)112 verbunden sind. Der Ein-/Ausgabe Controller-Hub-Controller (input/output controller hub controller – ICH)11 verbindet sich mit einem Speicher-Controller-Hub (memory controller hub – MCH)114 über ein Desktop Management Interface (DMI)120 . Der Speicher-Controller-Hub (memory controller hub – MCH)114 verbindet sich mit einer CPU118 und einem Hauptspeicher116 . Diese Ausführungsform beinhaltet einen einzigen PCI/PCIe-Endpunkt 1. Das System100 kann jedoch jede beliebige Anzahl an integrierten adressierenden Geräten124 ,126 oder PCI/PCIe-Endpunkten 1 aufweisen. - In vielen Fällen werden die integrierten adressierenden Geräte
124 ,126 auf sehr wohldefinierte Weise verwendet, und es ist möglich, die Mechanismen zu vereinfachen, die verwendet werden, um zu bestimmen, wann eine Lockerung der Ausführungsordnung zulässig ist. Man beachte, dass die spezifische Handhabung der Ausführungsordnung den PCIe-RO-Anforderungen nicht Folge leisten muss. Dies bedeutet, dass weitere erfindungsgemäße Ausführungsformen einfacher oder differenzierter gestaltet werden können, je nach den/dem gewünschten Kosten/Nutzen. -
4 zeigt ein System mit Root-Complex-integrierten Geräten, das an einem Schema zur Lockerung der Ausführungsordnung beteiligt ist. In dem in4 veranschaulichten System der folgenden Richtlinien oder anderer ähnlicher Richtlinien kann folgendes implementiert werden: - • Erkennen, dass CPU-Lesezugriffe von einem integrierten Gerät niemals Ordnungsanforderungen gegen Schreibzugriffe auf den Hauptspeicher von anderen integrierten Geräten haben können
- • Erkennen, dass CPU-Lesezugriffe von einem integrierten Gerät niemals Ordnungsanforderungen gegen Schreibzugriffe auf den Hauptspeicher von nicht integrierten Geräten haben können
- • Erkennen, dass CPU-Lesezugriffe von einem nicht integrierten Gerät niemals Ordnungsanforderungen gegen Schreibzugriffe auf den Hauptspeicher von anderen integrierten Geräten haben können
- • Erkennen, dass CPU-Lesezugriffe von einem nicht integrierten Gerät niemals Ordnungsanforderungen gegen Schreibzugriffe auf den Hauptspeicher von anderen nicht integrierten Geräten haben können
- Die vorstehenden Beispiele wurden mit dem PCI/PCIe-RO-Attribut veranschaulicht. Die Erfindung ist jedoch nicht auf PCI/PCIe-RO beschränkt. Im allgemeineren Fall kann sich das Ordnungsattribut von der RO unterscheiden. Ferner kann die Art und Weise, wie das Ordnungsattribut ausgedrückt ist, variieren. Es ist ausreichend, dass der Ausführer das Wissen besitzt, zu bestimmen, ob die Ausführungsordnung sicher von dem Standardverhalten modifiziert werden kann. Zusätzlich wurden die vorstehenden Beispiele bezüglich einer Ordnung gegen Upstream-Schreibzugriffe veranschaulicht. Das System ist jedoch symmetrisch. Das heißt, dass das Ordnungsattribut gelockert werden kann, um die Ordnung auch gegen Downstream-Schreibzugriffe zu ändern.
- Die erfindungsgemäßen Ausführungsformen können eine Leistungssteigerung bereitstellen, die für eine große Anzahl von Computersystemen wünschenswert ist. PC-kompatible Architektursysteme sind besonders eingeschränkt, da es Anforderungen hinsichtlich der Unterstützung von Legacy-Hardware und -Software erschweren, Ordnungslockerungen zu implementieren. Der vorstehend beschriebene Mechanismus ist jedoch für PC-Umgebungen gut geeignet.
- Während die Erfindung bezogen auf verschiedene Ausführungsformen der Erfindung beschrieben wurde, wird der Durchschnittsfachmann erkennen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen der Erfindung beschränkt ist, sondern auch mit Abwandlungen und Änderungen im Sinne und innerhalb des Schutzbereichs der angefügten Ansprüche genutzt werden kann. Die Beschreibung ist daher als eine nicht einschränkende Veranschaulichung zu verstehen.
Claims (25)
- Datenverarbeitungssystem, umfassend: einen Mechanismus zur Transaktionsordnung, konfiguriert um zu bestimmen, ob ein Ordnungsattribut einer Lesezugriffsausführung gelockert werden kann, und ferner konfiguriert, um gegebenenfalls das Ordnungsattribut zu lockern, wobei ein gelockertes Ordnungsattribut es der Lesezugriffsausführung ermöglicht, ausstehende Schreibzugriffe zu umgehen.
- System nach Anspruch 1, wobei der Mechanismus zur Transaktionsordnung konfiguriert ist, um ein Ordnungslockerungs-Bit in einem Completion Header zu setzen und das Umgehen in einem Peripheral Component Interconnect stattfindet.
- System nach Anspruch 1, wobei der Mechanismus zur Transaktionsordnung konfiguriert ist, um ein Ordnungslockerungs-Bit in einem Completion Header zu setzen und das Umgehen in einem Desktop Management Interface stattfindet.
- dargestellt. System nach Anspruch 1, wobei das System ein erstes Endpunktgerät umfasst, wobei das erste Endpunktgerät den Mechanismus zur Transaktionsordnung umfasst.
- dargestellt. System nach Anspruch 4, wobei der Mechanismus zur Transaktionsordnung ausgelegt ist, das Ordnungsattribut basierend auf dem Verstehen des ersten Endpunktgerätes einer Transaktions-spezifischen Anforderung zu lockern.
- System nach Anspruch 4, wobei das System zusätzliche Endpunktgeräte umfasst und ein Setzen eines gelockerten Bits es der Lesezugriffsausführung ermöglicht, ausstehende Schreibzugriffe von den zusätzlichen Endpunktgeräten zu umgehen.
- System nach Anspruch 1, ferner umfassend ein in einen Root-Complex integriertes Endpunktgerät.
- dargestellt. System nach Anspruch 7, ferner umfassend zusätzliche Endpunktgeräte.
- dargestellt. System nach Anspruch 8, wobei sich mindestens eines der zusätzlichen Endpunktgeräte in dem Root-Complex befindet.
- Verfahren, umfassend: das Bestimmen, ob ein Ordnungsattribut einer Lesezugriffsausführung gelockert werden kann, um es der Lesezugriffsausführung zu ermöglichen, einen oder mehrere ausstehende Schreibzugriffe zu umgehen; das Setzen des Ordnungsattributs der Lesezugriffsausführung, um es der Lesezugriffsausführung zu ermöglichen, den einen oder mehrere ausstehende Schreibzugriffe zu umgehen.
- Verfahren nach Anspruch 10, ferner umfassend das Bestimmen, ob die Lesezugriffsausführung für ein erstes Endpunktgerät den einen oder mehrere ausstehende Schreibzugriffe betrifft.
- Verfahren nach Anspruch 10, wobei das Setzen des Ordnungsattributs das Setzen eines Ordnungslockerungs-Bits in einem Completion Header umfasst und wobei das Umgehen in einem Peripheral Component Interconnect stattfindet.
- Verfahren nach Anspruch 10, wobei das Setzen des Ordnungsattributs das Setzen eines Ordnungslockerungs-Bits in einem Completion Header umfasst und wobei das Umgehen in einem Desktop Management Interface stattfindet.
- Verfahren nach Anspruch 10, wobei das Bestimmen, ob ein Ordnungsattribut einer Lesezugriffsausführung gelockert werden kann, auf dem Verstehen des ersten Endpunktgerätes einer Transaktion-spezifischen Anforderung basiert.
- Verfahren nach Anspruch 12, ferner umfassend, dass die Lesezugriffsausführung den einen oder mehrere ausstehende Schreibzugriffe umgeht.
- Verfahren nach Anspruch 13, ferner umfassend, dass die Lesezugriffsausführung den einen oder mehrere ausstehende Schreibzugriffe umgeht.
- Verfahren nach Anspruch 11, wobei der eine oder mehrere ausstehende Schreibzugriffe von einem oder mehreren zusätzlichen Endpunktgeräten stammen.
- Verfahren nach Anspruch 17, wobei mindestens eines der zusätzlichen Endpunktgeräte in den Root-Complex integriert ist.
- Verfahren nach Anspruch 18, das weiter Folgendes umfasst: das Senden einer Lesezugriffsanfrage von einem Zentralprozessor an das erste Endpunktgerät, wobei das erste Endpunktgerät in den Root-Complex integriert ist; und das Senden der Lesezugriffsausführung von dem ersten Endpunktgerät an den Hauptspeicher, wobei das Ordnungsattribut immer gesetzt werden kann, um es der Lesezugriffsausführung zu ermöglichen, den einen oder mehrere ausstehende Schreibzugriffe von dem mindestens einen zusätzlichen integrierten Gerät zu umgehen.
- Verfahren nach Anspruch 18, das weiter Folgendes umfasst: das Senden einer Lesezugriffsanfrage von einem Zentralprozessor an das erste Endpunktgerät, wobei das erste Endpunktgerät in den Root-Complex integriert ist; und das Senden der Lesezugriffsausführung von dem ersten Endpunktgerät an den Hauptspeicher, wobei das Ordnungsattribut immer gesetzt werden kann, um es der Lesezugriffsausführung zu ermöglichen, den einen oder mehrere ausstehende Schreibzugriffe von einem zusätzlichen nicht integrierten Gerät zu umgehen.
- Verfahren nach Anspruch 18, das weiter Folgendes umfasst: das Senden einer Lesezugriffsanfrage von einem Zentralprozessor an das erste Endpunktgerät, wobei das erste Endpunktgerät nicht in den Root-Complex integriert ist; und das Senden der Lesezugriffsausführung von dem ersten Endpunktgerät an den Hauptspeicher, wobei das Ordnungsattribut immer gesetzt werden kann, um es der Lesezugriffsausführung zu ermöglichen, den einen oder mehrere ausstehende Schreibzugriffe von dem mindestens einen zusätzlichen integrierten Gerät zu umgehen.
- Verfahren nach Anspruch 18, das weiter Folgendes umfasst: das Senden einer Lesezugriffsanfrage von einem Zentralprozessor an das erste Endpunktgerät, wobei das erste Endpunktgerät nicht in den Root-Complex integriert ist; und das Senden der Lesezugriffsausführung von dem ersten Endpunktgerät an den Hauptspeicher, wobei das Ordnungsattribut immer gesetzt werden kann, um es der Lesezugriffsausführung zu ermöglichen, den einen oder mehrere ausstehende Schreibzugriffe von einem zusätzlichen nicht integrierten Gerät zu umgehen.
- Vorrichtung, umfassend: Mittel zur Bestimmung, ob ein Ordnungsattribut einer Lesezugriffsausführung gelockert werden kann, um es der Lesezugriffsausführung zu ermöglichen, einen oder mehrere ausstehende Schreibzugriffe zu umgehen; Mittel zum Setzen des Ordnungsattributs der Lesezugriffsausführung, um ein Umgehen des einen oder mehrerer ausstehender Schreibzugriffe zu ermöglichen.
- Vorrichtung nach Anspruch 23, wobei die Mittel zum Setzen des Ordnungsattributs ein Mittel zum Setzen eines Ordnungslockerungs-Bits in einem Completion Header umfassen.
- Vorrichtung nach Anspruch 23, wobei die Vorrichtung ein Peripheral Component Interconnect ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/252,303 US8108584B2 (en) | 2008-10-15 | 2008-10-15 | Use of completer knowledge of memory region ordering requirements to modify transaction attributes |
US12/252,303 | 2008-10-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102009049078A1 true DE102009049078A1 (de) | 2010-05-20 |
DE102009049078B4 DE102009049078B4 (de) | 2015-03-05 |
Family
ID=41462384
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102009061252.1A Active DE102009061252B3 (de) | 2008-10-15 | 2009-10-12 | Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes |
DE102009049078.7A Active DE102009049078B4 (de) | 2008-10-15 | 2009-10-12 | Verwendung von Ausführer-Wissen über Speicherregion-Ordnungsanforderungen zum Modifizieren von Transaktionsattributen |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102009061252.1A Active DE102009061252B3 (de) | 2008-10-15 | 2009-10-12 | Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes |
Country Status (6)
Country | Link |
---|---|
US (2) | US8108584B2 (de) |
JP (3) | JP5479020B2 (de) |
CN (2) | CN101727413B (de) |
DE (2) | DE102009061252B3 (de) |
GB (1) | GB2464403B (de) |
TW (2) | TWI420319B (de) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108584B2 (en) * | 2008-10-15 | 2012-01-31 | Intel Corporation | Use of completer knowledge of memory region ordering requirements to modify transaction attributes |
US8402195B2 (en) * | 2009-10-27 | 2013-03-19 | Hitachi, Ltd. | Storage system mounted with plurality of processors |
WO2013105967A1 (en) | 2012-01-13 | 2013-07-18 | Intel Corporation | Efficient peer-to-peer communication support in soc fabrics |
US9129071B2 (en) * | 2012-10-24 | 2015-09-08 | Texas Instruments Incorporated | Coherence controller slot architecture allowing zero latency write commit |
KR102065664B1 (ko) | 2013-08-09 | 2020-01-13 | 삼성전자 주식회사 | 메모리 장치의 열화 상태 추정 방법 및 이를 이용한 메모리 시스템에서의 웨어 레벨링 방법 |
US10013385B2 (en) | 2014-11-13 | 2018-07-03 | Cavium, Inc. | Programmable validation of transaction requests |
US9569362B2 (en) * | 2014-11-13 | 2017-02-14 | Cavium, Inc. | Programmable ordering and prefetch |
US10007619B2 (en) * | 2015-05-29 | 2018-06-26 | Qualcomm Incorporated | Multi-threaded translation and transaction re-ordering for memory management units |
US10127968B2 (en) * | 2015-08-03 | 2018-11-13 | Intel Corporation | Method and apparatus for completing pending write requests to volatile memory prior to transitioning to self-refresh mode |
US10223307B2 (en) * | 2017-06-15 | 2019-03-05 | International Business Machines Corporation | Management of data transaction from I/O devices |
US10353833B2 (en) | 2017-07-11 | 2019-07-16 | International Business Machines Corporation | Configurable ordering controller for coupling transactions |
CN110688332B (zh) * | 2019-09-12 | 2021-01-15 | 无锡江南计算技术研究所 | 一种面向高速消息传输的pcie数据传输系统及计算机 |
US11762785B2 (en) * | 2021-05-03 | 2023-09-19 | Mellanox Technologies, Ltd. | Peripheral component interconnect attributes shared using address bits |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3255908B2 (ja) * | 1988-06-30 | 2002-02-12 | エルジー・セミコン・カンパニー・リミテッド | メモリー制御ユニット |
GB2230120B (en) * | 1989-04-07 | 1992-12-02 | Intel Corp | Read/write ordering apparatus and method for a microprocessor |
US5418940A (en) * | 1993-08-04 | 1995-05-23 | International Business Machines Corporation | Method and means for detecting partial page writes and avoiding initializing new pages on DASD in a transaction management system environment |
US5530933A (en) * | 1994-02-24 | 1996-06-25 | Hewlett-Packard Company | Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus |
US5657472A (en) * | 1995-03-31 | 1997-08-12 | Sun Microsystems, Inc. | Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor |
US5790870A (en) * | 1995-12-15 | 1998-08-04 | Compaq Computer Corporation | Bus error handler for PERR# and SERR# on dual PCI bus system |
US6272600B1 (en) * | 1996-11-15 | 2001-08-07 | Hyundai Electronics America | Memory request reordering in a data processing system |
US5860126A (en) * | 1996-12-17 | 1999-01-12 | Intel Corporation | Controlling shared memory access ordering in a multi-processing system using an acquire/release consistency model |
US5878237A (en) * | 1997-07-11 | 1999-03-02 | Compaq Computer Corp. | Apparatus, method and system for a comuter CPU and memory to PCI bridge having a pluarlity of physical PCI buses |
US6145052A (en) * | 1997-11-04 | 2000-11-07 | Western Digital Corporation | Disk drive with adaptive pooling for command reordering |
US6038646A (en) * | 1998-01-23 | 2000-03-14 | Sun Microsystems, Inc. | Method and apparatus for enforcing ordered execution of reads and writes across a memory interface |
US6816934B2 (en) * | 2000-12-22 | 2004-11-09 | Hewlett-Packard Development Company, L.P. | Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol |
US6175889B1 (en) * | 1998-10-21 | 2001-01-16 | Compaq Computer Corporation | Apparatus, method and system for a computer CPU and memory to high speed peripheral interconnect bridge having a plurality of physical buses with a single logical bus number |
US6625683B1 (en) * | 1999-08-23 | 2003-09-23 | Advanced Micro Devices, Inc. | Automatic early PCI transaction retry |
US6490635B1 (en) * | 2000-04-28 | 2002-12-03 | Western Digital Technologies, Inc. | Conflict detection for queued command handling in disk drive controller |
JP2002043544A (ja) * | 2000-07-21 | 2002-02-08 | Mitsubishi Electric Corp | 半導体装置およびその製造方法 |
US6615295B2 (en) * | 2000-12-26 | 2003-09-02 | Hewlett-Packard Development Company, L.P. | Relaxed read completion ordering in a system using transaction order queue |
US6757768B1 (en) * | 2001-05-17 | 2004-06-29 | Cisco Technology, Inc. | Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node |
US7177971B2 (en) | 2001-08-24 | 2007-02-13 | Intel Corporation | General input/output architecture, protocol and related methods to provide isochronous channels |
US6801970B2 (en) * | 2001-09-30 | 2004-10-05 | Hewlett-Packard Development Company, L.P. | Priority transaction support on the PCI-X bus |
US6754737B2 (en) * | 2001-12-24 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect |
US7184399B2 (en) * | 2001-12-28 | 2007-02-27 | Intel Corporation | Method for handling completion packets with a non-successful completion status |
US20030145136A1 (en) * | 2002-01-31 | 2003-07-31 | Tierney Gregory E. | Method and apparatus for implementing a relaxed ordering model in a computer system |
US6912612B2 (en) * | 2002-02-25 | 2005-06-28 | Intel Corporation | Shared bypass bus structure |
US20050289306A1 (en) * | 2004-06-28 | 2005-12-29 | Sridhar Muthrasanallur | Memory read requests passing memory writes |
JP4410190B2 (ja) * | 2005-03-24 | 2010-02-03 | 富士通株式会社 | PCI−Express通信システム |
US8516165B2 (en) * | 2005-10-19 | 2013-08-20 | Nvidia Corporation | System and method for encoding packet header to enable higher bandwidth efficiency across bus links |
US7721023B2 (en) * | 2005-11-15 | 2010-05-18 | International Business Machines Corporation | I/O address translation method for specifying a relaxed ordering for I/O accesses |
US7698498B2 (en) * | 2005-12-29 | 2010-04-13 | Intel Corporation | Memory controller with bank sorting and scheduling |
US7461210B1 (en) * | 2006-04-14 | 2008-12-02 | Tilera Corporation | Managing set associative cache memory according to entry type |
US7949794B2 (en) * | 2006-11-02 | 2011-05-24 | Intel Corporation | PCI express enhancements and extensions |
KR100823171B1 (ko) * | 2007-02-01 | 2008-04-18 | 삼성전자주식회사 | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 |
US8108584B2 (en) * | 2008-10-15 | 2012-01-31 | Intel Corporation | Use of completer knowledge of memory region ordering requirements to modify transaction attributes |
-
2008
- 2008-10-15 US US12/252,303 patent/US8108584B2/en active Active
-
2009
- 2009-10-12 TW TW098134482A patent/TWI420319B/zh not_active IP Right Cessation
- 2009-10-12 TW TW102109839A patent/TWI548997B/zh active
- 2009-10-12 DE DE102009061252.1A patent/DE102009061252B3/de active Active
- 2009-10-12 DE DE102009049078.7A patent/DE102009049078B4/de active Active
- 2009-10-14 CN CN200910208029.8A patent/CN101727413B/zh active Active
- 2009-10-14 CN CN201210586797.9A patent/CN102981984B/zh active Active
- 2009-10-15 JP JP2009237987A patent/JP5479020B2/ja active Active
- 2009-10-15 GB GB0918065A patent/GB2464403B/en not_active Expired - Fee Related
-
2011
- 2011-12-22 US US13/335,345 patent/US8307144B2/en active Active
-
2013
- 2013-08-27 JP JP2013175504A patent/JP5824488B2/ja active Active
-
2015
- 2015-10-09 JP JP2015201103A patent/JP6141379B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
GB2464403B (en) | 2011-08-24 |
JP2010097615A (ja) | 2010-04-30 |
US8108584B2 (en) | 2012-01-31 |
TW201019128A (en) | 2010-05-16 |
JP6141379B2 (ja) | 2017-06-07 |
CN102981984A (zh) | 2013-03-20 |
TWI548997B (zh) | 2016-09-11 |
JP2014041618A (ja) | 2014-03-06 |
US8307144B2 (en) | 2012-11-06 |
DE102009049078B4 (de) | 2015-03-05 |
CN102981984B (zh) | 2016-04-06 |
DE102009061252B3 (de) | 2023-04-20 |
US20100095032A1 (en) | 2010-04-15 |
JP5824488B2 (ja) | 2015-11-25 |
JP2016033823A (ja) | 2016-03-10 |
TW201329732A (zh) | 2013-07-16 |
CN101727413A (zh) | 2010-06-09 |
GB0918065D0 (en) | 2009-12-02 |
JP5479020B2 (ja) | 2014-04-23 |
CN101727413B (zh) | 2013-09-11 |
US20120096212A1 (en) | 2012-04-19 |
GB2464403A (en) | 2010-04-21 |
TWI420319B (zh) | 2013-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102009049078B4 (de) | Verwendung von Ausführer-Wissen über Speicherregion-Ordnungsanforderungen zum Modifizieren von Transaktionsattributen | |
DE112012005210B4 (de) | Bereitstellen eines gemeinsamen Caching-Agenten für ein Kern- und integriertes Ein-/Ausgabe-(IO)-Modul | |
DE10394383B4 (de) | Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems | |
DE19580606C2 (de) | Plattenlaufwerksverbinderschnittstelle zur Verwendung an einem PCI-Bus | |
DE112005002298B4 (de) | Leistungssteigerung einer Adreßübersetzung unter Verwendung von Übersetzungstabellen, die große Adreßräume umfassen | |
DE102006062802B4 (de) | Informationsverarbeitungssystem und Verfahren zum Steuern von mehreren Hot Plug Vorgängen | |
DE10085374B4 (de) | Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem | |
DE102018006756A1 (de) | Beschleuniger-Fabric | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE10297166T5 (de) | Mechanismus zur Interrupt-Abwicklung in Computersystemen, welche die gleichzeitige Ausführung mehrerer Threads unterstützen | |
DE69126756T2 (de) | Prüfbare RAM-Architektur in einem Mikroprozessor mit eingebettetem Cache-Speicher | |
DE112010002425B4 (de) | Delegieren einer Anfrageoperation an eine ander Einrichtung | |
DE102010035603A1 (de) | Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher | |
DE112005002420T5 (de) | Verfahren und Vorrichtung zum Pushen von Daten in den Cache eines Prozessors | |
DE112006002237T5 (de) | Verfahren zur selbstinitiierenden Synchronisierung in einem Computersystem | |
DE4417068A1 (de) | Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System | |
DE112005002304T5 (de) | Adreßumsetzung für Eingabe/Ausgabe- Vorrichtungen mittels hierarchischer Umsetzungstabellen | |
DE102010034555A1 (de) | Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus | |
DE69634624T2 (de) | Vorrichtung zur Ereignisverwaltung | |
DE10234991A1 (de) | Hostcontrollerdiagnose für einen seriellen Bus | |
DE102007046947B4 (de) | System und Verfahren zum Verwalten von Systemmanagement-Interrupts in einem Mehrprozessor-Computersystem | |
DE69219848T2 (de) | Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau | |
DE112007002201T5 (de) | Quality-of-Service-Implementierung für Plattformressourcen | |
DE202010018020U1 (de) | Opportunistische Verbesserung einer MMIO-Anfrageabwicklung aufgrund eines Zielberichts von Raumerfordernissen | |
DE112014000340T5 (de) | Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R130 | Divisional application to |
Ref document number: 102009061252 Country of ref document: DE Effective date: 20130102 |
|
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |