DE112011106021B4 - Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind - Google Patents

Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind Download PDF

Info

Publication number
DE112011106021B4
DE112011106021B4 DE112011106021.1T DE112011106021T DE112011106021B4 DE 112011106021 B4 DE112011106021 B4 DE 112011106021B4 DE 112011106021 T DE112011106021 T DE 112011106021T DE 112011106021 B4 DE112011106021 B4 DE 112011106021B4
Authority
DE
Germany
Prior art keywords
register
command
mpr
information
register device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112011106021.1T
Other languages
English (en)
Other versions
DE112011106021T5 (de
Inventor
Kuljit S. Bains
Klaus J. Ruff
George Vergis
Suneeta Sah
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112011106021T5 publication Critical patent/DE112011106021T5/de
Application granted granted Critical
Publication of DE112011106021B4 publication Critical patent/DE112011106021B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

In einem Speichersubsystem ein Verfahren, das umfasst:das Protokollieren von Informationen über einen Speicherbefehl in einem Registergerät, das mit einem dynamischen Random Access Memory- (DRAM) - Gerät über einen Adressbus des Speichersubsystems gekoppelt ist, wobei das Registergerät nicht mit einem Datenbus des Speichersubsystems gekoppelt ist;das Erkennen eines Lesetriggers für die Protokollinformationen im Registergerät; undals Reaktion auf das Erkennen des Lesetriggers die Protokollinformationen in ein Mehrzweckregister (MPR) des DRAM-Geräts zu schreiben, wobei das MPR die Protokollinformationen einem Hostprozessor über den Datenbus zugänglich macht.

Description

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

Claims (20)

  1. In einem Speichersubsystem ein Verfahren, das umfasst: das Protokollieren von Informationen über einen Speicherbefehl in einem Registergerät, das mit einem dynamischen Random Access Memory- (DRAM) - Gerät über einen Adressbus des Speichersubsystems gekoppelt ist, wobei das Registergerät nicht mit einem Datenbus des Speichersubsystems gekoppelt ist; das Erkennen eines Lesetriggers für die Protokollinformationen im Registergerät; und als Reaktion auf das Erkennen des Lesetriggers die Protokollinformationen in ein Mehrzweckregister (MPR) des DRAM-Geräts zu schreiben, wobei das MPR die Protokollinformationen einem Hostprozessor über den Datenbus zugänglich macht.
  2. Verfahren nach Anspruch 1, wobei das Registergerät eine Speicherbefehl-Paritätsfehlerprüfung ausführt, und wobei das Protokollieren der Informationen das Protokollieren von Paritätsfehler-Informationen in das Registergerät umfasst, und wobei das Erkennen des Lesetriggers weiter das Stoppen des Speicherbefehls am Registergerät und das nicht Senden des Befehls zum DRAM umfasst.
  3. Verfahren nach Anspruch 1, wobei das Protokollieren das Protokollieren von Fehlersuchinformationen im Registergerät umfasst.
  4. Verfahren nach Anspruch 1, wobei das Registergerät ein Modusregister umfasst und wobei das Protokollieren der Informationen das Schreiben einer Modusregister-Konfiguration in das Registergerät umfasst, um als Reaktion auf einen Lesetrigger über den Datenbus ausgelesen zu werden.
  5. Verfahren nach Anspruch 1, wobei das Erkennen des Lesetriggers das Erkennen eines Befehls von einem Memory-Controller umfasst, der Adress- als auch Befehlsinformationen einschließt, um das Schreiben vom Registergerät als eine Quelle zum MPR als ein Ziel zu triggern.
  6. Verfahren nach Anspruch 1, wobei das Schreiben der Protokollinformationen in das MPR weiter das Einschließen eines MPR-Wahlcode in einem Lesetrigger-Befehl umfasst.
  7. Verfahren nach Anspruch 1, wobei der Adressbus einen Adress- oder Befehlsbus umfasst.
  8. Herstellungsgegenstand, der ein computerlesbares Speichermedium umfasst, auf dem Inhalt gespeichert ist, der, wenn er in einem Speichersubsystem ausgeführt wird, das Speichersubsystem veranlasst, Operationen auszuführen, einschließlich: das Protokollieren von Informationen über einen Speicherbefehl in einem Registergerät, das mit einem dynamischen Random Access Memory- (DRAM) - Gerät über einen Adressbus des Speichersubsystems gekoppelt ist, wobei das Registergerät nicht mit einem Datenbus des Speichersubsystems gekoppelt ist; das Erkennen eines Lesetriggers für die Protokollinformationen im Registergerät; und als Reaktion auf das Erkennen des Lesetriggers, die Protokollinformationen in ein Mehrzweckregister (MPR) des DRAM-Geräts zu schreiben, wobei das MPR die Protokollinformationen einem Hostprozessor über den Datenbus zugänglich macht.
  9. Herstellungsgegenstand nach Anspruch 8, wobei das Registergerät eine Speicherbefehl-Paritätsfehlerprüfung ausführt, und wobei der Inhalt für das Ausführen des Protokollierens der Informationen Inhalt für das Ausführen des Protokollierens von Paritätsfehler-Informationen in das Registergerät umfasst, und wobei der Inhalt für das Ausführen des Erkennens des Lesetriggers weiter Inhalt für das Ausführen des Stoppens des Speicherbefehls beim Registergerät und das nicht Senden des Befehls zum DRAM umfasst.
  10. Herstellungsgegenstand nach Anspruch 8, wobei der Inhalt für das Ausführen des Protokollierens der Informationen Inhalt für das Ausführen des Protokollierens von Debugging-Informationen im Registergerät umfasst.
  11. Herstellungsgegenstand nach Anspruch 8, wobei das Registergerät ein Modusregister umfasst, und wobei der Inhalt für das Ausführen des Protokollierens der Informationen Inhalt für das Ausführen des Schreibens einer Modusregister-Konfiguration in das Registergerät umfasst, wobei Operationen das Auslesen der Modusregister-Konfiguration über den Datenbus als Reaktion auf einen Lesetrigger umfasst.
  12. Herstellungsgegenstand nach Anspruch 8, wobei der Inhalt für das Ausführen des Erkennens des Lesetriggers Inhalt für das Ausführen des Erkennens eines Befehls von einem Memory-Controller umfasst, der Adress- und Befehlsinformationen einschließt, um das Schreiben vom Registergerät als eine Quelle zum MPR als ein Ziel zu triggern.
  13. Herstellungsgegenstand nach Anspruch 8, wobei der Inhalt für das Ausführen des Schreibens der Protokollinformationen in das MPR weiter Inhalt für das Ausführen des Bereitstellens eines MPR-Wahlcodes in einem Lesetrigger-Befehl umfasst.
  14. Speichersubsystem, umfassend: ein Mehrzweckregister (MPR) eines dynamischen Random Access Memory-(DRAM) -Gerätes, wobei das MPR über einen Adressbus des Speichersubsystems schreibbar und über einen Datenbus des Speichersubsystems lesbar ist; und ein Registergerät, das mit dem MPR am Adressbus und nicht mit dem Datenbus des Speichersubsystems gekoppelt ist, um Informationen über einen Speicherbefehl zu protokollieren und die Protokollinformationen als Reaktion auf einen Lesetrigger, der am Registergerät empfangen wurde, in das MPR zu schreiben, um die Protokollinformationen beim MPR zugänglich zu machen, wobei ein mit dem Speichersubsystem gekoppelter Hostprozessor dazu ausgebildet ist, die Protokollinformationen vom MPR über den Datenbus zu lesen.
  15. Speichersubsystem nach Anspruch 14, wobei das Registergerät weiter dazu ausgebildet ist, eine Speicherbefehl-Paritätsfehlerprüfung und das Protokollieren von Paritätsfehler-Informationen auszuführen und weiter den Speicherbefehl am Registergerät zu stoppen, anstatt den Befehl zum DRAM zu senden.
  16. Speichersubsystem nach Anspruch 14, wobei das Registergerät dazu ausgebildet ist, Debugging-Informationen zu protokollieren.
  17. Speichersubsystem nach Anspruch 14, wobei das Registergerät ein Modusregister umfasst und wobei das Modusregister dazu ausgebildet ist, eine Modusregister-Konfiguration zu protokollieren, die über den Datenbus als Reaktion auf einen Lesetrigger ausgelesen wird.
  18. Speichersubsystem nach Anspruch 14, wobei der Lesetrigger einen Befehl von einem Memory-Controller umfasst, der Adress- und Befehlsinformationen einschließt, um das Schreiben vom Registergerät als eine Quelle zum MPR als ein Ziel zu triggern.
  19. Speichersubsystem nach Anspruch 14, wobei das Registergerät dazu ausgebildet ist, die Protokollinformationen zum MPR gemäß einem MPR-Wahlcode in einem Lesetrigger-Befehl zu schreiben.
  20. Speichersubsystem nach Anspruch 14, wobei das Registergerät zwischen einem Memory-Controller und dem DRAM-Gerät am Adressbus gekoppelt ist, wobei die gesamte Kommunikation, die vom Memory-Controller zum DRAM auf dem Adressbus gesendet wird, durch das Registergerät hindurchgeht.
DE112011106021.1T 2011-12-22 2011-12-22 Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind Active DE112011106021B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/066891 WO2013095518A1 (en) 2011-12-22 2011-12-22 Accessing data stored in a command/address register device

Publications (2)

Publication Number Publication Date
DE112011106021T5 DE112011106021T5 (de) 2014-12-04
DE112011106021B4 true DE112011106021B4 (de) 2018-05-03

Family

ID=48669159

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011106021.1T Active DE112011106021B4 (de) 2011-12-22 2011-12-22 Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind

Country Status (5)

Country Link
US (3) US9442871B2 (de)
KR (3) KR101685435B1 (de)
CN (1) CN103999055B (de)
DE (1) DE112011106021B4 (de)
WO (1) WO2013095518A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9337872B2 (en) * 2011-04-30 2016-05-10 Rambus Inc. Configurable, error-tolerant memory control
CN103999055B (zh) 2011-12-22 2017-03-01 英特尔公司 访问命令/地址寄存器装置中存储的数据
US9934831B2 (en) 2014-04-07 2018-04-03 Micron Technology, Inc. Apparatuses and methods for storing and writing multiple parameter codes for memory operating parameters
US9846612B2 (en) 2015-08-11 2017-12-19 Qualcomm Incorporated Systems and methods of memory bit flip identification for debugging and power management
US9940046B2 (en) 2015-11-27 2018-04-10 Samsung Electronics Co., Ltd. Semiconductor memory device with operation environment information storing circuit and command storing function
US10437483B2 (en) * 2015-12-17 2019-10-08 Samsung Electronics Co., Ltd. Computing system with communication mechanism and method of operation thereof
CN106126449A (zh) * 2016-06-17 2016-11-16 山东超越数控电子有限公司 一种用串口读ec寄存器的方法
US10268541B2 (en) 2016-08-15 2019-04-23 Samsung Electronics Co., Ltd. DRAM assist error correction mechanism for DDR SDRAM interface
US10127074B2 (en) 2017-01-27 2018-11-13 Futurewei Technologies, Inc. Transaction identification synchronization
US10303543B1 (en) * 2017-02-09 2019-05-28 Cadence Design Systems, Inc. System and method for memory control having address integrity protection for error-protected data words of memory transactions
US10275306B1 (en) * 2017-02-09 2019-04-30 Cadence Design Systems, Inc. System and method for memory control having adaptively split addressing of error-protected data words in memory transactions for inline storage configurations
US10559351B2 (en) 2017-02-20 2020-02-11 Texas Instruments Incorporated Methods and apparatus for reduced area control register circuit
US10997096B2 (en) 2017-05-22 2021-05-04 Intel Corporation Enumerated per device addressability for memory subsystems
US10380043B2 (en) * 2017-09-28 2019-08-13 Intel Corporation Memory bus MR register programming process
US10395722B2 (en) * 2017-09-29 2019-08-27 Intel Corporation Reading from a mode register having different read and write timing
US10664181B2 (en) * 2017-11-14 2020-05-26 International Business Machines Corporation Protecting in-memory configuration state registers
CN110968350B (zh) * 2018-09-30 2023-07-07 成都鼎桥通信技术有限公司 功放控制方法和装置
US10691592B2 (en) * 2018-10-30 2020-06-23 Micron Technology, Inc. Error-checking in namespaces on storage devices using a namespace table and metadata
KR102317788B1 (ko) * 2021-05-14 2021-10-26 삼성전자주식회사 스토리지 장치 및 스토리지 컨트롤러의 동작 방법
KR20230025969A (ko) 2021-08-17 2023-02-24 삼성전자주식회사 메모리 저장 장치, 메모리 저장 장치의 동작 방법, 테스트 방법 및 전자 장치
CN114138588B (zh) * 2021-11-03 2024-01-09 苏州浪潮智能科技有限公司 一种控制器的调试信息导出方法、系统、设备以及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205433A1 (en) 2003-04-14 2004-10-14 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20060259711A1 (en) 2005-05-11 2006-11-16 Jong-Hoon Oh Technique to read special mode register
US20110066903A1 (en) 2009-09-15 2011-03-17 International Business Machines Corporation Dynamic random access memory having internal built-in self-test with initialization

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02284229A (ja) 1989-04-25 1990-11-21 Nec Corp マイクロプロセッサの状態記憶装置
KR0149891B1 (ko) * 1994-12-22 1999-05-15 윤종용 버스상태분석기 및 그 내부버스시험방법
US6459495B1 (en) * 1997-07-15 2002-10-01 Silverbrook Research Pty Ltd Dot center tracking in optical storage systems using ink dots
EP1151374B1 (de) * 1999-01-28 2017-08-02 Advanced Silicon Technologies, LLC Ausführung von programmen für eine erste rechnerarchitektur auf einem rechner mit einer zweiten architektur
US6763448B1 (en) 1999-02-16 2004-07-13 Renesas Technology Corp. Microcomputer and microcomputer system
US6064600A (en) * 1999-03-01 2000-05-16 Micron Technology, Inc. Methods and apparatus for reading memory device register data
US20030126413A1 (en) 2000-01-06 2003-07-03 Tony S. El-Kik Processor system including internal address generator for implementing single and burst data transfers
GB2383437B (en) * 2001-12-20 2004-02-04 Sun Microsystems Inc System trace unit
US6983274B2 (en) 2002-09-23 2006-01-03 Aaron Thomas Patzer Multiple alignment genome sequence matching processor
US20040139305A1 (en) * 2003-01-09 2004-07-15 International Business Machines Corporation Hardware-enabled instruction tracing
DE10350388A1 (de) 2003-10-28 2005-06-02 Micronas Gmbh Bussystem mit wenigen Steuerleitungen
US7418551B2 (en) * 2004-07-06 2008-08-26 Intel Corporation Multi-purpose register cache
US20060271739A1 (en) * 2005-05-24 2006-11-30 Shu-Fang Tsai Management of transfer of commands
ATE469928T1 (de) 2005-10-21 2010-06-15 Basell Polyolefine Gmbh Statistische polypropylencopolymere mit hohen schmelzflussraten für spritzguss- und schmelzblasanwendungen
US7742349B2 (en) * 2007-06-29 2010-06-22 Hynix Semiconductor, Inc. Semiconductor memory device
US8898368B2 (en) * 2007-11-07 2014-11-25 Inphi Corporation Redriven/retimed registered dual inline memory module
WO2009136402A2 (en) 2008-05-07 2009-11-12 Cosmologic Ltd. Register file system and method thereof for enabling a substantially direct memory access
US8139430B2 (en) * 2008-07-01 2012-03-20 International Business Machines Corporation Power-on initialization and test for a cascade interconnect memory system
US8595428B2 (en) * 2009-12-22 2013-11-26 Intel Corporation Memory controller functionalities to support data swizzling
CN103999055B (zh) 2011-12-22 2017-03-01 英特尔公司 访问命令/地址寄存器装置中存储的数据

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205433A1 (en) 2003-04-14 2004-10-14 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20060259711A1 (en) 2005-05-11 2006-11-16 Jong-Hoon Oh Technique to read special mode register
US20110066903A1 (en) 2009-09-15 2011-03-17 International Business Machines Corporation Dynamic random access memory having internal built-in self-test with initialization

Also Published As

Publication number Publication date
DE112011106021T5 (de) 2014-12-04
KR20150010798A (ko) 2015-01-28
WO2013095518A1 (en) 2013-06-27
US9442871B2 (en) 2016-09-13
CN103999055B (zh) 2017-03-01
KR101685435B1 (ko) 2016-12-13
KR20140091610A (ko) 2014-07-21
KR101736225B1 (ko) 2017-05-16
US20150089111A1 (en) 2015-03-26
CN103999055A (zh) 2014-08-20
KR101735555B1 (ko) 2017-05-15
US20160379690A1 (en) 2016-12-29
KR20160106218A (ko) 2016-09-09
US9436632B2 (en) 2016-09-06
US20140372816A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
DE112011106021B4 (de) Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind
DE112012006171B4 (de) On-Chip-Redundanzreparatur für Speichergeräte
DE112016004314T5 (de) Programmierbare zeitgebung von chipinterner terminierung in einem mehrrangigen system
DE112015003397T5 (de) Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten
DE102020104367A1 (de) Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation
DE102018128601A1 (de) Hintergrunddatenauffrischung unter Verwendung eines Systemzeitstempels in Speicherungseinrichtungen
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE112017003334T5 (de) Lastreduzierte nichtflüchtige speicherschnittstelle
DE112006000644B4 (de) Speichereinrichtungskommunikation unter Verwendung eines Systemspeicherbusses
US20170357604A1 (en) System and method for operating a drr-compatible asynchronous memory module
DE112016004243T5 (de) Hybrides Auffrischen mit verborgenen Auffrischungen und externen Auffrischungen
DE112017006599T5 (de) Programmierbare datenstruktur zum wiederholten schreiben in einen speicher
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
CN110059048A (zh) 基于检测传感器数据的阻抗补偿
DE102007031269A1 (de) Verfahren zum Zugreifen auf Steuerregister über eine Speichervorrichtung
DE112017004966T5 (de) Erweiterte anwendung eines fehlerprüfungs- und korrekturcodes in einem speicher
DE102010053097A1 (de) Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling
DE112012005617T5 (de) Speicherung von Daten in Speichermodulpuffern
DE102007031265A1 (de) System und Verfahren zum Ausgeben von Befehlen
TW201635145A (zh) 動態地改變鎖步組態的技術
DE102007060058A1 (de) Verfahren und Vorrichtung zum Steuern eines gemeinschaftlich verwendeten Busses
DE112022000580T5 (de) Reduzierung der Latenzauswirkungen von Fehlerprüfung und Korrektur auf dem Chip (ECC)
DE102016206170B4 (de) Serielle draht-debug-brücke
DE112017007690T5 (de) Verfahren und vorrichtungen zur durchführung einer fehlerdetektion und/oder korrektur in einer speichervorrichtung
DE102020133664A1 (de) Initialisierung und Leistungsausfallisolation eines Speichermoduls in einem System

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012000000

Ipc: G11C0008000000

R130 Divisional application to

Ref document number: 112011106086

Country of ref document: DE

R130 Divisional application to

Ref document number: 112011106086

Country of ref document: DE

Effective date: 20150128

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final