DE102008003938A1 - Verfahren zum Scramblen von Adressendaten und Speichersystem - Google Patents

Verfahren zum Scramblen von Adressendaten und Speichersystem Download PDF

Info

Publication number
DE102008003938A1
DE102008003938A1 DE102008003938A DE102008003938A DE102008003938A1 DE 102008003938 A1 DE102008003938 A1 DE 102008003938A1 DE 102008003938 A DE102008003938 A DE 102008003938A DE 102008003938 A DE102008003938 A DE 102008003938A DE 102008003938 A1 DE102008003938 A1 DE 102008003938A1
Authority
DE
Germany
Prior art keywords
address
data
bit
address data
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102008003938A
Other languages
English (en)
Inventor
Oh-Suk Yongin Kwon
Sung-Soo Seongnam Lee
Dae-Seok Seongnam Byeon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102008003938A1 publication Critical patent/DE102008003938A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Abstract

Ein Speichersystem umfasst eine Flashsteuereinheit und ein Flashspeicherbauelement (1000), das (2N + 1)-Bit-Daten speichert, wobei N eine positive ganze Zahl größer oder gleich 1 ist, wobei im Flashspeicherbauelement (1000) gespeicherte Daten in einer Mehrzahl von Speicherblöcken angeordnet sind, wobei jeder Speicherblock eine Mehrzahl von physikalischen Seiten aufweist, wobei das Flashspeicherbauelement (1000) mit einem Schaltkreis (1700) versehen ist, der von der Flashsteuereinheit empfangene externe Adressendaten in interne Adressendaten konvertiert, die innerhalb des Flashspeicherbauelements (1000) eingesetzt werden, wobei gewissse Scrambleadressendatenwerte innerhalb der externen Adressendaten bewirken, dass der Schaltkreis (1700) einen aktuellen Datenzugriffsvorgang ignoriert, der externen Adressendasten zugeordnet ist, die einen Scrambleadressendatenwert aufweisen, so dass die Mehrzahl von physikalischen Seiten in jedem Speicherblock nicht durch die internen Adressendaten ausgewählt wird.

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Scramblen von Adressendaten und auf ein Speichersystem.
  • Ein Flashspeicherbauelement ist ein Typ eines elektrisch löschbaren und programmierbaren Nur-Lesespeichers (EEPROM), in welchem eine Mehrzahl von Speicherbereichen unter Verwendung eines einzigen Speichersystemvorgangs gelöscht oder programmiert werden können. Andere Arten von EEPROMs ermöglichen lediglich, dass ein einziger Speicherbereich durch einen unitären Speichersystemvorgang gelöscht oder programmiert werden kann. Daher erfreuen sich Speichersysteme, die Flashspeicher aufweisen, einer zunehmenden Funktionseffizienz gegenüber Speichersystemen, die andere Arten von EEPROMs verwenden. Die vorhandenen Speicherzellen, die einen Flashspeicher bilden, werden jedoch, wie andere Arten von EEPROMs, durch eine bestimmte Anzahl von Lösch-/Programmiervorgängen aufgrund einer Beanspruchung abgenutzt, die ein dielektrisches Material betrifft, das ein ladungsspeicherndes Element isoliert.
  • Der Flashspeicher ist in seiner Funktionsweise nichtflüchtig. Daher können gespeicherte Daten auch ohne angelegte Energie erhalten werden. Zudem stellen Flashspeicher eine ausgezeichnete Immunität vor physikalischen Eingriffen und eine relativ schnelle Datenzugriffsgeschwindigkeit zur Verfügung. Aufgrund dieser Eigenschaften werden Flashspeicher verbreitet in tragbaren batteriebetriebenen elektronischen Geräten genutzt. Moderne Flashspeicher gibt es in zwei Typen, nämlich als NOR-Flashspeicher und als NAND-Flashspeicher, die sich in der Art der in Bezug auf die Speicherzellen verwendeten logischen Gatter unterscheiden.
  • Flashspeicher können unter Verwendung eines Felds von Speicherzellen, die eine Einzelbitinformation je Speicherzelle (SBC) speichern, oder von Speicherzellen implementiert werden, die eine Mehrfachbitinformation je Speicherzelle (MBC) speichern.
  • 1 ist ein Blockdiagramm eines relevanten Bereichs eines herkömmlichen NAND-Flashspeicherbauelements.
  • Bezugnehmend auf 1 umfasst der dargestellte Bereich des Flashspeicherbauelements ein Speicherzellenfeld 10, einen Zeilenauswahlschaltkreis 20, der nachfolgend als X-Auswahlschaltkreis bezeichnet wird, und einen Datenregister- und Abtastverstärkerschaltkreis (S/A) 30. Das Speicherzellenfeld 10 ist mit einer Mehrzahl von Speicherblöcken implementiert, die als MB0 bis MB (m – 1) bezeichnet sind. Es wird für die vorliegende Beschreibung vorausgesetzt, dass jeder der Mehrzahl von Speicherblöcken MB0 bis MB (m – 1) eine im Wesentlichen ähnliche Struktur aufweist. Jeder der Mehrzahl von Speicherblöcken MB0 bis MB (m – 1) ist dazu ausgebildet, 2N-Bit-Daten bzw. 2N Datenbits zu speichern, wobei N eine positive ganze Zahl größer oder gleich 1 ist. Der X-Auswahlschaltkreis 20 wählt in Reaktion auf eine empfangene Zeilenadresse einen der Mehrzahl von Speicherblöcken MB0 bis MB (m – 1), in der nachfolgenden Beschreibung z. B. den Speicherblock MB0, und eine Wortleitung innerhalb des ausgewählten Speicherblocks aus. Der S/A 30 ist über eine Bitleitung mit dem ausgewählten Speicherblock verbunden und arbeitet während Programmiervorgängen als Schreibtreiber und während Lesevorgängen als Abtastverstärker.
  • 2 ist ein Blockdiagramm, das weiter einen Bereich eines ausgewählten Speicherblocks MB0 und einen korrespondierenden Teil des in 1 dargestellten S/A 30 zeigt.
  • Bezugnehmend auf 2 umfasst der ausgewählte Speicherblock MB0 eine Mehrzahl von Ketten 11, die entsprechend mit einer der Mehrzahl von Bitleitungen verbunden ist. Hier wird nur ein einzelnes Bitleitungspaar mit einer geraden Bitleitung BLe0 und einer ungeraden Bitleitung Blo0 dargestellt, wobei es sich versteht, dass viele Bitleitungen oder ungerade/gerade Bitleitungspaare verwendet werden können, um den ausgewählten Speicherblock MB0 zu implementieren. Jede der Mehrzahl von Ketten 11 umfasst einen Kettenauswahltransistor SST, einen Masseauswahltransistor GST und eine Mehrzahl von in Reihe geschalteten Speicherzellen MC31 bis MC0, die zwischen dem Kettenauswahltransistor SST und dem Masseauswahltransistor GST eingeschleift sind. Die Kettenauswahltransistoren SST der Ketten 11 sind gemeinsam mit einer Kettenauswahlleitung SSL verbunden, die vom X-Auswahlschaltkreis 20 gesteuert wird. Die Masseauswahltransistoren GST der Ketten 11 sind gemeinsam mit einer Masseauswahlleitung GSL verbunden, die vom X-Auswahlschaltkreis 20 gesteuert wird. Die Mehrzahl von in Reihe geschalteten Speicherzellen MC31 bis MC0 in jeder Kette 11 sind entsprechend mit korrespondierenden Wortleitungen WL31 bis WL0 verbunden, die vom X-Auswahlschaltkreis 20 gesteuert werden.
  • Der S/A 30 umfasst einen Bitleitungsauswahlschaltkreis 31, der mit dem Bitleitungspaar BLe0 und BLo0 verbunden ist, und ein zugehöriges Re gister 32. Der Bitleitungsauswahlschaltkreis 31 wählt eine Bitleitung des Bitleitungspaars BLe0 und BLo0 aus und verbindet die ausgewählte Bitleitung mit dem Register 32. Das Register 32 legt entsprechend den in Bezug auf einen aktuellen Programmiervorgang spezifizierten Programmierdaten eine Programmierspannung, z. B. eine Massespannung, oder eine Programmierblockierspannung, z. B. eine Versorgungsspannung, an die ausgewählte Bitleitung an. Das Register 32 detektiert während eines aktuellen Lesevorgangs über die ausgewählte Bitleitung in einer oder mehreren der Mehrzahl von Speicherzellen gespeicherte Daten. Obwohl es in 2 nicht dargestellt ist, sind andere Bitleitungspaare unter Verwendung einer ähnlichen Struktur entsprechend mit korrespondierenden Registern verbunden.
  • Unter der Voraussetzung, dass jede Wortleitung zwei Seiten (2P) zugeordnet ist, d. h. einer geraden Seiten und einer ungeraden Seite, jede der in Reihe geschalteten Speicherzellen 2-Bit-Daten (2B) speichert und jeder der Mehrzahl von Speicherblöcken 32 Wortleitungen (32WL) umfasst, umfasst jeder Speicherblock 128 Seiten (32WL·2P·2B).
  • Weiter vorausgesetzt, dass eine Zeilenadresse eine Blockadresse, die einen gewünschten Speicherblock auswählt, und eine Seitenadresse umfasst, die eine oder mehrere Seiten innerhalb des ausgewählten Speicherblocks auswählt, folgt dann, dass eine 7-Bit-Adresse, die nachfolgend als „erste Zeilenadresse" bezeichnet wird, verwendet werden muss, um jede der 128 Seiten auswählen zu können. Weiter vorausgesetzt, dass 1024 Speicherblöcke innerhalb des Speicherzellenfelds 10 angeordnet sind, muss eine 10-Bit-Adresse, die nachfolgend als „zweite Zeilenadresse" bezeichnet wird, verwendet werden, um jeden der 1024 Speicherblöcke auswählen zu können.
  • Entsprechend ist eine Adressencodierung erforderlich, um alle Seiten in einem Speicherblock und dann Seiten in einem nächsten Speicherblock auszuwählen. Wie beispielsweise in 3A dargestellt ist, werden sieben Bit einer ersten Adresse A12 bis A18 verwendet, um zwischen 128 Seiten in jedem Speicherblock auszuwählen, und eine Mehrzahl von zweiten Adressenbits A19 bis Ai wird verwendet, um zwischen den Speicherblöcken auszuwählen. Wenn die sieben Bit der ersten Adresse den Wert 0000000 aufweisen, dann wird eine erste Seite 0P innerhalb des ausgewählten Speicherblocks ausgewählt. Wenn die sieben Bit der ersten Adresse den Wert 1111111 aufweisen, wird eine letzte Seite 127P innerhalb des ausgewählten Speicherblocks ausgewählt.
  • Unter diesen Randbedingungen ist es wünschenswert, die extern zur Verfügung gestellte Adresse in eine physikalische Adresse innerhalb des Flashspeicherbauelements zu übertragen. Das bedeutet, dass die extern zur Verfügung gestellte Adresse, welche eine Zeilenadresse umfasst, in eine Blockadresse und eine Seitenadresse umgewandelt wird. Für diesen Vorgang existieren jedoch Grenzen. Wenn beispielsweise 3-Bit-Daten anstelle von 2-Bit-Daten gespeichert werden, umfasst jeder Speicherblock gemäß den vorherigen Annahmen 192 Seiten oder (32WL·2P·3B) Seiten.
  • Wenn 3-Bit-Daten je Speicherzelle gespeichert werden, ist es unmöglich, die korrespondierenden Adressendaten auf die oben beschriebene Weise in eine Seitenadresse und eine Blockadresse aufzuteilen. Das bedeutet, dass eine 8-Bit-Adresse erforderlich ist, um zwischen den 192 Seiten auszuwählen. Unter Verwendung der 8-Bit-Adresse kann jedoch zwischen 256 Seiten ausgewählt werden. Aus diesem Grund existieren „Seiten", die mit der 8-Bit-Adresse, z. B. einer fehlerhaften 8-Bit-Adresse, ausgewählt werden können, aber nicht innerhalb eines jeden Speicherblocks zugewiesen oder identifiziert werden können.
  • Wenn ein Flashspeicherbauelement beispielsweise 2-Bit-Daten je Speicherzelle speichert, wie in 3A dargestellt ist, ist eine Seitenadresse, welche die erste/letzte Seite des ersten Speicherblocks BLK0 auswählt, identisch mit einer Seitenadresse zur Auswahl der ersten/letzten Seite eines zweiten oder anderen Speicherblocks. Im Gegensatz dazu unterscheidet sich, wenn ein Flashspeicherbauelement 3-Bit-Daten je Speicherzelle speichert, wie in 3B dargestellt ist, die Seitenadresse, welche die erste/letzte Seite des ersten Speicherblocks BLK0 auswählt, von der Seitenadresse zur Auswahl der ersten/letzten Seite eines zweiten oder anderen Speicherblocks. Dies schließt die effektive Zuordnung einer extern zur Verfügung gestellten Adresse zu einer Seitenadresse und einer Blockadresse für das korrespondierende Flashspeicherbauelement aus. Das bedeutet, dass es nicht möglich ist, die Adressenzuordnungen in den vorhandenen Speicherblöcken von einer in den Seiten zugeordneten Adresse zu unterscheiden, wenn 3-Bit-Daten je Speicherzelle gespeichert werden. Aus diesem Grund kann eine Speichersteuereinheit, die ein Flashspeicherbauelement steuert, eine Adressenumwandlungstabelle benötigen, um eine extern zur Verfügung gestellte Adresse in eine interne Adresse umzuwandeln, die in dem in 3B dargestellten Flashspeicherbauelement verwendbar ist.
  • Der Erfindung liegt das technische Problem zugrunde, ein Verfahren zum Scramblen (scramble – durchmischen bzw. verschlüsseln) von Adressendaten und ein Speichersystem bereitzustellen, welche keine Adressenumwandlungstabelle zum Konvertieren einer extern angelegten Adresse in eine interne Adresse benötigen.
  • Die Erfindung löst dieses Problem durch Bereitstellung eines Verfahrens mit den Merkmalen des Patentanspruchs 1 und eines Speichersystems mit den Merkmalen des Patentanspruchs 11.
  • Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben, deren Wortlaut hiermit durch Bezugnahme in die Beschrei bung aufgenommen wird, um unnötige Textwiederholungen zu vermeiden.
  • Vorteilhafte, nachfolgend im Detail beschriebene Ausführungsformen der Erfindung sowie die zu deren besserem Verständnis oben erläuterten, herkömmlichen Ausführungsbeispiele sind in den Zeichnungen dargestellt. Es zeigt/zeigen:
  • 1 ein Blockdiagramm eines herkömmlichen NAND-Flashspeicherbauelements,
  • 2 ein Blockdiagramm eines Bereichs eines Speicherblocks und ein korrespondierender Datenregister- & Detektionsverstärkerschaltkreis aus 1,
  • 3A eine Tabelle zur Darstellung der Block- und Seitenadressen für ein Flashspeicherbauelement, das 2-Bit-Daten je Speicherzelle speichert,
  • 3B eine Tabelle zur Darstellung der Block- und Seitenadressen für ein Flashspeicherbauelement, das 3-Bit-Daten je Speicherzelle speichert,
  • 4 ein allgemeines Blockdiagramm eines Speichersystems gemäß einer Ausführungsform der Erfindung,
  • 5 eine Tabelle zur Darstellung eines beispielhaften Adressenscrambleverfahrens gemäß einer Ausführungsform der Erfindung,
  • 6 eine Tabelle zur weiteren Darstellung des Adressenscrambleverfahrens zur Verwendung mit einer Flashsteuereinheit und einem Flashspeicherbauelement gemäß 4 und
  • 7 ein Blockdiagramm zur weiteren Darstellung des Flashspeicherbauelements aus 4.
  • Ein Flashspeicherbauelement wird als Beispiel für ein nichtflüchtiges Speicherbauelement verwendet, das in einer Ausführungsform der vorliegenden Erfindung verwendet werden kann. Die Erfindung ist jedoch nicht auf das hier beschriebene Flashspeicherbauelement oder auf bestimmte in diesem Zusammenhang gemachte illustrative Annahmen beschränkt.
  • 4 ist ein allgemeines Blockdiagramm eines Speichersystems gemäß einer Ausführungsform der Erfindung.
  • Bezugnehmend auf 4 umfasst das Speichersystem ein Flashspeicherbauelement 1000, das ein Feld von Speicherzellen aufweist, die angepasst sind, um 3-Bit-Daten bzw. 3 Datenbits zu speichern, und eine zugehörige Flashsteuereinheit 2000. Das dargestellte Speichersystem kann beispielsweise in Bezug auf Speicherkarten, Pufferspeicher für Festplatten (HDDs), Speicher mit großer Kapazität, die zur Verwendung in verschiedenen Computerplattformen angepasst sind, usw. verwendet werden.
  • Das Speicherbauelement 1000 wird durch die Flashsteuereinheit 2000 gesteuert und wird als Beispiel eines Speicherbauelements beschrieben, das eine ungerade Anzahl von Bit-Daten oder (2N + 1)-Bit-Daten bzw. (2N + 1) Datenbits je Speicherzelle speichert, wobei N eine positive ganze Zahl größer oder gleich 1 ist. Die Flashsteuereinheit 2000 empfängt extern zur Verfügung gestellte Adressendaten, beispielsweise von einer CPU eines Hostgerätes, und konvertiert die „externen Adressendaten" in „interne Adressendaten", die zur Verwendung innerhalb des Speicherbauelements 1000 geeignet sind, das 3-Bit-Daten speichert.
  • Wie im Zusammenhang mit der Beschreibung von 3B ausgeführt ist, sind herkömmliche Speichersysteme nicht in der Lage eine extern-zu-intern-Adressendatenkonvertierung ohne Rückgriff auf eine Nachschlagtabelle auszuführen. Die Verwendung einer Nachschlagetabelle ist jedoch relativ langsam und eine effizientere Lösung wird durch Ausführungsformen dieser Erfindung vorgeschlagen. Daher konvertiert die Flashsteuereinheit 2000 im Unterschied zur herkömmlichen Lösung die externen Adressendaten in interne Adressendaten, z. B. in eine Seitenadresse und eine Blockadresse, für das Speicherbauelement 1000, das eine ungerade Anzahl von Bit-Daten speichert, ohne eine Adressennachschlagetabelle für die Umsetzung der Konvertierung zu verwenden.
  • In einer Ausgestaltung der Erfindung ignoriert die Flashsteuereinheit 2000 im Betrieb bestimmte bzw. gewisse externe Adressendaten, wenn die externen Adressendaten einen bestimmten bzw. gewissen Scramblewert aufweisen. Das bedeutet, dass, wenn externe Adressendaten einen bestimmten Scramblewert aufweisen, der korrespondierende Datenzugriffsvorgang auf das Flashspeicherbauelement 1000, d. h. ein Programmier-, Lese- oder Löschvorgang, der den „Scramblewertadressendaten" zugeordnet ist, einfach ignoriert wird. Dies wird beispielsweise als „No-op" bezeichnet. Wenn dies der Fall ist, muss der Bereich der Scramblewertadressendaten sehr sorgfältig zwischen der Flashsteuereinheit 2000 und dem externen Gerät definiert werden, welches den korrespondierenden Datenzugriffsvorgang auslöst.
  • Unter den oben gemachten Annahmen speichert das Flashspeicherbauelement 1000 beispielsweise 3-Bit-Daten je Speicherzelle (3B) und umfasst 32 Wortleitungen (32WL), Paare von ungeraden/geraden Bitleitun gen (2P) werden in jedem Speicherblock zur Verfügung gestellt und jeder Speicherblock umfasst 192 Seiten (32WL·2P·3B). Daher müssen 8-Bit-Adressendaten verwendet werden, um zwischen den 192 Seiten auswählen zu können. Entsprechend einer Ausführungsform der Erfindung werden jedoch wenigstens Teile, z. B. 2 Bits der Adressendaten, der 8-Bit-Adressendaten gescrambled.
  • Wie in 5 dargestellt ist, werden beispielsweise 8-Bit-Adressendaten, z. B. Adressenbits A12 bis A19, verwendet, um zwischen den 192 Seiten eines jeden Speicherblocks auszuwählen. Hier werden, wenn externe Adressendaten für die Adressenbits A13 und A14 gleichzeitig die Bitwerte von „1" und „1" aufweisen, die korrespondierenden an das Flashspeicherbauelement 1000 gerichteten Datenzugriffsvorgänge ignoriert. Daher werden bei diesem Beispiel die externen Adressendaten, welche den Wert „11" für die Adressenbits A13 und A14 aufweisen, als „gescramblede Adressendatenwerte" definiert, und diese gescrambleden Adressendatenwerte werden keiner Seite zugewiesen oder zugeordnet.
  • Als Ergebnis dieses externen Adressenscrambleverfahrens, werden 64 Seiten für jeden Speicherblock gescrambled. Wenn dies der Fall ist, ist es möglich, 192 Seiten durch Verwendung der zugewiesenen externen 8-Bit-Adressendaten auszuwählen. Wie aus 5 ersichtlich ist, kann, trotz der Tatsache, dass das Flashspeicherbauelement 2000 3-Bit-Daten je Speicherzelle speichert, eine Seitenadresse, welche die Adressenbits A12 bis A19 umfasst, auf identische Weise verwendet werden, um eine erste/letzte Seite eines ersten Speicherblocks BLK0 oder die erste/letzte Seite eines zweiten oder anderen Speicherblocks auszuwählen. Das bedeutet, dass die externen Adressendaten passend den Seitenadressen und Blockadressen für das Flashspeicherbauelement 200 zugeordnet sind, ohne eine Adressennachschlagetabelle zu verwenden. Entsprechend können im Bezug auf Speicherblöcke zugeordnete Adres sendaten von im Bezug auf Seiten zugeordneten Adressendaten unterschieden werden.
  • Für andere Ausführungsformen versteht sich, dass das Adressenscrambleverfahren nicht auf Flashspeicherbauelemente begrenzt ist, die 3-Bit-Daten je Speicherzelle speichern. Zusätzlich sind die bestimmten Scramblewerte nicht nur auf die dargestellten Adressenbits, z. B. Adressenbits A13 und A14, beschränkt.
  • 6 ist eine Tabelle zur weiteren Darstellung des Adressenscrambleverfahrens und der zugehörigen Adressendaten, wie sie zwischen der Flashsteuereinheit und dem Flashspeicherbauelement gemäß 4 übertragen werden.
  • Aus dem Stand der Technik ist es bekannt, dass Flashspeicherbauelemente Adressendaten, Befehlsdaten und Nutzdaten über eine Ansammlung von Eingabe-/Ausgabe(I/O)-Pins empfangen, die in der Tabelle gemäß 6 mit I/O 0 bis I/O 7 nummeriert sind. Aufgrund der beschränkten Anzahl von I/O-Pins, werden Zeilen- und Spaltenadressen in Datengruppen aufgeteilt und über eine Anzahl von Datenübertragungstakten, z. B. erste bis fünfte Takte, an das Flashspeicherbauelement übertragen. Wie in 6 dargestellt ist, werden Spaltenadressendaten, d. h. Adressenbits A0 bis A11, dem Flashspeicherbauelement während des ersten und zweiten Takts zur Verfügung gestellt. Zeilenadressendaten, d. h. Adressenbits A12 bis A31, werden dem Flashspeicherbauelement während des dritten bis fünften Takts zur Verfügung gestellt. Die Zeilenadressenbits A12 bis A31 umfassen eine Seitenadresse, die zwischen den Seiten auswählt, und eine Blockadresse, die zwischen Speicherblöcken auswählt.
  • Im dargestellten Ausführungsbeispiel umfasst jeder Speicherblock 192 Seiten (32WL·2P·3B), da 32 Wortleitungen und ungerade/gerade Bitlei tungspaare in jedem Speicherblock zur Verfügung gestellt werden, welcher Speicherzellen umfasst, die 3-Bit-Daten speichern. Die korrespondierende Seitenadresse sind 8-Bit-Adressendaten, z. B. A12 bis A19, um zwischen den 192 Seiten auszuwählen. Das Adressenbit A12 wird als Information verwendet, um zwischen der geraden/ungeraden Bitleitung auszuwählen. Die Adressenbits A13 und A14 werden als Informationen zum Auswählen von einem von drei Datenbits, die alternativ auch als erste bis dritte Seitendatenbits bezeichnet werden können, für jeden Speicher verwendet. Die Adressenbits A15 bis A19 werden verwendet, um zwischen den 32 Wortleitungen in jedem Speicherblock auszuwählen. Es versteht sich, dass diese Adressenbitzuordnung beliebig ist und mit dem Speichersystementwurf variieren kann.
  • Die Seitenadressen können beispielsweise zusätzlich zu den Blockadressen unterschiedlich neu angeordnet werden. Die Adressenbits zum Auswählen von einem der drei Datenbits können höher als die Adressenbits zur Auswahl der Wortleitungen angeordnet werden. Oder die Adressenbits zum Auswählen von einem der drei Datenbits können niedriger als die Adressenbits zur Auswahl der Wortleitungen angeordnet werden. Oder Adressenbits zum Auswählen von einem der drei Datenbits, Adressenbits zum Auswählen eines Speicherblocks und Adressenbits zur Auswahl der Wortleitungen können dem Flashspeicherbauelement sequentiell zur Verfügung gestellt werden.
  • 7 ist ein Blockdiagramm zur weiteren Darstellung des Flashspeichersystems aus 4.
  • Bezugnehmend auf 7 umfasst das Flashspeicherbauelement 1000 ein Speicherzellenfeld 1100, einen Zeilendecoderschaltkreis 1200, einen Spaltendecoderschaltkreis 1300, einen Datenregister- und Abtastverstärkerschaltkreis (S/A) 1400, einen Spaltengatterschaltkreis 1500, eine I/O-Schnittstelle 1600 und einen Befehlsregister- & Steuerlogikschaltkreis 1700.
  • Das Speicherzellenfeld 1100 umfasst eine Mehrzahl von Speicherblöcken, wobei jeder Speicherblock in einem Feld angeordnete Speicherzellen umfasst, welche durch kreuzende Wortleitungen und Bitleitungen definiert werden. Die Struktur eines jeweiligen Speicherblocks entspricht der von 2. Der Zeilendecoderschaltkreis 1200 wählt in Reaktion auf eine über die I/O-Schnittstelle 1600 zur Verfügung gestellte Zeilenadresse zwischen den Seiten des Speicherzellenfelds 1100 aus. Der Spaltendecoderschaltkreis 1300 decodiert eine Spaltenadresse CA, die über die I/O-Schnittstelle 1600 zur Verfügung gestellt wird, und gibt dann das decodierte Ergebnis an den Spaltengatterschaltkreis 1500 als Spaltenauswahlinformation aus. Der S/A 1400 arbeitet während Lesevorgängen als Abtastverstärker und während Programmiervorgängen als Schreibtreiber. Es wird angenommen, dass der S/A 1400 eine ähnliche Struktur aufweist, wie der in Bezug auf 2 Beschriebene.
  • Der Befehlsregister- & Steuerlogikschaltkreis 1700 empfängt in Reaktion auf Steuersignale einen Befehl von der I/O-Schnittstelle 1600 und steuert Komponenten des Flashspeicherbauelements 1000 entsprechend einem extern zur Verfügung gestellten Befehl. Der Befehlsregister- & Steuerlogikschaltkreis 1700 empfängt bestimmte Adressenbits, z. B. A13 und A14, in einer Zeilenadresse RA. Der Befehlsregister- & Steuerlogikschaltkreis 1700 ignoriert einen aktuellen Datenzugriffsvorgang, wenn definierte Adressenbits, hier A13 und A14, einen Scrambleadressendatenwert von z. B. 11 anzeigen. Die Adressenbits A13 und A14 werden auch verwendet, um Programmier-/Lesevorgänge auszuwählen, die an eines der ersten bis dritten Seitendatenbits gerichtet ist. Aufgrund dessen wird der aktuell angeforderte Vorgang nicht ausgeführt, wenn die Adressenbits A13 und A14 einen bestimmten Scramblewert von z. B. 11 aufweisen. Im Gegensatz dazu wird der aktuelle Datenzugriffsvorgang in Bezug auf eines der ersten bis dritten Seitendatenbits durch den Befehlsregister- & Steuerlogikschaltkreis 1700 ausgeführt, wenn die Adressenbits A13 und A14 keinen bestimmten Scramblewert von z. B. 11 aufweisen.
  • Wie oben ausgeführt, ist es daher möglich, die externen Adressendaten Speicherblöcken auf eine Weise effektiv zuzuordnen, die es ermöglicht, derartig zugeordnete Daten von Seiten zugeordneten Adressendaten zu unterscheiden, selbst wenn ein Speichersystem ungerade Anzahlen von Bitdaten bzw. Datenbits, z. B. 3-Bit-Daten, je Speicherzelle speichert. Daher benötigt eine zugehörige Flashsteuereinheit keine Adressennachschlagetabelle, wie es unter diesen Umständen normalerweise üblich ist.

Claims (16)

  1. Verfahren zum Scramblen von Adressendaten innerhalb eines Flashspeichersystems, das eine Flashsteuereinheit (2000) und ein Flashspeicherbauelement (1000) aufweist, das (2N + 1)-Bit-Daten speichert, wobei N eine positive ganze Zahl größer oder gleich 1 ist, wobei im Flashspeicherbauelement (1000) gespeicherte Daten in einer Mehrzahl von Speicherblöcken aufgeteilt sind, wobei jeder Speicherblock eine Mehrzahl von physikalischen Seiten aufweist, mit den Schritten: – Konvertieren von externen Adressendaten, die von der Flashsteuereinheit (2000) empfangenen werden, in interne Adressendaten, die innerhalb des Flashspeicherbauelements (1000) verwendet werden, und – Bestimmen von gewissen Scrambleadressendatenwerten innerhalb der externen Adressendaten und Ignorieren eines aktuellen Datenzugriffsvorgangs, der externen Adressendaten zugeordnet ist, die einen Scrambleadressendatenwert aufweisen, so dass die Mehrzahl von physikalischen Seiten in jedem Speicherblock nicht durch die internen Adressendaten ausgewählt wird.
  2. Verfahren nach Anspruch 1, wobei die internen Adressendaten Spaltenadressendaten und Zeilenadressendaten umfassen, wobei die Zeilenadressendaten wenigstens ein Adressenbit aufweisen, das die Scrambleadressendatenwerte anzeigt.
  3. Verfahren nach Anspruch 2, wobei die die Zeilenadressendaten eine Seitenadresse und eine Blockadresse umfassen, wobei die Blockadresse einen Speicherblock auswählt und die Seitenadres se eine der Mehrzahl von physikalischen Seiten im ausgewählten Speicherblock auswählt.
  4. Verfahren nach Anspruch 3, wobei die Zeilenadressendaten 2M-Bit-Adressendaten aufweisen, wobei M eine positive ganze Zahl größer oder gleich 1 ist.
  5. Verfahren nach Anspruch 3 oder 4, wobei die Seitenadresse das wenigstens eine Adressenbit aufweist, welches die Scrambleadressendatenwerte anzeigt.
  6. Verfahren nach Anspruch 5, wobei das wenigstens eine Adressenbit, das die Scrambleadressendatenwerte anzeigt, ein erstes Adressenbit und ein zweites Adressenbit aufweist, wobei das erste Adressenbit einen Wert der (2N + 1)-Bit-Daten auswählt, die in einer Speicherzelle gespeichert sind, und das zweite Adressenbit eine der Mehrzahl von Wortleitungen im ausgewählten Speicherblock auswählt.
  7. Verfahren nach Anspruch 6, wobei das erste Adressenbit höher als das zweite Adressenbit in der Zeilenadresse angeordnet ist.
  8. Verfahren nach Anspruch 6 oder 7, wobei das erste Adressenbit niedriger als die Blockadresse angeordnet ist.
  9. Verfahren nach Anspruch 8, wobei das erste Adressenbit niedriger als das zweite Adressenbit in der Zeilenadresse angeordnet ist.
  10. Verfahren nach einem der Ansprüche 6 bis 9, wobei das erste Adressenbit, die Blockadresse und das zweite Adressenbit dem Flashspeicherbauelement sequentiell zur Verfügung gestellt werden.
  11. Speichersystem, umfassend: – eine Flashsteuereinheit (2000) und ein Flashspeicherbauelement (1000), das (2N + 1)-Bit-Daten speichert, wobei N eine positive ganze Zahl größer oder gleich 1 ist, wobei im Flashspeicherbauelement (1000) gespeicherte Daten in einer Mehrzahl von Speicherblöcken aufgeteilt sind, wobei jeder Speicherblock eine Mehrzahl von physikalischen Seiten aufweist, – wobei das Flashspeicherbauelement (1000) mit einem Schaltkreis (1700) versehen ist, der von der Flashsteuereinheit (2000) empfangene externe Adressendaten in interne Adressendaten konvertiert, die innerhalb des Flashspeicherbauelements (1000) verwendet werden, wobei gewisse Scrambleadressendatenwerte innerhalb der externen Adressendaten bewirken, dass der Schaltkreis (1700) einen aktuellen Datenzugriffsvorgang ignoriert, der externen Adressendaten zugeordnet ist, die einen Scrambleadressendatenwert aufweisen, so dass die Mehrzahl von physikalischen Seiten in jedem Speicherblock nicht durch die internen Adressendaten ausgewählt wird.
  12. Speichersystem nach Anspruch 11, wobei die internen Adressendaten Spaltenadressendaten und Zeilenadressendaten umfassen, wobei die Zeilenadressendaten wenigstens ein Adressenbit aufweisen, das die Scrambleadressendatenwerte anzeigt.
  13. Speichersystem nach Anspruch 12, wobei die Zeilenadressendaten eine Seitenadresse und eine Blockadresse umfassen, wobei die Blockadresse einen Speicherblock auswählt und die Seitenadresse eine der Mehrzahl von physikalischen Seiten im ausgewählten Speicherblock auswählt.
  14. Speichersystem nach Anspruch 13, wobei die Zeilenadressendaten 2M-Bit-Adressendaten aufweisen, wobei M eine positive ganze Zahl größer oder gleich 1 ist.
  15. Speichersystem nach Anspruch 13 oder 14, wobei die Seitenadresse das wenigstens eine Adressenbit aufweist, welches die Scrambleadressendatenwerte anzeigt.
  16. Speichersystem nach Anspruch 15, wobei das wenigstens eine Adressenbit, das die Scrambleadressendatenwerte anzeigt, ein erstes Adressenbit und ein zweites Adressenbit aufweist, wobei das erste Adressenbit einen Wert der (2N + 1)-Bit-Daten auswählt, die in einer Speicherzelle gespeichert sind, und das zweite Adressenbit eine der Mehrzahl von Wortleitungen im ausgewählten Speicherblock auswählt.
