PatentDe  


Dokumentenidentifikation DE69828564T2 29.12.2005
EP-Veröffentlichungsnummer 0000914659
Titel KOMBINIERTER NICHTFLÜCHTIGER PROGRAMM-/DATENSPEICHER FÜR GLEICHZEITIGES LESEN VON PROGRAMMEN UND SCHREIBEN VON DATEN
Anmelder ATMEL Corp., San Jose, Calif., US
Erfinder SCHUMANN, J., Steven, Sunnyvale, US;
CHING, Fai, Fremont, US;
TSANG, K., Sai, Fremont, US
Vertreter Kahler, Käck & Mollekopf, 86899 Landsberg
DE-Aktenzeichen 69828564
Vertragsstaaten DE, FR, GB, IT, NL
Sprache des Dokument EN
EP-Anmeldetag 22.01.1998
EP-Aktenzeichen 989036694
WO-Anmeldetag 22.01.1998
PCT-Aktenzeichen PCT/US98/01305
WO-Veröffentlichungsnummer 0098044511
WO-Veröffentlichungsdatum 08.10.1998
EP-Offenlegungsdatum 12.05.1999
EP date of grant 12.01.2005
Veröffentlichungstag im Patentblatt 29.12.2005
IPC-Hauptklasse G11C 16/04
IPC-Nebenklasse G11B 7/24   G11C 16/10   G01N 33/574   

Beschreibung[de]
TECHNISCHES GEBIET

Die vorliegende Erfindung betrifft nicht-flüchtige Halbleiterspeicher (z.B. EPROMs, Flashspeicher, E2PROMs) und betrifft insbesondere eine Mehrspeicherbank-Architektur mit einer Adressierungs- und Lese/Schreib-Schaltung, die gleichzeitige Lese- und Schreiboperationen ermöglicht.

STAND DER TECHNIK

Im US-Pat. Nr. 5 307 314 beschreibt Lee ein Speicherbauelement, das in Bänke mit separaten Schreibfreigabeeingängen (WEH und WEL) aufgeteilt ist. Auf beide Speicherbänke kann gleichzeitig zugegriffen werden, aber nur bei derselben Adresse. Wenn beide Schreibfreigabesignale aktiv sind, führt das Bauelement einen Wortschreibvorgang in beide Speicherbänke an derselben Adressenstelle aus. Wenn beide Schreibfreigabesignale inaktiv sind und das einzelne Ausgabefreigabesignal (OE) aktiv ist, führt das Bauelement einen Wortlesevorgang aus derselben Adressenstelle in beiden Bänken aus. Wenn nur eines der Schreibfreigabesignale aktiv ist, führt das Bauelement einen Byteschreibvorgang in nur eine Bank aus. Die Logikschaltung des Bauelements ermöglicht auch eine aufgeteilte Lese/Schreib-Operation, wenn eines der zwei Schreibfreigabesignale aktiv ist und das Ausgabefreigabesignal auch aktiv ist. Dann wird ein Bytelesevorgang aus der Bank entsprechend dem inaktiven Schreibfreigabesignal ausgeführt, während ein Byteschreibvorgang an der anderen Bank entsprechend dem aktiven Schreibfreigabesignal ausgeführt wird, wobei wiederum auf beide Bänke an derselben Adresse zugegriffen wird. Jede Bank hat ihren eigenen bytebreiten Satz von Dateneingangs-/-ausgangsleitungen.

Im US-Pat. Nr. 5 513 139 beschreibt Butler einen Speicher, der zwei Adressendecodierer aufweist, einen Decodierer für Leseoperationen und einen separaten Decodierer für Schreiboperationen. Der Speicher weist auch separate Eingangs- und Ausgangsdatenbusse auf. Beide Adressendecodierer empfangen sequentiell geordnete Adressen von einem Adressenzähler, aber decodieren die Adressenbits, um die Zeilen von Speicherzellen in der entgegengesetzten Richtung abzutasten. Somit kann in die Zeilen des Speichers nacheinander in aufsteigender Reihenfolge geschrieben werden und aus diesen in absteigender Reihenfolge gelesen werden (oder umgekehrt). Ferner ist der Adressenzähler ein Binärzähler, dessen Ausgangssignale, die zum Schreibdecodierer geliefert werden, um ein Bit von den Ausgangssignalen, die zum Lesedecodierer geliefert werden, verschoben sind, so dass der Lesezyklus mit zweimal der Rate des Schreibzyklus stattfindet. Die Anzahl von Speicherzeilen ist ein Vielfaches von (n+1), wobei "n" das Verhältnis der Lesefrequenz zur Schreibfrequenz ist (z.B. 2:1), um sicherzustellen, dass in keine Zeile des Speichers im gleichen Intervall sowohl geschrieben als auch aus dieser gelesen wird.

