DE112011105901B4 - Verfahren und Vorrichtung zur Energieeinsparung für First In First Out (FIF0)-Speicher - Google Patents

Verfahren und Vorrichtung zur Energieeinsparung für First In First Out (FIF0)-Speicher Download PDF

Info

Publication number
DE112011105901B4
DE112011105901B4 DE112011105901.9T DE112011105901T DE112011105901B4 DE 112011105901 B4 DE112011105901 B4 DE 112011105901B4 DE 112011105901 T DE112011105901 T DE 112011105901T DE 112011105901 B4 DE112011105901 B4 DE 112011105901B4
Authority
DE
Germany
Prior art keywords
memory
data
address
status bit
immediately preceding
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.)
Expired - Fee Related
Application number
DE112011105901.9T
Other languages
English (en)
Other versions
DE112011105901T5 (de
Inventor
Sutirtha Deb
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 DE112011105901T5 publication Critical patent/DE112011105901T5/de
Application granted granted Critical
Publication of DE112011105901B4 publication Critical patent/DE112011105901B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

Vorrichtung, umfassend:eine Verarbeitungskomponente; undeine Speicherverwaltungskomponente, die über die Verarbeitungskomponente funktionsfähig ist, um:ein Schreiben von Daten an eine Speicheradresse eines Speichers zu verhindern, wenn die Schreibadresse in Bezug auf die unmittelbar vorangehende Adresse zusammenhängt und die Daten dieselben wie Daten in einer unmittelbar vorangehenden Speicheradresse des Speichers sind; undein Lesen von Daten aus der Speicheradresse des Speichers zu verhindern, wenn die Daten dieselben wie die Daten in der unmittelbar vorangehenden Speicheradresse des Speichers sind;wobei zu der Speicheradresse ein Statusbit gehört;wobei das Statusbit gelöscht wird, wenn zu schreibende Daten dieselben wie Daten in der unmittelbar vorangehenden Speicheradresse sind;wobei das Statusbit gesetzt wird, wenn zu schreibende Daten sich von Daten in der unmittelbar vorangehenden Speicheradresse unterscheiden;wobei das Schreiben von Daten durchgeführt wird, wenn das Statusbit gesetzt ist; undwobei das Lesen von Daten aus der Speicheradresse verhindert wird, wenn das Statusbit gelöscht ist.

Description

  • Hintergrund
  • Speicherkomponenten, die nach einem First In, First Out(FIFO)-Prinzip in Computersystemen arbeiten, können während eines Systembetriebs erhebliche Mengen an Energie verbrauchen. Energie wird jedes Mal verbraucht, wenn ein Lesen und/oder Schreiben an dem FIFO-Speicher durchgeführt wird. Häufig speichert der FIFO-Speicher dieselben Daten in aufeinander folgenden Speicheradressen. In solchen Fällen kann Lesen von Speicheradressen und Schreiben in selbige, die dieselben Daten wie die vorangehende Adresse speichern, bezüglich des Energieverbrauchs ineffizient sein. Dementsprechend besteht ein Bedarf an verbesserten Techniken zur Lösung dieser und anderer Probleme.
  • In US 6 327 203 B1 ist ein „writer driver circuit“ offenbart, der lediglich dann arbeitet, wenn früher geschriebene oder gelesene Daten sich von aktuellen Daten, die geschrieben oder gelesen wurden, unterscheiden.
  • Aus JP 2003 - 36 145 A geht ein Verfahren hervor, bei dem unter bestimmten Bedingungen festgestellt wird, ob Daten, die in einen Speicherbereich geschrieben wurden, identisch sind. In diesem Fall wird ein Bit gesetzt, und andernfalls gelöscht.
  • US 6 052 789 offenbart das Einstellen eines „write-through“-Modus unter bestimmten Bedingungen. Während dieses Modus' wird das Leeren eines Caches bei Eintreten in einen Suspend-Modus vermieden.
  • Der Erfindung liegt die Aufgabe zugrunde, eine beschleunigte Prüfung durchzuführen hinsichtlich der Entscheidung, ob Daten in einen Speicher geschrieben oder aus diesem gelesen werden sollen. Diese Aufgabe wird durch die nebengeordneten Ansprüche gelöst.
  • Figurenliste
    • 1 stellt ein Blockdiagramm eines Systems gemäß einer Ausführungsform dar.
    • 2 stellt eine Logikarchitektur gemäß einer Ausführungsform dar.
    • 3 stellt eine Logikarchitektur gemäß einer Ausführungsform dar.
    • 4 stellt Zeilen von Speicher dar, die Beispieldaten enthalten, die Ausführungsformen der Offenbarung darstellen.
    • 5 stellt eine Ausführungsform eines Logikablaufs dar.
    • 6 stellt eine Ausführungsform eines Logikablaufs dar.
    • 7 stellt eine Ausführungsform eines Systems dar, das zur Implementierung von Ausführungsformen der Offenbarung geeignet sein kann.
    • 8 stellt Ausführungsformen eines Geräts mit kleinem Formfaktor dar, in dem das System von 7 ausgeführt sein kann.
  • Ausführliche Beschreibung
  • Einige Speichersysteme, wie zum Beispiel FIFO-Speichersysteme, verwenden ein zusammenhängendes Adressschema. In solch einem FIFO-Speichersystem können die gespeicherten Daten für periodische Strecken (stretches) von aufeinanderfolgenden Speicheradressen identisch sein. Wenn die Daten für aufeinanderfolgende Speicheradressen identisch sind, kann es nicht notwendig sein, ein Lesen des Speichers oder Schreiben in selbigem tatsächlich durchzuführen, wenn die Daten der unmittelbar vorhergehenden Speicheradresse dieselben sind.
  • In zahlreichen Ausführungsformen werden Vorrichtungen und Verfahren offenbart, die fähig sein können, den Speichertakt begrenzt (clock gated) oder die Lese-/Schreib-Freigabesignale gering oder auf andere Weise den Speicher in einem Niedrigenergiezustand zu halten, wenn die Daten für eine aktuelle Speicheradresse dieselben wie die Daten der unmittelbar vorhergehenden Speicheradresse sind. Für eine Schreibfunktion werden die neuen Daten nur in die aktuelle Speicheradresse geschrieben, wenn sie sich von den Daten in der unmittelbar vorhergehenden Speicheradresse unterscheiden. In ähnlicher Weise werden für eine Lesefunktion die Daten nur aus der aktuellen Speicheradresse gelesen, wenn sie sich von den Daten in der unmittelbar vorhergehenden Speicheradresse unterscheiden.
  • Um bei der Ermittlung zu helfen, wann die zu einer aktuellen Speicheradresse gehörigen Daten dieselben wie die zu der unmittelbar vorhergehenden Speicheradresse gehörigen Daten sind, kann jede Zeile in dem Speicher ein zugehöriges Statusbit außerhalb des Speichers aufweisen. Jedes Mal, wenn neue Daten eintreffen, können die neuen Daten mit den letzten eingegangenen Daten verglichen werden und, wenn sich die neuen Daten unterscheiden, wird das zugehörige Statusbit gesetzt. Wenn die neuen Daten dieselben wie die vorhergehenden Daten sind, wird das zugehörige Statusbit gelöscht (cleared). In ähnlicher Weise können Daten nur in die aktuelle Speicheradresse geschrieben werden, wenn das Statusbit gesetzt ist. Daten werden nicht in die aktuelle Speicheradresse geschrieben, wenn das Statusbit gelöscht ist. Daten können nur aus der aktuellen Speicheradresse gelesen werden, wenn das Statusbit gesetzt ist. Daten werden nicht aus der aktuellen Speicheradresse gelesen, wenn das Statusbit gelöscht ist. Clock-Gating der Speicher-Ports in den unten beschriebenen Fällen kann den gesamten Energieverbrauch der Speicherkomponente des Systems reduzieren. Clock-Gating bezieht sich auf Ausschalten des Taktsignals an eine Komponente, was die Wirkung des Abschaltens der Komponente aufweist. Wenn das System im Batteriebetrieb arbeitet, können die unten beschriebenen Implementierungen fähig sein, die Lebensdauer der Batterie zu verlängern. Zusätzlich können andere Energieeinsparansätze beziehungsweise -lösungen auch verwendet werden, wenn das Statusbit gelöscht ist, zum Beispiel Geringhalten von Schreib-/Lese-Freigabesignalen oder Halten des Speichers in einem anderen Niedrigenergiezustand.
  • Speicher kann als ein flüchtiger Speicherbaustein, wie zum Beispiel, ohne aber darauf beschränkt zu sein, ein Direktzugriffsspeicher (Random Access Memory (RAM)), ein dynamischer direkter Zugriffsspeicher (DRAM) oder statischer RAM (SRAM), implementiert sein. Der Speicher kann in Geräten implementiert sein, die ein nicht flüchtiges Speichergerät, wie zum Beispiel, ohne darauf beschränkt zu sein, ein magnetisches Plattenlaufwerk, optisches Plattenlaufwerk, Bandlaufwerk, ein internes Speichergerät, ein angeschlossenes Speichergerät, Flash-Speicher, batteriegepufferten SDRAM (Synchronous DRAM), und/oder ein netzwerkzugängliches Speichergerät, einschließen.
  • Es wird nun auf die Zeichnungen Bezug genommen, wobei gleiche Bezugszahlen verwendet werden, um sich durchgehend auf gleiche Elemente zu beziehen. In der folgenden Beschreibung werden zu Erläuterungszwecken zahlreiche spezielle Details dargelegt, um für ein umfassendes Verständnis derselben zu sorgen. Es wird jedoch ersichtlich sein, dass die neuartigen Ausführungsformen ohne diese speziellen Details praktiziert werden können. In anderen Fällen werden wohlbekannte Strukturen und Einrichtungen/Geräte in Blockdiagrammform gezeigt, um eine Beschreibung derselben zu erleichtern. Dadurch sollen alle Modifikationen, Äquivalente und Alternativen, die in den Geist und den Schutzbereich des beanspruchten Gegenstandes fallen, abgedeckt werden.
  • 1 stellt ein Blockdiagramm eines Systems oder einer Vorrichtung 100 gemäß einer Ausführungsform dar. Die Vorrichtung 100 kann eine Rechenplattform sein, die aus einer zentralen Verarbeitungseinheit (CPU) 105 besteht, die mit einer Speichereinrichtung 110 und einer Speicherverwaltungskomponente 120 kommunikativ gekoppelt ist. Die Speicherverwaltungskomponente 120 kann betreibbar sein, um zu ermitteln, wann die Vorrichtung 100 im Batteriebetrieb im Gegensatz zu einer externen DC-Quelle arbeitet. Bei Batteriebetrieb kann es sein, dass die Vorrichtung 100 Energie sparen muss, um die Lebensdauer der Batterie zu verlängern. Die Speicherverwaltungskomponente 120 kann eine Logikarchitektur 200 wie die in 2 gezeigte enthalten, die funktionsfähig ist, um das unten beschriebene Clock-Gating-Speicherschema zu implementieren. Die Speicherverwaltungskomponente 120 kann mit einem FIFO-Controller 115 kommunikativ gekoppelt sein, der funktionsfähig ist, Zugriff auf den Speicher 110 unter normalen Betriebsbedingungen zu steuern. Die Speicherverwaltungskomponente 120 kann auch mit einem Energie- bzw. Leistungscontroller 125 kommunikativ gekoppelt sein, der fähig ist, eine Logikarchitektur zu implementieren, die den Zugriff auf den Speicher 110 selektiv steuern kann.
  • 2 stellt eine Logikarchitektur 200 gemäß einer Ausführungsform dar. Die Logikarchitektur 200 kann unter der Kontrolle der Speicherverwaltungskomponente 120 stehen. Der Speicher 110 kann basierend auf den speziellen Ergebnissen und mit der Logik 200 verbundenen Eingabe funktionieren. Die Logikarchitektur 200 kann in zwei Funktionen - Schreiblogik und Leselogik - aufgeteilt werden. Die Schreiblogik kann allgemein auf der linken Seite von 2 gezeigt sein, während die Leselogik allgemein auf der rechten Seite von 2 gezeigt sein kann. Jede wird separat ansteuerbar sein.
  • Die Schreiblogik enthält einen Komparator 120, der als Eingabe die aktuellen Schreibdaten, die für eine aktuelle Schreibadresse in dem Speicher vorgesehen sind, und die vorangehenden Schreibdaten, die zu der unmittelbar vorangehenden Adresse im Speicher 110 gehören, mit der Hilfe von Flip Flop (FF) 140 empfängt.
  • Wenn der Komparator 120 ermittelt, dass sich die aktuellen Schreibdaten von den vorangehenden Schreibdaten unterscheiden, sendet er ein Signal zum Schreibtakt-Gate 130, das dem Schreibtakt-Gate 130 ermöglicht, normal zu arbeiten, weil sich die Schreibdaten von den vorangehenden Schreibdaten unterscheiden. Ein Statusbit, das sich außerhalb des Speichers 110 befindet, aber zu der aktuellen Schreibadresse gehört, wird im Statusregister 190 mit der Hilfe eines Schreibadressendekoders 170 auf hoch (high) gesetzt, der basierend auf der Schreibadresse ein bestimmtes Statusbit auswählt.
  • Wenn der Komparator 120 ermittelt, dass die aktuellen Schreibdaten dieselben wie die vorangehenden Schreibdaten sind, sendet er ein Signal an ein Schreibtakt-Gate 130, das verursacht, dass das Schreibtakt-Gate 130 den Schreib-Port zum Speicher 110 am Funktionieren hindert, weil die Schreibdaten dieselben wie die vorangehenden Schreibdaten sind. In alternativen Ausführungsformen kann ein Leistungs-Gate oder irgendein anderes Energiesparschema verwendet werden, um einen Zugriff auf den Speicher 110 zu verhindern und Energie zu sparen, wenn die Schreibdaten dieselben wie die unmittelbar vorangehenden Daten sind. Zum Beispiel kann das Schreib-Freigabe (Wr_en)-Signal an den Speicher 110 auf niedrig (low) (zum Beispiel logische „0“) gehalten werden, wenn die Schreibdaten dieselben wie die unmittelbar vorangehenden Daten sind. Ein Statusbit, das sich außerhalb des Speichers 110 befindet, aber zu der aktuellen Schreibadresse gehört, wird unter Verwendung des Schreibadressendekoders 170 in dem Statusregister 190 gelöscht.
  • Die Leselogik enthält ein UND-Gate 160, das als Eingabe eine Lese-Freigabe(Rd_en)-Signal und die Statusbiteinstellung in dem Statusregister 190 für die Leseadresse in dem Speicher 110 empfängt. Die Statusbiteinstellung kann entweder eine logische „0“, wenn das Statusbit gelöscht ist, oder eine logische „1“ sein, wenn das Statusbit gemäß einem Leseadressendekoder 180 hoch gesetzt ist. Da die Lesefreigabe auf „1“ gesetzt werden wird, wird das UND-Gate 160 nur feuern bzw. auslösen, wenn das Statusbit auch „1“ ist, was angibt, dass die Daten, die aus der aktuellen Speicheradresse gelesen werden sollen, von den Daten in der vorangehenden Speicheradresse verschieden sind. In diesem Fall wird das Lesetakt-Gate dem Lese-Port zum Speicher 110 ermöglichen, normal zu arbeiten, und werden die Daten, wie gefordert, ausgelesen werden. Die Daten werden auch in einem Register außerhalb des Speichers 110 gehalten werden.
  • Wenn das Statusbit auf logische „0“ gesetzt ist, wird das UND-Gate 160 nicht feuern bzw. auslösen und kann das Lesetakt-Gate abgeschaltet werden und/oder kann die Lesefreigabe (Rd_en) auf logische „0“ niedrig gehalten werden, um zu verhindern, dass der Lese-Port zum Speicher 110 funktioniert, weil die Daten, die ausgelesen werden sollen, dieselben wie in der vorangehenden Speicheradresse sind. Diese Daten sind vorangehend in einem Register außerhalb des Speichers 110 gehalten worden und werden zur anfordernden Anwendung oder zum Prozess gesendet, die/der von der CPU 105 ausgeführt wird. Das Halten des Lesefreigabesignals zum Speicher auf 0 lässt die Leseadresse unverändert, wenn das Statusbit „0“ ist.
  • 3 stellt eine Logikarchitektur 300 gemäß einer Ausführungsform dar. Die Logikarchitektur 200 kann durch einen Power-Controller 125 in 3 repräsentiert werden. Die Logikarchitektur 200 kann als Teil des existierenden FIFO-Speichers 110 implementiert werden, der zu der Vorrichtung 100 gehört, wobei die Logikarchitektur 200 den Speicher 110 basierend auf einem Data-Toggle automatisch clock-gaten oder abschalten kann, sodass ein Benutzer hinsichtlich der energiesparenden Speicherzugriffstechniken unwissend sein kann. Ein benutzerdefinierter Parameter kann implementiert werden, um zu ermitteln, ob eine Leistungsoptimierung erforderlich ist. Wenn die Daten-Toggle-Rate hoch ist und die Logik, die versucht, auf den Speicher 110 zuzugreifen, für eine bestimmte Anwendung wichtig ist, kann ein Benutzer eine Parametereinstellung zum Umgehen der Leistungssteuerung verwenden.
  • Wenn der Datenbus breit und die Signale in dem Datenbus als Hoch- und Niedrig-Toggling-Signale klassifiziert werden können, dann kann ein Benutzer die Hoch- und Niedrig-Toggling-Signale als zwei separate Datenbusse abtrennen und zwei FIFOs parallel zueinander verwenden. Der Benutzer kann eine Parametereinstellung verwenden, um die Leistungssteuerung 125 für den niedrigen Toggling-Datenbus freizugeben und die Energiesteuerung 125 für den hohen Toggling-Datenbus zu ignorieren.
  • 4 stellt Zeilen von Speicher dar, die zum Beispiel Daten enthalten, die Ausführungsformen der Offenbarung illustrieren. In diesem Beispiel kann ein Speicher 110 mit einer Tiefe von achtzehn (18) Zeilen veranschaulicht werden. Die mit „Wr_data“ gekennzeichnete Spalte kann die tatsächlichen Daten enthalten, die in jeder der achtzehn Speicheradressen enthalten sind, die durch Spalte „Wr_addr“ gekennzeichnet sind. Die Spalte „Status“ kann die Statusbiteinstellung für jede der 18 Speicheradressen enthalten. Die Spalte „Wr_en“ kann die Einstellung für das Schreibtakt-Gate veranschaulichen. Die „Rd_data“-Spalte kann veranschaulichen, ob die Daten in einer bestimmten Schreibadresse neu oder dieselben wie die vorangehende Schreibadresse sind.
  • Unter Bezugnahme auf die untere Zeile, die für die Schreibadresse „0“ repräsentativ ist, wird gezeigt, dass die gespeicherten tatsächlichen Daten „A“ sind, das Statusbit hoch auf „1“ gesetzt sein kann, weil die Daten neu sind. In diesem Fall ist es die erste Adresse für den Speicher 110 und somit automatisch neu, da es keine vorangehende Adresse für einen Vergleich gibt. Da das Statusbit hoch gesetzt werden kann, kann die Schreib-Freigabe auch hoch auf „1“ gesetzt werden, um zu ermöglichen, dass das Schreibtakt-Gate auf den Schreib-Port des Speichers 110 zugreift. Schließlich können die Lesedaten, wann immer das Statusbit hochgesetzt ist, auf „neu“ gesetzt werden, um anzuzeigen, dass sich die Daten von den Daten in der unmittelbar vorangehenden Speicheradresse unterscheiden.
  • In der zweiten Zeile von unten ist gezeigt, dass sich die Daten noch nicht geändert haben. Somit kann das Statusbit auf „0“ gesetzt oder gelöscht (cleared) werden. Ein Versuch des Schreibens derselben Daten kann verhindert werden, weil die Schreibfreigabe auf „0“ gezwungen werden wird und der Schreib-Port zum Speicher 110 durch das Schreibtakt-Gate deaktiviert werden kann. Ein Versuch des Lesens von Daten kann in ähnlicher Weise verhindert werden, weil die Lesefreigabe auf „0“ gezwungen werden kann und der Lese-Port zum Speicher 110 durch das Lesetakt-Gate deaktiviert werden kann. Die richtigen Daten können von einem Register außerhalb des Speichers 110, das die Daten der vorangehenden Speicheradresse hält und damit aktualisiert werden kann, wenn neue Daten geschrieben werden, an den Anforderer gesendet werden.
  • Die dritte Zeile von unten kann sich genau wie die zweite Zeile von unten verhalten, weil sich die Daten unverändert nicht geändert haben. Die vierte Zeile von unten kann sehen, dass neue Daten in den Speicher 110 geschrieben werden. In diesem Fall kann ein Vergleich ergeben haben, dass die Daten neu sind. Das Statusbit kann auf „1“ zurückgesetzt werden und die Schreibfreigabe kann auf „1“ gesetzt werden, wodurch ermöglicht wird, dass das Schreibtakt-Gate auf den Schreib-Port zum Speicher 110 zugreift und die neuen Daten an die aktuelle Speicheradresse schreibt. Die Daten können aus dieser Speicheradresse gelesen werden, weil das Statusbit auf hoch gesetzt ist, was bedeutet, dass die Lesefreigabe auch dadurch gesetzt ist, wodurch ermöglicht wird, dass das Lesetakt-Gate einen Zugriff auf den Lese-Port des Speichers 110 erlaubt.
  • Die verbleibenden Zeilen des Speichers 110 folgen denselben Regeln, wie für die Zeilen 0-3 oben dargelegt. Jedes Mal, wenn das Statusbit auf hoch gesetzt wird, arbeitet der Speicher normal. Wenn jedoch das Statusbit gelöscht wird, zeigt es an, dass sich die Daten nicht geändert haben und ein Zugriff auf den Speicher nicht notwendig sein kann.
  • Hierin enthalten ist ein Satz von Ablaufschaubildern, die beispielhafte Methoden zur Durchführung von neuartigen Aspekten der offenbarten Architektur repräsentieren. Während zum Zwecke der einfachen Erläuterung die eine oder mehreren hierin gezeigte(n) Methode(n) zum Beispiel in der Form eines Ablaufschaubilds oder Ablaufdiagrams gezeigt und als eine Reihe von Tätigkeiten beschrieben worden ist/sind, versteht es sich und wird anerkannt werden, dass die Methoden nicht durch die Reihenfolge der Tätigkeiten bzw. Vorgänge beschränkt sind, da einige Tätigkeiten in Übereinstimmung damit in einer anderen Ordnung erfolgen können und/oder gleichzeitig mit anderen Tätigkeiten von den hierin gezeigten und beschriebenen folgen können. Zum Beispiel werden Fachleute auf dem Gebiet verstehen und anerkennen, dass eine Methodik alternativ als eine Reihe von verbundenen Zuständen oder Ereignissen, wie beispielsweise in einem Zustandsdiagramm, repräsentiert werden könnte. Außerdem können nicht alle in einer Methode dargestellten Tätigkeiten für eine neuartige Implementierung erforderlich sein.
  • 5 stellt eine Ausführungsform eines logischen Ablaufs 500 dar. Der logische Ablauf 500 kann für einige oder alle Operationen repräsentativ sein, die von einer oder mehreren hierin beschriebenen Ausführungsformen ausgeführt werden, wenn Schreiboperationen an dem Speicher 110 vorgenommen werden.
  • In der in 5 gezeigten Ausführungsform kann der logische Ablauf 500 beinhalten, dass die Speicherverwaltungskomponente 120 neue Daten bei Block 510 empfängt. Zum Beispiel kann die CPU 105 bei der Ausführung einer Anwendung, einer Anweisung oder eines Befehls Daten in den Speicher 110 schreiben müssen. Die in eine aktuelle Speicheradresse zu schreibenden Daten können bei der Speicherverwaltungskomponente 120 empfangen werden. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 500 kann beinhalten, dass die Speicherverwaltungskomponente 120 bei Block 520 ermittelt, ob die Vorrichtung 100 im Batteriebetrieb arbeitet. Zum Beispiel können die CPU 105, der Speicher 110 und die anderen Komponenten der Vorrichtung Strom zum Arbeiten ziehen. Dieser Strom kann von einer externen DC-Stromquelle oder von einer Batterieversorgung kommen. Eine Batterieversorgung ist begrenzter als eine externe DC-Stromquelle. Häufig besteht der Wunsch, die zum Arbeiten notwendige Energie bzw. Leistung zu reduzieren, um die Lebensdauer der Batterie zu verlängern. Die Speicherverwaltungskomponente 120 kann ermitteln oder ein Signal empfangen, das angibt, ob die Vorrichtung 100 im Batteriebetrieb arbeitet. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Wenn die Vorrichtung 100 nicht im Batteriebetrieb arbeitet, kann das Speichersystem normal arbeiten und auf die nächste Speicherzugriffsanweisung warten. Wenn die Vorrichtung 100 im Batteriebetrieb arbeitet, kann jedoch der logische Ablauf 500 bei Block 530 enthalten, dass die Speicherverwaltungskomponente 120 die neuen Daten mit den Daten in der vorangehenden Speicheradresse vergleicht. Zum Beispiel kann vor Schreiben der neuen Daten an die aktuelle Speicheradresse ermittelt werden, ob die unmittelbar vorangehende Speicheradresse mit der aktuellen Speicheradresse zusammenhängt. Die neuen Daten können dann mit den Daten in der unmittelbar vorangehenden Speicheradresse verglichen werden. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Fluss 500 kann bei Block 540 enthalten, dass die Speicherverwaltungskomponente 120 ermittelt, ob die neuen Daten dieselben wie die Daten in der vorangehenden Speicheradresse sind. Zum Beispiel kann der Prozess, wenn die Ergebnisse des bei Block 530 durchgeführten Vergleichs ergeben, dass sich die neuen Daten von den Daten in der unmittelbar vorangehenden Speicheradresse unterscheiden, eine Gruppe von Schritten, wie durch die Blöcke 550 und 560 unten beschrieben, durchführen. Wenn jedoch die Ergebnisse des bei Block 530 durchgeführten Vergleichs ergeben, dass die neuen Daten dieselben wie die Daten in der unmittelbar vorangehenden Speicheradresse sind, kann der Prozess eine andere Gruppe von Schritten, wie durch Blöcke 570 und 580 unten beschrieben, durchführen. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 500 kann bei Block 550 beinhalten, dass die Speicherverwaltungskomponente 120 ein zu der aktuellen Speicheradresse gehöriges Statusbit setzt. Wenn zum Beispiel die Ergebnisse des bei Block 530 durchgeführten Vergleichs ergeben, dass sich die neuen Daten von den Daten in der unmittelbar vorangehenden Speicheradresse unterscheiden, kann die Speicherverwaltungskomponente 120 ein zu der aktuellen Speicheradresse gehöriges Statusbit setzen, um anzuzeigen, dass sich die neuen Daten von den vorangehenden Daten unterscheiden. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 500 kann bei Block 560 beinhalten, dass die Speicherverwaltungskomponente 120 die neuen Daten an die aktuelle Speicheradresse schreibt. Da zum Beispiel die neuen Daten von den Daten in der unmittelbar vorangehenden Speicheradresse verschieden sind, wird die Speicherverwaltungskomponente 120 die neuen Daten an die aktuelle Speicheradresse schreiben. Die Steuerung kehrt dann zu Block 510 zurück, um auf den Erhalt der nächsten Instanz von neuen in den Speicher zu schreibenden Daten zu warten. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 500 kann enthalten, dass die Speicherverwaltungskomponente 120 bei Block 570 das zur aktuellen Speicheradresse gehörige Statusbit löscht. Wenn zum Beispiel die Ergebnisse des bei Block 530 durchgeführten Vergleichs ergeben, dass die neuen Daten dieselben wie die Daten in der unmittelbar vorangehenden Speicheradresse sind, kann die Speicherverwaltungskomponente 120 das zur aktuellen Speicheradresse gehörige Statusbit löschen, um anzuzeigen, dass die neuen Daten dieselben wie die vorangehenden Daten sind. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 500 kann bei Block 580 ein Speicherschreiben auf die Speicheradresse verhindern. Wenn zum Beispiel das Statusbit gelöscht worden ist, um anzuzeigen, dass die neuen Daten die selben wie die vorangehenden Daten sind, kann die Speicherverwaltungskomponente 120 den Schreib-Port clockgaten, um den Speicherzugriff zeitweilig zu deaktivieren. Das Clock-Gating wird Strom bzw. Energie an die Speicher 110— Komponente in Situationen, wenn die Daten nicht neu sind, verhindern. Alternativ kann die Speicherverwaltungskomponente 120 das Schreibfreigabe-Signal auf niedrig setzen, um einen Zugriff auf den Speicher 110 zu verhindern. Das Endergebnis ist, dass in den Speicher nur geschrieben werden kann, wenn neue Daten vorhanden sind. Wenn übermäßige Wiederholung von Daten bei aufeinanderfolgenden Speicheradressen stattfindet, können sich die Stromeinsparungen addieren. Die Steuerung kehrt dann zu Block 510 zurück, um den Erhalt der nächsten Instanz von neuen in den Speicher 110 zu schreibenden Daten abzuwarten. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • 6 stellt eine Ausführungsform eines logischen Ablaufs 600 dar. Der logische Ablauf 600 kann für einige oder alle Operationen repräsentativ sein, die von einer oder mehreren Ausführungsformen, die hierin beschrieben werden, ausgeführt werden, wenn diese Operationen am Speicher 110 durchgeführt werden.
  • In der in 6 gezeigten Ausführungsform kann der logische Ablauf 600 beinhalten, dass die Speicherverwaltungskomponente 120 bei Block 610 eine Leseanforderung empfängt. Zum Beispiel kann es sein, dass die CPU 105 bei der Ausführung einer Anwendung, Anweisung oder eines Befehls Daten aus dem Speicher 110 lesen muss. Die aus einer aktuellen Speicheradresse zu lesenden Daten können in dem Speicher 110 gespeichert werden und über die Speicherverwaltungskomponente 120 zugänglich sein. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 600 kann beinhalten, dass die Speicherverwaltungskomponente 120 bei Block 620 ermittelt, ob die Vorrichtung 100 im Batteriebetrieb arbeitet. Zum Beispiel ziehen die CPU 105, der Speicher 110 und die anderen Komponenten der Vorrichtung Strom zum Arbeiten. Dieser Strom kommt von einer externen DC-Stromquelle oder von einer Batterieversorgung. Eine Batterieversorgung ist begrenzter als eine externe DC-Stromquelle. Häufig besteht der Wunsch, die zum Arbeiten notwendige Energie bzw. Leistung zu reduzieren, um die Lebensdauer der Batterie zu verlängern. Die Speicherverwaltungskomponente 120 kann bestimmen oder ein Signal empfangen, das angibt, ob die Vorrichtung 100 im Batteriebetrieb arbeitet. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Wenn die Vorrichtung 100 nicht im Batteriebetrieb arbeitet, kann das Speichersystem normal arbeiten und auf die nächste Speicherzugriffsanweisung warten. Wenn die Vorrichtung 100 im Batteriebetrieb arbeitet, kann jedoch der logische Ablauf 600 beinhalten, dass die Speicherverwaltungskomponente 120 bei Block 630 das zu der aktuellen Speicheradresse gehörige Statusbit überprüft. Beispielsweise vor dem Lesen von Daten aus der aktuellen Speicheradresse kann das Statusbit für die aktuelle Speicheradresse überprüft werden, um zu ermitteln, ob sich die zu lesenden Daten von den Daten in der unmittelbar vorangehenden Speicheradresse unterscheiden. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 600 kann beinhalten, dass die Speicherverwaltungskomponente 120 bei Blick 640 ermittelt, ob das zu der aktuellen Speicheradresse gehörige Statusbit gesetzt oder gelöscht ist. Wenn zum Beispiel die Ergebnisse der bei Block 630 durchgeführten Überprüfung ergeben, dass das Statusbit gesetzt ist, kann der Prozess eine Gruppe von Schritten, wie durch Blöcke 650 und 660 unten beschrieben, durchführen. Wenn jedoch die Ergebnisse der in Block 630 durchgeführten Überprüfung ergeben, dass das Statusbit gelöscht ist, kann der Prozess eine andere Gruppe von Schritten, wie durch Blöcke 670 und 680 unten beschrieben, durchführen. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 600 kann beinhalten, dass die Speicherverwaltungskomponente 120 bei Block 650 Daten aus der aktuellen Speicheradresse liest. Wenn zum Beispiel die Ergebnisse des bei Block 630 durchgeführten Vergleichs ergeben, dass das Statusbit gesetzt ist, kann die Speicherverwaltungskomponente 120 Daten aus der aktuellen Speicheradresse lesen, weil das gesetzte Statusbit anzeigt, dass sich die Daten in der aktuellen Speicheradresse von den Daten in der vorangehenden Speicheradresse unterscheiden. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 600 kann beinhalten, dass die Speicherverwaltungskomponente 120 bei Block 660 die gerade gelesenen Daten von der aktuellen Speicheradresse in einem Register hält. Beispielsweise weil sich die Lesedaten von den Daten in der unmittelbar vorangehenden Speicheradresse unterscheiden, wird die Speicherverwaltungskomponente 120 die Daten von der aktuellen Speicheradresse lesen und in einem Register außerhalb des Speichers 110 in dem Fall, dass das Statusbit gelöscht ist, für die nächste Leseanforderung halten. Die Steuerung kehrt dann zu Block 610 zurück, um auf den Empfang der nächsten Instanz von neuen in den Speicher zu schreibenden Daten zu warten. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 600 kann beinhalten, dass die Speicherverwaltungskomponente 120 bei Block 670 in dem Register gehaltene Daten zurückbringt. Wenn zum Beispiel das Statusbit, wie bei Block 640 ermittelt, gelöscht ist, kann die Speicherverwaltungskomponente 120 die in dem Register gehaltenen Daten zurückbringen, weil sie dieselben wie in der vorangehenden Speicheradresse sind. Da sich das Register außerhalb des Speichers 110 befindet, besteht kein Bedarf, Ressourcen, die auf den Speicher 110 zugreifen, aufzuwenden, um die angeforderten Daten zu erhalten. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der logische Ablauf 600 kann bei Block 680 ein Lesen aus der Speicheradresse verhindern. Wenn beispielsweise das Statusbit gelöscht worden ist, um anzuzeigen, dass die neuen Daten dieselben wie die vorangehenden Daten sind, kann die Speicherverwaltungskomponente 120 den Lese-Port zum temporären Deaktivieren des Speicherzugriffs clockgaten. Die angeforderten Daten sind über das Register außerhalb des Speichers 110 zur anfordernden Komponente zurückgebracht worden. Das Clock-Gating wird Strom zur Speicher 110-Komponente in Situationen verhindern, wenn die Daten nicht neu sind. Alternativ kann die Speicherverwaltungskomponente 120 das Lese-Freigabesignal auf niedrig setzen, um einen Zugriff auf den Speicher 110 zu verhindern. Das Setzen des Lese-Freigabesignals zum Speicher auf „0“ lässt die Leseadresse unverändert, wenn das Statusbit „0“ ist. Das Endergebnis besteht darin, dass der Speicher nur ausgelesen werden kann, wenn sich die Daten in der aktuellen Speicheradresse von Daten in der unmittelbar vorangehenden Speicheradresse unterscheiden. Wenn eine übermäßige Wiederholung von Daten in aufeinanderfolgenden Speicheradressen erfolgt, können sich die Energieeinsparungen addieren bzw. summieren. Steuerung kehrt dann zu Block 610 zurück, um auf den Empfang der nächsten Instanz von aus dem Speicher 110 zu lesenden Daten zu warten. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Zahlreiche Ausführungsformen können unter Verwendung von Hardware-Elementen, Software-Elementen oder einer Kombination derselben implementiert werden. Beispiele für Hardware-Elemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z.B. Transistoren, Widerstände, Kondensatoren, Spulen und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (application specific integrated circuits (ASIC)), programmierbare Logikbausteine (programmable logic devices (PLD)), digitale Signalprozessoren (digital signal processors (DSP)), feldprogrammierbare Gatter-Anordnung (field programmable gate array (FPGA)), Logikgatter, Register, Halbleiterbaustein, Chips, Mikrochips, Chipsätze und so weiter einschließen. Beispiele für Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammierschnittstellen (application program interfaces (API)), Befehlssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination derselben, einschließen. Die Festlegung, ob eine Ausführungsform unter Verwendung von Hardware-Elementen und/Software-Elementen implementiert ist, kann entsprechend irgendeiner Anzahl von Faktoren, wie zum Beispiel gewünschte Rechengeschwindigkeit, Leistungspegel, Wärmetoleranzen, Abarbeitungszykluseinplanung, Eingabedatengeschwindigkeiten, Ausgabedatengeschwindigkeiten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Design- und Leistungsbedingungen, variieren.
  • 7 stellt eine Ausführungsform eines Systems 700 dar, das zur Implementierung der Ausführungsformen der Speicherzugriffsverarbeitung der Offenbarung geeignet sein kann. In Ausführungsformen kann das System 700 ein System zum Implementieren der oben beschriebenen Speicherzugriffsausführungsformen sein, obwohl das System 700 in diesem Zusammenhang nicht beschränkt ist. Zum Beispiel kann das System 700 in einen Personalcomputer (PC), Laptop-Computer, Ultra-Laptop-Computer, Tablet, Touchpad, tragbaren Computer, Handheld-Computer, Palmtop-Computer, persönlichen digitalen Assistenten (PDA), Mobiltelefon, Kombination aus Mobiltelefon und PDA, Fernseher, intelligentes Gerät (zum Beispiel Smartphone, Smart-Tablet oder Smart-Fernseher), mobiles Internetgerät (mobile internet device (MID)), Benachrichtigungsgerät, Datenkommunikationsgerät und so weiter, eingebaut sein.
  • In Ausführungsformenen umfasst das System 700 eine mit einem Display 720 gekoppelte Plattform 702. Die Plattform 702 kann Inhalt von einem Inhaltegerät, wie zum Beispiel Inhaltedienstegerät(e) 730 oder Inhaltelieferungsgerät(e) 740 oder anderen ähnlichen Inhaltsquellen empfangen. Eine Navigationssteuerung 750, die eine oder mehrere Navigationseinrichtung(en) umfasst, kann verwendet werden, um mit zum Beispiel der Plattform 702 und/oder dem Display 720 zu interagieren. Jede dieser Komponenten wird unten detaillierter beschrieben.
  • In Ausführungsformen kann die Plattform 702 irgendeine Kombination aus einem Chipsatz 705, Prozessor(en) 710, Speicher (memory) 712, Speicher (storage) 714, Grafikuntersystem 715, Anwendungen 716 und/oder Funk 718 umfassen. Der Chipsatz 705 kann für Kommunikation unter dem Prozessor 710, Speicher 712, Speicher 714, Grafikuntersystem 715, Anwendungen 716 und/oder Funk 718 sorgen. Zum Beispiel kann der Chipsatz 705 einen Speicheradapter (nicht dargestellt) enthalten, der Kommunikation mit Speicher 714 liefern kann.
  • Der Prozessor/die Prozessoren 710 kann/können als Complex Instruction Set Computer(CISC)- oder Reduced Instruction Set Computer(RISC)-Prozessoren, zum x86-Befehlssatz kompatible Prozessoren, Mehrkern- oder irgendein anderer Mikroprozessor oder zentrale Verarbeitungseinheit (CPU) implementiert sein. In Ausführungsformen kann/können der Prozessor/die Prozessoren (710) Dual-Core-Prozessor(en), Dual-Core-Mobilprozessor(en) und so weiter umfassen.
  • Der Speicher 712 kann als eine flüchtige Speichereinrichtung, wie zum Beispiel, ohne aber darauf beschränkt zu sein, ein Random Access Memory (RAM), Dynamic Random Access Memory (DRAM) oder Static RAM (SRAM), ausgeführt sein.
  • Der Speicher 714 kann als eine nicht flüchtige Speichereinrichtung, wie zum Beispiel, ohne aber darauf beschränkt zu sein, ein magnetisches Plattenlaufwerk, optisches Plattenlaufwerk, Bandlaufwerk, eine interne Speichereinrichtung, eine angeschlossene Speichereinrichtung, Flash-Speicher, batteriegepufferter SDRAM (synchronous DRAM), und/oder eine netzwerkzugängliche Speichereinrichtung, ausgeführt sein. In Ausführungsformen kann der Speicher 714 Technologie zum Erhöhen des speicherleistungsgesteigerten Schutzes für wertvolle digitale Medien, wenn zum Beispiel mehrere Festplattenlaufwerke enthalten sind, umfassen.
  • Das Grafikuntersystem 715 kann eine Verarbeitung von Bildern, wie zum Beispiel Standbildern oder Video zur Anzeige durchführen. Das Grafikuntersystem 715 kann beispielsweise eine Grafikverarbeitungseinheit (GPU) oder eine visuelle Verarbeitungseinheit (visual processing unit (VPU)) sein. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Grafikuntersystem 715 und das Display 720 kommunikativ zu koppeln. Zum Beispiel kann die Schnittstelle ein High-Definition Multimedia Interface, DisplayPort, drahtloses HDMI und/oder drahtlose HD-komforme Techniken sein. Das Grafikuntersystem 715 könnte in dem Prozessor 710 oder Chipsatz 705 integriert werden. Das Grafikuntersystem 715 könnte eine eigenständige Karte sein, die mit dem Chipsatz 705 kommunikativ gekoppelt ist.
  • Die hierin beschriebenen Grafik- und/oder Videoverarbeitungstechniken können in zahlreichen Hardwarearchitekturen implementiert sein. Zum Beispiel kann Grafik- und/oder Videofunktionalität in einem Chipsatz integriert sein. Alternativ kann/können ein diskreter Grafik- und/oder Videoprozessor verwendet werden. In einer weiteren Ausführungsform kann/können die Grafik- und/oder Videofunktion(en) durch einen Allzweckprozessor implementiert sein, der einen Mehrkernprozessor enthält. In einer weiteren Ausführungsform können die Funktionen in einem Unterhaltungselektronikgerät implementiert sein.
  • Die Funkeinrichtung 718 kann eine oder mehrere Funkeinrichtungen zum Senden und Empfangen von Signalen unter Verwendung von zahlreichen geeigneten drahtlosen Kommunikationstechniken enthalten. Solche Techniken können mit Kommunikation über ein oder mehrere drahtlose Netzwerke verbunden sein. Beispielhafte drahtlose Netzwerke schließen (ohne aber darauf beschränkt zu sein) WLANs (wireless local area networks), WPANs (wireless personal area networks), WMANs (wireless metropolitan area network), Mobilfunknetze und Satellitennetze ein. Beim Kommunizieren über solche Netzwerke kann die Funkeinrichtung 718 gemäß einem oder mehreren anwendbaren Standards in irgendeiner Version arbeiten.
  • In Ausführungsformen kann das Display 720 einen fernseherartigen Monitor oder ein Display umfassen. Das Display 720 kann zum Beispiel einen Computerbildschirm, einen Touch-Screen-Monitor, Videomonitor, ein fernseherähnliches Gerät und/oder einen Fernseher umfassen. Das Display 720 kann digital und/oder analog sein. In Ausführungsformen kann das Display 720 ein holografisches Display sein. Außerdem kann das Display 720 eine transparente Fläche sein, die eine optische Projektion empfängt. Solche Projektionen können zahlreiche Formen von Information, Bildern und/oder Objekten übermitteln. Zum Beispiel können solche Projektionen eine optische Überlagerung für eine MAR (mobile augmented reality)-Anwendung sein. Unter der Steuerung von einer oder mehreren Softwareanwendungen 716 kann die Plattform 702 eine Benutzerschnittstelle 722 auf dem Display 720 anzeigen.
  • In Ausführungsformen können Inhaltedienstegerät(e) 730 von einem nationalen, internationalen und/oder unabhängigen Dienst veranstaltet werden und somit für die Plattform 702 beispielsweise über das Internet zugänglich sein. Inhaltedienstegerät(e) 730 kann/können mit der Plattform 702 und/oder dem Display 720 gekoppelt sein. Die Plattform 702 und/oder das/die Inhaltedienstegerät(e) 730 kann/können mit einem Netzwerk 760 gekoppelt sein, um Medieninformation zu und von dem Netzwerk 760 zu kommunizieren (zum Beispiel zu senden und/oder zu empfangen). Das Inhalteliefergerät/die Inhalteliefergeräte 740 kann/können mit der Plattform 702 und/oder dem Display 720 gekoppelt sein.
  • In Ausführungsformen kann/können Inhaltedienstgerät(e) 730 eine Kabelfernsehbox, einen Personalcomputer, ein Netzwerk, ein Telefon, internetfähige Geräte oder Anwendungen zum Liefern von digitaler Information und/oder Inhalt und irgendein anderes ähnliches Gerät, das zur unidirektionalen oder bidirektionalen Kommunikation von Inhalt zwischen Inhalteanbietern und Plattform 702 und/oder Display 720 über Netzwerk 760 oder direkt fähig ist, umfassen. Es wird anerkannt werden, dass der Inhalt zu und von irgendeiner der Komponenten in dem System 700 und einem Inhalteanbieter über das Netzwerk 760 unidirektional und/oder bidirektional kommuniziert werden kann. Beispiele für Inhalt schließen irgendeine Medieninformation, die zum Beispiel Video, Musik, medizinische und Spielinformation und so weiter enthält, ein.
  • Inhaltedienstegerät(e) 730 empfängt/empfangen Inhalt, wie zum Beispiel ein Kabelfernsehprogramm, das Medieninformation, digitale Information und/oder anderen Inhalt enthält. Beispiele für Inhalteanbieter schließen irgendwelche Kabel- oder Satellitenfernseh- oder -radio- oder Internetinhalteanbieter ein. Die bereitgestellten Beispiele sollen Ausführungsformen der Erfindung nicht begrenzen bzw. beschränken.
  • In Ausführungsformen kann die Plattform 702 Steuersignale vom Navigationscontroller 750 mit einer oder mehreren Navigationseinrichtungen bzw. -merkmalen empfangen. Die Navigationseinrichtungen des Controllers 750 können verwendet werden, um zum Beispiel mit der Benutzerschnittstelle 722 zu interagieren. In Ausführungsformen kann der Navigationscontroller 750 ein Zeigegerät sein, das eine Computerhardwarekomponente (speziell Human Interface Device) sein kann, die einem Benutzer ermöglicht, räumliche (zum Beispiel kontinuierliche und mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie zum Beispiel grafische Benutzerschnittstellen (graphical user interfaces (GUI)) und Fernseher und Monitore, ermöglichen dem Benutzer, unter Verwendung von Körpergesten Daten zu steuern und dem Computer oder Fernseher bereitzustellen.
  • Bewegungen der Navigationseinrichtungen des Controllers 750 können auf einem Display (zum Beispiel Display 720) durch Bewegungen eines Zeigers (pointer), Cursors, Fokusrings oder anderer visueller Anzeigen, die auf dem Display angezeigt werden, rückgemeldet werden. Zum Beispiel unter der Steuerung von Softwareanwendungen 716 können die Navigationseinrichtungen, die sich auf dem Navigationscontroller 750 befinden, auf virtuelle Navigationseinrichtungen abgebildet werden, die zum Beispiel auf einer Benutzerschnittstelle 722 angezeigt werden. In Ausführungsformen kann der Controller 750 eine separate Komponente sein, aber in der Plattform 702 und/oder dem Display 720 integriert sein. Die Ausführungsformen sind jedoch nicht auf die Elemente oder in diesem Zusammenhang hierin gezeigte oder beschriebene beschränkt.
  • In Ausführungsformen können Treiber (nicht gezeigt) Technologie umfassen, um Benutzern zu ermöglichen, die Plattform 702 wie einen Fernseher mit der Berührung einer Taste beispielsweise nach initialem Boot-up nach Aktivierung sofort ein- und auszuschalten. Programmlogik kann ermöglichen, dass die Plattform 702 auf Inhalt durch Medienadapter oder andere Inhaltedienstegerät(e) 730 oder Inhalteliefergerät(e) 740 zugreift, wenn die Plattform ausgeschaltet ist. Zusätzlich kann der Chipsatz 705 Hardware- und/oder Softwaresupport beispielsweise für 5.1-Surround-Ton und/oder High Definition 7.1-Surround-Ton umfassen. Treiber können einen Grafiktreiber für integrierte Grafikplattformen einschließen. In Ausführungsformen kann der Grafiktreiber eine Peripheral Component Interconnect (PCI) Express-Grafikkarte umfassen.
  • In zahlreichen Ausführungsformen kann/können irgendeine oder mehrere der in dem System 700 gezeigten Komponenten integriert sein. Zum Beispiel können die Plattform 702 und das Inhaltedienstegerät bzw. die Inhaltedienstegeräte 730 integriert sein oder die Plattform 702 und das/die Inhalteliefergerät(e) 740 integriert sein oder zum Beispiel die Plattform 702, das/die Inhaltedienstegerät(e) 730 und das/die Inhalteliefergerät(e) 740 integriert sein. In zahlreichen Ausführungsformen können die Plattform 702 und das Display 720 eine integrierte Einheit sein. Das Display 720 und das/die Inhaltedienstegerät(e) 730 können integriert sein oder beispielsweise das Display 720 und das/die Inhalteliefergerät(e) 740 können integriert sein. Diese Beispiele sollen die Erfindung nicht beschränken.
  • In zahlreichen Ausführungsformen kann das System 700 als ein drahtloses System, ein verdrahtetes System oder eine Kombination von beiden implementiert sein. Bei Implementierung als ein drahtloses System kann das System 700 Komponenten und Schnittstellen enthalten, die zur Kommunikation über drahtlos gemeinsam genutzte Medien (wireless shared media) geeignet sind, wie zum Beispiel eine oder mehrere Antennen, Sender, Empfänger, Transceivers, Verstärker, Filter, Steuerlogik und so weiter. Ein Beispiel für drahtlos gemeinsam genutzte Medien kann Teile eines drahtlosen Spektrums (Funkspektrums), wie zum Beispiel des RF-Spektrums und so weiter, einschließen. Bei Implementierung als ein verdrahtetes System kann das System 700 Komponenten und Schnittstellen enthalten, die zur Kommunikation über verdrahtete Kommunikationsmedien geeignet sind, wie zum Beispiel Eingabe-/Ausgabe(input/output (I/O))-Adapter, physische Verbinder zum Verbinden des I/O-Adapters mit einem korrespondierenden verdrahteten Kommunikationsmedium, eine Netzwerkschnittstelle (network interface card (NIC)), Festplattencontroller, Videocontroller, Audiocontroller und so weiter. Beispiele für verdrahtete Kommunikationsmedien können einen Draht, ein Kabel, Metallleitungen, eine Leiterplatte (printed circuit board (PCB)), Backplane, Switch Fabric, Halbleitermaterial, verdrillte Zweidrahtleitung, Koaxialkabel, Faseroptik und so weiter einschließen.
  • Die Plattform 702 kann einen oder mehrere logische oder physikalische Kanäle zum Kommunizieren von Information aufbauen. Die Information kann Medieninformation und Steuerinformation enthalten. Medieninformation kann sich auf irgendwelche Daten beziehen, die für einen Benutzer vorgesehenen Inhalt repräsentieren. Beispiele für Inhalt können beispielsweise Daten von einer Sprachkonversation, Videokonferenz, einem Streamingvideo, einer elektronischen Mail(„Email“)-Nachricht, Sprach-Mail-Nachricht, alphanumerische Symbole, Grafik, ein Bild, Video, Text und so weiter einschließen. Daten von einer Sprachkonversation können zum Beispiel Sprechinformation, Ruheperioden, Hintergrundrauschen, Komfortrauschen, Töne und so weiter sein. Steuerinformation kann sich auf irgendwelche Daten beziehen, die Befehle, Anweisungen oder Steuerwörter, die für ein automatisiertes System vorgesehen sind, repräsentieren. Zum Beispiel kann Steuerinformation verwendet werden, um Medieninformation durch ein System zu routen oder einen Knoten anzuweisen, die Medieninformation in einer vorab festgelegten Weise zu verarbeiten. Die Ausführungsformen sind jedoch nicht auf die in 7 gezeigten oder beschriebenen oder damit im Zusammenhang stehenden Elemente beschränkt.
  • Wie oben beschrieben ist, kann das System 700 in unterschiedlichen physikalischen Stilen oder Formfaktoren ausgeführt sein. 8 stellt Ausführungsformen eines Geräts 800 mit einem kleinen Formfaktor dar, in denen das System 700 verkörpert sein kann. In Ausführungsformen kann zum Beispiel das Gerät 800 als ein Mobile Computing-Gerät mit Funkfähigkeiten implementiert sein. Ein Mobile Computing-Gerät kann sich auf jedes Gerät mit einem Verarbeitungssystem und einer mobilen Energiequelle oder -versorgung, wie zum Beispiel einer oder mehreren Batterien, beziehen.
  • Wie oben beschrieben ist, können Beispiele für ein Mobile Computing-Gerät einen Personalcomputer (PC), Laptop-Computer, Ultra-Laptop-Computer, Tablet, Touchpad, einen tragbaren Computer, einen Handheld-Computer, Palmtop-Computer, persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Kombination von Mobiltelefon/PDA, einen Fernseher, ein intelligentes Gerät (zum Beispiel Smartphone, Smart-Tablet oder Smart-Fernseher), mobiles Internetgerät (mobile internet device (MID)), Nachrichtengerät, Datenkommunikationsgerät und so weiter einschließen.
  • Beispiele für ein Mobile Computing-Gerät können auch Computer einschließen, die gestaltet sind, um von einer Person getragen zu werden, wie zum Beispiel ein Handgelenkcomputer, Fingercomputer, Ringcomputer, Brillencomputer, Gürtelclipcomputer, Armbandcomputer, Schuhcomputer, Bekleidungscomputer und andere tragbare Computer. In Ausführungsformen kann zum Beispiel ein Mobile Computing-Gerät als ein Smartphone implementiert sein, das zur Ausführung von Computeranwendungen sowie von Sprachkommunikation und/oder Datenkommunikation fähig ist. Obwohl einige Ausführungsformen mit einem Mobile Computing-Gerät beschrieben sind, das beispielsweise als ein Smartphone implementiert ist, wird man anerkennen, dass andere Ausführungsformen unter Verwendung von anderen drahtlosen Mobile Computing-Geräten auch implementiert sein können. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Wie in 8 gezeigt ist, kann das Gerät 800 ein Gehäuse 802, ein Display 804, eine Eingabe-/Ausgabe(I/O)-Einrichtung 806 und eine Antenne 808 aufweisen. Das Gerät 800 kann auch Navigationseinrichtungen 812 aufweisen. Das Display 804 kann irgendeine geeignete Anzeigeeinheit zum Anzeigen von Information, die für ein Mobile Computing-Gerät geeignet ist, umfassen. Die I/O-Einrichtung 806 kann irgendeine geeignete I/O-Einrichtung zur Eingabe von Information in ein Mobile Computing-Gerät aufweisen. Beispiele für I/O-Einrichtung 806 können eine alphanumerische Tastatur, ein numerisches Tastenfeld, ein Touchpad, Eingabetasten, Knöpfe, Schalter, Kippschalter, Mikrofone, Lautsprecher, Spracherkennungseinrichtung und Software und so weiter einschließen. Information kann auch mittels eines Mikrofons in das Gerät 800 eingegeben werden. Solche Information kann von einer Spracherkennungseinrichtung digitalisiert werden. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Zahlreiche Ausführungsformen können unter Verwendung von Hardware-Elementen, Software-Elementen oder einer Kombination derselben implementiert werden. Beispiele für Hardware-Elemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (zum Beispiel Transistoren, Widerstände, Kondensatoren, Spulen und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (application specific integrated circuits (ASIC)), programmierbare Logikbausteine (programmable logic devices (PLD)), digitale Signalprozessoren (digital signal processors (DSP)), feldprogrammierbares Gatter-Array (field programmable gate array (FPGA)), Logik-Gatter, Register, Halbleiterbaustein, Chips, Mikrochips, Chipsätze und so weiter einschließen. Beispiele für Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammierschnittstellen (application program interfaces (API)), Anweisungs- bzw. Befehlssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination derselben einschließen. Die Festlegung, ob eine Ausführungsform unter Verwendung von Hardware-Elementen und/oder Software-Elementen implementiert ist, kann entsprechend irgendeiner Anzahl von Faktoren, wie zum Beispiel der gewünschten Rechengeschwindigkeit, Leistungslevels, Wärmetoleranzen, Verarbeitungszykluseinplanung, Eingabedatenraten, Ausgabedatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und Design- und Leistungsbedingungen variieren.
  • Ein oder mehrere Aspekte von mindestens einer Ausführungsform kann/können durch repräsentative Anweisungen implementiert werden, die in einem maschinenlesbaren Medium gespeichert sind, das verschiedenartige Logik in dem Prozessor repräsentiert, die beim Lesen durch eine Maschine verursachen, dass die Maschine Logik zur Ausführung der hierin beschriebenen Techniken erzeugt. Solche Repräsentationen, als „IP-Kerne“ bekannt, können auf einem greifbaren, maschinenlesbaren Medium gespeichert und an diverse Kunden oder Herstelleinrichtungen zum Laden in die Herstellmaschinen, die tatsächlich die Logik oder den Prozessor herstellen, geliefert werden.
  • Ein oder mehrere Aspekte von mindestens einer Ausführungsform kann/können durch repräsentative Anweisungen implementiert werden, die in einem maschinenlesbaren Medium gespeichert werden, das verschiedenartige Logik in dem Prozessor repräsentiert, die beim Lesen durch eine Maschine verursachen, dass die Maschine Logik zur Ausführung der hierin beschriebenen Techniken erzeugt. Solche Repräsentationen, als „IP-Kerne“ bekannt, können auf einem greifbaren, maschinenlesbaren Medium gespeichert und an diverse Kunden oder Herstelleinrichtungen zum Laden in die Herstellmaschinen, die tatsächlich die Logik oder den Prozessor herstellen, geliefert werden.
  • Einige Ausführungsformen können unter Verwendung des Ausdrucks „eine (1) Ausführungsform“ oder „eine Ausführungsform“ gemeinsam mit deren Ableitungen beschrieben werden. Diese Begriffe bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristik, die in Verbindung mit der Ausführungsform beschrieben sind, in mindestens einer Ausführungsform enthalten ist. Das Auftreten der Phrase „in einer (1) Ausführungsform“ an zahlreichen Stellen in der Beschreibung bezieht sich nicht notwendigerweise immer auf dieselbe Ausführungsform. Ferner können einige Ausführungsformen unter Verwendung des Ausdrucks „gekoppelt“ und „verbunden“ gemeinsam mit deren Ableitungen beschrieben sein. Diese Begriffe sollen nicht notwendigerweise Synonyme füreinander sein. Zum Beispiel können einige Ausführungsformen unter Verwendung der Begriffe „verbunden“ und/oder „gekoppelt“ beschrieben sein, um anzuzeigen, dass zwei oder mehrere Elemente in direktem physischen oder elektrischen Kontakt miteinander stehen. Der Begriff „gekoppelt“ kann jedoch auch bedeuten, dass zwei oder mehrere Elemente nicht in direktem Kontakt miteinander stehen, aber dennoch unverändert miteinander kooperieren oder interagieren.

Claims (27)

  1. Vorrichtung, umfassend: eine Verarbeitungskomponente; und eine Speicherverwaltungskomponente, die über die Verarbeitungskomponente funktionsfähig ist, um: ein Schreiben von Daten an eine Speicheradresse eines Speichers zu verhindern, wenn die Schreibadresse in Bezug auf die unmittelbar vorangehende Adresse zusammenhängt und die Daten dieselben wie Daten in einer unmittelbar vorangehenden Speicheradresse des Speichers sind; und ein Lesen von Daten aus der Speicheradresse des Speichers zu verhindern, wenn die Daten dieselben wie die Daten in der unmittelbar vorangehenden Speicheradresse des Speichers sind; wobei zu der Speicheradresse ein Statusbit gehört; wobei das Statusbit gelöscht wird, wenn zu schreibende Daten dieselben wie Daten in der unmittelbar vorangehenden Speicheradresse sind; wobei das Statusbit gesetzt wird, wenn zu schreibende Daten sich von Daten in der unmittelbar vorangehenden Speicheradresse unterscheiden; wobei das Schreiben von Daten durchgeführt wird, wenn das Statusbit gesetzt ist; und wobei das Lesen von Daten aus der Speicheradresse verhindert wird, wenn das Statusbit gelöscht ist.
  2. Vorrichtung nach Anspruch 1, wobei ein Schreib-Port für den Speicher deaktiviert wird, wenn die Daten dieselben sind.
  3. Vorrichtung nach Anspruch 2, wobei die Speicherverwaltungskomponente funktionsfähig ist, um: den Schreib-Port für den Speicher durch Clock-Gating des Schreib-Ports zu deaktivieren.
  4. Vorrichtung nach Anspruch 2, wobei die Speicherverwaltungskomponente funktionsfähig ist, um: den Schreib-Port für den Speicher durch Herabsetzen des Schreib-Freigabesignals an den Speicher zu deaktivieren.
  5. Vorrichtung nach Anspruch 1, wobei die zu schreibenden Daten in einem Register außerhalb des Speichers gehalten werden, wenn das Statusbit gesetzt ist; und die in dem Speicher gehaltenen Daten zurückgegeben werden und ein Lese-Port für den Speicher deaktiviert wird, wenn das Statusbit gelöscht wird.
  6. Vorrichtung nach Anspruch 5, wobei die Speicherverwaltungskomponente funktionsfähig ist, um den Lese-Port für den Speicher durch Clock-Gating des Lese-Ports zu deaktivieren.
  7. Vorrichtung nach Anspruch 5, wobei die Speicherverwaltungskomponente funktionsfähig ist, um den Lese-Port für den Speicher durch Herabsetzen eines Lese-Freigabesignals an den Speicher zu deaktivieren.
  8. Vorrichtung nach Anspruch 1, ferner umfassend den Speicher.
  9. Vorrichtung nach Anspruch 1, wobei die Speicherverwaltungskomponente funktionsfähig ist, um: ein Schreiben von Daten an eine Speicheradresse zu verhindern, wenn die Daten dieselben wie die Daten in der unmittelbar vorangehenden Speicheradresse sind, nur während eine Batterie die Verarbeitungskomponente versorgt; und ein Lesen von Daten aus einer Speicheradresse zu verhindern, wenn die Daten dieselben wie die Daten in der unmittelbar vorangehenden Speicheradresse sind, nur während eine Batterie die Verarbeitungskomponente versorgt.
  10. Vorrichtung nach Anspruch 9, wobei die Speicherverwaltungskomponente funktionsfähig ist, um: ein Schreiben von Daten an eine Speicheradresse zu verhindern, wenn die Daten dieselben wie die Daten in der unmittelbar vorangehenden Speicheradresse sind, wenn sich die Batterie unter einem Schwellenwertprozentsatz der verbleibenden Batterieleistung befindet; und Lesen von Daten aus einer Speicheradresse zu verhindern, wenn die Daten dieselben wie die Daten in der unmittelbar vorangehenden Speicheradresse sind, wenn sich die Batterie unter einem Schwellenwertprozentsatz der verbleibenden Batterieleistung befindet.
  11. Vorrichtung nach Anspruch 1, wobei der Speicher ein First In-, First Out(FIFO)-Speicher ist.
  12. Verfahren, umfassend: Empfangen von Daten, die sich aus der Ausführung einer Zentralverarbeitungseinheit (CPU)-Anweisung ergeben, wobei die Daten in eine Speicheradresse eines Speichers zu schreiben sind; Löschen eines Statusbits und Verhindern eines Schreibens der Daten, wenn die Adresse in Bezug auf die unmittelbar vorangehende Adresse zusammenhängt und die Daten dieselben wie Daten in einer unmittelbar vorangehenden Speicheradresse des Speichers sind; Setzen des Statusbits, wenn die Daten sich unterscheiden; Schreiben der Daten, wenn das Statusbit gesetzt ist; Empfangen einer Leseanforderung für die Speicheradresse; Verhindern des Lesens von Daten aus der Speicheradresse, wenn das Statusbit gelöscht ist; und Verwenden von Daten, die in einem Register außerhalb des Speichers gespeichert sind, die dieselben wie die Daten sind, die in der unmittelbar vorangehenden Speicheradresse gespeichert sind, um der Leseanforderung zu entsprechen, wenn die Daten dieselben wie die Daten in der unmittelbar vorangehenden Speicheradresse sind.
  13. Verfahren nach Anspruch 12, umfassend: Deaktivieren eines Schreib-Ports für den Speicher, wenn die Daten dieselben sind.
  14. Verfahren nach Anspruch 13, umfassend ein Deaktivieren des Schreib-Ports für den Speicher durch Clock-Gating des Schreib-Ports.
  15. Verfahren nach Anspruch 13, umfassend ein Deaktivieren des Schreib-Ports für den Speicher durch Herabsetzen eines Schreib-Freigabesignals an den Speicher.
  16. Verfahren nach Anspruch 12, umfassend: Halten der zu schreibenden Daten in dem Register, wenn das Statusbit gesetzt ist; und Zurückgeben der in dem Register gehaltenen Daten und Deaktivieren eines Lese-Ports für den Speicher, wenn das Statusbit gelöscht ist.
  17. Verfahren nach Anspruch 16, umfassend ein Deaktivieren des Lese-Ports für den Speicher durch Clock-Gating des Lese-Ports.
  18. Verfahren nach Anspruch 16, umfassend ein Deaktivieren des Lese-Ports für den Speicher durch Herabsetzen eines Lese-Freigabesignals an den Speicher.
  19. Verfahren nach Anspruch 14, umfassend: Verhindern eines Schreibens von Daten in Speicher, nur während der Speicher im Batteriebetrieb ist; und Verhindern eines Lesens von Daten aus Speicher, nur während der Speicher im Batteriebetrieb ist.
  20. Herstellungsgegenstand, umfassend ein computerlesbares Speichermedium, das Anweisungen enthält, die bei Ausführung das Verfahren nach einem der Ansprüche 12 bis 19 durchzuführen.
  21. System, umfassend: eine Verarbeitungskomponente; einen First-In-, First-Out(FIFO)-Speicher; und eine Speicherverwaltungskomponente, die über die Verarbeitungskomponente funktionsfähig ist, um: ein Schreiben von Daten an eine Speicheradresse des FIFO-Speichers zu verhindern, wenn die Schreibadresse in Bezug auf die unmittelbar vorangehende Adresse zusammenhängt und die Daten dieselben wie Daten in einer unmittelbar vorangehenden Speicheradresse des FIFO-Speichers sind; und ein Lesen von Daten aus der Speicheradresse des FIFO-Speichers zu verhindern, wenn die Daten dieselben wie die Daten in der unmittelbar vorangehenden Speicheradresse des FIFO-Speichers sind; wobei zu der Speicheradresse ein Statusbit gehört; wobei das Statusbit gelöscht wird, wenn zu schreibende Daten dieselben wie Daten in der unmittelbar vorangehenden Speicheradresse sind; wobei das Statusbit gesetzt wird, wenn zu schreibende Daten sich von Daten in der unmittelbar vorangehenden Speicheradresse unterscheiden; wobei das Schreiben von Daten durchgeführt wird, wenn das Statusbit gesetzt ist; und wobei das Lesen von Daten aus der Speicheradresse verhindert wird, wenn das Statusbit gelöscht ist.
  22. System nach Anspruch 21, wobei ein Schreib-Port für den FIFO-Speicher deaktiviert wird, wenn die Daten dieselben sind.
  23. System nach Anspruch 22, wobei die Speicherverwaltungskomponente funktionsfähig ist, um: den Schreib-Port für die FIFO-Speicherkomponente durch Clock-Gating des Schreib-Ports zu deaktivieren.
  24. System nach Anspruch 23, wobei die Speicherverwaltungskomponente funktionsfähig ist, um: den Schreib-Port für den FIFO-Speicher durch Herabsetzen eines Schreib-Freigabesignals an den Speicher zu deaktivieren.
  25. System nach Anspruch 21, wobei die zu schreibenden Daten in einem Register außerhalb des FIFO-Speichers gehalten werden, wenn das Statusbit gesetzt ist; und die in dem Speicher gehaltenen Daten zurückzubringen und einen Lese-Port für den FIFO-Speicher zu deaktivieren, wenn das Statusbit gelöscht ist.
  26. System nach Anspruch 25, wobei die Speicherverwaltungskomponente funktionsfähig ist, um den Lese-Port für den FIFO-Speicher durch Clock-Gating des Lese-Ports zu deaktivieren.
  27. System nach Anspruch 25, wobei die Speicherverwaltungskomponente funktionsfähig ist, um den Lese-Port für den FIFO-Speicher durch Herabsetzen eines Lese-FreigabeSignals an den Speicher zu deaktivieren
DE112011105901.9T 2011-11-30 2011-11-30 Verfahren und Vorrichtung zur Energieeinsparung für First In First Out (FIF0)-Speicher Expired - Fee Related DE112011105901B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/062591 WO2013081597A1 (en) 2011-11-30 2011-11-30 Power saving method and apparatus for first in first out (fifo) memories

Publications (2)

Publication Number Publication Date
DE112011105901T5 DE112011105901T5 (de) 2014-09-11
DE112011105901B4 true DE112011105901B4 (de) 2018-06-07

Family

ID=48535895

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011105901.9T Expired - Fee Related DE112011105901B4 (de) 2011-11-30 2011-11-30 Verfahren und Vorrichtung zur Energieeinsparung für First In First Out (FIF0)-Speicher

Country Status (4)

Country Link
US (2) US9710403B2 (de)
CN (1) CN103959199B (de)
DE (1) DE112011105901B4 (de)
WO (1) WO2013081597A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013081597A1 (en) * 2011-11-30 2013-06-06 Intel Corporation Power saving method and apparatus for first in first out (fifo) memories
US20160091957A1 (en) * 2014-09-26 2016-03-31 Suketu R. Partiwala Power management for memory accesses in a system-on-chip
US10157649B1 (en) * 2015-03-05 2018-12-18 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for optimizing power in FIFO
US10007319B2 (en) 2015-12-17 2018-06-26 Microsemi Solutions (U.S.), Inc. Power saving in multi-directional data transfer
US10153030B2 (en) * 2017-05-09 2018-12-11 Micron Technology, Inc. Apparatuses and methods for configurable command and data input circuits for semiconductor memories
US10446203B1 (en) * 2018-08-14 2019-10-15 Micron Technology, Inc. Write cycle execution based on data comparison
CN113011577B (zh) * 2019-12-20 2024-01-05 阿里巴巴集团控股有限公司 处理单元、处理器核、神经网络训练机及方法
CN112328067B (zh) * 2020-11-16 2023-12-29 南京微智新科技有限公司 一种笔记本电脑的电池保护方法、装置、设备及存储介质
WO2023069867A1 (en) * 2021-10-19 2023-04-27 Nvidia Corporation Techniques for reducing dram power usage in performing read and write operations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052789A (en) 1994-03-02 2000-04-18 Packard Bell Nec, Inc. Power management architecture for a reconfigurable write-back cache
US6327203B1 (en) 1999-06-29 2001-12-04 Samsung Electronics Co., Ltd. Memory device having minimized power consumption and data read and write method of the same
JP2003036145A (ja) 2001-07-24 2003-02-07 Sharp Corp Fifoメモリのデータ転送制御装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524248A (en) * 1993-07-06 1996-06-04 Dell Usa, L.P. Random access memory power management system
JP3846748B2 (ja) * 1996-07-17 2006-11-15 株式会社ルネサステクノロジ 半導体記憶装置
JP2002279792A (ja) * 2001-03-22 2002-09-27 Matsushita Electric Ind Co Ltd 半導体集積回路装置
US6854039B1 (en) * 2001-12-05 2005-02-08 Advanced Micro Devices, Inc. Memory management system and method providing increased memory access security
US7081897B2 (en) * 2003-12-24 2006-07-25 Intel Corporation Unified memory organization for power savings
US7165165B2 (en) * 2004-03-16 2007-01-16 Intel Corporation Anticipatory power control of memory
JP2006065986A (ja) * 2004-08-27 2006-03-09 Fujitsu Ltd 磁気抵抗メモリおよび磁気抵抗メモリ書き込み方法
KR100743995B1 (ko) * 2005-09-29 2007-08-01 주식회사 하이닉스반도체 메모리 장치의 쓰기 회로
JP5072274B2 (ja) * 2005-09-29 2012-11-14 エスケーハイニックス株式会社 メモリ装置の書き込み回路
JP4791909B2 (ja) * 2006-08-21 2011-10-12 株式会社東芝 高速入出力機能を備える制御装置、及びその制御データの制御方法
US7808507B1 (en) * 2006-09-18 2010-10-05 Nvidia Corporation Compression tag state interlock
US9146600B2 (en) * 2006-10-11 2015-09-29 Texas Instruments Incorporated Array and peripheral power control decoded from circuitry and registers
US8041912B2 (en) * 2007-09-28 2011-10-18 Macronix International Co., Ltd. Memory devices with data protection
US7580273B2 (en) * 2007-10-23 2009-08-25 Rao G R Mohan Digital memory with controllable input/output terminals
JP4982354B2 (ja) * 2007-12-28 2012-07-25 パナソニック株式会社 情報処理装置
TW200935221A (en) * 2008-02-13 2009-08-16 Genesys Logic Inc System for securing an access to flash memory device and method for the same
US8489907B2 (en) * 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
TWI420298B (zh) * 2010-12-22 2013-12-21 Silicon Motion Inc 快閃記憶裝置及其資料存取方法
EP2689336A1 (de) * 2011-03-25 2014-01-29 BlackBerry Limited Dynamische leistungsverwaltung eines zwischenspeichers in einem multicore-prozessorsystem
JP5674613B2 (ja) * 2011-09-22 2015-02-25 株式会社東芝 制御システム、制御方法およびプログラム
JP5674611B2 (ja) * 2011-09-22 2015-02-25 株式会社東芝 制御システム、制御方法およびプログラム
WO2013081597A1 (en) * 2011-11-30 2013-06-06 Intel Corporation Power saving method and apparatus for first in first out (fifo) memories
US9311228B2 (en) * 2012-04-04 2016-04-12 International Business Machines Corporation Power reduction in server memory system
US9317102B2 (en) * 2013-01-03 2016-04-19 Apple Inc. Power control for cache structures
US9128857B2 (en) * 2013-01-04 2015-09-08 Apple Inc. Flush engine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052789A (en) 1994-03-02 2000-04-18 Packard Bell Nec, Inc. Power management architecture for a reconfigurable write-back cache
US6327203B1 (en) 1999-06-29 2001-12-04 Samsung Electronics Co., Ltd. Memory device having minimized power consumption and data read and write method of the same
JP2003036145A (ja) 2001-07-24 2003-02-07 Sharp Corp Fifoメモリのデータ転送制御装置

Also Published As

Publication number Publication date
DE112011105901T5 (de) 2014-09-11
US9710403B2 (en) 2017-07-18
CN103959199B (zh) 2017-08-15
CN103959199A (zh) 2014-07-30
US10241932B2 (en) 2019-03-26
US20140351542A1 (en) 2014-11-27
US20180011800A1 (en) 2018-01-11
WO2013081597A1 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
DE112011105901B4 (de) Verfahren und Vorrichtung zur Energieeinsparung für First In First Out (FIF0)-Speicher
DE112013007658B4 (de) Gemeinsame Speichernutzung über eine vereinheitlichte Speicherarchitektur
DE112013007780B3 (de) Vorrichtung, nicht flüchtiges, maschinenlesbares medium und verfahren zur gemeinsamen nutzung von virtuellem speicher
DE102009030544B4 (de) Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem
DE102015002366A1 (de) Systemkohärenz in einer verteilten Graphikprozessorhierarchie
DE112011103209B4 (de) Verfahren, vorrichtung und system zur steuerung von anzeigeaktivität
DE112006000545B4 (de) System und Verfahren zum kohärenten Datentransfer während Leerlaufzuständen von Prozessoren
DE112012005223B4 (de) Energiemanagement des Displaycontrollers
DE112013003745T5 (de) Techniken zur dynamischen Partitionierung von physikalischem Speicher
DE112011105779B4 (de) Verfahren, vorrichtungen, systeme und computerprogrammprodukte für mehrfachberührungs-schnittstellenschemas
DE112016004776T5 (de) Datenkomprimierung unter Verwendung eines Beschleunigers mit mehreren Suchmaschinen
DE102015002365A1 (de) Prioritätsbasierte kontextpräemption
DE102015001088A1 (de) Behandlung komprimierter Daten über verteilte Cache-Fabric
DE112011105950T5 (de) Verfahren, Vorrichtung und System für erweiterte Grafikverarbeitung über einen externen E/A-Port für Anzeigedaten
DE112013004618T5 (de) Tiefenpufferung
DE102012107810A1 (de) Dynamische Benutzerschnittstelle basierend auf verbundenen Geräten
DE112017004361T5 (de) Steuern eines leistungszustands eines prozessors unter verwendung einer kombination von package- und thread-hinweis-informationen
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE102022119625A1 (de) Audiostapel-leistungssteuerung basierend auf latenz
DE102022129924A1 (de) Inhaltsfidelitätsanpassung basierend auf benutzerinteraktion
DE112013005204T5 (de) Verringern des mit Frequenzänderungen von Prozessoren verbundenen Aufwands
DE112018004329T5 (de) Steuerblöcke zur prozessorleistungsverwaltung
US9489305B2 (en) System and method for managing bandwidth and power consumption through data filtering
DE112016005989T5 (de) Zuverlässiges, ausserhalb der reihenfolge liegendes end-to-end-protokoll mit robustem fensterstatusüberlaufmanagement und einem mehrknotensystem durch verwenden desselben
DE102014002370A1 (de) Anzeigen eines kritischen batteriestatus in mobilen einrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee