[go: up one dir, main page]

DE60309923T2 - Datenverarbeitungsvorrichtung mit adressenumlenkung als reaktion auf periodische adressenmuster - Google Patents

Datenverarbeitungsvorrichtung mit adressenumlenkung als reaktion auf periodische adressenmuster Download PDF

Info

Publication number
DE60309923T2
DE60309923T2 DE60309923T DE60309923T DE60309923T2 DE 60309923 T2 DE60309923 T2 DE 60309923T2 DE 60309923 T DE60309923 T DE 60309923T DE 60309923 T DE60309923 T DE 60309923T DE 60309923 T2 DE60309923 T2 DE 60309923T2
Authority
DE
Germany
Prior art keywords
units
address
unit
data processing
addresses
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 - Fee Related
Application number
DE60309923T
Other languages
English (en)
Other versions
DE60309923D1 (de
Inventor
Bijo Thomas
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE60309923D1 publication Critical patent/DE60309923D1/de
Application granted granted Critical
Publication of DE60309923T2 publication Critical patent/DE60309923T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Communication Control (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf eine Datenverarbeitungsanordnung und auf ein Verfahren zur Datenverarbeitung.
  • Aus dem US Patent Nr. 4.956,768 ist eine Datenverarbeitungsanordnung bekannt, die eine doppelte Pufferung von Daten schafft, die zwischen einem Prozessor und einer Anzahl Ausgängen übertragen worden sind. Jeder Ausgang ist mit einem Paar Speicher versehen. Der Prozessor schreibt abwechselnd an einen ersten der Speicher und an einen zweiten Speicher der Speicher. Wenn der Prozessor an den einen Speicher schreibt, wird der andere Speicher an den Ausgang gekoppelt. Auf diese Weise kann das Schreiben von dem Prozessor aus und das Ausliefern an den Ausgang parallel durchgeführt werden.
  • Ein mit dem Ausgang assoziierter Prozessor steuert, welcher der Speicher mit dem Prozessor verbunden wird und welcher mit dem Ausgang verbunden wird. Das US Patent Nr. 4.956.768 beschreibt nicht, wie Stellen innerhalb der Speicher adressiert werden und unter welchen Umständen die Rolle der Speicher umgeschaltet wird.
  • US-A-5968153 beschreibt eine doppelte Puffereinheit und eine Inhaberlogik, die mit einem PCI-Controller und einem Speichercontroller gekoppelt ist, wobei die genannte Inhaberlogik dazu verwendet wird, den Inhaber jedes Puffers zu ermitteln. Wenn der eine Puffer mit ausgelesen Daten von einem PCI-Controller gefüllt ist, wird die Eigentümerschaft dieses Puffers ausgetauscht, so dass ein Speichercontroller diesen Puffer leeren kann, während der andere Puffer gefüllt wird.
  • Die vorliegende Erfindung schafft eine Datenverarbeitungsanordnung nach Anspruch 1 sowie ein Datenverarbeitungsverfahren nach Anspruch 11. Nach der vorliegenden Erfindung steuert eine unabhängige Umschaltanordnung welche Speichereinheit mit welcher Datenverarbeitungseinheit verbunden wird. Adressen von den Datenverarbeitungseinheiten werden verwendet um Stellen in einer Speichereinheit zu adressieren, die von der Umschalteinheit selektiert worden sind, so dass eine bestimmte Adresse eine Stelle in verschiedenen Speichereinheiten zu verschiedenen Zeitpunkten während der Durchführung desselben Programms adressieren kann, und zwar abhängig von der Selektion durch die Umschalteinheit. Die unabhängige Umschalteinheit überwacht die von wenigstens einer der Datenverarbeitungseinheiten gelieferten Adressen um Wiederholungen in dem Muster von Adressen zu detektieren, die von der Verarbeitungseinheit geliefert worden sind. Bei Detektion einer Wiederholung schaltet die Umschalteinheit die Selektion derjenigen Speichereinheit um, die mit der Datenverarbeitungseinheit verbunden ist.
  • Vorzugsweise ist das Kriterium zum Detektieren der Wiederholungen programmierbar, und zwar unter Anwendung beispielsweise der Detektion einer Wiederholung von Adressen in einem programmierbaren Bereich, oder einer programmierbaren Anzahl Wiederholungen, oder einer programmierbaren Kombination von Wiederholungen von Adressen von verschiedenen Verarbeitungseinheiten (beispielsweise abwechselnd nach Detektion von Wiederholungen von den beiden Verarbeitungseinheiten oder abwechselnd für jede betreffende Verarbeitungseinheit, wenn eine Wiederholung in dem Adressenmuster dieser betreffenden Verarbeitungseinheit detektiert wird, ggf. bedingt durch Detektion einer Wiederholung durch eine andere Verarbeitungseinheit nach einem vorhergehenden Wechsel der Adressenabbildung von der betreffenden Verarbeitungseinheit).
  • Es können mehrere Verfahren zum Detektieren von Wiederholungen angewandt werden, wie nach der Detektion einer Wiederholung einer Adresse, die von einer Verarbeitungseinheit empfangen wurde, oder Detektion einer bestimmten Anzahl Zugriffsvorgänge innerhalb eines bestimmten Bereichs, oder Detektion nach der Verwendung aller Adressen in einem bestimmten Bereich.
  • Im Allgemeinen wird die Datenverarbeitungsanordnung weitere Speichereinheiten aufweisen, deren Verbindungen nicht mit Hilfe einer Umschalteinheit umgeschaltet werden. Auf diese Weise kann nur ein Subsatz des Bereichs von Adressen, die eine Datenverarbeitungseinheit benutzen kann, um Speicheradressenstellen in den Speichereinheiten zu adressieren, die über die Umschalteinheit verbunden sind, verwendet werden. Während die Adressen in diesem Subsatz abwechselnd auf verschiedenen Speichereinheiten abgebildet werden, werden die restlichen Adressen im Allgemeinen auf denselben Speichereinheiten abgebildet. Die Umschalteinheit überwacht vorzugsweise nur die Wiederholung von Adressen in dem Subsatz von Adressen von denjenigen Adressstellen in den Speichereinheiten, die über die Umschalteinheit mit den Datenverarbeitungseinheiten verbunden sind. Auf diese Weise sind die Wechsel zwischen verschiedenen Speichereinheiten nicht unmittelbar von Adressierungsmustern außerhalb der Speichereinheiten abhängig, die über die Umschalteinheit verbunden sind.
  • Wenigstens zwei Datenverarbeitungseinheiten und wenigstens zwei Speichereinheiten können über die Umschalteinheit verbunden werden. Die vorliegende Erfindung aber ist auf einfache Weise skalierbar. Im Rahmen der vorliegenden Erfindung kann eine größere Anzahl als zwei Datenverarbeitungseinheiten und/oder Speichereinheiten miteinander verbunden werden, so dass eine Adresse von einer Datenverarbeitungseinheit auf jede beliebige Einheit von drei oder mehr Speichereinheiten abgebildet werden kann. In diesem Fall kann die Umschalteinheit abwechselnd drei oder mehr Speichereinheiten mit einer Datenverarbeitungseinheit auf eine "round-robin"-Weise abwechselnd verbinden. Auf alternative Weise kann die Umschalteinheit derart programmiert werden, dass sie detektiert, welcher Subsatz von Speichereinheiten abwechselnd mit einer bestimmten Datenverarbeitungseinheit verbunden ist. Auf diese Weise kann die Datenverarbeitungsanordnung derart konfiguriert werden, dass sie flexibel mehrere gepufferte Kommunikationen liefert von mehr als nur einem Strom von Daten zwischen mehr als zwei Datenverarbeitungseinheiten.
  • Ausführungsbeispiele der vorliegenden Erfindung sind in der Zeichnung dargestellt und werden im Folgenden näher beschrieben. Es zeigen:
  • 1 eine Datenverarbeitungsanordnung,
  • 2 eine Ausführungsform einer Umschaltsteuereinheit,
  • 3 eine weitere Ausführungsform einer Umschaltsteuereinheit,
  • 4 eine andere Ausführungsform einer Umschaltsteuereinheit, und
  • 5 eine Umschalteinheit.
  • 1 zeigt eine Datenverarbeitungsanordnung. Die Anordnung umfasst Verarbeitungseinheiten 10a, b, eine Anzahl Speichereinheiten 18a-c, eine Umschalteinheit 17 und eine Umschaltsteuereinheit 16. Jede Datenverarbeitungseinheit 10a, b hat Verbindungen zu einem betreffenden Adressen/Steuerbus 14, 15 und zu einem betreffenden Datenbus 12, 13. Der Adressenbus 12 und der Datenbus 14 der ersten Verarbeitungseinheit 10a sind mit einem ersten Port der Umschalteinheit 17 und einer ersten Speichereinheit 18a verbunden. Der Adressen/Steuerbus 13 und der Datenbus 15 einer zweiten Verarbeitungseinheit 10a sind mit einem zweiten Port der Umschalteinheit 17 gekoppelt. Weiterhin sind die Adressen/Steuerbusse 14, 15 der ersten und der zweiten Verarbeitungseinheit 10a, b mit der Umschaltsteuereinheit 16 gekoppelt. Die Umschaltsteuereinheit 16 ist mit einem Steuerausgang mit der Umschalteinheit 17 gekoppelt. Die Umschalteinheit 17 hat dritte und vierte Porte mit Verbindungen für Adressen/Steuer- und Datenbusleitungen zu einer zweiten bzw. einer dritten Einheit von Speichereinheiten 18a-c.
  • Im Betrieb führen die Verarbeitungseinheiten 10a, b Programme durch, die Instruktionen zum Lesen und/oder Schreiben von Daten von und zu den Speicherstellen umfassen. Die Instruktionen definieren die Adressen der betreffenden Speicherstellen. In Reaktion auf die Instruktionen liefern die Verarbeitungseinheiten 10a, b diese Adressen zu den Speichereinheiten 18a-c über die Adresse/Steuerbusse. Abhängig davon, ob die Instruktionen gelesene oder geschriebene Instruktionen sind, lesen die Verarbeitungseinheiten 10a, b auch Daten über die Datenbusse 12, 13 oder schreiben Daten über die Datenbusse 12, 13. Die Speichereinheiten 18a-c, welche die Stelle enthalten, die von den Adressen adressiert sind, führen Daten von den adressierten Stellen zu den Datenbussen 12, 13 zurück oder speichern Daten von diesen Datenbussen 12, 13 an den adressierten Stellen.
  • Eine erste und eine zweite Speichereinheit 18b, c enthalten Stellen, die von denselben Adressen adressiert sind. Je nach einem Steuersignal von der Umschaltsteuereinheit 16 führt die Umschalteinheit 17 diese Adresse selektiv der ersten oder der zweiten Speichereinheit 18b, c zu. Auf gleiche Weise werden die Daten entsprechend diesen Adressen der selektierten Speichereinheit 18b, c zu. Auf diese Weise adressiert je nach einem Zustand der Umschaltsteuereinheit 16 die Adresse von einer Verarbeitungseinheit 10a, b entweder eine Stelle in der ersten Speichereinheit 18b oder in der zweiten Speichereinheit 18c. Wenn die Adresse von der ersten Verarbeitungseinheit 10a außerhalb des Bereichs von Adressen, die Stellen in der ersten und in der zweiten Speichereinheit 18b, c adressieren, kann die Adresse eine dritte Speichereinheit 18a direkt adressieren, d.h. nicht über die Umschalteinheit 17.
  • Obschon nur eine einzige direkt adressierte dritte Speichereinheit 18a dargestellt ist, dürfte es einleuchten, dass eine Anzahl derartiger direkt verbundener Speichereinheiten im Wesentlichen vorhanden sind, einige mit dem Adressier/Steuerbus 14 und dein Datenbus 12 der ersten Verarbeitungseinheit 10a und andere mit dem Adressier/Steuerbus 15 und dem Datenbus 13 der zweiten Verarbeitungseinheit 10b gekoppelt sind.
  • Die Umschaltsteuereinheit 16 enthält eine (nicht dargestellte) Zustandsfesthalteschaltung, wie ein Zustandsregister, das die Zustandsinformation festhält, die bestimmt, welche der Speichereinheiten 18b, c mit dem Adressier/Steuerbus 14, 15 und dem Datenbus 12, 13 von welchen der Verarbeitungseinheiten 10a, b verbunden ist. Die schal tende Steuereinheit 16 aktualisiert diese Zustandsinformation in Abhängigkeit von Adressen, die von den Verarbeitungseinheiten 10a, b über die Adressier/Steuerbusse 14, 15 empfangen worden sind. Die schaltende Steuereinheit 16 benutzt diese Adressen zum Detektieren des Starts verschiedener Perioden eines Periodenmusters in der Adresse. Jedes Mal, dass die schaltende Steuereinheit 16 den Start einer Periode detektiert, aktualisiert die Zustandsinformation, so dass die Adressen danach einer anderen Speichereinheit 18b, c zugeführt werden. Es gibt mehrere Möglichkeiten den Start einer Periode zu detektieren.
  • 2 zeigt eine erste Ausführungsform der schaltenden Steuereinheit 16 in der einfachsten Form, wobei nur ein einziges Signal zur Steuerung der schaltenden Einheit 17 erzeugt wird. In dieser Ausführungsform enthält die schaltende Steuereinheit 16 einen Adressenvergleicher 20a, der mit dem Adressier/Steuerbus 14 gekoppelt ist. Der Vergleicher 20a hat einen Ausgang, der mit einem Zustandsregister 22a gekoppelt ist, der an sich wieder einen Ausgang hat, der mit einer Steuereinheit der (nicht dargestellten) schaltenden Einheit 17 gekoppelt ist. Im Betrieb vergleicht der Vergleicher 20a Adressen von dein Adressier/Steuerbus 14 mit einer eingestellten Adresse. Wenn die eingestellte Adresse detektiert wird, sorgt der Vergleicher 20a dafür, dass der Inhalt des Zustandsregisters 22 umschaltet, was an sich wieder dafür sorgt, dass die Umschalteinheit 17 die Speichereinheiten 18b, c tauscht, die mit der ersten und der zweiten Verarbeitungseinheit 10a, b gekoppelt sind.
  • Eine andere Ausführungsform der Umschaltsteuereinheit 16 hat dieselbe Struktur wie in 2 dargestellt, aber in dieser Ausführungsform ist der Vergleicher 20a ein Vergleicher, der signalisiert, wenn die Adresse irgendwo in einem Bereich der Adressen ist, die Stellen in der ersten oder in der zweiten Speichereinheit 18b, c adressiert (beispielsweise dadurch, dass zwei Vergleiche angestellt werden, die auf eine Adresse niedriger als eine obere Grenzadresse und höher als eine untere Grenzadresse sind, oder dadurch, dass nur ein signifikanterer Teil der Adresse verwendet wird). In dieser Ausführungsform ist die Einheit 22a ein Zähler, der die Anzahl Male zählt, dass Adressen in dem Bereich adressier werden, ein Zustandsregister rückstellt und aktualisiert, das die Verbindungen steuert, die von der Umschalteinheit 17 am Anfang einer neuen Periode gemacht wurden, wenn eine bestimmte Anzahl Adressen gezählt worden ist. Eine derartige bestimmte Anzahl kann eine vorbestimmte Anzahl oder eine programmierbare Anzahl sein, die von einem Programmeingestellt wird, das von einer der Verarbeitungseinheiten 18b, c durchgeführt wird. In dieser Ausführungsform kann eine Schaltungsanordnung als Vergleicher 20a verwendet wer den, das ein Freigabesignal für die Speichereinheit 18b, c erzeugt (oder ein Chipfreigabesignal, wenn jede Speichereinheit 18b, c aus einem Speicherchip besteht), wobei dieser Vergleicher dann in diesem Fall dazu verwendet werden kann, um Freigabesignale für die Speichereinheit für die Speichereinheit 18b, c zu liefern, und zwar abhängig von der Speichereinheit, die selektiert worden ist.
  • 3 zeigt eine weitere Ausführungsform der Umschaltsteuereinheit 16. In dieser Ausführungsform enthält die Umschaltsteuereinheit 16 einen Leseänderungsschreibspeicher 30, einen Detektor 32 und eine Flip-Flop-Schaltung 34. Der Adressier/Steuerbus 14 ist mit einem Adresseneingang des Leseänderungsschreibspeichers 30 gekoppelt und ein Datenausgang des Speichers 30 ist mit einem Eingang des Detektors 32 gekoppelt. Ein Ausgang des Detektors 32 ist mit einem Eingang der Flip-Flop-Schaltung 34 gekoppelt, von der ein Ausgang mit dem Ausgang der Umschaltsteuereinheit 16 gekoppelt ist. Der Ausgang des Detektors 32 ist weiterhin mit einem Rückstelleingang des Speichers 30 gekoppelt. Der Speicher 30 hat eine betreffende Speicherstelle für jeden Adressenwert, die benutzt werden kann zum Adressieren von Stellen in dem ersten und zweiten Speicher 18b, c.
  • Im Betrieb detektiert diese Ausführungsform der Umschaltsteuereinheit 16 den Start einer neuen Adressierungsperiode durch Überprüfung auf wiederholte Adressierung einer Adresse in der ersten oder in der zweiten Speichereinheit 18a, b. Der Speicher 30 behält Information für jeden Adressenwert fest, die angibt, ob der Adressenwert in einer aktuellen Periode verwendet worden ist. Die Adressen, die Stellen in dem ersten oder in dem zweiten Speicher 18b, c adressieren, adressieren auch Stellen in dem Speicher 30. Zunächst stellt beim Start einer Periode der Detektor 32 den Inhalt des Speichers 30 zurück. Jeweils, wenn eine derartige Adresse empfangen wird, wird der Inhalt der betreffenden Stelle in dem Speicher 30 eingestellt. Die Daten, die vorher an dieser Stelle in dem Speicher 30 gespeichert waren, werden von dem Detektor getestet. Wenn diese Daten eingestellt worden sind, signalisiert der Detektor 32 eine Wiederholung der Periode, wodurch der Dateninhalt in der Flip-Flop-Schaltung 34 umschaltet und der Inhalt des Speichers 30 rückgestellt wird. Der Dateninhalt der Flip-Flop-Schaltung 34 steuert die durch die Schalteinheit 17 gemachte Verbindung. Diese Ausführungsform ermöglicht es, eine verfeinerte Form der Periodendetektion zu schaffen, wobei beispielsweise ignoriert wird, wenn bestimmte Adressen in einer bestimmten Periode nicht verwendet werden.
  • Bei einer weiteren Ausführungsform kann der Detektor 32 durch einen Zähler ersetzt werden, der zählt, wie oft Daten, die aus dem Speicher 30 ausgelesen wurden, angaben, dass eine Adresse in einer Periode zum ersten Mal verwendet wurde. In dieser Ausführungsform signalisiert dieser Zähler eine neue Periode (wodurch eine Umschaltung durch die Umschalteinheit 17, eine Rückstellung des Speichers 30 und eine neue Periode des Zählprozesses ausgelöst wird), wenn ein bestimmter Zählwert überschritten wird. Auf diese Weise signalisiert die Umschaltsteuereinheit eine neue Periode, wenn genügend verschiedene Stellen (mehr als die bestimmte Anzahl) adressiert worden sind. Die bestimmte Anzahl kann vorbestimmte oder von den Verarbeitungseinheiten 10a, b, beispielsweise mit Hilfe eines Registers, das mit wenigstens einer der Verarbeitungseinheiten zum Einstellen eines Anfangswertes des Zählers gekoppelt ist, programmierbar sein. Diese Ausführungsform ermöglicht es, eine verfeinerte Periodendetektion zu verwirklichen, beispielsweise durch Ignorierung wiederholter Zugriffsvorgänge mit derselben Adresse.
  • Obschon die anhand der 2 und 3 bisher beschriebenen Ausführungsformen eine Detektion der Periode von Adressen an einem der Adressier/Steuerbusse 14 zeigen, dürfte es einleuchten, dass die Adressier/Steuerbusse 14, 15 verwendet werden könnten, oder dass Adressen von einer Kombination der Busse verwendet werden könnte, wobei beispielsweise geschaltet wird, wenn der Start einer neuen Periode in einer der Verarbeitungseinheiten 10a, b detektiert worden ist. Wenn die Umschalteinheit 17 eine gleichzeitige Verbindung von mehr als nur einer Verarbeitungseinheit 10a, b mit derselben Speichereinheit ermöglicht, (beispielsweise auf eine zeitverschachtelten Weise oder auf Basis von einer Antragsbeurteilung), kann die Umschaltsteuereinheit 16 die Busverbindungen der Verarbeitungseinheiten 10a, b unabhängig von einander zwischen den zwei Speichereinheiten 18b, c umschalten. Dazu kann die Umschaltsteuereinheit 16 mit zwei Detektionsschaltungen versehen sein, die beispielsweise je von dem Typ sein, wie im Kontext der 2 oder 3 beschrieben, die mit je einem Daten- und Adressenbus gekoppelt sind und die je steuern, mit welcher Speichereinheit 18b, c dieser Adressenbus verbunden wird.
  • 3a zeigt ein Beispiel einer Ausführungsform der Umschaltsteuereinheit 16, in der Adressen von einer Kombination von Bussen verwendet werden. Die Ausführungsform enthält eine erste und eine zweite Wiederholungsdetektionseinheit 300a, b, einen Zustandsvergleicher 302 und ein Steuerregister 304. Jede der Wiederholungsdetektionseinheiten 300a, b kann einen Adressenvergleicher oder einen Speicher mit einem Detektor ent halten, wie in den 2 und 3 dargestellt. Ausgänge der Wiederholungsdetektionseinheiten 300a, b sind mit dem Zustandsvergleicher 302 gekoppelt, der seinerseits einen Aktualisierungsausgang aufweist, der mit dem Steuerregister 304 gekoppelt ist. Das Steuerregister 304 hat einen Steuerausgang, der mit der (nicht dargestellten) Umschalteinheit 17 gekoppelt ist.
  • Im Betrieb detektieren die Wiederholungsdetektionseinheiten 300a, b Wiederholungen in dem Adressierungsmuster von einigen der Verarbeitungseinheiten, beispielsweise wie in dem Kontext der 2 und 3 beschrieben. Bei Detektion einer Wiederholung senden die Wiederholungsdetektionseinheiten 300a, b ein Signal zu dem Zustandsvergleicher 302. In einer einfachen Ausführungsform behält der Zustandsvergleicher 302 Zustandsbits fest, die eingestellt werden, wenn die betreffenden Wiederholungen eingestellt werden und der Zustandsvergleicher das Steuerregister 304 schaltet, wenn die Zustandsbits einmal eingestellt worden sind, wobei die Zustandsbits gelöscht werden. In dieser Ausführungsform werden Zugriffsvorgänge von einer bestimmten Verarbeitungseinheit vorzugsweise suspendiert, wenn das Zustandsbit für diese Verarbeitungseinheit einmal eingestellt worden ist.
  • In einer anderen Ausführungsform verzögert der Zustandsvergleicher 302 nicht die Aktualisierung des Steuerregisters 304 bis die Zustandsbits für alle Verarbeitungseinheiten eingestellt worden sind, sondern erzeugt beispielsweise eine Aktualisierung zur abwechselnden Abbildung von Adressen von jeder bestimmten Verarbeitungseinheit, wenn die Wiederholung in dem Adressenmuster aus dieser bestimmten Verarbeitungseinheit einmal aufgetreten ist, es sei denn, dass kein Wechsel in der Abbildung von Adressen von einer anderen Verarbeitungseinheit seit dem letzten Wechsel der Abbildung der betreffenden Verarbeitungseinheit aufgetreten ist.
  • Obschon nur die Verwendung von Adressen zur Steuerung der Umschaltung dargestellt ist zum Schaffen eines einfachen Entwurfs, dürfte es einleuchten, dass in komplexeren Entwürfen andere Steuersignale von dem Adressier/Steuerbus 14, 15 auch verwendet werden können. So kann beispielsweise die Umschaltsteuereinheit 16 derart entworfen sein, dass sie Adressen nur dann benutzt, wenn sie zum Auslesen verwendet werden oder nur dann, wenn sie zum Schreiben verwendet werden. Dies macht es möglich, dass eine verfeinerte Periodendetektion, beispielsweise durch Ignorierung von Lesevorgängen, verwirklicht wird.
  • Weiterhin kann, obschon vorausgesetzt worden ist, dass die in 2 und 3 dargestellten einfachen Umschaltsteuereinheiten Wiederholungen in einem festen Bereich von Adressen oder einer festen Adresse detektieren, als eine Alternative ein programmierbarer Bereich oder eine programmierbare Adresse verwendet, werden, gesteuert, beispielsweise durch Verwendung eines oder mehrerer Register in dem Vergleicher 20a zum Definieren eines Detektionsbereichs, wobei das Register mit wenigstens einer der Verarbeitungseinheiten gekoppelt ist, so dass diese Verarbeitungseinheit Werte in diese Register einschreiben kann, so dass diese Verarbeitungseinheit unter Programmsteuerung Werte in diese Register schreiben kann.
  • Auf gleiche Weise kann ein Adressenbereichsdetektor dem Detektor nach 3 hinzugefügt werden, und zwar dadurch, dass für jede Adresse detektiert wird, ob diese in einem programmierbaren Bereich ist. Wenn eine Wiederholung einer Adresse mit Hilfe des Lesen-Modifizieren-Schreiben-Speichers detektiert wird, wird eine Widerholung nur dann signalisiert, wenn die Adresse sich in dem programmierten Bereich befindet. Auf diese Weise können die Kriterien für die Detektion von Wiederholungen von Adressenmustern in Abhängigkeit von dem unter Programmsteuerung verwendeten Programm eingestellt werden. Auf gleiche Weise können die Kriterien für Detektionswiederholungen von einer Kombination von Verarbeitungseinheiten 10a, b programmgesteuert werden.
  • Vorzugsweise sind alle Adressen, die für die Detektionswiederholungen in den anhand der 2 und 3 beschriebenen Ausführungsformen nur Adressen in dem Bereich der Adressen, die Speicherstellen in den Speichereinheiten 18b, c adressieren. Aber bei einer weiteren Ausführungsform können Adressen außerhalb dieses Bereichs verwendet werden. Auf diese Weise ist es möglich, dass eine große Variation von Zugriffsmustern mit Adressen in den Speichereinheiten 18b, c erlaubt wird, die über die Umschalteinheit 17 verbunden sind, während dennoch eine Detektion der Wiederholung erlaubt ist, und zwar unter Verwendung der Adressen außerhalb des Bereichs von Adressen dieser Speichereinheiten 18b, c.
  • 4 zeigt eine Ausführungsform der Umschalteinheit 17. Die Ausführungsform enthält selektierbare Adressen/Datenbustreiber 40a, b, 42a, b. Ein erster Adressen/Datenbustreiber 40a ist zwischen dem Adressier/Steuerbus 14 und dem Datenbus der ersten Verarbeitungseinheit 10a (nicht dargestellt) einerseits, und den Daten/Adressenverbindungen für die erste Speichereinheit 18a (nicht dargestellt) anderseits vorgesehen. Ein zweiter Adressen/Datenbustreiber 40b ist zwischen dem Adressier/Steuerbus 14 und dem Datenbus 12 der ersten Verarbeitungseinheit 10a (nicht dargestellt) einerseits und den Daten/Adressenverbindungen für die zweite Speereinheit 18b (nicht dargestellt) anderseits vorgesehen. Ein dritter Adressen/Datenbustreiber 42a ist zwischen dem Adressier/Steuerbus 15 und dem Datenbus 13 der zweiten Verarbeitungseinheit 10b (nicht dargestellt) einerseits und den Daten/Adressenverbindungen für die erste Speichereinheit 18a (nicht dargestellt) andererseits. Ein vierter Adressen/Datenbustreiber 42b ist zwischen dem Adressier/Steuerbus 15 und dem Datenbus 13 der zweiten Verarbeitungseinheit 10b (nicht dargestellt) einerseits und den Daten/Adressenverbindungen für die zweite Speichereinheit 18b (nicht dargestellt) anderseits vorgesehen.
  • Die Umschalteinheit 17 hat einen Eingang 44 für ein Steuersignal, das den Freigabeeingängen der Adressen/Datenbustreiber 40a, b, 42a, b zugeführt wird, so dass der erste sowie vierte Adressen/Datenbustreiber 40a, 42b gleichzeitig freigegeben werden oder der zweite und dritte Adressen/Datenbustreiber 40b, 42a gleichzeitig freigegeben werden, und zwar abhängig von einem Steuersignal von der Umschaltsteuereinheit 16 (nicht dargestellt). Wenn freigegeben, lassen die Adressen/Datenbustreiber 40a, b, 42a, b Datensignale und Adressensignale durch.
  • Im Rahmen der vorliegenden Erfindung können komplexere Steuersignale verwendet werden, beispielsweise Steuersignale, die es ermöglichen, dass der erste und der zweite Adressen/Datenbustreiber 40a, b unabhängig von dem dritten und vierten Adressen/Datenbustreiber 42a, b gesteuert werden, unter der Bedingung, dass ein gewisser Teilungsmachanismus vorgesehen ist, der einen gemeinsamen Zugriff auf die Speichereinheiten 18a, b ermöglicht (beispielsweise ein Zeitschlitzmultiplexmechanismus, ein Prioritätsmechanismus oder ein Entscheidungsmechanismus).
  • Die Umschalteinheit 17 kann auf einfache Art und Weise erweitert werden um eine größere Anzahl Verarbeitungseinheiten und/oder Speichereinheiten unterstützen zu können. Mehr Verarbeitungseinheiten werden dadurch unterstützt, dass mehr Adressen/Datenbustreiber hinzugefügt werden; mehr Speichereinheiten werden unterstützt, wenn mehr Adressen/Datenbustreiber miteinander verbunden werden. Mehr als zwei Speichereinheiten können verwendet werden, beispielsweise um Adressen aus den Verarbeitungseinheiten 10a, b in verschiedenen Speichern abzubilden. Dazu können statt der in den 2 und 3 dargestellten Flip-Flop-Schaltungen Zykluszähler für jede der Verarbeitungseinheiten 10a, b verwendet werden, und zwar um zu selektieren, welche der Speichereinheiten 18a, b von jeder der Verarbeitungseinheiten 10a, b adressiert werden. Dies mach es leichter möglich, das Abbilden von Adressen aus den einzelnen Verarbeitungseinheiten 10a, b umzuschalten, wenn einmal eine Wiederholung detektier worden ist, ohne dass dadurch Speicherkonflikte verursacht werden. Unter Programmsteuerung können verschiedene Zyklen der Speichereinheiten 18a, b selektiert werden, beispielsweise durch Abwechselung einiger Adressen zwischen einem ersten Paar Speichereinheiten und der abwechselnden Adressierung anderer Adressen zwischen einem zweiten Paar Speichereinheiten, oder der zyklischen Abbildung der Adressen über drei Speichereinheiten.
  • Es dürfte einleuchten, dass die Anordnung es ermöglicht, dass eine Verarbeitungseinheit 10a, b Stellen in betreffen Speichereinheiten 18a, b mit derselben Adresse adressiert. Steuerung der Speichereinheit, in der die Stelle adressiert ist, wird durch eine Umschaltsteuereinheit durchgeführt, die außerhalb der Verarbeitungseinheit liegt und die in Abhängigkeit von der Detektion des Starts einer Wiederholung eines periodischen Musters die Umschaltung selektiert. Obschon dieselbe Adresse von jeder Verarbeitungseinheit 10a, b Stellen in verschiedenen Speichereinheiten 18a, b in Abhängigkeit von dem Zustand der Umschaltsteuereinheit 16 adressiert, ist es nicht unbedingt notwendig, dass Stellen in den Speichereinheiten 18a, b durch dieselben Adressen von verschiedenen Verarbeitungseinheiten 10a, b adressiert werden. Ein gewisser Adressenübersetzungsmechanismus (wenn nur Unterdrückung eines signifikanteren Teils der Adresse, die zum Unterscheiden von Adressen innerhalb der Speichereinheiten 18a, b nicht notwendig ist) kann zwischen die Verarbeitungseinheiten 10a, b und die Speichereinheiten 18a, b eingeschlossen werden, und zwar in Abhängigkeit von der Verarbeitungseinheit, von der die Adresse geliefert wird.

Claims (11)

  1. Datenverarbeitungsanordnung, welche die nachfolgenden Elemente umfasst: – eine Anzahl Datenverarbeitungseinheiten (10a-b), die je einen Adressenausgang (14, 15) und einen Dateneingang und/oder Ausgang (12, 13) haben, – eine Anzahl Speichereinheiten (18a, b), die je einen Adresseneingang und einen Dateneingang und/oder Ausgang haben, – eine Umschalteinheit (16, 17), die Folgendes enthält: – erste selektierbare Verbindungen zwischen dem Dateneingang und/oder Ausgängen (12, 13) der Verarbeitungseinheiten (10a) und selektierbare Verbindungen des Dateneingangs und/oder von Ausgängen der Speichereinheiten (18a, b), – zweite selektierbare Verbindungen von den Adressenausgängen der Verarbeitungseinheiten (10b) zu den Adresseneingängen selektierbarer Verbindungen der Speichereinheiten (181, b), dadurch gekennzeichnet, dass die genannte Umschalteinheit weiterhin Folgendes umfasst: – eine Detektionseinheit (20a, 30, 32) die mit den Adressenausgängen der Verarbeitungseinheiten (10a, b) gekoppelt ist, vorgesehen zum Detektieren von Wiederholungen einer Periode eines Adressenmusterausgang durch die wenigstens eine Einheit der Verarbeitungseinheiten (10a, b), – ein Zustandsfesthalteelement (22a, 34) zur Steuerung der ersten und zweiten selektierbaren Verbindungen, wobei ein Eingang des Zustandsfesthalteelementes (22a, 34) mit der Detektionseinheit (20a, 30, 32) gekoppelt ist, um die ersten und zweiten selektierbaren Verbindungen in Reaktion auf die Detektion einer neuen Wiederholung der genannten Wiederholungen umzuschalten, so dass identische Adressen von den Datenverarbeitungseinheiten (10a, b) während aufeinander folgenden Wiederholungen abwechselnd zu anderen Einheiten der Speichereinheiten (18a, b) übereinstimmen.
  2. Datenverarbeitungsanordnung nach Anspruch 1, wobei ein Kriterium zum Detektieren der neuen Wiederholung unter Ansteuerung eines Programms programmierbar ist, das von der Anordnung durchgeführt wird.
  3. Datenverarbeitungsanordnung nach Anspruch 1, wobei die Detektionseinheit einen Adressenvergleicher (20a) aufweist, vorgesehen um zu detektieren, ob die Adressen von dem Adressenausgang einer ersten Datenverarbeitungseinheit (10a, b) in einem Bereich einer oder mehrerer Adressen liegen, die mit den Speichereinheiten (18a, b) assoziiert sind, und zum Erzeugen eines Detektionssignals das die neue Wiederholung angibt, und zwar jeweils wenn eine der Adressen von dem Adressenausgang der ersten Datenverarbeitungseinheit (10a, b) eine bestimmte Anzahl Male Adressen in dem genannten Bereich ausgeliefert hat.
  4. Datenverarbeitungsanordnung nach Anspruch 3, wobei die genannte bestimmte Anzahl Eins ist, und wobei der genannte Bereich ein Subsatz einer Adresse oder mehrerer Adressen ist, die mit den Speichereinheiten (18a, b) assoziiert sind.
  5. Datenverarbeitungsanordnung nach Anspruch 3, wobei die genannte bestimmte Anzahl größer ist als Eins, wobei die Anordnung einen Zähler aufweist zum Zählen einer gezählten Anzahl Adressen von dem Adressenausgang der ersten Verarbeitungseinheit der genannten Verarbeitungseinheiten in dem genannten Bereich, wenigstens bis an die genannte bestimmte Anzahl.
  6. Datenverarbeitungsanordnung nach Anspruch 1, wobei die Detektionseinheit einen Zugriffsspeicher (30) aufweist für wenigstens eine der Datenverarbeitungseinheiten (10a, b), wobei der Zugriffsspeicher (30) Stellen aufweist für eine Anzahl Adressen, die Stellen in den Speichereinheiten (18a, b) adressieren, die durch die erste Datenverarbeitungseinheit der Datenverarbeitungseinheiten (10a, b) adressierbar sind, wobei der Zugriffsspeicher (30) dazu vorgesehen ist, Zugriff auf die Stellen in den Speichereinheiten (18a, b) aufzuzeichnen, wobei die Detektionseinheit (32) dazu vorgesehen ist, ein Detektionssignal zu erzeugen, das die neue Wiederholung angibt, und zwar in Abhängigkeit davon, ob der Zugriffspeicher (30) angibt, dass eine Adresse, die von der ersten Verarbeitungseinheit der Verarbeitungseinheiten (10a, b) geliefert worden ist, vorher während der Wiederholung geliefert worden ist.
  7. Datenverarbeitungsanordnung nach Anspruch 6, wobei die Detektionseinheit (32) das Detektionssignal erzeugt, wenn die wenigstens eine Verarbeitungseinheit der Datenverarbeitungseinheiten (10a, b) eine Adresse ausliefert, für die der Zugriffsspeicher (30) vorher nach der Detektion der neunen Wiederholung Zugriff aufgezeichnet hat.
  8. Datenverarbeitungsanordnung nach Anspruch 6, wobei die Detektionseinheit (32) das Detektionssignal erzeugt, wenn die wenigstens eine Verarbeitungseinheit der Datenverarbeitungseinheiten (10a, b) mehr als eine bestimmte Anzahl Adressen durchgeführt hat, für die der Zugriffsspeicher angibt, dass die Adresse nicht vorher während der Wiederholung geliefert worden ist.
  9. Datenverarbeitungsanordnung nach Anspruch 1, wobei die genannte Anzahl Speichereinheiten (18a, b) drei oder mehr Speichereinheiten aufweist, wobei das Zustandsfesthalteelement die Umschaltung der ersten und der zweiten selektierbaren Verbindungen steuert, so dass identische Adressen von den Datenverarbeitungseinheiten zyklisch verschiedene Einheiten der drei oder mehr Speichereinheiten während aufeinander folgenden Wiederholungen abbilden.
  10. Datenverarbeitungsanordnung nach Anspruch 1, wobei die Detektionseinheit dazu vorgesehen ist, die Detektion von Wiederholungen durchzuführen, die sich auf die Wiederholung von Lese- und/oder Schreibsteuersignalen von wenigstens einer Einheit der Verarbeitungseinheiten (10a, b) beziehen.
  11. Datenverarbeitungsverfahren, wobei dieses Verfahren Folgendes umfasst: – das Detektieren der Wiederholung von Perioden von Zugriffsadressenmustern, ausgeliefert von wenigstens einer Einheit einer Anzahl Verarbeitungseinheiten, – das Umschalten selektierbarer Verbindungen zwischen dem Dateneingang und/oder Ausgängen der Verarbeitungseinheiten und dem Dateneingang und/oder Ausgängen selektierbarer Einheiten einer Anzahl Speichereinheiten, so dass eine gleiche Adresse von wenigstens einer Einheit der Anzahl Verarbeitungseinheiten abwechselnd eine Stelle in verschie denen Einheiten der Speichereinheiten adressieren in Abhängigkeit von der Detektion der genannten Wiederholung.
DE60309923T 2002-11-05 2003-10-08 Datenverarbeitungsvorrichtung mit adressenumlenkung als reaktion auf periodische adressenmuster Expired - Fee Related DE60309923T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP02079612 2002-11-05
EP02079612 2002-11-05
PCT/IB2003/004427 WO2004042591A1 (en) 2002-11-05 2003-10-08 Data processing apparatus with address redirection in response to periodic address patterns

Publications (2)

Publication Number Publication Date
DE60309923D1 DE60309923D1 (de) 2007-01-04
DE60309923T2 true DE60309923T2 (de) 2007-10-18

Family

ID=32309402

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60309923T Expired - Fee Related DE60309923T2 (de) 2002-11-05 2003-10-08 Datenverarbeitungsvorrichtung mit adressenumlenkung als reaktion auf periodische adressenmuster

Country Status (9)

Country Link
US (1) US20060041692A1 (de)
EP (1) EP1563401B1 (de)
JP (1) JP2006505845A (de)
CN (1) CN1711528A (de)
AT (1) ATE346342T1 (de)
AU (1) AU2003264788A1 (de)
DE (1) DE60309923T2 (de)
TW (1) TW200416553A (de)
WO (1) WO2004042591A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100583072C (zh) * 2006-10-13 2010-01-20 鸿富锦精密工业(深圳)有限公司 控制器、地址控制方法及使用其的总线数据传输系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5835627A (ja) * 1981-08-26 1983-03-02 Toshiba Corp メモリデ−タ先取り制御方式
JPS62206658A (ja) * 1986-03-07 1987-09-11 Hitachi Ltd 記憶管理装置
US4933846A (en) * 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
US4920484A (en) * 1988-10-05 1990-04-24 Yale University Multiprocessor/memory interconnection network wherein messages sent through the network to the same memory are combined
JP3203701B2 (ja) * 1990-11-01 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法
US5551054A (en) * 1991-11-19 1996-08-27 Adaptec, Inc. Page mode buffer controller for transferring Nb byte pages between a host and buffer memory without interruption except for refresh
JP3178909B2 (ja) * 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
US5519839A (en) * 1992-10-02 1996-05-21 Compaq Computer Corp. Double buffering operations between the memory bus and the expansion bus of a computer system
US5777628A (en) * 1996-05-29 1998-07-07 Hewlett-Packard Company Method and apparatus for detecting cache collisions in a two dimensional memory
US5884050A (en) * 1996-06-21 1999-03-16 Digital Equipment Corporation Mechanism for high bandwidth DMA transfers in a PCI environment
US6170046B1 (en) * 1997-10-28 2001-01-02 Mmc Networks, Inc. Accessing a memory system via a data or address bus that provides access to more than one part
US7433948B2 (en) * 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US6816989B2 (en) * 2001-12-28 2004-11-09 Hewlett-Packard Development Company, L.P. Method and apparatus for efficiently managing bandwidth of a debug data output port or buffer
US7617329B2 (en) * 2002-12-30 2009-11-10 Intel Corporation Programmable protocol to support coherent and non-coherent transactions in a multinode system

Also Published As

Publication number Publication date
CN1711528A (zh) 2005-12-21
DE60309923D1 (de) 2007-01-04
TW200416553A (en) 2004-09-01
EP1563401B1 (de) 2006-11-22
JP2006505845A (ja) 2006-02-16
ATE346342T1 (de) 2006-12-15
WO2004042591A1 (en) 2004-05-21
EP1563401A1 (de) 2005-08-17
US20060041692A1 (en) 2006-02-23
AU2003264788A1 (en) 2004-06-07

Similar Documents

Publication Publication Date Title
DE69323861T2 (de) Multiprozessorsystem mit gemeinsamem Speicher
DE3689042T2 (de) Gerät zur Pufferung von Schreibanforderungen.
EP1329816B1 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE3687787T2 (de) Speicherzugriff-steuerungsschaltung.
DE3300263A1 (de) Schaltungsanordnung zur zuteilung des zugriffs zu einer auf anforderungsbasis gemeinsam benutzten sammelleitung
DE3015875A1 (de) Speicherzugriffssystem und verfahren fuer einen zugriff zu einem digitalen speichersystem
DE2547488A1 (de) Mikroprogrammierte datenverarbeitungsanlage
DE1549474B2 (de) Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE68927202T2 (de) Paralleler Prozessor
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE1499206B2 (de) Rechenanlage
DE3013064C2 (de) Schaltungsanordnung zur Übertragung von Bitgruppen zwischen einer von mehreren peripheren Einheiten und einem Pufferspeicher
DE60309923T2 (de) Datenverarbeitungsvorrichtung mit adressenumlenkung als reaktion auf periodische adressenmuster
EP1915694A1 (de) Vorrichtung und verfahren zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle
DE2242279C3 (de) Schaltungsanordnung zur Ermittlung von Fehlern in einer Speichereinheit eines programmgesteuerten Datenvermittlungssystems
DE69321544T2 (de) Halbleiterspeicheranordnung
DE2502920A1 (de) Steueranordnung fuer den betrieb eines datenendgeraetes
EP1441359B1 (de) Speichervorrichtung für eine Multibus-Architektur
DE2161213B2 (de) Verfahren und Steuereinheit zum Übertragen von Datenwortblöcken
DE69500544T2 (de) Mikrocomputer mit integrierter Haltepunktanordnung zur Erkennung von zusammengesetzten Ereignissen
DE2939412C2 (de) Schaltungsanordung zum Adressieren von Daten für Lese- und Schreibzugriffe in einer Datenverarbeitungsanlage
DE69705072T2 (de) Verfahren zur ausführung von lese- und schreibbefehlen in einem mehrstufigen verteilten datenverarbeitungssystem
DE3334410C1 (de) Anordnung zur digitalen Bildverarbeitung
EP0970426B1 (de) Abhängigkeitssteuerung für überlappende speicherzugriffe

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee