-
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.
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