-
HINTERGRUND DER ERFINDUNG
-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft eine Steuereinheit für ein Siliziumspeichermedium,
und insbesondere eine Steuereinheit für ein Siliziumspeichermedium
mit einem Datenframe von variabler Länge.
-
Beschreibung
der zugehörigen
Technik
-
Gegenwärtig ist
es üblich,
einen Speicher, der aus einem Siliziumchip gemacht ist, als Siliziumspeichermedium
zu verwenden. Die Meisten der Siliziumspeichermedien sind mit einer
Systemschnittstelle über eine
Steuereinheit zum Schreiben von Informationen in einen Speicher
oder zum Lesen von Informationen aus einem Speicher verbunden und übertragen
Informationen zum System. Worin, seitdem es durch dessen geringen
Energieverbrauch, hohe Zuverlässigkeit,
hohe Kapazität
und schnelle Zugriffsgeschwindigkeit charakterisiert ist, das Siliziumspeichermedium
weitgehend in verschiedenen tragbaren digitalen elektronischen Geräten angewandt
wurde, wie den Produkten der digitalen Kamera, des digitalen Walkman
und des persönlichen digitalen
Assistenten (PDA), und dessen Absatzmarkt wächst nun rapide. Mehrere Typen
des Siliziumspeichermediums sind von dem ursprünglichen Siliziumspeichermedium
abgeleitet, diese sind: Compact-Flash-Karte (CF), Memory-Stick-Karte (MS),
Secure-Digital-Karte (SD), Smart-Media-Karte (SM), usw. Ferner ist
auf dem Gebiet der Personal-Computer-Anwendung die tragbare USB-Diskette,
die über
den seriellen Universal-Bus (USB) installiert wird, unlängst ein
sehr weit verbreitetes neues Produkt geworden.
-
Die
Speicherkapazität
von verschiedenen tragbaren Speichergeräten, die als das Siliziumspeichermedium
verwendet werden und aus dem oben genannten Siliziumchip bestehen,
ist durch die Kapazität
von dessen eingebautem Speicher begrenzt. Die Steuereinheit im Inneren
des tragbaren Speichergeräts
besitzt nur eine Schnittstelle, die mit einem System verbunden ist,
um Befehle zu erhalten und dementsprechend auf den Speicherinhalt
zuzugreifen. Weil der Speicherchip den größten Kostenanteil an einem
tragbaren Speichergerät hat,
ist deshalb die Hauptaufgabe, die beschränkte Kapazität des Speichers
vollständig
auszunutzen, um die Kosten zu reduzieren.
-
Die
herkömmliche
Steuereinheit für
ein Siliziumspeichermedium speichert die Originaldaten direkt in den
Speicher gemäß dem Mapping-Verfahren,
in dem eine Seite als die minimale Speichereinheit den Lese-/Schreib-Vorgang
ausführt
und ein redundanter Bereich auf der Seite verwendet wird, um die
Information des Mapping-Codes
und des Korrekturcodes der logischen Adresse aufzuzeichnen. Gewöhnlich beträgt eine einzelne
Sektorgröße 528 Byte
als die gängigste
Kapazitätseinheit,
die vom Speichergerät
verwendet wird, dessen Größe der Kapazität eines
Einheitssektors ebenfalls gleich ist. Eine neuer Typ des Speichers
mit bis zu 2048 Byte an Speicherkapazität der einzelnen Seite und 64
Byte an Kapazität
des redundantem Bereichs wird ferner im Stand der Technik bereitgestellt.
Die Steuereinheit benutzt jedoch immer noch die gleiche Technik,
um ihn zu steuern. Mit anderen Worten ist die Datenkomprimierungs-/dekomprimierungsfunktion
in den Mapping-Code der logischen Adresse nicht einbezogen, der
aufgezeichnet wird und mit einer einzelnen Seite übereinstimmt.
-
Bezugnehmend
auf die 1A, ist ein
Blockdiagramm der internen Struktur eines herkömmlichen Siliziumspeichermediums
gezeigt. Das Siliziumspeichermedium 100 umfasst eine Steuereinheit 110 und
einen oder mehrere Speicher 120. Die Steuereinheit 110 umfasst
einen Mikroprozessor 114 und der Mikroprozessor 114 kommuniziert
und überträgt Befehle
und Daten an eine System über
eine Systemschnittstelle 112, worin auf das Siliziumspeichermedium
vom System zugegriffen wird. Nachdem Daten in einem Datenpuffer 116 temporär gespeichert
wurden, werden die Daten entweder in den Speicher 120 über eine Speicherschnittstelle 118 geschrieben
oder aus dem Speicher 120 gelesen und in einem Datenpuffer 116 temporär gespeichert.
Danach werden die Daten über
die Systemschnittstelle 112 zum System zurück gesendet,
welches die Daten zum Lesen anfordert.
-
Während dem
Prozess der Aufzeichnung der Originaldaten, die vom System in den
Speicher übertragen
wurden, speichert der Prozess ferner zugehörige Steuerinformationen, wie
das Zustandskennzeichen, den Fehlerkorrekturcode, die logische Adresse
und weiteren nicht verwendeten, reservierten Raum, der zu einigen
Daten des Datenspeicherblocks gehört. Jedes Bit in der zur Steuerung
gehörigen
Information wird definiert hiernach, worin:
Zustandskennzeichen:
den Zustand der Daten, die in einem Speicherblock gespeichert sind,
mit "gelöscht", "in Benutzung" oder "fehlerhaft" angibt. Wenn er "gelöscht" ist, dann kann der
Speicherblock zum Speichern von aktualisierten Daten verwendet werden
und das Zustandskennzeichen wird geändert zu "in Benutzung". Wenn es während des Schreibvorgangs vorkommt,
dass der Speicher zum Aufzeichnen der Daten defekt ist und nicht
weiter zum einwandfreien Speichern verwendet werden kann, wird der
Block als "fehlerhaft" gekennzeichnet.
Nachdem die Daten, die im Speicherblock mit dem Kennzeichen "in Benutzung" gespeichert sind, aktualisiert
und in den anderen "gelöschten" Block verschoben
wurden, erlangt der Speicherblock wieder den Zustand "gelöscht" durch den Löschvorgang.
-
Fehlerkorrekturcode:
mehrere Byte des Fehlerkorrekturcodes werden aus den Originaldaten
unter Verwendung eines spezifischen Algorithmus generiert. Wenn
der Fehlerkorrekturcode erfasst wurde, dann erfolgt der Korrekturprozess,
um den Fehler zu korrigieren, und die korrekten Daten werden dann
zum System zurück
gesendet. Wenn der Mikroprozessor einen Fehler erfasst, der in der
Speichereinheit aufgetreten ist, in dem die Originaldaten gespeichert
sind, dann werden die korrekten Daten unverzüglich verschoben und in einen
anderen "gelöschten" Block kopiert und
der defekte Datenblock als "fehlerhaft" gekennzeichnet.
-
Logische
Adresse: eine Translationstabelle wird gemäß des Planungsprozesses der
Speicherkonfiguration erzeugt, um die Originaldaten zu spiegeln.
Wenn die Originaldaten in den Speicher gespeichert werden, muss
der Mikroprozessor die Speicheranpassung an das physische Adressierungsverfahren,
das für
den Speicher geeignet ist, einwandfrei planen, anordnen und ausnützen. Deshalb
bestand ein großer
Unterschied zwischen der von ihm benutzten Anordnungssequenz und
der logischen Adressensequenz, die vom System angewandt wird, um
auf den Speicher zuzugreifen. Dementsprechend ist es erforderlich,
eine Adressenkonvertierungs-Schaltungsanordnung
oder einen Adressenkonvertierungs-Steuerprozess in der Steuereinheit
zu installieren. Die Translationstabelle wird zum Konvertieren der
logischen Adresse verwendet, welche vom System an/von die/der physischen
Adresse in dem Speicher bereitgestellt wird. Um eine derartige Translationsbeziehung
aufrecht zu erhalten, auch nachdem die Stromversorgung das System
heruntergefahren hat, ist es erforderlich, sowohl die Originaldaten
als auch ihre entsprechende logische Adresse gleichzeitig zu erhalten.
-
Wie
oben erwähnt,
wird ein herkömmlicher
NAND-Flash-Speicher hier beispielhaft erläutert, um ein Speicherformat
eines Datenblocks in dem Speicher zu beschreiben, wie in der 1B gezeigt ist. Ein NAND-Flash-Speicher
mit 528 Byte als Speichereinheit dient im Folgenden als Beispiel.
Unter den 528 Byte der Speichereinheit werden 512 Byte als ein Speicherbereich
zum Aufzeichnen der Originaldaten verwendet und die restlichen 16
Byte (auch als Speicherbereich für
Steuerinformationen bekannt) werden zum Aufzeichnen der oben genannten
Steuerinformationen verwendet. Nachdem die erforderliche Steuerinformationen
gespeichert ist, ist es üblich,
dass in dem Speicherbereich für
Steuerinformationen noch etwas Speicherplatz übrig geblieben ist.
-
Bezugnehmend
auf die 2, ist eine
Konfiguration eines Siliziumspeichermediums und einer Steuereinheit
hiervon gezeigt, wie es der Stand der Technik bereitstellt. Worin
ein Siliziumspeichermedium 200 mit Datenkomprimierungsfunktion
eine Steuereinheit 210 und mindestens einen Speicher 220 umfasst.
Die Steuereinheit 210 umfasst eine Systemschnittstelle 211,
die als ein Datenaustauschkanal zwischen dem System und der Steuereinheit
des Siliziumspeichermediums dient; einen Mikroprozessor 212,
der Lese-, Schreib- und Löschvorgänge ausführt; und
eine Speicherschnittstelle 216, die als ein Datenaustauschkanal
zwischen dem Speicher 220 und der Steuereinheit 210 des
Siliziumspeichermediums dient. Ferner, um die Datenkomprimierungsfunktion
zu implementieren, umfasst die Steuereinheit 210 des Weiteren
ein Datenkomprimierungs-/Dekomprimierungsmodul 214. Um
den Datenzugriff zwischen dem System und dem Speicher 220 zu
beschleunigen, umfasst die Steuereinheit 210 darüber hinaus
einen ersten Systemdatenpuffer 213a und einen zweiten Systemdatenpuffer 213b zum
temporären
Speichern der Daten, die mit dem System ausgetauscht werden, und
einen ersten Speicherdatenpuffer 215a und einen zweiten
Speicherdatenpuffer 216b zum temporären Speichern der Daten, die
mit dem Speicher ausgetauscht werden. Alternativ dazu ist es auch
möglich,
dass nur der einzelne Systemdatenpuffer 213a und der Speicherdatenpuffer 215a als
der Puffer zum temporären Speichern
der Daten benutzt werden, und deren physische Implementierung von
Gesichtspunktender Bauart abhängt.
-
Zusammenfassend
werden in der herkömmlichen
Konfiguration der Steuereinheit des Siliziumspeichermediums und
der herkömmlichen
Datenaufzeichnungsstruktur, die Originaldaten direkt an einen vorgesehenen
Ort im Speicher, ohne komprimiert zu werden, gespeichert. Daraus
resultiert, dass die Speicherkapazität eines derartigen Typs von
Siliziumspeichermedium nur durch das Hinzufügen neuer Speicherhardware
verbessert werden kann und dass das Komprimierungsverfahren bei
der Steigerung der Speicherkapazität dieses Speicherkartentyps
nicht helfen kann. Des Weiteren verwendet das herkömmliche
Siliziumspeichermedium "Seite" als eine Einheit
zum Lesen oder Schreiben, so dass der Komprimierungsmechanismus
die Leistung des Datenprozesses nicht verbessern konnte, weil die
Einheit zu klein ist. Obwohl die Steuerinformation, die sich auf
den Translationsanzeiger bezieht, und der Fehlererfassungs-Korrekturcode
in dem reservierten redundanten Bereich auf jeder Seite gekennzeichnet
sind, bleibt zudem immer noch ein gewisser Speicherplatz verfügbar. Des
Weiteren wird dessen Translationstabelle durch Mapping der festgelegten
Länge der
Originaldaten zu der Speicherseite generiert. Mit anderen Worten
werden alle Operationen, die das Lesen, Schreiben, Aktualisieren
der Daten und das Aktualisieren der Translationstabelle einschließen, auf
der Basis der festgelegten Länge
der Originaldaten betrieben. Dieser Speicherstrukturtyp der festgelegten
Datenlänge
kann seine bestehende Translationstabelle jedoch nicht benutzen,
um die Lese-/Schreibtranslation
der Daten im Siliziumspeichermedium mit einem Komprimierungsmechanismus
auszuführen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Daher
ist die vorliegenden Erfindung dazu vorgesehen, ein Siliziumspeichermedium
mit einer größeren Zugriffseinheit,
beispielsweise einem Speicherblock, als das Datenspeicherformat
und mit einer Mapping-Betriebsart für einen Datenframe auszustatten.
Außerdem
existiert ein Translationstabellenpuffer, der durch die Steuereinheit
konfiguriert wird, um eine Translationstabelle für weitere Zugriffsvorgänge aufzeichnen.
-
Die
vorliegende Erfindung ist dazu vorgesehen, um ein Siliziumspeichermedium
und dessen Steuereinheit mit einer Anordnung, einem Steuerverfahren,
einem Datenaufzeichnungsformat und einer Mapping-Betriebsart hiervon
zu konfigurieren. Worin, wenn die Steuereinheit den Datenframe aktualisiert,
die Translationstabelle, die im Translationstabellenpuffer aufgezeichnet
ist, ebenfalls gleichzeitig aktualisiert wird und die Translationsbeziehung
in einer vorangehenden Beschreibungseinheit gekennzeichnet ist,
welche zu dem aktualisierten Datenframe führt.
-
Die
vorliegende Erfindung ist des Weiteren dazu vorgesehen, das Suchen
des Datentranslationscodes im Translationstabellenpuffer, gemäß des Lese-/Schreibzugriffsbefehls
zu beschleunigen, der vom System für eine entsprechende Speicherblockadresse
bereitgestellt wird, um den Datenframe rasch zu lesen und die Daten
zurück
zum System zu schicken oder die Daten zu aktualisieren. Außerdem wurde
der Steuereinheit ein Adressen-Mapping-Modul hinzugefügt.
-
Um
die Speicherkapazität
des Speichermediums zu erhöhen,
wurde der Steuereinheit des Siliziumspeichermediums des Weiteren
eine Datenkomprimierungs-/dekomprimierungseinheit hinzugefügt, und
die Daten werden vor dem Speichern komprimiert und dekomprimiert,
nachdem sie aus dem Speichermedium ausgelesen wurden. Deshalb kann
in der vorliegenden Erfindung erstens der Bereich, der von den Originaldaten
eingenommen wird, auf dem Wege der Datenkomprimierung verringert
werden. Bevor die Daten an dem vorgesehenen Ort in dem Speicher
aufgezeichnet werden, wird die "vorangehende
Deskriptionseinheit" vor den
Daten angefügt,
die von der Steuereinheit komprimiert wurden, und ein "späterer Datenfehler-Prüfungscode" hinter dessen Ende
angefügt,
um ein "Datenframe" zu bilden, der nahe
der Speicherkapazität
eines "Speicherblocks" liegt. Zweitens
sind der Translationsanzeiger und der Korrekturcode der Fehlererfassung
beide in der "vorangehenden
Deskriptionseinheit" des "Datenframes" gekennzeichnet,
der im "Speicherblock" gespeichert ist.
Deshalb ist der Speicherplatz jeder Seite, die durch die Information
eingenommen wird, weiter reduziert und der effektive Bereich an
Speicherkapazität
im Siliziumspeichermedium, welcher physisch von der gültigen Information
im System verwendet werden kann, kann dementsprechend verbessert
werden. Schließlich
ist die Translationstabelle, gemäß der Basis
des "Datenframes" etabliert, der dementsprechend
aus der Längenvariablen
der Originaldaten gebildet wird. Dann werden alle Vorgänge des
Lesens, Schreibens, der Datenaktualisierung und Translationstabellenaktualisierung
auf der Basis des "Datenframes" betrieben, welcher der
variablen Länge
der Originaldaten entspricht.
-
In
der vorliegenden Erfindung kann der Datenframe an jedem Ort des
Speichers gespeichert werden. Die Steuereinheit stellt die Translationsbeziehung
des Datenframes und die Originaldaten entsprechend der vorangehenden
Deskriptionseinheit wieder her, wenn sie initialisiert wird, und
beginnt mit dem Ausführen
der Suche. Die "Translationstabelle" wird von der Steuereinheit
generiert, wenn sie dazu initialisiert wurde, das Durchsuchen der
Datenframes zu beginnen, die in allen Speicherblöcken des Speichers gespeichert
sind. Nachdem die Translationstabelle generiert wurde, wird die
Translationstabelle kontinuierlich aktualisiert, wenn das System
schreibt oder Daten aktualisiert, so dass die Exaktheit der Translationsbeziehung
aufrechterhalten wird. Die "Translationstabelle" wurde durch eine
Vielzahl von "Mapping-Eingaben" erstellt und jede
Mapping-Eingabe zeichnet einen Zustand eines Satzes von Speicherblöcken im
Speicher auf.
-
Abhängig von
der Größe des eingebauten
Translationstabellenpuffers und der Anzahl der Speicherblöcke, welche
im adaptiven Speicher enthalten sind, kann die Steuereinheit entweder
eine vollständige
Translationstabelle zu einem Zeitpunkt erzeugen oder eine partielle
Translationstabelle erzeugen, die auf einem Intervall basiert, auf
das das System gegenwärtig
zugreift, oder zwei oder mehrere Sätze an partiellen Translationstabellen
erzeugen, indem sie diese in einige spezifische Bereiche unterteilt,
um die Effektivität
des Zugriffs auf den Puffer zu verbessern.
-
Der
Inhalt im Inneren der Mapping-Eingabe ist gemäß des entsprechenden Speicherblockzustandes oder
der Information gekennzeichnet, die durch den gespeicherten Datenframe
angezeigt wird.
-
Nach
der Initialisierung der Steuereinheit werden beide, der Blockzustand,
der in jedem Speicherblock des Speichers gekennzeichnet ist, und
die vorangehende Deskriptionseinheit des Datenframes zuerst gelesen und
dann wird die gelesene Information in der Mapping-Eingabe gespeichert,
worin sich die Mapping-Eingabe in der Translationstabelle befindet
und an den Speicherblock adressiert ist. Die Translationstabelle
kann von einem bidirektionalen Serienlink implementiert sein, um
der Steuereinheit zu ermöglichen,
die Systemadresse, die dem Datenframe entsprach, und die Position
des gespeicherten Speicherblocks in einer absteigenden oder aufsteigenden
Sequenz zu verknüpfen.
-
Nachdem
die Translationstabelle etabliert wurde, wird sich die Steuereinheit
den Zugriffsbefehl vom System holen. Nachdem das System einen Lesebefehl
herausgegeben hat, führt
die Steuereinheit unverzüglich
eine Suche in der Translationstabelle durch, um die Adresse des
Speicherblocks und den Datenframe zu erhalten, der dem Systemlesezugriff
entspricht, der aus der Translationstabelle bezogen wurde. Wenn
die entsprechende Adresse des Datenframes erhalten wurde, dann wird
der Datenframe in den Datenpuffer eingelesen und die Originaldaten
werden zum System zurück
geschickt, nachdem sie dekomprimiert wurden. Wenn die entsprechende
Adresse des Datenframes nicht erhalten wurde, dann wird eine Aufzeichnung
mit einem vorbestimmten Format direkt an das System zurückgeschickt.
-
Auf
der anderen Seite, nachdem das System eine Leseanweisung erteilt
hat, führt
die Steuereinheit unverzüglich
einen Suchvorgang in der Translationstabelle durch, um zu überprüfen und
zu bestimmen, ob die Adresse des Speicherblocks, die dem Systemlesezugriff
entspricht, und die Adresse des Datenframes aus der Translationstabelle
erhalten werden können
oder nicht. Wenn die entsprechende Adresse des Datenframes erhalten
wurde, dann wird der Datenframe in den Datenpuffer eingelesen und
dekomprimiert. Dann wird der Datenframe durch die aktuellen Daten,
die vom System übermittelt
wurden, aktualisiert und der Datenframe wird beschafft, der vom
Speicherblock nicht aufgezeichnet und aktualisiert wurde. Der Speicherblock
zum Aufzeichnen des nicht-aktualisierten Datenframes wird dann gelöscht. Während die
oben genannten Vorgänge ausgeführt werden,
wird die Translationstabelle synchron aktualisiert. Wenn die entsprechende
Adresse des Datenframes nicht erhalten wurde, dann werden die vom
System geschriebenen Daten zum direkten Generieren des Datenframes
benutzt und der neugebildete Datenframe erhalten, der vom nicht
verwendeten Speicherblock aufgezeichnet wurde. Während die oben genannten Vorgänge ausgeführt werden,
wird die Translationstabelle synchron aktualisiert.
-
Zusammengefasst
kann durch Integrieren der komprimierten Originaldaten und des dekomprimierten Datenframes,
der im Speicher in das Datenframe-basierte Siliziumspeichermedium
aufgezeichnet wird, und in Übereinstimmung
mit dem Translationsverfahren, das in der vorliegenden Erfindung
beschrieben wird, eine Translationstabelle generiert werden, wenn
das Siliziumspeichermedium initialisiert ist, und die Translationstabelle
wird aktualisiert, wenn darauf zugegriffen wird. Sogar die herkömmliche
Steuereinheit des Siliziumspeichermediums besitzt einen ähnlichen
Mechanismus, wobei die Originaldaten nach dem Stand der Technik
direkt aufgezeichnet und gespeichert werden und der Weg, die Situation
zu handhaben, nachdem die Daten komprimiert wurden, ist bisher in
dem Stand der Technik noch nicht offenbart. Deshalb trägt der permanente Hochgeschwindigkeits-Speicher
in der weitverbreiteten Anwendung des Siliziumspeichermediums immer
einen großen
Anteil an den Gesamtproduktionskosten. Im Falle dessen, dass das
Komprimierungs-/Dekomprimierungsverfahren in die vorliegende Erfindung
integriert und auf das Siliziumspeichermedium angewandt werden kann,
ist es möglich,
die Aufgabe zu erzielen, eine höhere
physische Speicherkapazität
bei geringerer Speichergröße bereitzustellen,
um die Produktionskosten weiter zu reduzieren und den Wert des Produkts
zu steigern.
-
Des
Weiteren kann der Vorgang der vorliegenden Erfindung mittels einer
Firmware der Steuereinheit implementiert werden. Um den Datenzugriff
in dem System zu beschleunigen, können einige Funktionen in das Adressen-Mapping-Modul
mit der Hardwareschaltungsanordnung eingebaut werden, so dass die
Steuereinheit rasch suchen und den Zustand der Zieladresse bestimmen
kann, auf die vom System-Mapping
an die Translationstabelle zum Ausführen weiterer Vorgänge zugegriffen
wurde.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
begleitenden Abbildungen sind enthalten, um ein weiteres Verständnis der
Erfindung zu verschaffen, und sind einbezogen in und stellen einen
Teil dieser Beschreibung dar. Die Abbildungen zeigen Ausführungsformen
der Erfindung und dienen zusammen mit der Beschreibung zur Erklärung der
Grundlagen der Erfindung.
-
1A ist
ein schematisches Diagramm eines herkömmlichen Siliziumspeichermediums
und dessen interne Konfiguration.
-
1B ist
ein schematisches Diagramm, das ein Aufzeichnungsformat eines Datenblocks
in einem Speicher zeigt, der aus einem Flash-Speicher des NAND-Typs
besteht.
-
2 ist
ein schematisches Diagramm eines herkömmlichen Siliziumspeichermediums
mit Datenkomprimierungsfunktion.
-
3 ist
ein schematisches Diagramm eines auf einem translatierten Datenframe
basierenden Siliziumspeichermediums und einer Steuereinheit davon,
gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
4A ist
ein schematisches Diagramm, welches ein Format eines Datenframes
und dessen vorangehende Deskriptionseinheit gemäß einer Ausführungsform
der Erfindung zeigt.
-
4B ist
ein schematisches Diagramm, welches gemäß einer Ausführungsform
der Erfindung eine Translationsbeziehung zeigt, nachdem das Siliziumspeichermedium
initialisiert wurde.
-
5 ist
ein Flussdiagramm, welches einen Prozess zum Erzeugen einer Translationstabelle
zeigt, nachdem das auf . dem translatierten Datenframe basierende
Speichermedium gemäß einer
Ausführungsform der
vorliegenden Erfindung initialisiert wurde.
-
6 ist
ein Flussdiagramm, das ein Verfahren zum Aktualisieren einer nicht
verwendeten Verknüpfungstabelle
einer Blockreihe zeigt, wenn der Speicherblock gemäß einer
Ausführungsform
der vorliegenden Erfindung nicht verwendet wird.
-
7 ist
ein Flussdiagramm, welches ein Verfahren zum Betreiben einer Verknüpfungstabelle
einer neuen "in
Benutzung"-Blockreihe
zeigt, wenn der Speicherblock gemäß einer Ausführungsform
der vorliegenden Erfindung in Benutzung ist.
-
8 ist
ein Flussdiagramm, das einen Prozess für das System zeigt, Daten gemäß einer
Ausführungsform
der vorliegenden Erfindung zu lesen.
-
9 ist
ein Flussdiagramm, welches einen Prozess für das System zeigt, Daten gemäß einer
Ausführungsform
der vorliegenden Erfindung zu Schreiben.
-
10 ist
ein Flussdiagramm, das einen Prozess für das System zeigt, Daten unter
einer spezifischen Bedingung gemäß einer
Ausführungsform
der vorliegenden Erfindung zu schreiben.
-
11 ist
ein Flussdiagramm, welches einen Prozess für das System zeigt, Daten unter
einer weiteren spezifischen Bedingung gemäß einer Ausführungsform
der vorliegenden Erfindung zu schreiben.
-
12 ist
ein Flussdiagramm, das einen Prozess für das System zeigt, Daten unter
einer noch weiteren spezifischen Bedingung gemäß einer Ausführungsform
der vorliegenden Erfindung zu schreiben.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Bezugnehmend
auf die 3 ist gemäß einer Ausführungsform
der vorliegenden Erfindung ein Translationstabellenpuffer 317 in
der Steuereinheit 310 zum Unterstützen des Siliziumspeichermediums
mit der oben genannten Komprimierungskonfiguration eingebaut. Worin
die Translationstabelle zum Aufzeichnen einer Adressentranslationsbeziehung
zwischen der festgelegten Datenlänge
(übermittelt
vom System) und der variablen Datenlänge (generiert durch den Komprimierungsmechanismus)
im Translationstabellenpuffer 317 (der Weg zum Erzeugen
der Translationstabelle ist nachstehend erklärt) für den Datenzugriff gespeichert
ist. Ferner ist ein Adressen-Mapping-Modul 318 in der Steuereinheit 310 hinzugefügt, um die
Datensuche zu beschleunigen. Das Adressen-Mapping-Modul 318 wird
als Basis des Zugriffsbefehls, das von dem System zum Beziehen einer
Speicherblockadresse des entsprechenden Speichers 220 bereitgestellt
wird, und zum Lesen des Datenframes verwendet, um den Aktualisierungsvorgang
auszuführen
oder die Daten zum System zurück zu
schicken.
-
Das
Siliziumspeichermedium 310 umfasst einen Speicher 320,
und der Speicher 320 besteht aus einer Vielzahl von Speicherblocks.
Worin jeder der Speicherblocks auf einem spezifischen Datenframeformat basiert.
Der Datentyp, der in jedem Datenframe eingeschlossen ist, ist von
variabler Datenlänge,
welche anhand der feststehende Datenlänge konvertiert wird, die vom
System übertragen
und von einem Datenkomprimierer 314a komprimiert wurde.
Um die komprimierten Daten zu verwalten, wird ein Satz an vorangehenden Deskriptionseinheiten
vor dem Anfang des Datenframes platziert und ein Fehlerprüfungscode
wird hinter das Ende des Datenframes platziert (mit Bezug auf die 4). Mit einem derartigen Design wird eine
Platzierung der Steuerinformation in jeder Seite nicht mehr benötigt, und
somit wird die Verwendung des unbenutzten Speicherplatzes verbessert.
Ferner werden eine Vielzahl an komprimierten Sektordaten zwischen
der vorangehenden Deskriptionseinheit und dem Fehlerprüfungscode
aufgezeichnet.
-
Worin
eine Startadresse der Originaldaten und eine den komprimierten Daten
entsprechende Datenlänge
in der "vorangehenden
Deskriptionseinheit" angegeben sind
und die vorangehende Deskriptionseinheit den Datenframe führt, wie
in der Tabelle 1 gezeigt ist: Tabelle
1
-
Es
sollte beachtet werden, dass das Hinzufügen des Algorithmusanzeigers
und des Parameteranzeigers in die vorangehende Deskriptionseinheit
nur erforderlich ist, wenn die Komprimierungs-/Dekomprimierungsfunktion
im Siliziumspeichermedium der vorliegenden Erfindung erforderlich
ist. Ferner ist das Format der vorangehenden Deskriptionseinheit
nicht notwendigerweise auf das in der Tabelle 1 gezeigte Format
beschränkt,
solange das Datenattribut und die Datenlänge, die von jedem Bit aufgezeichnet
wurden, die Originaldaten erfolgreich abbilden können, befinden sie sich innerhalb
des Schutzumfangs der vorliegenden Erfindung.
-
Die
oben genannte Translationstabelle wird durch das Lesen der vorangehenden
Deskriptionseinheit generiert und führt den Datenframe, und die
Translationstabelle besteht aus einer Vielzahl an Mapping-Eingaben
(mit Bezug auf die 4B). Worin die Translationstabelle
zum Bestimmen der Kapazität
und des Speicherortes der den Datenframes entsprechenden Originaldaten
verwendet wird, und als eine Adressentranslationsmode für die lineare
kontinuierliche Adresse im System und für die nichtlineare Segmentadresse
des Speichers auf der Seite des Siliziumspeichermediums verwendet
wird.
-
In
einer Ausführungsform
der vorliegenden Erfindung, bezüglich
der vorangehenden im Speicherblock gespeicherten Deskriptionseinheit,
die den Translationseinheiten entspricht, sind das konstituierte
Format und die Bedeutung in der folgenden Tabelle gezeigt.
-
-
-
Worin,
abhängig
von der Kapazität
des Translationstabellenpuffers 317, der in der Steuereinheit 310 eingebaut
ist, und der Anzahl der Speicherblöcke, die im adaptiven Speicher 320 enthalten
sind, kann die Steuereinheit 310 entweder eine vollständige Translationstabelle
zu einem Zeitpunkt generieren oder eine partielle Translationstabelle,
basierend auf dem Intervall, auf den das System gegenwärtig zugreift,
oder zwei oder mehrere Sätze
an partiellen Translationstabellen durch Unterteilung dessen in
einige spezifische Bereiche erzeugen.
-
Ein
spezifisches Siliziumspeichermedium ist nachfolgend detailliert
beschrieben, worin der Speicher nur die Basisdaten speichert, die
nach der Initialisierung des Systems geladen wurden. Ein herkömmliches FAT12-File-System
wird hierin zur Verdeutlichung beispielhaft erläutert, worin die Originaldaten,
die auf dem Siliziumspeichermedium gespeichert sind, mindestens
einen Master-Boot-Record, eine Partitionstabelle, einen Partitions-Boot-Sektor,
ein Hauptverzeichnis und eine Dateizuordnungstabelle umfasst. Beispielsweise
ist das Siliziumspeichermedium ein 16MB (MByte) Speicher, wobei
jede Seite 528B (Byte) beinhaltet und jeder Speicherblock 16KB (KByte)
groß ist,
der 32 Seiten entspricht. Durch die Verwendung eines systemlinearen kontinuierlichen
Adressierungsverfahrens nehmen die oben genannten Originaldaten
48 Adressensektoren 0~47 ein, welche einem Speicherplatz von 24KB
entsprechen. Deren Aufteilung ist in der Tabelle 3 gezeigt.
-
-
Nachdem
die oben genannten Informationen komprimiert worden sind, befinden
sich keine Informationen auf der Originaldatenadresse 1~26 und sämtliche
Inhalte dessen werden mit einem Ausgangswert 0xFF belegt, so dass
eine hohe Komprimierungsrate erreicht werden kann. Der Rest der
Informationen belegt nur 22 Sektoren, die 11KB der Originaldaten
entsprechen. Als Resultat dessen ist bekannt, dass ein Datenframe mit
einer Kapazität
unterhalb 16KB, leicht durch Komprimierung der oben genannten initialisierten
Originaldaten erhalten werden kann.
-
Währenddessen
wird nur ein Datenframe zum Speichern der Basisinformationen benötigt, die
nach dem Initialisieren des Systems geladen wurden. Worin die entsprechende
Originalstartadresse 0 und die Datenlänge 48 ist. Des Weiteren ist
der Zustand der vorangehenden Deskriptionseinheit des Datenframes
in der Tabelle 4 gezeigt.
-
-
Worin
AI und PI von dem adaptivsten Komprimierungsverfahren abhängen, das
von der Steuereinheit auf Basis der Originaldatencharakteristik
ausgewählt
wurde, und als 0xmm und 0xnn dargestellt wird.
-
Bezugnehmend
auf die 4B, wenn die Steuereinheit 310 die
vorangehende Deskriptionseinheit durchsucht, die in der oben erwähnten Tabelle
3 gezeigt ist, weil das Siliziumspeichermedium sich im Initialisierungszustand
befindet, wird der erste Speicherblock, dessen Adresse 0 ist, zum
Aufzeichnen des Datenframes verwendet und die Beziehung zwischen
den linearen kontinuierlichen Originaldaten und dem Datenframe ist
in der 4B gezeigt.
-
Die "systemlineare kontinuierliche
Adresse" zeigt,
nachdem das Siliziumspeichermedium auf einem oben genannten Wege
initialisiert wurde, dass nur 48 Sektoren (von LAB=0 bis LBA=47)
sinnvolle Informationen gespeichert haben, worin der "in Benutzung"-Block von einer
ausgefüllten
dunklen Farbe im Diagramm dargestellt ist. Die "speicherseitige nichtlineare Segmentadresse" in der
4B kennzeichnet
einen internen Teil des Speichers, an dem die komprimierten Daten
derart gespeichert werden, dass ein Datenblock als eine Einheit
zum Speichern des Datenframes verwendet wird. Des Weiteren kennzeichnet
die "Translationstabelle im
Inneren der Steuereinheit" aus
der
4B einen internen Teil der Steuereinheit, worin
die Translationstabelle zum Verknüpfen der systemlinearen kontinuierlichen
Adresse mit der speicherseitigen Segmentadresse generiert wird,
nachdem das Siliziumspeichermedium initialisiert wurde. Weil es
der erste "in Benutzung"-Speicherblock ist, wird eine Translationseinheit
in der Translationstabelle entsprechend generiert und die darin
aufgezeichneten Informationen werden in der Tabelle 5 dargestellt: Tabelle
5
-
Der
Schritt der Erzeugung der Translationstabelle ist nachfolgend detailliert
beschrieben.
-
Bezugnehmend
auf die 5 ist ein Flussdiagramm gezeigt,
das einen Prozess der Erzeugung der Translationstabelle darstellt,
nachdem die Steuereinheit initialisiert wurde (s502). Als Erstes
wird der Typ und die Kapazität
des adaptiven Speichers erfasst (s504), worin zuerst ein letzter
Block als "last_block" definiert, dann
der Translationstabellenpuffer geplant und initialisiert (s506)
und der Speicherblock BA=0 gelesen wird (s508). Danach wird die
vorangehende Deskriptionseinheit jedes Speicherblocks gelesen (s510)
und der gekennzeichnete Blockstatus, der gelesen wird, in den Translationseinheiten
aufgezeichnet (s512). Währenddessen
wird bestimmt, ob der Speicherblock in Benutzung ist oder nicht
(s501). Wenn bestimmt wurde, dass der Block in Benutzung ist, dann
werden die Startadresse (SA) und die Datenlänge (DL) der Translationseinheiten
gekennzeichnet (s514), der Satz der "in Benutzung"-Blöcke
in der Translationstabelle aktualisiert (s506) und die Verknüpfung der
unbenutzten Blockreihe in der Translationstabelle aktualisiert (s518).
Wenn bestimmt wurde, dass der Block nicht verwendet wird, dann wird
die Verknüpfung
der unbenutzten Blockreihe in der Translationstabelle direkt aktualisiert
(s518). Währenddessen,
wenn erkannt wurde, dass einige Blöcke fehlerhaft sind, kehrt
der Prozess wieder zum Bestimmungsschritt des Speicherblockzustandes
zurück
(s501). Wenn kein fehlerhafter Block vorhanden ist, wird dann festgelegt,
ob der letzte Block mit BA=last_block übereinstimmt oder nicht (s503).
Wenn ja, dann ist die Erzeugung der Translationstabelle vollständig abgeschlossen
(s522). Anderenfalls wird der nächste
Speicherblock BA=BA+1 durchsucht und die vorangehende Deskriptionseinheit
des Speicherblocks fortlaufend eingelesen (s510).
-
Weil
eine Verknüpfungstabelle
einer unbenutzten und einer benutzten Blockreihe beim Generieren
der Translationstabelle verwendet wird, wird in einer bevorzugten
Ausführungsform
der vorliegenden Erfindung eine Datenstruktur einer bidirektionalen
Serienverknüpfung
derart verwendet, dass die Steuereinheit die entsprechende Systemadresse
und die aufgezeichnete Startposition des Speicherblocks aus der
Startadresse in einer absteigenden oder einer aufsteigenden Reihenfolge
verknüpfen
kann.
-
Der
Prozess der Erzeugung dieser zwei Serienverknüpfungstabellen ist nachfolgend
detailliert erklärt.
-
Bezugnehmend
auf die beiden 4B und 6, die schematisch
den Prozess der Aktualisierung der unbenutzten Serienverknüpfungstabelle
zeigen, wenn der Speicherblock noch nicht verwendet wurde. Zwei
Kennzeichen, EMPTY und EMP_END, die in der 4B gezeigt
werden, werden als Referenzkennzeichen zum Generieren der Verknüpfungstabelle
der unbenutzten Blockreihen benutzt. Als Erstes werden zwei Kennzeichen
zu einem vorgegebenen Wert (z.B. FFF) definiert und die Blockadresse
(BA) des Speichers auf 0 gesetzt (s602). Wenn in dem Schritt s601
festgestellt wurde, dass kein unbenutzter Speicherblock (BS=FF) vorhanden
ist, dann wird bestimmt, ob der Anzeiger EMPTY einen vorgegebenen
Wert besitzt oder nicht (d.h. der Eintrag ist entweder FFF oder
nicht, wie in dem Schritt s603 gezeigt ist). Wenn er es ist, was
bedeutet, dass er ein erster unbenutzter Speicherblock ist, dann
werden in einem derartigen Fall zwei Kennzeichen an die Adresse
des gegenwärtigen
unbenutzten Blocks (EMPTY=BA und EMP_END=BA) gesetzt und PE(BA)=FFF
und NE(BA)=FFF werden in den Translationseinheiten, die dem Block
entsprechen, gleichzeitig aufgezeichnet (s604). Wenn festgestellt
wurde, dass es nicht der erste erkannte unbenutzte Block ist, werden die
Translationseinheiten, die den unbenutzten Blöcken entsprechen, ebenso aktualisiert,
das bedeutet, dass PE(BA) auf EMP_END und NE(BA) auf FFF gesetzt
wird, und das Kennzeichen EMP_END zeigt auf die Speicherblockadresse
(BA) (s606). Ungeachtet dessen, ob der Schritt s604 oder s606 ausgeführt wird,
wird bestimmt, ob der Block der letzte Block ist oder nicht (s605).
Wenn er nicht der letzte Block ist, dann werden die dem Schritt
s601 nachfolgenden Schritte, der oben genannt wurde, auf den nächsten Block
ausgeführt. Wenn
er der letzte Block ist, dann wird die Generierung der Serienverknüpfungstabelle
des unbenutzten Speicherblocks vervollständigt (s610).
-
Bezugnehmend
auf die beiden 4B und 7, welche
schematisch einen Prozess der Aktualisierung der "in Benutzung"-Serienverknüpfungstabelle
zeigen, wenn der Speicherblock in Benutzung ist. Zwei Kennzeichen
START und END, die in der 4B gezeigt
sind, werden als Referenzkennzeichen zum Generieren der Verknüpfungstabelle
der benutzten Blockreihe verwendet. Gleichermaßen werden zwei Kennzeichen
START und END zu einem vorbestimmten Wert (z.B. FFF) initialisiert
und die Blockadresse (BA) des Speichers wird auf 0 gesetzt (s702).
Eine Position in der Datenstruktur der Serienverknüpfung, an
der die Translationseinheiten eingefügt werden, wird als erstes
entsprechend der Startadressen-(SA)- und der Datenlängen-(DL)-Parameter
abgesucht, die durch die vorangehende Deskriptionseinheit des Datenframes
gekennzeichnet sind, und sowohl das NE-Kennzeichen der Translationseinheit
der vorherigen Eingabe als auch das PE-Kennzeichen der Translationseinheit
der nächsten
Eingabe werden aktualisiert. Des Weiteren wird die Blockadresse
(BA) der vorherigen Eingabetranslationstabelle als NE-Kennzeichen
der momentanen Eingabetranslationseinheit registriert und die Blockadresse
(BA) der nächsten
Eingabetranslationseinheit als das PE-Kennzeichen der momentanen
Eingabetranslationseinheit registriert. Dann wird festgelegt, ob
der benutzte Block BS=F0 gefunden wurde oder nicht (s701). Wenn
er gefunden wurde, dann wird bestimmt, ob er ein erster gefundener
benutzter Block ist oder nicht (s703). Wenn er der erste gefundene
benutzte Block ist, dann werden folgende Werte gesetzt: START=BA,
END=BA, PE(BA)=FFF und NE(BA)=FFF (s704). Wenn er nicht der erste
gefundene benutzte Block ist, dann wird nach einer Stelle zum Einfügen gesucht.
Worin ein repräsentatives
Kennzeichen BA_INS des Einfügepunktes
in die Translationseinheit gesetzt wird, auf welches vom Startkennzeichen
gezeigt wird (s710). Bevor es eingefügt wird, muss bestimmt werden,
ob der SA-Wert des nicht zum ersten Mal gefundenen Blocks geringer
ist, als der Wert, auf den vom Kennzeichen BA INS des Einfügepunktes
gezeigt wird, oder nicht. Wenn er das ist, dann wird festgelegt,
ob die vorherige Translationseinheit des BA_INS-Kennzeichenwertes der erste benutzte
Block ist oder nicht (s707). Wenn er der erste benutzte Block ist,
dann wird das START-Kennzeichen zuerst zur gefundenen Blockadresse
aktualisiert und dann die Translationseinheit in die Serienverknüpfung eingefügt (s706).
Wenn er nicht der erste benutzte Block ist, dann wird die Translationseinheit
direkt in die Serienverknüpfung
eingefügt
(s706). Wenn bestimmt wurde, dass der SA-Wert des gefundenen benutzten
Blocks größer oder
gleich dem Wert ist, auf den durch das Kennzeichen BA_INS des Einfügungspunktes
gezeigt wird (s705), dann wird bestimmt, ob die nächste Translationseinheit des
BA_INS der letzte benutzte Block ist oder nicht (s709). Wenn er
der letzte benutzte Block ist, dann wird das END-Kennzeichen aktualisiert
und der gefundene benutzte Block als der letzte benutzter Block
gekennzeichnet (s714). Dann wird die Translationseinheit, die dem
letzten benutzten Block entspricht, in die "in Benutzung"-Serienverknüpfung eingefügt (s708).
Wenn jedoch die nächste
Translationseinheit des BA_INS nicht der letzte benutzte Block ist,
dann wird der Bestimmungsvorgang auf dem nächsten BA_INS ausgeführt. Wenn der
oben genannte Suchprozess auf dem letzten Block ausgeführt wurde,
dann ist die Erzeugung der Verknüpfungstabelle
der "in Benutzung"-Blockreihe vollendet.
-
Es
sollte beachtet werden, dass in einer Ausführungsform der vorliegenden
Erfindung die Translationtabelle eine Datenstruktur einer bidirektionalen
Serienverknüpfung
verwendet, um die Translationsbeziehung zwischen dem benutzten Speicherblock
und der Systemadresse zu generieren. Um die eingebaute Puffergröße der Steuereinheit
zu reduzieren oder um die Leistung bei der Suche nach der entsprechenden Speicherblockadresse
zu verbessern, können
andere Datenstrukturen in der vorliegenden Erfindung angewandt werden.
-
Bezugnehmend
auf die 8, nachdem die Translationstabelle
generiert wurde (s902), ist die Steuereinheit bereit, den Zugriffsbefehl
zu erhalten, der vom System gegeben wird (s804). Wenn das System
den Lesebefehl erteilt hat, werden sowohl die LBA-Adresse als auch
die Datenlänge
der benötigten
Daten an das Siliziumspeichermedium übertragen (s806). Währenddessen
sucht die Steuereinheit des Siliziumspeichermediums in der Translationstabelle
nach einem entsprechenden Datenframe, beginnend bei der Speicherblockadresse,
auf die vom START-Kennzeichen
gezeigt wird (s808). Worin, wenn der Startpunkt und die Länge der Daten,
die gelesen werden sollen, außerhalb
des Startpunktes einer vordersten Speicherblockadresse (s801 und
s803) liegen, der Prozess einen Verbindungsknoten B betritt und
ein vorgegebener Wert wird zurückgesendet,
der angibt, dass sich die Daten, die gelesen werden sollen, gegenwärtig nicht
im Speicher befinden. Wenn jedoch ein Teil der Datenlänge über den
Startpunkt der vordersten Speicherblockadresse (s801 und s803) hinausgeht,
dann werden in diesem Fall ein Teil des vorgegebenen Wertes und
ein Teil der gelesenen Daten zum System zurück gesendet (s810, s805 und
s812). Des Weiteren wird, wenn sich die Startadresse der Daten,
die gelesen werden sollen, und der Datenblock innerhalb des Startpunktes
der vordersten Speicherblockadresse und des Bereiches der Datenframegröße befinden
(s805 und s807), der Datenframe zur Dekomprimierung in den Datenpuffer
eingelesen (s812). Nachdem der Datenframe dekomprimiert wurde, werden
die Originaldaten zum System zurück
gesendet (s816). Wenn sich die Startadresse der Daten, die gelesen werden
sollen, an dem Startpunkt der vordersten Speicherblockadresse befindet,
sich jedoch ein Teil der Daten, die gelesen werden sollen, außerhalb
des Bereiches der Dateframegröße befindet
(s805 und s807), dann wird in diesem Fall ein Teil der Datenlänge zum
System zurück
gesendet und die Startadresse wird gleichzeitig aktualisiert, um
alle verbleibenden Daten das nächste
Mal vollständig
zu übertragen.
Für andere
Bedingungen anstatt der einen oben genannten wird mit anderen Worten,
wenn die entsprechende Datenframeadresse nicht erhalten wurde, dann
ein vorgegebenes Datenformat zum System direkt zurück gesendet
(s818).
-
Worin,
wenn sich die Steuereinheit im Aktualisierungsprozess des Datenframes
befindet, der Translationstabellenpuffer gleichermaßen aktualisiert
und die Translationsbeziehung in der vorangehenden Deskriptionseinheit
aufgezeichnet wird. Das Adressen-Mapping-Modul zeichnet die Adresse
der Originaldaten auf und durchsucht den Translationstabellenpuffer
gemäß des gelesenen
Zugriffsbefehls, der vom System zum Erhalten des entsprechenden
Speicherblocks geliefert wurde, und liest schließlich den Datenframe aus dem
entsprechenden Speicherblock.
-
Bezugnehmend
auf die 9–12, worin
die 9 schematisch den Hauptablauf eines Schreibvorgangs
und die 10–12 schematisch
Teilabläufe
des Prozesses gemäß verschiedener
Beziehungen zwischen der Übertragung
von Startpunkt/-Bereich
und dem Datenframe zeigt.
-
Bezugnehmend
auf die 9, nachdem die Translationstabelle
generiert wurde (s902), ist die Steuereinheit nun bereit, den Zugriffsbefehl
zu erhalten, der vom System geliefert wurde (s904). Wenn das System den
Schreibbefehl erteilt (s906), dann durchsucht die Steuereinheit
unmittelbar die Translationstabelle, um zu prüfen, ob es die Speicherblockadresse,
die der Leseadresse des Systems entspricht, aus der Translationstabelle
erhalten kann oder nicht (s908). Danach werden die fünf Schritte
s901, s903, s905, s909 und s911 bezüglich der Bestimmung ausgeführt, ob
die Daten, die geschrieben werden sollen, aktualisierte Daten oder
neu geschriebene Daten darstellen. Deshalb gibt es folgende fünf unterschiedliche
Bedingungen: Die Bedingung A (s910), in der sich sowohl der Übertragungsstarpunkt
als auch der Datenbereich außerhalb
des Datenframes befinden; die Bedingung B (s912), in der sich der Übertragungsstarpunkt
außerhalb
des Datenframes befindet, aber der Datenbereich innerhalb des Datenframes
ist; die Bedingung C (s914), in der sich sowohl der Übertragungsstarpunkt
als auch der Datenbereich innerhalb des Datenframes befinden; die
Bedingung D (s916), in der sich der Übertragungsstarpunkt innerhalb
des Datenframes befindet, aber ein Teil des Datenbereiches außerhalb
des Datenframes ist; und die Bedingung E (s920), worin sowohl der Übertragungsstarpunkt
als auch der Datenbereich außerhalb
des Datenframes und ferner hinter dem letzten Datenframe befinden.
Diese fünf Bedingungen
sind nachfolgend detailliert beschrieben.
-
Es
sollte beachtet werden, dass der oben genannte Prozess durch die
Firmware-Implementierung
der Steuereinheit erreicht werden kann. Zum Beschleunigen des Datenzugriffs
im System ist es des Weiteren möglich,
die Hardwareschaltungsanordnung in das Adressen-Mapping-Modul zu
integrieren, so dass die Steuereinheit schnell suchen und die Beziehung
zwischen der Objektadresse des Systemzugriffs und der Translationstabelle
für weitere
Vorgänge
bestimmen kann.
-
Fünf verschiedene
Bedingungen A, B, C, D und E, wie in den 10–12 gezeigt
ist, sind nachfolgend erklärt:
-
Bedingung A:
-
Bezugnehmend
auf die 10, ist in der oben genannten
Bedingung A aus dem Resultat der Durchsuchung der Translationstabelle
bekannt, dass sich sowohl der Startpunkt der Objektadresse des Systemschreibens
als auch der Bereich der Übertragungsdatenlänge außerhalb
des existierenden Datenframes befinden und dass die Startadresse
gleich der Datenlänge
ist, welche durch den Datenframe BA gekennzeichnet ist. Deshalb
wird ein Wert EMPTY direkt aus der Translationstabelle des unbenutzten
Speicherblocks erhalten und der neue Datenframe gespeichert und
aufgezeichnet. Wenn BA exakt der Startadresse START der "in Benutzung"-Translationstabelle entspricht, dann
wird der neu hinzugefügte
Datenframe NEW an das vorderste Ende der "in Benutzung"-Translationstabelle eingefügt. Anderenfalls
wird der neu hinzugefügte
Datenframe NEW vor der "in
Benutzung"-Translationstabelle
BA und hinter PE (BA) eingefügt
und alle zugehörigen
Kennzeichen werden aktualisiert.
-
Bedingung B:
-
Bezugnehmend
auf die 10 befindet sich in der oben
genannten Bedingung B der Startpunkt der Objektadresse des Systemschreibens
außerhalb
des existierenden Datenframes und ein Teil des Bereichs der Übertragungsdatenlänge befindet
sich innerhalb des existierenden Datenframes. Währenddessen ist der Prozess
zum Verarbeiten des vorderen Sektion, der nicht innerhalb des existierenden
Datenframes liegt, der selbe Prozess, wie derjenige, der in der
Bedingung A verwendet wird, wohingegen die hintere Sektion weiter
durch den Hauptablauf verarbeitet wird.
-
Bedingung C:
-
Bezugnehmend
auf die 11 ist in oben genannter Bedingung
C aus dem Ergebnis des Durchsuchens der Translationstabelle bekannt,
dass sich sowohl der Startpunkt der Objektadresse des Systemschreibens
als auch der Bereich der Übertragungsdatenlänge innerhalb
des existierenden Datenframes befinden. Deshalb wird ein entsprechender
Speicherblock BA direkt von der Translationstabelle des benutzten
Speicherblocks erhalten und die Daten gelesen und dekomprimiert.
Nachdem die Originaldaten mit dem XFR_Length, das vom System geliefert
wird, aktualisiert und die Daten rekomprimiert wurden, wird ein
neuer Datenframe generiert. Dann wird ein Wert von EMPTY aus der
Translationstabelle des unbenutzten Speicherblocks erhalten und
der aktualisierte Datenframe gespeichert und in dem Speicherblock
EMPTY aufgezeichnet. Wenn BA exakt der Startadresse START der "in Benutzung"-Translationstabelle
entspricht, dann wird der neu aktualisierte Datenframe NEW in das
vorderste Ende der "in
Benutzung"-Translationstabelle
eingefügt.
Anderenfalls wird der neu aktualisierte Datenframe NEW hinter der "in Benutzung"-Translationstabelle
BA und PE (BA) eingefügt
und alle zugehörigen
Kennzeichen aktualisiert. Der BA Speicherblock wird zuerst gelöscht und
dann hinter dem Ende der Translationstabelle des unbenutzten Speicherblocks
eingefügt.
-
Bedingung D:
-
Bezugnehmend
auf die 11 ist in der oben genannten
Bedingung D aus dem Ergebnis des Durchsuchens der Translationstabelle
bekannt, dass sich der Startpunkt der Objektadresse des Systemschreibens innerhalb
des existierenden Datenframes befindet, sich aber der Translationsbereich
außerhalb
der Originaldatenlänge
des entsprechenden Datenframes befindet. Währenddessen ist der Prozess
zum Verarbeiten der vorderen Sektion innerhalb des existierenden
Datenframes der gleiche, wie derjenige, der in der Bedingung C verwendet
wird, und die hintere Sektion außerhalb des existierenden Datenframes
wird ferner durch den Hauptablauf verarbeitet, nachdem die Übertragungsstartadresse
START_LBA und die Datenübertragungslänge XFR_Length
abgestimmt wurden.
-
Bedingung E:
-
Bezugnehmend
auf die 12 ist in der oben genannten
Bedingung E aus dem Ergebnis des Durchsuchens der Translationstabelle
bekannt, dass sich sowohl der Startpunkt der Objektadresse des Systemschreibens
als auch der Bereich der Datenübertragungslänge außerhalb
des existierenden Datenframes befinden, und dass die Startadresse über die
Datenlänge
des letzten Datenframes BA (d.h. PE(BA)=FFF) hinausgeht. Deshalb
wird ein Wert EMPTY direkt aus der Translationstabelle des unbenutzten
Speicherblocks erhalten und die Originaldaten, die vom System bereitgestellt
werden, werden zum Generieren des Datenframes empfangen, welcher
dann in dem neu hinzugefügten
Datenframe NEW gespeichert und aufgezeichnet wird. Dann wird der
neu hinzugefügte
Datenframe NEW hinter dem Ende der Translationstabelle des benutzten Speicherblocks
eingefügt
und alle zugehörigen
Kennzeichen werden aktualisiert.
-
Obwohl
die Erfindung unter Bezugnahme auf eine bestimmte Ausführungsform
davon beschrieben wurde, wird es für einen Fachmann offensichtlich
sein, dass Modifikationen der beschriebenen Ausführungsform gemacht werden können, ohne
vom Wesen der Erfindung abzuweichen. Dementsprechend wird der Schutzumfang
der Erfindung durch die beigefügten
Ansprüche
und nicht durch die obige detaillierte Beschreibung definiert.