DE112014001736T5 - 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
DE112014001736T5
DE112014001736T5 DE112014001736.1T DE112014001736T DE112014001736T5 DE 112014001736 T5 DE112014001736 T5 DE 112014001736T5 DE 112014001736 T DE112014001736 T DE 112014001736T DE 112014001736 T5 DE112014001736 T5 DE 112014001736T5
Authority
DE
Germany
Prior art keywords
value
processor
register
primary
storage 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.)
Granted
Application number
DE112014001736.1T
Other languages
English (en)
Other versions
DE112014001736B4 (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

Abstract

Ein Primärspeichermodul wird bereitgestellt, das einen Zähler zum Bereitstellen einer Zählwerts enthält, der die Häufigkeit angibt, wie oft ein Prozessor jemals in das Primärspeichermodul geschrieben/aus ihm gelesen hat. Mit dem Zählwert wird eine Betriebssituation des Primärspeichermoduls bewertet, um die Speicherzuordnung zu optimieren, die durch das Betriebssystem ausgeführt wird, die Betriebsart des Primärspeichermoduls einzustellen und beispielsweise eine Warnnachricht an einen Benutzer zu senden.

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 2012/0124273 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.
  • Offenbarung der Erfindung
  • Gemäß einem ersten Aspekt wird ein Primärspeichermodul bereitgestellt, das sich in einem Computersystem befindet und mit einem Prozessor in dem Computersystem elektrisch verbunden ist, damit der Prozessor Befehle lesen/schreiben kann, wobei das Primärspeichermodul aufweist: ein Zähler zum Bereitstellen eines Zählwerts, der angibt, wie oft der Prozessor jemals in das Primärspeichermodul geschrieben/aus ihm gelesen hat. Vorzugsweise werden außerdem ein erster Teiler, der mit dem Zähler elektrisch verbunden ist und so eingerichtet ist, dass er den Zählwert durch einen ersten Parameter teilt, um einen ersten Wert zu erzeugen; und eine nichtflüchtige Speichereinheit zum Speichern des ersten Werts bereitgestellt. Es ist stärker bevorzugt, dass außerdem ein erster Teiler, der mit dem Zähler elektrisch verbunden ist und so eingerichtet ist, dass er den Zählwert durch einen ersten Parameter teilt, um einen ersten Wert zu erzeugen; und ein Register zum Speichern des ersten Werts bereitgestellt werden. Es ist noch stärker bevorzugt, dass ein zweiter Teiler, der mit dem Register elektrisch verbunden ist und so eingerichtet ist, dass er den ersten Wert durch einen zweiten Parameter teilt, um einen zweiten Wert zu erzeugen; und eine nichtflüchtige Speichereinheit zum Speichern des zweiten Werts bereitgestellt werden. Es ist noch stärker bevorzugt, dass eine Steuereinheit bereitgestellt wird, die mit dem Register elektrisch verbunden ist, wobei die nichtflüchtige Speichereinheit des Weiteren den zweiten Wert in das Register lädt und somit die Steuereinheit befähigt, den zweiten Wert zu lesen und den zweiten Wert dem Prozessor bereitzustellen.
  • Gemäß einem zweiten Aspekt wird ein Computersystem bereitgestellt, das aufweist: einen Prozessor; und ein Primärspeichermodul wie es oben beschrieben wurde und das mit dem Prozessor elektrisch verbunden ist.
  • Gemäß einem dritten Aspekt wird ein Verfahren bereitgestellt zum Aufzeichnen des Nutzungsverlaufs eines Primärspeichermoduls, wobei sich das Primärspeichermodul in einem Computersystem befindet und mit einem Prozessor in dem Computersystem elektrisch verbunden ist, damit der Prozessor Befehle lesen/schreiben kann, wobei das Verfahren den Schritt aufweist zum: Bereitstellen des Primärspeichermoduls mit einem Zähler zum Bereitstellen eines Zählwerts, der angibt, wie oft der Prozessor jemals in das Primärspeichermodul geschrieben/aus ihm gelesen hat.
  • 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.
  • In dieser Spezifikation bedeuten Hinweise auf Merkmale, Vorteile oder ähnliche Ausdrücke nicht, dass sämtliche Merkmale und Vorteile, die bei der vorliegenden Erfindung realisiert werden können, in jeder einzelnen Ausführungsform der Erfindung vorhanden sein sollten oder vorhanden sind. Stattdessen ist klar, dass Ausdrücke, die sich auf die Merkmale und Vorteile beziehen, bedeuten, dass ein spezifisches Merkmal, ein spezifischer Vorteil oder eine spezifische kennzeichnende Eigenschaft, die in Verbindung mit einer Ausführungsform beschrieben wurde, in wenigstens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit können sich die Erläuterung der Merkmale und Vorteile und ähnliche Ausdrücke in dieser gesamten Spezifikation auf dieselbe Ausführungsform beziehen, was jedoch nicht notwendigerweise der Fall ist.
  • Des Weiteren können die beschriebenen Merkmale, Vorteile und kennzeichnenden Eigenschaften der Erfindung in jeder geeigneten Weise in einer oder in mehreren Ausführungsformen kombiniert sein. Ein Fachmann auf dem Gebiet der relevanten Technik wird erkennen, dass die Erfindung ohne ein oder mehrere der spezifischen Merkmale oder Vorteile einer bestimmten Ausführungsform realisiert werden kann. In anderen Fällen können in bestimmten Ausführungsformen zusätzliche Merkmale und Vorteile erkannt werden, die möglicherweise nicht in allen Ausführungsformen der Erfindung vorhanden sind.
  • 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.
  • Kurzbeschreibung der Zeichnungen
  • 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
  • In dieser gesamten Spezifikation bedeutet eine Bezugnahme auf „eine bestimmte” oder „irgendeine” Ausführungsform („one embodiment” oder „an embodiment”) oder einer ähnlichen sprachlichen Formulierung, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte kennzeichnende Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben wird, in wenigstens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit kann sich ein Auftreten der Formulierungen „eine bestimmte” oder „irgendeine” Ausführungsform („one embodiment” oder „an embodiment”) oder einer ähnlichen sprachlichen Formulierung in dieser gesamten Spezifikation möglicherweise immer auf dieselbe Ausführungsform beziehen, was jedoch nicht notwendigerweise der Fall ist.
  • 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.
  • Die vorhergehenden bevorzugten Ausführungsformen werden bereitgestellt, um die technischen Merkmale der vorliegenden Erfindung zu veranschaulichen und zu offenbaren, und sollen den Umfang der vorliegenden Erfindung nicht einschränken. Daher sollten alle gleichwertigen Varianten oder Modifikationen, die an den vorhergehenden Ausführungsformen gemacht wurden, in den Umfang der vorliegenden Erfindung fallen, der in den beigefügten Ansprüchen dargestellt ist.

Claims (17)

  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: einen Zähler zum Bereitstellen eines Zählwertes, der die Häufigkeit angibt, wie oft der Prozessor in das Primärspeichermodul jemals geschrieben/aus ihm gelesen hat.
  2. Das Primärspeichermodul nach Anspruch 1, das ferner aufweist: einen ersten Teiler, der mit dem Zähler elektrisch verbunden ist und so eingerichtet ist, dass er den Zählwert durch einen ersten Parameter teilt, um einen ersten Wert zu erzeugen; und eine nichtflüchtige Speichereinheit zum Speichern des ersten Wertes.
  3. Das Primärspeichermodul nach Anspruch 1, das ferner aufweist: einen ersten Teiler, der mit dem Zähler elektrisch verbunden ist und so eingerichtet ist, dass er den Zählwert durch einen ersten Parameter teilt, um einen ersten Wert zu erzeugen; und ein Register zum Speichern des ersten Wertes.
  4. Das Primärspeichermodul nach Anspruch 3, das ferner aufweist: einen zweiten Teiler, der mit dem Register elektrisch verbunden ist und so eingerichtet ist, dass er den ersten Wert durch einen zweiten Parameter teilt, um einen zweiten Wert zu erzeugen; und eine nichtflüchtige Speichereinheit zum Speichern des zweiten Wertes.
  5. Das Primärspeichermodul nach Anspruch 4, das ferner aufweist: eine Steuereinheit, die mit dem Register elektrisch verbunden ist, wobei die nichtflüchtige Speichereinheit des Weiteren den zweiten Wert in das Register lädt und dadurch die Steuereinheit befähigt, den zweiten Wert zu lesen und den zweiten Wert dem Prozessor bereitzustellen.
  6. Ein Computersystem, das aufweist: einen Prozessor; und ein Primärspeichermodul nach einem der Ansprüche 1 bis 5, das mit dem Prozessor elektrisch verbunden ist.
  7. Ein Verfahren zum Aufzeichnen des Nutzungsverlaufs eines Primärspeichermoduls, wobei das Primärspeichermodul in einem Computersystem angeordnet ist und mit einem Prozessor in dem Computersystem elektrisch verbunden ist, damit der Prozessor Befehle liest/schreibt kann, wobei das Verfahren den Schritt aufweist zum: Bereitstellen des Primärspeichermoduls mit einem Zähler zum Bereitstellen eines Zählwertes, der eine Häufigkeit angibt, wie oft der Prozessor jemals in das Primärspeichermodul geschrieben/aus ihm gelesen hat.
  8. Das Verfahren nach Anspruch 7, das ferner die Schritte aufweist zum: Teilen des Zählwertes durch einen ersten Parameter, um einen ersten Wert zu erzeugen; und Bereitstellen des Primärspeichermoduls mit einer nichtflüchtigen Speichereinheit zu Speichern des ersten Wertes.
  9. Das Verfahren nach Anspruch 8, das ferner den Schritt aufweist zum: Ausführen einer Management-Prozedur, die das Primärspeichermodul betrifft, durch einen Prozessor gemäß dem ersten Wert, um dadurch Speichernutzung und Zuordnungsstrategie zu ändern.
  10. Das Verfahren nach Anspruch 8 oder Anspruch 9, das ferner die Schritte aufweist zum: erneutes Bereitstellen eines neuen Zählwertes, nachdem der Zähler einen erneuten Zählvorgang bei Null begonnen hat; Teilen des neuen Zählwertes 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.
  11. Das Verfahren nach Anspruch 7, das ferner die Schritte aufweist zum: Teilen des Zählwertes durch einen ersten Parameter, um einen ersten Wert zu erzeugen; und Bereitstellen des Primärspeichermoduls mit einem Register zum Speichern des ersten Wertes.
  12. Das Verfahren nach Anspruch 11, das ferner die Schritte aufweist zum: Teilen des ersten Wertes durch einen zweiten Parameter, um einen zweiten Wert zu erzeugen; und Bereitstellen des Primärspeichermoduls mit einer nichtflüchtigen Speichereinheit zum Speichern des zweiten Wertes.
  13. Das Verfahren nach Anspruch 12, das ferner die Schritte aufweist zum: Laden des zweiten Wertes in das Register durch die nichtflüchtige Speichereinheit; und Bereitstellen des Primärspeichermoduls mit einer Steuereinheit zum Lesen des zweiten Wertes in dem Register und Bereitstellen des zweiten Wertes dem Prozessor.
  14. Das Verfahren nach Anspruch 13, das ferner den Schritt aufweist zum: Ausführen einer das Primärspeichermodul betreffenden Management-Prozedur durch den Prozessor gemäß dem zweiten Wert, wodurch Speichernutzung und Zuordnungsstrategie geändert werden.
  15. Das Verfahren nach einem der Ansprüche 11 bis 14, das ferner die Schritte aufweist zum: Bereitstellen eines neuen Zählwertes nachdem der Zähler einen erneuten Zählvorgang bei Null begonnen hat; Teilen des neuen Zählwertes durch den ersten Parameter, um einen neuen ersten Wert zu erzeugen; Speichern des neuen ersten Wertes in dem Register; Teilen des neuen ersten Wertes 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.
  16. Das Verfahren nach Anspruch 15, das ferner 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 das Register und Bereitstellen der Summe dem Prozessor.
  17. Ein Computerprogramm, das Computerprogrammcode aufweist, der in einem computerlesbaren Medium gespeichert ist, um zu bewirken, dass ein Computersystem alle Schritte eines Verfahrens nach einem der Ansprüche 7 bis 16 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 具有使用歷程記錄的主記憶體模組以及此主記憶體模組於電腦系統之應用
TWTW-102111378 2013-03-29
TW102111378 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 true DE112014001736T5 (de) 2015-12-17
DE112014001736B4 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
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
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
US20230074898A1 (en) * 2021-09-09 2023-03-09 Toyota Motor North America, Inc. Transport limitation for data reads

Family Cites Families (22)

* 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
US6903969B2 (en) 2002-08-30 2005-06-07 Micron Technology Inc. One-device non-volatile random access memory cell
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
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
DE112006004263B4 (de) * 2005-09-02 2015-05-13 Google, Inc. Speicherbaustein
JP4736828B2 (ja) 2006-02-03 2011-07-27 株式会社デンソー 電子制御装置
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
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 マイクロプロセッサ及びモリ破損チェック方法
WO2011101917A1 (en) * 2010-02-19 2011-08-25 Hitachi,Ltd. Disk array control device with shortened time recovery following power restoration and method therefor
US8255740B2 (en) 2010-09-27 2012-08-28 International Business Machines Corporation Multi-level DIMM error reduction
US8806106B2 (en) 2010-11-12 2014-08-12 Seagate Technology Llc Estimating wear of non-volatile, solid state memory

Also Published As

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

Similar Documents

Publication Publication Date Title
DE102017120840B4 (de) Verfahren und Vorrichtung zur Detektion und Handhabung von Lesestörungen
DE102012214324B4 (de) Verfahren und Vorrichtung zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile
DE112020000178T5 (de) Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen
DE112013003255B4 (de) Managementmechanismus für fehlerhafte Blöcke
DE112014004761B4 (de) Beeinflussung des Wear-Leveling in Speichersystemen
DE102014115885B4 (de) Funktionstüchtigkeitszustand von nicht-flüchtigem Speicher
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE112015004863T5 (de) Verfolgen der Vermischung von Schreibvorgängen und Entabbildungsbefehlen über Stromversorgungszyklen
DE102013020269A1 (de) Umordnen des Zurückschickens für einen Host-Lesebefehl basierend auf der Zeitschätzung des Abschlusses eines Flash-Lesebefehls
DE112011102160T5 (de) Wear-levelling bei Zellen/Seiten/Teilseiten/Blöcken eines Speichers
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE112013000881T5 (de) Systeme und Verfahren zum Verhindern von Datenverlust
DE112007003015T5 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE102019125060A1 (de) Datenspeichersysteme und verfahren zum autonomen anpassen der leistung, kapazität und/oder der betriebsanforderungen eines datenspeichersystems
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE112014000336T5 (de) Vorablesezugriff für einen übergeordneten Kern in einem Mehrkern-Chip
DE102016108733A1 (de) Steuern einer redundanten Anordnung von unabhängigen Festplatten (RAID), welche ein Nur-Lese-Flash-Datenspeichergerät einschließt
DE102006036070A1 (de) Ladungsfallenspeichervorrichtung und Verfahren für deren Herstellung und Betrieb
DE112021002268T5 (de) Neuronales Regressionsnetzwerk zum Identifizieren von Schwellenspannungen, die beim Lesen von Flash-Speichervorrichtungen zu verwenden sind
DE102016107718A1 (de) Auslesen von Fehlervektoren aus einer Speichereinheit
DE112016002305B4 (de) Reduktion der Schreibverstärkung in einem Objektspeicher
DE112014001736B4 (de) Ein Primärspeichermodul mit Aufzeichnung des Nutzungsverlaufs und Anwendungsmöglichkeiten des Primärspeichermoduls bei einem Computersystem
DE102015105414B4 (de) Bearbeiten eines Zielspeichers
DE112012001469B4 (de) Verwalten von Hochgeschwindigkeitsspeichern
DE102020121109A1 (de) Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen

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