DE102014225253B4 - Reallokation für eine Systembustransaktionswarteschlange - Google Patents

Reallokation für eine Systembustransaktionswarteschlange Download PDF

Info

Publication number
DE102014225253B4
DE102014225253B4 DE102014225253.9A DE102014225253A DE102014225253B4 DE 102014225253 B4 DE102014225253 B4 DE 102014225253B4 DE 102014225253 A DE102014225253 A DE 102014225253A DE 102014225253 B4 DE102014225253 B4 DE 102014225253B4
Authority
DE
Germany
Prior art keywords
transaction
transaction request
slave
master
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102014225253.9A
Other languages
English (en)
Other versions
DE102014225253A1 (de
Inventor
Franck Lunadier
Vincent Debout
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.)
Atmel Corp
Original Assignee
Atmel 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 Atmel Corp filed Critical Atmel Corp
Publication of DE102014225253A1 publication Critical patent/DE102014225253A1/de
Application granted granted Critical
Publication of DE102014225253B4 publication Critical patent/DE102014225253B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

System, umfassend:einen Systembus; undeine Vielzahl von Modulen, die mit dem Systembus verbunden sind und dazu konfiguriert sind, miteinander unter Verwendung des Systembusses zu kommunizieren, beinhaltend:ein Mastermodul, das eine Mastertransaktionsanforderungswarteschlange implementiert; undein Slavemodul, das eine Slavetransaktionsanforderungswarteschlange implementiert, wobei das Slavemodul dazu konfiguriert ist, Slavemoduloperationen auszuführen, die umfassen:Empfangen einer ersten Transaktionsanforderung von dem Mastermodul;Feststellen, dass die Slavetransaktionsanforderungswarteschlange voll ist;als Reaktion auf die Feststellung, dass die Slavetransaktionsanforderungswarteschlange voll ist, festlegen auf Basis von zumindest einer ersten anhängigen Transaktion in der Slavetransaktionsanforderungswarteschlange, dass die erste anhängige Transaktion nicht aus der Slavetransaktionsanforderungswarteschlange entfernt werden soll, und dass die erste Transaktionsanforderung nicht in die Slavetransaktionsanforderungswarteschlange eingefügt werden soll; undals Reaktion auf die Festlegung, dass die erste anhängige Transaktion nicht entfernt werden soll, Verschieben der ersten Transaktionsanforderung durch Speichern einer ersten Aufzeichnung für die erste Transaktionsanforderung für ein späteres Wiederabspielen der ersten Transaktionsanforderung.

