-
Hintergrund
-
Bei
aktuellen Mikroprozessoren wird die Datenübertragung zwischen
der CPU und/oder Kernlogik und dem Systemspeicher zum Flaschenhals
der Systemleistung. Aufgrund der intrinsischen Kapazitäten
der Busse auf Systemebene kann eine beträchtliche Menge
an Leistung an der Eingabe-/Ausgabeschnittstelle eines Prozessors
abgeleitet werden, wenn binäre Daten übertragen
werden. Gleichzeitige Leistungs- und Timing-Optimierung zum Berücksichtigen
der Buslatenzzeit sind kritische Designrandbedingungen, die in Betracht
gezogen werden müssen, um die Systemleistung zu verbessern.
Weitere Verbesserungen werden an der Schnittstelle zu Massenspeicher-Speichereinrichtungen
benötigt.
-
Kurzbeschreibung der Zeichnungen
-
Der
Gegenstand, der als die Erfindung betrachtet wird, ist insbesondere
im Schlussbereich der Unterlagen aufgezeigt und eindeutig beansprucht.
Die Erfindung kann allerdings sowohl hinsichtlich der Organisation
als auch hinsichtlich eines Betriebsverfahrens zusammen mit Aufgaben,
Merkmalen und Vorteilen davon durch Bezugnahme auf die folgende
detaillierte Beschreibung am besten verstanden werden, wenn sie
zusammen mit den beigefügten Zeichnungen gelesen wird,
in welchen:
-
1 ein
Ausführungsbeispiel einer drahtlosen Einrichtung ist, die
eine hierarchische Speicherarchitektur veranschaulicht, die in Übereinstimmung
mit der vorliegenden Erfindung zum Zugreifen auf einen Speicher
verwendet werden kann;
-
2 eine
schematische Darstellung einer Konzentratoreinrichtung ist, die
eine hierarchische Speicherarchitektur in Übereinstimmung
mit der vorliegenden Erfindung ermöglicht;
-
3 eine
Blockdarstellung der Adressierung innerhalb der Konzentratoreinrichtung
ist;
-
4 eine
schematische Darstellung einer 2 x 2 Phasenwechselspeicher(engl.:
Phase change memory, PCM)-Inhalt-adressierbarer Speicher-(engl.:
content addressable memory; CAM)-Matrix (engl. Array) in Übereinstimmung
mit der vorliegenden Erfindung ist; und
-
5 ein
programmiertes Beispiel der PCM CAM-Matrix ist, die in 4 gezeigt
ist.
-
Es
wird begrüßt werden, dass zur Vereinfachung und
Klarheit der Veranschaulichung in den Figuren veranschaulichte Elemente
nicht notwendigerweise maßstabsgetreu gezeichnet sind.
Zum Beispiel können die Dimensionen von manchen Elementen
bezüglich anderen Elementen zur Klarheit überhöht
sein. Ferner wurden Bezugszeichen innerhalb der Figuren wiederholt,
wo es als geeignet erachtet wurde, um entsprechende oder analoge
Element zu bezeichnen.
-
Detaillierte Beschreibung
-
In
der folgenden detaillierten Beschreibung sind zahlreiche spezifische
Details dargelegt, um ein gründliches Verständnis
der Erfindung bereitzustellen. Allerdings kann, wie von dem Fachmann
verstanden werden wird, die vorliegende Erfindung ohne diese spezifischen
Details ausgeführt werden. Bei anderen Beispielen sind
wohlbekannte Verfahren, Prozeduren, Komponenten und Schaltkreise
nicht im Detail beschrieben, um die vorliegende Erfindung nicht
zu verschleiern.
-
Es
können die Ausdrücke „gekoppelt” und „verbunden” zusammen
mit deren Ableitungen verwendet werden. Es sollte verstanden werden,
dass diese Ausdrücke nicht als Synonyme füreinander
gedacht sind. Stattdessen wird in besonderen Ausführungsbeispielen „verbunden” verwendet,
um anzugeben, dass zwei oder mehr Elemente in direktem physikalischen
oder elektrischen Kontakt miteinander stehen. „Gekoppelt” kann
verwendet werden, um anzugeben, dass zwei oder mehr Elemente entweder
in direktem oder indirektem physikalischen oder elektrischen Kontakt
(mit anderen zwischen ihnen zwischen liegenden Elementen) miteinander
stehen und/oder, dass die zwei oder mehr Elemente miteinander kooperieren
oder interagieren (zum Beispiel wie in einer Ursache-Wirkungs-Beziehung).
-
Das
in 1 veranschaulichte Ausführungsbeispiel
einer drahtlosen Architektur zeigt ein System 10, das einen
Prozessor aufweist, der mit mehreren Speichereinrichtungen in einer
hierarchischen Anordnung in Übereinstimmung mit der vorliegenden
Erfindung kommuniziert. Obwohl die Figur ein Ausführungsbeispiel
mit drahtloser Kommunikation zeigt, sollte bemerkt werden, dass
die vorliegende Erfindung nicht auf elektronische Einrichtungen
begrenzt ist, die in einer drahtlosen Umgebung kommunizieren und
andere, nicht-drahtlose Anwendungen können von der vorliegenden
Erfindung Gebrauch machen.
-
Wie
in diesem drahtlosen Ausführungsbeispiel gezeigt ist, kann
das System 10 eine oder mehrere Antennenstrukturen 14 aufweisen,
um es Funkgeräten zu ermöglichen, miteinander
mit anderen über-den-Äther Kommunikationseinrichtungein
(engl.: over the air communication devices) zu kommunizieren. Als
solches kann das System 10 als eine zellulare Einrichtung
oder eine Einrichtung betrieben werden, die in Drahtlosnetze betrieben
wird, wie beispielsweise Drahtlosübertragung (WiFi, engl.:
Wireless Fidelity), das die zugrunde liegende Technologie des Drahtlosnetzes
(W-LAN, engl.: Wireless Local Area Network) basierend auf den IEEE 802.11 Spezifikationen
bereitstellt, WiMax und Mobile WiMax, basierend auf IEEE
802.16-2005, Breitband-Code-Vielfachzugriff (engl.: wideband
code division multiple access, WCDMA), und globales System zur Mobilkommunikation
(GSM, engl.: global system for mobile communications) Netze, obwohl
die vorliegende Erfindung nicht darauf beschränkt ist,
nur in diesen Netzwerken betrieben zu werden. Die Funksubsysteme,
die auf derselben Plattform des Systems 10 angeordnet sind,
stellen die Kommunikationsfähigkeit mit unterschiedlichen
Frequenzbändern in einem RF/Ortsraum mit anderen Einrichtungen
in einem Netzwerk bereit. Es sollte verstanden werden, dass der
Schutzbereich der vorliegenden Erfindung nicht auf die Arten von,
die Anzahl von oder die Frequenz der Kommunikationsprotokolle, die
von dem System 10 verwendet werden können, beschränkt
ist.
-
Das
Ausführungsbeispiel veranschaulicht die Kopplung der Antennenstruktur 14 mit
einem Transceiver 12 (Sende-Empfänger 12),
um Modulation/Demodulation Rechnung zu tragen. Im Allgemeinen kann
der analoge Frontend-Transceiver 12 ein eigenständiger
diskreter oder integrierter analoger Funkfrequenz (engl.: radio
frequency, RF) Schaltkreise sein oder der Transceiver 12 kann
innerhalb eines Prozessors 20 eingebettet sein, der ein
oder mehrere Prozessorkerne 16 und 18 hat. Die
mehreren Kerne ermöglichen es, zu verarbeitende Arbeitslasten
unter den Kernen aufzuteilen und Basisbandfunktionen und Anwendungsfunktionen
zu handhaben. Der Front-Side-Bus (FSB) 22 stellt eine Schnittstelle
zwischen den Prozessor- und Chip-Satz-Komponenten und dem Systemspeicher
bereit. Der FSB ist eine Simultanverarbeitungs(engl. multiprocessing)-Schnittstelle
zu Prozessoren, zum Speicher und I/O, die verwendet werden kann,
um eine Kommunikation oder Information zwischen dem Prozessor und
dem Speicher (engl. memory storage) bereitzustellen. Die FSB-Signale
können eine Gunning-Transceiver-Logik(GTL+)-Signalisierungstechnologie
verwenden, die differenzielle Eingabepuffer hat, welche eine Referenzhöhe
von den Empfängern verwenden, um zu bestimmen, ob ein Signal
eine logische 0 oder eine logische 1 ist, obwohl der Schutzbereich
der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt
ist.
-
Eine
oder mehrere Konzentratoreinrichtungen 30 sind mit dem
FSB 22 verbunden und werden zum Kanal zum Zugreifen auf
andere Speichereinrichtungen. Ausführungsbeispiele der
vorliegenden Erfindung, wie in der Figur veranschaulicht, erlauben
es der Konzentratoreinrichtung 30 im Tandem mit einem zusätzlichen
Speicher verbunden zu werden. Diese Tandemverbindung ist durch die
Platzierung des Speichers 40 und/oder des Speichers 50 hinter
der Konzentratoreinrichtung 30 gezeigt. Bei dieser Anordnung
separiert die Konzentratoreinrichtung 30 den NAND, den
RAM und andere Speichereinrichtungen vom FSB 22, wodurch die
intrinsische Kapazität, die mit dem Systemebenen-Bus im
Zusammenhang steht, verringert wird.
-
Das
Ausführungsbeispiel veranschaulicht auch eine weitere Konzentratoreinrichtung 30 mit
einem Front-Side-Bus Anschluss, der mit dem FSB 22 verbunden
ist, und einem Back-Side Anschluss, der mit einem Bus 32 verbunden
ist. Dieser Back-Side Anschluss kann eingerichtet sein, um über
einen Halb-Duplex bidirektionalen Bus, wie er in der Figur gezeigt
ist, zu kommunizieren oder er kann eingerichtet sein, um über
einen Voll-Duplex bidirektionalen Bus zu kommunizieren. Der Stromaufwärtspfad,
der sich von dem an der Back-Side angebrachten Speicher zu der Konzentratoreinrichtung
erstreckt, muss nicht über die exakt identische Bandbreite
wie der Stromabwärtspfad verfügen, der sich von
der Konzentratoreinrichtung zu dem an der Back-Side angebrachten
Speicher erstreckt. Es können mehrere Speichereinrichtungen,
die durch den Speicher 60 dargestellt sind, mit dem Bus 32 verbunden
sein.
-
Es
ist eine weitere Konzentratoreinrichtung 30 gezeigt, die
einen Front-Side-Bus Anschluss aufweist, der mit dem Bus 32 verbunden
ist, und einen Back-Side Anschluss, der mit einem Bus 34 verbunden
ist. Speichereinrichtungen, die durch den Speicher 70 dargestellt
sind, sind mit dem Bus 34 verbunden. Folglich wurde gezeigt,
dass geeignet angeordnete Konzentratoreinrichtung(en) 30 eine
Abfolge von Speichereinrichtungen ermöglichen und das Anbringen
einer Speichertiefe an einer Prozessorsteuerung mit einer begrenzten
Pinzahl. Konzentratoreinrichtung(en) 30 öffnen
den Systemmassenspeicher und machen eine hierarchische Speicherarchitektur
mit einer Speicherkapazität möglich, die in erster
Linie durch praktische physikalische Randbedingungen begrenzt ist.
-
Es
sollte bemerkt werden, dass die Konzentratoreinrichtung 30 und
die flüchtigen und nicht flüchtigen Speicher getrennt
gepackt werden können. Alternativ kann die Konzentratoreinrichtung 30 mit
den flüchtigen und nicht flüchtigen Speichereinrichtungen
in einem Stapelprozess kombiniert werden. Die Anschlussfläche auf
einer Platte (engl.: board) kann durch Platzieren der Konzentratoreinrichtung 30 in
einer Mehrchippackung mit anderen Speicherkomponenten und Rechnereinrichtungen
verringert werden. Auch der Prozessor 20 kann in dieser
Mehrchippackung enthalten sein.
-
Die
Konzentratoreinrichtung 30 sitzt zwischen dem Prozessor 20 und
den Speichereinrichtungen, die unterschiedliche Speichermechanismen
und unterschiedliche Schnittstellenformate aufweisen können.
Die Konzentratoreinrichtung stellt eine Schnittstelle bereit, um
unterschiedlichen Speicherformaten Rechnung zu tragen, wie beispielsweise
NOR mit Direktzugriff-Lesen, NAND, das Seitenzugriffe bereitstellt
und RAM, das DDR ermöglicht.
-
2 ist
ein Blockdiagramm der Konzentratoreinrichtung 30, die,
wie vorher ausgeführt, Daten zwischen dem Prozessor 20 und
anderen Arten von flüchtigen und nicht flüchtigen
Speichern durchleitet, die mit den Back-Side Anschlüssen
verbunden sind. Die Konzentratoreinrichtung 30 ergreift
Information durch den Front-Side Anschluss auf und stellt eine Hochgeschwindigkeitskommunikation
mit dem FSB 22 bereit, stellt eine Unterstützung
für direktes Schreiben bereit und stellt Hochgeschwindigkeitsdoppeldatenraten(engl.:
high speed Double Data Rate, DDR)-Bus-Transaktionen bereit, die
Daten bei doppelter Taktrate übertragen. Ein DDR-Multiplexer 210 ist
mit dem Front-Side-Bus Anschluss 206 verbunden und stellt
die Schnittstelle zwischen dem FSB 22 und den gemischten
Speicherarten bereit, die beispielsweise PCM, MRAM, FRAM, SRAM und
Pseudo-SR enthalten können.
-
Zur
Steuerung von Speicheroperationen weist die Konzentratoreinrichtung 30 einen
Seitenpuffer, Befehlsschlange und einen Statusblock 212 auf,
der den Befehlssatz interpretiert und Speicherbefehle ausstellt. Eine
interne Steuerung handhabt die Betriebstimings und verifiziert die
korrekte Ausführung der Speicherbefehle, wie beispielsweise
Schreibbefehle, Lesebefehle und Flush-Befehle. Zusätzlich
können in dieser Architektur eine Menge von Befehlen, wie
beispielsweise „Status lesen”, „Kopieren”, „Bewegen” oder „Fehlerkorrektur” unterstützt
werden. Die Steuerung versorgt das Statusregister, dessen Registerbits
Information über den Status tragen und berichtet über
jede Art von Fehlern, die während Speicheroperationen auftreten
können. Die Statusregisterausgabe kann gelesen werden,
um den Fortschritt während der Befehlsoperationen zu überwachen
oder das Ergebnis der Speicheroperationen zu berichten.
-
Der
Seitenpuffer hält verschiedene Wörter, die als
eine Gruppe in einem Speicherzellenblock programmiert werden sollen
und puffert auch eine große Menge von Daten, die aus dem
Speicherzellenblock gelesen werden soll. Der Seitenpuffer ist mit
Wörtern gefüllt, die programmiert werden sollen,
bevor der Programmierbefehl ausgestellt wird, der dann die Daten
aus dem Seitenpuffer in die Speicherzellen in die Speichermatrix überträgt.
Auf diese Weise wird eine Seite programmiert und nachdem die Programmier-
und Überprüfprozesse abgeschlossen sind, können
die Programmier- und Überprüfprozesse für
eine nächste Seite ausgeführt werden. Ein Lesebefehl
wird ausgeführt, um Daten aus den Speicherzellen in den
Seitenpuffer zu lesen, die dann daraus übertragen werden.
Es sollte bemerkt werden, dass die Programmierung vor der Übertragung
all dieser Daten über die Hostschnittstelle gestartet werden
kann. Die Daten können dann durch die Hierarchie mit einiger
Pufferhöhe abwärts schreiten, bis eine ausreichende
Informationsmenge an das Ziel zur Einleitung der Programmierung übertragen
wurde.
-
Ein
Flush-Pin 208 löst das Ausgeben der Inhalte des
RAM 260 zu dem PCM, d. h. der ersten Speichermatrix 220 und
der zweiten Speichermatrix 230 aus. Zusätzlich
geben Flush-Befehle mit einer zugehörigen Adresse die RAM-Inhalte
an den PCM-Speicher (der durch Blöcke 214 bezeichnet
ist) aus. Die Flush-Funktionalität ist nützlich
zur „Kontrollpunktübergabe” (engl.: check-pointing)
von RAM-Inhalten an einen nicht flüchtigen Speicher und
zur Verwendung während Leistungsverlustsszenarien, bei
denen die Inhalte des RAM autonom in den nicht flüchtigen
Speicher kopiert werden. Bei manchen Ausführungsbeispielen
kann die Konzentratoreinrichtung 30 als ein Bus-Master
für den Front-Side-Bus 22 agieren, um die Inhalte
des RAM oder DRAM in den nicht flüchtigen Speicher in der
Hierarchie der Einrichtung 30 zu kopieren, was es anderen Komponenten
des Systems ermöglicht, ausgeschaltet zu werden.
-
Es
wird ein Konfigurationsregister 216 verwendet, um den Standardbetrieb
der Konzentratoreinrichtung 30 zu setzen. Die Befehlsschnittstelle
kann verwendet werden, um das Konfigurationsregister zu aktualisieren
und das Verhalten der Konzentratoreinrichtung zu verändern.
Das Konfigurationsregister 216 wird verwendet, um die Art
des Buszugriffs einzurichten, den der Speicher ausführt,
und, um alternative Betriebsmodi bereitzustellen.
-
Die
Mehrbankarchitektur, wie durch die erste Speichermatrix 220 und
die zweite Speichematrix 230 veranschaulicht, stellt eine
Flexibilität zum Aufteilen des Codes und der Datenräume
innerhalb der Speichermatrizen bereit. Die dualen Operationen ermöglichen
es, dass Code von einer Bank ausgeführt wird, während die
andere Bank programmiert oder gelöscht wird. Während
des Programmierens oder Löschens in einer Bank sind Leseoperationen
in der anderen Bank möglich. Bei einem Ausführungsbeispiel
sind die ersten und zweiten Speichermatrizen Phasenwechselspeicher(engl.:
Phase change memory, PCM)-Matrizen, die auch als Phasenwechsel-Schreib-Lese-Speicher
(engl.: Phase change random access memory, PRAM oder PCRAM) bezeichnet
werden, Ovonic Unified Memory (OUM) oder chalkogenider Schreib-Lese-Speicher
(engl.: chalcogenid random access memory, CRAM). Die Matrizen aus
PCM-Zellen weisen Legierungen aus Elementen der Gruppe VI des Periodensystems
auf, Elemente wie beispielsweise Te oder Se, die auch als calkogenide
oder chalkogenische Materialien bezeichnet werden.
-
Chalkogenide
können vorteilhafterweise bei Phasenwechselspeicherzellen
verwendet werden, um Datenerhalt bereitzustellen, und sie bleiben,
sogar dann stabil, wenn der Strom von dem nicht flüchtigen
Speicher getrennt ist. Nimmt man als Beispiel für das Phasenwechselmaterial
Ge2Sb2Te5, zeigen sich zwei oder mehr Phasen mit
unterschiedlichen elektrischen Eigenschaften, die nützlich
zur Speicherung sind. Das chalkogenisch Material kann zwischen unterschiedlichen
Zuständen elektrisch geschaltet werden, die zwischen dem
amorphen und den kristallinen Zustand liegen, was sie zu einer Mehrebenen-Speicherfähigkeit
führt.
-
Bei
einem anderen Ausführungsbeispiel können die erste
und zweite Speichermatrix 220 und 230 magnetische
Schreib-Lese-Speicher(engl.: magnetic random access memory, MRAM)-Zellen
sein, wobei magnetische Speicherelemente aus zwei ferromagnetischen
Platten gebildet werden (nicht gezeigt), die an einem Schnittspunkt
von einer Zeilen- und einer Spaltenleitung angeordnet sind und sie
können durch eine magnetische Tunnelübergang(engl.:
magnetic tunnel junction, MTJ)-Einrichtung (nicht gezeigt) gewählt
werden. Strom, der an die Zeilenleitung in einer Richtung weitergegeben
wird, verursacht ein Magnetfeld, das auf die MRAM-Zelle wirkt und
die MRAM-Zelle in Richtung eines binären Zustands vorspannt.
Aufgrund eines magnetischen Tunneleffekts verändert sich
der elektrische Widerstand der Speicherzelle, basierend auf der
Orientierung der Felder in den zwei Platten.
-
Bei
einem weiteren Ausführungsbeispiel können die
erste und zweite Speichermatrix 220 und 230 ferroelektrische
Schreib-Lese-Speicher(engl.: ferro electric random access memory,
FRAM)-Zellen sein. Die Transistor-Kapazitätzelle (nicht
gezeigt) weist das ferroelektrische Material auf, wobei ein bi-stabiles
Atom verschoben wird, um zwei stabile Polarisationszustände
zu bilden. Speicherzellendaten können durch positive oder
negative Orientierung der Dipole des ferroelektrischen Materials über
eine angelegte Polarisationsspannung geschrieben werden. Eine Schreibsteuerschaltung
erkennt die Richtung der stabilen elektrischen Polarisation, die
in dem Raum verbleibt, sogar nachdem das elektrische Feld entfernt
ist.
-
Ein
Block, der als Inhalt-adressierbarer Speicher (engl.: block labled
content address of a memory, CAM), Adress-Neuabbildung (engl.: address
remapping), Kompression und Zwischenspeicheroptimierung 240 (engl.:
cache optimisation) gekennzeichnet ist, stellt verschiedene Funktionen
bereit. Die CAM-Matrix(zen) können verwendet werden, um
die Adressen defekter Zeilen oder Spalten der ersten Speichermatrix 220 und/oder
der zweiten Speichermatrix 230 oder von Speichern, die
an dem Back-Side-Bus angebracht sind, verwendet werden. Bei einem
Ausführungsbeispiel dieser Erfindung wird der CAM für
ein NAND-Speicher verwendet, der an dem Back-Side-Bus angebracht
ist, um um schlechte Blöcke herum abzubilden (engl. map). Der
CAM stellt den Zugriff auf Neuabbildungs-Information in einigen
10 Nanosekunden im Gegensatz zum Beispiel hunderten von Nanosekunden
oder sogar Mikrosekunden bereit, die nötig sein würden,
um den Speicher zu durchsuchen, um diese Abbildungsinformation aufzudecken.
Der CAM wird auch verwendet, wo NAND-Inhalte in dem PCM zwischengespeichert
(engl. cached) werden. In diesem Fall kann der CAM verwendet werden,
um schnell sicher zu stellen, ob die Zielinhalte aktuell in dem
PCM gespeichert sind und, in dem Fall, dass dem so ist, wo der(die)
Adressort(e) gespeichert ist(sind).
-
3 ist
ein Block, der die Adressierung innerhalb der Konzentratoreinrichtung
darstellt. Die Konzentratoreinrichtung 30 empfängt
durch den Front-Side-Bus Anschluss 206 die Adressinformation,
die für den Zugriff auf die Speichereinrichtungen verwendet
werden kann, die an verschiedenen Orten in dieser Hierarchie angebracht
sind. Diese NAND-Adressinformation kann oder kann auch nicht neu
abgebildet werden, so wie sie den Hierarchiebaum durchläuft.
Für die NAND-Anschluss-Adressierung kennt jede Konzentratoreinrichtung 30 über
einen Ermittlungsprozess die Arten der Speichereinrichtungen, die
mit den Back-Side Anschlüssen verbunden sind. Eine interne
Nachschlagtabelle (engl.: look-up table) verknüpft „lange” Adressen
mit „kurzen” Adressen. Die langen Adressen weisen
einen vollständigen Plan (engl.: road map) zu dem Zielanschluss auf,
wie zum Beispiel eine „0” den Anschluss auf der
Linken darstellen kann und eine „1” den Anschluss
auf der Rechten darstellen kann. Die kurzen Adressen können
für eine Inter-Einrichtungskommunikation verwendet werden
und weisen eine sequentielle Liste gültiger Anschlüsse
für den unteren Baum auf.
-
Für
die PCM-Adressabbildung kennt jede Konzentratoreinrichtung über
einen Ermittlungsprozess die Arten von Speicher, die mit seinen
Back-Side Anschlüssen verbunden sind. Jede Konzentratoreinrichtung 30 weist
eine Nachschlagetabelle für die Verknüpfung von „langen” Adressen
mit „kurzen” Adressen auf. Der Plan kann wiederum
eine „0” haben, um den Anschluss auf der Linken
darzustellen und eine „1”, um den Anschluss auf
der Rechten darzustellen. Die kurzen Adressen können für
die Inter-Einrichtungskommunikation verwendet werden und weisen
eine sequentielle Liste von gültigen Anschlüssen
für den unteren Baum auf.
-
4 zeigt
einen Bereich des PCM CAM, der zur Vereinfachung der Beschreibung
und zur vereinfachten Veranschaulichung als eine 2×2-Matrix
gezeigt ist. Jede CAM-Zelle 300, 310, 320 und 330 weist
zwei PCM-Speicherorte auf, um einem Bit zu entsprechen. Die Figur
zeigt einen ternären CAM, der die Fähigkeit hat,
in der Lage zu sein, einige Bits zu ignorieren und folglich effektiv „nicht
darum kümmern”-Zustände bereitzustellen
(engl.: don't care states).
-
Die
zwei PCM-Speicherelemente in jeder Zelle können als „einn” programmiert
werden oder als „aus” programmiert werden. Der
CAM vergleicht jedes Bit des Eingabemusters mit dem Gegenstück-Wert
(engl.: match value), der in der Speichermatrix gespeichert ist.
In Abhängigkeit des Zustands der Eingaben I0 und
I1 bezüglich des Zustands der Zellen
sind die „PASS”-Drähte (engl.: match
wires) nach unten gezogen (engl.: pulled down) oder nicht nach unten
gezogen (engl.: not pulled down) und stellen eine statische Ausgabe
bereit, die repräsentativ für die Zustände
der internen Speicherzellen ist. Eine Vergleichsschaltung (nicht
gezeigt) an der Oberseite der MATCH-Leitungen gibt an, ob alle Eingaben
zu dem Inhalt passen. Es sollte bemerkt werden, dass Flag-Bits (bzw.
Flaggen-Bits) zu dem Ende der CAM-Matrix hinzugefügt werden
können, um 1 Bit-Fehler und auch unbenutzte Elemente anzugeben,
die für die Reparatur verwendet werden können.
-
5 zeigt
denselben Bereich des PCM-CAM mit in der Matrix programmierten und
gespeicherten Daten wie 4. Bei diesem Beispiel weist
die CAM-Zelle 300 einen Speicherort 302 auf, der
programmiert ist, ein „1” zu speichern und einen
Speicherort 304, der programmiert ist, eine „0” zu
speichern. Die mit dem Speicherort 302 verbundene Auswahleinrichtung
in der CAM-Zelle 300 empfängt die Suchdaten I0, während die Auswahleinrichtung,
die mit dem Speicherort 304 verbunden ist, das Komplementäre
der Suchdaten I0 empfängt. Die
CAM-Zelle 310 weist einen Speicherort 312 auf,
der programmiert ist, eine „0” zu speichern und einen
Speicherort 314, der programmiert ist, eine „1” zu
speichern. Die Auswahleinrichtung in der CAM-Zelle 310,
die mit dem Speicherort 312 verbunden ist, empfängt
die Suchdaten, die mit I0 bezeichnet sind,
während die Wahleinrichtung, die mit dem Speicherort 314 verbunden
ist, das Komplementäre der Suchdaten I0 empfängt.
-
Ferner
weist die CAM-Zelle 320 basierend auf diesem Beispiel einen
Speicherort 322 auf, der programmiert ist, eine „0” zu
speichern, und einen Speicherort 324, der programmiert
ist, eine „1” zu speichern. Die Auswahleinrichtung
in der CAM-Zelle 320, die mit dem Speicherort 322 verbunden
ist, empfängt die Suchdaten I1,
während die Auswahleinrichtung, die mit dem Speicherort 324 verbunden
ist, das Komplementäre der Suchdaten I1 empfängt.
Die CAM-Zelle 330 weist einen Speicherort 332 auf,
der programmiert ist, eine „0” zu speichern und
einen Speicherort 334, der programmiert ist, eine „1” zu
speichern. Die Auswahleinrichtung in der CAM-Zelle 330,
die mit dem Speicherort 332 verbunden ist, empfängt
die Suchdaten, die mit I1 bezeichnet sind,
während die Auswahleinrichtung, die mit dem Speicherort 334 verbunden
ist, das Komplementäre der Suchdaten I1 empfängt.
-
Während
des Betriebs ist eine MATCH-Ausgabe eine Funktion des Zustands von
einer Eingabe und der Zustand der zwei Speicherelemente in einer
CAM-Zelle in der CAM-Matrix. Der Block
300 zeigt beispielhaft eine
Eingabe I
0 und eine komplementierte I
0-Eingabe zusammen mit der einen Ausgabe,
die als MATCH0 bezeichnet ist. Die Speicherzelle
300 hat
zwei PCM-Speicherelemente, d. h. die Speicherelemente, die als „Element
302” und „Element
304” bezeichnet
sind, welche entweder als „ein” oder „aus” programmiert
werden können. Die folgende Tabelle beschreibt die Funktionalität
der MATCH0-Ausgabe, basierend auf dem Zustand von I
0 und
dem programmierten Werten:
Element0 | Element
1 | MATCH0-Ausgabe |
ein | aus | passt,
wenn I0 = 0, passt nicht, wenn I0 = 1; |
aus | ein | passt,
wenn I0 = 0, passt nicht, wenn I0 = 1; |
ein | ein | nicht
verwendet (schaltet die Passüberprüfung ab – MATCH0 wird
zu keiner Eingabe passen); |
aus | aus | ignoriere
Eingabe-Bit I0. |
-
Zurückkehrend
zu 2 und dem Block, der als Inhalt-adressierbarer
Speicher (CAM), Adress-Neuabbildung, Kompression und Zwischenspeicheroptimierung 240 gekennzeichnet
ist, kann die Datenkompressionsfunktion effektiv beim Verwalten
dieses Speicher basierten Speichersystems verwendet werden. Eine Vielzahl
von Datenkompressionsalgorithmen, die an verschiedene Standards
und Formate adaptierbar sind, werden unterstützt, um die
Schreibbandbreite und die Speicherkapazität zu erweitern.
Die Neuabbildungsfunktion ermöglicht es, den Einschaltcode
für die Programmsteuerung zu verwenden, wobei dann eine
Neuabbildung veranlassen kann, dass neue Einstellungen geschehen,
wodurch sich das gesamte Speicherlayout verändert.
-
Ein
Mikrokontroller (uC) 250 integriert Zähler/Zeitgeber,
eine Unterbrecherstruktur (engl.: interrupt structure), einrichtbare
I/O-Anschlüsse, wie beispielsweise Vielzweck-Eingabe/Ausgabe
(engl.: general purpose input/output, GPIO) 300 und auswählbare
Modi der Leistungsverringerung unter anderen Verarbeitungsfunktionen.
Beispielhaft kann uC 250 einen Betriebsmodus aufweisen,
um Sicherheitsmerkmale zu aktivieren, die Zugriffsanfragen auf Inhalte
auf Orte des Programmspeichers regulieren. Wenn die Sicherheit aktiviert
ist, kann gleichzeitig die Programmierung (d. h. Programmierung
eines Bereiches des Speichers unter Verwendung von Befehlen, die
aus einem anderen Bereich des Speichers ausgeführt werden)
unter vorgegebenen Sicherbedingungen initiiert werden.
-
Ein
Codespeicherblock 270 stellt für schnellen Zugriff
auf Code und Inhalt bereit, der sich nicht oft ändert,
wie beispielsweise das BIOS in PCs und das Betriebssystem in einem
Mobiltelefon.
-
Ein
einrichtbare Fehlerkorrekturcode-Engine (engl.: Error Correcting
Code Engine, ECC) 280 stellt Fehlererkennungs- und Korrekturschemata
bereit. Die Fehlererkennungs- und Korrekturschemata gleichen Probleme
aus, die mit Schreibgenauigkeit und Wiederholbarkeit verbunden sind.
Der Fehlerkorrekturcode ist ein Code, bei welchem jedes Datensignal
sich nach spezifischen Konstruktionsregeln richtet, so dass Abweichungen
von dieser Konstruktion in dem empfangenen Signal im Allgemeinen
automatisch erkannt und korrigiert werden können. Die einrichtbare
ECC Engine 280 überwacht, korrigiert und verhindert
Speicherbitfehler. MLC-Flashspeicher benötigen normalerweise
komplexere Fehlerkorrekturcodeschaltkreise, die von einer einrichtbaren
Fehlerkorrekturcode(ECC)-Engine 280 gehandhabt werden.
-
Eine
NAND-Host-Zustandsmaschine 290 steuert Operationen zur
Unterstützung des Verbindens des NAND-Speichers mit einem
Back-Side Anschluss, d. h. Back-Side Anschluss 0, der mit 302 gekennzeichnet ist,
oder Back-Side Anschluss 1, der mit 304 gekennzeichnet
ist. Die Zustandsmaschine extrahiert einen Befehl und Betriebsinformation,
um die interne NAND-Schnittstelle zu steuern und die Dateneingabe
und/oder -ausgabe zwischen der NAND-Schnittstelle und dem Pufferspeicher,
basierend auf dem Befehl und der Adresse, einzustellen. Zusätzlich überwacht
diese Zustandsmaschine den Status und berichtet über den
Status des NAND, den sie steuert. Die Zustandsmaschine kann die
Daten an die Fehlerkorrekturlogik in der einrichtbaren ECC Engine 280 ausgeben.
Die Fehlerkorrekturlogik führt eine Fehlerkorrektur an
den Daten aus und gibt ein Ergebnis zurück an die Zustandsmaschine
aus. Mit integrierten Fähigkeiten, wie beispielsweise Adressnachschlagen
durch einen Inhalt-adressierbaren Speicher (engl.: content addressable
memory), Fehlerkorrektur und eine über einen Mikrokontroller
organisierbare Steuerung kann dieses Subsystem, wenn es geeignet
eingerichtet ist, als ein Multi-Kern-HAND Verwaltungssubsystem oder
ein autonomes Rechnersubsystem agieren.
-
Aus
alledem sollte offensichtlich sein, dass Ausführungsbeispiele
der vorliegenden Erfindung vergrößerte Speichereffizienzen
durch eine hierarchische Staatenspeicherung unter Verwendung von
Merkmalen der vorliegenden Erfindung ermöglichen. Durch
Verbinden des Front-Side Anschlusses einer Konzentratoreinrichtung
mit dem Host-Prozessor können Speichereinrichtungen, wie
beispielsweise NAND, RAM und andere Speichereinrichtungen mit dem
Back-Side Anschluss verbunden werden. Folglich wird eine hierarchische Speicherarchitektur
durch Inkorporieren einer oder mehrere Konzentratoreinrichtungen
in einem Speichersystem bereitgestellt.
-
Während
bestimmte Merkmale der Erfindung hierin veranschaulicht und beschrieben
wurden, werden nun dem Fachmann viele Modifikationen, Substitutionen,
Veränderungen und Äquivalente in den Sinn kommen.
Es sollte daher verstanden werden, dass die beigefügten
Ansprüche beabsichtigt sind, alle diese Modifikationen
und Änderungen abzudecken, so dass sie unter den wahren
Geist der Erfindung fallen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - IEEE 802.11 [0012]
- - IEEE 802.16-2005 [0012]