-
TECHNISCHES GEBIET
-
Beschreibungen betreffen allgemein nichtflüchtigen Speicher und insbesondere die Verringerung des Standby-Leckstroms in nichtflüchtigem Speicher.
-
HINTERGRUND
-
Nichtflüchtige Speichervorrichtungen umfassen Steuerschaltkreise zur Implementierung von Zugriffs- und Steuerlogik auf dem Speicherbaustein. Vom Standpunkt der Herstellung aus gesehen sind CMOS-Schaltungen (Komplementär-Metalloxidhalbleiter) relativ zu anderen Arten von Schaltkreisen einfach und kostengünstig. CMOS-Schaltungen können auch kleiner skaliert werden. Das Herunterskalieren der Größe von CMOS-Schaltungen kann jedoch zu hohem Standby-Leckstrom führen. Ein nichtflüchtiger Speicher verbringt einen signifikanten Teil der Zeit in einem Standby-Zustand. Im Standby-Zustand greift die Vorrichtung nicht aktiv auf den Speicher zu, aber die Vorrichtung befindet sich im Bereitschaftszustand zum Empfangen und Ausführen eines Befehls. Leckstrom bezieht sich auf einen Strom, der verwendet wird, um einen Bereitschaftszustand zum Empfangen eines Befehls aufrechtzuerhalten, und bezieht sich auf Strom, der nicht zu einem Speicherzugriff führt. Das Schrumpfen der CMOS-Schaltkreise zur Komprimierung des Footprint der Logik in dem Speicherbaustein führt zu einem höheren Standby-Leckstrom. Wenn die CMOS-Schaltkreise geschrumpft werden, nimmt somit das Verhältnis des zum Durchführen von aktivem Zugriff in der Speichervorrichtung verwendeten Stroms ab.
-
Figurenliste
-
Die folgende Beschreibung enthält eine Besprechung von Figuren, die Darstellungen aufweisen, die als Beispiel für eine Implementierung gegeben werden. Die Zeichnungen sollten beispielhaft aufgefasst werden und nicht als Beschränkung. Im vorliegenden Gebrauch sind Erwähnungen eines oder mehrerer Beispiele als ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum, das bzw. die in mindestens einer Implementierung der Erfindung enthalten ist, beschreibend aufzufassen. Ausdrücke wie „in einem Beispiel“ oder „in einem alternativen Beispiel“, die hier erscheinen, geben Beispiele für Implementierungen der Erfindung und beziehen sich nicht unbedingt immer auf dieselbe Implementierung. Sie schließen sich jedoch auch nicht unbedingt gegenseitig aus.
- 1 ist eine Blockdarstellung eines Beispiels für ein System mit einer Speicherungsvorrichtung, die Standby-Timingsteuerung zum Übergang vom Standby zu tiefem Herunterfahren umfasst.
- 2 ist ein Flussdiagramm eines Beispiels für einen Prozess zum Übergang vom Standby zu tiefem Herunterfahren.
- 3 ist ein Flussdiagramm eines Beispiels für einen Prozess zum Übergang vom Standby zu tiefem Herunterfahren auf der Basis eines Befehlstyps.
- 4 ist ein Flussdiagramm eines Beispiels für einen Prozess zum Übergang vom Standby zu tiefem Herunterfahren auf der Basis eines Programmierverifizierstatus.
- 5A ist eine Diagrammdarstellung eines Beispiels für mittleren Strom als Funktion des Lesetastverhältnisses für ein System, das den Übergang vom Standby zu tiefem Herunterfahren steuert.
- 5B ist eine Diagrammdarstellung eines Beispiels für mittlere Lesezeit als Funktion des Lesetastverhältnisses für ein System, das den Übergang vom Standby zu tiefem Herunterfahren steuert.
- 6A ist eine Blockdarstellung eines Beispiels für ein System mit einem SSD (Solid State Drive) mit Logik zum Übergang vom Standby zum tiefen Herunterfahren.
- 6B ist eine Blockdarstellung eines Beispiels für ein System mit einem SSD (Solid State Drive) mit Standby-Logik in der Steuerung oder in einem NAND-Baustein zum Übergang vom Standby zu tiefem Herunterfahren.
- 7 ist eine Blockdarstellung eines Beispiels für ein Datenverarbeitungssystem, in dem Übergang vom Standby zum tiefen Herunterfahren implementiert werden kann.
- 8 ist eine Blockdarstellung eines Beispiels für eine mobile Vorrichtung, in der Übergang vom Standby zu tiefem Herunterfahren implementiert werden kann.
-
Es folgen Beschreibungen bestimmter Einzelheiten und Implementierungen, darunter nicht einschränkende Beschreibungen der Figuren, die einige oder alle Beispiele sowie andere potentielle Implementierungen abbilden können.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Wie hier beschrieben, unterstützt ein nichtflüchtiger Speicher einen Standby-Zustand, indem der Speicher bereit ist, einen Zugriffsbefehl zur Ausführung zu empfangen, und einen tiefen Herunterfahrzustand, indem der Speicher alle Zugriffsbefehle ignoriert. Der Speicher kann als Reaktion auf eine Schwellenzeitdauer im Standby-Zustand von dem Standby-Zustand zu dem tiefen Herunterfahrzustand übergehen. Somit kann der Speicher nach einem Befehl in den Standby-Zustand eintreten und dann nach der Schwellenzeit zu dem tiefen Herunterfahrzustand übergehen.
-
Das Steuern der Zeitdauer, die im Standby verbracht wird, und das Übergehen in tiefes Herunterfahren (DPD - Deep Power Down) kann den Leckstrom in den Speicherbaustein verringern. Das Steuern der Standby- und DPD-Zustände kann weiteres Schrumpfen von Schaltkreisen in dem Speicherbaustein ermöglichen. In einem Beispiel sind die Schaltkreise Steuerschaltkreise des Speicherbausteins. In einem Beispiel sind die Steuerschaltkreise CMOS-Schaltkreise (Komplementär-Metalloxidhalbleiter). Ein nichtflüchtiger Speicherbaustein weist den Speicherzellen, die die Daten speichern, zugeordnete Hochspannungs- bzw. HV-Schaltkreise und Niederspannungs- bzw. LV-Schaltkreise auf, die verschiedene Steuerfunktionen bereitstellen. In einem Beispiel sind die mit Standby-Steuerung zu verwaltenden Steuerschaltkreise LV-Schaltkreise.
-
Das Steuern des Übergangs des Speicherbausteins vom Standby zu tiefem Herunterfahren kann die Auswirkung von hohem Standby-Leckstrom, der durch aggressive CMOS-Skalierung verursacht wird, verringern. Der Übergang vom Standby zu DPD kann den Leckstrom steuern, während er minimale Auswirkung auf die Leselatenz hat. Die Möglichkeit, den Leckstrom zu verwalten kann Skalierung von Steuerschaltkreisen ermöglichen, um zu kleineren Speicherbausteinen und niedrigeren Bausteinkosten zu führen.
-
Der Übergang von Standby zu DPD kann den traditionellen Standby-Modus mit einer Kombination eines getimten Standby-Modus, gefolgt von einem tiefen Herunterfahrmodus, ersetzen. Da der Leckstrom im DPD-Modus minimal und signifikant kleiner als der Leckstrom im Standby ist, verringert eine solche Prozedur den Gesamtstromverbrauch. Solange die im getimten Standby-Modus verbrachte Zeit auf viel größer als die Lesezeit gesetzt wird, wird auch die Auswirkung auf die Leselatenz minimal sein. Erwähnung einer Zeit, die „viel größer“ ist, kann sich auf eine Zeit beziehen, die mindestens fünf Mal eine andere Zeit beträgt. In einem Beispiel kann eine Zeit, die viel größer als eine andere Zeit ist, ungefähr eine oder mehr Größenordnungen größer als eine Zeit, mit der verglichen wird, sein.
-
1 ist eine Blockdarstellung eines Beispiels für ein System mit einer Speicherungsvorrichtung, die Standby-Timingsteuerung zum Übergang vom Standby zu tiefem Herunterfahren umfasst. Das System 100 repräsentiert eine Datenverarbeitungsvorrichtung mit nichtflüchtiger Speicherung oder nichtflüchtigem Speicher. Das System 100 umfasst einen Host 110, der eine Host-Plattform für die Datenverarbeitungsvorrichtung repräsentiert. Der Host 110 umfasst einen (nicht explizit gezeigten) Host-Prozessor, der ein Host-Betriebssystem (OS) zur Steuerung des Betriebs des Systems 100 ausführt.
-
Der Host 110 umfasst Hardware 112 für E/A (Eingabe/Ausgabe) bzw. E/A 112 zur Kopplung mit einer oder mehreren Speicherungsvorrichtungen 120. Die E/A 112 umfasst Treiber und Empfänger, Signalleitungsschnittstellen und andere Hardwarekomponenten, die als Schnittstelle mit dem nichtflüchtigen Speicher verwendet werden. Die E/A 112 ist mit entsprechender E/A 122 der Speicherungsvorrichtung 120 gekoppelt, die ähnliche Hardwarekomponenten für bidirektionale Kommunikation zwischen dem Host 110 und der Speicherungsvorrichtung 120 repräsentieren kann. Obwohl es nicht im Detail gezeigt ist, kann die Speicherungsvorrichtung 120 mehrere Speicherungsbausteine umfassen, wie etwa NAND-Bausteine (nicht AND) 140 mit E/A 142, die ähnliche E/A-Hardware umfasst.
-
Der Host 110 umfasst eine Speicherungssteuerung 114, die Logik in dem Host 110 zur Steuerung des Zugriffs auf die Speicherungsvorrichtung 120 repräsentiert. In einem Beispiel ist die Speicherungssteuerung 114 mit mehreren Speicherungsvorrichtungen 120 gekoppelt. CMD (Befehl) 116 repräsentiert eine oder mehrere Signalleitungen, um es der Speicherungssteuerung 114 zu ermöglichen, Befehle zu der Speicherungsvorrichtung 120 zu senden, wie etwa einen Zugriffsbefehl oder einen Befehl in Bezug auf das Setzen einer Standby-Zeitschwelle. DQ (Daten) 118 repräsentiert eine oder mehrere Signalleitungen zum Ermöglichen des Austauschs von Daten zwischen dem Host 110 und der Speicherungsvorrichtung 120.
-
Die Speicherungsvorrichtung 120 repräsentiert eine Vorrichtung, die nichtflüchtige Speicherung von Daten für das System 100 bereitstellt. Die nichtflüchtige bzw. NV-Speicherung oder NV-Speicher (NVM) bezieht sich auf eine Speichervorrichtung, die den Zustand aufrechterhält, selbst wenn die Stromversorgung der Vorrichtung unterbrochen wird. Speicher, dessen Zustand unbestimmt ist, wenn die Stromversorgung der Vorrichtung unterbrochen wird, wird als flüchtiger Speicher bezeichnet. In einem Beispiel repräsentiert die Speicherungsvorrichtung 120 eine Vorrichtung, wie etwa ein SSD (Solid State Drive), die mehrere nichtflüchtige Speicherbausteine umfasst. In einem Beispiel repräsentiert die Speicherungsvorrichtung 120 eine Mehrchip-Kapselung, die mehrere NVM-Bausteine umfasst.
-
In einem Beispiel umfasst die Speicherungsvorrichtung 120 mehrere NVM-Bausteine, die durch die NAND-Bausteine 140 repräsentiert werden. Obwohl NAND-Bausteine als Beispiel angegeben werden, versteht sich, dass andere Arten von nichtflüchtiger Speicherung verwendet werden könnten. Zum Beispiel könnten die NAND-Bausteine 140 als Alternative NOR- (oder OR)-Bausteine sein. In einem Beispiel repräsentieren die NAND-Bausteine 140 dreidimensionale bzw. 3D-Kreuzpunkt- bzw. 3DXP-Vorrichtungen.
-
In einem Beispiel umfasst jeder NAND-Baustein 140 ein Array 144, das ein Array von Speicherzellen repräsentiert. In einem Beispiel umfasst der NAND-Baustein 140 Puffer 146, der einen Puffer zwischen dem Array 144 und der E/A 142 repräsentiert. Der Puffer 146 kann Übergangsspeicherung bereitstellen, wie etwa Register oder Flops, um Daten zu halten. In einem Beispiel hält der Puffer 146 Schreibdaten für einen Schreib- oder Programmierbefehl, um dem Programmierarray 144 Daten bereitzustellen. In einem Beispiel hält der Puffer 146 Lesedaten, die aus dem Array 144 gelesen wurden, die dem Host 110 bereitzustellen sind. In einem Beispiel repräsentiert der Puffer 146 einen statischen Seitenpuffer (SPB). Zum Beispiel kann der Puffer mehrere Latches sein oder umfassen.
-
Der NAND-Baustein 140 umfasst eine Steuerung 150, die Steuerung in dem NAND-Baustein repräsentiert. Die Steuerung 150 kann einen Mikrocontroller oder eine andere Steuerlogik zur Verwaltung es Zugriffs auf das Array 144 darstellen oder umfassen. In einem Beispiel umfasst die Steuerung 150 CMOS-Logik 152 oder andere Schaltkreise mit relativ hohem Leckstrom, wenn sich der NAND-Baustein 140 im Standby-Modus befindet. Es versteht sich, dass die Steuerung 150 auf dem NAND-Baustein 140 von der NAND-Steuerung 130 verschieden ist, die eine Speicherungssteuerung für die Speicherungsvorrichtung 120 repräsentiert. Die NAND-Steuerung 130 kann die Einstellungen und den Zugriff auf mehrere NAND-Bausteine 140 für eine Mehrfach-Baustein-Kapselung oder -vorrichtung verwalten.
-
Die Steuerung 150 oder die NAND-Steuerung 130 oder beide umfassen Logik zur Verwaltung der Standby-Zeit. Logik in der Steuerung 150 wird als Standby-Steuerung 154 repräsentiert. Logik in der NAND-Steuerung 130 wird als Standby-Steuerung 132 repräsentiert. Die Standby-Steuerung 132 oder Standby-Steuerung 152 stellt Standby-Steuerung für den NAND-Baustein 140 bereit. Standby-Steuerung kann bestimmen, wie lange nach dem Ausführen eines Befehls dieser NAND-Baustein 140 im Standby bleibt, bevor er zu tiefem Herunterfahren übergeht. In einem Beispiel umfasst die Standby-Steuerung 154 einen Timer 156 zum Verfolgen der Zeit, für die sich der NAND-Baustein 140 im Standby-Modus oder im Standby-Zustand befindet. In einem Beispiel umfasst die Standby-Steuerung 132 einen Timer 134 zum Verfolgen, wie lange sich der Baustein im Standby befindet. In einem Beispiel könnte die NAND-Steuerung 132 für jeden NAND-Baustein 140 einen getrennten Timer halten. In einem Beispiel kann die Standby-Steuerung 132 verschiedene Timings für jeden NAND-Baustein 140 auf der Basis nur eines Timers oder einer geringeren Anzahl von Timern als es NAND-Bausteine gibt, verfolgen. In einem Beispiel befinden sich, selbst wenn die Steuerung mit der Standby-Steuerung 132 implementiert wird, alle Timer auf individuellen NAND-Bausteinen 140.
-
Erwähnung eines Speicher-Bausteins, der im Standby bleibt, bezieht sich auf einen Zustand oder einen Modus für den Speicherbaustein, in dem der Speicherbaustein nicht aktiv auf das Array 144 zugreift. Während nicht auf das Array 144 zugegriffen wird, können die Ströme und Spannungen verschiedener Datenpfade verringert werden. Steuerschaltkreise bleiben jedoch mit Strom versorgt, um darauf vorbereitet zu sein, einen nachfolgenden Zugriffsbefehl zu empfangen und zu verarbeiten. Die Stromversorgung der Steuerschaltkreise kann zu Leckstrom führen, erlaubt dem System aber, schnellen Zugriff auf einen nachfolgenden Befehl bereitzustellen.
-
Tiefes Herunterfahren (DPD) bezieht sich auf einen Zustand oder einen Modus, in dem der Speicherbaustein alle Befehle ignoriert, mit Ausnahme von Befehlen, den Speicherbaustein aus DPD aufzuwecken. In DPD ignoriert somit der NAND-Baustein 140 alle Zugriffsbefehle. DPD weist weniger Lecken als Standby auf. Wenn zum Beispiel DPD durch ein Chipauswahl- oder Chipfreigabebit gesteuert wird, kann der Speicherbaustein nach dem Übergang dieses Bit Ausschau halten, um aus DPD aufzuwachen, und muss keine Schaltkreise wachhalten, um irgendwelche anderen Befehle zu verarbeiten. Während Standby schnell auf einen Zugriffsbefehl reagieren kann, wird bei DPD der NAND-Baustein 140 im Wesentlichen ausgeschaltet, und Aufwachen aus DPD erfordert zusätzliche Initialisierungsoperationen, die die Latenz vergrößern.
-
Ein Nachteil des Versetzens eines Bausteins in den DPD-Modus ist somit die Latenz, die dem Wiederherauffahren des Bausteins zugeordnet ist. Eine solche Latenz wirkt sich auf die mittlere tRD (Lesezeit) und auch auf die Dienstgüte (QoS) aus. Wenn der Wert des Timers vergrößert wird, wird die Auswirkung jedoch minimiert. In einem Beispiel, bei dem der Timer auf einen Wert von mindestens gleich 5-mal tRD gesetzt wird, kann der mittlere Strom für eine Vorrichtung mit hohem Lecken einem Fall mit geringem Lecken ähnlich sein.
-
In einem Beispiel ist die Timerhardware Teil des NAND-Bausteins 140, und das System 100 kann den Timerwert mittels Steuerbefehlen setzen. In einem Beispiel ist der Wert der Schwelle für den Timer 156 dynamisch programmierbar. Der Timer kann zum Beispiel mit einem Schwellwert programmiert werden und dann herunterzählen. Als ein anderes Beispiel kann der Timer heraufzählen, und Vergleichslogik kann bestimmen, wann ein Schwellenwert erreicht ist. Der Wert kann durch das System auf der Basis der Speichertechnologie (z.B. NAND-Speicherzellen, im Gegensatz zu anderer Speichertechnologie), der Anwendung (z.B. der Art von Zugriff, die erwartet wird) oder anderen Faktoren, die sich darauf auswirken können, wie lange der Speicherbaustein im Standby zu halten ist, bevor zu DPD übergegangen wird, gesetzt werden.
-
In einem Beispiel kann der Timerwert oder der Schwellenwert von der Art von Befehl abhängen, den der NAND-Baustein 140 ausführt. Zum Beispiel kann der Timerwert für einen Arraybefehl und einen E/A-Befehl verschieden sein. Es versteht sich, dass sich ein Arraybefehl auf einen Zugriffsbefehl für den Speicherbaustein bezieht, wobei der spezifische Befehl ausgeführt wird und dann der Befehl abgeschlossen ist. Ein E/A-Befehl bezieht sich auf einen Zugriffsbefehl, der bewirkt, dass der Speicherbaustein den Befehl ausführt, und umfasst auch einen Trigger oder ein Feld zur Angabe, dass ein nachfolgender Befehl dem Befehl ähnlich sein wird oder derselbe sein wird. Nach dem Ausführen des Befehls ist der Speicherbaustein somit darauf vorbereitet, denselben Befehl nochmals auszuführen, was ohne eine spezifische Befehlsanweisung getriggert werden kann. Ein spezifisches Feld kann den Start und den Stopp einer E/A-Befehlssequenz angeben.
-
Energiesteuerung (PWR CTRL) 160 repräsentiert Schaltkreise, die die Energiebenutzung des NAND-Bausteins 140 steuern. Die Energiesteuerung 160 kann den DPD-Zustand des NAND-Bausteins 140 steuern. In einem Beispiel kann im Standby für eine Vorrichtung mit hohem Lecken die Standby-Steuerung (entweder 154 oder 132) einen ausgewählten NAND-Baustein 140 dazu verwalten, für einen vordefinierten Zeitraum, verfolgt durch Timer (entweder 156 oder 134), im Standby zu bleiben. In einem Beispiel triggert nach einer Schwellenzeit im Standby die Standby-Steuerung den Baustein dazu, in DPD einzutreten. In einem Beispiel kann DPD Torschalten der Stromversorgung der Vorrichtungen mit Stromversorgungs-Torschaltungsschaltkreisen umfassen. Wenn das System von Verwendung nur von Standby zu Verwendung einer Kombination von Standby und DPD wechselt, kann der Baustein den größten Teil seiner Zeit in DPD verbringen, aber zuerst Standby zu verwenden, verringert die Auswirkung auf die Leselatenz.
-
In einem Beispiel prüft die Standby-Steuerung den Status des Bausteins vor dem Übergang von Standby zu DPD. Zum Beispiel kann die Standby-Steuerung prüfen, um zu bestimmen, ob die Daten in dem Puffer 146 entweder im Lese- oder im Programmierfall vor dem Eintritt in DPD verloren gehen können. Es versteht sich, dass beim Eintritt in DPD die Stromversorgung des Puffers 146 torgeschaltet wird und die Daten in dem Puffer verlorengehen. Somit kann das System den NAND-Baustein 140 nur dann in Standby überführen, wenn die Daten verloren gehen können. Eine solche Statussteuerung kann davon abhängen, ob die Daten über die E/A 142 zum Lesen gesendet wurden (wobei in diesem Fall die Daten nicht mehr im Puffer 146 benötigt werden), oder ob die Daten erfolgreich in das Array 144 programmiert wurden (wobei in diesem Fall die Daten nicht mehr im Puffer 146 benötigt werden).
-
Es versteht sich, dass, wenn die Daten gesendet wurden, Prüfen des Status des Puffers 146 nicht notwendig sein kann, weil angenommen werden kann, dass die Daten verloren werden können. In einem Beispiel werden die Daten in dem Puffer 146 wiederverwendet, wenn der Zugriff ein E/A-Befehl ist, während bei einem Array-Lesen die Daten in dem Puffer 146 nicht benötigt werden, wenn der Befehl abgeschlossen wird.
-
2 ist ein Flussdiagramm eines Beispiels für einen Prozess zum Übergang vom Standby zu tiefem Herunterfahren. Der Prozess 200 repräsentiert einen Standby-Steuerprozess zum Steuern des Übergehenlassens eines Speicherbausteins von Standby zu DPD. Der Prozess 200 kann durch ein beliebiges Beispiel für Standby-Steuerung des Systems 100 implementiert werden.
-
In einem Beispiel setzt das System einen Standby-Zähler oder Standby-Timer, Block 202. Der Standby-Zähler kann angeben, wie lange vor dem Übergang in einen DPD-Zustand im Standby zu bleiben ist. Das System sendet einen Befehl (oder mehrere Befehle) zu dem NAND-Baustein oder anderen nichtflüchtigen Speicher, Block 204.
-
Das System kann ein Chipfreigabe- oder anderes Freigabesignal umschalten, um den Baustein zu identifizieren, der den Befehl ausführen soll, Block 206. Der NAND-Baustein empfängt den Befehl und führt ihn aus, und der Befehl wird abgeschlossen, Block 208. Der NAND-Baustein kann in den Standby-Modus oder Standby-Zustand eintreten, sowie es traditionell erfolgen würde, Block 210.
-
Um die Auswirkung von hohen Standby-Leckströmen in Vorrichtungen mit kleineren Geometrien zu verringern, begrenzt das System in einem Beispiel die Zeitdauer, die der Baustein im Standby-Modus verbringt. Die Speicherungsvorrichtung kann die Zeitdauer auf der Basis der durch das System bereitgestellten Standby-Zählereinstellung überwachen. Wenn die angegebene Zeit nicht vergangen ist, NEIN-Zweig von Block 212, lässt die Speicherungsvorrichtung den NAND-Baustein im Standby.
-
In einem Beispiel tritt der NAND-Baustein als Reaktion auf das Vergehen der Zeit, JA-Zweig von Block 212, in den DPD-Modus ein, Block 214. In einem Beispiel basiert der Eintritt in DPD automatisch auf dem Timer und erfolgt nicht als Reaktion auf einen Befehl vom Host oder vom System. Stattdessen kann die Bestimmung, in DPD einzutreten, in der Speicherungsvorrichtung selbst erfolgen. Traditionell würde der Host DPD auf der Basis von anderen Faktoren als der Zeitdauer, die der NAND-Baustein im Standby verbracht hat, angeben. Das Versetzen des Bausteins in den DPD-Modus nach einer gegebenen Zeitdauer kann die Auswirkung von höherem Standby-Leckstrom verringern. Da die im Standby-Modus verbrachte Zeit begrenzt wird, wird die Auswirkung des Standby-Leckens auf die Gesamtenergie verringert.
-
3 ist ein Flussdiagramm eines Beispiels für einen Prozess zum Übergang vom Standby zu tiefem Herunterfahren auf der Basis eines Befehlstyps. Der Prozess 300 repräsentiert einen Standby-Steuerprozess zum Steuern des Übergehenlassens eines Speicherbausteins von Standby zu DPD auf der Basis eines Typs von Befehl, der abgeschlossen wurde. Der Prozess 300 kann durch ein beliebiges Beispiel für Standby-Steuerung des Systems 100 implementiert werden und repräsentiert ein Beispiel für einen Prozess gemäß dem Prozess 200 von 2.
-
In einem Beispiel setzt das System einen Standby-Zähler oder Standby-Timer mit verschiedenen Werten, die für E/A-Befehle und Arraybefehle gesetzt werden, Block 302. Der Standby-Zähler kann angeben, wie lange vor dem Übergang in einen DPD-Zustand im Standby zu bleiben ist, wobei die Zeitdauer abhängig von dem Typ von Befehl, der vor dem Eintritt in Standby abgeschlossen wurde, unterschiedlich ist. In einem Beispiel ist die im Standby zu bleibende Zeit nach einem E/A-Befehl kürzer als nach einem Arraybefehl. Ein E/A-Befehl könnte als Alternative als DMA-Befehl (Direktspeicherzugriff) bezeichnet werden. Ein DMA-Befehl kann direkt aus dem Speicher operieren, wodurch solange wie ein Arraybefehl das Puffern von Daten überflüssig werden kann. Somit kann ein Arraybefehl sich mehr auf die Daten im Puffer verlassen als ein E/A-Befehl, wodurch nahegelegt wird, bei einem Arraybefehl den Baustein länger im Standby zu halten, um Verlust der Daten im Puffer zu vermeiden, während man sich bei dem E/A-Befehl nicht unbedingt genauso um Pufferdaten sorgen muss.
-
In einem Beispiel sendet das System einen Lesebefehl zu dem NAND-Baustein oder anderem nichtflüchtigen Speicher, Block 304. Das System kann ein Chipfreigabe- oder ein anderes Freigabesignal umschalten, um den Baustein zu identifizieren, der den Befehl ausführen soll, Block 306. Der NAND-Baustein empfängt den Befehl und führt ihn aus und identifiziert den Typ von Befehl, der auszuführen ist, Block 308. Die Identifikation des Befehlstyps kann eine Befehlscodierung in dem gesendeten Befehlssignal umfassen. Für die Zwecke des Prozesses 300 unterscheidet der Prozess Arraybefehle von E/A-Befehlen. Im Allgemeinen kann die Speicherungsvorrichtung zwischen zwei beliebigen Arten von Befehlen unterscheiden, die zu einer Notwendigkeit führen, gepufferte Daten für einen längeren Zeitraum aufrechtzuerhalten. Andere Befehle für NAND- oder andere nichtflüchtige Speichertechnologien können sich darin unterscheiden, wie viel Zeit sie zwischen Befehl benötigen oder wie lange dem Befehl zugeordnete Daten gepuffert werden sollten. Für jede solche Unterscheidung kann das System das Standby-Timing auf der Basis des empfangenen Befehlstyps einstellen.
-
In einem Beispiel führt der NAND-Baustein einen Arraybefehl aus, und der Befehl wird abgeschlossen, Block 310. Der NAND-Baustein kann nach dem Arraybefehl in den Standby-Modus oder Standby-Zustand eintreten, Block 312. In einem Beispiel setzt der NAND den Timer oder die Schwelle auf der Basis des Arraybefehl-Standby-Werts, Block 314.
-
In einem Beispiel führt der NAND-Baustein einen E/A-Befehl aus und der Befehl wird abgeschlossen, Block 316. Der NAND-Baustein kann nach dem E/A-Befehl in den Standby-Modus oder Standby-Zustand eintreten, Block 318. In einem Beispiel setzt der NAND den Timer oder die Schwelle auf der Basis des E/A-Befehls-Standby-Werts, Block 320.
-
Nach dem Eintritt in das Standby und Setzen der geeigneten Schwelle für den Übergang von Standby zu DPD kann der NAND die Zeit im Standby verfolgen. Wenn die angegebene Zeit nicht vergangen ist, NEIN-Zweig von Block 322, lässt die Speicherungsvorrichtung den NAND-Baustein im Standby. In einem Beispiel tritt als Reaktion auf das Vergehen der Zeit, JA-Zweig von Block 322, der NAND-Baustein in den DPD-Modus ein, Block 324. Die Zeitdauer im Standby-Modus wird von dem Befehlstyp im Prozess 300 abhängen.
-
In einem Beispiel kann der Übergang zu DPD als ein internes tiefes Herunterfahren (IDPD) bezeichnet werden, was sich auf den Umstand bezieht, dass die Speicherungsvorrichtung selbst bestimmt, wann in DPD einzutreten ist. In einem Beispiel ist ein NAND-Lesen mit mehreren Bausteinen pro Kanal eine Ausnahme für den Übergang vom Standby zu DPD. In einem Beispiel versetzt die Vorrichtung einen NAND-Baustein nur nach einem E/A- oder DMA-Befehl in den IDPD-Modus, und nicht nach einem Arraybefehl. Die Unterscheidung zwischen den zwei Befehlstypen kann durch Setzen einer hohen Schwelle für den Standby-Zähler erreicht werden, wodurch effektiv verhindert wird, dass er zwischen Befehlen in DPD eintritt. Ein solcher Fluss könnte für ein Arraylesen ungefähr folgendermaßen aussehen:
- Freigeben von Baustein 0;
- Lesen von Baustein 0 mit einer Latenz von tRD (oder tR);
- Sperren von Baustein 0, um Baustein 0 nach tRD in Standby (SBY) zu versetzen;
- Einstellen der Standby-Schwellenzeit tSTY hoch genug, damit Baustein 0 nicht in DPD übergeht.
-
Die Sequenz kann für alle N Bausteine in der NAND-Vorrichtung wiederholt werden.
-
Die Sequenz für einen DMA oder ein E/A-Lesen könnte folgendermaßen lauten:
- Freigeben von Baustein 0;
- Lesen von Baustein 0 mit einer Latenz von tRD (oder tR);
- Sperren von Baustein 0, um Baustein 0 nach tRD in Standby (SBY) zu versetzen;
- Versetzen von Baustein 0 in DPD nach der Zeit tSTY.
-
Die Sequenz kann für alle N Bausteine in der NAND-Vorrichtung wiederholt werden.
-
4 ist ein Flussdiagramm eines Beispiels für einen Prozess zum Übergang vom Standby zu tiefem Herunterfahren auf der Basis eines Programmierverifizierstatus. Der Prozess 400 repräsentiert einen Standby-Steuerprozess zum Steuern des Übergehenlassens eines Speicherbausteins von Standby zu DPD auf der Basis des Status einer Programmieroperation. Der Prozess 400 kann durch ein beliebiges Beispiel für Standby-Steuerung des Systems 100 implementiert werden und repräsentiert ein Beispiel für einen Prozess gemäß dem Prozess 200 von 2.
-
In einem Beispiel setzt das System einen Standby-Zähler oder Standby-Timer mit verschiedenen Werten, die für E/A-Befehle und Arraybefehle gesetzt werden, Block 402. Der Standby-Zähler kann angeben, wie lange vor dem Übergang in einen DPD-Zustand im Standby zu bleiben ist, wobei die Zeitdauer abhängig von dem Typ von Befehl, der vor dem Eintritt in Standby abgeschlossen wurde, unterschiedlich ist.
-
In einem Beispiel sendet das System einen Programmierbefehl zu dem NAND-Baustein oder anderen nichtflüchtigen Speicher, Block 404. Das System kann ein Chipfreigabe- oder anderes Freigabesignal umschalten, um den Baustein zu identifizieren, der den Befehl ausführen soll, Block 406. Der NAND-Baustein empfängt den Befehl und führt ihn aus und identifiziert den Typ von Befehl, der auszuführen ist, Block 408.
-
In einem Beispiel führt der NAND-Baustein einen E/A-Befehl aus, und der Befehl wird abgeschlossen, Block 410. Der NAND-Baustein führt eine Programmierverifizierung durch, um sicherzustellen, dass die Daten korrekt geschrieben wurden, Block 412. In einem Beispiel setzt der NAND-Baustein den Timer oder die Schwelle auf der Basis des E/A-Befehls-Standby-Werts, Block 414, und der NAND-Baustein tritt in den Standby-Modus ein, Block 416. In einem Beispiel bleibt der NAND-Baustein im Standby und geht nicht zum DPD-Modus über, 418. Zum Beispiel könnte der Wert des Timers den NAND-Baustein im Standby halten.
-
In einem Beispiel führt der NAND-Baustein einen Arraybefehl aus, und der Befehl wird abgeschlossen, Block 420. Der NAND-Baustein führt ein Programmierverifizieren durch, um sicherzustellen, dass die Daten korrekt geschrieben wurden, Block 422. In einem Beispiel wird der Standby-Status nach einem Arrayprogrammieren von dem Erfolg der Verifizieroperation abhängen. In einem Beispiel liest, wenn die Programmierverifizierung fehlschlägt, NEIN-Zweig von Block 424, der NAND-Baustein Daten aus dem statischen Seitenpuffer, Block 426. Nach dem Lesen aus dem SPB kann der NAND-Baustein in den DPD-Modus eintreten, 428.
-
In einem Beispiel tritt, wenn die Programmierverifizierung erfolgreich ist, JA-Zweig von Block 424, der NAND-Baustein in den Standby-Modus ein, Block 430. In einem Beispiel setzt der NAND den Timer oder die Schwelle auf der Basis des Array-Befehls-Standby-Werts, Block 432. Nach dem Eintritt in Standby und Setzen der geeigneten Schwelle für den Übergang von Standby zu DPD kann der NAND die Zeit im Standby verfolgen. Wenn die angegebene Zeit nicht vergangen ist, NEIN-Zweig von Block 434, lässt die Speicherungsvorrichtung den NAND-Baustein im Standby. In einem Beispiel tritt als Reaktion auf das Vergehen der Zeit, JA-Zweig von Block 434, der NAND-Baustein in den DPD-Modus ein, Block 428.
-
Der Prozess 400 veranschaulicht eine Unterscheidung im Standby-Betrieb auf der Basis sowohl des Status des Befehls als auch des Programmierungsverifizierens. Eine solche Sequenz für eine E/A oder ein DMA-Programmieren könnte folgendermaßen lauten:
- Freigeben von Baustein 0;
- Programmieren von Baustein 0 (tIO + tPROG);
- Versetzen von Baustein 0 in SBY nach tIO plus tPROG;
- Einstellen der Standby-Schwellenzeit tSTY hoch genug, damit Baustein 0 nicht zu DPD übergeht.
-
Die Sequenz kann für alle N Bausteine in der NAND-Vorrichtung wiederholt werden.
-
Eine solche Sequenz für ein Arrayprogrammieren könnte folgendermaßen lauten:
- Freigeben von Baustein 0;
- Statusprüfen;
- Wenn der Status besteht, Sperren von Baustein 0, um Baustein 0 nach tPROG in Standby (SBY) zu versetzen;
- Wenn der Programmierstatus fehlschlägt, Lesen von Daten aus SPB und dann Versetzen von Baustein 0 in den DPD-Modus.
-
Die Sequenz kann für alle N Bausteine in der NAND-Vorrichtung wiederholt werden.
-
Diese Sequenzen können Datenverlust aus dem SPB nach dem DPD-Modus mindern. Somit kann eine Ausnahme für IDPD nach NAND-Programmierung mit mehreren Bausteinen pro Kanal darin bestehen, den NAND-Baustein erst nach dem Prüfen des Status in den DPD-Modus zu versetzen.
-
5A ist eine Diagrammdarstellung eines Beispiels für mittleren Strom als Funktion des Lesetastverhältnisses für ein System, das den Übergang vom Standby zu tiefem Herunterfahren steuert. Die Darstellung 502 repräsentiert eine Simulation des mittleren Stroms (Achse 512) als Funktion des Lesetastverhältnisses (Achse 514). Die Kurve 522 repräsentiert den Fall des hohen Leckstroms bei einem traditionellen Ansatz, nur den NAND-Baustein im Standby-Modus zu lassen. Die Kurve 526 ist die untere Kurve, die sich fast genauso mit der Kurve 524 deckt. Die Kurve 526 ist etwas unterhalb der Kurve 524. Die Kurve 526 repräsentiert den Fall eines niedrigen Leckstroms oder den Fall von Schaltkreisen, die niedriges Standby-Lecken aufweisen. Wie bei Kurve 524 zu sehen ist, entstehen durch die Anwendung eines hybriden Standby- und DPD-Modus bei Schaltkreisen mit hohem Lecken Ergebnisse, die mit denen eines Falls niedrigen Leckens vergleichbar sind, was sich sehr von dem traditionellen Ansatz des hohen Leckens unterscheidet. In der Darstellung 502 ist der mittlere Strom als Funktion des Lesetastverhältnisses für den Fall aufgetragen, der t_timer = 5 x t lesen entspricht. Es ist zu beobachten, dass, da die Skala der Achse 512 logarithmisch ist, der bei niedrigem Tastverhältnis für Kurve 524 verschiedene Strom größer als eine 10x-Verbesserung gegenüber der Kurve 522 und bis zu fast 100x-Verbesserung bei sehr niedrigen Tastverhältnissen ist.
-
5B ist eine Diagrammdarstellung eines Beispiels für mittlere Lesezeit als Funktion des Lesetastverhältnisses für ein System, das den Übergang vom Standby zu tiefem Herunterfahren steuert. Die Darstellung 504 repräsentiert eine Simulation der mittleren t_lesen (tRD) (Achse 532) als Funktion des Lesetastverhältnisses (Achse 534). Die Kurve 542 repräsentiert den Fall des hohen Leckstroms mit einem traditionellen Ansatz, nur den NAND-Baustein im Standby-Modus zu lassen. Die Kurve 542 deckt sich genau mit Kurve 544, wodurch der Fall eines hohen Leckstroms mit Anwendung eines hybriden Standby- und DPD-Modus repräsentiert wird. Die Kurve 546 repräsentiert den Fall von Schaltkreisen mit niedrigem Standby-Leckstrom und einem traditionellen Verfahren des Bleibens im Standby.
-
In der Darstellung 504 ist die mittlere t lesen als Funktion des Lesetastverhältnisses für den Fall aufgetragen, der t_timer = 5x t lesen entspricht. Wie aus dem Umstand, dass sich die Kurve 544 mit der Kurve 542 deckt, zu sehen ist, wirkt sich die Anwendung des hybriden Standby- und DPD-Modus verglichen mit dem traditionellen Fall hohen Leckens nicht auf die t lesen aus. Wie aus den Kurven 542 und 544 zu sehen ist, ist die mittlere t_lesen für den Fall hohen Leckens gleich dem Fall niedrigen Leckens, wenn das Lesetastverhältnis größer als 20% (Tastverhältnis von 0,2 oder mehr) ist, und sie nimmt während leichter Arbeitslasten nur mäßig zu, wenn t_lesen weniger kritisch ist.
-
6A ist eine Blockdarstellung eines Beispiels für ein System mit einem SSD (Solid State Drive) mit Logik zum Übergang vom Standby zum tiefen Herunterfahren. Das System 602 repräsentiert Komponenten vereinbar mit dem System 100 von 1. Das System 602 umfasst ein SSD 620, das mit dem Host 610 gekoppelt ist. Der Host 610 repräsentiert eine Host-Hardwareplattform, die an das SSD 620 angeschlossen ist. Der Host 610 umfasst eine CPU (Zentralverarbeitungseinheit) 612 oder einen anderen Prozessor als Host-Prozessor. Die CPU 612 repräsentiert einen beliebigen Host-Prozessor, der Anforderungen, auf in dem SSD 620 gespeicherte Daten zuzugreifen, erzeugt, um entweder die Daten zu lesen oder Daten in die Speicherung zu schreiben. Ein solcher Prozessor kann einen Einzel- oder Mehrkernprozessor, einen Primärprozessor für eine Datenverarbeitungsvorrichtung, einen Grafikprozessor, einen Peripherieprozessor oder einen Ergänzungs- oder Hilfsprozessor oder eine Kombination umfassen. Die CPU 612 kann ein Host-OS und andere Anwendungen ausführen, um den Betrieb des Systems 602 zu bewirken.
-
Der Host 610 umfasst einen Chipsatz 614, der Hardwarekomponenten repräsentiert, die in Verbindung zwischen der CPU 612 und dem SSD 620 enthalten sein können. Zum Beispiel kann der Chipsatz 614 Verbindungsschaltungen und -logik zur Ermöglichung von Zugriff auf das SSD 620 umfassen. Somit kann die Host-Plattform 610 eine Hardwareplattform-Ansteuerverbindung zur Kopplung des SSD 620 mit dem Host 610 umfassen. Der Host 610 umfasst Hardware zur Verbindung mit dem SSD. Ähnlich umfasst das SSD 620 entsprechende Hardware zur Verbindung mit dem Host 610. In einem Beispiel umfasst der Chipsatz 614 eine Speicherungssteuerung, die eine hostseitige Steuerung ist, die von der Steuerung 640 in dem SSD 620 getrennt ist.
-
Das SSD 620 repräsentiert ein Halbleiterlaufwerk, das nichtflüchtige bzw. NV-Medien zum Speichern von Daten umfasst. Das SSD 620 umfasst eine Hardware- bzw. HW-Schnittstelle 622, die Hardwarekomponenten als Schnittstelle mit dem Host 610 repräsentiert. Zum Beispiel kann die HW-Schnittstelle 622 mit einem oder mehreren Bussen eine Schnittstelle bilden, um einen schnellen Schnittstellenstandard wie NVMe oder PCIe zu implementieren.
-
In einem Beispiel umfasst das SSD 620 nichtflüchtige bzw. NV-Medien 630 als die primäre Speicherung für das SSD 620. In einem Beispiel werden die NV-Medien 630 als mehrere Bausteine implementiert, die als N Bausteine, Baustein [0:{N-1)] dargestellt sind. N kann eine beliebige Anzahl von Vorrichtungen sein und ist oft eine binäre Zahl. Das SSD 620 umfasst eine Steuerung 640 zum Steuern des Zugriffs auf die NV-Medien 630. Die Steuerung 640 repräsentiert Hardware- und Steuerlogik in dem SSD 620 zur Ausübung von Kontrolle über die Medien. In einem Beispiel umfasst die Steuerung 640 eine Standby-Steuerung 642, die es dem SSD 620 ermöglicht, selektiv intern NV-Medien-Bausteine von einem Standby-Zustand zu einem DPD-Zustand gemäß einer beliebigen gegebenen Beschreibung übergehen zu lassen.
-
Es versteht sich, dass das System 602 nicht alle Komponenten des SSD repräsentiert. Die NV-Medien 630 sind mit einer Steuerung 632 in jedem Baustein dargestellt, die Steuerlogik in dem Baustein repräsentiert. Die Steuerlogik könnte CMOS-Schaltkreise mit hohem Lecken im Standby umfassen.
-
Das SSD 620 umfasst Stromversorgungssteuerung 626, die Hardware zur Stromversorgung der Komponenten des SSD 620 repräsentiert. Jeder NV-Baustein umfasst Stromversorgungsschaltkreise 634 zum selektiven Freigeben und Sperren von Komponenten des Bausteins zum Eintritt in einen Standby-Zustand oder einen tiefen Herunterfahrzustand. Die Stromversorgungsschaltungen 634 können als Reaktion auf die Standby-Steuerung 642 arbeiten. In einem Beispiel kann die Stromversorgungssteuerung 626 auch Stromversorgungssteuerung für einzelne NV-Bausteine bereitstellen.
-
Die NV-Bausteine umfassen Puffer 636, die Puffer für ausgewählte Zugriffsoperationen repräsentieren. In einem Beispiel überwacht die Steuerung 632 den Status von Daten in den Puffern 636, um zu bestimmen, wie vom Standby zu DPD überzugehen ist, oder ob nicht vom Standby zu DPD überzugehen ist. Obwohl es nicht speziell gezeigt ist, versteht sich, dass in einem Beispiel jeder NV-Baustein einen Standby-Timer zum Steuern des Übergangs vom Standby zu DPD umfassen kann.
-
6B ist eine Blockdarstellung eines Beispiels für ein System mit einem SSD (Solid State Drive) mit Standby-Logik in der Steuerung oder in einem NAND-Baustein zum Übergang vom Standby zu tiefem Herunterfahren. Das System 604 gibt ein Beispiel für ein System gemäß dem System 602 von 6A. Das System 604 veranschaulicht die logischen Schichten des Hosts und SSD einer Hardware-Plattform gemäß dem System 602. Das System 604 kann Software- und Firmwarekomponenten eines Beispiels für das System 602 sowie physische Komponenten repräsentieren. In einem Beispiel stellt der Host 650 ein Beispiel für den Host 610 bereit. In einem Beispiel stellt das SSD 660 ein Beispiel für das SSD 620 bereit.
-
In einem Beispiel umfasst der Host 650 ein Host-OS 652, das ein Hostbetriebssystem oder eine Software-Plattform für den Host repräsentiert. Das Host-OS 652 kann eine Plattform umfassen, auf der Anwendungen, Dienste, Agenten und/oder andere Software ausgeführt werden, und wird durch einen Prozessor ausgeführt. Das Dateisystem 654 repräsentiert Steuerlogik zum Steuern des Zugriffs auf die NV-Medien. Das Dateisystem 654 kann verwalten, welche Adressen oder Speicherstellen zum Speichern welcher Daten verwendet werden. Es gibt zahlreiche bekannte Dateisysteme, und das Dateisystem 654 kann bekannte Dateisysteme oder andere proprietäre Systeme implementieren. In einem Beispiel ist das Dateisystem 654 Teil des Host-OS 652.
-
Der Speicherungstreiber 656 repräsentiert ein oder mehrere Module auf Systemebene, die die Hardware des Hosts 650 steuern. In einem Beispiel umfassen die Treiber 656 eine Softwareanwendung zur Steuerung der Schnittstelle zum SSD 660, und steuern somit die Hardware des SSD 660. Der Speicherungstreiber 656 kann eine Kommunikationsschnittstelle zwischen dem Host und dem SSD bereitstellen.
-
Die Steuerung 670 des SSD 660 umfasst Firmware 674, die Steuersoftware/-firmware für die Steuerung repräsentiert. In einem Beispiel umfasst die Steuerung 670 die Hostschnittstelle 672, die eine Schnittstelle zum Host 650 repräsentiert. In einem Beispiel umfasst die Steuerung 670 eine Medienschnittstelle 676, die eine Schnittstelle zu dem NAND-Baustein 662 und den NV-Medien 664 repräsentiert. Die Medienschnittstelle 676 repräsentiert Steuerung, die auf Hardware der Steuerung 670 ausgeführt wird. Es versteht sich, dass die Steuerung 670 Hardware als Schnittstelle mit dem Host 650 umfasst, die als durch Host-Schnittstellensoftware/-firmware 674 gesteuert angesehen werden kann. Ähnlich versteht sich, dass die Steuerung 670 Hardware als Schnittstelle mit den NV-Medien 664 umfasst. In einem Beispiel kann Code für die Hostschnittstelle 672 Teil der Firmware 674 sein. In einem Beispiel kann Code für die Medienschnittstelle 676 Teil der Firmware 674 sein.
-
In einem Beispiel umfasst die Steuerung 670 Fehlersteuerung 680 zum Umgang mit Datenfehlern in Daten, auf die zugegriffen wird, und Eckfälle im Hinblick auf Konformität mit Signalisierungs- und Kommunikationstechnik. Die Fehlersteuerung 680 kann Implementierungen in Hardware oder Firmware oder eine Kombination von Hardware und Software umfassen.
-
Das SSD 660 umfasst mehrere NAND-Bausteine 662. In einem Beispiel umfasst der NAND-Baustein 662 Standby-Steuerung 692, die alle Logik zur Implementierung des Standby-Übergangs vom Standby zu DPD umfassen kann oder nur einen Timer umfassen kann. In einem Beispiel umfasst die Steuerung 670 Standby-Steuerung 690 zur Implementierung des internen Übergangs von Standby zu DPD. Der Übergang kann gemäß einem beliebigen beschriebenen Beispiel erfolgen.
-
7 ist eine Blockdarstellung eines Beispiels für ein Datenverarbeitungssystem, in dem Übergang vom Standby zum tiefen Herunterfahren implementiert werden kann. Das System 700 repräsentiert eine Datenverarbeitungsvorrichtung gemäß einem beliebigen vorliegenden Beispiel und kann ein Laptop-Computer, ein Desktop-Computer, ein Tablet-Computer, ein Server, ein Spiel- oder Unterhaltungssteuersystem, eine eingebettete Datenverarbeitungsvorrichtung oder eine andere elektronische Vorrichtung sein. Das System 700 stellt ein Beispiel für ein System gemäß dem System 100 bereit.
-
In einem Beispiel umfasst das Speicherungssubsystem 780 Standby-Steuerung 790. In einem Beispiel ist die Standby-Steuerung 790 in der Speicherungsvorrichtung 784 enthalten. In einem Beispiel ist die Standby-Steuerung in der Steuerung 782 enthalten. Die Standby-Steuerung 790 ermöglicht dem System 700, nichtflüchtigen Speicher mit einem kombinierten Standby-Zustand und internen tiefen Herunterfahrzustand zu verwalten, im Gegensatz zu nur einem traditionellen Standby-Zustand. Der Übergang vom Standby-Zustand zum tiefen Herunterfahrzustand kann gemäß einem beliebigen beschriebenen Beispiel erfolgen.
-
Das System 700 umfasst einen Prozessor 710 und kann eine beliebige Art von Mikroprozessor, Zentralverarbeitungseinheit (CPU), Grafikverarbeitungseinheit (GPU), Verarbeitungskern oder anderer Verarbeitungshardware oder eine Kombination umfassen, um Verarbeitung oder Ausführung von Anweisungen für das System 700 bereitzustellen. Der Prozessor 710 steuert den Gesamtbetrieb des Systems 700 und kann einen oder mehrere programmierbare Vielzweck- oder Spezialmikroprozessoren, digitale Signalprozessoren (DSP), programmierbare Steuerungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikvorrichtungen (PLD) oder eine Kombination solcher Vorrichtungen sein oder umfassen. Der Prozessor 710 kann ein Mehrkernprozessor oder ein Einzelkernprozessor sein oder einen solchen umfassen.
-
In einem Beispiel umfasst das System 700 eine mit dem Prozessor 710 gekoppelte Schnittstelle 712, die eine schnellere Schnittstelle oder Schnittstelle mit hohem Durchsatz für Systemkomponenten, die Verbindungen höherer Bandbreite benötigen, wie etwa das Speichersubsystem 720 oder Grafikschnittstellenkomponenten 740, repräsentieren kann. Die Schnittstelle 712 repräsentiert eine Schnittstellenschaltung, die eine selbstständige Komponente sein oder auf einen Prozessorbaustein integriert sein kann. Die Schnittstelle 712 kann als Schaltung auf den Prozessorbaustein oder als Baustein auf einem System-on-a-Chip (SoC) integriert sein. Wenn sie anwesend ist, bildet die Grafikschnittstelle 740 eine Schnittstelle zu Grafikkomponenten zur Bereitstellung einer visuellen Anzeige für einen Benutzer des Systems 700. Die Grafikschnittstelle 740 kann eine selbstständige Komponente sein oder auf einen Prozessorbaustein oder System-on-a-Chip (SoC) integriert sein. In einem Beispiel kann die Grafikschnittstelle 740 eine hochauflösende bzw. HD-Anzeige ansteuern, die eine Ausgabe für einen Benutzer bereitstellt. In einem Beispiel kann die Anzeige eine Touchscreen-Anzeige umfassen. In einem Beispiel erzeugt die Grafikschnittstelle 740 eine Anzeige auf der Basis von in dem Speicher 730 gespeicherten Daten oder auf der Basis von durch den Prozessor 710 ausgeführten Operationen oder beidem.
-
Das Speichersubsystem 720 repräsentiert den Hauptspeicher des Systems 700 und stellt Speicherung für durch den Prozessor 710 auszuführenden Code oder während der Ausführung einer Routine zu verwendende Datenwerte bereit. Das Speichersubsystem 720 kann eine oder mehrere Speichervorrichtungen 730 umfassen, wie etwa ROM (Festwertspeicher), Flash-Speicher, eine oder mehrere Varianten von RAM (Direktzugriffsspeicher), wie etwa DRAM, andere Speichervorrichtungen oder eine Kombination solcher Vorrichtungen. In einem Beispiel umfasst das Speichersubsystem 720 zusätzlich zu flüchtigem Speicher nichtflüchtigen Speicher. Der Speicher 730 speichert und hostet neben anderem ein Betriebssystem (OS) 732 zur Bereitstellung einer Softwareplattform zur Ausführung von Anweisungen in dem System 700. Außerdem können die Anwendungen 734 aus dem Speicher 730 auf der Softwareplattform des OS 732 ausgeführt werden. Anwendungen 734 repräsentieren Programme, die ihre eigene Betriebslogik aufweisen, um Ausführung einer oder mehrerer Funktionen durchzuführen. Die Prozesse 736 repräsentieren Agenten oder Routinen, die Hilfsfunktionen für das OS 732 oder eine oder mehrere Anwendungen 734 oder eine Kombination bereitstellen. Das OS 732, die Anwendungen 734 und die Prozesse 736 stellen Softwarelogik zur Bereitstellung von Funktionen für das System 700 bereit. In einem Beispiel umfasst das Speichersubsystem 720 einen Speichercontroller 722, der ein Speichercontroller zum Erzeugen und Ausgeben von Befehlen an den Speicher 730 ist. Es versteht sich, dass der Speichercontroller 722 ein physischer Teil des Prozessors 710 oder ein physischer Teil der Schnittstelle 712 sein könnte. Zum Beispiel kann der Speichercontroller 722 ein integrierter Speichercontroller, der mit dem Prozessor 710 auf eine Schaltung integriert ist, wie etwa auf den Prozessorbaustein integriert, oder ein System-on-a-Chip (SoC) sein.
-
Obwohl es nicht speziell dargestellt ist, versteht sich, dass das System 700 einen oder mehrere Busse oder Bussysteme zwischen Vorrichtungen umfassen kann, wie etwa einen Speicherbus, einen Grafikbus, Schnittstellenbusse oder andere. Busse oder andere Signalleitungen können Komponenten kommunikativ oder elektrisch miteinander koppeln oder die Komponenten sowohl kommunikativ als auch elektrisch koppeln. Busse können physische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Controller oder andere Schaltkreise oder eine Kombination umfassen. Busse wären zum Beispiel eine oder mehrere der Folgenden: ein Systembus, ein PCI-Bus (Peripheral Component Interconnect), ein HyperTransport- oder ISA-Bus (Industry Standard Architecture), ein SCSI-Bus (Small Computer System Interface), ein USB (Universal Serial Bus) oder ein anderer Bus oder eine Kombination.
-
In einem Beispiel umfasst das System 700 eine Schnittstelle 714, die mit der Schnittstelle 712 gekoppelt sein kann. Die Schnittstelle 714 kann eine Schnittstelle niedrigerer Geschwindigkeit als die Schnittstelle 712 sein. In einem Beispiel repräsentiert die Schnittstelle 714 eine Schnittstellenschaltung, die selbstständige Komponenten und integrierte Schaltkreise umfassen kann. In einem Beispiel sind mehrere Benutzeroberflächenkomponenten oder Peripheriekomponenten oder beides an die Schnittstelle 714 angeschlossen. Die Netzwerkschnittstelle 750 stellt dem System 700 die Möglichkeit bereit, mit entfernten Vorrichtungen (z. B. Servern oder anderen Datenverarbeitungsvorrichtungen) über ein oder mehrere Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 750 kann einen Ethernet-Adapter, drahtlose Verbindungskomponenten, Mobilfunknetz-Verbindungskomponenten, auf USB (Universal Serial Bus) oder anderen verdrahteten oder drahtlosen Standards basierende oder proprietäre Schnittstellen umfassen. Die Netzwerkschnittstelle 750 kann Daten mit einer entfernten Vorrichtung austauschen, was Senden von in Speicher gespeicherten Daten oder Empfangen von in Speicher zu speichernden Daten umfassen kann.
-
In einem Beispiel umfasst das System 700 eine oder mehrere Eingabe-/Ausgabe- bzw. E/A-Schnittstellen 760. Die E/A-Schnittstelle 760 kann eine oder mehrere Schnittstellenkomponenten umfassen, durch die ein Benutzer mit dem System 700 in Interaktion tritt (z. B. Audio, alphanumerisch, taktil/Berührung oder andere Schnittstellen). Die Peripherieschnittstelle 770 kann eine beliebige oben nicht speziell erwähnte Hardwareschnittstelle umfassen. Peripherievorrichtungen beziehen sich im Allgemeinen auf Vorrichtungen, die sich abhängig mit dem System 700 verbinden. Eine abhängige Verbindung ist eine Verbindung, bei der das System 700 die Softwareplattform oder Hardwareplattform oder beides, worauf der Betrieb ausgeführt wird, und mit der ein Benutzer in Interaktion tritt, bereitstellt.
-
In einem Beispiel beinhaltet das System 700 das Speicherungsuntersystem 780, um Daten auf beständige Weise zu speichern. In einem Beispiel können sich in gewissen Systemimplementierungen zumindest gewisse Komponenten der Speicherung 780 mit Komponenten des Speicheruntersystems 720 überlappen. Das Speicherungsuntersystem 780 beinhaltet eine oder mehrere Speicherungsvorrichtungen 784, die ein beliebiges herkömmliches Medium zum Speichern großer Datenmengen auf beständige Weise sein können oder beinhalten können, wie etwa eine oder mehrere magnetische, Festkörper oder optische Platten oder eine Kombination. Die Speicherung 784 hält Code oder Anweisungen und Daten 786 in einem persistenten Zustand (d. h. der Wert bleibt trotz Unterbrechung der Leistung zum System 700 erhalten). Die Speicherung 784 kann allgemein als ein „Speicher“ angesehen werden, obwohl der Speicher 730 typischerweise der Ausführungs- oder Betriebsspeicher ist, um dem Prozessor 710 Anweisungen bereitzustellen. Während die Speicherung 784 beständig ist, kann der Speicher 730 einen unbeständigen Speicher enthalten (d. h. der Wert oder Zustand der Daten ist unbestimmt, falls die Leistung zum System 700 unterbrochen wird). In einem Beispiel enthält das Speicherungsuntersystem 780 eine Steuerung 782 zum Verknüpfen mit der Speicherung 784. In einem Beispiel ist die Steuerung 782 ein physischer Teil der Schnittstelle 714 oder des Prozessors 710 oder kann Schaltungen oder Logik sowohl im Prozessor 710 als auch in der Schnittstelle 714 enthalten.
-
In einem Beispiel umfasst das Speicherungssubsystem 780 blockadressierbare Speichervorrichtungen, wie etwa NAND- oder NOR-Technologien. In einem Beispiel umfasst das Speicherungssubsystem 780 byteadressierbaren nichtflüchtigen Speicher, wie etwa eine dreidimensionale Kreuzpunktspeichervorrichtung oder andere byteadressierbare nichtflüchtige Speichervorrichtungen oder Speichervorrichtungen, die Chalcogenid-Phasenänderungsmaterial (z. B. Chalcogenidglas) verwenden oder die Daten auf der Grundlage eines resistiven Zustands der Speicherzelle speichern. In einem Beispiel kann der nichtflüchtige Speicher Mehrschwellenpegel-NAND-Flash-Speicher, NOR-Flash-Speicher, Einzel- oder Mehrpegel-Phasenänderungsspeicher (PCM) oder Phasenänderungsspeicher mit Schalter (PCMS), einen resistiven Speicher, Nanodrahtspeicher, ferroelektrischen Transistordirektzugriffsspeicher (FeTRAM), magnetoresistiven Direktzugriffsspeicher (MRAM), Speicher der Memristor-Technologie enthält, oder STT-MRAM (Spin Transfer Torque) oder eine Kombination der beliebigen der obigen oder anderen Speicher sein oder umfassen.
-
Die Stromquelle 702 versorgt die Komponenten des Systems 700 mit Strom. Spezieller bildet die Stromquelle 702 typischerweise eine Schnittstelle zu einer oder mehreren Stromversorgungen 704 in dem System 700, um die Komponenten des Systems 700 mit Strom zu versorgen. In einem Beispiel umfasst die Stromversorgung 704 einen Wechselstrom-Gleichstrom (Alternating Current to Direct Current, AC to DC)-Adapter für den Anschluss an eine Steckdose. Diese Wechselstromleistung kann Stromquelle 702 auf Basis erneuerbarer Energie (z. B. Solarenergie) sein. In einem Beispiel beinhaltet die Stromquelle 702 eine Gleichstrom-Stromquelle, wie beispielsweise einen externen AC/DC-Wandler. In einem Beispiel beinhaltet die Stromquelle 702 oder die Stromversorgung 704 eine drahtlose Ladehardware zum Laden über die Nähe eines Ladefeldes. In einem Beispiel kann die Stromquelle 702 eine interne Batterie oder Brennstoffzellenquelle beinhalten.
-
8 ist eine Blockdarstellung eines Beispiels für eine mobile Vorrichtung, in der Übergang vom Standby zu tiefem Herunterfahren implementiert werden kann. Das System 800 repräsentiert eine mobile Datenverarbeitungsvorrichtung, wie etwa ein Datenverarbeitungs-Tablet, ein Mobiltelefon oder Smartphone, eine tragbare Datenverarbeitungsvorrichtung oder andere mobile Vorrichtung oder eine eingebettete Datenverarbeitungsvorrichtung. Es versteht sich, dass bestimmte der Komponenten allgemein gezeigt sind und nicht alle Komponenten einer solchen Vorrichtung in dem System 800 gezeigt sind. Das System 800 stellt ein Beispiel für ein System gemäß dem System 100 bereit.
-
In einem Beispiel umfasst das Speichersubsystem 860 Standby-Steuerung 890. In einem Beispiel ist die Standby-Steuerung 890 in der Speichervorrichtung 862 enthalten. In einem Beispiel ist die Standby-Steuerung 890 in der Steuerung 864 enthalten. Die Standby-Steuerung 890 ermöglicht dem System 800 die Verwaltung von nichtflüchtigem Speicher mit einem kombinierten Standby-Zustand und internen tiefen Herunterfahrzustand, im Gegensatz zu nur einem traditionellen Standby-Zustand. Der Übergang vom Standby-Zustand zum tiefen Herunterfahrzustand kann gemäß einem beliebigen beschriebenen Beispiel erfolgen.
-
Das System 800 enthält den Prozessor 810, der die primären Verarbeitungsvorgänge des Systems 800 ausführt. Der Prozessor 810 kann eine oder mehrere physische Vorrichtungen beinhalten, wie beispielsweise Mikroprozessoren, Anwendungsprozessoren, Mikrocontroller, programmierbare Logikvorrichtungen oder andere Verarbeitungsmittel. Die von dem Prozessor 810 ausgeführten Verarbeitungsvorgänge beinhalten die Ausführung einer Betriebssystemplattform oder eines Betriebssystems, auf dem Anwendungen und Funktionen von Vorrichtungen ausgeführt werden. Die Verarbeitungsvorgänge umfassen Vorgänge im Zusammenhang mit der E/A (Input/Output) im Zusammenhang mit einem menschlichen Benutzer oder mit sonstigen Vorrichtungen, Vorgänge im Zusammenhang mit der Energieverwaltung, Vorgänge im Zusammenhang mit der Verbindung des Systems 800 mit einer anderen Vorrichtung oder einer Kombination davon. Die Verarbeitungsvorgänge können auch Vorgänge im Zusammenhang mit einer Audio-E/A, einer Display-E/A oder sonstigen Schnittstellen oder einer Kombination davon beinhalten. Der Prozessor 810 kann Daten, die in dem Speicher gespeichert sind, ausführen. Der Prozessor 810 kann Daten, die in dem Speicher gespeichert sind, schreiben oder bearbeiten.
-
In einem Beispiel enthält das System 800 einen oder mehrere Sensoren 812. Die Sensoren 812 stellen eingebettete Sensoren oder Schnittstellen zu externen Sensoren oder eine Kombination davon dar. Die Sensoren 812 ermöglichen es dem System 800, einen oder mehrere Zustände einer Umgebung oder einer Vorrichtung zu überwachen oder zu erkennen, in der das System 800 implementiert ist. Die Sensoren 812 können Umgebungssensoren (wie Temperatursensoren, Bewegungsmelder, Lichtmelder, Kameras, chemische Sensoren (z. B. Kohlenmonoxid-, Kohlendioxid- oder sonstige chemische Sensoren)), Drucksensoren, Beschleunigungssensoren, Gyroskope, medizinische oder physiologische Sensoren (z. B. Biosensoren, Herzfrequenzmesser oder andere Sensoren zur Erkennung physiologischer Eigenschaften) oder sonstige Sensoren oder eine Kombination davon beinhalten. Die Sensoren 812 können auch Sensoren für biometrische Systeme wie Fingerabdruckerkennungssysteme, Gesichtserfassungs- oder -erkennungssysteme oder andere Systeme beinhalten, die Merkmale eines Benutzers erfassen oder erkennen. Die Sensoren 812 sollten in einem weiten Sinne verstanden werden und nicht auf die vielen verschiedenen Arten von Sensoren beschränkt werden, die im Zusammenhang mit dem System 800 implementiert werden können. In einem Beispiel sind ein oder mehrere Sensoren 812 über eine mit dem Prozessor 810 integrierte Frontend-Schaltung mit dem Prozessor 810 verbunden. In einem Beispiel sind ein oder mehrere Sensoren 812 über eine andere Komponente des Systems 800 mit dem Prozessor 810 verbunden.
-
In einem Beispiel enthält das System 800 das Audiosubsystem 820, das Hardware (z. B. Audio-Hardware und Audio-Schaltungen) und Software(z. B. Treiber, Codecs)-Komponenten darstellt, die der Bereitstellung von Audiofunktionen für die Computervorrichtung zugeordnet sind. Audiofunktionen können den Lautsprecher- oder Kopfhörerausgang sowie den Mikrofoneingang beinhalten. Vorrichtungen für solche Funktionen können in das System 800 integriert sein oder mit dem System 800 verbunden werden. In einem Beispiel interagiert ein Benutzer mit dem System 800, indem er akustische Befehle erteilt, die von dem Prozessor 810 empfangen und verarbeitet werden.
-
Das Anzeigesubsystem 830 stellt Hardware (z. B. Anzeigegeräte) und Softwarekomponenten (z. B. Treiber) dar, die eine visuelle Anzeige zur Präsentation für einen Benutzer vorsehen. In einem Beispiel weist die Anzeige taktile Komponenten oder Touchscreen-Elemente auf, die ein Benutzer zur Interaktion mit der Computervorrichtung verwenden kann. Das Anzeigesubsystem 830 beinhaltet die Anzeigeschnittstelle 832, die die jeweilige Bildschirm- oder Hardwarevorrichtung beinhaltet, die verwendet wird, um einem Benutzer eine Anzeige zur Verfügung zu stellen. In einem Beispiel beinhaltet die Anzeigeschnittstelle 832 eine von dem Prozessor 810 getrennte Logik (z. B. einen Grafikprozessor), um mindestens eine Verarbeitung im Zusammenhang mit der Anzeige durchzuführen. In einem Beispiel beinhaltet das Anzeigesubsystem 830 eine Touchscreen-Vorrichtung, die einem Benutzer sowohl eine Ausgabe als auch eine Eingabe ermöglicht. In einem Beispiel beinhaltet das Anzeigesubsystem 830 eine hochauflösende (High Definition, HD-) oder ultrahochauflösende (Ultra High Definition, UHD-) Anzeige, die einem Benutzer eine Ausgabe liefert. In einem Beispiel beinhaltet das Anzeigesubsystem 830 eine Touchscreen-Anzeige oder steuert eine solche an. In einem Beispiel erzeugt das Anzeigesubsystem 830 Anzeigeinformationen auf der Grundlage der in dem Speicher gespeicherten Daten oder auf der Grundlage der von dem Prozessor 810 ausgeführten Operationen oder beidem.
-
Die E/A-Steuerung 840 stellt Hardwaregeräte und Softwarekomponenten dar, die sich auf eine Interaktion mit einem Benutzer beziehen. Die E/A-Steuerung 840 kann zur Verwaltung von Hardware, die Teil des Audio-Subsystems 820 oder des Anzeigesubsystems 830 oder beides ist, arbeiten. Zusätzlich veranschaulicht die E/A-Steuerung 840 einen Verbindungspunkt für zusätzliche Vorrichtungen, die mit dem System 800 verbunden sind, über den ein Benutzer mit dem System interagieren kann. Vorrichtungen, die an das System 800 angeschlossen werden können, können beispielsweise Mikrofonvorrichtungen, Lautsprecher- oder Stereosysteme, Videosysteme oder andere Anzeigevorrichtungen, Tastatur- oder Tastaturvorrichtungen oder andere E/A-Vorrichtungen zur Verwendung mit speziellen Anwendungen wie Kartenlesern oder anderen Vorrichtungen sein.
-
Wie vorstehend erwähnt, kann die E/A-Steuerung 840 mit dem Audio-Subsystem 820 oder dem Anzeigesubsystem 830 oder mit beidem interagieren. So kann beispielsweise die Eingabe über ein Mikrofon oder eine andere Audiovorrichtung Eingaben oder Befehle für eine oder mehrere Anwendungen oder Funktionen des Systems 800 vorsehen. Zusätzlich kann anstelle oder zusätzlich zu dem Display-Ausgang ein Audioausgang vorgesehen werden. In einem weiteren Beispiel, wenn das Anzeigesubsystem einen Touchscreen beinhaltet, wirkt die Anzeigevorrichtung auch als ein Eingabegerät, das zumindest teilweise von der E/A-Steuerung 840 verwaltet werden kann. Es können auch zusätzliche Tasten oder Schalter für eine Vorrichtung 800 vorhanden sein, um E/A-Funktionen vorzusehen, die von der E/A-Steuerung 840 verwaltet werden.
-
In einem Beispiel verwaltet die Steuerung 840 Vorrichtungen wie Beschleunigungssensoren, Kameras, Lichtsensoren oder andere Umgebungssensoren, Gyroskope, Global Positioning System (GPS) oder eine andere Hardware, die in das System 800 integriert werden kann, oder Sensoren 812. Die Eingabe kann Teil einer unmittelbaren Benutzerinteraktion sowie eine Bereitstellung von Umgebungseinflüssen für das System sein, um dessen Funktionen zu beeinflussen (wie z. B. eine Filterung hinsichtlich Rauschens, ein Anpassen der Anzeigen zur Helligkeitserkennung, ein Anwenden eines Blitzes für eine Kamera oder andere Funktionen).
-
In einem Beispiel beinhaltet das System 800 ein Energiemanagement 850, das den Stromverbrauch der Batterie, das Laden der Batterie und Funktionen im Zusammenhang mit dem Energiesparbetrieb verwaltet. Das Energiemanagement 850 verwaltet die Energie aus der Stromquelle 852, die die Komponenten des Systems 800 mit Strom versorgt. In einem Beispiel beinhaltet die Stromquelle 852 einen Wechselstrom-Gleichstrom (Alternating Current to Direct Current, AC to DC)-Adapter für den Anschluss an eine Steckdose. Diese Wechselstromleistung kann auf erneuerbarer Energie (z. B. Solarenergie, Bewegungsenergie) basieren. In einem Beispiel beinhaltet die Stromquelle 852 nur Gleichstrom, der von einer Gleichstromquelle, wie beispielsweise einem externen AC/DC-Wandler, vorgesehen werden kann. In einem Beispiel beinhaltet die Stromquelle 852 eine drahtlose Ladehardware zum Laden über die Nähe eines Ladefeldes. In einem Beispiel kann die Stromquelle 852 eine interne Batterie oder Brennstoffzellenquelle beinhalten.
-
Das Speichersubsystem 860 beinhaltet die Speichervorrichtung(en) 862 zum Speichern von Informationen im System 800. Das Speichersubsystem 860 kann nichtflüchtige (d. h. der Zustand ändert sich nicht, wenn die Stromversorgung der Speichervorrichtung unterbrochen wird) oder flüchtige (d. h. der Zustand ist unbestimmt, wenn die Stromversorgung der Speichervorrichtung unterbrochen wird) Speichervorrichtungen oder eine Kombination davon beinhalten. Der Speicher 860 kann Anwendungsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten sowie Systemdaten (ob langfristig oder temporär) im Zusammenhang mit der Ausführung der Anwendungen und Funktionen des Systems 800 speichern. In einem Beispiel beinhaltet das Speichersubsystem 860 die Speichersteuerung 864 (die auch als Teil der Steuerung des Systems 800 und gegebenenfalls als Teil des Prozessors 810 betrachtet werden könnte). Die Speichersteuerung 864 beinhaltet einen Planer zum Erzeugen und Ausgeben von Befehlen, um den Zugriff auf die Speichervorrichtung 862 zu steuern.
-
Die Konnektivität 870 umfasst Hardwaregeräte (z. B. drahtlose oder drahtgebundene Anschlüsse und Kommunikationshardware oder eine Kombination aus drahtgebundener und drahtloser Hardware) und Softwarekomponenten (z. B. Treiber, Protokollstapel), um dem System 800 eine Kommunikation mit externen Vorrichtungen zu ermöglichen. Die externe Vorrichtung kann auf separaten Vorrichtungen, wie beispielsweise anderen Computervorrichtungen, drahtlosen Zugangspunkten oder Basisstationen, sowie Peripheriegeräten wie Headsets, Druckern oder sonstigen Vorrichtungen basieren. In einem Beispiel tauscht das System 800 Daten mit einer externen Vorrichtung zur Speicherung in dem Speicher oder zur Anzeige auf einer Anzeigevorrichtung aus. Die ausgetauschten Daten können Daten beinhalten, die in dem Speicher zu speichern sind, oder Daten, die bereits in dem Speicher gespeichert sind, um Daten zu lesen, zu schreiben oder zu bearbeiten.
-
Die Konnektivität 870 kann mehrere verschiedene Arten von Konnektivität beinhalten. Zur Verallgemeinerung wird das System 800 mit einer Mobilfunkverbindung 872 und einer Mobilfunkverbindung 874 dargestellt. Die Mobilfunkverbindung 872 bezieht sich im Allgemeinen auf eine Mobilfunkverbindung, die von Mobilfunkbetreibern vorgesehen wird, wie beispielsweise über GSM (globales System für die mobile Kommunikation) oder Variationen oder Derivate, CDMA (Code Division Multiple Access) oder Variationen oder Derivate, TDM (Time Division Multiplexing) oder Variationen oder Derivate, LTE (Long Term Evolution - auch als „4G“ bezeichnet) oder sonstige Mobilfunkstandards. Die drahtlose Konnektivität 874 bezieht sich auf eine drahtlose Konnektivität, die nicht zellular ist, und kann persönliche Netzwerke (wie Bluetooth), lokale Netzwerke (wie WiFi) oder Weitverkehrsnetzwerke (wie WiMax), oder eine andere drahtlose Kommunikation oder eine Kombination davon beinhalten. Eine drahtlose Kommunikation bezieht sich auf die Übertragung von Daten unter Verwendung von modulierter elektromagnetischer Strahlung durch ein nicht-festes Medium. Die drahtgebundene Kommunikation erfolgt über ein festes Kommunikationsmedium.
-
Periphere Verbindungen 880 beinhalten Hardwareschnittstellen und Anschlüsse sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) zum Herstellen von Peripherieverbindungen. Es versteht sich, dass das System 800 sowohl eine Peripherievorrichtung („zu“ 882) für andere Computergeräte sein könnte, als auch Peripherievorrichtungen („von“ 884) aufweisen könnte, die mit ihr verbunden sind. Die Vorrichtung 800 verfügt üblicherweise über einen „Docking“-Anschluss, um sich mit anderen Computergeräten verbinden zu lassen, z. B. um Inhalte auf dem System 800 zu verwalten (z. B. herunterzuladen, hochzuladen, zu ändern, zu synchronisieren). Darüber hinaus kann ein Docking-Anschluss es ermöglichen, das System 800 mit speziellen Peripheriegeräten zu verbinden, so dass das System 800 die Ausgabe von Inhalten, z. B. an audiovisuelle oder andere Systeme, steuern kann.
-
Zusätzlich zu einem proprietären Docking-Anschluss oder einer anderen proprietären Verbindungshardware kann das System 800 periphere Verbindungen 880 über gängige oder standardbasierte Anschlüsse herstellen. Gängige Typen können einen Universal Serial Bus (USB)-Anschluss (der eine Vielzahl von verschiedenen Hardwareschnittstellen beinhalten kann), einen DisplayPort einschließlich MiniDisplayPort (MDP), eine High Definition Multimedia-Schnittstelle (HDMI), oder einen anderen Typ beinhalten.
-
Im Allgemeinen umfasst mit Bezug auf die vorliegenden Beschreibungen in einem Beispiel eine nichtflüchtige Speichervorrichtung Folgendes: einen Speicherbaustein mit nichtflüchtigen Speicherzellen, wobei der Speicherbaustein Schaltkreise umfasst, die Stromlecken aufweisen, wenn sich der Speicherbaustein in einem Standby-Zustand befindet, wobei der Speicherbaustein bereit ist, einen auszuführenden Zugriffsbefehl zu empfangen; und Stromversorgungs-Torschaltungsschaltkreise zum selektiven Übergehenlassen des Speicherbausteins von dem Standby-Zustand zu einem tiefen Herunterfahrzustand, wobei der Speicherbaustein alle Zugriffsbefehle ignorieren soll, als Reaktion auf einen Trigger von einem Timer, wobei der Timer eine Standby-Zeit als Reaktion auf Eintritt des Speicherbausteins in den Standby-Zustand verfolgen soll und der Timer den Übergang zum tiefen Herunterfahrzustand nach einer Schwellenzeit im Standby-Zustand triggern soll.
-
In einem Beispiel umfassen die Schaltkreise, die Stromlecken aufweisen, CMOS-Steuerschaltkreise (Komplementär-Metalloxidhalbleiter) auf dem Speicherbaustein. In einem Beispiel ist die Schwellenzeit dynamisch programmierbar. In einem Beispiel ist die Schwellenzeit für einen Standby-Zustand nach einem Array-Befehl anders als für ein Standby nach einem E/A(Eingabe/Ausgabe)-Befehl. In einem Beispiel ist die Schwellenzeit für das Standby nach dem E/A-Befehl kürzer. In einem Beispiel umfassen die nichtflüchtigen Speicherzellen NAND- (Nicht-AND-) Speicherzellen. In einem Beispiel ist der Timer Teil des Speicherbausteins. In einem Beispiel steuert eine Speicherungssteuerung zum Steuern mehrerer Speicherbausteine selektives Übergehenlassen durch die Stromversorgungs-Torschaltungsschaltkreise. In einem Beispiel soll für Standby nach einem Programmierbefehl der Timer die Standby-Zeit nur dann verfolgen, wenn eine Programmieroperation für den Programmierbefehl verifiziert wird. In einem Beispiel umfasst die Schwellenzeit mindestens fünfmal eine Lesezeit für den Speicherbaustein.
-
Im Allgemeinen umfasst mit Bezug auf die vorliegenden Beschreibungen in einem Beispiel ein System Folgendes: mehrere Speicherbausteine mit nichtflüchtigen Speicherzellen, wobei die Speicherbausteine Schaltkreise umfassen, die Stromlecken aufweisen, wenn sich der Speicherbaustein in einem Standby-Zustand befindet, wobei der Speicherbaustein bereit ist, einen auszuführenden Zugriffsbefehl zu empfangen; und einen Timer zum Verfolgen einer Standby-Zeit als Reaktion auf Eintritt eines der mehreren Bausteine in den Standby-Zustand, wobei der Timer einen Übergang eines der mehreren Speicherbausteine in einen tiefen Herunterfahrzustand nach einer Schwellenzeit im Standby-Zustand triggern soll, wobei der Speicherbaustein im tiefen Herunterfahrzustand alle Zugriffsbefehle ignorieren soll.
-
In einem Beispiel umfassen die Schaltkreise, die Stromlecken aufweisen, CMOS-Steuerschaltkreise (Komplementär-Metalloxidhalbleiter) auf dem Speicherbaustein. In einem Beispiel ist die Schwellenzeit dynamisch programmierbar. In einem Beispiel ist die Schwellenzeit für einen Standby-Zustand nach einem Array-Befehl anders als für ein Standby nach dem E/A-Befehl. In einem Beispiel ist die Schwellenzeit für das Standby nach dem E/A-Befehl kürzer. In einem Beispiel umfassen die nichtflüchtigen Speicherzellen NAND- (Nicht-AND-) Speicherzellen. In einem Beispiel ist der Timer Teil der mehreren Bausteine, wobei jeder Baustein einen getrennten Standby-Timer umfasst. In einem Beispiel umfasst das System ferner eine Speicherungssteuerung zum Verwalten des Zugriffs auf die mehreren Bausteine, wobei die Speicherungssteuerung selektiven Übergang der Speicherbausteine vom Standby-Zustand in den tiefen Herunterfahrzustand steuern soll. In einem Beispiel soll für Standby nach einem Programmierbefehl der Timer die Standby-Zeit nur dann verfolgen, wenn eine Programmieroperation für den Programmierbefehl verifiziert wird. In einem Beispiel umfasst die Schwellenzeit mindestens fünfmal eine Lesezeit für den Speicherbaustein. In einem Beispiel umfasst das System ferner eine mit den mehreren Bausteinen gekoppelte Host-Prozessorvorrichtung; und/oder eine kommunikativ mit einem Host-Prozessor gekoppelte Anzeige; und/oder eine kommunikativ mit einem Host-Prozessor gekoppelte Netzwerkschnittstelle; und/oder eine Batterie zur Versorgung des Systems.
-
Die hierin dargestellten Flussdiagramme zeigen exemplarisch Sequenzen verschiedener Verfahrensvorgänge. Die Flussdiagramme können sowohl Vorgänge, die von einer Software- oder Firmware-Routine auszuführen sind, als auch physikalische Vorgänge anzeigen. Ein Flussdiagramm kann ein Beispiel für die Implementierung von Zuständen eines endlichen Automaten (Finite State Machine, FSM) veranschaulichen, der in Hardware und/oder Software implementiert werden kann. Obwohl in einer speziellen Abfolge oder Sequenz dargestellt, kann die Reihenfolge der Vorgänge, sofern nicht anderslautend angegeben, geändert werden. Daher sind die veranschaulichten Darstellungen nur als Beispiele zu verstehen, und das Verfahren kann in einer anderen Reihenfolge durchgeführt werden, und einige Vorgänge können parallel ausgeführt werden. Zusätzlich können eine oder mehrere Vorgänge weggelassen werden, so dass nicht alle Implementierungen alle Aktionen durchführen.
-
Soweit hierin verschiedene Operationen oder Funktionen beschrieben sind, können sie als Softwarecode, Anweisungen, Konfiguration und/oder Daten beschrieben oder definiert werden. Der Inhalt kann als ein unmittelbar ausführbarer („Objekt-“ oder in Form eines „ausführbaren“) Codes, als Quellcode oder Differenzcode („Delta-“ oder „Patch-“ Code) vorliegen. Der Softwareinhalt der hierin beschriebenen Ausführungsformen kann über einen Industrieartikel mit dem darauf gespeicherten Inhalt oder über ein Verfahren zum Betreiben einer Kommunikationsschnittstelle zum Senden von Daten über die Kommunikationsschnittstelle vorgesehen werden. Ein maschinenlesbares Speichermedium kann eine Maschine veranlassen, die beschriebenen Funktionen oder Operationen auszuführen, und beinhaltet jeden Mechanismus, der Informationen in einer für eine Maschine zugänglichen Form speichert (z. B. eine Computervorrichtung, ein elektronisches System oder dergleichen), wie z. B. beschreibbare/nicht beschreibbare Medien (z. B. Nur-Lese-Speicher (ROM), Direktzugriffsspeicher (RAM), Magnetplattenspeichermedien, optische Speichermedien, Flash-Speichervorrichtungen und dergleichen). Eine Kommunikationsschnittstelle beinhaltet jeden Mechanismus, der mit einem fest verdrahteten, drahtlosen, optischen oder sonstigen Medium verbunden ist, um mit einer anderen Vorrichtung zu kommunizieren, wie beispielsweise eine Speicherbusschnittstelle, eine Prozessorbusschnittstelle, eine Internetverbindung, eine Festplattensteuerung und dergleichen. Die Kommunikationsschnittstelle kann durch ein Vorsehen von Konfigurationsparametern und/oder ein Senden von Signalen konfiguriert werden, um die Kommunikationsschnittstelle dafür vorzubereiten, ein Datensignal vorzusehen, das den Softwareinhalt beschreibt. Auf die Kommunikationsschnittstelle kann über einen oder mehrere Befehle oder Signale zugegriffen werden, die an die Kommunikationsschnittstelle gesendet werden.
-
Verschiedene hierin beschriebene Komponenten können ein Mittel zur Durchführung der beschriebenen Operationen oder Funktionen sein. Jede hierin beschriebene Komponente beinhaltet eine Software, Hardware oder eine Kombination davon. Die Komponenten können als Softwaremodule, Hardwaremodule, Spezialhardware (z. B. anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltungen (ASICs), digitale Signalprozessoren (DSPs) usw.), Embedded Controller, fest verdrahtete Schaltungen usw. implementiert werden.
-
Zusätzlich zu dem hierin Beschriebenen können verschiedene Modifikationen an den offenbarten Ausführungsformen und Implementierungen der Erfindung vorgenommen werden, ohne von ihrem Schutzumfang abzuweichen. Daher sollten die Darstellungen und Beispiele hierin in einem veranschaulichenden und nicht in einem beschränkenden Sinne ausgelegt werden. Der Schutzumfang der Erfindung sollte ausschließlich anhand der folgenden Ansprüche gemessen werden.