PatentDe  


Dokumentenidentifikation DE102004041331B4 10.05.2007
Titel Codesender, insbesondere zur Verwendung in einem Speichercontroller
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Jakobs, Andreas, 81673 München, DE;
Gregorius, Peter, 81476 München, DE
Vertreter Wilhelm & Beck, 80639 München
DE-Anmeldedatum 26.08.2004
DE-Aktenzeichen 102004041331
Offenlegungstag 09.03.2006
Veröffentlichungstag der Patenterteilung 10.05.2007
Veröffentlichungstag im Patentblatt 10.05.2007
IPC-Hauptklasse G11C 7/00(2006.01)A, F, I, 20061123, B, H, DE
IPC-Nebenklasse H03M 7/00(2006.01)A, L, I, 20061123, B, H, DE   

Beschreibung[de]

Die Erfindung betrifft einen Codesender mit einer Codewortquelle, die ausgebildet ist, um eine Folge von n-stelligen Codewörtern jeweils in Form von n parallelen Codezeichen zu liefern, gemäß dem Oberbegriff des Patentanspruchs 1. Bevorzugtes, jedoch nicht ausschließliches Anwendungsgebiet der Erfindung sind Speichercontroller, die Mittel enthalten, um neben Schreibdaten auch Befehls- und Adressinformation an einen Speicherbaustein zu senden.

In vielen Fällen erfolgt die Kommunikation zwischen elektrischen Schaltungsanordnungen, z.B. zwischen Einheiten innerhalb einer Baugruppe oder zwischen verschiedenen Bausteinen eines Systems, über mehrere parallele Kanäle. Dies erlaubt die digitale Codierung einzelner Nachrichten im Parallelformat, wobei jede Nachricht durch ein Muster diskreter und eindeutig diskriminierbarer Signalzustände oder Pegel auf einer Mehrzahl von Kanälen dargestellt wird. Wenn "n" die Anzahl der hierbei beteiligten Kanäle ist, dann bildet jedes Muster ein n-stelliges "Codewort" (auch als "Symbol" bezeichnet), wobei jeder Kanal ein "Zeichen" des Codewortes überträgt. Der Zeichenvorrat "p" und somit der Informationswert eines Zeichens entspricht der Anzahl möglicher (diskriminierbarer) Signalzustände, und der Informationswert des gesamten Codewortes ist gleich pn. Die p verschiedenen möglichen Signalzustände stellen somit die p verschiedenen Ziffernwerte eines p-wertigen Zahlensystems dar, z.B. die Binär- oder Logikwerte "0" und "1" eines Dualzahlensystems, bei welchem p = 2 ist.

Um bei laufender Kommunikation aufeinander folgende Codewörter sauber voneinander zu trennen und die Zeichenübertragung zu synchronisieren, erfolgt die Erzeugung und Sendung der Codewortfolge üblicherweise taktgesteuert, d.h. in jeder Taktperiode werden alle n Zeichen eines n-stelligen Codewortes synchron von einer Codewortquelle innerhalb des jeweils sendenden Kommunikationspartners erzeugt, und zwar an n Anschlüssen dieser Quelle. Somit erscheint an den n Quellenanschlüssen eine ununterbrochene Folge von n-stelligen Codewörtern während des gesamten Sendebetriebs.

Die vom Codesender verbrauchte Leistung ist umso größer, je größer die Stellenzahl oder "Breite" der parallel-codierten Codewörter ist und je höher die Taktfrequenz ist. Für jedes zu sendende Zeichen muss Sende-Energie aufgebracht werden, um den elektrischen Zustand des betreffenden Sendekanals bis zum Empfänger hin auf den Pegel zu bringen, der den jeweiligen Zeichenwert eindeutig wiedergibt. Dieser Energiebedarf ist besonders groß bei jedem Zeichenwechsel, weil hierbei die (meist überwiegend kapazitive) Reaktanz des Kanals umgeladen werden muss. Der somit hohe Leistungsverbrauch durch die Modulation der Sendetreiber führt zur Erwärmung und, im Falle einer Batterie- oder Akku-Speisung, zu frühzeitiger Erschöpfung der Versorgungsquelle.

Aus der US 2003 0223 295 A1 ist bekannt, Bitleitungen zu Halbleiterspeichern entsprechend der für jeden Speicher benötigten Wortbreite auszuführen.

Der US 2003 0005 254 A1 ist Verbindung mit Mikroprozessoren zu entnehmen, in in Abhängigkeit von auszuführenden Befehlen die Wortbreite einstellen.

Die Aufgabe der Erfindung besteht darin, den Leistungsverbrauch eines Codesenders der oben beschriebenen Gattung zu vermindern, ohne die Stellenzahl der Codewörter oder die Sendegeschwindigkeit verkleinern zu müssen. Diese Aufgabe wird erfindungsgemäß durch die im Patentanspruch 1 beschriebenen Merkmale gelöst.

Demnach wird die Erfindung realisiert in einem Codesender, der eine Codewortquelle enthält, die n > 1 Quellenanschlüsse aufweist und ausgebildet ist, um an diesen Anschlüssen eine Folge von n-stelligen Codewörtern jeweils in Form von n parallelen Codezeichen zu liefern, wobei n parallele Übertragungspfade zwischen den n Quellenanschlüssen und n Sendeanschlüssen für das Absenden der durch die Codewörter dargestellten Nachricht an einen Empfänger vorgesehen sind. Erfindungsgemäß ist ferner eine Selektionseinrichtung vorgesehen, die für jedes Codewort explizit indiziert, welche der n Stellen des betreffenden Codewortes für die Decodierung der Nachricht im Empfänger bedeutsam sind, und die abhängig von dieser expliziten Indikation nur diejenigen der n Übertragungspfade wirksam macht, welche den bedeutsamen Stellen des Codewortes zugeordnet sind.

Besondere Ausführungsformen der Erfindung sind in den Unteransprüchen gekennzeichnet.

Die Erfindung nutzt den Umstand, dass nicht immer alle Zeichen des n-stelligen Codewortes für das eindeutige Verstehen einer Nachricht seitens des Empfängers bedeutsam sein müssen. So ist es häufig zweckmäßig oder sogar notwendig, ausgewählten Teilmengen oder Gruppen der Kanäle innerhalb der n-kanaligen Nachrichtenverbindung und somit ausgewählten Stellen des n-stelligen Codewortes eine spezielle Bestimmung im Empfänger zuzuordnen. Dabei kommt es vor, dass eine Nachricht, die einer speziellen Bestimmung und somit einer speziellen Gruppe der Codewortstellen zugeordnet ist, je nach ihrer Bedeutung entweder für sich allein genügt oder aber einer Zusatznachricht bedarf, die in anderen Stellen des Codewortes untergebracht sein muss. Im letzteren Fall muss der Empfänger die in diesen anderen Stellen enthaltenen Zeichen berücksichtigen, im ersteren Fall muss er sie ignorieren ("don't care").

Um ein einfaches Beispiel zu beschreiben: eine erste Gruppe von Codewortstellen kann der Bestimmung gewidmet sein, Befehle zur Einstellung und zum Halten eines von mehreren Grundzuständen des Empfängers zu liefern, z.B. "Ruhezustand", "Konfigurierungszustand" oder "Arbeitszustand". Eine zweite Gruppe kann der Bestimmung gewidmet sein, eine Nachricht zu liefern, die besondere Parameter für den jeweils einzustellenden Grundzustand vorgibt, z.B. die Konfigurierungsvorschrift im Falle des Konfigurierungszustandes oder die Vorschrift der Arbeitsgeschwindigkeit im Falle des Arbeitszustandes. In Verbindung mit dem Befehl "Ruhezustand" werden hingegen keine weitere Nachrichteneinheiten gebraucht, die Zeichen der zweiten Gruppe sind also hier nicht bedeutsam; in Verbindung mit den anderen beiden Befehlen sind sie bedeutsam. Darüber hinaus können zwischen diesen beiden Befehlen auch Unterschiede bestehen hinsichtlich der Anzahl der Zeichen, die für die Darstellung der jeweiligen Parameter notwendig sind. Wenn z.B. die zweite Gruppe zwölf Stellen umfasst, die Konfigurierungsvorschrift zwölf Zeichen erfordert und die Vorschrift der Arbeitsgeschwindigkeit nur zwei Zeichen erfordert, dann sind in Kombination mit dem Befehl "Arbeitszustand" zehn Zeichen der zweiten Gruppe bedeutungslos.

Allgemein gesagt können die Zeichen innerhalb ausgewählter Gruppen der n Codewortstellen eine zu decodierende Nachricht vollständig oder nur einen Bestandteil der Gesamtnachricht repräsentieren, und das jeweilige Muster dieser Zeichen enthält implizit (inhärent) auch eine Information darüber, ob und welche der übrigen Codewortstellen bedeutsam für das Decodieren der Gesamtnachricht sind und somit beachtet werden müssen. Es also kein Problem, bereits im Codesender eine explizite Darstellung dieser impliziten "Bedeutsamkeits"-Information zu geben und abhängig von dieser Information die Weitergabe der jeweils "unbedeutenden" Zeichen des von der Codequelle gelieferten Codewortes zu sperren.

Mit der Erfindung wird also verhindert, dass die jeweils "unbedeutenden" Zeichen eines Codewortes, die bei der Decodierung im Empfänger unbeachtet bleiben können oder müssen, die Sendetreiber modulieren. Hiermit wird Sendeleistung eingespart.

Wie bereits eingangs angedeutet, ist die Anwendung der Erfindung besonders vorteilhaft in einem Speichercontroller. Dort nämlich sind Situationen, in denen erzeugte Codezeichen ignoriert werden können oder müssen, sehr häufig. Deswegen werden das Prinzip und besondere Ausführungsformen der Erfindung nachstehend am Beispiel der Steuersignal-Codierung eines Speichercontrollers anhand von Zeichnungen näher erläutert.

1 zeigt fragmentarisch einen Teil eines Speichercontrollers mit einem erfindungsgemäßem Codesender;

2 zeigt in einer tabellarischen Darstellung ein übliches Codierungs-Schema für die Steuersignale eines Speichercontrollers in Verbindung mit einer erfindungsgemäßen expliziten Darstellung der Bedeutsamkeits-Information;

3 zeigt eine erste Ausführungsform eines Übertragungspfades zwischen Codewortquelle und Sendeanschluss des Codesenders nach 1;

4 zeigt eine zweite Ausführungsform eines Übertragungspfades zwischen Codewortquelle und Sendeanschluss des Codesenders nach 1.

