-
GEBIET DER ERFINDUNG
-
Die vorliegende Offenbarung betrifft im Allgemeinen das Gebiet der Elektronik. Insbesondere betreffen einige Ausführungsformen der Erfindung generell das Management von fehlerhaften Blöcken für blockorientierten nicht flüchtigen Speicher.
-
HINTERGRUND
-
Während Verarbeitungsfähigkeiten bei Prozessoren verbessert werden, ist ein Belang die Geschwindigkeit, mit der auf Speicher durch einen Prozessor zugegriffen werden kann. Um beispielsweise Daten zu verarbeiten, muss ein Prozessor vielleicht zuerst Daten von einem Speicher abrufen. Nach dem Abschluss der Verarbeitung müssen die Resultate eventuell im Speicher gespeichert werden. Deshalb kann die Speichergeschwindigkeit eine direkte Auswirkung auf die Gesamtsystemleistung haben.
-
Eine andere wichtige Überlegung ist der Energieverbrauch. Bei mobilen Geräten, die von Batteriestrom abhängen, ist es beispielsweise sehr wichtig, den Energieverbrauch zu reduzieren, um dem Gerät zu ermöglichen, mobil zu arbeiten. Der Energieverbrauch ist auch für nicht mobile Geräte wichtig, da überschüssiger Energieverbrauch die Kosten (z. B. aufgrund von zusätzlicher Energieverwendung, zunehmenden Kühlungsanforderungen usw.) erhöhen, die Komponentenlebensdauer verkürzen, die Orte begrenzen kann, an denen ein Gerät eingesetzt werden kann, usw.
-
Festplattenlaufwerke stellen eine relativ kostengünstige Speicherlösung bereit und werden in vielen Computergeräten verwendet, um nichtflüchtigen Speicher bereitzustellen. Plattenlaufwerke verwenden jedoch viel Energie verglichen mit Flash-Speichern, da ein Plattenlaufwerk seine Disks bei relativ hoher Geschwindigkeit drehen und die Diskköpfe relativ zu den drehenden Disks bewegen muss, um Daten zu lesen/zu schreiben. Diese ganze physische Bewegung erzeugt Wärme und vergrößert den Energieverbrauch. Zu diesem Zweck migrieren einige mobile High-End-Geräte in Richtung auf Flash-Speicher-Geräte, die nicht flüchtig sind. Jedoch weist Flash-Speicher eine Anzahl von Nachteilen auf einschließlich beispielsweise relativ großer Spannungspegelanforderungen, um Bit-Zustände zu ändern, eine Verzögerung bei Schreibzeiten aufgrund der Anforderung eines Ladungspumpenhochrampens, der Notwendigkeit, einen Block von Zellen zu einer Zeit zu löschen usw.
-
Phasenwechselspeicher (PCM) ist eine andere Art von nicht flüchtigem Speicher, der höhere Leistung und/oder Beständigkeit im Vergleich mit einem Flash-Speicher-Gerät bereitstellen kann. Beispielsweise ermöglicht PCM, dass ein einzelnes Bit geändert werden kann, ohne zuerst einen gesamten Block von Zellen löschen zu müssen, die PCM-Struktur kann sich langsamer verschlechtern, der PCM-Datenzustand kann für einen relativ längeren Zeitraum umgelernt werden und PCM ist skalierbarer.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die 1, 4 und 5 zeigen Blockdiagramme von Ausführungsformen von Computersystemen, die zur Implementierung verschiedener hier erörterter Ausführungsformen verwendet werden können.
-
2 veranschaulicht ein Blockdiagramm von Komponenten, die verwendet werden können, um gemäß einiger Ausführungsformen zwischen SMA- und PCM-Adressen zu übersetzen.
-
3 ist ein Ablaufdiagramm, das eine Ausführungsform des Managements von fehlerhaften Blöcken veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung werden zahlreiche spezielle Details angeführt, um ein gründliches Verständnis verschiedener Ausführungsformen bereitzustellen. Verschiedene erfindungsgemäße Ausführungsformen können jedoch ohne diese spezifischen Details umgesetzt werden. In anderen Fällen wurden wohlbekannte Verfahren, Verfahrensweisen, Komponenten und Schaltungen nicht im Detail beschrieben, um die jeweiligen erfindungsgemäßen Ausführungsformen nicht in den Hintergrund rücken zu lassen. Ferner können verschiedene Aspekte von erfindungsgemäßen Ausführungsformen unter Verwendung verschiedener Mittel ausgeführt werden, wie beispielsweise integrierte Halbleiterschaltungen („Hardware”), computerlesbare Befehle, die in einem oder mehreren Programmen organisiert sind („Software”), oder irgendeine Kombination von Hardware und Software. Zum Zwecke dieser Offenbarung soll ein Verweis auf „Logik” entweder Hardware, Software oder irgendeine Kombination davon bedeuten.
-
Einige Ausführungsformen betreffen das Management und/oder die Unterstützung von Metadaten für nicht flüchtige Random Access Memory-(NVRAM-)-Geräte wie Phasenwechselspeicher-(PCM)-Geräte. Die hier beschriebenen Ausführungsformen sind jedoch nicht auf PCM begrenzt und können auf jede Art des Schreibens auf nicht flüchtigen Speicher (z. B. Phasenwechselspeicher-Switch (PCMS)) angewandt werden. Dementsprechend können die Begriffe „PCMS” und „PCM” hierin austauschbar sein. PCMS besteht aus einem PCM-Element mit einem neu verwendeten Ovonic Threshold Switch (OTS) in einem wahren Kreuzungspunkt-Array. Die Fähigkeit, Arrays von PCMS zu schichten oder zu stapeln, bietet die Skalierbarkeit zu höheren Speicherdichten, während die Leistungscharakteristiken von PCM aufrechterhalten werden. Bei anderen Ausführungsformen können die hier offenbarten Konzepte auf andere Geräte mit nicht flüchtigem Speicher (z. B. ferroelektrischer Transistor-Random Access Memory (FeTram), Nanodraht usw.) angewandt werden.
-
PCM-Geräte nutzen das Verhalten von Chalkogenidglas aus, sodass Wärme, die durch den Durchgang eines elektrischen Stromes erzeugt wird, dieses Material zwischen kristallinen und amorphen Zuständen wechseln lässt. Bei einer Ausführungsform werden PCM-Gerätezugriffe durch eine Address Indirection Table (AIT) übersetzt. Bei einigen Ausführungsformen verbessern spezifische Verwendungen von PCM die Leistung von Speicherlösungen, indem sie die einzigartigen Fähigkeiten, die durch PCM bereitgestellt werden (z. B. seine Lade-/Speicherfähigkeiten), verwenden. Beispielsweise wird bei einem Hybrid-Speichergerät PCM für Metadatenspeicherung verwendet, während der relativ kostengünstigere NAND-Speicher für Datenspeicherung verwendet wird.
-
Des Weiteren können die hier beschriebenen Speichertechniken in verschiedenen Computersystemen bereitgestellt werden (z. B. einschließlich Smartphones, Tablets, tragbare Spielkonsolen, Ultramobil-Personal-Computer (UMPCs) usw.), wie diejenigen, die unter Bezugnahme auf die 1–5 beschrieben sind. Insbesondere veranschaulicht 1 ein Blockdiagramm eines Computersystems 100 gemäß einer Ausführungsform der Erfindung. Das System 100 kann einen oder mehrere Prozessoren 102-1 bis 102-N beinhalten (hier im Allgemeinen als „Prozessoren 102” oder „Prozessor 102” bezeichnet). Die Prozessoren 102 können über eine Kopplungsstruktur oder einen Bus 104 kommunizieren. Jeder Prozessor kann verschiedene Komponenten einschließen, von denen einige der Klarheit wegen nur mit Bezug auf Prozessor 102-1 erörtert werden. Demnach kann jeder der verbleibenden Prozessoren 102-2 bis 102-N die gleichen oder ähnliche Komponenten einschließen, wie mit Bezug auf den Prozessor 102-1 erörtert.
-
Bei einer Ausführungsform kann der Prozessor 102-1 einen oder mehrere Prozessorkerne 106-1 bis 106-M (hier als die „Kerne 106” oder allgemeiner als „Kern 106” bezeichnet), einen Cache 108 (der bei verschiedenen Ausführungsformen ein gemeinsam benutzter Cache oder ein privater Cache sein kann) und/oder einen Router 110 einschließen. Die Prozessorkerne 106 können auf einem einzelnen integrierten Schaltungs-(IC)-Chip implementiert sein. Außerdem kann der Chip einen oder mehrere gemeinsam benutzte und/oder private Caches (wie beispielsweise der Cache 108), Busse oder Kopplungsstrukturen (wie beispielsweise ein Bus oder eine Kopplungsstruktur 112), Memory-Controller (wie beispielsweise diejenigen, die mit Bezug auf die 4 und 5) erörtert werden, oder andere Komponenten einschließen.
-
Bei einer Ausführungsform kann der Router 110 dazu verwendet werden, zwischen verschiedenen Komponenten des Prozessors 102-1 und/oder System 100 zu kommunizieren. Außerdem kann der Prozessor 102-1 mehr als einen Router 110 einschließen. Außerdem kann die Menge an Routern 110 miteinander kommunizieren, um ein Datenrouting zwischen verschiedenen Komponenten innerhalb oder außerhalb des Prozessors 102-1 zu ermöglichen.
-
Der Cache 108 kann Daten speichern (z. B. einschließlich Befehlen), die von einer oder mehreren Komponenten des Prozessors 102-1, wie beispielsweise den Kernen 106, verwendet werden. Der Cache 108 kann beispielsweise Daten, die in einem Speicher 114 gespeichert sind, lokal zwischenspeichern, damit die Komponenten des Prozessors 102 schneller darauf zugreifen können. Wie gezeigt in 1 kann der Speicher 114 über die Verbindung 104 in Kommunikation mit den Prozessoren 102 sein. Bei einer Ausführungsform kann der Cache 108 (der gemeinsam benutzt werden kann) verschiedene Level aufweisen, beispielsweise kann der Cache 108 ein Mid Level Cache und/oder ein Last Level Cache (LLC) sein. Ebenso kann jeder der Kerne 106 einen Level 1-(L1)-Cache (116-1) (hier im Allgemeinen als „L1-Cache 116” bezeichnet) einschließen. Verschiedene Komponenten des Prozessors 102-1 können direkt mit dem Cache 108 über einen Bus (z. B. den Bus 112) und/oder einen Memory-Controller oder Hub kommunizieren.
-
Wie gezeigt in 1, kann der Speicher 114 mit anderen Komponenten des Systems 100 durch einen Memory-Controller 120 gekoppelt sein. Bei einer Ausführungsform schließt der Speicher 114 zwei Level von Speicher (2LM) ein, die Teilsätze von Systemdisk-Level-Speicher (zusätzlich zu beispielsweise Laufzeitdaten) zwischengespeichert haben. Der Speicher 114 schließt einen ersten Level (der alternativ hier als „naher Speicher” bezeichnet wird) ein, der kleineren schnelleren Speicher umfasst, welcher beispielsweise aus DRAM hergestellt ist; und einen zweiten Level (der hier alternativ als „ferner Speicher” bezeichnet wird), der größeren und langsameren (in Bezug auf den nahen Speicher) flüchtigen Speicher (z. B. DRAM) oder nicht flüchtigen Speicher (z. B. Flash-Speicher) umfasst.
-
Bei solch einer Ausführungsform kann der Speicher 114 bei einigen Ausführungsformen nicht flüchtigen Speicher wie PCM-Speicher einschließen. Obwohl der Memory-Controller 120 als zwischen der Verbindung 102 und dem Speicher 114 gekoppelt gezeigt ist, kann der Memory-Controller 120 sich an anderer Stelle im System 100 befinden. Beispielsweise kann der Memory-Controller 120 oder Teile davon bei einigen Ausführungsformen innerhalb von einem der Prozessoren 102 bereitgestellt sein. Bei einigen Ausführungsformen kann das System 100 auch Logik (z. B. die PCM-Steuerlogik 125) einschließen, um Lese- oder Schreibanfragen zum Speicher 114 in einer optimalen Art und Weise auszugeben.
-
Bei einigen Ausführungsformen ist PCM als Speicher adressierbar, aber aufgrund ihrer gerätespezifischen Eigenschaften von begrenzter Schreibbeständigkeit, begrenztem Lese-Drift usw. können PCM-Geräte eine Neuzuordnung der softwaregenerierten Systemspeicheradresse (SMA) zu einer nicht flüchtigen Speicheradresse (NVMA) (die hier auch als eine PCM-Adresse bezeichnet wird) erfordern. Eine AIT wird bei einer Ausführungsform verwendet, um diese Neuzuordnung über einen Controller (z. B. die Logik 125 von 1) zu implementieren. Bei einer Ausführungsform schließt jeder Eintrag in der AIT die NVM-Adresse ein, die der Systemspeicheradresse entspricht, die neu zugeordnet wird, und Metadaten-Informationen (z. B. bereitgestellt durch Software). Auf die in der AIT gespeicherten Informationen wird von der Logik 125 zugegriffen, um ein optimales Management des PCM-Geräts bereitzustellen.
-
2 veranschaulicht ein Blockdiagramm von Komponenten 200, die verwendet werden können, um gemäß einiger Ausführungsformen zwischen SMA- und PCM-Adressen zu übersetzen. Wie zu sehen, ist eine Neuzuordnung, die auf NVM (SMA1) mit Metadaten zugreift, gezeigt, im Vergleich zu einer Neuzuordnung eines Zugriffs auf SMA2 schreibend mit „0” Metadaten und lesend auf die gleiche (SMA2), was einen Zugriff auf NVM/PCM-Speicher 204 vermeidet.
-
Bei einer Ausführungsform ist NVM/PCM-Speicher 204 in Blöcke und Unterblöcke aufgeteilt. Bei solch einer Ausführungsform stellen die Unterblöcke die Zugriffsfeinheit für Lese- und Schreibzugriffe dar. Bei einer weiteren Ausführungsform wird ECC (Fehlerkorrekturcode) beim Unterblock-Level aufrechterhalten, sodass der Unterblock über mehrere Geräte gestreift ist mit einem exklusiven ODER-(XOR)-Wert der in noch einem weiteren Gerät gespeichert ist. Deshalb wird eine ECC-Überprüfung beim Unterblock ausgeführt, wann immer ein Unterblock gelesen wird. Wenn es einen unkorrigierbaren Fehler gibt, werden die XOR-Inhalte für die Wiederherstellung verwendet.
-
Bei einer Ausführungsform können die Metadaten durch Software unter Verwendung einer neuen Befehlssatzarchitektur (ISA) bereitgestellt oder alternativ von einer gegenwärtigen Befehlssatzarchitektur abgeleitet werden. Die Metadaten-Informationen können von der CPU 102 (die hier auch austauschbar als „Prozessor” bezeichnet wird) zur PCM-Steuerlogik 125 gesendet werden, welche die Adressen unter Verwendung von AIT 202 neu zuordnet. Die Metadaten können die Logik 125 mit einer Semantik über die Daten bei der NVM/PCM-Adresse ausstatten, die sie verwenden kann, um optimalere Entscheidungen bezüglich der Geräteverwaltung zu treffen.
-
Ein Problem existiert bei der Implementierung von NVM/PCM als Speicher 204 in einer Zwei-Level-Speicherhierarchie, da PCM eine ziemlich hohe Ausfallhäufigkeit aufweist. Gemäß einer Ausführungsform stellt die Steuerlogik 25 einen Mechanismus für das Behandeln von fehlerhaften Blöcken im Speicher 204 bereit. Bei solch einer Ausführungsform, werden Speicher-204-Unterblöcke, die sich als behebbar darstellen oder eine große Anzahl davon, isoliert, sodass ein fehlerhafter Block bestimmt werden kann, bevor seine Inhalte nicht wiederherstellbar werden.
-
Bei einer Ausführungsform werden Inhalte eines Blocks zu einem anderen Block im Speicher 204 kopiert, bevor der Block rückgeordnet wird. Anschließend wird dem Ersatzblock die ursprüngliche Systemadresse für den rückgeordneten Block zugewiesen. Dementsprechend ist das Bewegen eines fehlerhalten Blocks zu einem unterschiedlichen Block einem Flash-Speicher-Verschleiß-Level-Bewegen sehr ähnlich, wobei der Unterschied der ist, dass der Unterblock rückgeordnet ist und nicht wieder verwendet werden kann.
-
Gemäß einer Ausführungsform schließt die Steuerlogik 125 eine Liste von freien Blöcken 220 ein, die implementiert ist, um den Ort des Ersatzblocks auszuwählen. Die Liste von freien Blöcken 220 erhält einen Satz von freien PCM-Blöcken aufrecht, der kontinuierlich gefüllt wird, um Blöcke zu ersetzen, die aus Gründen von Verschleiß oder fehlerhafter Blockbewegung rückgeordnet wurden. Bei einer Ausführungsform sind die freien Blöcke zusätzliche Blöcke, auf die Systemsoftware keinen Zugriff hat. Daher bleibt die Gesamtzahl an Blöcken, die von der Systemsoftwaregesehen wird, konstant. Der rückgeordnete Block wird in eine Liste von fehlerhaften Blöcken bewegt und kann nicht wieder verwendet werden.
-
Bei einer weiteren Ausführungsform können die Inhalte eines Blocks, der aufgrund von Überbeanspruchung verschlissen ist, auch zu einem neuen PCM-Block von der Liste von freien Blöcken 220 bewegt werden. Bei einer Ausführungsform kann die Steuerlogik 25 neue Blöcke, die in die Liste eingegeben werden sollen, unter Verwendung eines zufälligen Algorithmus auswählen. Jedoch können andere Ausführungsformen eine von einer Vielzahl von unterschiedlichen Herangehensweisen verwenden.
-
3 ist ein Ablaufdiagramm, das eine Ausführungsform eines Prozesses veranschaulicht, der durch die Steuerlogik 125 implementiert wird, um ein Management von fehlerhaften Blöcken auszuführen. Bei Verarbeitungsblock 310 wird ein fehlerhafter Block erkannt. Gemäß einer Ausführungsform können verschiedene Richtlinien verwendet werden, um zu bestimmen, ob ein Block fehlerhaft wurde und rückgeordnet werden muss. Zum Beispiel kann ein Block als fehlerhaft angesehen werden, wenn eine Anzahl von ECC-Fehlern einen vorbestimmten Schwellenwert überschritten hat, ein Hardwarefehler erkannt wurde oder basierend auf Fehlerzuständen vom PCM (z. B. Wärmestatistik). Bei einer alternativen Ausführungsform kann ein Block nach einer vorbestimmten Anzahl an Zugriffen als fehlerhaft betrachtet werden. Bei solch einer Ausführungsform verfolgt die Steuerlogik 125 die Anzahl an Zugriffen auf jeden Block und tauscht einen Block, der eine hohe Zugriffszählung aufweist, der einen Block mit einer niedrigen Zugriffszählung nach einer Anzahl von Zugriffen aufweist, die einen vorbestimmten Schwellenwert erreicht, aus. Dies kann durch Bewegen von Blöcken durch die Liste von freien Blöcken 220 oder durch das direkte Austauschen der Blöcke mit hohem und niedrigem Verschleiß erreicht werden.
-
Bei Entscheidungsblock 320 wird bestimmt, ob eine Anzahl von fehlerhaften Blöcken im PCM-DIMM, bei dem sich der Block befindet, einen vorbestimmten Schwellenwert überschritten hat. Wenn dies so ist, wird der DIMM unmittelbar rückgeordnet, Verarbeitungsblock 330. Sonst wird ein Ersatzblock von der Liste von freien Blöcken 220 ausgewählt, Verarbeitungsblock 340. Bei Verarbeitungsblock 350 werden die Inhalte des rückgeordneten Blocks in den Ersatzblock bewegt.
-
Bei Verarbeitungsblock 360 wird die AIT 202 aktualisiert, um die Systemadresse auf die Ersatzblockadresse zeigen zu lassen. Bei Verarbeitungsblock 370 ist der Ersatzblock für Zugriff verfügbar. Der oben beschriebene Mechanismus ermöglicht die Neuzuordnung von Blöcken in einem PCM-Speichersubsystem durch Gebrauch einer AIT.
-
4 zeigt ein Blockdiagramm eines Computersystems 400 in Übereinstimmung mit einer erfindungsgemäßen Ausführungsform. Das Computersystem 400 kann eine oder mehrere Zentraleinheiten (CPUs) 402 oder Prozessoren einschließen, die über ein Kopplungsstrukturnetzwerk (oder einen Bus) 404 kommunizieren. Die Prozessoren 402 können einen Universalprozessor, einen Netzwerkprozessor (der Daten verarbeitet, die über ein Computernetzwerk 403 kommuniziert werden), einen Anwendungsprozessor (wie diejenigen, die in Mobiltelefonen, Smartphones usw. verwendet werden) oder andere Typen eines Prozessors (einschließlich eines Reduced Instruction Set Computer-(RISC)-Prozessors oder eines Complex Instruction Set Computer (CISC)) einschließen. Verschiedene Arten von Computernetzwerken 403 können verwendet werden einschließlich verdrahteter (z. B. Ethernet, Gigabit, Fiber usw.) oder drahtlose Netzwerke (wie Mobilfunk, 3G (Handy-Technologie der dritten Generation oder 3rd Generation Wireless Format (UWCC)), 4G, Low Power Embedded (LPE) usw.). Außerdem können die Prozessoren 602 ein Einkern- oder Mehrkerndesign aufweisen. Die Prozessoren 402 mit einem Mehrkerndesign können verschiedene Arten von Prozessorkernen auf der gleichen IC-Chiplage integrieren. Ebenfalls können die Prozessoren 402 mit Mehrkerndesign als symmetrische oder asymmetrische Multiprozessoren implementiert sein.
-
Bei einer Ausführungsform können ein oder mehrere der Prozessoren 402 gleich oder ähnlich den Prozessoren 102 von 1 sein. Beispielsweise können ein oder mehrere der Prozessoren 402 einen oder mehrere der Kerne 106 und/oder Cache 108 einschließen. Ebenfalls können die Operationen, die mit Bezug auf die 1–5 erörtert werden, durch eine oder mehrere Komponenten des Systems 400 ausgeführt werden.
-
Ein Chipsatz 406 kann ebenfalls mit dem Kopplungsstrukturnetzwerk 404 kommunizieren. Der Chipsatz 406 kann einen Grafik- und Memory-Control-Hub (GMCH) 408 einschließen. Der GMCH 408 kann einen Memory-Controller 410 einschließen (der bei einer Ausführungsform gleich oder ähnlich dem Memory-Controller 120 von 1 ist, z. B. einschließlich der Logik 125), der mit dem Speicher 114 kommuniziert. Der Speicher 114 kann Daten speichern, einschließlich Sequenzen von Befehlen, die durch die CPU 402 oder jedes andere Gerät, das in dem Computersystem 400 eingeschlossen ist, ausgeführt werden. Bei einer erfindungsgemäßen Ausführungsform kann der Speicher 114 einen oder mehrere flüchtige Speicher-(oder Memory)-Geräte, wie beispielsweise Random Access Memory (RAM), dynamischer RAM (DRAM), synchroner DRAM (SDRAM), statischer RAM (SRAM) oder andere Arten von Speichergeräten einschließen. Nicht flüchtige Speicher können ebenfalls verwendet werden, wie beispielsweise eine Festplatte. Zusätzliche Geräte können über das Kopplungsstrukturnetzwerk 604, wie beispielsweise mehrere CPUs und/oder mehrere Systemspeicher, kommunizieren.
-
Der GMCH 408 kann ebenfalls eine Grafikschnittstelle 414 einschließen, die mit einem Grafikbeschleuniger 416 kommuniziert. Bei einer erfindungsgemäßen Ausführungsform kann die Grafikschnittstelle 414 mit dem Grafikbeschleuniger 416 über einen Accelerated Graphics Port (AGP) kommunizieren. Bei einer erfindungsgemäßen Ausführungsform kann ein Display 417 (wie ein Flachbildschirm, ein Touchscreen etc.) mit der Grafikschnittstelle 414 über beispielsweise einen Signalumwandler kommunizieren, der eine digitale Darstellung eines Bildes, das in einem Speichergerät, wie beispielsweise einem Videospeicher oder Systemspeicher, gespeichert ist, in Displaysignale übersetzt, die vom Display interpretiert und angezeigt werden. Die durch das Displaygerät erzeugten Displaysignale können verschiedene Steuergeräte durchlaufen, bevor sie vom Display 417 interpretiert und anschließend darauf angezeigt werden.
-
Eine Hub-Schnittstelle 418 kann dem GMCH 408 ermöglichen, mit einem Eingangs-/Ausgangs-Kontrollhub (ICH) 420 zu kommunizieren. Der ICH 420 kann eine Schnittstelle zu Ein-/Ausgangs-(I/O)-Geräten bereitstellen, die mit dem Computersystem 400 kommunizieren. Der ICH 420 kann mit einem Bus 422 mittels einer peripheren Brücke (oder Controller) 424, wie beispielsweise einer Peripheral Component Interconnect-(PCI)-Brücke, einem universellen seriellen Bus-(USB)-Controller oder anderen Arten von peripheren Brücken oder Controller kommunizieren. Die Brücke 424 kann einen Datenpfad zwischen der CPU 402 und peripheren Geräten bereitstellen. Andere Arten von Topologien können verwendet werden. Es können auch mehrere Busse mit dem ICH 620 kommunizieren, z. B. mittels mehrerer Brücken oder Controller. Außerdem können andere Peripheriegeräte in Kommunikation mit dem ICH 420 bei verschiedenen erfindungsgemäßen Ausführungsformen, Integrated Drive Electronics (IDE) oder Small Computer System Interface-(SCSI)-Festplatte(n), USB-Port(s), eine Tastatur, eine Maus, parallele(n) Port(s), serielle(n) Port(s), Diskettenlaufwerk(e), Unterstützung digitaler Ausgaben (z. B. Digital Video Interface (DVI)) oder andere Geräte einschließen.
-
Der Bus 422 kann mit einem Audiogerät 426, einem oder mehreren Diskettenlaufwerken 428 und einem Netzwerkschnittstellengerät 430 (das beispielsweise über eine verdrahtete oder drahtlose Schnittstelle in Kommunikation mit dem Computernetzwerk 403 steht) kommunizieren. Wie gezeigt, kann das Netzwerkschnittstellengerät 430 mit einer Antenne 431 gekoppelt sein (z. B. über eine Schnittstelle von Institute of Electrical and Electronics Engineers (IEEE) 802.11 (einschließlich IEEE 802.11a/b/g/n usw.), Mobilfunkschnittstelle, 3G, 4G, LPE usw.), um drahtlos mit dem Netzwerk 403 zu kommunizieren. Andere Geräte können über den Bus 422 kommunizieren. Ebenfalls können verschiedene Komponenten (wie beispielsweise das Netzwerkschnittstellengerät 430) bei einigen erfindungsgemäßen Ausführungsformen mit dem GMCH 408 kommunizieren. Zusätzlich können der Prozessor 402 und der GMCH 408 kombiniert sein, um einen einzelnen Chip zu bilden. Des Weiteren kann bei anderen erfindungsgemäßen Ausführungsformen der Grafikbeschleuniger 416 in dem GMCH 408 eingeschlossen sein.
-
Des Weiteren kann das Computersystem 400 flüchtigen und/oder nicht flüchtigen Memory (oder Speicher) einschließen. Beispielsweise kann Permanentspeicher eines oder mehrere der Folgenden beinhalten: Festspeicher (ROM), programmierbaren ROM (PROM), löschbaren PROM (EPROM), elektrischer EPROM (EEPROM), ein Diskettenlaufwerk (z. B. 628), eine Diskette, eine Compact Disk ROM (CD-ROM), eine Digital Versatile Disk (DVD), Flash-Memory, eine magnetooptische Disk oder andere Arten von nicht flüchtigen maschinenlesbaren Medien, die in der Lage sind, elektronische Daten (z. B. einschließlich Befehlen) zu speichern.
-
5 veranschaulicht ein Computersystem 500, das gemäß einer erfindungsgemäßen Ausführungsform in einer Punkt-zu-Punkt-(PtP)-Konfiguration angeordnet ist. Insbesondere zeigt 5 ein System, bei dem Prozessoren, Speicher und Eingabe-/Ausgabegeräte durch mehrere Punkt-zu-Punkt-Schnittstellen miteinander verbunden sind. Die Operationen, die mit Bezug auf die 1 bis 6 erörtert werden, können durch eine oder mehrere Komponenten des Systems 700 ausgeführt werden.
-
Wie veranschaulicht in 5 kann das System 500 mehrere Prozessoren einschließen, von denen der Klarheit wegen nur zwei, nämlich die Prozessoren 502 und 504, gezeigt sind. Die Prozessoren 502 und 704 können jeweils einen lokalen Memory-Controller-Hub (MCH) 506 und 508 einschließen, um die Kommunikation mit den Speichern 510 und 512 zu ermöglichen. Die Speicher 510 und/oder 512 können verschiedene Daten speichern, wie beispielsweise diejenigen, die mit Bezug auf den Speicher 114 der 1 und/oder 4 veranschaulicht sind. Außerdem können bei einigen Ausführungsformen die MCH 506 und 508 den Memory-Controller 120 und/oder die Logik 125 von 1 einschließen.
-
Bei einer Ausführungsform können die Prozessoren 502 und 504 einer der Prozessoren 402 sein, die mit Bezug auf 4 erörtert werden. Die Prozessoren 502 und 504 können über eine Punkt-zu-Punkt-(PtP)-Schnittstelle 514 unter Verwendung der PtP-Schnittstellenschaltungen 516 und 518 Daten austauschen. Die Prozessoren 502 und 504 können ebenfalls jeweils Daten mit einem Chipsatz 520 über einzelne PtP-Schnittstellen 522 und 524 unter Verwendung der Punkt-zu-Punkt-Schnittstellenschaltungen 526, 528, 730 und 532 austauschen. Der Chipsatz 520 kann weiter Daten mit einer Hochleistungsgrafikschaltung 534 über eine Hochleistungsgrafikschnittstelle 536, z. B. unter Verwendung einer PtP-Schnittstellenschaltung 537, austauschen. Wie beschrieben, unter Bezugnahme auf 4, kann die Grafikschnittstelle 536 bei einigen Ausführungsformen mit einem Anzeigegerät (z. B. Display 417) gekoppelt sein.
-
Wie gezeigt in 5, können sich ein oder mehrere der Kerne 106 und/oder Cache 108 von 1 innerhalb der Prozessoren 502 und 504 befinden. Andere erfindungsgemäße Ausführungsformen können jedoch in anderen Schaltungen, Logikeinheiten oder Geräten innerhalb des Systems 500 von 5 existieren. Des Weiteren können andere erfindungsgemäße Ausführungsformen auf mehrere Schaltungen, Logikeinheiten oder Geräte, die in 5 veranschaulicht sind, verteilt sein.
-
Der Chipsatz 520 kann mit einem Bus 540 unter Verwendung einer PtP-Schnittstellenschaltung 541 kommunizieren. Der Bus 540 kann ein oder mehrere Geräte aufweisen, die mit ihm kommunizieren, wie beispielsweise eine Busbrücke 542 und die I/O-Geräte 543. Über einen Bus 544 kann die Busbrücke 543 mit anderen Geräten, wie beispielsweise einer Tastatur/Maus 545, den Kommunikationsgeräten 546 (wie beispielsweise Modems, Netzwerkschnittstellengeräte oder andere Kommunikationsgeräte, die mit dem Computernetzwerk 403, wie beschrieben unter Bezugnahme auf Netzwerkschnittstellengerät 430 beispielsweise einschließlich über die Antenne 431 kommunizieren können), einem Audio-I/O-Gerät und/oder dem Datenspeichergerät 548, kommunizieren. Die Datenspeichergeräte 548 können Code 549 speichern, der durch die Prozessoren 502 und/oder 504 ausgeführt werden kann.
-
Bei vielen erfindungsgemäßen Ausführungsformen können die hier erörterten Operationen, z. B. mit Bezug auf die 1 bis 5, als Hardware (z. B. Schaltungen), Software, Firmware, Mikrocode oder Kombinationen davon implementiert werden, die als ein Computerprogramm-Produkt bereitgestellt werden können, z. B. einschließlich eines körperlichen (z. B. nicht flüchtigen) maschinenlesbaren oder computerlesbaren Mediums, auf dem Befehle (oder Softwareprozeduren) gespeichert sind, die verwendet werden, um einen Computer so zu programmieren, dass er einen hier erörterten Prozess ausführt. Der Begriff „Logik” kann auch beispielsweise Software oder Hardware und/oder Kombinationen von Software und Hardware einschließen. Das maschinenlesbare Medium kann ein Speichergerät, wie beispielsweise diejenigen, die mit Bezug auf die 1 bis 5 beschrieben sind, einschließen.
-
Zusätzlich können solche körperlichen computerlesbaren Medien als ein Computerprogramm-Produkt heruntergeladen werden, wobei das Programm von einem entfernten Computer (z. B. einem Server) zu einem anfragenden Computer (z. B. einem Client) mittels Datensignalen (wie in einem Trägersignal oder einem anderen Ausbreitungsmedium) über einen Kommunikationslink (z. B. einen Bus, ein Modem oder eine Netzwerkverbindung) übertragen werden kann.
-
Die Bezugnahme auf „eine Ausführungsform” in der Beschreibung bedeutet, dass eine bestimmte Funktionalität, Struktur oder ein bestimmtes Merkmal, das in Zusammenhang mit der Ausführungsform beschrieben wird, in mindestens eine Implementierung eingeschlossen sein kann. Das Auftreten des Ausdrucks „bei einer Ausführungsform” an verschiedenen Stellen in der Beschreibung kann sich stets auf die gleiche Ausführungsform beziehen oder auch nicht.
-
In der Beschreibung und den Ansprüchen können auch die Begriffe „gekoppelt” und „verbunden” gemeinsam mit ihren Ableitungen verwendet werden. Bei einigen erfindungsgemäßen Ausführungsformen kann „verbunden” verwendet sein, um anzuzeigen, dass zwei oder mehrere Elemente in direktem physischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt” kann bedeuten, dass zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt stehen. „Gekoppelt” kann aber auch bedeuten, dass sich zwei oder mehrere Elemente vielleicht nicht in direktem Kontakt miteinander befinden, jedoch trotzdem miteinander kooperieren oder zusammenwirken können.
-
Obwohl somit erfindungsgemäße Ausführungsformen sprachlich durch spezifische Strukturmerkmale und/oder methodische Akte beschrieben wurden, versteht sich, dass der beanspruchte Gegenstand nicht auf diese spezifischen Merkmale oder Akte beschränkt sein kann. Vielmehr werden die spezifischen Merkmale und Handlungen als beispielhafte Formen offenbart, die den beanspruchten Gegenstand implementieren.
-
Eine Vorrichtung umfasst Phasenwechselspeicher mit Switch-(PCMS)-Steuerlogik, um einen fehlerhaften Block innerhalb eines PCM-Gerätes zu erkennen, den fehlerhaften Block rückzuordnen und den fehlerhaften Block mit einem Ersatzblock durch Zuordnen der Adresse des fehlerhaften Blocks zum Ersatzblock zu ersetzen. Die Steuerlogik bewegt die Inhalte des rückgeordneten Blocks vor dem Rückordnen des fehlerhaften Blocks zum Ersatzblock.