-
TECHNISCHES GEBIET
-
Ausführungsformen der Erfindung beziehen sich generell auf Speichergeräte und insbesondere auf das Zugreifen auf Daten, die in einem Registergerät bei einer Speicheradresse oder einem Befehlsbus gespeichert sind.
-
URHEBERRECHTSVERMERK/GENEHMIGUNG
-
Teile der Offenbarung dieser Patentschrift können Material beinhalten, das Urheberschutz unterliegt. Der Eigentümer des Urheberrechts hat keine Einwände hinsichtlich Reproduktion der Patentschrift oder Patentoffenbarung durch Dritte, da diese in der Patentdatenbank oder in Aufzeichnungen des Patent- und Markenamts erscheint, behält sich allerdings ansonsten jegliche Urheberrechte vor. Der Urheberrechtsvermerk gilt für alle Daten, wie sie nachstehend und in den Begleitzeichnungen beschrieben sind, sowie für jede Software, die nachstehend beschrieben ist: Copyright © 2011, Intel Corporation. Alle Rechte vorbehalten.
-
HINTERGRUND
-
Bestimmte Speichersubsysteme schließen Registergeräte ein, die mit dem Adress- oder Befehlsbus des Speichersubsystems verbunden sind, um Werte zu speichern, die mit einem Befehl oder einer Konfiguration innerhalb des Speichersubsystems in Zusammenhang stehen. Traditionell gibt es keine gute Art und Weise, auf solche Daten zuzugreifen. Deshalb ist es nicht einfach auf Daten, die im Register zum Zweck der Konfiguration gespeichert sind (z. B. Daten, die in einem Modusregister gespeichert sind) oder auf Daten, die für Debug oder Fehlererkennungszwecke gespeichert sind (z. B. Daten, die in einem C/A-Registergerät gespeichert sind), oder auf andere Daten in einem anderen solchen Register zuzugreifen.
-
Eine Option, um auf die Daten zuzugreifen, besteht darin, eine Verbindung zum Datenbus des Speichersubsystems einzuschließen. Solch eine Option ist in Form von Hardware (zusätzliche Pins) und das Routen von Traces sehr kostspielig. Eine andere Option besteht darin, das Gerät in einen speziellen Zustand zu versetzen (z. B. einen Verwaltungsmodus), um die vorübergehende Nutzung von vorhandenen Bussen oder anderen Verbindungen zu einem neuen Zweck zu ermöglichen. Solch eine Option resultiert in einer langsamen Verbindung, lässt keinen fortgesetzten Betrieb des Gerätes zu und kann immer noch zusätzliche Hardware erfordern. Eine andere Option besteht darin, eine serielle Außerband-Schnittstelle am Registergerät bereitzustellen, was ebenfalls Hardware- und Routing-Kosten hinzufügt. Deshalb gibt es momentan keine traditionellen Mechanismen, die Zugriff auf die in Registern des Speichersubsystems gespeicherten Daten mit Standardbefehlen und minimalen Hardwareanforderungen zulassen.
-
Speichersubsysteme, die neuere Standards von DDR- (doppelte Datenrate) - Speichern unterstützen, fügen eine zusätzliche Situation hinzu, indem sie ein Register und eine Logik bereitstellen, um eine Paritätsfehlerüberprüfung am Registergerät anstatt am Speichergerät durchzuführen. Beispielsweise lässt DDR4 (Standard noch in der Entwicklung zum Zeitpunkt der Einreichung dieser Anmeldung) eine Befehls-/Adress- (C/A) -Paritätsfehlerüberprüfung außerhalb des DRAM (dynamischer Random Access Memory) zu. Jedoch ohne einen Mechanismus, um einen Paritätsfehler zu lesen, wird der Befehl immer noch zum DRAM zur Ausführung gesendet, was in einem Aufhängen des Computergeräts (beispielsweise einem „Bluescreen“-Zustand) resultieren würde. Ein solcher Mechanismus wird mit dem Verfahren gemäß Anspruch 1, dem Herstellungsgegenstand gemäß Anspruch 8 sowie dem Speichersubsystem gemäß Anspruch 14 zur Verfügung gestellt.
-
US 2006/0259711 A1 betrifft das Zugreifen auf einen speziellen Modusregister einer Speichervorrichtung, wobei ein Befehl zum Zugreifen auf den speziellen Modusregister dadurch ausgeführt wird, dass Daten von dem Modusregister auf einen Datenbus übertragen werden.
-
US 2011/066903A1 betrifft einen DRAM mit einem eingebauten Selbsttest, das selbständige Testen innerhalb eines DRAMs umfassend das Empfangen von einer Instruktion von einem externen Prozessor, um einen Speicherkern auf dem DRAM zu testen, und das Selbsttesten des Speicherkerns mit einem oder mehreren BIST-Mustern, die in einem Mehrzweckregister auf dem DRAM gespeichert sind.
-
US 2004/0205433 A1 betrifft ein hochzuverlässiges Speichermodul mit einem fehlertoleranten Adress- und Befehlsbus, wobei das Speichermodul einen Register mit einer Fehlerkorrekturcode-Logik umfasst.
-
Figurenliste
-
Die folgende Beschreibung beinhaltet eine Erörterung von Figuren mit Veranschaulichungen, die beispielhafte Implementierungen von Ausführungsformen der Erfindung darstellen. Die Zeichnungen sind als Beispiel zu verstehen, und nicht als Einschränkung. Wie hier verwendet verstehen sich Referenzen auf eine oder mehrere „Ausführungsformen“ als Beschreibungen eines bestimmten Merkmals, einer Struktur oder Eigenschaft, das bzw. die in zumindest einer Implementierung der Erfindung beinhaltet ist. Damit beschreiben Formulierungen, wie z. B. „bei einer Ausführungsform“ oder „bei einer alternativen Ausführungsform“, die hierin erscheinen, verschiedene Ausführungsformen und Implementierungen der Erfindung und beziehen sich nicht notwendigerweise alle auf die gleiche Ausführungsform. Sie schließen sich jedoch auch nicht notwendigerweise gegenseitig aus.
- 1 ist ein Blockdiagramm einer Ausführungsform eines Systems, das ein Speichersubsystem mit einem Register aufweist, welches über einen Adress- oder Befehlsbus, aber nicht über einen Datenbus, zugänglich ist.
- 2 ist ein Blockdiagramm einer Ausführungsform eines Systems, das ein Speichersubsystem mit einem Register zwischen einem Memory-Controller und einem DRAM aufweist.
- 3 ist ein Blockdiagramm einer Ausführungsform eines Systems, das ein Speichersubsystem mit einem Register aufweist, welches über einen Adress- oder Befehlsbus, aber nicht über einen Datenbus und ein Speichergerät, zugänglich ist, das sowohl über den Adress- oder Befehlsbus als auch über den Datenbus zugänglich ist.
- 4 ist ein Blockdiagramm einer Ausführungsform eines Systems, das ein Speichersubsystem mit einem Registergerät zwischen einem Memory-Controller und einem DRAM aufweist, wo das Registergerät eine Paritätsprüfung ausführt.
- 5 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens, um auf Daten von einem Register zuzugreifen, das über einen Adress- oder Befehlsbus, aber nicht über einen Datenbus, zugänglich ist.
- 6 ist ein Blockdiagramm einer Ausführungsform eines Computersystems, wobei auf ein Register des Speichersubsystems indirekt durch einen Hostprozessor zugegriffen wird.
- 7 ist ein Blockdiagramm einer Ausführungsform eines mobilen Geräts, wobei auf ein Register des Speichersubsystems indirekt durch einen Hostprozessor zugegriffen wird.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Wie hier beschrieben, ist ein Register in einem Speichersubsystem mit einem Adressbus verbunden. Es ist jedoch offensichtlich, dass der Bezug auf einen Adressbus auf einen Bus verweisen kann, der nur Adressen transportiert oder auf einen Bus, der Adressen und Befehle transportiert. Viele Adressbusse sind Adress- oder Befehlsbusse, da Adressen und Befehle oder Kombinationen von Adressen und Befehlen über die Busse gesendet werden. Eine Bezugnahme hierin auf einen „Adressbus“ ist als eine Bezugnahme auf einen Adress- oder Befehlsbus zu verstehen. Deshalb ist ein Register über einen Adress- oder Befehlsbus, aber nicht über einen Datenbus, zugänglich. Die Daten können gelesen werden, indem Daten über den Adressbus vom Register an ein Gerät übertragen werden, das mit dem Datenbus verbunden ist, von dem die Daten über den Datenbus gelesen werden, selbst wenn das Register nicht mit dem Datenbus verbunden ist. Das Register befindet sich in einem Registergerät, das über den Adressbus mit einem Speichergerät verbunden ist, welches mit dem Adressbus als auch mit dem Datenbus verbunden ist. Ein Hostprozessor triggert das Registergerät, Informationen über den Adressbus zu einem Register auf dem Speichergerät zu übertragen. Der Hostprozessor liest dann die Informationen vom Register des Speichergeräts. Mit solch einem Lesemechanismus ist ein „indirektes“ Lesen des Registers möglich. Der Lesemechanismus arbeitet mit jedem mit dem Adressbus gekoppelten Registergerät wie ein Modusregister oder ein Paritätsfehlerüberprüfungs-Registergerät. Eine spezielle Speicherkonfiguration ist deshalb während der normalen Laufzeitausführung des Hostbetriebssystems zugänglich. Zusätzlich ist es möglich, auf Daten bezüglich eines speziellen Befehls oder einer Adresse zuzugreifen, die in einem Paritätsfehler resultierten, die den Zugriff auf das Host-System und einen Fehler dessen verhindern können. Es ist deshalb durch den beschriebenen Lesemechanimus möglich, eine Fehlerbehebung des Systems vorzunehmen, wenn ein Fehler im Speicherbefehl auftritt.
-
Das indirekte Lesen des Registers funktioniert gut bei den vorgeschlagenen DDR4-Systemen. DDR4 spezifiziert ein Registergerät, das eine C/A-Paritätsfehlerüberprüfung ausführen und fehlerhafte Befehle speichern kann. Deshalb kann bei DDR4 der Befehl vor der Ausführung gestoppt werden, und der Mechanismus des Zugreifens auf den fehlerhaften Befehl unterstützt beim Lokalisieren des fehlerhaften Befehls, was wiederum bei der Fehlerbehebung unterstützt.
-
1 ist ein Blockdiagramm einer Ausführungsform eines Systems, das ein Speichersubsystem mit einem Register aufweist, welches über einen Adressbus, aber nicht über einen Datenbus, zugänglich ist. System 100 stellt ein Computergerät oder mobiles Gerät dar, bei dem das isolierte Register 130 vom Hostprozessor 110 isoliert ist. Hostprozessor 110 führt Befehle aus, die im Speichersubsystem 120 gespeichert sind. Hostprozessor 110 gibt generell einen Befehl zum Zugreifen auf Daten aus. Der Befehl kann eine physische oder eine virtuelle Adresse einschließen, die auf eine spezielle Speicherstelle innerhalb von Speichergeräten des Speichersubsystems 120 zeigt.
-
Auf das isolierte Register 130 wird durch den Hostprozessor 110 nicht direkt zugegriffen. Register 130 ist deshalb vom Direktzugriff durch den Hostprozessor 110 „isoliert“, wenn es auch mit Elementen des Speichersubsystems 120 wie einem Adressbus verbunden ist, der auch mit einem Memory-Controller und Speichergeräten verbunden ist (siehe die nachfolgenden 2 und 3 für detailliertere Beispiele). System 100 schließt einen Steuermechanismus ein, wie er aus dem Stand der Technik bekannt ist, um Daten und Code oder Befehle zur Ausführung durch den Prozessor 110 in das Speichersubsystem 120 zu laden.
-
Bei einer Ausführungsform gibt Hostprozessor 110 einen Befehl aus, der bewirkt, dass Daten im Register 130 gespeichert werden, auf die dann nicht direkt durch den Hostprozessor 110 zugegriffen werden kann. Beispiele schließen Modusregisterwerte, bestimmte Debug-Werte, Paritätsfehler-Informationen oder andere Informationen ein. Bei solch einer Ausführungsform gibt Hostprozessor 110 einen Befehl aus, der an Register 130 weitergeleitet wird, um das Register zu veranlassen, seine Inhalte in ein Register auf einem Speichergerät des Speichersubsystems 120 zu kopieren oder zu übertragen. Das Speichergerät ist mit einem Datenbus verbunden und kann deshalb auf einen Befehl vom Hostprozessor 110 ansprechen, indem es Daten auf den Datenbus lädt, die vom Hostprozessor 110 lesbar sind.
-
Bei einer Ausführungsform schließt BIOS (Basic Input/Output System) 140 Code ein, der vom Hostprozessor 110 ausgeführt werden kann, um ein Lesen von Register 130 zu triggern und die darin gespeicherten Inhalte zu verarbeiten. Beispielsweise kann der Hostprozessor 110 konfiguriert werden, auf Debug- oder Fehlerkorrekturcode zuzugreifen, der im BIOS 140 beim Auftreten von bestimmten Ereignissen gespeichert wird. Deshalb kann Hostprozessor 110 veranlasst werden, einen Debug-Zustand oder einen Fehlerkorrekturzustand auszuführen, der auf die Inhalte des Registers 130 zugreift und bestimmt, welche Aktionen als Reaktion auf die gelesenen Inhalte durchzuführen sind.
-
2 ist ein Blockdiagramm einer Ausführungsform eines Systems, das ein Speichersubsystem mit einem Register zwischen einem Memory-Controller und einem DRAM aufweist. System 200 stellt ein Computergerät oder mobiles Gerät dar, bei dem sich ein Register zwischen Memory-Controller 220 und DRAM 240 befindet, und es kann ein Beispiel des Systems 100 von 1 sein. Hostprozessor 210 führt Befehle aus, die im Speichersubsystem 202 gespeichert sind. Hostprozessor 210 kann auf Daten oder Code zugreifen, der im DRAM 240 zur Ausführung von Befehlen gespeichert ist. Bei einer Ausführungsform schließt Speichersubsystem 202 zusätzlich zum DRAM 240 andere Speicherressourcen (nicht dargestellt) ein.
-
Der Hostprozessor 210 greift auf DRAM 240 durch das Generieren eines Befehls oder einer Anforderung zu, die er zum Memory-Controller 220 über Host-Bus 212 sendet. Host-Bus 212 stellt irgendwelche Verbindungen dar, über die der Hostprozessor 210 einen Befehl oder eine Anforderung bereitstellen kann, die mit dem Speicherzugriff in Zusammenhang steht. Bei einer Ausführungsform sendet der Memory-Controller 220 alle Zugriffsanforderungen durch das Register 230, anstatt direkt zum DRAM 240. Bei einer weiteren Ausführungsform (siehe beispielsweise 3 unten) kann der Memory-Controller auf DRAM 240 direkt zugreifen und Register 230 befindet sich an einem Adressbus, mit dem der Memory-Controller und DRAM verbunden sind.
-
Bei einer Ausführungsform stellen Adressbus 222 und Adressbus 224 den Adressbus des Speichersubsystems 202 dar, wobei Adressbus 222 der Adressbus wie zwischen Memory-Controller 220 und Register 230 ist und Adressbus 224 der Adressbus wie zwischen Register 230 und DRAM 240 ist. Register 230 kann sich auf dem Adressbus zwischen Memory-Controller 220 und DRAM 240 befinden, um eine Operation an Zugriffsbefehlen auszuführen, die vom Memory-Controller 220 zum DRAM 240 gesendet werden. Bei einer Ausführungsform sendet der Memory-Controller 220 alle Befehle zum DRAM 240 durch das Register 230. Bei einer Ausführungsform, stellt Register 230 beispielsweise eine Paritätsfehlerüberprüfung bereit. Im Fall von einem erkannten Paritätsfehler leitet Register 230 den fehlerhaften Befehl nicht weiter. Deshalb kann Register 230 zwischen Memory-Controller 220 und DRAM 240 den DRAM daran hindern, mit einem schlechten Befehl zu arbeiten, der anderweitig bewirken würde, dass das Gerät 200 nicht mehr reagiert (d. h., sich aufhängt).
-
Bei einer Implementierung, bei der Register 230 eine Paritätsfehlerüberprüfung bereitstellt, protokolliert Register 230 Informationen über den Paritätsfehler, wenn er erkannt wird. Wenn ein Paritätsfehler erkannt wird, löst Register 230 zusätzlich zum Verhindern, dass der Befehl den DRAM 240 erreicht, einen Paritätsfehler aus, der vom Memory-Controller 220 und/oder DRAM 240 erkannt wird. Der Paritätsfehler wird im System 200 angezeigt, Hostprozessor 210 erkennt den Paritätsfehler und kann versuchen die Inhalte des Registers 230 zu lesen, um die Paritätsfehler-Protokollinformationen zu erhalten. Das Register kann dann seine Inhalte zum DRAM 240 als Reaktion auf einen Lesebefehl übertragen, um Hostprozessor 210 Zugriff auf das Fehlerprotokoll zu ermöglichen und zu bestimmen, wie weiter verfahren wird. Hostprozessor 210 kann auf die übertragenen Inhalte des Registers 230 sowie andere Informationen, die im DRAM 240 gespeichert sind, über den Datenbus 242 zugreifen. DRAM 240 ist mit dem Datenbus 242 verbunden, während Register 230 dies nicht ist.
-
3 ist ein Blockdiagramm einer Ausführungsform eines Systems, das ein Speichersubsystem mit einem Register aufweist, welches über einen Adressbus, aber nicht über einen Datenbus und ein Speichergerät, zugänglich ist, das sowohl über den Adressbus als auch über den Datenbus zugänglich ist. System 300 stellt ein Computergerät dar, wobei Hostprozessor 310 auf Daten von Register 320 indirekt zugreift. System 300 kann ein Beispiel des Systems 100 von 1 sein. Während Register 230 von 2 zwischen dem Memory-Controller und Speichergerät verbunden ist, ist Register 320 nicht zwischen Memory-Controller 340 und DRAM 330 verbunden. Statt dessen ist Register 320 mit dem Memory-Controller 340 parallel zum DRAM 330 über den Adressbus 302 verbunden. Register 320 ist mit dem Datenbus 304 nicht verbunden. DRAM 330 ist mit dem Datenbus 304 verbunden. Memory-Controller 340 kann oder kann nicht mit dem Datenbus 304 verbunden sein. Bei einer Ausführungsform ist der Memory-Controller 340 mit dem Hostprozessor 310 über den Befehlsbus 306 gekoppelt, der Teil des Datenbusses 304 sein kann oder auch nicht.
-
Register 320 protokolliert Informationen wie Speicherkonfigurationswerte oder Debug-Werte. Wenn der Hostprozessor 310 Befehle ausführt, die anzeigen, dass sich das Lesen des bzw. der Werte, die in Register 320 protokolliert sind, gibt Hostprozessor 310 einen Befehl über den Befehlsbus 306 an den Memory-Controller 340 aus, der dann einen Befehl auf dem Adressbus 302 bereitstellt. Hostprozessor 310 ist mit dem Adressbus 302 nicht direkt verbunden. Register 320 spricht auf den Befehl durch das Übertragen von Daten zum DRAM 330 über den Adressbus 302 an.
-
Bei einer Ausführungsform bewirkt der Befehl für das Register 320, dass Register 320 zu einem speziellen Ort im DRAM 330 überträgt. Das Register spezifiziert den Ort mit dem Auswahlcode oder der Auswahlinformation. Deshalb kann ein Lesetrigger-Befehl einem Register des DRAM 330 anzeigen, wohin die Protokollinformationen geschrieben werden sollten. Bei einer Ausführungsform schließt DRAM 330 mehrere Speichergeräte, 332-0, 332-1 ..., 332-N ein, wobei N eine ganze Zahl größer oder gleich Null ist. Bei einer Ausführungsform schließt jedes Gerät ein oder mehrere Mehrzweckregister (MPRs) ein, die im Gerät 332-0 als MPR[3:0] veranschaulicht sind. Es kann mehr oder weniger als vier Register in jedem DRAM geben.
-
Bei einer Ausführungsform wählt Memory-Controller 340 den Ort aus, zu dem Register 320 seine Inhalte durch Auswählen einer Ortsauswahl und/oder Schreibfreigabe für den gewünschten Ort im DRAM 330 schreibt. Der Lesetrigger, der Register 320 veranlasst, seine Inhalte zum DRAM 330 zu übertragen, kann einen Auswahlcode einschließen, um ein spezielles MPR anzuzeigen. Bei einer Ausführungsform zeigt das Format des Lesetriggers Register 320 als die Übertragungsquelle an, die in ein spezifiziertes MPR als Ziel zu schreiben ist. Deshalb kann der Lesetrigger ein Befehl sein, der in der Struktur anderen Standardbefehlen im System 300 ähnlich ist.
-
Im Allgemeinen veranlasst der Lesetrigger das Register 320 Protokollinformationen zu einem Register im DRAM 330 zu übertragen, die dann durch den Hostprozessor 310 gelesen werden können. Hostprozessor 310 gibt einen Befehl aus, der letztlich veranlasst, dass der Lesetrigger zum Register 320 gesendet wird. Bei einer Ausführungsform wird der Befehl vom Hostprozessor 310 als der Lesetrigger betrachtet und vom Memory-Controller 340 weitergeleitet. Bei einer weiteren Ausführungsform gibt Hostprozessor 310 einen Befehl aus, der den Memory-Controller veranlasst, einen Lesetrigger zu generieren, den er dann zum Register 320 sendet.
-
4 ist ein Blockdiagramm einer Ausführungsform eines Systems, das ein Speichersubsystem mit einem Registergerät zwischen einem Memory-Controller und einem DRAM-Gerät aufweist, wobei das Registergerät eine Paritätsprüfung durchführt. Wie oben erwähnt in Bezug auf die Beispiele der 1 und 2 kann bei einer Ausführungsform ein Registergerät, das zwischen dem Memory-Controller und dem Speichergerät angeordnet ist, eine Paritätsprüfung ausführen. In System 400 befindet sich Registergerät 420 zwischen Memory-Controller 410 und DRAM 430.
-
Registergerät 420 schließt Register 422 ein, wo es Paritätsprüfungsinformationen protokolliert. Register 422 ist ein Register gemäß irgendeiner aus dem Stand der Technik bekannten Ausführungsform. Kurz gesagt schließt ein Register eine flüchtige Gruppe von digitalen Bits ein, die in einer Gruppe von Schaltungselementen gehalten werden. Bei einer Ausführungsform schließt Registergerät 420 auch Paritätsprüfungslogik 424 ein, die Hardware und/oder Software darstellt, die in Verarbeitungsressourcen ausgeführt wird, um Paritätsprüfungsfunktionen auszuführen. Eine Paritätsprüfung ist generell eine einigermaßen einfache logische Verknüpfung, um zu überprüfen, ob eine berechnete Parität mit einer erwarteten Parität übereinstimmt, und sie kann leicht in einfachen digitalen Schaltungen implementiert werden.
-
Registergerät 420 ist mit dem DRAM 430 über den Adressbus 444 verbunden. DRAM 430 ist mit einem Hostprozessor über den Datenbus 442 verbunden. DRAM 430 schließt Speicherressourcen 432 ein, welche die Daten im DRAM speichern. DRAM 430 schließt auch einen oder mehrere MPRs 434 ein, die im Wesentlichen als ein kleines Zwischenregister für den DRAM fungieren können. Bei einer Ausführungsform schließt DRAM 430 die Paritätsprüfungslogik 436 ein, die auf eine ähnlich Weise wie die Paritätsprüfungslogik 424 von Registergerät 420 implementiert sein kann. Bei einer Ausführungsform ist entweder eine oder beide aus Paritätsprüfungslogik 424 und Paritätsprüfungslogik 436 selektiv aktiviert. Deshalb kann die Paritätsprüfung sowohl bei Registergerät 420 als auch bei DRAM 430 aktiviert oder deaktiviert werden. Wenn bei einer Ausführungsform die Paritätsprüfung bei Registergerät 420 aktiviert ist, ist sie am DRAM 430 deaktiviert. Für die folgende Beschreibung wird angenommen, dass die Paritätsprüfungslogik 424 aktiviert ist. Wenn die Paritätsprüfungslogik 424 einen Paritätsfehler erkennt, protokolliert sie Paritätsfehler-Informationen im Register 422, welches ein C/A-Register sein kann. Das Registergerät 420 überträgt die registrierten Fehlerinformationen und Fehlerstatus-Informationen zum DRAM 430. Der gleiche Mechanismus, den Registergerät 420 für Transferfehlerprotokoll-Informationen und Fehlerstatus-Informationen zum DRAM 430 verwendet, kann verwendet werden, um Steuerworte vom Registergerät 420 zu übertragen.
-
Bei einer Ausführungsform befindet sich das Registergerät 420 auf einem DIMM (Dual Inline Memory Module). System 400 setzt die Bits des Registers 422 durch das Ausgeben eines Adressbefehls von Memory-Controller 410. Basierend auf der Adresse setzt Registergerät 420 Bits im Register 422. Wie hiernach beschrieben, können Standardadressbefehle dann verwendet werden, um Registergerät 420 zu veranlassen, Daten zum MPR 434 zu übertragen, die über den Datenbus 442 gelesen werden sollen. Da Registergerät 420 vom Datenbus 442 isoliert ist, kann es nicht direkt Daten für den Zugriff durch einen Hostprozessor auf dem Datenbus platzieren.
-
Bei einer Ausführungsform ist Registergerät 420 eingerichtet, auf ein Paritäts-(PAR) -Signal zu überprüfen, das einen Takt nach einem Chipauswahlsignal (CS#) generiert wird. Bei einer alternativen Ausführungsform kann das Paritätssignal im gleichen Taktzyklus wie CS# generiert werden anstatt im Taktzyklus+1. Registergerät 420 überprüft vor dem Weiterleiten des Befehls zum DRAM 430 auf Parität ohne Fehler. Die Übertragung des Fehlerprotokolls vom Registergerät 420 würde auf die gleiche Weise funktionieren, egal ob die Paritätsprüfungslogik 436 im DRAM 430 aktiviert ist (d. h., ungeachtet dessen, ob der DRAM auf Paritätsfehler überprüft).
-
Bei einer Ausführungsform stellt sich das Verfahren für das Protokollieren und Auslesen der Protokollinformationen aus dem Registergerät 420 wie folgt dar. Das Verfahren lässt die Wiederherstellung aus einem Paritätsfehler zu, während bei traditionellen Herangehensweisen ein Paritätsfehler einen Systemfehler hervorrufen würde. Registergerät 420 erkennt einen Paritätsfehler im Befehl oder der Adresse. Register 422 protokolliert den fehlgeleiteten C/A- (Spalte/Adresse) -Frame- (RCW (Registersteuerwort) -Ort C0 .. FF). Bei einer Ausführungsform sind die Bits, die protokolliert werden, C2-C0, ACT_n, BG1-BG0, BA1-BA0, PAR, A17, A16/RAS_n, A15/CAS_n, A14/WE_n und A13:0 für insgesamt 26 Bit. Das Registergerät 420 setzt das Paritätsfehler-Status-Bit auf „1“, um den Paritätsfehler im System 400 anzuzeigen. Ein signifikanter Gegensatz zu vorausgehenden Paritätsfehlerüberprüfungstechniken besteht darin, dass das Registergerät 420 verhindern kann, dass ein fehlerhafter Befehl ausgeführt wird, indem es den fehlgeleiteten C/A-Frame aufhält und ihn nicht zum DRAM 430 weiterleitet.
-
Bei einer Ausführungsform assertiert Registergerät 420 ein Signal zu Memory-Controller 410, um den Paritätsfehler anzuzeigen. Das Signal könnte ein ALERT_n-Signal sein, das dem Memory-Controller nach einer Verzögerung von tPAR_ALERT_ON_reg für die Dauer von tPAR_ALERT_PW_reg assertiert wird. Das Registergerät 420 deaktiviert die Paritätsprüfung, wenn ein Paritätsfehler erkannt wird, und fährt erst mit der Paritätsprüfung fort, nachdem der Memory-Controller 410 ein Paritätsfehler-Statusbit auf ,,0" zurücksetzt.
-
Bei einer Ausführungsform schließt MPR 434 mehrere MPR-Register ein, die unterschiedliche Ränge aufweisen. Bei einer Ausführungsform ist MPR-Seite 0 ein lesbares und schreibbares Register, während die MPR-Seiten 1, 2, 3 nur gelesen werden können. Deshalb kann Memory-Controller 410 einen „MPR-Seite 0“-Modus im DRAM 430 in Rang 0 durch das Setzen der MR3-Bits A2=1 und A1:A0=00 (Seite 0) aktivieren. Lese- und Schreibvorgänge können deshalb zur Seite 0 geleitet werden.
-
Bei einer Ausführungsform wählt Memory-Controller 410 das Fehlerprotokoll-Register in einem RCW-Wahlsteuerwort aus und initiiert einen oder mehrere Befehle, um die Inhalte des Registers 422 zur MPR-Seite 0 zu schreiben. Bei einer Ausführungsform gibt Memory-Controller 410 vier „Sende 8-Bit-RCW zum MPR“-Befehle aus, indem er viermal in ein Command Space-Steuerwort (Adresse 3F) schreibt. Eine solche Sequenz kann 32 Bit (was die gesamte Größe des Registers 422 sein kann) des Fehlerprotokoll-Registers zur Seite 0 von MPRO, MPR1, MPR2 und MPR3 übertragen. Das Verwenden von Rang 0 beim DIMM für MPR-Schreibvorgänge ist bequem, wenn alle DIMMs Rang 0 aufweisen. Andere Ränge können anstatt Rang 0 verwendet werden.
-
Bei einer Ausführungsform kann der Einfachheit halber das Zuordnen von Bits zur Seite 0 dem gleichen Muster wie dem Zuordnen von Bits in der Seite 1 folgen. Seite 1 wird durch den DRAM für Fehlerprotokolle verwendet, kann aber nur lesend sein. Wenn Seite 1 nur lesend ist, können Informationen zu einer schreibbaren Seite (z. B. Seite 0) mit der gleichen Zuordnung geschrieben werden, sodass die gleichen Befehle und die gleiche Verarbeitung verwendet werden können, um die Fehlerinformationen zu verstehen.
-
Bei einer beispielhaften Ausführungsform ist ein Schreiben in die Seite
0 (MPR1) eine Schreibtransaktion mit BA1:BA0=00 und Adresse A7:A0, die wie folgt zugeordnet ist:
A[15]/CAS# | A[14]/WE# | A[13] | A[12] | A[11] | A[10] | A[9] | A[8] |
-
Nachdem das Fehlerprotokoll und der Fehlerstatus vom Register 422 zur DRAM-Seite 0 übertragen wurden, kann der Memory-Controller 410 Lesebefehle verwenden, um die Seite 0 zu lesen. Deshalb kann ein Hostprozessor Lesebefehle generieren, um den Memory-Controller zu veranlassen, Lesebefehle zu verwenden, um auf die Daten zuzugreifen.
-
Der Memory-Controller
410 kann den MPR-Betrieb durch die Programmierung von MR3 A2=0 zu DRAM deaktivieren, was einen normalen Datenfluss initiiert. Der Memory-Controller kann auch die Paritätsprüfung im Registergerät
420 erneut durch das Zurücksetzen des Paritätsfehler-Signals wie oben erwähnt aktivieren. Bei einer Ausführungsform können die folgenden Registerspezifikationsdetails Anwendung finden.
Tabelle 1 - RC3F: Command Space
Cmd (DA[3:0]) | Cmd No | Name des Befehls | Ergebnis |
0 | 0 | 0 | 0 | CMD0 | Reserviert | |
0 | 0 | 0 | 1 | CMD1 | Reserviert | |
0 | 0 | 1 | 0 | CMD2 | Reserviert | |
0 | 0 | 1 | 1 | CMD3 | Reserviert | |
0 | 1 | 0 | 0 | CMD4 | 8-Bit-RCW zu MPRx senden | Sendet ausgewähltes RCW zur DRAM-MPRO-Seite 0. |
0 | 1 | 0 | 1 | CMD5 | Zwei 4-Bit-RCWs zu MPRx senden | Sendet ausgewählte RCWs zur DRAM-MPRO-Seite 0. |
0 | 1 | 1 | 0 | CMD6 | Reserviert | |
0 | 1 | 1 | 1 | CMD7 | Reserviert | |
1 | 0 | 0 | 0 | CMD8 | Reserviert | |
1 | 0 | 0 | 1 | CMD9 | Reserviert | |
1 | 0 | 1 | 0 | CMD10 | Reserviert | |
1 | 0 | 1 | 1 | CMD11 | Reserviert | |
1 | 1 | 0 | 0 | CMD12 | Reserviert | |
1 | 1 | 0 | 1 | CMD13 | Reserviert | |
1 | 1 | 1 | 0 | CMD14 | Reserviert | |
1 | 1 | 1 | 1 | CMD15 | Reserviert | |
Tabelle 2 - RC8x: RCW-Auswahlsteuerwort-Definition für 8-Bit-RCWs
Einstellung (DA[7:0]) | Definition | Codierung |
0 | MPR-Bit 1 | MPR-Bit 0 | A12 | A11 | A10 | A9 | A8 | RCW-Adresse für die RCW-Leseoperation | Wählt 1 aus 32 8-Bit-RCW-Adressen aus |
MPR-Bits[1:0]=00 wählt MPRO aus |
MPR-Bits[1:0]=01 wählt MPR1 aus |
MPR-Bits[1:0]=10 wählt MPR2 aus |
MPR-Bits[1:0]=11 wählt MPR3 aus |
1 | MPR-Bit 1 | MPR-Bit 0 | A12 | A11 | A10 | A9 | A8 | RCW-Adresse für die RCW-Leseoperation mit Auto-Inkrement[1] | Wählt 1 aus 32 8-Bit-RCW-Adressen aus |
MPR-Bits[1:0]=00 wählt MPRO aus |
MPR-Bits[1:0]=01 wählt MPR1 aus |
MPR-Bits[1:0]=10 wählt MPR2 aus |
MPR-Bits[1:0]=11 wählt MPR3 aus |
-
[1] „Sende 8-Bit-RCW zu MPRx“-Befehle autoinkrementieren das Adressfeld mit 1 und das MPR-Bit-Feld im RCW-Auswahl-Steuerwort mit 1.
Tabelle 3 - RC4x: RCW-Auswahlsteuerwort-Definition für 4-Bit-RCWs
Einstellung (DA[7:0]) | Definition | Codierung |
0 | MPR-Bit 1 | MPR-Bit 0 | A9 | A8 | A7 | A6 | A5 | RCW-Adresse für die RCW-Leseoperation | Wählt 1 aus 32 doppelten 4-Bit-RCW-Adressen aus |
MPR-Bits[1:0]=00 wählt MPRO aus |
MPR-Bits[1:0]=01 wählt MPR1 aus |
MPR-Bits[1:0]=10 wählt MPR2 aus |
MPR-Bits[1:0]=11 wählt MPR3 aus |
1 | MPR-Bit 1 | MPR-Bit 0 | A9 | A8 | A7 | A6 | A5 | RCW-Adresse für die RCW-Leseoperation mit Auto-Inkrement[1] | Wählt 1 aus 32 doppelten 4-Bit-RCW-Adressen aus |
MPR-Bits[1:0]=00 wählt MPR0 aus |
MPR-Bits[1:0]=01 wählt MPR1 aus |
MPR-Bits[1:0]=10 wählt MPR2 aus |
MPR-Bits[1:0]=11 wählt MPR3 aus |
-
[1] „Sende zwei 4-Bit-RCWs zu MPRx“-Befehle autoinkrementieren das Adressfeld mit 1 und das MPR-Bit-Feld im RCW-Auswahl-Steuerwort mit 1.
-
Es ist jedoch offensichtlich, dass das Registersteuerwort (RCW) Teil des Registergeräts ist. Der DRAM schließt ein Modusregister (MR) ein und das Registergerät schließt das RCW ein. Das RCW und MR weisen eine ähnliche Funktion für ihre zwei unterschiedlichen verbundenen Geräte auf. Der Memory-Controller wählt erst einen RCW zum Lesen aus und schreibt dann die Wunschadresse (die zu lesende Adresse) als die Quelle. Der Memory-Controller kann dann ein Zielsteuerwort generieren, um das Ziel (die Adresse in die geschrieben werden soll) zu spezifizieren. Jedes ausgewählte Bit im Command Space-Steuerwort wird verwendet, um den Befehl zu definieren. Es kann Bits geben, die reserviert oder anderweitig nicht verwendet sind.
-
Um ein Schreiben des Registerinhaltes bei einer Ausführungsform zu erreichen, setzt der Memory-Controller die Quelle, das Ziel und dann das Command Space-Steuerwort, welches das Steuerwort generiert und aussendet. Das System kann so konfiguriert werden, dass lediglich die Quelle und das Ziel nichts in und von sich selbst tut.
-
Das RCW-Auswahl-Steuerwort wird vor „Sende 8-Bit-RCW zu MPRx“- oder „Sende zwei 4-Bit-RCWs zu MPRx“-Befehlen geschrieben. Bei einer Ausführungsform sendet das Registergerät die folgenden Bits bei QxA[7:0] Ausgängen:
Tabelle 4 - Sendet RCW zur DRAM-Bitzuordnung für 4-Bit-RCWs
QxA7 | QxA6 | QxA5 | QxA4 | QxA3 | QxA2 | QxA1 | QxA0 |
obere Adresse RCW Bit 3 | obere Adresse RCW Bit 2 | obere Adresse RCW Bit 1 | obere Adresse RCW Bit 0 | untere Adresse RCW Bit 3 | untere Adresse RCW Bit 2 | untere Adresse RCW Bit 1 | untere Adresse RCW Bit 0 |
Tabelle 5 - Senden zu DRAM-Bitzuordnung für 8-Bit-RCW
QxA7 | QxA6 | QxA5 | QxA4 | QxA3 | QxA2 | QxA1 | QxA0 |
RCW Bit 7 | RCW Bit 6 | RCW Bit 5 | RCW Bit 4 | RCW Bit 3 | RCW Bit 2 | RCW Bit 1 | RCW Bit 0 |
-
Bei einer Ausführungsform fungieren die Steuerwortorte C0..FF als ein 32-Bit-Fehlerprotokoll-Register. Bei einer Ausführungsform, protokolliert nach dem Vorkommen eines Paritätsfehlers das Registergerät den folgenden gesampelten Befehl und die Adressbits im Fehlerprotokoll-Register, die vom Memory-Controller zur Seite
0 des DRAM-MPRs übertragen werden können, wo sie durch das Host-System (über den Prozessor) gelesen werden können.
Tabelle 6 - RCC0..RCFF: Fehlerprotokoll-Register
Steuerwo rt | Einstellung (DA[7:0]) |
RCCx | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
RCDx | A17/CAS_n | A14/WE_n | A13 | A12 | A11 | A10 | A9 | A8 |
RCEx | DPAR | ACT_n | BG1 | BG0 | BA1 | BA0 | A17 | A16/RAS_n |
RCFx | Reserviert | CA-Pahtätsfehler-Status[1] | Reserviert | C2-STAND ARD | C1 | C0 |
-
[1] Das Registergerät setzt dieses Bit nach dem Auftreten eines CA-Paritätsfehlers. Das Schreiben dieses Bits zu ,,0" setzt die Paritätsprüfung fort. Während dieses Bit gesetzt ist und sich das Gerät in einem der zwei Zyklus N+1 Paritätsmodi befindet, assertiert das Gerät keinen seiner QxCSy_n-Ausgänge.
-
Bei einer Ausführungsform wird das indirekte Lesen eines Registergeräts wie hiernach beschrieben auf DDR4 angewandt, der mit der Paritätsprüfung in einem Registergerät wie oben beschrieben implementiert werden kann. In Bezug auf den DDR4 MPR-Modus enthält eine Ausführungsform von DDR4 DRAM vier Seiten von MPR-Registern und jede Seite weist vier MPR-Orte auf. Seite 0 weist vier programmierbare für den DQ-Bitmuster-Speicher verwendete 8-Bit-MPR-Orte auf. Diese MPR-Register werden geschrieben, indem zuerst der DRAM in den „Datenfluss von/zu MPR“-Modus platziert wird, indem ein Modusregister A2=1 im MR3 gesetzt wird. Die MPR-Seite wird auch unter Verwendung der Bits A1:A0 im MR3 gesetzt.
-
In diesem Modus wird ein MRS- (Modusregistersatz) -Befehl verwendet, um die MPR zu programmieren. Für einen MRS Befehl wird der Adressbus für die Daten verwendet. Einmal programmiert kann auf die Register mit Lesebefehlen im „MPR Betrieb“-Modus zugegriffen werden, um die MPR-Bits auf dem DQ-Bus zum Memory-Controller oder Host zu senden.
-
Die DDR4 MPR-Modus-Freigabe und Seitenauswahl werden durch einen Modusregister-Befehl wie nachfolgend gezeigt erreicht.
Tabelle 7 - MR3
Adresse | Betriebsmodus | Beschreibung |
A2 | MPR-Betrieb | 0=Normal |
1=Datenfluss von/zu MPR |
A1:A0 | MPR-Auswahl | 00=Seite0 |
01 =Seite1 |
10=Seite2 |
11 =Seite3 |
-
Wie oben erwähnt werden vier MPR-Seiten im DDR4 SDRAM bereitgestellt. Seite 0 ist sowohl für Lesen und Schreiben und die Seiten 1, 2 und 3 sind nur lesend. Jeder MPR-Ort (MPR0-3) in der Seite 0 kann durch irgendeinen von drei Ausgabe-Modi (seriell, parallel oder gestaffelt) lesbar sein, aber die Seiten 1, 2 und 3 unterstützen nur den seriellen Ausgabemodus.
-
Nach dem Hochfahren sollte der Inhalt der MPR-Seite
0 Standardwerte wie vordefiniert für den DRAM aufweisen. Die MPR-Seite
0 kann nur schreibbar sein, wenn ein MPR-Schreibbefehl vom Memory-Controller ausgegeben wird. Sofern nicht ein MPR-Schreibbefehl ausgegeben wird, muss der DRAM die Standardwerte permanent halten und sollte den Inhalt nicht selbstständig zu irgendeinem Zweck ändern.
Tabelle 8 - MPR-Standardwerte
Adresse | MPR-Ort | [7] | [6] | [5] | [4] | [3] | [2] | [1] | [0] | HINWEIS |
BA1:BA0 | 00=MPR0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | Lesen/Schreiben (Standardwert) |
01=MPR1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| 10=MPR2 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |
11=MPR3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-
Es ist jedoch offensichtlich, dass die Bezugnahme, selbst eine detaillierte Bezugnahme wie vorstehend bereitgestellt in Bezug auf DDR4 und DDR4-Paritätsfehlerüberprüfung, lediglich ein nicht begrenzendes Beispiel ist. Wie hiernach beschrieben, kann der Indirektlesemechanismus des Registers für alle Register arbeiten, die von einem Datenbus isoliert, aber mit einem Gerät gekoppelt sind, das mit dem Datenbus gekoppelt ist.
-
5 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens, um auf Daten von einem Register zuzugreifen, das über einen Adressbus, aber nicht über einen Datenbus, zugänglich ist. Bei einer Ausführungsform sendet ein Memory-Controller einen Befehl zu einem Registergerät, der das Registergerät veranlasst, Informationen in einem Register zu speichern oder zu protokollieren, 502. Die Informationen können Paritätsfehler-Informationen, Debug-Informationen, Konfigurationsinformationen oder andere Informationen sein, die in einem vom Systemdatenbus isolierten Register gespeichert werden können.
-
Bei einer Ausführungsform sind die im Register zu speichernden Informationen Konfigurationsinformationen und der Trigger ist ein Befehl vom Memory-Controller, um die Konfigurationsinformationen zu schreiben. Bei einer Ausführungsform sind die zu speichernden Informationen Paritätsfehler-Informationen und der Trigger ist das Erkennen durch das Registergerät, dass ein Paritätsfehler aufgetreten ist. Bei einer Ausführungsform sind die zu speichernden Informationen Debug-Informationen und der Trigger ist ein Befehl vom Memory-Controller als Reaktion auf die Debug-Software, um Daten in das Register zu schreiben. Als Reaktion auf den Trigger protokolliert das Registergerät die Informationen im Register, 504.
-
Der Memory-Controller erkennt einen Lesetrigger, um die Informationen zu lesen, die im Register gespeichert sind, 506. Der Memory-Controller empfängt generell solch einen Trigger von einem vom Hostprozessor ausgeführten Verfahren. Das Verfahren kann ein Programm sein, das auf dem Host ausführt, oder es kann im Geräte-BIOS als Code gespeichert sein. Bei einer Ausführungsform bereitet sich der Memory-Controller auf das Lesen des Registers durch das Identifizieren einer Quelle und eines Ziels als Reaktion auf den Lesetrigger vor, 508. Bei einer Ausführungsform ist der Lesetrigger ein Befehl, der von einer Form ist, die einen speziellen Registerplatz als die Quelle und einen speziellen MPR-Ort des Speichergeräts als das Ziel identifiziert. Der Memory-Controller kann den Befehl zum Registergerät und DRAM vorbereiten, indem er die speziellen Orte basierend auf der Identifikation der Informationen, die vom Host zu lesen sind, identifiziert. Als Reaktion auf den Befehl vom Memory-Controller schreibt das Registergerät seine Inhalte (die Quelle) zum spezifizierten MPR-Ort (das Ziel), 510. Der Host kann dann die Informationen vom Ziel im Speichergerät mit Standard-Lesebefehlen über den Systemdatenbus lesen, 512. Der Host, der die Informationen anforderte, bestimmt eine oder mehrere Aktionen basierend auf den gelesenen Informationen, 514. Die Aktionen können mit dem Setzen oder Aktualisieren der Konfiguration, dem Speichern von Daten im Speicher oder dem Senden von Daten über ein Netzwerk, das Identifizieren eines Befehls mit Paritätsfehler und das Ausgeben eines korrigierten Befehls oder jeder anderen Aktion in Zusammenhang stehen.
-
Bei einer Ausführungsform steuert ein BIOS wenigstens einen bestimmten Befehl zum Registergerät. Beispielsweise kann das BIOS als Reaktion auf einen Paritätsfehler sehen, dass ein Fehler aufgetreten ist, und dann zum Host zurückgehen, um den speziellen Fehler zu entdecken. Der spezielle Fehler ist durch das Lesen des Registergeräts wie oben angeführt sichtbar. Bei einer Ausführungsform kann das BIOS als Reaktion auf einen Fehler versuchen, jedes Geräteregister im System zu lesen, um herauszufinden, wo der Fehler herkam und was speziell der Fehler ist. Die Software steuert das Schreiben und Lesen der Register und Befehle. Das BIOS bestimmt dann, welche Aktionen basierend auf dem speziellen Fehler zu unternehmen sind.
-
6 ist ein Blockdiagramm einer Ausführungsform eines Computersystems, wobei auf ein Register des Speichersubsystems indirekt durch einen Hostprozessor zugegriffen wird. System 600 stellt ein Computergerät gemäß jeder hier beschriebenen Ausführungsform dar und kann ein Laptop, ein Desktop-Computer, ein Server, ein Spiel- oder Unterhaltungssteuersystem, ein Scanner, Kopierer, Drucker oder ein anderes elektronisches Gerät sein. System 600 schließt Prozessor 620 ein, der Verarbeitung, Betriebsmanagement und Befehlsausführung für das System 600 bereitstellt. Prozessor 620 kann jede Art von Mikroprozessor, Hauptprozessor (CPU), Prozessorkern oder andere Verarbeitungshardware einschließen, um die Verarbeitung für das System 600 bereitzustellen. Prozessor 620 steuert den allgemeinen Betrieb des Systems 600 und kann ein oder mehrere programmierbare Allzweck- oder Spezialmikroprozessoren, Digitalsignal-Prozessoren (DSPs), Automatisierungssysteme, anwendungsspezifische integrierte Schaltkreise (ASICs), programmierbare Logikbaugruppen (PLDs) oder Ähnliches oder eine Kombination von solchen Geräten sein oder einschließen.
-
Das Speichersubsystem 630 stellt den Hauptspeicher des Systems 600 dar und stellt eine vorübergehende Speicherung für Code bereit, der durch den Prozessor 620 auszuführen ist, oder Dateninhalte, die beim Ausführen einer Routine zu verwenden sind. Das Speichersubsystem 630 schließt Speicher 632 ein, der ein oder mehrere Speichergeräte darstellt, die Read Only Memory (ROM), Flash-Speicher, eine oder mehrere Varianten von Random Accesses Memory (RAM) oder andere Speichergeräte oder eine Kombination von solchen Geräten einschließen kann. Bei einer Ausführungsform schließt Speicher 632 wenigstens einen DRAM ein. Das Speichersubsystem 630 schließt Register 634 ein, das ein Register darstellt, das von Prozessor 620 nicht direkt lesbar ist. Solch ein Register kann als ein isoliertes Register bezeichnet und indirekt wie hier beschrieben gelesen werden.
-
Das Speichersubsystem 630 speichert und beherbergt unter anderem, Betriebssystem (OS) 636, um eine Softwareplattform für die Befehlsausführung im System 600 bereitzustellen. Zusätzlich sind andere Befehle 638 gespeichert und werden vom Speichersubsystem 630 ausgeführt, um die Logik und die Verarbeitung des Systems 600 bereitzustellen. OS 636 und die Befehle 638 werden durch den Prozessor 620 ausgeführt. Der Prozessor 620 und das Speichersubsystem 630 sind mit dem Bus/Bussystem 610 gekoppelt. Bus 610 ist eine Abstraktion, die ein oder mehrere separate physische Busse, Kommunikationsleitungen/Schnittstellen und/oder Punkt-zu-Punkt-Verbindungen darstellt, die durch geeignete Brücken, Adapter und/oder Controller verbunden sind. Deshalb kann Bus 610, beispielsweise ein oder mehr von einem Systembus, Peripheral Component Interconnect- (PCI) -Bus, HyperTransport- oder Industriestandardarchitektur- (ISA) -Bus, SCSI-Schnittstelleh- (SCSI) -Bus, einem universellen seriellen Bus (USB) oder Institute of Electrical and Electronics Engineers- (IEEE) Standard-1394-Bus (allgemein als „FireWire“ bezeichnet) einschließen. Die Busse von Bus 610 können auch Schnittstellen in der Netzwerkschnittstelle 650 entsprechen.
-
Bei einer Ausführungsform schließt Bus 610 einen Datenbus ein, der ein Datenbus ist, der im Speichersubsystem 630 eingeschlossen ist, über den Prozessor 630 Werte vom Speicher 632 lesen kann. Die zusätzlich gezeigte Linie, die Prozessor 620 mit dem Speichersubsystem 630 verbindet, stellt einen Befehlsbus dar, über den Prozessor 620 Befehle und Adressen bereitstellt, um auf Speicher 632 zuzugreifen. Das Register 634 ist mit einem Datenbus des Speichersubsystems 630, aber nicht mit dem Datenbus von Bus 610, verbunden.
-
System 600 schließt auch eine oder mehrere Ein-/Ausgabe- (I/O) -Schnittstellen 640, Netzwerkschnittstelle 650, ein oder mehrere interne Massenspeichergeräte 660 und Peripherieschnittstelle 670 gekoppelt mit Bus 610 ein. I/O-Schnittstelle 640 kann eine oder mehrere Schnittstellenkomponenten einschließen, durch die ein Benutzer mit System 600 interagiert (z. B. Video, Audio- und/oder alphanumerische Schnittstelle). Netzwerkschnittstelle 650 stellt System 600 die Kommunikationsfähigkeit mit entfernten Geräten (z. B. Server, andere Computergeräte) über ein oder mehrere Netzwerke bereit. Die Netzwerkschnittstelle 650 kann ein Ethernet-Adapter, drahtlose Verbindungskomponenten, USB (universeller serieller Bus) oder andere verdrahtete oder drahtlose standardbasierte oder proprietäre Schnittstellen einschließen.
-
Der Speicher 660 kann jedes konventionelle Medium sein oder einschließen, um große Mengen von Daten in einer nicht flüchtigen Weise zu speichern, wie eine oder mehrere Magnetplatten, Halbleiterplatten oder optische Speicherplatten oder eine Kombination davon. Der Speicher 660 hält Code oder Befehle und die Daten 662 in einem permanenten Zustand (d. h., der Wert wird trotz der Unterbrechung des Stroms zu System 600 aufrechterhalten). Speicher 660 kann allgemein als ein „Speicher“ betrachtet werden, obwohl der Speicher 630 der ausführende oder Betriebsspeicher ist, um Befehle an Prozessor 620 bereitzustellen Während Speicher 660 nicht flüchtig ist, kann Speicher 632 flüchtigen Speicher einschließen (d. h., der Wert oder Zustand der Daten ist unbestimmt, wenn der Strom zum System 600 unterbrochen wird).
-
Die Peripherieschnittstelle 670 kann jede Hardware-Schnittstelle, die nicht speziell oben angegeben ist, einschließen. Peripheriegeräte verweisen generell auf Geräte, die abhängig mit dem System 600 verbinden. Eine abhängige Verbindung ist eine, bei der System 600 die Software- und/oder Hardware-Plattform bereitstellt, auf der die Operation ausgeführt wird und mit der ein Benutzer interagiert.
-
7 ist ein Blockdiagramm einer Ausführungsform eines mobilen Geräts, wobei auf ein Register des Speichersubsystems indirekt durch einen Hostprozessor zugegriffen wird. Das Gerät 700 stellt ein mobiles Gerät, wie ein Computing-Tablet, ein Mobiltelefon oder Smartphone, einen drahtlosen e-Reader oder ein anderes mobiles Gerät dar. Es ist offensichtlich, dass gewisse Komponenten generell gezeigt sind, und nicht alle Komponenten solch eines Gerätes sind in Gerät 700 gezeigt. Gerät 700 umfasst Prozessor 710, der die primären Verarbeitungsoperationen von Gerät 700 durchführt. Prozessor 710 kann ein oder mehrere physische Geräte, wie beispielsweise Mikroprozessoren, Anwendungsprozessoren, Mikrocontroller, programmierbare Logikgeräte oder andere Verarbeitungsmittel umfassen. Die Verarbeitungsoperationen, die durch den Prozessor 710 ausgeführt werden, schließen die Ausführung einer Betriebsplattform oder eines Betriebssystems ein, auf denen Anwendungen und/oder Gerätefunktionen ausgeführt werden. Die Verarbeitungsoperationen schließen Operationen ein, die mit I/O (Ein-/Ausgabe) mit einem menschlichen Benutzer oder mit anderen Geräten, Operationen, die mit dem Energiemanagement und/oder Operationen die mit dem Verbinden von Gerät 700 mit einem anderen Gerät in Zusammenhang stehen. Die Verarbeitungsoperationen können auch Operationen einschließen, die mit Audio-I/O und/oder Display-I/O in Zusammenhang stehen.
-
Bei einer Ausführungsform umfasst das Gerät 700 das Audiosubsystem 720, welches Hardware (z. B. Audiohardware und Audioschaltkreise) repräsentiert und Software- (z. B. Treiber und Codecs) -Komponenten, die mit dem Bereitstellen von Audiofunktionen an das EDV-Gerät verbunden sind. Audiofunktionen können einen Lautsprecher- und/oder Kopfhörerausgang sowie einen Mikrofoneingang einschließen. Die Geräte für solche Funktionen können in das Gerät 700 integriert oder mit dem Gerät 700 verbunden sein. Bei einer Ausführungsform interagiert ein Benutzer mit Gerät 700 durch das Bereitstellen von Audiobefehlen, die von Prozessor 710 empfangen und verarbeitet werden.
-
Das Anzeigesubsystem 730 stellt Hardware- (z. B. Anzeigegeräte) und Software- (z. B. Treiber) -Komponenten dar, die ein visuelles und/oder fühlbares Display für einen Benutzer bereitstellen, um mit dem Computergerät zu interagieren. Displaysubsystem 730 umfasst die Anzeigeschnittstelle 732, welche den bestimmten Bildschirm oder das Hardwaregerät umfasst, das verwendet wird, um einem Benutzer ein Display bereitzustellen. Bei einer Ausführungsform umfasst die Displayschnittstelle 732 Logik, die vom Prozessor 710 getrennt ist, um mindestens einige Verarbeitung durchzuführen, die mit dem Display verbunden ist. Bei einer Ausführungsform umfasst Displaysubsystem 730 ein Touchscreen-Gerät, das einem Benutzer sowohl die Ausgabe als auch Eingabe bereitstellt.
-
I/O-Controller 740 repräsentiert Hardwaregeräte und Softwarekomponenten, die mit der Interaktion mit einem Benutzer verbunden sind. Der I/O-Controller 740 kann arbeiten, um die Hardware zu verwalten, die Teil des Audiosubsystems 720 und/oder des Displaysubsystems 730 ist. Zusätzlich veranschaulicht I/O-Controller 740 eine Verbindungsstelle für zusätzliche Geräte, die mit Gerät 700 verbunden sind, über die ein Benutzer mit dem System interagieren könnte. Beispielsweise könnten Geräte, die an das Gerät 700 angeschlossen werden können, Mikrofongeräte, Lautsprecher oder Stereoanlagen, Videosysteme oder ein anderes Anzeigegerät, eine Tastatur oder Tastaturgeräte oder andere I/O-Geräte zur Verwendung mit spezifischen Anwendungen, wie Kartenleser oder andere Geräte, umfassen.
-
Wie oben erwähnt kann der I/O-Controller 740 mit Audiosubsystem 720 und/oder Displaysubsystem 730 interagieren. Beispielsweise kann die Eingabe über ein Mikrofon oder ein anderes Audiogerät Eingaben oder Befehle für eine oder mehrere Anwendungen oder Funktionen von Gerät 700 bereitstellen. Zusätzlich kann eine Audioausgabe anstatt oder zusätzlich zur Displayausgabe bereitgestellt werden. Bei einem weiteren Beispiel agiert das Anzeigegerät auch als ein Eingabegerät, das mindestens teilweise durch I/O-Controller 740 verwaltet werden kann, wenn das Display-Untersystem einen Touchscreen umfasst. Es kann auch zusätzliche Taster oder Schalter an Gerät 700 geben, um I/O-Funktionen bereitzustellen, die von I/O-Controller 740 verwaltet werden können.
-
Bei einer Ausführungsform verwaltet der I/O-Controller 740 Geräte wie Beschleunigungsmesser, Kameras, Lichtsensoren oder andere Sensoren, Gyroskope, globale Positionsbestimmungssystem- (GPS) -Hardware, die im Gerät 700 eingeschlossen sein kann. Die Eingabe kann Teil der direkten Benutzerinteraktion sowie das Bereitstellen umgebungsbedingter Eingabe in das System sein, um dessen Operationen zu beeinflussen (wie beispielsweise das Filtern von Rauschen, das Anpassen von Displays bezüglich der Helligkeitserkennung, einen Blitz einer Kamera anzuwenden oder andere Merkmale).
-
Bei einer Ausführungsform umfasst Gerät 700 Energiemanagement 750, das die Batteriestromverwendung, das Laden der Batterie und die Merkmale verwaltet, die mit dem Energiesparbetrieb verbunden sind. Das Speichersubsystem 760 schließt Speichergeräte ein, um Informationen im Gerät 700 zu speichern. Der Speicher kann nicht flüchtige (Zustand ändert sich nicht, wenn der Strom zum Speichergerät unterbrochen wird) und/oder flüchtige (Zustand ist unbestimmt, wenn der Strom zum Speichergerät unterbrochen wird) Speichergeräte einschließen. Die Speicherressourcen des Speichersubsystems 760 können Anwendungsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten sowie Systemdaten (entweder langfristig oder temporär) speichern, die mit der Ausführung der Anwendungen und den Funktionen des Systems 700 in Zusammenhang stehen.
-
Bei einer Ausführungsform schließt ein Speichergerät 762 wenigstens ein Register ein, das direkt über den Prozessor 710 zugänglich ist. Das Registergerät 764 des Speichersubsystems 760 befindet sich außerhalb der Speichergeräte 762 und ist nicht durch den Prozessor 710 direkt zugänglich, ist aber kommunikativ mit dem Speichergerät 762 über einen Adressbus wie oben beschrieben gekoppelt. Die Daten, die im Registergerät 764 gespeichert sind, können zum Register von Speichergerät 762 übertragen werden, sodass sie vom Prozessor 710 gelesen werden können.
-
Konnektivität 770 schließt Hardwaregeräte ein (z. B. drahtlose und/oder verdrahtete Anschlüsse und Kommunikationshardware) und Software-Komponenten (z. B. Treiber, Protokollstapel), um das Gerät 700 in die Lage zu versetzen, mit Peripheriegeräten zu kommunizieren. Das Gerät könnte getrennte Geräte, wie beispielsweise andere EDV-Geräte, drahtlose Zugangspunkte oder Basisstationen sowie Peripheriegeräte wie Headsets, Drucker oder andere Geräte sein. Konnektivität 770 kann mehrere unterschiedliche Arten der Konnektivität umfassen. Zur Verallgemeinerung ist Gerät 700 mit der Mobilfunkkonnektivität 772 und der drahtlosen Konnektivität 774 veranschaulicht. Die Mobilfunkkonnektivität 772 verweist generell auf Mobilfunknetz-Konnektivität, die durch Mobilfunkanbieter, wie beispielsweise GSM (Global System for Mobile Communications) oder Varianten oder Ableitungen, CDMA (Codemultiplexverfahren) oder Varianten oder Ableitungen, TDM (Zeitmultiplexbetrieb) oder Varianten oder Ableitungen oder andere Mobilfunkdienststandards bereitgestellt wird. Die drahtlose Konnektivität 774 bezeichnet drahtlose Konnektivität, die kein Mobilfunk ist und persönliche Netzwerke (wie Bluetooth), lokale Netzwerke (wie WiFi), Weitverkehrsnetzwerke (wie WiMax) und andere drahtlose Kommunikation umfassen kann. Drahtlose Kommunikation verweist auf Datenübertragung durch die Verwendung von modulierter elektromagnetischer Strahlung durch ein nicht festes Medium. Verdrahtete Kommunikation erfolgt durch ein Festkörper-Kommunikationsmedium. Die peripheren Verbindungen 780 umfassen Hardware-Schnittstellen und Anschlüsse sowie Softwarekomponenten (z. B. Treiber, Protokollstapel), um periphere Verbindungen herzustellen. Es ist jedoch offensichtlich, dass Gerät 700 sowohl ein Peripheriegerät („zu“ 782) zu anderen EDV-Geräten als auch mit Peripheriegeräten („von“ 784) verbunden sein kann. Gerät 700 weist allgemein einen „Docking“-Anschluss auf, um es mit anderen EDV-Geräten für Zwecke wie das Verwalten (z. B. das Herunterladen und/oder Hochladen, Wechseln, Synchronisieren) von Inhalt auf dem Gerät 700 zu verbinden. Zusätzlich kann ein Dockinganschluss Gerät 700 ermöglichen, sich mit gewissen Peripheriegeräten zu verbinden, die dem Gerät 700 ermöglichen, beispielsweise die Inhaltsausgabe an audiovisuelle oder andere Systeme zu steuern.
-
Zusätzlich zu einem proprietären Dockinganschluss oder anderer proprietärer Verbindungshardware kann Gerät 700 periphere Verbindungen 780 über gewöhnliche oder standardbasierte Anschlüsse herstellen. Gewöhnliche Arten können einen universellen seriellen Bus- (USB) -Anschluss (der irgendeine von einer Anzahl von unterschiedlichen Hardware-Schnittstellen umfassen kann), DisplayPort, MiniDisplayPort (MDP), HDMI-Schnittstelle (HDMI), FireWire oder eine andere Art einschließen.