Description

  • Diese Offenbarung bezieht sich allgemein auf Architekturen für Datenkommunikationsbusse.
  • In manchen Mikrocontrollern sind Busmaster mit Busslaves ganz oder teilweise über einen oder mehrere Busmatrixports und Schalter verbunden. In diesen Mikrocontrollern müssen Datenübertragungsanforderungen von dem Master an die Slaves nacheinander durch mehrere Arbitrierungsknoten gehen. Zu jedem Zeitpunkt kann ein gegebener Master mehrere anhängige Datenübertragungsanforderungen haben. Jede dieser Übertragungsanforderungen kann eine sich auf Basis von Latenzzeiten und/oder Bandbreitenanforderungen dynamisch ändernde Dringlichkeit haben.
  • In diesen Mikrocontrollern wird eine Busarbitrierung verwendet, um die Bandbreiten und Latenzanforderungen der jeweiligen Master zu erfüllen, und um die insgesamt verfügbare Bandbreite des Systems zu maximieren. In diesen Mikrocontrollern arbitrieren die Arbitrierungsknoten Konflikte im Netzwerkraum häufig lokal und nur jeweils einmal an jedem Arbitrierungsknoten unter Verwendung eines Prioritätswerts, der statisch mit der Datenübertragungsanforderung assoziiert ist. Unabhängig von der Priorität einer Datenübertragungsanforderung an einem gegebenen Arbitrierungsknoten hängt der Fortschritt der Datenübertragungsanforderung an den Targetslave vom Fortschritt der vorhergehenden Übertragungsanforderung an dem nächsten nachfolgenden Arbitrierungsknoten ab.
  • Eine Lösung für das Verstopfungsproblem besteht darin, Busslaves mit langen Warteschlangen zu versehen, die eine signifikante Anzahl von ausgegebenen Übertragungsanforderungen speichern können. Eine Speicherung der Übertragungsanforderungen macht den Netzwerkübertragungsanforderungspfad frei. Wenn im Netzwerkübertragungsanforderungspfad keine Verstopfung vorliegt, können die Datenübertragungsanforderungen die Arbitrierungsendknoten in kurzer Zeit erreichen, so dass Übertragungsanforderungen mit hoher Priorität nicht für eine lange Zeit durch den Arbitrierungsendknoten ignoriert werden.
  • Diese Warteschlangenlösung hat mehrere Nachteile. Die meisten Slaves benötigen keine langen Warteschlagen, um zwischen wartenden Übertragungsanforderungen zu arbitrieren, um Optimierungsziele zu erreichen. Für diese Slaves sind Parkwarteschlangen eine Platzverschwendung. Für den Slave sollte die Warteschlange lang genug sein, um eine Anzahl von Übertragungsanforderungen zu speichern, die größer oder gleich ist der Gesamtzahl von Übertragungsanforderungen, die insgesamt durch alle Master, die mit dem Slave verbunden sind, gestellt werden können. Dies ist oft nicht der Fall. Wenn eine der Slaveparkwarteschlangen voll wird, da sie nicht korrekt dimensioniert ist, können Transaktionen in der Verbindung gespeichert werden.
  • Aufgrund der Reihenfolgeanordnung auf dem Bus oder damit zusammenhängender Blockierungsprobleme, kann es unmöglich oder komplex sein, mehr als eine Übertragungsanforderung gleichzeitig über einen Busumschaltknoten auszugeben, wenn zwei oder mehrere Ziele betroffen sind. Beispiele für Reihenfolgebeschränkungen sind Situationen, die an Busumschaltknoten für AMBA (Advances Microcontroller Bus Architecture) AXI (Advances Extensible Interface) Busschreibtransaktionen für zwei oder mehrere Ziele und für ABMA AXI Buslesetransaktionen für zwei oder mehrere Ziele mit der gleichen ID beobachtet werden. Eine Slavewarteschlange kann in der Lage sein, mehrere Transaktionsanforderungen zu speichern, aber das Netzwerk kann intrinsisch keine Transaktionsanforderungen mehr ausgeben. In diesen Situationen kann ein Arbitrieringsknoten noch immer eine Anforderung mit hoher Priorität weiter oben in dem Netzwerkübertragungsanforderungspfad blockieren, da lokal an dem Arbitrierungsknoten eine geringfügig höhere Priorität einem anderen Zweig des Netzwerkes gegeben wird, oder weil ein Algorithmus zur gerechten Verteilung (fair use) den ignorierten kritischen Netzwerkzweig erst später zuteilt, oder weil standardmäßig eine Bandbreitenoptimierung läuft, wenn an dem Arbitrierungsknoten keine Dringlichkeit ersichtlich ist. In diesen Situationen ist das Arbitrierungsschema über das gesamte Busnetzwerk inkonsistent, was zu Stabilitäts- und Performanzproblemen führt.
  • Andere Lösungen sind vorgeschlagen worden, um einige der oben beschriebenen Probleme zu umgehen, inklusive einer Beschränkung der Zahl der Anforderungen oder der Anforderungsrate an den Mastern, um eine Verstopfung des Netzwerkes und der Slavewarteschlange zu vermeiden, einer lokalen Bandbreitenreservierung an den Netzwerkknoten, längeren Slavewarteschlangen mit einer Warteschlangenplatzreservierung für manche kritische Master, einer Vergrößerung oder Duplizierung von Busschichten. Diese Lösungen erfordern jedoch häufig eine erhöhte Komplexität der Logik oder haben andere Beschränkungen, die eine Bandbreitenoptimierung verhindern.
  • Busprotokolle ohne Unterstützung für ausstehende Transaktionen und streng geordnete Busprotokolle, wie z.B. das AMBA High Speed Bus (AHB) Protokoll sind häufig weniger problematisch, da sie keine native Servicequalitätsunterstützung zur Verfügung stellen. Busse, die diese Protokolle implementieren, haben den Vorteil eines geringen Platzbedarfes und geringer Latenzen, aber sie haben auch Probleme mit der Stabilität und Performanz, die diese Busse daran hindert, ein konsistentes und effizientes systemweites Arbitrierungsschema zu haben.
  • Aus DE 601 27 357 T2 ist ein Buscontroller mit dynamischem Prioritätsschema bekannt. Dabei werden Anfragen mit niedriger Priorität zurückgestellt, wenn die Daten von dem Ziel nicht verfügbar sind.
  • US RE38 428 E beschreibt ein Bussystem mit jeweils mehreren Mastern und Slaves, wobei eine Umsortierung von Bustransaktionen stattfindet.
  • Es wird eine Busarchitektur offenbart, die eine Transaktionswarteschlangenreallokation auf den unter Verwendung des Busses kommunizierenden Modulen zur Verfügung stellt. Ein Modul kann mittels einer digitalen elektronischen Schaltung, z.B. Hardware oder Software oder einer Kombination derselben, eine Transaktionsanforderungswarteschlange implementieren. Manche Busverstopfungsprobleme, die herkömmliche Systeme betreffen, können vermieden werden, indem ein Außer-der-Reihe-Systembusprotokoll, das einen Transaktionsanforderungswiederabspielmechanismus verwendet, kombiniert wird. Module können weniger dringende Transaktionen aus der Transaktionsanforderungswarteschlange zwangsweise entfernen, um Platz zu schaffen für die Einfügung dringenderer Transaktionen. Mastermodule können einen Servicequalitätswert (QoS) für eine Transaktion dynamisch aktualisieren, während die Transaktion noch anhängig ist.
  • Bestimmte Implementierungen der Reallokationstechniken für die die Systembustransaktionswarteschlangen können einen oder mehrere der folgenden Vorteile haben: 1) Transaktionsanforderungen können in konsistenter Weise bis zu und inklusive eines Targetbusslaves durch die Busknoten in Übereinstimmung mit einer Servicequalitätsanforderungen für die Transaktionsanforderung vorangebracht werden, selbst wenn der Targetbusslave oder ein anderer Busslave eine volle Transaktionsanforderungswarteschlange hat; 2) Unter Verwendung eines Transaktionsanforderungswiederabspielmechanismus, der durch den Master initiiert wird, kann ein Busmaster die Servicequalitätsanforderung für jede seiner Transaktionen dynamisch aktualisieren, selbst wenn die Transaktionsanforderung den Targetbusslave bereits erreicht hat; 3) Unter Verwendung der zwangsweisen Entfernung von Transaktionsanforderungen und des durch den Busslave initiierten Transaktionsanforderungswiederabspielmechanismus kann ein Busslave seine bereits volle Warteschlange mit anstehenden Transaktionen mit den kritischeren oder relevanteren Transaktionsanforderungen aktualisieren, die die aktuellen Masteranforderungen erfüllen; 4) Eine kleine Zahl von zusätzlichen Signalen und Pufferressourcen kann einen Standardbus mit niedriger Komplexität und geringem Platzbedarf in einen Bus verwandeln, der kürzere Zugriffslatenzen zur Verfügung stellt, als Busse mit hoher Komplexität und hohem Platzbedarf; 5) Die Systembusarchitektur kann die Servicequalitätsbedürfnisse befriedigen, die bei Bussen und Geräten auftreten können, die eine Außer-der-Reihe-Handhabung von mehreren ausstehenden Transaktionen beherrschen; und 6) Die Systembusarchitektur ermöglicht die Koexistenz von außer der Reihe wieder abspielbaren ausstehenden Transaktionsanforderungen mit herkömmlichen, in einem Zug durchlaufenden, strikt geordneten klassischen Transfers über die gleichen Busschichten ohne Einschränkungen.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines Beispielmikrocontrollers mit zumindest einem Modul, das zur Durchführung einer Transaktionswarteschlangenreallokation konfiguriert ist.
    • 2 ist ein schematisches Diagramm, das zwei beispielhafte Mastertransaktionsanforderungswarteschlangen für die Mastermodule Master 0 und Master 1 und eine beispielhafte Slavetransaktionsanforderungswarteschlange für das Slavemodul Slave 0 illustriert.
    • 3 ist ein Blockdiagramm, das eine Anordnung von Modulen illustriert, die dem in 2 illustrierten Szenario entsprechen.
    • 4 ist ein Zeitablaufdiagramm, das eine Reihe von Bussignalen in einer beispielhaften Transaktionssequenz über die AHB-Busschicht 1 illustriert.
    • 5 ist ein schematisches Diagramm, das die beispielhaften Mastertransaktionsanforderungswarteschlangen und die Slavetransaktionsanforderungswarteschlange aus 2 nach der beispielhaften Transaktionssequenz aus 4 zeigt.
    • 6 ist ein Zeitablaufdiagramm, das eine Reihe von Bussignalen in einer beispielhaften Transaktionssequenz zeigt.
    • 7 ist ein schematisches Diagramm, das die beispielhaften Mastertransaktionsanforderungswarteschlangen und die Slavetransaktionsanforderungswarteschlange aus 5 nach der beispielhaften Transaktionssequenz aus 6 zeigt.
    • 8 ist ein Zeitablaufdiagramm, das eine Reihe von Bussignalen in einer beispielhaften Transaktionssequenz zeigt.
    • 9 ist ein schematisches Diagramm, das die beispielhafte Mastertransaktionsanforderungswarteschlangen und die Slavetransaktionsanforderungswarteschlange aus 7 nach der beispielhaften Transaktionssequenz aus 8 zeigt.
    • 10 ist ein Zeitablaufdiagramm, das eine Reihe von Bussignalen in einer beispielhaften Transaktionssequenz zeigt.
    • 11 ist ein schematisches Diagramm, das die beispielhaften Mastertransaktionsanforderungswarteschlangen und die Slavetransaktionsanforderungswarteschlange aus 9 nach der beispielhaften Transaktionssequenz aus 10 zeigt.
    • 12 ist ein schematisches Diagramm, das ein Beispiel einer partitionierten Slavetransaktionsanforderungswarteschlange zeigt.
    • 13 ist ein schematisches Diagramm, das beispielhafte Transaktionsanforderungswarteschlangen in einem Beispiel zeigt, in dem der Slave weiß, dass die durch einen Master ausgegebenen Transaktionen geordnet sind.
  • DETAILLIERTE BESCHREIBUNG
  • Die offenbarten Implementierungen können in einer integrierten SOC-Schaltung (System-on-a-chip) enthalten sein, die eine Vielzahl von Systembusmastern enthält, von denen manche oder alle über einen oder mehrere Masterports gekoppelt sein können, die wiederum über einen oder mehrere Systembusmatrixschalter mit einer Vielzahl von Systembusslaves gekoppelt sein können, von denen manche Multiportbusslaves oder Einzelportbusslaves sein können.
  • 1 ist ein Blockdiagramm eines beispielhaften Mikrocontrollers 100 mit zumindest einem Modul, das zur Durchführung einer Transaktionswarteschlagenreallokation konfiguriert ist. In manchen Implementierungen kann der Mikrocontroller 100 Busmaster 101-105 und Busslaves 120-124 enthalten. Andere Implementierungen können eine größere oder eine kleinere Zahl von Mastern und Slaves enthalten.
  • In dem dargestellten Beispiel umfassen die Busmaster einen Mikroprozessorkern 101, einen DMA-Controller 102 (Direktspeicherzugriffscontroller), einen Displaycontroller 103, einen Hochgeschwindigkeitsperipheriebusmaster 104 und einen Busmaster M 105. Die Busslaves umfassen einen Multiportspeichercontroller 120, und On-Chip-Speicher 121, Busslaves 122, einen Massenspeicherperipheriebusslave 123 und eine Niedergeschwindigkeitsperipheriebusbrücke 124. Die Busslaves können Einzelport- oder Multiportslaves mit N Slaveports sein, die individuell mit einem von N oder weniger Slaveports von einer oder von mehreren Systembusmatrizen verbunden sind. Ein beispielhafter Multiportslave ist der Speichercontroller 120. Die Busmaster können mit einer oder mit mehreren Busmatrizen verbunden sein, oder unter Verwendung von einem oder von mehreren Masterports direkt mit Busslaves verbunden sein. Die Busmaster oder die Busslaveperipheriegeräte können über die dedizierte Verbindungsflächen 150-157 außerhalb des Mikrocontrollers 100 verbunden sein, müssen aber nicht.
  • Die Busmatrizen 110, 112 können in dem Entwurf von identischen oder unterschiedlichen Datenbusbreiten verwendet werden, wie z.B. den internen Bussen 111, 113, je nachdem ob sie mit der gleichen Taktgeschwindigkeit arbeiten oder nicht. Jedes Matrixpaar kann eine Verbindung zwischen einem oder mehreren Masterports und einem oder mehreren Slaveports zur Verfügung stellen, wie z.B. die Matrix 110, die mit nur einem ihrer Slaveports über die Busbrücke 131 mit dem Masterport der Matrix 112 verbunden dargestellt ist. Die Matrix 112 ist mit nur einem ihrer Slaveports über die Busbrücke 130 mit den Masterports der Matrix 110 verbunden dargestellt. Ob ein gegebener Busmatrixslave von einem gegebenen Master über einen eindeutigen oder über mehrere Pfade erreicht werden kann, ist designabhängig.
  • Die Module können über den Bus unter Verwendung eines nicht-blockierenden Datenbusprotokolls kommunizieren. Bei einem nicht-blockierenden Datenbusprotokoll halten die Slavemodule den Bus nicht an. Anstelle den Bus anzuhalten, gibt ein Slavemodul die Busschicht an seinen Ports nach einer gewissen Zeit frei, unabhängig vom internen Zustand des Slaves.
  • Die Busslaves können Endpunkte des Systembus sein, müssen aber nicht. Busslaves, die keine Systembusendpunkte sind, können z.B. als Busmaster auf einer nachgelagerten Busschicht agieren. Mögliche Beispiele sind die Busbrücken 130 und 131. Die Busbrücke 131 kann als Busslave der Busmatrix 110 und als Busmaster der Busmatrix 112 agieren. Zur Illustration eines weiteren Beispiels können Busslaves, wie z.B. Slave 0, nicht nur als temporäre Speicher für einen nachgelagerten Bus dienen, sondern auch als komplexere endgültige Zielbestimmung. Ein Beispiel einer komplexeren endgültigen Zielbestimmung ist der Multiportspeichercontroller 120.
  • In dem Beispielmikrocontroller implementieren zumindest ein Master und zumindest ein Slave jeweils eine Transaktionsanforderungswarteschlange. Eine Transaktionsanforderungswarteschlange speichert Informationen über eine Reihe von Anforderungen, die in Verarbeitung sind, oder darauf warten, verarbeitet zu werden. Ein Modul kann eine Transaktionsanforderungswarteschlange mittels einer digitalen elektronischen Schaltung implementieren, z.B. Hardware oder Software oder einer Kombination von beiden. In diesem Beispiel können bestimmte Busverstopfungsprobleme, die herkömmliche Systeme betreffen, vermieden werden, indem ein Außer-der-Reihe-Systembusprotokoll, das einen Transaktionsanforderungswiederabspielmechanismus verwendet, kombiniert wird. Module können weniger dringende Transaktionen aus den Transaktionsanforderungswarteschlangen zwangsweise entfernen, um Platz zu schaffen, um dringendere Transaktionen einzufügen.
  • Wenn ein Slave eine neu hereinkommende Transaktionsanforderung empfängt, aber die Transaktionsanforderungswarteschlange des Busses voll ist, dann kann der Slave das Anhalten des Busses vermeiden, indem Transaktionswarteschlangen-Reallokationstechniken verwendet werden. Jede neue Transaktionsanforderung kann entweder in die Slavetransaktionsanforderungswarteschlange eingefügt werden oder vorübergehend aufgeschoben werden, auf Basis des Servicequalitätswertes der hereinkommenden Transaktionsanforderung und der Servicequalitätswerte der Transaktionsanforderungen in der Transanforderungswarteschlange. Der Slave kann verschiedene Anforderungen, Dienstleistungen, Fortschritte und Abschlüsse der Transaktionen in jeder geeigneten Reihenfolge verarbeiten, um die Optimierungsziele innerhalb der durch die Datenkonsistenz erlaubten Grenzen zu verbessern oder zu maximieren.
  • Der Slave kann über die aufgeschobenen Transaktionsanforderungen Buch führen, z.B. unter Verwendung einer Warteschlange mit geringem Mehraufwand, z.B. einem Bit oder mehr pro Transaktion. Wenn in der Slavetransaktionsanforderungswarteschlange Platz frei wird, z.B. weil der Slave einige der Transaktionen abschließt, dann kann der Slave die aufgeschobenen Transaktionsanforderungen zurückrufen. Eine aufgeschobene Transaktionsanforderung kann bei dem Datenübertragungstakt wieder aufgenommen werden, bei dem die Transaktion unterbrochen wurde, bis die Transaktion vollständig abgeschlossen ist. In manchen Implementierungen ruft der Slave alle aufgeschobenen Transaktionsanforderungen zurück und alle zurückgerufenen Transaktionsanforderungen werden erneut ausgegeben, wobei die Einschränkungen der Transaktionsreihenfolge beibehalten werden. In manchen anderen Implementierungen ruft der Slave bestimmte Teilmengen der aufgeschobenen Transaktionsanforderungen zurück, z.B. solange bis alle aufgeschobenen Transaktionsanforderungen zurückgerufen wurden.
  • In manchen Fällen stellt ein Master fest, dass eine Transaktion oder ein Strom von Transaktionen in seiner Transaktionsanforderungswarteschlange die Priorität geändert hat. Der Master kann den Servicequalitätswert für die Transaktion oder den Strom von Transaktionen aktualisieren, indem die Transaktionsanforderungen erneut ausgegeben werden, wobei die Einschränkungen der Transaktionsreihenfolge beibehalten werden. Dies ist nützlich, da z.B. dringendere Transaktionsanforderungen im Pfad von dem Master zum Slave vor weniger dringende Transaktionsanforderungen gelangen können. Ein Master, der eine teilweise abgeschlossene Transaktionsanforderung initiiert hat, kann später eine oder mehrere Wiederabspielungen der Transaktionsanforderungen bei einem Datentransfertakt initiieren, an dem die Transaktion unterbrochen wurde, solange bis die Transaktion vollständig abgeschlossen ist. Der Master kann den Servicequalitätswert der Transaktion für die Transaktionsdaten aktualisieren, die für diese bestimmte Transaktion noch zu übertragen sind.
  • 2 ist ein schematisches Diagramm, das zwei beispielhafte Mastertransaktionsanforderungswarteschlangen für die Mastermodule Master 0 und Master 1 und eine beispielhafte Slavetransaktionsanforderungswarteschlange für das Slavemodul Slave 0 zeigt. Die Transaktionsanforderungswarteschlangen speichern Transaktionsanforderungen, indem Eigenschaften der Transaktionen, wie z.B. Adressdaten und Datengrößen gespeichert werden.
  • Die Transaktionsanforderungswarteschlange für Master 0 ist dazu konfiguriert, bis zu m0-Transaktionen zu speichern. Die Transaktionsanforderungswarteschlange für Master 1 ist dazu konfiguriert, bis zu m1 Transaktionen zu speichern. Die Transaktionsanforderungswarteschlange für Slave 0 ist dazu konfiguriert, bis zu s0-Transaktionen zu speichern. Die Gesamtzahl der Transaktionsanforderungen, die am Slave 0 anhängig sein können, ist p0. In dem Beispiel, in dem Master 0 und Master 1 die einzigen Module in einem Master/Slaveverhältnis mit dem Slave 0 stehen, gilt p0 = m0 + m1. Abhängig von dem jeweiligen Design der Slave- und Mastermodule und der Verbindungen zwischen den Mastern und den Slaves kann s0 kleiner oder gleich p0 sein.
  • Der Slave ist dazu konfiguriert, anhängige Transaktionen zu markieren, die nicht in der Transaktionsanforderungswarteschlange gespeichert sind. Die Anzahl der anhängigen Transaktionen, die an dem Slave markiert werden können, ohne in der Transaktionsanforderungswarteschlange für den Slave gespeichert zu werden, beträgt r0. In manchen Implementierungen gilt p0 = s0 + r0.
  • Der Slave 0 kann z.B. einen Puffer mit geringem Mehraufwand enthalten, der anhängige Transaktionsanforderungen speichert, so dass die Eigenschaften der Transaktionsanforderungen nicht in der Transaktionsanforderungswarteschlange für den Slave gespeichert werden, sondern ausgelagert an dem Master gespeichert werden und darauf warten, später wieder abgespielt zu werden. Wie in 2 dargestellt ist, kann ein Bit für jede der p0 Transaktionen für die p0-Markierung verwendet werden, m0t0 bis m1t3. Jede Markierung entspricht einer möglichen anhängigen Transaktionsanforderung von einem der Mastermodule. Der Slave kann bis zu r0 entfernt gespeicherte Transaktionsanforderungen als anhängige Transaktionen markieren, die später an einem der Slaveports wieder abgespielt werden sollen.
  • In manchen Implementierungen umfasst eine Transaktionsanforderung Adress- und Steuersignale, die in geeigneter Weise durch die Busmatrixschalter für die Transaktionsanforderung dekodiert, weitergeführt und arbitriert werden, um den Slave zu erreichen, der von dem Master vorgesehen war, der die Transaktionsanforderung initiiert hat. Eine Transaktionsmarkierung kann jede Transaktion auf dem Systembus eindeutig kennzeichnen. Die Transaktionsmarkierung kann z.B. aus einem Paar aus der Identifikationsmarkierung des ursprünglichen Masters oder der Masternummer master_nb zusammen mit einer Transaktionsnummer tran_nb bestehen, die für diesen bestimmten Master eindeutig ist. Die Transaktionsmarkierung kann wie folgt notiert werden: {master_nb, tran_nb}. Die Transaktionsmarkierung kann, wie die anderen Adress- und Steuersignale der Transaktionsanforderungen, zeitlich abgestimmt werden.
  • Für jede der Transaktionsanforderungen auf dem Systembus kann das Zählen des Datenübertragungsfortschritts separat voneinander sowohl am Master als auch am Slave durchgeführt werden, oder eine explizite Längenangabe der verbleibenden Datenübertragung kann zu den durch den Mater angesteuerten Bussteuersignalen hinzuaddiert werden. Obwohl die explizite Längenangabe der verbleibenden Datenübertragung nicht erforderlich ist, wird sie in den Beispielen dieser Anmeldung zu Illustrationszwecken verwendet.
  • Eine Priorität oder ein Servicequalitätswert (QoS) kann mit jeder Transaktionsanorderung verknüpft sein. In manchen Implementierungen kann der QoS-Wert für eine Transaktionsanforderung während der Lebensdauer der Transaktionsanforderung variieren, was weiter unten stehend beschrieben wird. Abhängig von der Implementierung kann der QoS-Wert eine ähnliche zeitliche Abstimmung haben, wie die Adress- und Steuersignale, oder auch nicht. In den Beispielen dieser Anmeldung ist der QoS-Wert für den Slave während wohlbestimmter Abschnitte der Datenphase von Bedeutung.
  • Der Master kann dazu konfiguriert sein, die Transaktionsanforderungen in jeder Stufe des Transaktionsfortschritts zu initiieren oder erneut auszugeben. Der Master kann die durch die Slavetransaktionsrückrufe implizierte Reihenfolge oder die sich am Master aus neuen QoS-Anforderungen der Transaktionen ergebende Reihenfolge innerhalb der Grenzen verwenden, die durch die Datenkonsistenz gesteckt werden, z.B. herkömmliche Grenzen, die durch die Datenkonsistenz erlaubt werden. Manche Slaves, z.B. Busperipheriegeräte, können z.B. eine Adressierung in einer strikt geordneten Weise erfordern, wohingegen bei manchen Speichergeräten die Zugriffe nur in dem Fall geordnet sein müssen, in dem eine Adressraumkollision zwischen zwei Transaktionen vorliegt. Eine zusätzliche Signalisierung auf dem Bus kann auch die Reihenfolgebeschränkungen lockern, z.B. unter Verwendung eines Transaktionsstromkennzeichens.
  • Das in 2 illustrierte Beispielszenario zeigt einen komplexeren Fall, in dem die Master und die Slaves Transaktionen außer der Reihe verarbeiten können, woraus sich einige Mindestelemente für in der Reihe Transaktionspräsentationsanforderungen ergeben. Der Multiportspeichercontroller 120 in 1 kann z.B. mit gewisser Wahrscheinlichkeit eine Menge von Außer-der-Reihe-Transaktionsverarbeitungen ausführen. In einem anderen Beispiel können manche Master eine niedrige mittlere Zugriffslatenz haben, z.B. der Mikroprozessorkern 101 in 1. Für diese Master kann der Fortschritt der Transaktionen dargestellt werden, um die Anforderungen und/oder Datenübertragungseinheiten von zweien oder mehreren Transaktionen darzustellen, die auf dem Bus miteinander verschachtelt sind.
  • Aus Darstellungsgründen wird in den folgenden Illustrationen das Advances Microcontroller Bus Architecture (AMBA) Advanced High-performance (AHB)-Busprotokoll verwendet. Jedes andere geeignete Protokoll kann ebenfalls verwendet werden. Das System kann dazu konfiguriert werden, die folgenden Signale an das AMBA AHB Protokoll anzuhängen:
    • - Ein Transaktionsnummernsignal tran_nb, das während der Adressphase eines jeden AHB Bursts oder Einzelzugriffs gültig ist.
    • - Ein Restlängensignal tran_rlen, das während jeder AMBA AHB-Adressphase die nachfolgende Anzahl von Transaktionsadressphasen angibt, die noch durch eine Datenübertragung für die aktuelle Transaktion {hmaster, tran_nb} in ihrer Adressphase durchzuführen sind. Dieses tran_rlen-Signal ist optional, wird aber aus Darstellungsgründen angegeben.
    • - Ein Servicequalitätssignal QoS, das zumindest während des zweiten Zyklus der SPLIT-Antwort des Busslaves auf die zuvor im Adressraum befindliche Transaktionsanforderung gültig ist und die Priorität dieser Transaktion angibt. In manchen Implementierungen ist die Priorität der Transaktion umso höher, je höher der Wert dieses Signals ist.
  • Aus Darstellungsgründen wird angenommen, dass das AMBA AHB hburst-Signal, dass den Bursttyp angibt, in diesen Beispielen auf undefinierten inkrementierenden Burst INCR gesetzt ist. Für jede der p möglichen {hmaster, tran_nb} anhängigen Transaktionen an einem Busslave wird ein AMBA AHB entsprechendes HSPLIT-Bitsignal zum Zwecke eines Transaktionsrückrufs durch einen Busslave ausgegeben.
  • Eine Transaktion kann im Wesentlichen in einem von zwei Zuständen an dem Master sein:
    • 1) Noch nicht gestartet, z.B. die {master_1, tran_1} Transaktion der 2.
    • 2) Durch den Slave gesplittet sein, z.B. die {master_0, tran_0} oder {master_0, tran_1} Transaktionen in 2.
  • Eine Transaktion kann im Wesentlichen in einem von zwei Zuständen an dem Slave sein:
    • 1) An dem Master entfernt anhängig sein; oder
    • 2) innerhalb der Slavetransaktionsanforderungswarteschlange gespeichert sein.
  • Der Master muss nicht wissen, ob die Eigenschaften der Transaktion am Slave gespeichert wurden oder nicht. Der Slave darf in jedem der Transaktionsadresstakte mit einem SPLIT antworten. Der Master wartet üblicherweise darauf, dass der Slave eine gesplittete Transaktion über sein dediziertes HSPLIT-Bit zurückruft, bevor diese Transaktionsanforderung ausgehend von dem Adresstakt, den der Slave zuvor gesplittet hat, erneut ausgegeben wird, sofern der Master keine internen Gründe hat, diese erneute Ausgabe zu initiieren, wie bei einer Änderung in den QoS-Anforderungen der Transaktion, die am Slave aktualisiert werden müssen.
  • Jedesmal, wenn der Slave eine OKAY-Antwort für einen Transaktionsadresstakt ausgibt, werden die entsprechenden Daten übertragen und die Adresse für diese Transaktion und ihre Datentakte sind vollständig. Obwohl dies nicht vorgeschrieben ist, kann der Fortschritt der Transaktion unter Verwendung des tran_rlen-Wertes während jedes Adresstaktes bestimmt werden. Adresstakte, auf die mit einem SPLIT geantwortet wurde, werden später mit dem gleichen tran_rlen-Wert erneut ausgegeben, da für die Transaktionsdatenübertragung kein Fortschritt erzielt wurde.
  • Wenn auf die letzten Adresstakte der Transaktion mit OKAY geantwortet wurde, und somit die letzte Datenübertragung bestätigt wurde, ist die Transaktion selbst sowohl am Master als auch am Slave abgeschlossen. Die Transaktion wird dann sowohl von der Master- als auch der Slavetransaktionswarteschlange entfernt. Der Master kann die gleiche Transaktionsnummer sofort für eine neue Transaktion verwenden, die das erste Mal gestartet werden soll.
  • Solange eine Transaktion nicht abgeschlossen ist, können sowohl der Master als auch der Slave den Neustart der Transaktion an dem Adresstakt initiieren, an dem sie unterbrochen wurde. Dies kann so oft erfolgen, wie dies für alle Transaktionsadresstakte erforderlich ist, bis die Transaktion schließlich erfolgreich abgeschlossen ist.
  • In manchen Fällen wird der Slave nur auf einen oder auf zwei der Transaktionsadresstakte mit einem SPLIT antworten, z.B. auf den ersten Adresstakt für Lesetransaktionen und auf den ersten und/oder den letzten Adresstakt für eine Schreibtransaktion, abhängig davon, ob er die Schreibdaten sofort annehmen kann oder nicht. Falls alle Daten sofort übertragen werden können, z.B. für gepufferte Lesedaten oder gepufferte Schreibdaten, kann auf alle Transaktionsadresstakte mit OKAY geantwortet werden und die Transaktion wird nicht gesplittet und wird sich nicht in einem anhängigen Zustand befinden.
  • 3 ist ein Blockdiagramm, das eine Anordnung von Modulen zeigt, die dem in 2 illustrierten Szenario entsprechen. 3 zeigt die AMBA AHB-Signale und die Zusatzsignale, die für die Transaktionswarteschlagenreallokationstechnik angefügt werden.
  • Slave 0 ist als AHB-Multiportslave dargestellt, bei dem ein AHB-Busmaster mit jedem seiner Slaveports verbunden ist. Man beachte, dass der AMBA AHB-Bus verschiedene andere Implementierungen ermöglicht, die mehrere Slaves oder Slaveports umfassen, die mit einem AHB-Master verbunden sind, und/oder einen Slaveport, der mit mehreren AHB-Mastern verbunden ist.
  • Die {hmaster_0, tran_nb_O}-Signale kodieren die aktuelle Transaktionsanforderung vom Master 0 während einer gültigen AHB-Adressphase. Die {hmaster _1, tran nb_1 }-Signale kodieren die aktuellen Transaktionsanforderungen vom Master 1 während einer gültigen AHB-Adressphase. Das tran_rlen_0-Signal kodiert die nachfolgende Anzahl von Transaktionsadressphasen, die noch an Master 0 abgeschlossen werden müssen. Das tran_rlen_1-Signal kodiert die nachfolgende Anzahl von Transaktionsadressphasen, die am Master 1 noch abgeschlossen werden müssen.
  • Das QoS_0-Signal kodiert bestimmte Servicequalitätsanforderungen am Master 0. Das QoS_1-Signal kodiert bestimmte Servicequalitätsanforderungen am Master 1. Das hsplit_0-Signal zeigt bei jedem Systembustaktzyklus die zurückgerufenen Master 0-Transaktionen an. Dieses Signal besteht aus einem Bit pro mögliche ausstehende Transaktionsnummer für Master 0. Das hsplit_1-Signal zeigt bei jedem Systembustaktzyklus die zurückgerufenen Master 1-Transaktionen an. Dieses Signal besteht aus einem Bit pro mögliche anhängige Transaktionsnummern für Master 1.
  • 4 ist ein Zeitablaufdiagramm, das eine Reihe von Bussignalen in einer Beispieltransaktionssequenz auf der AHB-Busschicht 1 illustriert. Die Bussignale enthalten die AHB-Bussignale und die Zusatzsignale.
  • Die Beispielstransaktionssequenz zeigt eine eingehende Transaktionsanforderung {master_1, tran_1} für den Slave von dem Master 1-Modul. Die eingehende Transaktionsanforderung hat einen QoS-Wert von 1. Nachdem diese eingehende Transaktionsanforderung empfangen wurde, kann der Slave eine Transaktionsanforderungswarteschlangenreallokation durchführen.
  • 5 ist ein schematisches Diagramm, das die beispielhaften Mastertransaktionsanforderungswarteschlangen und die Slavetransaktionsanforderungswarteschlange aus 2 nach der Beispieltransaktionssequenz aus 4 zeigt.
  • Die Slave 0-Transaktion {master_0, tran_3} wurde aus der Slavetransaktionsanforderungswarteschlange zwangsweise entfernt, da die Warteschlange voll war und da die eingehende Transaktion {master_1, tran_1} auf dem Bus einen QoS-Wert 1 hat, der größer ist als manche der s0 ausstehenden Warteschlangeneinträgen des Slave 0, z.B. des QoS-Wertes 0 der Transaktion {master_0, tran_3}. Die m0t3-Markierung für entfernte, verbleibende anhängige Transaktionsanforderungen wurde gesetzt. Die {master_1, tran_1}-Transaktionsanforderung ist jetzt im Slave 0 sO-Transaktionswarteschlangenpuffer.
  • Der Slave kann dazu konfiguriert sein, jeden geeigneten Reallokationsalgorithmus innerhalb der Slavetransaktionsanforderungswarteschlange zu verwenden. In manchen Implementierungen wird die zwangsweise entfernte Transaktion einen niedrigeren QoS-Wert haben, als die eingehende Transaktionsanforderung, und den niedrigsten QoS-Wert aller Einträge in der Transaktionsanforderungswarteschlange.
  • Wenn es mehrere Kandidaten für anhängige Transaktionsanforderungen gibt, die zwangsweise entfernt werden könnten, kann der zwangsweise entfernte Eintrag auf einem geeigneten Algorithmus basieren, z.B. auf Basis des Alters, so dass der neueste Kandidat entfernt wird, oder auf Basis von komplexeren Optimierungszielen an dem Slave, z.B. für einen dynamischen Speichercontroller, wobei ein Eintrag entfernt wird, dessen Adresse nicht zu einer offenen Speicherbank oder der aktuellen Speicherzeile gehört, anstelle eines Eintrags, bei dem dies der Fall ist. Abhängig von diesem Reallokationsalgorithmus und dem Zusammenhang, kann die entfernte Transaktionsanforderung zu dem gleichen Master wie die Transaktion, die die entfernte Transaktion ersetzt, gehören oder nicht.
  • 6 ist ein Zeitablaufdiagramm, das eine Reihe von Bussignalen während einer Beispieltransaktionssequenz illustriert. Die Transaktionssequenz enthält einen Rückruf und Abschluss der {master_1, tran_2}-Transaktion durch einen hsplit_1 [2]-Puls für einen Taktzyklus.
  • 7 ist ein schematisches Diagramm, das die beispielhaften Mastertransaktionsanforderungswarteschlangen und die Slavetransaktionsanforderungswarteschlange aus 5 nach der Beispieltransaktionssequenz aus 6 zeigt. Die {master_1, tran_2}-Transaktion ist abgeschlossen. Im Ergebnis gibt es keinen Platz mehr in der Slave 0-Transaktionsanforderungswarteschlange. Das Slave 0-Modul kann eine oder mehrere oder alle der entfernt anhängigen Transaktionsanforderungen zurückrufen. Wie in 7 dargestellt ist, sind die Markierungen für die entfernt anhängigen Transaktionsanforderungen für die m0t1, m0t3 und m1t3-Transaktionen gesetzt. Der Slave ruft diese Transaktionsanforderungen zurück, indem die entsprechenden hsplit-Bits hsplit_0[1], hsplit_0[3] und hsplit_1 [3] während eines Taktzyklusses gepulst werden.
  • 8 ist ein Zeitablaufdiagramm, das eine Reihe von Busssignalen während einer Beispieltransaktionssequenz zeigt. Das Zeitablaufdiagramm zeigt den Slave, der die entfernt anhängigen Transaktionsanforderungen zurückruft, die in 7 dargestellt sind. Die beiden Master, Master 0 und Master 1, geben jede der zurückgerufenen Transaktionen in ihrer ursprünglichen Reihenfolge erneut aus, oder in jeder anderen Reihenfolge, wenn die Einhaltung der Reihenfolge nicht erforderlich ist. Der Slave 0 antwortet mit einem SPLIT auf beiden AHB-Busschichten.
  • 9 ist ein schematisches Diagramm, das die beispielhaften Mastertransaktionsanforderungswarteschlangen und die Slavetransaktionsanforderungswarteschlange aus 7 nach der Beispieltransaktionssequenz aus 8 zeigt.
  • Die {master_0, tran_1} Transaktionsanforderung ist jetzt in der Slave 0 Transaktionsanforderungswarteschlange. Folglich wurde die Markierung m0 für eine entfernt anhängige Transaktion gelöscht. Der Slave kann jeden geeigneten Arbitrierungsalgorithmus für mehrere eingehende Anforderungen mit dem gleichen QoS-Wert an den Slaveports verwenden, wenn der Slave ein Multiportslave ist, oder innerhalb einer Busumschaltmatrix liegt, oder ansonsten. Ein Beispiel eines Arbitrierungsalgorithmus ist ein Round-Robin-Algorithmus, der es jedem Master der Reihe nach ermöglicht, einen verfügbaren Eintrag in dem Warteschlangenpuffer zugeteilt zu bekommen, wodurch zwischen den gleichzeitig wettstreitenden Mastertransaktionen arbitriert wird, die gleichermaßen den höchsten QoS haben.
  • 10 ist ein Zeitablaufdiagramm, das eine Reihe von Bussignalen während einer Beispieltransaktionssequenz zeigt. Die Dringlichkeit der Master 1-Transaktion {master_1, tran_1} hat an dem Master von QoS=1 auf QoS=2 zugenommen. Der Master 1 gibt die {master_1, tran_1}-Transaktionsanforderung dann ausgehend von dem Adresstakt erneut aus, an dem sie zuvor gesplittet wurde, und zwar mit dem erhöhten QoS-Wert 2.
  • Wenn die Transaktionsanforderung nicht bereits Teil der Slave 0-Transaktionsanforderungswarteschlange war und stattdessen als entfernt anhängige Transaktion markiert war, dann wäre die zwangsweise Entfernung einer Transaktionsanforderung mit niedrigerem QoS aufgetreten, deren Platz der {master_1, tran_1}-Transaktionsanforderung zugewiesen worden wäre. Da aber die {master_1, tran_1}-Transaktionsanforderung bereits in der Transaktionsanforderungswarteschlange gespeichert ist, wird stattdessen der QoS-Wert für diese Transaktionsanforderung innerhalb der Transaktionsanforderungswarteschlange aktualisiert.
  • 11 ist ein schematisches Diagramm, das die beispielhaften Mastertransaktionsanforderungswarteschlangen und die Slavetransaktionsanforderungswarteschlange aus 9 nach der Beispieltransaktionssequenz aus 10 zeigt. Die {master_1, tran_1}-Transaktionsanforderung hat nun einen QoS-Wert von 2 und der Master war somit in der Lage, den QoS dieser Transaktion zu aktualisieren, während sie am Slave noch anhängig war.
  • 12 ist ein schematisches Diagramm, das ein Beispiel einer partitionierten Slavetransaktionsanforderungswarteschlange zeigt. Die Transaktionsanforderungswarteschlange ist in einen Bereich partitioniert, der nur von Lesetransaktionen verwendet werden kann, und einen Bereich, der sowohl von Lese- als auch von Schreibtransaktionen verwendet werden kann.
  • Schreibtransaktionen können im Gegensatz zu Lesetransaktionen bestimmte Herausforderungen mit sich bringen. In manchen Fällen können die Daten der Schreibtransaktionsanforderungen nicht rechtzeitig an dem Slave verarbeitet werden. Ein dynamischer Speichercontroller kann z.B. nur dazu in der Lage sein, Schreibzugriffe effizient zu behandeln, wenn er sicher weiß, dass die Daten rechtzeitig zur Verfügung stehen werden, wenn sie über seine externe Schnittstelle geschrieben werden sollen. Dies kann eine lokale Pufferung der Transaktionsdaten zusammen mit den anderen nützlichen Eigenschaften der Transaktion, wie z.B. der Adresse und der Größe, erfordern.
  • Da jedoch eine Reihe von Transaktionen mehrere Datenübertragungen über den Bus erfordern können, bevor diese vollständig an dem Slave gepuffert sind, kann es sich als unpraktikabel erweisen, eine bereits teilweise oder vollständig gepufferte Schreibtransaktion wieder zwangsweise zu entfernen. Dies könnte einen Neustart der Schreibtransaktion von einem höheren Punkt an erfordern, als wo sie unterbrochen wurde, wodurch eine gewisse Komplexität zu dem Busprotokoll hinzugefügt werden könnte. Dies wird z.B. durch das AMBA AHB-Protokoll nicht unterstützt. Darüberhinaus könnte dies zeit- und energieaufwendig sein.
  • Der Beispielslave, Slave 0, ist dazu konfiguriert, eine Transaktionswarteschlangenreallokation für Schreibtransaktionen auszuführen, indem eine beschränkte Anzahl von Lesetransaktionen für diesen Zweck zwangsweise entfernt wird. 12 zeigt eine Partitionierung der Transaktionsanforderungswarteschlange an dem Slave 0 in einem Beispielsszenario, in dem die möglichen QoS-Werte auf dem Bus in dem Bereich von 0 bis 2 liegen. Jede Lesetransaktionsanforderung kann jedem der bereits freien Plätze in dem Transaktionsanforderungspuffer zugewiesen werden. Dies ist möglich, da z.B. eine Lesetransaktionsanforderung zu einem späteren Zeitpunkt jederzeit wieder entfernt werden kann, falls erforderlich.
  • Eine Schreibtransaktionsanforderung kann einer gewissen begrenzten Anzahl von verfügbaren Slots innerhalb der Transaktionsanforderungswarteschlange zugeordnet werden. Damit wird eine Situation vermieden, in der die Transaktionswarteschlange bereits mit Schreibtransaktionen gefüllt ist, wenn eine einkommende Lesetransaktion eine höhere QoS-Anforderung hat, die dann nicht in die Transaktionsanforderungswarteschlange aufgenommen werden kann, da die Schreibtransaktionsanforderungen nicht entfernt werden können.
  • Die beschränkte Anzahl von Slots, die für Schreibtransaktionen verfügbar sind, wird durch QoS-Werte weiter beschränkt. Damit wird garantiert, dass eine eingehende Schreibtransaktion mit höherer QoS-Anforderung als die in der Transaktionsanforderungswarteschlange bereits gespeicherten Transaktionsanforderungen stets in den Transaktionswarteschlangenpuffer aufgenommen werden kann, ohne dass ein Warteschlangeneintrag entfernt werden muss.
  • Für die Schreibtransaktionen zeigt 12 nur einen der Transaktionsanforderungswarteschlangenslots, der zumindest einen QoS-Wert größer oder gleich 1 erfordert, und nur einen weiteren Slot für QoS-Werte größer oder gleich 2. Andere Implementierungen können mehrere mögliche Einträge haben, die mit jedem dieser mindestens erforderlichen QoS-Werte für eingehende Schreibtransaktionen verknüpft sind, z.B. zumindest einen für jeden Master.
  • 13 ist ein schematisches Diagramm, das beispielhafte Transaktionsanforderungswarteschlangen in einem Beispiel zeigt, bei dem der Slave weiß, dass die von einem Master ausgegebenen Transaktionen geordnet sind.
  • Zum Beispiel sei angenommen, dass bekannt ist, dass die von dem Master ausgegebenen Transaktionen geordnet sind, entweder implizit, oder nur wenn sie ein gemeinsames Transaktionsstromkennzeichen haben, und dass der Slave diese Reihenfolge verfolgt oder dazu in der Lage ist, diese Reihenfolge durch Zurückrufen der entfernt anhängigen Transaktionsanforderungen wieder herzustellen. Dann kann innerhalb der Slavetransaktionsanforderungswarteschlange eine QoS-Aktualisierung für eingehende Transaktionen automatisch von den vorhergehenden ausstehenden Transaktionen von diesem Master geerbt werden. In 13 zeigen z.B. die resultierenden Zustände an dem Slave nach der in 10 durchgeführten QoS-Aktualisierung die zusätzliche QoS-Aktualisierung von {master_1, tran_0}, wenn der Slave feststellt, dass diese Transaktion ursprünglich am Master 1 vor {master_1, tran_1} ausgegeben wurde, und wenn die Transaktionsreihenfolge sowohl am Master 1 als auch am Slave 0 relevant ist.
  • Obgleich dieses Dokument zahlreiche spezifische Implementierungseinzelheiten enthält, sollten diese nicht als beschränkend für den Schutzumfang betrachtet werden, sondern als Beschreibung von Merkmalen, die bestimmten Ausführungsformen zu Eigen sein können. Bestimmte Merkmale, die in dieser Beschreibung im Zusammenhang mit getrennten Ausführungsformen beschrieben wurden, können auch in Kombination in einer einzigen Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzelnen Ausführungsform beschrieben wurden, auch in mehreren Ausführungsformen getrennt voneinander oder in einer geeigneten Unterkombination implementiert werden. Obwohl darüberhinaus Merkmale als in bestimmten Kombinationen zusammenwirkend beschrieben wurden und sogar anfänglich solchermaßen beansprucht wurden, können in manchen Fällen ein oder mehrere Merkmale aus einer beanspruchten Kombination aus der Kombination herausgelöst werden und die beanspruchte Kombination kann auf eine Unterkombination oder eine Variation einer Unterkombination gerichtet werden.

