-
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.