DE102007025948A1 - Verlängern der Lebensdauer einer Batterie eines mobilen Computersystems in einem reduzierten Leistungszustand mittels Speicherkompression - Google Patents

Verlängern der Lebensdauer einer Batterie eines mobilen Computersystems in einem reduzierten Leistungszustand mittels Speicherkompression Download PDF

Info

Publication number
DE102007025948A1
DE102007025948A1 DE102007025948A DE102007025948A DE102007025948A1 DE 102007025948 A1 DE102007025948 A1 DE 102007025948A1 DE 102007025948 A DE102007025948 A DE 102007025948A DE 102007025948 A DE102007025948 A DE 102007025948A DE 102007025948 A1 DE102007025948 A1 DE 102007025948A1
Authority
DE
Germany
Prior art keywords
memory
power state
transition
data
compression logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102007025948A
Other languages
English (en)
Inventor
Sai Beaverton Balasundaram
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102007025948A1 publication Critical patent/DE102007025948A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/141Battery and back-up supplies
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Abstract

Ausführungsformen der Erfindung sind allgemein auf Systeme, Verfahren und Vorrichtungen zum Verlängern der Batterielebensdauer eines mobilen Rechensystems durch Speicherkomprimierung gerichtet. Bei einigen Ausführungsformen enthält eine integrierte Schaltung eine Komprimierungslogik zum Komprimieren von mindestens einem Teil der Daten im flüchtigen Speicher unabhängig von einem Betriebssystem. Die Komprimierungslogik kann die Daten als Reaktion auf eine Indikation zum Übergang in einen verringerten Leistungszustand komprimieren.

Description

  • TECHNISCHES GEBIET
  • Ausführungsformen der Erfindung betreffen allgemein das Gebiet integrierter Schaltungen, und insbesondere Systeme, Verfahren und Vorrichtungen zum Verlängern der Batterielebensdauer eines mobilen Rechensystems in einem verringerten Leistungszustand durch Speicherkomprimierung.
  • STAND DER TECHNIK
  • Mobile Rechensysteme nutzen Batterien zum Bereitstellen einer Energiequelle. Während die Anforderungen an die Batterieleistung mit der Zeit gestiegen sind, hat die Batterieleistung nicht mit den Anforderungen Schritt gehalten. Eine der Möglichkeiten zur Verlängerung der Batterielebensdauer ist die Verringerung der durch die Komponenten des Rechensystems verbrauchten Energie.
  • Speichereinheiten (wie Dynamic Random Access Memory (DRAM)-Einheiten) machen einen wesentlichen Teil der durch ein Rechensystem verbrauchten Energie aus, insbesondere wenn sich das Rechensystem in einem verringerten Leistungszustand befindet. Zum Beispiel kann, in Abhängigkeit von den Eigenschaften des verringerten Leistungszustandes und der Größe des installierten Speichers, die durch die DRAM-Einheiten verbrauchte Energie nahezu 50% der gesamten Systemenergie betragen. Eine geplante Erhöhung des minimal empfohlenen Speichers für Laptops, gekoppelt mit zukünftigen DRAM-Einheiten, welche höhere Dichten aufweisen, werden den Energieverbrauch des Systemspeichers noch weiter erhöhen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen der Erfindung sind beispielhaft und nicht einschränkend in den Figuren der beigefügten Zeichnungen veranschaulicht, in denen sich gleiche Bezugszahlen auf ähnliche Elemente beziehen.
  • 1 ist ein Blockdiagramm, welches ausgewählte Aspekte eines Rechensystems gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 2 ist ein Blockdiagramm, welches ausgewählte Aspekte eines Rechensystems gemäß einer alternativen Ausführungsform der Erfindung veranschaulicht.
  • 3 ist ein Blockdiagramm, welches ausgewählte Aspekte der Komprimierungslogik gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 4A bzw. 4B veranschaulichen ausgewählte Aspekte eines Speicherarrays bevor und nachdem die Daten innerhalb des Speicherarrays komprimiert wurden, gemäß einer Ausführungsform der Erfindung.
  • 5 ist ein Flußdiagramm, welches ausgewählte Aspekte eines Verfahrens zum Verlängern der Batterielebensdauer eines mobilen Systems durch Speicherkomprimierung gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 6 ist ein Blockdiagramm, welches ausgewählte Aspekte eines elektronischen Systems gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 7 ist ein Blockdiagramm, welches ausgewählte Aspekte eines elektronischen Systems gemäß einer alternativen Ausführungsform der Erfindung veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Ausführungsformen der Erfindung sind im allgemeinen auf Systeme, Verfahren und Vorrichtungen zum Verlängern der Batterielebensdauer eines mobilen Rechensystems durch Speicherkomprimierung gerichtet. Bei einigen Ausführungsformen wird der Inhalt des Hauptspeichers eines Systems vor dem Wechsel in einen verringerten Leistungszustand komprimiert. Bei solchen Ausführungsformen müssen nur die Abschnitte des Hauptspeichers, welche die komprimierten Daten enthalten, aktualisiert werden. Die übrigen Abschnitte des Speichers können abgeschaltet werden, wodurch die verbrauchte Energiemenge verringert und somit die Batterielebensdauer verlängert wird.
  • 1 ist ein Blockdiagramm, welches ausgewählte Aspekte eines mobilen Rechensystems implementiert gemäß einer Ausführungsform der Erfindung veranschaulicht. Der Begriff „mobiles Rechensystem" betrifft allgemein zum Beispiel Laptops, Palmtops, Tablet PCs, Handhelds, Mobiltelefone, PDAs und ähnliches. Das System 100 umfaßt einen Prozessor(en) 102, ein Speichersubsystem 110, einen Dauerspeicher 140 und einen nichtflüchtigen Speicher 150. Bei alternativen Ausführungsformen kann das System 100 mehr Elemente, weniger Elemente und/oder andere Elemente enthalten.
  • Der Prozessor 102 kann jede Art von Verarbeitungseinheit sein. Zum Beispiel kann der Prozessor 102 ein Mikroprozessor, ein Mikrocontroller oder ähnliches sein. Ferner kann der Prozessor 102 jede Anzahl von Verarbeitungskernen oder jede Anzahl von separaten Prozessoren enthalten.
  • Das Speichersubsystem 110 enthält den Speichercontroller 112 und die Speichermodule 118. Der Speichercontroller 112 stellt eine Schnittstelle zwischen dem (den) Prozessor(en) 102 und den anderen Elementen gezeigt in 1 bereit. Der Speichercontroller 112 enthält die Komprimierungslogik 114 und den Eingabe/Ausgabe-Anschluß 116. Der Eingabe/Ausgabe (E/A)-Anschluß 116 kann einen Empfänger, einen Sender und zugehörige Schaltungen zum Austauschen von Informationen mit anderen integrierten Schaltungen enthalten.
  • Bei einigen Ausführungsformen enthält die Komprimierungslogik 114 Logik zum Komprimieren der Daten, welche in den Speichermodulen 118 gespeichert sind (z.B. einen Komprimierungsalgorithmus). Die Komprimierungslogik 114 kann auch Logik für den selektiven Übergang dieser Speichereinheiten 120, welche komprimierte Daten enthalten (z.B. 122), in einen Selbstaktualisierungszustand enthalten. Die übrigen Speichereinheiten (z.B. andere als 122) können abgeschaltet werden. Da so die Anzahl von Speichereinheiten verringert wird, welche sich im Selbstaktualisierungszustand befinden, führt dies auch zu einer entsprechenden Verringerung in der durch das System verbrauchten Energiemenge. Der Begriff „Selbstaktualisierungszustand" betrifft allgemein einen Zustand, in welchem die Zellen der Speichereinheit periodisch aktualisiert werden. Ausgewählte Aspekte der Komprimierungslogik 114 werden unten unter Bezugnahme auf 3 weiter diskutiert.
  • Bei einigen Ausführungsformen komprimiert die Komprimierungslogik 114 die Daten als Reaktion auf eine Indikation zum Übergang in einen verringerten Leistungszustand. Ein Benutzer (oder ein anderes Rechensystem) kann zum Beispiel einen allgemein verringerten Leistungszustand initiieren (z.B. durch das Schließen des Deckels eines Laptops). Als Reaktion auf die Eingabe sendet der Prozessor 102 einen Befehl 104 an den Speichercontroller, durch welchen dieser angewiesen wird, in einen verringerten Leistungszustand zu wechseln. Der Begriff „verringerter Leistungszustand" betrifft allgemein jeden Leistungszustand, in welchem das Rechensystem weniger Energie verbraucht als es im komplett aktiven Leistungszustand verbraucht. Zu Beispielen verringerter Leistungszustände zählen Suspend, Standby, Soft-Off und ähnliches. Bei einigen Ausführungsformen ist der verringerte Leistungszustand der Suspend-to-RAM (Random Access Memory)-Zustand (gelegentlich als der S3-Zustand bezeichnet). Das Komprimieren der Daten wird unten unter Bezugnahme auf 5 weiter diskutiert.
  • Der Dauerspeicher 140 stellt die dauerhafte Speicherung von Daten und Code für das System 100 bereit. Der Dauerspeicher 140 kann eine Magnetplatte oder eine optische Platte und ihr entsprechendes Laufwerk enthalten. Wie durch die gestrichelte Linie angegeben, enthält bei einigen alternativen Ausführungsformen der Dauerspeicher 140 die Komprimierungssoftware 142. Die Komprimierungssoftware 142 kann Aspekte der Komprimierungslogik 114 erhöhen und/oder ersetzen. Zum Beispiel kann bei einigen Ausführungsformen die Komprimierungssoftware 142 einen Komprimierungsalgorithmus für die Komprimierungslogik 114 bereitstellen.
  • Der nichtflüchtige Speicher 150 stellt nichtflüchtige Speicherung für Code und/oder Daten bereit, welche zum Beispiel während des Systemstarts und/oder der Initiierung verwendet werden können. Der nichtflüchtige Speicher 150 kann eine Flash-Speichereinheit und seine Schnittstelle enthalten. Bei einigen Ausführungsformen enthält der nichtflüchtige Speicher 150 die Konfigurationsdaten 152. Die Konfigurationsdaten 152 stellen Informationen über die Konfiguration der Speichermodule 118 und/oder der Speichereinheiten 120 bereit. Zum Beispiel können die Konfigurationsdaten 152 die Speichermodularten (z.B. x4, x8, x16), die Größe der Speichereinheiten und ähnliches spezifizieren. Wie unten weiter diskutiert wird, kann die Komprimierungslogik 114 auf die Konfigurationsdaten 152 zugreifen, um die Konfiguration von einem oder mehreren Aspekten des Speichersubsystems 110 zu bestimmen.
  • Die Speichermodule 118 können jede einer Vielzahl von Strukturen und Pin-Konfigurationen aufweisen. Zum Beispiel können die Speichermodule 118 als Dual Inline Memory Modules (DIMMs), Small Outline DIMMs (SO-DIMMs), Micro DIMMs und ähnliches strukturiert sein. Die Speichermodule 118 können für die Verbindung 124 mit einem elektrischen Kontaktverbinder gekoppelt sein, welcher nahezu jede Pin-Konfiguration, einschließlich 240-Pin, 144-Pin, 72-Pin usw. aufweist.
  • Bei alternativen Ausführungsformen befindet sich die Komprimierungslogik 114 auf einer anderen integrierten Schaltung als dem Speichercontroller. Zum Beispiel kann sich die Komprimierungslogik 114 auf einem separaten Mikrocontroller innerhalb des Chipsatzes befinden. Alternativ dazu kann sich die Komprimierungslogik 114 auf dem Speichermodul 118 befinden. 2 ist ein Blockdiagramm, welches ausgewählte Aspekte des Rechensystems 200 veranschaulicht, bei welchem sich die Komprimierungslogik 114B auf dem Speichermodul 118C befindet.
  • Bei einigen Ausführungsformen enthält das Speichermodul 118C den Zwischenspeicher 124. Der Zwischenspeicher 124 kann eine serielle Verbindung 124C mit relativ hoher Geschwindigkeit von der vergleichsweise langsameren Verbindung verwendet als Schnittstelle mit den Speichereinheiten 120 trennen. Bei einigen Ausführungsformen ist der Zwischenspeicher 124 ein Advanced Memory Buffer (AMB) geeignet für die Verwendung mit der Fully Buffered Dual Inline Memory Module (FB-DIMM)-Technologie.
  • Der Zwischenspeicher 124 enthält die Komprimierungslogik 114B und den E/A-Anschluß 116B. Bei einigen Ausführungsformen enthält die Komprimierungslogik 114B Logik zum Komprimieren der Daten, welche in den Speichereinheiten 120 gespeichert sind, unabhängig von einem Betriebssystem. D.h. die Komprimierungslogik 114 kann in der Lage sein, die Daten unabhängig vom Speichermanager des Betriebssystems zu komprimieren. Bei einigen Ausführungsformen komprimiert die Komprimierungslogik 114 die Daten als Reaktion (zumindest teilweise) auf eine Indikation des Übergangs in einen verringerten Leistungszustand. Bei der veranschaulichten Ausführungsform zum Beispiel komprimiert die Komprimierungslogik 114 die Daten als Reaktion auf einen Befehl 104B (z.B. ein Suspend-to-RAM-Befehl) vom Prozessor 102.
  • 3 ist ein Blockdiagramm, welches ausgewählte Aspekte der Komprimierungslogik implementiert gemäß einer Ausführungsform der Erfindung veranschaulicht. Die Komprimierungslogik 300 enthält die Steuerlogik 302, den Lesezwischenspeicher 304, den Komprimierungsalgorithmus 306, den Schreibzwischenspeicher 308, den Lesezeiger 310, den Schreibzeiger 312 und den Timer 314. Bei alternativen Ausführungsformen kann die Komprimierungslogik 300 mehr Elemente, weniger Elemente und/oder andere Elemente enthalten. Bei einigen Ausführungsformen ist die Komprimierungslogik 300 in Hardware und/oder Firmware innerhalb der Plattform eines Rechensystems (z.B. auf dem Speichercontroller) implementiert. Bei alternativen Ausführungsformen können ausgewählte Aspekte der Komprimierungslogik 300 durch Software durchgeführt werden, welche im Dauerspeicher (z.B. im Dauerspeicher 140 gezeigt in 1) gespeichert ist. Bei noch anderen alternativen Ausführungsformen kann sich die Komprimierungslogik 300 auf einem Speichermodul befinden.
  • Bei einigen Ausführungsformen stellt die Steuerlogik 302 die Gesamtsteuerung für die Komprimierungslogik 300 bereit. Zum Beispiel kann die Komprimierungslogik 302 eine Indikation zum Übergang in einen niedrigeren Leistungszustand erkennen (z.B. Befehl 104 gezeigt in 1 und 2). Sie kann auch den Prozeß des Auslesens von Daten aus dem Speicher in den Lesezwischenspeicher 304 steuern, sie komprimieren und die komprimierten Daten vom Schreibzwischenspeicher 308 zurück in den Speicher schreiben. Der Lesezwischenspeicher 304 und der Schreibzwischenspeicher 308 kann jedes Speicherelement sein, welches in der Lage ist, eine relativ kleine Datenmenge zu speichern. Der Komprimierungsalgorithmus 306 kann jeder aus einer Vielzahl von Komprimierungsalgorithmen sein, einschließlich zum Beispiel des PKZIP-Komprimierungsalgorithmus.
  • Bei einigen Ausführungsformen verwendet die Steuerlogik 302 den Lesezeiger 310, um die Position des nächsten Datenblockes anzuzeigen, der aus dem Speicher ausgelesen wird. Ähnlich kann die Steuerlogik 302 den Schreibzeiger 312 verwenden, um anzuzeigen, wo im Speicher der nächste Block komprimierter Daten geschrieben werden wird. Der Lesezeiger 310 und der Schreibzeiger 312 werden unten unter Bezugnahme auf 4A und 4B weiter diskutiert.
  • Bei einigen Ausführungsformen komprimiert die Komprimierungslogik 300 die Daten, welche im Speicher gespeichert sind, nicht sofort, wenn sie eine Indikation erhält, daß das System in einen verringerten Leistungszustand wechselt. Statt dessen wartet sie für einen spezifizierten Zeitraum, bevor sie den Komprimierungsprozeß initiiert. Die Verzögerung bei der Initiierung des Komprimierungsprozesses dient der Absicherung für den Fall, daß einem Übergang in einen verringerten Leistungszustand in naher zeitlicher Abfolge ein Übergang in einen aktiven Leistungszustand folgt (z.B. Schließen und dann nahezu sofortiges wieder Öffnen des Deckels eines Laptops). In solchen Fällen besteht das Risiko, mehr Batterieleistung zum Komprimieren der Daten zu verbrauchen als durch das Herunterfahren einiger Speichereinheiten für einen kurzen Zeitraum gespart wird. Dieses Risiko wird verringert, indem für einen spezifizierten Zeitraum (z.B. mehrere Sekunden) gewartet wird, bevor der Komprimierungsprozeß initiiert wird, weil die Batterieleistung nicht verbraucht wird, um die Daten zu komprimieren, bis genug Zeit vergangen ist um anzuzeigen, daß das Gerät sich wahrscheinlich für einen nicht geringfügigen Zeitraum (z.B. Zehnersekunden, Minuten, Stunden usw.) in einem verringerten Leistungszustand befinden wird.
  • Bei einigen Ausführungsformen verwendet die Komprimierungslogik 300 den Timer 314 um zu bestimmen, ob der spezifizierte Zeitraum vergangen ist. Der Timer 314 kann jeder einer Vielzahl von Timern sein, welche in eine integrierte Schaltung implementiert werden können. Bei einer alternativen Ausführungsform kann die Komprimierungslogik 300 einen anderen Mechanismus verwenden um zu bestimmen, ob die spezifizierte Zeit vergangen ist. Bei noch weiteren alternativen Ausführungsformen initiiert die Komprimierungslogik 300 den Komprimierungsprozeß, ohne für einen spezifizierten Zeitraum zu warten.
  • Bei einigen Ausführungsformen komprimiert die Komprimierungslogik 300 Daten auf einer Block-für-Block-Basis. D.h. die Komprimierungslogik 300 liest einen Datenblock aus, welcher eine bestimmte Blockgröße aufweist, komprimiert ihn, schreibt den komprimierten Block zurück in den Speicher und wiederholt dann den Prozeß für den nächsten Datenblock, bis alle Daten, welche im Speicher gespeichert sind, komprimiert wurden. Bei einigen Ausführungsformen beträgt die Blockgröße 128 Byte. Bei alternativen Ausführungsformen kann die Blockgröße zum Beispiel 64 Byte, 256 Byte oder jede andere Größe sein, welche geeignet ist, ein gewünschtes Komprimierungsverhältnis zu unterstützen.
  • Bei einigen Ausführungsformen gibt es mehrere Kanäle vom Speichercontroller zu den DIMMs, und die Komprimierung kann gleichzeitig auf beiden Kanälen erfolgen (z.B. zum Erhöhen der Geschwindigkeit der Komprimierung). Zum Beispiel ist eine Ausführungsform in Betracht zu ziehen, bei der ein Laptop zwei Kanäle aufweist. Bei einer solchen Ausführungsform kann das System dedizierte Lese/Schreib-Zwischenspeicher (z.B. 304, 308) für jeden Kanal aufweisen. Das System kann auch einen dedizierten Komprimierungs-/Dekomprimierungscontroller (z.B. 302) für jeden Kanal aufweisen. Alternativ dazu kann das System einen geteilten Controller für beide Kanäle aufweisen. Die Komprimierungslogik kann mit den Eingabe/Ausgabe (E/A)-Operationen überlappt sein. Zum Beispiel kann, während komprimierte Daten auf Kanal 2 geschrieben werden, der Controller Daten für Kanal 1 komprimieren.
  • 4A und 4B sind Begriffsdiagramme, welche ein Beispiel der Komprimierung von Daten auf einer Block-für-Block-Basis gemäß einer Ausführungsform der Erfindung veranschaulichen. Bei einigen Ausführungsformen liest die Komprimierungslogik einen Datenblock aus (z.B. mit einer spezifischen Blockgröße), komprimiert die Daten zum Erzeugen eines komprimierten Datenblockes, schreibt den komprimierten Datenblock in den Speicher und wiederholt dann den Prozeß, bis alle Daten im Speicher komprimiert sind. Das Speicherarray 402 stellt die Speicherpositionen bereitgestellt durch ein Speichersubsystem in einem einzelnen Array dar (z.B. von einer Speicherposition mit einer niedrigsten Adresse zu einer Speicherposition mit einer höchsten Adresse). Bei einigen Ausführungsformen liest die Komprimierungslogik (z.B. die Komprimierungslogik 300 gezeigt in 3) die Daten, welche in dem Speicherarray 402 gespeichert sind, in Blöcken aus, welche eine spezifizierte Blockgröße aufweisen. Bei der veranschaulichten Ausführungsform beträgt die Blockgröße 128 Byte. Bei einigen Ausführungsformen zeigt der Lesezeiger 406 den nächsten Datenblock an, der aus dem Speicher ausgelesen werden soll.
  • 4B veranschaulicht ein Beispiel eines Speicherarrays, in welches komprimierte Datenblöcke geschrieben wurden, gemäß einer Ausführungsform der Erfindung. Das Speicherarray 404 enthält die komprimierten Blöcke 410 und 412. Wie in 4B veranschaulicht, kann jeder komprimierte Block eine unterschiedliche Blockgröße aufweisen, weil der Komprimierungsalgorithmus einige Daten in größerem Maße komprimieren kann als andere Daten. Bei einigen Ausführungsformen zeigt der Schreibzeiger 414 an, wo der nächste Block komprimierter Daten im Speicher geschrieben werden soll (und/oder wo der letzte Block komprimierter Daten in den Speicher geschrieben wurde).
  • 5 ist ein Flußdiagramm, welches ausgewählte Aspekte eines Verfahrens zum Verlängern der Batterielebensdauer eines mobilen Rechensystems durch Speicherkomprimierung gemäß einer Ausführungsform der Erfindung veranschaulicht. Bezugnehmend auf den Prozeßblock 502 empfängt die Komprimierungslogik eine Indikation zum Übergang in einen verringerten Leistungszustand. Der Ausdruck „Empfang einer Indikation" betrifft allgemein zum Beispiel das direkte oder indirekte Empfangen eines Befehls, einer Anweisung, eines Signals oder jeder anderen Indikation zum Übergang in einen verringerten Leistungszustand. Zum Beispiel empfängt bei einigen Ausführungsformen die Komprimierungslogik einen Befehl zum Übergang in einen Suspend-to-RAM-Zustand.
  • Bezugnehmend auf den Prozeßblock 504 wartet die Komprimierungslogik auf das Ablaufen eines Timers. Der Zweck des Timers ist das Bereitstellen einer Verzögerung, so daß der Inhalt des Speichers nicht komprimiert wird, bis das System wahrscheinlich für einen wesentlichen Zeitraum in einem verringerten Leistungszustand sein wird (z.B. Zehnersekunden, Minuten, Stunden usw.). Bei einigen Ausführungsformen fährt die Komprimierungslogik fort, ohne auf das Ablaufen eines Timers zu warten. Bezugnehmend auf den Prozeßblock 506 initialisiert die Komprimierungslogik einen Lesezeiger und/oder einen Schreibzeiger.
  • Bezugnehmend auf den Prozeßblock 508 liest die Komprimierungslogik einen Datenblock aus dem Speicher aus. Bei einigen Ausführungsformen werden die Daten aus dem Speicher in einen Lesezwischenspeicher ausgelesen (z.B. der Lesezwischenspeicher 304 gezeigt in 3). Der Lesezeiger kann um die Blockgröße vorgeschoben werden (z.B. um 64 Byte, 128 Byte, 256 Byte usw.). Der Datenblock wird bei 510 komprimiert. Bei einigen Ausführungsformen erfolgt die Datenkomprimierung durch Hardware (z.B. auf dem Speichercontroller) und ist unabhängig von einem Betriebssystem. Bei alternativen Ausführungsformen kann der Komprimierungsalgorithmus durch Software bereitgestellt sein, welche im Dauerspeicher gespeichert ist.
  • Bezugnehmend auf den Prozeßblock 512 bestimmt die Komprimierungslogik, ob negative Komprimierung stattgefunden hat. Zum Beispiel kann die Komprimierungslogik bestimmen, ob die Größe des komprimierten Blockes größer ist als die Größe des unkomprimierten Quellblockes. Wenn dem so ist, wird der Quellblock (z.B. der unkomprimierte Block) zurück in den Speicher geschrieben (514). Außerdem wird der Schreibzeiger um die Größe des Quellblockes vorgeschoben (514).
  • Bezugnehmend auf den Prozeßblock 516 wird, wenn keine negative Komprimierung stattgefunden hat, der komprimierte Datenblock zum Beispiel von einem Schreibzwischenspeicher (z.B. der Schreibzwischenspeicher 308 gezeigt in 3) in den Speicher geschrieben. Bei einigen Ausführungsformen wird der Schreibzeiger um die Größe des komprimierten Blockes vorgeschoben. Die Komprimierungslogik bestimmt, ob der letzte Datenblock bei 518 komprimiert wurde. Das Bestimmen, ob der letzte Datenblock komprimiert wurde, kann das Bestimmen enthalten, ob der Lesezeiger das Speicherarray durchquert hat (z.B. unter Verwendung der Konfiguration 152 gezeigt in 1).
  • Wenn der letzte Datenblock komprimiert wurde, schaltet die Komprimierungslogik das Speichersubsystem in einen verringerten Leistungszustand um (520). Wenn zum Beispiel eine Speichereinheit komprimierte Daten enthält, schaltet die Komprimierungslogik die Speichereinheit in einen Selbstaktualisierungszustand um. Wenn die Einheit keine komprimierten Daten enthält, kann die Komprimierungslogik die Einheit deaktivieren. Die Menge der durch das System verbrauchten Batterieleistung wird verringert, weil eine Reihe von Speichereinheiten deaktiviert ist. Bei einigen Ausführungsformen verwendet die Komprimierungslogik zum Beispiel einen Schreibzeiger und die Konfigurationsdaten des Speichersubsystems um zu bestimmen, welche Speichereinheiten komprimierte Daten enthalten und welche Speichereinheiten keine komprimierten Daten enthalten.
  • Anschließend an die Komprimierung der Daten kann die Komprimierungslogik eine Dekomprimierungsphase implementieren. Die Dekomprimierungsphase kann als Reaktion auf eine Indikation zum Übergang in einen erhöhten Leistungszustand stattfinden. Die Indikation zum Übergang in einen erhöhten Leistungszustand kann jedes/n Signal, Befehl usw. enthalten, um aus dem verringerten Leistungszustand umzuschalten. Zum Beispiel kann bei einigen Ausführungsformen die Indikation zum Übergang in einen erhöhten Leistungszustand das Öffnen des Deckels eines Laptops enthalten. Bei einigen Ausführungsformen erfolgt die Dekomprimierung durch Zurückarbeiten vom Ende des komprimierten Datenblockes.
  • 6 ist ein Blockdiagramm, welches ausgewählte Aspekte eines elektronischen Systems gemäß einer Ausführungsform der Erfindung veranschaulicht. Das elektronische System 600 enthält den Prozessor 610, den Speichercontroller 620, den Speicher 630, den Eingabe/Ausgabe (E/A)-Controller 640, die Hochfrequenz (HF)-Schaltungen 650 und die Antenne 660. Im Betrieb sendet und empfängt das System 600 Signale mit Hilfe der Antenne 660, und diese Signale werden durch die verschiedenen Elemente gezeigt in 6 verarbeitet. Die Antenne 660 kann eine Richtantenne oder eine Rundstrahlantenne sein. Wie hierin verwendet, betrifft der Begriff Rundstrahlantenne jede Antenne, welche ein im wesentlichen gleichmäßiges Muster in mindestens einer Ebene aufweist. Zum Beispiel kann bei einigen Ausführungsformen die Antenne 660 eine Rundstrahlantenne wie eine Dipolantenne oder eine Viertelwellenantenne sein. Auch kann zum Beispiel bei einigen Ausführungsformen die Antenne 660 eine Richtantenne wie eine Parabolspiegelantenne, eine Patch-Antenne oder eine Yagi-Antenne sein. Bei einigen Ausführungsformen kann die Antenne 660 mehrere physikalische Antennen enthalten.
  • Die Hochfrequenzschaltung 650 kommuniziert mit der Antenne 660 und dem E/A-Controller 640. Bei einigen Ausführungsformen enthält die HF-Schaltung 650 eine physikalische Schnittstelle (PHY), welche einem Kommunikationsprotokoll entspricht. Zum Beispiel kann die HF-Schaltung 650 Modulatoren, Demodulatoren, Mischer, Frequenzsynthesizer, rauscharme Verstärker, Leistungsverstärker und ähnliches enthalten. Bei einigen Ausführungsformen kann die HF-Schaltung 650 einen Überlagerungsempfänger enthalten, und bei anderen Ausführungsformen kann die HF-Schaltung 650 einen Direktumwandlungsempfänger enthalten. Zum Beispiel kann bei Ausführungsformen mit mehreren Antennen 660 jede Antenne mit einem entsprechenden Empfänger gekoppelt sein. Im Betrieb empfängt die HF-Schaltung 650 Kommunikationssignale von der Antenne 660 und stellt analoge oder digitale Signale an den E/A-Controller 640 bereit. Ferner kann der E/A-Controller 640 Signale an die HF-Schaltung 650 bereitstellen, welche die Signale bearbeitet und sie dann an die Antenne 660 überträgt.
  • Der/Die Prozessor/en 610 kann/können jegliche Art von Verarbeitungseinheit sein. Zum Beispiel kann der Prozessor 610 ein Mikroprozessor, ein Mikrocontroller oder ähnliches sein. Ferner kann der Prozessor 610 jede Anzahl von Verarbeitungskernen oder jede Anzahl separater Prozessoren enthalten.
  • Der Speichercontroller 620 stellt einen Kommunikationspfad zwischen dem Prozessor 610 und weiteren Elementen gezeigt in 6 bereit. Bei einigen Ausführungsformen ist der Spei chercontroller 620 Teil einer Netzknoteneinheit, welche auch andere Funktionen bereitstellt. Wie in 6 gezeigt, ist der Speichercontroller 620 mit dem/n Prozessoren 610, dem E/A-Controller 640 und dem Speicher 630 gekoppelt. Bei einigen Ausführungsformen enthält der Speichercontroller 620 die Komprimierungslogik 622. Die Komprimierungslogik 622 kann die Batterielebensdauer des Systems 600 durch Speicherkomprimierung verlängern.
  • Der Speicher 630 kann mehrere Speichereinheiten enthalten. Diese Speichereinheiten können auf jeder Art von Speichertechnologie basieren. Zum Beispiel kann der Speicher 630 ein Random Access Memory (RAM), ein Dynamic Random Access Memory (DRAM), ein Static Random Access Memory (SRAM), ein nichtflüchtiger Speicher wie ein FLASH-Speicher oder jede andere Art von Speicher sein.
  • Der Speicher 630 kann eine einzelne Speichereinheit oder eine Reihe von Speichereinheiten auf einem oder mehreren Modulen darstellen. Der Speichercontroller 620 stellt durch die Verbindung 622 Daten an den Speicher 630 bereit und empfängt Daten vom Speicher 630 als Reaktion auf Leseanforderungen. Die Befehle und/oder Adressen können dem Speicher 630 durch die Verbindung 622 oder durch eine andere Verbindung (nicht gezeigt) bereitgestellt werden. Der Speichercontroller 630 kann Daten, die im Speicher 630 gespeichert werden sollen, vom Prozessor 610 oder von einer anderen Quelle empfangen. Der Speichercontroller 620 kann die Daten, die er vom Speicher 630 empfängt, an den Prozessor 610 oder an ein anderes Ziel bereitstellen. Die Verbindung 622 kann eine bidirektionale Verbindung oder eine unidirektionale Verbindung sein. Die Verbindung 622 kann eine Reihe paralleler Leiter enthalten. Die Signale können Differenzsignale oder unsymmetrisch sein. Bei einigen Ausführungsformen arbeitet die Verbindung 622 unter Verwendung eines vorwärts gerichteten Mehrphasentaktschemas.
  • Der Speichercontroller 620 ist auch mit dem E/A-Controller 640 gekoppelt und stellt einen Kommunikationspfad zwischen dem/n Prozessor/en 610 und dem E/A-Controller 640 bereit. Der E/A-Controller 640 enthält Schaltungen für die Kommunikation mit E/A-Schaltungen wie serielle Anschlüsse, parallele Anschlüsse, Universal-Serien-Bus (USB)-Anschlüsse und ähnliche. Wie in 6 gezeigt, stellt der E/A-Controller 640 einen Kommunikationspfad zu den HF-Schaltungen 650 bereit.
  • 7 ist ein Blockdiagram, welches ausgewählte Aspekte eines elektronischen Systems gemäß einer alternativen Ausführungsform der Erfindung veranschaulicht. Das elektronische System 700 enthält den Speicher 630, den E/A-Controller 640, die HF-Schaltungen 650 und die Antenne 660, welche alle oben unter Bezugnahme auf 6 beschrieben wurden. Das elektronische System 700 enthält auch den/die Prozessoren 710 und den Speichercontroller 720. Wie in 7 gezeigt, kann sich der Speichercontroller 720 auf dem gleichen Chip befinden wie der/die Prozessor/en 710. Bei einigen Ausführungsformen enthält der Speichercontroller 720 die Komprimierungslogik 722. Die Komprimierungslogik 722 kann die Batterielebensdauer des Systems 700 durch Speicherkomprimierung verlängern. Der/Die Prozessoren 710 kann/können jede Art von Prozessor sein, wie oben unter Bezugnahme auf den Prozessor 610 beschrieben. Zu den Beispielsystemen dargestellt durch 6 und 7 zählen Desktop-Rechner, Laptops, Server, Mobiltelefone, PDAs, digitale Heimsysteme und ähnliches.
  • Elemente der Ausführungsformen der vorliegenden Erfindung können auch als ein maschinenlesbares Medium zum Speichern der maschinenausführbaren Anweisungen bereitgestellt sein. Das maschinenlesbare Medium kann folgendes enthalten, jedoch nicht darauf beschränkt: Flash-Speicher, optische Platten, Compact Disc-Festwertspeicher (CD-ROM), digitale Video-Disks (DVD-ROM), Random Access Memory (RAM), löschbarer programmierbarer Nur-Lese-Speicher (EPROM), elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM), magnetische oder optische Karten, Verbreitungsmedien oder andere Arten von maschinenlesbaren Medien geeignet für die Speicherung elektronischer Anweisungen. Zum Beispiel können Ausführungsformen der Erfindung als ein Computerprogramm heruntergeladen werden, welches mit Hilfe von Datensignalen enthalten in einer Trägerwelle oder eines anderen Verbreitungsmediums über einen Kommunikationslink (z.B. ein Modem oder eine Netzwerkverbindung) von einem entfernten Computer (z.B. einem Server) an einen anfordernden Computer (z.B. einen Client) übertragen werden kann.
  • Es soll verstanden werden, daß in dieser gesamten Spezifikation die Bezugnahme auf „eine Ausführungsform" bedeutet, daß eine bestimmtes Merkmal, Struktur oder Eigenschaft beschrieben in Verbindung mit der Ausführungsform in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Daher wird betont und es soll verstanden werden, daß zwei oder mehr Bezüge auf „eine Ausführungsform" oder „eine alternative Ausführungsform" in verschiedenen Abschnitten dieser Spezifikation nicht notwendigerweise alle die gleiche Ausführungsform betreffen. Ferner können die bestimmten Merkmale, Strukturen oder Eigenschaften wie geeignet in einer oder mehreren Ausführungsformen der Erfindung kombiniert werden.
  • Ebenso sollte verstanden werden, daß in der vorhergehenden Beschreibung der Ausführungsformen der Erfindung verschiedene Merkmale gelegentlich in einer einzelnen Ausführungsform, Figur oder Beschreibung davon zum Zweck der Rationalisierung der Offenbarung zusammen gruppiert sind, was das Verständnis von einem oder mehreren der verschiedenen erfinderischen Aspekte unterstützen soll. Dieses Verfahren der Offenbarung ist jedoch nicht als Reflektierung einer Absicht auszulegen, daß der beanspruchte Gegenstand mehr Merkmale erfordert als in jedem Anspruch ausdrücklich dargestellt ist. Vielmehr liegen, wie die folgenden Ansprüche reflektieren, die erfinderischen Aspekte in weniger als allen Merkmalen einer einzelnen vorhergehend offenbarten Ausführungsform. Somit sind die der detaillierten Beschreibung folgenden Ansprüche hiermit ausdrücklich in diese detaillierte Beschreibung eingeschlossen.