DE102008003938A 2007-01-04 2008-01-03 Verfahren zum Scramblen von Adressendaten und Speichersystem Withdrawn DE102008003938A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070001055A KR100813627B1 (ko) 2007-01-04 2007-01-04 멀티-비트 데이터를 저장할 수 있는 플래시 메모리 장치를제어하는 메모리 제어기와 그것을 포함한 메모리 시스템
KR10-2007-0001055 2007-01-04

Publications (1)

Publication Number Publication Date
DE102008003938A1 true DE102008003938A1 (de) 2008-07-24

Family

ID=39398793

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008003938A Withdrawn DE102008003938A1 (de) 2007-01-04 2008-01-03 Verfahren zum Scramblen von Adressendaten und Speichersystem

Country Status (5)

Country Link
US (1) US20080168214A1 (de)
JP (1) JP2008165972A (de)
KR (1) KR100813627B1 (de)
CN (1) CN101241758B (de)
DE (1) DE102008003938A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100874441B1 (ko) * 2007-01-09 2008-12-17 삼성전자주식회사 멀티-비트 데이터를 저장할 수 있는 플래시 메모리 장치,그것을 제어하는 메모리 제어기, 그리고 그것을 포함한메모리 시스템
CN101661438B (zh) * 2008-08-29 2013-08-28 鸿富锦精密工业(深圳)有限公司 电子装置及中央处理器寻址空间扩展方法
US8686836B2 (en) * 2010-07-09 2014-04-01 Cypress Semiconductor Corporation Fast block write using an indirect memory pointer
CN102591804A (zh) * 2011-01-17 2012-07-18 上海华虹集成电路有限责任公司 一种flash数据加密保护的方法
KR102133573B1 (ko) 2013-02-26 2020-07-21 삼성전자주식회사 반도체 메모리 및 반도체 메모리를 포함하는 메모리 시스템
JP5940704B1 (ja) * 2015-03-26 2016-06-29 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
GB2544546B (en) * 2015-11-20 2020-07-15 Advanced Risc Mach Ltd Dynamic memory scrambling
US10534554B2 (en) 2017-10-13 2020-01-14 Silicon Storage Technology, Inc. Anti-hacking mechanisms for flash memory device
TWI774183B (zh) * 2021-01-08 2022-08-11 瑞昱半導體股份有限公司 具有位址打亂機制的記憶體存取裝置及其記憶體存取方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2965830B2 (ja) * 1993-09-09 1999-10-18 シャープ株式会社 半導体記憶装置
JPH08147219A (ja) * 1994-09-22 1996-06-07 Toshiba Microelectron Corp 不揮発性半導体記憶装置
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6170043B1 (en) * 1999-01-22 2001-01-02 Media Tek Inc. Method for controlling an optic disk
DE19922155A1 (de) * 1999-05-12 2000-11-23 Giesecke & Devrient Gmbh Speicheranordnung mit Adreßverwürfelung
JP3510828B2 (ja) * 1999-11-22 2004-03-29 シャープ株式会社 デジタルデータの伝送装置および伝送方法
TW515948B (en) * 1999-12-20 2003-01-01 Jian-Tsz Hou Content securing method of non-volatile storage device and architecture thereof
CN1131476C (zh) * 1999-12-28 2003-12-17 后健慈 非挥发性储存装置内容保密方法与架构
US6532556B1 (en) 2000-01-27 2003-03-11 Multi Level Memory Technology Data management for multi-bit-per-cell memories
JP3932166B2 (ja) * 2001-08-07 2007-06-20 シャープ株式会社 同期型半導体記憶装置モジュールおよびその制御方法、情報機器
US6549468B2 (en) * 2001-08-30 2003-04-15 Micron Technology, Inc. Non-volatile memory with address descrambling
US6587383B1 (en) * 2002-03-19 2003-07-01 Micron Technology, Inc. Erase block architecture for non-volatile memory
KR20060032145A (ko) * 2003-06-23 2006-04-14 코닌클리케 필립스 일렉트로닉스 엔.브이. 결함이 발생하면 논리 어드레스를 물리적 어드레스로리매핑하여 정보를 기록하는 장치 및 방법
JP2005092923A (ja) * 2003-09-12 2005-04-07 Renesas Technology Corp 半導体記憶装置
JP2005258851A (ja) * 2004-03-12 2005-09-22 Renesas Technology Corp メモリカード
KR20060055271A (ko) * 2004-08-27 2006-05-23 가부시끼가이샤 르네사스 테크놀로지 불휘발성 반도체 기억 장치
KR100558050B1 (ko) * 2004-11-19 2006-03-07 주식회사 하이닉스반도체 데이터 출력 모드를 변경할 수 있는 메모리 장치

Also Published As

Publication number Publication date
CN101241758B (zh) 2013-01-30
KR100813627B1 (ko) 2008-03-14
US20080168214A1 (en) 2008-07-10
CN101241758A (zh) 2008-08-13
JP2008165972A (ja) 2008-07-17

Similar Documents

Publication Publication Date Title
DE102008003938A1 (de) Verfahren zum Scramblen von Adressendaten und Speichersystem
DE69828564T2 (de) Kombinierter nichtflüchtiger programm-/datenspeicher für gleichzeitiges lesen von programmen und schreiben von daten
DE102006001492B4 (de) Halbleiterspeicheranordnung und Verfahren zum Betreiben einer Halbleiterspeicheranordnung
DE19882933B4 (de) Flash-Speicher-Unterteilung für Lese-während-Schreiboperationen
DE69433320T2 (de) Ferngesteuerter rreprogrammierbarer programmspeicher fuer einen mikrokontroller
DE3317160C2 (de)
DE2646163C3 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE19882486B4 (de) Synchroner, nicht-flüchtiger Seitenmodus-Speicher
DE102005033165B4 (de) Nichtflüchtiges Speicherbauelement, Programmier- und Schreibverfahren
DE60317347T2 (de) Speicherschaltung mit nichtflüchtigem ram und ram
DE102008009235A1 (de) Speichersystem
DE102008003055A1 (de) Flash-Speichervorrichtung und Verfahren zum Betreiben derselben
DE102008033518B4 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102013104196A1 (de) System und Verfahren mit dreidimensionaler nichtflüchtiger Speichervorrichtung und Direktzugriffsspeicher
DE2948159A1 (de) Integrierter speicherbaustein mit waehlbaren betriebsfunktionen
DE102004027121B4 (de) Ein Mehrfachbankchip, der mit einer Steuerung kompatibel ist, die für eine geringere Anzahl von Banken entworfen ist, und ein Verfahren zum Betreiben
DE112008002553T5 (de) Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten
DE2364408A1 (de) System zur erstellung von schaltungsanordnungen aus hochintegrierten chips
DE60012081T2 (de) Nichtflüchtige Halbleiterspeicheranordnung, die eine Datenleseoperation während einer Datenschreib/lösch-Operation erlaubt
DE102005035084A1 (de) Speicherbauelement und Programmierverfahren
DE102008008196A1 (de) Speicherkarte, Speichersystem und Verfahren zum Betreiben eines Speichersystems
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE102019135863A1 (de) Speichercontroller, Speichervorrichtung und Speichersystem mit verbesserten Schwellenspannungs-Verteilungseigenschaften und ähnliche Betriebsverfahren
DE69819961T2 (de) Nichtflüchtige Halbleiterspeicheranordnung
DE102006046418B4 (de) Flash-Speicherelement und Verfahren zum Wiederaufladen eines Flash-Speicherelements

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination
R005 Application deemed withdrawn due to failure to request examination

Effective date: 20150106