DE602004008628T2 - Datenverarbeitungsschaltung mit gemultiplextem speicher - Google Patents

Datenverarbeitungsschaltung mit gemultiplextem speicher Download PDF

Info

Publication number
DE602004008628T2
DE602004008628T2 DE602004008628T DE602004008628T DE602004008628T2 DE 602004008628 T2 DE602004008628 T2 DE 602004008628T2 DE 602004008628 T DE602004008628 T DE 602004008628T DE 602004008628 T DE602004008628 T DE 602004008628T DE 602004008628 T2 DE602004008628 T2 DE 602004008628T2
Authority
DE
Germany
Prior art keywords
circuit
data processing
memory
processing circuit
access
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
DE602004008628T
Other languages
English (en)
Other versions
DE602004008628D1 (de
Inventor
Jozef L. Kessels
Ivan Andrejic
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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of DE602004008628D1 publication Critical patent/DE602004008628D1/de
Application granted granted Critical
Publication of DE602004008628T2 publication Critical patent/DE602004008628T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Communication Control (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Dram (AREA)
  • Bus Control (AREA)

Description

  • Die Erfindung betrifft eine Vorrichtung, bei der von verschiedenen Schaltkreisen ausgeführte Prozesse auf den gleichen Speicherschaltkreis mit einem einfachen Port zugreifen.
  • Theoretisch wäre ein Speicher mit mehreren Ports die ideale Lösung für ein Zulassen eines unabhängigen Zugriffs unterschiedlicher Schaltkreise auf denselben Speicherschaltkreis. Praktisch werden reale Mehrfachport-Speicher nicht bevorzugt, weil sie im Vergleich mit herkömmlichen Einzelport-Speichern beträchtliche Unkosten mit sich bringen. Daher wird ein Einzelport-Speicher häufig benutzt, um einen Pseudomehrfachport-Speicher zu realisieren.
  • Aus US 6,412,049 ist eine Vorrichtung bekannt, die ein Arbitrierungsverfahren für einen Speicher mit Serviceperioden ausführt, während derer isosynchrone und asynchrone Speicherzugriffe abgearbeitet werden, wobei isosynchrone Zugriffsanforderungen Vorrang vor asynchronen Anforderungen haben. Die deterministische Natur der isosynchronen Anforderungen ermöglicht eine Vorhersage, wie viele derartige Anforderungen eine Abwicklung innerhalb einer einzelnen Speicherbetriebsperiode erfordern. Folglich kann bestimmt werden, ob ausreichend Zeit vorhanden ist, um eine asynchrone Speicherzugriffsanforderung während einer laufenden Betriebsperiode abzuwickeln, oder ob die Abwicklung einer anstehenden asynchronen Anforderung bis zur nächsten Betriebsperiode verschoben werden muss.
  • Aus US 5,706,482 ist eine Vorrichtung mit einem Pseudomehrfachport-Speicher bekannt, die einen Einzelport-Speicherschaltkreis zum Speichern von Bilddaten umfasst. Ein erster Schaltkreis, der einen Schreibprozess ausführt, und ein zweiter Schaltkreis, der einen Leseprozess ausführt, haben beide Zugriff auf den Speicher. Eine FIFO-Schreibwarteschlange ist zwischen dem Speicherport und dem ersten Schaltkreis vorgesehen, und eine FIFO-Lesewarteschlange ist zwischen dem Speicherport und dem zweiten Schaltkreis vorgesehen. Ein Arbitrier- Schaltkreis erlaubt ein Lesen von Daten aus einem Speicher, wenn die FIFO-Lesewarteschlange leer läuft. Ansonsten wird der FIFO-Schreibwarteschlange von dem ersten Schaltkreis Zugriff zum Ausführen zwischengespeicherter Schreibbefehle erteilt. Auf den Speicher wird mit einer höheren Frequenz zugegriffen als die Frequenz der Lese- und Schreib-Zugriffe von dem ersten und zweiten Schaltkreis. US 5,706,482 beschreibt, dass die Speicherschreib- und -lese-Geschwindigkeit wenigstens das Doppelte der Schreibgeschwindigkeit von Daten in den Schreibzwischenspeicher beziehungsweise der Lesegeschwindigkeit von Daten aus dem Lesezwischenspeicher sein sollte.
  • Eine hohe Speichergeschwindigkeit ist nicht vorteilhaft. Sie führt zu einem hohen Energieverbrauch und legt der Betriebsgeschwindigkeit der Vorrichtung Grenzen auf.
  • Unter anderen ist es eine Aufgabe der Erfindung, eine Vorrichtung mit einem Einfachport-Speicher und wenigstens zwei Schaltkreisen, die auf den Speicher unabhängig zugreifen, bereitzustellen, in der eine geringere Speicherzugriffsgeschwindigkeit verwendet werden kann.
  • Unter anderen ist es eine weitere Aufgabe der Erfindung, dass die Schaltkreise, die auf den Speicher zugreifen, jeweils unter Steuerung ihres eigenen im Wesentlichen periodischen Taktsignals ohne Aufschieben einer Ausführung für einen Taktzyklus, um während eines Speicherzugriffs durch andere Schaltkreise zu warten, betrieben werden können.
  • Unter anderen ist es eine weitere Aufgabe der Erfindung, die benötigte Zugriffsgeschwindigkeit zu verringern, wenn wenigstens zwei der Schaltkreise, die auf den Speicher zugreifen, gegenseitig unterschiedliche Taktperioden aufweisen.
  • Unter anderen ist es eine andere Aufgabe der Erfindung, eine Vorrichtung mit einem Einfachport-Speicher und wenigstens zwei Schaltkreisen bereitzustellen, die unabhängig auf den Speicher zugreifen, in der keine Multipositions-FIFO-Warteschlange benutzt wird.
  • Die Vorrichtung gemäß der Erfindung ist in Anspruch 1 dargelegt. In der Vorrichtung verwirklicht ein Timing-Schaltkreis eine variable Phasenverschiebung zwischen den periodischen Startzeiten von Gültigkeitsintervallen, in denen ein erster Verarbeitungs-Schaltkreis Zugriffsanforderungen (enthaltend z. B. Speicheradressen) und eine Annahme der Zugriffsanforderungen in dem Gültigkeitsintervall ausgibt (ein Annehmen einer Speicher-Zugriffsanforderung, wie hier benutzt, bedeutet lediglich, dass der Speicherschaltkreis eine Bearbeitung der Anforderung auf eine Art beginnt, dass die Anforderung nicht länger aufrechterhalten werden muss). Eine Bearbeitung einer Zugriffsanforderung von einem zweiten Verarbeitungs-Schaltkreis erhöht die Phasenverzögerung, bevor eine nächste Anforderung angenommen werden kann. Jedoch wird eine derartige Zugriffsanforderung von dem zweiten Verarbeitungs-Schaltkreis lediglich bearbeitet, wenn die sich ergebende erhöhte Phasenverzögerung für den ersten Datenverarbeitungs-Schaltkreis innerhalb des Gültigkeitsintervalls verbleibt. In nachfolgenden Gültigkeitsperioden wird die Phasenverzögerung in aufeinanderfolgenden Schritten verringert, bis die Verzögerung in einer einzelnen Periode der Gültigkeit wenigstens eine minimale Speicherauffrischungsperiode vor dem Ende des einzelnen Gültigkeitsintervalls liegt. Durch Zulassen einer variablen Phasenverzögerung werden die der Speicherzugriffs-Geschwindigkeit auferlegten Geschwindigkeitsanforderungen verringert.
  • Da die Phasenverzögerung innerhalb des Gültigkeitsintervalls der Anforderungen bleibt, können die Anforderungen von dem ersten Datenverarbeitungs-Schaltkreis innerhalb des Gültigkeitsintervalls, während dessen sie von dem ersten Datenverarbeitungs-Schaltkreis ausgegeben werden, immer angenommen werden. Es besteht keine Notwendigkeit, dass der erste Datenverarbeitungs-Schaltkreis für einen Betriebszyklus pausiert, um auf eine Annahme einer Anforderung zu warten. In einer Ausführungsform wird entsprechend ein einzelnes Register benutzt, um eine Anforderungsinformation aufzunehmen, ohne eine FIFO zur Zwischenspeicherung einer Anzahl von Anforderungen, die sich auf zwei oder mehr Anforderungen erhöhen kann, zu benutzen. Das Register kann sogar für aufeinanderfolgende Speicherungsanforderungen von beiden Datenverarbeitungs-Schaltkreisen gemeinsam benutzt werden, da Anforderungen des ersten Datenverarbeitungs-Schaltkreises immer gültig bleiben, bis nachdem An forderungen von den zweiten Datenverarbeitungs-Schaltkreisen gestrichen werden können.
  • In einer Ausführungsform umfasst der Timing-Schaltkreis entsprechende Taktgeber-Schaltkreise für ein periodisches Takten des Betriebs der ersten und zweiten Verarbeitungs-Schaltkreise, so dass eine Summe der Frequenzen, bei denen eine neue Zugriffsanforderung verfügbar gemacht wird (oder mit der Ausnahme von Verarbeitungs-abhängigen Gründen verfügbar gemacht werden kann), kleiner als das Inverse der minimalen Speicherauffrischungsperiode ist. Somit wird sichergestellt, dass alle Zugriffsanforderungen von periodisch getakteten Verarbeitungs-Schaltkreisen bearbeitet werden und dass der zweite Verarbeitungs-Schaltkreis lediglich Zugriffsanforderungen macht, wenn sie ausreichend früh bearbeitet werden können, so dass eine Bearbeitung vor dem Ende einer Taktperiode des ersten Datenverarbeitungs-Schaltkreises, in dem eine nachfolgende Zugriffsanforderung gemacht worden ist, beendet wird.
  • In einer Ausführungsform umfasst der Timing-Schaltkreis einen asynchronen Arbitrier-Schaltkreis. Jeder Verarbeitungs-Schaltkreis gibt Zugriffsanforderungen (enthaltend unter anderem eine Speicheradresse) zu periodischen Startzeiten (Takt-Ticks) aus und der Arbitrier-Schaltkreis ordnet Konflikte sequentiell an. Sobald der Speicher eine Anforderung annehmen kann, nimmt der Arbitrier-Schaltkreis die zuerst gemachte Anforderung zuerst an. Wenn beide Verarbeitungs-Schaltkreise Anforderungen simultan angenommen haben, entscheidet der Arbitrier-Schaltkreis, in welcher Reihenfolge die Anforderungen angenommen werden.
  • In einer Ausführungsform ist die variable Verzögerung durch Einführen einer selbst zeitlich festgelegten Aktivität, die wiederholt zuerst eine Anforderung über den Arbitrier-Schaltkreis von einem der Verarbeitungs-Schaltkreise empfängt und dann den erforderlichen Speicherzugriff durchführt. Diese selbst zeitlich festgelegte Aktivität erzeugt ein drittes Takt-(Timing)-Signal zum Zugreifen auf den Speicher, so dass die Speicherzugriffe in Bezug auf die Verarbeitungstakte variable Phasenverschiebungen aufweisen (Annehmen einer Speicherzugriffsanforderung, wie hierin benutzt, bedeutet lediglich, dass der selbst zeitlich festgelegte Schaltkreis die Anforderung in ein Zwischenspeicherregister kopiert hat). Wenn alle Anforderungen bedient werden müssen, wird die Speichergeschwindigkeitsanforderung auf diese Art verringert werden auf: Die Leistung des Speichers sollte nicht kleiner als die Summe der Zugriffsraten der Verarbeitungs-Schaltkreise sein. Man beachte, dass dies dem Speicher lediglich eine geringere Geschwindigkeitsanforderung in Bezug auf Lösungen des Standes der Technik auferlegt, wenn die Zugriffsraten von unterschiedlichen Verarbeitungs-Schaltkreisen unterschiedlich sind.
  • Durch Einschließen des Arbiters vor der selbst zeitlich festgelegten Aktivität tragen die durch den Arbiter eingeführten Verzögerungen nicht zu der minimalen Speicherauffrischungsperiode bei. Dies verringert die dem Speicher auferlegten Geschwindigkeitserfordernisse.
  • Wenn beide Verarbeitungs-Schaltkreise einen Zugriff auf den Speicher simultan anfordern und die Anforderung des schnellsten Verarbeitungs-Schaltkreises zuletzt bearbeitet wird, dann wird diese Anforderung nach der Speicherzugriffszeit angenommen, die kleiner als die Taktperiode des Takts des schnellsten Verarbeitungs-Schaltkreises ist. Während des Zeitintervalls, in dem die Zugriffsanforderung von dem schnellsten Verarbeitungs-Schaltkreis durch die zeitlich selbst festgelegte Aktivität bearbeitet wird, kann die nächste Zugriffsanforderung von dem schnellsten Verarbeitungs-Schaltkreis bereits erfolgen. Diese zweite Anforderung wird mit einer relativ zu der Taktzeit, zu der die Anforderung offeriert wird, kleineren Verzögerung als die vorherige angenommen. Bei nachfolgenden Zugriffen wird die Phasenverzögerung in aufeinanderfolgenden Stufen verringert, bis die Verzögerung entweder Null ist oder die langsam verarbeitende Einheit einen Zugriff anfordert. Zu der Zeit, wenn das Letztere auftritt, ist die Verzögerung zwischen dem Takt und einer Annahme einer Speicheranforderung in der schnellen Verarbeitungs-Einheit auf ein solches Ausmaß verringert worden, dass die nach einem Annehmen einer Anforderung verbliebene Zeit und dem nächsten Taktzeitabschnitt wenigstens die Speicherzugriffszeit ist (und ein gewisser Timing-Überschuss).
  • In einer Ausführungsform wird dementsprechend ein einzelnes Register in der selbst zeitlich festgelegten Aktivität benutzt, um die Zugriffsinformation aufzunehmen, ohne eine FIFO zum Zwischenspeichern einer Anzahl von Anforderun gen zu benutzen, die zwei oder mehrere Anforderungen übersteigen kann. Da die selbst zeitlich festgelegte Aktivität hinter dem Arbiter ist, wird das Register für nachfolgende Speicheranforderungen von beiden Datenverarbeitungs-Schaltkreisen gemeinsam benutzt.
  • Die minimale Speicherauffrischungsperiode braucht nicht viel größer als das Zeitintervall zwischen aufeinanderfolgenden Anforderungen von dem schnellen Verarbeitungs-Schaltkreis zu sein. Wenn keine Anforderung von einem Verarbeitungs-Schaltkreis verpasst werden sollte, sollte die Summe der Zugriffsanforderungsfrequenzen beider Verarbeitungs-Schaltkreise kleiner als das Inverse der Speicherzugriffszeit sein. Wenn die Zugriffsfrequenz eines der Verarbeitungs-Schaltkreise geringer als diejenige des anderen ist, ist die erforderliche Speicherzugriffsgeschwindigkeit daher weniger als das Zweifache derjenigen des schnellen Verarbeitungs-Schaltkreises. Wenn die Zugriffsfrequenz des langsamen Datenverarbeitungs-Schaltkreises ein Zehntel derjenigen des schnellen Datenverarbeitungs-Schaltkreises ist, braucht die Speichergeschwindigkeit typischerweise lediglich um 10 % höher als die Geschwindigkeit des schnellen Verarbeitungs-Schaltkreises zu sein.
  • Ein Datenregister kann zum Empfangen von Lesedaten von dem Speicher in Antwort auf Leseanforderungen vorgesehen sein. Wenn Leseanforderungen lediglich mit einer geringen Frequenz erzeugt werden, müssen Lesedaten mit einer geringen Rate aufgefrischt werden, so dass sie von einem oder mehreren der Verarbeitungs-Schaltkreise ohne spezielle Timing-Erfordernisse verarbeitet werden können. Wenn lediglich der zweite Datenverarbeitungs-Schaltkreis Leseanforderungen mit einer Frequenz, die geringer als die Anforderungsfrequenz des ersten Datenverarbeitungs-Schaltkreises ist, erzeugt, ist es insbesondere sichergestellt, dass die Lesedaten innerhalb einer festen Verzögerung zur Verwendung durch den zweiten Datenverarbeitungs-Schaltkreis verfügbar sein werden.
  • In einer Ausführungsform unterscheiden sich die Lese- und Schreib-Datenbreite, wobei die Lesedaten (für den zweiten Datenverarbeitungs-Schaltkreis) ein Vielfaches an Schreibwörtern (vom ersten Datenverarbeitungs-Schaltkreis) enthalten. Somit kann eine große Datenrate mit einer geringen Anforderungsrate von dem zweiten Datenverarbeitungs-Schaltkreis realisiert werden, wobei eine minimale Speicherauffrischungsfrequenz zugelassen wird, die lediglich leicht über der Anforderungsfrequenz des schnellen Datenverarbeitungs-Schaltkreises liegt.
  • Der Speicher kann aus Bänken gebildet sein, die an sukzessiven geometrischen Positionen entlang einer Reihe in einem integrierten Schaltkreis angeordnet sind. In dem Fall werden die Leitungsverzögerungen signifikant zu der Zugriffszeit beitragen, die aus einer Summe der Speicherzugriffszeit und der Leitungsverzögerungen besteht. Die Reduzierung der Zugriffsfrequenz durch diese Leitungsverzögerungen kann durch ein Durchführen der Zugriffe auf die unterschiedlichen Speicherbänke in einer Pipeline mit sukzessiven, mit entsprechenden der Speicherbänke gekoppelten Stufen vermindert werden. Vorzugsweise weist jede Speicherbank eine zeitlich selbst festgelegte Aktivität auf, die wiederholt zuerst eine Zugriffsanforderung von ihrem Vorgänger in der Pipeline empfängt und dann diese Anforderung an ihren Nachfolger durchgibt, während ein Zugriff auf ihre Bank, wenn dies erforderlich ist, durchgeführt wird. In einer derartigen Ausführungsform ist die Leistung des Speichers, wenn überhaupt, durch die Leitungsverzögerungen zwischen zwei benachbarten Speicherbänken anstelle der Verzögerungen der entlang aller aufeinanderfolgenden Bänke laufenden Leitungen beschränkt.
  • Diese und andere Aufgaben und vorteilhafte Aspekte der Vorrichtung gemäß der Erfindung wird aus den folgenden Figuren und deren Beschreibung offensichtlich werden.
  • 1 zeigt einen Schaltkreis mit einem Speicher und Schaltkreise für zwei Verarbeitungen;
  • 2 zeigt Zugriffsperioden-Dauer und -Verzögerung als eine Funktion der Zeit;
  • 3 zeigt in dem Schaltkreis der 1 enthaltene Signale;
  • 4 zeigt einen Teil eines Timing-Schaltkreises;
  • 4A zeigt einen anderen Teil eines Timing-Schaltkreises;
  • 5 zeigt eine Speicherarchitektur und
  • 6 zeigt einen alternativen Schaltkreis mit einem Speicher.
  • 1 zeigt einen Schaltkreis mit einem ersten Datenverarbeitungs-Schaltkreis 10a, einem zweiten Datenverarbeitungs-Schaltkreis 10b, einem ersten Taktschaltkreis 11a, einem zweiten Taktschaltkreis 11b, einem Auswahl-Schaltkreis 12, einem Multiplexer 14, einem Synchronisations-Schaltkreis 15, einem Register 16, einem Speicher 18 und einem Datenregister 19. Der erste Taktschaltkreis 11a ist mit dem ersten Datenverarbeitungs-Schaltkreis 10a und dem Auswahl-Schaltkreis 12 gekoppelt. Der zweite Taktschaltkreis 11b ist mit dem zweiten Datenverarbeitungs-Schaltkreis 10b und dem Auswahl-Schaltkreis 12 gekoppelt. Erste und zweite Datenverarbeitungs-Schaltkreise 10a, b weisen mit Eingängen des Multiplexers 14, dessen Ausgang wiederum mit einem Eingang des Registers 16 gekoppelt ist, gekoppelte Zugriffsanforderungs-Informationsausgänge auf. Der Auswahl-Schaltkreis 12 weist einen mit einem Steuereingang des Multiplexers 14 gekoppelten Auswahlausgang und einen mit dem Synchronisations-Schaltkreis 15 gekoppelten Timing-Steuerausgang auf. Der Synchronisations-Schaltkreis 15 weist einen mit dem Register 16 und dem Speicher 18 gekoppelten Timing-Ausgang auf. Das Datenregister 19 weist mit dem Speicher 18 gekoppelte Eingänge und einen mit dem zweiten Datenverarbeitungschaltkreis 10b gekoppelten Ausgang auf.
  • In einer Anzeigetreiber-Anwendung speichert der Speicher 18 eine Bildinformation wie Pixeldaten, und der zweite Datenverarbeitungs-Schaltkreis ist ein Anzeige-Steuerschaltkreis, der einen Pixelgehalt auf einem Anzeigeschirm (nicht gezeigt) abhängig von aus dem Speicher 18 gelesenen Daten steuert („Datenverarbeitung” wie hierin verstanden enthält eine Steuerungs-Information auf einem Anzeigeschirm, ist aber nicht darauf beschränkt). In dieser Anwendung ist der erste Datenverarbeitungs-Schaltkreis 10b zum Beispiel ein Prozessor, der die Pixeldaten berechnet, ein Empfängerschaltkreis oder ein Kameraprozessor. Der erste Datenverarbeitungs-Schaltkreis 10a schreibt die Pixeldaten in den Speicher 18, so dass sie später vom zweiten Verarbeitungs-Schaltkreis 10b gelesen werden können. Die Zugriffsanforderungs-Information von den Datenverarbeitungs-Schaltkreisen 10a, b enthält zum Beispiel eine Adresse zum Adressieren einer Position in dem Speicher 18, ein Steuerbit zum Ermöglichen/Abschalten eines Zugriffs, ein Lese-/Schreib-Steuerbit und optionale Daten. Es sollte jedoch realisiert werden, dass die Erfindung nicht auf derartige Anforderungen begrenzt ist. Zum Beispiel kann der Speicher einen Adressenzähler zum Aktualisieren einer Adresse zur Benutzung bei Anforderungen von einem der Datenverarbeitungs-Schaltkreise 10a, b enthalten. In diesem Fall braucht keine Adresse in der Zugriffsanforderungs-Information von dem Datenverarbeitungs-Schaltkreis bereitgestellt zu werden. Andere Information kann standardmäßig bereitgestellt werden. Im Extremfall könnte die gesamte Zugriffsanforderungs-Information standardmäßig bereitgestellt werden, solange angezeigt wird, dass die Anforderung von einem besonderen Datenverarbeitungs-Schaltkreis 10a, b kommt, für den Standards verfügbar sind.
  • Während des Betriebs wird das Timing des Schaltkreises von der Kombination von Taktschaltkreisen 11a, b und dem Auswahl-Schaltkreis 12 gesteuert. Die ersten und zweiten Datenverarbeitungs-Schaltkreise 10a, b werden in von ihren jeweiligen Taktschaltkreisen 11a, b bestimmten Zyklen betrieben. Jeder Datenverarbeitungs-Schaltkreis 10a, b ist in der Lage, eine neue Zugriffsanforderungs-Information in jedem seiner einzelnen Zyklen zu erzeugen. Der Multiplexer 14 reicht die Zugriffsanforderungs-Information von einem ausgewählten der Datenverarbeitungs-Schaltkreise 10a, b an das Register 16 weiter, wo die Zugriffsanforderungs-Information aufgefangen wird. (Ein herkömmlicher Multiplexer-Schaltkreis kann benutzt werden wie ein Bus-artiger Schaltkreis, wobei einer der Eingänge leitend mit dem Ausgang verbunden ist). Das Register 16 gibt die aufgefangene Information an den Speicher 18 weiter, der auf eine Speicherstelle unter Steuerung der Zugriffsanforderungs-Information zugreift. Im Fall einer mit einer Adresse und Daten verbundenen Schreibanforderung speichert der Speicher 18 die Daten an der von der Adresse adressierten Stelle. Im Fall einer mit einer Adresse verbundenen Leseanforderung liest der Speicher 18 Daten von der adressierten Stelle und ruft ein Auffangen der Daten in dem Datenregister 19 hervor. Der Auswahl-Schaltkreis 12 bestimmt, von welchem Datenverarbeitungs-Schaltkreis 10a, b eine Zugriffsanforderungs-Information in dem Register 16 aufgefangen wird. Der Auswahl-Schaltkreis 12 triggert einen Synchronisations-Schaltkreis 15, der festlegt, wann die Zugriffsanforderungs-Information aufgefan gen wird und wann ein die aufgefangene Zugriffsanforderungs-Information benutzender Speicherzugriffs-Zyklus gestartet wird.
  • Die Zyklusauffrischungsrate des ersten und zweiten Datenverarbeitungs-Schaltkreises 10a, b kann sich wesentlich unterscheiden, zum Beispiel um einen Faktor Zehn. In einem Beispiel weist der erste Verarbeitungs-Schaltkreis 10a eine Zyklusdauer auf, während der eine gültige Zugriffsanforderungs-Information von P1 = 100 nsec (F1 = 1/P1) zugeführt wird, und der zweite Verarbeitungs-Schaltkreis 10b weist eine entsprechende Dauer von P2 = 1000 nsec (F2 = 1/P2) auf. Auf den Speicher 18 kann mit einer variabel wählbaren Periode zwischen aufeinanderfolgenden Zugriffen zugegriffen werden. Die minimale Dauer eines Speicherzugriffs-Zyklus Pm ist die Summe der Speicherzugriffs-Zeit (Macc), Leitungsverzögerungen (Wdel) und des durch den Steuerschaltkreis (Cdel) eingeführten Timing-Überschusses. Daher Pm = Macc + Wdel + Cdel. Die maximale Zugriffsfrequenz des Speichers Fm ist das Inverse des Speicherzugriffs Fm = 1/Pm. Die Frequenzen F1, F2 sollten derart sein, dass die maximale Speicherfrequenz Fm höher als die Summe F1 + F2 der Frequenzen des ersten und zweiten Datenverarbeitungs-Schaltkreises 10a, b ist. In dem Beispiel der Frequenzen von F1 = 10 MHz und F2 = 1 MHz ist zum Beispiel eine Speicherfrequenz von wenigstens 11 MHz erforderlich.
  • Wenn es bekannt ist, dass der erste Datenverarbeitungs-Schaltkreis 10a keine neuen Zugriffsanforderungen in seinen gesamten Zyklen herausgibt, sondern lediglich in einem Bruchteil k seines Zyklus (k = 2/3 zum Beispiel), dann kann die Bedingung sogar weiter auf Fm > k·F1 + F2gelockert werden, was die Notwendigkeit, lediglich k·F1-Zugriffsanforderungen von dem ersten Datenverarbeitungs-Schaltkreis 10a zu verarbeiten, begründet.
  • Der Auswahl-Schaltkreis 12 wählt eine sobald als möglich, nachdem der langsame Datenverarbeitungs-Schaltkreis 10b die Zugriffsanforderungs-Information verfügbar macht, in das Register 16 zu kopierende Zugriffsanforderungs-Information aus einem langsamen Datenverarbeitungs-Schaltkreis 10b aus. Dies bedeutet, dass die Auswahl der Zugriffsanforderungs-Information aus einem schnellen Datenverarbeitungs-Schaltkreis 10a um diese Zeit verzögert ist.
  • 2 zeigt die Verzögerung D zwischen der Zeit, zu der der schnelle Datenverarbeitungs-Schaltkreis 10a eine Zugriffsanforderungs-Information verfügbar macht, und der Zeit, zu der die Zugriffsanforderungs-Information in das Register 16 kopiert wird, als eine Funktion der Zeit. Zusätzlich zeigt die Figur die tatsächliche Dauer P zwischen aufeinanderfolgenden, durch den Synchronisations-Schaltkreis 15 initiierten Zyklen, um ein Kopieren in das Register 16 zu triggern und einen Speicherzugriffs-Zyklus zu triggern. (Es darf beachtet werden, dass Verzögerungen und Dauern lediglich pro Zyklus definiert sind, aber der Einfachheit halber kontinuierliche Kurven gezeichnet worden sind).
  • Man sieht, dass anfänglich die Verzögerung D einen kleinen Wert D0 und die Auffrischungsperiode des Speicherzugriffs-Zyklus P gleich der Dauer T1 des Auffrischungszyklus des ersten Datenverarbeitungs-Schaltkreises 10a ist. Zu Augenblicken t2, wo eine Zugriffsanforderungs-Information aus dem zweiten Datenverarbeitungs-Schaltkreis 10b ausgewählt wird, steigt die Verzögerung D um einen Betrag Tm, der gleich einer minimalen Länge eines Speicherzugriffs-Zyklus ist. Anschließend fällt die Länge der Auffrischungsperiode des Speicherzugriffs-Zyklus P auf die minimale Länge Tm für eine Anzahl von Zugriffszyklen. Dies führt dazu, dass die Verzögerung D um die Differenz T1 – Tm nach jedem Zugriffszyklus abnimmt, bis die ursprüngliche kleine Verzögerung D0 erreicht wird. Danach steigt die Auffrischungsperiode Tm der Speicherzugriffszyklen auf die Zyklusdauer T1 des ersten Datenverarbeitungs-Schaltkreises 10a an.
  • Es sollte beachtet werden, dass die Verzögerung D im schlechtesten Fall weniger als die Zyklusdauer des ersten Datenverarbeitungs-Schaltkreises 10a in dem Sinne ist, dass eine Zugriffsanforderungs-Information, die nach der anfänglichen Verzögerung D0 verfügbar ist, weiter nach der zusätzlichen Verzögerung D0 + Tm verfügbar ist, weil der Zugriffszyklus mit einer Verzögerung D0 beginnt, nachdem die Zugriffssteuerungs-Information verfügbar wird und weil T1 > Tm. Die Auswahl der Zyklusfrequenzen Fm > F1 + F2 stellt sicher, dass die Verzögerung D auf D0 verringert wird, bevor ein nächster Zyklus des zweiten Datenverarbeitungs-Schaltkreises 10b beginnt und zu einem Anstieg der Verzögerung führt. Auf diese Art werden Daten garantiert, für die keine Notwendigkeit für ein Warten des ersten Datenverarbeitungs-Schaltkreises 10a auf einen Zugriff auf den Speicher oder eines Zwischenspeicherns der Zugriffsanforderungs-Information von dem ersten Datenverarbeitungs-Schaltkreis 10a durch einen zusätzlichen Zwischenspeicher besteht.
  • Es sollte auch beachtet werden, dass, wie beschrieben werden wird, ein Speicherzugriff in einer Pipeline gehalten werden kann. In diesem Fall entspricht die Dauer Pm nicht der vollen, zum Speicherzugriff notwendigen Zeit, sondern lediglich der Dauer einer Verarbeitung der Anforderung in einer einzelnen Pipeline-Stufe. Wenn Pm durch die anfängliche Pipeline-Stufe festgelegt wird (oder wenn dies die einzige Stufe ist), enthält es die Dauer zum Verarbeiten in dieser Stufe zuzüglich der Speicherzugriffszeit, zuzüglich der Leitungsverzögerungen.
  • 3 zeigt ein Timing von verschiedenen Zyklen. Spuren CLK1 und CLK2 zeigen Taktsignale von dem ersten und zweiten Taktschaltkreis 11a, b, Spuren ACC1, ACC2 zeigen Zugriffsanforderungsereignisse. Eine Spur SEL zeigt ein Auswahlsignal von dem Auswahl-Schaltkreis 12 und eine Spur CLK3 zeigt Speicherzyklus-Triggerpulse.
  • Anfänglich gilt eine Situation mit einer kleinen Verzögerung D0 der 2. Eine Zugriffsanforderungs-Information aus dem ersten Datenverarbeitungs-Schaltkreis 10a wird ausgewählt. In Antwort auf die ersten zwei Taktpulse in CLK1 werden Pulse in CLK3 nahezu unverzüglich erzeugt, um die Zugriffsanforderungs-Information in das Register 16 zu laden und die Zugriffsanforderung nachfolgend unter Steuerung der geladenen Zugriffsanforderungs-Information zu verarbeiten. Somit ist die Verzögerung zwischen den Pulsen in CLK3 gleich der Zyklusdauer T1 von CLK1 zu dieser Zeit.
  • Der Beginn des dritten Taktpulses 30 in CLK1 kommt simultan mit dem Beginn eines Taktpulses in CLK2 (dies ist eine Situation des schlechtesten Falles; die Taktpulse brauchen nicht zusammenzufallen). Nun wählt der Auswahl-Schaltkreis die Zugriffsinformation aus dem zweiten Datenverarbeitungs-Schaltkreis 10b aus, und ein Puls in CLK3 wird nahezu unmittelbar in Antwort auf den Puls in CLK2 erzeugt, um die Zugriffsanforderungs-Information in das Register 16 zu laden.
  • Anschließend wird die Auswahl SEL auf den ersten Datenverarbeitungs-Schaltkreis 10a zurückgebracht und, sobald zulässig, hinsichtlich der Geschwindigkeit des Speicherschaltkreises wird ein Puls 32 in CLK3 erzeugt, um die dem Puls 30 in CLK1 entsprechende Zugriffsanforderungs-Information in das Register 16 zu laden und den Speicherzugriffs-Zyklus zu starten. Man sollte beachten, dass, obwohl der Puls 32 in Bezug auf den Puls 30 eine viel größere Verzögerung als die entsprechende Verzögerung für frühere Pulse in CLK1 aufweist, die Verzögerung noch geringer als das Zeitintervall ist, bis der erste Datenverarbeitungs-Schaltkreis 10a die Zugriffsanforderungs-Information ACC1 entsprechend dem nächsten Puls 34 ändert. In Antwort auf den nächsten Puls 34 in CLK1 wird ein Puls 36 in CLK3 erzeugt, sobald ein neuer Speicherzugriffs-Zyklus beginnen kann, das heißt nach einem Zeitintervall Tm usw. Somit wird die Verzögerung zwischen den Pulsen in CLK1 und entsprechenden Pulsen in CLK3 stufenweise verringert.
  • Man kann beachten, dass die zum Ändern der Zugriffsanforderungs-Information ACC1 so kurz sein sollte, dass die durch ein Hingeben eines Zyklus auf den zweiten Datenverarbeitungs-Schaltkreis 10b verursachte Verzögerung nicht dazu führt, dass die Zugriffsanforderungs-Information während der Änderung geladen wird. Jedoch ist das Zeitintervall, in dem die Zugriffsanforderungs-Information geändert wird, sehr klein (zum Beispiel weniger als 0,5 nsec), so dass dies die maximal zulässige Verzögerung bei einer Zyklusfrequenz von 10 MHz nicht signifikant beeinflusst.
  • Man kann ebenso beachten, dass 3 eine Situation eines schlimmsten Falles zeigt, wo der Beginn eines dritten Taktpulses 30 in CLK1 simultan mit dem Beginn eines Taktpulses in CLK2 eintrifft. Wenn der Beginn des Taktpulses in CLK2 dem Beginn des Taktpulses des ersten Datenverarbeitungs-Schaltkreises vorangeht, wird die Zugriffsanforderung von dem zweiten Verarbeitungs-Schaltkreis 10b ebenso sofort bearbeitet, vorausgesetzt, dass die vorangehende Zugriffsanforderung von dem ersten Datenverarbeitungs-Schaltkreis 10a bearbeitet worden ist. In diesem Fall aber ist die Bearbeitung der Anforderung von dem zweiten Datenverarbeitungs-Schaltkreis 10b in dem Taktzyklus des ersten Datenverarbeitungs-Schaltkreises 10a eher beendet, sodass mehr Zeit in dem Taktzyklus als in 3 gezeigt gelassen wird. Wenn der Beginn des Taktpulses in CLK2 später als der Beginn des Taktpulses des ersten Datenverarbeitungs-Schaltkreises 10a ist, wird die Zugriffsanforderung von dem ersten Datenverarbeitungs-Schaltkreis 10a zuerst bearbeitet. In diesem Fall beginnt die Bearbeitung der Anforderung von dem zweiten Datenverarbeitungs-Schaltkreis 10b, sobald die Zugriffsanforderung von dem ersten Datenverarbeitungs-Schaltkreis 10a bearbeitet worden ist, und setzt sich, wenn notwendig, in den nächsten Taktzyklus des ersten Datenverarbeitungs-Schaltkreises 10a fort. Als ein Ergebnis braucht die Bearbeitung der Zugriffsanforderung von dem ersten Datenverarbeitungs-Schaltkreis 10a in dem nächsten Taktzyklus entweder überhaupt nicht verzögert zu werden, oder mehr Zeit wird in dem nächsten Taktzyklus als in 3 gezeigt gelassen.
  • Man wird anerkennen, dass in einer Ausführungsform Datenverarbeitungs-Schaltkreise 10a, b einen Zugriff nicht in jedem ihrer Taktzyklen anzufordern brauchen. Falls so, können die an den Auswahl-Schaltkreis 12 angelegten Taktsignale in den Zyklen unwirksam gemacht werden, in denen keine Anforderung gemacht wird. Somit wird der Anstieg in der Verzögerung D schneller im Fall einer unwirksam gemachten Zugriffsanforderung von dem ersten Datenverarbeitungs-Schaltkreis 10a verringert oder ein Anstieg in der Verzögerung T wird im Fall einer unwirksam gemachten Anforderung von dem zweiten Datenverarbeitungs-Schaltkreis 10b verhindert.
  • Es brauchen keine Daten von dem Speicher 18 zurückgeführt zu werden, wenn beide Datenverarbeitungs-Schaltkreise 10a, b lediglich Daten schreiben. Das Datenregister 19 ist für den Fall vorgesehen, dass ein langsamer (der zweite) Datenverarbeitungs-Schaltkreis 10b Lesedaten erzeugt. Im Fall eines Lesezugriffs sendet der Speicher 18 die Daten, die gelesen worden sind, und ein Ladesignal, wenn Lesedaten in dem Datenregister 19 verfügbar sind. Der Schaltkreis hat die Wirkung, dass Lesedaten immer wenigstens von einer vorbestimmten Zeit Tm + Am nach der entsprechenden Zugriffsanforderung verfügbar sind, um ein Verzögerung Am zum Lesen der Daten und eine maximale Verzögerung Tm zum Beenden des Zugriffs für einen dem Lesezyklus vorangehenden Zugriffszyklus zuzulassen. Es darf beachtet werden, dass die Dauer eines (Pipelinestufe eines) Speicherlesezyklus sich von einem Speicherschreibzyklus unterscheiden kann. In diesem Fall der Dauer des Speichers sollte der Lesezyklus so kurz sein, dass die Verzögerung, bis die Zugriffsanforderungs-Information ACC1 geändert wird, länger als der Speicherlesezyklus ist. Da der Takt des zweiten Datenverarbeitungs-Schaltkreises 10b viel langsamer ist, werden die Lesedaten lediglich geladen, nachdem sie in das Datenregister 19 geladen worden sind.
  • Wenn die Zugriffsanforderungen von den Datenverarbeitungs-Schaltkreisen 10a, b synchronisiert sind, sind die Lesedaten in einem vorbestimmten Zeitintervall Da-Db nach der Zugriffsanforderung verfügbar. In diesem Fall kann das Datenregister 19 weggelassen werden oder von dem zweiten Datenverarbeitungs-Schaltkreis 10b zeitlich gesteuert werden.
  • Wenn beide Datenverarbeitungs-Schaltkreise Leseanforderungen herausgeben können, ist ein Datenregister 19 vorzugsweise für jeden vorgesehen und gemäß der Quelle der Leseanforderung (zum Beispiel unter Steuerung eines verzögerten SEL-Signals) geladen.
  • 4 zeigt eine Ausführungsform eines unvollständigen Schaltkreises des Auswahl-Schaltkreises. Der Schaltkreis hat Eingänge zum Koppeln der Taktschaltkreise 11a, b (nicht gezeigt) und eine Handshake-Schnittstelle REQ, ACK zum Koppeln des Synchronisations-Schaltkreises 15 (nicht gezeigt). Der Schaltkreis enthält einen asynchronen Arbiter 40 (wechselseitiges Ausschlusselement), ein Paar von Takt-Flip-Flops 41a, b, ein Paar von UND-Gattern 42a, b, ein Paar von asymmetrischen Muller-C-Elementen 44a, b und ein ODER-Gatter 46. Der Arbiter 40 ist von einer an sich bekannten Art, dass er den einem Eingang, wo das Eingangssignal angehoben wird, entsprechenden Ausgang mit der Ausnahme, dass höchstens ein Ausgang zugleich hochgehalten wird, anhebt. Die Muller-C-Elemente 44a, b sind ebenso an sich bekannt und von einer Art, dass sie ihr Ausgangssignal anheben, wenn alle ihre Eingangssignale logisch hoch sind und das Ausgangssignal verringern, wenn der nicht mit a+ markierte Eingang niedrig wird.
  • Ausgänge der Taktschaltkreise 11a, b (nicht gezeigt) sind mit Takteingängen der Takt-Flip-Flops 41a, b gekoppelt, die mit Eingängen des Arbiters 40 gekoppelte Ausgänge aufweisen. Der Arbiter 40 weist jeweils mit ersten Eingängen der UND-Gatter 42a, b gekoppelte Ausgänge auf. Die UND-Gatter 42, b weisen mit Eingängen des ODER-Gatters 46 und +-Eingängen der asymmetrischen Muller-C-Elemente 44a, b gekoppelte Ausgänge auf. Die Muller-C-Elemente 44a, b weisen mit invertierenden Eingängen der UND-Gatter 42a, b und Rücksetzeingängen der Takt-Flip-Flops 41a, b gekoppelte Ausgänge auf. Der ACK-Eingang der asynchronen Schnittstelle ist mit symmetrischen Eingängen der Muller-C-Elemente 44a, b gekoppelt. Der Ausgang des ODER-Gatters 46 ist mit dem REQ-Ausgang der asynchronen Schnittstelle gekoppelt. Die Ausgänge der UND-Gatter 42a, b werden benutzt, um den Multiplexer 14 (nicht gezeigt) zu steuern.
  • Wenn einer der Taktschaltkreise 11a, b sein Ausgangssignal anhebt, geht der Ausgang des entsprechenden Flip-Flops 41a, b im Betrieb hoch. Sobald wenigstens einer seiner Eingänge hoch ist, hebt der Arbiter 40 den entsprechenden Ausgang an. Die UND-Gatter 42a lassen diese Erhöhung durch, wobei Signale zum Steuern des Multiplexers produziert werden, die zur Auswahl der Zugriffsanforderungs-Information benutzt werden. Das ODER-Gatter 46 erzeugt ein erhöhtes Handshake-Anforderungssignal REQ in Antwort auf den erhöhten Ausgang des UND-Gatters 42a. Wenn diese Anforderung durch ein einkommendes Signal bestätigt wird, setzt das ACK-Muller-C-Element 44a das Takt-Flip-Flop 41a zurück, auf das der Arbiter dadurch reagieren wird, dass er seinen Eingang zu dem UND-Gatter 42a niedrig macht. Als ein Ergebnis verringert das ODER-Gatter 46 das REQ-Signal. In Erwiderung wird das ACK-Signal verringert, wonach der Schaltkreis fertig für einen nächsten Zyklus ist. Man beachte, dass, sobald der Arbiter seinen Ausgang zu dem UND-Gatter 42a niedrig gemacht hat, kann er sofort eine Warteanforderung von dem Datenverarbeitungs-Schaltkreis 10b empfangen. Solange der vorhergehende Speicher-Handshake jedoch nicht abgeschlossen worden ist, ist der Ausgang des Muller-C-Elements 44a hoch, was verhindert, dass der Ausgang des UND-Gatters 42b hoch wird. Auf diese Art werden die zwei Folgen von Zugriffen vereinigt, während verhindert wird, dass zwei Speicherzugriffe von unterschiedlichen Quellen überlappen.
  • In einer typischen Ausführungsform ist der Synchronisations-Schaltkreis 15 von an sich bekannter Art, die Handshake-Schnittstellen mit dem Auswahl-Schaltkreis 12 und dem Speicher 18 aufweist. In Antwort auf ein Anforderungssignal von dem Auswahl-Schaltkreis erklärt der Synchronisations-Schaltkreis 15 eine Bestätigung und bewirkt ein Laden von Zugriffsanforderungs-Daten in das Register 16. Wenn die Daten geladen sind und die Anforderung zurückgenommen worden ist, nimmt der Synchronisations-Schaltkreis 15 die Bestätigung zurück. Sobald die Zugriffsanforderungs-Daten in das Register geladen sind, initiiert der Synchronisations-Schaltkreis 15 einen Handshake mit dem Speicher 18. Sobald dieser Handshake abgeschlossen worden ist, ist der Synchronisations-Schaltkreis 15 fertig, eine nächste Anforderung von dem Auswahl-Schaltkreis 12 zu bestätigen.
  • 4a zeigt schematisch eine typische Ausführungsform des Synchronisations-Schaltkreises 15, die Handshake-Signale benutzt. In dieser Ausführungsform enthält der Synchronisations-Schaltkreis 15 einen Wiederholschaltkreis 150, einen Schaltkreis 152 zur sequentiellen Anordnung und ein Muller-C-Element 154. Wiederholschaltkreise 150 und Schaltkreise 152 zur sequentiellen Anordnung sind normale asynchrone Schaltkreiskomponenten, die für die Ausführungen an sich bekannt sind. Um der Klarheit willen sind diese Schaltkreiskomponenten symbolisch gezeichnet worden. Eine Anforderungs-Eingabe von dem Auswahl-Schaltkreis 12 (nicht gezeigt) und eine erste von dem Schaltkreis 152 zur sequentiellen Anordnung ausgegebene Anforderung werden in Eingänge des Muller-C-Elementes 154 gekoppelt. Das Muller-C-Element 154 weist einen mit einem Bestätigungseingang des Auswahl-Schaltkreises 12, einem ersten Bestätigungseingang des Schaltkreises 152 zur sequentiellen Anordnung und einem Takteingang des Registers 16 gekoppelten Ausgang auf. Ein zweiter Anforderungsausgang und Bestätigungseingang des Schaltkreises 152 zur sequentiellen Anordnung sind mit dem Speicher 18 (nicht gezeigt) gekoppelt. Ein zweiter Anforderungsausgang und Bestätigungseingang des Schaltkreises 152 zur sequentiellen Anordnung sind mit dem Wiederholschaltkreis 150 gekoppelt.
  • Im Betrieb wird ein Anforderungssignal von dem Auswahl-Schaltkreis 12 bearbeitet, wenn der Schaltkreis 152 zur sequentiellen Anordnung ebenso ein Anforderungssignal ausgibt. In diesem Fall wird die Anforderungs-Information in das Register 16 getaktet und die Anforderungen werden von dem Auswahl-Schaltkreis 12 und dem Schaltkreis 152 zur sequentiellen Anordnung bestätigt. In Antwort sendet der Schaltkreis 152 zur sequentiellen Anordnung ein Anforderungssignal an den Speicher 18, der dann einen Speicherzugriff mit der in dem Register 16 gespeicherten Zugriffsinformation durchführt. Sobald der Speicherzugriff abgeschlossen ist, sendet der Speicher ein Bestätigungssignal zurück. Der Zuordner 152 sendet dann ein Bestätigungssignal an den Wiederholer 150, der mit einem Anforderungssignal antwortet, das wiederum an das Muller-C-Element 154 durchgegeben wird.
  • Wenn der Auswahl-Schaltkreis 12 ein Anforderungssignal sendet, bevor der Schaltkreis zur sequentiellen Anordnung ein neues Anforderungssignal gesendet hat, antwortet das Muller-C-Element 154 nicht bis der Schaltkreis zur sequentiellen Anordnung ein neues Anforderungssignal gesendet hat. Somit werden eine Zeitsteuerung des Registers 16 und ein Richten einer Anforderung an den Speicher 18 verzögert, bis wenigstens eine minimale Speicherzugriffsperiode seit dem Beginn des vorherigen Speicherzugriffs vergangen ist.
  • In vielen Anwendungen, wie zum Beispiel Treibern von mobilen Anzeigen, besteht der Speicher aus mehreren Speicherbänken. Die Speicherbänke werden dann oft in Reihe über eine große geographische Distanz zum Beispiel an verschiedenen Pixelbereichen auf einer Anzeige entsprechenden Stellen angeordnet. Diese großen geographischen Distanzen führen zu großen Leitungsverzögerungen (Wdel) und folglich zu einer geringen Speicherfrequenz Fm. Dieses Problem kann durch eine Pipeline-Anordnung der Speicherzugriffsanforderungen umgangen werden.
  • 5 zeigt ein Beispiel eines Speicherschaltkreises zur Verwendung in dem Schaltkreis der 1. Der Schaltkreis enthält eine Anzahl von Speicherbänken 52a-d und eine Anzahl von Synchronisations-Schaltkreisen 50a-d. Die Synchronisations-Schaltkreise 50a-d sind als Stufen in einer Pipeline angeordnet, welche die Zugriffsanforderungs-Information von dem Register 16 übermittelt. Die erste Stufe in dieser Pipeline hat eine Handshake-Schnittstelle mit dem Synchronisations-Schaltkreis 15. Zusätzlich sind Handshake-Schnittstellen zwischen Paaren von aufeinanderfolgenden Stufen in der Pipeline vorgesehen. Die Synchronisations-Schaltkreise haben mit den Speicherbänken 52a-d gekoppelte Ausgänge.
  • Im Betrieb empfangen und halten die Synchronisations-Schaltkreise 50a-d jeweils wiederholt zuerst eine Zugriffsanforderungs-Information von ihrem linken Nachbarn und wenden diese Information dann auf ihre zugehörige Speicherbank an, während die Information an ihre rechten Nachbarn weitergegeben wird. Die Anforderung, die Zugriffsanforderungs-Information zu empfangen, wird bestätigt, sobald die Zugriffsanforderungs-Information gespeichert worden ist, nachdem die Zugriffsanforderungs-Information (z. B.) eine Adresse, r/w-Steuerung und optional Schreibdaten) auf die entsprechende Speicherbank angewendet wird. Eine nächste Anforderung wird nur angenommen, wenn die Bank die Zugriffsanforderungs-Information verarbeitet hat und die Information an ihren rechten Nachbar weitergegeben ist.
  • Man wird zu schätzen wissen, dass die Architektur der 5 einer Minimierung der Länge Tm des Speicherzugriffs-Zyklus durch eine Verringerung der Wirkung der Leitungsverzögerungen zwischen zwei Kommunikationsschaltkreisen dient, wobei eine große Speicherfrequenz Fm zugelassen wird. Dies wiederum erlaubt eine große Zyklusfrequenz für Datenverarbeitungs-Schaltkreise 10a, b. Man wird zum Schluss gelangen, dass andere Formen einer Pipeline-Anordnung in dem Speicher benutzt werden können, und dass keine Pipeline-Anordnung gebraucht wird, wenn der Speicher eine ausreichend schnelle Zykluszeit ohne eine Pipeline-Anordnung aufweist.
  • In einer Ausführungsform werden Lesedaten von Bänken 52a-d in Antwort auf eine Leseanforderung parallel ausgegeben. In dieser Ausführungsform werden die Lesedaten von jeder Bank vorzugsweise jeweils in einem entsprechenden Datenregister (nicht gezeigt) aufgefangen, wenn die relevante Bank die Daten produziert hat. Auf diese Weise sind sogar die Lesewörter aus dem Speicher größer als Schreibwörter, was zum Beispiel für Anzeigen nützlich ist, wo sehr große Wörter (z. B. Bildlinien) bei einer geringen Frequenz benötigt werden.
  • Obwohl der Schaltkreis hinsichtlich der Handshaking-Schnittstellen beschrieben worden ist, wird man erkennen, dass anstelle der Handshaking-Schnittstellen einseitige Trigger-Schnittstellen benutzt werden können. Zum Beispiel könnte der Synchronisations-Schaltkreis 15 angeordnet sein, um einen Puls von minimaler Dauer auf einen Empfang einer Anforderung zu triggern und fertig zu sein, eine neue Anforderung an dem Ende des Pulses anzunehmen. Der Puls kann benutzt werden, um den Speicher 18 und das Register 16 zu triggern. Wenn garantiert werden kann, dass die getriggerten Schaltkreise ausreichend schnell reagieren, um fertig zu sein, wenn der nächste Triggerpuls ankommt, ist kein Handshake notwendig. Ein Handshake hat jedoch den Vorteil, das er kompositionell ist, indem die Untermodule in einem System ohne Kenntnis der Geschwindigkeiten der anderen Submodule entworfen werden können. Ähnlich kann eine Handshake-Schnittstelle in Richtung auf Taktschaltkreise 11a, b anstelle der in dem Kontext der Figuren beschriebenen Pulsschnittstelle benutzt werden. In dieser Ausführungsform verzögern Taktschaltkreise 11a, b den nächsten Puls des Taktes um einen Betrag, der ausreichend für den relevanten Datenverarbeitungs-Schaltkreis 10a, b ist, um die nächste Zugriffsanforderungs-Information zu produzieren und den nächsten Zyklus zu beginnen, wenn die Anforderung bestätigt wird. Somit kann die Taktfrequenz, welche die Taktschaltkreise 11a, b auf die Datenverarbeitungs-Schaltkreise 10a, b anwenden, eingestellt werden. Es sollte jedoch beachtet werden, dass in dieser Ausführungsform der erste Taktschaltkreis 11a für den schnellen (ersten) Datenverarbeitungs-Schaltkreis 10a lediglich seine Frequenz anpasst. Es ist nicht notwendig, einen plötzlichen großen Phasensprung der Größe eines Speicherzyklus zu machen, wenn ein Speicherzyklus für den zweiten Datenverarbeitungs-Schaltkreis 10b eingesetzt wird. Ähnlich können anstelle der asynchronen Schnittstellen synchrone Schnittstellen benutzt werden, zum Beispiel durch Ableiten von Taktsignalen von den Taktschaltkreisen 11a, b von einer gemeinsamen Taktquelle, z. B. durch Teilen eines höheren Frequenztaktes durch unterschiedliche Frequenzteilungsverhältnisse oder durch Phasenanpassen eines der Taktschaltkreise an den anderen.
  • In diesem Fall können Steuerpulse für das Register 16 und den Speicher 18 ebenso von einem Takt abgeleitet werden, der mit den anderen Taktschaltkreisen synchronisiert ist. Wenn die Takte 11a, b synchronisiert bei Frequenzen N1·F0 beziehungsweise N2·F0 laufen, dann könnte ein Takt für das Register 16 zum Beispiel bei N1·F0 laufen, wenn keine Verzögerung vorhanden ist, und bei (N1 + N2)·F0 auf Empfangen einer Zugriffsanforderung von den zweiten Datenverarbeitungs-Schaltkreisen 10b hin, bis die Verzögerung erreicht worden ist.
  • Anstelle von Teilern oder festgelegten Takten kann man auch einen Taktmultiplexer zum Bereitstellen eines Taktes für den Speicher 18 benutzen, der ein Signal von einem separaten Takt des Speichers 18 oder von dem ersten Taktschalt kreis 11a des ersten Verarbeitungs-Schaltkreises übermittelt. In dieser Ausführungsform wird der separate Takt auf eine Zugriffsanforderung von dem zweiten Verarbeitungs-Schaltkreis 10b gestartet und läuft bei einer Frequenz oberhalb derjenigen des ersten Taktschaltkreises 11a. Das Signal von dem separaten Takt wird nach Stattgeben einer Zugriffsanforderung von dem zweiten Verarbeiter 10b übermittelt, wenigstens bis der separate Takt soviel an dem Taktsignal des ersten Taktschaltkreises 11a erlangt hat, dass er in dem frühen Teil der Periode des ersten Taktschaltkreises 11a startet, was mehr als eine minimale Speicherzugriffsperiode vor dem Ende der Periode des ersten Taktschaltkreises 11a ist.
  • Man erkennt, dass die Architektur eine Benutzung eines einzelnen Registers 16 zum Zwischenspeichern aller Information zwischen den Datenverarbeitungs-Schaltkreisen 10a, b und dem Speicher erlaubt, aber natürlich mehrere Register benutzt werden können.
  • 6 veranschaulicht eine Ausführungsform, in der ein Register 60a zwischen dem ersten Datenverarbeitungs-Schaltkreis 10a und dem Multiplexer 14 anstelle des Registers 16 verwendet wird. Das Register 60a kann in im Wesentlichen der gleichen Zeit wie das Register 16 der 1 beladen werden (jedoch kann ein Laden zu Zeitpunkten weggelassen werden, wenn ein Zugriff von dem zweiten Datenverarbeitungs-Schaltkreis 10b angenommen wird). Kein Register ist für den zweiten Datenverarbeitungs-Schaltkreis 10b notwendig, wenn T2, die Dauer, wenn eine Zugriffsanforderungs-Information von dem zweiten Datenverarbeitungs-Schaltkreis 10b länger als 2·Tm, die schlechteste Verzögerung bis die Zugriffsanforderungs-Information durch den Speicher 18 bearbeitet worden ist, ist.
  • Obwohl die Erfindung für eine Zugriffsanforderungs-Information beschrieben worden ist, die parallel von einem Datenverarbeitungs-Schaltkreis bereitgestellt wird, wird man erkennen, dass ohne von der Erfindung abzuweichen, diese Information teilweise oder ganz seriell solange wie dieses nicht zu einer Verletzung des Timing-Abhängigkeitsverhältnisses führt, bereitgestellt werden kann.
  • Ähnlich sollte man erkennen, dass mehr als zwei Datenverarbeitungs-Schaltkreise 10a, b jeweils mit ihrem eigenen Ausgang für periodisches Produzie ren einer Zugriffsanforderungs-Information bei ihrer eigenen Frequenz, mit dem Register 16 über den Multiplexer 14 gekoppelt werden können. Zum Beispiel können mehrere schnelle Datenverarbeitungs-Schaltkreise und ein langsamer Datenverarbeitungs-Schaltkreis benutzt werden, wenn die Summe der Zugriffsfrequenzen die Speicherzugriffsfrequenz nicht übersteigt. In einem anderen Beispiel kann ein schneller Datenverarbeitungs-Schaltkreis und mehrere langsame Datenverarbeitungs-Schaltkreise benutzt werden.
  • Wenn es N Datenverarbeitungs-Schaltkreise gibt und wenn N-1 mal die minimale Speicherzyklusdauer in die Zyklusdauer irgendeines der Prozessoren passt, stellt der Schaltkreis im Allgemeinen sicher, dass die Zugriffsanforderungs-Information von dem Register vor dem Ende der Zyklusdauer erfasst wird, sogar wenn ein anderer Verarbeitungs-Schaltkreis zuerst Zugriff erhält, vorausgesetzt, dass die Summe der Frequenzen geringer als das Inverse der minimalen Zykluslänge ist.

Claims (12)

  1. Datenverarbeitungsvorrichtung, umfassend: – einen ersten und einen zweiten Datenverarbeitungs-Schaltkreis (10a, b), jeder mit einem Ausgang zur Ausgabe von Speicherzugriffs-Anforderungen, wobei zumindest der erste Datenverarbeitungs-Schaltkreis (10a) jeweilige Zugriffsanforderungen stets während eines jeweiligen Intervalls ausgibt, in welchem gültige Zugriffsanforderungen erzeugt werden können; – ein Multiplexer-Schaltkreis (14) mit Eingängen, die an die Ausgänge des ersten und zweiten Datenverarbeitungs-Schaltkreises (10a, b) gekoppelt sind; und – einen Speicherschaltkreis (16, 18), gekennzeichnet durch: – einen Eingang des Speicherschaltkreises (16, 18), zum sukzessiven Annehmen der Zugriffsanforderungen von einem Ausgang des Multiplexer-Schaltkreises (14), jeweils mindestens nach einer minimalen Speicherauffrischungsperiode, welche auf das Annehmen einer vorangehenden Zugriffsanforderung folgt; – einen Timing-Schaltkreis (11a, b, 12, 15), der an den ersten und zweiten Datenverarbeitungs-Schaltkreis (10a, b) und den Speicherschaltkreis (16, 18) gekoppelt ist, und der ausgebildet ist, den Betrieb des ersten und des zweiten Verarbeitungsschaltkreises (10a, b) jeweils im wesentlichen periodisch zeitlich zu steuern, so dass die Intervalle im wesentlichen periodisch mit einer längeren Periode als die minimale Speicherauffrischungsperiode sind, wobei der Timing-Schaltkreis (11a, b, 12, 15) ausgebildet ist, Annahme-Zeitpunkte auszuwählen, an denen jede jeweilige Zugriffsanforderung vom ersten Datenverarbeitungs-Schaltkreis (10a) innerhalb des Intervalls angenommen wird, in welchem diese jeweilige Zugriffsanforderung erzeugt wurde, wobei der Timing-Schaltkreis (11a, b, 12, 15) eine Position der Annahme-Zeitpunkte innerhalb der Intervalle variiert, so dass die Position innerhalb des Intervalls verzögert ist, um Zeit zu schaffen, zuvor eine Zugriffsanforderung anzunehmen, die vom zweiten Datenverarbeitungs-Schaltkreis (10b) stammend durch den Multiplexer-Schaltkreis weitergeleitet wurde, und die Position in Richtung eines Beginns des Intervalls in sukzessiven Schritten während der Anwendung sukzessiver Zugriffsanforderun gen vom ersten Datenarbeitungsschaltkreis innerhalb aufeinanderfolgender sukzessiver Intervalle verschoben wird.
  2. Datenverarbeitungs-Schaltkreis nach Anspruch 1, bei dem der Timing-Schaltkreis einen ersten und einen zweiten Taktgeber-Schaltkreis (11a, b) umfasst, die an Takteingänge des ersten beziehungsweise zweiten Datenverarbeitungs-Schaltkreises (10a, b) gekoppelt sind, wodurch die Zugriffsanforderungen, wenn Sie erzeugt werden, durch den ersten und zweiten Datenverarbeitungs-Schaltkreis (10a, b) mit einer ersten beziehungsweise zweiten Frequenz des ersten beziehungsweise zweiten Taktgeber-Schaltkreises (11a, b) ersetzt werden, und wobei die Summe der ersten und zweiten Frequenz geringer ist als das Inverse der minimalen Speicherauffrischungsperiode.
  3. Datenverarbeitungs-Schaltkreis nach Anspruch 2, bei dem der Timing-Schaltkreis einen asynchronen Arbitrier-Schaltkreis (40) mit Eingängen, die an den ersten und zweiten Taktgeber-Schaltkreis (11a, b) gekoppelt sind, und einem Ausgang, der an einen Steuereingang des Multiplexer-Schaltkreises (14) gekoppelt ist, umfasst, wobei der Arbitrier-Schaltkreis (40) ausgebildet ist zu steuern, von welchem, dem ersten oder zweiten Datenverarbeitungs-Schaltkreis (10a, b), der Multiplexer-Schaltkreis (14) die Zugriffsanforderung weiterleiten wird, wobei der Arbitrier-Schaltkreis (40) zwischen den Datenverarbeitungs-Schaltkreisen (10a, b) auf einer „First-Come-First-Served"-Basis von Übergängen in Taktsignalen des ersten und zweiten Datenverarbeitungs-Schaltkreises (10a, b) auswählt.
  4. Datenverarbeitungs-Schaltkreis nach Anspruch 3, umfassend einen asynchronen Timer-Schaltkreis (15) mit einem Triggereingang, der an den asynchronen Arbitrier-Schaltkreis (40) gekoppelt und ausgebildet ist, ein Timing-Signal zum Zugriff auf den Speicher (18) zu erzeugen, wobei der asynchrone Timer-Schaltkreis (40) einen Speicherzugriffszyklus jeweils dann triggert, wenn der asynchrone Arbitrier-Schaltkreis (40) eine Anforderung auswählt und eine vorangehende minimale Speicherauffrischungsperiode beendet ist.
  5. Datenverarbeitungs-Schaltkreis nach Anspruch 1, bei dem der Speicherschaltkreis ein Register (16) und eine Speichereinheit (18) umfasst, wobei das Register (16) zwischen den ersten Datenverarbeitungs-Schaltkreis (10a) und die Speichereinheit (18) gekoppelt ist, um Zugriffsanforderungsinformationen von wenigstens dem ersten Datenverarbeitungs-Schaltkreis zur Verwendung durch die Speichereinheit (18) unter Steuerung des Timing-Schaltkreises (11a, b, 12, 15) zwischenzuspeichern, auf die Verzögerung hin, die vom Timing-Schaltkreis (11a, b, 12, 15) bestimmt wurde.
  6. Datenverarbeitungs-Schaltkreis nach Anspruch 1, bei dem der Speicherschaltkreis (12, 18) eine Reihe sukzessiv gekoppelter Pipeline-Stufen (50a-d) umfasst, zum Ausführen sukzessiver Schritte in Antwort auf eine Zugriffsanforderung, wobei die minimale Speicherauffrischungsperiode einem Zeitintervall entspricht, das von einer der Pipeline-Stufen benötigt wird, um einen der Schritte auszuführen.
  7. Datenverarbeitungs-Schaltkreis nach Anspruch 6, bei dem der Speicherschaltkreis (16, 18) Speicherbänke (52a-d) umfasst, von denen jede an eine jeweilige Pipeline-Stufe (50a-d) gekoppelt ist, zum sukzessiven Verarbeiten jeder der Anforderungen in unterschiedlichen Bänken (52a-d).
  8. Datenverarbeitungs-Schaltkreis nach Anspruch 7, bei dem die Bänke (52a-d) an sukzessiven Positionen entlang einer räumlichen Zeile in einem integrierten Schaltkreis angeordnet sind, mit Lesedatenausgängen zum Ausgeben von Daten, die in Reaktion auf Leseanforderungen unter den Anforderungen an sukzessiven Positionen entlang der Zeile gelesen wurden, wobei der zweite Datenverarbeitungs-Schaltkreis (10b) Anzeigetreiber-Schaltkreise umfasst, die an die Ausgänge gekoppelt sind.
  9. Datenverarbeitungs-Schaltkreis nach Anspruch 1, umfassend ein Datenregister (19), das zwischen den Speicherschaltkreis (16, 18) und den zweiten Datenverarbeitungs-Schaltkreis (10b) gekoppelt ist, zum Kopieren von Lesedaten, die aus dem Speicherschaltkreis (16, 18) in Reaktion auf Leseanforderungen unter den Anforderungen gelesen wurden, und zum Ausgeben der Lesedaten an den zweiten Datenverarbeitungs-Schaltkreis (10b) während der Bearbeitung von Zugriffsanforderungen des ersten Datenverarbeitungsschaltkreises (10a).
  10. Datenverarbeitungs-Schaltkreis nach Anspruch 9, bei dem der Speicherschaltkreis (12, 16) eine Vielzahl von Bänken (52a-d) mit einer ersten Datenwortlänge umfasst, wobei Schreibanforderungen unter den Anforderungen Bankauswahlinformation und Schreibdaten der ersten Datenwortlänge umfassen, und das Datenregister (18) eine zweite Datenwortlänge zum parallelen Empfangen von Daten von einer Vielzahl der Bänke (52a-d) in Reaktion auf jede Leseanforderung hat.
  11. Datenverarbeitungs-Schaltkreis nach Anspruch 1, bei dem der zweite Datenverarbeitungs-Schaltkreis (10b) Anzeigetreiber zum Verarbeiten von Lesedaten aus dem Speicher durch Steuern eines Inhaltes eines Anzeigegerätes in Abhängigkeit von den Lesedaten umfasst.
  12. Verfahren zur Verarbeitung von Daten, umfassend – Bereitstellen eines Speicherschaltkreises (16, 18), der ausgebildet ist, sukzessive Zugriffsanforderungen jeweils nach einer minimalen Speicherauffrischungsperiode anzunehmen; – Erzeugen von Zugriffsanforderungssignalen an einem ersten und einem zweiten Ausgang einer Vielzahl Datenverarbeitungs-Schaltkreisen (10a, b), wobei die Zugriffsanforderungen jeweils für die Dauer eines Intervalls aufrechterhalten werden, in welchem gültige Zugriffsanforderungen am ersten Ausgang erzeugt werden können, wobei das Intervall größer ist als die minimale Speicherauffrischungsperiode; – Zeitmultiplexen von Zugriffsanforderungen des ersten und zweiten Ausgangs an den Speicherschaltkreis (12, 16); – Steuern einer Verzögerung zwischen dem Beginn der Intervalle, in denen der erste Ausgang die Zugriffsanforderungen ausgibt, und der Annahme der Zugriffsanforderungen von den Intervallen, wobei die Verzögerung in sukzessiven Schritten während einer Anwendung sukzessiver Zugriffsanforderungen vom ersten Ausgang reduziert wird, bis die Verzögerung in einem bestimmten Speicherzugriffsanforderungsintervall mindestens eine minimale Speicherauffrischungsperiode vor dem Ende des bestimmten Intervalls liegt; – nachfolgendes Hervorrufen der Annahme mindestens einer der Zugriffsanforderungen des zweiten Ausgangs, wobei die Verzögerung vergrößert wird, bevor eine nächste Zugriffsanforderung des ersten Datenverarbeitungs- Schaltkreises innerhalb des Intervalls, in dem diese nächste Zugriffsanforderung am Ausgang aufrechterhalten wird, angenommen wird.
DE602004008628T 2003-06-16 2004-06-09 Datenverarbeitungsschaltung mit gemultiplextem speicher Expired - Lifetime DE602004008628T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP03101749 2003-06-16
EP03101749 2003-06-16
PCT/IB2004/050871 WO2004111860A2 (en) 2003-06-16 2004-06-09 Data processing circuit with multiplexed memory

Publications (2)

Publication Number Publication Date
DE602004008628D1 DE602004008628D1 (de) 2007-10-11
DE602004008628T2 true DE602004008628T2 (de) 2008-06-05

Family

ID=33547717

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004008628T Expired - Lifetime DE602004008628T2 (de) 2003-06-16 2004-06-09 Datenverarbeitungsschaltung mit gemultiplextem speicher

Country Status (9)

Country Link
US (3) US7487300B2 (de)
EP (1) EP1639478B1 (de)
JP (1) JP2006527878A (de)
KR (1) KR20060017876A (de)
CN (1) CN100483374C (de)
AT (1) ATE371896T1 (de)
DE (1) DE602004008628T2 (de)
TW (1) TWI396977B (de)
WO (1) WO2004111860A2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1714209B1 (de) * 2004-01-13 2009-09-09 Koninklijke Philips Electronics N.V. Elektronsiche schaltung mit einer fifo-pipeline
US7386743B2 (en) * 2005-06-09 2008-06-10 International Business Machines Corporation Power-managed server and method for managing power consumption
US7421599B2 (en) * 2005-06-09 2008-09-02 International Business Machines Corporation Power management server and method for managing power consumption
US7467311B2 (en) * 2005-06-09 2008-12-16 International Business Machines Corporation Distributed system and method for managing power usage among server data processing systems
US7509506B2 (en) * 2005-06-09 2009-03-24 International Business Machines Corporation Hierarchical system and method for managing power usage among server data processing systems
US7590788B2 (en) * 2007-10-29 2009-09-15 Intel Corporation Controlling transmission on an asynchronous bus
FR2936620B1 (fr) * 2008-10-01 2010-10-22 Ingenico Sa Terminal de paiement electronique a affichage ameliore
US8805590B2 (en) * 2009-12-24 2014-08-12 International Business Machines Corporation Fan speed control of rack devices where sum of device airflows is greater than maximum airflow of rack
WO2011106049A1 (en) 2010-02-23 2011-09-01 Rambus Inc. Time multiplexing at different rates to access different memory types
JP5761819B2 (ja) * 2010-06-17 2015-08-12 国立大学法人 奈良先端科学技術大学院大学 スキャン非同期記憶素子およびそれを備えた半導体集積回路ならびにその設計方法およびテストパターン生成方法
KR101949671B1 (ko) 2012-06-28 2019-04-25 삼성전자 주식회사 라이프 싸이클을 증가시킬 수 있는 저장 장치 및 그 동작 방법
CN104346285B (zh) 2013-08-06 2018-05-11 华为技术有限公司 内存访问处理方法、装置及系统
CN104731550B (zh) * 2015-03-12 2017-10-17 电子科技大学 一种基于单fifo的双倍时钟双向数字延迟方法
US10686539B2 (en) * 2015-05-29 2020-06-16 Avago Technologies International Sales Pte. Limited Flexible debug observation point insertion in pipeline designs
WO2019055066A1 (en) * 2017-09-12 2019-03-21 Ambiq Micro, Inc. VERY LOW POWER MICROCONTROLLER SYSTEM
CN110348253B (zh) * 2018-08-20 2020-10-13 广州知弘科技有限公司 基于大数据的信息安全系统的延时处理电路和方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6116086A (ja) * 1984-06-30 1986-01-24 Toshiba Corp メモリ制御方式
JPH01315857A (ja) * 1988-06-16 1989-12-20 Oki Electric Ind Co Ltd 共有メモリアクセス方式
JPH0279088A (ja) * 1988-09-16 1990-03-19 Hitachi Ltd 表示メモリアクセス方法
US5202973A (en) 1990-06-29 1993-04-13 Digital Equipment Corporation Method of controlling a shared memory bus in a multiprocessor system for preventing bus collisions and for ensuring a full bus
JP3523286B2 (ja) 1993-03-12 2004-04-26 株式会社日立製作所 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
JPH09511117A (ja) 1995-01-25 1997-11-04 アドバンスド マイクロ デバイシズ,インコーポレーテッド 複数の伝達ゲートを有する高速ラッチ回路及びそれを用いるパイプライン化されたマイクロプロセッサー
US5684422A (en) 1995-01-25 1997-11-04 Advanced Micro Devices, Inc. Pipelined microprocessor including a high speed single-clock latch circuit
JPH08328941A (ja) 1995-05-31 1996-12-13 Nec Corp メモリアクセス制御回路
FR2737636B1 (fr) * 1995-08-03 1997-10-17 Sgs Thomson Microelectronics Dispositif de transfert de donnees binaires entre un multiplex par division du temps et une memoire
JP3444154B2 (ja) * 1997-09-17 2003-09-08 日本電気株式会社 メモリアクセス制御回路
US6175905B1 (en) * 1998-07-30 2001-01-16 Micron Technology, Inc. Method and system for bypassing pipelines in a pipelined memory command generator
US6205524B1 (en) * 1998-09-16 2001-03-20 Neomagic Corp. Multimedia arbiter and method using fixed round-robin slots for real-time agents and a timed priority slot for non-real-time agents
TW522399B (en) * 1999-12-08 2003-03-01 Hitachi Ltd Semiconductor device
US6412049B1 (en) * 1999-12-16 2002-06-25 Intel Corporation Method for minimizing CPU memory latency while transferring streaming data
US6473821B1 (en) * 1999-12-21 2002-10-29 Visteon Global Technologies, Inc. Multiple processor interface, synchronization, and arbitration scheme using time multiplexed shared memory for real time systems
US6847650B1 (en) * 2000-06-29 2005-01-25 Sony Corporation System and method for utilizing a memory device to support isochronous processes
US6622227B2 (en) * 2000-12-27 2003-09-16 Intel Corporation Method and apparatus for utilizing write buffers in memory control/interface
US6820152B2 (en) * 2001-04-25 2004-11-16 Matsushita Electric Industrial Co., Ltd. Memory control device and LSI
US6775717B1 (en) * 2001-08-31 2004-08-10 Integrated Device Technology, Inc. Method and apparatus for reducing latency due to set up time between DMA transfers
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US7114051B2 (en) * 2002-06-01 2006-09-26 Solid State System Co., Ltd. Method for partitioning memory mass storage device
US20040003194A1 (en) * 2002-06-26 2004-01-01 Amit Bodas Method and apparatus for adjusting DRAM signal timings

Also Published As

Publication number Publication date
JP2006527878A (ja) 2006-12-07
CN1806234A (zh) 2006-07-19
WO2004111860A3 (en) 2005-02-10
ATE371896T1 (de) 2007-09-15
CN100483374C (zh) 2009-04-29
US7487300B2 (en) 2009-02-03
KR20060017876A (ko) 2006-02-27
US8190829B2 (en) 2012-05-29
US20090106520A1 (en) 2009-04-23
EP1639478B1 (de) 2007-08-29
US8473706B2 (en) 2013-06-25
TWI396977B (zh) 2013-05-21
TW200502769A (en) 2005-01-16
EP1639478A2 (de) 2006-03-29
US20120303921A1 (en) 2012-11-29
US20060168416A1 (en) 2006-07-27
DE602004008628D1 (de) 2007-10-11
WO2004111860A2 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
DE602004008628T2 (de) Datenverarbeitungsschaltung mit gemultiplextem speicher
DE4291778B4 (de) Cache-Speichereinrichtung für ein Mikroprozessorsystem mit einem Cache-Speicher mit asynchronem Datenpfad
DE69628351T9 (de) Verfahren zur Leserverstärkersteuerung
DE10084993B3 (de) Ausgabeschaltung für einen mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM), ein mit doppelter Datenrate arbeitender dynamischer Speicher mit wahlfreiem Zugriff (DDR DRAM), ein Verfahren zum getakteten Auslesen von Daten aus mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM)
DE60002571T2 (de) Elastische schnittstelleanornung und verfahren dafür
DE69906793T2 (de) Verfahren und anordnung für hochgeschwindigkeitsdatenerfassung mit korrektur der bit-zu-bit-zeitgebung und speicheranordnung unter verwendung derselben
DE102004021694B4 (de) Verfahren und Schaltungsanordnung zum Steuern eines Schreibzugriffs auf einen Halbleiterspeicher
DE10235739B4 (de) Register, das auf einem Speichermodul montiert ist sowie Verwendung eines Registers in einem Speichermodul
DE19882486B4 (de) Synchroner, nicht-flüchtiger Seitenmodus-Speicher
DE60002567T2 (de) Dynamische wellenpipelineschnittstellenanordnung und verfahren dafür
DE10236696B4 (de) Taktsynchrone Halbleiterspeichervorrichtung
DE60214992T2 (de) Mehrbit-prefetch-ausgangsdatenweg
DE4129614A1 (de) System und verfahren zur datenverarbeitung in einer mehrzahl von betriebsarten entsprechend programminterner parallelverarbeitungseigenschaften unter verwendung eines cachespeichers
DE10210904A1 (de) Speichermodul, zugehöriges Speichersystem und Taktsignalerzeugungsverfahren
DE69829039T2 (de) Signalverzögerungsvorrichtung zur Verwendung in Halbleiterspeichervorrichtung für verbesserte Operation in Burst-Betriebsart
DE60026068T2 (de) System für externe transaktionen mit dynamischen prioritäten
DE60010511T2 (de) Schnittstelle für eine speichereinheit
DE60015720T2 (de) Verfahren und Anordnung zum Arbitrieren des Zugriffes eines Zeitmutiplex-verteilten Speichers von mehreren Prozessoren in einem Echtzeitsystem
DE102007004713B4 (de) Datenübergabeeinheit zum Übertragen von Daten zwischen unterschiedlichen Taktbereichen
DE60011629T2 (de) Speicher mit mehrfachen datenraten
DE60217408T2 (de) Informationsaustausch zwischen lokal synchronen schaltungen
DE60035630T2 (de) Hierarchische Vorausladung in Halbleiterspeicheranordnungen
DE60214379T2 (de) Verfahren und vorrichtung für eine taktschaltung
DE69910172T2 (de) Schaltkreis mit pseudo-mehrport-speicher
DE102004011673B3 (de) Vorrichtung zur Datensynchronisation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1639478

Country of ref document: EP

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE, EUROPEA, DE