-
TECHNISCHES GEBIET
-
Ausführungsformen beziehen sich im Allgemeinen auf Thread-Planung in Rechensystemen. Genauer beziehen sich Ausführungsformen auf Technologie, die Ausfälle von Speicherhardware (z.B. dynamischer Direktzugriffspeicher (DRAM, Dynamic Random Access Memory)) über Laufzeit-Nach-Paket-Reparatur behebt.
-
ALLGEMEINER STAND DER TECHNIK
-
Fehler in dynamischem Direktzugriffspeicher (DRAM) sind eine herkömmliche Form von Hardwareausfall in modernen Rechenclustem. Ausfälle sind oft sowohl im Sinne von Hardwareaustauschkosten als auch Arbeitsunterbrechung kostspielig. Sowohl Endanwender als auch ursprüngliche Ausrüstungshersteller (OEMs, Original Equipment Manufacturers) können einer effektiven Speicherfehlerbehebung hohen Bedarf beimessen.
-
Figurenliste
-
Die verschiedenen Vorteile der Ausführungsformen werden einem Fachkundigen ersichtlich, indem er die folgende Beschreibung und angehängten Ansprüche liest und indem er die folgenden Zeichnungen heranzieht, in denen:
- 1 eine Veranschaulichung eines Beispiels eines Laufzeitspeicherreparatursystems gemäß einer Ausführungsform ist;
- 2 ein Blockdiagramm eines Beispiels eines Speicherbauelements ist, das für Laufzeitspeicherreparatur gemäß einer Ausführungsform angepasst ist;
- 3 eine Veranschaulichung eines Beispiels einer Prozedur zur Laufzeit-Nach-Paket-Reparatur gemäß einer Ausführungsform ist;
- 4 eine Veranschaulichung eines Beispiels einer Prozedur zum Einschalt-Nach-Paket-Reparatur ist, die verglichen mit der hierin offenbarten Laufzeit-Nach-Paket-Reparatur eine andere Lösung zur Speicherreparatur ist;
- 5 ein Ablaufdiagramm eines Beispiels eines Verfahrens zum Reparieren von Laufzeitspeicher gemäß einer Ausführungsform ist;
- 6 ein ausführlicheres Ablaufdiagramm eines Beispiels eines Verfahrens zum Reparieren von Laufzeitspeicher gemäß einer Ausführungsform ist;
- 7 ein Blockdiagramm eines Beispiels eines Rechensystems, das ein System-auf-einem-Chip aufweist, gemäß einer Ausführungsform ist;
- 8 eine Veranschaulichung eines Beispiels einer Halbleitervorrichtung gemäß einer Ausführungsform ist;
- 9 ein Blockdiagramm eines Beispiels eines Prozessors gemäß einer Ausführungsform ist; und
- 10 ein Blockdiagramm eines Beispiels eines Multiprozessor-basierten Rechensystems gemäß einer Ausführungsform ist.
-
BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Wie zuvor beschrieben, sind Fehler in dynamischem Direktzugriffspeicher (DRAM) eine herkömmliche Form von Hardwareausfall in modernen Rechengruppen. Ausfälle sind oft sowohl im Sinne von Hardwareaustauschkosten als auch Arbeitsunterbrechung kostspielig. Sowohl Endanwender als auch ursprüngliche Ausrüstungshersteller (OEMs) können einer effektiven Speicherfehlerbehebung hohen Bedarf beimessen.
-
Wie unten ausführlicher beschrieben wird, können manche hierin beschriebene Implementierungen Nach-Paket-Reparatur- (PPR, Post Package Repair) Prozeduren annehmen, um Laufzeitreparaturen von Speicherhardware- (z.B. DRAM) Ausfällen umzusetzen. Solche Laufzeit-Nach-Paket-Reparatur (PPR) Prozeduren können vorteilhafterweise ohne Kapazitätsverlust, Auswirkungen auf Arbeitsleistung und/oder Kostenfolgen arbeiten.
-
1 ist eine Veranschaulichung eines Beispiels eines Laufzeitspeicherreparatursystems 100 gemäß einer Ausführungsform. Wie veranschaulicht kann Laufzeitspeicherreparatursystem 100 ein Speicherbauelement, wie zum Beispiel einen DRAM 104, einen Laufzeit-DRAM-Ausfalldetektor 102 und Laufzeit-Nach-Paket-Reparaturhandler 106 aufweisen.
-
Manche hierin beschriebene Implementierungen können Technologie bereitstellen, die Hardwareausfälle in dem DRAM 104 mittels des Laufzeit-DRAM-Ausfalldetektors 102 detektiert. In einer Ausführungsform korrigiert der Laufzeit-Nach-Paket-Reparaturhandler 106 die detektierten Hardwareausfälle in dem DRAM 104. In solch einem Beispiel kann der Laufzeit-Nach-Paket-Reparaturhandler 106 solche Korrekturen durchführen, nachdem Einschaltstartbetriebe abgeschlossen wurden. Im Gegensatz dazu, kann Nach-Paket-Reparatur oft während Einschaltbetrieben (wie unten in 4 veranschaulicht) entgegen während Laufzeitbetrieben (wie unten in 3 veranschaulicht) durchgeführt werden.
-
Zum Beispiel wird eine solche Einschalt-Nach-Paket-Reparatur typischerweise Systemverfügbarkeit nachteilig beeinflussen, weil das Rechensystem zurückgestellt werden muss, wie unten in 4 veranschaulicht. In manchen Beispielen wird typischerweise Fehlerkorrekturcode- (ECC, Error Correcting Code) Speicher zum Detektieren und Korrigieren von Systemspeichern verwendet, um System-ECC-Kapazität und Systemarbeitsleistung zu erhalten (z.B. kann ECC Speicherlatenz beeinflussen). Manche Implementierungen hierin können eine neue Methodologie bereitstellen, um den DRAM-Hardwareausfall bei Laufzeit mittels Nach-Paket-Reparatur-Betrieben zu reparieren, wie unten in 3 veranschaulicht, was Auswirkung auf Arbeitsleistung und Speicherverfügbarkeit vermeiden kann. Zum Beispiel kann in der Laufzeitumgebung ein Speicherfehler, der von Nach-Paket-Reparaturbetrieben korrigiert wird, mittels eines Doppeldatenraten- (DDR, Double Data Rate) Speicherlogikanalysators (LA, Logic Analyzer) detektiert werden, der einen DDR-Speicherbus überwacht.
-
2 ist ein Blockdiagramm eines Beispiels eines Speicherbauelements 200, das für Laufzeitspeicherreparatur angepasst ist, gemäß einer Ausführungsform. Wie veranschaulicht kann das Speicherbauelement 200 einen dynamischen Direktzugriffspeicher (DRAM) darstellen. In einer Ausführungsform weist das Speicherbauelement 200 mehrere Bankgruppen 202 (z.B. Bankgruppe 0, 1, 2, 4 usw.) auf. Jede der mehreren Bankgruppen 202 kann eine zugehörige Reservereihe 204 aufweisen, wo jede Reservereihe zur Seite gestellt ist, um für Laufzeit Nach-Paket-Reparaturbetrieben verwendet zu werden.
-
Zum Beispiel, wenn eine ausgefallene Reihe 206 detektiert ist, können die Daten in der ausgefallenen Reihe 206 korrigiert und zu der Reservereihe 204 gespeichert werden, die den entsprechenden Bankgruppen 202 (z.B. Bankgruppe 1, wie hier veranschaulicht) zugehörig ist. Wie unten ausführlicher beschrieben wird, kann die ausgefallene Reihe 206 mittels Nach-Paket-Reparaturbetrieben repariert werden. Die korrigierten und gespeicherten ausgefallenen Reihendaten können dann zu der nun reparierten Reihe der ausgefallenen Reihe 206 zurückbewegt werden.
-
Tabelle 1 veranschaulicht die Begrenzungen anderer Möglichkeiten zum Umgang mit Hardwareausfall in DRAM:
Tabelle 1: Andere Techniken für Hardwareausfälle in DRAM |
Kategorie | RAS-(Reihenadresstastsignal) Merkmal | Begrenzungen |
Speicher-RAS (z.B. angeben von DRAM-Hardwarefehler) | Sp eichereinzelb auelementd atenkorrektur (SDDC) x4 | Arbeitsleistung negativ beeinflusst |
Verbesserte Speicherdoppelbauelement datenkorrektur (DDDC+1) |
x4 DRAM adaptive Datenkorrektur (ADC), Einzelgebiet (SR) |
x4 DRAM adaptive Doppelbauelementdaten |
Korrektur (ADDDC) Multigebiet (MR), +1 |
DRAM - Rank -Sparing | Speicherkapazität negativ beeinflusst |
DRAM-Multi-Rank-Sparing |
DRAM-Speicherspiegelung |
DDR 4- Adress-/teilweise Spiegelung |
Einschalt- N ach-Paket-Reparatur (PPR) | Systemzurückstellung benötigt |
-
Wie in Tabelle 1 veranschaulicht, wenn ein DRAM-Hardwareausfall auftritt (z.B. Detektieren und Korrigieren durch ECC, außer dass nichtkorrigierbare Fehler gespiegelt werden), können die folgenden Maßnahmen getroffen werden, um das Problem zu lösen: 1) Ersetzen des Doppeleingangsspeichermoduls (DIMM, Dual In-line Memory Module) mit Ausfall, das typischerweise Hardware- und Wartungskosten nach sich zieht; 2) SDDC/DDDC/ADC(SR)/ADDDC(MR) (z.B. wie in Tabelle 1 veranschaulicht), die typischerweise Auswirkung auf Arbeitsleistung aufweisen, weil Speicher im Lockstep-Modus arbeiten müssen; 3) Speicherspiegelung und Sparing, die typischerweise die Speicherkapazität verringern und folglich die Arbeitsleistung beeinflussen; oder 4) Einschalt-Nach-Paket-Reparatur, die typischerweise Systemverfügbarkeit beeinflusst.
-
In Zusammenfassung, andere Lösungen als Laufzeit-Nach-Paket-Reparatur resultieren für gewöhnlich in Hardware- und Wartungskosten und/oder nachteiligen Auswirkungen auf Systemarbeitsleistung. Im Gegensatz kann Reparatur von DRAM-Bauelementen zur Laufzeit mittels Laufzeit-Nach-Paket-Reparatur ohne Systemarbeitsleistungs- und Kapazitätsverlust, mit erhöhter Systemverfügbarkeit, erweiterter DIMM-Arbeitszeit und/oder Kostenersparnis durchgeführt werden.
-
3 ist eine Veranschaulichung eines Beispiels einer Prozedur 300, um Laufzeit-Nach-Paket-Reparatur gemäß einer Ausführungsform umzusetzen. Wie veranschaulicht, kann die Prozedur 300 involvieren, dass der Laufzeit-DRAM-Ausfalldetektor 102 Hardwareausfälle in dem DRAM 104 detektiert. Wie hierin verwendet, kann sich der Ausdruck „Laufzeit“ auf Betriebe beziehen, die nach einem BIOS- (grundlegendes Eingabe/Ausgabe-System (Basis Input/Output System), z.B. Hochfahrprogramm) Start 302 und einer Übergabe an ein Betriebssystem 304, nachdem der BIOS-Start 302 vollständig abgeschlossen ist, stattfinden. Der Laufzeit-Nach-Paket-Reparaturhandler 106 kann die detektierten Hardwareausfälle in dynamischem Direktzugriffspeicher (DRAM) 104 korrigieren. In solch einem Beispiel führt der Laufzeit Nach-Paket-Reparaturhandler 106 solche Korrekturen durch, nachdem Einschaltstartbetriebe von BIOS-Start 302 abgeschlossen wurden. Im Gegensatz kann Nach-Paket-Reparatur oft während Einschaltbetrieben (wie unten in 4 veranschaulicht) entgegen während Laufzeitbetrieben (wie hier in 3 veranschaulicht) durchgeführt werden.
-
Zum Beispiel können manche der hierin beschriebenen Implementierungen die Nach-Paket-Reparaturprozeduren übernehmen, die von dem Joint Electron Device Engineering Council (JEDEC) definiert sind, um vorteilhafterweise eine Laufzeitreparatur von DRAM-Hardwarefehler zuzulassen. Zum Beispiel kann ausgefallene Reihenadressreparatur in DDR4 (Doppeldatenrate vier) Speicher als ein optionales Merkmal (z.B. oben in 2 veranschaulicht) zugelassen sein und eine Nach-Paket-Reparatur (PPR), die für Laufzeitbetriebe angepasst ist, eine Prozedur bereitstellen, um die ausgefallene Reihenadresse durch die elektrische Programmierung eines Elektrosicherungsschemas zu reparieren. Dementsprechend werden die Ausfallinformationen gesammelt und in der Laufzeit derart gespeichert, dass Reparatur des DRAM-Ausfalls in Laufzeit durchgeführt werden kann. Im Gegensatz kann der Nach-Paket-Reparatur-Ausfallhandhabungsmechanismus vom Einschalttyp aktuell nur bei Zurückstellung als eine Nach-Paket-Reparatur vom Einschalttyp verwendet werden.
-
4 ist eine Veranschaulichung einer Prozedur 400, um Einschalt-Nach-Paket-Reparatur umzusetzen, die verglichen mit der hierin offenbarten Laufzeit-Nach-Paket-Reparatur eine andere Lösung ist. Wie veranschaulicht, involviert die Prozedur 400, dass Einschalt-Nach-Paket-Reparatur 404 (Einschalt-PPR) während Einschaltbetrieben durchgeführt wird, entgegen während Laufzeitbetrieben (wie oben in 3 veranschaulicht).
-
Zum Beispiel kann Einschalt-Nach-Paket-Reparatur 404 nur während der Einschaltselbsttest- (POST, Power-On Self-Test) Zeit während BIOS-Starts 402 aktivieren. Zum Beispiel bezieht sich Einschaltselbsttest (POST) auf eine Diagnosetestsequenz, die abgespielt wird, wenn eingeschaltet wird. Die Einschaltselbsttest- (POST) Diagnosetestsequenz wird von BIOS-Start 402 abgespielt (z.B. einem grundlegenden Eingang/Ausgang-System oder Hochfahrprogramm eines Computersystems), um zu ermitteln, ob die Computertastatur, der Direktzugriffspeicher, Datenträgerlaufwerke und andere Hardware korrekt arbeiten.
-
Nach der Einschalt-Nach-Paket-Reparatur 404 kann ein Rest von Start- 406 - betrieb durchgeführt werden, um den BIOS-Start 402 zu beenden, bevor Betriebe an Betriebssystem 408 übergeben werden. Nachdem Betriebe an ein Betriebssystem 408 übergeben sind, kann eine DRAM-Ausfalldetektion auf einem DRAM 412 während Laufzeit durchgeführt werden. Nutzung dieser detektierten Fehlerinformationen kann jedoch notwendigerweise eine Systemzurückstellung mit einem Neustart von BIOS-Start 402 benötigen, um die Betriebe der Einschalt-Nach-Paket-Reparatur 404 zu nutzen.
-
5 ist ein Ablaufdiagramm eines Beispiels eines Verfahrens 500 zum Umsetzen von Laufzeitspeicherreparatur gemäß einer Ausführungsform. Wie veranschaulicht kann das Verfahren 500 in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Datenspeichermedium gespeichert sind, wie Direktzugriffspeicher (RAM, Random Access Memory), Nur-Lese-Speicher (ROM, Read-Only Memory), programmierbarer ROM (PROM, Programmable Read Only Memory), Firmware, Flashspeicher usw. in konfigurierbarer Logik, wie zum Beispiel programmierbare Logikarrays (PLAs, Programmable Logic Arrays), feldprogrammierbare Gate-Arrays (FPGAs, Field Programmable Gate Arrays), komplexe programmierbare Logikbauelemente (CPLDs, Complex Programmable Logic Devices) in Logikhardware mit fixierter Funktionalität, die Schaltungstechnologie verwendet, wie zum Beispiel anwendungsspezifische integrierte Schaltung (ASIC, Application Specific Integrated Circuit), komplementäre Metalloxidhalbleiter- (CMOS, Complementary Metal Oxid Semiconductor) oder Transistor-Transistor-Logik- (TTL, Transistor-Transistor Logic) Technologie oder eine beliebige Kombination davon.
-
Zum Beispiel kann Computerprogrammcode, um in dem Verfahren 500 gezeigte Betriebe auszuführen, in eine beliebige Kombination von einer oder mehreren Programmiersprachen geschrieben sein, aufweisend eine objektorientierte Programmiersprache wie JAVA, SMALLTALK, C++ oder dergleichen, und herkömmliche prozedurale Programmiersprachen, wie die „C“ Programmiersprache oder ähnliche Programmiersprachen. Zusätzlich können Logikanweisungen Assemblieranweisungen, Anweisungssatzarchitektur (ISA, Instruction Set Architecture) Anweisungen, Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltkreise, Zustandsinformationen, die Elektronikschaltkreise personalisieren, und/oder andere strukturelle Komponenten die nativ für Hardware sind (z.B. Hostprozessor, zentrale Verarbeitungseinheit/CPU, Mikrosteuerung usw.), aufweisen.
-
Veranschaulichter Verarbeitungsblock 502 stellt Detektieren eines Speicherhardwareausfalls in einem dynamischen Zugriffsspeicher bereit. Zum Beispiel kann die Detektion des Speicherhardwareausfalls in einem dynamischen Direktzugriffspeicher Betriebe aufweisen, zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist, und zu ermitteln, ob der Speicherfehler ein Hardwareausfall ist.
-
Veranschaulichter Verarbeitungsblock 504 stellt Durchführen von Laufzeit Nach-Paket-Reparatur in Antwort auf die Detektion von Speicherhardwareausfall bereit. Zum Beispiel kann die Durchführung der Laufzeit-Nach-Paket-Reparatur weiter Betriebe aufweisen, ausgefallene Reihendaten zu korrigieren und zu einer oder mehreren anderen Adressen zu speichern, ausgefallene Reihendaten mittels Nach-Paket-Reparaturbetrieben zu reparieren und die korrigierten und gespeicherten ausgefallenen Reihendaten zu der reparierten fehlgeschlagenen Reihe zurückzubewegen. Zusätzliche und/oder alternative Details von Verfahren 500 sind unten in Bezug auf 6 beschrieben.
-
6 ist ein ausführlicheres Ablaufdiagramm eines Beispiels eines Verfahrens 600 zum Reparieren von Laufzeitspeicher gemäß einer Ausführungsform. Wie veranschaulicht, kann das Verfahren 600 im Allgemeinen in Blöcke 502 und 504 von 2 eingegliedert sein, wie bereits besprochen. Genauer kann das Verfahren 600 in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Datenspeichermedium gespeichert sind, wie RAM, ROM, PROM, Firmware, Flashspeicher usw., in konfigurierbarer Logik, wie zum Beispiel PLAs, FPGAs, CPLDs, in Logikhardware mit fixierter Funktionalität unter Verwendung von Schaltungstechnologie, wie zum Beispiel ASIC, CMOS oder TLL-Technologie oder eine beliebige Kombination davon.
-
Veranschaulichter Verarbeitungsblock 602 tritt in Antwort auf einen Rechensystemfehler in einen Fehlerhandhabungsmodus ein. Zum Beispiel kann die Detektion des Speicherhardwareausfalls in einem dynamischen Direktzugriffspeicher in Antwort auf einen Eintritt in den Handhabungsmodus durchgeführt werden. In einer Ausführungsform werden Rechensystemfehlerberichte von Fehlerhandhabung mittels Firmware-Systemverwaltungsunterbrechungen (SMI, System Management Interrupts) verarbeitet. In einem Beispiel werden solche Rechensystemfehlerberichte in einem verbesserte Maschinenprüfarchitektur zweiter Generation (eMCA2, enhanced Machine Check Architecture Generation Two) Modus oder dergleichen verarbeitet.
-
Zum Beispiel ist Systemverwaltungsmodus (SMM, System Management Mode) ein Sonderzweckbetriebsmodus, der Handhabung systemweiter Funktionen wie Leistungsverwaltung, Systemhardwaresteuerung und dergleichen bereitstellt. Systemverwaltungsmodus kann von Systemfirmware, nicht von Anwendungssoftware oder Allzwecksystemsoftware, verwendet werden, um isolierte Prozessorumgebung zu erlauben, die für das Betriebssystem transparent arbeitet. In einer Ausführungsform erlegt SMM gewisse Regeln auf. Im Allgemeinen kann in den Systemverwaltungsmodus nur durch Systemverwaltungsunterbrechung (SMI) mittels Systemfirmware in einem separaten Adressraum, der für andere zentrale Verarbeitungseinheitsmodi unzugänglich ist, eingetreten werden, um Transparenz zu erzielen.
-
Bei veranschaulichtem Verarbeitungsblock 604 kann eine Prüfung durchgeführt werden, um zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist oder nicht. Zum Beispiel kann die Detektion des Speicherhardwareausfalls in einem dynamischen Direktzugriffspeicher weiter Betriebe aufweisen, um zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist.
-
Veranschaulichter Verarbeitungsblock 606 handhabt andere Komponentenfehler. Zum Beispiel kann Korrektur des Rechensystemfehlers durchgeführt werden, während die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler kein Speicherfehler ist, umgangen wird.
-
Veranschaulichter Verarbeitungsblock 608 fährt mit Verarbeitung zurück zu dem Betriebssystem fort, sobald die Fehlerhandhabung erledigt ist. Zum Beispiel kann Verarbeitung zu Verarbeitungsblock von einem beliebigen der Verarbeitungsblöcke 606, 614 und/oder 620 fortfahren.
-
Veranschaulichter Verarbeitungsblock 610 ruft einen Laufzeitsoftwarehandler auf. Zum Beispiel kann ein Laufzeitsoftwarehandler in Antwort auf eine Ermittlung aufgerufen werden, dass es einen Speicherfehler gegeben hat. Der Laufzeitsoftwarehandler kann Betriebe mittels Systemverwaltungsunterbrechungen (SMI) aufweisen.
-
Veranschaulichter Verarbeitungsblock 612 ermittelt, ob ein Speicherhardwareausfall aufgetreten ist. Zum Beispiel kann die Detektion des Speicherhardwareausfalls in einem dynamischen Direktzugriffspeicher weiter Betriebe aufweisen, die ermitteln, ob der Speicherfehler ein Hardwareausfall ist.
-
Veranschaulichter Verarbeitungsblock 614 korrigiert Daten, die dem Speicherfehler zugehörig sind. Zum Beispiel kann Korrektur des Rechensystemfehlers durchgeführt werden, indem der Speicherfehler korrigiert wird und die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler kein Hardwareausfall ist, umgangen wird.
-
Veranschaulichter Verarbeitungsblock 616 korrigiert und speichert ausgefallene Reihendaten mittels des Laufzeitsoftwarehandlers zu anderen Adressen. Zum Beispiel kann solcher Betrieb als Teil der Durchführung der Laufzeit-Nach-Paket-Reparatur durchgeführt werden. Wie veranschaulicht, kann die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung dass der Speicherfehler ein Hardwareausfall ist, durchgeführt werden.
-
Veranschaulichter Verarbeitungsblock 618 repariert ausgefallene Reihen mittels des Laufzeitsoftwarehandlers, indem eine Form von Nach-Paket-Reparatur implementiert wird. Zum Beispiel kann solcher Betrieb als Teil der Durchführung der Laufzeit-Nach-Paket-Reparatur durchgeführt werden.
-
Veranschaulichter Verarbeitungsblock 620 bewegt die korrigierten Daten mittels des Laufzeitsoftwarehandlers zurück zu der reparierten Reihe. Zum Beispiel kann solcher Betrieb als Teil der Durchführung der Laufzeit-Nach-Paket-Reparatur durchgeführt werden.
-
In Betrieb kann Laufzeit-Nach-Paket-Reparatur eine Reihe pro Bankgruppe eines Speicherbauelements korrigieren. Solche Laufzeit-Nach-Paket-Reparatur kann ein einfaches und leichtes Reparaturverfahren in dem Computersystem bereitstellen, wo ausgefallene Reihenadressen durch die elektrische Programmierung eines Elektrosicherungsschemas repariert werden können. Solche Laufzeit-Nach-Paket-Reparatur kann manche derselben und/oder ähnliche Betriebe wie die unter Bezug auf DDR JEDEC Solid State Technologie Association Spezifikation beschriebenen aufweisen.
-
Nun hin zu 7 ist ein Rechensystem 700 gezeigt. Das Rechensystem 700 kann im Allgemeinen Teil eines/einer elektronischen Bauelements/Plattform sein, das/die Rechenfunktionalität aufweist (z.B. persönlicher digitaler Assistent/PDA, Notebookcomputer, Tabletcomputer, Convertible Tablet, Server), Kommunikationsfunktionalität (z.B. Smartphone), Abbildungsfunktionalität (z.B. Kamera, Camcorder), Medienabspielfunktionalität (z.B. smarter Fernseher/TV), tragbare Funktionalität (z.B. Uhr, Brille, Kopfbekleidung, Schuhe, Schmuck), Fahrzeugfunktionalität (z.B. Auto, Lastkraftwagen, Motorrad), Spielfunktionalität (z.B. vernetzte Mehrspielerkonsole) usw. oder eine beliebige Kombination davon. In dem veranschaulichten Beispiel weist das System 700 einen Multikernprozessor 702 (z.B. Hostprozessor(en), zentrale Recheneinheit(en)/CPU(s)) auf, die eine integrierte Speichersteuerung (IMC, Integrated Memory Controller) 704 aufweisen, die mit einem Systemspeicher 706 gekoppelt ist. Der Multikernprozessor 702 kann mehrere Prozessorkerne P0-P7 aufweisen.
-
Das veranschaulichte System 700 weist auch ein Eingang/Ausgang- (IO) Modul 708 auf, das gemeinsam mit dem Multikernprozessor 702 und einem Grafikprozessor 710 auf einem Halbleiter-Die 772 als ein System-auf-einem-Chip (SoC, System-on-Chip) implementiert ist. Das veranschaulichte IO-Modul 708 kommuniziert zum Beispiel mit einer Anzeige 714 (z.B. Berührungsbildschirm, Flüssigkristallanzeige/LCD, Leuchtdioden-/LED-Anzeige), eine Netzwerksteuerung 716 (z.B. kabelgebunden und/oder drahtlos) und Massendatenspeicher 718 (z.B. Festplatte/HDD, optischer Datenträger, Festzustandslaufwerk/SSD, Flashspeicher).
-
Der Multikernprozessor 702 kann Logik 720 (z.B. Logikanweisungen, konfigurierbare Logik, Hardwarelogik mit fixierter Funktionalität usw., oder eine beliebige Kombination davon) aufweisen, um einen oder mehrere Aspekte des Verfahrens 500 (5) und/oder des Verfahrens 600 (6) durchzuführen, die bereits besprochen wurden. Obwohl die veranschaulichte Logik 720 innerhalb des Multikernprozessors 702 liegt, kann die Logik 720 anderswo in dem Rechensystem 700 liegen.
-
8 zeigt eine Halbleiterpaketvorrichtung 800. Die veranschaulichte Vorrichtung 800 weist ein oder mehrere Substrate 804 (z.B. Silizium, Saphir, Galliumarsenid) und Logik 802 (z.B. Transistorarray und andere integrierte Schaltungs-/IC-Komponenten) mit dem (den) Substrat(en) 804 gekoppelt auf. Die Logik 802 kann mindestens teilweise in konfigurierbarer Logik oder Logikhardware mit fixierter Funktionalität implementiert sein.
-
In einem Beispiel implementiert die Logik 802 einen oder mehrere Aspekte des Verfahrens 500 (5) und/oder des Verfahrens 600 (6) und kann bereits für die Logik 720 (7) ersetzt werden, die bereits besprochen wurde. Daher kann die Logik 802 einen Thread identifizieren und einen Kern aus den mehreren Prozessorkernen in Antwort darauf, dass der ausgewählte Kern verfügbar ist, während er eine am wenigsten verwendete Bedingung in Bezug auf mehrere Prozessorkerne erfüllt, auswählen. Die Logik 802 kann auch den Thread einplanen, auf dem ausgewählten Kern ausgeführt zu werden. In einem Beispiel verfolgt die Logik 802 aktive Zeit für die mehreren Prozessorkerne und sortiert die mehreren Prozessorkerne auf Basis aktiver Zeit. In einem Beispiel weist die Logik 802 Transistorkanalgebiete auf, die innerhalb des (der) Substrats (Substrate) 804 positioniert (z.B. eingebettet) sind. Daher kann die Schnittstelle zwischen der Logik 802 und dem (den) Substrat(en) 804 kein abrupter Übergang sein. Die Logik 802 kann auch so betrachtet werden, dass sie eine epitaktische Schicht aufweist, die auf einem Anfangswafer des (der) Substrats (Substrate) 804 gezüchtet wird.
-
9 veranschaulicht einen Prozessorkern 900 gemäß einer Ausführungsform. Der Prozessorkern 90 kann der Kern für einen beliebigen Typ von Prozessor sein, wie einen Mikroprozessor, einen eingebetteten Prozessor, einen Digitalsignalprozessor (DSP, Digital Signal Processor), einen Netzwerkprozessor oder ein anderes Bauelement, um Code auszuführen. Obwohl nur ein Prozessorkern 900 in 9 veranschaulicht ist, kann ein Verarbeitungselement alternativ mehr als einen des in 9 veranschaulichten Prozessorkerns 900 aufweisen. Der Prozessorkern 900 kann ein Einzelthread-Kern sein oder für mindestens eine Ausführungsform kann der Prozessorkern 900 multigethreadet sein, indem er mehr als einen Hardware-Thread-Kontext (oder „logischen Prozessor“) pro Kern aufweist.
-
9 veranschaulicht auch einen Speicher 970, der mit dem Prozessorkern 900 gekoppelt ist. Der Speicher 970 kann ein beliebiger einer breiten Vielfalt von Speichern (verschiedene Schichten von Speicherhierarchie aufweisen) sein, wie sie bekannt oder sonst für Fachkundige verfügbar sind. Der Speicher 970 kann eine oder mehrere Code-913 Anweisung(en) aufweisen, die von dem Prozessorkern 900 auszuführen sind, wobei der Code 913 einen oder mehrere Aspekte des Verfahrens 500 (5) und/oder des Verfahrens 600 (6) implementieren kann, die bereits besprochen wurden. Der Prozessorkern 900 folgt einer Programmsequenz von Anweisungen, die von dem Code 913 angegeben sind. Jede Anweisung kann in einen Frontendabschnitt 910 eintreten und von einem oder mehreren Decodern 920 verarbeitet werden. Der Decoder 920 kann als seinen Ausgang einen Mikrobetrieb erzeugen, wie einen Mikrobetrieb mit fixierter Breite in einem vordefinierten Format, oder kann andere Anweisungen, Mikroanweisungen oder Steuersignale erzeugen, die die ursprüngliche Codeanweisung widerspiegeln. Der veranschaulichte Frontendabschnitt 910 weist auch Registerumbenennungslogik 925 und Planungslogik 930 auf, die im Allgemeinen Ressourcen zuweisen und den Betrieb entsprechend der umgewandelten Anweisung zur Ausführung reihen.
-
Der Prozessorkern 900 ist gezeigt, Ausführungslogik 950 aufzuweisen, die einen Satz von Ausführungseinheiten 955–1 bis 955-N aufweist. Manche Ausführungsformen können eine Zahl von Ausführungseinheiten aufweisen, die dediziert für spezifische Funktionen oder Sätze von Funktionen sind. Andere Ausführungsformen können nur eine Ausführungseinheit oder eine Ausführungseinheit, die eine bestimmte Funktion durchführen kann, aufweisen. Die veranschaulichte Ausführungslogik 950 führt die Betriebe durch, die von Codeanweisungen spezifiziert sind.
-
Nach Abschluss von Ausführung der Betriebe, die von den Codeanweisungen spezifiziert sind, setzt Backendlogik 960 die Anweisungen des Codes 913 zur Ruhe. In einer Ausführungsform erlaubt der Prozessorkern 900 Ausführung aus der Reihe, benötigt aber Ruhigstellung von Anweisungen in Reihenfolge. Ruhigstellungslogik 965 kann eine Vielfalt von Formen annehmen, wie sie Fachkundigen bekannt sind (z.B. Neuordnungspuffer oder dergleichen). Auf diese Weise wird der Prozessorkern 900 während Ausführung des Codes 913 transformiert, zumindest im Sinne des von dem Decoder erzeugten Ausgangs, der Hardwareregister und Tabellen, die von der Registerumbenennungslogik 925 genutzt werden, und beliebiger Register (nicht gezeigt), die von der Ausführungslogik 950 modifiziert werden.
-
Obwohl nicht in 9 veranschaulicht, kann ein Verarbeitungselement andere Elemente auf dem Chip mit dem Prozessorkern 900 aufweisen. Zum Beispiel kann ein Verarbeitungselement Speichersteuerlogik gemeinsam mit dem Prozessorkern 900 aufweisen. Das Verarbeitungselement kann I/O-Steuerlogik aufweisen und/oder kann I/O-Steuerlogik mit Speichersteuerlogik integriert aufweisen. Das Verarbeitungselement kann auch einen oder mehrere Zwischenspeicher aufweisen.
-
Nun in Bezug auf 10 ist ein Blockdiagramm einer Ausführungsform von Rechensystem 1000 gemäß einer Ausführungsform gezeigt. In 10 ist ein Multiprozessorsystem 1000 gezeigt, das ein erstes Verarbeitungselement 1070 und ein zweites Verarbeitungselement 1080 aufweist. Während zwei Verarbeitungselemente 1070 und 1080 gezeigt sind, ist zu verstehen, dass eine Ausführungsform des Systems 1000 auch nur ein solches Verarbeitungselement aufweisen kann.
-
Das System 1000 ist als ein Punkt-zu-Punkt Zwischenverbindungssystem veranschaulicht, wobei das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 über eine Punkt-zu-Punkt-Zwischenverbindung 1050 gekoppelt sind. Es sollte verstanden werden, dass beliebige oder alle der in 10 veranschaulichten Zwischenverbindungen als ein Multidrop-Bus anstatt als Punkt-zu-Punkt-Zwischenverbindung implementiert werden können.
-
Wie in 10 gezeigt, können sowohl Verarbeitungselement 1070 als auch 1080 Multikernprozessoren sein, die erste und zweite Prozessorkerne (d.h. Prozessorkerne 1074a und 1074b und Prozessorkerne 1084a und 1084b) aufweisen. Solche Kerne 1074a, 1074b, 1084a, 1084b können konfiguriert sein, Anweisungscode auf eine Weise ähnlich der oben in Verbindung mit 9 beschriebenen auszuführen.
-
Jedes Verarbeitungselement 1070, 1080 kann mindestens einen geteilten Zwischenspeicher 1896a, 1896b aufweisen. Der geteilte Zwischenspeicher 1896a, 1896b kann Daten (z.B. Anweisungen) speichern, die von einer oder mehreren Komponenten des Prozessors genutzt werden, wie den Kernen 1074a, 1074b beziehungsweise 1084a, 1084b. Zum Beispiel kann der geteilte Zwischenspeicher 1896a, 1896b lokal Daten, die in einem Speicher 1032, 1034 gespeichert sind, für schnelleren Zugriff durch Komponenten des Prozessors zwischenspeichern. In einer oder mehreren Ausführungsformen kann der geteilte Zwischenspeicher 1896a, 1896b einen oder mehrere Mittellevel-Zwischenspeicher, wie Level 2 (L2), Level 3 (L3), Level 4 (L4) oder andere Level von Zwischenspeicher, einen Letztes-Level-Zwischenspeicher (LLC, Last Level Cache) und/oder Kombinationen davon aufweisen.
-
Während mit nur zwei Verarbeitungselementen 1070, 1080 gezeigt, ist zu verstehen, dass der Umfang der Ausführungsformen dahin nicht begrenzt ist. In anderen Ausführungsformen können ein oder mehrere zusätzliche Verarbeitungselemente in einem gegebenen Prozessor vorliegen. Alternativ können ein oder mehrere Verarbeitungselemente 1070, 1080 ein anderes Element als ein Prozessor sein, wie ein Beschleuniger oder ein feldprogrammierbares Gate-Array. Zum Beispiel kann (können) zusätzliche(s) Verarbeitungselement(e) zusätzliche(n) Prozessor(en), die dieselben wie ein erster Prozessor 1070 sind, zusätzliche(n) Prozessor(en), die heterogen oder asymmetrisch zum Prozessor eines ersten Prozessors 1070 sind, Beschleuniger (wie z.B. Grafikbeschleuniger oder Digitalsignalverarbeitungs- (DSP, Digital Signal Processing) Einheiten), feldprogrammierbare Gate-Arrays oder ein beliebiges anderes Verarbeitungselement aufweisen. Es kann eine Vielfalt von Unterschieden zwischen den Verarbeitungselementen 1070, 1080 im Sinne eines Spektrums von Gütemetrik geben, aufweisend architekturelle, mikroarchitektonische, thermische, Leistungsverbrauchseigenschaften und dergleichen. Diese Unterschiede können sich als Asymmetrie und Heterogenität unter den Verarbeitungselementen 1070, 1080 manifestieren. Für mindestens eine Ausführungsform können die verschiedenen Verarbeitungselemente 1070, 1080 in demselben Die-Paket liegen.
-
Das erste Verarbeitungselement 1070 kann weiter Speichersteuerlogik (MC, Memory Controller logic) 1072 und Punkt-zu-Punkt- (P-P) Schnittstellen 1076 und 1078 aufweisen. Ähnlich kann das zweite Verarbeitungselement 1080 eine MC 1082 und P-P-Schnittstellen 1086 und 1088 aufweisen. Wie in 10 gezeigt, koppeln die MCs 1072 und 1082 die Prozessoren mit jeweiligen Speichern, nämlich einem Speicher 1032 und einem Speicher 1034, die Abschnitte von Hauptspeicher sein können, die lokal an den jeweiligen Prozessoren angebracht sind. Während die MC 1072 und 1082 veranschaulicht sind, in die Verarbeitungselemente 1070, 1080 integriert zu sein, kann für alternative Ausführungsformen die MC-Logik diskrete Logik außerhalb der Verarbeitungselemente 1070, 1080 sein, anstatt darin integriert zu sein.
-
Das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 können mit einem I/O-Subsystem 1090 mittels P-P-Zwischenverbindungen 1076 beziehungsweise 1086 gekoppelt sein. Wie in 10 gezeigt, weist das I/O-Subsystem 1090 P-P-Schnittstellen 1094 und 1098 auf. Darüber hinaus weist I/O-Subsystem 1090 eine Schnittstelle 1092 auf, um I/O-Subsystem 1090 mit einer Hochleistungsgrafikengine 1038 zu koppeln. In einer Ausführungsform kann Bus 1049 verwendet werden, um die Grafikengine 1038 mit dem I/O-Subsystem 1090 zu koppeln. Alternativ kann eine Punkt-zu-Punkt-Zwischenverbindung diese Komponenten koppeln.
-
I/O-Subsystem 1090 kann wiederum mit einem ersten Bus 1016 mittels einer Schnittstelle 1096 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1016 ein Peripheral Component Interconnect- (PCI) Bus oder ein Bus wie ein PCI Express-Bus oder ein anderer I/O-Zwischenverbindungsbus dritter Generation sein, obwohl der Umfang der Ausführungsformen dahin nicht begrenzt ist.
-
Wie in 10 gezeigt, können verschiedene I/O-Bauelemente 1014 (z.B. biometrische Scanner, Lautsprecher, Kameras, Sensoren) mit dem ersten Bus 1016 gemeinsam mit einer Busbrücke 1018, die den ersten Bus 1016 mit einem zweiten Bus 1020 koppeln kann, gekoppelt sein. In einer Ausführungsform kann der zweite Bus 1020 ein Low Pin Count- (LPC) Bus sein. Verschiedene Bauelemente können in einer Ausführungsform mit dem zweiten Bus 1020 gekoppelt sein, aufweisend zum Beispiel eine Tastatur/Maus 1012, Kommunikationsbauelement(e) 1026 und eine Datenspeichereinheit 1019, wie ein Datenträgerlaufwerk oder ein anderes Massendatenspeicherbauelement, das Code 1030 aufweisen kann.
-
Der veranschaulichte Code 1030 kann einen oder mehrere Aspekte des Verfahrens 500 (5) und/oder des Verfahrens 600 (6) implementieren, die bereits besprochen wurden. Weiter kann ein Audio-I/O 1024 mit zweitem Bus 1020 gekoppelt sein und eine Batterie 1010 kann Strom an das Rechensystem 1000 versorgen.
-
Es ist zu beachten, dass andere Ausführungsformen berücksichtigt sind. Zum Beispiel kann anstelle der Punkt-zu-Punkt-Architektur von 10 ein System einen Multidrop-Bus oder eine andere solche Kommunikationstechnologie implementieren. Außerdem können die Elemente von 10 alternativ unter Verwendung mehr oder weniger integrierter Chips als in 10 gezeigt, unterteilt sein.
-
Zusätzliche Anmerkungen und Beispiele:
-
Beispiel 1 weist ein Rechensystem für Laufzeitspeicherreparatur auf, wobei das Rechensystem einen oder mehrere Prozessoren und einen Massendatenspeicher, der mit dem einen oder den mehreren Prozessoren gekoppelt ist, aufweist, wobei der Massendatenspeicher ausführbare Programmanweisungen aufweist, die, wenn von dem Hostprozessor ausgeführt, das Rechensystem veranlassen, einen Speicherhardwareausfall in einem Speicher zu detektieren und eine Laufzeit-Nach-Paket-Reparatur in Antwort auf den detektierten Speicherhardwareausfall in dem Speicher durchzuführen, wo die Laufzeit-Nach-Paket-Reparatur durchgeführt wird, nachdem Hochfahrstartbetriebe abgeschlossen wurden.
-
Beispiel 2 weist das Rechensystem von Beispiel 1 auf, wo die ausführbaren Programmanweisungen, wenn von dem Rechensystem ausgeführt, das Rechensystem veranlassen, in Antwort auf einen Rechensystemfehler in einen Fehlerhandhabungsmodus einzutreten, und wo die Detektion des Speicherhardwareausfalls in dem Speicher in Antwort auf den Eintritt in den Handhabungsmodus durchgeführt wird.
-
Beispiel 3 weist das Rechensystem von Beispiel 1 auf, wo die Detektion des Speicherhardwareausfalls in dem Speicher weiter Betriebe aufweist, um zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist, zu ermitteln, ob der Speicherfehler ein Hardwareausfall ist, und wo die Arbeitsleistung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler ein Hardwareausfall ist, durchgeführt wird.
-
Beispiel 4 weist das Rechensystem von Beispiel 1 auf, wo die Arbeitsleistung der Laufzeit-Nach-Paket-Reparatur weiter Betriebe aufweist, um ausgefallene Reihendaten zu korrigieren und zu einer oder mehreren anderen Adressen zu speichern, ausgefallene Reihe mittels Nach-Paket-Reparaturbetrieben zu reparieren und die korrigierten und gespeicherten ausgefallenen Reihendaten zurück zu der reparierten ausgefallenen Reihe zu bewegen.
-
Beispiel 5 weist das Rechensystem von Beispiel 1 auf, wo die ausführbaren Programmanweisungen, wenn von dem Rechensystem ausgeführt, das Rechensystem veranlassen, in Antwort auf einen Rechensystemfehler in einen Fehlerhandhabungsmodus einzutreten, wo der Speicher ein dynamischer Direktzugriffspeicher ist und wo die Detektion des Speicherhardwareausfalls in dem Speicher in Antwort auf den Eintritt in den Handhabungsmodus durchgeführt wird. Die Detektion des Speicherhardwareausfalls in dem Speicher weist weiter Betriebe auf, um zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist, zu ermitteln, ob der Speicherfehler ein Hardwarefehler ist und wo die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler ein Hardwareausfall ist, durchgeführt wird. Die Durchführung der Laufzeit-Nach-Paket-Reparatur weist weiter Betriebe auf, um ausgefallene Reihendaten zu korrigieren und zu einer oder mehreren anderen Adressen zu speichern, eine ausgefallene Reihe mittels Nach-Paket-Reparaturbetrieben zu reparieren, die korrigierten und gespeicherten ausgefallenen Reihendaten zurück zu der reparierten ausgefallenen Reihe zu bewegen, den Rechensystemfehler zu korrigieren und die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung zu umgehen, dass der Rechensystemfehler kein Speicherfehler ist, und den Rechensystemfehler zu korrigieren, indem der Speicherfehler korrigiert wird und die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler kein Hardwareausfall ist, umgangen wird.
-
Beispiel 6 weist eine Halbleitervorrichtung für Laufzeitspeicherreparatur auf, wobei die Halbleitervorrichtung ein oder mehrere Substrate aufweist, und Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist. Die Logik ist mindestens teilweise in eine oder mehrere von konfigurierbarer Logik oder Hardwarelogik mit fixierter Funktionalität integriert, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist, um einen Speicherhardwareausfall in einem Speicher zu detektieren, und eine Laufzeit-Nach-Paket-Reparatur in Antwort auf den detektierten Speicherhardwareausfall in dem Speicher durchzuführen, wo die Laufzeit-Nach-Paket-Reparatur durchgeführt wird, nachdem Hochfahrstartbetriebe abgeschlossen wurden.
-
Beispiel 7 weist die Halbleitervorrichtung von Anspruch 6 auf, wo die Logik, die mit dem einen oder mehreren Substraten gekoppelt ist, dazu dient, in Antwort auf einen Rechensystemfehler in einen Fehlerhandhabungsmodus einzutreten, und wo die Detektion des Speicherhardwareausfalls in dem Speicher in Antwort auf den Eintritt in den Handhabungsmodus durchgeführt wird.
-
Beispiel 8 weist die Halbleitervorrichtung von Anspruch 6 auf, wo die Detektion des Speicherhardwareausfalls in dem Speicher weiter Betriebe aufweist, um zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist, zu ermitteln, ob der Speicherfehler ein Hardwarefehler ist und wo die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler ein Hardwareausfall ist, durchgeführt wird.
-
Beispiel 9 weist die Halbleitervorrichtung von Anspruch 6 auf, wo die Durchführung der Laufzeit-Nach-Paket-Reparatur weiter Betriebe aufweist, um ausgefallene Reihendaten zu korrigieren und zu einer oder mehreren anderen Adressen zu speichern, eine ausgefallene Reihe mittels Nach-Paket-Reparaturbetrieben zu reparieren und die korrigierten und gespeicherten ausgefallenen Reihendaten zurück zu der reparierten ausgefallenen Reihe zu bewegen.
-
Beispiel 10 weist die Halbleitervorrichtung nach Anspruch 6 auf, wo die Logik, die mit einem oder mehreren Substraten gekoppelt ist, in Antwort auf einen Rechensystemfehler in einen Fehlerhandhabungsmodus eintritt, wo der Speicher ein dynamischer Direktzugriffspeicher ist und wo die Detektion des Speicherhardwareausfalls in dem Speicher in Antwort auf den Eintritt in den Handhabungsmodus durchgeführt wird. Die Detektion des Speicherhardwareausfalls in dem Speicher weist weiter Betriebe auf, um zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist, zu ermitteln, ob der Speicherfehler ein Hardwareausfall ist und wo die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler ein Hardwareausfall ist, durchgeführt wird. Die Durchführung der Laufzeit-Nach-Paket-Reparatur weist weiter Betriebe auf, um ausgefallene Reihendaten zu korrigieren und zu einer oder mehreren anderen Adressen zu speichern, eine ausgefallene Reihe mittels Nach-Paket-Reparaturbetrieben zu reparieren, die korrigierten und gespeicherten ausgefallenen Reihendaten zurück zu der reparierten ausgefallenen Reihe zu bewegen, den Rechensystemfehler zu korrigieren und die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung zu umgehen, dass der Rechensystemfehler kein Speicherfehler ist, und den Rechensystemfehler zu korrigieren, indem der Speicherfehle korrigiert wird und die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler kein Hardwareausfall ist, umgangen wird.
-
Beispiel 11 weist die Halbleitervorrichtung von Anspruch 6 auf, wo die Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, Transistorkanalgebiete aufweist, die innerhalb des einen oder der mehreren Substrate positioniert sind.
-
Beispiel 12 weist das mindestens eine computerlesbare Datenspeichermedium auf, das einen Satz von ausführbaren Programmanweisungen aufweist, die, wenn von einem Rechensystem ausgeführt, das Rechensystem veranlassen, einen Speicherhardwareausfall in einem Speicher zu detektieren und eine Laufzeit-Nach-Paket-Reparatur in Antwort auf den detektierten Speicherhardwareausfall in dem Speicher durchzuführen, wo die Laufzeit-Nach-Paket-Reparatur durchgeführt wird, nachdem Hochfahrstartbetriebe abgeschlossen wurden.
-
Beispiel 12 weist das mindestens eine computerlesbare Datenspeichermedium von Beispiel 12 auf, wo die ausführbaren Programmanweisungen, wenn von dem Rechensystem ausgeführt, das Rechensystem veranlassen, in Antwort auf einen Rechensystemfehler in einen Fehlerhandhabungsmodus einzutreten, und wo die Detektion des Speicherhardwareausfalls in dem Speicher in Antwort auf den Eintritt in den Handhabungsmodus durchgeführt wird.
-
Beispiel 14 weist das mindestens eine computerlesbare Datenspeichermedium von Beispiel 12 auf, wo die Detektion des Speicherhardwareausfalls in dem Speicher weiter Betriebe aufweist, um zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist, zu ermitteln, ob der Speicherfehler ein Hardwareausfall ist, und wo die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler ein Hardwareausfall ist, durchgeführt wird.
-
Beispiel 15 weist das mindestens eine computerlesbare Datenspeichermedium von Beispiel 12 auf, wo die Durchführung der Laufzeit-Nach-Paket-Reparatur weiter Betriebe aufweist, um ausgefallene Reihendaten zu korrigieren und zu einer oder mehreren Adressen zu speichern, eine ausgefallene Reihe mittels Nach-Paket-Reparaturbetrieben zu reparieren und die korrigierten und gespeicherten ausgefallenen Reihendaten zurück zu der reparierten ausgefallenen Reihe zu bewegen.
-
Beispiel 16 weist das mindestens eine computerlesbare Speichermedium von Beispiel 12 auf, wo die ausführbaren Programmanweisungen, wenn von dem Rechensystem ausgeführt, das Rechensystem veranlassen, in Antwort auf einen Rechensystemfehler in einen Fehlerhandhabungsmodus einzutreten, wo der Speicher ein dynamischer Direktzugriffspeicher ist und wo die Detektion des Speicherhardwareausfalls in dem Speicher in Antwort auf den Eintritt in den Handhabungsmodus durchgeführt wird. Die Detektion des Speicherhardwareausfalls in dem Speicher weist weiter Betriebe auf, um zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist, zu ermitteln, ob der Speicherfehler ein Hardwareausfall ist, und wo die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler ein Hardwareausfall ist, durchgeführt wird. Die Durchführung der Laufzeit-Nach-Paket-Reparatur weist weiter Betriebe auf, um ausgefallene Reihendaten zu korrigieren und zu einer oder mehreren anderen Adressen zu speichern, eine ausgefallene Reihe mittels Nach-Paket-Reparaturbetrieben zu reparieren, die korrigierten und gespeicherten ausgefallenen Reihendaten zurück zu der reparierten ausgefallenen Reihe zu bewegen, den Rechensystemfehler zu korrigieren und die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung zu umgehen, dass der Rechensystemfehler kein Speicherfehler ist, und den Rechensystemfehler zu korrigieren, indem der Speicherfehler korrigiert wird und die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler kein Hardwareausfall ist, umgangen wird.
-
Beispiel 17 weist ein Verfahren zum Reparieren von Laufzeitspeicher auf, umfassend Detektieren eines Speicherhardwareausfalls in einem Speicher und Durchführen einer Laufzeit-Nach-Paket-Reparatur in Antwort auf den detektierten Hardwareausfall in dem Speicher, wo die Laufzeit-Nach-Paket-Reparatur durchgeführt wird, nachdem Hochfahrstartbetriebe abgeschlossen wurden.
-
Beispiel 18 weist das Verfahren von Anspruch 17 auf, weiter aufweisend in Antwort auf einen Rechensystemfehler Eintreten in einen Fehlerhandhabungsmodus, und wo die Detektion des Speicherhardwareausfalls in dem Speicher in Antwort auf den Eintritt in den Handhabungsmodus durchgeführt wird.
-
Beispiel 19 weist das Verfahren von Anspruch 17 auf, wo die Detektion des Speicherhardwareausfalls indem Speicher weiter aufweist zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist, zu ermitteln, ob der Speicherfehler ein Hardwareausfall ist, und wo die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler ein Hardwareausfall ist, durchgeführt wird.
-
Beispiel 20 weist das Verfahren von Anspruch 17 auf, wo die Durchführung der Laufzeit-Nach-Paket-Reparatur weiter aufweist, ausgefallene Reihendaten zu korrigieren und zu einer oder mehreren Adressen zu speichern, eine ausgefallene Reihe mittels Nach-Paket-Reparaturbetrieben zu reparieren und die korrigierten und gespeicherten ausgefallenen Reihendaten zurück zu der reparierten ausgefallenen Reihe zu bewegen.
-
Beispiel 21 weist das Verfahren von Anspruch 17 auf, weiter aufweisend in Antwort auf einen Rechensystemfehler Eintreten in einen Fehlerhandhabungsmodus, wo der Speicher ein dynamischer Direktzugriffspeicher ist, und wo die Detektion des Speicherhardwareausfalls in dem Speicher in Antwort auf den Eintritt in den Handhabungsmodus durchgeführt wird. Die Detektion des Speicherhardwareausfalls in dem Speicher weist weiter auf zu ermitteln, ob der Rechensystemfehler ein Speicherfehler ist, zu ermitteln, ob der Speicherfehler ein Hardwareausfall ist, und wo die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler ein Hardwareausfall ist, durchgeführt wird. Die Durchführung der Laufzeit-Nach-Paket-Reparatur weist weiter auf, ausgefallene Reihendaten zu korrigieren und zu einer oder mehreren anderen Adressen zu speichern, eine ausgefallene Reihe mittels Nach-Paket-Reparaturbetrieben zu reparieren, die korrigierten und gespeicherten ausgefallenen Reihendaten zurück zu der reparierten ausgefallenen Reihe zu bewegen, den Rechensystemfehler zu korrigieren und die Durchführung des Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung zu umgehen, dass der Rechensystemfehler kein Speicherfehler ist, und den Rechensystemfehler zu korrigieren, indem der Speicherfehler korrigiert wird und die Durchführung der Laufzeit-Nach-Paket-Reparatur in Antwort auf die Ermittlung, dass der Rechensystemfehler ein Speicherfehler ist, und die Ermittlung, dass der Speicherfehler kein Hardwareausfall ist, umgangen wird.
-
Beispiel 22 weist Mittel zum Durchführen eines Verfahrens, wie in einem beliebigen vorstehenden Beispiel beschrieben, auf.
-
Beispiel 23 weist maschinenlesbaren Datenspeicher auf, der maschinenlesbare Anweisungen aufweist, die, wenn ausgeführt, ein Verfahren implementieren oder eine Vorrichtung realisieren, wie in einem beliebigen vorstehenden Beispiel beschrieben.
-
Verschiedene Ausführungsformen können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beidem implementiert werden. Beispiele von Hardwareelementen können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z.B. Transistoren, Widerstände, Kondensatoren, Induktoren und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikbauelemente (PLD), Digitalsignalprozessoren (DSP), feldprogrammierbares Gate-Array (FPGA), Logikgates, Register, Halbleiterbauelement, Chips, Mikrochips, Chipsätze und so weiter aufweisen. Beispiele von Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API, Application Programm Interfaces), Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon aufweisen. Zu ermitteln, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert ist, kann in Übereinstimmung mit einer Zahl von Faktoren variieren, wie gewünschter Rechenrate, Strompegeln, Hitzetoleranzen, Verarbeitungszyklusbudget, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und anderen Design- oder Arbeitsleistungseinschränkungen.
-
Ein oder mehrere Aspekte von mindestens einer Ausführungsform können durch jeweilige Anweisungen implementiert sein, die auf einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors darstellt, die, wenn von einer Maschine gelesen, die Maschine veranlassen, Logik herzustellen, um die hierin beschriebenen Techniken durchzuführen. Solche Darstellungen, als „IP-Kerne“ bekannt, können auf einem greifbaren, maschinenlesbaren Medium gespeichert werden und an verschiedene Kunden oder Fertigungseinrichtungen zur Verfügung gestellt werden, um sie in die Herstellungsmaschinen zu laden, die tatsächlich die Logik oder den Prozessor bilden.
-
Manche Ausführungsformen können zum Beispiel unter Verwendung einer Maschine oder eines greifbaren computerlesbaren Mediums oder Artikels, das oder der eine Anweisung oder einen Satz von Anweisungen speichern kann, der die oder der, falls von einer Maschine ausgeführt, die Maschine veranlassen kann, ein Verfahren und/oder Betriebe in Übereinstimmung mit den Ausführungsformen durchzuführen, implementiert sein. Solch eine Maschine kann zum Beispiel eine beliebige geeignete Verarbeitungsplattform, Rechenplattform, ein Rechenbauelement, Verarbeitungsbauelement, Rechensystem, Verarbeitungssystem, einen Computer, Prozessor, oder dergleichen aufweisen und kann unter Verwendung einer beliebigen geeigneten Kombination von Hardware und/oder Software implementiert sein. Das maschinenlesbare Medium oder der Artikel kann zum Beispiel einen beliebigen geeigneten Typ von Speichereinheit, Speicherbauelement, Speicherartikel, Speichermedium, Datenspeicherbauelement, Datenspeicherartikel, Datenspeichermedium und/oder Datenspeichereinheit, zum Beispiel Speicher, entfernbare oder nichtentfernbare Medien, löschbare oder nichtlöschbare Medien, beschreibbare oder wiederbeschreibbare Medien, digitale oder analoge Medien, Festplatte, Diskette, Compact Disk Read Only Memory (CD-ROM), Compact Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optischen Datenträger, magnetische Medien, magneto-optische Medien, entfernbare Speicherkarten oder Datenträger, verschiedene Typen von Digital Versatile Disk (DVD), ein Band, eine Kassette oder dergleichen aufweisen. Die Anweisungen können einen beliebigen geeigneten Typ von Code aufweisen, wie Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code, verschlüsselten Code und dergleichen, der unter Verwendung einer geeigneten Hoch-, Nieder-, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache implementiert ist.
-
Ausführungsformen sind zur Verwendung mit allen Typen von Halbleiterintegrierten-Schaltungs- („IC“) Chips anwendbar. Beispiele diese IC-Chips weisen auf, sind aber nicht begrenzt auf, Prozessoren, Steuerungen, Chipsatzkomponenten, programmierbare Logikarrays (PLAs), Speicherchips, Netzwerkchips, Systeme-auf-einem-Chip (SoCs), SSD/NAND-Steuer-ASICs und dergleichen. Zusätzlich sind in manchen der Zeichnungen Signalleiterleitungen mit Linien dargestellt. Manche können sich unterscheiden, um grundlegendere Signalpfade anzugeben, ein Nummernetikett aufweisen, um eine Zahl von grundlegenden Signalpfaden anzugeben und/oder Pfeile an einem oder mehreren Enden aufweisen, um primäre Informationsflussrichtung anzugeben. Dies sollte jedoch nicht auf eine begrenzende Weise ausgelegt werden. Eher kann solch ein hinzugefügtes Detail in Verbindung mit einer oder mehreren beispielhaften Ausführungsformen verwendet werden, um einfacheres Verständnis einer Schaltung zu erleichtern. Beliebige dargestellte Signalleitungen, egal ob sie zusätzliche Informationen aufweisen oder nicht, können tatsächlich ein oder mehrere Signale aufweisen, die sich in mehreren Richtungen bewegen, und können mit einem beliebigen geeigneten Typ von Signalschema implementiert sein, z.B. digitale oder analoge Leitungen, die mit unterschiedlichen Paaren implementiert sind, optische Faserleitungen und/oder einzelendige Leitungen.
-
Beispielhafte Größen/Modelle/Werte/Spannen wurden vielleicht angegeben, obwohl Ausführungsformen nicht auf diese begrenzt sind. Da Fertigungstechniken (z.B. Fotolithografie) im Laufe der Zeit ausreifen, wird erwartet, dass Bauelemente kleinerer Größe gefertigt werden könnten. Zusätzlich können allgemein bekannte Strom/Masse-Verbindungen mit IC-Chips und anderen Komponenten innerhalb der Figuren zur Vereinfachung der Veranschaulichung und Besprechung und um gewisse Aspekte der Ausführungsformen nicht zu verschleiern, gezeigt sein oder auch nicht. Weiter können Anordnungen in Blockdiagrammform gezeigt sein, um zu vermeiden, Ausführungsformen zu verschleiern, und auch in Anbetracht der Tatsache, dass Einzelheiten in Bezug auf Implementierung solcher Blockdiagrammanordnungen stark von dem Rechensystem innerhalb dessen die Ausführungsform zu implementieren ist, abhängig sind, d.h. solche Einzelheiten sollten sehr wohl innerhalb des Wirkungsbereichs eines Fachkundigen sein. Wo spezifische Details (z.B. Schaltungen) vorgebracht sind, um Beispielausführungsformen zu beschreiben, sollte es für einen Fachkundigen ersichtlich sein, dass Ausführungsformen ohne diese spezifischen Details, oder mit Variation davon, ausgeübt werden können. Die Beschreibung ist daher als veranschaulichend, statt begrenzend anzusehen.
-
Der Ausdruck „gekoppelt“ kann hierin verwendet werden, um sich auf einen beliebigen Typ von Beziehung, direkt oder indirekt, zwischen den fraglichen Komponenten zu beziehen, und kann auf elektrische, mechanische, strömungstechnische, optische, elektromagnetische, elektromechanische oder andere Verbindungen zutreffen. Zusätzlich können die Ausdrücke „erstes“, „zweites“ usw. hierin verwendet werden, nur um die Besprechung zu erleichtern, und sie besitzen keine bestimmte zeitliche oder chronologische Signifikanz, außer es wird anderes angegeben.
-
Wie in dieser Anmeldung und in den Ansprüchen verwendet, kann eine Liste von Gegenständen, die mit dem Ausdruck „ein oder mehrere von“ verbunden sind, eine beliebige Kombination der aufgelisteten Ausdrücke meinen. Zum Beispiel können die Phrasen „ein oder mehrere von A, B oder C“ A; B; C; A und B; A und C; B und C; oder A, B und C meinen.
-
Fachkundige werden anhand der vorangehenden Beschreibung begrüßen, dass die breiten Techniken der Ausführungsformen in einer Vielfalt von Formen implementiert werden können. Deshalb, während die Ausführungsformen in Verbindung mit bestimmten Beispielen davon beschrieben wurden, sollte der wahre Umfang der Ausführungsformen nicht dahin begrenzt sein, da andere Modifikationen für den Fachkundigen bei einer Studie der Zeichnungen, Beschreibung und der folgenden Ansprüche ersichtlich werden.