DE60036923T2 - Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung - Google Patents

Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung Download PDF

Info

Publication number
DE60036923T2
DE60036923T2 DE60036923T DE60036923T DE60036923T2 DE 60036923 T2 DE60036923 T2 DE 60036923T2 DE 60036923 T DE60036923 T DE 60036923T DE 60036923 T DE60036923 T DE 60036923T DE 60036923 T2 DE60036923 T2 DE 60036923T2
Authority
DE
Germany
Prior art keywords
bus
processor
signal
line
priority
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
DE60036923T
Other languages
English (en)
Other versions
DE60036923D1 (de
Inventor
Robert Koslawsky
Zvi Greenfield
Alberto E. Sandbank
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.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
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 Analog Devices Inc filed Critical Analog Devices Inc
Application granted granted Critical
Publication of DE60036923D1 publication Critical patent/DE60036923D1/de
Publication of DE60036923T2 publication Critical patent/DE60036923T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • 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/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf ein Multi-Prozessor Computersystem und spezieller auf ein Verfahren und eine Vorrichtung zum Verteilen von Haushalts- bzw. Organisationsfunktionen zwischen mehreren Prozessoren in einem Multi-Prozessor Computersystem.
  • Verwandte Technik
  • Ein Computer besitzt typischerweise eine oder mehrere Zentralverarbeitungseinheiten („Prozessoren") zusätzlich zu dedizierten funktonalen Einheiten, wie z. B. einem Speicher, einer Bus-Arbitrierungseinheit, einem Speicherauffrischcontroller und einen oder mehrere Daten- und Instruktionszwischenspeicher bzw. -caches, die alle hierin als „Komponenten" bezeichnet werden. Ein Computersystem, das mehr als einen Prozessor besitzt, wird als ein Mehr- bzw. Multiprozessorsystem bezeichnet.
  • Kommunikation zwischen den Prozessoren und Komponenten findet über einen Systembus statt, der die Komponenten und Prozessoren zusammenschaltet bzw. koppelt. Die Kommunikation über den Bus findet in einer „Transaktion” statt. Wie wohl bekannt ist, können Instanzen auftreten, bei denen mehr als ein Prozessor versucht, eine Transaktion auf dem Bus gleichzeitig herauszugeben. Der Prozess des Bestimmens welcher der Prozessoren den Bus steuern wird und welchem somit erlaubt wird eine Transaktion auf dem Bus in dieser Situation herauszugeben, wird als Arbitrierung bezeichnet. Der Prozessor, der die Arbitrierung gewinnt, wird hierin als der „Busmeister" bzw. „bus master" bezeichnet.
  • Die Arbitrierung findet in der Bus-Arbitrierungseinheit statt. In einem System mit einem einzelnen Prozessor kann die Bus-Arbitrierungseinheit extern von dem Prozessor sein, oder kann in den Prozessor integriert sein. Eine funktionale Einheit wie beispielsweise eine Bus-Arbitrierungseinheit wird als „intern" bzw. „integriert" bezeichnet, wenn die durch die funktionale Einheit durchgeführten Funktionen wenigstens teilweise durch den Prozessor ausgeführt werden. Im Gegensatz dazu wird eine funktionale Einheit als „extern" bezeichnet, wenn die durch die funktionale Einheit durchgeführten Funktionen nicht durch den Prozessor durchgeführt werden. Wie in der Technik wohl bekannt ist, beinhaltet eine externe Funktionseinheit typischerweise dedizierte Schaltungen bzw. Schaltkreise, die konfiguriert sind zum Durchführen eines spezifischen Satzes an Funktionen.
  • 1 zeigt ein exemplarisches Multi-Prozessor Computersystem unter Verwendung eines externen Bus-Arbitrierers zum Durchführen der Bus-Arbitrierung. Wie in 1 gezeigt ist, besitzt das Multi-Prozessor System einen Zentralrechner bzw. einen Host 10 und eine Vielzahl von Prozessoren 12a, 12b ... 12n, die alle mit einem Systembus 14 verbunden sind. Eine externe Arbitrierungseinheit 13 empfängt Signale auf den Bus-Anforderungsleitungen bzw. Bus-Anfrageleitungen (R) und bestimmt welchen von den anfragenden Prozessoren die Busmeisterschaft gemäß irgendeinem bekannten Protokoll gewährt werden sollte. Der Prozessor (oder Host), der die Arbitrierung gewinnt, wird über ein Signal auf einer Bestätigungsleitung (A) benachrichtigt, die den Arbitrierer 13 und den Prozessor oder Host verbindet. Um der Busmeister zu werden, erklärt bzw. legt ein Prozessor ein Signal auf seiner Bus-Anfrageleitung (R) an, und wartet auf die externe Bus-Arbitrierungseinheit 13, um ihm die Meisterschaft von dem Bus zu gewähren, und zwar mittels eines Signals auf seiner assoziierten Bestätigungsleitung (A). Die Arbitrierung unter Verwendung eines externen Bus-Arbitrierers erfordert somit sowohl eine Anfrage- als auch eine Bestätigungsleitung für jeden Prozessor.
  • In vielen Computersystemen, einschließlich dem in 1 dargestellten System, werden unterschiedliche Arten von Transaktionen wichtiger als andere Arten von Transaktionen erachtet. Zum Beispiel könnte ein Computersystem Transaktionen, die direkten Speicherzugriff (direct memory access, DMA) involvieren, eine Priorität gegenüber anderen Arten von Transaktionen geben. Um Anfragen von veränderlicher Priorität zu befriedigen, ist es in derartigen Systemen üblich, die Prozessoren 12a bis 12n und die Bus-Arbitrierungseinheit 13 mit einer oder mehreren Prioritätsanfrageleitungen (P) zu koppeln. Wenn ein Prozessor es wünscht eine Prioritätstransaktion auf dem Bus herauszugeben, legt der Prozessor ein Signal über seine Prioritätsanfrageleitung an. Die externe Arbitrierungseinheit 13 verarbeitet die Anfrage und weist den Bus vorzugsweise an den Prozessor zu, der das Signal über die Prioritätsanfrageleitung anlegt.
  • Die Arbitrierung unter Verwendung einer externen Bus-Arbitrierungseinheit 13 kann raumintensiv werden, da mehrere dedizierte Leitungen vorgesehen werden müssen, um jeden Prozessor 12a bis 12n und den Host 10 mit der externen Arbitrierungseinheit 13 zu koppeln. In dem dargestellten Beispiel sind eine Anfrageleitung, eine Bestätigungsleitung und wenigstens eine Prioritätsanfrageleitung notwendig, um die Bus-Arbitrierung für jeden Prozessor durchzuführen. Wenn die Anzahl von Prozessoren, die mit dem Bus verbunden sind groß ist, ist eine signifikante Menge an Platz notwendig, um zur Arbitrierung genutzt zu werden.
  • Zusätzlich zu mehreren Prozessoren setzen Computer typischerweise Festkörperspeicherkomponenten ein, wie z. B. Komponenten mit Speicher mit dynamischem wahlfreien Zugriff (dynamic random access memory, DRAM). Der Ausdruck DRAM wird hierin genutzt werden um jedwelche Art von Speicher mit dynamischem wahlfreien Zugriff zu bezeichnen, einschließlich von DRAM (dynamischer bzw. dynamic RAM), SDRAM (synchrones bzw. synchronous DRAM), DRDRAM (direct rambus DRAM) und andere Arten von Speicher.
  • Digitale Information, die im DRAM gehalten wird, ist im Allgemeinen in der Form von Ladung, die in einer zweidimensionalen Anordnung von Kondensatoren gespeichert ist. Die auf jedem Kondensator gespeicherte Ladung kann während einer Leseoperation abgefühlt werden, oder während einer Schreiboperation geändert werden. Zusätzlich geht Ladung mit der Zeit kontinuierlich verloren, und zwar aufgrund von Verlusten bzw. Leckagen. Die Größe des Verlusts hängt ab von den Verarbeitungs- und Betriebsbedingungen, sowie auch von Umgebungsfaktoren, wie z. B. Temperatur und Versorgungsspannung.
  • Aufgrund dieses Verlusts muss die Ladung auf individuellen Kondensatoren in der Kondensatoranordnung von dem DRAM periodisch wieder aufgefrischt werden.
  • Um eine Auffrischoperation durchzuführen, wird digitale Information auf herkömmliche Weise von dem DRAM gelesen, und sofort in das DRAM zurückgeschrieben. Auf diese Art und Weise kann die Ladung auf den individuellen Kondensatoren verstärkt werden, ohne den Inhalt von der Speicheranordnung bzw. Speichermatrix zu. ändern. Um die Integrität von dem Inhalt von der Speicheranordnung sicherzustellen, muss das DRAM aufgefrischt werden, bevor der Verlust bzw. die Leckage verursacht, dass die in den Kondensatoren gespeicherte Ladung unterhalb einen vorher bestimmten Pegel fällt. Da der DRAM typischerweise in Zeilen und Spalten organisiert ist, wird die Auffrischung von dem DRAM typischerweise zeilenweise durchgeführt, obwohl andere Auffrischschemata auch möglich sind.
  • Die Steuerung von DRAM-Auffrischprozedur in einer Mehrprozessorenumgebung wird typischerweise durch einen externen DRAM-Auffrischcontroller gehandhabt, wie es in der Offenbarung der US-A-4 706 232 gezeigt ist. Der externe DRAM-Auffrischcontroller besitzt einen Auffrischzähler, der die aufzufrischende Zeile anzeigt, und einen Reset bzw. eine Rücksetzung, die es ermöglicht, den Auffrischzähler zurückzusetzen, beispielsweise auf die erste Zeile. Obwohl die durch den DRAM-Auffrischcontroller durchgeführten Funktionen wichtig für den Betrieb des Computers sind, verbraucht der DRAM-Auffrischcontroller wertvollen Raum, der andernfalls für andere Komponenten genutzt werden könnte. Zusätzlich muss der DRAM-Auffrischcontroller mit dem DRAM verbunden sein, und zwar entweder über eine oder mehrere dedizierte Leitungen oder über den Systembus. Wenn der DRAM-Auffrischcontroller den Systembus zum Steuern der DRAM-Auffrischoperationen nutzt, ist die Systemperformance insgesamt verschlechtert, und zwar durch die Reduzierung der Datenmenge, die andernfalls transferiert werden könnte. Wenn der DRAM-Auffrischcontroller mit dem DRAM über eine oder mehrere dedizierte Leitungen verbunden ist, wird wertvoller Raum verbraucht, der andernfalls für andere Zwecke genutzt werden könnte.
  • Die europäische Patentanmeldung, die veröffentlicht wurde als EP 0737925 bezieht sich auf ein verteiltes Bus-Arbitrierungssystem mit einer Pipeline zum Auflösen von Buswettbewerb zwischen Prozessoren, die an einen gemeinsamen Systembus gekoppelt sind.
  • Entsprechend ist eine Vorrichtung notwendig, die eine Performance von Wartungsfunktionen ermöglicht, wie z. B. Bus-Arbitrierung und DRAM-Auffrischoperationen, und zwar in einer Multiprozessorumgebung, während die Menge an Platz und andere Systemressourcen, die zum Durchführen dieser Funktionen erforderlich sind, minimiert werden.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung ist eine Vorrichtung, die die Performance von Wartungsfunktionen, wie z. B. DRAM-Auffrischoperationen ermöglicht, während die Menge an Platz minimiert wird, die zum Durchführen dieser Funktionen in einer Multiprozessorumgebung notwendig ist. Eine Vorrichtung gemäß der Erfindung ist im unabhängigen Anspruch 1 definiert. Weitere Ausführungsbeispiele der Erfindung sind in den angehängten abhängigen Ansprüchen spezifiziert.
  • In ähnlicher Weise, gemäß Ausführungsbeispielen der vorliegenden Erfindung zum Durchführen von DRAM-Auffrischoperationen, ist jeder Prozessor versehen mit einem lokalen DRAM-Auffrischcontroller, der wenigstens einen Anschluss bzw. einen Pin mit einer oder mehreren dedizierten DRAM-Auffrischleitungen verbunden hat. In einem bevorzugten Ausführungsbeispiel besitzt jeder Prozessor einen Pin, der mit einer einzelnen DRAM-Auffrischleitung verbunden ist. Jeder lokale DRAM-Auffrischcontroller, wenn er zum Durchführen von DRAM-Auffrischoperationen verantwortlich ist, gibt DRAM-Auffrischsignale an das DRAM über die DRAM-Auffrischleitung heraus. Wenn er nicht zum Durchführen von DRAM-Auffrischoperationen verantwortlich ist, überwacht jeder lokale DRAM-Auffrischcontroller die DRAM-Auffrischleitung, fühlt DRAM-Auffrischsignale ab, die durch andere DRAM-Auffrischcontroller herausgegeben werden, und nutzt die abgefühlten Signale zum Aktualisieren seines DRAM-Auffrischzeilenzählers. Eine Rücksetzleitung kann auch vorgesehen sein zum Zurücksetzen des Zählers. Alternativ kann das Zurücksetzen des Controllers durchgeführt werden über die einzelne DRAM-Auffrischleitung. Das Versehen jedes Prozessors mit einem lokalen DRAM-Auffrischcontroller eliminiert den Bedarf für einen externen DRAM-Auffrischcontroller, spart somit Platz und entfernt den DRAM-Auffrischcontroller als eine im Wettbewerb stehende Komponente für die Meisterschaft über den Bus. Auch wird durch Sicherstellen dass jeder DRAM-Auffrischcontroller aktuelle Information bezüglich der DRAM-Auffrischoperationen besitzt, eine Duplizierung von Auffrischoperationen während Handoffs bzw. Weitergaben zwischen Prozessoren minimiert. Somit ist der neu verantwortliche DRAM-Auffrischcontroller fähig, mit der DRAM-Auffrischoperation weiterzumachen, und zwar wo der DRAM-Auffrischcontroller des letzten Prozessors gestoppt hat.
  • Kurze Beschreibung der Zeichnungen
  • Diese Erfindung ist in ihren wesentlichen Grundzügen in den angehängten Ansprüchen herausgestellt. Die obigen und weitere Vorteile dieser Erfindung können besser verstanden werden durch Bezug auf die folgende Beschreibung, wenn man diese zusammen mit den begleitenden Zeichnungen betrachtet, wobei die Zeichnungen Folgendes zeigen:
  • 1 ist ein funktionales Blockdiagramm von einem herkömmlichen Multiprozessorsystem;
  • 2 ist ein funktionales Blockdiagramm von einem Multiprozessorsystem, das ein Ausführungsbeispiel dieser Erfindung aufweist;
  • 3 ist ein funktionales Blockdiagramm von einem Bus-Arbitrierungssystem zur Nutzung in dem Multiprozessorsystem der 2;
  • 4 ist ein funktionales Blockdiagramm von einem Prozessor zur Nutzung in dem Bus-Arbitrierungssystem der 3;
  • 5 bis 8 sind Timing- bzw. Zeitsteuerungsdiagramme, die Aspekte von dem Bus-Arbitrierungsprotokoll gemäß einem Ausführungsbeispiel darstellen; und
  • 9 ist ein funktionales Blockdiagramm von einem Bus-Arbitrierungssystem zur Nutzung in dem System der 2, in dem Fall, in dem der Host versehen ist mit einem Speicherauffrischcontroller üblicher Konfiguration, wobei die anderen Speicherauffrischcontroller in den Prozessoren enthalten sind.
  • Detaillierte Beschreibung
  • In einem Ausführungsbeispiel beinhaltet das Multiprozessorsystem dieser Erfindung ein verteiltes DRAM-Auffrischsystem, in dem jeder Prozessor einen funktional äquivalenten lokalen DRAM-Auffrischcontroller besitzt. Signale auf einer Auffrischleitung bzw. Refresh-Leitung werden durch jeden von den lokalen DRAM-Auffrischcontrollern überwacht, um ein synchrones Aktualisieren der lokalen DRAM-Auffrischzähler und Zurücksetzen von den lokalen DRAM-Auffrischzählern zu ermöglichen. Somit, wenn die Meisterschaft bzw. Herrschaft über den Bus von einem Prozessor zu dem anderen weitergeht, kann der lokale DRAM-Auffrischcontroller des neuen Busmeisters mit dem DRAM-Auffrischprozess weitermachen, ohne dass es erforderlich ist, dass Information von dem alten Busmeister zu dem neuen Busmeister transferiert wird, und ohne dass DRAM-Auffrischoperationen dupliziert werden.
  • In dem Mehrfach- bzw. Multiverarbeitungssystem der 2 sind ein Host bzw. eine Zentraleinheit 10 und eine Vielzahl von Prozessoren 12a bis 12n mit bzw. durch einen Systembus 14 verbunden. Ein DRAM 16 ist mit dem Systembus 14 verbunden, und eine Brücke 18 verbindet den Systembus mit einem externen Bus 20, wie z. B. einem Bus zum Koppeln bzw. Zusammenschalten peripherer Komponenten (peripheral component interconnect, PCI). Komponenten, wie z. B. ein Prozessor 22 und ein Speicher 24 können mit dem PCI-Bus 20 verbunden sein, sowie auch zahlreiche andere Komponenten mit diesem Bus verbunden sein können. Jeder Prozessor 12a bis 12n beinhaltet eine lokale Arbitrierungseinheit 26, 26a bis 26n, die mit Anfrageleitungen und Prioritätszugangsleitungen bzw. Prioritätszugriffsleitungen gekoppelt ist. Der Host 10 ist mit einer Host-Arbitrierungseinheit versehen, die eine übliche Konfiguration mit den lokalen Arbitrierungseinheiten 26a bis 26n besitzen kann, oder die anders konfiguriert sein kann, wie es unten detaillierter beschrieben wird. Die Zusammenschaltung bzw. Kopplung zwischen dem Systembus 14, dem Host 10 und den Prozessoren 12, sowie auch die Arbitrierungsleitungen sind detaillierter in 3 dargestellt.
  • Wie in 3 gezeigt ist, beinhaltet ein verteiltes Arbitrierungssystem einen Host 10 und Prozessoren 12a bis 12n, die mit dem Systembus 14 verbunden sind. Der Systembus 14 kann irgendein bekannter Bus sein, über den Transaktionen stattfinden können. Die lokalen Arbitrierer bzw. Vermittler 26a bis 26n sind in jedem Prozessor 12a bis 12n enthalten. Ein Host-Arbitrierer 25 ist in ähnlicher Weise in dem Host 10 enthalten. Obwohl die Arbitrierer 25, 26a bis 26n extern von dem Host 10 oder den Prozessoren 12a bis 12n sein können, ist es aktuell vorgesehen, dass die Arbitrierer 25, 26a bis 26n intern in dem Host 10 bzw. den Prozessoren 12a bis 12n sein werden. Die lokalen Arbitrierer 25, 26a bis 26n können in einer üblichen Konfiguration gebildet sein. Alternativ kann der Host-Arbitrierer 25 anders als die lokalen Arbitrierer 26a bis 26n konfiguriert sein. Das Bilden der lokalen Arbitrierer 26a bis 26n und optional des Host-Arbitriers 25 nach einer üblichen Konfiguration ermög licht es den Arbitrierern jeweils zu dem gleichen Ergebnis zu kommen, und zwar unter der Voraussetzung eines bestimmten Satzes an Eingaben.
  • In der folgenden Diskussion wird angenommen, dass der Host 10 eine Host-Arbitrierungseinheit 25 besitzt, die nicht eine gemeinsame Konfiguration mit den lokalen Arbitrierungseinheiten 26a bis 26n hat. Falls jedoch es gewünscht würde dies zu tun, könnte der Host 10 mit einer üblich bzw. gemeinsam konfigurierten lokalen Arbitrierungseinheit versehen sein. In dieser Situation könnte die Arbitrierung mit dem Host 10 auf eine ähnliche Art und Weise stattfinden, wie bei den restlichen Prozessoren. 9 stellt dieses alternative Ausführungsbeispiel dar. Wenn einer der Prozessoren eine Transaktion auf dem Systembus 14 herausgeben muss, wird der Prozessor ein Signal anlegen um Busmeister zu werden, und zwar auf seiner assoziierten Bus-Anforderungsleitung. Da jeder lokale Arbitrierer 26a bis 26n mit der Bus-Anforderungsleitung des Prozessors verbunden ist, wird jeder lokale Arbitrierer 26a bis 26n das Signal auf der Bus-Anforderungsleitung des Prozessors empfangen, und jene Eingabe bei einer bevorstehenden Arbitrierung nutzen. Da alle lokalen Arbitrierer 26a bis 26n in einem Cluster von Prozessoren 12a bis 12n synchron betrieben werden (in einem Gleichschritt auf einer zyklusweisen Basis), beobachtet und folgt jeder Prozessor 12a bis 12n der Arbitrierungssequenz von dem Systembus 14. Falls deshalb das Ergebnis von einer nachfolgenden Arbitrierung ist, dass der anfragende bzw. anfordernde Prozessor der Busmaster wird, wird die Meisterschaft dem anfordernden Prozessor gewährt, ohne dass es erforderlich ist, dass das Arbitrierungsergebnis an den anfordernden Prozessor kommuniziert wird. In diesem Fall werden alle anderen Prozessoren das Recht des anfordernden Prozessors den Systembus 14 zu meistern bzw. zu beherrschen, anerkennen und es unterlassen, Transaktionen auf den Systembus 14 herauszugeben. In ähnlicher Weise, falls das Ergebnis von der Arbitrierung ist, dass der anfordernde Prozessor nicht der Busmeister wird, wird sein assoziierter lokaler Arbitrierer verhindern, dass der anfordernde Prozessor versucht, eine Transaktion auf den Systembus 14 herauszugeben.
  • Ein eindeutiger Aspekt des Nutzens von lokalen Arbitrierern 26a bis 26n anstelle eines fernen Arbitrierers 13 ist, dass es keinen Bedarf gibt das Ergebnis der Arbitrierung an die Prozessoren 12a bis 12n zu kommunizieren. Stattdessen wird jeder Prozessor 12a bis 12n mit dem Arbitrierungsergebnis direkt von seinem lokalen Arbitrierer 26a bis 26n versorgt. Entsprechend sind Bestätigungsleitungen nicht erforderlich. Dies reduziert wesentlich den Bedarf an Platz, der zum Durchführen von Arbitrierung notwendig ist.
  • Wie in den 3 und 4 gezeigt ist, wird die Bus-Arbitrierung erreicht unter Verwendung von Signalen auf Leitungen BR0 bis BR7, HBR und HBG. Diese Signale können digital, analog, optisch oder irgendeine andere Art von Signal sein, das nutzbar ist zum Kommunizieren von Information zwischen dem Host 10 und den Prozessoren 12a bis 12n. Die Signale auf den Leitungen BR0 bis BR7 werden zum Arbitrieren bzw. Vermitteln zwischen den Prozessoren 12a bis 12n genutzt, und die Signale auf den Leitungen HBR und HBG werden genutzt, um die Steuerung von dem Systembus 14 an und von dem Host 10 zu geben. In diesem Zusammenhang wird ein Signal auf der Leitung BR0 durch den Prozessor 0 genutzt zum Anfordern der Meisterschaft über den Bus 14, ein Signal auf BR1 wird durch den Prozessor 1 genutzt zum Anfordern der Meisterschaft über den Bus 14 usw. Ein Signal auf der Leitung HBR wird durch den Host 10 genutzt, um die Meisterschaft von dem Bus 14 anzufordern, und ein Signal auf der Leitung HBG wird genutzt, um die Meisterschaft über den Bus 14 an den Host 10 zu geben. Dedizierte Pins bzw. Anschlüsse an dem Host 10 und den Prozessoren 12a bis 12n ermöglichen einen kontinuierlichen Zugang auf und ein Überwachen von Signalen auf den Leitungen, die zur Arbitrierung genutzt werden.
  • Da die lokalen Arbitrierer 26a bis 26n einen dedizierten Eingangspin zum Überwachen von Signalen auf der Anforderungsleitung von dem Host 10 und von jedem Prozessor 12a bis 12n, der in der Arbitrierung teilnimmt, haben muss, ist die Anzahl von Prozessoren 12a bis 12n, die für eine Meisterschaft auf dem Systembus 14 arbitrieren bzw. vermitteln können, durch die Hardware limitiert, die genutzt wird zum Implementieren der lokalen Arbitrierer 26, 26a bis 26n. Entsprechend, z. B. in dem dargestellten Ausführungsbeispiel, besitzt jeder Arbitrierer 26, 26a bis 26n 10 Eingabegins, die mit den Leitungen HBR, HBG und BR0 bis BR7 verbunden sind. Somit können in diesem Ausführungsbeispiel bis zu 8 Prozessoren 12a bis 12n für die Meisterschaft von dem Systembus 14 gleichzeitig arbitrieren bzw. vermitteln. Falls weniger als die maximale Anzahl von Prozessoren mit dem Systembus 14 verbunden sind, werden die ungenutzten Pins deaktiviert (deasserted) um die lokalen Arbitrierer daran zu hindern, zu versuchen die Busmeisterschaft einem nicht teilnehmenden Prozessor zu gewähren. Obwohl das dargestellte Ausführungsbeispiel 8 Prozessoren zeigt, die mit dem Systembus 14 verbunden sind, kann diese Anzahl variiert werden durch Ändern der Anzahl von Bus-Anforderungsleitungen und Pins oder durch Deaktivieren verschiedener Bus-Anforderungsleitungen. Dementsprechend sind die hierin offenbarten Konzepte nicht auf ein System beschränkt, das 8 Prozessoren nutzt und sind in gleicher Weise auf ein System anwendbar, das wenigstens 2 Prozessoren nutzt.
  • Jeder Prozessor 12a bis 12n ist mit einer Identifikationsnummer versehen. In einem exemplarischen Ausführungsbeispiel ist die Identifikationsnummer dem Prozessor 12a bis 12n unter Verwendung von einem oder mehreren Identifikationspins 28a bis 28n zugewiesen. Jedes andere Verfahren zum Identifizieren der Prozessoren kann genauso genutzt werden.
  • Wenn einer von den Prozessoren 12x wünscht der Meister von dem Bus zu werden, legt er ein Signal an seine eigene Bus-Anforderungsleitung an, zur gleichen Zeit die anderen Bus-Anforderungsleitungen nach Signalen überwachend. Falls kein Signal von einem Prozessor mit einer höheren Priorität auf einer anderen Bus-Anforderungsleitung angelegt wird, wird die Meisterschaft über den Bus an den neuen Anforderer gegeben, und zwar nachdem der aktuelle Busmeister seine Transaktionen vollendet hat. Der neue Busmeister behält die Busmeisterschaft durch Anlegen des Signals auf seiner eigenen Bus-Anforderungsleitung kontinuierlich solang er der Meister ist. Der Prozessor, der Busmeister ist, behält die Meisterschaft über den Bus bis (1) er keine weiteren schwebenden bzw. wartenden Transaktionen mehr hat; (2) ein Zähler 30 abläuft und die Meisterschaft zu einem anderen anfordernden Prozessor weitergegeben wird, um ein Verhungern des Busses zu verhindern oder (3) seine Meisterschaft unterbrochen wird, um es zu ermöglichen, dass Transaktionen mit höherer Priorität stattfinden. Der Transfer von der Meisterschaft findet statt dadurch, dass der aktuelle Busmeister seine Bus-Anforderungsleitung freigibt.
  • Wenn der aktuelle Meister den Systembus 14 aufgibt, gibt er das Signal auf seiner assoziierten Bus-Anforderungsleitung frei bzw. deaktiviert dieses und es wird ihm die niedrigste Priorität zugewiesen. In dem vorliegenden Ausführungsbeispiel wird ein Leerlaufzyklus eingeführt, wenn die Meisterschaft von dem aktuellen Meister zu dem neuen Meister weitergegeben wird. Ein unmittelbares Aufeinanderfolgen (Pipelining) der Meisterschaft von dem Bus kann möglich sein unter Verwendung bekannter Techniken zum Eliminieren dieses Ruhe- bzw. Leerlaufzyklusses, obwohl in dem vorliegenden bevorzugten exemplarischen Ausführungsbeispiel es kein Pipelining zwischen Meistern gibt.
  • Ein rotierendes Bus-Prioritätsschema ist implementiert, um eine Bus-Fairness zwischen den Prozessoren 12a bis 12n sicherzustellen. Falls zwei oder mehrere Prozessoren gleichzeitig Bus-Anforderungssignale auf ihren assoziierten Bus-Anforderungsleitungen anlegen bzw. geltend machen, wird dem Prozessor mit der höchsten Priorität die Meisterschaft von bzw. über den Bus gewährt. Die Priorität zwischen den Prozessoren kann auf jedwelche andere bekannte Art und Weise bestimmt werden.
  • Wenn einem anfordernden Prozessor die Meisterschaft über den Bus nicht gewährt wird, legt der anfordernde Prozessor kontinuierlich sein Bus-Anforderungssignal auf seiner assoziierten Bus-Anforderungsleitung an, bis ihm die Meisterschaft über den Bus gewährt wird, es erforderlich ist, dass er das Signal freigibt bzw. zurücknimmt, um eine Anforderung mit höherer Priorität unterzubringen, oder er die Meisterschaft über den Systembus 14 nicht länger fordert.
  • Es kann wünschenswert sein die Zeit zu limitieren, die ein einzelner Prozessor die Meisterschaft über den Bus behält zum Vermeiden einer Bus-Verhungerung von anderen Prozessoren in dem System. Um dieses Limit vorzusehen, ist der Zähler 30 (siehe 4) in jedem lokalen Arbitrierer 26a bis 26n vorgesehen. Der Zähler 30 definiert die maximale Zeitdauer, die der Prozessor den Bus 14 meistern kann, wenn andere Prozessoren auch die Meisterschaft von dem Bus anfordern. Der Zähler 30 wird auf einen vordefinierten Wert initiiert, wenn der Prozessor die Meisterschaft über den Systembus 14 erlangt, und startet hoch- oder runterzuzählen. Das Zählen wird pausiert, falls die Meisterschaft von dem Bus temporär zu dem Host oder einem anderen Prozessor mit einer Transaktion mit einer höheren Priorität transferiert wird. Falls der Zähler 30 einen zweiten vordefinierten Wert erreicht, und ein anderer Prozessor die Meisterschaft über den Bus 14 anfordert, vollendet der Prozessor seine Transaktion und gibt die Meisterschaft über den Systembus 14 für wenigstens einen Zyklus auf. Falls keine andere Anforderung nach der Meisterschaft über den Systembus 14 angelegt worden ist, wenn der Zähler 30 den zweiten vorher definierten Wert erreicht, wird der Zähler 30 zurückgesetzt und startet wiederum hinauf oder hinunter zu zählen, während der Prozessor 12 weiterhin die Meisterschaft über den Bus behält. In einem bevorzugten Ausführungsbeispiel ist einer von den ersten und zweiten vordefinierten Werten Null, somit zu einem System führend mit nur einem einzelnen vordefinierten Wert.
  • Wie oben erwähnt, werden mehrere Arten von Transaktionen wichtiger erachtet als andere Arten von Transaktionen. Um diese Transaktionen aufzunehmen, können Prozessoren bzw. kann ein Prozessor oder der Host 10 mit einer Transaktion mit Priorität temporär den aktuellen Busmeister unterbrechen, und die temporäre Meisterschaft über den Systembus 14 erlangen. In dem illustrierten Ausführungsbeispiel wird es einem Prozessor mit einer Transaktion mit Kernprioritätszugriff (core priority access CPA) oder einer Transaktion mit DMA-Prioritätszugriff (DMA priority access, DPA) erlaubt, den aktuellen Busmeister zu unterbrechen und die temporäre Meisterschaft über den Bus zu erlangen. Um diese Transaktionen mit höherer Priorität zu ermöglichen, sind eine CPA-Leitung und eine DPA-Leitung vorgesehen, über die die Prozessoren 12a bis 12n Prioritätsanforderungssignale anlegen können, um die Meisterschaft über den Bus zu erlangen.
  • In ähnlicher Weise kann der Host 10 die temporäre Meisterschaft über den Bus erlangen durch Anlegen eines Signals auf einer Host-Busanforderungsleitung (host bus request, HBR). Die Verwendung von den CPA-, DPA- und HBR-Leitungen ist unten detaillierter erörtert.
  • Ein Prozessor 12x wird ein Signal an die CPA-Prioritätsanforderungsleitung anlegen, wenn er eine Kerntransaktion besitzt, die auf externen Speicher zugreifen muss. Dies erlaubt es einem Prozessor, Hintergrundtransfers von einem DMA-Kanal, der dem Busmeister gehört, zu unterbrechen, und die Steuerung von dem bzw. über den Systembus 14 zu erlangen. Der aktuelle Busmeister beendet in dieser Situation seine Transaktion und leitet die Meisterschaft über den Bus an den anfordernden Prozessor weiter durch Freigeben bzw. Aufheben des Signals auf seiner assoziierten Bus-Anforderungsleitung bzw. Bus-Anfrageleitung. Wenn ein Signal auf der CPA-Prioritätsanforderungsleitung angelegt wird, können nur Prozessoren mit Kerntransaktionen den Bus 14 anfordern bzw. anfragen. Die anderen anfordernden Prozessoren geben ihre Bus-Anforderungsleitungen frei, wenn sie abfühlen, dass ein Signal auf der CPA-Prioritätsanforderungsleitung angelegt worden ist. Wenn mehr als ein Prozessor den Systembus 14 anfordert durch Anlegen eines Signals auf seiner Bus-Anforderungsleitung, zusammen mit einem Signal auf der CPA-Prioritätsanforderungsleitung, erlangt der Prozessor mit der höchsten Priorität die Busmeisterschaft. Die Zuweisung der Busmeisterschaft zwischen Prozessoren mit gleicher Priorität ist oben erörtert und kann implementiert werden unter Verwendung jedwelchem bekannten Protokoll.
  • Die Forderung, dass jene Prozessoren, die nicht ein Signal an die CPA-Prioritätsanforderungsleitung anlegen, um Signale auf ihren entsprechenden Bus-Anforderungsleitungen zu deaktivieren bzw. zu entfernen, ermöglicht es, dass Prioritätsanforderungen gleichzeitig durch die lokalen Arbitrierer 26a bis 26n unter Verwendung einer einzelnen Leitung verarbeitet werden. Speziell, da das Protokoll erfordert, dass alle Prozessoren die nicht ein Signal auf der CPA-Prioritätsanforderungsleitung anlegen Signale deaktivieren bzw. entfernen, die Anforderungen für die Meisterschaft über den Bus anzeigen sobald ein Signal auf der CPA-Prioritätsanforderungsleitung abgefühlt wird, muss notwendigerweise jedwelche Bus-Anforderungsleitung, die angelegt wird wenn ein Signal auf der CPA-Prioritätsanforderungsleitung angelegt wird, eine Transaktion mit hoher Priorität besitzen. Entsprechend kann eine Arbitrierung bzw. Vermittlung zwischen mehreren Prozessoren mit gleichzeitigen Prioritätstransaktionen unter Verwendung von nur einer einzelnen Prioritätsleitung stattfinden. Ein Beispiel kann diesen Prozess darstellen.
  • Mit Bezug auf die 3 wird angenommen, dass die folgenden Signale gleichzeitig angelegt bzw. aktiviert werden:
    Prozessor 1 – BR1, CPA
    Prozessor 2 – BR2, CPA
    Prozessor 3 – BR3
    Prozessor 4 – BR4.
  • Nach dem Bestimmen durch die Prozessoren 3 und 4, dass ein Signal auf der CPA-Prioritätsanforderungsleitung angelegt worden ist, deaktivieren bzw. entfernen die Prozessoren 3 und 4 Signale auf ihren Bus-Anforderungsleitungen BR3 bzw. BR4. Zu diesem Zeitpunkt sind nur Signale auf den Bus-Anforderungsleitungen, die mit den Prozessoren 1 und 2 (BR1, BR2) assoziiert sind, und ein Signal auf der CPA-Prioritätsanforderungsleitung angelegt. Entsprechend realisieren die Arbitrierer 26a bis 26n, dass zwei Prozessoren gleichzeitig Signale auf der CPA-Prioritätsanforderungsleitung angelegt haben, und somit dass zwei Anforderungen mit hoher Priorität gemacht worden sind. Entsprechend können die Arbitrierer 26a bis 26n die Priorität von der Busmeisterschaft zwischen den Prozessoren 1 und 2 gemäß einem ge wöhnlichen Prioritätsschema zuweisen. Auf diese Art und Weise ermöglicht das Interpretieren der Kombinationen von angelegten bzw. aktivierten Leitungen, dass der Prioritätszugriff auf den Systembus 14 gehandhabt wird, unter Verwendung einer einzelnen Prioritätsanforderungsleitung, ohne dass eine dedizierte Prioritätsanforderungsleitung für jeden Prozessor 12 erforderlich ist.
  • Mehrere Ebenen von Priorität können auf eine ähnliche Art und Weise unter Verwendung zusätzlicher Prioritätszugriffsleitungen implementiert werden. Zum Beispiel kann in dem in 3 dargestellten Ausführungsbeispiel eine zweite Prioritätsebene unter Verwendung einer DPA-Prioritätsanforderungsleitung vorgesehen werden. Ein Signal auf der DPA-Prioritätsanforderungsleitung wird durch einen Prozessor angelegt bzw. aktiviert, wenn der Prozessor eine DMA-Transakion mit hoher Priorität die externen Speicher involviert durchführen muss. Da diese Transaktionen als von niedrigerer Priorität als die CPA-Transaktionen erachtet werden, muss ein Prozessor 12a bis 12n nur ein Signal auf der DPA-Prioritätsanforderungsleitung anlegen, wenn ein Signal auf der CPA-Prioritätsanforderungsleitung nicht angelegt ist. Das Anlegen eines Signals auf der DPA-Prioritätsanforderungsleitung erlaubt es, dass ein DMA-Kanal mit hoher Priorität, der einem abhängigen bzw. Slave-Prozessor 12 erlaubt Hintergrundtransfers von einem DMA-Kanal mit regulärer Priorität, der einem Meisterprozessor gehört, zu unterbrechen, und temporär die Meisterschaft über den Bus 14 zu erlangen.
  • Wenn ein Signal auf der DPA-Prioritätsanforderungsleitung angelegt wird, terminiert der aktuelle Meister seine Transaktion und gibt die Busmeisterschaft an den anfordernden Prozessor durch Aufheben bzw. Deaktivieren des Signals auf seiner Bus-Anforderungsleitung. Irgendwelche anderen anfordernden Prozessoren, die nicht eine Transaktion besitzen für die das Anlegen eines Signals auf der DPA-Prioritätsanforderungsleitung oder der CPA-Prioritätsanforderungsleitung angemessen wäre, deaktivieren bzw. entfernen in ähnlicher Weise Signale auf ihren Bus-Anforderungsleitungen, wenn sie abfühlen, dass ein Signal auf der DPA-Prioritätsanforderungsleitung angelegt wird. Anders ausgedrückt, wenn ein Signal auf der DPA-Prioritätsanforderungsleitung angelegt wird, können nur Prozessoren 12a bis 12n mit Kerntransaktionen oder Transaktionen, die DMA-Transfers mit hoher Priorität involvieren, den Bus anfordern. Wenn mehr als ein Prozessor den Systembus 14 anfordert durch Anlegen eines Signals an seine entsprechende Bus-Anforderungsleitung zusammen mit einem Signal auf der DPA-Prioritätsanforderungsleitung, erlangt der Prozessor mit der höchsten Priorität die Busmeisterschaft. Durch die Erfordernisse, dass die Prozessoren 12a bis 12n Signale auf ihren entsprechenden Bus-Anforderungsleitungen deaktivieren, wenn ein Signal auf der DPA-Prioritätsanforderungsleitung angelegt wird (und sie nicht ein Signal auf der DPA-Prioritätsanforderungsleitung anlegen), kann eine einzelne Leitung benutzt werden zum Vorsehen von DMA-Prioritätszugriff auf alle Prozessoren 12a bis 12n. Die Nutzung einer Kombination von Signalen auf den Bus-Anforderungsleitungen und den Prioritätsanforderungsleitungen ermöglicht es den Bus-Arbitrierungseinheiten mehrere Prioritätsebenen bzw. -niveaus unter Verwendung einer minimalen Anzahl von Leitungen unterzubringen.
  • Bei diesem Arbitrierungsprozess besitzen anfordernde Prozessoren, die ein Signal auf der CPA-Prioritätsanforderungsleitung anlegen, eine höhere Priorität gegenüber anfordernden Prozessoren, die Signale auf die DPA-Prioritätsanforderungsleitung anlegen. Somit werden anfordernde Prozessoren, die ein Signal auf die DPA-Prioritätsanforderungsleitung anlegen, Signale auf ihren entsprechenden Bus-Anforderungsleitungen (und der DPA-Prioritätsanforderungsleitung) deaktivieren, wenn sie abfühlen, dass ein Signal auf der CPA-Prioritätsanforderungsleitung durch einen anderen Prozessor angelegt worden ist.
  • Andere Prioritätsschemata können auch benutzt werden, mehr oder weniger Prioritätsanforderungsleitungen einbeziehend. Zum Beispiel könnten drei, vier oder mehr Prioritätsanforderungsleitungen genutzt werden zum Vorsehen von drei, vier oder mehr Prioritätsebenen. Auch kann gleichzeitiges Anlegen von Signalen an zwei oder mehr Prioritätsanforderungsleitungen (wie z. B. gleichzeitiges Anlegen von Signalen auf die CPA-Prioritätsanforderungsleitung und die DPA-Prioritätsanforderungsleitung) durch den gleichen Prozessor genutzt werden zum Vorsehen von zusätzlichen Prioritätsebenen. Entsprechend ermöglichen Kombinationen von Anforderungssignalen und Prioritätssignalen, dass mehrere Prioritätsebenen unter Verwendung einer minimalen Anzahl von Prioritätsanforderungsleitungen aufgenommen werden.
  • Der Host 10 kann der Busmeister sein. Wenn der Host 10 es wünschen würde, Busmeister zu werden, veranlasst er, dass seine Host-Arbitrierungseinheit 25 ein Signal an eine Host-Bus-Anforderungsleitung (host bus request, HBR) anlegt. Der aktuelle Busmeister, nachdem er bestimmt, dass ein Signal auf der Leitung HBR angelegt worden ist, vervollständigt seine aktuelle Transaktion und gibt den Systembus 14 frei durch Anlegen eines Signals auf einer Host-Bus-Genehmigungsleitung (host bus grant, HBG). Der Host 10 behält das Signal auf der Leitung HBR angelegt, so lang er den Bus benötigt. Der Meister, der zuletzt den Systembus 14 freigegeben hat, behält ein Signal auf seiner entsprechenden Bus-Anforderungsleitung bei, so dass, wenn der Host 10 das Signal auf der Leitung HBR deaktiviert, er die Meisterschaft über den Bus wiedergewinnt.
  • Manchmal kann der Busmeister in Transaktionen engagiert sein, die nicht sicher unterbrochen werden können. Entsprechend kann es für den Busmeister wichtig werden, den Systembus 14 zu verriegeln, um zu verhindern, dass die Meisterschaft über den Bus temporär neu zugewiesen wird. Entsprechend sieht das Arbitrierungssystem für einen Prozessor 12 die Fähigkeit vor, den Bus zu verriegeln. Im Speziellen, um den Bus zu verriegeln, legt der Busmeister ein Signal auf seiner Bus-Anforderungsleitung an, und behält dieses bei, erlangt die Meisterschaft über den Bus und legt dann ein Signal auf einer Leitung an, die dediziert ist zum Verriegeln des Busses, hierin bezeichnet als die Verriegelungs- bzw. Lock-Leitung. Wenn ein Signal auf der Verriegelungsleitung angelegt ist, wird das Anlegen eines Signals auf den CPA- oder DPA-Prioritätsanforderungsleitungen oder den Host-Bus- Anforderungsleitungen die Meisterschaft über den Bus nicht beeinflussen. In ähnlicher Weise wird ein Ablaufen des Zählers 30 nicht veranlassen, dass die Meisterschaft von dem Systembus 14 aufzugeben ist. Die einzige Situation in der die Meisterschaft über den Systembus 14 beeinflusst wird, nachdem der Systembus 14 verriegelt worden ist, ist wenn ein Signal auf sowohl der Host-Bus-Anforderungsleitung als auch der Backoff-Leitung gleichzeitig angelegt wird. Nachdem der Busmeister seine Transaktion, die erfordert dass der Systembus 14 zu verriegeln ist, vollendet hat, wird das Signal auf der Verriegelungsleitung entfernt und die gewöhnliche Arbitrierung wird wieder aufgenommen.
  • Jeder Prozessor ist auch mit einem Backoff-Pin versehen, der mit einer Leitung verbunden ist, die genutzt wird zum Zurückhalten des aktuellen Prozessors von dem Bus, hierin bezeichnet als die Backoff-Leitung. Außer wenn ein Signal auf der Verriegelungsleitung angelegt worden ist, wird der Prozessor, der der aktuelle Busmeister ist, sofort die Meisterschaft über den Bus 14 aufgeben, wenn ein Signal auf der Backoff-Leitung angelegt wird. Dieser Prozess wird unten beschrieben.
  • Jetzt Bezug nehmend auf 2 kann eine Situation auftreten, in der ein lokaler Prozessor es wünschen würde, eine Transaktion herauszugeben, um von dem Speicher zu lesen, der an dem PCI-Bus 20 angeschlossen ist. Der lokale Prozessor wird Arbitrieren bzw. Vermitteln für und die Meisterschaft über den Systembus 14 erlangen, und die Transaktion an den PCI-Bus 20 über die Brücke 18 herausgeben. Zu der gleichen Zeit kann der Prozessor 22 auf dem PCI-Bus 20 jedoch versuchen, von einem Speicher zu lesen, der mit dem Systembus 14 verbunden ist, oder von dem Speicher des lokalen Prozessors. In dieser Situation versuchen sowohl der lokale Prozessor als auch der externe Prozessor 22, der mit dem PCI-Bus 20 verbunden ist, den Zugriff auf den Systembus 14 gleichzeitig zu erlangen. Auch, da die lokalen und externen Prozessoren nicht miteinander assoziiert sind, gibt es kein Arbitrierungsprotokoll, das die Meisterschaft zwischen dem lokalen Prozessor und dem externen Prozessor 22 bestimmen wird. Diese Situation ist als gegenseitiges Sperren bzw. Deadlock bekannt.
  • Um das Deadlock bzw. die Blockierung aufzulösen, ist jeder Prozessor mit einem Backoff-Pin versehen, der mit der Backoff-Leitung verbunden ist. Die Brücke 18, abfühlend dass die Blockierung aufgetreten ist, wird ein Signal auf der Backoff-Leitung anlegen. Anlegen eines Signals auf der Backoff-Leitung terminiert die Meisterschaft über den Systembus 14 für alle Prozessoren 12 und den Host 10 solang die Transaktion durch den fernen Prozessor 22 noch nicht vollständig erledigt ist. Nach dem Vervollständigen der Transaktion durch den fernen Prozessor 22 wird die Brücke 18 das Signal auf der Backoff-Leitung entfernen bzw. deaktivieren und dem lokalen Prozessor 12, der ursprünglich die Meisterschaft über den Systembus 14 besessen hat, wird erlaubt seine Transaktion zu vervollständigen. In diesem Fall würde es dem lokalen Prozessor mit der Meisterschaft über den Systembus 14 wiederum erlaubt werden zu versuchen, auf den Speicher der mit dem PCI-Bus 20 verbunden ist, zuzugreifen.
  • Ein Ausführungsbeispiel von einem Arbitrierungsprotokoll wird jetzt detaillierter mit Bezug auf die in den 5 bis 8 dargestellten Signaldiagramme beschrieben werden. Jedwelches Arbitrierungsprotokoll, das geeignet ist zum Zuweisen der Meisterschaft über den Systembus 14 zwischen dem Host 10 und den Prozessoren 12a bis 12n, könnte genutzt werden anstelle von oder zusätzlich zu dem dargestellten Protokoll. Das exemplarische Protokoll stellt eine Art dar des Weitergebens der Meisterschaft über den Bus zwischen den mehreren Prozessoren und dem Host in gerechter Weise dar, während es ermöglicht wird, dass Aufgaben mit höherer Priorität bevorzugter Zugriff auf den Bus gewährt wird. In dem beschriebenen Protokoll wird die Meisterschaft über den Bus einer anfordernden Einrichtung in der folgenden Reihenfolge der Priorität gewährt:
    • (1) Host 10 (ein Signal auf HBR angelegt)
    • (2) Prozessor 12 (ein Signal auf BR zusammen mit einem Signal auf CPA angelegt)
    • (3) Prozessor 12 (ein Signal auf BR zusammen mit einem Signal auf DPA angelegt)
    • (4) Prozessor 12 (ein Signal auf BR angelegt).
  • Selbst wenn der Prozessor die Meisterschaft über den Bus besitzt, gibt es jedoch mehrere Fälle, bei denen es für den Prozessor erforderlich ist, die Meisterschaft temporär an einen anderen anfordernden Prozessor oder den Host 10 zu geben. Diese Bedingungen beinhalten:
    • (1) Ein Signal auf der Backoff-Leitung wird angelegt, und Signale auf den Host-Bus-Gewährungs- und Verriegelungsleitungen werden nicht angelegt (der externe Prozessor erlangt temporär die Meisterschaft über den Bus 14).
    • (2) Der aktuelle Meister fordert den Systembus 14 nicht an, und ein anderer Prozessor oder der Host 10 aktiviert seine Bus-Anforderungsleitung oder Host-Bus-Anforderungsleitung bzw. legt ein Signal daran an (der neue Prozessor oder der Host 10 erlangt die Meisterschaft über den Bus 14).
    • (3) Der aktuelle Meister fordert den Systembus 14 an durch Anlegen eines Signals auf seine Bus-Anforderungsleitung und optional eines Signals an die DPA-Prioritätsanforderungsleitung, aber nicht an die CPA-Prioritätsanforderungsleitung und ein anderer Prozessor legt ein Signal an seine Bus-Anforderungsleitung und die CPA-Prioritätsanforderungsleitung an (der neue Prozessor wird der temporäre Busmeister).
    • (4) Der aktuelle Meister fordert den Systembus 14 an durch Anlegen eines Signals auf seine Bus-Anforderungsleitung, aber nicht auf die CPA- oder DPA-Prioritätsanforderungsleitungen und ein anderer Prozessor legt ein Signal an seine Bus-Anforderungsleitung und die DPA-Prioritätsanforderungsleitung an (der neue Prozessor wird der temporäre Busmeister).
    • (5) Der aktuelle Busmeister fordert den Systembus 14 an durch Anlegen eines Signals auf seine Bus-Anforderungsleitung und optional eines Signals auf die CPA- oder DPA-Prioritätsanforderungsleitung und der Host 10 legt ein Signal an die Host-Bus-Anforderungsleitung an (der Host 10 wird der temporäre Busmeister nach der Vollendung der aktuellen Transaktion und dem Anlegen eines Signals auf die Host-Bus-Gewährleitung durch den aktuellen Meister).
    • (6) Der aktuelle Meister fordert den Systembus 14 an durch Anlegen eines Signals auf seine Bus-Anforderungsleitung und optional eines Signals auf die CPA- oder DPA-Prioritätsanforderungsleitung, jedoch läuft der Wert von dem Zähler 30 ab, und ein anderer Prozessor legt ein Signal auf seine Bus-Anforderungsleitung an (der neue Prozessor wird der Busmeister).
  • Signaldiagramme von Signalen auf den Arbitrierungsleitungen sind in den 5 bis 8 dargestellt. In diesen Figuren findet die Arbitrierung wie oben erörtert in mehreren gemeinsam konfigurierten lokalen Arbitrierungseinheiten 26a bis 26n gleichzeitig statt. Alle Arbitrierungseinheiten werden synchron betrieben. Ein Taktsignal MCLK ist vorgesehen, um Operationen von den Arbitrierungseinheiten und dem Systembus zu regeln. Um das Verständnis des Arbitrierungsprozesses zu ermöglichen, sind nur Signale auf Bus-Anforderungsleitungen, die mit drei Prozessoren (BR0, BR1 und BR2) assoziiert sind, dargestellt. In den Signaldiagrammen der 5 bis 8 ist ein Signal angelegt bzw. aktiv, wenn das Signal niedrig ist. Die entgegengesetzte Konvention könnte jedoch genauso gut adaptiert werden.
  • 5 stellt das Arbitrierungsprotokoll zwischen mehreren anfordernden Prozessoren beim Fehlen von jedwelchen Prioritätsanforderungen dar. In 5, während dem Taktzyklus 1, ist der Prozessor 0 der Busmeister, ein Signal auf der Bus-Anforderungsleitung BR0 wird angelegt, und Signale auf den Bus-Anforderungsleitungen BR1 und BR2 werden nicht angelegt bzw. sind nicht aktiv. Die Signale auf den Prioritätsanforderungsleitungen CPA, DPA und der Host-Bus-Anforderungsleitung HBR werden in diesem Szenario auch nicht angelegt und werden während der gesamten in 5 dargestellten Arbitrierung nicht angelegt verbleiben. Das Anlegen von Signalen auf der Leitung CPA, DPA, HBR und HBG wird ausführlicher unten in Verbindung mit den 6 bis 8 dargestellt.
  • Während des Taktzyklus 2 wird ein Signal auf der Leitung BR1 angelegt bzw. aktiviert und während dem Taktzyklus 3 wird ein Signal auf der Leitung BR2 angelegt. Da das Anlegen eines Signals auf den Leitungen BR1 oder BR2 das Recht des aktuellen Busmeisters zum Fortfahren als Busmeister nicht unterbrechen kann, hat das Anlegen von Signalen auf den Leitungen BR1 und BR2 keinen unmittelbaren Effekt auf die Meisterschaft über den Bus. Entsprechend verbleibt der Prozessor 0 der Busmeister bis er seine Transaktionen vollendet hat, und das Signal auf seiner Bus-Anforderungsleitung BR0 beim Zyklus 5 entfernt bzw. deaktiviert. Der Zyklus 5 ist ein Übergabe- bzw. Wechselzyklus, während dem kein Prozessor der Meister über den Systembus 14 ist, und während dem keine Daten über den Bus transferiert werden. Beim Zyklus 6 wird der Prozessor 1 der Busmeister aufgrund seiner Priorität über den Prozessor 2. Man beachte, dass die Reihenfolge in der die Prozessoren den Systembus 14 anfordern, nicht darüber bestimmend ist, welcher Prozessor der nächste Busmeister werden wird. Stattdessen, wie oben erörtert, zum Sicherstellen eines gleichmäßigen bzw. fairen Zugriffs auf den Systembus 14 durch alle Prozessoren, wird ein rotierendes Prioritätsschema genutzt. Obwohl ein rotierendes Prioritätsschema in diesem Ausführungsbeispiel genutzt wird, könnten auch andere Prioritätsschemata genauso gut genutzt werden. Somit würde der Prozessor 1 der Busmeister werden, selbst wenn die Reihenfolge in der die Prozessoren 1 und 2 den Systembus 14 angefordert haben, umgekehrt wäre.
  • Nachdem er Busmeister wird, verbleibt der Prozessor 1 Busmeister bis er seine Transaktion beim Zyklus 10 vollendet hat. Während der Prozessor 1 der Busmeister ist, legt der Prozessor 0 ein Signal auf die Leitung BR0 beim Zyklus 9 an. Nach dem Wechselzyklus (Zyklus 11) geht die Meisterschaft über den Systembus 14 weiter zum Prozessor 2. Der Transfer der Meisterschaft zum Prozessor 2 findet statt, weil der Prozessor 2 Priorität gegenüber dem Prozessor 0 besitzt (der Prozessor 0 hat die niedrigste Priorität aufgrund der Tatsache, dass er der letzte Prozessor war, der die Meisterschaft über den Bus 14 abgetreten hat). Nach dem Vollenden seiner Transaktion beim Zyklus 16 gibt der Prozessor 2 die Meisterschaft über den Systembus 14 an den Prozessor 0 weiter, welcher die Meisterschaft über den Systembus 14 während dem Zyklus 17 annimmt.
  • Die Meisterschaft über den Bus kann unterbrochen werden entweder wenn der Host 10 oder die höchste Priorität in dem System besitzt) den Systembus 14 anfordert, durch Anlegen eines Signals an die Host-Bus-Anforderungsleitung HBR oder wenn einer der anderen Prozessoren den Systembus 14 anfordert und ein Signal an eine von den Prioritätsanforderungsleitungen CPA oder DPA anlegt. Die Arbitrierung beim Vorhandensein von einem Signal auf einer Prioritätsanforderungsleitung wird jetzt mit Bezug auf die 6 bis 8 erörtert werden.
  • 6 ist ein Signaldiagramm, das das Arbitrierungsprotokoll darstellt, wenn ein Signal auf der CPA-Prioritätsanforderungsleitung angelegt wird. Wie in 6 gezeigt, ist der Prozessor 0 anfangs der Busmeister. Während dem Zyklus 1, legt der Prozessor 1 ein Signal auf die Leitung BR1 an. Wie oben bemerkt, beeinflusst dies jedoch nicht die Busmeisterschaft. Somit, während dem Zyklus 2, behält der Prozessor 0 die Busmeisterschaft.
  • Während dem Zyklus 3, legt der Prozessor zwei Signale auf die Leitungen BR2 und CPA an. Da das Anlegen eines Signals auf die Leitung CPA die temporäre Busmeisterschaft beeinflusst, veranlasst das Anlegen von Signalen auf die Leitung BR2 und CPA, dass der Prozessor 1 und der Prozessor 0 handeln. Im Speziellen deaktiviert bzw. entfernt der Prozessor 1 während dem nächsten Taktzyklus (Zyklus 4) das Signal auf der Leitung BR1. In ähnlicher Weise, während dem Zyklus 5, entfernt bzw. deaktiviert der Prozessor 0 das Signal auf der Leitung BR0, um die temporäre Meisterschaft über den Sys tembus 14 an den Prozessor 2 abzutreten. Nachdem der Prozessor 2 seine Prioritätstransaktionen beim Zyklus 10 vollendet hat, tritt er die Steuerung über den Systembus 14 ab (Zyklus 11), und zwar durch Entfernen bzw. Deaktivieren des Signals auf seiner Bus-Anforderungsleitung und dem Signal auf der Leitung CPA. Während dem Zyklus 12 legen sowohl der Prozessor 1 als auch der Prozessor 0 Signale auf ihre entsprechende Bus-Anforderungsleitung an. Da jedoch der Prozessor 0 die Meisterschaft über den Systembus 14 vor dem Anlegen von Signalen auf die Leitungen CPA und BR2 durch den Prozessor 2 hatte, hat der Prozessor 0 Priorität gegenüber dem Prozessor 1. Entsprechend gewinnt der Prozessor 0 die Meisterschaft über den Systembus 14 wieder, und ist fähig seine Transaktionen zu vollenden. Nach der Vollendung seiner Transaktionen gibt der Prozessor 0 die Meisterschaft über den Systembus 14 beim Zyklus 17 auf, und der Prozessor 1 wird im Zyklus 18 der Busmeister.
  • 7 ist ein Signaldiagramm von einer Arbitrierung, die mehrere Prozessoren involviert, von denen einer ein Signal auf die DPA-Prioritätsanforderungsleitung anlegt. Wie in 6 gezeigt, besitzt der Prozessor 0 anfangs die Meisterschaft über den Bus. Während dem Zyklus 1 legt der Prozessor 1 ein Signal auf die Leitung BR1 an, ohne ein Signal auf die Leitung CPA oder Leitung DPA anzulegen. Wie oben mit Bezug auf 5 erörtert, beeinflusst dies nicht die Meisterschaft über den Bus. Entsprechend fährt der Prozessor 0 fort der Meister von dem Bus zu sein.
  • Während dem Zyklus 3 legt der Prozessor 2 Signale an, sowohl auf die Leitung BR2 als auch die DPA-Prioritätsanforderungsleitung. Da dies die Meisterschaft über den Bus beeinflusst, deaktiviert bzw. entfernt der Prozessor 1 das Signal auf der Leitung BR1 und der Prozessor 0 entfernt das Signal auf der Leitung BR0 und zwar während dem Zyklus 4. Entsprechend, nach einem Leerlaufübergabezyklus (Zyklus 5) wird der Prozessor 2 der Busmeister.
  • Nach dem Vollenden seiner Transaktion entfernt der Prozessor 2 die Signale auf den Leitungen BR2 und DPA, gibt somit die Meisterschaft über den Bus auf. Dies veranlasst, dass der Prozessor 1 ein Signal auf der Leitung BR1 während dem Zyklus 11 wieder anlegt, und veranlasst dass der Prozessor 0 ein Signal auf der Leitung BR0 während dem Zyklus 12 wieder anlegt. Da der Prozessor 0 der Meister war vor dem Anlegen des Signals auf der Leitung DPA, besitzt der Prozessor 0 Priorität gegenüber dem Prozessor 1 selbst, obwohl der Prozessor 1 ein Signal auf seiner Bus-Anforderungsleitung einen Zyklus früher wieder angelegt hat als der Prozessor 0 ein Signal auf seiner Bus-Anforderungsleitung wieder angelegt hat. Somit, beim Zyklus 13, gewinnt der Prozessor 0 die Meisterschaft über den Bus wieder. Nach der Vollendung seiner Transaktion, entfernt der Prozessor 0 das Signal auf der Leitung BR0 beim Zyklus 17, somit den Systembus 14 an den Prozessor mit der dann höchsten Priorität überlassend. Wie in 6 gezeigt, ist in diesem Fall der Prozessor mit der nächsthöchsten Priorität der Prozessor 1. Der Prozessor 1 wird die Meisterschaft über den Systembus 14 behalten, durch Anlegen eines Signals auf der Leitung BR1 während seiner Transaktion.
  • In dem Arbitrierungsprozess besitzt ein Prozessor, der ein Signal auf der CPA-Prioritätsanforderungsleitung anlegt, eine höhere Priorität gegenüber einem Prozessor, der ein Signal auf die DPA-Prioritätsanforderungsleitung anlegt. Somit wird ein Prozessor, der ein Signal auf die Leitung DPA anlegt, das Signal auf der Leitung DPA und seine assoziierten Bus-Anforderungsleitung entfernen bzw. deaktivieren, nachdem er abfühlt, dass ein anderer Prozessor ein Signal auf der Leitung CPA angelegt hat. Da dies unkompliziert ist, wird keine weitere Erläuterung geliefert.
  • 8 ist ein Signaldiagramm einer Arbitrierung, die das gleichzeitige Anlegen von zwei Signalen auf die Leitung CPA und das Anlegen durch den Host 10 von einem Signal auf die Leitung HBR involviert. In 8, während dem Zyklus 1, ist der Prozessor 0 der Meister und ein Signal auf der Leitung BR0 ist angelegt. Während dem Zyklus 2 legen sowohl die Prozessoren 1 als auch 2 Signale auf ihren entsprechenden Bus-Anforderungsleitungen BR1 und BR2 an, während sie auch gleichzeitig Signale auf der Leitung CPA anlegen. Während dem Zyklus 3 legt der Host 10 ein Signal auf der Leitung HBR an.
  • Ansprechend darauf, vollendet der Prozessor 0 seine Transaktion. Wie in dieser Figur gezeigt, kann die Vollendung der Transaktion des Prozessors 0 einen Zyklus oder mehr brauchen. Entsprechend, im Zyklus 5, nach der Vervollständigung der Transaktion des Prozessors 0, entfernt bzw. deaktiviert der Prozessor 0 das Signal auf der Leitung BR0 und legt gleichzeitig ein Signal auf der Leitung HBG an.
  • Anlegen eines Signals auf der Leitung HBG übergibt die Meisterschaft über den Systembus 14 an den Host 10. Der Host 10 behält die Meisterschaft über den Systembus 14 so lang wie notwendig, durch Anlegen und Beibehalten eines Signals auf der Leitung HBR. Nach der Vollendung seiner Transaktion, entfernt der Host 10 das Signal auf der Leitung HBR beim Zyklus 10, um die Meisterschaft über den Bus abzugeben und die Meisterschaft über den Bus an den Prozessor 0 zurückzugeben. Da die Prozessoren 1 und 2 jedoch beide Signale auf den Leitungen BR1 und BR2 und Signale auf der Leitung CPA angelegt haben, kehrt die Meisterschaft nicht zurück zum Prozessor 0, wie es andernfalls der Fall wäre. Stattdessen, da das Anlegen eines Signals auf die Leitung CPA durch einen oder mehrere Prozessoren Priorität gegenüber einer Transaktion ohne Priorität annimmt, geht die Meisterschaft weiter zu einem der Prozessoren, die ein Signal auf der Leitung CPA anlegen. In diesem Fall, da die Signale auf der Leitung CPA sowohl durch den Prozessor 1 als auch den Prozessor 2 angelegt worden sind, wird dem Prozessor mit der höheren Priorität die Meisterschaft über den Bus gewährt. In dem illustrierten Beispiel wird dem Prozessor 1 die Priorität gegenüber dem Prozessor 2 gegeben, und die Meisterschaft geht zum Prozessor 1 im Zyklus 12 über. Nach dem Vollenden seiner Transaktion, gibt der Prozessor 1 die Meisterschaft über den Systembus 14 auf, durch Entfernen des Signals auf seiner Bus-Anforderungsleitung BR1 und durch Entfernen des Signals auf der Leitung CPA (durch den Prozessor 1), um die Meisterschaft über den Systembus 14 an den Prozessor 2 im Zyklus 16 weiterzugeben.
  • Man beachte, dass in diesem Fall das Anlegen eines Signals auf der Leitung HBR es dem Prozessor 0 ermöglichen würde, seine Transaktion zu vollenden, selbst obwohl ein Signal auf CPA durch einen anderen Prozessor angelegt worden ist. Falls dies nicht der Fall wäre, und es dem Prozessor 0 nicht erlaubt worden wäre seine Transaktion vor dem Abtreten der Busmeisterschaft an den Host 10 zu vollenden, würde nach der Vollendung der Transaktion von dem Prozessor 2 die Meisterschaft über den Systembus 14 zurück zum Prozessor 0 kehren – d. h. der Prozessor 0 würde eine Priorität gegenüber den anderen Prozessoren besitzen, die nachfolgend Signale auf ihre entsprechende Bus-Anforderungsleitung anlegen, ohne gleichzeitig ein Signal auf die Leitung CPA oder DPA anzulegen.
  • Zusätzlich zu einem lokalen Arbitrierer, ist jeder Prozessor auch mit einem lokalen DRAM-Auffrischcontroller 32 versehen. Wie oben erörtert, muss der DRAM periodisch aufgefrischt werden, und wird typischerweise zeilenweise aufgefrischt. Dementsprechend besitzt ein DRAM-Auffrischcontroller 32 typischerweise einen Zeilenzähler 34, der die Zeile von dem DRAM anzeigt, die zuletzt aufgefrischt wurde, und besitzt einen Rücksetzer zum Zurücksetzen des Zeilenzählers 34, wenn die letzte Zeile von dem DRAM aufgefrischt ist.
  • Weitergeben (Handing off) der DRAM-Auffrischung zwischen mehreren Prozessoren 12 wird dadurch ermöglicht, dass jeder Prozessor mit einem lokalen DRAM-Auffrischcontroller 32 versehen ist. Zusätzlich, wie in 9 gezeigt, kann der Host 10 mit einem DRAM-Auffrischcontroller 32 versehen sein. Versehen des Hosts mit einem DRAM-Auffrischcontroller 32 ist nur notwendig, wenn der Host selbst auf das DRAM zugreifen kann. Jeder lokale DRAM-Auffrischcontroller 32 ist versehen mit einem Auffrischeingangspin zum Empfangen von Signalen auf einer Auffrischleitung. Signale, die bezogen sind auf den Auffrischprozess, werden über die Leitung angelegt, so dass alle lokalen DRAM-Auffrischcontroller 32 die gleiche Eingabe besitzen. Diese Signale können genutzt werden zum Erhöhen des DRAM-Auffrischzählers 34 oder zum Zurücksetzen des Zählers 34. Optional kann der DRAM-Auffrischzähler 34 konfiguriert sein um automatisch zu dem ersten vordefinierten Wert zurückzukehren, nachdem der zweite vordefinierte Wert erreicht wird. Weil alle lokalen DRAM-Auffrischcontroller 32 die gleiche Konfiguration haben, synchronisiert sind und mit den gleichen Eingaben versehen werden, sind alle lokalen DRAM-Auffrischcontroller 32 aktuell, was den Zustand bzw. Status von dem DRAM-Auffrischprozess betrifft. Entsprechend, wenn die Meisterschaft über den Systembus 14 von einem Prozessor 12 zu einem anderen Prozessor 12 transferiert wird, ist der lokale DRAM-Auffrischcontroller 32 fähig, den DRAM-Auffrischprozess fortzuführen, wenn der vorhergehende Busmaster gestoppt hat, und zwar ohne exzessive Duplizierung.
  • Wenn die Meisterschaft über den Bus zu dem Host 10 weitergeht, veranlasst der Auffrischcontroller, dass das DRAM in einen Selbstauffrischzustand eintritt, bevor der Bus dem Host gewährt wird. In dieser Situation muss der Host nicht irgendeine Auffrischoperation durchführen, und ist tatsächlich nicht mit einem DRAM-Auffrischcontroller versehen (3). Optional, falls es gewünscht, wäre es dem Host 10 zu erlauben, auf das DRAM direkt zuzugreifen, könnte der Host 10 mit einem DRAM-Auffrischcontroller mit einer gemeinsamen Konfiguration wie die anderen DRAM-Auffrischcontroller in den Prozessoren 12a bis 12n, wie in 9 gezeigt, versehen sein.

Claims (5)

  1. Eine Vorrichtung, die Folgendes aufweist: einen Bus (14); einen ersten Prozessor (12a), der mit dem Bus verbunden ist; einen zweiten Prozessor (12b), der mit dem Bus verbunden ist; und einen Speicher (16); gekennzeichnet durch: einen ersten lokalen Speicheraktualisierungs-Controller (32), der mit dem ersten Prozessor assoziiert und konfiguriert ist, um Aktualisierungs- bzw. Auffrischoperationen des Speichers zu steuern; einen zweiten lokalen Speicheraktualisierungs-Controller (32), der mit dem zweiten Prozessor assoziiert und konfiguriert ist, um Aktualisierungsoperationen des Speichers zu steuern; und eine Aktualisierungsleitung (Refresh), die mit dem ersten lokalen Speicheraktualisierungs-Controller und dem zweiten lokalen Speicheraktualisierungs-Controller verbunden ist, über die Aktualisierungssignale von sowohl dem ersten lokalen Speicheraktualisierungs-Controller als auch dem zweiten lokalen Speicheraktualisierungs-Controller empfangen werden können, so dass alle lokalen Speicheraktualisierungs-Controller (32) hinsichtlich des Zustands des Speicheraktualisierungs-Prozesses auf dem Laufenden sind.
  2. Vorrichtung nach Anspruch 1, wobei die ersten und zweiten lokalen Speicheraktualisierungs-Controller eine gemeinsame Konfiguration besitzen.
  3. Vorrichtung nach Anspruch 2, wobei die ersten und zweiten lokalen Speicheraktualisierungs-Controller synchron arbeiten.
  4. Vorrichtung nach Anspruch 1, wobei jeder erste und zweite lokale Speicheraktualisierungs-Controller einen dedizierten Eingangsstift, einen Aktualisierungszähler und eine Rückstellung bzw. ein Reset aufweisen.
  5. Vorrichtung nach Anspruch 1, wobei der Speicher ein DRAM ist und wobei die ersten und zweiten lokalen Speicheraktualisierungs-Controller lokale DRAM-Aktualisierungscontroller sind.
DE60036923T 1999-01-22 2000-01-14 Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung Expired - Lifetime DE60036923T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US235780 1999-01-22
US09/235,780 US6389497B1 (en) 1999-01-22 1999-01-22 DRAM refresh monitoring and cycle accurate distributed bus arbitration in a multi-processing environment
PCT/US2000/000951 WO2000043895A1 (en) 1999-01-22 2000-01-14 Dram refresh monitoring and cycle accurate distributed bus arbitration in a multi-processing environment

Publications (2)

Publication Number Publication Date
DE60036923D1 DE60036923D1 (de) 2007-12-13
DE60036923T2 true DE60036923T2 (de) 2008-08-14

Family

ID=22886881

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60036923T Expired - Lifetime DE60036923T2 (de) 1999-01-22 2000-01-14 Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung

Country Status (5)

Country Link
US (1) US6389497B1 (de)
EP (1) EP1151388B1 (de)
CN (1) CN1129073C (de)
DE (1) DE60036923T2 (de)
WO (1) WO2000043895A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001356961A (ja) * 2000-06-13 2001-12-26 Nec Corp 調停装置
DE10048732A1 (de) * 2000-09-29 2002-04-18 Philips Corp Intellectual Pty Multiprozessor-Anordnung
US6687797B1 (en) * 2001-05-17 2004-02-03 Emc Corporation Arbitration system and method
US20030074506A1 (en) * 2001-10-16 2003-04-17 International Business Machines Corporation Extending processors from two-way to four-way configuration
JP3447725B2 (ja) * 2001-10-23 2003-09-16 沖電気工業株式会社 競合調停装置
US7174552B2 (en) 2002-01-12 2007-02-06 Intel Corporation Method of accessing a resource by a process based on a semaphore of another process
US7133949B2 (en) * 2003-09-29 2006-11-07 International Business Machines Corporation Distributed switching method and apparatus
FR2860896A1 (fr) * 2003-10-14 2005-04-15 St Microelectronics Sa Procede d'arbitrage de l'acces a une ressource partagee
US20050144401A1 (en) * 2003-12-30 2005-06-30 Pantalone Brett A. Multiprocessor mobile terminal with shared memory arbitration
US8732368B1 (en) * 2005-02-17 2014-05-20 Hewlett-Packard Development Company, L.P. Control system for resource selection between or among conjoined-cores
KR100660874B1 (ko) * 2005-07-25 2006-12-26 삼성전자주식회사 듀얼 포트를 갖는 디램에서의 리프레시 제어 방법
EP2079176B1 (de) * 2008-01-11 2010-06-16 Micronas GmbH Kommunikationseinrichtung und Verfahren zur Übertragung von Daten
DE102011007437A1 (de) * 2010-11-15 2012-05-16 Continental Teves Ag & Co. Ohg Verfahren und Schaltungsanrodnung zur Datenübertragung zwischen Prozessorbausteinen
CN105810235B (zh) * 2016-03-31 2019-02-05 中国人民解放军国防科学技术大学 一种dram刷新控制器及多通道dram同步刷新方法
CN111149166B (zh) 2017-07-30 2024-01-09 纽罗布拉德有限公司 基于存储器的分布式处理器架构
US11144358B1 (en) 2018-12-06 2021-10-12 Pure Storage, Inc. Asynchronous arbitration of shared resources
CN115408239A (zh) * 2022-09-09 2022-11-29 中国兵器装备集团自动化研究所有限公司 一种基于总线仲裁的冗余系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58192148A (ja) * 1982-05-07 1983-11-09 Hitachi Ltd 演算処理装置
JPS60133592A (ja) * 1983-12-21 1985-07-16 Hitachi Ltd 複合メモリリフレツシユ方式
US4796232A (en) 1987-10-20 1989-01-03 Contel Corporation Dual port memory controller
US4987529A (en) 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
IT1229667B (it) 1989-04-24 1991-09-06 Bull Hn Information Syst Sistema di elaborazione dati con arbitratore duale di accesso a bus di sistema.
DE69127518T2 (de) * 1990-06-19 1998-04-02 Dell Usa Lp Digitalrechner, der eine Anlage für das aufeinanderfolgende Auffrischen einer erweiterbaren dynamischen RAM-Speicherschaltung hat
US5261109A (en) 1990-12-21 1993-11-09 Intel Corporation Distributed arbitration method and apparatus for a computer bus using arbitration groups
US5265231A (en) * 1991-02-08 1993-11-23 Thinking Machines Corporation Refresh control arrangement and a method for refreshing a plurality of random access memory banks in a memory system
US5265223A (en) 1991-08-07 1993-11-23 Hewlett-Packard Company Preservation of priority in computer bus arbitration
US5265212A (en) 1992-04-01 1993-11-23 Digital Equipment Corporation Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types
US5301283A (en) 1992-04-16 1994-04-05 Digital Equipment Corporation Dynamic arbitration for system bus control in multiprocessor data processing system
US5313591A (en) 1992-06-25 1994-05-17 Hewlett-Packard Company Computer bus arbitration for N processors requiring only N unidirectional signal leads
US5638529A (en) 1992-08-24 1997-06-10 Intel Corporation Variable refresh intervals for system devices including setting the refresh interval to zero
AU6988494A (en) 1993-05-28 1994-12-20 Rambus Inc. Method and apparatus for implementing refresh in a synchronous dram system
JPH0714382A (ja) 1993-06-15 1995-01-17 Mitsubishi Electric Corp マイクロコンピュータ
US5710891A (en) 1995-03-31 1998-01-20 Sun Microsystems, Inc. Pipelined distributed bus arbitration system
US5740174A (en) 1995-11-02 1998-04-14 Cypress Semiconductor Corp. Method and apparatus for performing collision detection and arbitration within an expansion bus having multiple transmission repeater units
JP2000030441A (ja) * 1998-07-15 2000-01-28 Mitsubishi Electric Corp 半導体記憶装置及び半導体記憶装置のリフレッシュ方法

Also Published As

Publication number Publication date
EP1151388B1 (de) 2007-10-31
EP1151388A1 (de) 2001-11-07
US6389497B1 (en) 2002-05-14
CN1338075A (zh) 2002-02-27
WO2000043895A1 (en) 2000-07-27
CN1129073C (zh) 2003-11-26
DE60036923D1 (de) 2007-12-13

Similar Documents

Publication Publication Date Title
DE60036923T2 (de) Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE3486299T2 (de) Bus-Arbitrierungssystem.
DE69521549T2 (de) Verfahren zur Verwaltung gemeinsamer Mittel mehrerer Verarbeitungseinheiten
DE60036096T2 (de) Vorrichtung zur kommunikation zwischen mehreren funktionseinheiten in einer rechnerumgebung
DE3687947T2 (de) Schnittstelle und Verfahren für Buszugriff in einem Rechner.
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE69834519T2 (de) Bussteuerungssystem und -verfahren
DE69724463T2 (de) Verfahren und gerät um einen gleichzeitigen zugriff von mehreren agenten auf einem gemeinsamen speicher zu gewährleisten
DE69021603T2 (de) Buszugriffsarbitrierung in digitalen Rechnern.
DE69222469T2 (de) Verfahren zur Verminderung der Restbandbreite eines Busses in einem Rechnersystem
DE69322310T2 (de) Busarchitektur für integrierten Daten/- und Videospeicher
DE69718892T2 (de) Busarbitrierungsverfahren und -vorrichtung mit gewichteter bandbreitenzuteilung
DE69223304T2 (de) Arbitrierungsverriegelungverfahren und -vorrichtung für einen entfernten Bus
DE69634182T2 (de) Direktspeicherzugriffssteuerung mit programmierbarer Zeitsteuerung
DE68928772T2 (de) Datenverarbeitungssystem mit sich um Zugriff auf verteilte Betriebsmittel bewerbenden Einheiten und mit auf den Status der verteilten Betriebsmittel reagierender Schiedsrichtereinheit
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE69515355T2 (de) Mehrfacharbitrierungsschema
DE4018481C2 (de)
DE68915074T2 (de) Integrierte Zeitgeberschaltung mit mehreren Kanälen und zugeordnetem Bedienungsprozessor.
DE3606211A1 (de) Multiprozessor-computersystem
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.
DE3485980T2 (de) Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem.
DE4035837A1 (de) Bus-hauptschnittstellenschaltung mit transparenter unterbrechung einer datenuebertragungsoperation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition