-
Eine Ausführungsform der Erfindung betrifft ein Verfahren zum Betrieb einer Speichervorrichtung. Eine weitere Ausführungsform betrifft einen Speichereinrichtung sowie eine Speichervorrichtung bzw. ein Speichermodul.
-
Der Speicherbedarf von heutigen Anwendungen und Geräten steigt kontinuierlich. Dabei ist es wichtig, dass die eingesetzten Speicherbausteine bei einer hohen Datenrate betrieben werden können. Dies betrifft z. B. die interne Architektur und externe Signale.
-
Die Deutsche Offenlegungsschrift
DE 10 2004 020 038 A1 beschreibt ein Speichermodul und Speichersystem, das einen Hochgeschwindigkeitsbetrieb erlaubt und den das den Stromverbrauch reduziert. Dabei umfasst das Speichermodul eine Mehrzahl von Speicherchips als Speichereinrichtungen über einem I/O Chip übereinander gestapelt sind und die Speicherchips Über Durchgangselektroden mit dem I/O Chip verbunden sind. Die individuellen Speicherchips verfügen über eine in-DRAM-Verriegelungssignalerzeugungsschaltung, die basierend auf einem Vergleich eines im Speicherchip generierten Kollationierungssignal mit einem Bankauswahlsignal, die Verarbeitung der Signale steuern.
-
Die Übersetzung der europäischen Patentschrift
DE 694 28 652 T2 beschreibt einen Halbleiterspeicher mit einer Vielzahl von Bänken, wobei das Problem gelöst wird, dass z. B. Vier-Bank-Speicher inkompatibel sind mit Zwei-Bank-Speichern. Hierbei werden zwei Bankspezifizierungseinheiten eingesetzt, wobei die erste Spezifizierungseinheit eine Bank spezifiziert, in der eine Wortleitung selektiert wird, und die zweite Spezifizierungseinheit eingesetzt wird, um zu überprüfen, ob eine Bank aktiv ist und um mittels eines zweites Adressensignal, in dem die Bank Anzahl codiert ist, die entsprechende Bank zu selektieren. Dadurch kann beispielsweise ein Vier-Bank-Speicher wie ein Zwei-Bank-Speicher verwendet werden.
-
Die Deutsche Offenlegungsschrift
DE 10 2004 027 121 A1 beschreibt einen Mehrfachbankchip, der mit einer Steuerung kompatibel ist, die für eine geringere Anzahl an Banken entworfen ist, und ein Verfahren dazu. Dabei wird ein Bit des Chip-MRS als Steuerung verwendet, um den Chip derart zu bezeichnen, dass er entweder in dem Niedrigeren-Bank-Anzahl-Modus oder dem Höhere-Bank-Anzahl-Modus vorliegt.
-
US 2005/0044302 A1 beschreibt ein Speichermodul, mit einer Mehrzahl von Speichervorrichtungen, die in einer Mehrzahl von Bänken auf einer Leiterplatine angeordnet sind. Die Mehrzahl von Bänken umfassen eine erste Untergruppe mit wenigstens einer Bank sowie eine zweite Untergruppe mit wenigstens einer Bank. Das Speichermodul umfasst zudem eine Vorrichtung, die Daten umfasst, welche die erste Untergruppe charakterisieren. Auch enthält das Speichermodul eine zweite Vorrichtung, die Daten umfasst, welche die zweite Untergruppe charakterisieren.
-
Es ist eine Aufgabe der Erfindung, ein Verfahren zum Betrieb einer Speichervorrichtung bereitzustellen, welches eine hohe Speicherleistung bei einer hohen Geschwindigkeit ermöglicht.
-
Die Aufgabe wird gelöst durch ein Verfahren gemäß Anspruch 1 und eine Speichervorrichtung gemäß Anspruch 11.
-
1 zeigt ein Ablaufdiagramm eines Verfahrens zum Betrieb einer Speichervorrichtung;
-
2 zeigt ein weiteres Ablaufdiagramm;
-
3 zeigt eine Speichereinrichtung;
-
4 zeigt eine Speichervorrichtung;
-
5 zeigt eine Ausführungsform einer Speichereinrichtung;
-
6 zeigt eine weitere Ausführungsform einer Speichervorrichtung;
-
7 zeigt ein Beispiel für ein Adressierungsschema;
-
8 zeigt ein Ablaufdiagramm eines Verfahrens zum Betrieb einer Speichervorrichtung gemäß einer Ausführungsform der Erfindung;
-
9 zeigt noch ein weiteres Ablaufdiagramm einer weiteren Ausführungsform der Erfindung;
-
10 zeigt eine Speichervorrichtung gemäß einer Ausführungsform der Erfindung;
-
11 zeigt einen schematischen Ausschnitt einer Speichervorrichtung gemäß einer weiteren Ausführungsform der Erfindung;
-
12 zeigt schematisch die Verdrahtung zwischen einem Speichercontroller und einer Speichereinrichtung;
-
13 zeigt eine Speichereinrichtung gemäß einer weiteren Ausführungsform der Erfindung.
-
1 zeigt ein Ablaufdiagramm eines Verfahrens zum Betrieb einer Speichervorrichtung, bei dem in einem Schritt S100 eine Wortleitung aktiviert wird. Die Speichervorrichtung kann z. B. mehrere Speichereinrichtungen bzw. Speicherchips aufweisen oder aus solchen bestehen, z. B. in einer Stack-Anordnung. Zunächst wird eine Wortleitung in einer durch ein Zeilenaktivierungskommando (engl.: Row activate command) vorgegebenen Bank aktiviert. Das Zeilenaktivierungskommando kann daher beispielsweise eine Bankadresse sowie eine Zeilenadresse enthalten, wobei durch die Bankadresse die Bank und durch die Zeilenadresse die Zeile innerhalb einer Bank angegeben werden kann.
-
In einem Schritt S102 wird eine Bankinformation gespeichert, wobei die Bankinformation angibt, welche Bank bzw. Bänke pro Speichereinrichtung eine durch das Zeilenaktivierungskommando aktivierte Wortleitung enthält bzw. enthalten. Die Bankinformation kann also beispielsweise allein die Bankadresse des letzten Zeilenaktivierungskommandos oder mehrere Bankadressen enthalten. Aus der Bankinformation kann sich auch ergeben, dass keine Bank der jeweiligen Speichereinrichtung eine durch das Zeilenaktivierungskommando aktivierte Wortleitung enthält.
-
In einem Schritt S104 werden Speicherinhalte aus Bänken mit aktivierten Wortleitungen in Abhängigkeit der Bankinformation ausgelesen und/oder es werden Speicherinhalte in Bänke mit aktivierten Wortleitungen in Abhängigkeit der Bankinformation geschrieben. Folglich ist es möglich, dass die Bankinformation solange gespeichert wird, bis ein Auslesen/Schreiben z. B. mit Auto-Precharge erfolgt, das z. B. mittels eines Spaltenkommandos (Column Read/Write Command) ausgelöst wird.
-
Das Zeilenaktivierungskommando kann eine vorbestimmte Anzahl von Zeilenadressbits enthalten, wobei durch eine vorbestimmte Untermenge der Zeilenadressbits eine bestimmte Speichereinrichtung bestimmt werden kann, in welcher eine Wortleitung aktiviert wird. Die Zeilenadressbits können beispielsweise gemäß einem Adressierungsstandard mit A0 bis A16 gekennzeichnet sein (z. B. gemäß JEDEC Standard). Die oberen Zeilenadressbits, z. B. A14 bis A16, können zur Adressierung der jeweiligen Speichereinrichtung bestimmt sein. Beispielsweise könnte eine Speichereinrichtung eine Größe von 1 Gigabit aufweisen, und die Speichervorrichtung könnte aus acht 1 Gigabit Speichereinrichtungen (mit Row Adressen A0–A13) bestehen. In diesem Fall wären zur Adressierung der 8 Speichereinrichtungen drei Adressbits notwendig, beispielsweise A14 bis A16. In einem anderen Beispiel könnten nur vier 1 Gigabit Speichereinrichtungen bzw. Speicherchips vorhanden sein. In diesem Fall wären nur zwei Bits, z. B. A14 und A15, zur Adressierung notwendig.
-
Das Verfahren könnte ferner einen weiteren Schritt umfassen, bei dem ein Spaltenkommando empfangen wird, welches eine Bankadresse zur Angabe der jeweiligen Bank enthält, aus der die Speicherinhalte ausgelesen werden sollen, bzw. in die Speicherinhalte geschrieben werden sollen. Das Spaltenkommando (engl.: column read/write command) kann gemäß einem vorbestimmten Standard beispielsweise Spaltenadressbits A0 bis A9/A11, sowie Bankadressbits BA0 bis BA2 enthalten (z. B. JEDEC Standard).
-
Das Spaltenkommando könnte gemäß einem Beispiel von jeder Speichereinrichtung empfangen und decodiert werden. In diesem Fall könnte jede Speichereinrichtung anhand der gespeicherten Bankinformation überprüfen, ob die durch die Bankadresse des Spaltenkommandos adressierte Bank der jeweiligen Speichereinrichtung eine aktivierte Wortleitung enthält. Beim Auslesen bzw. Schreiben werden bei diesem Beispiel daher nur dann Daten aus einer jeweiligen Bank ausgelesen bzw. in eine jeweilige Bank geschrieben, wenn die Bankinformation angibt, dass in der jeweiligen Speichereinrichtung die jeweilige durch die Bankadresse des Spaltenkommandos angegebene Bank eine aktivierte Wortleitung enthält. Damit kann verhindert werden, dass, obwohl jede Speichereinrichtung das Spaltenkommando erhält und decodiert, ungültige Daten auf einen an die Speichervorrichtung angeschlossenen Datenbus (DQ) ausgegeben werden bzw. Daten überschrieben werden.
-
Gemäß einem weiteren Beispiel ist es möglich, dass jede Speichereinrichtung nur einen Teil der Bankinformation speichert, wobei der jeweilige Teil angibt, welche Bänke der jeweiligen Speichereinrichtung eine aktivierte Wortleitung enthalten. Bei Speicherchips mit 8 Bänken könnte z. B. jede Speichereinrichtung 8 Bit speichern.
-
2 zeigt ein weiteres Ablaufdiagramm.
-
Im Schritt S200 wird ein Zeilenaktivierungskommando (row command) empfangen, welches Adressbits A0 bis A16 sowie Bankadressbits BA0 bis BA2 enthält.
-
Gemäß dem Zeilenaktivierungskommando wird eine Wortleitung in einer Bank einer Speichervorrichtung aktiviert, wobei die Speichervorrichtung wenigstens zwei Speichereinrichtungen umfasst, und wobei jede Speichereinrichtung wenigstens eine Bank enthält. Die Speichereinrichtungen können gemäß einem Beispiel jeweils die gleiche Anzahl von Bänken enthalten, beispielsweise acht Bänke, die durch die Bankadressbits BA0 bis BA2 adressiert werden können. Durch einen vorgegebenen Teil der Zeilenadressbits A0 bis A16, beispielsweise A14, A15 und A16, kann angegeben werden, welche Speichereinrichtung adressiert wird. Innerhalb einer Bank kann immer nur eine Wortleitung aktiviert werden. Es können aber mit mehreren Zeilenbefehlen mehrere Wortleitung gleichzeitig in verschiedenen Bänken geöffnet werden. Somit kann in der Speichervorrichtung durch die Bankadressbits BA0 bis BA2 nur jeweils eine erste Bank einer Speichereinrichtung eine aktivierte Wortleitung enthalten, und nur jeweils eine zweite Bank und so fort. In anderen Worten, es kann jeweils nur eine erste, zweite, ..., achte Bank eine aktivierte Wortleitung enthalten, wobei durch den vorgegebenen Teil der Zeilenadressbits A0 bis A16, d. h. beispielsweise A14, A15 und A16 festgelegt ist, in welcher Speichereinrichtung die jeweilige Bank liegt.
-
Im Schritt S202 wird dann die Wortleitung gemäß dem Zeilenaktivierungskommando aktiviert.
-
Im Schritt S204 wird Bankinformation BI gespeichert, wobei die Bankinformation BI angibt, welche Bänke pro Speichereinrichtung eine durch das Zeilenaktivierungskommando aktivierte Wortleitung enthalten. Falls beispielsweise eine Speichereinrichtung eine erste Bank und eine fünfte Bank mit einer aktivierten Wortleitung enthält, so könnte die Bankinformation wie folgt aussehen: 10001000.
-
Im Schritt S206 wird ein Spaltenkommando empfangen, das beispielsweise Spaltenadressbits A0 bis A9/A11 sowie Bankadressbits BA0 bis BA2 enthalten kann. Das Spaltenkommando kann auch angeben, ob ein Schreib- oder Lesezugriff erfolgen soll. Das Spaltenkommando muss die Adressbits A14–A16 welche eine der Speichereinrichtungen auswählt, nicht enthalten.
-
Im Schritt S208 wird anhand der gespeicherten Bankinformation BI von jeder oder zumindest einer Speichereinrichtung geprüft, ob die Bankadresse des Spaltenkommandos einer geöffneten Bank entspricht. In anderen Worten, es wird überprüft ob die Bankadresse des Spaltenkommandos in der Bankinformation enthalten ist (BA0, BA1, BA2 adressiert genau eine Bank, wohingegen die Bankinformation angibt, welche Bänke geöffnete bzw. aktivierte Wortleitungen enthalten). Falls die Bankadresse des Spaltenkommandos einer geöffneten Bank entspricht, so erfolgt im Schritt S210 ein entsprechender Lese- bzw. Schreibzugriff. Falls dies nicht der Fall ist, so erfolgt im Schritt S212 ein Abbruch, da in diesem Fall ein illegales Lese/Schreibkommando vorliegt. Da wie oben dargelegt wurde z. B. nur jeweils in einer ersten Bank aller Speichereinrichtungen eine aktive Wortleitung sein kann wird verhindert, dass zwei Speichereinheiten das Spaltenkommando ausführen.
-
3 zeigt eine Speichereinrichtung 300, welche acht Bänke 302-1 bis 302-8, sowie einen Kommandodecoder 304 und ein Speicherregister 306 enthält.
-
Der Zugriff auf die Speichereinrichtung 300 wird mittels eines ersten Kontrollsignals 308 gesteuert, wobei das erste Kontrollsignal 308 beispielsweise via einen CA-Bus und/oder einen Kontrollbus übertragen wird. Der CA-Bus kann außer Commando Signalen (RAS, CAS, WE) beispielsweise Zeilen- bzw. Spaltenadressbits A0 bis A16 bzw. A0 bis A9/A11 übertragen und der Kontrollbus ein CS-Signal (= Chip Select Signal), ODT-Signal (= On Die Termination Signal) und/oder CKE-Signal (= Clock Enable Signal).
-
Der Kommandodecoder 304 kann eine Wortleitung in einer der Bänke in Abhängigkeit eines Zeilenaktivierungskommandos, welches im ersten Kontrollsignal 308 enthalten sein kann, aktivieren. Ferner kann der Kommandodecoder 304 Speicherinhalte aus Bänken mit aktivierten Wortleitungen auslesen bzw. in Bänke mit aktivierten Wortleitungen schreiben, und zwar in Abhängigkeit von Bankinformation, wobei die Bankinformation angibt, welche Bänke eine durch das Zeilenaktivierungskommando aktivierte Wortleitung enthalten. Die Bankinformation kann vom Kommandodecoder 304 durch ein Bankinformationssignal 310 an das Speicherregister 306 übertragen und dort gespeichert werden und auch von dort wieder abgerufen werden.
-
In einer Weiterbildung kann die Bankinformation nach Erhalt eines Zeilenaktivierungskommandos so lange im Speicherregister 306 gespeichert bleiben, bis die Wortleitung geschlossen wird z. B. durch ein Precharge Kommando.
-
Der Kommandodecoder 304 kann beispielsweise anhand der in dem Speicherregister 306 gespeicherten Bankinformation überprüfen, ob die durch die Bankadresse des Spaltenkommandos adressierte Bank eine aktivierte Wortleitung enthält.
-
Die Größe des Speicherregisters 306 kann von der Anzahl Bänke 302-1 bis 302-8 abhängen. In dem in 3 gezeigten Beispiel sind acht Bänke 302-1 bis 302-8 vorgesehen. Die Größe des Speicherregisters kann acht Bit betragen. Somit kann im Speicherregister 306 gespeichert werden, welche der acht Bänke 302-1 bis 302-8 eine aktivierte bzw. geöffnete Wortleitung aufweist.
-
4 zeigt eine Speichervorrichtung 4, welche acht Speichereinrichtungen 402-1 bis 402-8 enthält. Eine Speichereinrichtung 402 kann beispielsweise ein Speicherchip sein, der eine Speichergröße von 1 Gigabit bereitstellt. Jede Speichereinrichtung 402-1 bis 402-8 umfasst Speicherbänke 404 bis 418, wobei jede Speichereinrichtung 402 jeweils acht Speicherbänke 404-1, ..., 404-8, ..., 418-1, ..., 418-8 enthält.
-
Beim Empfang eines Zeilenaktivierungskommandos kann eine Wortleitung innerhalb einer bestimmten Bank einer bestimmten Speichereinrichtung wie folgt aktiviert werden: das Zeilenaktivierungskommando enthält beispielsweise Zeilenadressbits A0 bis A16 sowie Bankadressbits BA0 bis BA2. Die Speichervorrichtung 400 ist so aufgebaut, dass ein Teil der Zeilenadressbits A0 bis A16, im Beispiel von 4 die Adressbits A14, A15 und A16 zur Adressierung einer bestimmten Speichereinrichtung 402-1, ..., 402-8 verwendet werden. Beispielsweise kann die fünfte Speichereinrichtung 402-5 ausgewählt werden, indem A14, A15, A16 = ”100” gesetzt werden. Die übrigen Zeilenadressbits A0 bis A13 werden zur Auswahl einer bestimmten Wortleitung innerhalb einer Bank verwendet. Eine Bank wird durch die Bankadressbits BA0 bis BA2 ausgewählt.
-
Das Beispiel von 4 zeigt acht aktivierte Wortleitungen 420-1 bis 420-8, wobei durch die beschriebene Adressierung gewährleistet ist, dass in allen ersten Bänken 404-1, ..., 418-1 nur eine einzige Wortleitung 420-1 aktiviert ist. Ebenso ist in allen zweiten Speicherbänken 404-2, ..., 418-2 nur eine einzige Wortleitung 420-2 aktiviert. Das Analoge gilt für die jeweils dritten bis achten Speicherbänke 404-3, ..., 418-3, 404-4, ..., 418-4, 404-5, ..., 418-5, 404-6, ..., 418-6, 404-7, ..., 418-7, 404-8, ..., 418-8.
-
Ein Controller bzw. Speichercontroller, der auf die Speichervorrichtung 400 zugreift ”sieht” somit immer nur eine erste, zweite, ..., achte Bank, wobei der Controller nicht bemerkt, dass es sich um Bänke in unterschiedlichen Speichereinrichtungen 402-1 bis 402-8 handeln kann.
-
Unter Speichercontroller wird hier eine Vorrichtung verstanden, die einen Request des Prozessors in Kommandos bzw. Adressen gemäß DRAM-Protokoll umsetzt.
-
Die Information, welche Wortleitungen aktiviert sind, wird als Bankinformation gespeichert. Hierfür kann jede Speichereinrichtung 402-1 bis 402-8 jeweils ein Acht-Bit-Speicherregister enthalten, in dem jeweils abgespeichert wird, welche Bank bzw. welche Bänke eine durch das Zeilenaktivierungskommando aktivierte Wortleitung enthält.
-
Die Bankinformation wird anschließend bei Erhalt eines Spaltenkommandos genutzt, um ungültige Speicherzugriffe zu verhindern. Das Spaltenkommando enthält beispielsweise Spaltenadressen A0 bis A9/A11 und Bankadressbits BA0–BA2. Das Spaltenkommando (column read/write command) wird von einem internen Controller einer Speichereinrichtung beispielsweise nach Ablauf von tRCD ausgeführt.
-
Die Bankadressbits BA0 bis BA2 des Spaltenkommandos werden dabei mit der gespeicherten Bankinformation verglichen. Hierfür kann es sinnvoll sein, dass jede Speichereinrichtung 402-1 bis 402-8 ein Spaltenkommando erhält und decodiert. Falls durch die Bankadresse BA0 bis BA2 des Spaltenkommandos eine Bank mit einer aktivierten Wortleitung adressiert wird, liegt ein gültiger Lese/Schreibzugriff vor. Sonst liegt ein ungültiger Lese/Schreibzugriff vor.
-
5 zeigt eine Ausführungsform einer Speichereinrichtung 500, die beispielsweise in einer Stackanordnung verwendet werden kann. Die Speichereinrichtung 500 kann beispielsweise 1 Gigabit groß sein, wobei jeweils acht solche Speichereinrichtungen in einem Stack zusammengefasst werden können, so dass ein Speicherbaustein realisiert wird, der acht Gigabit groß ist.
-
Die Speichereinrichtung 500 umfasst einen Kommandodecoder 502, ein Speicherregister 504, acht Bänke 506-1, ..., 506-8, und einen Kontrolllogikbaustein 508.
-
Der Kommandodecoder 502 erhält von einem externen Speichercontroller via einen CA-Bus 514 Zeilen- und/oder Spaltenadressen und Kommandos (RAS/CAS/WE), sowie Bankadressen BA0–BA2. Ferner erhält der Kommandodecoder 502 via einen Kontrollbus die Signale CS (Chip Select), ODT (On Die Termination), CKE (Clock Enable).
-
Bei einem Speicherzugriff erhält der Kommandodecoder 502, z. B. zunächst ein Zeilenaktivierungskommando, das eine durch A0 bis A16 vorgegebene Zeilenadresse sowie eine durch BA0 bis BA2 vorgegebene Bankadresse enthält. Anschließend erhält der Kommandodecoder 502 ein Spaltenkommando, das durch die Adressbits A0 bis A9/A11 eine Spalte adressiert.
-
Im Beispiel von 5 erhält der Kommandodecoder 502 ein Zeilenaktivierungskommando, durch das z. B. in der ersten Bank 506-1 eine Wortleitung aktiviert wird, während in der fünften Bank 506-5 bereits eine Wortleitung adressiert ist. Die Information, in welcher Bank jeweils eine Wortleitung aktiviert wird, wird im Register 504 gespeichert. Dadurch ”weiß” die Speichereinrichtung 500 bei Erhalt eines Spaltenkommandos, ob sie auf eine bestimmte Bank zugreifen darf.
-
Die Steuerung des Registers 504 bzw. der Bänke 506-1 bis 506-8 erfolgt durch entsprechende Selektoren 510 bzw. 512.
-
Anhand des Zeilenaktivierungskommandos überprüft der Kommandodecoder 502 jeder Speichereinrichtung auch, ob er überhaupt angesprochen ist. Hierfür werden z. B. die Adressbits A14, A15, A16 verwendet, d. h. nur für einen bestimmten Wert der Adressbits A14, A15, A16 wird überhaupt eine Wortleitung in einer der Bänke 506 aktiviert. In 5 könnte es sich z. B. um die fünfte Speichereinrichtung in einem Stack handeln. Dieser könnte z. B. bei A14, A15, A16 = ”100” angesprochen werden, d. h. nur falls A14, A15, A16 = ”100” gilt, würde die Speichereinrichtung anhand der übrigen Werte A0–A13, sowie BA0, BA1, BA2 eine entsprechende Wortleitung aktivieren.
-
Nach Erhalt eines Spaltenkommandos überprüft der Kommandodecoder 502, ob die in dem Spaltenkommando enthaltene Bankadresse eine solche ist, die in der im Register 504 gespeicherten Bankinformation enthalten ist. Falls ja, so wird ein Zugriff via den Signalleitungen bzw. Signalen 522 auf den Datenbus DQ zugelassen. Die entsprechende Zugriffssteuerung kann beispielsweise durch die Kontrolllogikschaltung 508 erfolgen.
-
6 zeigt eine Speichervorrichtung 600, welche eine Stackanordnung aus Speichereinrichtungen bzw. Speicherchips 602-1 bis 602-4 aufweist. Die Speichervorrichtung 600 wird auch als DRAN Stack bezeichnet. Die unterste Speichereinrichtung 602-1 des Stacks ist eine Masterspeichereinrichtung und die übrigen Speichereinrichtungen 602-2, 602-3 und 602-4 sind Slavespeichereinrichtungen. Jede der Speichereinrichtungen 602-1 bis 602-4 enthält eine jeweilige Kontrolllogik 608-1 bis 608-4. Die Kontrolllogik 608 steuert jeweils den Zugriff auf den Datenbus DQ. Die Kontrolllogik 608 enthält jeweils einen Tri State Buffer 610, der jedoch bei den Slavespeichereinrichtungen 602-2, 602-3 und 602-4 auch entfallen könnte, da er bei Slavespeichereinrichtungen nicht benötigt wird.
-
Die Speichereinrichtungen 602-1 bis 602-4 sind durch ein oder eine Mehrzahl von Through Silicon Via (TSV) 606 miteinander verbunden.
-
Jeder Speicherbaustein 602 enthält einen DRAM Core 604, der beispielsweise die oben beschriebenen Bänke etc. enthält.
-
Die Speichereinrichtungen 602-1 bis 602-4 enthalten weiterhin weitere Kontrolllogik 612, die u. a. Tri State Buffer enthält. Damit kann eine Speichereinrichtung entweder als Master oder als Slave eingestellt werden. Die weitere Kontrolllogik 612-1 ist so eingestellt bzw. konfiguriert, dass die Speichereinrichtung 602-1 als Master arbeitet. Empfangene Kommandos werden somit bspw. über den TSV 606 verteilt bzw. weitergeleitet. Die weitere Kontrolllogik 612-2 der Speichereinrichtungen 602-2, 602-3 und 602-4 ist so eingestellt, dass diese Speichereinrichtungen als Slave arbeiten.
-
7 zeigt ein Beispiel eines Adressierungsschemas für einen DDR2- und einen DDR3-Speicher. Wie in 7 angegeben, werden die Adressbits A14 und A15 beispielsweise zur Adressierung eines 4 Gigabit großen Speichers verwendet.
-
8 zeigt eine weitere Ausführungsform eines Verfahrens zum Betrieb einer Speichervorrichtung, welche wenigstens zwei Speichereinrichtungen umfasst, wobei jede Speichereinrichtung wenigstens eine Bank bzw. Speicherbank enthält. Die Speichervorrichtung kann bspw. eine Stack-Anordnung aus einer Mehrzahl von Speichereinrichtungen bzw. Speicherchips bzw. Halbleiterspeichereinrichtungen sein, wobei auf jeder Speichereinrichtung z. B. ein DRAM-Core angeordnet sein kann.
-
Im Schritt S800 wird eine Wortleitung in einer Bank gemäß einem Zeilenaktivierungskommando aktiviert. Dabei wird maximal eine Wortleitung pro Speichereinrichtung bzw. Speicherchip aktiviert. Anschließend, im Schritt S802, werden Speicherinhalte aus Bänken mit aktivierten Wortleitungen gemäß einem Spaltenkommando ausgelesen bzw. es werden Speicherinhalte in Bänke mit aktivierten Wortleitungen geschrieben.
-
Damit z. B. bei einer 8 Gigabit Stackanordnung maximal eine Wortleitung pro Speichereinrichtung aktiviert wird, können in einer Ausführungsform der Erfindung Zeilenadressanschlüsse der Speichereinrichtung mit Bankadressanschlüssen eines zur Adressierung verwendeten Controllers verbunden sein. Der Controller kann ein Standard-Controller sein, d. h. ein bisher üblicherweise zur Ansteuerung von DRAM-Speichern verwendeter Controller.
-
Gemäß einer Ausführungsform der Erfindung können Bankadressanschlüsse der Speichereinrichtung mit Zeilenadressanschlüssen des Controllers verbunden sein. In anderen Worten ist es möglich, dass ein Controller eine Zeilenadresse an die Speichervorrichtung überträgt, wobei die Verdrahtung der Speichervorrichtung so ausgebildet ist, dass die Zeilenadresse von der Speichereinrichtung als Bankadresse aufgefasst wird. Weiterhin kann durch die Verdrahtung der Speichervorrichtung eine vom Controller an die Speichervorrichtung übertragene Bankadresse als Zeilenadresse für eine Speichereinrichtung verwendet werden. In diesem Fall wird der Teil der Zeilenadresse z. B. nicht als Zeilenadresse verwendet, sondern als Speichereinrichtungsadresse. Das sind zusätzliche Adressen die die einzelne Speichereinrichtung nicht hätte.
-
In einer weiteren Ausführungsform kann das Zeilenaktivierungskommando beispielsweise eine Zeilenadresse und eine Bankadresse umfassen. Ein Teil der Zeilenadresse, z. B. A14, A15 und A16 (gemäß JEDEC Standard), wird dann von einer Speichereinrichtung durch die ”vertauschte” Verdrahtung zur Adressierung einer Bank innerhalb der Speichereinrichtung verwendet. Die vom Controller generierte Bankadresse BA0, BA1 und BA2 (gemäß JEDEC Standard) kann zur Adressierung einer bestimmten Speichereinrichtung der Speichervorrichtung verwendet werden. Die Speichervorrichtung verhält sich somit bei einer 8 Gigabit Stack-Anordnung aus Ein-Gigabit Speichereinrichtungen so, als ob eine Speichereinrichtung einer Bank entspricht.
-
Die beispielsweise von einem Controller generierte Bankadresse (z. B. BA0, BA1, BA2) kann also zur Auswahl bzw. Adressierung einer Speichereinrichtung verwendet werden, in welcher in einer jeweiligen Bank eine Wortleitung aktiviert wird. Die Wortleitung wird dabei beispielsweise durch die Zeilenadressbits A0 bis A13 gemäß JEDEC Standard ausgewählt bzw. adressiert.
-
In anderen Worten wird ein Zeilenaktivierungskommando von einem Controller bzw. Speichercontroller bereitgestellt, wobei der Speichercontroller eigentlich mit einer Bankadresse eine Bank auswählen will. Tatsächlich wählt der Speichercontroller aber mit einer Bankadresse eine Speichereinrichtung bzw. einen bestimmten Speicherchip aus. Andererseits wird die von dem Controller generierte und im Zeilenaktivierungskommando enthaltene Zeilenadresse zur Auswahl einer Bank in einer durch die Bankadresse ausgewählten Speichereinrichtung verwendet.
-
Die Zeilenadresse kann einen ersten Adressteil, z. B. A0 bis A13, und einen zweiten Adressteil, z. B. A14 bis A16, aufweisen, wobei der zweite Adressteil A14 bis A16 zur Auswahl der jeweiligen Bank verwendet wird.
-
Der erste Adressteil A0 bis A13 kann zur Auswahl einer Wortleitung in einer durch den zweiten Adressteil (A14 bis A16) ausgewählten Bank verwendet werden.
-
Gemäß einer weiteren Ausführungsform kann zumindest ein Teil des Zeilenaktivierungskommandos gespeichert werden, beispielsweise zumindest bis zum Erhalt eines Precharge Kommandos mit dem die Wortleitung wieder geschlossen bzw. deaktiviert wird.
-
Der gespeicherte Teil des Zeilenaktivierungskommandos kann der oben erwähnte zweite Adressteil (A14 bis A16) sein.
-
9 zeigt eine weitere Ausführungsform eines Verfahrens zum Betrieb einer Speichervorrichtung, wobei im Schritt S900 ein Zeilenaktivierungskommando von einem Controller empfangen wird.
-
Im Schritt S902 wird ein Speicherchip in Abhängigkeit von BA0, BA1 und BA2 (Bankadressen gemäß JEDEC Standard, vom Controller erzeugt) ausgewählt. Es ist daher möglich, dass nur ein durch BA0, BA1 und BA2 ausgewählter Speicherchip ”aktiviert” wird. Das heißt, nur falls ein bestimmter Speicherchip durch BA0, BA1 und BA2 adressiert wird, decodiert dieser ausgewählte Chip ein Zeilenaktivierungskommando und/oder folgendes Spaltenkommando vollständig. Somit kann z. B. Strom eingespart werden. Es wird beispielsweise auch dadurch Strom gespart, dass nur eine Wortleitung pro Chip aktiviert sein kann.
-
Im Schritt S904 wird schließlich in Abhängigkeit von A14, A15 und A16 eine Bank in dem durch BA0, BA1 und BA2 ausgewählten Speicherchip adressiert.
-
Im Schritt S906 werden die Werte von A14, A15 und A16 des Zeilenaktivierungskommandos gespeichert. Im Schritt S908 wird ein Spaltenkommando, z. B. A0 bis A9/A11 gemäß JEDEC Standard, empfangen.
-
Im Schritt S910 wird zunächst das Spaltenkommando aus Schritt S908 insoweit ausgewertet, als dass festgestellt wird, welcher Speicherchip durch die im Spaltenkommando enthaltene Bankadresse adressiert wird. Das heißt, in einer weiteren Ausführungsform der Erfindung wird auch beim Lesen/Schreiben nur dann auf einen Speicherchip zugegriffen, falls dieser durch die Bankadresse des Spaltenkommandos ausgewählt bzw. adressiert wird.
-
Um festzustellen, aus welcher Bank innerhalb des durch BA0, BA1, BA2 des Spaltenkommandos adressierten Speicherchips gelesen werden soll bzw. in welche Bank geschrieben werden soll, werden die gespeicherten Werte von A14, A15 und A16 verwendet. Das heißt, Speicherinhalte werden aus Bänken ausgelesen bzw. in Bänke geschrieben, die durch die gespeicherten Werte von A14, A15 und A16 festgelegt sind. Zur Aktivierung eines Speichers bzw. von Registern, in welchen die Werte A14, A15, A16 des Zeilenaktivierungskommandos gespeichert sind, können z. B. die Kommandobussignale RAS (= Row Address Strobe), CAS (= Column Address Strobe) und/oder WE (= Write Enable) verwendet werden. Alternativ und/oder zusätzlich können auch die Kontrollbussignale CS (= Chip Select), ODT (= On Die Termination) und/oder CKE (= Clock Enable) verwendet werden.
-
10A zeigt eine Speichervorrichtung 1000. Die Speichervorrichtung 1000 besteht aus acht Speichereinrichtungen 1000-1, ..., 1000-8. Die Speichereinrichtungen 1000-1 bis 1000-8 können beispielsweise in einem Gehäuse in einer Stackanordnung angeordnet sein, wobei die Kontaktierung mittels Balls erfolgt. Die Speichereinrichtungen 1000-1 bis 1000-8 können z. B. durch ein oder eine Mehrzahl Through Silicon Via (TSV) miteinander verbunden sein.
-
Die Verdrahtung der Speichervorrichtung 1000 kann so gewählt sein, dass durch eine von einem Speichercontroller bereitgestellte Bankadresse BA0, BA1, BA2 eine der acht Speichereinrichtungen 1000-1, ..., 1000-8 ausgewählt wird. Da die Bankadresse BA0, BA1, BA2 gemäß JEDEC Standard vom Speichercontroller sowohl bei einem Zeilenaktivierungskommando (Row Command) als auch bei einem Spaltenkommando (Column Read/Write Command) bereitgestellt wird, ist die beschriebene Adressierung bzw. Aktivierung einer Speichereinrichtung sowohl beim Erhalt eines Zeilenaktivierungskommandos als auch beim Erhalt eines Spaltenkommandos möglich.
-
Demgemäß wird durch eine vom Speichercontroller bereitgestellte Bankadresse BA0, BA1, BA2 in Wirklichkeit keine Bank innerhalb einer Speichereinrichtung ausgewählt bzw. adressiert, sondern eine der Speichereinrichtungen 1000-1, ..., 1000-8. Beispielsweise kann durch eine Bankadresse BA0, BA1, BA2 = 011 die vierte Speichereinrichtung 1000-4 ausgewählt werden.
-
Das Zeilenaktivierungskommando enthält gemäß JEDEC Standard beispielsweise die Zeilenadressen A0 bis A16 sowie eine Bankadresse BA0, BA1 und BA2. Wie bereits beschrieben, wird durch die Bankadresse BA0, BA1, BA2 eine bestimmte Speichereinrichtung 1000 ausgewählt. Durch einen Teil der Zeilenadresse A0, ..., A16 wird eine Bank innerhalb der durch BA0, BA1, BA2 ausgewählten Speichereinrichtung adressiert. Beispielsweise kann durch A14, A15, A16 = ”010” eine dritte Bank B3 einer Speichereinrichtung ausgewählt werden. Die übrigen Zeilenadressbits A0 bis A13 der Zeilenadresse werden verwendet, um eine bestimmte Wortleitung innerhalb der durch A14, A15, A16 adressierten Bank auszuwählen bzw. diese zu aktivieren.
-
In anderen Worten wird bei der Ausführungsform gemäß 10A durch eine von einem Controller bereitgestellte Bankadresse eine Speichereinrichtung 1000 ausgewählt, und durch einen Teil der Zeilenadresse, beispielsweise A14, A15 und A16 eine Bank innerhalb der ausgewählten Speichereinrichtung 1000.
-
Die aktivierten Wortleitungen sind in 10A mit Bezugszeichen 1002-1, ..., 1002-8 gekennzeichnet. Aufgrund der Zuordnung von BA0, BA1, BA2 zu Speichereinrichtungen ergibt sich, dass pro Speichereinrichtung maximal eine Wortleitung 1002 aktiviert werden kann, da der Controller pro Speichereinrichtung nur eine Bank „sieht”.
-
Nach Abarbeitung eines Zeilenaktivierungskommandos kann ein folgendes Spaltenkommando verarbeitet werden. Das Spaltenkommando enthält beispielsweise eine Spaltenadresse A0, ..., A9/A11 und eine Bankadresse BA0, BA1, BA2. Bei der Verarbeitung eines Spaltenkommandos wird wiederum durch die Bankadresse BA0, BA1, BA2 eine Speichereinrichtung 1000 adressiert. Durch die Spaltenadresse A0, ..., A9/A11 wird in einer Bank mit einer aktivierten Wortleitung 1002 eine entsprechende Spalte aktiviert, so dass ein entsprechender Speicherinhalt ausgelesen wird.
-
Um zu verhindern, dass bei einem Spaltenkommando auf eine Bank ohne aktivierte Wortleitung zugegriffen wird, werden die Werte A14, A15, A16 des Zeilenaktivierungskommandos beispielsweise in einem Register gespeichert. Hierfür kann ein Speicherregister beispielsweise in jeder Speichereinrichtung 1000 vorgesehen werden, wobei in der Ausführungsform gemäß 10A die Größe des Speicherregisters beispielsweise 3 Bit ist, so dass die Information, welche der acht Bänke eine aktivierte Wortleitung enthält, gespeichert werden kann.
-
Bei der Speichervorrichtung 1000 ist es möglich, dass nicht jede Speichereinrichtung 1000 ein Zeilenaktivierungskommando und/oder ein entsprechendes Spaltenkommando vollständig decodieren muss, da eine Decodierung möglicherweise nur dann erfolgen muss, wenn eine Speichereinrichtung 1000 durch BA0, BA1, BA2 angesprochen wird.
-
10B zeigt eine Speichervorrichtung 1008 gemäß einer weiteren Ausführungsform der Erfindung. Die Speichervorrichtung 1008 umfasst vier Speichereinrichtungen 1010-1 bis 1010-4, die beispielsweise jeweils eine Größe von 1 Gbit aufweisen können. Die Größe der Speichervorrichtung 1008 beträgt somit 4 Gbit. Bei der Ausführungsform gemäß 10B werden zur Auswahl einer der Speichereinrichtungen 1010 nur die Bankadressen BA0 und BA1 des Zeilenaktivierungskommandos verwendet. Das heißt, eine Speichereinrichtung 1110, in welcher eine Wortleitung aktiviert werden soll, wird durch die in dem Zeilenaktivierungskommando enthaltenen Bankadressteile BA0 und BA1 ausgewählt.
-
Innerhalb einer durch BA0 und BA1 ausgewählten Speichereinrichtung wird eine Bank durch die Zeilenadressbits A14, A15 sowie durch das Bankadressbit BA2 ausgewählt.
-
Zur Aktivierung einer Wortleitung 1012 wird also ein Teil der Bankadresse beispielsweise die Bankadressbits BA0 und BA2 zur Auswahl einer Speichereinrichtung 1010 verwendet, und ein Teil der Zeilenadresse, beispielsweise die Zeilenadressbits A14 und A15, sowie ein weiterer Teil der Bankadresse, beispielsweise das Bankadressbit BA2, wird verwendet, um eine bestimmte Bank innerhalb der Speichereinrichtung zu aktivieren.
-
Bei der Ausführungsform von 10B ist es somit möglich, dass in einer Speichereinrichtung 1010 durch aufeinander folgende Zeilenaktivierungskommandos Wortleitungen in zwei Bänken geöffnet bzw. aktiviert werden.
-
Bei der Ausführungsform von 10B müssen in jeder Speichereinrichtung 1010 lediglich zwei Bits in einem Register gespeichert werden, nämlich die Zeilenadressbits A14 und A15.
-
Anhand der 10A und 10B wird deutlich, dass es auch möglich ist, beispielsweise einen Stack aus lediglich zwei 1 Gbit Speichereinrichtungen aufzubauen. Dabei würde beispielsweise die Speichereinrichtung durch das Bankadressbit BA0 ausgewählt, wobei eine jeweilige Bank innerhalb einer der beiden Speichereinrichtungen durch das Zeilenadressbit A14, sowie die Bankadressbits BA1 und BA2 ausgewählt werden.
-
11 zeigt schematisch eine Unterseite 1102 einer Speichervorrichtung 1100 gemäß einer weiteren Ausführungsform der Erfindung.
-
Die Unterseite 1102 weist Balls zum Anschluss der Speichervorrichtung 1100 auf. Die Balls werden auch als ”äußere Anschlüsse” der Speichervorrichtung 1100 bezeichnet. Die Anordnung der Balls erfolgt beispielsweise gemäß dem JEDEC Standard, so dass genau festgelegt ist, an welchem äußeren Anschluss eine bestimmte Signalleitung eines Controllers zur Steuerung des Speichers bzw. zum Zugriff auf den Speicher angelegt wird.
-
Der Übersicht halber sind in 11 lediglich die äußeren Anschlüsse BA0-0, BA1-0, BA2-0, A14-0, A15-0, A16-0 für eine Speichereinrichtung dargestellt. Die äußeren Anschlüsse BA0-0, BA1-0, BA2-0 werden vom Speichercontroller mit einer Bankadresse versorgt. Die äußeren Anschlüsse A14-0, A15-0 und A16-0 werden vom Speichercontroller mit den Zeilenadressbits A14, A15, A16 versorgt bzw. angesteuert. Die übrigen äußeren Adressanschlüsse A0 bis A13 sind, wie bereits erwähnt, der Übersicht halber, nicht dargestellt.
-
In einem Ausschnitt 1104 sind beispielhaft die Adressleitungsanschlüsse A14-1, A15-1, A16-1 einer Speichereinrichtung dargestellt, sowie die Bankadressanschlüsse BA0-1, BA1-1, BA2-1 der Speichereinrichtung. Die Adressleitungsanschlüsse A14-1, A15-1, A16-1 und Bankadressanschlüsse BA0-1, BA1-1, BA2-1 sind die Anschlüsse der Speichereinrichtung die gemäß JEDEC Standard bisher zur Zeilenadressierung bzw. Bankadressierung verwendet wurden.
-
Bei einer herkömmlichen Verdrahtung würden nun die äußeren Bankadressanschlüsse mit den Bankadressanschlüssen der Speichereinrichtung verbunden werden, d. h. BA0-0 würde mit BA0-1 verbunden werden und so fort. Ferner würden die äußeren Adressleitungsanschlüsse A14-0, A15-0, A16-0 mit den Zeilenadressanschlüssen A14-1, A15-1, A16-1 der Speichereinrichtung verbunden.
-
Gemäß der Ausführungsform der Erfindung von 11, geschieht dies jedoch nicht. Stattdessen werden die äußeren Bankadressanschlüsse mit den Zeilenadressanschlüssen der Speichereinrichtung verbunden und die äußeren Zeilenadressanschlüsse mit den Bankadressanschlüssen der Speichereinrichtung.
-
In anderen Worten ergeben sich folgende Verbindungen: BA0-0 mit A14-1, BA1-0 mit A15-1, BA2-0 mit A16-1 und A14-0 mit BA0-1, A15-0 mit BA1-1 und A16-0 mit BA2-1.
-
Somit kann eine Bankadresse des Speichercontrollers zur Auswahl einer Speichereinrichtung verwendet werden. Ferner kann durch die Adressbits A14, A15, A16 eines Zeilenaktivierungskommandos eine bestimmte Bank innerhalb einer Speichereinrichtung ausgewählt werden.
-
12 zeigt schematisch eine kreuzweise Verdrahtung 1200 zwischen einem Controller 1202 und einer Speichereinrichtung 1204, die beispielsweise Teil einer Stackanordnung in einer Speichervorrichtung sein kann.
-
Wie dargestellt, wird durch die ”vertauschte Verdrahtung” eine von einem Controller 1202 erzeugte Bankadresse BA0, BA1, BA2 auf die Anschlüsse A14, A15, A16 der Speichereinrichtung 1204 gelegt. Ferner wird ein Teil der Zeilenadresse, d. h. die Adressleitungen A14, A15, A16 auf die Bankanschlüsse BA0, BA1, BA2 der Speichereinrichtung 1204 gelegt.
-
Die Vertauschung von einer Bankadresse mit einer Zeilenadresse kann beispielsweise auch durch ein entsprechendes Routing eines DIMM (Dual Inline Memory Module) erreicht werden. In diesem Fall wäre die Speichervorrichtung normal verdrahtet, wobei die in der Speichervorrichtung enthaltenen Speichereinrichtungen die beschriebenen Speicher bzw. Register bzw. Speichereinheiten aufweisen. Ferner könnte die Vertauschung auch durch einen Advanced Memory Buffer (AMB) erfolgen. Der Advanced Memory Buffer könnte beispielsweise auf dem DIMM oder dem Motherboard angeordnet sein.
-
13 zeigt eine weitere Ausführungsform einer Speichereinrichtung 1300. Die Speichereinrichtung 1300 enthält einen Kontrolllogikblock 1302, Bänke 1304-1, ..., 1304-8, einen Selektor 1306, einen Kommandodecoder 1308, eine Einstellvorrichtung 1310, Speicherregister 1312-1, ..., 1312-3, 2:1-Multiplexer 1314-1, ..., 1314-3, sowie weitere Kontrolllogik 1316.
-
Beim Betrieb der Speichereinrichtung 1300 erhält der Kommandodecoder 1308 via dem CA-Bus, CMD-Bus und Kontrollbus beispielsweise ein Zeilenaktivierungskommando und/oder ein Spaltenkommando. Zum Zugriff auf einen bestimmten Speicherinhalt kann beispielsweise zunächst ein Zeilenaktivierungskommando empfangen und verarbeitet werden und anschließend ein Spaltenkommando.
-
Das Zeilenaktivierungskommando wird beispielsweise von einem Speichercontroller bereitgestellt und enthält Zeilenadressbits A0' bis A16' sowie eine Bankadresse BA0' bis BA2'. Die vom Controller erzeugte Bankadresse BA0', BA1', BA2' wird der Speichereinrichtung 1300 als Zeilenadresse zugeführt. Das heißt, die vom Controller bereitgestellte Bankadresse BA0', BA1', BA2' wird den gemäß JEDEC Standard üblicherweise verwendeten Anschlüssen A14, A15, A16 der Speichereinrichtung 1300 zugeführt. Weiterhin wird ein Teil der vom Controller erzeugten Zeilenadressbits, nämlich die Adressbits A14', A15' und A16', von der Speichereinrichtung 1300 als Bankadresse aufgefasst, d. h., die vom Controller erzeugten Adressbits A14', A15', A16' werden den gemäß JEDEC Standard verwendeten Bankadressleitungen (in 13 durch BA0, BA1 und BA2 gekennzeichnet) zugeführt.
-
Der Kommandodecoder 1308 kann anhand der an seinen Anschlüssen A14, A15, A16 anliegenden Werte (die einer vom Controller erzeugten Bankadresse BAD', BA1', BA2' entsprechen) entscheiden, ob die Speichereinrichtung 1300 angesprochen wird. In einer Ausführungsform der Erfindung ist es möglich, dass ein Kommando nur dann decodiert wird, wenn der Kommandodecoder 1308 anhand von A14, A15, A16 feststellt, dass die Speichereinrichtung 1300 adressiert wird. Somit kann z. B. Strom gespart werden.
-
Die Speichereinrichtung 1300 wird also so angeschlossen, dass eine vom Controller erzeugte Bankadresse BA0', BA1', BA2' an den Anschlüssen A14, A15, A16 der Speichereinrichtung 1300 anliegt, und vom Controller erzeugte Zeilenadressbits A14', A15' und A16' and den Anschlüssen BA0, BA1, BA2 der Speichereinrichtung. Dabei entsprechen die Anschlüsse A14, A15, A16 und BA0, BA1, BA2 Anschlüssen, die normalerweise gemäß einem vorbestimmten Standard, z. B. JEDEC Standard, zum Anschluss von entsprechenden Zeilenadressleitungen bzw. Bankadressleitungen verwendet werden.
-
Die Einstellvorrichtung 1310 steuert die Speicherregister 1312-1, 1312-2, 1312-3 sowie die 2:1-Multiplexer 1314-1, 1314-2, 1314-3. Beim Erhalt eines Zeilenaktivierungskommandos stellt die Einstellvorrichtung 1310 die Speicherregister 1312-1, 1312-2, 1312-3 so ein, dass die jeweiligen am Eingang anliegenden Signale bzw. Werte eingespeichert (”gelatched”) werden. Das heißt, beim Empfang eines Zeilenaktivierungskommandos werden die Werte, die an den Signalen 1317-1, 1317-2, 1317-3 anliegen, in die jeweiligen Register 1312 übernommen.
-
Ferner stellt die Einstellvorrichtung 1310 die 2:1-Multiplexer 1314 so ein, dass die Signale 1317-1, 1317-2, 1317-3 am Ausgang anliegen. Das heißt, die Signale 1318-1, 1318-2, 1318-3 entsprechen den Signalen 1317-1, 1317-2, 1317-3.
-
Der Kommandodecoder 1308 erhält somit beim Empfang eines Zeilenaktivierungskommandos die vom Controller erzeugten Adressbits A14', A15', A16', die er dann, wie oben beschrieben, als Bankadresse auffasst. D. h., durch die ”vertauschte” Verdrahtung verwendet der Kommandodecoder 1308 die anliegenden Signale A14', A15', A16' zur Auswahl einer der Bänke 1304-1, ..., 1304-8. Das heißt, durch die vom Controller erzeugten Adressbits A14', A15', A16' wählt der Kommandodecoder 1308 via Selektor 1306 eine Bank 1304 aus, in welcher eine Wortleitung aktiviert wird. Im Beispiel von 13 wird die sechste Bank 1304-6 ausgewählt.
-
Innerhalb einer durch A14', A15', A16' ausgewählten Bank wird eine Wortleitung 1305 durch die (richtig verdrahteten) Adressbits A0 bis A13 ausgewählt. D. h. die vom Controller erzeugten Adressbits A0' bis A13' werden an die ”richtigen” bzw. normalerweise hierfür vorgesehenen Anschlüsse A0 bis A13 der Speichereinrichtung angeschlossen.
-
Wie oben beschrieben, wird die Speichereinrichtung 1300 durch die vom Controller erzeugte Bankadresse BA0', BA1', BA2' ausgewählt bzw. aktiviert. Dies kann durch den Kommandodecoder 1308 festgestellt werden. Falls der Kommandodecoder 1308 feststellt, dass die Speichereinrichtung 1300 ausgewählt bzw. adressiert wurde, erfolgt die Auswahl einer Bank, in der eine Wortleitung zu aktivierenden ist, durch die vom Controller erzeugten Adressbits A14', A15', A16'.
-
Beim Erhalt eines Spaltenkommandos stellt der Controller gemäß JEDEC Standard die Adressbits A14', A15', A16' nicht bereit. Deshalb stellt die Einstellvorrichtung 1310 beim Erhalt eines Spaltenkommandos die 2:1-Multiplexer 1314-1, 1314-2, 1314-3 so ein, dass am jeweiligen Ausgang 1318-1, 1318-2, 1318-3 der Inhalt eines jeweiligen Speicherregister 1312-1, 1312-2, 1312-3 anliegt. Dem Kommandodecoder 1308 steht somit beim Erhalt eines Spaltenkommandos die Information zur Verfügung welche Bank eine durch das Zeilenaktivierungskommando aktivierte Wortleitung 1305 enthält.
-
Somit kann der Kommandodecoder 1308 beim Erhalt eines Spaltenkommandos Speicherinhalte gezielt aus einer Bank auslesen bzw. in eine Bank schreiben, in welcher Bank eine Wortleitung aktiviert ist.
-
Der Kontrolllogikblock 1302 ist anschließend für die Datenübertragung zwischen den Bänken und einem Datenbus DQ zuständig.
-
Die weitere Kontrolllogik 1316-1, 1316-2, 1316-3 enthält jeweils Tri State Buffer, die verwendet werden können, um die Speichereinrichtung 1300 als eine Masterspeichereinrichtung oder als eine Slavespeichereinrichtung zur Verwendung in einer Stackanordnung einzustellen (siehe hierzu auch Beschreibung von 6).