In der 1 ist fragmentarisch derjenige Bereich eines Speichercontrollers 1 dargestellt, der die Einrichtungen zum Erzeugen und Senden der Steuerzeichen an einen oder mehrere Speicherbausteine enthält. Der Controller 1 ist vorzugsweise auf einem Halbleiterchip integriert und ist im Betrieb über eine Vielzahl von Verbindungsleitungen, welche die Kommunikationskanäle bilden, mit dem oder jedem Speicherbaustein verbunden.

Der jeweils zu steuernde Baustein selbst ist in der Figur nicht gezeigt. Beim hier beschriebenen Beispiel ist der Controller 1 ausgelegt zur Kommunikation mit einem oder mehreren synchronen dynamischen RAM-Speicherbausteinen (abgekürzt: SDRAM) herkömmlicher Bauart, die jeweils auf einem anderen Chip integriert sind und mehrere Bänke mit jeweils einer Vielzahl binärer Datenspeicherzellen enthält, die in jeder Bank eine Matrix aus Zeilen (rows) und Spalten (columns) bilden. Es sei hier von einer derartigen Größe und Organisation des oder jedes Speicherbausteins ausgegangen, dass zur Selektion der Speicherzellen für das Schreiben oder Lesen von Daten an einem Speicherbaustein zwei Bankadressbits, sechzehn Zeilenadressbits und elf Spaltenadressbits benötigt werden. Ferner sei davon ausgegangen, dass (wie bei herkömmlichen SDRAMs üblich) die Zeilen- und Spaltenadressen zeitlich nacheinander vom Controller zum Speicherbaustein gesendet werden (zuerst die Zeilenadresse und dann die Spaltenadresse).

Der Speicherbaustein benötigt neben den erwähnten Adressbits noch andere Steuersignale, nämlich "Befehle" für die Einstellung verschiedener Betriebszustände und für die Steuerung von Betriebsabläufen. Diese Befehle werden ebenso wie die Adressen in binär codierter Form erzeugt. Die Befehlsbits und die Adressbits werden vom Controller 1 im Parallelformat über ein zugeordnetes Bündel der Verbindungsleitungen an den Speicherbaustein gesendet. Die Erzeugung und Sendung der Steuersignale erfolgt unter Synchronisation durch ein gemeinsames Taktsignal CLK. Die 1 zeigt am rechten Rand des Controllers 1 die zugeordneten Sendeanschlüsse, die in der Figur mit dem Großbuchstaben Y bezeichnet sind, wobei die nachgestellte eckige Klammer [ ] einen Kurznamen für die zugeordneten Bits enthält, der in der folgenden Beschreibung zur Identifizierung der Bits verwendet wird. Der Controller 1 hat natürlich noch eine Menge weiterer Anschlüsse, die zum Senden und Empfangen der Daten und von Strobesignalen an bzw. von dem Speicherbaustein dienen und in 1 nicht dargestellt sind. Das Taktsignal CLK wird über einen Taktsendeverstärker 40 ebenfalls zum Speicherbaustein gesendet.

Der "Inhalt" (Zeichenwert) der Bits für die Adressen und Befehle, also der jeweilige Binärwert "0" oder "1", wird innerhalb des Controllers 1 in jeder CLK-Taktperiode aktualisiert, so dass mit jedem Takt eine spezielle Kombination aus n Zeichen erzeugt wird, wobei n die Gesamtanzahl der Befehls- und Adressbits ist. Diese Zeichenkombination bildet also insgesamt ein n-stelliges Codewort im Parallelformat, und die Einrichtung, welche die aufeinander folgenden Codewörter erzeugt, bildet demnach eine Codequelle mit n getrennten Quellenanschlüssen, jeweils einen für jede Bitstelle des Codewortes. In der 1 ist die Codequelle durch einen Block 10 dargestellt, und die besagten Quellenanschlüsse sind mit dem Großbuchstaben X bezeichnet, wobei auch hier der Kurzname der betreffenden Bitstelle in Klammer angefügt ist. Die n-stelligen Quellen-Codewörter von den n Quellenanschlüssen X werden auf n parallele Übertragungspfade gegeben, die schematisch durch jeweils einen Block 20 dargestellt sind und deren jeder in einen jeweils zugeordneten Sendeanschluss Y mündet.

Das Schema der Befehls- und Adresscodierung, das die Codequelle 10 beim hier beschriebenen Beispiel benutzt, entspricht dem derzeit gebräuchlichen Schema zu Steuerung von SDRAMs und ist im oberen Teil der 2 tabellarisch dargestellt. Dieser Tabellenteil enthält n Zeilen, entsprechend den n Bitstellen des Codewortes.

Eine erste Bitstelle CS ("Chip Select") liefert den Befehl für die Anwahl/Abwahl des Speicherchips, wobei "1" die Anwahl (Betriebszustand) und "0" die Abwahl (Ruhezustand) bedeutet. Drei weitere Bitstellen, die üblicherweise (aus historischen Gründen) mit RAS, CAS und WE bezeichnet werden, dienen der Formulierung von acht (= 23) Betriebsbefehlen. Zwei weitere Bitstellen BA0 und BA1 liefern die Adresse für die Bankadressierung am Speicherchip, und sechzehn weitere Bitstellen A0 bis A15 sind für die Zeilen- und Spaltenandressierung vorgesehen. Zur Formulierung der Zeilenadresse ist die Gesamtmenge aller sechzehn Adressbits A0:15 (der Doppelpunkt ":" steht für "bis") notwendig. Zur Formulierung der Spaltenadresse genügen, wie weiter oben vorausgesetzt, elf Bits. Da ein gleichzeitiges Senden von Zeilenadresse und Spaltenadresse nicht vorgesehen ist, kann vorteilhafterweise eine Teilmenge der Bitstellen A0:15 auch für die Spaltenadresse genutzt werden, beim vorliegenden Beispiel sind dies die elf Bitstellen A0.10.

In der n-zeiligen Codewort-Tabelle der 2 sind die Bitstellen durch rechteckige Kästchen dargestellt. Jede Zeile ist wie gesagt einer Bitstelle zugeordnet. Es sind insgesamt neun Spalten dargestellt, jeweils eine für jeden von neun Befehlen, deren Namen in Kurzform am Kopf der Spalten eingetragen ist. Diese Befehle und die zugeordneten Bitmuster im Codewort werden nachstehend beschrieben:

DES (Deselect), ausgedrückt durch "0" in der Bitstelle CS, also

CS = 0,

befiehlt die Abwahl ("Kein Betrieb"). In diesem Fall ist es gleichgültig, welche Inhalte alle anderen Bitstellen des Codewortes haben, diese Inhalte sind demnach bedeutungslos und müssen ignoriert werden. In der Tabelle ist dies durch den Eintrag "X" in den betreffenden Kästchen symbolisiert.

MRS (Mode Register Set), ausgedrückt durch

CS = 1

RAS = 1

CAS = 1

WE = 1

befiehlt die Einstellung von Betriebsparametern des Speicherbausteins während einer Initialisierungsphase. Die Information darüber, welche Parameter auf welche Werte einzustellen sind, ist hierbei in den Adressbitstellen B1, B2 und A0:15 codiert, da bei diesem Befehl keine Speicherzellen adressiert werden müssen. Die Inhalte ("0" oder "1") dieser Bitstellen sind demnach bedeutsam und müssen beachtet werden, was durch den Eintrag "!" in den betreffenden Kästchen symbolisiert ist.

ARF (Autorefresh), ausgedrückt durch

CS = 1

RAS = 1

CAS = 1

WE = 0

befiehlt die automatische Auffrischung aller Speicherzellen innerhalb des Speicherbausteins. Hierzu bedarf es keiner Adressierung. Die Inhalte aller Adressbitstellen B1, B2 und A0:15 sind hier also unbedeutend ("X").

ACT (Activate), ausgedrückt durch

CS = 1

RAS = 1

CAS = 0

WE = 0

befiehlt das Aktivieren einer ausgewählten Speicherzellen-Zeile innerhalb des Speicherbausteins für einen Schreib- oder Lesebetrieb, durch Anlegen eines Aktivierungspotentials an die betreffende Zeilenselektionsleitung, wobei dieses Potential angelegt bleibt, bis ein Schließbefehl (PRE, siehe unten) gegeben wird. Hierzu sind für die Auswahl der Zeile alle Adressbits BA0, BA1 und A0:15 erforderlich, die Inhalte der betreffenden Bitstellen sind also bedeutsam und müssen beachtet werden („!").

WRD (Write Data), ausgedrückt durch

CS = 1

RAS = 0

CAS = 1

WE = 1

befiehlt das Einschreiben von Daten in ausgewählte Zellen der aktivierten Zeile durch Öffnen (Leitendmachen) von Datenpfaden zum Übertragen der an die Datenanschlüsse des Bausteins angelegten Datenbits zu den betreffenden Zellen. Hierzu sind für die Auswahl der Zellen die Adressbits BA0, BA1 für die Auswahl der Speicherbank und die elf Adressbits A0:10 für die Spaltenauswahl erforderlich; die Inhalte der betreffenden Bitstellen sind also bedeutsam und müssen beachtet werden ("!"). Die Inhalte der restlichen Adressbits A11:15 sind unbedeutend ("X").

RDD (Read Data), ausgedrückt durch

CS = 1

RAS = 0

CAS = 1

WE = 0

befiehlt das Lesen von Daten aus ausgewählten Zellen der aktivierten Zeile durch Öffnen (Leitendmachen) von Datenpfaden zum Übertragen der Daten aus den betreffenden Zellen an die Datenanschlüsse des Bausteins. Hierzu sind für die Auswahl der Zellen die Adressbits BA0, BA1 für die Auswahl der Speicherbank und die elf Adressbits A0:10 für die Spaltenauswahl erforderlich; die Inhalte der betreffenden Bitstellen sind also bedeutsam und müssen beachtet werden ("!"). Die Inhalte der restlichen Adressbits A11:15 sind unbedeutend ("X").

PRE (Precharge), ausgedrückt durch

CS = 1

RAS = 1

CAS = 0

WE = 1

und zusätzlich

A10 = 0

befiehlt das "Schließen" einer Bank, d.h. das Beenden der mit dem Befehl ACT begonnenen Zeilenaktivierung durch Anlegen eines Ruhepotentials ("Vorlade"-Potential) an alle Zeilenselektionsleitungen der bei ACT ausgewählten Bank. Hierzu sind nur die Bankadressbits BA0, BA1 bedeutsam und müssen beachtet werden ("!"). Die Inhalte der Adressbits A0:15 sind unbedeutend ("X").

Falls das Schließen aller Bänke befohlen werden soll, kann A10 beim Befehl PRE auf "1" statt auf "0" gesetzt werden. BA0 und BA1 sind bei dieser Option ohne Bedeutung.

(Statt A10 könnte beim Befehl PRE natürlich auch irgendein anderes der Adressbits A0:15 verwendet werden).

BST (Burst Stop), ausgedrückt durch

CS = 1

RAS = 0

CAS = 0

WE = 1

befiehlt den Abbruch eines begonnenen Schreib- oder Lesezyklus. Hierzu bedarf es keiner gesonderten Adressierung. Die Inhalte aller Adressbitstellen B1, B2 und A0:15 sind hier also unbedeutend ("X").

NOP (No Operation), ausgedrückt durch

CS = 1

RAS = 0

CAS = 0

WE = 0

befiehlt, dass keine Änderung des gerade existenten Betriebszustandes erfolgen soll. Die Inhalte aller anderen Bitstellen B1, B2 und A0:15 sind hier also unbedeutend ("X").

Es gehört zur Natur eines Codierers, dass er, so lange er in Betrieb ist, innerhalb jeder Taktperiode für jede Bitstelle eines Codewortes ein definiertes Zeichen liefert, also entweder "0" oder "1" im Falle eines Binärcodierers, dem die von der Codewortquelle 10 gelieferten Codewörter letztlich entstammen (die Codewortquelle 10 kann sogar selbst der n-Bit-Codierer sein). Wie oben erwähnt, ist zum Senden jedes Zeichens von den Sendeanschlüssen Y ein gewisser Energiebetrag notwendig; diese Energie ist beträchtlich bei jedem Wechsel des Zeicheninhaltes.

Um den Leistungsverbrauch des Controllers 1 (Codesender) zu vermindern, ist gemäß der Erfindung dafür gesorgt, dass für diejenigen Zeichen, die von der Codewortquelle 10 gemäß der Codierungsvorschrift geliefert werden, jedoch im Speicherbaustein (Empfänger) für das Verstehen der im Codewort enthaltenen Information unbedeutend sind, wenig Sendeleistung verbraucht wird. Umgekehrt ausgedrückt: es ist dafür gesorgt, dass nur die jeweils bedeutsamen Zeichen die Sendeanschlüsse Y modulieren.

Hierzu ist im Controller 1 eine Selektionseinrichtung 30 vorgesehen, welche dafür sorgt, dass die Übertragungspfade 20 zwischen den Quellenanschlüssen X der Codewortquelle 10 und den Sendeanschlüssen Y selektiv wirksam oder unwirksam zur Sendemodulation sind, je nachdem, ob der Inhalt des dem jeweils zugeordneten Quellenanschluß zugeordneten Bit (Zeichen) für den Speicherbaustein bedeutsam oder unbedeutend ist. Die Selektionseinrichtung 30 hat eine Mehrzahl paralleler Ausgangsanschlüsse, die in einem speziellen Muster mit Schaltsignaleingängen s der Übertragungspfade 20 verbunden sind und jeweils ein "Schaltbit" S liefern, das den betreffenden Übertragungspfad 20 wirksam oder unwirksam schaltet, abhängig vom Binärwert des Bit. Der Binärwert "1" soll den "wirksamen" Zustand einstellen, und der Binärwert "0" soll den "unwirksamen" Zustand einstellen.

Beim hier beschriebenen Beispiel spricht die Selektionseinrichtung 30 auf Bits von den X-Anschlüssen an. Sie ist im Grunde eine Nachschlagetabelle z.B, in Form eines Nur-Lese-Speichers (ROM), der Bits der Quellen-Codewörter an einer Mehrzahl von Adresseingängen als Adresse empfängt für jede Adresse eine einzigartige Wertekombination für die Schaltbits S liefert.

Ein für die Funktion des Selektionseinrichtung geeignetes ROM könnte n Adresseingänge und n Schaltbitausgänge S haben und so ausgebildet sein, dass es für jedes Muster der n Quellen-Codewortbits X genau dasjenige Binärmuster in den Schaltbits S liefert, welches an den Stellen, die den bedeutsamen Bits X-Musters entsprechen, eine "1" enthält, und an den Stellen, die den unbedeutenden Bits des X-Musters entsprechen, eine "0" enthält. Ein solches ROM müsste n selektiv adressierbare Speicherplätze mit jeweils n binären Speicherzellen haben. Im vorliegenden Fall n = 22 wäre hierzu eine ROM-Matrix mit 484 binären Speicherzellen vorzusehen. Das ROM könnte als programmierbares ROM ("PROM") ausgebildet sein, was den Vorteil hätte, dass es jedem beliebigen Codierungs-Schema der Codewörter und somit jeder beliebigen Befehlsstruktur eines zu steuernden Speicherbausteins angepasst werden kann.

Man kann die Selektionseinrichtung aber wesentlich einfacher gestalten, wenn man sie von vorn herein spezialisiert, indem man gewisse Eigenarten des speziell geltenden Codierungs-Schemas der im Empfänger verwendeten Befehls- und Adressbits berücksichtigt. So erkennt man in dem hier als Beispiel gewählten Codierungs-Schema, wie es in 2 dargestellt ist, folgendes:

  • (a) In der Gesamtmenge N aller n Bits des n-stelligen Codewortes existiert genau eine Untermenge K aus k Elementen, die überhaupt aussagekräftig sein können für die Bedeutsamkeit oder Nicht-Bedeutsamkeit von Codewortbits.
  • (b) Die Menge N lässt sich in g < n Gruppen G1 ... Gg unterteilen, in deren jeder jeweils alle Elemente nur gleichzeitig bedeutsam sein können.

Im gezeigten Fall besteht K aus den k = 5 Codewortbits CS, RAS, CAS, WE, A10. Die Anzahl der Gruppen ist g = 6. Demnach genügt für das selektive Wirksamschalten der Übertragungspfade 20 ein nur 6-stelliges "Schaltbitwort", bestehend aus Schaltbits S1 bis S6, deren jedes einer der g Gruppen G1 bis G6 zugeordnet ist. Die Unterteilung der n Codewortbits in sechs Gruppen G1 bis G6 ist am linken Rand in 2 markiert.

Eine erste Gruppe G1 besteht aus den zehn Bits A0:9, die nur bei den Befehlen MRS, ACT, WRD, RDD bedeutsam sind. Für das Schaltbit S1, welches durch seinen Binärwert "1" die Übertragungspfade der Bitgruppe A0:9 wirksam schaltet, gilt also die Logik:

S1 = 1, wenn: (MRS oder ACT oder WRD oder RDD).

Durch Codewortbits der oben definierten Teilmenge K tabellarisch ausgedrückt:

Eine zweite Gruppe G2 besteht aus dem einzigen Bit A10, das nur bei den Befehlen MRS, ACT, WRD, RDD, PRE bedeutsam ist. Für das Schaltbit S2 gilt also die Logik

S2 = 1, wenn: (MRS oder ACT oder WRD oder RDD oder PRE).

Durch Codewortbits der oben definierten Teilmenge K tabellarisch ausgedrückt:

Eine dritte Gruppe G3 besteht aus den fünf Bits A11:15, die nur bei den Befehlen MRS und ACT bedeutsam sind. Für das Schaltbit S3 gilt also die Logik

S3 = 1, wenn: (MRS oder ACT).

Durch Codewortbits der oben definierten Teilmenge K tabellarisch ausgedrückt:

Eine vierte Gruppe G4 besteht aus den zwei Bits BA0:1, die nur bei den Befehlen MRS, ACT, WRD, RDD, PRE bedeutsam sind. Für das Schaltbit S4 gilt also die Logik

S4 = 1, wenn: (MRS oder ACT oder WRD oder RDD oder PRE mit A10=0).

Durch Codewortbits der oben definierten Teilmenge K tabellarisch ausgedrückt:

Eine fünfte Gruppe G5 besteht aus den drei Bits RAS, CAS, WE, die bei den Befehlen MRS, ARF, ACT, WRD, RDD, PRE, BST, NOP bedeutsam sind, also bei allen Befehlen außer DES. Für das Schaltbit S5 gilt also die Logik

S5 = 1, wenn: (MRS oder ARF oder ACT oder WRD oder RDD oder PRE oder BST oder NOP);

bzw. wenn: (nicht DES).

Durch Codewortbits der oben definierten Teilmenge K tabellarisch ausgedrückt:

Eine sechste Gruppe G6 besteht aus dem einzigen Bit CS, das bei allen Befehlen bedeutsam ist. Das Schaltbit S6 ist also immer "1".

Die Binärwerte der Schaltbits S1:6 für die verschiedenen Befehle sind im unteren Teil der Tabelle der 2 eingetragen.

Die Selektionseinrichtung 30 nach 1 benötigt nur die k = 5 Codewortbits der Teilmenge K, also nur die Bits CS, RAS, CAS, WE, A10, um die Binärwerte für die g-1 = 5 Schaltbits S1:5 selektiv einzustellen (das Schaltbit S6 bleibt ja unverändert auf "1"). Diese Selektionsfunktion kann durch ein ROM mit relativ wenig binären Speicherzellen erfüllt werden, oder durch eine relativ wenig aufwändige Schaltung aus logischen Gattern. Eine weitere Vereinfachung ist möglich, indem man das Schaltbit S5 direkt vom Anschluss X[CS] der Codewortquelle 10 ableitet, wie in 1 gestrichelt angedeutet. Dies ist möglich, weil S5 im hier beschriebenen Beispiel stets den gleichen Binärwert wie das Codewortbit CS hat. Bei dieser Alternative braucht die Selektionseinrichtung nur 4 Schaltbits selektiv einzustellen.

Im Grunde braucht man im Übertragungspfad 20 des Codewortbits CS überhaupt keine Schalteinrichtung zum wahlweisen Unwirksamschalten, weil das Bit CS ja immer bedeutsam ist und der besagte Pfad deswegen immer wirksam bleiben muss. Es empfiehlt sich jedoch, alle Übertragungspfade gleich auszubilden, um die Laufzeiten gleich zu halten und somit die Synchronität der Übertragung zu wahren. Vorzugsweise wird in jedem Übertragungspfad 20 eine Schalteinrichtung verwendet, die das Sendebit Y in seinem vorherigen Zustand hält, also "einfriert" oder "verriegelt", sobald und so lange es nicht bedeutsam ist. In 3 und 4 sind zwei Ausführungsformen 20a bzw. 20b eines in dieser Weise schaltbaren Übertragungspfades dargestellt.

Der Übertragungspfad 20a nach 3 hat einen Eingang x für das Codewortbit vom zugeordneten X-Ausgang der Codewortquelle 10 (1), einen Steuereingang s für das zugeordnete Schaltbit S, einen Taktanschluss c zum Empfang des Taktsignals CLK und den zum zugeordneten Sendeanschluss Y führenden Ausgang y. Der Übertragungspfad 20a enthält als Endstufe einen Sendetreiber 23. Dem Treiber 23 ist ein D-Flipflop (Datenflipflop) 21 vorgeschaltet, das an seinem Dateneingang D das Codewortbit empfängt und dessen Takteingang T mit dem Ausgang eines UND-Gatters 22 verbunden ist, das zwei Eingänge aufweist. Der erste Eingang des UND-Gatters 22 empfängt das Taktsignal CLK, und sein zweiter Eingang empfängt das Schaltbit S. Mit jeder aktiven Taktflanke (Übergang von "0" auf "1"), die den Takteingang des Flipflops 21 erreicht, wird das Flipflop in denjenigen Zustand versetzt, der dem Binärwert des Codewortbits am D-Eingang entspricht. Wenn das Schaltbit S den Logikwert "1" hat, überträgt das UND-Gatter 22 die Taktflanken an das Flipflop 21, so dass dessen Q-Ausgang den Logikwert des aktuellen Codewortbit an den Eingang des Sendetreibers 23 liefert, der den Sendeanschluss Y auf den diesem Logikwert entsprechenden Pegel bringt. Wenn das Schaltbit S den Wert "0" hat, bleibt der Ausgang des UND-Gatters 22 auf "0", so dass das Taktsignal unwirksam bleibt und das Flipflop 22 seinen bisherigen Zustand beibehält. Da keine Änderung am Eingang des Sendetreibers 23 stattfindet, wird dieser Treiber nicht moduliert und verbraucht somit keine Energie zum Ändern des Sendepegels am Anschluss Y.

Die in 4 gezeigte Ausführungsform 20b der Übertragungspfade 20 unterscheidet sich von der in 3 gezeigten Ausführungsform dadurch, dass das "Einfrieren" der Sendebits durch eine das Flipflop 21 wahlweise verriegelnde Rückkopplung erfolgt. Das Taktsignal CLK wird dem Takteingang T des Flipflop 21 ständig angelegt, während der Dateneingang D über einen durch das Schaltbit S gesteuerten Umschalter (Multiplexer) 24 entweder das zugeordnete Codewortbit oder das Signal vom Q-Ausgang des Flipflops empfängt. Wenn S = "1" ist, empfängt der D-Eingang das Codewortbit, so dass das Flipflop 21 bei jeder aktiven Taktflanke den Zustand entsprechend dem Binärwert des Codewortbit annimmt und den Sendetreiber 23 entsprechend moduliert. Wenn S = "0" ist, empfängt der D-Eingang den Logikwert des Q-Ausgangs, so dass das Flipflop 21 seinen bisherigen Zustand beibehält und das Eingangssignal des Sendetreibers 23 unverändert bleibt.

Um Laufzeitunterschiede zwischen den Codewortbits und dem Taktsignal CLK zu berücksichtigen und auch die passende Phasenbeziehung zwischen den Codewortbits und dem Taktsignal CLK in den Übertragungspfaden 20 zu gewährleisten, sind Ausgleichsverzögerungen eingebaut, wie mit dem Block 50 in 1 symbolisiert.

Der vorstehend anhand der Zeichnungsfiguren beschriebene Codesender, der ausgelegt ist für die Verwendung in einem Speichercontroller mit einer bestimmten Befehlsstruktur, ist wie gesagt nur ein Beispiel für eine mögliche Realisierungsform der Erfindung. Die geschilderten Prinzipien können natürlich ohne weiteres auch auf andere Befehlsstrukturen übertragen werden, indem die Selektionseinrichtung zur Realierung der jeweils passenden Logikfunktion ausgelegt oder programmiert wird. Da die Befehlsstruktur selbst implizit die Information enthält, für welchen Befehl welche Codewortbits bedeutsam sind, kann die Selektionseinrichtung auch so ausgebildet sein, dass sie die Schaltbits S für das selektive Wirksamschalten der Übertragungspfade 20 aus den noch uncodierten Befehlen ableitet, also an einem Punkt vor der Codewortquelle 10.

Ferner ist die Erfindung nicht auf den Einsatz in Speichercontrollern beschränkt, sondern kann überall angewendet werden, wo Folgen von Nachrichten als Folgen von Codewörtern fester Stellenzahl n an einen Empfänger zu senden sind, der nicht immer den Inhalt aller n Codewortstellen benötigt, um eine Nachricht zu "verstehen". Ferner ist die Erfindung nicht auf Codewörter beschränkt, deren Zeichen 2-wertig (binär) sind. Die Codewortzeichen können auch aus einem Vorrat von mehr als zwei Zeichenwerten kommen. Auch hier wird der Aufwand an Sendemodulationsleistung vermindert, wenn für jeweils unbedeutende Stellen des Codewortes keine Modulation stattfindet.

1
Speichercontroller
10
Codewortquelle
20
Übertragungspfade
21
Datenflipflop
22
UND-Gatter
23
Sendetreiber
24
Multiplexer
30
Selektionseinrichtung
40
Taktverstärker
50
Ausgleichsverzögerung
S
Schaltbits
X
Codewort-Quellenanschlüsse
Y
Sendeanschlüsse


Anspruch[de]
Codesender

mit einer Codewortquelle (10), die n > 1 Quellenanschlüsse (X) aufweist und ausgebildet ist, um an diesen Anschlüssen eine Folge von n-stelligen Codewörtern jeweils in Form von n parallelen Codezeichen zu liefern,

und mit n parallelen Übertragungspfaden (20) zwischen den n Quellenanschlüssen (X) und n Sendeanschlüssen (Y) für das Absenden der durch die Codewörter dargestellten Nachricht an einen Empfänger,

gekennzeichnet

durch eine Selektionseinrichtung (30), die für jedes Codewort explizit indiziert, welche der n Stellen des betreffenden Codewortes für die Decodierung der Nachricht im Empfänger bedeutsam sind, und die abhängig von dieser expliziten Indikation (51:6) nur diejenigen der n Übertragungspfade (20) wirksam macht, welche den bedeutsamen Stellen des Codewortes zugeordnet sind.
Codesender nach Anspruch 1, wobei die Information darüber, welche Stellen der Codewörter bedeutsam sind, implizit in einer bekannten Teilmenge (K) der Codewortstellen enthalten ist, dadurch gekennzeichnet, dass die Selektionseinrichtung (30) die explizite Indikation aus der bekannten Teilmenge (K) der Codewortstellen decodiert. Codesender nach Anspruch 1 oder 2, dadurch gekennzeichnet,

dass die Selektionseinrichtung (30) die n Codewortstellen in g verschiedenen Gruppen (G1:6) unterteilt, in deren jeder jeweils alle Elemente nur gleichzeitig bedeutsam sein können,

und dass die Selektionseinrichtung (30) für alle diejenigen Übertragungspfade (20), die den Codewortstellen jeweils der selben Gruppe (Gi) zugeordnet sind, jeweils ein gemeinsames Schaltsignal (Si = 1) zum Schalten der betreffenden Übertragungspfade erzeugt.
Codesender nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass jeder Übertragungspfad (20) einen mit dem betreffenden Sendeanschluss (Y) verbundenen Sendetreiber (23) enthält. Codesender nach Anspruch 4, dadurch gekennzeichnet, dass zumindest diejenigen Übertragungspfade (20), die Codewortstellen zugeordnet sind, welche für den Empfänger unbedeutend sein können, jeweils eine Verriegelungseinrichtung (21, 22; 21, 24) enthalten, die im unwirksamen Zustand des betreffenden Übertragungspfades den Zustand des Sendetreibers (23) unverändert hält. Codesender nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass jede Codewortstelle ein Bit als binäre Nachrichteneinheit enthält. Codesender nach den Ansprüchen 5 und 6, dadurch gekennzeichnet, dass die Verriegelungseinrichtung (21, 22; 21, 24) ein Datenflipflop (21) enthält, dessen Dateneingang (D) zum Empfang des betreffenden Codewortbit angeschlossen ist und dessen Ausgang (Q) mit dem Eingang des Sendetreibers (23) verbunden ist und dessen Takteingang (T) das zur Taktung der Codewörter verwendete Taktsignal (CLK) über ein Schaltglied (22) empfängt, welches von der Selektionseinrichtung (30) nur dann durchgeschaltet wird, wenn das besagte Codewortbit bedeutsam ist. Codesender nach den Ansprüchen 5 und 6, dadurch gekennzeichnet,

dass die Verriegelungseinrichtung (21, 22; 21, 24) ein Datenflipflop (21) enthält, dessen Ausgang (Q) mit dem Eingang des Sendetreibers (23) verbunden ist und dessen Takteingang (T) zum Empfang des zur Taktung der Codewörter verwendete Taktsignals (CLK) angeschlossen ist und dessen Dateneingang (D) über einen Umschalter (24) wahlweise zum Empfang des betreffenden Codewortbit oder zum Empfang des Ausgangssignals (Q) des Datenflipflop (21) anschließbar ist,

und dass die Selektionseinrichtung (30) den Umschalter (24) nur dann zum Empfangen des Codewortbit einstellt, wenn das besagte Codewortbit bedeutsam ist.
Codesender nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass er Bestandteil eines Speichercontrollers (1) für einen SDRAM-Speicherbaustein ist, wobei die n-stelligen Codewörter die Befehlsbits (CS, RAS, CAS, WE) und die Adressbits (BA0:1, A0:15) für den Speicherbaustein enthalten. Codesender nach Anspruch 2, dadurch gekennzeichnet, dass er Bestandteil eines Controllers (1) für einen SDRAM-Speicherbaustein ist, wobei die n-stelligen Codewörter die Befehlsbits (CS, RAS, CAS, WE) und die Adressbits (BA0:1, A0:15) für den Speicherbaustein enthalten und wobei die Selektionseinrichtung (30) ausgebildet ist, um die explizite Indikation der bedeutsamen Codewortstellen aus mindestens einem Teil der Befehlsbits zu decodieren. Controller (1) für einen SDRAM-Speicherbaustein, dadurch gekennzeichnet, dass er zum Senden von Steuerinformation an den Speicherbaustein einen Codesender nach einem der Ansprüche 6 bis 8 enthält, wobei die n-stelligen Codewörter die Befehlsbits (CS, RAS, CAS, WE) und die Adressbits (BA0:1, A0:15) für den Speicherbaustein enthalten. Controller (1) für einen SDRAM-Speicherbaustein, dadurch gekennzeichnet, dass er zum Senden von Steuerinformation an den Speicherbaustein einen Codesender nach einem der Ansprüche 6 bis 8 enthält, wobei die n-stelligen Codewörter die Befehlsbits (CS, RAS, CAS, WE) und die Adressbits (BA0:1, A0:15) für den Speicherbaustein enthalten und wobei die Selektionseinrichtung (30) ausgebildet ist, um die explizite Indikation der bedeutsamen Codewortstellen aus mindestens einem Teil der Befehlsbits zu decodieren.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com