Claims (23)

  1. Integrierte Schaltung, die umfaßt: einen Eingabe/Ausgabe-Anschluß zur Schnittstellenbildung mit einem flüchtigen Speicher; und eine Komprimierungslogik, die mit dem Eingabe/Ausgabe-Anschluß gekoppelt ist, wobei die Komprimierungslogik so ausgelegt ist, daß sie mindestens einen Teil des Inhaltes des flüchtigen Speichers unabhängig von einem Betriebssystem komprimiert.
  2. Integrierte Schaltung nach Anspruch 1, wobei die Komprimierungslogik so ausgelegt ist, daß sie mindestens einen Teil des Inhaltes im flüchtigen Speicher als Reaktion auf eine Indikation zum Übergang in einen verringerten Leistungszustand komprimiert.
  3. Integrierte Schaltung nach Anspruch 2, wobei die Indikation zum Übergang in den verringerten Leistungszustand folgendes umfaßt: einen Befehl zum Übergang in einen Suspend-to-RAM (Random Access Memory)-Zustand.
  4. Integrierte Schaltung nach Anspruch 2, wobei die Komprimierungslogik ferner folgendes umfaßt: einen Timer, um anzuzeigen, wenn ein Schwellenzeitraum nach dem Empfang der Indikation zum Übergang in den verringerten Leistungszustand vergangen ist.
  5. Integrierte Schaltung nach Anspruch 2, wobei die Komprimierungslogik ferner folgendes umfaßt: einen ersten Zwischenspeicher zum Speichern eines Datenblockes, der aus dem flüchtigen Speicher ausgelesen wird.
  6. Integrierte Schaltung nach Anspruch 5, wobei die Komprimierungslogik ferner folgendes umfaßt: einen zweiten Zwischenspeicher zum Speichern eines komprimierten Datenblockes, der in den flüchtigen Speicher geschrieben werden soll.
  7. Integrierte Schaltung nach Anspruch 2, wobei die Komprimierungslogik eine Logik zum individuellen Einstellen eines Leistungszustandes für jede Speichereinheit im flüchtigen Speicher enthält.
  8. Integrierte Schaltung nach Anspruch 2, wobei die Komprimierungslogik ferner folgendes umfaßt: einen Lesezeiger zum Referenzieren eines Blockes unkomprimierter Daten; und einen Schreibzeiger zum Referenzieren eines Blockes komprimierter Daten.
  9. Integrierte Schaltung nach Anspruch 1, wobei die integrierte Schaltung einen Speichercontroller umfaßt.
  10. Verfahren, das umfaßt: Empfangen einer Indikation zum Übergang in einen verringerten Leistungszustand; und Komprimieren von mindestens einem Teil der Daten, welche in einem Speicherarray gespeichert sind, als Reaktion auf den Empfang der Indikation zum Übergang in den verringerten Leistungszustand.
  11. Verfahren nach Anspruch 10, wobei das Empfangen der Indikation zum Übergang in den verringerten Leistungszustand folgendes umfaßt: das Empfangen eines Suspend-to-RAM (Random Access Memory)-Befehls.
  12. Verfahren nach Anspruch 10, wobei das Komprimieren von mindestens einem Teil der Daten, welche in dem Speicherarray gespeichert sind, als Reaktion auf den Empfang der Indikation zum Übergang in den verringerten Leistungszustand folgendes umfaßt: das Komprimieren von mindestens einem Teil der Daten, welche in dem Speicherarray gespeichert sind, unabhängig von einem Betriebssystem.
  13. Verfahren nach Anspruch 12, das ferner umfaßt: Bestimmen, ob ein Schwellenzeitraum vergangen ist.
  14. Verfahren nach Anspruch 13, wobei das Komprimieren von mindestens einem Teil der Daten, welche in dem Speicherarray gespeichert sind, folgendes umfaßt: Komprimieren von mindestens einem Teil der Daten, welche in dem Speicherarray gespeichert sind, wenn der Schwellenzeitraum vergangen ist.
  15. Verfahren nach Anspruch 12, wobei das Komprimieren von mindestens einem Teil der Daten, welche in dem Speicherarray gespeichert sind, unabhängig von dem Betriebssystem folgendes umfaßt: Auslesen eines nächsten Datenblockes aus dem flüchtigen Speicher; Komprimieren des nächsten Datenblockes zum Erzeugen eines komprimierten Datenblockes; und Schreiben des komprimierten Datenblockes in den flüchtigen Speicher.
  16. Verfahren nach Anspruch 10, welches ferner folgendes umfaßt: einen Übergang in einen verringerten Leistungszustand im Anschluß an das Komprimieren von mindestens einem Teil der Daten, welche in dem Speicherarray gespeichert sind.
  17. Verfahren nach Anspruch 10, welches ferner folgendes umfaßt: Empfangen einer Indikation zum Übergang in einen aktiven Leistungszustand; und Dekomprimieren von mindestens einem Teil der komprimierten Daten, welche in dem Speicherarray gespeichert sind, als Reaktion auf den Empfang der Indikation zum Übergang in den aktiven Leistungszustand.
  18. System, das umfaßt: eine oder mehrere Speichereinheiten zum Bereitstellen eines Speicherarrays; eine integrierte Schaltung gekoppelt mit dem Prozessor, wobei die integrierte Schaltung eine Komprimierungslogik zum Komprimieren von mindestens einem Teil der Daten, welche in dem Speicherarray gespeichert sind, unabhängig von einem Betriebssystem enthält; einen Prozessor, der mit der integrierten Schaltung gekoppelt ist; und eine Antenne, die mit dem Prozessor gekoppelt ist.
  19. System nach Anspruch 18, wobei die Komprimierungslogik mindestens einen Teil der Daten, welche in dem Speicherarray gespeichert sind, zumindest teilweise als Reaktion auf eine Indikation von dem Prozessor zum Übergang in einen verringerten Leistungszustand komprimieren soll.
  20. System nach Anspruch 19, wobei die Indikation zum Übergang in den verringerten Leistungszustand folgendes umfaßt: einen Befehl zum Übergang in einen Suspend-to-RAM (Random Access Memory)-Zustand.
  21. System nach Anspruch 19, wobei die Komprimierungslogik ferner folgendes umfaßt: einen Timer, um anzuzeigen, wenn ein Schwellenzeitraum nach Empfang der Indikation zum Übergang in den verringerten Leistungszustand vergangen ist.
  22. System nach Anspruch 19, wobei die Komprimierungslogik ferner folgendes umfaßt: eine Logik zum individuellen Einstellen eines Leistungszustandes für jede Speichereinheit im Speicherarray.
  23. System nach Anspruch 18, wobei die integrierte Schaltung folgendes umfaßt: einen Speichercontroller.
DE102007025948A 2006-06-08 2007-06-04 Verlängern der Lebensdauer einer Batterie eines mobilen Computersystems in einem reduzierten Leistungszustand mittels Speicherkompression Ceased DE102007025948A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/450,214 US20070291571A1 (en) 2006-06-08 2006-06-08 Increasing the battery life of a mobile computing system in a reduced power state through memory compression
US11/450,214 2006-06-08

Publications (1)

Publication Number Publication Date
DE102007025948A1 true DE102007025948A1 (de) 2008-01-03

Family

ID=38318848

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007025948A Ceased DE102007025948A1 (de) 2006-06-08 2007-06-04 Verlängern der Lebensdauer einer Batterie eines mobilen Computersystems in einem reduzierten Leistungszustand mittels Speicherkompression

Country Status (5)

Country Link
US (2) US20070291571A1 (de)
CN (1) CN100520682C (de)
DE (1) DE102007025948A1 (de)
GB (1) GB2439428B (de)
TW (1) TWI343519B (de)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9146747B2 (en) 2013-08-08 2015-09-29 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing configurable computational imaging pipeline
US9196017B2 (en) 2013-11-15 2015-11-24 Linear Algebra Technologies Limited Apparatus, systems, and methods for removing noise from an image
US9270872B2 (en) 2013-11-26 2016-02-23 Linear Algebra Technologies Limited Apparatus, systems, and methods for removing shading effect from image
US9727113B2 (en) 2013-08-08 2017-08-08 Linear Algebra Technologies Limited Low power computational imaging
US9842271B2 (en) 2013-05-23 2017-12-12 Linear Algebra Technologies Limited Corner detection
US9910675B2 (en) 2013-08-08 2018-03-06 Linear Algebra Technologies Limited Apparatus, systems, and methods for low power computational imaging
US10001993B2 (en) 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US10460704B2 (en) 2016-04-01 2019-10-29 Movidius Limited Systems and methods for head-mounted display adapted to human visual mechanism
US10949947B2 (en) 2017-12-29 2021-03-16 Intel Corporation Foveated image rendering for head-mounted display devices
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
US8156403B2 (en) 2006-05-12 2012-04-10 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US8694684B2 (en) * 2006-08-21 2014-04-08 Citrix Systems, Inc. Systems and methods of symmetric transport control protocol compression
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) * 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
CN101715595A (zh) 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8270246B2 (en) 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) * 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US9772936B2 (en) 2008-07-10 2017-09-26 Micron Technology, Inc. Data collection and compression in a solid state storage device
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8645738B2 (en) * 2009-10-27 2014-02-04 Nokia Corporation Nonvolatile device
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8667191B2 (en) * 2010-01-15 2014-03-04 Kingston Technology Corporation Managing and indentifying multiple memory storage devices
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8533550B2 (en) 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
CN103562880A (zh) * 2011-05-26 2014-02-05 索尼爱立信移动通讯有限公司 用于无线设备的优化休眠模式
US9436251B2 (en) * 2011-10-01 2016-09-06 Intel Corporeation Fast platform hibernation and resumption of computing systems
TWI493563B (zh) * 2012-01-06 2015-07-21 Acer Inc 記憶體管理方法及應用該方法之電子裝置
CN103246479A (zh) * 2012-02-06 2013-08-14 宏碁股份有限公司 记忆体管理方法及应用该方法的电子装置
US9323317B2 (en) * 2012-12-12 2016-04-26 International Business Machines Corporation System and methods for DIMM-targeted power saving for hypervisor systems
US9454214B2 (en) * 2013-03-12 2016-09-27 Intel Corporation Memory state management for electronic device
US20140310552A1 (en) * 2013-04-15 2014-10-16 Advanced Micro Devices, Inc. Reduced-power sleep state s3
US9632562B2 (en) 2014-11-20 2017-04-25 Qualcomm Incorporated Systems and methods for reducing volatile memory standby power in a portable computing device
US20160246715A1 (en) * 2015-02-23 2016-08-25 Advanced Micro Devices, Inc. Memory module with volatile and non-volatile storage arrays
US10303235B2 (en) * 2015-03-04 2019-05-28 Qualcomm Incorporated Systems and methods for implementing power collapse in a memory
US10372888B2 (en) * 2016-12-14 2019-08-06 Google Llc Peripheral mode for convertible laptops
US20190065088A1 (en) * 2017-08-30 2019-02-28 Micron Technology, Inc. Random access memory power savings
KR20200034499A (ko) * 2018-09-21 2020-03-31 삼성전자주식회사 메모리 장치와 통신하는 데이터 처리 장치 및 방법
CN112748792A (zh) * 2019-10-31 2021-05-04 福州瑞芯微电子股份有限公司 降低动态随机存储器的功耗的方法、系统、介质及装置
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04223510A (ja) * 1990-12-26 1992-08-13 Canon Inc 情報処理装置
US5524248A (en) * 1993-07-06 1996-06-04 Dell Usa, L.P. Random access memory power management system
JPH07160595A (ja) * 1993-12-06 1995-06-23 Yamatake Honeywell Co Ltd 揮発性メモリのデータ保持方法およびその装置
WO1996018940A1 (en) * 1994-12-16 1996-06-20 Elonex Technologies, Inc. Management of data before zero volt suspend in computer power management
TW413771B (en) * 1994-12-27 2000-12-01 Cyrix Corp Image regeneration compression system, the computer containing the same, and the image regeneration method
DE19629130A1 (de) * 1996-07-19 1998-05-14 Philips Patentverwaltung Signalprozessor
JPH10116138A (ja) * 1996-10-14 1998-05-06 Casio Electron Mfg Co Ltd メモリへの電源供給制御装置
JPH11282587A (ja) * 1998-03-26 1999-10-15 Canon Inc メモリーバックアップ装置
US6195024B1 (en) * 1998-12-11 2001-02-27 Realtime Data, Llc Content independent data compression method and system
US20010054131A1 (en) * 1999-01-29 2001-12-20 Alvarez Manuel J. System and method for perfoming scalable embedded parallel data compression
US6334123B1 (en) * 1999-09-03 2001-12-25 Whamtech, Inc. Index relational processor
US6416410B1 (en) * 1999-12-03 2002-07-09 Nintendo Co., Ltd. Data compression/decompression based on pattern and symbol run length encoding for use in a portable handheld video game system
US6519733B1 (en) * 2000-02-23 2003-02-11 International Business Machines Corporation Method and apparatus for high integrity hardware memory compression
JP4131779B2 (ja) * 2001-01-25 2008-08-13 株式会社東芝 ディジタル保護制御装置
US7058829B2 (en) * 2002-08-14 2006-06-06 Intel Corporation Method and apparatus for a computing system having an active sleep mode CPU that uses the cache of a normal active mode CPU
DE10343525B4 (de) * 2002-09-27 2011-06-16 Qimonda Ag Verfahren zum Betreiben von Halbleiterbausteinen, Steuervorrichtung für Halbleiterbausteine und Anordnung zum Betreiben von Speicherbausteinen

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9842271B2 (en) 2013-05-23 2017-12-12 Linear Algebra Technologies Limited Corner detection
US11605212B2 (en) 2013-05-23 2023-03-14 Movidius Limited Corner detection
US11062165B2 (en) 2013-05-23 2021-07-13 Movidius Limited Corner detection
US10521238B2 (en) 2013-08-08 2019-12-31 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US11567780B2 (en) 2013-08-08 2023-01-31 Movidius Limited Apparatus, systems, and methods for providing computational imaging pipeline
US9910675B2 (en) 2013-08-08 2018-03-06 Linear Algebra Technologies Limited Apparatus, systems, and methods for low power computational imaging
US9934043B2 (en) 2013-08-08 2018-04-03 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing computational imaging pipeline
US10001993B2 (en) 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US10360040B2 (en) 2013-08-08 2019-07-23 Movidius, LTD. Apparatus, systems, and methods for providing computational imaging pipeline
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US9146747B2 (en) 2013-08-08 2015-09-29 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing configurable computational imaging pipeline
US10572252B2 (en) 2013-08-08 2020-02-25 Movidius Limited Variable-length instruction buffer management
US11579872B2 (en) 2013-08-08 2023-02-14 Movidius Limited Variable-length instruction buffer management
US11042382B2 (en) 2013-08-08 2021-06-22 Movidius Limited Apparatus, systems, and methods for providing computational imaging pipeline
US9727113B2 (en) 2013-08-08 2017-08-08 Linear Algebra Technologies Limited Low power computational imaging
US11188343B2 (en) 2013-08-08 2021-11-30 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US9196017B2 (en) 2013-11-15 2015-11-24 Linear Algebra Technologies Limited Apparatus, systems, and methods for removing noise from an image
US9270872B2 (en) 2013-11-26 2016-02-23 Linear Algebra Technologies Limited Apparatus, systems, and methods for removing shading effect from image
US10460704B2 (en) 2016-04-01 2019-10-29 Movidius Limited Systems and methods for head-mounted display adapted to human visual mechanism
US10949947B2 (en) 2017-12-29 2021-03-16 Intel Corporation Foveated image rendering for head-mounted display devices
US11682106B2 (en) 2017-12-29 2023-06-20 Intel Corporation Foveated image rendering for head-mounted display devices

Also Published As

Publication number Publication date
US20070291571A1 (en) 2007-12-20
CN100520682C (zh) 2009-07-29
TW200813700A (en) 2008-03-16
GB2439428A (en) 2007-12-27
US20140089711A1 (en) 2014-03-27
GB0710876D0 (en) 2007-07-18
TWI343519B (en) 2011-06-11
CN101086680A (zh) 2007-12-12
GB2439428B (en) 2010-10-06

Similar Documents

Publication Publication Date Title
DE102007025948A1 (de) Verlängern der Lebensdauer einer Batterie eines mobilen Computersystems in einem reduzierten Leistungszustand mittels Speicherkompression
DE112015006117B4 (de) Halbleiterlaufwerk mit selbstaktualisierungsenergiesparmodus
DE102017112326B4 (de) Gestapelte Speichervorrichtung und Speicherchip mit demselben
DE112006002905B4 (de) Mechanismus zum Selbstauffrischen während C0
DE112012000749B4 (de) Techniken zum Verwalten des Stromverbrauchszustands eines Prozessors
DE102020104367A1 (de) Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation
DE102007028154A1 (de) Wärmesensor mit Umschaltsteuerung
EP1612648B1 (de) Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus
DE112017003334T5 (de) Lastreduzierte nichtflüchtige speicherschnittstelle
DE102018128601A1 (de) Hintergrunddatenauffrischung unter Verwendung eines Systemzeitstempels in Speicherungseinrichtungen
DE112013003294T5 (de) Konfiguration zur Stromreduzierung im Dram
DE102013104198A1 (de) Multi-CPU-System und Computersystem mit demselben
DE102019124450A1 (de) Bandbreitenbegrenzung in solid-state-laufwerken
DE102015014851A1 (de) Ressourcenzuteilung und -freigabe für die Energieverwaltung in Vorrichtungen
DE102010030742A1 (de) Phasenwechselspeicher in einem doppelreihigen Speichermodul
DE112013003219T5 (de) Flexible Befehlsadressierung für Speicher
DE102007052840A1 (de) Vorrichtung und Verfahren zum Umschalten einer Vorrichtung in einen Leistungssparmodus
DE102017119470A1 (de) Elektronische Vorrichtung, die einen Bypass-Pfad zu einer indirekt verbundenen Speichervorrichtung unter in Reihe geschalteten Speichervorrichtungen bereitstellt, darin enthaltene Speichervorrichtung, Computersystem mit demselben, und Verfahren des Kommunizierens damit
DE102012108093A1 (de) Speicherchip, Speichersystem und Verfahren zum Zugreifen auf den Speicherchip
DE102007037601A1 (de) Schnittstellen-Frequenz-Modulation zum Ermöglichen einer nicht abgeschlossenen Operation und zur Leistungssenkung
DE102019105881A1 (de) Technologien zur bereitstellung von effizienter detektion leerlaufender abfrageschleifen
DE69921880T2 (de) Chipkarte mit einer Steuereinheit zur Speicherinhaltsübertragung und Methode zur Datenspeicherung in einer Chipkarte
DE112017006704T5 (de) Systemspeicher mit punkt-zu-punkt-verbindung, die komprimierten verkehr transportiert
DE112020001693T5 (de) Autonomer kernperimeter für prozessorzustände mit geringer leistung
DE112012006070B4 (de) Speichergerät, das auf Gerätebefehle zur Betriebssteuerung reagiert

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20130405