Claims (20)

  1. System, umfassend: einen Systembus; und eine Vielzahl von Modulen, die mit dem Systembus verbunden sind und dazu konfiguriert sind, miteinander unter Verwendung des Systembusses zu kommunizieren, beinhaltend: ein Mastermodul, das eine Mastertransaktionsanforderungswarteschlange implementiert; und ein Slavemodul, das eine Slavetransaktionsanforderungswarteschlange implementiert, wobei das Slavemodul dazu konfiguriert ist, Slavemoduloperationen auszuführen, die umfassen: Empfangen einer ersten Transaktionsanforderung von dem Mastermodul; Feststellen, dass die Slavetransaktionsanforderungswarteschlange voll ist; als Reaktion auf die Feststellung, dass die Slavetransaktionsanforderungswarteschlange voll ist, festlegen auf Basis von zumindest einer ersten anhängigen Transaktion in der Slavetransaktionsanforderungswarteschlange, dass die erste anhängige Transaktion nicht aus der Slavetransaktionsanforderungswarteschlange entfernt werden soll, und dass die erste Transaktionsanforderung nicht in die Slavetransaktionsanforderungswarteschlange eingefügt werden soll; und als Reaktion auf die Festlegung, dass die erste anhängige Transaktion nicht entfernt werden soll, Verschieben der ersten Transaktionsanforderung durch Speichern einer ersten Aufzeichnung für die erste Transaktionsanforderung für ein späteres Wiederabspielen der ersten Transaktionsanforderung.
  2. System nach Anspruch 1, wobei die Festlegung, dass die erste anhängige Transaktion nicht entfernt werden soll, eine Feststellung umfasst, dass ein Servicequalitätswert für die erste anhängige Transaktion größer ist als ein Servicequalitätswert für die erste Transaktionsanforderung.
  3. System nach Anspruch 1, wobei die Slavemoduloperationen weiterhin umfassen: Empfangen einer zweiten Transaktionsanforderung von dem Mastermodul; Feststellen, dass die Slavetransaktionsanforderungswarteschlange voll ist; als Reaktion auf die Feststellung, dass die Slavetransaktionsanforderungswarteschlange voll ist, festlegen, dass eine zweite anhängige Transaktion von der Slavetransaktionsanforderungswarteschlange entfernt werden soll, und dass die zweite Transaktionsanforderung in die Slavetransaktionsanforderungswarteschlange eingefügt werden soll; und als Reaktion auf die Entfernung der zweiten anhängigen Transaktion, verschieben der zweiten anhängigen Transaktion durch Speichern einer zweiten Aufzeichnung für die zweite anhängige Transaktion für eine spätere Wiederaufspielung der zweiten anhängigen Transaktion.
  4. System nach Anspruch 3, wobei die Festlegung, die zweite anhängige Transaktion zu entfernen, eine Feststellung umfasst, dass ein Servicequalitätswert der zweiten Transaktionsanforderung größer ist, als ein Servicequalitätswert der zweiten anhängigen Transaktion.
  5. System nach Anspruch 1, wobei das Mastermodul dazu konfiguriert ist, Mastermoduloperationen auszuführen, die umfassen: Senden der ersten Transaktionsanforderung über den Systembus an das Slavemodul mit einem ersten Servicequalitätswert, wodurch das Slavemodul veranlasst wird, die erste Transaktionsanforderung in der Slavetransaktionswarteschlange mit dem ersten Servicequalitätswert zu speichern; und Senden eines zweiten Servicequalitätswertes für die erste Transaktionsanforderung, wodurch das Slavemodul veranlasst wird, den ersten Servicequalitätswert in der Slavetransaktionswarteschlange mit dem zweiten Qualitätswert zu aktualisieren.
  6. System nach Anspruch 1, wobei das Mastermodul dazu konfiguriert ist, eine oder mehrere Wiederabspielungen der ersten Transaktionsanforderung zu initiieren, bis die erste Transaktionsanforderung abgeschlossen ist, wobei jede Wiederabspielung der ersten Transaktionsanforderung bei einem Datenübertragungstakt beginnt, an dem die erste Transaktionsanforderung unterbrochen wurde, und wobei das Mastermodul dazu konfiguriert ist, einen Servicequalitätswert für die erste Transaktionsanforderung bei zumindest einer der einen oder der mehreren Wiederabspielungen der ersten Transaktionsanforderung zu aktualisieren.
  7. System nach Anspruch 1, wobei die Slavemoduloperationen desweiteren umfassen: Rückrufen, für jede Aufzeichnung einer verschobenen Transaktionsanforderung, die durch das Slavemodul gespeichert wurde, einer Wiederabspielung der verschobenen Transaktionsanforderung, wobei jedes entsprechende Mastermodul veranlasst wird, jede verschobene Transaktionsanforderung wieder abzuspielen; Durchführen einer Arbitrierung zwischen den wieder abgespielten Transaktionsanforderungen, um zu ermitteln, welche der wieder abgespielten Transaktionsanforderungen in der Slavetransaktionsanforderungswarteschlange gespeichert werden soll.
  8. System nach Anspruch 1, wobei die Vielzahl von Modulen dazu konfiguriert ist, über den Systembus unter Verwendung eines nicht blockierenden Transaktionsprotokolls zu kommunizieren.
  9. System nach Anspruch 1, wobei der Systembus eine Vielzahl von Masterbusschichten und eine Vielzahl von Slavebusschichten umfasst, und wobei der Systembus dazu konfiguriert ist, Signale der Masterbusschicht dynamisch zu den Slavebusschichten zu leiten, und wobei der Systembus enthält: eine Vielzahl von Decodern, wobei jeder Decoder der Vielzahl von Decodern mit einer der Vielzahl von Masterbusschichten verbunden ist und dazu konfiguriert ist, Adresssignale zu decodieren, die von der verbundenen Masterbusschicht empfangen wurden; eine Vielzahl von Arbitrierern, wobei jeder Arbitrierer der Vielzahl von Arbitrierern mit jedem der Vielzahl von Decodern verbunden ist und dazu konfiguriert ist, ein Auswahlsignal auf Basis eines Ergebnisses einer Arbitrierung von Übertragungsanforderungen und Servicequalitätssignalen, die von zwei oder mehreren Masterbusgeräten erzeugt wurden, auszugeben; und eine Vielzahl von Schaltern, wobei jeder Schalter der Vielzahl von Schaltern mit einem Arbitrierer der Vielzahl von Arbitrierern und jeder der Vielzahl von Masterbusschichten verbunden ist, wobei jeder der Vielzahl von Schaltern durch eines der Auswahlsignale dazu konfiguriert ist, eine der Vielzahl von Masterbusschichten mit einer der Vielzahl von Slavebusschichten zu verbinden.
  10. System nach Anspruch 1, wobei das Slavemodul dazu konfiguriert ist, einen oder mehrere Slots in der Slavetransaktionsanforderungswarteschlange für Schreibtransaktionsanforderungen zu reservieren.
  11. Verfahren zur Durchführung durch ein Slavemodul, das über einen Systembus kommuniziert, umfassend: Empfangen einer ersten Transaktionsanforderung von einem Mastermodul; Feststellen, dass eine Slavetransaktionsanforderungswarteschlange voll ist; als Reaktion auf die Feststellung, dass die Slavetransaktionsanforderungswarteschlange voll ist, Festlegen auf Basis von zumindest einer ersten anhängigen Transaktion in der Slavetransaktionsanforderungswarteschlange, dass die erste anhängige Transaktion nicht von der Slavetransaktionsanforderungswarteschlange entfernt werden soll, und dass die erste Transaktionsanforderung nicht in die Slavetransaktionsanforderungswarteschlange eingefügt werden soll; und als Reaktion auf die Festlegung, die erste anhängige Transaktion nicht zu entfernen, Verschieben der ersten Transaktionsanforderung durch Speichern einer ersten Aufzeichnung für die erste Transaktionsanforderung für eine spätere Wiederabspielung der ersten Transaktionsanforderung.
  12. Verfahren nach Anspruch 11, wobei die Festlegung, die erste anhängige Transaktion nicht zu entfernen, eine Feststellung umfasst, dass ein Servicequalitätswert für die erste anhängige Transaktion größer ist, als ein Servicequalitätswert für die erste Transaktionsanforderung.
  13. Verfahren nach Anspruch 11, desweiteren umfassend: Empfangen einer zweiten Transaktionsanforderung von dem Mastermodul; Feststellen, dass die Slavetransaktionsanforderungswarteschlange voll ist; als Reaktion auf die Feststellung, dass die Slavetransaktionsanforderungswarteschlange voll ist, Festlegen, dass eine zweite anhängige Transaktion aus der Slavetransaktionsanforderungswarteschlange entfernt werden soll, und dass die zweite Transaktionsanforderung in die Slavetransaktionsanforderungswarteschlange eingefügt werden soll; und als Reaktion auf das Entfernen der zweiten anhängigen Transaktion, Verschieben der zweiten anhängigen Transaktion durch Speichern einer zweiten Aufzeichnung für die zweite anhängige Transaktion für eine spätere Wiederabspielung der zweiten anhängigen Transaktion.
  14. Verfahren nach Anspruch 13, wobei die Festlegung, die zweite anhängige Transaktion zu entfernen, eine Feststellung umfasst, dass ein Servicequalitätswert der zweiten Transaktionsanforderung größer ist als ein Servicequalitätswert der zweiten anhängigen Transaktion.
  15. Verfahren nach Anspruch 11, desweiteren umfassend: Zurückrufen, für jede Aufzeichnung einer verschobenen Transaktionsanforderung, die durch das Slavemodul gespeichert wurde, einer Wiederabspielung der verschobenen Transaktionsanforderung, wodurch jedes jeweilige Mastermodul veranlasst wird, jede verschobene Transaktionsanforderung wieder abzuspielen; und Durchführung einer Arbitrierung zwischen den wieder abgespielten Transaktionsanforderungen, um festzustellen, welche der wieder abgespielten Transaktionsanforderungen in der Slavetransaktionsanforderungswarteschlange gespeichert werden soll.
  16. Verfahren nach Anspruch 11, desweiteren umfassend eine Kommunikation über den Systembus unter Verwendung eines nicht-blockierenden Transaktionsprotokolls.
  17. Verfahren nach Anspruch 11, desweiteren umfassend Reservieren von einem oder von mehreren Slots in der Slavetransaktionsanforderungswarteschlange für Schreibtransaktionsanforderungen.
  18. Verfahren zur Durchführung durch ein Mastermodul, das über einen Systembus kommuniziert, umfassend: Senden einer ersten Transaktionsanforderung über den Systembus an ein Slavemodul mit einem ersten Servicequalitätswert, wodurch das Servicemodul veranlasst wird, die erste Transaktionsanforderung in einer Slavetransaktionswarteschlange mit dem ersten Servicequalitätswert zu speichern; und Senden eines zweiten Servicequalitätswertes für die erste Transaktionsanforderung an das Slavemodul, wodurch das Slavemodul veranlasst wird, den ersten Servicequalitätswert in der Slavetransaktionswarteschlange mit dem zweiten Servicequalitätswert zu aktualisieren.
  19. Verfahren nach Anspruch 18, desweiteren umfassend Initiieren von einer oder von mehreren Wiederabspielungen der ersten Transaktionsanforderung, bis die erste Transaktionsanforderung abgeschlossen ist.
  20. Verfahren nach Anspruch 19, wobei jedes Wiederabspielen der ersten Transaktionsanforderung an einem Datentransfertakt beginnt, an dem die erste Transaktionsanforderung unterbrochen wurde.
