DE102006024655B4 - Speicherkarte und Speichersteuereinheit - Google Patents

Speicherkarte und Speichersteuereinheit Download PDF

Info

Publication number
DE102006024655B4
DE102006024655B4 DE102006024655A DE102006024655A DE102006024655B4 DE 102006024655 B4 DE102006024655 B4 DE 102006024655B4 DE 102006024655 A DE102006024655 A DE 102006024655A DE 102006024655 A DE102006024655 A DE 102006024655A DE 102006024655 B4 DE102006024655 B4 DE 102006024655B4
Authority
DE
Germany
Prior art keywords
address
circuit
external
memory
add
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.)
Active
Application number
DE102006024655A
Other languages
English (en)
Other versions
DE102006024655A1 (de
Inventor
Kyong-Ae Suwon Kim
Jong-Yeol Goyang Park
Dong-Hee Lee
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 DE102006024655A1 publication Critical patent/DE102006024655A1/de
Application granted granted Critical
Publication of DE102006024655B4 publication Critical patent/DE102006024655B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/02Analogue recording or reproducing
    • G11B20/04Direct recording or reproducing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

Speicherkarte mit
– einer Speichersteuereinheit (140), die dafür eingerichtet ist, einen ersten Befehl und eine erste externe Adresse zu empfangen, und
– einem Flashspeichermodul (120),
dadurch gekennzeichnet, dass
– die Speichersteuereinheit (140) folgende Komponenten umfasst:
– eine erste Schaltung (320) zum Konvertieren der ersten externen Adresse unter Verwendung eines in der ersten Schaltung (320) gespeicherten Programms in eine erste interne Adresse und
– eine zweite Schaltung (370) zum Erzeugen einer zweiten internen Adresse basierend auf der ersten internen Adresse und der ersten externen Adresse in Reaktion auf eine Aktivierung eines Lesesignals und eines Beschleunigungsfreigabesignals,
– das Flashspeichermodul (120) auf Datenseiten entsprechend der ersten und zweiten internen Adresse zugreift,
– die erste Schaltung (320) ein Hardwarebeschleunigungsflag in der zweiten Schaltung (370) setzt, nachdem das Flashspeichermodul (120) für einen Lesevorgang unter Verwendung der ersten internen Adresse auf eine Datenseite zugreift, und
– die...

Description

  • Die Erfindung betrifft eine Speicherkarte und eine zugehörige Speichersteuereinheit.
  • Speicherkarten werden allgemein in digitalen Geräten, wie in persönlichen digitalen Assistenten (PDAs), in tragbaren Audiogeräten, in Mobiltelefonen und in Personalcomputern, benutzt, um Informationen zu speichern und um auf Informationen zuzugreifen. Eine typische Speicherkarte umfasst einen nichtflüchtigen Speicher und eine korrespondierende Speichersteuereinheit bzw. Speichersteuerschaltung, welche eine Schnittstelle zwischen der Speicherkarte und einem Hostsystem zur Verfügung stellt.
  • Verschiedene Speicherkarten werden beispielsweise in den Offenlegungsschriften US 2004-0205301 und US 2004-0236909 und in der Patentschrift US 6.131.138 offenbart.
  • 1 zeigt ein allgemeines Layout einer Speicherkarte 100, welche mit einem Hostsystem 200 verbunden ist. Unter Bezugnahme auf 1 umfasst die Speicherkarte 100 ein Flashspeichermodul 120 und eine Speichersteuereinheit 140. Das Hostsystem 200 kommuniziert über die Speichersteuerschaltung 140 mit dem Flashspeichermodul 120. Das Hostsystem 200 kann über die Speichersteuerschaltung 140 insbesondere Lese-, Programmier- und Löschvorgänge im Flashspeichermodul 120 ausführen.
  • Speicherzellen im Flashspeichermodul 120 sind in Blöcken und Seiten organisiert. Jeder Block umfasst im Wesentlichen ein oder mehrere Seiten und jede Seite umfasst im Wesentlichen eine Mehrzahl von Speicherzellen zum Speichern einer spezifizierten Anzahl von Bytes. Ein 1-GB-NAND-Flashspeichermodul (GB: Gigabyte) kann beispielsweise in 8192 Blöcken organisiert sein, wobei jeder Block 32 Seiten aufweist und jede Seite 512 Datenbyte speichert.
  • Im Flashspeichermodul 120 können Daten einer Seite gleichzeitig gelesen oder programmiert werden und blockweise gleichzeitig gelöscht werden. Entsprechend wird eine Seite von Daten zum oder vom Flashspeichermodul 120 immer dann übertragen, wenn das Hostsystem 200 einen Lese- oder Programmiervorgang im Flashspeichermodul 120 ausführt.
  • Die Leistungsfähigkeit der Lese-, Programmier- und Löschvorgänge im Flashspeichermodul 120 kann durch Erhöhen der Größe von jedem Block verbessert werden. Zusätzlich kann die Vergrößerung der Blockabmessungen auch die Chipabmessungen des Flashspeichermoduls 120 durch die Reduzierung der peripheren Schaltungen per Byte reduzieren, welche erforderlich sind, um jeden Block zu steuern. Die Blockgröße wird allgemein entweder durch eine Erhöhung der Anzahl von Seiten je Block oder durch eine Erhöhung der Bytes in jeder Seite erhöht.
  • 2 zeigt zwei Blöcke mit verschiedenen Blockgrößen: einen „kleinen Block” und einen „großen Block”. Der kleine Block umfasst 32 Seiten, welche jeweils eine Seitengröße von 512 Byte (B) aufweisen. Die Seiten sind in 32 Zeilen angeordnet, wobei jede Zeile eine einzelne Seite repräsentiert. Der große Block weist 64 Seiten auf, welche jeweils eine Seitengröße von 2 Kilobyte (KB) aufweisen. Die Seiten im großen Block sind in 64 Zeilen angeordnet, wobei jede Zeile eine einzelne 2 KB-Seite speichert. Um 2 zu vereinfachen, sind jedoch nicht alle 64 Seiten dargestellt.
  • Innerhalb des großen Blocks kann jede 2 KB-Seite in vier kleine Seiten von jeweils 512 Byte aufgeteilt werden. Auf die kleinen Seiten im großen Block kann durch Spezifizieren einer Zeile und einer Startspalte, wie durch Pfeile angezeigt, zugegriffen werden. In der Beschreibung wird der Begriff „kleine Seite” verwendet, um einen Abschnitt eines großen Blocks zu bezeichnen, der die gleiche Größe wie eine Seite im kleinen Block aufweist.
  • Die entsprechenden Größen der kleinen und großen Blöcke in 2 werden nur als Beispiele verwendet. In der Praxis können die Anzahl und Größen der Seiten im kleinen und im großen Block variieren. Ein kleiner Block hat jedoch allgemein wenigstens eine Abmessung, welche kleiner als eine korrespondierende Abmessung in einem großen Block ist, und Seitenadressen in kleinen Blöcken können auf Seitenadressen in großen Blöcken abgebildet werden. In der vorliegenden Beschreibung werden Adressen in kleinen Blöcken als „kleine Blockadressen” bezeichnet und Adressen in großen Blöcken werden als „große Blockadressen” bezeichnet.
  • Die kleinen Blockadressen und die großen Blockadressen umfassen beide eine Speicherblockadresse und eine Seitenadresse. Die Speicherblockadresse zeigt einen Block im Flashspeichermodul 120 an, wo die Adresse angeordnet ist, und die Seitenadresse zeigt eine Seite im Flashspeichermodul 120 an, wo die Adresse angeordnet ist.
  • Um eine logische Abbildung zwischen einem kleinen Block und einem großen Block darzustellen, sind die Seiten im kleinen Block mit 0P bis 31P bezeichnet. Ein großer Pfeil zeigt in 2 den Zusammenhang zwischen logischen Adressen im kleinen Block und physikalischen Adressen im großen Block an. Eine solche logische Abbildung kann beispielsweise erforderlich sein, wenn das Hostsystem 200 dafür ausgelegt ist, unter Verwendung von kleinen Blockadressen auf Daten zuzugreifen, während auf das Flashspeichermodul 120 unter Verwendung großer Blockadressen zugegriffen wird. In anderen Worten ausgedrückt, wenn das Hostsystem 200 der Speichersteuerschaltung 140 eine kleine Blockadresse sendet, muss die Speichersteuerschaltung 140 die kleine Blockadresse in eine große Blockadresse konvertieren, um auf das Flashspeichermodul 120 zuzugreifen.
  • Es sei beispielsweise angenommen, dass das Hostsystem 200 einen Lesebefehl mit einer Adresse einer Seite 1P im kleinen Block an die Speichersteuerschaltung 140 sendet. Die Speichersteuerschaltung 140 muss die Adresse für die Seite 1P in eine physikalische Adresse im großen Block konvertieren. Wie aus 2 ersichtlich ist, ist die Seite 1P in Zeile 1, Spalte 0 des kleinen Blocks und in Zeile 0, Spalte 1 im großen Block angeordnet.
  • Leider verlangsamt die Adressenkonvertierungsanforderung den Lesevorgang im Flashspeichermodul 120, wodurch die Gesamtleistungsfähigkeit der Speicherkarte verschlechtert werden kann.
  • Die Offenlegungsschrift US 2003/0200413 A1 offenbart ein Speichersystem mit einem Chipsatz vom AGP(Accelerated Graphics Port)-Typ, der eine Kernlogik zur Übersetzung von virtuellen Betriebssystemadressen in physikalische Speicheradressen mittels einer speicherbasierten Grafikadressenabbildungstabelle (GART) beinhaltet. Dabei kann sich die Speicherseitengröße der Kernlogik von derjenigen eines das Speichersystem verwendenden Datenverarbeitungssystems unterscheiden, wofür dann spezielle Übersetzungs-/Abbildungsmaßnahmen vorgesehen sind.
  • Es ist Aufgabe der Erfindung, eine Speicherkarte und eine zugehörige Speichersteuereinheit anzugeben, welche die oben genannten Unzulänglichkeiten des Standes der Technik wenigstens teilweise beseitigen.
  • Die Erfindung löst diese Aufgabe durch eine Speicherkarte mit den Merkmalen des Patentanspruchs 1, durch eine Speichersteuereinheit mit den Merkmalen des Patentanspruchs 21 und durch eine nichtflüchtige Speicherkarte mit den Merkmalen des Patentanspruchs 23.
  • Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • Vorteilhafte, nachfolgend beschriebene Ausführungsformen der Erfindung sowie das zu deren besserem Verständnis oben erläuterte, herkömmliche Ausführungsbeispiel sind in den Zeichnungen dargestellt. Es zeigen:
  • 1 ein Blockdiagramm eines allgemeinen Layouts einer mit einem Hostsystem verbundenen Speicherkarte,
  • 2 ein Diagramm zur Darstellung einer logischen Abbildung von Seiten in einem Flashspeichermodul mit kleinen Blöcken und einem Flashspeichermodul mit großen Blöcken,
  • 3 ein Blockdiagramm einer Speichersteuereinheit gemäß der Erfindung,
  • 4 ein Blockdiagramm eines Hardwarebeschleunigers (HWACC) für die Speichersteuereinheit in 3,
  • 5 ein Flussdiagramm zur Darstellung eines Lese-/Schreibvorgangs einer Speicherkarte gemäß der Erfindung,
  • 6 ein Diagramm zur Darstellung des Timings von sequentiellen Lesevorgängen, welche von Speicherkarten mit verschiedenen Speichersteuerungskonfigurationen ausgeführt werden,
  • 7 ein Diagramm zur Darstellung des Timings von zufälligen Lesevorgängen, welche von Speicherkarten mit verschiedenen Speichersteuerungskonfigurationen ausgeführt werden, und
  • 8 ein Blockdiagramm einer weiteren Speichersteuereinheit gemäß der Erfindung.
  • Die Erfindung wird nachfolgend unter Bezugnahme auf die zugehörigen 3 bis 8, welche Ausführungsbeispiele der Erfindung zeigen, detaillierter beschrieben. In den Zeichnungen bezeichnen gleiche Bezugszeichen Elemente bzw. Komponenten, welche gleiche bzw. analoge Funktionen ausführen.
  • 3 zeigt eine Speichersteuereinheit 140 gemäß der Erfindung, die eine Hostschnittstellensteuereinheit 310, eine Mikrosteuereinheit (MCU) 320, einen internen Speicher 330, ein Register 340, einen Schalter 350, eine Speicherschnittstellensteuereinheit 360, einen Hardwarebeschleuniger 370 und einen Pufferspeicher 380 umfasst.
  • Das Hostsystem 200 überträgt Eingabebefehle und Adressen an die Speichersteuerschaltung 140 unter Verwendung von kleinen Blockadressen und auf das Flashspeichermodul 120 wird unter Verwendung von großen Blockadressen zugegriffen. Entsprechend muss die Speichersteuerschaltung 140 die vom Hostsystem 200 bereitgestellten kleinen Blockadressen in große Blockadressen konvertieren, um auf das Flashspeichermodul 120 zuzugreifen. Wenn der Eingabebefehl mit dem Flashspeichermodul 120 inkompatibel ist, muss die Speichersteuer schaltung 140 auch den Eingabebefehl in einen mit dem Flashspeichermodul 120 kompatiblen Ausgabebefehl konvertieren.
  • In der vorliegenden Beschreibung wird der Begriff „externe Adresse” in Bezug auf kleine Blockadressen verwendet, welche von einer externen Quelle, wie dem Hostsystem 200, an die Speichersteuerschaltung 140 gesendet werden, und der Begriff „interne Adresse” wird in Bezug auf große Blockadressen verwendet, welche von der Speichersteuerschaltung 140 an das Flashspeichermodul 120 gesendet werden.
  • Eine externe oder interne Adresse umfasst im Wesentlichen eine Speicherblockadresse und eine Seitenadresse. Zudem kann die externe Adresse Start- und Endseitenadressen umfassen, um einen Bereich von Seiten anzugeben, auf welche durch einen sequentiellen Lesevorgang zugegriffen werden soll. Zusätzlich kann die interne Adresse eine Startspalte aufweisen, welche die Position einer kleinen Seite innerhalb eines großen Blocks im Flashspeichermodul 120 anzeigt.
  • Das Hostsystem 200 sendet allgemein drei Arten von Eingabebefehlen an die Speichersteuerschaltung 140: Schreibbefehle, sequentielle Lesebefehle und zufällige, unsortierte Lesebefehle. Ein Schreibbefehl initiiert einen Schreibvorgang, um eine kleine Seite im Flashspeichermodul 120 zu programmieren, ein sequentieller Lesebefehl initiiert einen sequentiellen Lesevorgang, um eine Sequenz von kleinen Seiten aus dem Flashspeichermodul 120 zu lesen, und ein unsortierter Lesebefehl initiiert einen unsortierten Lesevorgang, um eine einzelne kleine Seite aus dem Flashspeichermodul 120 zu lesen. Der Schreibbefehl und der unsortierte Lesebefehl benutzen beide eine einzelne Adresse und sie greifen auf eine einzelne Datenseite im Flashspeichermodul 120 zu. Im Gegensatz dazu verwendet der sequentielle Lesebefehl eine einzelne Adresse, welche jedoch einen bestimmten Bereich von Seiten mit der Start- und Endseitenadresse spezifiziert, um potentiell auf mehr als eine kleine Seite im Flashspeichermodul 120 zuzugreifen.
  • Wenn das Hostsystem 200 einen Lesebefehl an die Speichersteuerschaltung 140 sendet, nimmt die Speichersteuerschaltung 140 in Abhängigkeit davon, ob der Lesebefehl ein sequentieller Lesebefehl oder ein unsortierter Lesebefehl ist, entweder einen sequentiellen Lesevorgangsmodus oder einen unsortierten Lesevorgangsmodus an. In Abhängigkeit vom Betriebmodus der Speichersteuerschaltung 140 arbeitet der Hardwarebeschleuniger 370 verschieden, was nachfolgend beschrieben wird.
  • Das Hostsystem 200 kommuniziert über die Hostschnittstellensteuerschaltung 310 mit der Speichersteuerschaltung 140. Die Hostschnittstellensteuerschaltung 310 umfasst ein Befehls-/Adressenregister 311, welches einen Eingabebefehl und eine externe Adresse speichert, die vom Hostsystem 200 empfangen werden. Zudem speichert das Befehls-/Adressenregister 311 ein Interruptflagsignal, das zum Steuern von verschiedenen Vorgängen in der Speichersteuerschaltung 140 verwendet wird. Während das Befehls-/Adressenregister 311 in 3 in der Hostschnittstellensteuerschaltung 310 angeordnet ist, kann es alternativ außerhalb der Hostschnittstellensteuerschaltung 310 angeordnet sein. Das Befehls-/Adressenregister 311 kann mehr als ein Register umfassen.
  • Das Interruptflagsignal im Befehls-/Adressenregister 311 kann zur Steuerung verwendet werden, ob die Speichersteuerschaltung 140 die Hardwarebeschleunigungsschaltung 370 zum Erzeugen einer internen Adresse für einen Lesevorgang verwendet oder nicht. Wenn das Interrupzflagsignal während des Ablaufs eines Lese- oder Schreibvorgangs „gesetzt” ist, erzeugt die MCU 320 eine erste interne Adresse und einen ersten Ausgabebefehl für das Flashspeichermodul 120. Andererseits erzeugt die Hardwarebeschleunigungsschaltung 370 basierend auf der externen Adresse eine zweite interne Adresse und einen zweiten Ausgabebefehl für das Flashspeichermodul 120, wenn das Interruptflagsignal nicht gesetzt ist.
  • Die Begriffe „Setzen” und „Löschen” bezeichnen Vorgänge, bei welchen ein Bit oder Bits, welche ein logisches Flag aufweisen, umgeschaltet werden, um verschiedene Zustände des Flagsignals zu erhalten. Das Interruptflag ist beispielsweise „gesetzt”, wann immer das Befehls-/Adressenregister 311 einen Schreibbefehl empfängt. Analog ist das Interruptflag auch gesetzt, wann immer das Befehls-/Adressenregister 311 einen Lesebefehl empfängt, der ohne Konvertierung einer kleinen Blockadresse unter Verwendung der Hardwarebeschleunigungsschaltung 370 ausgeführt wird. Das Interruptflag wird nach dem Abschluss eines Schreib- oder Lesevorgangs oder nach dem Lesen einer kleinen Seite während eines sequentiellen Lesevorgangs „gelöscht”.
  • Wann immer das Interruptflagsignal gesetzt ist, holt die MCU 320 die externe Adresse und den Eingabebefehl aus dem Befehls-/Adressenregister 311. Dann konvertiert die MCU 320 die externe Adresse in die erste interne Adresse und erzeugt den zweiten Ausgabebefehl. Diese Konvertierung wird im Allgemeinen von einem im internen Speicher 330 gespeicherten Programm umgesetzt. Nach dem Abschluss der Konvertierung werden die erste interne Adresse und der Ausgabebefehl als erste Befehls-/Adressendaten zum Schalter 350 übertragen.
  • Wenn das Interruptflagsignal nicht gesetzt ist, erzeugt die Hardwarebeschleunigungsschaltung 370 die zweite interne Adresse und den Ausgabebefehl als zweite Befehls-/Adressendaten.
  • Wann immer die Hardwarebeschleunigungsschaltung 370 die zweite Adresse erzeugt, konvertiert die MCU 320 die externe Adresse nicht in die erste interne Adresse. Dies ermöglicht es der Speichersteuerschaltung 140, die Geschwindigkeit für den Lesevorgang durch Vermeiden der Zeitdauer zu erhöhen, welche zum Ausführen des Konvertierungsprogramms erforderlich ist.
  • Der Schalter 350 empfängt die jeweiligen ersten und zweiten Befehls-/Adressendaten von der MCU 320 und von der Hardwarebeschleunigungsschaltung 370 und wählt eine der ersten Befehls-/Adressendaten basierend auf einem von der MCU 320 ausgegebenen Auswahlsignal SEL zur Ausgabe an die Speicherschnittstellensteuerschaltung 360 aus. Wenn das Interruptflagsignal gesetzt ist, bewirkt das Auswahlsignal SEL, dass der Schalter 350 die ersten Befehls-/Adressendaten ausgibt, und wenn das Interruptflagsignal gelöscht ist, bewirkt das Auswahlsignal SEL, dass der Schalter 350 die zweiten Befehls-/Adressendaten ausgibt.
  • Wann immer die MCU 320 die externe Adresse in die erste interne Adresse konvertiert, werden die erste interne Adresse und die externe Adresse an die Hardwarebeschleunigungsschaltung 370 übertragen, wo sie als „vorherige interne Adresse” bzw. als „vorherige externe Adresse” gespeichert werden. Die Hardwarebeschleunigungsschaltung 370 verwendet die vorherige interne und externe Adresse, um nachfolgende interne Adressen zu erzeugen.
  • Wann immer die MCU 320 eine Adressenkonvertierung ausführt, modifiziert sie ein Hardwarebeschleunigungsflagsignal in der Hardwarebeschleunigungsschaltung 370. Wenn die Adressenkonvertierung für einen Lesebefehl ist, setzt die MCU 320 das Hardwarebeschleunigungsflag, und wenn die Adressenkonvertierung für einen Schreibbefehl ist, löscht die MCU 320 das Hardwarebeschleunigungsflag. Wenn die MCU 320 keine Adressenkonvertierung ausführt, d. h. wenn das Interruptflag gelöscht ist, wird das Hardwarebeschleunigungsflag nicht modifiziert.
  • Die Speicherschnittstellensteuerschaltung 360 empfängt die ersten oder zweiten Befehls-/Adressendaten, welche durch den Schalter 350 übertragen werden, und gibt die ersten oder zweiten Befehls-/Adressendaten an das Flashspeichermodul 120 aus. Das Flashspeichermodul 120 umfasst typischerweise einen NAND-Flashspeicher und daher benutzt die Speicherschnittstellensteuerschaltung 360 im Allgemeinen ein herkömmliches NAND-Schnittstellentiming, um mit dem Flashspeichermodul 120 zu kommunizieren.
  • Die Speicherschnittstellensteuerschaltung 360 überträgt Daten zum und vom Pufferspeicher 380 und dem Flashspeichermodul 120 in Reaktion auf die Befehls-/Adressendaten, welche über den Schalter 350 empfangen werden. Entsprechend kann der Pufferspeicher 380 abwechselnd durch Befehls-/Adressendaten von der MCU 320 und der Hardwarebeschleunigungsschaltung 370 gesteuert werden.
  • Wenn das Hardwarebeschleunigungsflag gesetzt ist, erzeugt die Hardwarebeschleunigungsschaltung 370 basierend auf der vorherigen internen und externen Adresse die zweite interne Adresse und den Ausgabebefehl. Wenn ein aktueller Befehl beispielsweise ein unsortierter Lesebefehl ist und das Hardwarebeschleunigungsflag gesetzt ist, vergleicht die Hardwarebeschleunigungsschaltung 370 eine aktuelle externe Adresse im Befehls-/Adressenregister 311 mit der vorherigen externen Adresse und bestimmt, ob die Speicherblockadresse in der aktuellen externen Adresse die gleiche wie die in der vorherigen externen Adresse ist. Zusätzlich vergleicht die Hardwarebeschleunigungsschaltung 370 auch, ob die Seitenadresse der aktuellen externen Adresse zwischen der Start- und Endseitenadresse der vorherigen externen Adresse liegt.
  • Wenn die Speicherblockadressen der aktuellen und der vorherigen externen Adresse gleich sind, und die Seitenadresse der aktuellen exter nen Adresse zwischen der Start- und Endseitenadresse der vorherigen externen Adresse liegt, erzeugt die Hardwarebeschleunigungsschaltung 370 die zweite interne Adresse basierend auf der aktuellen und der vorherigen externen Adresse und der vorherigen internen Adresse. Die zweite interne Adresse und ein korrespondierender Ausgabebefehl werden dann über den Schalter 350 zur Speicherschnittstellensteuerschaltung 360 übertragen.
  • Wenn die Speicherblockadressen der aktuellen und der vorherigen externen Adresse nicht gleich sind, oder die Seitenadresse der aktuellen externen Adresse nicht zwischen der Start- und Endseitenadresse der vorherigen externen Adresse liegt, setzt die Hardwarebeschleunigungsschaltung 370 das Interruptflag im Befehls-/Adressenregister 311. Durch das Setzen des Interruptflag auf diese Weise wird bewirkt, dass die MCU 320 die aktuelle externe Adresse in die erste interne Adresse konvertiert.
  • 4 zeigt eine vorteilhafte Realisierung der Hardwarebeschleunigerschaltung 370 gemäß der Erfindung. Unter Bezugnahme auf 4 umfasst die Hardwarebeschleunigungsschaltung 370 ein Register 371, eine Auswahlschaltung 372, eine Beurteilungsschaltung 373, einen Adressengenerator 374 und eine Zustandsmaschine 375.
  • Das Register 371 speichert eine Referenzadresse, welche verwendet wird, um zu bestimmen, ob die zweite interne Adresse basierend auf einer neuen Adresse REQ_ADD erzeugt werden kann. Die Referenzadresse wird mit der neuen Adresse REQ_ADD verglichen, und wenn diese Adressen „ausreichend ähnlich” sind, erzeugt der Hardwarebeschleuniger 370 die zweite interne Adresse basierend auf der neuen Adresse REQ_ADD.
  • Die Referenzadresse im Register 371 wird typischerweise mit einer ersten Adresse initialisiert, welche nach der ausgeführten Adressenkonvertierung mit der ersten externen Adresse von der MCU 320 empfangen wird. Die erste externe Adresse wird auch verwendet, um eine im Adressengenerator 374 gespeicherte Adresse zu initialisieren.
  • Der Adressengenerator 374 berechnet eine nächste Adresse NEXT_ADD in Reaktion auf ein Steuersignal von der Zustandsmaschine 375 und gibt die nächste Adresse NEXT_ADD an das Register 371 aus. Die nächste Adresse NEXT_ADD wird typischerweise durch Inkrementieren der Seitenadresse der im Adressengenerator 374 gespeicherten Adresse berechnet. Wenn die Speichersteuerschaltung 140 jedoch im unsortierten Lesevorgangsmodus ist, wird eine in die Auswahlschaltung 372 eingegebene aktuelle externe Adresse CUR_ADD im Allgemeinen durch den Adressengenerator 374 hindurchgeführt und als nächste Adresse NEXT_ADD ausgegeben. Die aktuelle externe Adresse CUR_ADD ist eine externe Adresse, welche aktuell im Befehls-/Adressenregister 311 gespeichert ist.
  • Die nächste Adresse NEXT_ADD, die neue Adresse REQ_ADD und die Referenzadresse werden alle auf eine Weise aktualisiert, dass die neue Adresse REQ_ADD eine aktualisierte Adresse in Bezug auf die Referenzadresse repräsentiert. Die nächste Adresse NEXT_ADD kann beispielsweise aktualisiert werden, bevor die neue Adresse REQ_ADD in der Beurteilungsschaltung 373 mit der Referenzadresse verglichen wird, und die Referenzadresse kann nach demselben Vergleich in der Beurteilungsschaltung 373 mit der nächsten Adresse NEXT_ADD aktualisiert werden.
  • Die Auswahlschaltung 372 empfängt die nächste Adresse NEXT_ADD und die aktuelle externe Adresse CUR_ADD und wählt basierend auf einem Modusauswahlsignal MODE, welches den sequentiellen Lese vorgangmodus oder den unsortierten Lesevorgangmodus anzeigt, die nächste Adresse NEXT_ADD oder die aktuelle externe Adresse CUR_ADD zur Ausgabe aus. Wenn das Modusauswahlsignal MODE den sequentiellen Lesevorgangmodus anzeigt, wählt die Auswahlschaltung 372 die nächste Adresse NEXT_ADD zur Ausgabe aus. Andererseits wählt die Auswahlschaltung 372 die aktuelle externe Adresse CUR_ADD zur Ausgabe aus, wenn das Modusauswahlsignal MODE den unsortierten Lesevorgangmodus anzeigt. Die Beurteilungsschaltung 373 und der Adressengenerator 374 empfangen beide die neue Adresse REQ_ADD.
  • Die Beurteilungsschaltung 373 arbeitet in Reaktion auf ein Beschleunigungsfreigabesignal HWACC_EN und ein Lesesignal READ. Wenn das Beschleunigungsfreigabesignal HWACC_EN und das Lesesignal READ aktiviert sind, vergleicht die Beurteilungsschaltung 373 die neue Adresse REQ_ADD mit der im Register 371 gespeicherten Referenzadresse. In anderen Worten ausgedrückt, die Beurteilungsschaltung 373 vergleicht die aktuelle externe Adresse CUR_ADD oder die nächste Adresse NEXT_ADD mit der vorherigen externen Adresse.
  • Die Hardwarebeschleunigungsschaltung 370 aktiviert das Beschleunigungsfreigabesignal HWACC_EN immer dann, wenn das Hardwarebeschleunigungsflag gesetzt ist. Das Hardwarebeschleunigungsflag ist immer dann gesetzt, wenn ein vorheriger Befehl vom Hostsystem 200 ein Lesebefehl ist. Wann immer beispielsweise die MCU 320 eine Adressenkonvertierung für einen Lesebefehl ausführt, setzt sie das Hardwarebeschleunigungsflag, so dass das Beschleunigungsfreigabesignal HWACC_EN aktiviert ist. Andererseits wird das Hardwarebeschleunigungsflag immer dann auf inaktiv gelöscht, wenn der vorherige Befehl vom Hostsystem 200 ein Schreibbefehl ist.
  • Das Lesesignal READ ist aktiviert, wann immer der aktuell im Befehls-/Adressenregister 311 gespeicherte Befehl ein Lesebefehl ist. Entsprechend ist die Beurteilungsschaltung 373 aktiviert, wann immer der vorherige und der aktuelle Befehl vom Hostsystem Lesebefehle sind.
  • Wenn die Beurteilungsschaltung 373 aktiviert ist, vergleicht sie die neue Adresse REQ_ADD mit der im Register 371 gespeicherten Referenzadresse. Die Beurteilungsschaltung 373 bestimmt, ob die neue Adresse REQ_ADD die gleiche Speicherblockadresse wie die Referenzadresse aufweist und ob die neue Adresse REQ_ADD eine Seitenadresse zwischen der Start- und Endseitenadresse der Referenzadresse aufweist. Wenn die Referenzadresse die gleiche Speicherblockadresse wie die neue Adresse REQ_ADD aufweist, und die Seitenadresse der neuen Adresse REQ_ADD zwischen der Start- und Endseitenadresse der kleinen Referenzblockadresse liegt, aktiviert die Beurteilungsschaltung 373 ein Treffersignal HIT. Andernfalls deaktiviert die Beurteilungsschaltung 373 das Treffersignal HIT und erzeugt ein Interruptsignal INT, welches bewirkt, dass das Interruptflag im Befehls-/Adressenregister 311 gesetzt wird.
  • Die Zustandsmaschine 375 erzeugt eine große Blockadresse und einen Ausgabebefehl in Reaktion auf die Aktivierung des Treffersignals HIT. Die zweite interne Adresse wird basierend auf der nächsten Adresse NEXT_ADD erzeugt, welche vom Adressengenerator 374 ausgegeben wird und die keine vom Adressengenerator 374 erhöhte Adresse ist, sondern eine Adresse, die von einem Ausgangssignal der Auswahlschaltung 372 kombiniert mit einer Repräsentation voriger interner und externer Adressen, die in der Zustandsmaschine gespeichert sind, aktualisiert wird. Die zweite interne Adresse und der Ausgabebefehl von der Zustandsmaschine 375 werden dann über den Schalter 350 zur Speicherschnittstellensteuerschaltung 360 übertragen.
  • 5 zeigt ein Flussdiagramm zur Darstellung von Lese-/Schreibvorgängen einer Speicherkarte 100 gemäß der Erfindung. Nachfolgend wird die Funktionsweise der Speicherkarte 100 für den sequentiellen Lesevorgangsmodus und den unsortierten Lesevorgangsmodus beschrieben. In der nachfolgenden Beschreibung werden beispielhafte Verfahrensschritte durch Klammerausdrücke bezeichnet, um sie von beispielhaften Elementen, wie den in den 1 bis 4 dargestellten Elementen, unterscheiden zu können.
  • Unter Bezugnahme auf 5 werden eine aktuelle externe Adresse CUR_ADD und ein Eingabebefehl im Befehls-/Adressenregister 311 der Hostschnittstellensteuerschaltung 310 gespeichert und die Hostschnittstellensteuerschaltung 310 bestimmt im Schritt S410, ob der Eingabebefehl ein Lesebefehl ist.
  • Wenn der Eingabebefehl kein Lesebefehl ist, setzt die Hostschnittstellensteuerschaltung 310 im Schritt S420 das Interruptflag im Befehls-/Adressenregister 311. Andernfalls bestimmt die Hostschnittstellensteuerschaltung 310 im Schritt S440, ob das Hardwarebeschleunigungsflag in der Hardwarebeschleunigungsschaltung 370 gesetzt ist, wenn der Eingabebefehl ein Lesebefehl ist. Wenn das Hardwarebeschleunigungsflag nicht gesetzt ist, setzt die Hostschnittstellensteuerschaltung 310 im Schritt S420 das Interruptflag.
  • Wenn das Hardwarebeschleunigungsflag jedoch gesetzt ist, bestimmt die Hardwarebeschleunigungsschaltung 370 im Schritt S450, ob die von der Auswahlschaltung 372 ausgegebene Adresse REQ_ADD innerhalb eines vorher definierten, in der Hardwarebeschleunigungsschaltung 370 gespeicherten Adressenbereichs liegt. Insbesondere bestimmt die Hardwarebeschleunigungsschaltung 370, ob die neue Adresse REQ_ADD den gleichen Speicherblock als Referenzadresse aufweist und ob eine Seitenadresse zwischen einer Startseite und einer Endseite der kleinen Referenzblockadresse liegt. Wenn die neue Adresse REQ_ADD nicht innerhalb des in der Hardwarebeschleunigungsschaltung 370 gespeicherten Adressenbereichs liegt, setzt die Hostschnittstellensteuerschaltung 310 das Interruptflag im Befehls-/Adressenregister 311.
  • Wenn das Interruptflag nach einem der Schritte S410, S440 oder S450 gesetzt ist, konvertiert die MCU 320 im Schritt S430 die aktuelle externe Adresse CUR_ADD in die erste interne Adresse und erzeugt basierend auf dem Eingabebefehl den ersten Ausgabebefehl. Andernfalls erzeugt die Hardwarebeschleunigungsschaltung 370 im Schritt S460 die zweite interne Adresse und den zweiten Ausgabebefehl, wenn das Interruptflag nicht nach den Schritten S410, S440 und S450 gesetzt ist.
  • Wenn die erste oder zweite interne Adresse und der erste oder zweite Ausgabebefehl erzeugt sind, lässt die Speichersteuerschaltung 140 die erste oder zweite interne Adresse und den ersten oder zweiten Ausgabebefehl über die Speicherschnittstellensteuerschaltung 360 zum Flashspeichermodul 120 passieren, um im Schritt S470 einen Lesebefehl oder einen Schreibbefehl auszuführen.
  • Die Schritte S410 und S440 werden jedes Mal ausgeführt, wenn das Hostsystem 200 einen neuen Lesebefehl zur Speichersteuerschaltung 140 sendet. Wenn ein vorheriger Lesebefehl ohne einen Zwischenbefehl zum Hostsystem gesendet wurde, wird nach dem Schritt S440 der Schritt S450 ausgeführt. Dann erzeugt die Hardwarebeschleunigungsschaltung 370, wenn möglich, die aktuelle große Blockadresse entsprechend dem Schritt S460, so dass die MCU 320 keine Adressenkonvertierung ausführen muss.
  • Die Speichersteuerschaltung 140 arbeitet im sequentiellen Lesevorgangsmodus und im unsortierten Lesevorgangsmodus ähnlich. Im un sortierten Lesevorgangsmodus wird jedoch die neue Adresse REQ_ADD aus der aktuellen externen Adresse CUR_ADD erhalten und im sequentiellen Lesevorgangsmodus wird die neue Adresse REQ_ADD aus der nächsten Adresse NEXT_ADD erhalten. Zudem arbeitet im sequentiellen Lesevorgangsmodus die Beurteilungsschaltung 373, wenn alle Daten, welche während eines vorherigen Lesevorgangs gelesen wurden, zum Hostsystem übertragen sind.
  • Die 6 und 7 zeigen Timingdiagramme von Signalverläufen zur Darstellung von Ausführungsvorteilen durch die Verwendung der Hardwarebeschleunigungsschaltung 370, anstatt immer mit der MCU 320 die externen Adressen in die internen Adressen zu konvertieren. 6 zeigt ein Timingdiagramm von Signalverläufen der Speichersteuerschaltung 140 während eines sequentiellen Lesevorgangs, und 7 zeigt ein Timingdiagramm von Signalverläufen der Speichersteuerschaltung 140 während eines ungeordneten Lesevorgangs.
  • Unter Bezugnahme auf 6 zeigt eine erste Signalform R/n_B1 das Timing der Speichersteuerschaltung 140, wenn das Hostsystem 200 und das Flashspeichermodul 120 beide kleine Blockadressen benutzen. In diesem Fall besteht kein Bedarf, die vom Hostsystem 200 bereitgestellten externen Adressen in interne Adressen zu konvertieren.
  • Bei der ersten Signalform R/nB1 empfängt die Speichersteuerschaltung 140 Befehls-/Adressendaten vor einem ersten Übergang von einem hohen auf einen niedrigen Pegel. Die Signalform R/nB1 wechselt dann für ein Intervall „t1” auf den niedrigen Pegel, während die Speichersteuerschaltung 140 auf das Flashspeichermodul 120 zugreift und eine Datenseite zum Pufferspeicher 380 überträgt. Dann wechselt die Signalform R/nB1 für ein Intervall „t2” auf einen hohen Pegel, während der Pufferspeicher 380 die Datenseite zum Hostsystem 200 überträgt. Da die Speichersteuerschaltung 140 im sequentiellen Lesevorgangsmodus ist, werden während einer einzigen Übertragung von Befehls-/Adressendaten mehrere Datenseiten sequentiell vom Flashspeichermodul 120 zum Hostsystem 200 übertragen.
  • Eine zweite und eine dritte Signalform R/nB2 und R/nB3 zeigen das Timing der Speichersteuerschaltung 140, wenn das Hostsystem 200 kleine Blockadressen und das Flashspeichermodul 120 große Blockadressen benutzen. Bei der zweiten Signalform R/nB2 konvertiert die MCU 320 jede vom Hostsystem 200 empfangene externe Adresse in die interne Adresse, und bei der dritten Signalform R/nB3 erzeugt die Hardwarebeschleunigungsschaltung 370 die internen Adressen, wann immer es möglich ist.
  • Die zweite und dritte Signalform R/nB2 und R/nB3 sind ähnlich zur Signalform R/nB1 mit der Ausnahme, dass eine Verzögerung „t3” auftritt, wann immer die MCU 320 erforderlich ist, um die externe Adresse in die interne Adresse zu konvertieren. Bei der zweiten Signalform R/nB2 tritt die Verzögerung „t3” jedes Mal auf, wenn eine Seite vom Flashspeichermodul 120 zum Pufferspeicher 380 übertragen wird. Bei der dritten Signalform R/nB3 ist die Verzögerung „t3” durch die Verwendung der Hardwarebeschleunigungsschaltung 370 beseitigt.
  • Unter Bezugnahme auf 7 sind dort die erste, zweite und dritte Signalform R/n_B1, R/nB2 und R/nB3 leicht modifiziert, da die Speichersteuerschaltung 140 im unsortierten Lesevorgangsmodus ist. Bei der Signalform R/nB1 empfängt die Speichersteuerschaltung 140 Befehls-/Adressendaten vor einem ersten Übergang von einem hohen auf einen niedrigen Pegel. Die Signalform R/nB1 wechselt dann für ein Intervall „t1” auf den niedrigen Pegel, während die Speichersteuerschaltung 140 auf das Flashspeichermodul 120 zugreift und eine Datenseite zum Pufferspeicher 380 überträgt. Dann wechselt die Signalform R/nB1 für ein Intervall „t2” auf einen hohen Pegel, während der Pufferspeicher 380 die Datenseite zum Hostsystem 200 überträgt.
  • Wenn die Datenseite zum Hostsystem 200 übertragen ist, überträgt das Hostsystem vor einem nächsten Übergang der ersten Signalform vom hohen auf den niedrigen Pegel weitere Befehls-/Adressendaten zur Speichersteuerschaltung 140. Wieder wird eine Datenseite während des Intervalls „t1” vom Flashspeichermodul 120 zum Pufferspeicher 380 übertragen und so weiter.
  • In 7 sind die zweite und dritte Signalform R/nB2 und R/nB3 ebenfalls ähnlich zur Signalform R/nB1 mit der Ausnahme, dass eine Verzögerung „t3” auftritt, wann immer die MCU 320 erforderlich ist, um die externe Adresse in die interne Adresse zu konvertieren. Bei der zweiten Signalform R/nB2 tritt die Verzögerung „t3” jedes Mal auf, wenn eine Seite vom Flashspeichermodul 120 zum Pufferspeicher 380 übertragen wird. Bei der dritten Signalform R/nB3 ist die Verzögerung „t3” jedoch durch die Verwendung der Hardwarebeschleunigungsschaltung 370 beseitigt.
  • Durch die Beseitigung des Bedarfs, die Adressenkonvertierung unter Verwendung der MCU 320 immer auszuführen, verbessern die Ausführungsformen der Erfindung die Leistungsfähigkeit der Speicherkarte 100 im sequentiellen Lesevorgangsmodus und im unsortierten Lesevorgangsmodus wesentlich.
  • 8 zeigt eine Speichersteuerschaltung 140 gemäß einem anderen Ausführungsbeispiel der Erfindung. Die in 8 dargestellte Speichersteuerschaltung ist identisch zur in 3 dargestellten Speichersteuerschaltung, außer dass eine Interruptsteuerschaltung 390 hinzugefügt ist.
  • Die Interruptsteuerschaltung 390 ist konfiguriert, um ein Interruptsignal zu erzeugen, wenn das Interruptflag im Befehls-/Adressenregister 311 gesetzt ist. Wenn das Interruptsignal erzeugt ist, führt die MCU 320 eine Adressenkonvertierung durch, wie oben ausgeführt ist.

Claims (23)

  1. Speicherkarte mit – einer Speichersteuereinheit (140), die dafür eingerichtet ist, einen ersten Befehl und eine erste externe Adresse zu empfangen, und – einem Flashspeichermodul (120), dadurch gekennzeichnet, dass – die Speichersteuereinheit (140) folgende Komponenten umfasst: – eine erste Schaltung (320) zum Konvertieren der ersten externen Adresse unter Verwendung eines in der ersten Schaltung (320) gespeicherten Programms in eine erste interne Adresse und – eine zweite Schaltung (370) zum Erzeugen einer zweiten internen Adresse basierend auf der ersten internen Adresse und der ersten externen Adresse in Reaktion auf eine Aktivierung eines Lesesignals und eines Beschleunigungsfreigabesignals, – das Flashspeichermodul (120) auf Datenseiten entsprechend der ersten und zweiten internen Adresse zugreift, – die erste Schaltung (320) ein Hardwarebeschleunigungsflag in der zweiten Schaltung (370) setzt, nachdem das Flashspeichermodul (120) für einen Lesevorgang unter Verwendung der ersten internen Adresse auf eine Datenseite zugreift, und – die zweite Schaltung (370) das Lesesignal immer dann aktiviert, wenn die Speichersteuereinheit (140) einen Lesebefehl empfängt.
  2. Speicherkarte nach Anspruch 1, dadurch gekennzeichnet, dass die Speichersteuereinheit (140) einen zweiten Befehl und eine zweite externe Adresse nach dem Empfang des ersten Befehls empfängt, wobei der erste und der zweite Befehl unsortierte Lesebefehle sind.
  3. Speicherkarte nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die erste Schaltung (320) nach dem Empfang des ersten Be fehls die erste externe Adresse zur zweiten Schaltung (370) überträgt und die zweite Schaltung (370) die erste externe Adresse speichert.
  4. Speicherkarte nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass die erste und zweite externe Adresse jeweils eine Speicherblockadresse und Start- und Endseitenadressen umfassen.
  5. Speicherkarte nach Anspruch 4, dadurch gekennzeichnet, dass die zweite Schaltung (370) bestimmt, ob die erste und zweite externe Adresse die gleiche Speicherblockadresse aufweisen und ob die zweite externe Adresse eine Seitenadresse aufweist, welche zwischen der Start- und Endseitenadresse der ersten externen Adresse liegt, wenn das Hardwarebeschleunigungsflag gesetzt ist.
  6. Speicherkarte nach Anspruch 5, dadurch gekennzeichnet, dass die zweite Schaltung (370) die zweite interne Adresse erzeugt, wenn die erste und zweite externe Adresse die gleiche Speicherblockadresse aufweisen und die zweite externe Adresse eine Seitenadresse aufweist, welche zwischen der Start- und Endseitenadresse der ersten externen Adresse liegt.
  7. Speicherkarte nach Anspruch 5 oder 6, dadurch gekennzeichnet, dass die zweite Schaltung (370) ein Interruptsignal aktiviert, um ein Interruptflag in der Speichersteuereinheit (140) zu setzen, welches bewirkt, das die erste Schaltung (320) die erste interne Adresse erzeugt, wenn die erste und zweite externe Adresse nicht die gleiche Speicherblockadresse aufweisen oder die zweite externe Adresse eine Seitenadresse aufweist, welche nicht zwischen der Start- und Endseitenadresse der ersten externen Adresse liegt.
  8. Speicherkarte nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass der erste Befehl ein sequentieller Lesebefehl ist.
  9. Speicherkarte nach Anspruch 8, dadurch gekennzeichnet, dass die erste Schaltung (320) die ersten externen und internen Adressen zur zweiten Schaltung (370) überträgt und die zweite Schaltung (370) die erste externe Adresse als Referenzadresse speichert, wobei die zweite Schaltung (370) eine nächste Adresse (NEXT_ADD) basierend auf der ersten externen Adresse erzeugt.
  10. Speicherkarte nach Anspruch 9, dadurch gekennzeichnet, dass die erste externe Adresse eine Speicherblockadresse und Start- und Endseitenadressen umfasst.
  11. Speicherkarte nach Anspruch 10, dadurch gekennzeichnet, dass die zweite Schaltung (370) bestimmt, ob die neue Adresse (REQ_ADD) und die Referenzadresse die gleiche Speicherblockadresse aufweisen und ob die neue Adresse (REQ_ADD) eine Seitenadresse aufweist, welche zwischen der Start- und Endseitenadresse der Referenzadresse liegt, wenn das Hardwarebeschleunigungsflag gesetzt ist.
  12. Speicherkarte nach Anspruch 11, dadurch gekennzeichnet, dass die zweite Schaltung (370) die zweite interne Adresse basierend auf der ersten externen und internen Adresse erzeugt, wenn bestimmt ist, dass die neue Adresse (REQ_ADD) und die Referenzadresse die gleiche Speicherblockadresse aufweisen und dass die neue Adresse (REQ_ADD) eine Seitenadresse aufweist, welche zwischen der Start- und Endseitenadresse der Referenzadresse liegt.
  13. Speicherkarte nach Anspruch 11 oder 12, dadurch gekennzeichnet, dass die zweite Schaltung (370) ein Interruptsignal aktiviert, um ein Interruptflag in der Speichersteuereinheit (140) zu setzen, welches bewirkt, das die erste Schaltung (320) die erste interne Adresse erzeugt, wenn die neue Adresse (REQ_ADD) und die Referenzadresse nicht die gleiche Speicherblockadresse aufweisen oder die neue Adresse (REQ_ADD) eine Seitenadresse aufweist, welche nicht zwischen der Start- und Endseitenadresse der Referenzadresse liegt.
  14. Speicherkarte nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, dass die erste Schaltung (320) während eines Lesevorgangs nach dem Zugriff auf das Flashspeichermodul (120) die erste externe Adresse zur zweiten Schaltung (370) überträgt, wobei die erste externe Adresse eine Speicherblockadresse und Start- und Endseitenadressen umfasst.
  15. Speicherkarte nach einem der Ansprüche 1 bis 14, dadurch gekennzeichnet, dass die zweite Schaltung (370) folgende Komponenten umfasst: – ein Register (371) zum Speichern des Hardwarebeschleunigungsflags und einer Referenzadresse, die aus der ersten externen Adresse abgeleitet wird, – eine Auswahlschaltung (372), die in Reaktion auf ein Modussignal (MODE) zwischen einer aktuellen externen Adresse (CUR_ADD) und einer nächsten Adresse (NEXT_ADD) auswählt und die ausgewählte Adresse als neue Adresse (REQ_ADD) ausgibt, – eine Beurteilungsschaltung (373) zum Erzeugen eines Treffersignals (HIT) nach dem Detektieren, dass die Referenzadresse und die neue Adresse (REQ_ADD) die gleichen Speicherblockadressen aufweisen und dass die neue Adresse (REQ_ADD) ei ne Seitenadresse aufweist, welche zwischen der Startseitenadresse und der Endseitenadresse der Referenzadresse liegt, – einen Adressengenerator (374), welcher die neue Adresse (REQ_ADD) von der Auswahlschaltung (372) empfängt und basierend auf der neuen Adresse (REQ_ADD) die nächste Adresse (NEXT_ADD) ausgibt, und – eine Zustandsmaschine (375), welche in Reaktion auf das Treffersignal (HIT) die zweite erste interne Adresse basierend auf der nächsten Adresse (NEXT_ADD) erzeugt.
  16. Speicherkarte nach Anspruch 15, dadurch gekennzeichnet, dass nach dem Erzeugen der zweiten internen Adresse die Zustandsmaschine (375) ein Steuersignal an den Adressengenerator (374) sendet, welches bewirkt, dass die nächste Adresse (NEXT_ADD) um einen vorbestimmten Wert inkrementiert wird.
  17. Speicherkarte nach Anspruch 15 oder 16, dadurch gekennzeichnet, dass die nächste Adresse (NEXT_ADD) im Register (371) als Referenzadresse speicherbar ist.
  18. Speicherkarte nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet, dass die Auswahlschaltung (372) die aktuelle externe Adresse (CUR_ADD) auswählt, wenn das Modussignal (MODE) den unsortierten Lesevorgangsmodus anzeigt, und die nächste Adresse (NEXT_ADD) auswählt, wenn das Modussignal (MODE) den sequentiellen Lesevorgangsmodus anzeigt.
  19. Speicherkarte nach einem der Ansprüche 11 bis 18, dadurch gekennzeichnet, dass die Beurteilungsschaltung (373) das Interruptsignal erzeugt, welches bewirkt, dass das Interruptflag in der Speichersteuereinheit (140) gesetzt ist, wenn die neue Adresse (REQ_ADD) und die Referenzadresse verschiedene Speicher blockadressen aufweisen oder die neue Adresse (REQ_ADD) eine Seitenadresse aufweist, welche nicht zwischen der Start- und Endseitenadresse der Referenzadresse liegt.
  20. Speicherkarte nach einem der Ansprüche 1 bis 19, gekennzeichnet durch einen Schalter (350), welcher in Reaktion auf ein Auswahlsignal (SEL), das von der ersten Schaltung (320) ausgebbar ist, die erste oder zweite interne Adresse an das Flashspeichermodul (120) ausgibt.
  21. Speichersteuereinheit für ein nichtflüchtiges Speicherbauelement, mit – einem internen Speicher (330) zum Speichern eines Programms und – einer Mikrocontrollereinheit (320) zum Verarbeiten einer ersten externen Adresse unter Verwendung des Programms, um eine erste interne Adresse zu erzeugen, – einem Hardwarebeschleuniger (370), der eine zweite externe Adresse basierend auf der ersten externen und der ersten internen Adresse verarbeitet, um eine zweite interne Adresse zu erzeugen, – einer Hostschnittstelle (310) für die Mikrocontrollereinheit (320) und – einer Speicherschnittstelle (360), die als Schnittstelle zwischen der Mikrocontrollereinheit (320) und dem Hardwarebeschleuniger (370) und dem nichtflüchtigen Speicherbauelement fungiert.
  22. Speichersteuereinheit nach Anspruch 21, dadurch gekennzeichnet, dass der Hardwarebeschleuniger (370) in Reaktion auf ein Hardwarebeschleunigungsflag arbeitet, das von der Mikrocontrollereinheit (320) empfangbar ist.
  23. Nichtflüchtige Speicherkarte mit – einem nichtflüchtigen Speicherbauelement (120) und – einer Speichersteuereinheit (140) nach Anspruch 21 oder 22.
DE102006024655A 2005-05-24 2006-05-22 Speicherkarte und Speichersteuereinheit Active DE102006024655B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050043779A KR100706246B1 (ko) 2005-05-24 2005-05-24 읽기 성능을 향상시킬 수 있는 메모리 카드
KR10-2005-0043779 2005-05-24

Publications (2)

Publication Number Publication Date
DE102006024655A1 DE102006024655A1 (de) 2006-11-30
DE102006024655B4 true DE102006024655B4 (de) 2010-07-08

Family

ID=37387913

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006024655A Active DE102006024655B4 (de) 2005-05-24 2006-05-22 Speicherkarte und Speichersteuereinheit

Country Status (5)

Country Link
US (1) US7555629B2 (de)
JP (1) JP4901285B2 (de)
KR (1) KR100706246B1 (de)
CN (1) CN1869915B (de)
DE (1) DE102006024655B4 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4984666B2 (ja) * 2006-06-12 2012-07-25 ソニー株式会社 不揮発性メモリ
US8307180B2 (en) * 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
CN101266577B (zh) * 2008-03-27 2010-06-16 上海交通大学 可编程片上带有存储器接口的nor闪存读取控制方法
US8924661B1 (en) * 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) * 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
EP2437161A1 (de) * 2010-10-01 2012-04-04 Intel Mobile Communications Technology Dresden GmbH Hardwarebeschleunigermodul und Verfahren zu dessen Einrichtung
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US9633742B2 (en) 2014-07-10 2017-04-25 Sandisk Technologies Llc Segmentation of blocks for faster bit line settling/recovery in non-volatile memory devices
US9418750B2 (en) * 2014-09-15 2016-08-16 Sandisk Technologies Llc Single ended word line and bit line time constant measurement
US9318204B1 (en) 2014-10-07 2016-04-19 SanDisk Technologies, Inc. Non-volatile memory and method with adjusted timing for individual programming pulses
US9236128B1 (en) 2015-02-02 2016-01-12 Sandisk Technologies Inc. Voltage kick to non-selected word line during programming
US9318210B1 (en) 2015-02-02 2016-04-19 Sandisk Technologies Inc. Word line kick during sensing: trimming and adjacent word lines
JP6517549B2 (ja) * 2015-03-13 2019-05-22 東芝メモリ株式会社 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
TWI573033B (zh) 2016-01-14 2017-03-01 群聯電子股份有限公司 資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元
CN106991055B (zh) * 2016-01-21 2021-01-12 群联电子股份有限公司 数据搜索方法、存储器存储装置及存储器控制电路单元
JP6232109B1 (ja) 2016-09-27 2017-11-15 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および連続読出し方法
US20210055882A1 (en) * 2019-08-22 2021-02-25 Micron Technology, Inc. Hierarchical memory apparatus
US11036633B2 (en) 2019-08-22 2021-06-15 Micron Technology, Inc. Hierarchical memory apparatus
TWI717884B (zh) * 2019-10-31 2021-02-01 創惟科技股份有限公司 記憶卡的讀寫控制系統及其方法
CN111880733B (zh) * 2020-07-24 2022-03-29 长江存储科技有限责任公司 三维存储器件、三维存储器及其操作方法和三维存储器系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6131138A (en) * 1997-08-18 2000-10-10 Stmicroelectronics N.V. Variable speed compact disc drive including an elastic buffer
US20030200413A1 (en) * 1999-10-04 2003-10-23 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
US20040205301A1 (en) * 2003-04-14 2004-10-14 Renesas Technology Corp. Memory device
US20040236909A1 (en) * 2001-09-13 2004-11-25 Atsushi Shikata Memory card and data rewriting method

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4527232A (en) * 1982-07-02 1985-07-02 Sun Microsystems, Inc. High-speed memory and memory management system
US5452261A (en) * 1994-06-24 1995-09-19 Mosel Vitelic Corporation Serial address generator for burst memory
KR100359414B1 (ko) 1996-01-25 2003-01-24 동경 엘렉트론 디바이스 주식회사 데이타독출/기록방법및그를이용한메모리제어장치및시스템
JP3321587B2 (ja) 1996-02-01 2002-09-03 東京エレクトロンデバイス株式会社 フラッシュメモリシステムにおけるデータ書き換え方法及びメモリ制御装置
JPH1139450A (ja) 1997-07-24 1999-02-12 Mitsubishi Electric Corp Icカード
US6167476A (en) * 1998-09-24 2000-12-26 Compaq Computer Corporation Apparatus, method and system for accelerated graphics port bus bridges
JP2000122668A (ja) * 1998-10-15 2000-04-28 Yamaha Corp デジタル音声データ処理装置およびコンピュータシステム
US6396744B1 (en) * 2000-04-25 2002-05-28 Multi Level Memory Technology Flash memory with dynamic refresh
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US6711650B1 (en) * 2002-11-07 2004-03-23 International Business Machines Corporation Method and apparatus for accelerating input/output processing using cache injections
JP4068594B2 (ja) * 2003-06-10 2008-03-26 Tdk株式会社 フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリの制御方法
TW200515147A (en) * 2003-10-17 2005-05-01 Matsushita Electric Ind Co Ltd Semiconductor memory device, controller, and read/write control method thereof
JP2006128830A (ja) * 2004-10-26 2006-05-18 Sony Corp 再生装置、データ処理システム、再生方法、プログラムおよび記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6131138A (en) * 1997-08-18 2000-10-10 Stmicroelectronics N.V. Variable speed compact disc drive including an elastic buffer
US20030200413A1 (en) * 1999-10-04 2003-10-23 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
US20040236909A1 (en) * 2001-09-13 2004-11-25 Atsushi Shikata Memory card and data rewriting method
US20040205301A1 (en) * 2003-04-14 2004-10-14 Renesas Technology Corp. Memory device

