DE112014001736B4 - Ein Primärspeichermodul mit Aufzeichnung des Nutzungsverlaufs und Anwendungsmöglichkeiten des Primärspeichermoduls bei einem Computersystem - Google Patents

Ein Primärspeichermodul mit Aufzeichnung des Nutzungsverlaufs und Anwendungsmöglichkeiten des Primärspeichermoduls bei einem Computersystem Download PDF

Info

Publication number
DE112014001736B4
DE112014001736B4 DE112014001736.1T DE112014001736T DE112014001736B4 DE 112014001736 B4 DE112014001736 B4 DE 112014001736B4 DE 112014001736 T DE112014001736 T DE 112014001736T DE 112014001736 B4 DE112014001736 B4 DE 112014001736B4
Authority
DE
Germany
Prior art keywords
count
primary
processor
volatile
memory module
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
DE112014001736.1T
Other languages
English (en)
Other versions
DE112014001736T5 (de
Inventor
Chun-Wei Chen
Kelvin Shieh
Jim Tsai
Alpus Chen
Conie Chang
Elysee Hsieh
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112014001736T5 publication Critical patent/DE112014001736T5/de
Application granted granted Critical
Publication of DE112014001736B4 publication Critical patent/DE112014001736B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ein Primärspeichermodul, das in einem Computersystem angeordnet ist und mit einem Prozessor in dem Computersystem elektrisch verbunden ist, damit der Prozessor Befehle liest/schreibt kann, wobei das Primärspeichermodul aufweist:- ein flüchtiges Speicher-Array, auf das durch den Prozessor zugreifbar ist,- einen Zugriffszähler zum Überwachen eines ersten Zählwertes, der indikativ für eine Anzahl von selektiven Zugriffen auf das flüchtige Speicher-Array durch den Prozessor ist,- einen Teiler, der mit dem Zugriffszähler verbunden ist, wobei der Teiler ein zweiten Zählwert durch eine Teilung des ersten Zählwertes erzeugt,- ein flüchtiges Register, welches den zweiten Zählwerk überwacht,- eine nicht-flüchtigen Speichervorrichtung, die einen dritten Zählwert, der von dem zweiten Zählwert abgeleitet ist, speichert, und- eine Steuereinheit, die nach einer Unterbrechung der Energiezufuhr für das Primärspeichermodul eine Anzahl von selektiven Zugriffen auf das flüchtige Speicher-Array der Primärspeichermoduls aus dem zweiten Zählwert in dem flüchtigen Register und dem dritten Zählwert in der nicht-flüchtigen Speichervorrichtung bestimmt, und die Anzahl der selektiven Zugriffe auf das Primärspeichermodul ausgibt, wobei die Steuereinheit die Anzahl der selektiven Zugriffe unter Nutzung des dritten Zählwertes bestimmt, der von der nicht-flüchtigen Speichereinheit als höherwertige Bits der Anzahl abgefragt werden, und unter Nutzung des zweiten Zählerwertes, der von dem flüchtigen Register als niederwertige Bits der Anzahl abgefragt wird, bestimmt.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf Primärspeichermodule (auch als Hauptspeichermodule bekannt) und insbesondere auf ein Primärspeichermodul mit Aufzeichnung des Nutzungsverlaufs.
  • Hintergrund der Erfindung
  • Ein Primärspeicher wird in einem Computersystem hauptsächlich bereitgestellt, damit ein Prozessor (CPU) Programme und Daten, die momentan verarbeitet werden, vorübergehend speichern kann, und tritt gemäß Struktur und Funktionalität in zwei Kategorien auf, und zwar Festwertspeicher (ROM) und Direktzugriffspeicher (RAM). Ein Sekundärspeicher speichert sowohl verarbeitete als auch unverarbeitete Programme und Daten, kann die gespeicherten Programme und Daten zurückgeben, auch wenn er nicht mit Strom versorgt wird, und weist üblicherweise eine große Kapazität auf und speichert dauerhaft. Zu Beispielen des Sekundärspeichers gehören Magnetplatte, Magnetband und Compact-Disk.
  • Der Primärspeicher wie beispielsweise ein DRAM wird üblicherweise durch einen Prozess zur Herstellung integrierter Schaltkreise hergestellt. In Bezug auf Einzelheiten des DRAM siehe „Memory technology evolution: an overview of system memory technologies“ Technology brief, neunte Ausgabe, herausgegeben von Hewlett-Packard.
  • Zwar ist ein DRAM in Bezug auf die Anzahl von Lese- und Schreibvorgängen theoretisch keinen Einschränkungen unterworfen, das gilt jedoch in der Praxis nicht. Wie jedes andere industrielle Produkt besitzt ein Primärspeicher keine unbegrenzte Lebensdauer, selbst wenn er sachgerecht verwendet wird. Wenn das Primärspeichermodul genutzt wird, tritt im Allgemeinen eine nachlassende Funktionstüchtigkeit auf, und es weist schließlich verschiedene Fehler auf, es treten bei dem Primärspeichermodul beispielsweise Einzelbitfehler und Mehrbitfehler auf. Nach dem Stand der Technik können üblicherweise Einzelbitfehler erkannt und behoben werden, Mehrbitfehler können jedoch erkannt, aber nicht entsprechend behoben werden. Wenn die Ausführung des Kerncodes des Systems in dem Bereich eines Mehrbitfehlers erfolgt, wird sich das System regelrecht aufhängen.
  • In der US-Patentanmeldung US 2012 / 0 124 273 A1 wird ein System offenbart, bei dem die Beendigungszeitpunkte von Datenspeicheroperationen, die an einer nichtflüchtigen Halbleiter-Speichereinheit ausgeführt werden, gemessen werden. Die nachlassende Funktionstüchtigkeit der Speichereinheit wird unter Verwendung der gemessenen Beendigungszeitpunkte geschätzt, und Lebenszyklus-Managementoperationen werden ausgeführt, um die nachfolgende nachlassende Funktionstüchtigkeit der Speichereinheit gemäß der geschätzten nachlassenden Funktionstüchtigkeit zu beeinflussen. Zum Lebenszyklus-Management können Operationen gehören wie beispielsweise Ausgleich der nachlassenden Funktionstüchtigkeit, Vorhersagen eines Endes der Lebensdauer der Speichereinheit und Stilllegen von funktionsunfähigen Blöcken der Speichereinheit.
  • Außerdem ist aus dem Dokument US 2006 / 0 240 653 A1 eine nichtflüchtige Speicherzelle bekannt, die eine Kernregion, einen ersten Diffusionsbereich und einen zweiten Diffusionsbereich aufweist, wobei die beiden Diffusionsbereiche in der Kernregion ausgebildet sind. Außerdem wird ein Kanalbereich zwischen den beiden Diffusionsbereichen ausgebildet. Dabei wird die Speicherzelle mit einer Diode derart gebildet, dass die Diode die Kernregion mit dem zweiten Diffusionsbereich in Kontakt bringt, so dass ein Floating-Bereich geladen wird, wenn die Diode umgekehrt vorgespannt wird.
  • Zusätzlich beschreibt das Dokument US 2007 / 0233 931 A1 einen Flash-Speicher mit einer Speichersteuerung und einer Mehrzahl von Flash-Speicher-Modulen. Dabei weist jedes Flash-Speicher-Modul eine Speichersteuerung auf, um eine Anzahl von Löschzyklen auszugleichen.
  • Offenbarung der Erfindung
  • Es wird ein Primärspeichermodul, ein entsprechendes Computersystem, ein zugehöriges Verfahren sowie ein Computerprogramm gemäß den unabhängigen Ansprüchen 1, 7, 8 und 9 vorgestellt.
  • Das Verfahren weist vorzugsweise des Weiteren die Schritte auf zum: Teilen des Zählwerts durch einen ersten Parameter, um einen ersten Wert zu erzeugen; und Bereitstellen des Primärspeichermoduls mit einer nichtflüchtigen Speichereinheit zum Speichern des ersten Werts. Es ist stärker bevorzugt, dass das Verfahren des Weiteren den Schritt aufweist zum: Ausführen einer das Primärspeichermodul betreffenden Management-Prozedur durch den Prozessor gemäß dem ersten Wert, um dadurch Speichernutzung und Zuordnungsstrategie zu ändern. Es ist noch stärker bevorzugt, dass das Verfahren des Weiteren die Schritte aufweist zum: erneuten Bereitstellen eines neuen Zählwerts, nachdem der Zähler auf null zurückgesetzt wurde; Teilen des neuen Zählwerts durch den ersten Parameter, um einen neuen ersten Wert zu erzeugen; und Speichern einer Summe aus dem ersten Wert und dem neuen ersten Wert in der nichtflüchtigen Speichereinheit.
  • Das Verfahren weist vorzugsweise des Weiteren die Schritte auf zum: Teilen des Zählwerts durch einen ersten Parameter, um einen ersten Wert zu erzeugen; und Bereitstellen des Primärspeichermoduls mit einem Register zum Speichern des ersten Werts. Es ist stärker bevorzugt, dass das Verfahren des Weiteren die Schritte aufweist zum: Teilen des ersten Werts durch einen zweiten Parameter, um einen zweiten Wert zu erzeugen; und Bereitstellen des Primärspeichermoduls mit einer nichtflüchtigen Speichereinheit zum Speichern des zweiten Werts. Es ist noch stärker bevorzugt, dass das Verfahren des Weiteren die Schritte aufweist zum: Laden des zweiten Werts in das Register durch die nichtflüchtige Speichereinheit; und Bereitstellen des Primärspeichermoduls mit einer Steuereinheit zum Lesen des zweiten Werts in dem Register und Bereitstellen des zweiten Werts dem Prozessor. Es ist noch stärker bevorzugt, dass das Verfahren des Weiteren den Schritt aufweist zum: Ausführen einer das Primärspeichermodul betreffenden Management-Prozedur durch den Prozessor gemäß dem zweiten Wert, um dadurch Speichernutzung und Zuordnungsstrategie zu ändern. Es ist noch stärker bevorzugt, dass das Verfahren des Weiteren die Schritte aufweist zum: erneuten Bereitstellen eines neuen Zählwerts nachdem der Zähler auf null zurückgesetzt wurde; Teilen des neuen ersten Zählwerts durch den ersten Parameter, um einen neuen ersten Wert zu erzeugen; Speichern des neuen ersten Werts in dem Register; Teilen des neuen ersten Werts durch den zweiten Parameter, um einen neuen zweiten Wert zu erzeugen; und Speichern einer Summe aus dem zweiten Wert und dem neuen zweiten Wert in der nichtflüchtigen Speichereinheit. Es ist noch stärker bevorzugt, dass das Verfahren die Schritte aufweist zum: Laden einer Summe aus dem zweiten Wert und dem neuen zweiten Wert in das Register durch die nichtflüchtige Speichereinheit; und Bereitstellen des Primärspeichermoduls mit einer Steuereinheit zum Lesen einer Summe aus dem neuen zweiten Wert und dem zweiten Wert in dem Register und Bereitstellen der Summe dem Prozessor.
  • Gemäß einem vierten Aspekt wird ein Computerprogrammprodukt bereitgestellt, das Computerprogrammcode aufweist, der in einem computerlesbaren Medium gespeichert ist, um zu bewirken, dass das Computersystem, wenn er in ein Computersystem geladen und darin ausgeführt wird, alle Schritte des oben beschriebenen Verfahrens ausführt.
  • Alternativ wird gemäß einem fünften Aspekt ein Primärspeichermodul bereitgestellt, das in einem Computersystem angeordnet ist und mit einem Prozessor in dem Computersystem elektrisch verbunden ist, damit der Prozessor Befehle lesen/schreiben kann, wobei das Primärspeichermodul aufweist: einen Zähler zum Bereitstellen eines Zählwerts, der angibt, wie oft ein Bitfehler in dem Primärspeichermodul aufgetreten ist.
  • Alternativ wird gemäß einem sechsten Aspekt ein Computersystem bereitgestellt, das aufweist: einen Prozessor; und das vorhergehende Primärspeichermodul, das mit dem Prozessor elektrisch verbunden ist.
  • Alternativ wird gemäß einem siebten Aspekt ein Verfahren bereitgestellt zum Aufzeichnen eines Nutzungsverlaufs eines Primärspeichermoduls, wobei das Primärspeichermodul in einem Computersystem angeordnet und mit einem Prozessor in dem Computersystem elektrisch verbunden ist, damit der Prozessor Befehle lesen/schreiben kann, wobei das Verfahren die Schritte aufweist zum: Bereitstellen des Primärspeichermoduls mit einem Zähler zum Bereitstellen eines Zählwerts, der angibt, wie oft in dem Primärspeichermodul ein Bitfehler aufgetreten ist. Das Verfahren weist vorzugsweise des Weiteren den Schritt auf zum: Ausführen einer das Primärspeichermodul betreffenden Management-Prozedur durch den Prozessor gemäß des Zählwerts, um dadurch Speichernutzung und Zuordnungsstrategie zu ändern.
  • Üblicherweise kann kein Benutzer kurz vor dem Auftreten eines Schadens vorausschauend wissen, ob der Lebensstatus eines Primärspeichermoduls möglicherweise günstig ist. Selbst bei der neuesten System-Chipsatz-Technologie kann der Lebensstatus des Primärspeichermoduls nicht ermittelt werden, um den Benutzer daran zu erinnern, das Primärspeichermodul rechtzeitig zu wechseln. Der Benutzer entdeckt selten, dass das Primärspeichermodul unbrauchbar geworden ist, bevor das Primärspeichermodul ausfällt und bewirkt, dass sich das System aufhängt (oder bevor der System-Chipsatz den Betrieb des Primärspeichermoduls sperrt). Das bedeutet, es wird nach dem Stand der Technik kein Mechanismus zum Aufzeichnen des Nutzungsverlaufs oder des „Alters“ eines Primärspeichers bereitgestellt. Folglich kann das System keinen entsprechenden Management- und Analysemechanismus bereitstellen.
  • Angesichts dessen stellt die vorliegende Erfindung in einem ihrer Aspekte ein Primärspeichermodul mit einem Aufzeichnungsmechanismus zum Aufzeichnen des Nutzungsverlaufs des Primärspeichermoduls bereit, so dass ein Prozessor oder ein Systemadministrator das „Alter“ des Primärspeichermoduls entsprechend ermitteln und dadurch feststellen kann, ob der Primärspeicher „jung“ oder „alt“ ist, um eine entsprechende Bewirtschaftungsmaßnahme auszuführen, darunter Optimieren der Speicherzuordnung, die durch das Betriebssystem ausgeführt wird, Einstellen der Betriebsart des Primärspeichermoduls und Senden einer Warnnachricht an den Benutzer. Das Primärspeichermodul ist nicht notwendigerweise problematisch, wenn es „jung“ oder „alt“ ist. Die Wahrscheinlichkeit einer Funktionsstörung ist jedoch im Allgemeinen bei einem „alten“ Primärspeicher höher als bei einem „jungen“ Primärspeicher.
  • Die vorliegende Erfindung stellt in einem anderen ihrer Aspekte ein Primärspeichermodul mit einem lebenslangen Aufzeichnungsmechanismus bereit, damit nicht nur der Lebensdauer-Nutzungsverlauf des Primärspeichermoduls ohne Betriebsunterbrechung aufgezeichnet werden kann, sondern auch das Primärspeichermodul lebenslang und somit unvergänglich begleitet werden kann, selbst wenn bei dem Primärspeichermodul eine Unterbrechung der Stromversorgung stattgefunden hat oder es bei unterschiedlichen Computersystemen ersetzt und neu installiert wurde.
  • Die folgende Beschreibung, die angefügten Ansprüche und die Ausführungsformen der vorliegenden Erfindung erläutern des Weiteren die Merkmale und Vorteile der vorliegenden Erfindung.
  • Figurenliste
  • Eine bevorzugte Ausführungsform der Erfindung wird im Folgenden lediglich beispielhaft und unter Bezugnahme die folgenden Zeichnungen beschrieben:
    • 1 ist ein Blockschaltplan eines Computersystems gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 2 ist ein Blockschaltplan eines Primärspeichermoduls gemäß einer Ausführungsform der vorliegenden Erfindung; und
    • 3 ist ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Genaue Beschreibung der bevorzugten Ausführungsformen
  • Ein Fachmann wird erkennen, dass die vorliegende Erfindung als ein Computersystem, ein Verfahren oder ein Computerprogrammprodukt verkörpert sein kann. Demzufolge kann die vorliegende Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, residente Software, Mikro-Code usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier sämtlich allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Die vorliegende Erfindung kann des Weiteren die Form eines Computerprogrammprodukts annehmen, das in einem beliebigen Ausdrucksmedium verkörpert wird, das computernutzbaren Programmcode aufweist, der in dem Medium ausgeführt wird.
  • Jede Kombination aus einem oder mehreren durch einen Computer nutzbaren oder computerlesbaren Medien kann genutzt werden. Bei dem durch einen Computer nutzbaren oder computerlesbaren Medium kann es sich z.B. um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, -vorrichtung oder - einheit oder Ausbreitungsmedium handeln, es ist jedoch nicht darauf beschränkt. Zu spezifischeren Beispielen (eine nicht erschöpfende Liste) des computerlesbaren Mediums würde Folgendes gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Festwertspeicher (CD-ROM), eine optische Speichereinheit, Übertragungsmedien wie z.B. jene, die das Internet oder ein Intranet unterstützen, oder eine magnetische Speichereinheit. Es wird angemerkt, dass es sich bei dem durch den Computern nutzbaren oder computerlesbaren Medium sogar um Papier oder ein anderes geeignetes Medium handeln kann, auf das das Programm gedruckt ist, da das Programm beispielsweise durch optisches Abtasten des Papiers oder des anderen Mediums elektronisch erfasst, dann kompiliert, interpretiert oder bei Bedarf andersartig auf geeignete Weise verarbeitet und dann in einem Computerspeicher gespeichert werden kann. Im Kontext dieses Dokuments kann ein durch einen Computer nutzbares oder computerlesbares Medium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten, speichern, übertragen, ausbreiten oder transportieren kann. Das durch einen Computer nutzbare Medium kann ein sich ausbreitendes Datensignal mit computerlesbarem Programmcode enthalten, der darin entweder im Basisband oder als Teil einer Trägerwelle verkörpert wird. Der durch einen Computer nutzbare Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, darunter drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, Hochfrequenz- (HF-) Medien usw., ohne darauf beschränkt zu sein.
  • Computerprogrammcode zum Ausführen von Operationen der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer oder Server mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Die vorliegende Erfindung wird nachfolgend unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen.
  • Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, der Befehle enthält, die die Funktion/Wirkung umsetzen, die in dem Block/den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
  • Computerprogrammbefehle können außerdem in einen Computer oder andere programmierbare Datenverarbeitungsvorrichtungen geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, bereitstellen.
  • In den 1 bis 3 sind Computersysteme, Verfahren und Computerprogrammprodukte als strukturelle oder funktionale Blockdarstellungen oder Prozess-Ablaufpläne gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung dargestellt. Der Ablaufplan und die Blockdarstellungen in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockdarstellungen ein Modul, Segment oder Abschnitt von Code repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Es sollte außerdem angemerkt werden, dass bei einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen möglicherweise nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockdarstellungen und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockdarstellungen und/oder der Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
  • 1 veranschaulicht eine Hardwarestruktur eines Computersystems 100 bei einer Ausführungsform. Das Computersystem 100 weist eine Stromversorgung 102, eine Zentraleinheit (CPU) 104, ein Primärspeichermodul 106, ein Sekundärspeichermodul 108 (z.B. ein Festplattenlaufwerk, eine Compact-Disk, ein Halbleiterdatenträger (SSD) oder jede andere Massenspeichereinheit) und einen Lüfter 110 auf.
  • Andere grundsätzliche Strukturen und Komponenten des Computersystems 100 sind mit herkömmlichen Strukturen und Komponenten eines typischen Personal Computers oder Servers identisch wie beispielsweise IBM's System X, BladeCenter oder eServer (IBM, System X, BladeCenter und eServer sind Handelsmarken oder registrierte Handelsmarken der International Business Machine Corporation) und daher werden sie zur Einfachheit nicht genau beschrieben.
  • Bei dieser Ausführungsform hat das Primärspeichermodul 106 die Form eines Dual-in-line-Speichermoduls (DIMM), einem Fachmann ist jedoch klar, dass die vorliegende Erfindung nicht darauf beschränkt ist. Das DIMM 106 ist an einem Einschub (nicht gezeigt) auf einer Hauptplatine angebracht und so eingerichtet, dass es mittels eines Chipsatzes (nicht gezeigt) mit der CPU 104 Daten austauschen und Lese/Schreibbefehle an die CPU 104 bereitstellen kann. Weitere Einzelheiten der Grundstruktur des DIMM 106 werden in der Beschreibung eines herkömmlichen DIMM in der US-Patentanmeldung 2012/0079314 offenbart, die von dem Anmelder dieser Patentanmeldung eingereicht wurde und deswegen zur Einfachheit nicht beschrieben wird. Die Unterschiede zwischen dem DIMM 106 in den Ausführungsformen der vorliegenden Erfindung und dem herkömmlichen DIMM nach dem Stand der Technik werden in 2 veranschaulicht und nachfolgend genauer beschrieben.
  • Bei der in 2 dargestellten Ausführungsform weist das DIMM 106 ein Steuereinheit- und Statusregister 202, einen Zugriffzähler 204, Teiler 206, 208, ein Register 210, eine nichtflüchtige Speichereinheit 212 und einen Fehlerzähler 214 auf. Nach dem Durchsehen der nachfolgenden Beschreibung wird einem Fachmann klar, dass ein Teil der in 2 gezeigten Komponenten bei Bedarf weggelassen werden kann, d.h., nicht alle in 2 gezeigten Komponenten sind zum Umsetzen der vorliegenden Erfindung erforderlich. Des Weiteren weist das DIMM 106 in einer Ausführungsform der vorliegenden Erfindung ebenso wie das herkömmliche DIMM ein Array aus Speicherzellen (nicht in 2 gezeigt) zum Speichern von Daten auf.
  • Das Steuereinheit- und Statusregister 202 ist in dem Primärspeichermodul 106, auch bekannt als on-DIMM-Steuereinheit- und Status-Register (oder Steuerlogik- und Status-Register) angeordnet, und ist so eingerichtet, dass es die grundlegenden Operationen des DIMM 106 steuert. Das Steuereinheit- und Statusregister 202 hat eine interne Funktion und eine externe Funktion. Bezüglich seiner internen Funktion tauscht das Steuereinheit- und Statusregister 202 Daten mit den anderen Komponenten (darunter die DRAM-Speicherzellen) des DIMM 106 aus. Bezüglich seiner externen Funktion tauscht das Steuereinheit- und Statusregister 202 Daten mit einem Chipsatz (nicht gezeigt) aus, der sich auf der Hauptplatine befindet, um des Weiteren mit der CPU 104 Daten auszutauschen. Das Steuereinheit- und Statusregister 202 kann die Form eines herkömmlichen zugelassenen SDRAM-Moduls oder eines modernen Speicherpuffer-Moduls aufweisen und seine Einzelheiten sind in „Memory technology evolution: an overview of system memory technologies“, Technology brief, neunte Ausgabe, herausgegeben von Hewlett Packard, offenbart und in „6400/6402 Advanced Memory Buffer Datasheet“, herausgegeben von Intel, offenbart.
  • Die anderen Komponenten des DIMM 106 werden in dem Prozessablauf eines Verfahrens veranschaulicht, das nachfolgend beschrieben wird.
  • Der Prozessablauf des Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung wird in 3 veranschaulicht und nachfolgend beschrieben.
  • Schritt 300: die CPU 104 greift auf das DIMM 106 zu, indem Daten in die Speicherzellen des DIMM 106 geschrieben oder von diesen gelesen werden. Die CPU 104 greift im Allgemeinen auf das DIMM 106 bei einer Frequenz von 1.333 MHz oder größer zu.
  • Schritt 302: durch Erkennen einer Anforderung, die durch die CPU 104 erfolgt, zum Zugreifen auf das DIMM 106, zählt der Zugriffzähler 204 im Schritt 300, wie oft die CPU 104 auf das DIMM 106 zugreift. In Abhängigkeit von der beteiligten Anwendung zählt der Zugriffzähler 204 lediglich die Anzahl von Lesevorgängen, lediglich die Anzahl von Schreibvorgängen oder die Gesamtzahl von Lese- und Schreibvorgängen, wobei die vorliegende Erfindung nicht darauf beschränkt ist. Wie ein herkömmlicher Zähler auf der Grundlage einer Hardwareschaltungsstruktur weist der Zugriffzähler 204 der vorliegenden Erfindung einen oberen Grenzwert der Zählwerte auf beginnt bei einen erneuten Zählvorgang bei null, sobald ein Zählwert den oberen Grenzwert der Zählwerte übersteigt.
  • Schritt 304: wie oben beschrieben greift die CPU 104 auf das DIMM 106 bei einer Frequenz von wenigstens 1 MHz zu und daher ist verständlicherweise der Zählwert, der durch den Zugriffzähler 204 erzeugt wird, enorm groß. Verständlicherweise ist ein Verarbeiten und Speichern eines enorm großen numerischen Werts selten effizient. Deswegen liest der Teiler 206 vorzugsweise (und optional) den Zählwert des Zugriffzählers 204 und teilt den Zählwert durch einen Divisionsparameter (beispielsweise 1.333 Millionen (M)), um einen Wert zu erzeugen, der in dem Register 210 gespeichert wird und dann für eine nachfolgende Verarbeitung bereit ist, bei der z.B. das Steuereinheit- und Statusregister 202 auf ihn zugreift und er dadurch zu der CPU 104 gesendet wird.
  • Sobald bei dieser Ausführungsform der Zählwert des Zugriffzählers 204 auf einen Divisionsparameter (wie beispielsweise 1.333 Millionen) erhöht wird, der für den Teiler 206 eingestellt ist, erhöht der Teiler 206 den im Register 210 gespeicherten Wert im Schritt 304 um 1. Zwar erreicht der Zählwert des Zugriffzählers 204 den oberen Grenzwert, und somit beginnt dieser einen erneuten Zählvorhang bei null, der Wert in dem Register 210 erhöht sich jedoch eher kumulativ anstelle zu null zurückzukehren, wodurch der Nutzungsverlauf des DIMM 106 genau aufgezeichnet wird. Des Weiteren ist der Divisionsparameter, der durch den Teiler 206 eingestellt wird, bei Bedarf konfigurierbar.
  • Das Register 210 hat im Allgemeinen die Form einer flüchtigen Speichereinheit und schreibt und liest Daten schneller, als das bei der nichtflüchtigen Speichereinheit 212 erfolgt. Im Fall einer Stromunterbrechung (beispielsweise wenn das System abgeschaltet wird), gehen jedoch die in dem Register 210 gespeicherten Daten verloren. Um zu verhindern, dass dieses Problem eintritt, werden die Daten des Registers 210 in die nichtflüchtige Speichereinheit 212 kopiert und darin gespeichert. Somit gehen selbst dann, wenn die Daten des Registers 210 infolge einer Stromunterbrechung verloren gehen, die in der nichtflüchtigen Speichereinheit 212 gespeicherten Daten nicht verloren. Nachdem die Stromversorgung wiederhergestellt wurde, geht der Prozessablauf wieder durch die Schritte 300 bis 304; somit werden einen Zählerwert betreffende Daten wieder in dem Register 210 gespeichert und in die nichtflüchtige Speichereinheit 212 kopiert und darin gespeichert, und folglich wird die kumulative Erhöhung an dem Wert, der zuvor in der nichtflüchtigen Speichereinheit 212 gespeichert wurde, fortgesetzt.
  • Schritt 306: bei der nichtflüchtigen Speichereinheit 212 (wie beispielsweise ein Flash-Speicher) ist die Anzahl von Schreibvorgängen im Allgemeinen begrenzt, und es ist daher vorzuziehen, ein häufiges Schreiben von Daten in die nichtflüchtige Speichereinheit 212 zu vermeiden. Bei einer Ausführungsform liest der Teiler 208 einen Wert des Registers 210 und greift auf diesen zu und teilt den Wert durch einen weiteren Divisionsparameter (der ebenfalls bei Bedarf konfigurierbar ist), um einen weiteren Wert zu erzeugen und schreibt den weiteren Wert in die nichtflüchtige Speichereinheit 212. Sobald der Wert des Registers 210 einen Divisionsparameter erreicht (beispielsweise hundert oder tausend), der durch den Teiler eingestellt wird, erhöht der Teiler 208 den in der nichtflüchtigen Speichereinheit 212 gespeicherten Wert um 1. Verständlicherweise müssen nur dann, wenn die die Häufigkeit des Zugreifens der CPU 104 auf das DIMM 106 das Produkt aus dem Divisionsparameter des Teilers 206 und dem Divisionsparameter des Teilers 208 übersteigt, die Daten in dem nichtflüchtigen Speichereinheit 212 aktualisiert (d.h. um 1 erhöht) werden, wodurch vermieden wird, dass Daten zu häufig in die nichtflüchtige Speichereinheit 212 geschrieben werden.
  • Bei einer weiteren Ausführungsform wird der Teiler 208 nicht benötigt, die nichtflüchtige Speichereinheit 212 ist jedoch mit einer Zurückschreibezeit konfiguriert, d.h., nachdem ein Wert des Registers 210 in die nichtflüchtige Speichereinheit 212 geschrieben wurde, muss die Zurückschreibezeit ablaufen, damit Daten wieder in die nichtflüchtige Speichereinheit 212 geschrieben werden können. Während der Zurückschreibezeit kann auf das Primärspeichermodul 106 durch die CPU 104 wie üblich zugegriffen werden, wohingegen das Register 210 entsprechend aktualisiert werden kann (Schritte 300 bis 304). Somit kann, nachdem die Zurückschreibezeit abgelaufen ist und ein Schreiben somit zulässig ist, das Register 210 den neuesten Wert in die nichtflüchtige Speichereinheit 212 schreiben, wodurch vermieden wird, dass Daten zu häufig in die nichtflüchtige Speichereinheit 212 geschrieben werden.
  • Schritt 308: die nichtflüchtige Speichereinheit 212 führt wahlweise eine Datensicherung oder andere Datenschutzoperationen an den Daten (Wert) aus, die vom Register 210 geschrieben werden, um dadurch Beschädigung oder Verlust von Daten zu vermeiden und einen Statusbericht über den aktuellen Nutzungsstatus der nichtflüchtigen Speichereinheit 212 bereitzustellen. Zugehörige Einzelheiten sind in herkömmlichen nichtflüchtigen Speichereinheiten verkörpert und werden der Kürze halber hier nicht beschrieben.
  • Schritt 310: wie oben beschrieben hat das Register 210 üblicherweise die Form einer flüchtigen Speichereinheit, und es schreibt und liest Daten schneller, als das bei der nichtflüchtigen Speichereinheit 212 erfolgt. Es ist deswegen für das Register 210 vorteilhaft, Zählwertdaten dem Steuereinheit- und Status-Register 202 bereitzustellen.
  • Zu diesem Zweck führt die nichtflüchtige Speichereinheit 212 bei einer Ausführungsform eine Selbstprüfung aus, sobald das System gebootet wird, um zu ermitteln, ob die nichtflüchtige Speichereinheit 212 einen gültigen Wert aufweist (d.h. den Wert, der im Schritt 306 gespeichert wurde). Wenn die Ermittlung positiv ist, schreibt die nichtflüchtige Speichereinheit 212 beispielsweise ihren Wert zurück in das Register 210 und behandelt den Wert als das höchstwertige Bit (MSB) des Registers 210.
  • Nachdem das System neu gestartet wurde, wird von der CPU 104 auf das Primärspeichermodul 106 zugegriffen, wohingegen das Register 210 entsprechend aktualisiert wird (Schritte 300 bis 304). Zu diesem Zeitpunkt wirkt der in dem Register 210 gespeicherte Wert als das niedrigstwertige Bit (LSB) (siehe Schritt 304). Dann liest das Steuereinheit- und Statusregister 202 das höchstwertige Bit (MSB) und das niedrigstwertige Bit (LSB) gemeinsam von dem Register 210 und stellt sie der CPU 104 bereit. Dem Fachmann ist klar, dass bei dieser Ausführungsform das höchstwertige Bit (MSB) in dem Register 210 die Häufigkeit repräsentiert, wie oft von der CPU 104 jemals auf das DIMM 106 zugegriffen wurde, bevor das System bei diesem vorliegenden Fall gestartet wird, wohingegen das niedrigstwertige Bit (LSB) in dem Register 210 die Häufigkeit repräsentiert, wie oft von der CPU 104 jemals auf das DIMM 106 zugegriffen wurde, nachdem das System in diesem vorliegenden Fall gestartet wurde. Somit erlangt die CPU 104 einen vollen und vollständigen Zugriffsverlauf des DIMM 106, wenn das höchstwertige Bit (MSB) und das niedrigstwertige Bit (LSB) gemeinsam gelesen werden.
  • System-Management (Schritt 312):, wenn sich wie oben beschrieben das höchstwertige Bit (MSB) und das niedrigstwertige Bit (LSB) in dem Register 210 befinden, wird die CPU 104 in Echtzeit über die Häufigkeit informiert, wie oft auf das DIMM 106 zugegriffen wurde, und sie führt des Weiteren eine entsprechende Management-Prozedur aus, die das DIMM 106 betrifft. Die Management-Prozedur, die durch die CPU 104 ausgeführt wird, wird entweder von dem Betriebssystem oder Anwendungsprogrammen unter dem Betriebssystem oder von Einrichtungen der System-Firmware bereitgestellt. Ausführungsformen der Management-Prozedur werden nachfolgend in den Schritten 314, 316 und 318 beschrieben, einem Fachmann ist jedoch klar, dass die Schritte 314, 316, 318 lediglich dem Zweck der Veranschaulichung dienen. Des Weiteren fallen alle Anwendungsmöglichkeiten, die an der Aufzeichnung des Nutzungsverlaufs bei dem DIMM 106 beteiligt sind, in den Umfang der vorliegenden Erfindung.
  • Speicherzuordnung (Schritt 314): bei dieser Ausführungsform optimiert die CPU 104 die Speicherzuordnung, die durch das Betriebssystem oder Anwendungsprogramme ausgeführt wird, gemäß der Häufigkeit, wie oft jemals auf das DIMM 106 zugegriffen wurde. Die CPU 104 stellt beispielsweise fest, dass die Häufigkeit, wie oft jemals auf das DIMM 106 zugegriffen wurde, übermäßig groß ist (d.h., bei dem DIMM 106 handelt es sich um einen „alten“ Primärspeicher) und führt deswegen eine Management-Prozedur aus, um den Speicher zu verkleinern, der dem Betriebssystem oder einem spezifischen Anwendungsprogramm zugeordnet wird, d.h., die Speichernutzung des Betriebssystems oder eines spezifischen Anwendungsprogramms wird eingeschränkt, wodurch ferner die Häufigkeit vermindert wird, wie oft die CPU 104 auf das DIMM 106 zugreift, um die Häufigkeit zu vermindern, mit der von der CPU 104 auf das DIMM 106 zugegriffen wird (d.h. Verlangsamen des Alterns des DIMM 106). In Bezug auf weitere Einzelheiten der Speicherzuordnung siehe „Memory Usage Performance Guidelines: Tips for Allocating Memory“, herausgegeben von Apple.
  • Betriebskosten (Schritt 316): bei dieser Ausführungsform kann die Häufigkeit, wie oft jemals auf das DIMM 106 zugegriffen wurde, speziell aufgezeichnet werden und somit als ein messbarer Quantisierungsparameter behandelt und beim Zugreifen auf die „Betriebskosten“ des DIMM 106 verwendet werden. Zum Optimieren der Betriebskosten des Systems in ihrer Gesamtheit ist es des Weiteren machbar, die Betriebsart des DIMM 106 einzustellen (z.B. Vermindern oder Vergrößern der Zugriffshäufigkeit des DIMM 106). Die Betriebsosten von Speichermodulen werden in der Taiwanesischen Patentanmeldung 100148413 mit dem Titel MEMORY CONTROL METHOD AND COMPUTER SYSTEM FOR PERFORMING THE SAME offenbart und durch den Anmelder dieser Patentanmeldung eingereicht und deswegen hier der Kürze halber nicht beschrieben.
  • Warnnachricht (Schritt 318): bei einer weiteren Ausführungsform vergleicht die CPU 104 die Häufigkeit, wie oft jemals auf das DIMM 106 zugegriffen wurde, mit einem Schwellenwert; wenn die Häufigkeit des Zugreifens den Schwellenwert übersteigt, wird das DIMM 106 als ein „altes“ Primärspeichermodul betrachtet, und die CPU 104 führt die Anwendungsprogramme aus, um eine Warnnachricht an den Benutzer zu senden (Schritt 318), um den Benutzer daran zu erinnern, das DIMM 106 vorausschauend zu wechseln.
  • Zusätzlich zum Aufzeichnen der Häufigkeit, wie oft jemals von der CPU 104 auf das DIMM 106 zugegriffen wurde, und zu ihrer Verwendung als ein Referenzwert für den Nutzungsverlauf des DIMM 106 wie in 3 dargestellt und in der vorhergehenden Ausführungsform beschrieben, beinhaltet eine weitere Ausführungsform der vorliegenden Erfindung ein Verwenden des Fehlerzählers 204 zum Zählen der Häufigkeit, wie oft jemals in dem DIMM 106 ein Fehler aufgetreten ist, und ein Verwenden des Steuereinheit- und Statusregisters 202 des DIMM 106, um Fehler an das Betriebssystem oder die Firmware zu melden. Bei dieser Ausführungsform gehören zu Fehlern des DIMM 106 Einzelbitfehler und Mehrbitfehler. Das Vorhandensein eines Einzelbitfehlers bedeutet nicht notwendigerweise, dass das DIMM 106 schadhaft ist und nicht mehr funktioniert. Das DIMM 106 ist im Allgemeinen in der Lage, Daten automatisch wiederherzustellen, um einen Einzelbitfehler zu korrigieren. Im Gegensatz dazu bedeutet das Vorhandensein eines Mehrbitfehlers gewöhnlich, dass das DIMM 106 so stark beschädigt ist, dass es funktionsunfähig ist und deswegen sofort ersetzt werden muss.
  • Verständlicherweise ist die akkumulierte Anzahl von Fehlern, die bei dem DIMM 106 aufgetreten sind, wenn das DIMM 106 alt ist, größer als in dem Fall, bei dem das DIMM 106 neu ist. Daher ist wie im Fall der oben beschriebenen Zugriffshäufigkeit der CPU 104 die akkumulierte Anzahl von Fehlern, die bei dem DIMM 106 aufgetreten sind, ebenfalls eine Angabe des Nutzungsverlaufs oder des „Alters“ des DIMM 106.
  • Wie der Zugriffzähler 204 kann der Fehlerzähler 214 in Verbindung mit dem Register 210 und der nichtflüchtigen Speichereinheit 212 betrieben werden, um insbesondere alle Probleme auszuschließen, die aus dem Datenverlust resultieren, den ein Neubeginn eines Zählvorganges bei null des Zählers und einer Stromunterbrechung zur Folge hat. Im Unterschied zum Zugriffzähler 204 kann der Fehlerzähler 214 gewöhnlich ohne die Teiler 206, 208 betrieben werden, da die Anzahl von Fehlern, die bei dem DIMM 106 jemals aufgetreten sind, gewöhnlich viel kleiner ist als die Häufigkeit, wie oft jemals von der CPU 103 auf das DIMM 106 zugegriffen wurde.
  • Vorteile der Ausführungsformen der vorliegenden Erfindung sind folgende: erstens messen der Zugriffzähler 204 und der Fehlerzähler 214 den Betrieb des DIMM 106 direkt, um ein Messergebnis zu erzielen, das viel genauer ist als ein durch herkömmliche Möglichkeiten zum indirekten Bewerten des Betriebs des DIMM 106; zweitens ermöglicht die vorliegende Erfindung anders als nach dem Stand der Technik, dass ein System auf das Ergebnis einer Messung Bezug nimmt, die durch den Zugriffzähler 204 und den Fehlerzähler 214 ausgeführt wird, um administrative Operationen auszuführen, darunter Optimieren der Speicherzuordnung, die durch das Betriebssystem ausgeführt wird, Einstellen der Betriebsart des Primärspeichermoduls und Senden einer Warnnachricht an den Benutzer, um die Zuverlässigkeit des Systems sicherzustellen.

Claims (9)

  1. Ein Primärspeichermodul, das in einem Computersystem angeordnet ist und mit einem Prozessor in dem Computersystem elektrisch verbunden ist, damit der Prozessor Befehle liest/schreibt kann, wobei das Primärspeichermodul aufweist: - ein flüchtiges Speicher-Array, auf das durch den Prozessor zugreifbar ist, - einen Zugriffszähler zum Überwachen eines ersten Zählwertes, der indikativ für eine Anzahl von selektiven Zugriffen auf das flüchtige Speicher-Array durch den Prozessor ist, - einen Teiler, der mit dem Zugriffszähler verbunden ist, wobei der Teiler ein zweiten Zählwert durch eine Teilung des ersten Zählwertes erzeugt, - ein flüchtiges Register, welches den zweiten Zählwerk überwacht, - eine nicht-flüchtigen Speichervorrichtung, die einen dritten Zählwert, der von dem zweiten Zählwert abgeleitet ist, speichert, und - eine Steuereinheit, die nach einer Unterbrechung der Energiezufuhr für das Primärspeichermodul eine Anzahl von selektiven Zugriffen auf das flüchtige Speicher-Array der Primärspeichermoduls aus dem zweiten Zählwert in dem flüchtigen Register und dem dritten Zählwert in der nicht-flüchtigen Speichervorrichtung bestimmt, und die Anzahl der selektiven Zugriffe auf das Primärspeichermodul ausgibt, wobei die Steuereinheit die Anzahl der selektiven Zugriffe unter Nutzung des dritten Zählwertes bestimmt, der von der nicht-flüchtigen Speichereinheit als höherwertige Bits der Anzahl abgefragt werden, und unter Nutzung des zweiten Zählerwertes, der von dem flüchtigen Register als niederwertige Bits der Anzahl abgefragt wird, bestimmt.
  2. Das Primärspeichermodul nach Anspruch 1, wobei der Teiler ein erster Teiler ist, und wobei das Primärspeichermodul zusätzlich einen zweiten Teiler aufweist, der mit dem Register verbunden ist und zum Erzeugen des dritten Zählwertes konfiguriert ist, um den dritten Zählwert durch eine Teilung des zweiten Zählwertes zu erzeugen.
  3. Das Primärspeichermodul nach Anspruch 1 oder 2, ferner aufweisend: einen Fehlerzähler, der eine Fehleranzahl an Bitfehlern in dem Primärspeichermodul erkennt.
  4. Das Primärspeichermodul einem der vorangegangenen Ansprüche, wobei das flüchtige Speicher-Array ein Speicher-Array mit wahlfreiem Zugriff (DRAM) aufweist.
  5. Das Primärspeichermodul nach einem der vorangegangenen Ansprüche, wobei der selektive Zugriff einen Lesezugriff oder einen Schreibzugriff aufweist
  6. Das Primärspeichermodul nach einem der vorangegangenen Ansprüche, zusätzlich einem Zeitgeber aufweisend, wobei das Primärspeichermodul eine Frequenz von Updates auf die nicht-flüchtige Speichereinheit durch Bezugnahme auf den Zeitgeber limitiert.
  7. Ein Computersystem, das aufweist: einen Prozessor; und ein Primärspeichermodul nach einem der Ansprüche 1 bis 6, das mit dem Prozessor elektrisch verbunden ist.
  8. Ein Verfahren zum Aufzeichnen eines Nutzungsverlaufs eines Primärspeichermoduls gemäß einem der Ansprüche 1 bis 6, wobei das Primärspeichermodul in einem Computersystem angeordnet ist und mit einem Prozessor in dem Computersystem elektrisch verbunden ist, damit der Prozessor Befehle liest und/oder schreibt.
  9. Ein Computerprogramm, das Computerprogrammcode aufweist, der in einem computerlesbaren Medium gespeichert ist, um zu bewirken, dass ein Computersystem alle Schritte eines Verfahrens nach Anspruch 8 ausführt, wenn er in das Computersystem geladen und darin ausgeführt wird.
DE112014001736.1T 2013-03-29 2014-03-14 Ein Primärspeichermodul mit Aufzeichnung des Nutzungsverlaufs und Anwendungsmöglichkeiten des Primärspeichermoduls bei einem Computersystem Active DE112014001736B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
TW102111378A TWI570738B (zh) 2013-03-29 2013-03-29 具有使用歷程記錄的主記憶體模組以及此主記憶體模組於電腦系統之應用
TW102111378 2013-03-29
TWTW-102111378 2013-03-29
PCT/IB2014/059790 WO2014155228A1 (en) 2013-03-29 2014-03-14 A primary memory module with a record of usage history and applications of the primary memory module to a computer system

Publications (2)

Publication Number Publication Date
DE112014001736T5 DE112014001736T5 (de) 2015-12-17
DE112014001736B4 true DE112014001736B4 (de) 2022-06-09

Family

ID=51622013

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014001736.1T Active DE112014001736B4 (de) 2013-03-29 2014-03-14 Ein Primärspeichermodul mit Aufzeichnung des Nutzungsverlaufs und Anwendungsmöglichkeiten des Primärspeichermoduls bei einem Computersystem

Country Status (5)

Country Link
US (2) US9501427B2 (de)
DE (1) DE112014001736B4 (de)
GB (1) GB2527010B (de)
TW (1) TWI570738B (de)
WO (1) WO2014155228A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761919B2 (en) * 2018-02-23 2020-09-01 Dell Products, L.P. System and method to control memory failure handling on double-data rate dual in-line memory modules
US10705901B2 (en) 2018-02-23 2020-07-07 Dell Products, L.P. System and method to control memory failure handling on double-data rate dual in-line memory modules via suspension of the collection of correctable read errors
US20230074898A1 (en) * 2021-09-09 2023-03-09 Toyota Motor North America, Inc. Transport limitation for data reads

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060240653A1 (en) 2002-08-30 2006-10-26 Micron Technology, Inc. One-device non-volatile random access memory cell
US20070233931A1 (en) 2006-03-29 2007-10-04 Hitachi, Ltd. Storage system using flash memories, wear-leveling method for the same system and wear-leveling program for the same system
US20120079314A1 (en) 2010-09-27 2012-03-29 International Business Machines Corporation Multi-level dimm error reduction
US20120124273A1 (en) 2010-11-12 2012-05-17 Seagate Technology Llc Estimating Wear of Non-Volatile, Solid State Memory

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5525807A (en) 1978-08-09 1980-02-23 Hitachi Ltd Memory device
US6223275B1 (en) * 1997-06-20 2001-04-24 Sony Corporation Microprocessor with reduced instruction set limiting the address space to upper 2 Mbytes and executing a long type register branch instruction in three intermediate instructions
US6941505B2 (en) * 2000-09-12 2005-09-06 Hitachi, Ltd. Data processing system and data processing method
US6643609B2 (en) * 2001-05-16 2003-11-04 Sharewave, Inc Performance measurement for embedded systems
US6868473B2 (en) * 2002-10-30 2005-03-15 Scientific-Atlanta, Inc. Non-volatile memory access control
US20050050269A1 (en) * 2003-08-27 2005-03-03 Horn Robert L. Method of collecting and tallying operational data using an integrated I/O controller in real time
US7937691B2 (en) * 2003-09-30 2011-05-03 International Business Machines Corporation Method and apparatus for counting execution of specific instructions and accesses to specific data locations
US7155623B2 (en) * 2003-12-03 2006-12-26 International Business Machines Corporation Method and system for power management including local bounding of device group power consumption
US8244974B2 (en) * 2003-12-10 2012-08-14 International Business Machines Corporation Method and system for equalizing usage of storage media
US8619452B2 (en) * 2005-09-02 2013-12-31 Google Inc. Methods and apparatus of stacking DRAMs
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
JP4736828B2 (ja) 2006-02-03 2011-07-27 株式会社デンソー 電子制御装置
US7356442B1 (en) 2006-10-05 2008-04-08 International Business Machines Corporation End of life prediction of flash memory
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US20080222400A1 (en) * 2007-03-07 2008-09-11 International Business Machines Corporation Power Consumption of a Microprocessor Employing Speculative Performance Counting
JP2010152542A (ja) 2008-12-24 2010-07-08 Toshiba Corp メモリシステム
JP2010250707A (ja) 2009-04-17 2010-11-04 Daikin Ind Ltd マイクロプロセッサ及びモリ破損チェック方法
JP5475123B2 (ja) * 2010-02-19 2014-04-16 株式会社日立製作所 ディスクアレイ装置およびその制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060240653A1 (en) 2002-08-30 2006-10-26 Micron Technology, Inc. One-device non-volatile random access memory cell
US20070233931A1 (en) 2006-03-29 2007-10-04 Hitachi, Ltd. Storage system using flash memories, wear-leveling method for the same system and wear-leveling program for the same system
US20120079314A1 (en) 2010-09-27 2012-03-29 International Business Machines Corporation Multi-level dimm error reduction
US20120124273A1 (en) 2010-11-12 2012-05-17 Seagate Technology Llc Estimating Wear of Non-Volatile, Solid State Memory

Also Published As

Publication number Publication date
US20140304557A1 (en) 2014-10-09
GB2527010A (en) 2015-12-09
US9501427B2 (en) 2016-11-22
WO2014155228A1 (en) 2014-10-02
GB2527010B (en) 2016-09-07
US10268598B2 (en) 2019-04-23
US20140297975A1 (en) 2014-10-02
TW201438019A (zh) 2014-10-01
GB201517782D0 (en) 2015-11-25
TWI570738B (zh) 2017-02-11
DE112014001736T5 (de) 2015-12-17

Similar Documents

Publication Publication Date Title
US10310930B2 (en) Solid state disk using method and apparatus
US11048581B2 (en) Storage device telemetry for provisioning I/O
Mahdisoltani et al. Proactive error prediction to improve storage system reliability
DE112020000178T5 (de) Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen
DE102014115885B4 (de) Funktionstüchtigkeitszustand von nicht-flüchtigem Speicher
US9251019B2 (en) Apparatus, system and method for managing solid-state retirement
US7769562B2 (en) Method and apparatus for detecting degradation in a remote storage device
US10650885B2 (en) Extending flash storage lifespan and data quality with data retention protection
DE112014004761T5 (de) Beeinflussung des Wear-Leveling in Speichersystemen
DE102013020269A1 (de) Umordnen des Zurückschickens für einen Host-Lesebefehl basierend auf der Zeitschätzung des Abschlusses eines Flash-Lesebefehls
DE112017007690T5 (de) Verfahren und vorrichtungen zur durchführung einer fehlerdetektion und/oder korrektur in einer speichervorrichtung
US20220383970A1 (en) Method and Apparatus for Outlier Management
DE112019003288T5 (de) Verwenden eines moduls mit maschinellem lernen, um zu ermitteln, wann eine fehlerprüfung eines speicherelements durchzuführen ist
DE112015000384T5 (de) Erhöhen der Zuverlässigkeit in einem verteilten Speichersystem
US10146450B1 (en) Managing a pool of storage slices via consumption estimation based on historical data
DE112014001736B4 (de) Ein Primärspeichermodul mit Aufzeichnung des Nutzungsverlaufs und Anwendungsmöglichkeiten des Primärspeichermoduls bei einem Computersystem
US20230017942A1 (en) Memory sub-system event log management
DE112018003165T5 (de) System und verfahren zum umschalten von firmware
DE112020005227T5 (de) Speicherzustandsüberwachung für differenziertedatenwiederherstellungskonfigurationen
US11199968B2 (en) Using recurring write quotas to optimize utilization of solid state storage in a hybrid storage array
KR20170113343A (ko) 고체-상태 드라이브들에 대한 동적 대역폭 리포팅
DE112019005558T5 (de) Verwendung einer auf fehlerkorrektur basierenden metrik zur identifizierung schlecht funktionierender datenspeichervorrichtungen
DE102015105414B4 (de) Bearbeiten eines Zielspeichers
US11461250B2 (en) Tuning data storage equipment based on comparing observed I/O statistics with expected I/O statistics which are defined by operating settings that control operation
DE112020003961T5 (de) Vorhersagende speicherverwaltung

Legal Events

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

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final