DE102014225253.9A 2013-12-09 2014-12-09 Reallokation für eine Systembustransaktionswarteschlange Active DE102014225253B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/100,225 2013-12-09
US14/100,225 US9471524B2 (en) 2013-12-09 2013-12-09 System bus transaction queue reallocation

Publications (2)

Publication Number Publication Date
DE102014225253A1 DE102014225253A1 (de) 2015-06-11
DE102014225253B4 true DE102014225253B4 (de) 2023-07-20

Family

ID=53185588

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014225253.9A Active DE102014225253B4 (de) 2013-12-09 2014-12-09 Reallokation für eine Systembustransaktionswarteschlange

Country Status (2)

Country Link
US (3) US9471524B2 (de)
DE (1) DE102014225253B4 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471524B2 (en) * 2013-12-09 2016-10-18 Atmel Corporation System bus transaction queue reallocation
US9910812B2 (en) 2014-10-02 2018-03-06 Atmel Corporation Initiating multiple data transactions on a system bus
US9734102B2 (en) 2014-11-04 2017-08-15 Atmel Corporation Data transfer
US9690726B2 (en) 2014-11-11 2017-06-27 Atmel Corporation Peripheral register parameter refreshing
US10452395B2 (en) 2016-07-20 2019-10-22 International Business Machines Corporation Instruction to query cache residency
US10521350B2 (en) 2016-07-20 2019-12-31 International Business Machines Corporation Determining the effectiveness of prefetch instructions
US10621095B2 (en) 2016-07-20 2020-04-14 International Business Machines Corporation Processing data based on cache residency
US10169239B2 (en) * 2016-07-20 2019-01-01 International Business Machines Corporation Managing a prefetch queue based on priority indications of prefetch requests
US10540316B2 (en) * 2017-12-28 2020-01-21 Advanced Micro Devices, Inc. Cancel and replay protocol scheme to improve ordered bandwidth
US10983836B2 (en) 2018-08-13 2021-04-20 International Business Machines Corporation Transaction optimization during periods of peak activity
US10838884B1 (en) 2018-09-12 2020-11-17 Apple Inc. Memory access quality-of-service reallocation
FR3094810B1 (fr) * 2019-04-03 2023-01-13 Thales Sa Système sur puce comprenant une pluralité de ressources maitre
DE112019007666T5 (de) * 2019-08-27 2022-06-15 Micron Technology, Inc. Schreibpuffersteuerung in einem verwalteten Speichersystem
CN115827521B (zh) * 2023-02-08 2023-05-12 广州匠芯创科技有限公司 基于psram控制器的带宽管理方法、装置和介质
CN116257479B (zh) * 2023-05-16 2023-08-15 北京象帝先计算技术有限公司 重排序缓冲器、系统、装置、设备及传输方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US38428A (en) 1863-05-05 Improved chair
USRE38428E1 (en) 1995-05-02 2004-02-10 Apple Computer, Inc. Bus transaction reordering in a computer system having unordered slaves
DE60127357T2 (de) 2000-08-10 2007-11-29 Serverworks, Inc., Santa Clara Ausführung von einem PCI-Arbiter mit dynamischem Prioritätsschema

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025370A (en) 1986-09-02 1991-06-18 Koegel Robert J Circuit for preventing lock-out of high priority requests to a system controller
US5404461A (en) 1991-03-29 1995-04-04 International Business Machines Corp. Broadcast/switching apparatus for executing broadcast/multi-cast transfers over unbuffered asynchronous switching networks
EP0752666A3 (de) * 1995-07-06 2004-04-28 Sun Microsystems, Inc. Verfahren und Vorrichtung zur Beschleunigung von Sklave-Anforderungen in einem paketvermittelten Computersystem
US6170032B1 (en) 1996-12-17 2001-01-02 Texas Instruments Incorporated Priority encoder circuit
US6769019B2 (en) 1997-12-10 2004-07-27 Xavier Ferguson Method of background downloading of information from a computer network
US6874144B1 (en) 1999-04-05 2005-03-29 International Business Machines Corporation System, method, and program for implementing priority inheritance in an operating system
KR100353214B1 (ko) 2001-01-16 2002-09-18 삼성전자 주식회사 휴대용 무선단말기 기능 서비스방법
US7023840B2 (en) * 2001-02-17 2006-04-04 Alcatel Multiserver scheduling system and method for a fast switching element
US6614709B2 (en) * 2001-03-09 2003-09-02 Intel Corporation Method and apparatus for processing commands in a queue coupled to a system or memory
US7302686B2 (en) 2001-07-04 2007-11-27 Sony Corporation Task management system
US7080177B2 (en) 2002-03-01 2006-07-18 Broadcom Corporation System and method for arbitrating clients in a hierarchical real-time DRAM system
EP1376373B1 (de) 2002-06-20 2006-05-31 Infineon Technologies AG Anordnung von zwei Geräten, verbunden durch einen Kreuzvermittlungsschalter
US8005918B2 (en) * 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
US7062582B1 (en) 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
KR100626362B1 (ko) 2003-05-23 2006-09-20 삼성전자주식회사 고속 대역폭의 시스템 버스를 중재하기 위한 중재기, 중재기를 포함하는 버스 시스템 및 버스 중재 방법
US7685436B2 (en) 2003-10-02 2010-03-23 Itt Manufacturing Enterprises, Inc. System and method for a secure I/O interface
US7549004B1 (en) 2004-08-20 2009-06-16 Altera Corporation Split filtering in multilayer systems
US7733870B1 (en) * 2004-09-10 2010-06-08 Verizon Services Corp. & Verizon Services Organization Inc. Bandwidth-on-demand systems and methods
US20060143396A1 (en) * 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
US7174403B2 (en) 2005-02-24 2007-02-06 Qualcomm Incorporated Plural bus arbitrations per cycle via higher-frequency arbiter
GB2426604B (en) 2005-05-26 2010-07-14 Advanced Risc Mach Ltd Interconnect logic for a data processing apparatus
US20070204076A1 (en) 2006-02-28 2007-08-30 Agere Systems Inc. Method and apparatus for burst transfer
US20070130344A1 (en) 2005-11-14 2007-06-07 Pepper Timothy C Using load balancing to assign paths to hosts in a network
GB2445713B (en) 2005-12-22 2010-11-10 Advanced Risc Mach Ltd Interconnect
WO2008004592A1 (fr) * 2006-07-04 2008-01-10 Sharp Kabushiki Kaisha Dispositif et appareil de communication, procédé et programme de commande de dispositif de communication, et support d'enregistrement lisible par ordinateur
US7774356B2 (en) 2006-12-04 2010-08-10 Sap Ag Method and apparatus for application state synchronization
US8755270B2 (en) * 2007-02-05 2014-06-17 Telefonaktiebolaget L M Ericsson (Publ) Congestion/load indication for high speed packet access
US7710989B2 (en) 2007-03-06 2010-05-04 Intel Corporation Scalable and configurable queue management for network packet traffic quality of service
US20080244131A1 (en) 2007-03-26 2008-10-02 Atmel Corporation Architecture for configurable bus arbitration in multibus systems with customizable master and slave circuits
US20090193121A1 (en) * 2008-01-29 2009-07-30 George Shin Critical Resource Management
TWI362860B (en) * 2008-06-27 2012-04-21 Realtek Semiconductor Corp Network system with quality of service management and associated management method
EP2173066B1 (de) 2008-10-01 2012-05-16 STMicroelectronics Srl Verfahren zum Austauschen von Informationen in einem Network-on-Chip-Kommunikationsnetzwerk, entsprechendes Network-on-Chip-Kommunikationsnetzwerk und Computerprogrammprodukt
US7912951B2 (en) * 2008-10-28 2011-03-22 Vmware, Inc. Quality of service management
CN102473198B (zh) 2010-05-31 2015-09-09 松下电器产业株式会社 集成电路制造方法及半导体集成电路
FR2961048B1 (fr) 2010-06-03 2013-04-26 Arteris Inc Reseau sur puce avec caracteristiques de qualite-de-service
US8726284B2 (en) 2010-06-10 2014-05-13 Microsoft Corporation Managing requests based on request groups
US8612648B1 (en) * 2010-07-19 2013-12-17 Xilinx, Inc. Method and apparatus for implementing quality of service in a data bus interface
US8711818B2 (en) * 2010-07-30 2014-04-29 Mayflower Communications Company Inc. High performance data transport system and method
US8660000B2 (en) * 2010-09-02 2014-02-25 Empire Technology Development Llc Admission and eviction policies for mobile devices with non-telephonic functionality
US8438306B2 (en) 2010-11-02 2013-05-07 Sonics, Inc. Apparatus and methods for on layer concurrency in an integrated circuit
US8607022B2 (en) 2010-12-17 2013-12-10 Apple Inc. Processing quality-of-service (QoS) information of memory transactions
US9286257B2 (en) 2011-01-28 2016-03-15 Qualcomm Incorporated Bus clock frequency scaling for a bus interconnect and related devices, systems, and methods
US20140136644A1 (en) 2011-07-01 2014-05-15 Nokia Solutions And Networks Oy Data storage management in communications
US8463958B2 (en) * 2011-08-08 2013-06-11 Arm Limited Dynamic resource allocation for transaction requests issued by initiator devices to recipient devices
KR101955521B1 (ko) 2011-10-17 2019-03-07 한국전자통신연구원 통신 시스템에서 데이터 송수신 장치 및 방법
US8739250B2 (en) * 2011-12-05 2014-05-27 Microsoft Corporation Denial of service attack resistant input port
GB2505884B (en) * 2012-09-12 2015-06-03 Imagination Tech Ltd Dynamically resizable circular buffers
US20140164659A1 (en) 2012-12-06 2014-06-12 Wasim Quddus Regulating access to slave devices
US9886595B2 (en) * 2012-12-07 2018-02-06 Samsung Electronics Co., Ltd. Priority-based application execution method and apparatus of data processing device
US9471524B2 (en) * 2013-12-09 2016-10-18 Atmel Corporation System bus transaction queue reallocation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US38428A (en) 1863-05-05 Improved chair
USRE38428E1 (en) 1995-05-02 2004-02-10 Apple Computer, Inc. Bus transaction reordering in a computer system having unordered slaves
DE60127357T2 (de) 2000-08-10 2007-11-29 Serverworks, Inc., Santa Clara Ausführung von einem PCI-Arbiter mit dynamischem Prioritätsschema

