-
HINTERGRUND
-
Gebiet:
-
Der hier offenbarte Gegenstand bezieht sich auf eine Speichervorrichtung, und genauer auf eine Mehrkanal-Speichervorrichtung und Verfahren, einen oder mehrere Kanäle derselben auszuwählen.
-
Information:
-
In Antwort auf Forderungen nach schnelleren, effizienteren Computer-Verarbeitungssystemen wurde die Aufmerksamkeit in Richtung des Steigerns des Durchsatzes auf vielen Ebenen eines solchen Systems gelenkt. Zum Beispiel kann eine solche Ebene ein Speichersystem umfassen, wobei ein Prozessor Lese-/Schreibanfragen in einer Rate generieren kann, welche schneller ist, als das System handhaben kann. Dementsprechend haben Techniken für den Umgang mit solchen Ungleichgewichten in der Leistungsfähigkeit zur Entwicklung von Mehrkanal-Speichervorrichtungen geführt. Im Allgemeinen kann eine Zweikanal-Speichervorrichtung zwei Parallelkanäle für einen gleichzeitigen Betrieb, um Latenz zu reduzieren, z. B. mit Speicher-Lese/Schreib-Operationen umfassen. Insbesondere kann eine Speicher-Steuereinheit adressierte Lese-/Schreib-Daten an/von mehreren Speicherfeldern über zwei separate Parallelkanäle übertragen und/oder empfangen. In ähnlicher Weise können zwei separate parallele Host-Schnittstellen elektronisch mit den jeweiligen Kanälen einer Zweikanal-Speichervorrichtung verbunden sein.
-
Die Druckschrift
US 5 671 393 A offenbart ein System, bei die Rechenleistung über mehrere CPUs, z. B. CPUA und CPUB, verteilt ist und es gewünscht ist, einen gemeinsamen Speicher zu nutzen, um Daten zwischen den CPUs zu übertragen. Dabei wird ein Taktsignal erzeugt, welches die Zugriffszeiten für die CPUA angibt. Ein Gate-Signal, welches die Zugriffsberechtigung auf den gemeinsamen Speicher angibt, wird synchron mit dem Taktsignal erzeugt. Das Zugriffsrecht ist immer der CPUA zugewiesen und wird in Reaktion auf eine Zugriffsanfrage der CPUB auf die CPUB übertragen. Nach dem ein Zugriff beendet ist, wird das Zugriffsrecht wieder der CPUA übertragen.
-
Die Druckschrift
US 5 276 842 A offenbart einen Dual-Port-Speicher, der zwei Dekoder und zwei Messverstärker aufweist, die mit einem Speicherzellenfeld assoziiert sind. Auf den Dual-Port-Speicher kann von einer CPU der A-Systemseite und einer CPU der B-Systemseite gleichzeitig zugegriffen werden.
-
Zusammenfassung der Erfindung:
-
Die Erfindung betrifft eine Speichervorrichtung, die durch die Merkmale von Anspruch 1 angegeben wird, ein Verfahren, das durch die Merkmale von Anspruch 9 angegeben wird und ein System, das durch die Merkmale von Anspruch 12 angegeben wird. Vorteilhafte Ausgestaltungen sind in den Unteransprüchen definiert.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Nicht-einschränkende und nicht-erschöpfende Ausführungsformen werden mit Referenz auf die folgenden Zeichnungen beschrieben, wobei sich gleiche Bezugszeichen auf gleiche Teile, die verschiedenen Zeichnungen hindurch, beziehen, sofern nicht anders spezifiziert.
-
1 ist ein schematisches Diagramm, welches ein Zweikanalspeichersystem gemäß einer Ausführungsform zeigt.
-
2 ist ein Flussdiagramm eines Prozesses zum Betreiben eines Zweikanalspeichers, gemäß einer Ausführungsform.
-
3 ist ein schematisches Diagramm eines Zweikanal-Speichersystems, gemäß einer weiteren Ausführungsform.
-
4 ist ein schematisches Diagramm eines Computersystems, gemäß einer Ausführungsführungsform.
-
DETAILLIERTE BESCHREIBUNG
-
Der in dieser Beschreibung durchgehend gemachte Bezug auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, Struktur oder Eigenschaft, welche/s in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform des beanspruchten Gegenstands umfasst wird. Wenn daher der Ausdruck „in einer Ausführungsform” oder „eine Ausführungsform” an verschiedenen Stellen in dieser Beschreibung auftritt, so bedeutet dies nicht notwendigerweise, dass diese sich alle auf dieselbe Ausführungsform beziehen. Des Weiteren können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden.
-
In einer Ausführungsform kann eine nicht-flüchtige Mehrkanal-Speichervorrichtung mit Prozessoren der zwei Hosts über zwei assoziierte Schnittstellen kommunizieren. Solche Schnittstellen können z. B. parallele und/oder serielle Schnittstellen umfassen. In einer bestimmten Implementierung kann ein erster Host einen Basisband-Prozessor einer mobilen Kommunikationsvorrichtung umfassen, wohingegen ein zweiter Host einen externen Prozessor, welcher mit der mobilen Kommunikationsvorrichtung über eine drahtlose Schnittstelle verbunden ist, umfassen kann. In solch einer Implementierung kann eine Zweikanal-Speichervorrichtung mit dem Basisband-Prozessor über eine erste Schnittstelle und mit dem externen Prozessor über eine zweite Schnittstelle kommunizieren. Steuer-Logik oder andere Schaltungen können zwischen solch einer zweiten Schnittstelle und einer Hochfrequenz(HF)-Schnittstelle verbunden werden, um es einem externen Prozessor zu erlauben, mit der Speichervorrichtung über eine Luftschnittstelle zu kommunizieren.
-
In einer Ausführungsform können Schnittstellen oder Kanäle einer nicht-flüchtigen Mehrkanal-Speichervorrichtung, wie oben beschrieben, verwaltet werden, um Konflikte um Speicherzugriff zwischen oder unter zwei oder mehr Prozessoren, welche versuchen, auf die Speichervorrichtung über die Schnittstellen zuzugreifen, zu vermeiden. Hierin beschriebene Ausführungsformen umfassen Techniken und Architektur, um einzelnen Schnittstellen bestimmte Berechtigungsebenen zu erlauben, um auf Speicher zuzugreifen, während die einzelnen Schnittstellen aktiv gehalten werden. In einer Implementierung kann zum Beispiel eine aktive Schnittstelle eine Schnittstelle umfassen, welche freigegeben oder in einem An-Zustand ist (z. B. ein eingeschalteter Zustand), wohingegen eine nichtfreigegebene Schnittstelle eine Schnittstelle umfassen kann, welche z. B. deaktiviert oder in einem Aus-Zustand ist (z. B. ein ausgeschalteter Zustand).
-
Zum Beispiel können Inhalte eines Registers innerhalb einer Mehrkanal-Speichervorrichtung der Speichervorrichtung eine oder mehrere einzelnen Schnittstellen zugewiesene Berechtigungsebenen anzeigen. Zum Beispiel kann eine Schnittstelle, welche eine bestimmte Berechtigungsebene hat, Zugriff haben auf ein oder mehrere Register der Speichervor-richtung, aber keinen Zugriff haben auf ein Speicherfeld der Speichervorrichtung. Als weiteres Beispiel kann eine Schnittstelle, welche eine bestimmte Berechtigungsebene hat, Zugriff haben auf ein oder mehrere Register der Speichervorrichtung und auch Zugriff haben auf das Speicherfeld, wie in weiteren Details unten beschrieben.
-
In einer bestimmten Implementierung einer Mehrkanal-Speichervorrichtung kann ein in einer Speichervorrichtung eingebettetes Schaltschnittstellen(SI)-Register in Techniken zum Verwalten von Berechtigungsebenen von mehreren Schnittstellen benutzt werden. In einer Implementierung kann solch ein SI-Register über die mehreren Schnittstellen unabhängig von der den Schnittstellen zugeschriebenen Berechtigungsebene zugreifbar sein. Insbesondere kann irgendeine Schnittstellenberechtigungsebene Zugriff auf ein SI-Register erlauben, wohingegen nur eine bestimmte Berechtigungsebene Zugriff auf das Speicherfeld erlauben kann. Zum Beispiel können als Ergebnis eines Übergangs eines oder mehrerer Bits eines SI-Registers (z. B. von low zu high oder von high zu low) eine oder mehrere Schnittstellen von einer Berechtigungsebene zu einer anderen Berechtigungsebene übergehen. In einer bestimmten Implementierung kann der Übergang eines Bits eines SI-Registers dazu führen, dass eine Schnittstelle in eine relativ hohe Berechtigungsebene übergeht (z. B. Ermöglichen des Zugriffs auf ein Speicherfeld), während eine andere Schnittstelle in eine relativ niedrige Berechtigungsebene übergeht (z. B. ohne Zugriff auf das Speicherfeld zu haben). Unabhängig von solchen verschiedenen Berechtigungsebenen können die Schnittstellen gleichzeitig in freigegebenen Zuständen verbleiben. In einer Implementierung, bevor ein Zustand und/oder Bit eines SI-Registers geändert werden kann (z. B. bevor Berechtigungsebenen bestimmter Schnittstellen geändert werden können), kann eine Schnittstelle, welche eine andere Berechtigungsebene anfordert, um auf den Speicher zuzugreifen, erst feststellen, ob es unbeendete Prozesse gibt, welche durch die andere Schnittstelle initiiert wurden. Solch eine Feststellung kann durch das Lesen der Inhalte eines Status-Registers gemacht werden (wobei der Besetzt-Zustand der Schnittstelle der höheren Ebene angezeigt werden kann), welche durch die Schnittstellen gelesen werden können, unabhängig von der Berechtigungsebene der Schnittstellen. In einer Implementierung können Status-Registerinhalte Zustandsmaschinen-Besetzt-Bits umfassen (z. B. für ausstehende Lösch- oder Schreib-Operationen). Insbesondere in einem Zweikanalspeicher kann jede der beiden Schnittstellen solch ein Status-Register zu irgendeiner Zeit lesen, wohingegen nur die Schnittstelle, welche eine relativ hohe Berechtigungsebene zum Zugriff auf das Speicherfeld hat, in das Status-Register schreiben darf. Selbstverständlich sind solche Details des Betreibens einer Zweikanal-Speichervorrichtung lediglich Beispiele, und der beanspruchte Gegenstand ist nicht dahingehend beschränkt.
-
In einer Ausführungsform kann eine nicht-flüchtige Zweikanal-Speichervorrichtungsarchitektur ein Speicherzellenfeld, eine erste Schnittstelle zur Bereitstellung von Zugriff auf das Speicherzellenfeld durch einen ersten Kanal, und eine zweite Schnittstelle zur Bereitstellung von Zugriff auf das Speicherzellenfeld durch einen zweiten Kanal umfassen. Solch eine Architektur kann weiterhin zum Beispiel ein SI-Register wie oben beschrieben umfassen. Auf solch ein SI-Register kann durch die erste Schnittstelle und die zweite Schnittstelle zugegriffen werden. Solch eine Architektur kann die erste Schnittstelle und die zweite Schnittstelle in freigegebenen Zuständen halten. In einer Implementierung kann eine Berechtigungsebene von Zugriff auf den Speicherzellenbereich, welche jeder der beiden Schnittstellen gewährt wurde, zumindest zum Teil auf Inhalten in dem SI-Register basieren. In einer Implementierung kann eine nicht-flüchtige Mehrkanal-Speichervorrichtung ein Status-Register umfassen, welches durch eine erste Schnittstelle und eine zweite Schnittstelle zugreifbar ist, wobei der Besetzt-Zustand der Schnittstelle der höheren Ebene durch Inhalte in dem Status-Register angezeigt werden kann. Solch ein Status-Register und/oder SI-Register kann einen Abschnitt des Speicherzellenfelds in der Speichervorrichtung umfassen. In einer Implementierung kann es einer Schnittstelle, welche eine relativ hohe Berechtigungsebene hat, erlaubt werden, in das Status-Register zu schreiben, wobei es anderen Schnittstellen, welche eine relativ niedrige Berechtigungsebene haben, nicht erlaubt werden kann, in das Status-Register zu schreiben.
-
1 ist ein schematisches Diagramm, welches ein System 100 zeigt, gemäß einer Ausführungsform. Der Einfachheit der Erklärung halber verwendet System 100 eine Zweikanal-Speichervorrichtung 140. Jedoch können Systeme, welche Speichervorrichtungen mit drei oder mehr Kanälen verwenden, genutzt werden, ohne von dem beanspruchten Gegenstand abzuweichen. Die Zweikanal-Speichervorrichtung 140 kann eine erste Schnittstelle 130 und eine zweite Schnittstelle 150 auf einem ersten Kanal bzw. auf einem zweiten Kanal umfassen. In einer bestimmten Implementierung kann eine Speichervorrichtung mit drei oder mehr Kanälen drei oder mehr assoziierte Schnittstellen umfassen. Ein erster Host 110 kann über Bus 120 mit der ersten Schnittstelle 130 elektronisch verbunden sein. In ähnlicher Weise kann ein zweiter Host 170 über Bus 160 mit der zweiten Schnittstelle 150 elektronisch verbunden sein. Die Zweikanal-Speichervorrichtung 140 kann einen Phasenwechselspeicher (PCM) und/oder Flash-Speicher, einen flüchtigen oder nicht-flüchtigen Speicher umfassen, obwohl der beanspruchte Gegenstand nicht auf solche Beispiele beschränkt ist. Z. B. kann die Zweikanal-Speichervorrichtung 140 ein Speicherfeld 143 umfassen, welches eine Mehrzahl von Speicherzellen wie PCM-Speicherzellen und einen Mikrocontroller 145 umfasst. Solch ein Mikrocontroller kann benutzt werden zum Verwalten von Berechtigungsebenen der ersten Schnittstelle 130 und der zweiten Schnittstelle 150, um Kommunikation zwischen der Zweikanal-Speichervorrichtung 140 und dem Host 110 oder Host 170 selektiv zu erlauben. In einer bestimmten Implementierung kann der Mikrocontroller 145 ein SI-Register 147 benutzen, welches im Speicherfeld 143 eingebettet sein kann. Die erste Schnittstelle 130 und die zweite Schnittstelle 150 können benutzt werden, um auf das SI-Register 147 (z. B. Schreiben in oder Lesen von) zuzugreifen, ohne Rücksicht auf Berechtigungsebenen, welche den Schnittstellen 130 und 150 zugeschrieben sind. Als ein Ergebnis von einem Bit des SI-Registers 147, welches auf low oder high gesetzt wird, kann z. B. die erste Schnittstelle 130 eine relativ hohe Berechtigungsebene zum Zugreifen auf das Speicherfeld 143 erhalten, wohingegen die zweite Schnittstelle 150 eine relativ niedrige Berechtigungsebene ohne Zugriff auf das Speicherfeld 143 haben kann. In einer Implementierung, bevor ein Zustand und/oder ein Bit des SI-Register 147 geändert werden kann (z. B. bevor die Berechtigungsebene bestimmter Schnittstellen geändert werden kann), kann eine Schnittstelle, welche eine erhöhte Berechtigungsebene zum Zugreifen auf das Speicherfeld 143 anfordert, erst feststellen, ob es unbeendete Prozesse gibt, welche durch die andere Schnittstelle initiiert wurden. Solch eine Feststellung kann durch Lesen der Inhalte eines Status-Registers 149 gemacht werden, welche durch jede der beiden Schnittstellen gelesen werden kann, unabhängig von der Berechtigungsebene jeder der beiden Schnittstellen. In einer Implementierung kann die erste Schnittstelle 130 und die zweite Schnittstelle 150 identische oder verschiedene Typen von Schnittstellen umfassen. Zum Beispiel können solche Schnittstellen Nicht-Standard- oder Standard-Schnittstellen umfassen, wie eine Doppeldatenraten(DDR)-Schnittstelle, eine DDR2-Schnittstelle, eine A/D MUX-Schnittstelle und/oder eine offene NAND Flash-Schnittstelle (ONFI), um nur einige Beispiele zu nennen.
-
In einer bestimmen Ausführungsform kann System 100 einen ersten Host 110, welcher einen in einer mobilen Vorrichtung umfassten Basisband-Prozessor umfasst, und einen zweiten Host 170, welcher einen externen Prozessor, welcher über eine drahtlose Schnittstelle mit der mobilen Vorrichtung verbunden ist, umfasst, umfassen. Dementsprechend kann die Speichervorrichtung 140 mit dem Basisband-Prozessor über die erste Schnittstelle 130 und mit dem externen Prozessor über die zweite Schnittstelle 150 kommunizieren. Selbstverständlich sind solche Details des Systems 100 lediglich Beispiele, und der beanspruchte Gegenstand ist nicht dahingehend beschränkt.
-
Zurückkommend zu 1 kann eine einzelne Spannungsquelle 115 eine Betriebsspannung für den ersten Host 110 und den zweiten Host 170 bereitstellen. In einer bestimmten Implementierung kann zum Beispiel die Spannungsquelle 115 eine wiederaufladbare Batterie, welche eine Nominalspannung von 1,8 Volt bereitstellt, umfassen. In einer anderen bestimmten Implementierung kann die Spannungsquelle 115 eine Spannung, welche von einer externen Quelle generiert wurde, umfassen. In noch einer weiteren Implementierung kann die Speichervorrichtung 140 eine oder mehrere Aufladepumpen 148 umfassen, um eine relativ hohe Spannung bereitzustellen, um Programmier-/Lösch-Operationen in der Speichervorrichtung 140 zu unterstützen. Selbstverständlich ist der beanspruchte Gegenstand nicht beschränkt auf das Benutzen irgendeines bestimmten Typs von Spannungsquelle.
-
2 ist ein Flussdiagramm eines Prozesses 200 zum Betreiben eines Zweikanalspeichers gemäß einer Ausführungsform. Wie oben erwähnt, kann eine Berechtigungsebene, welche einer bestimmten Schnittstelle eines Zweikanalspeichers gewährt wurde, festgestellt werden, basierend, zumindest zum Teil, auf Inhalten eines SI-Registers. Es sollte beachtet werden, dass, obwohl hierin beschriebene Ausführungsformen einen Zweikanalspeicher, welcher zwei Kanäle und daher zwei Schnittstellen hat, umfassen, der beanspruchte Gegenstand nicht auf zwei solche Kanäle und/oder Schnittstellen beschränkt ist. Zum Beispiel kann Prozess 200 erweitert werden auf einen Fall, wo drei oder mehr Spannungsquellen, Kanäle und/oder Schnittstellen involviert sein können. Daher ist der Prozess 200 lediglich ein erläuterndes Beispiel mit einem Zweikanalspeicher und assoziierter Architektur, welche zwei Schnittstellen, zwei Prozessoren usw. umfasst.
-
An Block
210 können Inhalte eines SI-Registers gelesen werden. An Block
220 können solche Inhalte benutzt werden, um Berechtigungsebenen beider Schnittstellen festzustellen. Solche Inhalte können z. B. ein oder mehrere binäre oder Mehrfach-Ebenen-Bits umfassen. In einer Implementierung kann eine Schnittstelle, welche eine relativ niedrige Berechtigungsebene hat, keinen Zugriff auf ein Speicherfeld des Speichers haben. Tabelle 1 beschreibt Übergänge der ersten Schnittstelle I/F1 und der zweiten Schnittstelle I/F2 zwischen Berechtigungsebenen, basierend, zumindest zum Teil, auf Inhalten und/oder der Logik-Ebene eines SI-Registers für eine bestimmte Implementierung.
| Übergang | I/F 1,
Initiale Berechtigungsebene | I/F 2,
Initiale Berechtigungsebene | I/F 1,
Anfrage | I/F 2,
Anfrage | I/F 1,
endgültige Berechtigungsebene | I/F 2,
endgültige Berechtigungsebene |
| 1 | low | high | SI low setzen | – | high | low |
| 2 | high | low | SI high setzen | – | low | high |
| 3 | low | high | – | SI high setzen | high | low |
| 4 | high | low | – | SI low setzen | low | high |
Tabelle 1
-
Tabelle 1 beschreibend, umfasst der Übergang 1 den Fall, wo die erste Schnittstelle I/F1 zunächst eine niedrige Berechtigungsebene hat, die zweite Schnittstelle I/F2 anfangs eine hohe Berechtigungsebene hat, und die erste Schnittstelle I/F1 anfordert, eine hohe Berechtigungsebene zu haben (durch Setzen des SI-Registers auf einen Low-Zustand). Infolgedessen hat die erste Schnittstelle I/F1 daraufhin eine hohe Berechtigungsebene und hat die zweite Schnittstelle I/F2 daraufhin eine niedrige Berechtigungsebene. Der Übergang 2 umfasst den Fall, wo die erste Schnittstelle I/F1 anfangs eine hohe Berechtigungsebene hat, die zweite Schnittstelle I/F2 anfangs eine niedrige Berechtigungsebene hat, und die erste Schnittstelle I/F1 anfordert, eine niedrige Berechtigungsebene zu haben (durch Setzen des SI-Registers auf einen High-Zustand). Infolgedessen hat die erste Schnittstelle I/F1 daraufhin eine niedrige Berechtigungsebene und hat die zweite Schnittstelle I/F2 daraufhin eine hohe Berechtigungsebene. Der Übergang 3 umfasst den Fall, wo die erste Schnittstelle I/F1 anfangs eine niedrige Berechtigungsebene hat, die zweite Schnittstelle I/F2 anfangs eine hohe Berechtigungsebene hat, und die zweite Schnittstelle I/F2 anfordert, eine niedrige Berechtigungsebene zu haben (durch Setzen des SI-Registers auf einen High-Zustand). Infolgedessen hat die erste Schnittstelle I/F1 daraufhin eine hohe Berechtigungsebene und hat die zweite Schnittstelle I/F2 daraufhin eine niedrige Berechtigungs-ebene.
-
Der Übergang 4 umfasst den Fall, wo die erste Schnittstelle I/F1 anfangs eine hohe Berechtigungsebene hat, die zweite Schnittstelle I/F2 anfangs eine niedrige Berechtigungsebene hat, und die zweite Schnittstelle I/F2 anfordert, eine hohe Berechtigungsebene zu haben (durch Setzen des Si-Registers auf einen Low-Zustand). Infolgedessen hat die erste Schnittstelle I/F1 daraufhin eine niedrige Berechtigungs-ebene und hat die zweite Schnittstelle I/F2 daraufhin eine hohe Berechtigungsebene.
-
Eine Schnittstelle, welche eine niedrige Berechtigungsebene hat, kann anfordern, eine hohe Berechtigungsebene zu haben, wie z. B. in den Übergängen 1 und 4 in Tabelle 1 ausgedrückt. Solch eine Anforderung kann das Lesen der Inhalte und/oder eines Zustands eines Status-Registers, wie in Block 230 umfassen. Die Inhalte und/oder der Zustand eines solchen Status-Registers können anzeigen, ob ein oder mehrere Prozesse, welche durch eine Schnittstelle, welche eine hohe Berechtigungsebene hat, initiiert wurden, beendet wurden oder nicht. Eine Schnittstelle in entweder einer hohen oder einer niedrigen Berechtigungsebene kann das Status-Register lesen. Eine Schnittstelle, welche eine niedrige Berechtigungsebene hat, kann jedoch nicht in das Status-Register schreiben. Im Gegensatz dazu kann eine Schnittstelle, welche eine hohe Berechtigungsebene hat, in das Status-Register schreiben. Dementsprechend kann eine Schnittstelle, welche eine hohe Berechtigungsebene hat, nach Beendigung der durch die Schnittstelle, welche die hohe Berechtigungsebene hat, initiierten Prozesse in das Status-Register schreiben. An Block 240 kann eine Feststellung gemacht werden, basierend zumindest zum Teil auf Inhalten und/oder einem Zustand eines Status-Registers, ob ein oder mehrere durch die Schnittstelle, welche eine hohe Berechtigungsebene hat, initiierte Prozesse beendet sind. Wenn der eine oder die mehreren Prozesse nicht beendet sind, dann kann Prozess 200 zum Block 230 zurück-kehren, wo das Status-Register überwacht werden kann, während einem oder mehreren Prozessen, welche durch die Schnittstelle initiiert wurden, welche eine hohe Berechtigungsebene hat, Zeit für die Beendigung gegeben wird. Wenn das Status-Register anzeigt, dass solche Prozesse beendet sind, kann Prozess 200 zu Block 250 übergehen, wo die Schnittstelle, welcher zuletzt eine hohe Berechtigungsebene gewährt wurde, in das SI-Register schreiben kann, um anzuzeigen, dass sie jetzt eine hohe Berechtigungsebene hat. Daraufhin kann Prozess 200 zurückkehren zu Block 210, wo Inhalte des SI-Registers gelesen werden können, um Berechtigungsebenen der Schnittstellen festzustellen.
-
Wie oben diskutiert, kann auf ein SI-Register durch beide Schnittstellen zugegriffen werden. Jedoch können mögliche gleichzeitige Zugriffe unerwünscht einen Konflikt erzeugen. In einer Ausführungsform können solche Konflikte durch das Zuweisen einer Priorität an die Schnittstellen gelöst werden. Zum Beispiel kann einer ersten Schnittstelle eine höchste Priorität zugewiesen werden, während einer zweiten Schnittstelle eine niedrigste Priorität zugewiesen werden kann. Wie oben diskutiert, können Übergänge der ersten Schnittstelle I/F1 und der zweiten Schnittstelle I/F2 zwischen Berechtigungsebenen, basierend zumindest zum Teil auf Inhalten und/oder einer Logik-Ebene eines SI-Registers. Tabelle 2 beschreibt Beispiele gleichzeitiger Anforderungen von der ersten Schnittstelle I/F1 und der zweiten Schnittstelle I/F2, eine hohe Berechtigungsebene zu haben. In dem Fall von Tabelle 2 wird der ersten Schnittstelle I/F1 die höchste Priorität über die zweite Schnittstelle I/F2 zugewiesen. In den in Tabelle 2 gezeigten Beispielen zeigen Inhalte des SI-Registers, welche „0” sind, eine hohe Berechtigungsebene an, während „1” eine niedrige Berechtigungsebene anzeigt.
| SI Zielwert | endgültiger Inhalt des SI Registers |
| Anfrage von I/F 1 | Anfrage von I/F 2 |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Tabelle 2
-
In den in Tabelle 2 beschriebenen Beispielen, wobei die erste Schnittstelle I/F1 die höchste Priorität hat, unabhängig von Anfragen von I/F2, kann der endgültige Inhalt des SI-Registers mit Anforderungen von I/F1 korrespondieren. Z. B. kann I/F1 anfordern, eine hohe Berechtigungsebene durch Beabsichtigen, eine „0” in das SI-Register zu schreiben, zu haben. Zur gleichen Zeit kann I/F2 auch anfordern, eine niedrige Berechtigungsebene durch Beabsichtigen, eine „1” in das SI-Register zu schreiben, zu haben (z. B. hat I/F2 eine hohe Berechtigungsebene und will I/F1 eine hohe Berechtigungsebene überlassen, weil z. B. I/F2 ihre Tätigkeit beendet haben kann). Weil I/F1 Priorität über I/F2 zugewiesen ist, kann der endgültige Inhalt des SI-Registers mit der Anforderung von I/F1 korrespondieren, so dass I/F1 eine hohe Berechtigungsebene gegeben wird, während die Anforderung von I/F2 ignoriert wird.
-
3 ist ein schematisches Diagramm eines Systems 300 gemäß einer anderen Ausführungsform. Ein Zweikanalspeicher 340 kann eine erste Schnittstelle 330 und eine zweite Schnittstelle 350 auf einem ersten Kanal bzw. einem zweiten Kanal umfassen. Ein erster Host 310 kann mit der ersten Schnittstelle 330 über einen Bus 320 elektronisch verbunden sein. In einer bestimmten Implementierung kann zweiter Host 380 mit einer drahtlosen Schnittstelle 370 über eine drahtlose Verbindung 375 kommunikativ verbunden sein. Solch eine drahtlose Verbindung kann irgendeinen von mehreren Kommunikationsstandards, wie Bluetooth, WiFi und/oder Ultra-Breitband, um nur einige Beispiele zu nennen, umfassen. Die drahtlose Schnittstelle 370 kann elektronisch mit der zweiten Schnittstelle 350 über den Bus 360 verbunden sein. In einer bestimmten Implementierung kann die drahtlose Schnittstelle 370 elektronische Schaltungen umfassen, um Hochfrequenzsignale und/oder Infrarotsignale zu empfangen/zu übertragen, sowie solche Signale zu verarbeiten. Der Zweikanalspeicher 340 kann PCM- und/oder Flash-Speicher umfassen, jedoch ist der beanspruchte Gegenstand nicht auf solche Beispiele beschränkt.
-
In einer bestimmten Ausführungsform kann das System 300 einen ersten Host 310, welcher einen in eine mobile Vorrichtung integrierten Basisband-Prozessor umfasst, und einen zweiten Host 380, welcher einen über eine drahtlose Schnittstelle mit der mobilen Vorrichtung drahtlos verbundenen externen Prozessor umfasst, umfassen. Dementsprechend kann der Zweikanalspeicher 340 mit dem Basisband-Prozessor über die erste Schnittstelle 330 und mit dem externen Prozessor über die zweite Schnittstelle 350 kommunizieren. Das System 300 kann weiterhin eine zweite Speichervorrichtung 395 umfassen, welche z. B. DRAM umfassen kann. Der erste Host 310 kann mit der zweiten Speichervorrichtung 395 über den Bus 325 und mit der zweiten Speicherschnittstelle 390 kommunizieren. Andere Speichervorrichtungen können auch in dem System 300 umfasst sein, und der beanspruchte Gegenstand ist nicht auf eine bestimmte Zahl und/oder Typ von zusätzlichen Speichervorrichtungen beschränkt.
-
In einer Implementierung können die erste Schnittstelle 330 und die zweite Schnittstelle 350 bestimmten Berechtigungsebenen zugewiesen sein, basierend zumindest zum Teil auf Verwaltungsprozessen, die z. B. durch eine Steuereinheit 345 ausgeführt werden. Solche Berechtigungsebenen können Kommunikation zwischen der Zweikanal-Speichervorrichtung 340 und entweder dem Host 310 oder dem Host 380 ermöglichen. In einer bestimmten Implementierung kann ein SI-Register 347 in das Speicherfeld 343 eingebettet sein, um Berechtigungsebenen, welche Zugriff auf das Speicherfeld 343 ermöglichen können, zu verwalten. Die erste Schnittstelle 330 und die zweite Schnittstelle 350 können auf SI-Register 347 ohne Rücksicht auf ihre Berechtigungsebene zugreifen (z. B. Schreiben in oder Lesen von). Z. B. kann die erste Schnittstelle 330, als Ergebnis des Setzens eines Bits des SI-Registers 347 auf Low oder High, in eine relativ hohe Berechtigungsebene übergehen, um auf das Speicherfeld 343 zuzugreifen, wohingegen die zweite Schnittstelle 350 eine relativ niedrige Berechtigungsebene haben kann und nicht eingerichtet sein kann, auf das Speicherfeld 343 zuzugreifen. In einer Implementierung, bevor ein Zustand und/oder Bit des SI-Registers 347 geändert werden kann (z. B. bevor eine Berechtigungsebene einer bestimmten Schnittstelle geändert werden kann), kann eine Schnittstelle, welche eine erhöhte Berechtigungsebene anfordert, um auf das Speicherfeld 343 zuzugreifen, erst feststellen, ob es durch die andere Schnittstelle initiierte unbeendete Prozesse gibt. Solch eine Feststellung kann durch Lesen der Inhalte des Status-Registers 349 gemacht werden, welches durch jede der beiden Schnittstellen gelesen werden kann, unabhängig von der Berechtigungsebene der Schnittstellen. In einer Implementierung können die erste Schnittstelle 330 und die zweite Schnittstelle 350 gleichzeitig freigegeben werden, jedoch ist der beanspruchte Gegenstand nicht dahingehend beschränkt. Die erste Schnittstelle 330 und die zweite Schnittstelle 350 können auch identische oder verschiedene Schnittstellen umfassen. Solche Schnittstellen können z. B. Nicht-Standard- oder Standard-Schnittstellen wie eine Doppeldatenraten(DDR)-Schnittstelle, eine DDR2-Schnittstelle, eine A/D MUX-Schnittstelle und/oder eine Open-NAND-Flash-Schnittstelle (ONFI), nur um einige Beispiele zu nennen, umfassen.
-
4 ist ein schematisches Diagramm, welches eine beispielhafte Ausführungsform eines Rechnersystems 400 beschreibt, welches eine Speichervorrichtung 410 umfasst. Solch eine Rechnervorrichtung kann einen oder mehrere Prozessoren z. B. zum Ausführen einer Anwendung und/oder anderen Codes umfassen. Die Speichervorrichtung 410 kann z. B. einen Mehrkanalspeicher wie z. B. den in 1 gezeigten Zweikanalspeicher 140 umfassen. Eine Rechnervorrichtung 404 kann stellvertretend für irgendein/e Vorrichtung, Gerät oder Maschine, die/das konfiguriert werden kann, um die Speichervorrichtung 410 zu verwalten. Die Speichervorrichtung 410 kann eine Speicher-Steuereinheit 415 und einen Speicher 422 umfassen. Als Beispiel, aber nicht als Beschränkung, kann die Rechnervorrichtung 404 umfassen: eine oder mehrere Rechnervor-richtungen und/oder Plattformen, wie z. B. einen Desktop-Computer, einen Laptop-Computer, eine Arbeitsstation, eine Server-Vorrichtung o. Ä.; eine oder mehrere Personal-Rechner- oder Kommunikationsvorrichtungen oder Geräte, wie z. B. ein PDA, eine mobile Kommunikationsvorrichtung o. Ä.; ein Rechnersystem und/oder Assoziierte-Dienste-Anbieter-Fähigkeit, wie z. B. eine Datenbank oder ein Datenspeicherdienste-Anbieter/-System; und/oder irgendeine Kombination davon.
-
Es wird anerkannt, dass alle oder ein Teil der verschiedenen Vorrichtungen, die im System 400 gezeigt sind, und die Prozesse und Verfahren, die hier weiterhin beschreiben werden, durch Benutzen oder anderweitiges Umfassen von Hardware, Firmware, Software, oder einer Kombination davon, implementiert werden können. Daher kann, als Beispiel, aber nicht als Beschränkung, die Rechnervorrichtung 404 zumindest eine Verarbeitungseinheit 420, welche an den Speicher 422 durch einen Bus 440 operativ gekoppelt ist, eine oder mehrere Kanalschnittstellen 450, und einen Host oder eine Speicher-Steuereinheit 415 umfassen. Die Verarbeitungseinheit 420 ist stellvertretend für eine oder mehrere Schaltungen, welche konfiguriert sind, um mindestens einen Teil einer Datenrechenprozedur oder eines Prozesses auszuführen. Beispielhaft, aber nicht beschränkend, kann die Verarbeitungseinheit 420 einen oder mehrere Prozessoren, Steuereinheit, Mikroprozessoren, Mikrocontroller, anwendungsspezifisch integrierte Schaltungen, digitale Signalprozessoren, programmierbare Logikvorrichtungen, feldprogrammierbare Gate-Arrays und Ähnliches oder irgendeine Kombination davon umfassen. Die Prozessoreinheit 420 kann ein Betriebssystem umfassen, welches konfiguriert ist, um mit der Speicher-Steuereinheit 415 zu kommunizieren. Solch ein Betriebssystem kann z. B. Befehle, die an die Speicher-Steuereinheit 415 über den Bus 440 zu senden sind, erzeugen. Der Speicher 422 ist stellvertretend für irgendeinen Datenspeichermechanismus.
-
Der Speicher 422 kann z. B. einen Primärspeicher 424 und/oder einen Sekundärspeicher 426 umfassen. Der Primärspeicher 424 kann z. B. einen Speicher mit wahlfreiem Zugriff, einen Nur-Lese-Speicher usw. umfassen. Während in diesem Beispiel es als von der Verarbeitungseinheit 420 getrennt veranschaulicht ist, versteht es sich, dass der gesamte oder ein Teil des Primärspeichers 424 innerhalb von, oder in anderer Weise angeordnet neben/gekoppelt mit der Verarbeitungseinheit 420 bereitgestellt sein kann.
-
Der Sekundärspeicher 426 kann zum Beispiel den gleichen oder einen ähnlichen Speichertyp wie Primärspeicher und/oder eine oder mehrere Datenspeichervorrichtungen oder -systeme wie z. B. ein Laufwerk, ein optisches Laufwerk, ein Band-Laufwerk, ein Festkörperspeicher-Laufwerk usw. umfassen. In bestimmten Implementierungen kann der Sekundärspeicher 426 operativ empfänglich sein für das, oder auf andere Weise konfiguriert sein zum, Koppeln mit einem computerlesbaren Medium 428. Das computerlesbare Medium 428 kann z. B. irgendein Medium, das zugreifbare Daten, Code und/oder Instruktionen für eine oder mehrere der Vorrichtungen im System 400 tragen und/oder erstellen kann.
-
In einer Ausführungsform kann das Rechnersystem 400 eine Mehrkanal-Speichervorrichtung 410 umfassen, welche eine Speicher-Steuereinheit 415 umfasst, um eine erste Schnittstelle und eine zweite Schnittstelle gleichzeitig in freigegebenen Zuständen zu halten, wobei eine der ersten Schnittstelle und der zweiten Schnittstelle zugewiesene Berechtigungsebene zumindest zum Teil auf Inhalten in einem Register in der Speichervorrichtung 410 basieren kann. Das Rechnersystem 400 kann auch einen Prozessor umfassen, um eine oder mehrere Anwendungen zu bedienen und um Befehle an Speicher-Steuereinheit 415 zu initiieren, um Zugriff auf die Mehrkanal-Speichervorrichtung 410 bereitzustellen.
-
Rechnervorrichtung 404 kann z. B. eine Eingabe/Ausgabe 432 umfassen. Die Eingabe/Ausgabe 432 ist stellvertretend für eine oder mehrere Vorrichtungen oder Merkmale, die konfiguriert werden können, um menschliche und/oder Maschinen-Eingaben anzunehmen oder auf andere Weise einzuführen, und/oder eine oder mehrere Vorrichtungen oder Merkmale, die konfiguriert werden können, um menschliche und/oder Maschinen-Ausgaben zu liefern oder auf andere Weise bereitzustellen. Beispielhaft, aber nicht beschränkend, kann die Eingabe-/Ausgabe-Vorrichtung 432 eine operativ konfigurierte Anzeige, Lautsprecher, Tastatur, Maus, Trackball, Berührungsbildschirm, Daten-Anschluss usw. umfassen. Die Ausdrücke „und” und „und/oder” und „oder”, wie hierin benutzt, können eine Vielfalt an Bedeutungen umfassen, die zumindest in Teilen vom Kontext, in welchem Sie benutzt werden, abhängen werden. Typischerweise sollen „und/oder” sowie „oder”, wenn benutzt, um eine Liste wie A, B oder C zu assoziieren, bedeuten, dass A, B und C hier im inklusiven Sinn benutzt wird sowie A, B oder C im exklusiven Sinn benutzt wird. Der in dieser Beschreibung durchgehend gemachte Bezug auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, Struktur oder Eigenschaft, welche/s in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform des beanspruchten Gegenstands umfasst wird. Wenn daher der Ausdruck „in einer Ausführungsform” oder „eine Ausführungsform” an verschiedenen Stellen in dieser Beschreibung auftritt, so bedeutet dies nicht notwendigerweise, dass diese sich alle auf dieselbe Ausführungsform beziehen. Des Weiteren können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden.