DE202011052249U1 - Zeitplanung für Mikrocontrollersystembus für Multiport-Slave-Module - Google Patents

Zeitplanung für Mikrocontrollersystembus für Multiport-Slave-Module Download PDF

Info

Publication number
DE202011052249U1
DE202011052249U1 DE201120052249 DE202011052249U DE202011052249U1 DE 202011052249 U1 DE202011052249 U1 DE 202011052249U1 DE 201120052249 DE201120052249 DE 201120052249 DE 202011052249 U DE202011052249 U DE 202011052249U DE 202011052249 U1 DE202011052249 U1 DE 202011052249U1
Authority
DE
Germany
Prior art keywords
master
burst
slave
module
port
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.)
Expired - Lifetime
Application number
DE201120052249
Other languages
English (en)
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
Priority to DE201120052249 priority Critical patent/DE202011052249U1/de
Publication of DE202011052249U1 publication Critical patent/DE202011052249U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/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/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter

Abstract

System, umfassend: eine Vielzahl von Master-Modulen; ein Multiport-Slave-Modul, das eine Vielzahl von Slave-Ports und eine Multiport-Slave-Vermittlungseinheit enthält, wobei die Multiport-Slave-Vermittlungseinheit dazu eingerichtet ist, zwischen den Slave-Ports zu vermitteln; einen Systembus, der die Master-Module und das Multiport-Slave-Modul miteinander verbindet; und eine Zeitplanungseinheit, die dazu eingerichtet ist, einem Sieger-Master-Modul einen Buszugriff zu gewähren, um einen Datenburst zwischen dem Sieger-Master-Modul und dem Multiport-Slave-Modul zu übertragen; wobei die Zeitplanungseinheit dazu eingerichtet ist, Zeitplanungsinformationen an die Multiport-Slave-Vermittlungseinheit zu liefern, wobei die Zeitplanungsinformationen eine Master-Kategorisierungsinformation und antizipierte Burst-Informationen enthalten, wobei die antizipierten Burst-Informationen auf einer Feststellung der Zeitplanungseinheit über einen antizipierten Buszugriff durch ein antizipiertes Master-Modul auf das Multiport-Slave-Modul beruhen, und wobei die Master-Kategorisierungsinformationen den antizipierten Master beschreiben.

Description

  • TECHNISCHER BEREICH
  • Der vorliegende Gegenstand bezieht sich allgemein auf Elektronik und insbesondere auf Kommunikationsbusse für Mikrocontroller.
  • HINTERGRUND
  • Mikroncontroller können verschiedene Module (z. B. einen Prozessor, eine Speichersteuereinheit, eine Anzeigesteuereinheit, usw.) beinhalten, die miteinander unter Verwendung eines Systembusses kommunizieren. Ein Master-Modul initiiert einen Buszugriff (Schreib- und Leseoperationen auf dem Bus), in dem es z. B. Adress- und Steuerinformationen zur Verfügung stellt. Ein Slave-Modul antwortet auf die Lese- oder Schreiboperationen des Master-Moduls. Ein Decoder wählt ein bestimmtes Slave-Modul entsprechend der durch ein Master-Modul zur Verfügung gestellten Adresse aus. Im Allgemeinen kommuniziert nur ein Master-Modul gleichzeitig über den Bus. Eine Vermittlungseinheit (arbiter) verwaltet die Buszugriffe, um sicherzustellen, dass nur ein Master-Modul den Bus verwendet. Eine Vermittlungseinheit kann eines von verschiedenen Vermittlungsprinzipien (z. B. Reihum-Methode, Zeitmultiplexverfahren (TDMA) usw.) verwenden.
  • ZUSAMMENFASSUNG
  • Eine Systembus-Zeitplanungseinheit (scheduler) für einen Systembus liefert Zeitplanungsinformationen an ein Multiport-Slave-Modul auf dem Systembus. Die Zeitplanungsinformationen können Master-Kategorisierungsinformationen und Informationen über erwartete Bursts enthalten. Das Multiport-Slave-Modul verwendet die Zeitplanungsinformationen, um zwischen seinen eigenen Ports zu vermitteln. Das Multiport-Slave-Modul kann z. B. die Zeitplanungsinformationen verwenden, um eine Burst-Unterbrechung zu beheben. Dies ist z. B. nützlich, wenn das Multiport-Slave-Modul ein Pipeline-Multiport-Speichermodul ist und eine Burstunterbrechung Ineffizienzen verursachen kann.
  • Konkrete Ausführungsformen der Erfindung können zur Realisierung eines oder mehrerer der folgenden Vorteile implementiert werden: (1) eine Systembus-Zeitplanungseinheit und eine Multiport-Slave-Vermittlereinheit kann in effizienter Weise Bandbreiten und Latenzrandbedingungen eines Bus-Masters erfüllen und zugleich die interne Multiport-Slave-Optimierung erhalten; (2) Zeitplanungsinformationen ermöglichen die Verfolgung antizipierter Bursts und effiziente Burst-Unterbrechungen und Wiederaufnahmen; und (3) Zeitplanungsinformationen erlauben es einem Multiport-Slave-Modul den Start geeigneter Anweisungen vorherzusehen, die Aufhebung von Anweisungen und Daten zu vermeiden, und das Verbergen von Latenzen sowie die Datenweiterleitung an verfügbare Ausgänge zu maximieren.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines beispielhaften Mikrocontrollers.
  • 2 ist ein schematisches Diagramm, das eine beispielhafte Systembusmatrix zeigt.
  • 3 ist ein schematisches Diagramm, das den Fluss von Zeitplanungsinformationen zwischen einer Zeitplanungseinheit und einem Multiport-Slave-Modul illustriert.
  • 46 sind Zeitablaufdiagramme von beispielhaften Szenarien, die die Kommunikation von Zeitplanungsinformationen zwischen einer Systembus-Zeitplanungseinheit und einem Multiport-Slave-Modul illustrieren.
  • 7 ist ein Flussdiagramm eines beispielhaften Prozesses, der durch ein Multiport-Slave-Modul zur Verwendung von Zeitplanungsinformationen ausgeführt wird.
  • DETAILLIERTE BESCHREIBUNG
  • Systemüberblick
  • 1 ist ein Blockdiagramm eines beispielhaften Mikrocontrollers 100. Der Mikrocontroller 100 beinhaltet ein oder mehrere Master-Module 101105, bis zu einer Gesamtzahl von M Modulen. Die Master-Module beinhalten einen Mikroprozessor 101, eine Direktspeicherzugriffs(DMA)-Steuereinheit, eine Anzeigesteuereinheit 103, und einen Hochgeschwindigkeits-Peripheriebus-Master 104. Der Mikrocontroller 100 beinhaltet auch ein oder mehrere Slave-Module 120124, bis zu einer Gesamtzahl von S Slave-Modulen. Die Slave-Module beinhalten ein Multiport-Slave-Modul (z. B. eine Speichersteuereinheit) 120, On-Chip-Speicher 121, eine Niedergeschwindigkeits-Peripheriebusbrücke 122, und einen Hochgeschwindigkeits-Pheripheriebus-Slave 123. Die Module kommunizieren miteinander unter Verwendung einer Systembusmatrix 111.
  • Die Module können mit Geräten außerhalb des Mikrocontrollers über Anschlussflächen 150157 verbunden sein. Die Anzeige-Steuereinheit 103 kann z. B. mit einer Anzeige über Anschlussflächen 150 und 151 verbunden sein, der Hochgeschwindigkeits-Peripheriebus-Master kann mit einem Hochgeschwindigkeits-Peripheriebus über Anschlussflächen 152 und 153 verbunden sein, die Multiport-Speichersteuereinheit 120 kann mit einem Speichergerät über die Anschlussflächen 154 und 155 verbunden sein, und der Hochgeschwindigkeits-Peripheriebus-Slave 123 kann mit einem Hochgeschwindigkeits-Peripheriebus über Anschlussflächen 156 und 157 verbunden sein.
  • Das Multiport-Slave-Modul 120 verwendet Zeitplanungsinformationen, um zwischen seinen Ports zu vermitteln. Die Zeitplanungsinformationen können Master-Kategorisierungsinformationen und antizipierte Burst-Informationen beinhalten.
  • Die gezeigten Module sind Beispiele und jede beliebige Art von Master- und Slave-Modulen können in dem Mikrocontroller 100 enthalten sein. Der Mikrocontroller 100 kann ein oder mehr Master-Module und ein oder mehrere Slave-Module beinhalten, wobei zumindest ein Slave-Modul ist ein Multiport-Slave-Modul.
  • Beispielhafte Systembusmatrix
  • 2 ist ein schematisches Diagramm, das eine beispielhafte Systembusmatrix 110 zeigt. Drei beispielhafte Master-Module 200202 kommunizieren unter Verwendung der Systembusmatrix 110. Ein beispielhaftes Multiport-Slave-Modul 120 kommuniziert unter Verwendung der Systembusmatrix 110. Das Multiport-Slave-Modul 120 kann z. B. ein Multiport-Speichermodul sein.
  • Eine Busschicht ist eine Verbindung, die dazu eingerichtet ist, Adressinformationen ”A”, Steuerinformationen ”C” und Dateninformation ”D” zu übertragen. Die Datensignale können bidirektional sein. Das Multiport-Slave-Modul 120 ist mit drei Slave-Busschichten 260262 dargestellt. Das Multiport-Slave-Modul 120 kann mehr oder weniger Schichten haben. Die Master-Module 200202 sind mit drei Bus-Masterschichten 240242 dargestellt, wobei jedes Master-Modul eine Bus-Masterschicht hat.
  • Die Systembusmatrix 110 verbindet die Bus-Masterschichten 240242 dynamisch mit den Bus-Slave-Schichten 260262. Die Systembusmatrix 110 kann die Schichten unter Verwendung der Adress- und Steuersignale, die durch die Master-Module 200202 zur Verfügung gestellt werden, verbinden. Die Steuersignale können, implizit oder explizit, verschiedene Übertragungscharakteristika, z. B. die Datenrichtung, die Zahl der Bytes pro Datenbuszyklus, die Art und die Länge eines Übertragungs-Bursts, Datenattribute hinsichtlich der Art, des Schutzes und der Sicherheit, die Anfrageridentität, die Slave-Verfügbarkeit, und andere herkömmliche Busübertragungscharakteristika angeben.
  • Jedes der Master-Module 200202 kann einen Buszugriff unter Verwendung bestimmter Kombinationen aus Adress- und Steuerinformationen initiieren. Ein zugehöriger Decoder (einer der Decoder 210212) decodiert die Adressinformation, um eine der Slave-Busschichten 260262 auszuwählen. Daraufhin bestimmt eine zugehörige Systembus-Vermittlungseinheit (eine der Systembus-Vermittlungseinheiten 220222) ein Sieger-Master-Modul unter Verwendung eines Vermittlungsschemas. Die Systembusmatrix 110 verbindet dann die Bus-Masterschicht des Sieger-Master-Moduls mit der angezielten Bus-Slave-Schicht des Sieger-Master-Moduls. Die Systembusmatrix 110 verbindet die Schichten durch Ansteuerung der Schalt-Auswahleinheiten 230232, um die Matrixschalter 250252 umzulegen. Jedes andere anfragende Master-Modul wartet, bis eine neue Vermittlung (Arbitration) stattfindet.
  • Da die angezielte Bus-Slave-Schicht zu einem der mehreren Ports des Multiport-Slave-Moduls 120 gehört, findet eine weitere Vermittlung (Arbitration) an einer Multiport-Slave-Vermittlungseinheit 280 statt. Die Multiport-Slave-Vermittlungseinheit 280 bestimmt ein Sieger-Master-Modul unter den gegenwärtigen Anfragen von Master-Modulen auf den Bus-Slave-Schichten 260262. Nachdem die Multiport-Slave-Vermittlungseinheit 280 ein Sieger-Master-Modul festgestellt hat, können ein Master- und ein Slave-Modul Daten austauschen. Der Datenaustausch kann z. B. auf einer physikalischen Schnittstelle 290 auf dem Multiport-Slave-Modul 120 stattfinden. Der Datenaustausch kann in Abhängigkeit von dem internen Zustand des Multiport-Slave-Moduls 120 verzögert werden.
  • Eine Zeitplanungseinheit 225 koordiniert Buszugriffe, um Bandbreiten und/oder Latenzrandbedingungen für die verschiedenen Module auf der Systembusmatrix 110 zu erfüllen. Die Zeitplanungseinheit 225 sendet Anweisungen an die Systembus-Vermittlungseinheit 220222, um den Master-Modulen 200202 geeignete Buszugriffe zu gewähren, um die Bandbreiten und/oder Latenzrandbedingungen für die Master-Module zu erfüllen. Um die Bandbreiten- und/oder Latenzrandbedingungen zu erfüllen, betrachtet die Zeitplanungseinheit 225 die Bus-Slave-Schichten 260262 als eine einzige Schicht, um die vergangenen Zugriffe an dem Multiport-Slave zu zählen.
  • Einzelne Datenaustauschvorgänge können in Bursts mit einer spezifizierten Länge zusammengepackt werden. Eine bestimmte Anzahl von Datenworten (z. B. 4, 8, 16 oder mehr) können z. B. übertragen werden, bevor eine nächste Vermittlung (z. B. durch die Systembus-Vermittlungseinheiten 220222 oder den Multiport-Slave-Vermittler 280) eine neue Master-Schicht oder eine neue Multiport-Slave-Schicht auswählt. Unter bestimmten Umständen (z. B. unter einer gewissen Arbeitslast) können, wenn der Multiport-Slave-Vermittler 280 Bus-Slave-Schichten in einer fairen Vermittlung (fair style arbitration) auswählt, die Bandbreiten- und/oder Latenzrandbedingungen der Module nicht erfüllt werden, selbst wenn die Zeitplanungseinheit 225 versucht, die Buszugriffe zu koordinieren.
  • Im Allgemeinen gilt, dass, je länger die Bursts auf einer Bus-Slave-Schicht von einem initiierenden Master-Modul sind, desto mehr Bandbreite der Slave-Schicht wird durch das initiierende Master-Modul tendenziell verbraucht. Je länger die Bursts auf der physikalischen Schnittstelle 290 des Multiport-Slave-Moduls 120 sind, desto mehr Multiport-Slave-Bandbreite wird das initiierende Master-Modul tendenziell verbrauchen. Je häufiger ein Master-Modul Buszugriffe initiiert, desto mehr Bandbreite wird es tendenziell verbrauchen.
  • Man betrachte ein Beispielszenario, in dem ein erstes Master-Modul 200 auf das Multiport-Slave-Modul 120 für einen langen Burst zugreift. Während des langen Bursts versucht ein zweites Master-Modul 201 auf das Multiport-Slave-Modul 120 zuzugreifen. Die Zeitplanungseinheit 225 stellt fest, dass das zweite Master-Modul 201 ein kritisches Master-Modul ist, z. B. so dass eine Verzögerung des Zugriffs des zweiten Master-Moduls zu einem Systemversagen führen wird. Die Zeitplanungseinheit 225 stellt fest, dass das erste Master-Modul 200 nicht kritisch ist und seine Bandbreiten- und Latenzanforderungen im Allgemeinen erfüllt hat. Die Zeitplanungseinheit 225 kann den Burst für das erste Master-Modul 220 unterbrechen, um es dem zweiten Master-Modul 201 zu erlauben, auf das Multiport-Slave-Modul 120 zuzugreifen. Der Burst für das erste Master-Modul 220 kann dann später fortgesetzt werden.
  • Eine Unterbrechung des Bursts ermöglicht es sowohl dem Master-Modul 200 als auch dem Master-Modul 201, ihre Bandbreiten und Latenzanforderungen zu erfüllen. Das Multiport-Slave-Modul 120 kann jedoch durch eine derartige Burst-Unterbrechung gestört werden. Das Multiport-Slave-Modul 120 kann z. B. mehrere Systembus-Blockzyklen für eine bestimmte Aktion benötigen, z. B., um Befehle zu widerrufen, Bursts zu beenden, die an der physikalischen Schnittstelle 220 bereits gestartet wurden, oder um neue Bursts zu starten. Burst-Unterbrechungen können an der physikalischen Schnittstelle 220 des Multiport-Slave-Moduls auch zu einem Versagen in der gleichzeitigen Ausführung eines laufenden Datenbursts und eines Befehls für ein nächsten Datenburst führen. Wenn z. B. das Multiport-Slave-Modul 120 ein Pipeline-Multiport-Speichermodul ist, kann die pralle Verarbeitung (pipelining) der Speicheranforderungen, wie obenstehend beschrieben, gestört werden.
  • Die Zeitplanungseinheit 225 liefert Zeitplanungsinformationen an die Multiport-Slave-Vermittlungseinheit 280. Die Zeitplanungsinformationen sind nützlich, um z. B. die Störungen abzumildern, die aus Burst-Unterbrechungen resultieren können. Die Zeitplanungseinheit 225 kann die Zeitplanungsinformationen an die Multiport-Slave-Vermittlungseinheit 280 unter Verwendung zusätzlicher Kommunikationskanäle 270272 liefern. Es kann einen zusätzlichen Kommunikationskanal für jede der Bus-Slave-Schichten 260262 geben. Die Multiport-Slave-Vermittlungseinheit 280 verwendet die Zeitplanungsinformationen zur Vermittlung zwischen den Bus-Slave-Schichten 260262.
  • Die Zeitplanungsinformationen können Master-Kategorisierungsinformationen und antizipierte Burst-Informationen beinhalten. Die antizipierten Burst-Informationen können z. B. eine erforderliche Burst-Unterbrechung für den laufenden Burst auf einer Bus-Slave-Schicht oder eine erforderliche Burst-Wiederaufnahme eines zuvor unterbrochenen Bursts auf einer Bus-Slave-Schicht angeben. Die Master-Kategorisierungsinformationen kategorisieren Master-Module z. B. auf Basis von Bandbreiten und/oder Latenzanforderungen. Die Master-Kategorisierungsinformationen können statisch oder dynamisch sein. Die Master-Kategorisierungsinformationen können ein konkretes Master-Modul (und somit jeden Buszugriff durch diesen Master) oder einen konkreten Buszugriff, der durch ein Master-Modul durchgeführt wird, kategorisieren. Beispiele für Zeitplanungsinformationen werden untenstehend im Zusammenhang mit den Tabellen 1 und 2 beschrieben.
  • Tabelle 1 zeigt beispielhafte Kategorien für Master-Kategorisierungsinformationen und zugehörige Beispielsymbole und Werte. Die Kategorien sind mit „Kritikalitätsklasse für den nächsten Burst-Master” (next burst master criticality class, NMCC) überschrieben. Im Allgemeinen geben die Kategorien einen Grad von Kritikalität für die Systemoperationen für ein Master-Modul (oder einen konkreten Buszugriff durch ein Master-Modul) an.
    Kritikalitätsklasse für nächsten Burst-Master NMCC-Symbol Binäre Codierung
    Latenzkritisch LC 111
    Bandbreitenkritisch BC 110
    Latenzempfindlich, selbstbegrenzender Durchsatz LSL 101
    Latenzempfindlich, unbegrenzter Durchsatz LSU 100
    Bandbreitenempfindlich, selbstbegrenzter Durchsatz BSL 011
    Bandbreitenempfindlich, unbegrenzter Durchsatz BSU 010
    Nicht empfindlich, selbstbegrenzter Durchsatz NSL 001
    Nicht empfindlich, unbegrenzter Durchsatz NSU 000
    Tabelle 1
  • Die gezeigten NMCC-Kategorien müssen nicht mit irgendeinem bestimmten Prioritätspegel verknüpft werden. In manchen Implementierungen kann ein implizierte native Priorität zwischen den Klassenpaaren korrespondieren. Die Zeitplanungseinheit 225 und die Multiport-Slave-Vermittlungseinheit 280 können so programmiert sein, dass sie in konsistenter Weise auf die verschiedenen NMCC-Kategorien reagieren. Die Zeitplanungseinheit 225 und die Multiport-Slave-Vermittlungseinheit 280 können z. B. die gleiche Prioritätsordnung der NMCC-Kategorien haben (z. B. so dass Master-Module mit höherer Priorität eine Burst-Unterbrechung für Bursts von Master-Modulen mit niedrigerer Priorität verursachen können).
  • Ein latenzkritisches Master-Modul kann ein Master-Modul sein, das auf das Multiport-Slave-Modul 120 innerhalb einer gewissen Zeitdauer zugreifen können muss, z. B. einer Zeitdauer, die potenziell kürzer ist, als die längste Umlaufzeit, die die Zeitplanungseinheit 225 benötigt, um eine vollständige Vermittlungsrunde über nur die bandbreitenkritischen Master-Module durchzuführen. Wenn ein latenzkritisches Mastermodul nicht innerhalb des angegebenen Zeitrahmens auf das Multiport-Slave-Modul 120 zugreifen kann, so tritt ein Anwendungs- oder Systemversagen auf. Systeme können latenzkritische Master beinhalten, wenn z. B. ein hohes Echtzeitreaktionsvermögen über externe Schnittstellen erforderlich ist.
  • Ein bandbreitenkritisches Master-Modul kann ein Master-Modul sein, das einen Mindestwert für eine mittlere Datenbandbreite über bestimmte Ports auf dem Multiport-Slave-Modul 120 benötigt. Die Bandbreite kann über eine beliebige Zeitspanne angegeben werden, die von der Programmierung der Vermittlungseinheit 225 abhängen kann, so dass die Vermittlungseinheit 225 Maßnahmen ergreifen kann, um die Anforderungen zu erfüllen. Wenn ein bandbreitenkritischer Master seine Mindestbandbreite nicht bekommen kann, so resultiert ein Anwendungs- oder Systemausfall. In manchen Anwendungen kann die Anzeigesteuereinheit 103 aus 1 zu dieser Kategorie gehören.
  • Ein latenzempfindliches Master-Modul kann ein Master-Modul sein, bei dem die Leistungsfähigkeit zurückgeht, wenn die mittlere Zugriffszeit auf das Multiport-Slave-Modul 120 zunimmt. In manchen Anwendungen kann z. B. der Mikroprozessorkern 101 aus 1 zu dieser Kategorie gehören.
  • Ein bandbreitenempfindliches Master-Modul kann ein Master-Modul sein, bei dem die Leistungsfähigkeit zurückgeht, wenn die mittlere Bandbreite durch einen Port des Multiport-Slave-Moduls 120 zurückgeht. Der Hochgeschwindigkeits-Peripheriebusmaster 104 aus 1 kann z. B. zu dieser Kategorie gehören.
  • Ein Master-Modul, das nicht empfindlich ist gegenüber dem Timing des Datenbusses, kann ein Master-Modul sein, das keinen für einen Benutzer von außen sichtbaren Effekt zeitigt. Im Allgemeinen sind die Zeitplanungseinheit 225 und die Multiport-Slave-Vermittlungseinheit 280 dazu eingerichtet, Bursts von nicht empfindlichen Master-Modulen zugunsten von Bursts von zeitempfindlichen Master-Modulen zu unterbrechen.
  • Master-Module können auch hinsichtlich der Ablaufkontrolle unterschieden werden. Master-Module mit selbstbegrenztem Durchsatz haben eine intrinsisch begrenzte Systembus-Zugriffsrate. Ein Master-Modul, das z. B. mit einem externen Transceiver verbunden ist, kann durch seine Baudrate begrenzt sein. Master-Module mit unbegrenztem Durchsatz sind nur durch das System begrenzt und können potenziell die Systembusmatrix 110 und die Multiport-Slave-Vermittlungseinheit 280 mit Anfragen sättigen. Wenn einem selbstbegrenzten Master-Modul ein Zugriff gewährt wird, besteht daher eine geringere Wahrscheinlichkeit, dass es bald wieder eine neue Anforderung gibt. In Abhängigkeit von den Leistungsfähigkeitszielen können die Zeitplanungseinheit 225 und die Multiport-Slave-Vermittlungseinheit 280 den selbstbegrenzten Mastern Zugriffe als Erstes oder als Letztes gewähren, wenn die Anfragen der Master-Module sortiert werden.
  • Im Betrieb kann die Zeitplanungseinheit 225 aktualisierte Master-Kategorisierungsinformationen an die Multiport-Slave-Vermittlungseinheit 280 liefern, um die Master-Kategorisierung einer nächsten Burst-Master-Anfrage darzustellen. Die Zeitplanungseinheit 225 kann die aktualisierte Master-Kategorisierungsinformation für den nächsten Burst nach erfolgter Festlegung der Adress- und Steuerinformationen für einen laufenden Burst liefern. Die Zeitplanungseinheit 225 kann aktualisierte Master-Kategorisierungsinformationen für den nächsten Burst zu jeder Zeit während des laufenden Burst liefern, z. B. gemäß einer neu geplanten Vermittlung durch die Zeitplanungseinheit 225 sowie neue Anforderungen von Master-Modulen evaluiert werden.
  • Tabelle 2 zeigt Beispielkategorien für antizipierte Burst-Informationen und zugehörige Beispielsymbole und Werte. Die Kategorien sind mit „nächste Master-Burst-Anforderung” (next master burst request, NMBR) überschrieben. Im Allgemeinen sendet die Zeitplanungseinheit 225 die Informationen über den nächsten antizipierten Burst, um das Multiport-Slave-Modul 120 über ein bevorstehendes Master-Modul und einen Burst bezüglich eines gegenwärtigen oder vorherigen Master-Moduls und Bursts zu benachrichtigen. Die Kategorien geben an, wann eine Burst-Unterbrechung initiiert werden muss, oder wann eine Burst-Wiederaufnahme eines unterbrochenen Bursts initiiert werden muss. Antizipierte Burst-Informationen können gleichzeitig und mit der gleichen Taktabstimmung wie die Master-Kategorisierungsinformationen gesendet werden.
    Nächste Master-Burst-Anforderung NMBR-Symbol Binäre Codierung
    Burst-Wiederaufnahme oder gleicher Master MR/SM 11
    Burst-Unterbrechung MB 10
    Anderer Master OM 01
    Keine anhängige Anforderung NM 00
    Tabelle 2
  • Die Zeitplanungseinheit 225 sendet „Keine anhängige Anforderung”, um anzugeben, dass die Zeitplanungseinheit nicht festgestellt hat, dass ein Master-Modul versuchen wird, einen Zugriff auf die gegebene Bus-Slave-Schicht nach dem laufenden Zugriff anzufordern. In manchen Implementierungen des Multiport-Slave-Moduls 120 kann das Multiport-Slave-Modul sich dazu entscheiden, einen Zugriff auf andere Ports zu gewähren, nachdem es eine „Keine anhängige Anforderung”-Mitteilung für einen bestimmten Port erhalten hat.
  • Die Zeitplanungseinheit 225 kann auch ein Nächster-Master-Identifikationskennzeichen in die antizipierte Burst-Information einfügen. Das Nächster-Master-Identifikationskennzeichen identifiziert den vorhergesagten Master für den nächsten Burst. Das Nächste-Master-Identifikationskennzeichen kann ein differenzielles Identifikationskennzeichen sein. Ein differenzielles Identifikationskennzeichen gibt an, ob das nächste antizipierte Master-Modul das gleiche ist oder ein anderes ist, als das gegenwärtige Master-Modul. Das differenzielle Identifikationskennzeichen kann angeben, ob das antizipierte Master-Modul sich von dem gegenwärtigen Master-Modul unterscheidet, ob das antizipierte Master-Modul eine andere Kategorisierung hat, als das gegenwärtige Master-Modul, oder ob ein bestimmter Burst des antizipierten Master-Moduls eine andere Kategorisierung hat, als der gegenwärtige Burst.
  • Die Zeitplanungseinheit 225 sendet „Anderer Master”, um anzuzeigen, dass bei einem nächsten Burst auf der gegebenen Bus-Slave-Schicht ein anderes Master-Modul die gegebene Bus-Slave-Schicht anfordern wird. Das andere Master-Modul hat die Kritikalität, die durch die Master-Kategorisierungsinformation angegeben wird. Dies ist ein Beispiel für ein differenzielles Identifikationskennzeichen, da die „Anderer Master”-Nachricht, sich auf eine Änderung in den Master-Modulen beim Übergang von einem laufenden Burst auf einen nächsten Burst bezieht.
  • Die Zeitplanungseinheit 225 sendet „Burst-Unterbrechung”, um anzuzeigen, dass die Zeitplanungseinheit eine Unterbrechung des laufenden Bursts verlangt, um den nächsten angeforderten Master-Burst so schnell wie möglich einzufügen.
  • Die Zeitplanungseinheit 225 sendet „Burst-Wiederaufnahme oder gleicher Master”, um anzuzeigen, dass bei dem nächsten Burst auf der gegebenen Bus-Slave-Schicht das Master-Modul, das auf die Schicht zugreifen wird, die durch die Master-Kategorisierungsinformation angegebene Kritikalität hat, und dass dieses Master-Modul gegebenenfalls das Master-Modul mit dem zuletzt unterbrochenen Burst mit dieser Kritikalität sein wird, oder das gegenwärtige oder das vorherige Master-Modul, das auf die Bus-Slave-Schicht mit dieser Kritikalität zugreift. In manchen Implementierungen verwendet die Zeitplanungseinheit 225 unterschiedliche binäre Codierungen für „Burst-Wiederaufnahme” und „gleicher Master”, z. B., wenn die Zeitplanungseinheit 225 einen unterbrochenen Burst mit einer gewissen Kritikalität nicht wiederaufnimmt, bevor ein neuer unterbrechbarer Burst mit der gleichen Kritikalität Initiiert wird.
  • Wenn die Zeitplanungseinheit 225 „Burst-Wiederaufnahme oder gleicher Master” ausgibt, nachdem zumindest eine Burst-Unterbrechung aufgetreten ist und kein Burst mit einer geringeren Kritikalität als der laufende Burst nach der Burst-Unterbrechung initiiert wurde, dann wird die Zeitplanungseinheit 225 die Wiederaufnahme des unterbrochenen Bursts am Ende des laufenden Bursts planen. Andererseits stellt das Multiport-Slave-Modul 120 fest, ob der Master auf Basis seiner internen Optimierungsbedingungen und der Master-Kategorisierungsinformation auszuwählen ist.
  • Die Zeitplanungseinheit 225 wird höchstwahrscheinlich Bursts unterbrechen, wenn die Zeitplanungseinheit 225 Schwierigkeiten hat, die Master-Datenfluss-Zeitablaufsanforderungen einzuhalten, z. B. wenn eine Bus-Slave-Schicht mit langen Hintergrundbursts beschäftigt ist und ein bestimmtes Master-Modul eine ausreichend hohe Bandbreitenanforderung hat, die nicht länger durch ledigliches Einfügen seiner Bursts zwischen andere Master-Modul-Bursts befriedigt werden kann. Dies kann z. B. passieren, wenn die Vermittlung der Bus-Slave-Schicht parallel ausgeführt wird, so dass aufeinander folgende Bursts von dem gleichen Master-Modul zu nicht aufeinander folgenden Bursts auf der Bus-Slave-Schicht führen, aufgrund der mangelnden Sichtbarkeit der Vermittlungseinheit auf dem nächsten Burst von dem gleichen Master-Modul.
  • Durch das Senden von Zeitplanungsinformationen von der Zeitplanungseinheit 225 an das Multiport-Slave-Modul 120 kann die Zeitplanungseinheit 225 und das Multiport-Slave-Modul 120 absichtlich Bursts unterbrechen, um die verfügbare Bandbreite auf einer Bus-Slave-Schicht zu erhöhen. Wenn z. B. das Multiport-Slave-Modul 120 eine hohe Zugriffsverzögerung hat (z. B. aufgrund der Parallelverarbeitung), kann die verfügbare Bandbreite auf einer Bus-Slave-Schicht erhöht werden, indem eine Latenzverbergung durch eine paarweises Verschränken (interleaving) von Bursts durchgeführt wird, die im Einzelnen im Zusammenhang mit 5 und 6 beschrieben wird.
  • Das Multiport-Slave-Modul 120 hat nach dem Empfang der Zeitplanungsinformationen alle verfügbaren Informationen über zukünftige Entscheidungen des Zeitplanungsmoduls und die Kritikalität bevorstehender Bursts. Unter Verwendung dieser Informationen und der gegenwärtig anhängigen Anforderungen kann das Multiport-Slave-Modul 120 während der Vermittlung mit dem Zeitplanungsmodul 225 zusammenarbeiten, um die Reihenfolge festzulegen, in der ein Zugriff auf seine Ports gewährt wird und um Burst-Unterbrechungen in effizienter Weise zuzulassen, wenn dies durch die Zeitplanungseinheit 225 verlangt wird.
  • Manche Befehle oder Burst können nicht unterbrochen werden, sobald sie an der physikalischen Multiport-Slave-Schnittstelle 290 initiiert wurden. Das Multiport-Slave-Modul 120 kann Informationen senden, um dem Zeitplanungsmodul 225 anzuzeigen, wann ein gegenwärtiger Burst der Bus-Slave-Schicht ohne oder nur mit minimalen Auswirkungen unterbrochen werden kann. Das Multiport-Slave-Modul 120 kann, nachdem ein Burst unterbrochen wurde, Informationen senden, wenn eine nächste Master-Burst-Wiederaufnahmeanforderung für den zugehörigen Befehl festgelegt wurde, der an der physikalischen Multiport-Slave-Schnittstelle 290 gestartet werden soll. Zum Beispiel kann das Multiport-Slave-Modul 120 diese beiden Arten an Informationen senden, indem eine NMBA-Nachricht an die Zeitplanungseinheit 225 für eine bestimmte Bus-Slave-Schicht ausgegeben wird.
  • In manchen Implementierungen kann das Multiport-Slave-Modul 120 die NMBA-Nachricht in jedem geeigneten Zeitschlitz an die Zeitplanungseinheit 225 senden, selbst wenn keine Nächster-Master-Burst-Unterbrechungsanforderung zuvor gestellt wurde. In manchen Implementierungen sendet das Multiport-Slave-Modul 120 die NMBA-Nachricht an die Zeitplanungseinheit nur, nachdem eine Nächster-Master-Unterbrechungsanforderung empfangen wurde.
  • Die Multiport-Slave-Vermittlungseinheit 280 kann den gegenwärtigen Master-Burst unterbrechen, um einen Master-Burst mit einer höheren Priorität zu initiieren, nachdem die Nächster-Master-Burst-Unterbrechungsanforderung empfangen wurde, und eine Nächster-Master-Burst-Unterbrechungsbestätigung gesendet wurde. In manchen Implementierungen kann die Multiport-Slave-Vermittlungseinheit 280 Bursts nur unterbrechen, nachdem die NMBA gesendet wurde. Wenn das Multiport-Slave-Modul 120 sich darauf festgelegt hat, eine Burst-Wiederaufnahme zu initiieren, indem eine Nächster-Master-Burst-Unterbrechungsbestätigungsantwort auf die Nächster-Master-Burst-Wiederaufnahmeanforderung gesendet hat, initiiert das Multiport-Slave-Modul 120 die Wiederaufnahmeanweisung auf der physikalischen Multiport-Slave-Schnittstelle 290 und die Zeitplanungseinheit 225 instruiert die Multiport-Slave-Vermittlungseinheit 280, den unterbrochenen Burst nach dem Ende des laufenden Bursts auf der Bus-Slave-Schicht wiederaufzunehmen.
  • Zeitplanungsinformationsfluss
  • 3 ist ein schematisches Diagramm, das den Fluss der Zeitplanungsinformation zwischen einer Zeitplanungseinheit 225 und einem Multiport-Slave-Modul 120 illustriert. NMCCx ist die nächste Master-Kritikalitätsklasse für Port x des Multiport-Slaves. NMBRx ist die nächste Master-Burst-Anforderung an Port x des Multiport-Slaves. NMBAx ist die nächste Master-Burst-Unterbrechungsbestätigung vom Port x des Multiport-Slaves. NMCCy ist die nächste Master-Kritikalitätsklasse an Port y des Multiport-Slaves. NMBRy ist die nächste Master-Burst-Anforderung an Port y des Multiport-Slaves. NMBAy ist die nächste Master-Burst-Unterbrechungsbestätigung vom Port y des Multiport-Slaves. NMCCz ist die nächste Master-Kritikalitätsklasse an Port z des Multiport-Slaves. NMBRz ist die nächste Master-Burst-Anforderung an Port z des Multiport-Slaves. NMBAz ist die nächste Master-Burst-Unterbrechungsbestätigung vom Port z des Multiport-Slaves.
  • Beispielhafte Zeitablaufdiagramme
  • 46 sind Zeitablaufdiagramme von beispielhaften Szenarien, die die Kommunikation der Zeitplanungsinformation zwischen einer Systembus-Zeitplanungseinheit (z. B. die Zeitplanungseinheit 225 aus 2) und einem Multiport-Slave-Modul (z. B. das Multiport-Slave-Modul 120 aus 2) illustriert.
  • Die Zeitablaufdiagramme zeigen ein Taktsignal, Signale für eine erste Slave-Busschicht x, Signale für eine zweite Slave-Busschicht y und eine physikalische Multiport-Schnittstelle. Zugriffsanforderungen von Master-Modulen sind als Port x-Anforderung und Port y-Anforderung dargestellt. Diese Anforderungen können Adress- und Steuerinformationen für die x- und y-Slave-Busschichten beinhalten. Die Länge eines jeden angeforderten Bursts ist z. B. in dem ersten Taktzyklus der Zugriffsanforderung codiert.
  • Die dargestellten Zugriffe werden parallel ausgeführt bzw. durch eine Pipeline geführt, so dass die Adress- und Steuerinformationen eines Bursts mit der Nummer n + 1, die als Port x-Anforderung oder Port y-Anforderung in Erscheinung treten, im gleichen Taktzyklus berücksichtigt werden, indem die entsprechenden Daten als Port x-Daten oder Port y-Daten eines Bursts mit der Nummer n in Erscheinung treten, nachdem die zugehörigen entsprechenden Port x-Bereit-Signale oder Port y-Bereit-Signale durch das Multiport-Slave-Modul ausgegeben werden. Port x-Daten und Port y-Daten sind bidirektionale Datenbusse.
  • NMCCx und NMCCy sind die nächsten Burst-Master-Kritikalitätsklassensignale. NMBRx und NMBRy sind die nächsten Master-Burst-Anforderungssignale. NMBAx und NMBAy sind die nächsten Master-Burst-Unterbrechungsbestätigungssignale.
  • Das beispielhafte Multiport-Slave-Modul in diesem Zeitablaufdiagramm hat eine physikalische Einzelkanalschnittstelle, so dass eine Datenübertragung für eine einzelne Adresse in einem Taktzyklus durchgeführt wird. Das Multiport-Slave-Modul initiiert eine viertaktige Burst-Übertragung auf der physikalischen Schnittstelle durch Ausgabe einer einzigen Anweisung auf dem Befehlsbus der physikalischen Schnittstelle. Die Burst-Übertragung beginnt dann ein paar Taktzyklen, nachdem der Befehl ausgegeben wurde.
  • Die Anforderungen und Zugriffe von drei konkurrierenden Master-Modulen A, B und C sind dargestellt. Der Fortschritt eines gegebenen Zugriffs an dem Multiport-Slave-Modul wird durch ein eindeutiges Kennzeichen dargestellt, das durch einen ersten Buchstaben, der das anfordernde Master-Modul A, B oder C angibt, gefolgt von einer Übertragungsnummer für den Burst, die einen bestimmten Takt des Bursts angibt, gebildet wird. B4 steht z. B. für den vierten Takt eines Bursts vom Master-Modul B.
  • Für Illustrationszwecke wurden die Zeitachsen der Diagramme in Zeitschlitze unterteilt, die den Datenbursts an der physikalischen Multiport-Slave-Schnittstelle entsprechen. Diese Zeitschlitze sind mit 400 bis 406 in 4, 500 bis 506 in 5 und 600 bis 606 in 6 bezeichnet.
  • Beispielhaftes Zeitablaufdiagramm – keine interne Pufferung
  • 4 ist ein Zeitdiagramm eines beispielhaften Szenarios einer Vermittlung und eines Datenflusses mit einem monokanaligen Multiport-Slave-Modul, das keine interne Datenpufferung verwendet. Das Beispiel illustriert eine nicht autoritative Burst-Unterbrechung und -Wiederaufnahme.
  • Da das Multiport-Slave-Modul keine interne Datenpufferung in diesem Beispielszenario verwendet, wird hier die Übertragung an der physikalischen Schnittstelle des Datenbusses gleichzeitig und in Kombination innerhalb eines einzelnen Taktzyklusses über den Port x-Daten oder Port y-Daten ausgeführt, abhängig davon, welchem Port der Zugriff durch die Multiport-Slave-Vermittlungseinheit gewährt wurde. Die Zugriffsverzögerung an der physikalischen Schnittstelle zwischen dem Empfang eines Befehls auf dem Befehlsbus und dem zugehörigen ersten Burst-Takt auf dem Datenbus ist kürzer als die Dauer des Bursts. Die Richtung der Übertragung kann vom Slave zum Master oder vom Master zum Slave erfolgen.
  • Während des Zeitschlitzes 400 stellt das Master-Modul A eine Anforderung A0 am Port y-Anforderung. Während diese Anforderung anhängig ist, kommt eine neue Anforderung B0 von dem Master-Modul B über Port x-Anforderung an. Die B0-Anforderung von dem Master-Modul B wurde von der Systembus-Zeitplanungseinheit unmittelbar an den Slave-Port x weitergeleitet und es ist deshalb keine Antizipation der Anforderung auf den NMBRx- und NMCCx-Signalen vor der Ausgabe der B0-Anforderung auf Port x-Anforderung verfügbar. Der NMCCx-Wert von LSU zeigt an, dass die Anforderung von einem latenzempfindlichen Master mit unbegrenztem Durchsatz stammt und der NMBRx-Wert OM zeigt an, dass dieses Master-Modul (B) nicht das gleiche ist, wie das vorherige Master-Modul, das einen Zugriff mit einer LSU-Kritikalität durchgeführt hat.
  • Das Master-Modul A hat eine Kritikalität von BSL (bandbreitenempfindlich mit begrenztem Durchsatz), wie dies auf dem NMCCy-Eingang während des ersten Taktzyklusses des Zeitschlitzes 400 gezeigt ist. In diesem Beispielszenario nimmt das System für BSL eine niedrigere Priorität an, als für LSU. Die Multiport-Slave-Vermittlungseinheit kann daher dem Master-Modul B den Zugriff so schnell wie möglich gewähren, d. h. zum nächsten zur Verfügung stehenden Befehlsschlitz, der während des Zeitschlitzes 401 auftritt, in dem B0 auf dem Befehlsbus dargestellt ist und die physikalische Schnittstelle A0–A4 Datenbursts überträgt. Die Signale Port x-Bereit und Port y-Bereit nehmen jedes Mal hohe Werte an, wenn ein gültiger Datentakt eines Bursts auf den jeweiligen x- und y-Ports übertragen wird.
  • Zu Beginn des Zeitschlitzes 402 empfängt der Systembus eine weitere Master-Modul-Anforderung von einem bandbreitenkritischen Master-Modul, wie dies durch den BC-Wert auf dem NMCCy-Multiport-Slave-Eingang angegeben wird. Die Anforderung wird auf den nächsten Zugriff auf den y-Port terminiert. Um beim Erreichen der Bandbreitenbedingungen für das Master-Modul C (die in die Systembus-Zeitplanungseinheit einprogrammiert sein kann) zu helfen, bestimmt die Systemzeitplanungseinheit, dass der gegenwärtige lange Burst vom Master-Modul A auf dem y-Port unterbrochen werden sollte, um das Master-Modul C seinen Burst so schnell wie möglich einfügen zu lassen.
  • In diesem Beispielszenario wird dem bandbreitenkritischen Master-Modul eine höhere Priorität gegeben, wie dem gegenwärtigen latenzempfindlichen Master-Modul B. Zu Beginn des Zeitschlitzes 402 bestimmt die Multiport-Slave-Vermittlungseinheit daher, dem Ablauf des y-Ports trotz seiner geringen Kritikalität (BSL-Master-Modul A) den Vorrang zu geben. Die Multiport-Slave-Vermittlungseinheit favorisiert das Ablaufen des y-Ports, um es dem vorhergesehenen bandbreitenkritischen Master-Modul C schneller zu erlauben, den laufenden Burst zu unterbrechen. Da die A4-Anforderung auf Port y-Anforderung bereits für eine Übertragung festgelegt wurde, wird eine Anweisung für einen viertaktigen Datenburst auf dem Befehlsbus der physikalischen Schnittstelle gestartet.
  • Im Zeitschlitz 403 werden die Datenübertragungen für die A4–A7-Burst-Takte durchgeführt. Sowie die Adressphase für den A7-Burst-Takt begonnen hat, gibt die Multiport-Slave-Vermittlungseinheit die nächste Master-Burst-Unterbrechungsbestätigung NMBAy aus, um anzuzeigen, dass die Systembus-Zeitplanungseinheit den laufenden Burst des Master-Moduls A im folgenden Buszyklus unterbrechen soll. Während des letzten Taktzyklusses vom Zeitschlitz 403 ermöglicht die Systembusvermittlungseinheit die Ansteuerung der ersten Adress- und Steuerdaten (C0) des von dem Master-Modul C angeforderten Bursts auf dem Port y-Anforderung.
  • Aufgrund der Zugriffsverzögerung an der physikalischen Schnittstelle gab es keine weiteren möglicherweise übertragenen Daten-Burst-Takte auf dem y-Port nach dem A7-Datentakt bis zu dem C0-Datentakt, so dass ein Zugriff für das wartende Master-Modul B am Port x während des Zeitschlitzes 404 gewährt wird. Sobald die C0-Anforderung auf Port y-Anforderung am Ende des Zeitschlitzes 403 abgetastet wurde, werden die NMCCy- und NMBRy-Signale durch die Systembus-Zeitplanungseinheit mit der nächsten bestimmten Burstfluss-Anforderung aktualisiert, während die C0-Anweisung für den Start auf dem Befehlsbus der physikalischen Schnittstelle vorbereitet wird.
  • Am Ende des Zeitschlitzes 404 bestimmt die Multiport-Slave-Vermittlungseinheit einen nächsten Befehl, der auf der physikalischen Schnittstelle gestartet werden soll. Da es auf Nächste-Master-Burst-Anforderung auf dem x-Port keinen NM-Wert (keine anhängige Anforderung) gibt, und keine weiteren Anweisungen zum Starten für irgendwelche gegenwärtig laufenden Anforderungen auf dem x-Port gibt, bestimmt die Multiport-Vermittlungseinheit, den y-Port-Zugriff für den nächsten Zeitschlitz zu gewähren.
  • Da der gegenwärtige Burst für das Master-Modul C keine weiteren Anweisungen braucht, die auf der physikalischen Schnittstelle gestartet werden, und NMCCy und NMBRy eine nächste Burst-Wiederaufnahme anzeigen, gibt das Multiport-Slave-Modul somit zu Beginn des Zeitschlitzes 405 die Nächste-Master-Burst-Unterbrechungsbestätigung aus. Dies legt sowohl die Systembus-Zeitplanungseinheit und die Multiport-Slave-Vermittlungseinheit für die Burst-Wiederaufnahme fest. Das Multiport-Slave-Modul bestimmt den Zustand des unterbrochenen Bursts von Master-Modul A, um festzustellen, wo der Burst reinitiiert werden muss. Das Multiport-Slave-Modul startet den A8-Befehl auf dem Befehlsbus der physikalischen Schnittstelle. Die Systembus-Zeitplanungseinheit nimmt dann den unterbrochenen Burst des Master-Moduls A unmittelbar nach dem Ende des gegenwärtigen Bursts des Master-Moduls C wieder auf.
  • Am Ende des Zeitschlitzes 405 wird die Burst-Wiederaufnahme durch die A8-Anforderung bestätigt, die an dem Port y-Anforderungseingang auftaucht, so dass der nächste Befehl A12 für den Burst des Master-Moduls A an der physikalischen Schnittstelle während des Zeitschlitzes 406 gestartet werden kann. Unmittelbar nach der A8-Anforderung werden die nächste Master-Burst-Anforderung NMBRy und die nächste Burst-Master-Kritikalität NMCCy aktualisiert, um die nächste erwartete Burst-Charakteristik darzustellen (in diesem Beispiel das gleiche Master-Modul A).
  • Beispielhaftes Zeitablaufdiagramm – Interne Pufferung und verschränkte Lese-Bursts
  • 5 ist ein Zeitablaufdiagramm eines Beispielszenarios für eine Vermittlung und eine Datenflusssequenz mit einem monokanaligen Multiport-Slave-Modul, das eine interne Lese-Datenpufferung verwendet. Das Beispiel illustriert eine nicht-autoritative Burst-Unterbrechung und -Wiederaufnahme.
  • Da das Multiport-Slave-Modul eine interne Lese-Datenpufferung verwendet, sind die Übertragungen an der physikalischen Schnittstelle Datenbus in manchen Fällen nicht simultan und kombinatorisch mit dem gleichen Taktzyklus über den Port x-Daten oder den Port y-Daten, sondern werden verzögert, bis die Multiport-Slave-Vermittlungseinheit den Zugriff auf den geeigneten Port gewährt. Die Zugriffsverzögerung an der physikalischen Schnittstelle zwischen dem Start einer Anweisung auf dem Befehlsbus und dem zugehörigen ersten Burst-Takt auf dem Datenbus ist größer als die Dauer des Bursts. Das Master-Modul A führt lange Lese-Bursts aus, die anderen Zugriffe können Lesezugriffe oder Schreibzugriffe sein.
  • Wenn zwei oder mehr Master-Module jeweils eine anhängige Anforderung für einen neuen Burst an der Multiport-Slave-Vermittlungseinheit haben, beginnt die Systemzeitplanungseinheit, die Bursts von verschiedenen Master-Modulen paarweise miteinander zu verschränken (interleaving), um dazu beizutragen, die mittlere Zugriffslatenzzeit, wie sie an den zugehörigen Slave-Ports sichtbar wird, zu reduzieren. Dies ist z. B. nützlich, wenn die Verschränkung der Bursts keine Verschlechterung der Zugriffszeit zur Folge hat. Zum Beispiel bei einer Multiport-Steuereinheit können die beiden Master-Module so programmiert sein, dass sie unterschiedliche Speicherbänke verwenden.
  • Während des Zeitschlitzes 500 stellt das Master-Modul A eine erste Anforderung A0 am Port y-Anforderung, die durch das Multiport-Slave-Modul durch Ausgabe des Port y-Bereit-Signals bestätigt wird. Die erste Anforderung wird am gleichen Port durch eine neue Anforderung C0 vom Master-Modul C gefolgt. Die spätere C0-Anforderung bleibt solange am Slave-y-Port anhängig, bis die frühere A0-Anforderung in die Datenphase eintritt. Einen Taktzyklus nachdem die beiden Anforderungen zusammen mit ihren zugehörigen NMBAy- und NMCCy-Werten empfangen wurden, aktualisiert die Zeitplanungseinheit die nächste Burst-Master-Kritikalitätsklasse und nächste Master-Burst-Anforderung, um die nächsten eingehenden Burst-Eigenschaften darzustellen.
  • Die System-Zeitplanungseinheit hat somit eine autoritative Burst-Unterbrechung der A0-Anforderung zugunsten der C0-Anforderung durchgeführt. Die System-Zeitplanungseinheit hat nicht gewartet, bis das Multiport-Slave-Modul die NMBAy-Ausgabe angelegt hat. Die System-Zeitplanungseinheit hat bereits verlangt, dass der unterbrochene Burst wiederaufgenommen wird, wie dies durch den MR-Wert angegeben wird, der auf dem nächsten Master-Burst-Anforderungs-NMBRy-Eingang angesteuert wird, der einen nächsten Master-Burst-Wiederaufnahmeanforderungswert angibt, vorausgesetzt, dass zuvor ein Burst mit der gleichen BSU-Kritikalität unterbrochen wurde.
  • Zu Beginn des Zeitschlitzes 501 bereitet das Multiport-Slave-Modul eine Anweisung vor, die an der physikalischen Schnittstelle während des Zeitschlitzes 502 für einen Transfer während des Zeitschlitzes 503 gestartet werden soll. Da keine andere Anforderung mit höherer Priorität läuft oder durch die nächste Master-Burst-Anforderung und die nächste Burst-Master-Kritikalitätsklasseneingabe vorhergesagt wird, wird die C0-Anforderung an den Befehlsbus übertragen. Die Befehls-Daten-Latenzzeit für die C0–C3 Bursts überlappen daher mit der Latenzzeit für die A0–A3 Bursts während der Zeitschlitze 501 und 502, obwohl beide über die gleichen Ports, Port y, ausgegeben wurden. Während des Zeitschlitzes 501 wird eine neue Anforderung vom Master-Modul B für den Port x empfangen, wobei die Anforderung latenzkritisch ist.
  • Während des Zeitschlitzes 502 werden die Burst-Daten A0 an das Master-Modul A über den Port y-Daten übertragen und die verbleibenden A1- bis A3-Datentakte werden für eine spätere Übertragung gepuffert. Wenn die latenzkritische Anfrage von Master-Modul B nicht empfangen worden wäre, würde das Multiport-Slave-Modul das NMBAy-Signal ausgeben, wie dies durch den gestrichelten Impuls dargestellt ist. Die Bestätigung der nächsten Burst-Wiederaufnahmeanforderung MR vom Master-Modul A wird jedoch aufgrund der latenzkritischen Anforderung vom Master-Modul B verschoben. Die Anforderung B0 wird daher an den Befehlsbus übertragen.
  • Zu Beginn des Zeitschlitzes 503 wird die Wiederaufnahme des nächsten Bursts für das Master-Modul A erfolgreich zwischen der Systemplanungszeiteinheit und der Multiport-Slave-Vermittlungseinheit durch Ausgabe des NMBAy-Pulses festgelegt, der den MR-Wert auf NMBAy bestätigt. Danach wird der interne Multiport-Slave-Zustand des Master-Moduls A-Bursts abgerufen und der Befehl für die folgenden ungelesenen Daten von dem A4-Burst-Takt wird auf den Befehlsbus gelegt.
  • Während des Zeitschlitzes 504 wird der Master-Modul C-Burst über den Datenbus zu Ende übertragen. Die zuvor gepufferten Daten A1–A3 können über den Port y-Daten gelesen werden, während die Master-Modul B-Burst-Daten B0–B3 über den Port x-Daten übertragen werden. Der Port y-Datenübertragung wartet am Ende des Zeitschlitzes 504 um einen Taktzyklus, da die Einfügung des Master-Modul B-Bursts den Master-Modul A-Burst mit seiner Wiederaufnahme an der physikalischen Schnittstelle verzögert hat. Eine Burst-Verschränkung mit einem Master-Modul A-Schreib-Burst anstelle des Master-Modul A-Lese-Bursts, die in 5 dargestellt ist, kann, muss aber nicht, eine ähnliche autoritative Burst-Unterbrechung verwenden.
  • Beispielhaftes Zeitablaufdiagramm – Interne Pufferung und Schreib-Burst-Verschränkung
  • 6 ist ein Zeitablaufdiagramm eines Beispielszenarios der Vermittlung und der Datenflusssequenz mit einem monokanaligen Multiport-Slave-Modul, das eine interne Schreibdatenpufferung verwendet. Das Beispiel ist ähnlich zu dem aus 5, mit der Ausnahme, dass der Master-Modul A-Burst ein Schreib-Burst ist und die System-Zeitplanungseinheit keine autoritative Burst-Unterbrechung verwendet.
  • In den Zeitschlitzen 600 und 601 werden vier Schreibdatentakte A0–A3 in dem Multiport-Slave gepuffert, bevor dem Master-Modul C-Unterbrechungsburst ein Zugriff auf den Port y-Anforderungsbus durch einen Nächster-Master-Burst-Unterbrechungsbestätigungsimpuls NMBAy gewährt wird, der während der A3-Adressphase am Ende des Zeitschlitzes 600 ausgegeben wird. An der physikalischen Multiport-Schnittstelle überlappt die Befehls-Daten-Latenzzeit für die C0–C3 Bursts mit der Latenzzeit für die A0–A3 Bursts teilweise während der Zeitschlitze 601 und 602, obwohl beide über den gleichen Slave-Port, Port y, ausgegeben wurden.
  • Prozess zur Verwendung der Zeitplanungsinformationen
  • 7 ist ein Flussdiagramm eines Beispielprozesses 700, der durch ein Multiport-Slave-Modul zur Verwendung der Zeitplanungsinformationen ausgeführt wird. Der Beispielprozess 700 illustriert eine Art, mit der das Multiport-Slave-Modul zwischen seinen Ports unter Verwendung der Zeitplanungsinformationen vermitteln kann. Der beispielhafte Prozess 700 wird durch ein Multiport-Slave-Modul ausgeführt, das keine Datenpufferung verwendet und die Zeitplanungsinformationen zur Unterbrechung von Bursts verwendet.
  • Bei Ausführung des Prozesses 700 versuchen eine System-Zeitplanungseinheit und das Multiport-Slave-Modul ein Optimierungsziel zu erreichen, um Zeitanforderungen der Master-Module ohne Verlust von Datenzyklen und ohne Befehle widerrufen zu müssen, zu erfüllen. Das Unterbrechen von Bursts und die damit verbundene Möglichkeit, die Größe von Teilen der Bursts durch die Ports gemäß der Anforderungen anzupassen, unterstützt das Multiport-Slave-Modul beim Erreichen der Optimierungsziele. Das Beispielszenario aus 4 illustriert einige Wege durch den Prozess 700. In der Diskussion des Prozesses 700 wird auf die 4 Bezug genommen, um Beispiele der Schritte des Prozesses 700 anzugeben.
  • Im Schritt 701 empfängt das Multiport-Slave-Modul eine neue nächste Master-Burst-Anforderung auf einem Slave-Port. Die nächste Master-Burst-Anforderung enthält nicht den Wert für keine anhängige Anforderung. Die Schritte 710717 sind die Schritte, die ausgeführt werden, wenn die nächste Master-Burst-Anforderung einen Wert hat, der eine nächste Burst-Unterbrechungsanforderung angibt. Die Schritte 720724 sind die Schritte, die ausgeführt werden, wenn die nächste Master-Burst-Anforderung einen Wert hat, der eine nächste Burst-Wiederaufnahme angibt. Die Schritte 730731 sind die Schritte, die ausgeführt werden, wenn eine alte Burst-Anforderung an dem Port vorliegt.
  • Im Schritt 710 bestimmt das Multiport-Slave-Modul, ob das nächste Master-Burst-Anforderungssignal angibt, dass die Zeitplanungseinheit eine Anweisung gibt, dass der laufende Burst durch einen Burst-Unterbrechungswert unterbrochen werden muss. Wenn das der Fall ist, bestimmt das Multiport-Slave-Modul im Schritt 711, ob ein Befehl für einen laufenden Zugriff bereits gestartet wurde, was bedeutet, dass es bereits einen gestatteten Zugriff gibt, der zuerst ablaufen muss. 4 zeigt z. B. eine derartige anhängige alte Zugriffsanforderung. Am Ende des Zeitschlitzes 401, wenn A4 am Port y-Anforderung durch Port y-Bereit bestätigt wurde, das am y-Port ausgegeben wurde, und auf seine Datentransferphase wartet, wurde der zugehörige Befehl noch nicht an der physikalischen Schnittstelle gestartet, als die nächste Burst-Unterbrechungsanforderung auftrat. Die Burst-Unterbrechungsanforderung ist als MB am NMBRy-Eingang zu Beginn des Zeitschlitzes 402 dargestellt.
  • Im Schritt 712 wartet das Multiport-Slave-Modul auf einen verfügbaren Befehlsschlitz, für den der Port Vorrang hat. Wenn die Multiport-Slave-Vermittlungseinheit dem Port den Zugriff auf den Befehlsbus gewährt, kann der Befehl gestartet werden. Die Multiport-Slave-Vermittlungseinheit entscheidet, dem Port den Zugriff zu gewähren, auf Basis der Kritikalität der anhängigen alten Anforderung, die vom Beginn des Bursts an dem Slave-Port her bekannt ist. In 4 gibt z. B. der BSL-Wert auf dem NMCCy-Signal zu Beginn des Zeitschlitzes 400 die Kritikalität dieses Bursts an.
  • Im Schritt 713 wird der Befehl auf dem Befehlsbus der physikalischen Schnittstelle gestartet. Der Befehl soll einen kompletten Datenburst auf der physikalischen Schnittstelle durchführen. Im Schritt 714 wartet der Multiport-Slave auf die Zugriffsanforderung für die letzten physikalischen Schnittstellen Burst-Daten. Die Adresse des letzten verfügbaren Datentransfers für den zu unterbrechenden Burst ist der Burst-Takt, nachdem die Unterbrechung auftreten soll, und der Multiport-Slave wartet auf die Adressphase dieses Burst-Takts.
  • Im Schritt 715 gibt der Multiport-Slave eine nächste Master-Burst-Unterbrechungsbestätigung aus, um die Burst-Unterbrechung zu ermöglichen. Der Multiport-Slave gibt das NMBA aus, sowie die Adressphase des letzten Takts des unterbrochenen Bursts erreicht wird.
  • Im Schritt 716 empfängt der Multiport-Slave die erste Zugriffsanforderung des unterbrechenden Bursts auf der Slave-Busschicht des Ports. Die Systemvermittlungseinheit leitet den unterbrechenden Burst durch die Slave-Busschicht zu dem Port und der Multiport-Slave kann die alten Anforderungssignale an dem Port decodieren.
  • Im Schritt 717 wartet der Multiport-Slave auf einen verfügbaren Zeitschlitz, für den der Port Vorrang hat. Die anhängige alte Anforderung vom Unterbrechungs-Burst-Master wartet darauf, den Zugriff auf den Befehlsbus durch die Multiport-Vermittlungseinheit gewährt zu bekommen. Im Schritt 740 startet der Multiport-Slave einen Befehl auf dem Befehlsbus für den geeigneten Datenburst auf der physikalischen Schnittstelle. Der Datenburst entspricht den ersten Burst-Takten des unterbrechenden Bursts.
  • Wieder Bezug nehmend auf Schritt 710, wenn der laufende Burst nicht unterbrochen wird, stellt der Multiport-Slave im Schritt 720 fest, ob der nächste Master-Burst-Anforderungswert eine nächste Master-Burst-Wiederaufnahmeanforderung angibt. Im Schritt 721 wartet der Multiport-Slave auf einen verfügbaren Befehlsschlitz, für den der Port Vorrang hat. Der Port wartet darauf, einen Befehlsschlitz auf dem Befehlsbus von dem Multiport-Slave-Vermittler gewährt zu bekommen.
  • Im Schritt 722 gibt der Multiport-Slave die nächste Master-Burst-Unterbrechungsbestätigung aus, die angibt, dass er bereit ist, den Burst-Wiederaufnahmebefehl auf der physikalischen Schnittstelle zu starten. Der Multiport-Slave versucht, sowohl die System-Zeitplanungseinheit und die Multiport-Slave-Vermittlungseinheit auf die Burst-Wiederaufnahme festzulegen.
  • Im Schritt 723 bestimmt der Multiport-Slave, ob die Festlegung auf die Burst-Wiederaufnahme erfolgreich war. Die Festlegung kann scheitern, wenn das nächste Master-Burst-Anforderungssignal nicht länger eine nächste Burst-Wiederaufnahme vorhersagt, wie dies durch die Systemvermittlungseinheit angegeben wird, in welchem Fall die Wiederaufnahme für diesmal aufgehoben wird.
  • Im Schritt 724 ruft der Multiport-Slave den internen Zustand des zuvor unterbrochenen Bursts ab, der angibt, wo der unterbrochene Burst stehengeblieben ist. Im Schritt 740 startet der Multiport-Slave einen Befehl auf dem Befehlsbus für den geeigneten Datenburst auf der physikalischen Schnittstelle. Der Datenburst entspricht den Burst-Takten des Bursts, der wiederaufgenommen wird.
  • Wieder Bezug nehmend auf Schritt 720, wenn die nächste Master-Burst-Anforderung keinen Wert hat, der eine nächste Master-Burst-Wiederaufnahmeanforderung angibt, stellt der Multiport-Slave im Schritt 730 fest, ob es eine alte Burst-Anforderung an dem Port gibt. Wenn keine alte Burst-Anforderung an dem Port wartet, dann wird dieses Mal kein Befehl gestartet.
  • Wenn eine alte Burst-Anforderung anhängig ist, dann wartet der Multiport-Slave im Schritt 731 auf einen verfügbaren Befehlsschlitz, für den der Port Vorrang hat. Die Multiport-Slave-Vermittlungseinheit gewährt dem Port einen Zugriff auf den Befehlsbus. Die Multiport-Slave-Vermittlungseinheit kann auf Basis von einem oder mehreren von verschiedenen Faktoren darüber entscheiden, ob dem Port ein Zugriff gewährt wird. Zum Beispiel gewährt die Multiport-Slave-Vermittlungseinheit einen Zugriff auf Basis der Kritikalität des gegenwärtig anhängigen alten Zugriffs, die am Anfang des Bursts angegeben wird. In 4 hat z. B. während des Zeitschlitzes 400 der NMCCx-Eingang einen Wert von LSU für den B0-Befehlsstart am Beginn des Zeitschlitzes 401. In einem anderen Beispiel gewährt die Multiport-Slave-Vermittlungseinheit einen Zugriff auf Basis der nächsten Master-Kritikalitätsklasse, die auf einem der NMCC-Eingänge angesteuert wird, z. B. dem NSU-Wert auf dem NMCCx-Eingang zu einer Untersuchungszeit am Beginn eines Zeitschlitzes in 4. In einem anderen Beispiel gewährt die Multiport-Slave-Vermittlungseinheit einen Zugriff auf Basis zusätzlicher intrinsischer Slave-Bedingungen.
  • Das Multiport-Slave-Modul kann auch andere Maßnahmen für andere Arten von empfangenen Zeitplanungsinformationen ergreifen, wie z. B. oben in den Tabellen 1 und 2 beschrieben. Zum Beispiel kann das Multiport-Slave-Modul zwischen verschiedenen Arten von nächster Master-Burst-Anforderung unterscheiden, wie z. B. gleicher Master und anderer Master.
  • Obgleich dieses Dokument zahlreiche spezifische Implementierungseinzelheiten enthält, sollten diese nicht als beschränkend für den Schutzumfang ausgelegt werden, sondern vielmehr als Beschreibung von Merkmalen, die konkreten Ausführungsformen zu eigen sind. Bestimmte Merkmale, die in dieser Beschreibung im Zusammenhang mit getrennten Ausführungsformen beschrieben wurden, können auch in Kombination miteinander in einer Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzigen Ausführungsform beschrieben wurden, auch in mehreren Ausführungsformen getrennt oder in jeder geeigneten Unterkombination miteinander implementiert werden. Obwohl manche Merkmale als in einer bestimmten Kombination miteinander zusammenwirkend beschrieben wurden und sogar anfänglich als solche beansprucht wurden, können ein oder mehrere Merkmale aus einer beanspruchten Kombination in manchen Fällen aus der Kombination herausgenommen werden und die beanspruchte Kombination kann auf eine Unterkombination oder eine Variation einer Unterkombination gerichtet werden.

Claims (20)

  1. System, umfassend: eine Vielzahl von Master-Modulen; ein Multiport-Slave-Modul, das eine Vielzahl von Slave-Ports und eine Multiport-Slave-Vermittlungseinheit enthält, wobei die Multiport-Slave-Vermittlungseinheit dazu eingerichtet ist, zwischen den Slave-Ports zu vermitteln; einen Systembus, der die Master-Module und das Multiport-Slave-Modul miteinander verbindet; und eine Zeitplanungseinheit, die dazu eingerichtet ist, einem Sieger-Master-Modul einen Buszugriff zu gewähren, um einen Datenburst zwischen dem Sieger-Master-Modul und dem Multiport-Slave-Modul zu übertragen; wobei die Zeitplanungseinheit dazu eingerichtet ist, Zeitplanungsinformationen an die Multiport-Slave-Vermittlungseinheit zu liefern, wobei die Zeitplanungsinformationen eine Master-Kategorisierungsinformation und antizipierte Burst-Informationen enthalten, wobei die antizipierten Burst-Informationen auf einer Feststellung der Zeitplanungseinheit über einen antizipierten Buszugriff durch ein antizipiertes Master-Modul auf das Multiport-Slave-Modul beruhen, und wobei die Master-Kategorisierungsinformationen den antizipierten Master beschreiben.
  2. System nach Anspruch 1, wobei die Multiport-Slave-Vermittlungseinheit dazu eingerichtet ist, die Zeitplanungsinformationen zu empfangen und die Zeitplanungsinformationen bei der Vermittlung zwischen den Slave-Ports zu verwenden.
  3. System nach Anspruch 1, wobei das Multiport-Slave-Modul ein Pipeline-Speichermodul ist.
  4. System nach Anspruch 1, wobei die Master-Kategorisierungsinformationen auf Bandbreiten- und/oder Latenzanforderungen der Master-Module basieren, und wobei die Multiport-Slave-Vermittlungseinheit und die Zeitplanungseinheit dazu eingerichtet sind, Buszugriffe unter Verwendung der Master-Kategorisierungsinformationen zu priorisieren.
  5. System nach Anspruch 1, wobei die Zeitplanungsinformationen von der Zeitplanungseinheit eine Angabe über eine erforderliche Unterbrechung eines laufenden Bursts enthalten.
  6. System nach Anspruch 5, wobei die Zeitplanungseinheit dazu eingerichtet ist, den laufenden Burst durch Aussetzen des laufenden Bursts auf einem gegenwärtigen Slave-Port zu unterbrechen und einen neuen Burst auf dem gegenwärtigen Slave-Port zu initiieren.
  7. System nach Anspruch 1, wobei die Zeitplanungsinformationen von der Zeitplanungseinheit eine Angabe über eine erforderliche Burst-Wiederaufnahme eines zuvor unterbrochenen Bursts auf einem vorherigen Slave-Port enthalten.
  8. System nach Anspruch 7, wobei die Zeitplanungseinheit dazu eingerichtet ist, den zuvor unterbrochenen Burst auf dem vorherigen Slave-Port wiederaufzunehmen.
  9. System nach Anspruch 7, wobei das Multiport-Slave-Modul dazu eingerichtet ist, eine Bestätigung an die Zeitplanungseinheit zu senden, um eine Wiederaufnahme des zuvor unterbrochenen Bursts festzulegen, und wobei die Zeitplanungseinheit dazu eingerichtet ist, einem vorherigen Master-Modul einen Wiederaufnahmebuszugriff für den zuvor unterbrochenen Burst als Reaktion auf den Empfang der Bestätigung zu gewähren.
  10. System nach Anspruch 1, wobei die antizipierte Burst-Information ein differenzielles Kennzeichen für das antizipierte Master-Modul enthält, wobei das differenzielle Kennzeichen angibt, ob das antizipierte Master-Modul ein anderes ist als ein gegenwärtiges Master-Modul.
  11. System umfassend: eine Empfangseinheit, die dazu eingerichtet ist, Zeitplanungsinformationen von einer Zeitplanungseinheit für einen Systembus, der ein Multiport-Slave-Modul mit einer Vielzahl von Master-Modulen verbindet, zu empfangen, wobei die Zeitplanungsinformationen Master-Kategorisierungsinformationen und antizipierte Burst-Informationen enthalten, wobei die antizipierten Burst-Informationen auf einer Feststellung der Zeitplanungseinheit über einen antizipierten Buszugriff durch ein antizipiertes Master-Modul auf das Multiport-Slave-Modul beruhen; und eine Vermittlungseinheit, die dazu eingerichtet ist, zwischen einer Vielzahl von Slave-Ports des Multiport-Slave-Moduls unter Verwendung der Zeitplanungsinformationen zu vermitteln.
  12. System nach Anspruch 11, wobei die Master-Kategorisierungsinformationen auf Bandbreiten- und/oder Latenzanforderungen der Master-Module basieren, und wobei die Multiport-Slave-Vermittlungseinheit und die Zeitplanungseinheit dazu eingerichtet sind, Buszugriffe unter Verwendung der Master-Kategorisierungsinformationen zu priorisieren.
  13. System nach Anspruch 11, des Weiteren umfassend eine Unterbrechungseinheit, die dazu eingerichtet ist, einen ersten Burst-Transfer auf einem ersten Port zu unterbrechen, und einen zweiten Burst-Transfer von der Zeitplanungseinheit auf den ersten Port auf Basis der Zeitplanungsinformationen von der Zeitplanungseinheit zu akzeptieren.
  14. System nach Anspruch 11, des Weiteren umfassend: eine Annahmeeinheit, die dazu eingerichtet ist, einen ersten Burst-Transfer, der durch die Zeitplanungseinheit auf einem ersten Slave-Port für ein erstes Master-Modul mit einer ersten Master-Kategorisierung initiiert wurde, anzunehmen; eine Empfangseinheit, die dazu eingerichtet ist, eine Angabe über eine erforderliche Burst-Unterbrechung und eine zweite Master-Kategorisierung für ein zweites Master-Modul von der Zeitplanungseinheit zu empfangen; eine Feststellungseinheit, die dazu eingerichtet ist, festzustellen, ob das zweite Master-Modul eine höhere Priorität hat als das erste Master-Modul, auf Basis der ersten und der zweiten Master-Kategorisierungen; und wobei die Annahmeeinheit des Weiteren dazu eingerichtet ist, eine zweite Burst-Übertragung, die durch die Zeitplanungseinheit auf dem ersten Slave-Port für das zweite Master-Modul initiiert wurde, anzunehmen.
  15. System nach Anspruch 14, des Weiteren umfassend: eine Empfangseinheit, die dazu eingerichtet ist, eine Angabe über eine Burst-Wiederaufnahme für den ersten Burst-Transfer von der Zeitplanungseinheit zu empfangen; eine Sendeeinheit, die dazu eingerichtet ist, eine Bestätigung an die Zeitplanungseinheit über die Burst-Wiederaufnahme zu senden; und eine Wiederaufnahmeannahmeeinheit, die dazu eingerichtet ist, eine Wiederaufnahme, die durch die Zeitplanungseinheit für den ersten Burst-Transfer auf den Slave-Port initiiert wurde, anzunehmen.
  16. System nach Anspruch 15, wobei die Annahme der ersten Burst-Übertragung eine Pufferung von ersten Daten für den ersten Burst-Transfer beinhaltet, und wobei die Annahme der Wiederaufnahme für den ersten Burst-Transfer einen Transfer der gepufferten ersten Daten beinhaltet.
  17. System nach Anspruch 11, wobei die Master-Kategorisierungsinformationen auf Bandbreiten- und/oder Latenzanforderungen der Master-Module basieren, und wobei die Multiport-Slave-Vermittlungseinheit und die Zeitplanungseinheit dazu eingerichtet sind, Buszugriffe unter Verwendung der Master-Kategorisierungsinformationen zu priorisieren.
  18. System nach Anspruch 11, wobei die antizipierten Burst-Informationen ein differenzielles Kennzeichen für das antizipierte Master-Modul beinhalten, wobei das differenzielle Kennzeichen angibt, ob das antizipierte Master-Modul ein anderes ist als ein gegenwärtiges Master-Modul.
  19. System nach Anspruch 11, wobei das Multiport-Slave-Modul ein Pipeline-Speichermodul ist.
  20. System nach Anspruch 10, des Weiteren umfassend eine Empfangseinheit, die dazu eingerichtet ist, erste und zweite Zeitplanungsinformationen für erste und zweite Bursts auf ersten und zweiten Slave-Ports zu empfangen, und erste und zweite Burst-Transfers auf den ersten und zweiten Slave-Ports zu verschränken.