Im US-Pat. Nr. 5 502 683 beschreibt Marchioro einen Doppelzugriffs-Datencachespeicher, der zwei Zeilendecodierer, einen auf jeder Seite der Wortleitungen oder Zeilen, verwendet. Jeder Zeilendecodierer gibt eine gegebene Wortleitung frei, wenn ihr Adresseneingangssignal anzeigte, dass auf die entsprechende Zeile zugegriffen (von dieser gelesen oder in diese geschrieben) werden soll. Auf die Speicherzellen der aktivierten Wortleitung wird dann durch Bitleitungen zugegriffen, die mit Leseverstärkern oder einer Schreibsteuerschaltung verbunden sind, wie geeignet. Die Zeilen sind in Worte mit einer gegebenen Bitlänge organisiert, wobei die Spaltengrenzen jede Zeile in vier Worte unterteilen. Es sind zwei Datenanschlüsse vorhanden, die jeweils über Datenmultiplexer auf eine unterschiedliche der vier möglichen Wortspalten zugreifen. Um Konflikte zwischen den zwei Zeilendecodierern, die versuchen, dieselbe Wortleitung anzusteuern, zu verhindern, sind Zugriffsschalter in jeder der Zeilen an den Grenzen zwischen den Worten angeordnet. Diese Zugriffsschalter sind normalerweise geschlossen, so dass jede Wortleitung vollständig verbunden ist. Wenn jedoch auf dieselbe Zeile durch beide Zeilendecodierer zugegriffen werden soll, wird ein Zugriffsschalter durch eine Steuerlogik (die einen Adressenvergleicher umfasst) geöffnet, um die Wortleitung dieser Zeile in zwei separate Abschnitte zu trennen. Auf diese Weise ermöglicht die Speicherschaltung einen unabhängigen gleichzeitigen Zugriff auf zwei verschiedene Worte in der Speichermatrix.

Im US-Pat. Nr. 5 367 494 beschreiben Shebanow et al. einen Speicher mit einer Vielzahl von Speicherbänken jeweils mit ihrem eigenen Adressenzwischenspeicher und -decodierer, ihrem eigenen Dateneingangszwischenspeicher und -treiber und ihrem eigenen Datenausgangszwischenspeicher und -treiber. Steuersignale umfassen ein Lese/Schreib-Signal, ein Adressenfreigabesignal, ein Dateneingangsfreigabesignal und ein Datenausgangsfreigabesignal, die zu allen Speicherbänken gesandt werden, und Mehrbit-Adressenbank-Dateneingangs- und -Datenausgangsbank-Adressensignale, die zuerst decodiert und dann zu nur einer ausgewählten Speicherbank gesandt werden. Diese Steuersignale geben eine ausgewählte Speicherbank frei, um eine Adresse zwischenzuspeichern, Daten zwischenzuspeichern und Ausgangsdaten zu steuern, wie angefordert. Dieses Schema ermöglicht dadurch einen zeitlich überlappenden Speicherzugriff der verschiedenen Speicherbänke.

Im US-Pat. Nr. 5 361 343 beschreiben Kosonocky et al. ein System mit zwei nicht-flüchtigen Speichermatrizes. Jede Matrix hat ihr eigenes Adressenregister, ihren eigenen Decodierer und ihre eigene Torsteuerung; sowie ihre eigenen Lösch- und Programmierspannungsschalter. Die Matrizes teilen sich Eingangs- und Ausgangsdatenwege über einen gemeinsamen Dateneingangszwischenspeicher, Datenausgangsmultiplexer und Eingangs/Ausgangs-Puffer. Die verschiedenen Register, Schalter, Multiplexer und Freigaben werden durch eine Logik gesteuert, die eine Matrixansteuerschaltung umfasst, die eine Matrix für eine Schreiboperation und die andere Matrix für eine gleichzeitige Leseoperation ansteuern kann.

Wenn Speicherbauelemente entworfen werden, die zu gleichzeitigen Lese- und Schreiboperationen in der Lage sind, wird eine beträchtliche Verdoppelung einer Schaltung bereitgestellt, wenn eine Adressierungsflexibilität erforderlich ist. Die einfacheren Bauelemente mit einem Minimum an Steuerlogik und Adressierungsschaltung sind normalerweise in ihrer gleichzeitigen Lese/Schreib-Fähigkeit begrenzt, z.B. auf den Zugriff auf die gleiche Adresse von zwei Speicherbänken oder das sequentielle Abtasten von Adressen. Diejenigen Speicherbauelemente, die zu einem wahrhaft wahlfreien unabhängigen Zugriff von zwei oder mehr Speicheradressen gleichzeitig in der Lage sind, weisen typischerweise eine zumindest verdoppelte Adressierungsschaltung auf, wie z.B. zwei oder mehr Zeilendecodierer für die separaten Lese- und Schreiboperationen oder für die verschiedenen Speicherbänke. Häufig sind separate Dateneingangs- und Datenausgangswege oder verdoppelte Datenwege für die verschiedenen angeforderten Speicherzugriffe vorhanden. Ein Grund für die Komplexität liegt in der Tatsache, dass Speicherlesevorgänge weniger Zeit zur Durchführung benötigen als Speicherschreiboperationen. In nichtflüchtigen Speicherbauelementen kann eine Leseoperation nur 150 bis 200 ns pro Adresse dauern, während eine Schreiboperation eine Byteladezykluszeit von etwa 150 &mgr;s aufweisen kann und das Schreiben einer vollständigen Seite nicht weniger als 10 ms dauern kann. Somit ist zu sehen, dass man von vielen Stellen in der Zeit lesen kann, die es dauert, um nur ein Byte oder eine Seite von Daten zu schreiben. Die hinzugefügte Logik-Adressierungs- (und Daten-) Schaltung ermöglicht einem, die Adressenleitungen (und Datenleitungen) für Leseoperationen freizugeben, während eine Schreiboperation an einer anderen Adresse mit einem anderen Satz von Datenbits fortfährt.

Es gibt einige Anwendungen, die sowohl einen Programmspeicher mit hoher Dichte, der Programmbefehlscodes speichert, die relativ permanent sind, als auch einen kleineren Datenspeicher, der Parameter speichert, die häufig aktualisiert werden müssen, erfordern. Ein Speicherbauelement, das beide Speicherarten in einem einzelnen Chip kombiniert, wäre erwünscht. Um brauchbar zu sein, müsste ein solches Bauelement aus dem Programmspeicher lesen können, während eine Schreiboperation im Datenspeicher ausgeführt wird.

J. Krückeberg beschreibt in "Zweigeteiltes EEPROM: Gleichzeitig auslesen und beschreiben", Elektronik, Franzis Verlag, Band 39, Nr. 26, 1990, S. 56–59, eine nicht-flüchtige Speichermatrix, die in zwei Teile mit identischer Größe aufgeteilt ist, auf die gleichzeitig für eine Schreib- und Leseoperation zugegriffen werden kann. Während der Schreibsequenz in einem des halben Matrixteils ist der andere halbe Teil für das Datenlesen zugänglich. Verschiedene Adressen werden verwendet, um den ersten oder den zweiten halben Teil zu adressieren, wobei eine Adressenleitung A12 und ein zugehöriger A12-Multiplexer, die die Matrixhälften trennt, verwendet wird, um auf die Bitleitung im ersten/zweiten halben Matrixteil zu multiplexieren.

Das Halbleiterspeicherbauelement von US 5 553 016, auf dem der Oberbegriff von Anspruch 1 basiert, umfasst verschiedene Arten von Speichermatrizes auf einem einzelnen Substrat.

Es ist eine Aufgabe der vorliegenden Erfindung, ein kombiniertes nicht-flüchtiges Programm- und Datenspeicherbauelement mit gleichzeitiger Programmlese- und Datenschreibfähigkeit bereitzustellen, wobei so viel der Schaltung wie möglich gemeinsam genutzt wird, ohne die unabhängige Adressierung und den Datenzugriff auf die Programm- und Datenspeichermatrizes zu opfern.

Die Erfindung ist in Anspruch 1 definiert. Spezielle Ausführungsbeispiele sind in den abhängigen Ansprüchen dargelegt.

OFFENBARUNG DER ERFINDUNG

Die Aufgabe wird durch ein nicht-flüchtiges Speicherbauelement mit zwei Speichermatrizes in diesem gelöst, wobei eine beispielsweise dazu vorgesehen ist, als relativ permanenter Programmspeicher verwendet zu werden, und die andere dazu vorgesehen ist, als häufiger aktualisierter Datenspeicher verwendet zu werden. Das Bauelement umfasst ferner einen einzelnen Satz von Adressenleitungen und einen einzelnen Satz von Datenleitungen, die für beide Speichermatrizes verwendet werden. Das Speicherbauelement weist auch ein Adressendecodiermittel auf, das einen gemeinsam genutzten Zeilendecodierer umfasst, der beiden Speichermatrizes gemeinsam ist, wobei ein Zeilenadressen-Zwischenspeichermittel zumindest dem Datenspeicher zum Halten einer decodierten Zeilenadresse während einer Schreiboperation zugeordnet ist, um den gemeinsam genutzten Zeilendecodierer zur Verwendung bei Leseoperationen mit dem Programmspeicher zu befreien. Obwohl beide Matrizes ihre eigenen separaten Spaltendecodierer, Spaltenansteuerschaltungen und Datenzwischenspeicher aufweisen, teilen sie sich nicht nur einen gemeinsamen Zeilendecodierer, sondern auch gemeinsame Leseverstärker, Daten-E/A-Puffer und eine Steuerlogik. Die Steuerlogik reagiert auf Eingangssteuersignale und steuert die verschiedenen Elemente des Bauelements, um eine ausgewählte Lese- oder Schreiboperation in einer angesteuerten Speichermatrix auszuführen.

KURZBESCHREIBUNG DER ZEICHNUNGEN

1 ist eine schematische Blockebenen-Entwurfsansicht eines nicht-flüchtigen Speicherbauelements gemäß der vorliegenden Erfindung.

2 ist ein Ablaufdiagramm, das Lese- und Schreiboperationen für jede Speichermatrix des Bauelements von 1 darstellt, einschließlich des gleichzeitigen Lesens eines Programmspeichers während eines Schreibzyklus des Datenspeichers des Bauelements.

BESTE ART ZUR AUSFÜHRUNG DER ERFINDUNG

Mit Bezug auf 1 kombiniert ein nicht-flüchtiges Speicherbauelement der vorliegenden Erfindung einen Programmspeicher 11 mit einem Datenspeicher 13. Der Programmspeicher 11 kann eine Flashspeichermatrix sein, die anfänglich mit Programmbefehlscodes programmiert und nur selten (oder überhaupt nicht) aktualisiert werden soll. Der Datenspeicher 13 kann eine E2PROM-Matrix sein, die mit Datenparametern programmiert und häufiger aktualisiert wird. Die zwei Speichermatrizes 11 und 13 müssen nicht dieselbe Größe aufweisen und normalerweise ist der Programmspeicher 11 viel größer als der Datenspeicher 13. Der Programmspeicher 11 könnte beispielsweise eine Flashmatrix mit 512K × 8 (d.h. 4 MBits) sein, die für Schreibzwecke in Sektoren von 2K 256 Bytes unterteilt ist, während der Datenspeicher 13 ein E2PROM mit allen Merkmalen von 32K × 8 sein könnte, der zu sowohl Ein-Byte- als auch 16-Byte-Seiten-Schreibvorgängen in der Lage ist. Andere Speichergrößen und Datenbreiten sind möglich.