Also Published As

Publication number Publication date
US20220107904A1 (en) 2022-04-07
US11256632B2 (en) 2022-02-22
US9471524B2 (en) 2016-10-18
US20150161065A1 (en) 2015-06-11
DE102014225253A1 (de) 2015-06-11
US20170004097A1 (en) 2017-01-05

Similar Documents

Publication Publication Date Title
DE102014225253B4 (de) Reallokation für eine Systembustransaktionswarteschlange
DE102005009174B4 (de) Bussystem, zugehöriges Busbelegungszuteilverfahren und Datenübertragungsverfahren
DE2162806C2 (de) Speichersteuereinheit zur vereinfachter Pufferung von Anforderungen der Ein- Ausgabekanäle
DE69838387T2 (de) Verfahren und vorrichtung in einem paketenleitweglenkungsschalter um den zugriff zu einem gemeinsamen speicher auf verschiedenen datenraten zu steuern
DE60217221T2 (de) Ein-Chip System zur Paketverarbeitung
DE19983737B3 (de) System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision
DE19580990C2 (de) Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen
DE2856483C2 (de)
DE69725687T2 (de) Transaktionsübertragung zwischen Datenbussen in einem Rechnersystem
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE19983745B9 (de) Verwendung von Seitenetikettregistern um einen Zustand von physikalischen Seiten in einer Speichervorrichtung zu verfolgen
DE2212501C2 (de) Einrichtung zur Übertragung asynchroner, digitaler Signale
DE102015117019A1 (de) Serielle Peripherieschnittstellen-Kettenkommunikation mit rahmengebundener Antwort
CH634938A5 (de) Einrichtung fuer die weiterleitung von speicherzugriffsanforderungen.
DE2530599C2 (de) Verfahren und Schaltungsanordnung zur Steuerung von Ein-/Ausgabe-Geräten
DE102009001898A1 (de) Schaltungsanordnungen und Verfahren zur Steuerung eines Datenaustauschs in einer Schaltungsanordnung
DE102006009034B3 (de) Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller
DE102006025133A1 (de) Speicher- und Speicherkommunikationssystem
EP1370952B1 (de) Kommunikationsverfahren zur realisierung von ereigniskanälen in einem zeitgesteuerten kommunikationssystem
DE19580195C2 (de) Verfahren und Einrichtung zur Signalübertragung über eine gemeinsame Leitung
DE2749884A1 (de) Einrichtung zum automatischen neuformatieren von daten in einem dv-system
EP1308846B1 (de) Datenübertragungseinrichtung
DE102014003435A1 (de) System und Verfahren zum Arbitrieren des Zugangs zu einer Zwischenverbindung
DE2537787A1 (de) Modularer arbeitsspeicher fuer eine datenverarbeitungsanlage und verfahren zum durchfuehren von speicherzugriffen an diesem speicher

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R130 Divisional application to

Ref document number: 102014020133

Country of ref document: DE