DE201120052249 2011-12-09 2011-12-09 Zeitplanung für Mikrocontrollersystembus für Multiport-Slave-Module Expired - Lifetime DE202011052249U1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE201120052249 DE202011052249U1 (de) 2011-12-09 2011-12-09 Zeitplanung für Mikrocontrollersystembus für Multiport-Slave-Module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201120052249 DE202011052249U1 (de) 2011-12-09 2011-12-09 Zeitplanung für Mikrocontrollersystembus für Multiport-Slave-Module

Publications (1)

Publication Number Publication Date
DE202011052249U1 true DE202011052249U1 (de) 2012-01-16

Family

ID=45595804

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201120052249 Expired - Lifetime DE202011052249U1 (de) 2011-12-09 2011-12-09 Zeitplanung für Mikrocontrollersystembus für Multiport-Slave-Module

Country Status (1)

Country Link
DE (1) DE202011052249U1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968085A (zh) * 2012-12-05 2013-03-13 王璐 基于单片机的数显抢答器
CN105118199A (zh) * 2015-09-22 2015-12-02 广西职业技术学院 一种教学用的抢答器电路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968085A (zh) * 2012-12-05 2013-03-13 王璐 基于单片机的数显抢答器
CN105118199A (zh) * 2015-09-22 2015-12-02 广西职业技术学院 一种教学用的抢答器电路

