-
TECHNISCHES GEBIET
-
Diese Anmeldung ist allgemein auf Speichersysteme gerichtet, und insbesondere auf eine Steigerung der Leistungsfähigkeit von Speichersystemen durch Reduzieren der Zugriffszeit, wenn zwischen verschiedenen Speicherchips eines Speichersystems umgeschaltet wird.
-
HINTERGRUND
-
Speichersysteme beinhalten oft mehrere Speicherchips, die mit einer einzigen Speichersteuereinrichtung verbunden sind und von dieser gesteuert werden. Einige Speichersysteme werden als Speicherpakete bezeichnet, die Speicherchips mit mehreren Speicherbänken beinhalten, wobei jede der Speicherbänke eines Speicherchips einen gemeinsamen Eingabe-/Ausgabe-Bus gemeinsam nutzt. Eine einzige Speichersteuereinrichtung kann dazu verwendet werden, die Speicheroperationen der mehreren Speicherchips eines Speicherpakets zu steuern.
-
Verbesserungen in der Verarbeitungsleistung und Energieeffizienz von Speichersystemen werden durch die Entwicklung verschiedener Computeranwendungen vorangetrieben. Speichersysteme sind der Schlüssel zu neuen datenintensiven Anwendungen wie Virtual Reality (VR) und Augmented Reality (AR), Cloud Computing und künstlicher Intelligenz. Diese und andere Anwendungen verlangen nach Verbesserungen beim Speicherzugriff, die eine höhere Bandbreite, höhere Geschwindigkeit und natürlich geringere Leistungsaufnahme beinhalten.
-
ZUSAMMENFASSUNG
-
In einem Aspekt stellt die Erfindung ein Verfahren zum Betreiben eines Speichers mit mehreren Speicherchips bereit. In einem Ausführungsbeispiel beinhaltet das Verfahren: (1) Verwenden eines differenziellen Schreibtaktsignals als zwei unsymmetrische Taktsignale, die ein erstes Schreibtaktsignal und ein zweites Schreibtaktsignal sind, (2) Steuern von Lese- und Schreiboperationen eines ersten Speicherchips des Speichers unter Verwendung des ersten Schreibtaktsignals und (3) Steuern, unabhängig von der Steuerung des ersten Speicherchips, von Lese- und Schreiboperationen eines zweiten Speicherchips des Speichers unter Verwendung des zweiten Schreibtaktsignals.
-
In einem weiteren Aspekt wird eine integrierte Schaltung offenbart. In einem Ausführungsbeispiel beinhaltet die integrierte Schaltung: (1) einen dynamischen Direktzugriffsspeicher mit doppelter Datenrate (DDR), der eine erste Speicherbank und eine zweite Speicherbank beinhaltet, die sich einen Bus für Befehle teilen und andere Busse zum Übertragen von Daten teilen, und (2) eine Speichersteuereinrichtung, die dazu konfiguriert ist, Lese- und Schreibvorgänge der ersten Speicherbank und der zweiten Speicherbank unter Verwendung eines eigentlichen Signals und eines komplementären Signals eines differenziellen Schreibtaktsignals als unsymmetrische Taktsignale unabhängig voneinander zu steuern.
-
KURZBESCHREIBUNG
-
Nachstehend wird auf die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen Bezug genommen, in welchen:
- 1 ein Blockdiagramm eines Beispiels eines Speichersystems veranschaulicht, das dazu konfiguriert ist, in Übereinstimmung mit den Prinzipien der Erfindung zu arbeiten;
- 2 Zeitdiagramme veranschaulicht, die den Bussen des Speichersystems von 1 entsprechen, wenn zwischen einem Zugreifen auf die verschiedenen Speicherchips des Speichersystems umgeschaltet wird;
- 3 ein Ablaufdiagramm eines beispielhaften Verfahrens 300 zum Betreiben eines Speichersystems veranschaulicht, das in Übereinstimmung mit den Prinzipien der Erfindung durchgeführt wird; und
- 4 ein Blockdiagramm eines Beispiels einer integrierten Schaltung (IC) wie hierin offenbart veranschaulicht, die auch dazu konfiguriert sein kann, einen differenziellen Schreibtakt (WCK) als unsymmetrische Schreibtaktsignale zu verwenden.
-
DETAILLIERTE BESCHREIBUNG
-
Neben Verbesserungen in Bandbreite, Geschwindigkeit und Leistungsaufnahme sind auch Speichersysteme mit geringerem Platzbedarf erwünscht. Eine Möglichkeit, einen geringeren Platzbedarf zu erreichen, besteht darin, die benötigte Anzahl von Bussen oder Leiterbahnen zu reduzieren und die Anzahl erforderlicher Pins zu minimieren. Eine gemeinsame Nutzung von Bussen und Pins kann jedoch die Zugriffsgeschwindigkeit auf die verschiedenen Speicherchips verringern, wenn von einem Speicherchip zu einem anderen Speicherchip umgeschaltet bzw. gewechselt wird. Dies kann daran liegen, dass jeder der Speicherchips einen separaten Takteingang hat, der vor dem Lesen aus dem oder Schreiben auf den Speicherchip synchronisiert werden muss.
-
Beispielsweise ist Direktzugriffsspeicher bzw. Dynamic Random Access Memory (DRAM) eine Speicherart, die in den verschiedenen Speichersystemen der vorstehend genannten Anwendungen verwendet wird. Die DRAM-Speichersysteme können Speicherbänke beinhalten und können eine der verschiedenen Generationen von Double Data Rate (DDR) DRAMs sein, einschließlich der Niedrigenergie- bzw. Low Power DDR (LPDDR) DRAMs. Eine Speicherbank ist ein Satz von DRAM-Chips, die mit derselben Speichersteuereinrichtung verbunden sind und von dieser gesteuert werden, und die Datenpins gemeinsam nutzen.
-
Ein Schnittstellenprotokoll wird in der Regel für die Speicherbänke verwendet, um das Umschalten zwischen Lese- und Schreiboperationen auf den verschiedenen DRAM-Chips zu verwalten. Eine Synchronisationsoperation ist ein Beispiel für ein Schnittstellenprotokoll, das ein Senden einer Schreibtakt-Postambel an eine erste DRAM-Bank am Ende seines Schreibtaktsignals und dann ein Senden einer Schreibtakt-Präambel an eine zweite DRAM-Bank, um das Schreibtaktsignal zu aktivieren, beinhaltet.
-
Eine Alternative zum Senden der Präambel nach Beendigung der Postambel ist das gleichzeitige Durchführen einer Synchronisationsoperation mit beiden DRAM-Bänken. Dies erfordert jedoch, dass jede DRAM-Bank während eines ungenutzten Zustands ihren Empfänger und ihre interne Taktung für die Dauer des Schreibtaktsignals aktiv hält, welches zu einem erhöhten Stromverbrauch für die Speicherbank führt. Gleichwohl erhöht ein Nichtüberlappen der Präambel des Schreibtaktes und der Postambel für jede DRAM-Bank die Bankumschlagszeit und reduziert die Systemleistung oder erhöht die Leistungsaufnahme des Systems.
-
Demgemäß stellt die Erfindung ein Verfahren zum Zugriff auf Speicherchips eines Speichersystems, wie beispielsweise DRAM-Bänke eines Speicherpakets, bereit, das die Zugriffsumschaltzeit, die beim Umschalten zwischen den verschiedenen Speicherchips benötigt wird, verkürzt. Die Zugriffsumschaltzeit ist die Anzahl von Zyklen zwischen einem Lese- oder Schreib-Datenburst für einen ersten Speicherchip und einem Lese- oder Schreib-Datenburst für einen zweiten Speicherchip. Für Speicherbänke ist die Zugriffsumschaltzeit die Bankumschlagszeit bzw. Rank Turnaround Time, die in der Branche auch als Bank-zu-Bank-Umschlagszeit bzw. Rank-to-Rank Turnaround Time bezeichnet wird. Neben der Reduzierung der Zugriffsumschaltzeit verbrauchen das offenbarte Verfahren und System auch weniger Energie als es der Fall wäre, wenn der Empfänger und die Taktung für das Schreibtaktsignal kontinuierlich aktiv gehalten würden. Stattdessen kann das Schreibtaktsignal für einen Speicherchip nur dann aktiviert werden, wenn eine Lese- oder Schreiboperation auf dem Speicherchip durchgeführt werden wird. Dadurch kann die erforderliche Leistung bzw. der erforderliche Stromverbrauch für das Speichersystem reduziert werden.
-
Das offenbarte Verfahren nutzt vorteilhaft das eigentliche Signal bzw. Nutzsignal und das dazu komplementäre Signal bzw. Komplement eines differenziellen Schreibtaktsignals als unsymmetrische Taktsignale, die jeweils unabhängig voneinander von verschiedenen Speicherchips verwendet werden. Betrachtet man eine Speicherbank mit zwei DRAM-Bänken, ist eine DRAM-Bank dazu konfiguriert, das Nutzschreibtaktsignal zu verwenden, und ist die andere DRAM-Bank dazu konfiguriert, das komplementäre Schreibtaktsignal eines differenziellen Signals in einer unsymmetrischen bzw. Single-Ended-Operation zu verwenden. Die Verwendung des differenziellen Schreibtaktsignals als unsymmetrische Taktsignale ermöglicht die Überlappung von Schreibtaktsignaloperationen über mehrere Bänke hinweg. Beispielsweise kann ein Synchronisationsbefehl, oder Sync-Befehl, einer Synchronisationsoperation an eine DRAM-Bank gesendet werden, während eine Speicheroperation, d.h. eine Lese- oder Schreiboperation, an einer anderen DRAM-Bank ausgeführt wird.
-
Die Erfindung stellt eine Verbesserung des Zugriffs auf Speicher bereit, der Speicherchip-zu-Speicherchip-Wechsel (z.B. Bank-zu-Bank-Wechsel) optimiert. Die offenbarten Konfigurationen und Betriebsabläufe eines Speichersystems stellen Verbesserungen durch eine effizientere Nutzung von Speicherbussen bereit. Weitere Verbesserungen ergeben sich auch durch eine Leistungssteigerung (Speicherzugriffe) pro verbrauchter Leistung (Watt).
-
Nun auf die Figuren Bezug nehmend, veranschaulicht 1 ein Blockdiagramm eines Beispiels einer integrierten Schaltung (IC) 100, die in Übereinstimmung mit den Prinzipien der Erfindung aufgebaut ist. Die IC 100 kann in verschiedenen Geräten eingesetzt werden, wie beispielsweise in mobilen Computergeräten. Die IC 100 beinhaltet eine Speichersteuereinrichtung 110 und ein Speichersystem 150 mit einem ersten Speicherchip 160 und einem zweiten Speicherchip 170. Die Speichersteuereinrichtung 110 ist dazu konfiguriert, Daten aus dem Speichersystem 150 zur Verarbeitung abzurufen und Daten an das Speichersystem 150 zur Speicherung zu senden. Die Speichersteuereinrichtung 110 beinhaltet einen Prozessor 111, einen Taktgenerator 112, eine Schreibtakt-Steuereinrichtung 114 und eine Datensteuereinrichtung 116.
-
Die Speichersteuereinrichtung 110 kann ein System on Chip (SOC) sein, wie beispielsweise ein Tegra®-Prozessor der NVIDIA Corporation aus Santa Clara, Kalifornien. Die Speichersteuereinrichtung 110 kann auch eine andere Art einer elektronischen Komponente oder integrierten Schaltung sein, wie beispielsweise andere Komponenten oder Schaltungen, denen eine Zentraleinheit (CPU) fehlt, die aber Speicherschnittstellen aufweisen. Einige Beispiele beinhalten eine integrierte Schaltung wie eine anwendungsspezifische integrierte Schaltung (ASIC) und ein feldprogrammierbares Gate-Array (FPGA).
-
Der Prozessor 111 steuert den Betriebsablauf der Speichersteuereinrichtung 110 und verarbeitet die in dem Speichersystem 150 gespeicherten Daten. Die Speichersteuereinrichtung 110 kann mehrere Prozessoren, wie beispielsweise eine CPU und eine Grafikverarbeitungseinheit (GPU), beinhalten. Der Taktgenerator 112 stellt ein Betriebstaktsignal (CK) an einem CK-Pin 120 zum Betreiben des Speichersystems 150 und zum Steuern des ersten und des zweiten Speicherchips 160, 170 bereit. Das Betriebstaktsignal wird für alle Adress-, Befehls- und Steuer-Eingangssignale für das Speichersystem 150 verwendet. Zum Beispiel werden Befehls- und Adress-(CA)-Signale für das Speichersystem 150 auf das Betriebstaktsignal bezogen. Das Betriebstaktsignal kann ein differenzielles Taktsignal sein.
-
Die Schreibtakt-Steuereinrichtung 114 steuert das Schreibtaktsignal zum Lesen aus den und Schreiben in die verschiedenen Speicherchips, den ersten Speicherchip 160 und den zweiten Speicherchip 170. Ein eigentliches Signal bzw. Nutzsignal (Wahr bzw. True; WCKT) und ein Komplement (WCKC) des Schreibtaktsignals werden an einem WCKT-Pin 130 bzw. WCKC-Pin 135 bereitgestellt. Das Schreibtaktsignal kann ein höherfrequenter Takt als das Betriebstaktsignal sein und wird zum Treiben von Daten verwendet.
-
Die Datensteuereinrichtung 116 sendet Daten an und empfängt Daten von dem ersten Speicherchip 160 und dem zweiten Speicherchip 170 über Datenbusse, die mit 0 bis n Datenpins verbunden sind, repräsentiert durch Datenpins 140 und 145 in 1. Die Anzahl von Datenpins kann z.B. abhängig von der Architektur der Speichersteuereinrichtung 110 oder einer anderen Art von Speichersteuereinrichtung variieren. In einigen Beispielen ist n gleich acht. Ein Datenmaskeninversions-(DMI)-Signal kann ebenfalls mit den Daten übertragen werden. Ein DMI-Pin kann mit den Datenpins verwendet werden.
-
Die Speichersteuereinrichtung 110 kann zusätzliche Pins beinhalten, die typischerweise zur Kommunikation mit einem Speichersystem vorgesehen sind, wie z.B. Chip-Auswahlpins, die dazu verwendet werden, jeden Speicherchip zu informieren, wenn er Eingaben von einer Signalleitung übernehmen soll, und einen Befehlsschnittstellen (CA)-Pin zur Übertragung einer Adresse, von Erfassungsbefehlen, von Schreibbefehlen usw. Die Speichersteuereinrichtung 110 kann auch zusätzliche Komponenten beinhalten, wie sie typischerweise in einem SOC enthalten sind. Zu den zusätzlichen Komponenten können eine Stromversorgung, Kommunikationsbusse, Speicher usw. gehören.
-
Wie vorstehend erwähnt wurde, beinhaltet das Speichersystem 150 den ersten Speicherchip 160 und den zweiten Speicherchip 170. In einigen Beispielen können sich der erste Speicherchip 160 und der zweite Speicherchip 170 in verschiedenen Speichergehäusen befinden. Zusätzlich kann die Speichersteuereinrichtung 110 kommunikativ mit mehreren Speicherpaketen gekoppelt sein. Das Speichersystem 150 kann ein Speicherpaket sein, wie beispielsweise ein DRAM-Speicherpaket, wobei der erste und zweite Speicherchip 160, 170 DRAM-Bänke sein können. In verschiedenen Ausführungsbeispielen kann das Speichersystem 150 ein DDR oder ein LPDDR sein, wie beispielsweise ein LPDDR der fünften Generation.
-
Der erste Speicherchip 160 und der zweite Speicherchip 170 beinhalten Datenpins, die mit den gleichen Datenbussen von der Speichersteuereinrichtung 110 gekoppelt sind. Ein Datenpin 162 und ein Datenpin 172 sind dargestellt, um die Datenpins für jeden der Speicherchips 160, 170 zu repräsentieren. Der erste Speicherchip 160 und der zweite Speicherchip 170 weisen ebenfalls Pins auf, die ein Schreibtaktsignal und das Betriebstaktsignal empfangen. Der erste Speicherchip 160 weist einen WCKT-Pin 164 auf, der das Schreibtakt-Nutzsignal (WCKT) von der Speichersteuereinrichtung 110 empfängt, und der zweite Speicherchip 170 weist einen WCKC-Pin 174 auf, der das Schreibtakt-Komplementsignal (WCKC) von der Speichersteuereinrichtung 110 empfängt. In einem anderen Ausführungsbeispiel können die Speicherchips 160, 170 auch derart arbeiten, dass sie das Schreibtaktsignal als ein differenzielles Taktsignal empfangen. Somit können die Speicherchips 160, 170 je nach Konfiguration unter Verwendung eines Schreibtaktsignals als differenzielles Signal oder als zwei unsymmetrische Signale betrieben werden. Die Speicherchips 160, 170 können Logikschaltkreise beinhalten, die bestimmen, wie die Schreibtaktsignale zu verwenden sind, wenn sie als ein differenzielles Paar empfangen werden. 4 stellt ein Beispiel für ein solches Ausführungsbeispiel bereit. Der erste Speicherchip 160 und der zweite Speicherchip 170 beinhalten CK-Pins 166, 176 zum Empfangen des Betriebstaktsignals von der Speichersteuereinrichtung 110.
-
Durch Verwenden des differenziellen Schreibtaktsignals als unsymmetrische Signale wird die Zugriffsumschaltzeit reduziert, wenn zwischen Speicheroperationen auf den beiden verschiedenen Speicherchips 160, 170 umgeschaltet wird. Zum Beispiel verhindert das Verwenden der unsymmetrischen Schreibtaktsignale Blasenzyklen, die aus Synchronisierungsvorgängen resultieren. Ein Blasenzyklus ist ein DQ-Bus (Datenbus)-Zyklus, in welchem keine Daten in den oder aus dem Speicher transferiert werden. Stattdessen kann die Zugriffszeit auf eine Verzögerung begrenzt werden, die den Prozesseckschwankungen entspricht. Mit unsymmetrischen Signalen können sich Schreibtaktoperationen über die verschiedenen Speicherchips 160, 170 für eine geringere Zugriffszeit überlappen.
-
Das Verwenden des Schreibtaktsignals als unsymmetrische Signale kann darüber hinaus den Bedarf an Nivellierung reduzieren. Wenn beispielsweise die Speicherchips 160, 170 aufgrund von Verzerrungsproblemen des Schreibtaktsignals separat getrimmt werden müssen, funktioniert die gleiche Trimmeinstellung nicht für beide Speicherchips 160, 170, und muss die interne Trimmeinstellung vor dem Senden des Schreibtaktsignals an die Speicherchips 160, 170 geändert werden, um sicherzustellen, dass die Zeitvorgaben erfüllt werden. Da jedoch das Schreibtaktsignal als ein unsymmetrisches Signal verwendet wird, kann die Trimmung individuell auf einen bestimmten der Speicherchips 160, 170 zugeschnitten werden, und ist eine Nivellierung zwischen den Speicherchips 160, 170 nicht erforderlich.
-
2 veranschaulicht Zeitdiagramme 200, die den Bussen zwischen der Speichersteuereinrichtung 110 und dem Speichersystem 100 entsprechen, wenn das Speichersystem 150 mit unsymmetrischen Schreibtaktsignalen betrieben wird. Die Wellenformen von 2 veranschaulichen den Vorteil des Verwendens des Schreibtaktsignals als unsymmetrisches Signal bei dem Umschalten von einem Zugriff auf den Speicherchip 160 zu einem Zugriff auf den Speicherchip 170. Einige Befehlssignale, einschließlich von Chip Select (CS)-Befehlen und Adressbefehlen, wie z.B. ColumnAddressStrobe-(CAS)-Befehle, sind in 2 nicht durch Wellenformen dargestellt, werden aber verwendet, wenn umgeschaltet wird, und werden nachstehend erwähnt.
-
Vor dem Zugreifen auf einen Speicherchip wird ein Aktivierungsschritt durchgeführt, der ein Senden eines Signals mit der Zeilenadresse über den Befehlsbus beinhaltet. Ein CAS-Befehl wird dann auf den Befehlsbus gesendet, der die Präambelausrichtung für das Schreibtaktsignal startet und eine Spaltenadresse mit entweder einem Lese- oder einem Schreibbefehl beinhaltet. Nach der Ausrichtung gelangen die Daten dann über den Datenbus auf den Speicherchip. Für den Zugriff auf den nächsten Chip wird die gleiche Reihenfolge eingehalten. Die verschiedenen Befehle können seriell über den Befehlsbus gesendet werden, und da dieser von zumindest zwei Speicherchips gemeinsam genutzt werden kann, sind die Befehle voneinander getrennt, um Überschneidungen auf dem Befehlsbus zu vermeiden.
-
Auch das Überlappen von Daten aus den verschiedenen Speicherchips auf dem Datenbus muss verhindert werden. Dies kann über eine Synchronisierungsoperation erfolgen. Wie vorstehend erwähnt wurde, beinhaltet der CAS-Befehl die Synchronisationsoperation für das Schreibtaktsignal. Bei der Synchronisationsoperation werden eine Schreibtakt-Präambel und eine Schreibtakt-Postambel gesendet. Der Speicherchip verfügt über einen internen Schreibtaktteiler, um einen internen Schreibtakt mit dem hochfrequenten Schreibtaktsignal auszurichten. Die Präambel sagt dem internen Teiler des Speicherchips, welcher Takt für die Durchführung der Lese- oder Schreiboperation zu verwenden ist. Die Präambel kann mit dem Teiler arbeiten, um Phasen auszurichten.
-
Die Präambel kann ein Multizyklusmuster sein, das sich in einem aktiven System normalerweise weder mit einem Schreibtaktsignal noch mit einer Schreibtaktpostambel überlappt. Aufgrund des Musters kann sich die Synchronisationsoperation für das Schreibtaktsignal zeitlich nicht mit einem Datenburst auf dem Datenbus überschneiden, da dieses ein Umschalten mit voller Rate bzw. Geschwindigkeit involviert. Dies kann auf verschiedene Weise verhindert werden. Eine Möglichkeit besteht darin, den Schreibtakt-Empfänger/die Taktung für beide der Speicherchips, wie beispielsweise die Speicherchips 160, 170, einzuschalten. Dies führt jedoch zu einer Erhöhung der Leistungsaufnahme des Speichersystems 150, da die beiden Speicherchips 160, 170 zusätzliche Leistung für ihren Empfänger verbrauchen und eine interne Taktung zu ihrer Schreibtaktverteilung und ihren Teilern hinzufügen.
-
Eine andere Möglichkeit besteht darin, die vollständige Postambel an einen ersten Speicherchip zu senden, gefolgt von dann Senden der vollständigen Präambel an einen zweiten Speicherchip. Dies führt jedoch zu vielen Takten von Leerlaufblasen auf dem Datenbus. Die Wellenformen von 2 veranschaulichen das Verwenden des Schreibtaktsignals als ein unsymmetrisches Signal, das eine Überlappung der Präambel und der Postambel für verschiedene Speicherchips in der Synchronisationstaktsignal-Synchronisierungsoperation erlaubt.
-
2 beinhaltet vier Wellenformen: 210 für das Betriebstaktsignal CK, 220 für das Schreibtakt-Nutzsignal (WCKT), 230 für die Datenleitungen Null bis n (0-n) und 240 für das Schreibtakt-Komplement-Signal (WCKC). Die Wellenformen repräsentieren das Beispiel des Umschaltens einer Speicheroperation auf den Speicherchip 170 von dem Speicherchip 160. Das durch die Wellenform 210 in 2 repräsentierte Betriebstaktsignal CK wird sowohl dem Speicherchip 160 als auch dem Speicherchip 170 bereitgestellt, wie in 1 dargestellt ist.
-
Um das Zugreifen auf den Speicherchip 170 zu beginnen, wird CS gesetzt und wird ein Befehl gesendet, der die Spalten- und Zeilenadresse sowie entweder Lesen oder Schreiben enthält (in 2 nicht dargestellt). Ein schnellerer Takt, das Schreibtaktsignal, ist auch für den Speicherchip 170 erwünscht, um die Datenbusse (oder Leitungen) mit einer höheren Taktfrequenz als das Betriebstaktsignal CK zu betreiben. Das zeitliche Verhältnis zwischen dem Schreibtaktsignal und dem Betriebstaktsignal CK muss jedoch eingehalten werden. Die Synchronisation des Schreibtaktsignals mit dem Betriebstakt für den Speicherchip 170 beginnt also mit dem Senden der Präambel an den Speicherchip 170, wie in der Wellenform 240 dargestellt.
-
Eine Speicheroperation mit dem Speicherchip 160 findet wie in der Wellenform 230 dargestellt durch einen Datenburst über die Datenleitungen 0-n statt. Während der Speicheroperation wird das Schreibtakt-Nutzsignal WCKT mit der Postambel auf den Speicherchip 160 angewendet, wie durch die Wellenform 220 angegeben.
-
Um den Zugriff von dem Speicherchip 160 auf den Speicherchip 170 umzuschalten, wird eine Präambel für eine Synchronisierungsoperation an den Speicherchip 170 gesendet, wie durch die Wellenform 240 angegeben ist. Vorteilhafterweise kann die Präambel während des Datenbursts mit dem Speicherchip 160 an den Speicherchip 170 gesendet werden, während die Postambel an den Speicherchip 160 gesendet wird, wie in der Wellenform 220 dargestellt ist. Somit kann die Präambel vor oder parallel zu dem Senden der Präambel an den Speicherchip 170 gesendet werden.
-
Nach Beendigung der Präambel des Speicherchips 170 (auf der Wellenform 240) beginnt das Umschalten des Datenbursts auf dem Datenbus auf den Speicherchip 170. In diesem Beispiel besteht kein Zusammenhang zwischen der Postambel zum Speicherchip 160 und dem Beginn der Daten zum Speicherchip 170. Somit ist die Datenoperation auf dem Speicherchip 170 völlig unabhängig von der Wellenform 220 und ist die Postambel auf dem Speicherchip 160 unabhängig von der Aktivität auf dem Speicherchip 170. Die zwischen dem Umschalten auf dem Datenbus erforderliche Zugriffszeit ist durch die Schraffur in der Wellenform 230 angegeben. Typischerweise sind die Datenbursts zwischen den beiden Speicherchips 160, 170 nicht ausgerichtet, um Prozesseckschwankungen z.B. der Speicherchips zu berücksichtigen. Die Datenausgabe aus einem DRAM während eines Lesevorgangs weist aufgrund von Schwankungen der internen Taktung abhängig von der Prozessecke (process corner) einen bestimmten Bereich von möglichen Antwortzeiten auf. Ähnlich dazu wird bei Schreibvorgängen die Datenausgabe aus einem SOC verzögert, um die Schwankung der Taktung an die internen Erfassungsflops des DRAM anzupassen (auch als ein Erwartungsbereich spezifiziert). Eine Verzögerung zwischen dem Umschalten von Datenbursts kann von der Speichersteuereinrichtung 110 gesteuert werden, um diese oder andere Fertigungsschwankungen zu berücksichtigen. Da die Präambel für den Speicherchip 170 bereits beendet ist, kann die Zugriffszeit gleich der Verzögerung sein, um Schwankungen zu berücksichtigen. In einigen Beispielen kann die Lücke oder Zugriffszeit zwischen den Bursts zwei Schreibtaktzyklen betragen.
-
Die Wellenformen von 2 veranschaulichen die vorteilhafte Überlappung der Synchronisierungsoperation, die die Zugriffszeit reduziert. Da außerdem ein unsymmetrisches Signal verwendet wird, reduziert sich der Nivellierungsbedarf, da der Speicherchip 160 mit dem Schreibtakt-Nutzsignal WCKT nivelliert werden kann und der Speicherchip 170 mit dem Schreibtakt-Komplement-Signal WCKC nivelliert werden kann. Somit braucht dann, wenn Speicheroperationen zwischen den Speicherchips 160, 170 geändert werden, das Timing des Schreibtaktsignals nicht geändert zu werden. Darüber hinaus wird die Strombelastung reduziert, da das höherfrequente Schreibtaktsignal bei Bedarf jedem Speicherchip zur Verfügung gestellt werden kann, anstatt kontinuierlich bereitgestellt zu werden.
-
3 veranschaulicht ein Ablaufdiagramm eines beispielhaften Verfahrens 300 zum Betreiben eines Speichersystems, das in Übereinstimmung mit den Prinzipien der Erfindung durchgeführt wird. Das Verfahren 300 kann mit einem Speichersystem wie beispielsweise dem Speichersystem 150 aus 1 verwendet werden. Ein SOC oder eine andere Vorrichtung kann für den Zugriff auf das Speichersystem verwendet werden. Das Verfahren 300 beginnt in einem Schritt 305.
-
In einem Schritt 310 wird ein differenzielles Schreibtaktsignal als zwei unsymmetrische Taktsignale für den Zugriff auf ein Speichersystem verwendet. Die beiden unsymmetrischen Taktsignale sind ein erstes Schreibtaktsignal und ein zweites Schreibtaktsignal.
-
In einem Schritt 320 wird das erste Schreibtaktsignal einem ersten Speicherchip und das zweite Schreibtaktsignal einem zweiten Speicherchip des Speichersystems zugeordnet. Das Speichersystem kann ein DDR- oder LPDDR-System sein, und der erste und der zweite Speicherchip können DRAM-Bänke sein.
-
In einem Schritt 330 werden das erste Schreibtaktsignal zum Nivellieren des ersten Speicherchips und das zweite Schreibtaktsignal zum unabhängigen Nivellieren des zweiten Speicherchips verwendet. Da unsymmetrische Signale verwendet werden, werden die Anforderungen an die Nivellierung reduziert.
-
Das Verfahren 300 fährt in Schritt 340 fort, indem es Lese- und Schreiboperationen des ersten Speicherchips unter Verwendung des ersten Schreibtaktsignals steuert und, unabhängig von der Steuerung des ersten Speicherchips, Lese- und Schreiboperationen des zweiten Speicherchips unter Verwendung des zweiten Schreibtaktsignals steuert.
-
In einem Schritt 350 wird eine Lese- oder Schreiboperation des ersten Speicherchips auf eine Lese- oder Schreiboperation des zweiten Speicherchips umgeschaltet. Das Umschalten zwischen dem Zugriff auf die Speicherchips kann ein Synchronisieren des zweiten Schreibtaktsignals durch Senden eines Präambelsignals, während die Lese- oder Schreiboperation auf dem ersten Speicherchip im Gange ist, beinhalten. Das Präambelsignal kann ein Multizyklusmuster sein, das auf einem Bus mit dem ersten oder zweiten Schreibtaktsignal nicht kompatibel ist. Die Umschaltung kann ferner ein Senden eines Postambelsignals mit dem ersten Schreibtaktsignal während des Sendens des Präambelsignals beinhalten. In einem Beispiel wird die Umschaltung nach Beendigung des Präambelsignals und des Postambelsignals abgeschlossen. Zusätzlich kann auch eine Verzögerungszeit zur Abdeckung von Prozesseckschwankungen und anderen Variablen beinhaltet sein. Die Verzögerungszeit kann zwei Zyklen des ersten oder zweiten Schreibtaktsignals betragen. Somit kann die Zugriffszeit vorteilhaft gleich der Verzögerungszeit sein. Das Verfahren 300 schreitet zu Schritt 360 fort und endet.
-
Die Erfindung stellt Beispiele des Verwendens unsymmetrischer Schreibtaktsignale für zwei Speicherchips bereit. Für den Fachmann versteht sich, dass das Prinzip auf mehr als zwei Speicherchips angewendet werden kann. Wenn es beispielsweise mehr als zwei Speicherchips gibt, können einige der Speicherchips für ein Schreibtakt-Nutzsignal konfiguriert sein, und können die restlichen Speicherchips für die Verwendung des Schreibtakt-Komplement-Signals konfiguriert sein. Die Umschaltung zwischen „eigentlichen“ Speicherchips und „komplementären“ Speicherchips kann dann wie hierin beschrieben durchgeführt werden, indem die Präambel und die Postambel parallel gesendet werden. Zusätzlich können zwei der Speicherchips wie hierin beschrieben betrieben werden, und können die restlichen Speicherchips auf konventionelle Weise betrieben werden. Die beiden Speicherchips oder auch Gruppen von „eigentlichen“- und „komplementären“ Chips können ausgewählt und für den Betrieb nach verschiedenen Kriterien, wie z.B. Last oder Priorität, verbunden werden.
-
4 veranschaulicht ein Blockdiagramm eines Beispiels einer IC 400 wie hierin offenbart, die auch dazu konfiguriert sein kann, einen differenziellen Schreibtakt (WCK) als unsymmetrisches Schreibtaktsignal zu verwenden. Die IC 400 beinhaltet eine Speichersteuereinrichtung 410 und ein Speichersystem 450 mit einem ersten Speicherchip 460 und einem zweiten Speicherchip 470. Die Speichersteuereinrichtung 410 ist dazu konfiguriert, Daten aus dem Speichersystem 450 zur Verarbeitung abzurufen und Daten an das Speichersystem 450 zur Speicherung zu senden. Die Speichersteuereinrichtung 410 kann wie die Speichersteuereinrichtung 110 nach 1 sein oder ähnlich funktionieren. Demgemäß kann die Speichersteuereinrichtung 410 einen Taktgeber, einen Prozessor, eine Schreibtaktsteuereinrichtung und eine Datensteuereinrichtung beinhalten. Wie bei der Speichersteuereinrichtung 110 kann die Speichersteuereinrichtung 410 ein SOC sein, wie beispielsweise ein Tegra®-Prozessor, der eine CPU beinhaltet. Die Speichersteuereinrichtung 410 kann auch eine andere Art einer elektronischen Komponente oder integrierten Schaltung sein, die Speicherschnittstellen aufweist, aber keine CPU hat. Einige Beispiele beinhalten eine integrierte Schaltung wie ein ASIC und ein FPGA.
-
Wie vorstehend erwähnt wurde, beinhaltet das Speichersystem 450 den ersten Speicherchip 460 und den zweiten Speicherchip 470. Der erste Speicherchip 460 und der zweite Speicherchip 470 können sich in verschiedenen Speichergehäusen befinden. Zusätzlich kann die Speichersteuereinrichtung 410 kommunikativ mit mehreren Speicherpaketen gekoppelt sein. Das Speichersystem 450 kann ein Speicherpaket sein, wie beispielsweise ein DRAM-Speicherpaket, wobei der erste und zweite Speicherchip 460, 470 DRAM-Bänke sein können. Wie bei dem Speichersystem 150 von 1 kann das Speichersystem 450 in verschiedenen Ausführungsbeispielen ein DDR oder ein LPDDR sein, wie beispielsweise ein LPDDR der fünften Generation.
-
Der erste Speicherchip 460 und der zweite Speicherchip 470 beinhalten Datenpins, die mit Datenbussen von der Speichersteuereinrichtung 410 gekoppelt sind. Der erste Speicherchip 460 und der zweite Speicherchip 470 haben ebenfalls Pins, die ein Schreibtaktsignal und das Betriebstaktsignal empfangen. Im Gegensatz zu dem Speichersystem 150 empfangen der erste Speicherchip 460 und der zweite Speicherchip 470 des Speichersystems 450 sowohl das Schreibtakt-Nutzsignal (WCKT) von der Speichersteuereinrichtung 410 als auch das Schreibtakt-Komplement-Signal (WCKC) von der Speichersteuereinrichtung 410. Der erste und der zweite Speicherchip 460 und 470 beinhalten Logikschaltkreise, die dazu konfiguriert sein können, die empfangenen WCKT- und WCKC-Signale als ein differenzielles Taktsignal oder als unsymmetrische Signale zu verwenden, wie sie beispielsweise in dem ersten und dem zweiten Speicherchip 160, 170 verwendet werden. Somit können die Speicherchips 460, 470 je nach Konfiguration beide Schreibtaktsignale empfangen und unter Verwendung eines Schreibtaktsignals als ein differenzielles Signal oder als zwei unsymmetrische Signale arbeiten.
-
Die vorstehend beschriebenen Vorrichtungen, Systeme oder Verfahren oder zumindest ein Teil derselben können in verschiedenen Prozessoren, wie beispielsweise digitalen Datenprozessoren oder Computern, verkörpert sein oder von diesen ausgeführt werden, wobei die Prozessoren programmiert sind oder ausführbare Programme oder Sequenzen von Softwareanweisungen speichern, um einen oder mehrere der Schritte der Verfahren oder Funktionen der Vorrichtungen oder Systeme auszuführen. Die Softwareanweisungen solcher Programme können Algorithmen repräsentieren und in maschinenausführbarer Form auf nichtflüchtigen digitalen Datenspeichermedien, z.B. magnetischen oder optischen Platten, in Direktzugriffsspeicher (RAM), auf magnetischen Festplatten, Flash-Speichern und/oder in Nur-Lese-Speicher (ROM), kodiert sein, um es verschiedenen Arten von digitalen Datenprozessoren oder Computern zu ermöglichen, einen, mehrere oder alle Schritte eines oder mehrerer der vorstehend beschriebenen Verfahren oder Funktionen des hierin beschriebenen Systems auszuführen.
-
Bestimmte hierin offenbarte Ausführungsbeispiele können sich ferner auf Computerspeicherprodukte mit einem nicht-flüchtigen, computerlesbaren Medium beziehen, auf dem sich ein Programmcode zur Durchführung verschiedener computerimplementierter Operationen befindet, die zumindest einen Teil der Vorrichtungen, der Systeme verkörpern oder zumindest einige der Schritte der hierin beschriebenen Verfahren durchführen oder leiten. Ein hierin verwendetes nicht-flüchtiges Medium bezieht sich auf alle computerlesbaren Medien mit Ausnahme von flüchtigen, sich ausbreitenden Signalen. Beispiele für nicht-flüchtige computerlesbare Medien sind unter anderem, ohne darauf beschränkt zu sein: magnetische Medien wie Festplatten, Disketten und Magnetbänder; optische Medien wie CD-ROMs; magneto-optische Medien wie Floptical Disks; und Hardwaregeräte, die speziell zum Speichern und Ausführen von Programmcode konfiguriert sind, wie ROM- und RAM-Geräte. Beispiele für Programmcode sind sowohl Maschinencode, wie er beispielsweise von einem Compiler erzeugt wird, als auch Dateien mit höherem Code, die von dem Computer unter Verwendung eines Interpreters ausgeführt werden können.
-
Für den Fachmann in der Technik, auf die sich diese Anmeldung bezieht, versteht sich, dass andere und weitere Hinzufügungen, Weglassungen, Substitutionen und Modifikationen an den beschriebenen Ausführungsbeispielen vorgenommen werden können.