Die zwei Speicher 11 und 13 in dem Bauelement teilen sich gemeinsame Adresseneingangsleitungen Ai, eine beträchtliche Menge einer Adressendecodierschaltung, insbesondere einen gemeinsamen Zeilendecodierer 15, gemeinsame Dateneingangs-/-ausgangsleitungen Dj und eine beträchtliche Datenschaltung, einschließlich gemeinsam genutzter Leseverstärker 17 und einer E/A-Pufferschaltung 19. Steuersignale für Lese- oder Ausgabefreigabe OE und Schreibfreigabe WE werden auch gemeinsam genutzt, aber es sind separate Chipfreigabesignale CEF und CEE entsprechend den Flash- und E2PROM-Speichermatrizes 11 und 13 vorhanden. Die Steuerlogik 21 für das Bauelement wird im Wesentlichen von beiden Speichermatrizes gemeinsam genutzt. Dieser Grad an gemeinsamer Betriebsmittelnutzung ermöglicht, dass ein kleineres Bauelement mit weniger für die Adressen und Daten erforderlichen Anschlussstiften konstruiert wird, da eine unnötige Verdoppelung der Schaltung und Signalwege vermieden wird. Dennoch ist das Bauelement immer noch zu einem gleichzeitigen Zugriff auf die zwei Speichermatrizes 11 und 13 in der Lage. Der gleichzeitige Zugriff wird trotz gemeinsam genutzter Adressierungs- und Datenbetriebsmittel erzielt, indem der Datenspeicher 13 mit einer Anzahl von Zwischenspeicherschaltungen 23, 24 und 27 versehen ist, insbesondere Zeilenadressenzwischenspeichern 24, die den gemeinsam genutzten Zeilendecodierer 15 zur Verwendung vom Programmspeicher 11 während Schreiboperationen in den Datenspeicher 13 freigeben.

Wenn man sich zuerst den speziellen Adressenschaltungen des Bauelements zuwendet, werden die Adresseneingangssignale Ai von Adressenpuffern 25, 27 und 29 empfangen. Im Fall der Spaltenadressenbits für den Datenspeicher 13 kann der Adressenpuffer 27 die Form von lesedurchlässigen Zwischenspeichern annehmen, um diese Adressenbits für die Dauer eines Byteschreibzyklus des Datenspeichers zu halten. Alternativ könnte die Zwischenspeicherfunktion für die Datenspeicher-Spaltenadresse zu einem Teil der Spaltenansteuerschaltung 37 nach der Decodierung gemacht werden. Die anderen Adressenpuffer 25 und 29 könnten auch die Form von Zwischenspeicherschaltungen annehmen oder können einfache Puffer mit drei Ausgangszuständen sein, die die Adressensignale nur so lange halten, wie sie auf den Adresseneingangsleitungen Ai aktiviert bleiben. In beiden Fällen werden alle Adressenpuffer als Reaktion auf Steuersignale C1–C3 von der Steuerlogik 21 freigegeben. Die Steuerlogik 21 gewinnt wiederum ihre Steuersignale Ck von den Signalen CEE, CEF, OE und WE, die von den Eingangsstiften des Bauelements empfangen werden. Der Zeilenadressenpuffer 25 wird durch das Signal C1 freigegeben, sobald entweder die Chipfreigabe CEE oder CEF (aber nicht beide) aktiv (niedrig) ist und entweder das Ausgabefreigabe- oder Schreibfreigabesignal OE oder WE (aber nicht beide) auch aktiv (niedrig) ist. Der Spaltenadressenpuffer 27 für den Datenspeicher 13 wird durch das Signal C2 freigegeben, sobald das E2PROM-Chipfreigabesignal CEE aktiv ist und entweder das Ausgabefreigabe- oder Schreibfreigabesignal OE oder WE auch aktiv ist. Der Spaltenadressenpuffer 29 für den Programmspeicher 11 wird durch das Signal C3 freigegeben, sobald das Flashspeicher-Chipfreigabesignal CEF aktiv ist und entweder das Ausgabefreigabe- oder Schreibfreigabesignal OE oder WE auch aktiv ist. Die Adresseninformation wird in die Puffer 23, 27, 29 bei der fallenden Flanke eines geeigneten Chipfreigabesignals CEE oder CEF und geeigneten Ausgabefreigabe- oder Schreibfreigabesignals OE oder WE eingegeben, welches auch immer zuletzt erscheint. Die Bedingung, unter der beide Chipfreigabesignale niedrig sind oder beide Ausgabe- und Schreibfreigabesignale niedrig sind, ist ungültig und erzeugt keine Steuersignale von der Logik 21. Dem Zeilenadressenpuffer 25 wird die Masse der Adressenbits zugewiesen, z.B. Bits A4 bis A14 entsprechend einem Sektor der Flashspeichermatrix 11 von 512K × 8 und einer Seite der E2PROM-Matrix 13 von 32K × 8. Den Spaltenadressenpuffern 27 und 29 werden die restlichen Adressenbits zugewiesen, z.B. die Bits A0 bis A3 der E2PROM-Matrix und die Bits A0 bis A3 und A15 bis A18 der Flashmatrix. Andere Anordnungen der Zeilen- und Spaltenadressenbits sind in Abhängigkeit von der Größe und Konfiguration der jeweiligen Speichermatrizes möglich.