Similar Documents

Publication Publication Date Title
DE102009043411B4 (de) Bereitstellen eines Zurückstellungsmechanismus für "gepostete" Interrupt-Transaktionen
EP0772832B1 (de) Arbitrierung bei verzögernder buskopplung
DE3909948C2 (de)
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
EP1430406B1 (de) Verfahren zur arbitrierung eines zugriffs auf einen datenbus
DE19900345B4 (de) Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus
DE19983737B3 (de) System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE112011103916B4 (de) Speicherzugriffseinheit für gemeinsame Speichernutzung zwischen mehreren Prozessoren
EP0929041A2 (de) Verfahren und Anordnung zum Betreiben eines Bussystems
DE69634182T2 (de) Direktspeicherzugriffssteuerung mit programmierbarer Zeitsteuerung
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE19983745B9 (de) Verwendung von Seitenetikettregistern um einen Zustand von physikalischen Seiten in einer Speichervorrichtung zu verfolgen
DE4129614A1 (de) System und verfahren zur datenverarbeitung in einer mehrzahl von betriebsarten entsprechend programminterner parallelverarbeitungseigenschaften unter verwendung eines cachespeichers
EP2030118B1 (de) Mehrprozessor-gateway
EP0675444B1 (de) Mehrfacharbitrierungsschema
DE102007060806A1 (de) Rangbasierter Speicher-Lese/Schreib-Mikrobefehls-Scheduler
DE69531270T2 (de) Unterbrechungssteuerungsgeräte in symmetrischen Mehrprozessorsystemen
DE102008055892A1 (de) Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE112012005572B4 (de) Ausgleichen der Bandbreite von Anforderern, die ein gemeinsam genutztes Speichersystem verwenden
DE102006012659A1 (de) System und Verfahren zum Reduzieren der Speicherlatenz bei mit einem Bus verbundenen Mikroprozessorsystemen
DE60127357T2 (de) Ausführung von einem PCI-Arbiter mit dynamischem Prioritätsschema
DE202011052249U1 (de) Zeitplanung für Mikrocontrollersystembus für Multiport-Slave-Module
DE4413459C2 (de) Programmierbares Interrupt-Controller-System

Legal Events

Date Code Title Description
R207 Utility model specification

Effective date: 20120308

R156 Lapse of ip right after 3 years