Also Published As

Publication number Publication date
CN1869915A (zh) 2006-11-29
US20060268609A1 (en) 2006-11-30
JP4901285B2 (ja) 2012-03-21
JP2006331408A (ja) 2006-12-07
KR20060121540A (ko) 2006-11-29
US7555629B2 (en) 2009-06-30
CN1869915B (zh) 2011-04-06
DE102006024655A1 (de) 2006-11-30
KR100706246B1 (ko) 2007-04-11

Similar Documents

Publication Publication Date Title
DE102006024655B4 (de) Speicherkarte und Speichersteuereinheit
DE3909896C2 (de)
EP1720100B1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE602005003987T2 (de) Verfahren zur Programmierung einer System auf Chip DMA Steuerung, sowie ein System auf Chip dafür.
DE602005002691T2 (de) Verfahren zur Programmierung einer System auf Chip DMA Steuerung, sowie ein System auf Chip dafür.
DE69522294T2 (de) Direktspeicherzugriff-Emulation
DE102004033445A1 (de) Host-integrierte Schaltungseinheit und Ressourcenzugriffsverfahren
DE102006046417A1 (de) Datenverarbeitungssystem und Verfahren zum Extrahieren von Daten aus einem OneNAND-Flash-Speicher in ein RAM-Speicherbauelement
DE69031206T2 (de) Rechnersystem
DE112010003762B4 (de) Flash-Speicher-Steuereinheit
DE68923433T2 (de) Einrichtung und Methode um Festwertspeicher in einem Rechnerspeicherbereich anzuordnen.
DE102006036837A1 (de) Datenspeicherverwaltungsverfahren und -system
EP0500973B1 (de) EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM
AT389951B (de) Datenuebertragungseinrichtung
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE102020115970B3 (de) Befehlsoptimierung durch intelligente schwellwertdetektion
DE60027357T2 (de) Eine Unterbrechungssteuerung und ein Mikrorechner, der diese Unterbrechungssteuerung beinhaltet
DE112015003569T5 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
EP0075714B1 (de) Onchip Mikroprozessorcachespeicher und Verfahren zu seinem Betrieb
DE10202758A1 (de) DMA-Controller sowie Verfahren und Computersystem mit einem solchen
EP1548603B1 (de) Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
DE2609698A1 (de) Elektronischer rechner
EP1197854B1 (de) Verfahren zum Starten einer Datenverarbeitungsanlage sowie zugehörige Komponenten
DE10306285A1 (de) Mikrocomputersystem
DE102015114721B4 (de) Verfahren, Gerät und System zur Datenverarbeitung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition