-
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.
-
Kurze Beschreibung der Zeichnungen
-
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, warm 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, Displayfort, 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.
-
Es wird betont, dass die Zusammenfassung der Offenbarung bereitgestellt wird, um einem Leser zu ermöglichen, die Art der technischen Offenbarung schnell zu erkennen. Sie wird jedoch mit dem Verständnis vorgelegt, dass sie nicht verwendet werden wird, um den Schutzbereich oder die Bedeutung der Ansprüche zu interpretieren oder zu beschränken. Zusätzlich zur vorangehenden ausführlichen Beschreibung ist ersichtlich, dass diverse Merkmale in einer einzigen Ausführungsform zur Straffung der Offenbarung gemeinsam gruppiert werden. Diese Art der Offenbarung soll nicht so interpretiert werden, dass eine Absicht besteht, dass die beanspruchten Ausführungsformen mehr Merkmale erfordern, als in jedem Anspruch ausdrücklich angegeben sind. Vielmehr besteht der erfinderische Gegenstand, wie die folgenden Ansprüche reflektieren, in weniger als allen Merkmalen der einzelnen offenbarten Ausführungsform. Somit werden die folgenden Ansprüche hierdurch in die ausführliche Beschreibung aufgenommen, wobei jeder Anspruch für sich alleine als eine separate Ausführungsform steht. In den beigefügten Ansprüchen werden die Begriffe „enthaltend” und „in dem/der” als die Äquivalente im einfachsten Englisch für die jeweiligen Begriffe „umfassend” bzw. „wobei” verwendet. Ferner werden die Begriffe „erster”, „zweiter”, „dritter” und so weiter lediglich als Bezeichnung verwendet und sollen keine numerischen Anforderungen an deren Objekte auferlegen.
-
Das oben Beschriebene enthält Beispiele für die offenbarte Architektur. Es ist selbstverständlich nicht möglich, jede denkbare Kombination von Komponenten und/oder Methoden zu beschreiben, aber ein Fachmann auf dem Gebiet wird erkennen, dass viele weitere Kombinationen und Permutationen möglich sind. Dementsprechend soll die neuartige Architektur alle solche Änderungen, Modifikationen und Variationen umfassen, die in den Geist und den Schutzbereich der beigefügten Ansprüche fallen.