Die Adresseninformation wird von den Puffern 25, 27 und 29 zur Adressendecodierschaltung 15, 31 und 33 geliefert. Typischerweise wird die Adressendecodierung in zwei oder mehr Stufen ausgeführt, einschließlich einer ersten Vordecodierstufe, gefolgt von einer Enddecodierstufe. Der Einfachheit halber wurden in 1 alle Stufen in entsprechende einzelne Decodiererschaltungen 15, 31 und 33 zusammengefasst gezeigt. Der gemeinsam genutzte Zeilendecodierer 15 steht mit beiden Speichermatrizes 11 und 13 in Verbindung. Im Fall des Programmspeichers 11 steht der Zeilendecodierer 15 direkt mit Zeilentreibern 32 in Verbindung, die eine angesteuerte Wortleitung oder Zeile entsprechend den decodierten Zeilenadressenbits aktivieren. Im Fall des Datenspeichers 13 steht der Zeilendecodierer 15 mit einer lesedurchlässigen Zwischenspeicherschaltung 24 in Verbindung. Die Zwischenspeicherschaltung 24 ist wiederum mit Zeilentreibern 34 verbunden, die eine angesteuerte Wortleitung entsprechend der vom Zeilendecodierer empfangenen decodierten Zeilenadresse aktivieren. Während einer Leseoperation ist die Zwischenspeicherschaltung 24 effektiv durchlässig, so dass der Zeilendecodierer 15 direkt mit dem angesteuerten Zeilentreiber in Verbindung steht. Aber während einer Schreiboperation wird die decodierte Zeilenadresse in den Zeilenadressenzwischenspeichern 24 zwischengespeichert und vom Zeilendecodierer 15 durch Durchgangsgatter, die durch ein Steuersignal C7 von der Steuerlogik 21 gesteuert werden, isoliert (dies geschieht, wenn WE = niedrig und CEE = niedrig). Dies befreit den Zeilendecodierer 15 zum Decodieren von Adressen, die aus dem Programmspeicher 11 gelesen werden sollen. Die Zwischenspeicher 24 halten die decodierte Zeilenadresse zum Schreiben in den Datenspeicher 13, so dass die angesteuerte Wortleitung weiterhin mit der Programmierspannung VPP aktiviert wird.

Der Spaltendecodierer 31 für den Datenspeicher 13 ist mit einer Spaltenansteuerschaltung 35 verbunden. Ebenso ist der Spaltendecodierer 33 für den Programmspeicher 11 mit einer Spaltenansteuerschaltung 37 verbunden. Die Spaltenansteuerschaltungen 35 und 37 sind bidirektionale Multiplex- und Gatterschaltungen, die den Zugriff der Datenwege auf eine angesteuerte Spalte von Acht-Bit-Leitungen der jeweiligen Speichermatrizes 11 und 13 steuern. Die Operation der Ansteuerschaltungen 35 und 37 wird durch Signale C4 und C5 von der Steuerlogik 21 gesteuert. Während einer Leseoperation (OE = niedrig, WE = hoch), wird die angesteuerte Spalte von Bitleitungen entsprechend der Spaltenadresse in der freigegebenen Speichermatrix 11 oder 13 (entweder CEE oder CEF ist niedrig) mit den Leseverstärkern 17 verbunden. Ein Dateneingangs-/-ausgangspuffer 19, der auf ein weiteres Steuersignal C6 reagiert, gibt das gelesene Datenbyte in die Datenleitungen Dj aus. Während einer Schreiboperation (WE = niedrig, OE = hoch) verbindet die freigegebene Spaltenansteuerschaltung 35 oder 37 (entweder CEE oder CEF ist niedrig) den Eingangs/Ausgangs-Puffer 19 mit den Datenzwischenspeichern 23 oder 39 für die angesteuerte Spalte von Bitleitungen in der freigegebenen Speichermatrix 11 oder 13. Von den Datenleitungen Dj empfangene Daten werden in die angesteuerten Datenzwischenspeicher 23 oder 29 geladen, von denen sie in die Zeile und Spalte des Speichers entsprechend den empfangenen und decodierten Adressenbits Ai geladen werden können.

Die Steuerlogik 21 steuert zusätzlich zum Erzeugen von geeigneten Steuersignalen Ck als Reaktion auf die Eingangssignale CEE, CEF, OE und WE auch die Erzeugung der hohen Spannung VPP zum Programmieren von Daten in die Speicherzellen. Insbesondere kann das Bauelement einen JEDEC-Standardsoftware-Datenschutz (W.P.) umfassen. In diesem Schema muss jeder Programmiersequenz für einen Sektor des Flashspeichers oder ein Byte oder eine Seite des E2PROM eine Drei-Byte-Programmbefehlssequenz vorangehen, damit die eigentliche Programmierung stattfindet. Diese Sequenz könnte aus einer spezifischen Kombination von Datenbits Dj und Adressenbits Ai, typischerweise abwechselnden Nullen und Einsen, bestehen.

Mit Bezug auf 2 stellt ein Ablaufdiagramm die Hauptoperationsmerkmale der vorliegenden Erfindung dar. Eine Schreiboperation in den Programmspeicher (d.h. die Flashspeichermatrix 11 in 1) beginnt mit einem Drei-Byte-Schreibfreigabecode, um den Softwareschreibschutz auszuschalten. Das Chipfreigabesignal CEF für den Flashspeicher und das Schreibfreigabesignal WE sind ein niedriger Impuls, während eine Sequenz von drei Adressen und drei entsprechenden Sätzen von Daten in das Bauelement eingegeben werden. Typischerweise werden die Adressenbits A18–A15 ignoriert, da die Schreibschutzlogik auch von der kleineren E2PROM-Matrix 13 gemeinsam genutzt wird. Dennoch findet kein eigentliches Schreiben in den Flashspeicher statt, sondern die Sequenz bewirkt, dass die Steuerlogik beginnt, die Erzeugung einer Programmierspannung VPP zuzulassen, und startet interne Schreibzeitgeber. Der Flashspeicher wird in Sektoren mit 256 Bytes programmiert. Ein ganzer Sektor wird nach dem Empfang der Sektoradresse auf den Bits A14 bis A4 vor der Programmierung gelöscht. Kein spezieller Löschbefehl ist erforderlich. Beliebige Bytes im Sektor, die anschließend unprogrammiert gelassen werden, sind unbestimmt. Die Sektoradresse A14 bis A4 bleibt für die Dauer des Sektorschreibvorgangs unverändert, während sich die Byteadresse A18 bis A15 und A3 bis A0 innerhalb des Sektors ändert. Obwohl die Byteadresse typischerweise sequentiell verändert wird, ist dies nicht wesentlich und die Byteprogrammierung eines Flashsektors kann in einer beliebigen Reihenfolge vor sich gehen. In 2 wird die Byteadresse für einen Sektor nacheinander von einer Startadresse ADDR zu einer Endadresse ADDR + 255 ausgeführt. Die entsprechenden Daten DATA-IN, die in den Speicher geladen werden, werden durch BYTE 0 bis BYTE 255 auf den Datenleitungen angegeben.

Ein Byteladevorgang wird durch Anlegen eines niedrigen Impulses auf CEF und WE, wobei CEE und OE hoch sind, durchgeführt. Die Adresse wird bei der fallenden Flanke von CEF oder WE zwischengespeichert, welches auch immer zuletzt auftritt, während die Daten bei der ersten steigenden Flanke von CEF oder WE zwischengespeichert werden. Sobald ein Byte in die Datenzwischenspeicher der Flashspeichermatrix geladen wurde, wird es während eines internen Programmierzeitraums in die Speicherzellen programmiert. Die Byteschreibzykluszeit ist typischerweise etwa 150 &mgr;s, obwohl tatsächliche Ladevorgänge weniger Zeit benötigen können. Nachdem das erste Datenbyte programmiert wurde, werden aufeinanderfolgende Bytes auf dieselbe Weise eingegeben. Bei jedem zu programmierenden neuen Byte muss der Übergang von WE (oder CEF) von einem hohen auf einen niedrigen Pegel innerhalb 150 &mgr;s des Übergangs von WE (oder CEF) des vorangehenden Bytes von einem niedrigen auf einen hohen Pegel stattfinden oder der Ladezeitraum endet. Die gesamte Schreibzykluszeit für einen Sektor des Flashspeichers ist typischerweise etwa 10 ms. Keine Leseoperationen an der E2PROM-Matrix werden während des Schreibzeitraums des Flashspeichers zugelassen und Versuche, den Flashspeicher zu lesen, sind effektiv Abfrageoperationen des geladenen aktuellen Bytes. Alternativ würden Modifikationen am Bauelement von 1, die Zwischenspeicherschaltungen für decodierte Zeilenadressen für den Flashspeicher 11 sowie den E2PROM 13 umfassen, E2PROM-Lesevorgänge während der Flashspeicher-Schreiboperationen ermöglichen, falls erwünscht.

Eine Flashspeicher-Leseoperation 52 findet statt, wenn das Chipfreigabesignal CEF des Flashspeichers und das Ausgabefreigabesignal OE ein niedriger Impuls sind, während CEE und WE hoch bleiben. Die Flashspeichermatrix 11 wird wie ein statischer RAM gelesen. Das Lesen wird vielmehr an einzelnen Bytes als an ganzen Sektoren ausgeführt. Überdies erscheinen die Sektoren für Leseoperationen nahtlos und die Sektorgrenzen müssen nicht berücksichtigt werden. Das heißt, Bytes von verschiedenen Sektoren können nacheinander gelesen werden. Wenn CEF und OE niedrig sind, werden die auszugebenden Daten DATA-OUT, die an der Flashspeicherstelle gespeichert sind, die durch die Adresseneingangssignale A18 bis A0 festgelegt wird, auf den Datenleitungen aktiviert. Die maximale Lesezeit ist typischerweise nur 150 bis 200 ns pro Byte.

In den Datenspeicher 13, typischerweise eine E2PROM-Matrix, wird häufiger geschrieben als in den Programmspeicher 11. Die E2PROM-Schreiboperation 54 in 2 stellt die Fähigkeit, die von der Speicherarchitektur der vorliegenden Erfindung bereitgestellt wird, zum gleichzeitigen Lesen des Flashspeichers 11 während des Schreibzykluszeitraums der E2PROM-Matrix 13 dar. Der Schreibschutz wird durch eine 3-Byte-Schreibfreigabecode-Sequenz deaktiviert, welche typischerweise dieselbe ist wie jene für den Flashspeicher, außer dass nun CEE ein niedriger Impuls ist, während CEF hoch bleibt. Leseoperationen aus dem Flashspeicher können das Laden der Schreibfreigabecode-Sequenz unterbrechen, wie gezeigt, vorausgesetzt, dass die Byteladezykluszeit von 150 &mgr;s nicht verletzt wird. Da eine Leseoperation im Allgemeinen weniger als 200 ns zur Durchführung dauert, können viele Bytes aus dem Flashspeicher zwischen jedem Byte der Codesequenz gelesen werden. Sobald die gültige Befehlssequenz geladen wurde, wird der Schreibzyklus dadurch eingeleitet, dass sowohl CEE als auch WE auf einen niedrigen Pegel schalten. Wiederum wird die Adresse durch die fallende Flanke von CEE oder WE zwischengespeichert, welches auch immer zuletzt auftritt, während die Daten in den Zwischenspeichern 23 von 1 bei der steigenden Flanke von CEE oder WE zwischengespeichert werden, welches auch immer zuerst auftritt.

