-
Diese
Erfindung betrifft allgemein nichtflüchtige Halbleiterspeicher wie
zum Beispiel elektrisch löschbare,
programmierbare Nur-Lese-Speicher (EEPROM) sowie Flash EEPROM und
spezifischer solche, welche hochkompakte und leistungsstarke Schreib-
und Leseschaltungen aufweisen.
-
Festkörperspeicher,
welche in der Lage sind, nichtflüchtig
Ladung zu speichern, vor allem in Form von EEPROM und Flash EEPROM
in Karten mit einem kleinen Formfaktor, sind in letzter Zeit bei
einer Vielfalt von mobilen und tragbaren Geräten, im besonderen Maße Information
Appliances und Produkte der Unterhaltungselektronik, Speicher der
Wahl geworden. Im Gegensatz zu einem RAM (Speicher mit wahlfreiem
Zugriff), welcher auch ein Festkörperspeicher
ist, ist ein Flash Speicher nichtflüchtig und bewahrt seine gespeicherten
Daten selbst wenn die Spannungsversorgung ausgeschaltet wird. Trotz
höherer
Kosten werden Flash Speicher zunehmend bei Massenspeicheranwendungen
eingesetzt. Konventionelle Massenspeicher, welche auf rotierenden
magnetischen Medien wie zum Beispiel Hard Drives und Disketten basieren,
sind für
mobile und tragbare Anwendungen ungeeignet. Dies liegt daran, dass
Diskettenlaufwerke dazu neigen unhandlich zu sein, anfällig für mechanische
Defekte sind, eine hohe Wartezeit und einen hohen Energiebedarf
haben. Diese unerwünschten
Eigenschaften machen diskettenbasierte Speicherung für die meisten
mobilen und tragbaren Anwendungen unpraktisch. Andererseits sind Flashspeicher,
sowohl integrierte als auch in Form herausnehmbarer Karten, ideal
für einen
mobilen und tragbaren Einsatz aufgrund kleiner Größe, niedrigem
Energiebedarf, hoher Geschwindigkeit sowie hoher Betriebssicherheit
geeignet.
-
EEPROM
und elektrisch programmierbare Nur-Lese-Speicher (EPROM) sind nichtflüchtige Speicher,
deren Speicherzellen gelöscht
und mit neuen Daten in beschrieben oder "programmiert" werden können. Beide verwenden ein Floating
(unverbundenes) leitendes Gate in einer Feldeffekttransistorstruktur,
welches über
einer Kanalregion in einem Halbleitersubstrat zwischen Source- und Drain-Regionen
angeordnet ist. Ein Control Gate wird dann über dem Floating Gate zur Verfügung gestellt.
Die Schwellenspannungscharakteristik des Transistors wird durch
den Betrag der Ladung, welcher auf dem Floating Gate gespeichert
wird, kontrolliert. Das heißt
für einen
bestimmten Ladungspegel auf dem Floating Gate ist eine entsprechende
Spannung (Schwelle) erforderlich, welche am Control Gate angelegt
werden muss, bevor der Transistor eingeschaltet wird, um eine Leitung
zwischen Source- und Drain-Regionen zu ermöglichen. Der Floating Gate
Transistor kann einen Bereich von Ladungen halten und kann daher
bis zu einem Schwellenspannungspegel innerhalb eines Schwellenspannungsfensters
programmiert werden. Die Größe des Schwellenspannungsfensters
ist durch den minimalen und maximalen Schwellenpegel des Bauelementes
begrenzt, welcher wiederum dem Bereich der Ladungen, welcher auf
dem Floating Gate programmiert werden kann, entspricht. Das Schwellenfenster hängt generell
von den Charakteristika des Bauelementes, den Betriebsbedingungen
und dem vorherigen Betrieb ab. Jeder eindeutige, auflösbarer Schwellenspannungspegelbereich
innerhalb des Fensters kann prinzipiell dazu verwendet werden, einen
genauen Speicherzustand der Zelle zu bestimmen.
-
Der
als Speicherzelle dienende Transistor wird typischerweise durch
einen von zwei Mechanismen in einen "programmierten" Zustand versetzt. Bei der "Hot Electron Injection" beschleunigt eine
am Drain angelegte hohe Spannung Elektronen durch den Substrat Kanalbereich.
Zur gleichen Zeit zieht eine am Control Gate angelegte Spannung
die heißen
Elektronen durch ein dünnes
Gate-Dielektrikum auf das Floating Gate. Bei der "Tunneling Injection" wird am Control
Gate eine hohe Spannung relativ zum Substrat angelegt. Auf diese
Weise werden Elektronen von Substrat zum Floating Gate angezogen.
-
Das
Speicherelement kann durch eine Anzahl von Mechanismen gelöscht werden.
EEPROMS können
durch Entfernen der Ladung vom Floating Gate durch ultraviolette
Strahlung komplett gelöscht werden.
Bei einem EEPROM ist eine Speicherzelle elektrisch löschbar,
indem eine hohe Spannung am Substrat relativ zum Control Gate angelegt
wird, um Elektronen im Floating Gate zu induzieren, welche durch
ein dünnes
Oxid zum Substrat Kanalbereich tunneln (d.h. Fowler-Nordheim-Tunneln).
Typischerweise ist das EEPROM Byte für Byte elektrisch löschbar.
Bei einem Flash EEPROM ist der Speicher entweder auf einmal löschbar oder
es sind jeweils ein oder mehrere Blöcke elektrisch löschbar,
wobei ein Block aus 512 Bytes oder mehr Speicher besteht.
-
BEISPIELE
NICHTFLÜCHTIGER
SPEICHERZELLEN
-
Die
Speicherelemente umfassen typischerweise einen oder mehrere Speicherchips,
welche auf einer Karte moniert werden können. Jeder Speicherchip umfasst
ein Array von Speicherzellen, welches von peripheren Schaltungen
wie zum Beispiel Decoder, Lösch-,
Schreib- und Leseschaltungen unterstützt wird. Die meisten hochentwickelten
Speicherbausteine kommen mit einem Controller, welcher intelligente übergeordnete
Speicheroperationen und Interfacing durchführt, einher. Es gibt viele
kommerziell erfolgreiche nichtflüchtige
Festkörperspeicherelemente,
welche heutzutage verwendet werden. Diese Speicherelemente können unterschiedliche
Typen von Speicherzellen verwenden, wobei jeder Typ einen oder mehrere
Ladungsspeicherelemente aufweist.
-
1A–1E in
den beiliegenden Zeichnungen stellen schematisch unterschiedliche
Beispiele nichtflüchtiger
Speicherzellen dar.
-
1A stellt
einen nichtflüchtigen
Speicher in Form einer EEPROM-Zelle mit einem Floating Gate zum
Speichern von Ladung dar. Ein elektrisch löschbarer und programmierbarer
Nur-Lese-Speicher (EEPROM) weist eine ähnliche Struktur wie ein EPROM
auf, stellt jedoch zusätzlich
einen Mechanismus zum Laden und elektrischen Entfernen von Ladung
von seinem Floating Gate nach Anwendung einer geeigneter Spannung
ohne Notwendigkeit einer Bestrahlung zur Verfügung. Beispiele solcher Zellen und
deren Herstellungsverfahren werden in US Patent 5,595,924 angeführt.
-
1B stellt
eine Flash EEPROM Zelle, welche sowohl ein Select Gate als auch
ein Cotrol oder Steering Gate aufweist, schematisch dar. Die Speicherzelle 10 weist
einen "Split-Channel" 12 zwischen Source 14 Drain 16 auf.
Eine Zelle wird effektiv aus zwei Transistoren T1 und T2 in Reihe
gebildet. T1 dient als Speichertransistor, welcher ein Floating Gate 20 und
ein Control Gate 30 aufweist. Das Floating Gate ist in
der Lage, einen wählbaren
Ladungsbetrag zu speichern. Der Betrag der Ladung, welcher durch
den Teil des Kanals von T1 fließen
kann, hängt von
der Spannung am Control Gate 30 ab sowie vom Betrag der
Ladung, welche auf dem Floating Gate 20 verbleibt. T2 dient
als ein Select Transistor, welcher ein Select Gate 40 aufweist.
Wenn T2 durch eine Spannung am Select Gate 40 eingeschaltet
wird, kann ein Strom im Anteil des Kanals von T1 zwischen Source
und Drain fließen.
Der Select Transistor stellt ein Schalter entlang dem Source-Drain-Kanal
unabhängig
von der Spannung am Control Gate zur Verfügung. Ein Vorteil besteht darin,
dass dieser dazu verwendet werden kann, diejenigen Zellen auszuschalten,
welche bei einer Spannung von null Volt am Control Gate aufgrund
von Ladungsverarmung (positiv) an deren Floating Gates noch immer
leitend sind. Der andere Vorteil besteht darin, dass dieser Source Side
Injection Programmierung ermöglicht,
um einfacher implementiert werden zu können.
-
Eine
einfache Ausgestaltung der Split-Channel Speicherzelle ist diejenige,
bei der das Select Gate und das Control Gate mit der selben Wortleitung
verbunden sind, wie schematisch mit einer punktierten Linie in 1B gezeigt
ist. Dies wird erreicht, indem ein ladungsspeicherndes Element (Floating
Gate) über
einem Teil des Kanals und einer Control Gate Struktur (welche ein
Teil einer Wortleitung ist) sowohl über dem anderen Kanalanteil
als auch dem ladungsspeichernden Element angeordnet wird. Dies bildet
eine Zelle mit zwei Transistoren in Reihe, einem (Speichertransistor)
mit einer Kombination des Ladungsbetrages auf dem Ladungsspeicherelement
und der Spannung an der Wortleitung, welche den Ladungsbetrag kontrollieren
kann, welcher durch seinen Teil des Kanals fließen kann, sowie dem andern
(Select Transistor), welcher eine alleinig als sein Gate dienende
Wortleitung aufweist. Beispiele solcher Zellen, deren Verwendung
in Speichersystemen und Verfahren zur Herstellung werden in US Patenten
5,070,032, 5,095,344, 5,315,541, 5,343,063 und 5,661,053 beschrieben.
-
Eine
verfeinerte Ausgestaltung der in 1B gezeigten
Split Channel Zelle besteht darin, dass das Select Gate und das
Control Gate unabhängig
sind und nicht durch die punktiere Leitung verbunden sind. Bei einer
Implementierung sind die Control Gates einer Spalte in einem Array
von Zellen mit einer Kontroll- (oder Steuer-) Leitung senkrecht
zu den Wortlinien verbunden. Die Auswirkung besteht darin, die Wortleitungen
davon zu entlasten, zwei Funktionen zur gleichen Zeit durchzuführen wenn
eine ausgewählte
Zelle gelesen oder programmiert wird. Diese zwei Funktionen bestehen
darin (1) als Gate eines Select Transistors zu dienen und erfordert
deshalb eine zugehörige
Spannung, um den Select Transistor ein- und auszuschalten, sowie
(2) vorantreiben einer Spannung des Ladungsspeicherelements bis
zu einer gewünschten
Spannung durch eine elektrische Feld- (kapazitive) Koppelung zwischen
der Wortleitung und dem Ladungsspeicherelement. Es ist häufig schwierig,
beide dieser zwei Funktionen in einer optimalen Weise mit einer
einzelnen Spannung durchzuführen.
Mit der getrennten Ansteuerung des Control Gates und des Select
Gates braucht die Wortleitung nur Funktion (1) durchzuführen, während die
hinzugefügte
Kontrolleitung Funktion (2) durchführt. Dies ermöglicht das
Design für
eine bessere Programmierperformance, wobei die Programmierspannung auf
die Zieldaten abgestellt ist. Die Verwendung unabhängiger Control
(oder Steering) Gates in einem Flash EEPROM Array wird beispielsweise
in US Patenten 5,313,421 und 6,222,762 beschrieben.
-
1C stellt
eine andere Flash EEPROM Zelle schematisch dar, welche Dual Floating
Gates sowie unabhängige
Select und Control Gates aufweist. Die Speicherzelle 10 ähnelt der
in 1B, außer,
dass diese gewissermaßen
drei Transistoren in Reihe aufweist. Bei diesem Zellentyp sind zwei
Speicherelemente (d.h. das von T1 – links und T1 – rechts) über dem
Kanal zwischen Source und Drain Diffusionen mit einem Select Transistor
T1 vorhanden. Die Speichertransistoren weisen Floating Gates 20 und 20' beziehungsweise
Control Gates 30 und 30' auf. Der Select Transistor wird
durch ein Select Gate gesteuert. Zu einem gegebenen Zeitpunkt wird nur
einer des Paars von Speichertransistoren zum Lesen und Schreiben
angesteuert. Wenn die Speichereinheit T1 angesteuert wird, werden
sowohl T2 und T1 – rechts
eingeschaltet um einen Stromfluss im linken Teil des Kanals zwischen
Source und Drain zu ermöglichen.
Ebenso werden T2 und T1 – links
einge schaltet, wenn auf die Speichereinheit T1 – rechts zugegriffen wird.
Das Löschen
wird durch einen Anteil Select Gate Polysiliziums in Nähe des Floating Gates
und Anwenden einer positiven Spannung (z.B. 20V) am Select Gate
bewirkt, so dass die im Floating Gate gespeicherten Elektronen zum
Select Gate Polysilizium tunneln können.
-
1D stellt
einen Strang eines in einer NAND Zelle organisierten Arrays schematisch
dar. Eine NAND Zelle 50 besteht aus einer Reihe von Speichertransistoren
M1, M2, ... Mn (n = 4, 8, 16 oder mehr) in einer Verkettung derer
Sources und Drains. Ein Paar Select Transistoren S1, S2 kontrollieren
die Speichertransistorenverkettung nach Außen über Source-Anschluss 54 und
Drain-Anschluss 56 der NAND Zelle. Wenn in einem Speicherarray
der Source Select Transistor S1 eingeschaltet wird, ist der Source-Anschluss
mit einer Source-Leitung gekoppelt. Wenn der Select Transistor S2
eingeschaltet wird, wird in gleicher Weise der Drain-Anschluss der NAND
Zelle mit einer Bitleitung des Speicherarrays gekoppelt. Jeder Speichertransistor
in der Kette hat zum Speichern einer bestimmten Ladungsmenge ein Ladungsspeicherelement,
um einen beabsichtigten Speicherzustand zu verkörpern. Ein Control Gate von
jedem Speichertransistor stellt eine Kontrolle von Lese- und Schreiboperationen
zur Verfügung.
Ein Control Gate von jedem der Select Transistoren S1, S2 stellt
eine Zugriffskontrolle der NAND Zelle über seinen Source-Anschluss 54 beziehungsweise Drain-Anschluss 56 zur
Verfügung.
-
Wenn
ein adressierter Speichertransistor innerhalb einer NAND Zelle während einer
Programmierung gelesen und geprüft
wird, wird sein Control Gate mit einer geeigneten Spannung versorgt. Geichzeitig
wird der Rest der nicht-adressierten Speichertransistoren in der
NAND Zelle 50 durch Anwenden einer ausreichenden Spannung
an deren Control Gates eingeschaltet. Auf diese Weise wird ein leitender
Pfad von der Source des einzelnen Speichertransistors zum Source-Anschluss 54 der NAND
Zelle und gleichermaßen
für das
Drain des einzelnen Speichertransistors zum Drain-Anschluss 56 der
Zelle gebildet. Speicherelemente mit solch einer NAND Zellenstruktur
werden in den US Patenten 5,570,315, 5,903,495 und 6,046,935 beschrieben.
-
1E stellt
schematisch einen nichtflüchtigen
Speicher mit einer dielektrischen Schicht zum Speichern von Ladung
dar. Anstelle der zuvor beschriebenen leitenden Floating Gate Elemente
wird eine dielektrische Schicht verwendet. Solche Speicherelemente,
welche dielektrische Speicherelemente verwenden, wurden von Bitan
et al., "NROM: A
Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device
Letters, Vol. 21, Nr. 11, November 2000, S. 543–545 beschrieben. Eine dielektrische
ONO Schicht erstreckt sich über
den Kanal zwischen Source und Drain Diffusion. Die Ladung für ein Bit Daten
befindet sich in der dielektrischen Schicht, welche an die Drain
angrenzt, und die Ladung für
die anderen Datenbit befinden sich in der dielektrischen Schicht,
welche an der Source angrenzt. Zum Beispiel offenbaren US Patente
5,768,192 und 6,011,725 eine nichtflüchtige Speicherzelle, welche ein
einfangendes Dielektrikum aufweist, welches zwischen zwei Silikondioxidschichten
angeordnet ist. Mehrzustand-Datenspeicherung wird durch separates
Lesen der binären
Zustände
der räumlich
getrennten ladungsspeichernden Bereichen innerhalb des Dielektrikums
implementiert.
-
SPEICHERARRAY
-
Ein
Speicherelement umfasst typischerweise ein zweidimensionales Array,
welches in Reihen und Spalten angeordnet ist und über Wortleitungen
und Bitleitungen adressierbar ist. Das Array kann gemäß einer
NOR Typ oder einer NAND Typ Architektur ausgestaltet werden.
-
NOR Array
-
2 in
den beiliegenden Zeichnungen stellt ein Beispiel eines NOR Arrays
von Speicherzellen dar. Speicherelemente mit einer NOR Typ Architektur wurden
mit Zellen des in 1 oder 1C dargestellten
Typs implementiert. Jede Reihe von Speicherzellen sind durch deren
Sources und Drains in einer Verkettungsart verbunden. Dieses Design
wird manchmal als Virtual Ground Design bezeichnet. Jede Speicherzelle 10 weist
eine Source 14, ein Drain 16, ein Control Gate
und ein Select Gate 40 auf. Die ausgewählten Select Gates der Zellen
in einer Reihe sind mit Wortleitungen 42 verbunden. Die Zellen
in einer Spalte sind mit den Sources beziehungsweise Drains ausgewählter Bitleitungen 34 verbunden.
Bei einigen Ausgestaltungen, bei denen die Control Gates und Select
Gates der Speicherzellen unabhängig
voneinander steuerbar sind, verbindet auch eine Steering Leitung 36 die
Control Gates der Zellen in einer Spalte.
-
Viele
Flash EEPROM Bauelemente werden mit Speicherzellen implementiert,
wobei jede Zelle mit seinem Control Gate und Select Gate miteinander verbunden
sind. In diesem Fall besteht keine Notwendigkeit für Steering
Leitungen und eine Wortleitung verbindet alle Control Gates und
Select Gates der Zellen entlang jeder Reihe. Beispiele für diese Bauarten
werden in US Patenten 5,172,338 und 5,418,752 offenbart. Bei dieser
Bauart üben
die Wortleitungen im Wesentlichen zwei Funktionen aus: Reihenauswahl
und Versorgen aller Zellen in der Reihe mit einer Control Gate Spannung
zum Lesen oder Programmieren.
-
NAND Array
-
3 in
den beiliegenden Zeichnungen stellt ein Beispiel für ein NAND
Array von Speicherzellen, so wie beispielsweise das in 1D gezeigte,
dar. Entlang jeder Spalte von NAND Zellen ist eine Bitleitung mit
dem Drain-Anschluss 56 von jeder NAND Zelle gekoppelt.
Entlang jeder Reihe von NAND Zellen kann eine Sourceleitung alle
deren Source-Anschlüsse 54 verbinden.
Auch die Control Gates der NAND Zellen entlang einer Reihe sind
mit einer Reihe entsprechender Wortleitungen verbunden. Eine gesamte
Reihe von NAND Zellen kann durch Einschalten des Paares Select Transistoren
(siehe 1D) mit geeigneten Spannungen
an deren Control Gates über
die verbundenen Wortleitungen adressiert werden. Wenn ein Speichertransistor
innerhalb der Kette einer NAND Zelle gelesen wird, werden die verbleibenden
Speichertransistoren in der Kette über deren zugehörigen Wortleitungen
eingeschaltet, so dass der durch die Kette fließende Strom im Wesentlichen
von dem in der Zelle, welche gelesen wird, gespeicherten Ladungspegel
abhängig ist.
Ein Beispiel einer NAND Architektur und deren Betrieb als Teil eines
Speichersystemsist in US Patenten 5,570,315, 5,774,397 und 6,046,935
zu finden.
-
Blocklöschen
-
Programmieren
ladungsspeichernder Speicherelementen kann nur auf Hinzufügen von
mehr Ladung auf deren Ladungsspeicherelementen hinauslaufen. Daher
muss vor einer Programmieroperation eine vorhandene Ladung in einem
Ladungsspeicherelement entfernt (oder gelöscht) werden. Löschschaltungen
(nicht gezeigt) werden zum Löschen
eines oder mehrerer Blöcke
zur Verfügung
gestellt. Ein nichtflüchtiger
Speicher so wie ein EEPROM wird als "Flash" bezeichnet, wenn ein gesamtes Array
von Zellen oder signifikante Gruppen von Zellen des Arrays zusammen
elektrisch gelöscht
werden (d.h. in einem Flash). Sobald dieses gelöscht ist, kann die Gruppe von
Zellen dann wieder programmiert werden.
-
Die
zusammen löschbare
Gruppe von Zellen kann aus einer oder mehrerer adressierbarer Löscheinheiten
bestehen. Diese Löscheinheiten
oder Blöcke
speichern üblicherweise
eine oder mehrere Seiten von Daten, wobei die Seite die Einheit
zum Programmieren und Löschen
ist, obwohl mehr als eine Seite während einer einzelnen Operation
programmiert oder gelöscht
werden kann. Jede Seite speichert üblicherweise einen oder mehrere
Sektoren von Daten, wobei die Größe des Sektors
vom Hostsystem festgelegt wird. Ein Beispiel ist ein Sektor mit
512 Byte Nutzdaten, welcher einem mit magnetischen Disketten laufwerken
eingeführten
Standard folgt, zuzüglich
einer Anzahl von Byte Overheadinformationen über die Nutzdaten und/oder
den Block, in welchem diese gespeichert werden.
-
LESE/SCHREIB-SCHALTUNGEN
-
Bei
der üblichen
Zweizustand EEPROM Zelle ist zumindest ein Stromanhaltepunktpegel
festgelegt, um das Leitungsfenster in zwei Bereiche zu unterteilen.
Wenn eine Zelle durch Anwenden vorgegebener, festgelegter Spannungen
gelesen wird, wird aus deren Source/Drain-Strom durch Vergleichen
mit dem Anhaltepunktpegel (oder Referenzstrom IRE)
ein Speicherzustand ermittelt. Wenn der gelesene Strom höher als
der Anhaltepunktpegel ist, wird festgelegt, dass sich die Zelle
in einem logischen Zustand (z.B. ein Zustand "null")
befindet. Wenn der Strom andererseits niedriger als der des Anhaltepunktpegels
ist, wird festgelegt, dass sich die Zelle im anderen logischen Zustand
(z.B. ein Zustand "eins") befindet. Auf diese
Weise speichert solch eine Zweizustandzelle ein Bit digitale Informationen.
Eine extern programmierbare Referenzstromquelle wird häufig als
Teil eines Speichersystems zur Verfügung gestellt, um den Anhaltepunktstrompegel
zu erzeugen.
-
Um
die Speicherkapazität
zu erhöhen,
werden Flash EEPROM Bauelemente mit immer höheren Dichten gefertigt, da
die Halbleitertechnologie Fortschritte macht. Ein weiteres Verfahren
zum Erhöhen
der Speicherkapazität
besteht darin, dass jede Speicherzelle mehr als ein Bit Daten speichert.
-
Bei
einem Mehrzustand oder Mehrpegel EEPROM Speicherarray ist das Leitungsfenster
durch mehr als einen Anhaltepunkt in mehr als zwei Bereiche unterteilt,
so dass jede Zelle dazu in der Lage ist, mehr als ein Bit Daten
zu speichern. Die Menge an Informationen, welche ein bestimmtes
EEPROM Array speichern kann, wird auf diese Weise mit der Anzahl
der Zustände,
welche jede Zelle speichern kann, erhöht. EEPROM oder Flash EEPROM
mit Mehrzustand oder Mehrpegel Speicherzellen wurden in US Patent
5,172,338 beschrieben.
-
In
der Praxis wird der Speicherzustand einer Zelle üblicherweise durch Abtasten
des Leitungsstromes über
der Source und Drain Elektrode der Zelle gelesen, wenn eine Referenzspannung
am Control Gate angelegt wird. Auf diese Weise kann für eine gegebene
Ladung auf dem Floating Gate einer Zelle ein entsprechender Leitungsstrom
in Bezug auf eine feste Referenz-Control-Gate-Spannung ermittelt werden.
Auf ähnliche
Weise defi niert der auf dem Floating Gate programmierbare Bereich
Ladungen ein entsprechendes Schwellenspannungsfenster oder ein entsprechendes
Leitungsstromfenster.
-
Anstelle
den Leitungsstrom entlang eines unterteilten Stromfensters zu ermitteln,
ist es alternativ möglich,
für einen
gegebenen Speicherzustand, welcher einer Prüfung unterzogen wird, am Control Gate
die Schwellenspannung festzulegen und zu ermitteln, ob der Leitungsstrom
niedriger oder höher
als ein Schwellenstrom ist. Bei einer Implementierung wird die Ermittlung
des Leitungsstromes relativ zu einem Schwellenstrom durch Prüfen des
Anteils des Leitungsstromes, welcher sich durch die Kapazität der Bitleitung
entlädt,
durchgeführt.
-
In
den beiliegenden Zeichnungen stellt 4 die Relation
zwischen dem Source-Drain Strom ID und der
Control Gate Spannung VCG für vier unterschiedliche
Ladungen Q1–Q4
dar, welche das Floating Gate zu einem gegebenen Zeitpunkt wahlweise
speichern kann. Die vier Kurven von ID über VCG zeigen vier mögliche Ladungspegel, welche
auf einem Floating Gate einer Speicherzelle programmiert werden
können,
welche vier möglichen
Speicherzuständen
entsprechen. Als Beispiel kann das Schwellenspannungsfenster einer
Gesamtheit von Zellen von 0,5V bis 3,5V reichen. Sechs Speicherzustände können durch
Unterteilen des Schwellenfensters in fünf Bereiche in einem Intervall
von jeweils 0,5V abgegrenzt werden. Wenn beispielsweise wie gezeigt
ein Referenzstrom IREF von 2 μA verwendet wird,
wird die Zelle mit Q1 programmiert, was als ein Speicherzustand "1" betrachtet werden kann, da sich seine
Kurve mit IREF im Bereich des Schwellenfensters überschneidet,
welches durch VCG = 0,5V und 1,0V abgegrenzt
ist. In gleicher Weise befindet sich Q4 in einem Speicherzustand "5".
-
Je
mehr Zustände
in einer Speicherzelle gespeichert werden sollen, desto feiner ist
deren Schwellenfenster unterteilt, wie aus der obigen Beschreibung
ersichtlich ist. Dies wird eine höhere Präzision der Programmier- und
Leseoperationen erfordern, um in der Lage zu sein, die erforderliche
Auflösung
zu erzielen.
-
US
Patent 4,357,685 offenbart ein Verfahren zum Programmieren eines
EPROM mit zwei Zuständen.
Wenn eine Zelle in einen vorgegebenen Zustand programmieren wird,
unterliegt diese jedes Mal sukzessiven Programmierspannungsimpulsen
wenn inkrementell Ladung auf das Floating Gate hinzugefügt wird.
Zwischen Impulsen wird die Zelle zurückgelesen oder überprüft, um ihren
Source-Drain Strom relativ zum Anhaltepunktpegel zu bestimmen. Die Programmierung
hört auf,
wenn bestätigt
wird, dass der Stromzustand den gewünschten Zustand erreicht hat.
Die verwendete Programmierimpulsfolge kann eine zunehmende Periode
oder Amplitude aufweisen.
-
Programmierschaltungen
gemäß dem Stand der
Technik wenden lediglich Programmierimpulse an, um vom gelöschten Zustand
oder Grundzustand das Schwellenfenster zu durchschreiten bis der
Zielzustand erreicht wird. Praktisch würde jede unterteilte oder abgegrenzte
Region zumindest etwa fünf
Programmierschritte erfordern um durchlaufen zu werden. Die Performance
ist für
eine Zweizustandzelle akzeptabel. Bei Mehrzustandzellen nimmt allerdings die
Anzahl der Schritte mit der Anzahl der Unterteilungen zu und deshalb
muss die Präzision
der Programmierung oder die Auflösung
erhöht
werden. Zum Beispiel benötigt
eine 16-Zustandzelle durchschnittlich zumindest 40 Programmierimpulse,
um einen Zielzustand zu programmieren.
-
5 in
den beiliegenden Zeichnungen stellt ein Speicherelement mit einer
typischen Anordnung eines Speicherarrays 100 dar, auf welches über Lese/Schreib-Schaltungen 170 über Reihendecoder 130 und
Spaltendecoder 160 zugegriffen werden kann. Wie in Zusammenhang
mir 2 und 3 beschrieben wurde, ist ein
Transistor einer Speicherzelle im Speicherarray 100 über eine
Reihe von ausgewählten
Wortleitung(en) und Bitleitung(en) adressierbar. Der Reihendecoder 130 wählt eine
oder mehrere Wortleitungen aus und der Spaltendecoder 160 wählt eine
oder mehrere Bitleitungen aus, um geeignete Spannungen an den jeweiligen
Gates der adressierten Speichertransistoren anzuwenden. Lese/Schreib-Schaltungen 170 werden
zur Verfügung gestellt,
um die Speicherzustände
von adressierten Speichertransistoren zu lesen oder zu schreiben (programmieren).
Lese/Schreib-Schaltungen 170 umfassen eine Anzahl von Lese/Schreib-Modulen, welche über Bitleitungen
mit Speicherelementen im Array verbunden werden können.
-
6A in
den beiliegenden Zeichnungen ist ein schematisches Blockdiagramm
eines einzelnen Lese/Schreib-Moduls. Im Wesentlichen ermittelt ein Leseverstärker während des
Lesens oder des Prüfens
den durch die Drain eines adressierten Speicherzellentransistors
fließenden
Strom, welcher über ausgewählte Bitleitungen
verbunden ist. Der Strom hängt
von der im Speichertransistor gespeicherten Ladung sowie von seiner
Control Gate Spannung ab. Beispielsweise kann in einer Mehrzustand
EEPROM Zelle sein Floating Gate bis zu einem von mehreren unterschiedlichen
Pegeln geladen werden. Bei einer 4-Pegel-Zelle kann dies verwendet werden,
um zwei Bit Daten zu speichern. Der mit dem Leseverstärker ermittelte
Pegel wird mit einer Pegel-zu-Bit wandelnden Logik in einen in einem
Daten-Latch zu speichernden Satz Datenbit umgewandelt.
-
LESE/SCHREIB-PERFORMANCE
UND GENAUIGKEIT BEEINFLUSSENDE FAKTOREN
-
Um
das Lesen und Programmieren zu verbessern, werden mehrere ladungsspeichernde
Elemente oder Speichertransistoren in Arrays parallel gelesen oder
programmiert. Auf diese Weise wird eine logische "Seite" von Speicherelementen
zusammen gelesen oder programmiert. In existierenden Speicherarchitekturen
enthält
eine Reihe üblicherweise
mehrere interleaved Seiten. Alle Speicherelemente einer Seite werden
zusammen gelesen oder programmiert. Der Spaltendecoder verbindet
selektiv jede der interleaved Seiten mit einer entsprechenden Anzahl
von Lese/Schreib-Modulen. Bei einer Implementierung ist beispielsweise
vorgesehen, dass das Speicherarray eine Seitengröße von 532 Bytes (512 Bytes
zuzüglich
20 Byte Overhead) aufweist. Wenn jede Spalte eine Drain Bitleitung
enthält
und zwei interleaved Seiten pro Reihe vorhanden sind, beläuft sich
dies auf 8512 Spalten, wobei jede Seite mit 42565 Spalten in Zusammenhang
steht. Es sind 4256 Sense-Module vorhanden, welche verbunden werden
können,
um entweder alle geraden Bitleitungen oder ungeraden Bitleitungen
parallel zu lesen oder zu schreiben. Auf diese Weise wird eine Seite mit
4256 Bit (d.h. 532 Byte) Daten parallel aus den programmierten Seiten
gelesen oder in die Seiten von Speicherelementen programmiert. Die
die Lese/Schreib-Schaltungen bildende Lese/Schreib-Module 170 können in
verschiedenen Architekturen angeordnet werden.
-
Mit
Bezug auf 5 sind die Lese/Schreib-Schaltungen 170 in
Bänken
von Lese/Schreib-Stacks 180 organisiert.
Jeder Lese/Schreib-Stack 180 ist ein Stack aus Lese/Schreib-Modulen 190.
In einem Speicherarray ist der Spaltenabstand durch die Größe des einen
oder der zwei Transistoren, welche diese belegen, festgelegt. Wie
in 6A gesehen werden kann, wird die Schaltung eines
Lese/Schreib-Moduls wahrscheinlich mit viel mehr Transistoren und
Schaltungselementen implementiert werden und wird daher einen Raum über viele
Spalten in Anspruch nehmen. Um mehr als eine Spalte entlang der
besetzten Spalten zu versorgen, werden mehrere Module übereinander gestapelt.
-
6B in
den beiliegenden Zeichnungen zeigt den Lese/Schreib-Stack aus 5,
welcher konventionell mit einem Stack aus Lese/Schreib-Modulen implementiert
ist. Zum Beispiel kann sich ein Lese/Schreib-Modul über sechzehn
Spalten erstrecken. Dann kann ein Lese/Schreib-Stack 180 mit
einem Stack aus acht Lese/Schreib-Modulen verwendet werden, um acht
Spalten parallel zu versorgen. Der Lese/Schreib-Stack kann über einen
Spaltendecoder entweder mit den acht ungeraden Spalten (1, 3, 5,
7, 9, 11, 13, 15) oder den acht geraden Spalten (2, 4, 6, 8, 10,
12, 14, 16) entlang der Bank gekoppelt werden.
-
Wie
zuvor erwähnt
verbessern konventionelle Speicherelemente Lese/Schreiboperationen
durch einen gleichzeitigen parallelen Betrieb aller geraden oder
ungeraden Bitleitungen. Diese Architektur einer aus zwei interleaved
Seiten bestehenden Reihe vereinfacht das Problem, die Blöcke der
Lese/Schreib-Schaltungen anzupassen. Es wird auch in Erwägung gezogen,
kapazitive Koppelung von Bit-Leitung mit Bit-Leitung zu kontrollieren.
Ein Blockdecoder wird dazu verwendet, den Satz Lese/Schreib-Module
in entweder die geraden Seiten oder ungeraden Seiten zu multiplexen.
Wann immer ein Satz Bitleitungen gelesen oder programmiert wird,
kann auf diese Art und Weise der Interleaving Satz geerdet werden,
um ein unmittelbares Koppeln von Nachbarn zu minimieren.
-
Jedoch
ist die Interleaving-Seiten-Architektur unter zumindest drei Aspekten
nachteilig. Erstens erfordert diese zusätzliche Multiplexschaltungen.
Zweitens hat diese eine langsame Performance. Um ein Lesen oder
Programmieren von Speicherzellen zu beenden, welche mit einer Wortleitung
verbunden sind oder welche sich in einer Reihe befinden, sind zwei
Lese- oder Programmieroperationen erforderlich. Drittens ist es
beim Adressieren anderer Störeffekte,
wie Feldkoppelung zwischen benachbarten Ladungsspeicherelementen
am Floating Gate Pegel, auch nicht optimal, wenn die zwei Nachbarn
zu unterschiedlichen Zeiten programmiert werden, wie zum Beispiel
separat in geraden und ungeraden Seiten.
-
Das
Problem der Feldkopplung benachbarter Elemente wird bei geringerem
Abstand zwischen den Speichertransistoren deutlicher ausgeprägter. In einem
Speichertransistor ist ein Ladungsspeicherelement zwischen einem
Kanalbereich und einem Control Gate angeordnet. Der im Kanalbereich
fließende Strom
ist eine Funktion des resultierenden elektrischen Feldes, welches
vom Feld am Control Gate und dem Ladungsspeicherelement beigetragen
wird. Bei andauernd steigender Dichte werden die Speichertransistoren
näher und
näher zueinander
angeordnet. Das Feld von benachbarten Ladungselementen liefert dann
einen signifikanten Beitrag zum resultierenden Feld einer beeinflussten
Zelle. Das benachbarte Feld ist von der in das Ladungsspeicherelement
programmierten Ladung der Nachbarn abhängig. Dieses störende Feld
ist dynamisch, da es sich mit den programmierten Zuständen der
Nachbarn verändert.
Deshalb kann eine beeinflusste Zelle zu unterschiedlichen Zeitpunkten
in Abhängigkeit von
den Speicherzuständen
der Nachbarn unterschiedlich ausgelesen werden
-
Die
konventionelle Architektur von Interleaving Seiten verschlimmert
den durch Kopplung benachbarter Floating Gates verursachten Fehler.
Da die geraden Seiten und die ungera den Seiten unabhängig voneinander
programmiert und gelesen werden, kann eine Seite unter Bedingungen
programmiert werden aber unter ganz anderen Bedingungen gelesen
werden, abhängig
davon, was sich in der Zwischenzeit in der anderen Seite ereignet
hat. Die Lesefehler werden mit zunehmender Dichte schwerwiegender,
was eine präzisere
Leseoperation und eine gröbere
Unterteilung des Schwellenfensters für Implementierungen von Mehrzuständen erfordert. Die
Performance wird darunter abnehmen und die potentielle Kapazität bei einer
Implementierung von Mehrzuständen
ist begrenzt.
-
Es
wird auch auf die Europäische
Patentveröffentlichung
0 851 424 und US Patent 4,802,136 Bezug genommen. Die Europäische Patentveröffentlichung
0 851 424 beschreibt ein Halbleiterspeicherelement mit seriellem
Zugriff, welches in der Lage ist, die Zugriffszeit zu reduzieren
und den Stromverbrauch zu senken. Ein Speicherzellenarray umfasst eine
Vielzahl von Speicherzellen und Schieberegister, welche eine Vielzahl
von in Reihe geschaltete Latch-Schaltungen aufweisen. Die Schieberegister halten
die vom Speicherzellenarray erhaltenen Daten und können die
gehaltenen Daten in der Reihenfolge, in welcher die Latch-Schaltungen
angeordnet sind, seriell ausgeben. US Patent 4,802,136 beschreibt eine
Speicherschaltung, welche taktgesteuerte Daten-Latch-Schaltungen umfasst,
welche mit getakteten Invertern ausgestaltet sind. Ein Taktgeber
in der Schaltung versorgt die Inverter mit Taktsignalen, welche
sequenziell generiert werden, so dass sich die Taktphase für einen
Endzustand der Daten-Latch-Schaltung vor derjenigen für einen
Anfangszustand befindet.
-
Die
vorliegende Erfindung richtet sich auf ein Verfahren zum Speichern
von N Datenelementen in einer in einer Kette von Verbindungsmodulen
in einer nichtflüchtigen
Speichervorrichtung. Das Verfahren umfasst die folgenden Schritte:
- (a) Bereitstellen einer Kette umfassend zumindest N
Verbindungsmodule, wobei jedes Modul steuerbar ist, sich entweder
als ein Inverter oder ein Latch zu verhalten,
- (b) Serielles Eingeben dieser N Datenelemente in die Kette von
einem gegenüberliegenden
Ende in ein erstes Verbindungsmodul,
- (c) Zwischenspeichern eines ersten Datenelementes in dem ersten
Verbindungsmodul während
das erste Verbindungsmodul zu steuern, sich als ein Latch zu verhalten
und alle invertierende Verbindungsmodule, sich als Inverter zu verhalten;
- (d) Zwischenspeichern eines folgenden Datenelementes in einem
folgenden Verbindungsmodul während
das folgende Verbindungsmodul zu steuern, sich als ein Latch zu
verhalten und alle invertierenden Verbindungsmodule, sich als Inverter
zu verhalten, und
- (e) Wiederholen von Schritt (d) bis alle N Datenelemente in
der Kette gespeichert sind.
-
Ebenfalls
wird ein Verfahren zum Lesen von in einer Kette von Verbindungsmodulen
gespeicherten N Datenelementen in einer nichtflüchtigen Speichervorrichtung
offenbart, wobei jedes Verbindungsmodul steuerbar ist, sich entweder
als ein Inverter oder ein Latch zu verhalten. Dieses Verfahren umfasst:
- (a) Auslesen aus der Kette beginnend von einem ersten
Verbindungsmodul eines in dem ersten Verbindungselement gespeicherten
Datenelementes, während
alle Verbindungsmodule zu steuern, sich als Latches zu verhalten,
- (b) Auslesen eines nächsten
in einem folgenden Verbindungsmodul gespeicherten Datenelementes
während
diese Verbindungsmodule zu steuern, welche zuvor ausgelesen wurden,
sich als Inverter zu verhalten und diese Verbindungsmodule, welche
nicht ausgelesen wurden, sich als Latches zu verhalten, und
- (c) Wiederholen von Schritt (b) bis alle N Datenelemente ausgelesen
sind.
-
Das
obige Leseverfahren kann den Schritt umfassen, einzelne Datenelemente
selektiv zu Invertieren, wenn diese ausgelesen werden. Bei beiden Verfahren
kann die Kette weiter in mehr als ein Kettenelement unterteilt werden.
-
Die
Verfahren der Erfindung sind für
die Verwendung in einer Speichervorrichtung geeignet, welche eine
Architektur aufweist, welche eine Redundanz von Blöcken von
Lese/Schreib-Schaltungen auf ein Minimum reduziert. Signifikante
Platz- und Energieeinsparungen können
durch Umverteilen des Blocks von Lese/Schreib-Modulen in einen Block
von Lese/Schreib-Modul-Kernteilen, welche parallel arbeiten, erreicht
werden, während
diese mit einer geringeren Anzahl gemeinsamer Teile in einer Art Zeit-Multiplexen
interagieren. In solch einem Bauelement sind die Komponenten der
Kernteile in einer Bank gleichartiger Stacks organisiert, wobei
jeder ein Stack solcher Kernteile ist, welche einen gemeinsamen
Teil gemeinsam nutzen. Ein serieller Bus kann eine Kommunikation
zwischen Lese/Schreib-Kernmodulen und dem gemeinsamen Teil in jedem
Stack zur Verfügung
stellen. Auf diese Weise muss ein Minimum von Kommunikationsleitungen
in jedem Stack verwendet werden. Ein Buscontroller sendet Kontroll- und
Taktsignale, um den Betrieb der Komponenten und deren Interaktion über den
seriellen Bus zu kontrollieren. In einer bevorzugten Ausgestaltung
werden die entsprechenden Komponenten in allen gleichen Stacks gleichzeitig
kontrolliert.
-
In
Verfahren der Erfindung werden die den Lese/Schreib-Schaltungen
zugehörige
Daten-Latches durch
ein kompaktes Verbinden I/O aktiviert, um die Speicherung und seriellen
Transfer in Art einer Kette zu vereinfachen. In einer bevorzugten
Ausgestaltung werden die Daten-Latches durch eine oder mehrere Ketten
aus Verbindungsmodulen implementiert. Die einzelnen Verbindungsmodule
können
gesteuert werden, sich entweder als Inverter oder Latches zu verhalten.
Ein Verfahren ermöglicht
die Verwendung einer minimalen Anzahl von Verbindungsmodulen durch
Austauschen von Daten zwischen einem Satz Master Verbindungsmodule
und einem im Wesentlichen kleineren Satz Slave Verbindungsmodule.
-
Durch
die Verwendung von Daten-Latches bei Verfahren der Erfindung wird
wertvoller Platz auf dem Chip eingespart, da diese die serielle
Eingabe und Ausgabe von Daten vereinfachen, während eine Reduzierung der
Anzahl der Slave Verbindungsmodulen ermöglicht wird. Platzeinsparung
durch die verschiedenen Aspekte der vorliegenden Offenbarung ermöglichen
ein kompakteres Chipdesign. Die Schaltungseinsparung und folglich
die Platzeinsparung sowie die Leistungsaufnahmeeinsparung kann 50
Prozent im Vergleich zu Lese/Schreib-Schaltungen betragen. Insbesondere
können
die Lese/Schreib-Module
dicht gepackt werden, so dass sie gleichzeitig als eine zusammenhängende Reihe
von Speicherzellen des Speicherarrays dienen.
-
Eine
dazu angepasste nichtflüchtige
Speichervorrichtung um die Verfahren der Erfindung zu nutzen kann
eine Architektur aufweisen, bei der die Lese/Schreib-Module dicht
gepackt sind, so dass diese eine zusammenhängende Reihe von Speicherzellen
des Speicherarrays versorgen können.
Dies ermögliche
ein zusammenhängendes
Lesen und Programmieren eines Segments oder einer gesamten Reihe
von Speicherzellen, was zu einer Verbesserung der Performance und
der Reduzierung der Kopplungsfehler aufgrund von Feldern benachbarter Speicherzellen
führt.
-
Zusätzliche
Merkmale und Vorteile der vorliegenden Erfindung werden aus der
folgenden Beschreibung als Beispiel der Erfindung ersichtlich, wobei
die Beschreibung in Verbindung mit den beiliegenden Zeichnungen
betrachtet werden sollte, wobei:
-
1A–1E stellen
unterschiedliche Beispiele nichtflüchtiger Speicherzellen schematisch dar,
-
2 stellt
ein Beispiel eines NOR Arrays von Speicherzellen dar,
-
3 stellt
ein Beispiel eines NAND Arrays von Speicherzellen, so wie beispielsweise
das in 1D gezeigte dar,
-
4 stellt
den Zusammenhang zwischen dem Source-Drain Strom und der Control
Gate Spannung für
vier unterschiedliche Ladungen Q1–Q4 dar, welche das Floating
Gate zu einer Zeit speichern kann,
-
5 stellt
eine typische Anordnung eines Speicherzellenarrays schematisch dar,
welches durch Lese/Schreib-Schaltungen über Reihen- und Spaltendecoder
ansteuerbar ist,
-
6A ist
ein schematisches Blockdiagramm eines einzelnen Lese/Schreib-Moduls,
-
6B zeigt
den Lese/Schreib-Stack aus 5, welcher
mit einem Stack aus Lese/Schreib-Modulen konventionell implementiert
ist,
-
7A ist
ein schematisches Blockdiagramm eines einzelnen Lese/Schreib-Moduls,
welches in einen Kernteil und einen gemeinsamen Teil unterteilt
ist,
-
7B stellt
einen alternativen Kernteil des in 7A gezeigten
Lese/Schreib-Moduls dar,
-
8A stellt
ein kompaktes Speicherelement schematisch dar, welches eine Bank
aus unterteilten Lese/Schreib-Stacks aufweist,
-
8B stellt
eine bevorzugte Anordnung des in 8A gezeigten
Speicherelements dar,
-
9 stellt
detaillierter die in 8A oder 8B gezeigten
Lese/Schreib-Schaltungen schematisch dar, welche in einer Bank aus
unterteilten Lese/Schreib-Stacks organisiert sind,
-
10 zeigt
detaillierter einen unterteilten Lese/Schreib-Stack, welcher aus
einem Stack von Lese/Schreib-Modulen gebildet ist,
-
11A stellt eine Ausgestaltung eines in 10 dargestellten
Lese/Schreib-Kernstacks 410 dar, in welchem jeder Leseverstärker im
Stack neben seiner zugehörigen
Bitleitung angeordnet ist,
-
11B stellt eine weitere Ausgestaltung eines in 10 dargestellten
Lese/Schreib-Kernstacks 410 dar,
in welchem die einzelnen Leseverstärker im Stack einen Cluster
und die einzelnen Bitleitungs-Latches einen anderen Cluster bilden,
-
12 zeigt
detaillierter den in 10 gezeigten gemeinsamen Teil
des Lese/Schreib-Stacks,
-
13A stellt eine konventionelle Implementierung
eines Schieberegisters dar,
-
13B ist eine Tabelle, welche das Laden von Daten
in einen Daten-Latch-Stack darstellt, welcher mit Master-Slave Flip-Flops
aus 13A implementiert ist,
-
14A stellt eine bevorzugte Ausgestaltung des kompakten
Latch-Stacks dar,
-
14B zeigt eine Ausgestaltung des Master oder Slave
Verbindungsmoduls,
-
14C stellt schematisch dar, dass sich das Verbindungsmodul
aus 13B als Latch verhält, wenn
das Kontrollsignal LH/INV* gleich HIGH ist,
-
14D stellt schematisch dar, dass sich das Verbindungsmodul
als Inverter verhält,
wenn das Kontrollsignal LH/INV* gleich LOW ist,
-
15A stellt das Laden von vier Bit Daten in einen
Daten-Latch-Stack dar, welcher mit dem in 14A gezeigten
kompakten Daten-Latch-Stack implementiert ist,
-
15B stellt einen destruktiven Lesemodus der vier
Bit Daten aus dem Daten-Latch-Stack
in 15A dar,
-
15C stellt eine andere bevorzugte Ausgestaltung
mit einem erhaltenden Auslesemodus der vier Bit Daten aus dem Daten-Latch-Stack
aus 14A dar,
-
16A stellt eine weitere Implementierung des in 14A gezeigten "k
+ 1" Daten-Latch-Stacks dar,
-
16B stellt eine andere bevorzugte Implementierung
des in 13A gezeigten "k + 1 "Daten-Latch-Stacks
dar,
-
17 stellt
eine andere bevorzugte Implementierung des Slave Verbindungsmoduls
dar.
-
7A ist
ein schematisches Blockdiagramm eines einzelnen Lese/Schreib-Moduls 200, welches
in einen Kernteil 210 und einen gemeinsamen Teil 220 unterteilt
ist. Der Kernteil 210 umfasst einen Leseverstärker 210,
welcher ermittelt, ob ein Leitungsstrom in einer verbundenen Bitleitung 211 sich über oder
unter einem festgelegten Schwellenpegel befindet. Wie zuvor beschrieben
wurde, ermöglicht
die verbundene Bitleitung 211 Zugriff auf die Drain einer
adressierten Speicherzelle in einem Array.
-
In
einer Ausgestaltung umfasst der Kernteil 210 auch ein Bitleitungs-Latch 214.
Das Bitleitungs-Latch wird dazu verwendet, um eine Spannungsbedingung
an der verbundenen Bitleitung 211 festzulegen. In einer
Implementierung führt
ein vorgegebener Zustand, welcher im Bitleitungs-Latch zwischengespeichert
ist, darauf hinaus, dass die verbundene Bitleitung 211 in
einen Zustand versetzt wird, welcher eine Sperrung der Programmierung kennzeichnet
(z.B. Vdd). Dieses Merkmal zur Sperrung
der Programmierung wird später
beschrieben.
-
Der
gemeinsame Teil 220 umfasst einen Prozessor 222,
ein Satz Daten-Latches 224 und ein I/O Interface 226,
welches zwischen dem Satz Daten-Latches 224 und einem Datenbus 231 gekoppelt ist.
Der Prozessor 222 führt
Berechnungen durch. Zum Beispiel besteht eine seiner Funktionen
darin, den Datenzustand der abgetasteten Speicherzelle zu ermitteln
und die ermittelten Daten in dem Satz Daten-Latches zu speichern.
Wie im Grundlagenteil erläutert
wurde, kann eine Speicherzelle einen Bereich von Ladung halten und
kann daher auf einen Schwellenspannungspegel (d.h. die Control Gate
Spannung, welche gerade einen vorgegebenen Leitungsstrom hervorruft)
innerhalb des Schwellenspannungsfensters programmiert werden. Der
Satz Daten-Latches 224 wird dazu verwendet, vom Prozessor
während
einer Leseoperation ermittelte Datenbit zu speichern. Dieser wird
auch dazu verwendet, während
einer Programmieroperation vom Datenbus 231 eingelesene
Datenbit zu speichern. Die eingelesenen Daten repräsentieren
Data, welche dazu bestimmt sind, in den Speicher programmiert zu
werden. Das I/O Interface 226 stellt ein Interface zwischen
dem Satz Daten-Latches 224 und dem Datenbus 231 zur
Verfügung.
-
Während des
Lesens oder Abtastens steht der Betrieb unter Kontrolle einer State
Machine, welche im Wesentlichen die Versorgung von unterschiedlichen
Control Gate Spannungen an den adressierten Zellen kontrolliert.
Wenn die verschiedenen vordefinierten Control Gate Spannungen entsprechend
der vom Speicher unterstützten
Speicherzustände
durchlaufen werden, wird der Leseverstärker 212 bei einer
von drei Spannungen auslösen.
An diesem Punkt ermittelt der Prozessor 222 den resultierenden
Speicherzustand unter Berücksichtigung des
Auslöse-Vorgangs
des Leseverstärkers
und der Information über
die angelegte Control Gate Spannung von der State Machine über eine
Eingabeleitung 223. Es wird eine binäre Codierung für den Speicherzustand
berechnet und die resultierenden Datenbit werden im Satz Daten-Latches 224 gespeichert.
-
7B stellt
eine andere bevorzugte Ausgestaltung des in 7A gezeigten
Kernteils des Lese/Schreib-Moduls dar. Im Wesentlichen dient der SA/Bitleitungs-Latch 214 zwei
Aufgaben, sowohl zum Zwischenspeichern der Ausgabedaten des Leseverstärkers 212 als
auch als Bitleitungs-Latch wie in Verbindung mit 7A beschrieben
wurde. Deshalb kann dieser entweder vom Leseverstärker oder vom
Prozessor eingestellt werden. In einer bevorzugten Implementierung
wird das Signal vom SA/Bitleitungs-Latch 214 von einem
Treiber 216 angesteuert, um die Spannung der ausgewählten Bitleitung 211 einzustellen.
-
In
Bezug auf 7A werden während des Programmierens oder
Prüfens
die zu programmierenden Daten in den Satz Daten-Latches 223 vom Datenbus 321 eingegeben.
Unter der Kontrolle der State Machine umfasst die Programmieroperation eine
Reihe von Programmierspannungsimpulsen, welche am Control Gate der
adressierten Zelle angelegt werden. Jeder Programmierimpuls ist
von einem Zurücklesen
gefolgt, um zu ermitteln, ob die Zelle in den gewünschten
Speicherzustand programmiert wurde. Der Prozessor 222 kontrolliert
den zurückgelesenen
Speicherzustand relativ zum gewünschten Speicherzustand.
Wenn die beiden übereinstimmen, setzt
der Prozessor 222 das Bitleitungs-Latch 214, um so die Bitleitung
in einen Zustand zu versetzten, welcher eine Sperrung der Programmierung
kennzeichnet. Dies hindert die an die Bitleitung gekoppelte Zelle
daran, weiter programmiert zu werden, selbst wenn Programmierimpulse
an ihrem Control Gate auftreten.
-
Das
I/O Interface 226 ermöglicht
es den Daten, in oder aus dem Satz Daten-Latches 224 transportiert
zu werden. Wie in 8A, 8B und 9 zu
sehen sein wird, wird ein Block Lese/Schreib-Module an einem Speicherelement
parallel verwendet, um jeweils einen Block Daten zu Lesen oder zu
Programmieren. Typischerweise hat der Block Lese/Schreib- Module seinen eigenen
Satz Daten-Latches, welche verbunden sind, um ein Schieberegister
zu bilden, so dass die vom Block Lese/Schreib-Module zwischengespeicherten
Daten seriell zum Datenbus 231 übertragen werden können. In
gleicher Weise können
Daten für
die Blöcke von
Lese/Schreib-Modulen seriell vom Datenbus 231 eingegeben
werden und in den entsprechenden Sätzen Daten-Latches zwischengespeichert
werden.
-
Andere
spezifische Implementierungen des Lese/Schreib-Moduls 200 wird
in der gleichzeitig anhängigen
und übertragenen
US Patentanmeldung NON-VOLATILE MEMORY AND METHOD WITH REDUCED NEIGHBORING
FIELD ERRORS von Raul-Adrian Cornea und Yau Li, angemeldet am gleichen
Tag wie die vorliegende Erfindung, offenbart. Die gesamte Offenbarung
dieser Anmeldung wird hiermit durch Bezugnahme eingebunden.
-
KOMPAKTE LESE/SCHREIB-SCHALTUNGEN
-
Bei
einem Block Lese/Schreib-Module, welche parallel in Betrieb sind,
kann jedes Modul in einen Kernteil und einen gemeinsamen Teil unterteilt werden,
wobei der Block Kernteile mit einer im Wesentlichen geringeren Anzahl
von gemeinsamen Teilen betrieben wird und gemeinsam verwendet wird. Diese
Architektur ermögliche
doppelte Schaltungen unter den einzelnen Lese/Schreib-Modulen, welche eingespart
werden und dadurch Platz und Energie eingespart wird. Beim Design
von Speicherchips mit hoher Dichte kann die Platzersparnis so viel
wie fünfzig
Prozent der gesamten Lese/Schreib-Schaltungen für das Speicherarray betragen.
Dies ermöglicht,
die Lese/Schreib-Module dicht zu packen, so dass diese gleichzeitig
eine zusammenhängende
Reihe von Speicherzellen des Speicherarrays versorgen können.
-
8A stellt
schematisch ein kompaktes Speicherelement dar, welches eine Bank
unterteilter Lese/Schreib-Stacks gemäß einer Ausgestaltung der Erfindung
aufweist. Das Speicherelement umfasst ein zweidimensionales Array
von Speicherzellen 300, Kontroll-Schaltungen 310 und Lese/Schreib-Schaltungen 370.
Das Speicherarray 300 ist mittels Wortleitungen über einen
Reihendecoder 330 und mittels Bitleitungen über einen
Spaltendecoder 360 adressierbar. Die Lese/Schreib-Schaltungen 370 sind
als Bank von unterteilten Lese/Schreib-Stacks 400 implementiert
und ermöglichen
einen Block Speicherzellen parallel zu lesen oder zu programmieren.
In einer Ausgestaltung, bei der eine Reihe Speicherzellen in mehrere
Blöcke
unterteilt ist, steht ein Block Multiplexer 350 zur Verfügung, um
die Lese/Schreib-Schaltungen 370 in die einzelnen Blöcken zu
multiplexen. Wie später
detaillierter beschrieben wird, erfolgt eine Kommunikation zwischen
einem Le se/Schreib-Stack 400 durch einen Stackbus und wird
von einem Stackbuscontroller 430 kontrolliert.
-
Die
Kontrollschaltung 310 arbeitet mit der Lese/Schreib-Schaltung 370 zusammen,
um Speicheroperationen am Speicherarray 300 durchzuführen. Die
Kontrollschaltung 310 umfasst eine State Machine 312,
einen Adresscodierer auf dem Chip 314 sowie ein Leistungskontrollmodul 316.
Die State Machine 312 stellt auf Chipebene eine Steuerung
von Speicheroperationen zur Verfügung.
Der Adresscodierer auf dem Chip 314 stellt ein Adressinterface
zwischen der vom Host oder einem Speichercontroller verwendeten
Hardwareadresse zu den Hardwareadressen zur Verfügung, welche von den Decodern 330 und 370 verwendet
werden. Das Leistungskontrollmodul 316 steuert die Leistung
und Spannungen, welche die Wortleitungen und Bitleitung während Speicheroperationen
versorgt.
-
8B zeigt
eine bevorzugte Anordnung des in 8A gezeigten
kompakten Speicherelementes. Zugriff auf das Speicherarray 300 mittels
der verschiedenen peripheren Schaltungen ist in einer symmetrischen
Art und Weise an gegenüberliegenden
Seiten des Arrays implementiert, so dass Zugriffsleitungen und Schaltungen
an jeder Seite auf die Hälfte
reduziert werden. Der Reihendecoder ist in Reihendecoder 330A und 330B unterteilt
und der Spaltendecoder in Spaltendecoder 360A und 360B. In
der Ausgestaltung, bei der eine Reihe Speicherzellen in mehrere
Blöcke
unterteilt ist, sind die Blockmultiplexer 350 in Blockmultiplexer 350A und 350B unterteilt.
In gleicher Weise sind die Lese/Schreib-Schaltungen in Lese/Schreib-Schaltungen 370A unterteilt,
welche mit Bitleitungen vom Boden und Lese/Schreib-Schaltungen 370B welche
mit Bitleitungen von der Oberseite des Arrays 300 verbinden.
Auf diese Art und Weise wird die Dichte der Lese/Schreib-Module und deswegen
die der unterteilten Lese/Schreib-Stacks 400 im Wesentlichen
auf die Hälfte
reduziert.
-
9 stellt
schematisch die in 8A oder 8B gezeigten
Lese/Schreib-Schaltungen detaillierter dar, welche in einer Bank
unterteilter Lese/Schreib-Stacks organisiert sind. Jeder unterteilte Lese/Schreib-Stack 400 enthält im Wesentlichen
einen Stack Lese/Schreib-Module,
welcher ein Segment aus k Speicherzellen parallel versorgt. Jeder Stack
ist in einen Stack-Kernteil 410 und einen gemeinsamen Stack-Teil 420 unterteilt.
Kommunikation zwischen jedem Lese/Schreib-Stack 400 wird
durch einen miteinander verbindenden Stackbus 431 durchgeführt und
wird vom Stackbuscontroller 430 gesteuert. Kontrollleitungen 411 stellen
Kontroll- und Taktsignale vom Stackbuscontroller 430 zu
jedem Kernteil der Lese/Schreib-Stacks 410 zur Verfügung. Auf
gleiche Art und Weise stellen Kon trollleitungen 421 Kontroll-
und Taktsignale vom Stackbuscontroller 430 jedem der gemeinsamen
Teile der Lese/Schreib-Stacks 420 zur Verfügung.
-
Die
gesamte Bank unterteilter Lese/Schreib-Stacks 400, welche
parallel arbeiten, ermöglicht
es einem Block aus p Zellen entlang einer Reihe parallel gelesen
oder programmiert zu werden. Wenn zum Beispiel r die Anzahl von
Stacks in der Bank ist, dann ist p = r·k. Zum Beispiel kann bei
einem Speicherarray p = 512 Bytes (512 × 8 Bit), k = 8 und daher r
= 512 sein. In der bevorzugten Ausgestaltung ist der Block eine
Serie der gesamten Zellenreihe. In einer anderen Ausgestaltung ist
der Block eine Teilmenge von Zellen in der Reihe. Beispielsweise
könnte
die Teilmenge der Zellen die Hälfte
der gesamten Reihe oder ein Viertel der gesamten Reihe betragen.
Die Teilmenge von Zellen könnte
eine Serie zusammenhängender
Zellen oder eine jeder anderer Zelle oder eine jeder vorgegebenen
Anzahl von Zellen sein.
-
In
der in 8A gezeigten Ausgestaltung ist p
eine Anzahl von Lese/Schreib-Modulen, wobei ein für jeden
der Blöcke
aus p Zellen vorhanden ist. Da jeder Stack k Speicherzellen versorgt,
beträgt
die Gesamtanzahl der Lese/Schreib-Stacks in der Bank daher r = p/k.
Beim Beispiel mit p = 512 Bytes und k = 8 beträgt r = 512.
-
Wie
zuvor erwähnt,
besteht ein aufgetretenes Problem bei Speichern hoher Dichte und
hoher Leistungsfähigkeit
in der Notwendigkeit, einen Block hintereinanderliegender Speicherzellen
parallel zu lesen und zu programmieren sowie die Schwierigkeit, ein
Lese/Schreib-Modul für
jede Zelle unterzubringen.
-
Das
Unterbringungsproblem wird durch eine in 8B gezeigte
bevorzugte Ausgestaltung verringert, bei der die peripheren Schaltungen
auf gegenüberliegenden
Seiten des Speicherarrays gebildet werden. Wenn die Lese/Schreib-Schaltungen 370A und 370B an
gegenüberliegenden
Seiten des Speicherarrays 300 gebildet werden, wird dann
auf die Hälfte
der Blöcke
aus p Zellen von der Oberseite und auf die andere Hälfte von
der Unterseite des Arrays zugegriffen. Dadurch sind p/2 Lese/Schreib-Module auf
jeder Seite vorhanden. Daraus folgt, dass die Lese/Schreib-Stacks 400 auf
jeder Seite nur eine Anzahl von p/2 Bitleitungen oder Speicherzellen
parallel versorgen müssen
und die Anzahl von Lese/Schreib-Stacks in der Bank durch r = p/2k
gegeben ist. Beim Beispiel mit p = 512 Bytes und k = 8 beträgt r = 256.
Dies bedeutet, dass nur halb so viele Lese/Schreib-Stacks 400 auf
jeder Seite des Speicherarrays im Vergleich zu der in 8A gezeigten Ausgestaltung
erforderlich sind.
-
In
anderen Ausgestaltungen, bei denen die Unterbringung oder andere
Gesichtspunkte sogar eine geringere Dichte vorschreiben, wird eine
Reihe von Zellen in einen oder mehrere Interleaving Blöcke von
Zellen unterteilt. Zum Beispiel besteht ein Block Zellen aus Zellen
aus geraden Spalten und der andere Block Zellen aus ungeraden Spalten.
Wie in 8A und 8B gezeigt,
wird der Block-Multiplexer 350 oder 350A und 350B dazu
verwendet, die Bank unterteilter Lese/Schreib-Stacks zum Schalten von
entweder geraden oder ungeraden Blöcken verwendet. In der in 8B gezeigten
Ausgestaltung ist eine Anzahl von p/4 Lese/Schreib-Modulen auf jeder Seite
des Arrays vorhanden. In diesem Fall beträgt die Anzahl der Lese/Schreib-Stacks
an jeder der gegenüberliegenden
Seiten r = p/4k. Auf diese Weise wird mehr Raum zur Verfügung gestellt,
um die geringere Anzahl von Lese/Schreib-Modulen unterzubringen,
jedoch auf Kosten verringerter Performance und dass der Lese/Schreib-Block
nicht mehr zusammenhängend
ist.
-
10 zeigt
detaillierter einen unterteilten Lese/Schreib-Stack, welcher aus
einem Stack aus Lese/Schreib-Modulen gebildet ist. Der unterteilte Lese/Schreib-Stack 400 umfasst
im Wesentlichen eine Anzahl k Lese/Schreib-Module, welche eine Anzahl
k Speicherzellen über
eine Anzahl k Bitleitungen versorgt. Wie aus dem in 7 gezeigten
Lese/Schreib-Modul
gesehen werden kann, beinhaltet dieses mehr Schaltungselemente als
eine Speicherzelle und kann daher nicht innerhalb einer Spalte untergebracht
werden, deren Breite im Wesentlichen durch die einer Speicherzelle
definiert wird. In Abhängigkeit
von der Komplexität
und den Merkmalen der Lese/Schreib-Module 200 kann dies
leicht zum Beispiel acht bis sechzehn oder mehr Spalten in Anspruch
nehmen (d.h. k ist 8 bis 16 oder mehr). Jedes Lese/Schreib-Modul
weist eine Breite auf, welche eine ausreichende Anzahl von Spalten
wie zum Beispiel k überspannt.
Das heißt,
dass eine gleiche Anzahl k von Modulen innerhalb dieser überspannten Spalten
aufgestapelt werden muss um jede Spalte zu versorgen. Wenn beispielsweise
jedes Lese/Schreib-Modul eine Breite von 16 Spalten aufweist, wird
bei der in 8A gezeigten Ausgestaltung,
wobei sich die Lese/Schreib-Schaltungen sich lediglich auf einer
Seite befinden, der Stack sechzehn Lese/Schreib-Module enthalten.
In der in 8B gezeigten bevorzugten Ausgestaltung,
bei der die Lese/Schreib-Schaltungen beidseitig oben und unten auf
dem Arrays gebildet sind, so dass auf acht Bitleitungen an jedem
Ende zugegriffen wird, ist der Stack acht Lese/Schreib-Module tief.
-
Ein
wichtiges Merkmal der Erfindung besteht darin, hoch entwickelte
Lese/Schreib-Module 200 zu implementieren,
welche dabei höchst
kompakt sind. Dies wird durch Unterteilen der Blöcke von p Lese/Schreib-Modulen
in p Kernteile von Lese/Schreib-Modulen 210 ermöglicht,
welche eine wesentlich kleinere Anzahl (d.h. r) gemeinsamer Lese/Schreib-Module 220 gemeinsam
benutzen.
-
10 stellt
dar, dass ein Lese/Schreib-Stack 400, welcher k Bitleitungen
bedient, in einen Stack-Kernteil 410 und einen gemeinsamen
Stack-Teil unterteilt ist. Der Stack-Kernteil 410 enthält k Lese/Schreib
Kernmodule 210 wie jeder der beispielsweise in 7A oder 7B gezeigten Kerne.
Der gemeinsame Stack-Teil 420 enthält einen gemeinsamen Lese/Schreib-Teil
so wie der beispielsweise in 7A gezeigte
gemeinsame Teil 220. Das Unterteilen in Kernteile und gemeinsame
Teile basiert auf dem Prinzip, dass alle Kernteile gemeinsam oder
parallel betrieben werden. In diesem Fall wird dieser den Leseverstärker 212 und
SA/Bitleitungs-Latch 210 (Siehe 7B) umfassen,
wenn der entsprechende Block Speicherzellen parallel abgetastet
wird. Nachdem der Block Speicherzellen parallel abgetastet wurde,
können
die abgetasteten Ergebnisse durch die verhältnismäßig geringere Anzahl gemeinsamer
Teile seriell verarbeitet werden.
-
Kommunikation
zwischen jedem der Kernteile 210 und dem gemeinsamen Teil 420 erfolgt über den
Stackbus 431 unter der Kontrolle des Stackbuscontrollers 430.
Dies wird durch Kontrollleitungen so wie beispielsweise 411-k und 421 vom
Controller durchgeführt,
welche zu allen Stacks in der Bank verlaufen.
-
Dieses
System gemeinsamer Nutzung vermeidet Redundanz der Lese/Schreib-Schaltungen. Wenn
k = 8 werden ungefähr
sieben von acht gemeinsamen Teilen innerhalb jedem Stack nicht mehr benötigt. Hinsichtlich
der gesamten Lese/Schreib-Schaltung beläuft sich dies ungefähr auf eine
Gesamtanzahl von r·(k – 1) gemeinsamen
Teilen, was auf eine beachtliche Einsparung der Fläche der
integrierten Schaltung hinausläuft.
Wie zuvor erwähnt
könnte
dies auf die Reduzierung der durch die Lese/Schreib-Schaltungen
beanspruchten Fläche auf
so viel wie fünfzig
Prozent hinauslaufen.
-
11A stellt eine Ausgestaltung eines in 10A gezeigten Lese/Schreib-Stack Kernteils 410 dar,
in welchem sich jeder Leseverstärker
im Stack angrenzend zu seinem zugehörigen Bitleitungs-Latch befindet.
Die Leseverstärker
und die Bit-Latches sind denjenigen ähnlich, welche im Lese/Schreib-Modul
Kernteil 210 in 7 gezeigt
sind. Der Lese/Schreib-Stack Kernteil 410 enthält k Leseverstärker 212-1 bis 212-k sowie
k Bitleitungs-Latches 214-1 bis 214-k und ist
derart organisiert, dass sich ein Bitleitungs-Latch benachbart zu
einem Leseverstärker
befindet, welcher die selbe Bitleitung versorgt. Zum Beispiel befindet
sich Bitleitungs-Latch 214-1 benachbart zu Leseverstärker 212-1,
wobei beide mit der Bitleitung 1 gekoppelt sind. Jeder der Bitleitungs-Latches
und Leseverstär ker
kommuniziert mit anderen Komponenten im Lese/Schreib-Stack 400 über den
Stackbus 431 (siehe 10).
-
11B stellt eine andere Ausgestaltung eines in 10 gezeigten
Lese/Schreib-Stack Kerns 410 dar, in welchem einzelne Leseverstärker im Stack
einen Cluster bilden und die einzelnen Bitleitungs-Latches einen
anderen Cluster bilden. Der Lese/Schreib-Stack Kernteil 410 enthält k Leseverstärker 212-1 bis 212-k und
k Bitleitungs-Latches 214-1 bis 214-k. Der Lese/Schreib-Stack
Kernteil 410 ist derart organisiert, dass sich alle k Bitleitungs-Latches in einem
Cluster gegenseitig nebeneinander befinden und alle k Leseverstärker sich
in einem anderen Cluster gegenseitig nebeneinander befinden. Zum Beispiel
bilden die Bitleitungs-Latches 214-1 bis 214-k einen
Cluster und die Leseverstärker 212-1 bis 212-k bilden
einen anderen Cluster. Jeder der Bitleitungs-Latches und Leseverstärker kommuniziert
mit anderen Komponenten im Lese/Schreib-Stack 400 über den
Stackbus 431 (siehe 10) unter
Kontrolle des Stackbuscontroller über Kontrolleitungen 411.
-
12 zeigt
detaillierter den in 10 gezeigten gemeinsamen Teil
des Lese/Schreib-Stacks. Der
gemeinsame Teils des Lese/Schreib-Stacks 420 enthält im Wesentlichen
eine Kopie des gemeinsamen Teils des Lese/Schreib-Moduls wie zum
Beispiel der in 7 gezeigte gemeinsame
Teil 220. Er umfasst einen Prozessor sowie einen Daten-Latch-Stack 224.
In einer Ausgestaltung ist der Datenbus 231 mit dem Prozessor 222 gekoppelt
und der Daten-Latch-Stack 224 ist auch mit dem Stackbus 431 über den
Prozessor 222 gekoppelt. In einer anderen Ausgestaltung
ist der Datenbus 231 eine Erweiterung des Stackbus 431.
Der Stackbus 431 (siehe 10) ermöglicht eine
Kommunikation zwischen dem Kernteil des Lese/Schreib-Stacks und
dem gemeinsamen Teil 420. Auf diese Art und Weise sind
die einzelnen Lese/Schreib Kernmodule 210 in der Lage, den
gemeinsamen Teil 420 gemeinsam zu benutzen. Der Betrieb
des Prozessors 222, des Daten-Latch-Stacks 224 und des Stackbus 431 werden mit
Taktsignalen vom Stackbus über
die Kontrollleitungen 421 gesteuert.
-
Der
Betrieb der verschiedenen Komponenten im Lese/Schreib-Stack 400 sind
denen ähnlich, welche
allgemein in Verbindung mit dem unterteilten Lese/Schreib-Modul 200 in 7 beschrieben wurden. Ein hoch entwickeltes
Lese/Schreib-Modul mit vielen Merkmalen ist aufgrund des eingesparten
Platzes durch einen gemeinsamen Betrieb eines gemeinsamen Stack-Teils
unter mehrfachen Lese/Schreib-Kernmodulen möglich. Zum Beispiel kann der
Prozessor 222 auch dazu verwendet werden, Refined Margining
Estimations als auch statistische und dynamische Datenverarbeitung
umfassend Fehlerkorrekturen durchzuführen.
-
STACK BUS
-
Zur
Kommunikation zwischen den verschiedenen Teilen innerhalb eines
unterteilten Lese/Schreib-Stacks 400 wird ein serieller
Bus zur Verfügung
gestellt. Der serielle Bus 431 verbindet den gemeinsamen
Teil des Lese/Schreib-Moduls 420 mit jedem beliebigen der
Lese/Schreib-Kernmodule 410 unter Kontrolle des Stackbuscontrollers 430.
Der Stackbuscontroller 430 dient als ein Master Bus Controlling
wenn und wo Daten zwischen den verschiedenen Teilen innerhalb des
Lese/Schreib-Stacks 400 transferiert werden.
-
Mit
Bezug auf 10–12, wenn
eine Speicherzelle adressiert wird, wird deren Source-Drain Strom durch
einen der Leseverstärker
wie zum Beispiel durch Leseverstärker 212-k abgetastet. Die
digitale Ausgabe des Leseverstärkers 212-k wird auf
dem Stackbus 431 abgelegt, welche dann vom Prozessor 222 aufgenommen
wird. Das Bustiming wird vom Stackbuscontroller 430 gesteuert.
Der Prozessor 222 verarbeitet die Ausgangsdaten des Leseverstärkers zusammen
mit dazugehörigen
Statusinformationen um binäre
Daten für
die adressierte Zelle zu erhalten. Die binären Daten werden dann auf dem Stackbus 431 abgelegt
und werden von den Daten-Latches empfangen, welche mit den Bitleitungen k
verbunden sind. Erneut gewährleistet
der Stackbuscontroller 430, dass die vom Leseverstärker erlangten
binären
Daten 212-k zu den zugehörigen Daten-Latches gelangen.
-
Beim
Prüfschritt
einer Programmieroperation kennzeichnet das digitale Signal des
Leseverstärkers,
ob die adressierte Speicherzelle in den gewünschten Zustand programmiert
wurde. Falls der gewünschte
Pegel erreicht wurde, sendet der Prozessor 222 ein Kontrollsignal über den
Stackbus 431 zum korrespondierenden Bitleitungs-Latch.
Zum Beispiel kann Bitleitungs-Latch 214-k in einen Zustand versetzt
werden, welcher einem Zustand entspricht, wenn die Bitleitung k
auf eine vorgegebene Spannung gesetzt wird (z.B. Vdd),
um eine weitere Programmierung der gekoppelten Speicherzelle zu
unterbinden. In einer weiteren Ausgestaltung kann ein Program Lockout
Latch durch ein dediziertes Latch implementiert werden, welches
nicht notwendigerweise zum Kontrollieren der Spannung der Bitleitung gekoppelt
ist, jedoch gekoppelt ist, um die Programmierspannungen durch eine
adressierte Wortleitung zu kontrollieren.
-
Die
Unterteilung und gemeinsame Benutzung eines gemeinsamen Teils 420 durch
k Lese/Schreib-Kernmodule 210 sagt aus, dass ein gemeinsamer
Kommunikationskanal zwischen den unterteilten Teilen aufgebaut ist.
Mit Bezug auf 7 kann gesehen werden,
dass zumindest zwei Verbindungen zwischen dem Kernteil 210 und
dem gemeinsamen Teil 220 vorhanden sind. So würde es erscheinen,
dass mindestens 2k Verbindungen erforderlich sind. Dies ergibt neben
den k Bitleitungen eine Gesamtzahl von 3k Verbindungen, welche innerhalb
der k bis 2k Spaltenbreite zur Verfügung zu stellen sind. So muss
zumindest jede Spalte 1,5 leitende Leitungen aufnehmen. Allgemein
sollte vorzugsweise ein Minimum leitender Leitungen innerhalb jeder
Spalte vorhanden sein, so dass die Breite und daher die Leitfähigkeit
jeder Leitung maximiert wird.
-
Die
Implementierung des Stackbus 431 ermöglicht eine verminderte Anzahl
von Kommunikationsleitungen für
die verschiedenen Teile des unterteilten Lese/Schreib-Stacks 400.
In der bevorzugten Ausgestaltung wird eine Implementierung eines
seriellen Bus mit nur einer Leitung verwendet. Auf diese Art und
Weise ist für
jeden Stack, welcher 2k Spalten belegt, zusätzlich zu k vorhandenen Bitleitungen
nur eine leitende Leitung erforderlich, was sich auf eine Gesamtanzahl
von k + 1 leitender Leitungen beläuft. Dies kann dazu führen, dass
jeder Spalte etwa 0,5 leitende Leitungen aufnehmen muss, was bedeutet, dass
jede leitende Leitung etwa 2 Spalten breit sein kann. Ein Lese/Schreib-Stack
mit einer seriellen Bus-Struktur ermöglicht ebenso mehr Freiheit
des Layouts, so dass die Platzierung der einzelnen Teile innerhalb
des Stacks (siehe beispielsweise 11A und 11B) gemäß einer
vorgegebenen Betrachtung optimiert werden kann.
-
KOMPAKTER I/O AKTIVIERTER
DATEN-LATCH-STACK
-
Ein
Satz I/O aktivierter Daten-Latches, welche dem Block von Lese/Schreib-Leseverstärkern angegliedert
sind, sind als ein Teil raumeffizienter Schieberegister implementiert.
-
Wie
zuvor beschreiben wird bei einer Leseoperation das Ausgangssignal
des Leseverstärkers 212 vom
Prozessor 222 interpretiert und in ein binäres Format
umgewandelt. Bei einer Implementierung eines Zweizustandspeichers
belaufen sich die umgewandelten Daten auf ein Bit binäre Daten.
Bei Mehrzustand-Implementierungen werden die umgewandelten binären Daten
mehr als ein Bit betragen. Für jedes
Bit binäre
Daten wird ein entsprechendes Daten-Latch unter einem Satz Daten-Latches
vorhanden sein. Während
einer Programmieroperation wird der selbe Satz Daten-Latches als
Programmier-Daten-Latches
verwendet: Die zu programmierenden Daten werden vom Host/Controller über den
Datenbus zum Speicherchip geschickt und im selben Satz Daten-Latches
gespeichert. Zum Zweck der vorliegenden Beschreibung versteht sich,
dass der Latch im Fall mehrerer Zuständen ein Array ist.
-
Mit
Bezug auf 12 enthält der kompakte Daten-Latch-Stack 224 einen
Stack aus k Daten-Latches entsprechend den k Leseverstärkern. Da
diese Daten-Latches ihre Lesedaten oder Schreibdaten mit dem Datenbus 731 austauschen,
ist es vorzuziehen, den Daten-Latch-Stack als ein Schieberegister
zu implementieren, so dass die darin parallel gespeicherten Daten
für den
Datenbus in serielle Daten umgewandelt werden und umgekehrt. In
der bevorzugten Ausgestaltung können
alle Daten-Latches entsprechend der Lese/Schreib-Blöcke von
p Speicherzellen miteinander verbunden werden, um ein Block-Schieberegister zu
bilden, so dass ein Block Daten durch serielles Übertragen in den Datenbus eingegeben oder
aus dem Datenbus ausgegeben werden kann. Im Wesentlichen ist die
Bank aus r Lese/Schreib-Stacks getaktet, so dass jeder seiner Sätze Daten-Latches Daten in
oder aus dem Datenbus sequentiell schiebt als wären sie Teil eines Schieberegisters
für den
gesamten Lese/Schreib-Block.
-
13A stellt eine konventionelle Implementierung
eines Schieberegisters dar. Ein Schieberegister ist mit einer Reihe
Master-Slave Flip-Flops M1, S1,
..., Mk, Sk implementiert.
Wenn der Daten-Latch-Stack 224 mit diesem Schieberegistertyp implementiert
wird, werden Daten seriell durch die Reihe von Master-Slave Flip-Flops
geschoben. Bei jeder Taktimpulsflanke werden alle Flip-Flops in
der Kette synchron betrieben und die Daten in der Kette werden um
ein Flip-Flop verschoben. Ein Zuordnen eines Slaves zu jedem Master
Flip-Flop gewährleistet,
dass der Inhalt jedes Masters in den Slave kopiert wird, bevor der
Master überschrieben
wird. Dieser Schieberegistertyp kann als ein "2k Shift Latch" betrachtet werden, da es einen doppelten
Overhead aufweist, in welchem es 2k Speicher zum Halten und Schieben
einer Anzahl von k Datenbit erfordert.
-
13 ist eine Tabelle, welche das Laden von
Daten in einen Daten-Latch-Stack darstellt, welcher mit den Master-Slave
Flip-Flops aus 13A implementiert ist. Eine
Folge von Taktsignalen CLK1, CLK1, CLK3, ... wird
vom Latch-Controller 224 (siehe 10) zur
Verfügung
gestellt und wird auf alle Flip-Flops angewendet, wenn seriell Daten
D1, D2, D3, ... in das Schieberegister eingegeben
werden. Beim ersten Taktzyklus CLK1 werden
die ersten Daten D1 im ersten Master-Slave
Flip-Flop M1 zwischengespeichert. Bei der
fallenden Flanke des ersten Taktsignals CLK1*
werden die Daten D1 in M1 auch
im ersten Slave Flip-Flop S1 zwischengespeichert.
Beim zweiten Taktzyklus CLK2 werden die
nächsten
Daten D2 in M1 geladen,
während
die ersten Daten D1 aus S1 in
das zweite Master Flip-Flop
M2 geladen werden. Nachfolgende Schritte
sind direkte Wiederholungen der gezeigten vorherigen Schritte bis
alle Datenobjekte in den Latch-Stack 224 geschoben sind.
Es kann gesehen werden, dass das Laden von k Datenobjekten k Taktzyklen
erfordert.
-
Es
versteht sich, dass bei einem Mehrzustand-Speicher jedes der Master
Flip-Flops M und der Slave Flip-Flops S ein Array wird, wobei dessen Dimension
von gleichem Ausmaß ist
wie die Anzahl der erforderlichen Datenbit. Zum Beispiel werden
bei einer 4-Zustand-Speicherzelle
die Zustände
durch 2 binäre
Bit Daten codiert. M stellt M(1) und M(2) beziehungsweise S stellt
S(1) und S(2) für
jedes der zwei Bit dar. Auf diese Weise wird das "2k Shift Latch" durch M1(1),
S1(1), M1(2), S1(2), M2(1), S2(1), M2(2), S2(2), ..., Mk(1),
Sk(1), Mk(2), Sk(2) gebildet.
-
14A stellt eine bevorzugte Ausgestaltung des kompakten
Latch-Stacks 224 dar. Der Latch-Stack 224 umfasst
eine Kette, welches ein Slave Verbindungsmodul S1 520 aufweist,
gefolgt von einer Reihe Master Verbindungsmodulen Mk,
..., M2, M1 510.
Die Kette hat ein I/O-Ende 501 am Slave Verbindungsmodul
S1 520. Daten D1,
D2, ..., Dk werden
von den I/O-Leitungen 510 in die Kette geschoben und werden
vom Ende aus aus der Kette M1 geschoben. Die
aus M1 ausgegebenen Daten werden zu den I/O-Leitungen 510 durch
einen Ausgabeleitungstreiber 530 weitergeleitet.
-
Der
Ausgabeleitungstreiber umfasst einen Transistor 532, welcher
von einem READ-Signal
in Leitung 533 gesperrt ist, sowie einen Inverter 534, welcher
durch einen Transistor 536 wahlweise parallel geschaltet
wird. Wenn ein Kontrollsignal INVERT* an einem Gate 537 des
Transistors 536 HIGH ist, ist der Inverter 534 aktiv
und invertiert das Ausgabesignal von M1.
Anderenfalls wird der Inverter 534 kurzgeschlossen und
das Ausgabesignal von M1 erscheint an der
I/O-Leitung 501. Die Kontrollsignale READ, INVERT* sowie
andere Kontroll- und Taktsignale, welche zum Betrieb des Daten-Latch-Stacks 224 erforderlich
sind, werden vom Stackbuscontroller 430 über die
Kontrollleitungen 421 (siehe 12) zur Verfügung gestellt.
-
Der
in 14A gezeigte Daten-Latch-Stack 224 kann
als ein kompaktes "k
+ 1" Schieberegister betrachtet
werden, umfassend k Master Verbindungsmodule 510 zum Halten
von k Bit Daten und nur ein Slave Verbindungsmodul 520,
um temporär Daten
zwischenzuspeichern. Das Slave Verbindungsmodul 520 dient
zum Vereinfachen des Verschiebens der Objekte entlang der Kette
ohne die im Prozess gespeicherten Daten zu verlieren. Diese Implementierung
des Latch-Stack im Vergleich zum "2k Schieberegister" aus 13A und 13B hilft die Anzahl der benötigten Latches um die Hälfte zu
reduzieren. In anderen Ausgestaltungen, welche später beschrieben
werden, können
die k Master Verbindungsmodule mehr als ein Slave Verbindungsmodul gemeinsam
verwenden, aber im Allgemeinen mit der im Wesentlichen geringeren
Anzahl Slave Module als die der Master Module.
-
14B zeigt eine Ausgestaltung des Master oder Slave
Verbindungsmoduls 510, 520. Ein neues Merkmal
des Verbindungsmoduls besteht darin, dass es dazu gebracht werden
kann, sich wahlweise als ein Inverter oder ein Latch zu verhalten.
Das Verbindungsmodul hat einen Eingang 501 und einen Ausgang 551.
Der Eingang 501 empfängt
Daten vom Ausgang des vorangehenden Verbindungsmoduls in der Kette.
Ein Transistor 512, welcher von einem Taktsignal InCLK
gesteuert wird, dient als Gate für die
Eingangsdaten. Wenn das Kontrollsignal HIGH ist, werden Daten in
das Verbindungsmodul hereingelassen. Wenn das Kontrollsignal LOW
ist, werden Daten vom Verbindungsmodul gesperrt. Wenn die Daten
hereingelassen werden, werden diese entweder in einem Latch, welcher
aus einem Paar Inverter 550 und 560 gebildet ist,
zwischengespeichert, oder von einem der Inverter 550 invertiert,
während
der anderer Inverter 560 deaktiviert ist. Auf die zwischengespeicherten
Daten kann am Ausgang 551 zugegriffen werden, sind aber
durch einen Transistor 514 versperrt, welcher von einem
Kontrollsignal OutCLK gesteuert wird.
-
14C stellt schematisch dar, dass das Verbindungsmodul
aus 13B als Latch arbeitet, wenn
das Kontrollsignal LH/INV* gleich HIGH ist. Das Latch wird aktiviert,
wenn der Inverter 560 wahlweise durch einen Serientransistor 562 mit
einem Kontrollsignal LH/INV* an seinem Gate aktiviert wird. Der
aktivierte Inverter 560 arbeitet zusammen mit dem Inverter 550 als
ein Latch, welcher die Eingabedaten zwischenspeichert.
-
14D stellt schematisch dar, dass das Verbindungsmodul
als Inverter arbeitet, wenn das Kontrollsignal LH/INV* gleich LOW
ist. In diesem Fall ist der Inverter 560 deaktiviert und
die Eingangsdaten durchlaufen nur den Inverter 550. Jedes
Verbindungsmodul 510 oder 520 in der Kette kann
daher wahlweise ein Inverter oder ein Latch sein. Die Eingabe, Zwischenspeicherung
oder Ausgabe von Daten durch die Kette wird durch die entsprechende Steuerung
seiner individuellen Kettenmodule bewirkt. Die Kontrollsignale werden
vom Stackbuscontroller 430 über die Kontrollleitungen 421 (siehe 12)
bereitgestellt.
-
15A stellt das Laden von vier Bit Daten in einen
Latch-Stack dar, welcher mit dem kompakten Daten-Latch-Stack aus 14A implementiert ist. Als Beispiel werden vier
Bit Daten verwenden, wobei k = 4. Allgemein kann der Daten-Latch-Stack
wie erforderlich eine verschiedene Anzahl k Datenbit speichern.
Vor dem Programmieren wird der Daten-Latch-Stack mit den zu programmierenden
Daten wie zum Beispiel D1, D2, D3, D4 gefüllt, welche
sich sequentiell auf der I/O-Leitung 501 befinden (siehe 14A) beziehungsweise bei Taktzyklen CLK1, CLK2, CLK3 und CLK4. Gerade
vor CLK1 werden alle Zustände der
einzelnen Verbindungsmodule (M1, M2, M3, M4,
S1) eingestellt, um als Inverter zu arbeiten (siehe 14C) d.h. (INV, INV, INV, INV, INV). Auf diese
Weise werden die Daten D*1 M1 zur
Verfügung gestellt.
Bei der nächsten
Taktflanke CLK*1 (nicht explizit gezeigt)
wird M1 in ein Latch geschaltet (siehe 14D), welches D*1 speichert
und wird aus der Kette entkoppelt. Gerade vor CLK2 werden die restlichen
Zustände
der Verbindungsmodule in der Kette gesetzt, sich als Inverter zu
verhalten, d.h. (LH, INV, INV, INV, INV). Auf diese Weise werden
die Daten D*2 M2 zur
Verfügung
gestellt. Bei CLK*2 (nicht explizit gezeigt)
wird M2 in einen Latch geschaltet, welcher
D2 speichert und wird aus der Kette entkoppelt. Ähnliche Vorgänge finden
bei CLK3 and CLK4 statt,
wenn D*3 und D4 in
M3 beziehungsweise M4 zwischengespeichert
werden. Dadurch werden nach vier Taktzyklen vier Datenbit in die
vier Master Kettenmodule M1, M2, M3, M4 geladen. In
einer bevorzugten Ausgestaltung ermöglicht ein zusätzliches
Taktsignal CLK5 eine Kopie der Daten in
M1 im Slave Kettenmodul S1 zu
speichern. Dies vereinfacht einen anschließenden nicht-destruktiven Auslesebetrieb,
welcher später
in Verbindung mit 15C beschrieben wird.
-
15B stellt einen destruktiven Auslesebetrieb von
vier Bit Daten aus dem Daten-Latch-Stack aus 15A dar.
Wie in 15A gezeigt, ist der Daten-Latch-Stack
nach vier Taktzyklen vollständig
beladen. In 15B werden die Daten D*1 in M1 während CLK1 ausgelesen, nachdem seine Phase durch den
Ausgabeleitungstreiber 530 angepasst wurde. Während CLK2 verhält
sich das Master Kettenmodul M1 wie ein Inverter
(siehe 14C) und die Daten D2 in M2 werden durch
M1 weitergeleitet und ausgelesen, nachdem
seine Phase durch den Ausgabeleitungstreiber 530 angepasst
wurde. Gleichermaßen werden
während
CLK3 und CLK4 die
Daten D3 und D4 entsprechend
ausgelesen. Auf diese Weise werden vier Bit Daten in vier Taktzyklen
ausgelesen. Die ursprünglichen
im Daten-Latch-Stack
gespeicherten Daten sind nach dieser destruktiven Leseoperation nicht
mehr vorhanden.
-
15C stellt eine andere bevorzugte Ausgestaltung
mit einem erhaltenden Auslesemodus der vier Datenbit aus dem Daten-Latch-Stack
aus 15A. Wie in 15A gezeigt ist der Daten-Latch-Stack nach vier
Taktzyklen vollständig
beladen. Es kann gesehen werden, dass wenn sich das auszulesende
Bit Daten am Ausgang der Kette befindet, d.h. M1,
kann es leicht ausgelesen werden, ohne die Daten im Daten-Latch-Stack
zu beeinflussen. Wenn der Latch-Stack vollständig beladen ist, befindet
sich D1 in M1 und
ist bereits ausgelesen. Zum Auslesen der anderen Bit Daten wird
die Kette um sich herum gewunden und das Slave Verbindungsmodul
S1 wird daran beteiligt, um die Bit entlang
der Kettenmodule zu schieben und die Bit um die Schleife zu rotieren.
Um die Daten D2 auszulesen, ist es erforderlich,
diese zuerst zu M1 zu rotieren, ohne die anderen
Daten zu zerstören.
-
In 15C ist bereits eine Kopie von D1 in
S1 gespeichert. Während CLK1 wird
nur das Master Verbindungs-Latch M1 in einen
Inverter geschaltet (siehe 14C)
und die Daten D2 in M2 werden
bei CLK*1 zu M1 transferiert
und zwischengespeichert. So wird D1 zu S
rotiert und D2 wird zu M1 als
D*2 rotiert. Während CLK2 wird
nur M2 in einen Inverter geschaltet und
die Daten D3 in M3 werden
bei CLK*2 zu M2 transferiert
und zwischengespeichert. So wird nun D3 zu M2 rotiert. Gleichermaßen während CLK3 und
CLK4. Die Daten D4 werden
zu M3 rotiert und eine Kopie von D1 aus S1 wird zu
M4 rotiert. Auf diese Weise werden nach
vier Taktzyklen die vier Bit Daten entlang der Master Verbindungsmodule
durch ein Verbindungsmodul entlang der Kette rotiert. Insbesondere
befindet sich D2 jetzt in M1 und
kann während
CLK5 ausgelesen werden. Zur gleichen Zeit
ist für
die nächste Rotation
eine Kopie von D2 in S1 gespeichert.
So dauert es vier plus einen Taktzyklus um vier Bit Daten um einen
Platz in der Kette zu rotieren. Mit anderen Worten dauert es k (k
+ 1) Taktzyklen bei einem erhaltenden Lesemodus, um k Bit Daten
auszulesen. Für
das Beispiel von k = 4 dauert es 20 Taktzyklen.
-
16A stellt eine andere Implementierung des in 14A gezeigten "k
+ 1" Daten-Latch-Stacks dar. Die k
Master Verbindungsmodule 510 sind in mehrere Zweige unterteilt,
wobei jeder ein Slave Verbindungsmodul gemeinsam nutzt. Für das Beispiel
k = 4 kann es in zwei Zweige unterteilt werden, wobei jeder zwei
Master Verbindungsmodule wie zum Beispiel M1,
M2, welche S1 gemeinsam
nutzen als einen Zweig und M3, M4, welche S2 gemeinsam
nutzen als zweiten Zweig verwenden. Die Operationen in den einzelnen
Zweigen sind denen in einem einzelnen Zweig ähnlich, was in Verbindung mit 15C beschrieben wurde. Auf diese Weise dauert
es bei einem erhaltenden Modus 2(2 + 1) = 6 Taktzyklen zum Rotieren
und die im ersten Zweig gespeicherten zwei Datenbit D1 und
D2 auszulesen. Auf die gleiche Weise für die zwei
Datenbit D3 and D4 im
zweiten Zweig. In diesem Fall wird eine Gesamtanzahl von zwölf Taktzyklen
benötigt,
um alle vier Datenbit auszulesen im Vergleich zu den in 15C beschriebenen zwanzig Taktzyklen.
-
So
kann gesehen werden, dass ein Tradeoff zwischen der Anzahl der erforderlichen
Latches und der Geschwindigkeit zum Auslesen aus den Latches existiert.
Je weniger Slave Latches verwendet werden, desto länger ist
die Rotationszeit.
-
16B stellt eine andere bevorzugte Implementierung
des in 14A gezeigten "k + 1" Daten-Latch-Stacks
dar. Die k Master Verbindungsmodule 510 sind ähnlich zu
dem in 16A gezeigten, in parallele
Zweige gruppiert, außer,
dass alle Zweige das selbe Slave Verbindungsmodul 520 wie
zum Beispiel S1 gemeinsam nutzen. Für das Beispiel
mit k = 4 kann dieses in zwei Zweige gruppiert werden, wobei jeder
zwei Master Verbin dungsmodule aufweist wie zum Beispiel M1, M2 als ein Zweig
und M3, M4 als zweiten
Zweig. Die beiden Zweige nutzen das gleiche Slave Verbindungsmodul
S1 gemeinsam. Wenn der erste Zweig ausgelesen
wird, wird eine Rotation durch M1, M2 und S1 durchgeführt. Wenn
der zweite Zweig ausgelesen wird, wird eine Rotation durch M3, M4 und S1 durchgeführt. In diesem Fall werden
sechs Taktzyklen benötigt,
um D1 und D2 auszulesen
sowie weitere sechs Taktzyklen um D3 und
D4 auszulesen, was insgesamt 12 Taktzyklen
erfordert, um die vier Bit Daten wie im Fall in 16A auszulesen. Jedoch wird nur ein Slave Verbindungsmodul 520 verwendet.
-
17 stellt
eine andere bevorzugte Implementierung des Slave Verbindungsmoduls
dar. Da die Anzahl der Slave Verbindungsmodule 520 ziemlich
klein ist, typischerweise nur eins für einen Stack, kann es sich
im Prozessor 22 befinden (siehe auch 12). In
der bevorzugten Ausgestaltung, nutzt das oder die Slave Linkmodule
die Latches oder Register, welche bereits vom Prozessor 222 verwendet
werden.