DE60308150T2 - Adressenraum, bussystem, speicherungssteuerung und einrichtungssystem - Google Patents

Adressenraum, bussystem, speicherungssteuerung und einrichtungssystem Download PDF

Info

Publication number
DE60308150T2
DE60308150T2 DE60308150T DE60308150T DE60308150T2 DE 60308150 T2 DE60308150 T2 DE 60308150T2 DE 60308150 T DE60308150 T DE 60308150T DE 60308150 T DE60308150 T DE 60308150T DE 60308150 T2 DE60308150 T2 DE 60308150T2
Authority
DE
Germany
Prior art keywords
address
memory
storage device
device group
data
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
DE60308150T
Other languages
English (en)
Other versions
DE60308150D1 (de
Inventor
G. Egbert JASPERS
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
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 DE60308150D1 publication Critical patent/DE60308150D1/de
Application granted granted Critical
Publication of DE60308150T2 publication Critical patent/DE60308150T2/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/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

  • Die Erfindung bezieht sich auf einen Adressenraum, ein Bussystem, eine Speichersteuereinheit und ein Einrichtungssystem mit einem Adressenraum, einem Bussystem und einer Speichersteuereinheit.
  • Die Speicherkapazitätsanforderungen in großen Systemen auf Chips (SoC) haben zur Verwendung von DRAM-basierten Speichereinrichtungen mit hoher Integrationsdichte geführt. Üblicherweise enthalten die Einrichtungen eine Anordnung dynamischer Zellen, auf die mit einer separaten Reihen- und Spaltenadresse zugegriffen wird. Der Zugriff auf ein einzelnes Wort im Speicher erfordert daher mehrere Speicherbefehle, die auszugeben sind: eine Reihenadresse (Reihe aktivieren), eine Spaltenadresse (Lesen oder Schreiben) und die Vorladung (um die Reihe, auf die zugegriffen wird, in der Anordnung zu aktualisieren). Um eine umfassende Nutzung des Speicherbusses zu ermöglichen, ist die Bündelzugriffsbetriebsart zur Maximierung der anhaltenden Speicherbandbreite vorgesehen. Wenn ein Lese- oder Schreibbefehl mittels einer Spaltenadresse ausgegeben wird, wird ein Bündel von Daten (z.B. vier Wörter) zur oder von der Speichereinrichtung übertragen. Während des Aktivierens und Vorladens einer Reihe kann nicht auf Daten in der Speicheranordnung zugegriffen werden. Deshalb sind mehrere Anordnungen dynamischer Zellen, Mehrfachbänke genannt, integriert, auf die unabhängig voneinander zugegriffen werden kann. Während der Aktivierungs- und Vorladungsphase bei einer der Bänke kann auf eine andere Bank zugegriffen werden, wodurch die Zeit ausgeblendet wird, in der nicht auf eine aktivierte oder vorgeladene Bank zugegriffen werden kann.
  • Ein Ergebnis dieser Effizienzoptimierung ist, dass nur basierend auf der Granularität von Datenbündeln auf Daten zugegriffen werden kann. Diese Datenbündel befinden sich aufeinanderfolgend im Speicher. Deshalb kann man das Bündel von Daten als nichtüberlappende Blöcke von Daten im Speicher betrachten, auf die nur als Einheit zugegriffen werden kann. Die Länge des Bündels bestimmt die Zugriffsgranularität und ist programmierbar. Üblicherweise erlangt man dies zum Zeitpunkt der Konfigurierung.
  • In dem Dokument GB 2.287.808 wird ein Verfahren für den Zugriff auf einen DRAM beschrieben, bei dem eine Aktivierungsleitung vorbereitet wird, die es ermög licht bzw. verhindert, eine Anzahl von Wörtern, die kleiner als eine vorgegebene feste Bündellänge ist, aus dem DRAM zu lesen und in den DRAM zu schreiben. Ein derartiges Verfahren kann jedoch zu Leistungsverlusten führen und es erforderlich machen, Bemühungen zu deren Vermeidung umzusetzen. DRAMs der neuen Generation, wie beispielsweise DRR2 SDRAMS, verfügen nicht mehr über das beschriebene Merkmal, d.h. ein Bündel kann nicht mehr unterbrochen werden. Daher wäre das in dem Dokument GB 2.287.808 beschriebene Verfahren auch nicht mit DRAMs der neuen Generation kompatibel.
  • In dem Dokument US 5.754.815 wird ein Verfahren zur Steuerung der Abfolge von Zugriffen eines Prozessors auf einen zugewiesenen Speicher beschrieben, der von mindestens zwei einzeln adressierbaren statischen Unterspeichern bzw. Speicherbänken gebildet wird. Zwischen dem Prozessor und, beispielsweise, zwei statischen Unterspeichern ist eine Ansteuerungslogik eingefügt. Die statischen Unterspeicher SRAM 0,1 und ein dynamischer Speicher DRAM bilden zusammen den Hauptspeicher des Mikroprozessorsystems. Das Dokument US 5.754.815 bezieht sich auf die statischen Unterspeicher SRAM 0,1. Jeder der statischen Unterspeicher SRAM 0,1 wird separat über Eingänge angesteuert, die in Übereinstimmung mit dem Prozessorbus realisiert werden. Das Mikroprozessorsystem ist über einen Prozessorbus, der von Adressleitungen gebildet wird, mit einer Ansteuerungslogik verbunden. Die Ausgänge der den Prozessorbus darstellenden Ansteuerungslogik sind mit den beiden statischen Unterspeichern SRAM 0,1 verbunden. Ferner enthält die Ansteuerungslogik eine Takt- und Logikschaltung. In der Takt- und Logikschaltung wird der Prozessorbus einem Adressenzwischenspeicher, einer Adressensteuereinheit und einer Zwischenspeichersteuereinheit zugeleitet. Wie in 2 des Dokuments US 5.754.815 gezeigt, werden die Adressinformationen einer Adressleitung ADL 4...n vom Mikroprozessor übermittelt und in dem Adressenzwischenspeicher gespeichert und zusammen mit Adressinformationen einer zweiten und einer dritten Adressleitung ADL 2,3 in der Adressensteuereinheit gebildet. Diese werden den beiden statischen Unterspeicher SRAM 0,1 zugeführt. Dadurch werden für jeden Unterspeicher oder entsprechend jede Speicherbank SRAM 0,1 Adressinformationen in der Adressensteuereinheit gebildet und über die Adressleitungen 2,3 separat an die beiden Unterspeicher SRAM 0,1 geleitet.
  • Um die hohen Bandbreitenanforderungen in Systemen auf einem Chip zu erfüllen, werden Speicherbusse breiter. Die Folge dieser Entwicklung ist eine zunehmende Granularität der Dateneinheit, auf die zugegriffen werden kann.
  • Ein aktueller Trend in der SoC-Technologie betrifft das Einbetten von DRAM auf dem Systemchip. Beispiele für die Implementierung derartiger Systeme werden beschrieben in der Abhandlung von Schu M., et al., „System on silicon-IC for motion compensated scan rate conversion picture-in-picture processing, split screen applications and display processing", IEEE-Transactions-on-Consumer-Electronics (USA), Bd. 45, Nr. 3, S. 842-50, Aug. 1999, und Schu M. et al., „System-on-Silicon Solution for High Quality Consumer Video Processing – The Next Generation", Digest of Technical Papers of the International Conference on Consumer Electronics, Los Angeles, CA, USA, 19.-21. Juni 2001, S. 94-95. Derzeit verwenden die meisten Systeme auf Chip (SoC), die eine Off-Chip-Speicher-Nutzung erfordern, SDRAM-basierende Speichereinrichtungen wie Single-Data-Rate (SDR) SDRAM, Double-Data-Rate (DDR) SDRAM oder Direct-RAMBUS (RDRAM). Derartige Systeme verwenden eine Speichersteuereinheit und einen Adressbus gemeinsam für alle SDRAM-Speichereinrichtungen eines Adressenraums, die mit dem gemeinsamen Adressbus verbunden sind.
  • All diese Arten von Einrichtungssystemen leiden unter dem Problem, dass beim Zugriff auf feinkörnige Datenblöcke der Transfer-Overhead mit steigenden Datenbündelgrößen aufgrund einer zunehmenden Granularität des Zugriffsausrichtungsraster von Bündeln erheblich zunimmt. Dies ist insbesondere nachteilig, wenn ein angeforderter Datenblock das Ausrichtungsraster der Bündel kreuzt.
  • Manche Systementwürfe versuchen, die Granularität der Datenbündelgrößen und des Ausrichtungsrasters zu reduzieren, indem sie mehrere unabhängige Datenbusse mit separaten Speichersteuereinheiten für jede Speichereinrichtung eines Adressenraums verwenden. Ein derartiges System wird in B. Khailany, et al., „Imagine: Media Processing with Streams"; IEEE Micro, März-April 2001, S. 35-46, beschrieben. Allerdings kann jede Speichersteuereinheit eines derartigen Systems nur auf ihre eigene Speichereinrichtung des Adressenraums zugreifen, d.h. nur einen Teil des gesamten Adressenraums. Eine derartige Steuereinheit ist nicht in der Lage, auf den gesamten Adressenraum zuzugreifen. Daher sind mehrere Steuereinheiten erforderlich, was nachteilig hinsichtlich Kosten, Konstruktion und Infrastruktur ist.
  • Hier kommt die Erfindung zum Tragen, deren Aufgabe es ist, ein Einrichtungssystem, einen Adressenraum, ein Bussystem und eine Speichersteuereinheit zu spezifizieren, die in der Lage sind, den Transfer-Overhead zu verringern und dadurch die ver fügbare Bandbreite für angeforderte Daten zu verbessern und eine effizientere Nutzung eines Bussystems zu ermöglichen.
  • Erfindungsgemäß wird ein Einrichtungssystem gemäß Anspruch 1 vorgeschlagen, wobei das Einrichtungssystem Folgendes umfasst:
    • – eine Speichersteuereinheit, operativ verbunden über eine Adressleitung von
    • – einem Adressbus mit einem Adressenraum mit mehr als einer Speichereinrichtungsgruppe,
    wobei die mehr als eine Einrichtungsgruppe mindestens eine Speichereinrichtung in Form einer DRAM-basierenden Einrichtung umfasst, und die Steuereinheit für die mehr als eine Speichereinrichtungsgruppe eines Adressenraums eine einzelne gemeinsame Adressleitung bereitstellt, und
    die Steuereinheit eine Adressleitung für einen Speichereinrichtungsgruppe bereitstellt, wobei die Adressleitung der Speichereinrichtungsgruppe anders zugeführt wird als eine andere Adressleitung, die einer anderen Speichereinrichtungsgruppe zugeführt wird. Vorteilhafterweise wird die Adressleitung separat, insbesondere speziell, insbesondere allein der Speichereinrichtungsgruppe zugeführt.
  • Die Erfindung führt zu einem Einrichtungssystem, bei dem das Einrichtungssystem Folgendes umfasst:
    • – eine Speichersteuereinheit,
    • – einen Adressbus, und
    • – einen Adressenraum
    wobei der Adressbus dafür eingerichtet ist, auf den gesamten Adressenraum mit mehr als einer Speichereinrichtungsgruppe zuzugreifen, und dafür eingerichtet ist, auf mindestens eine Speichereinrichtungsgruppe anders zuzugreifen als auf eine andere Speichereinrichtungsgruppe, und wobei eine Adressleitung des Adressbusses vorteilhafterweise separat, insbesondere allein auf die Speichereinrichtungsgruppe zugreift.
  • Vorzugsweise hat der Adressenraum erfindungsgemäß mehr als eine Speichereinrichtungsgruppe, wobei eine Speichereinrichtungsgruppe mindestens einen Adressleitungsverbinder hat, der dafür eingerichtet ist, die Speichereinrichtungsgruppe anders mit einer Speichersteuereinheit zu verbinden als eine andere Speichereinrichtung mit einer Speichersteuereinheit verbunden ist. Vorteilhafterweise ist der Adressleitungsverbinder dafür eingerichtet, die Speichereinrichtungsgruppe separat mit einer Speichersteuereinheit zu verbinden, insbesondere allein mit einer Speichersteuereinheit.
  • Vorzugsweise hat das Bussystem erfindungsgemäß einen Adressbus, wobei der Adressbus eine Adressleitung hat, die dafür eingerichtet ist, eine unter mehreren Speichereinrichtungsgruppen eines Adressenraums ausgewählte Speichereinrichtungsgruppe anders mit einer Speichersteuereinheit zu verbinden als eine andere Speichereinrichtungsgruppe mit einer Speichersteuereinheit verbunden ist.
  • Vorzugsweise ist die Speichersteuereinheit dafür eingerichtet, auf einen vollständigen Adressenraum mit mehr als einer Speichereinrichtungsgruppe zuzugreifen, wobei die Speichersteuereinheit mindestens einen Adressleitungsverbinder hat, der dafür eingerichtet ist, eine Speichereinrichtungsgruppe anders durch den Adressleitungsverbinder zu verbinden als eine andere Speichereinrichtungsgruppe durch einen anderen Adressleitungsverbinder verbunden ist. Im Besonderen gibt es mindestens eine Adressleitung, d.h. eine oder mehr Adressleitungen.
  • Im Hinblick auf die Erfindung wird auf den Begriff „unterschiedlich/anders" in dem Sinne Bezug genommen, dass mindestens eine der erwähnten Leitungen, insbesondere Adressleitungen, einen anderen Wert oder eine andere Qualität als andere Leitungen hat. Z.B. kann der Wert der unterschiedlich zugeführten Adressleitung 0 sein, während der Wert der anderen Adressleitung 1 ist. Ferner weicht die Qualität, z.B. die Spannung oder Bandbreite oder sonstige Eigenschaften, der unterschiedlich zugeführten Adressleitung von derjenigen der anderen Adressleitung ab. Auf diese Weise sind verschiedene Adressen für verschiedene Speichereinrichtungsgruppen möglich. Beispielsweise kann eine Spaltenadresse für jede Speichereinrichtungsgruppe unterschiedlich sein. Die mindestens eine Adressleitung muss nicht notwendigerweise einen anderen Wert oder eine andere Qualität als die andere Leitung haben, sondern sollte nur die Möglichkeit bieten, einen anderen Wert zu haben. Z.B. hat mindestens eine der Adressleitungen nicht die gesamte Zeit, sondern nur gelegentlich, zumindest zum Zeitpunkt eines Zugriffs auf eine Speichereinrichtungsgruppe des Adressenraums, einen anderen Wert oder eine andere Qualität als andere Leitungen, d.h. die Steuereinheit liefert eine Adressleitung für eine Speichereinrichtungsgruppe, wobei die Adressleitung der Speichereinrichtungsgruppe anders zugeführt wird als eine andere Adressleitung einer anderen Speichereinrichtungsgruppe zugeführt wird. Vorteilhafterweise kann dies natürlich erreicht werden, wenn die Adressleitung separat, insbesondere allein der Speichereinrichtungsgruppe zugeführt wird. In dieser Hinsicht wird der Speichereinrichtungsgruppe eine andere zugeführte Leitung für eine Speichereinrichtungsgruppe zugeordnet.
  • Vorzugsweise besteht eine Speichereinrichtungsgruppe aus einer einzelnen Speichereinrichtung, sie kann jedoch auch zwei oder mehr Speichereinrichtungen umfassen. Der Ausdruck „Speichereinrichtungsgruppe" bezieht sich insbesondere auf eine Gruppe von Speichereinrichtungen, in der alle Speichereinrichtungen der Gruppe auf dieselbe Weise gesteuert werden und insbesondere eine oder mehrere Adressleitungen gemeinsam haben.
  • Auf den Ausdruck „Adressenraum" wird im Hinblick auf die Erfindung in dem Sinn Bezug genommen, dass ein Adressenraum für die Vielzahl aller Speichereinrichtungsgruppen und Speichereinrichtungen vorgesehen ist. Zudem muss der Ausdruck „Adressenraum" sorgfältig vom Gesamtspeicherplatz eines Computers unterschieden werden. Zum Adressenraum gehört nicht der Festplattenspeicherplatz eines Computers.
  • Zwei Konfigurationen eines Speichers können als Beispiele für einen Adressenraum dienen. Jede Konfiguration eines Adressenraums hat eine Speicherdatenbusbreite von insgesamt 64 Bit. Bei der ersten Konfiguration besteht der Adressenraum aus vier Speichereinrichtungsgruppen, die jeweils eine einzelne Speichereinrichtung mit einem 16-Bit-Datenbus haben. Bei der zweiten Konfiguration besteht der Adressenraum aus acht Speichereinrichtungsgruppen, die jeweils eine einzelne Speichereinrichtung mit einem 8-Bit-Datenbus haben. Eine Speichereinrichtung selbst kann eine Kapazität von beispielsweise 16 Megabit oder 32 Megabit haben. Wenn die Speichereinrichtungen der ersten und zweiten Konfiguration beide dieselbe Speicherkapazität haben, dann hat die zweite Konfiguration einen Adressenraum, der zweimal so groß ist wie der der ersten Konfiguration. Das liegt daran, dass man bei der zweiten Konfiguration doppelt so viele Einrichtungen hat wie bei der ersten Konfiguration. Folglich hat der Adressbus bei der zweiten Konfiguration eine Breite, die die Breite des Adressbusses der ersten Konfiguration um ein Bit überschreitet.
  • Das liegt daran, dass die Kapazität eines Adressenraums als der Betrag verschiedener Adresswerte eines Adressenraums definiert ist. Beispielsweise gelten 10 Adressleitungen für einen 210 = 1024 Wörter-Adressenraum, was der Gesamtanzahl von Adressen entspricht. Ein Wort ist definiert als ein einzelner Wert auf dem Datenbus eines bestimmten Speicherkonfigurators. Ein 32-Bit-Datenbus ist beispielsweise dafür eingerichtet, 32 Bit breite Wörter zu übertragen. Somit ist der Adressenraum eines Speichersystems immer eine Vielzahl von Wörtern, d.h. bei dem obigen Beispiel ein Vielfaches von 32 Bits.
  • Die Anzahl der Speichereinrichtungen und -gruppen eines vollständigen Adressenraums kann je nach Datenbusbreite jeder Speichereinrichtung noch variieren. Um beispielsweise einen 64-Bit-Datenbus zu schaffen, können zwei Speichereinrichtungen von 32-Bit-Datenbussen oder vier Einrichtungen von 16-Bit-Datenbussen oder acht Einrichtungen von 8-Bit-Datenbussen oder 16 Einrichtungen von 4-Bit-Datenbussen verwendet werden. Je nach spezieller Anwendung kann jede weitere Anzahl von Datenbusbreiten von Speichereinrichtungen gewählt werden.
  • Ein Bussystem kann einen Datenbus und einen Adressbus bereitstellen, die jeweils eine Reihe von Leitungen umfassen. Eine Leitung wird im Hinblick auf einen Adressbus als eine Adressleitung und im Hinblick auf einen Datenbus als Datenleitung bezeichnet. Ein Bus umfasst eine oder mehrere Leitungen. Eine Leitung kann als eine Einzelleitung zwischen der Steuereinheit und einer einzelnen Speichereinrichtungsgruppe angeschlossen oder weiter aufgespaltet sein, um die Steuereinheit mit einer Reihe von Einrichtungen einer Einzeleinrichtungsgruppe mit einer einzelnen Leitung zu verbinden. Unter dieser Annahme kann ein Bus gemeinsame Leitungen und/oder unterschiedlich verwendete Leitungen umfassen, wie oben ausgeführt. Gemeinsame Leitungen verbinden eine Reihe von Einrichtungsgruppen gleichzeitig. Eine gemeinsame Adressleitung versorgt die angeschlossenen Einrichtungsgruppen mit denselben Informationen. Es ist nicht möglich, die angeschlossenen Speichereinrichtungsgruppen über die gemeinsame Leitung mit unterschiedlichen Informationen zu versorgen. Wie oben ausgeführt ist insbesondere eine unterschiedlich verwendete Adressleitung geeignet, um eine bestimmte Einrichtungsgruppe eines Adressenraums auf eine andere Weise anzusteuern als eine andere Einrichtungsgruppe des Adressenraums. Die unterschiedlich verwendete Adressleitung kann als Einzelleitung zwischen der Steuereinheit und einer einzelnen Speichereinrichtungsgruppe angeschlossen und weiter aufgespaltet sein, um verschiedene Einrichtungen der erwähnten speziellen Einrichtungsgruppe zu verbinden. Diese verschiedenen Einrichtungen der speziellen Einrichtungsgruppe werden auf dieselbe gemeinsame Weise angesteuert.
  • Die Erfindung entstand aus dem Wunsch heraus, eine Möglichkeit vorzuschlagen, das Ausrichtungsraster zu verfeinern, obwohl die Anzahl von Bytes innerhalb eines Datenbündels gleich bleibt. Der Hauptgedanke der Erfindung resultiert aus der Einsicht, dass die Anzahl unterschiedlich verwendeter Leitungen die Granularität der Dateneinheiten und die Anzahl der gleichzeitigen Dateneinheiten bestimmt. Vorgeschlagen werden daher ein Einrichtungssystem, ein Adressenraum, ein Bussystem und eine Speicher steuereinheit, mit denen mehrere Speichereinrichtungen unterschiedlich adressiert werden können. Dadurch kann ein Teil der Adressleitungen gemeinsam von allen Speichereinrichtungen genutzt werden, wie zum Beispiel die Bankadressleitungen. Der andere Teil der Adressleitungen, wie mindestens eine Adressleitung, wird unterschiedlich, vorzugsweise separat oder allein einer Speichereinrichtungsgruppe mit einer oder mehreren Speichereinrichtungen zugeführt. Vorzugsweise ist eine Vielzahl von Adressleitungen vorgesehen, wobei jede der Adressleitungen einer entsprechenden Speichereinrichtungsgruppe auf andere Weise zugeführt wird, d.h. die unterschiedlich zugeführten Adressleitungen sind speziell zugeordnet. Insbesondere wird ein Einrichtungssystem geschaffen, das über eine Speichereinheit und separate Adressleitungen eines Adressbusses für mehrere parallele Speichereinrichtungen verfügt an Stelle oder zusätzlich zu einer oder einer Reihe gemeinsamer Adressleitungen. Dadurch wird das Ausrichtungsraster verfeinert, obwohl die Anzahl der Bytes pro Bündel gleich bleibt. Aufgrund des verfeinerten Ausrichtungsrasters kann der Transfer-Overhead erheblich reduziert werden.
  • Weiter entwickelte Konfigurationen der Erfindung werden in den abhängigen Ansprüchen beschrieben.
  • In einer bevorzugten Ausführungsform ist eine einzelne Speichersteuereinheit operativ mit dem gesamten Adressenraum verbunden. Der gesamte Adressenraum besteht aus einer Vielzahl von Speichereinrichtungsgruppen.
  • Das Einrichtungssystem kann einen chipexternen Speicher (Off-Chip-Speicher) umfassen. Auch für Systeme mit einem chipinternen Speicher (On-Chip-Speicher) können die vorgeschlagenen Einrichtungen vorteilhaft sein, weil zusätzliche Kosten für einen eingebetteten DRAM begrenzt werden.
  • In einer bevorzugten Konfiguration umfasst das Einrichtungssystem einen Prozessor auf einem Chip. Wenn sich der Speicher auf dem Chip befindet, ist ein DRAM-basierender Speicher vorteilhaft. Eine derartige Konfiguration kann mit geringen Kosten eingerichtet werden. Der DRAM-basierende Speicher braucht nur Signale anzubieten, ein Takt ist nicht erforderlich. Wenn sich der Speicher nicht auf dem Chip befindet, ist ein SDRAM-basierender Speicher vorzuziehen. In diesem Fall wird aus Gründen der Synchronisierung ein Flip-Flop-gesteuerter DRAM, d.h. ein SDRAM, bevorzugt. Weitere Vorteile werden im Hinblick auf die Figuren beschrieben.
  • Darüber hinaus sind eine oder mehrere, allen Speichereinrichtungen gemeinsame Adressleitungen vorteilhaft, z.B. um eine Bankadressleitung bereitzustellen. Auch eine einzelne Adressleitung ist für solche Zwecke geeignet. Für eine Speichereinrichtung stellt die Steuereinheit vorzugsweise mindestens eine Datenleitung bereit, wobei die mindestens eine Datenleitung separat, insbesondere allein, einer Speichereinrichtung zugeordnet ist.
  • Die vorgeschlagene Speichereinrichtung, der vorgeschlagene Adressenraum, das vorgeschlagene Bussystem oder die vorgeschlagene Speichersteuereinheit werden vorzugsweise in allen SoC (Systems-on-Chip) benutzt, die die Verwendung von Off-Chip- oder eingebetteten DRAM-basierenden Speichern erfordern. Diese können alle medienverarbeitenden ICs, DSPs, CPUs usw. sein.
  • Bevorzugte Ausführungsformen der Erfindung werden im Folgenden unter Bezugnahme auf die begleitenden Zeichnungen beschrieben. Diese sollen Beispiele zeigen, um das schöpferische Konzept in Verbindung mit der ausführlichen Beschreibung einer bevorzugten Ausführungsform sowie im Vergleich zum Stand der Technik zu verdeutlichen.
  • Obwohl gezeigt und beschrieben wird, was als eine bevorzugte Ausführungsform der Erfindung betrachtet wird, versteht es sich natürlich, dass verschiedene Modifikationen und Änderungen in Form und Detail leicht vorgenommen werden könnten, ohne von der Erfindung abzuweichen. Es ist daher beabsichtigt, dass die Erfindung weder auf die genaue hierin gezeigte und beschriebene Form oder Einzelheit noch auf irgendetwas Geringeres als die Gesamtheit der hierin beschriebenen Erfindung, wie nachfolgend hierin geltend gemacht, beschränkt werden soll. Darüber hinaus können die in der Beschreibung dargelegten Merkmale sowie die die Erfindung beschreibenden Zeichnungen und Ansprüche allein genommen oder in Kombination für die Erfindung wesentlich sein. Es zeigen:
  • 1 eine Veranschaulichung des Transfer-Overheads für einen Datenblock, der von einem Speicher in einem Einrichtungssystem nach dem Stand der Technik angefordert wurde;
  • 2 eine herkömmliche Speicherinfrastruktur in einem Einrichtungssystem, das unter einem Transfer-Overhead wie für 1 beschrieben leidet;
  • 3 eine Speicherinfrastruktur in einem Einrichtungssystem mit mehreren Steuereinheiten als ein alternatives Beispiel für den Stand der Technik;
  • 4 eine Speicherinfrastruktur in einem Einrichtungssystem mit beidem, mehreren Adressleitungen, die auf unterschiedliche Weise jeder Speichereinrichtung und einer gemeinsamen Adressleitungen zugeführt werden, und einer gemeinsamen Steuereinheit einer bevorzugten Ausführungsform;
  • 5 eine Veranschaulichung des begrenzten Transfer-Overheads für einen Datenblock, der von einem Speicher in einem Einrichtungssystem einer bevorzugten Ausführungsform angefordert wurde, im Vergleich zu einem Speicher in einem Einrichtungssystem nach dem Stand der Technik wie in 1 gezeigt;
  • 6 ein Funktionsblockschaltbild eines SDRAM-Speichers gemäß einer bevorzugten Ausführungsform.
  • In 1 wird ein Beispiel gegeben, um die Länge eines die Zugriffsgranularität bestimmenden Bündels anzugeben. Wenn die Bündellänge beispielsweise „vier" ist, befinden sich Bündel mit vier Wörtern an Speicherstellen, die die folgende Bedingung erfüllen:
    Spaltenadresse MODULO 4 Wörter = 0.
  • Auf sie kann überall im Bündel zugegriffen werden. Auf ein Bündel kann jedoch nur als Gesamtheit zugegriffen werden, wie in Bezug auf Tabelle weiter unten beschrieben wird. Die Größe des Datenbündels hängt nicht nur von der Bündellänge ab, sondern auch von der Breite des Speicherbusses. Beispielsweise führen eine Bündellänge von „vier" und ein 64-Bit-Speicherbus zu Datenbündeln von 32 Bytes.
  • 1 zeigt ein Beispiel für die Gliederung piktografischer Daten in Speicherreihen 12 und Speicherspalten 13 einer Speichereinrichtung 10. Die Dateneinheit, d.h. ein Datenbündel 14, enthält 32 Bytes und ergibt sich aus dem Ausrichtungsraster 15. Um auf einen Datenblock von 256 Bytes (16 Bytes aus 16 verschiedenen Speicherreihen 12) zuzugreifen, werden 16 × 16 Bytes als ein Datenblock 15 abgerufen; da auf ein Bündel aber nur als Gesamtheit zugegriffen werden kann, wird auf 16 × 64 Bytes zugegriffen (viermal so viel wie erforderlich), was zu einem Transfer-Overhead 17 von 300% führt. Insbesondere beim Zugreifen auf feinkörnige Datenblöcke 16 steigt der Transfer-Overhead 17 mit zunehmenden Datenbündelgrößen 14 erheblich an. Dies gilt im Besonderen, wenn der angeforderte Datenblock 16 die Rastergrenzen 15 überlagert. Obwohl die Größe der Datenbündel 14 der Busbreite und der Bündellänge inhärent ist, wird ein Teil des Overheads durch die diskreten Positionen des Datenbündels 14 verursacht. Ein Speicherzugriff kann nur am Ausrichtungsraster 15 der Datenbündel 14 erfolgen. In 1 betrüge der Overhead 17 nur 100% (anstatt 300%), wenn der 32-Byte-Transfer am Anfang des angeforderten Datenblocks 16 beginnen könnte.
  • Um die Speicherbandbreite zu reduzieren, kann ein Teil des Transfer-Overhead 17 mit einem lokalen Cache-Speicher wieder verwendet werden, indem man die räumliche Lage von Daten ausnutzt, wie sie z.B. in CPU-Daten, CPU-Anweisungen und Streaming-Media-Daten vorhanden sind. Allerdings könnte auch in einem solchen System die Cache-Leistung deutlich verbessert werden, wenn der Startpunkt des Datenbündels nicht unbedingt auf das 32-Byte-Speicherraster 15 ausgerichtet sein müsste. Dann könnte das System diejenigen Daten im Transfer-Overhead 17 erfassen, die ein großes Cache-Trefferpotenzial haben. Obwohl der Startpunkt eines Datenbündels 14 an willkürlichen Positionen in der Spalte 13 optimal wäre, würde jede Verfeinerung des Ausrichtungsrasters 15 die Bandbreiteneffizienz verbessern.
  • Die Hauptspeichereinrichtungen 22, wie in 2 gezeigt, können in einem Einrichtungssystem 20 aus 2 benutzt werden. Eine derartige Speichereinrichtung 22 kann einen Datenbus von 4, 8 oder 16 Bits enthalten. Der Datenbus 23 hat eine Breite von 16 Bit. Um einen 64-Bit-Speicherbus bestehend aus allen Datenleitungen 23 zu schaffen, müssen mehrere Speichereinrichtungen 22 parallel angeschlossen sein. Üblicherweise teilen sie sich dieselbe Adressleitung 21. Indem man jedoch mehrere Adressleitungen oder -busse hat, könnten die Einrichtungen 22 unterschiedlich adressiert werden und dennoch dieselbe Gesamtbandbreite bereitstellen. Jede Speichereinrichtung 22 ist mit einem separaten Datenbus 23 an eine Speichersteuereinheit 24 angeschlossen, die dem Adressenraum aller Speichereinrichtungen 22 gemeinsam ist. Die Speichersteuereinheit 24 ist über eine 64-Bit-Leitung 26 mit dem SoC 27 verbunden.
  • Die bevorzugte Ausführungsform 40 aus 4 schafft eine Speichersteuereinheit 44, die unterschiedliche Adress- 48 und Datenbusse 43 für mehrere Speichereinrichtungen 42 bereitstellt. Ein Teil 41 des Adressbusses, der sämtliche Adressleitungen 41 und 48 darstellt, wird weiterhin von allen Speichereinrichtungen 42 gemeinsam genutzt, wie beispielsweise die Bankadressleitungen. Der andere Teil 48 des genannten Adressbusses ist speziell zugeordnet, jede Leitung 48 für eine einzelne Speichereinrichtungsgruppe 42. Bei dieser Ausführungsform besteht eine Speichereinrichtungsgruppe 42 aus einer einzelnen Speichereinrichtung. Bei einer Variante können einige oder alle der Adressleitungen 48 jeweils mit zwei oder mehr Speichereinrichtungen 42 funktionsfähig verbunden sein und eine Speichereinrichtungsgruppe bilden. Die Anzahl der als einzelne Leitungen an der Steuereinheit angeschlossenen Adressenleitungen 48 kann 2, 4, 8 usw. betragen und wird durch die Anzahl der Speichereinrichtungen begrenzt. Jede einzelne Leitung kann zudem durch eine Gruppe von Leitungen ersetzt werden. Wenn ein 64 Bit breiter Speicherbus bestehend aus Leitungen 43 mit 16 × 4-Bit-Speichereinrichtungen realisiert wird, könnten die Leitungen 48 des Adressbusses bis zu 16-mal kopiert werden. Der Vorschlag, wie in 4 skizziert, bietet mehr Flexibilität bei der Adressierung, um den Transfer-Overhead zu verringern und den Speicherort des Transfer-Overheads zu kontrollieren, was insbesondere die Leistung des Cache-Speichers verbessert. Die Steuereinheit 44 ist durch einen 64-Bit-Bus 46 mit dem SoC 47 verbunden. In der bevorzugten Ausführungsform aus 4 befindet sich der Adressenraum der Speichereinrichtungen 42 nicht auf dem Chip. In einer weiteren bevorzugten Ausführungsform könnte er sich aber auch auf dem Chip befinden.
  • Eine weitere, einfachere Lösung 30 nach dem Stand der Technik, um die Granularität eines Ausrichtungsrasters 15 zu verringern, besteht darin, mehrere unabhängige Datenbusse 38 mit mehreren Speichersteuereinheiten 39 zu haben, wie in 3 gezeigt. In einem derartigen System 30 nach dem Stand der Technik werden die Bandbreite und der Adressraum von Speichereinrichtungen 32 auf alle Speichersteuereinheiten 39 aufgeteilt. Diese Lösung 30 verringert auch die Granularität der Datenbündel 14, jedoch proportional zu der Anzahl der Steuereinheiten 39. Im Gegensatz zur bevorzugten Ausführungsform ist eine Vielzahl von Steuereinheiten 39 erforderlich, um den gesamten Adressenraum einer Vielzahl von Speichereinrichtungen 32 zu steuern. Jede Speichereinrichtung 32 ist einer separaten Speichersteuereinheit 39 zugeordnet.
  • Der Vorteil dieser Lösung gegenüber der vorgeschlagenen Lösung 40 besteht darin, dass die Adressierung der Dateneinheiten in allen Speichereinrichtungen nicht auf dieselbe Speicherbank begrenzt ist. Allerdings sind die Nachteile im Vergleich zum System 40 aus 4 signifikanter:
    • – jede Speichersteuereinheit 39 kann nur auf einen kleinen Teil 32 des gesamten Adressenraums zugreifen;
    • – mehrere Speichersteuereinheiten 39 erhöhen die Kosten des Systems 30 proportional;
    • – alle Signalleitungen zum Ausgeben einer Speicheranfrage und zum Abwickeln des gesamten Vorgangs müssen mehrfach ausgeführt sein;
    • – die gesamten Speicheradressbusse 38 müssen mehrfach ausgeführt sein, was die Kosten bei einem Off-Chip-Speichersystem erhöht; und
    • – die Infrastruktur 36 für die Speicher-Clients 37 des Systems 30 ist nicht mit der Lösung 20 aus 2 kompatibel, so dass alle Clients der 64-Bit-Speichersteuereinheit 24 mit einer 64-Bit-Datenleitung 26 neu entworfen werden müssen.
  • In der bevorzugten Ausführungsform einer Speicherarchitektur 40 aus 4 lässt die Speichersteuereinheit 44 bei den Speicher-Clients 47 offen, wie der physikalische Speicherraum 42 im Detail konfiguriert ist. Daher ist die Infrastruktur 46 der Speicher-Clients 47 im SoC kompatibel mit dem System 20, wie in 2 dargestellt. Damit bleibt der Entwurf vorhandener Clients 27 der Speichereinheit 44 gültig. Allerdings ist die Organisation der Daten in dem die Speichereinrichtungen 42 umfassenden Speicherraum anders, wie in 5 dargelegt. Vergleicht man 5 mit 1, kann man zwei Unterschiede feststellen. Aufgrund des feineres Ausrichtungsrasters 55 reicht nur ein Datenbündel 54 pro Einrichtung, das pro Reihe 52 aus insgesamt 32 Bytes gesendet wird, aus, um auf den gewünschten Datenblock 56 zuzugreifen, während in 1 zwei Datenbündel 14 pro Reihe erforderlich sind. Darüber hinaus kann die Position eines Teils 58 des Overheads 57 ausgewählt werden. In diesem Fall kann eine Auswahl zwischen der Spalte 53 vor dem gewünschten Datenblock 56 oder hinter dem gewünschten Datenblock 56 getroffen werden. Diese Flexibilität kann ausgenutzt werden, um die Cache-Leistung zu verbessern.
  • Wenn man vier Adressbusse wie in 3 gezeigt in Betracht zieht, sind aus einem 32-Byte-Datenbündel 4 × 8-Byte-Dateneinheiten 59 geworden, die gleichzeitig adressiert werden. Diese 4 × 8-Byte-Dateneinheiten 59 müssen nicht aufeinanderfolgend im Adressenraum 30 angeordnet sein. Diese Flexibilität kann beispielsweise für Signalverarbeitungseinheiten genutzt werden, die gleichzeitig mehrere kleine Dateneinheiten 54 an unterschiedlichen Positionen im Speicher erfordern. Beispielsweise ein temporaler Bildfilter, der Pixel aus aufeinanderfolgenden Bildrahmen im Speicher ausliest. Jede Dateneinheit könnt in einem anderen Bildrahmen positioniert sein. Es gibt jedoch einige Einschränkungen beim Adressieren jedes Bündels, das hier eine 8-Byte-Dateneinheit 54 ist. Jede Dateneinheit 54 muss sich in einer anderen Speichereinrichtung 42 befinden, und die Bankadresse jeder Dateneinheit 54 muss gleich sein. Die letztgenannte Einschränkung ist wegen der gemeinsamen Bankadressleitungen erforderlich und verhindert ein unterschiedliches Zeitablaufverhalten der Speicherbefehle. Einzelheiten zu diesem Thema werden im Zusammenhang mit 6 erörtert.
  • Die Benutzung mehrerer Adressbusse 48 erhöht offensichtlich die Kosten des Entwurfs. Insbesondere, wenn sich der Adressenraum bei Speichereinrichtungen 42 nicht auf dem Chip befindet. Mehrere Adressbusse 48 erfordern mehr Anschlussstifte auf der Chip-Vorrichtung, was die Verpackung der Vorrichtung verteuert und die Leistung erhöht. Darüber hinaus erfordert ein kleiner Teil der Adressenerzeugung in der Speichersteuereinheit 44 mehrere Implementierungen. Das Konzept macht jedoch einen signifikanten Kompromiss zwischen Zugriffsflexibilität und Systemkosten möglich. Zum Beispiel ist es möglich, einen großen Teil des Adressbusses 45 gemeinsam zu nutzen. Wenn beispielsweise auf eine mehr oder weniger lineare Weise auf den Speicher 42 zugegriffen wird, reicht es aus, eine flexible Adressierung von 4 × 8-Byte-Dateneinheiten 59 innerhalb einer Reihe 52 zu haben. Das bedeutet, dass nur die Spaltenadressleitungen 53 mehrfach ausgeführt sein müssen. Auch der Teil der Adressenerzeugung. der mehrfach ausgeführt sein muss, kann dann auf den Spaltenadressengenerator beschränkt werden. Bei Speichereinrichtungen mit beispielsweise 256 Spalten innerhalb einer Reihe müssen nur acht Adressleitungen mehrfach ausgeführt sein.
  • Zu beachten ist, dass die zusätzlichen Kosten für mehrere Adressbusse nur bei einem Off-Chip-Speicher erheblich sind, wie in 4 gezeigt. Bei SoC mit eingebettetem DRAM auf dem Chip sind die zusätzlichen Kosten begrenzt.
  • 6 zeigt das funktionale Blockschaltbild eines SDRAM 60. Die physikalischen Speicherzellen 61 sind in Bänke 0 bis 3 aufgeteilt, die über eine Reihenadresse 52 und eine Spaltenadresse 53 separat adressierbar sind. Eine Bank 0, 1, 2 oder 3 wird im Fall einer 4-Bank-Einrichtung über die Eingangsstifte BA0 und BA1 ausgewählt.
  • Bevor eine bestimmte Speicheradresse in einer Bank ausgegeben werden kann, muss zunächst die Speicherreihe 51, in der sich die Daten befinden, aktiviert werden. Während der Aktivierung einer Reihe 52 wird die komplette Reihe 52 zu den SDRAM-Seitenregistern 62 in den E/A-Torsteuerseiten 62 übertragen. Nun kann ein Direktzugriff auf die Spalten 53 innerhalb der Seiten 62 erfolgen. In jeder Bank 0, 1, 2 oder 3 kann immer nur eine Reihe gleichzeitig aktiv sein, aber während des Direktzugriffs der Seitenregister innerhalb der Seiten 62 kann ohne eine Sanktion zwischen den Bänken 0, 1, 2 oder 3 gewechselt werden. Für jede Bank gibt es eine Seite. Bei einer 4-Bank-Einrichtung können daher vier Reihen 52 wahlweise adressiert werden, indem eine Reihe 52 in jeder Bank 0, 1, 2 oder 3 adressiert wird. Während die Reihendaten zum Seitenregister 62 übertragen werden, sind die Reihenzellen in den DRAM-Bänken entladen. Wenn daher eine neue Reihe in einer Bank aktiviert werden muss, müssen zunächst die Seitenregister zurück in den DRAM kopiert werden, bevor ein neuer Reihenaktivierungsbefehl ausgegeben werden kann. Dies geschieht mittels eines speziellen Vorladungsbefehls, auch „Seite schließen"-Befehl genannt. Gemäß dem JEDEC-Standard können Lese- und Schreibbefehle mit einer automatischen Vorladung ausgegeben werden. Wenn die Seitenregister 62 daher geschlossen werden, indem ein Lese- oder Schreibvorgang mit automatischer Vorladung für den letzten Zugriff auf eine Reihe durchgeführt wird, ist kein zusätzlicher Vorladebefehl erforderlich.
  • In einer weiteren, hier nicht gezeigten Variante der bevorzugten Ausführungsform, kann einerseits die Datenzeitplanung in verschiedenen Speichereinrichtungen 42 unterschiedlich sein. Eine derartige Zeitplanung wird von mehr als einer Zeitplanungseinheit innerhalb der Speichersteuereinheit 44 vorgenommen. Dadurch wird eine Adressierung der verschiedenen Spalten und Reihen in unterschiedlichen Einrichtungen aufgestellt, weil die mehr als eine Zeitplanungseinheit in der Lage ist, sich um Vorladung und Aktivierung sowie weitere Zeitplanungsbeschränkungen im Hinblick auf die Adressierung verschiedener Reihen in unterschiedlichen Einrichtungen zu kümmern. Eine derartige Variante der bevorzugten Ausführungsform gestattet eine komplexere und flexiblere Adressierung des Adressenraums. In einer weiteren Variante der bevorzugten Ausführungsform 40 kann andererseits eine einzelne Zeitplanungseinheit innerhalb der Speichersteuereinheit 44 benutzt werden, so dass die Adressierung von Reihen in unterschiedlichen Einrichtungen dieselbe bleibt. Eine derartige weitere Variante der bevorzugten Ausführungsform 40 gestattet eine automatische Zeitplanung im Hinblick auf Vorladung und Aktivierung sowie Zeitplanungsbeschränkungen von Reihen in unterschiedlichen Einrichtungen. Die bevorzugte Ausführungsform 40 ermöglicht daher eine vereinfachte Lösung in der letzteren Variante, bei der nur ein Spaltengenerator angepasst werden muss. Bei der vorherigen Variante der bevorzugten Ausführungsform ist eine flexiblere und komplexere Adressierung des Adressenraums möglich.
  • Eine Speichersteuereinheit, wie in der bevorzugten Ausführungsform vorgeschlagen, steuert beispielsweise gleichzeitig 4 × 8-Byte-Dateneinheiten 54 an. Wenn die Speichersteuereinheit flexibel genug wäre, jede Reihe 52 in einer Bank 0, 1, 2 oder 3 für jede Dateneinheit 54 zu adressieren, würde die Zeitplanung der Speicherbefehle für jede Speichereinrichtung 42 unterschiedlich sein. Eine Einrichtung könnte beispielsweise nacheinander zwei verschiedene Adressen derselben Bank adressieren. Folglich muss der Reihenaktivierungsbefehl verzögert werden, bis die Bank vorgeladen ist. Für andere Speichereinrichtungen sind nachfolgende Reihenadressen in unterschiedlichen Bänken vorhanden, so dass der Reihenaktivierungsbefehl nicht verzögert werden muss. Damit die Spei chersteuereinheit 44 größtenteils von allen Speichereinrichtungen 42 gemeinsam genutzt werden kann, werden auch die Bankadressen gemeinsam genutzt, was gleiche Speicherbefehlszeitpläne gewährleistet.
  • Der SDRAM 60 aus 6 kann beispielsweise ein 128-MB-DDR-SDRAM sein, das als extrem schneller dynamischer CMOS-Direktzugriffsspeicher mit 134, 217, 728 Bits ausgeführt ist. Der 128-MB-DDR-SDRAM ist intern als ein 4-Bank-DRAM konfiguriert, wie in 6 gezeigt. Der 128-MB-DDR-SDRAM verwendet eine Double-Data-Rate-Architektur, um einen Hochgeschwindigkeitsbetrieb zu erzielen. Die Double-Data-Rate-Architektur ist im Wesentlichen eine 2n-Prefetch-Architektur mit einer Schnittstelle, die dafür konzipiert ist, zwei Datenwörter pro Taktzyklus an den E/A-Stiften zu übertragen. Ein einzelner Lese- oder Schreibzugriff für den 128-MB-DDR-SDRAM besteht aus einer einzelnen 2n Bit breiten Datenübertragung mit einem Taktzyklus am internen DRAM-Core und zwei entsprechenden n Bit breiten Datenübertragungen an den E/A-Stiften mit einem halben Taktzyklus.
  • Lese- und Schreibzugriffe auf den DDR-SDRAM sind bündelorientiert; Zugriffe starten an einer ausgewählten Stelle und werden für eine programmierte Anzahl von Stellen in einer programmierten Abfolge fortgesetzt. Zugriffe beginnen mit der Registrierung eines Befehls AKTIVIEREN, auf den dann ein Befehl LESEN oder SCHREIBEN folgt. Die Adressbits, die als mit dem Befehl AKTIVIEREN zusammenfallend registriert werden, werden verwendet, um die Bank und die Reihe auszuwählen, auf die zugegriffen werden soll, und durch einen Adressbus übermittelt. BA0 und BA1 wählen die Bank, und A0-A11 wählt die Reihe. Die Adressbits, die als mit dem Befehl LESEN oder SCHREIBEN zusammenfallend registriert werden, werden verwendet, um die Anfangsspaltenstelle für den Bündelzugriff auszuwählen. Vor dem normalen Betrieb muss der DDR-SDRAM initialisiert werden. DDR-SDRAMs werden auf eine zuvor festgelegte Weise eingeschaltet und initialisiert. Dies betrifft die Anwendung hoher Spannungen im Hinblick auf bestimmte Schwellenwerte und Zeitabläufe.
  • Die Funktion der Einrichtung wird von bestimmten Definitionen geleitet. Das Betriebsartregister dient dazu, die spezielle Betriebsart des DDR-SDRAMs zu definieren. Diese Definition beinhaltet die Auswahl einer Bündellänge, eines Bündeltyps, einer CAS-Latenz und einer Betriebsart. Das Betriebsartregister wird über die Befehlsleisten programmiert, die Befehle innerhalb der Steuerlogik an den Befehlsdecodierer übermitteln. Das Betriebsartregister wird programmiert und behält die gespeicherten Informationen, bis es erneut programmiert wird oder die Einrichtung ihre Stromversorgung verliert. Sofern es korrekt durchgeführt wird, bleibt beim Neuprogrammieren des Betriebsartregisters der Speicherinhalt unverändert. Das Betriebsartregister muss geladen oder neu geladen werden, wenn sich alle Bänke im Leerlauf befinden und keine Bündel unterwegs sind, und die Steuereinheit muss die angegebene Zeit abwarten, bevor sie den nachfolgenden Vorgang einleitet. Eine Missachtung dieser Voraussetzungen führt zu undefiniertem Betrieb.
  • Die Betriebsartregister-Bits A0-A2 geben beispielsweise die Bündellänge an, A3 definiert den Bündeltyp, z.B. sequenziell oder verschachtelt, A4-A6 definiert die CAS-Latenz, und A7-A11 definiert die Betriebsart. Insbesondere der Befehlsbus übermittelt Befehle in Bezug auf die folgenden Parameter. CK (Eingangstakt) sorgt dafür, dass alle Adressen und Steuereingangssignale beim Übergang auf der positiven Flanke des CK abgetastet werden. CS (Eingangs-Chip-Wahl) aktiviert den Befehlsdecodierer. Wenn CS als HOCH erfasst wird, werden alle Befehle maskiert. Bei Systemen mit mehreren Bänken sorgt CS für eine externe Bankauswahl. CS wird als Teil der Befehlsbetriebsart betrachtet. An der positiv ansteigenden Flanke des Takts abgetastet, definieren RAS (Row Address Strop), CAS (Coloumn Address Strop) und WE (Write Enable) die vom SDRAM auszuführende Funktion.
  • Wie oben angedeutet werden dem Adressregister weiterhin Adresseingänge A0-A11 und Bankauswahlen BA0-BA1 bereitgestellt. BA0-BA1 wählen, welche Bank zu aktivieren ist. Während eines Bankaktivierungs-Befehlszyklus definiert A0-A11 die Reihenadresse. Während eines Befehlszyklus LESEN oder SCHREIBEN definiert ein Teil der Adresseingangsleitungen, beispielsweise A0-A9 die Spaltenadresse. A10 dient dazu, am Ende des Bündelzyklus LESEN oder SCHREIBEN einen automatischen Vorladevorgang auszulösen. Während eines Vorladebefehlszyklus wird A10 in Verbindung mit BA0, BA1 verwendet, um zu steuern, welche Bank vorgeladen wird. Wenn A10 hoch ist, werden alle Bänke vorgeladen. Wenn A10 niedrig ist, werden BA0 und BA1 verwendet, um zu definieren, welche Bank vorzuladen ist.
  • Im Hinblick auf die Bündellänge sind LESEN- und SCHREIBEN-Zugriffe auf den DDR-SDRAM bündelorientiert, wobei die Bündellänge programmierbar ist. Eine Definition eines Bündels innerhalb einer Bündelprogrammierungssequenz ist in Tabelle 1 dargestellt. Die Bündellänge bestimmt die maximale Anzahl von Spaltenstellen, auf die für einen gegebenen Befehl LESEN oder SCHREIBEN zugegriffen werden kann. Sowohl für die sequenziellen als auch die verschachtelten Bündeltypen sind Bündellängen von 2, 4 oder 8 Stellen verfügbar.
    Figure 00180001
    Tabelle 1: Bündeldefinition
  • Tabelle 1 zeigt die Reihenfolge der Zugriffe innerhalb der Einheit. Grundsätzlich bedeutet dies, dass das Datenbündel nicht überlappende Dateneinheiten im Speicher darstellt. Es gibt jedoch eine gewisse Flexibilität bei der Reihenfolge, in der die Wörter in die Dateneinheit übertragen werden. Wenn ein Befehl LESEN oder SCHREIBEN ausgegeben wird, wird tatsächlich ein Block von Spalten ausgewählt, der gleich der Bündellänge ist. Alle Zugriffe auf dieses Bündel finden innerhalb dieses Blocks statt, was bedeutet, dass das Bündel innerhalb des Blocks umbricht, wenn die Grenze erreicht wird. Der Block wird einmalig durch A1-Ai ausgewählt, wenn die Bündellänge auf 2 gesetzt wird, durch A2-Ai, wenn die Bündellänge auf 4 gesetzt wird, und durch A3-Ai, wenn die Bündellänge auf 8 gesetzt wird (wobei Ai das höchstwertige Spaltenadressbit für eine gegebene Konfiguration ist). Die verbleibenden (geringstwertigen) Adressbits dienen dazu, die Anfangsstelle innerhalb des Blocks auszuwählen. Die programmierte Bündellänge gilt sowohl für LESEN- als auch SCHREIBEN-Bündel.
  • Weiterhin kann ein Bündeltyp programmiert werden. Zugriffe innerhalb eines gegebenen Bündels können entweder als sequenziell oder verschachtelt programmiert werden. Dies bezeichnet man als den Bündeltyp und kann über ein spezielles Bit ausgewählt werden.
  • Um eine hohe Bandbreitenleistung zu erzielen, bieten SDRAMs, wie kurz dargestellt, Bündelzugriff. Diese Betriebsart ermöglicht es, auf eine Reihe aufeinanderfolgender Datenwörter zuzugreifen, indem nur ein Lese- oder Schreibbefehl gegeben wird. Es ist zu beachten, dass mehrere Befehle erforderlich sind, um einen Speicherzugriff einzuleiten, obwohl die Taktrate am Ausgang höher ist als die Rate am Eingang, welche die Befehlsrate ist. Um diese verfügbare Ausgangsbandbreite zu nutzen, müssen die Lese- und Schreibzugriffe bündelorientiert sein. Die Länge eines Bündels 54 ist programmierbar und bestimmt die maximale Anzahl der Spaltenstellen 53, auf die bei einem gegebenen Befehl LESEN oder SCHREIBEN zugegriffen werden kann. Sie unterteilt die Reihen 52 in aufeinanderfolgende Einheiten, die gleich der Bündellänge sind. Wenn ein Befehl LESEN oder SCHREIBEN ausgegeben wird, wird nur eine der Einheiten adressiert. Der Anfang eines Bündels kann sich irgendwo innerhalb der Einheiten befinden, wenn aber das Ende der Einheit erreicht ist, wird das Bündel umgebrochen. Wenn die Bündellänge beispielsweise „vier" ist, wählen die beiden geringstwertigen Spaltenadressbits die erste innerhalb einer Einheit zu adressierende Spalte.
  • Text in der Zeichnung
  • 1
    • Transfer overhead – Transfer-Overheat
    • Requested data block – angeforderter Datenblock
  • 6
    • control logic – Steuerlogik
    • command decoder – Befehlsdecodierer
    • mode register – Betriebsartregister
    • bank address decoder – Bankadressendecodierer
    • bank memory array – Bankspeicheranordnung
    • address register – Adressregister
    • I/O gating pages – E/A-Torsteuerseiten

Claims (11)

  1. Einrichtungssystem (40), das Folgendes umfasst: – eine Speichersteuereinheit (44), operativ verbunden über eine Adressleitung von einem Adressbus mit – einem Adressenraum mit mehr als einer Speichereinrichtungsgruppe (42), wobei der Adressenbus dafür eingerichtet ist, auf den gesamten Adressenraum zuzugreifen, dadurch gekennzeichnet, dass – die mehr als eine Einrichtungsgruppe (42) mindestens eine Speichereinrichtung in Form einer DRAM-basierenden Einrichtung umfasst, wobei – die Steuereinheit (44) für die mehr als eine Speichereinrichtungsgruppe (42) des Adressenraums eine einzelne gemeinsame Adressenleitung (41) bereitstellt, und – für das Zugreifen auf mindestens eine Speichereinrichtungsgruppe (42) anders als auf eine andere Speichereinrichtungsgruppe (42) die Speichersteuereinheit eine Adressleitung (48) für die Speichereinrichtungsgruppe (42) bereitstellt, wobei die Adressleitung (48) der Speichereinrichtungsgruppe (42) anders zugeführt wird als eine andere Adressleitung (48) einer anderen Speichereinrichtungsgruppe (42) zugeführt wird.
  2. Einrichtungssystem (40) nach Anspruch 1, dadurch gekennzeichnet, dass die Adressleitung (48) separat, insbesondere allein, der Speichereinrichtungsgruppe (42) zugeführt wird.
  3. Einrichtungssystem (40) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Speichereinrichtungsgruppe (42) aus einer einzelnen Speichereinrichtung besteht.
  4. Einrichtungssystem (40) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die einzelne Speichersteuereinheit (44) operativ mit dem gesamten Adressenraum verbunden ist.
  5. Einrichtungssystem (40) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Adressenraum ein chipexterner (Off-Chip-) Speicher ist.
  6. Einrichtungssystem (40) nach einem der vorhergehenden Ansprüche, gekennzeichnet durch ein chipinternes (On-Chip-) Prozessorsystem.
  7. Einrichtungssystem (40) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Speichereinrichtung eine SDRAM-basierende Einrichtung ist.
  8. Einrichtungssystem (40) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Steuereinheit (44) einen Datenbus mit einer Datenleitung (43) für eine Speichereinrichtungsgruppe (42) bereitstellt, wobei die Datenleitung (43) anders als eine andere Datenleitung (43) der Speichereinrichtungsgruppe (42) speziell zugeordnet ist.
  9. Einrichtungssystem (40) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Adressenraum mehr als eine Speichereinrichtungsgruppe (42) hat, wobei die Speichereinrichtungsgruppe (42) mindestens einen Adressleitungsverbinder hat, der dafür eingerichtet ist, die Speichereinrichtungsgruppe (42) anders mit der Speichersteuereinheit (44) zu verbinden als die andere Speichereinrichtungsgruppe (42) mit der Speichersteuereinheit (44) verbunden ist.
  10. Einrichtungssystem (40) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Adressbus eine Adressleitung (48) umfasst, die dafür eingerichtet ist, die unter mehreren Speichereinrichtungsgruppen (42) eines Adressenraums ausgewählte Speichereinrichtungsgruppe (42) anders mit der Speichersteuereinheit (44) zu verbinden als eine andere Speichereinrichtungsgruppe (42) mit der Speichersteuereinheit (44) verbunden ist.
  11. Einrichtungssystem (40) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Speichersteuereinheit (44) dafür eingerichtet ist, auf den gesamten Adressenraum mit mehr als einer Speichereinrichtungsgruppe (42) zuzugreifen, wobei die Speichersteuereinheit (44) mindestens einen Adressleitungsverbinder hat, der dafür eingerichtet ist, eine Speichereinrichtungsgruppe (42) anders durch den Adressleitungsverbinder zu verbinden als eine andere Speichereinrichtungsgruppe (42) durch einen anderen Adressleitungsverbinder verbunden ist.
DE60308150T 2002-02-06 2003-01-20 Adressenraum, bussystem, speicherungssteuerung und einrichtungssystem Expired - Lifetime DE60308150T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP02075502 2002-02-06
EP02075502 2002-02-06
PCT/IB2003/000142 WO2003067445A1 (en) 2002-02-06 2003-01-20 Address space, bus system, memory controller and device system

Publications (2)

Publication Number Publication Date
DE60308150D1 DE60308150D1 (de) 2006-10-19
DE60308150T2 true DE60308150T2 (de) 2007-07-19

Family

ID=27675700

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60308150T Expired - Lifetime DE60308150T2 (de) 2002-02-06 2003-01-20 Adressenraum, bussystem, speicherungssteuerung und einrichtungssystem

Country Status (8)

Country Link
US (1) US20050144369A1 (de)
EP (1) EP1474747B1 (de)
JP (1) JP2005517242A (de)
CN (1) CN100357923C (de)
AT (1) ATE338979T1 (de)
AU (1) AU2003201113A1 (de)
DE (1) DE60308150T2 (de)
WO (1) WO2003067445A1 (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7236490B2 (en) 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7649885B1 (en) 2002-05-06 2010-01-19 Foundry Networks, Inc. Network routing system for enhanced efficiency and monitoring capability
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7266117B1 (en) 2002-05-06 2007-09-04 Foundry Networks, Inc. System architecture for very fast ethernet blade
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
DE10323415A1 (de) * 2003-05-23 2004-12-30 Infineon Technologies Ag Speicheranordnung
US20050138276A1 (en) * 2003-12-17 2005-06-23 Intel Corporation Methods and apparatus for high bandwidth random access using dynamic random access memory
ATE516549T1 (de) * 2004-03-10 2011-07-15 St Ericsson Sa Integrierte schaltung und verfahren zur speicherzugriffsregelung
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
DE102004031715B4 (de) * 2004-06-30 2013-05-29 Globalfoundries Inc. Kombinierte On-Chip-Befehls- und Antwortdatenschnittstelle
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US20060092320A1 (en) * 2004-10-29 2006-05-04 Nickerson Brian R Transferring a video frame from memory into an on-chip buffer for video processing
US7577763B1 (en) * 2005-02-28 2009-08-18 Apple Inc. Managing read requests from multiple requestors
KR100634566B1 (ko) * 2005-10-06 2006-10-16 엠텍비젼 주식회사 공유 메모리 제어 방법 및 공유 메모리 동작 제어를수행하는 사용자 단말기
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
KR100748191B1 (ko) * 2006-04-06 2007-08-09 엠텍비젼 주식회사 공유 메모리를 구비한 장치 및 공유 메모리 억세스 상태정보 제공 방법
JP2008009564A (ja) * 2006-06-27 2008-01-17 Fujitsu Ltd メモリアクセス装置、メモリアクセス方法、メモリ製造方法およびプログラム
KR100782592B1 (ko) * 2006-08-10 2007-12-06 엠텍비젼 주식회사 공유 메모리를 구비한 장치 및 공유 메모리 제어 방법
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US8307190B2 (en) * 2006-12-25 2012-11-06 Panasonic Corporation Memory control device, memory device, and memory control method
US7978614B2 (en) 2007-01-11 2011-07-12 Foundry Network, LLC Techniques for detecting non-receipt of fault detection protocol packets
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US8271859B2 (en) 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
US8149839B1 (en) 2007-09-26 2012-04-03 Foundry Networks, Llc Selection of trunk ports and paths using rotation
WO2009081551A1 (ja) 2007-12-21 2009-07-02 Panasonic Corporation メモリ装置及びその制御方法
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
WO2013016291A2 (en) * 2011-07-22 2013-01-31 Texas Instruments Incorporated Memory system and method for passing configuration commands
DE102011108172B4 (de) 2011-07-22 2013-10-10 Texas Instruments Deutschland Gmbh Speichersystem und Verfahren zum Übermitteln von Konfigurationsbefehlen
US8984203B2 (en) 2012-10-09 2015-03-17 Sandisk Technologies Inc. Memory access control module and associated methods
US10599580B2 (en) 2018-05-23 2020-03-24 International Business Machines Corporation Representing an address space of unequal granularity and alignment
CN113495684A (zh) * 2020-04-08 2021-10-12 华为技术有限公司 一种数据管理装置及数据管理方法、数据存储设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0642263B2 (ja) * 1984-11-26 1994-06-01 株式会社日立製作所 デ−タ処理装置
US5175835A (en) * 1990-01-10 1992-12-29 Unisys Corporation Multi-mode DRAM controller
US5479630A (en) * 1991-04-03 1995-12-26 Silicon Graphics Inc. Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same
GB2287808B (en) * 1994-03-24 1998-08-05 Discovision Ass Method and apparatus for interfacing with ram
US5537564A (en) * 1993-03-08 1996-07-16 Zilog, Inc. Technique for accessing and refreshing memory locations within electronic storage devices which need to be refreshed with minimum power consumption
US5640527A (en) * 1993-07-14 1997-06-17 Dell Usa, L.P. Apparatus and method for address pipelining of dynamic random access memory utilizing transparent page address latches to reduce wait states
US5732041A (en) * 1993-08-19 1998-03-24 Mmc Networks, Inc. Memory interface unit, shared memory switch system and associated method
DE4427042C2 (de) * 1994-07-29 1997-05-22 Siemens Ag Verfahren zur Steuerung einer Sequenz von Zugriffen eines Prozessors zu einem zugeordneten Speicher
US6188595B1 (en) * 1998-06-30 2001-02-13 Micron Technology, Inc. Memory architecture and addressing for optimized density in integrated circuit package or on circuit board
KR100282125B1 (ko) * 1998-08-04 2001-02-15 윤종용 버스트-타입의 랜덤 액세스 메모리 장치의 어드레스 발생 회로
US6496902B1 (en) * 1998-12-31 2002-12-17 Cray Inc. Vector and scalar data cache for a vector multiprocessor
JP3416083B2 (ja) * 1999-08-31 2003-06-16 株式会社日立製作所 半導体装置
US6446169B1 (en) * 1999-08-31 2002-09-03 Micron Technology, Inc. SRAM with tag and data arrays for private external microprocessor bus
US6415374B1 (en) * 2000-03-16 2002-07-02 Mosel Vitelic, Inc. System and method for supporting sequential burst counts in double data rate (DDR) synchronous dynamic random access memories (SDRAM)
KR100335504B1 (ko) * 2000-06-30 2002-05-09 윤종용 제어 및 어드레스 버스를 공유하는 2채널 메모리 시스템및 이에 채용되는 메모리 모듈
US6912173B2 (en) * 2001-06-29 2005-06-28 Broadcom Corporation Method and system for fast memory access
CN1280734C (zh) * 2001-09-07 2006-10-18 皇家菲利浦电子有限公司 用于分段存取控制的控制装置和方法和具有该控制装置的视频存储器装置

Also Published As

Publication number Publication date
US20050144369A1 (en) 2005-06-30
DE60308150D1 (de) 2006-10-19
WO2003067445A1 (en) 2003-08-14
CN1628293A (zh) 2005-06-15
EP1474747A1 (de) 2004-11-10
AU2003201113A1 (en) 2003-09-02
EP1474747B1 (de) 2006-09-06
CN100357923C (zh) 2007-12-26
ATE338979T1 (de) 2006-09-15
JP2005517242A (ja) 2005-06-09

Similar Documents

Publication Publication Date Title
DE60308150T2 (de) Adressenraum, bussystem, speicherungssteuerung und einrichtungssystem
DE69725632T2 (de) Halbleiterspeicheranordnung mit "Pipeline" Betrieb
DE3724317C2 (de)
DE69722117T2 (de) Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung
DE3909896C2 (de)
DE69535672T2 (de) Synchrone NAND DRAM Architektur
DE10147592A1 (de) System und Verfahren zum Vorsehen geichzeitiger Zeilen- und Spaltenbefehle
EP1291878B1 (de) Steuereinrichtung zur Steuerung von Burst-Zugriffen
DE102007050864B4 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
DE102004027121B4 (de) Ein Mehrfachbankchip, der mit einer Steuerung kompatibel ist, die für eine geringere Anzahl von Banken entworfen ist, und ein Verfahren zum Betreiben
DE69625486T2 (de) Speichersteuerung zur nicht sequentiellen ausführung von schreibbefehlen
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE3618163A1 (de) Speicher-management fuer ein mikroprozessorsystem
DE102006043311A1 (de) Speichersystem
DE102006046441A1 (de) Verfahren zum Arbitrieren eines Zugriffs auf ein Speicherbauelement und Master zum Arbitrieren eines Zugriffs auf ein geteiltes Speicherbauelement
DE2252489A1 (de) Speichersystem
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE112019002100T5 (de) Zugriff auf dram durch wiederverwendung von pins
DE69816464T2 (de) Vorrichtung und verfahren zum zeitverzögerungsausgleich von einrichtungen
DE60315190T2 (de) Vorladevorschlag
DE102005003903A1 (de) System und Verfahren zumn Auffrischen einer dynamischen Speichervorrichtung
DE10227806B4 (de) Halbleiterspeichereinrichtung mit Hochgeschwindigkeitsbetrieb und Verfahren zum Verwenden und Entwerfen derselben
DE69921519T2 (de) Speicherzugangssteuervorrichtung
DE10258131B4 (de) Halbleiterspeicherbauelement und zugehöriges Schreib-/Leseverfahren
DE10345481A1 (de) Bitleitungssegmentierung bei Direktzugriffsspeichern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL

8328 Change in the person/name/address of the agent

Representative=s name: EISENFUEHR, SPEISER & PARTNER, 10178 BERLIN