Alle Schreiboperationen in die E2PROM-Matrix müssen den Grenzen eines Seitenschreibvorgangs entsprechen. Das heißt, obwohl irgendwo von einem einzelnen Datenbyte bis zu sechzehn Datenbytes geschrieben werden können, müssen sich alle derartigen Bytes während eines Schreibzyklus auf derselben Seite befinden, wie durch die Adressenbits A14–A4 definiert. Für jeden Übergang des Signals WE von einem hohen auf einen niedrigen Pegel, müssen die Bits A14–A4 gleich sein (SEITE in 2). Die Adressenbits A3 bis A0 werden verwendet, um festzulegen, welche Bytes innerhalb der Seite geschrieben werden sollen. Die Adressenbits A18 bis A15 gelten nicht für die kleinere E2PROM-Matrix und werden ignoriert. Für eine Schreiboperation einer ganzen Seite werden die Bytes normalerweise nacheinander geschrieben, wie in 2 angegeben, indem die Eingangsdaten BYTE 0 bis BYTE 15 in fortlaufende Bytes, beginnend mit der Startadresse ADDR und endend mit der Adresse ADDR +15, geladen werden. Die Bytes können jedoch auf Wunsch in einer beliebigen Reihenfolge geladen werden und können innerhalb desselben Ladezeitraums geändert werden. Nur Bytes, die zum Schreiben festgelegt sind, werden gelöscht und mit neuen Daten beschrieben, die in den Datenzwischenspeichern gehalten werden.

Lesevorgänge 56 aus der Flashspeichermatrix werden während der gesamten E2PROM-Schreibzykluszeit (bis zu 10 ms) zugelassen, solange die Byteladezykluszeit von 150 &mgr;s für den E2PROM-Schreibvorgang nicht verletzt wird. Wie vorher geschieht ein Flashspeicher-Lesevorgang, wenn CEF und OE ein niedriger Impuls sind. Die Daten (BYTE), die an der Flashspeicherstelle (F.ADDR) gespeichert sind, welche durch die Adresseneingangssignale A18 bis A0 festgelegt wird, werden gelesen und auf den Datenleitungen ausgegeben. Viele Lesevorgänge können in der zur Verfügung stehenden Zeit durchgeführt werden. Versuche, die E2PROM-Matrix während des E2PROM-Schreibzyklus zu lesen (CEE und OE niedrig), erzeugen eine Abfrageoperation der in den Zwischenspeichern 23 gehaltenen Daten.

Die E2PROM-Leseoperation 58 wird genau wie die Flashleseoperation 52 durchgeführt, außer dass nun die E2PROM-Matrix angesteuert wird (CEE = niedrig). Die Daten (BYTE), die an der Speicherstelle (E2ADDR) gespeichert sind, welche durch die Adresseneingangssignale A14-A0 festgelegt wird, werden gelesen und auf die Datenleitungen ausgegeben. Ein E2PROM-Lesevorgang kann nicht während irgendeines der Schreibzyklen durchgeführt werden.

Das Bauelement der vorliegenden Erfindung soll verwendet werden, um eine selten aktualisierte Programminformation in einer Speichermatrix und häufiger aktualisierte Datenparameter in einer anderen Speichermatrix zu speichern. Die Architektur ermöglicht ein gleichzeitiges Lesen des Programmspeichers während Schreibvorgängen in den Datenspeicher, während viel Verdoppelung in der Adressierungs- und Datenhardware beseitigt wird. Die Adressenzwischenspeicher des Datenspeichers geben den Zeilendecodierer zum Durchführen einer Leseoperationsdecodierung für den Programmspeicher während des Zeitraums, in dem Daten, die in den Datenzwischenspeichern des Datenspeichers gehalten werden, tatsächlich in Speicherzellen programmiert werden, frei. Somit ist nur ein Zeilendecodierer erforderlich. Alternative Bauelemente könnten beide Speichermatrizes mit unabhängigen Adressenzwischenspeichern und -treibern aufweisen, so dass Leseoperationen in einer Speichermatrix durchgeführt werden können, während die andere eine Schreiboperation vollendet. Nur ein einzelner Satz von Daten- und Adresseneingängen ist zum Lesen und Schreiben beider Matrizes erforderlich.


