-
HINTERGRUND
-
Gebiet:
-
Der hierin offenbarte Gegenstand bezieht sich auf ein Leseoperationsverfahren für einen nichtflüchtigen Speicher.
-
Information:
-
Speichervorrichtungen werden in vielen Arten von elektronischen Vorrichtungen eingesetzt, wie zum Beispiel Computer, Mobiltelefone, PDAs, Datenlogger und Navigationsgerät, um nur einige wenige Beispiele zu nennen. Unter solchen elektronischen Vorrichtungen können verschiedene Arten von nichtflüchtigen Speichervorrichtungen eingesetzt werden wie zum Beispiel NAND- oder NOR-Flashspeicher, und Phasenübergangsspeicher, um nur einige wenige Beispiele zu nennen. Flüchtige Speicher können im Allgemeinen als mit einen Nachteil behaftet betrachtet werden, verglichen mit nichtflüchtigem Speicher, weil flüchtige Speicher gespeicherte Information nicht behalten können, falls eine Energieversorgung des flüchtigen Speichers unterbrochen wird. Trotz solch eines möglichen Nachteils ist ein flüchtiger Speicher wie zum Beispiel SRAM oder DRAM im Allgemeinen in der Lage Schreib-/Lese-/Lösch-Operationen schneller als nichtflüchtige Speicher zu verarbeiten. Dementsprechend können flüchtige Speicher zur Verwendung in elektronischen Vorrichtungen anstatt nichtflüchtiger Speicher ausgewählt werden, falls Speichergeschwindigkeit ein relativ wichtiger Gesichtspunkt ist. Somit gibt es einen allgemeinen Wunsch zur Geschwindigkeitsverbesserung von nichtflüchtigen Speichern, sodass nichtflüchtiger Speicher zunehmend konkurrenzfähiger zu flüchtigem Speicher werden kann.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Nichtbeschränkende und nichtabschließende Ausführungsformen werden mit Bezug auf die folgenden Zeichnungen beschrieben werden, wobei gleiche Bezugszeichen sich auf gleiche Teile über die verschiedenen Figuren hinweg beziehen, so lange es nicht anderweitig angegeben ist.
-
1 ist ein Zeitdiagramm eines Lesezugriffs für eine Speichervorrichtung gemäß einer Ausführungsform.
-
2 ist ein Zeitdiagramm eines Lesezugriffs für eine Speichervorrichtung gemäß einer anderen Ausführungsform.
-
3 ist ein schematisches Blockdiagramm eines Teils einer Speichervorrichtung gemäß einer Ausführungsform.
-
4 zeigt Zeitdiagramme von verschiedenen Lesezugriffsoperationen für Speichervorrichtungen gemäß einer Ausführungsform.
-
5 ist ein schematisches Blockdiagramm eines Teils einer Speichervorrichtung gemäß einer anderen Ausführungsform.
-
6 ist ein Zeitdiagramm eines Lesezugriffs für eine Speichervorrichtung gemäß einer nochmals anderen Ausführungsform.
-
7 ist ein schematisches Diagramm eines Rechnersystems und einer Speichervorrichtung gemäß einer Ausführungsform.
-
DETAILLIERTE BESCHREIBUNG
-
Der Bezug in dieser Beschreibung auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die hier in Verbindung mit der Ausführungsform beschrieben ist, in zumindest einer Ausführungsform des beanspruchten Gegenstandes enthalten ist. Wenn daher der Ausdruck „in einer Ausführungsform” oder der Ausdruck „eine Ausführungsform” an verschiedenen Stellen in dieser Beschreibung auftritt, so bedeutet dies nicht notwendigerweise, dass all diese sich auf dieselbe Ausführungsform beziehen. Darüber hinaus können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden.
-
Die hier beschriebenen Ausführungsformen weisen Techniken auf, um Speicherzugriffszeit für eine nichtflüchtige Speichervorrichtung wie zum Beispiel einen Phasenübergangsspeicher (phase change memory, PCM) zu reduzieren. Eine solche Technik kann ein Modifizieren eines Standardlesezugriffs beinhalten durch Modifizieren einer sequenziellen Reihenfolge, in der bestimmte Abschnitte des Standardlesezugriffs ausgeführt werden. Zum Beispiel können solche bestimmte Abschnitte in einer voraktiven Phase ausgeführt werden anstatt in einer aktiven Phase des Lesezugriffs wie unten im Detail beschrieben. In einer Implementierung kann solch ein Standardlesezugriff in einer Anzahl von Publikationen beschrieben sein wie zum Beispiel der Joint Electron Devices Engineering Council(JEDEC)-Standardpublikation (siehe Low Power Double Data Rate 2 (LPDDR2), JESD209-2B, Februar 2010), die bei Fachleuten bekannt ist. Obgleich andere Veröffentlichungen und/oder Standards einen Standardleseprozess beschreiben können, wird hiernach solch ein Standardleseprozess als „LPDDR2-Standard” bezeichnet. Unter anderem gibt der LPDDR2-Standard eine Anzahl von Befehlen an, die mit einer Speichervorrichtung assoziiert sind, wie zum Beispiel einen Voraktivierungsbefehl, einen Aktivierungsbefehl, einen Lesebefehl und einen Schreibbefehl, um nur einige wenige Beispiele zu nennen. Solche Befehle sind im Detail in dem LPDDR2-Standard in zum Beispiel dem Abschnitt 2.11.1 beschrieben. In einer bestimmten Implementierung eines Prozesses zum Lesen von einer Speichervorrichtung kann ein Voraktivierungsbefehl einen Prozess enthalten zumindest einen Teil einer Zeilenadresse in einen Zeilenadress-Puffer zu schreiben. Nachfolgend zum Abschluss des Voraktivierungsbefehls kann ein Aktivierungsbefehl zum Beispiel mit einem Spaltenadress-Schreibprozess, einem Zellendekodier-Auswahlprozess, und einem Spalten-Dekodier-Auswahl- und Bitleitungs-Voraufladungs-Prozess beginnen. Nach Abschluss eines solchen Aktivierungsbefehls kann eine Speichersteuerung einen Lesebefehl initiieren. In einer bestimmten Implementierung kann der Spalten-Dekodier-Auswahl- und Bitleitungs-Voraufladungs-Prozess, der während des Aktivierungsbefehls auftritt, wie durch den JEDEC-Standard spezifiziert, stattdessen während des Voraktivierungsbefehls ausgeführt werden. Da der Spalten-Dekodier-Auswahl- und Bitleitungs-Voraufladungs-Prozess einen der am meisten relevanten Beitragenden zu der internen Erfassungszeit eines Lesezugriffs aufweist, kann solch eine Neuanordnung einer Prozessreihenfolge zu einer reduzierten Speicherzugriffszeit führen wie unten detaillierter beschrieben. Obwohl solch eine Neuanordnung zu einer verlängerten Zeit führen kann, um die Voraktivierungsphase auszuführen, kann die Aktivierungsphase (mit einer verkürzten Dauer) während eines Lesezugriffs relativ häufiger auftreten als die Voraktivierungsphase. Daher kann sich aus der Verkürzung der Aktivierungsphase insgesamt ein Verkürzen der Zeit zum Ausführen eines Lesezugriffs ergeben, obwohl die Voraktivierungsphase verlängert wird. Falls zum Beispiel mehrere Lesezugriffsoperationen Adressen umfassen, um auf einen bestimmten Teil eines Speicherfeldes (z. B. ein Zugriff ist lokal auf eine bestimmte Zeilengruppe) zu zugreifen, kann dann ein einzelner Voraktivierungsbefehl angewendet werden, auf alle solche Lesezugriffsoperationen. Dementsprechend kann eine Dauer eines Lesezugriffs verkürzt werden durch Verkürzen der Zeit, die erforderlich ist, um einen oder mehrere in dem Lesezugriff enthaltende Aktivierungsbefehle auszuführen. Solches kann der Fall sein, selbst wenn die Zeit, die erforderlich ist, um einen Voraktivierungsbefehl auszuführen, sich zum Beispiel in Antwort auf den verkürzten Aktivierungsbefehl erhöhen kann.
-
In einer Ausführungsform kann ein Verfahren zum Reduzieren von Speicherzugriffszeit für einen Lesezugriff auf eine nichtflüchtige Speichervorrichtung ein Ausführen eines Voraktivierungsbefehls, um eine Zeilenadress-Schreiboperation (z. B. gemäß dem LPDDR2-Standard) zu umfassen, und ein Ausführen von zumindest einer Operation, die ansonsten einem Aktivierungsbefehl zugeordnet ist (z. B. im Gegensatz zu dem LPDDR2-Standard, welcher die Zeilenadress-Schreiboperation als die einzige Operation, die während des Voraktivierungsbefehls durchgeführt wird, spezifiziert) aufweisen. Mit anderen Worten, anstatt eines Ausführens einer bestimmten Operation während der Aktivierungsbefehlsphase gemäß dem LPDDR2-Standard, kann solch eine bestimmte Operation stattdessen während des Voraktivierungsbefehls angewendet werden. In einer Implementierung kann solch eine bestimmte Operation eine Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation aufweisen. Somit kann im Gegensatz zudem LPDDR2-Standard der Aktivierungsbefehl nachfolgend zu der Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation auftreten. Solch eine Neuanordnung von Operationen zum Lesen einer Speichervorrichtung kann implementiert werden durch Neuanordnen einer Reihenfolge von Adressbits einer internen Speicheradresse der Speichervorrichtung und durch Inkorporieren der internen Speicheradresse in eine Zeilenadress-Schreiboperation wie unten beschrieben. Selbstverständlich sind solche Details eines Lesezugriffs nur Beispiele und der beanspruchte Gegenstand ist in dieser Weise nicht beschränkt.
-
In einer Ausführungsform kann eine Speichervorrichtung mit einer reduzierten Speicherzugriffszeit für einen Lesezugriff eine Speichersteuerung zum Ausführen eines Lesezugriffs aufweisen, um auf ein Speicherfeld zu zugreifen. Solche eine Speichersteuerung kann einen Voraktivierungsbefehl initiieren, um eine Zeilenadress-Schreiboperation (z. B. gemäß dem LPDDR2-Standard) auszuführen und um zumindest eine bestimmte Operation auszuführen, die ansonsten einem Aktivierungsbefehl (z. B. im Gegensatz zu dem LPDDR2-Standard zugewiesen ist). Wie oben genannt, kann die mindestens eine bestimmte Operation eine Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation aufweisen. In einer Implementierung kann ein Teil einer Speichervorrichtung angepasst sein zum Neuanordnen einer Reihenfolge von Adressbits einer internen Speicheradresse, und zum Inkorporieren der internen Speicheradresse in eine Zeilenadress-Schreiboperation, wie unten diskutiert.
-
1 ist ein Zeitdiagramm eines Lesezugriffs 100 für eine Speichervorrichtung gemäß einer Ausführungsform. Details eines solchen Lesezugriffs können zum Beispiel durch den LPDDR2-Standard wie oben genannt spezifiziert werden. In solch einem Fall kann ein Anfangsabschnitt eines Lesezugriffs einen Voraktivierungsbefehl, der durch einen Aktivierungsbefehl gefolgt wird, enthalten. Eine Dauer 110 kann eine Zeitspanne von dem Beginn des Voraktivierungsbefehls bis zu dem Beginn des Aktivierungsbefehls umfassen. Eine Dauer 120 kann eine Zeitspanne von dem Beginn des Aktivierungsbefehls bis zu dem Beginn eines nachfolgenden Lesebefehls wie unten erklärt, umfassen. Genauer kann der Voraktivierungsbefehl eine Zeilenadress-Schreiboperation 130 umfassen. Gleichzeitig kann der Aktivierungsbefehl eine Anzahl von Operationen umfassen, die zu einem Lesebefehl führen. Genauer kann der Aktivierungsbefehl eine Spaltenadress-Schreiboperation 132, eine Zeilen-Dekodier-Auswahl 134, eine Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation 136, eine Verstärkungsbewertung 138 und andere interne Speicheroperationen 140 umfassen. Interne Speicheroperationen 140 können zum Beispiel unteranderem einen Informationstransfer von Leseverstärkern zu Zeilendaten-Puffern wie unten beschrieben, umfassen. Ein Pfeil 150 repräsentiert eine Implementierung, wobei die Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation 136 von dem Aktivierungsbefehl in den Voraktivierungsbefehl, wie unten diskutiert, verschoben ist. Selbstverständlich ist solch ein Zeitablaufdiagramm nur ein Beispiel und der beanspruchte Gegenstand ist diesbezüglich nicht beschränkt.
-
2 ist ein Zeitdiagramm eines Lesezugriffs 200 für eine Speichervorrichtung gemäß einer anderen Ausführungsform. Details von Teilen solch eines Lesezugriffs können zum Beispiel durch den LPDDR2-Standard wie oben genannt, spezifiziert werden. Jedoch können wie unten detailliert beschrieben andere Teile eines solchen Lesezugriffs unterschiedlich sein von denen, die durch den LPDDR2-Standard spezifiziert sind. Wie für den Lesezugriff 100 kann ein Anfangsteil eines Lesezugriffs einen Voraktivierungsbefehl, der durch einen Aktivierungsbefehl gefolgt wird, umfassen. Eine Dauer 210 kann eine Zeitspanne von dem Beginn des Voraktivierungsbefehls bis zu dem Beginn des Aktivierungsbefehls umfassen. Eine Dauer 220 kann eine Zeitspanne von dem Beginn des Aktivierungsbefehls bis zu dem Beginn eines nachfolgenden Lesebefehls wie unten erklärt, umfassen. Genauer und im Gegensatz zu dem Lesezugriff 100 kann der Voraktivierungsbefehl eine Zeilenadress-Schreiboperation 230 und eine Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation 236 umfassen. Gleichzeitig kann der Aktivierungsbefehl eine reduzierte Anzahl (z. B. relativ zu dem Aktivierungsbefehl in dem Lesezugriff 100) von Operationen umfassen, die zu einem Lesebefehl führen. Genauer kann der Aktivierungsbefehl zum Beispiel eine Spaltenadress-Schreiboperation 232, eine Zeilen-Dekodier-Auswahl 234, eine Verstärkungsbewertung 238 und andere interne Speicheroperationen 240 umfassen. Obgleich die Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation 236 von dem Aktivierungsbefehl in den Voraktivierungsbefehl in dem Lesezugriff 200 verschoben wurde, kann eine Gesamtdauer des Voraktivierungsbefehls plus des Aktivierungsbefehls unverändert von dem Lesezugriff 100 verbleiben. Mit anderen Worten kann eine Dauer 225, welche die Summe der Zeitdauern 210 und 220 umfasst, unverändert von der Gesamtdauer 125 (1), welche die Summe der Zeitdauern 110 und 120 umfasst, verbleiben. Im Detail hat solch eine Verschiebung der Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation 236 die Dauer des Aktivierungsbefehls (Zeitdauer 220) verkürzt, während sie dementsprechend die Dauer des Voraktivierungsbefehls (Zeitdauer 210) verlängert hat. Wie unten im Detail diskutiert, kann eine verkürzte Aktivierungsbefehls-Zeitdauer 220 zu einer verkürzten Dauer für einen Lesezugriff führen, falls zum Beispiel die Anzahl der ausgeführten Aktivierungsbefehle größer ist als die Anzahl der ausgeführten Voraktivierungsbefehle.
-
3 ist ein Blockdiagramm eines Teils 300 einer Speichervorrichtung gemäß einer Ausführungsform. Zum Beispiel kann auf eine LPDDR2-nichtflüchtige Speichervorrichtung unter Verwendung einer Dreiphasen-Adressierung zugegriffen werden, die einen Voraktivierungsbefehl, einen Aktivierungsbefehl und einen Lesebefehl umfasst. Solch eine Dreiphasen-Adressierung wird zum Beispiel im Detail in dem LPDDR2-Standard, im Abschnitt 2.11.1 beschrieben. Während eines Voraktivierungsbefehls kann ein Teil einer Zeilenadresse an einem bestimmten Ort in einem Zeilenadress-Puffer 320, der durch einen Selektor 310 (z. B. ein Demultiplexer) ausgewählt wird, gespeichert werden. In einer Implementierung kann zum Beispiel solch ein Teil einer Zeilenadresse eine obere Zeilenadresse 305 umfassen, welche die signifikantesten Bits einer Zeilenadresse aufweist. Der Zeilenadress-Puffer 320 kann mehrere Zeilenadress-Puffer(row adress buffer, RAB)-Orte RAB 0 bis RAB 7 umfassen, obgleich der beanspruchte Gegenstand in dieser Weise nicht beschränkt ist. Während eines Aktivierungsbefehls kann ein Selektor 330 eine bestimmte RAB auswählen, um den oberen Teil 335 der Zeilenadresse abzurufen. Parallel dazu kann ein unterer Teil der Zeilenadresse an die Speichervorrichtung bereitgestellt werden und nachfolgend kombiniert werden mit dem oberen Teil der Zeilenadresse, um eine bestimmte Zeile eines Speicherfelds 340 auszuwählen. Genauer kann der obere Teil 335 der Zeilenadresse an einen Zeilendekoder 343 während des Voraktivierungsbefehls bereitgestellt werden, während die untere Zeilenadresse an einen Spaltendekoder 347 während des Aktivierungsbefehls bereitgestellt werden kann. Während des Aktivierungsbefehls kann auch die untere Zeilenadresse an den Zeilendekoder 343 bereitgestellt werden. Folglich kann eine bestimmte oder können mehrere bestimmte Speicherzellen in dem Speicherfeld 340, die mit der Zeilenadresse korrespondieren, unter Verwendung eines Leseverstärkers 350 gelesen werden. Zum Beispiel kann der Aktivierungsbefehl zu einem Transfer eines gelesenen Speicherinhalts über den Leseverstärker 350 in einen Zeilendaten-Puffer 370, der durch einen Selektor 360 ausgewählt wird, führen. Der Zeilendaten-Puffer 370 kann mehrere Zeilendaten-Puffer(row data buffer, RDB)-Orte RDB 0 bis RDB 7 umfassen, obgleich der beanspruchte Gegenstand in dieser Weise nicht beschränkt ist. In einem bestimmten Beispiel können einzelne RDB-Orte 32 Bytes umfassen. Ein{RAB, RDB}-Paar, das durch die Selektoren 310 und 380 ausgewählt wird, kann als ein Zeilen-Puffer (row buffer, RB) bezeichnet werden. Während eines Lesebefehls können die Selektoren 360 und 380 einen bestimmten RDB auswählen und die Spaltenadresse kann an die Speichervorrichtung bereitgestellt werden, um zum Beispiel eine Anfangsadresse eines Lese-Bursts zu wählen. Der Voraktivierungsbefehl kann optional sein, falls ein RAB bereits eine gewünschte Teil-Zeilenadresse enthält. In gleicher Weise kann der Aktivierungsbefehl optional sein, falls der gewünschte RDB bereits einen gewünschten Speicherinhalt enthält. Selbstverständlich sind solche Details eines Teils einer Speichervorrichtung nur Beispiele und der beanspruchte Gegenstand ist in dieser Weise nicht beschränkt.
-
4 zeigt Zeitablaufdiagramme, die Lesezugriffsoperationen für Speichervorrichtungen vergleichen, gemäß einer Ausführungsform. Solche Lesezugriffsoperationen können Sequenzen aus bestimmten Befehlen umfassen. Die Sequenzen 410, 420 von jeweiligen Lesezugriffsoperationen können zum Beispiel einen Voraktivierungsbefehl, einen Aktivierungsbefehl, einen Lesebefehl, einen zweiten Aktivierungsbefehl und einen zweiten Lesebefehl umfassen (die hier in einer sequenziellen Reihenfolge aufgelistet sind). In der 4 repräsentiert das Blocksymbol mit dem Buchstaben „P” einen Voraktivierungsbefehl, das Blocksymbol mit dem Buchstaben „A” repräsentiert einen Aktivierungsbefehl und das Blocksymbol mit dem Buchstaben „R” repräsentiert einen Lesebefehl. In einer Implementierung korrespondiert die Sequenz 410 mit der Ausführungsform, die in 1 dargestellt ist, wo hingegen die Sequenz 420 mit der Ausführungsform, die in 2 dargestellt ist, korrespondiert. Mit anderen Worten, enthält ein Voraktivierungsbefehl 430 in der Sequenz 410 keine Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation, die stattdessen in dem Aktivierungsbefehl 432 enthalten ist. Solch ein Fall kann zum Beispiel konform mit dem LPDDR2-Standard sein. Im Gegensatz dazu enthält ein Voraktivierungsbefehl 440 in der Sequenz 420 eine Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation und ist deswegen nicht in dem Aktivierungsbefehl 442 enthalten. Solch ein Fall ist zum Beispiel nichtkonform mit zumindest einigen Teilen des LPDDR2-Standards. Folglich kann eine Zeitspanne des Aktivierungsbefehls 442 kürzer sein als eine Zeitspanne des Aktivierungsbefehls 432. Als ein Ausgleich kann eine Zeitspanne des Voraktivierungsbefehls 440 länger sein als eine Zeitspanne des Voraktivierungsbefehls 430. Mit anderen Worten enthält die Lesesequenz 420 einen verkürzten Aktivierungsbefehl zu Lasten eines Vorhandenseins eines verlängerten Voraktivierungsbefehls. Falls jedoch ein Lesezugriff eine Anzahl von ausgeführten Aktivierungsbefehlen enthält, die größer sind als eine Anzahl von ausgeführten Voraktivierungsbefehlen, kann dann solch ein Lesezugriff einen Vorteil einer verkürzten Gesamtzeitdauer realisieren. Genauer enthält die Sequenz 420 einen Voraktivierungsbefehl 440 und zwei Aktivierungsbefehle 442 und 446, was zu einer Zeitreduzierung 450 verglichen mit der Sequenz 410 führt. Hier enthält die Sequenz 110 auch einen Voraktivierungsbefehl 430 und zwei Aktivierungsbefehle 432 und 436. Da aber relativ lange Aktivierungsbefehle in der Sequenz 410 zweimal auftreten, kann die Sequenz 410 länger als die Sequenz 420, welche nur einen relativ langen Voraktivierungsbefehl aufweist, sein. Eine Zeitdauer 425, welche die Summe der Zeitdauern 430 und 432 in der Sequenz 410 umfasst, kann gleich bleiben in der Sequenz 420, wobei die Zeitdauer 425 die Summe der Zeitdauern 440 und 442 umfasst. Mit anderen Worten kann eine Gesamtzeitdauer des Voraktivierungsbefehls plus des Aktivierungsbefehls unverändert von dem Fall der Sequenz 410 bleiben, obgleich eine Bitleitungs-Voraufladungs- und Spaltenauswahl-Operation sich von dem Aktivierungsbefehl zu dem Voraktivierungsbefehl in der Sequenz 420 bewegt haben kann.
-
Wie gerade beschrieben, können Lesezugriffsoperationen eine Anzahl von Aktivierungsbefehlen umfassen, die größer sind als eine Anzahl von Voraktivierungsbefehlen, wie zum Beispiel in der Sequenz 410 und 420. Mit anderen Worten braucht ein Voraktivierungsbefehl nicht für jeden Speicherzugriff Solches kann zum Beispiel der Fall sein, falls ein oberer Teil einer Zeilenadresse identisch ist für mehrere Lesezugriffsoperationen. Falls zum Beispiel wie oben diskutiert mehrere Lesezugriffsoperationen Adressen betreffen, um auf einen bestimmten Teil eines Speicherfeldes zu zugreifen (z. B. ein Zugriff ist lokal auf eine bestimmte Gruppe von Zeilen), dann kann ein einzelner Voraktivierungsbefehl auf alle solche Lesezugriffsoperationen angewendet werden. Dementsprechend kann eine Dauer eines Lesezugriffs verkürzt werden durch Verkürzen der Zeit, die erforderlich ist, um einen oder mehrere Aktivierungsbefehle, die in dem Lesezugriff enthalten sind, auszuführen. Solches kann der Fall sein, selbst wenn die Zeit, die erforderlich ist, um einen Voraktivierungsbefehl auszuführen, sich zum Beispiel in Antwort auf den verkürzten Aktivierungsbefehl erhöht. Obgleich es in der 4 nicht dargestellt ist, kann eine beliebige Zahl von Lesebefehlen, Aktivierungsbefehlen und Voraktivierungsbefehlen nachfolgend zu den Lesebefehlen 438 und 448 in den Lesesequenzen 410 bzw. 420 auftreten. Selbstverständlich sind solche Details von Lesezugriffsoperationen nur Beispiele und der beanspruchte Gegenstand ist diesbezüglich nicht beschränkt.
-
5 ist ein Blockdiagramm eines Teils 500 einer Speichervorrichtung gemäß einer anderen Ausführungsform. Ähnlich zu denn in 3 gezeigten Fall, kann zum Beispiel die Speichervorrichtung eine LPDDR2-nchtflüchtige Speichervorrichtung aufweisen, auf welche unter Verwendung einer Dreiphasen-Adressierung zugegriffen werden kann, die einen Voraktivierungsbefehl, einen Aktivierungsbefehl und einen Lesebefehl umfasst. Jedoch im Gegensatz zu dem in 3 gezeigten Fall, kann während eines Voraktivierungsbefehls eine Zeilenadresse an einem bestimmten Ort eines Zeilenadress-Puffers 520, der durch einen Selektor 510 (z. B. ein Multiplexer) ausgewählt wird, gespeichert werden. In einer bestimmten Implementierung kann zum Beispiel solch ein Ort einer Zeilenadresse eine obere Zeilenadresse 505, welche die signifikantesten Bits der Zeilenadresse aufweisen kann, umfassen. Der Zeilenadress-Puffer 520 kann mehrere Zeilenadress-Puffer(row adress buffer, RAB)-Orte RAB 0 bis RAB 7 umfassen, obgleich der beanspruchte Gegenstand in dieser Weise nicht beschränkt ist. Während eines Aktivierungsbefehls kann ein Selektor 530 eine bestimmte RAB auswählen, um den oberen Teil 535 der Zeilenadresse abzurufen. Während, im Gegensatz zu dem in 3 gezeigten Fall, der untere Teil der Zeilenadresse an die Speichervorrichtung bereitgestellt werden kann und kombiniert werden kann mit dem oberen Teil der Zeilenadresse, um eine bestimmte Zeile von einem Speicherfeld 540 auszuwählen. Genauer kann der obere Teil 535 der Zeilenadresse an einen Spaltendekoder 547 während des Voraktivierungsbefehls bereitgestellt werden, während die untere Zeilenadresse an einen Zeilendekoder 543 während des Aktivierungsbefehls bereitgestellt werden kann. Während des Aktivierungsbefehls kann auch die obere Zeilenadresse an den Zeilendekoder 543 bereitgestellt werden. Folglich kann eine bestimmte oder können mehrere bestimmte Speicherzellen in dem. Speicherfeld 540, die mit der Zeilenadresse korrespondieren, unter Verwendung eines Leseverstärkers 550 gelesen werden. Zum Beispiel kann der Aktivierungsbefehl zu einem Transfer eines gelesenen Speicherinhalts über den Leseverstärker 550 in einen Zeilendaten-Puffer 570, der durch einen Selektor 560 ausgewählt wird, führen. Ähnlich zu dem Fall für das Speichervorrichtungsteil 300 kann der Zeilendaten-Puffer 570 mehrere Zeilendaten-Puffer(row data buffer, RDB)-Teile RDB 0 bis RDB 7 umfassen, obgleich der beanspruchte Gegenstand in dieser Weise nicht beschränkt ist. In einem Beispiel können einzelne RDB-Teile 32 Bytes umfassen. Ein{RAB, RDB}-Paar, das durch die Selektoren 510 und 580 ausgewählt wird, kann als ein Zeilen-Puffer (row buffer, RB) bezeichnet werden. Während eines Lesebefehls können die Selektoren 560 und 580 einen bestimmten RDB auswählen und die Spaltenadresse kann an die Speichervorrichtung bereitgestellt werden, um zum Beispiel eine Anfangsadresse eines Lese-Bursts zu wählen. Ähnlich zu dem Fall für das Speichervorrichtungsteil 300 kann der Voraktivierungsbefehl optional sein, falls ein RAB bereits eine gewünschte Teil-Zeilenadresse enthält. Der Aktivierungsbefehl kann optional sein, falls ein RDB bereits einen gewünschten Speicherinhalt enthält. In einer Implementierung kann zum Beispiel eine Zeitspanne zwischen dem Voraktivierungsbefehl und dem Aktivierungsbefehl einen Minimalwert aufweisen, der gleich drei Taktzyklen (z. B. ungefähr 7,5 ns für eine nichtflüchtige Speichervorrichtung DDR800) ist. Eine Zeitspanne zwischen dem Voraktivierungsbefehl und dem Aktivierungsbefehl kann zum Beispiel ungefähr 80 ns für eine nichtflüchtige Speichervorrichtung DDR800 sein, obgleich der beanspruchte Gegenstand in dieser Weise nicht beschränkt ist.
-
6 ist ein Zeitablaufdiagramm eines Lesezugriffs 600 für eine Speichervorrichtung gemäß einer bestimmten Implementierung von oben beschriebenen Ausführungsformen. Solch ein Lesezugriff kann zum Beispiel ähnlich zu dem in der 2 dargestellten Lesezugriff 200 sein. Zum Zeitpunkt 610 kann eine Speichersteuerung (nicht dargestellt) einen Voraktivierungsbefehl 620 initiieren, um den Lesezugriff 600 zu beginnen. Während solch einer Voraktivierungsbefehlsperiode (z. B. vom Zeitpunkt 610 bis zum Zeitpunkt 640) können Operationen predec COL ADD, COL-Redundanzberechnungen und/oder Bitleitungs-Voraufladungen ausgeführt werden. Die predec COL ADD-Operation kann zum Beispiel ein Konvertieren von binären Code zu physikalischen Code involvieren. Im Gegensatz dazu können solche Operationen während eines Aktivierungsbefehls 630 ausgeführt werden gemäß dem JEDEC-Standard. Selbstverständlich sind solche Details eines Lesezugriffs nur Beispiele und der beanspruchte Gegenstand ist diesbezüglich nicht beschränkt.
-
7 ist ein schematisches Diagramm, welches eine beispielhafte Ausführungsform eines Rechnersystems 700 zeigt, das eine Speichervorrichtung 710 beinhaltet. Eine Rechnervorrichtung 704 kann jegliche Vorrichtung, jegliches Gerät oder jegliche Maschine sein, die konfiguriert werden kann, um die Speichervorrichtung 710 zu verwalten. Die Speichervorrichtung 710 kann eine Speichersteuerung 715 und einen Speicher 722 enthalten. Als Beispiel, aber nicht beschränkend, kann die Rechnervorrichtung 704 enthalten: eine oder mehrere Rechenvorrichtungen und/oder Plattformen, wie, zum Beispiel, einen Desktop-Computer, einen Laptopcomputer, eine Arbeitsstation, eine Servervorrichtung oder ähnliches; eine oder mehrere persönliche Rechen- oder Kommunikationsvorrichtungen oder Geräte, wie zum Beispiel einen persönlichen digitalen Assistenten, eine mobile Kommunikationsvorrichtung oder ähnliches; ein Rechnersystem und/oder assoziierte Dienste-Anbieterfähigkeit, wie zum Beispiel eine Datenbank oder einen Datenspeicherdienste-Anbieter/System; und/oder jegliche Kombination davon.
-
In einer Ausführungsform kann die Rechnervorrichtung 704 eine oder mehrere Verarbeitungseinheiten 720 enthalten, die operativ gekoppelt ist mit dem Speicher 722 über einen Bus 740 und einen Host oder eine Speichersteuerung 715. Die Verarbeitungseinheit 720 ist repräsentativ für eine oder mehrere Schaltungen, die konfigurierbar sind, um zumindest einen Teil einer Datenverarbeitungsprozedur oder eines Datenverarbeitungsprozesses auszuführen. Als ein Beispiel, aber nicht beschränkend, kann die Verarbeitungseinheit 720 einen oder mehrere Prozessoren, Controller, Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltungen, digitale Signalprozessoren, programmierbare Logikvorrichtungen, feldprogrammierbare Gatterarrays und dergleichen, oder jegliche Kombination davon, aufweisen. Die Verarbeitungseinheit 720 kann mit der Speichersteuerung 715 kommunizieren, um speicher-bezogene Operationen wie zum Beispiel Lesen, Schreiben und/oder Löschen zu verarbeiten. Die Verarbeitungseinheit 720 kann ein Betriebssystem enthalten, das angepasst ist, um mit der Speichersteuereinheit 715 zu kommunizieren. Ein solches Betriebssystem kann zum Beispiel Befehle erzeugen, die an die Speichersteuerung 715 über den Bus 740 zu senden sind. Solche Befehle können zum Beispiel Lese- und/oder Schreibbefehle umfassen.
-
Der Speicher 722 ist repräsentativ für jeglichen Datenspeichermechanismus. Der Speicher 722 kann zum Beispiel einen primären Speicher 724 und/oder einen sekundären Speicher 726 enthalten. In einer bestimmten Ausführungsform kann der Speicher 722 einen Hauptspeicher enthalten, der zumindest wie oben beschrieben einen Teil eines persistenten Speichers enthält. Der Speicher 722 kann auch Cachespeicher, der in gleicher Weise zumindest teilweise persistenten Speicher enthalten kann, aufweisen. Genauer kann der primäre Speicher 724 zum Beispiel einen Speicher mit wahlfreiem Zugriff, einen Nur-Lesespeicher, usw. aufweisen. Während in diesem Beispiel es als von der Verarbeitungseinheit 720 getrennt veranschaulicht ist, versteht es sich, dass der Gesamte oder ein Teil des primären Speichers 724 innerhalb oder in anderer Weise neben der Verarbeitungseinheit 720 angeordnet, oder mit der Verarbeitungseinheit 720 gekoppelt bereitgestellt sein kann.
-
Gemäß einer Ausführungsform kann ein oder können mehrere Teile des Speichers 722 Signale speichern, die für Daten und/oder Information repräsentativ sind wie durch einen bestimmten Zustand des Speichers 722 ausgedrückt. Zum Beispiel kann ein elektronisches Signal, das für Daten und/oder Information repräsentativ ist, in einer Teil des Speichers 722 ”gespeichert” werden durch Einwirken oder Ändern des Zustands solcher Teile des Speichers 722, um Daten und/oder Information als Binärinformation (z. B., Einsen und Nullen) zu repräsentieren. Als solches stellt in einer bestimmten Implementierung solch eine Zustandsänderung des Teils des Speichers, um ein Signal, das für Daten und/oder Information repräsentativ ist, zu speichern, eine Transformation des Speichers 722 zu einem unterschiedlichen Zustand oder einer anderen Sache dar.
-
Der sekundäre Speicher 726 kann, zum Beispiel, denselben oder einen ähnlichen Typ von Speicher wie der primäre Speicher aufweisen und/oder eine oder mehrere Datenspeicher-Vorrichtungen oder – Systeme, wie, zum Beispiel, ein Plattenlaufwerk, ein optisches Laufwerk, ein Bandlaufwerk, ein Festkörper-Speicherlaufwerk und so weiter. In bestimmten Implementierungen kann der zweite Speicher 726 operativ empfänglich sein, oder auf andere Weise konfigurierbar sein zum Koppeln mit einem Computer-lesbaren Medium 728. Das Computerlesbare Medium 728 kann, zum Beispiel, jegliches Medium beinhalten, welches Daten, Code und/oder Anweisungen für eine oder mehrere der Vorrichtungen in dem System 700 tragen und/oder verfügbar machen kann.
-
In einer Ausführungsform kann das System 700 eine Speichervorrichtung enthalten, die ein Feld aus Speicherzellen enthält, wobei die Speichervorrichtung weiterhin eine Speichersteuerung 715 enthält zum Ausführen eines Lesezugriffs zum Zugreifen auf die Speicherzellen und zum Initiieren eines Voraktivierungsbefehls, um eine Zeilenadress-Schreiboperation und zumindest eine Operation, die einem Aktivierungsbefehl zugeordnet ist, zu umfassen. Das System 700 kann weiterhin die Verarbeitungseinheit 720 enthalten zum Bedienen einer oder mehrerer Anwendungen und zum Initiieren eines Lesebefehls an die Speichersteuerung 715, um Zugriff auf die Speicherzellen in der Speichervorrichtung bereitzustellen.
-
Die Rechner-Vorrichtung 704 kann zum Beispiel eine Eingabe/Ausgabe 732 enthalten. Die Eingabe/Ausgabe 732 ist repräsentativ für eine oder mehrere Vorrichtungen oder Merkmale, die konfigurierbar sein können, menschliche und/oder maschinelle Eingaben zu akzeptieren oder auf andere Weise einzuführen, und/oder eine oder mehrere Vorrichtungen oder Merkmale, die konfigurierbar sein können, Ausgaben für Menschen und/oder Maschinen abzugeben oder auf andere Weise bereitzustellen. Als ein Beispiel, aber nicht beschränkend, kann die Eingabe/Ausgabe-Vorrichtung 732 eine operativ konfigurierte Anzeige, Lautsprecher, Tastatur, Maus, Trackball, Berührungsbildschirm, Datenanschluss usw. enthalten.
-
Während hierin gezeigt und beschrieben wurde, was derzeit als beispielhafte Ausführungsformen betrachtet werden, wird es von den Fachleuten verstanden werden, dass verschiedene andere Modifikationen gemacht werden können und Äquivalente ersetzt werden können, ohne vom Gegenstand wie beansprucht abzuweichen. Zusätzlich können viele Modifikationen gemacht werden, um eine bestimmte Situation an die Lehren des beanspruchten Gegenstandes anzupassen, ohne vom hierin beschriebenen zentralen Konzept abzuweichen. Daher ist es beabsichtigt, dass der beanspruchte Gegenstand nicht beschränkt wird auf die offenbarten bestimmten Ausführungsformen, sondern dass solch ein beanspruchter Gegenstand auch alle Ausführungsformen umfassen soll, die innerhalb des Bereichs der beigefügten Ansprüche fallen und den Äquivalenten davon.