Anspruch[de]
  1. Nicht-flüchtiges Speicherbauelement mit

    einer ersten nicht-flüchtigen Speichermatrix (13),

    einer zweiten nicht-flüchtigen Speichermatrix (11),

    einem einzelnen Satz von Adressenleitungen (Ai), von welchen zumindest ein Teil beiden Speichermatrizes (11, 13) gemeinsam ist,

    einem Adressendecodier- und -ansteuermittel (15, 25, 27, 29, 35, 37), das mit den Adressenleitungen (Ai) verbunden ist, um Adressensignale von diesen zu empfangen, um auf eine Speicherstelle in einer angesteuerten der Speichermatrizes (11, 13) zuzugreifen, wobei das Adressendecodier- und -ansteuermittel umfasst

    einen gemeinsam genutzten Zeilendecodierer (15), der beiden Speichermatrizes gemeinsam ist, um in beiden Speichermatrizes auf eine Wortleitung entsprechend den Adressensignalen zuzugreifen,

    einen ersten Spaltendecodierer (31) und eine erste Spaltenansteuerschaltung (35), die mit der ersten Speichermatrix (13) gekoppelt sind, und

    einen zweiten Spaltendecodierer (33) und eine zweite Spaltenansteuerschaltung (37), die mit der zweiten Speichermatrix (11) gekoppelt sind,

    einem einzelnen Satz von Datenleitungen (Dj), die beiden Speichermatrizes (11, 13) gemeinsam sind,

    einem einzelnen Satz von Leseverstärkern (17), die beiden Speichermatrizes (11, 13) gemeinsam sind und durch das Adressendecodier- und -ansteuermittel mit angesteuerten Bitleitungen entsprechend den adressierten Stellen der angesteuerten Speichermatrix verbindbar sind, wobei die Leseverstärker (17) die angesteuerten Bitleitungen mit den Datenleitungen (Dj) für eine Leseoperation aus der angesteuerten Speichermatrix verbinden,

    einem ersten und einem zweiten Datenzwischenspeichermittel (23, 39), das durch das Adressendecodier- und -ansteuermittel mit dem einzelnen Satz von Datenleitungen (Dj) und mit Bitleitungen der jeweiligen ersten und zweiten Speichermatrix (11, 13) verbindbar ist, um Daten zu halten, die von den Datenleitungen während einer Schreiboperation in die angesteuerte Speichermatrix empfangen werden, und

    einem Steuermittel (21), das auf Eingangssteuersignale (CEE, CEF, OE, WE) zum Ansteuern von einer der Speichermatrizes (11, 13) und zum Auswählen einer Lese- oder Schreiboperation für die angesteuerte Speichermatrix reagiert,

    gekennzeichnet durch die Bereitstellung eines Adressenzwischenspeichermittels (24), das mit der ersten Speichermatrix (13) gekoppelt ist und mit dem Adressendecodiermittel in Verbindung steht und das während einer Schreiboperation in die erste Speichermatrix eine Adresse hält, die vom Zeilendecodierer (15) decodiert wurde, wodurch das Adressendecodier- und -ansteuermittel frei auf andere Speicherstellen für gleichzeitige Leseoperationen aus der zweiten Speichermatrix (11) zugreifen kann.
  2. Speicherbauelement nach Anspruch 1, wobei die erste Speichermatrix (13) eine E2PROM-Matrix ist.
  3. Bauelement nach Anspruch 2, wobei die E2PROM-Matrix sowohl eine Ein-Byte- als auch eine Seitenmodus-Schreibfähigkeit aufweist.
  4. Speicherbauelement nach Anspruch 1, 2 oder 3, wobei die zweite Speichermatrix (11) eine Flashspeichermatrix ist.
  5. Speicherbauelement nach einem der vorangehenden Ansprüche, wobei das Adressenzwischenspeichermittel (24) für die erste Speichermatrix (13) während einer Leseoperation der ersten Speichermatrix (11) effektiv durchlässig ist und die gehaltene decodierte Adresse vom Adressendecodier- und -ansteuermittel bis zur Beendung einer Schreiboperation für die erste Speichermatrix (13) isoliert.
  6. Speicherbauelement nach Anspruch 1, welches ferner ein mit der zweiten Speichermatrix (11) gekoppeltes zweites Adressenzwischenspeichermittel zum Halten einer decodierten Adresse während einer Schreiboperation für die zweite Speichermatrix umfasst.
  7. Speicherbauelement nach Anspruch 1, wobei die Speichermatrizes (11, 13) verschiedene Größen aufweisen, wobei eine größere der Speichermatrizes alle Adressenleitungen (Ai) zum Zugriff auf angesteuerte Stellen dieser größeren Speichermatrix erfordert und wobei eine kleinere der Speichermatrizes nur eine Teilmenge der Adresseleitungen zum Zugriff auf angesteuerte Stellen dieser kleineren Speichermatrix erfordert.
  8. Bauelement nach Anspruch 7, wobei die zweite Speichermatrix (11) eine größere Speicherkapazität aufweist als die erste Speichermatrix (13), wobei die zweite Speichermatrix alle Adressenleitungen (Ai) für einen Zugriff auf diese erfordert und wobei die erste Speichermatrix weniger als alle Adressenleitungen für einen Zugriff auf diese erfordert.
  9. Speicherbauelement nach einem der vorangehenden Ansprüche, wobei die Eingangssteuersignale (CEE, CEF, OE, WE) einen ersten Satz von Signalen, die eine und nur eine der Speichermatrizes (11, 13) ansteuern, und einen zweiten Satz von Signalen, die eine und nur eine einer Lese- oder Schreiboperation freigeben, umfassen.
  10. Bauelement nach Anspruch 1, wobei die erste und die zweite Spaltendecodier- und -ansteuerschaltung (31, 33, 35, 37) richtungsabhängige Gatterschaltungen für verbundene angesteuerte Bitleitungen zu den Leseverstärkern (17) für eine Leseoperation und zum Verbinden der Datenleitungen (Dj) mit Datenzwischenspeichern entsprechend den angesteuerten Bitleitungen für eine Schreiboperation umfassen.
Es folgen 3 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com