-
Technisches Gebiet
-
Diese Erfindung bezieht sich auf Speichereinheit-Zugriffssysteme zum Schreiben von Daten in eine Speichereinheit oder Lesen von Daten aus dieser, und insbesondere bezieht sie sich auf Speicherzugriffs-Zugriffssysteme, die Funktionen zur Datenkomprimierung/-dekomprimierung bereitstellen.
-
Stand der Technik
-
Um Daten effizienter in einer Speichereinheit zu speichern, komprimierten (kodierten) Systeme früher Daten beim Schreiben und dekomprimierten (dekodierten) Daten beim Lesen.
-
Beispielsweise offenbaren die Patentliteratur 1 und 2 eine Halbleiter-Speichereinheit, die so ausgelegt ist, dass sie Daten unter Komprimierung schreibt und Daten unter Dekomprimierung liest, durch Bilden von Funktionen zur Datenkomprimierung/-dekomprimierung.
-
In der Patentliteratur 3 wird eine Dateikomprimierungs-Verarbeitungseinheit offenbart, die eine Hochgeschwindigkeitswiedergabe von Dateien ohne Durchführung einer Komprimierung der Dateien ermöglicht, und die eine effiziente Dateinutzung durch Auswählen eines geeigneten Komprimierungsverfahrens auf der Grundlage des Dateityps und der Zugriffshäufigkeit ermöglicht.
-
In der Patentliteratur 4 wird eine Dateikomprimierungs-Verarbeitungseinheit offenbart, die ermöglicht, dass ein Leistungsabfall verhindert wird, indem der Zeitaufwand für den Vorgang des Öffnens von Dateien durch Nicht-Komprimieren von Dateien mit hoher Zugriffshäufigkeit verringert wird, und die das Verwalten von Dateien mit einer Speicherkapazität über der tatsächlichen Kapazität durch Komprimieren von Dateien mit niedriger Zugriffshäufigkeit ermöglicht.
-
Im Hinblick auf die Speicherkapazität ist es zu bevorzugen, dass alle Daten unter Komprimierung in die Speichereinheit geschrieben und alle Daten unter Dekomprimierung aus dieser gelesen werden, in Anbetracht der Verarbeitungsleistung werden Daten für gewöhnlich jedoch wie sie sind ohne Komprimierung gespeichert (in diese geschrieben), da viel Kapazität zur Verfügung steht und die Nutzungshäufigkeit hoch ist. Demgemäß wurde das Schreiben von Daten unter Komprimierung und das Lesen von Daten unter Dekomprimierung nur durchgeführt, um die Nutzung der Speicherkapazität zu erleichtern und nicht, um die Schreib- und Lesegeschwindigkeit zu erhöhen.
-
In diesem Kontext gibt es bereits andere veröffentlichte Dokumente: Das Dokument
US 5 584 008 A beschreibt ein externes Speichersystem, das an ein Host-System angeschlossen ist und eine Mehrzahl von Speichervorrichtungen aufweist. Eine Steuerungseinheit sorgt für eine Kontrolle der beschriebenen Mehrzahl von Speichervorrichtungen, wobei die Steuereinheit den Speicherplatz der Speichereinheiten durch eine Aufteilung der Speicherplatzes in einen ersten Speicherpool, der direkt durch das-System zu greifbar ist und einen nicht direkt durch das Host-System zu greifbaren Speicher-Pool aufteilt.
-
Außerdem ist in dem Dokument
US 6 564 305 B1 eine Vorrichtung beschrieben, die eine Speicherkompression und eine Isolierung von Anwendungen gegenüber dem komprimierten Speicher aufweist. Außerdem ist die Vorrichtung in der Lage, Informationen von dem komprimierten Speicherbereich in einen unkomprimierten Speicherbereich zu übertragen.
-
Liste der Entgegenhaltungen
-
Patentliteratur
-
- Patentliteratur 1: Japanische offengelegte Veröffentlichung JP H05- 204 747 A
- Patentliteratur 2: Japanische offengelegte Veröffentlichung JP 2007 - 94 639 A
- Patentliteratur 3: Japanische offengelegte Veröffentlichung JP 2002 - 49 512 A
- Patentliteratur 4: Japanische offengelegte Veröffentlichung JP 2000 - 29 756 A
-
Kurzfassung der Erfindung
-
Technische Probleme
-
Der Zweck dieser Erfindung besteht in der Umsetzung eines Speichereinheit-Zugriffssystems, das nicht nur die effiziente Nutzung von Speicherkapazität der Speichereinheit, sondern auch das Erhöhen der Schreib- und Lesegeschwindigkeit ermöglicht. Innerhalb des Zwecks dieser Erfindung fällt das Bereitstellen eines solchen Speichereinheit-Zugriffssystems.
-
Problemlösung
-
Das Speichereinheit-Zugriffssystem der ersten Ausführungsform, die von dieser Erfindung bereitgestellt wird, ist so strukturiert, dass es Folgendes aufweist. Insbesondere weist es einen Adresssuchabschnitt zum Speichern einer Adresse für eine Vielzahl von häufig genutzten Daten und eines der Adresse zugeordneten Datenindexes, zum Erfassen der Adresse zum Lesen oder Schreiben von Daten und zum Durchsuchen von gespeicherten Adressen mit der erfassten Adresse; einen Speicherabschnitt für häufig genutzte Daten zum Speichern eines Tag, der mit der Vielzahl von häufig genutzten Daten und dem Datenindex assoziiert ist, zum Erfassen des Datenindexes, wenn eine vom Adresssuchabschnitt erfasste Adresse einen Treffer bezüglich einer gespeicherten Adresse erzielt hat, und zum Identifizieren von häufig genutzten Daten, die dem mit dem erfassten Datenindex assoziierten Tag entsprechen; eine Datenvergleichseinheit zum Erfassen der häufig verwendeten Daten aus dem Speicherabschnitt für häufig genutzte Daten, zum Vergleichen der Daten mit den Schreibdaten und zum Identifizieren von häufig genutzten Daten, die einen Treffer bezüglich der Schreibdaten erzielt haben; einen Komprimierungs-/Dekomprimierungsabschnitt zum Erfassen und Komprimieren der Schreibdaten und der häufig genutzten Daten aus der Datenvergleichseinheit und zum Erfassen und Dekomprimieren der Lesedaten aus der Speichereinheit; eine Schreibdaten-Auswahleinheit zum Erfassen der Schreibdaten und der häufig genutzten Daten, die vom Komprimierungs-Dekomprimierungsabschnitt komprimiert wurden, zum Empfangen einer Anweisung von der Datenvergleichseinheit und zum Auswählen der komprimierten Schreibdaten oder der häufig genutzten Daten; und eine Lesedaten-Auswahleinheit zum Erfassen der identifizierten Lesedaten innerhalb des häufig genutzten Daten aus dem Speicherabschnitt für häufig genutzte Daten, wenn die Adresse der Lesedaten einen Treffer bezüglich der Speicheradresse des Adresssuchabschnitts erzielt hat, zum Erfassen der Lesedaten, die aus der Speichereinheit gelesen und durch den Komprimierungs-/ Dekomprimierungsabschnitts dekomprimiert wurden, wenn die Daten keinen Treffer erzielen, zum Auswählen der identifizierten Lesedaten oder der dekomprimierten Lesedaten unter einer Anweisung aus dem Adresssuchabschnitt auf.
-
Wenn der Speicherabschnitt für häufig genutzte Daten von der Datenvergleichseinheit angewiesen wurde, dass die Schreibdaten einen Treffer bezüglich der häufig genutzten Daten erzielt haben, benachrichtigt der Speicherabschnitt für häufig genutzte Daten vorzugsweise den Adresssuchabschnitt über den Tag für die häufig genutzten Daten, für die ein Treffer erzielt wurde, und weist ein Überschreiben der gespeicherten Adresse mit dem ältesten Tag im Adresssuchabschnitt auf die erfasste Adresse an; und wenn der Speicherabschnitt für häufig genutzte Daten von der Datenvergleichseinheit angewiesen wurde, dass die erfasste Adresse einen Treffer bezüglich der gespeicherten Adresse im Adresssuchabschnitt erzielt hat, aber die Schreibdaten keinen Treffer bezüglich der vom entsprechenden Tag identifizierten häufig genutzten Daten erzielt hat, weist der Speicherabschnitt für häufig genutzte Daten den Adresssuchabschnitt an, eine Invalidierung der gespeicherten Adresse durchzuführen, für die ein Treffer erzielt wurde.
-
Vorzugsweise weist der Adresssuchabschnitt eine Tabelle auf, die für jeden Eintrag ein Adressfeld zum Speichern der Adresse, ein Markierungsfeld zum Speichern einer Markierung, die anzeigt, wie oft ein Schreib- oder Lesevorgang für die Adresse durchgeführt wurde, und ein Datenindexfeld zum Speichern eines Datenindexes für die Adresse des Adressfelds beinhaltet, und besteht die Tabelle aus einer Vielzahl von Einträgen.
-
Wenn der Speicherabschnitt für häufig genutzte Daten den Adresssuchabschnitt angewiesen hat, eine Aufhebung der gespeicherten Adresse durchzuführen, für die ein Treffer erzielt wurde, wird die Markierung im Markierungsfeld des Eintrags für die gespeicherte Adresse, für die ein Treffer erzielt wurde, vorzugsweise auf einen vorgeschriebenen Wert gesetzt, der die Invalidierung ausdrückt.
-
Vorzugsweise weist der Speicherabschnitt für häufig genutzte Daten eine Tabelle auf, die für jeden Eintrag ein Tag-Feld zum Speichern des Tags und ein Feld für häufig genutzte Daten zum Speichern von häufig genutzten Daten beinhaltet, die dem Tag des Tag-Felds entsprechen, und besteht die Tabelle aus einer Vielzahl von Einträgen.
-
Vorzugsweise speichert das Feld für häufig genutzte Daten Daten für eine Grunddatenlänge mit häufig genutzten Daten, die in der Speichereinheit verzeichnet wird.
-
Vorzugsweise weist die Datenvergleichseinheit eine Vielzahl von Vergleichseinheiten zum Vergleichen aller entsprechenden häufig genutzten Daten mit den Schreibdaten auf.
-
Vorzugsweise weist der Komprimierungs-/Dekomprimierungsabschnitt ein Komprimierungsmodul, das zumindest einen Komprimierungsschaltkreis zum Komprimieren der Schreibdaten und der Lesedaten bereitstellt, ein Dekomprimierungsmodul, das zumindest einen Dekomprimierungsschaltkreis zum Dekomprimieren der Lesedaten aus der Speichereinheit bereitstellt, und einen Komprimierungs-/Dekomprimierungs-Wörterbuchabschnitt auf, der zumindest eine Datenkodierungs-Unterstützungstabelle zum Unterstützen einer Kodierung bereitstellt, um die vom Komprimierungsschaltkreis komprimierten Daten mit jedem Dekomprimierungsschaltkreis zu dekomprimieren.
-
Vorzugsweise wird die Datenkodierungs-Unterstützungstabelle zum Unterstützen einer Entsprechung zwischen dem Dekomprimierungsschaltkreis und dem Komprimierungsschaltkreis bereitgestellt und sind die Daten der Datenkodierungs-Unterstützungstabelle häufig genutzte Daten, die im Speicherabschnitt für häufig genutzte Daten gespeichert sind.
-
Vorzugsweise weist die Schreibdaten-Auswahleinheit eine Auswahleinheit zum Auswählen der komprimierten Schreibdaten oder der häufig genutzten Daten in Reaktion auf eine Anweisung von der Datenvergleichseinheit auf.
-
Vorzugsweise weist die Lesedaten-Auswahleinheit eine Auswahleinheit zum Auswählen der identifizierten Lesedaten oder der dekomprimierten Lesedaten in Reaktion auf eine Anweisung von der Datenvergleichseinheit auf.
-
Vorteilhafte Auswirkungen der Erfindung
-
Durch Verwendung dieser Erfindung wird ein Speichereinheit-Zugriffssystem umgesetzt, das nicht nur die effiziente Nutzung von Speicherkapazität der Speichereinheit, sondern auch das Erhöhen der Schreib- und Lesegeschwindigkeit ermöglicht. Insbesondere besteht die Möglichkeit, die Schreib- und Lesegeschwindigkeit für häufig genutzte Daten innerhalb der Speichereinheit zu erhöhen, sogar wenn Daten unter Komprimierung geschrieben und Daten unter Dekomprimierung gelesen werden.
-
Figurenliste
-
- 1 ist eine Zeichnung, die ein Strukturbeispiel des Speichereinheit-Zugriffssystems gemäß einer ersten Ausführungsform dieser Erfindung zeigt.
- 2 ist eine Zeichnung, die ein Strukturbeispiel eines Adresssuchabschnitts im Speichereinheit-Zugriffssystem zeigt.
- 3 ist eine Zeichnung, die ein Strukturbeispiel eines Speicherabschnitts für häufig genutzte Daten im Speichereinheit-Zugriffssystem zeigt.
- 4 ist eine Zeichnung, die ein Strukturbeispiel einer Datenvergleichseinheit im Speichereinheit-Zugriffssystem zeigt.
- 5 ist eine Zeichnung, die ein Strukturbeispiel eines Komprimierungs-/ Dekomprimierungsabschnitts im Speichereinheit-Zugriffssystem zeigt.
- 6 ist eine Zeichnung, die ein Strukturbeispiel einer Schreibdaten-Auswahleinheit im Speichereinheit-Zugriffssystem zeigt.
- 7 ist eine Zeichnung, die ein Strukturbeispiel einer Lesedaten-Auswahleinheit im Speichereinheit-Zugriffssystem zeigt.
- 8 ist eine Zeichnung, die den Ablauf einer Schreibverarbeitung im Speichereinheit-Zugriffssystem zeigt.
- 9 ist eine Zeichnung, die den Ablauf einer Leseverarbeitung im Speichereinheit-Zugriffssystem zeigt.
-
Beschreibung der Ausführungsform
-
Im folgenden Abschnitt wird ein optimaler Modus zur Umsetzung dieser Erfindung auf der Grundlage der Zeichnungen ausführlich beschrieben. Die vorliegende Erfindung kann in vielen unterschiedlichen Modi ausgeführt werden. Darüber hinaus werden in der gesamten Beschreibung der Ausführungsform die gleichen Symbole für die gleichen Strukturabschnitte und Strukturelemente verwendet.
-
1 ist eine Zeichnung, die ein Strukturbeispiel des Speichereinheit-Zugriffssystems gemäß einer ersten Ausführungsform dieser Erfindung zeigt. Ein Zugriffssystem 100 ist zwischen einem Bus 110 auf dem Chip, der z. B. ein PLB (Processor Local Bus, Lokaler Prozessorbus) ist, und einer Schreib-Lese-Steuereinheit 120 für die Speichereinheit angeordnet. Die Speichereinheit kann von einem beliebigen Typ sein. Beispielsweise kann sie eine Speichereinheit wie ein Cachespeicher oder ein Hauptspeicher sein, die innerhalb des Chips angeordnet ist, oder sie kann eine Speichereinheit wie ein HDD (Hard Disk Drive, Festplattenlaufwerk) oder SSD (Solid State Drive, Halbleiterlaufwerk) sein, die außerhalb des Chips angeordnet ist. In 1 sind z.B. eine Speichereinheit 130 und ein HDD/SDD 140 gezeigt. Jede Adresse und sämtliche Schreibdaten werden vom Bus 110 auf dem Chip über eine Adressleitung und eine Datenleitung an das Zugriffssystem 100 bereitgestellt, und Lesedaten werden vom Zugriffssystem 100 über eine Datenleitung an einen Bus 110 auf dem Chip bereitgestellt.
-
Das Zugriffssystem 100 beinhaltet: einen Adresssuchabschnitt 10; einen Speicherabschnitt 20 für häufig genutzte Daten; eine Datenvergleichseinheit 30; einen Komprimierungs-/Dekomprimierungsabschnitt 40, der ein Komprimierungsmodul 50, ein Komprimierungs-/Dekomprimierungs-Wörterbuch 60 und ein Komprimierungsmodul 70 bereitstellt; eine Schreibdaten-Auswahleinheit 80; und eine Lesedaten-Auswahleinheit 90.
-
Eine Adresse wird in den Adresssuchabschnitt 10 eingegeben. Der Adresssuchabschnitt 10 verwaltet eine Adresse für jede einer Vielzahl von häufig genutzten Daten innerhalb einer Speichereinheit 130 oder HDD/SSD 140 sowie einen jeder Adresse zugeordneten Datenindex. Die Vielzahl von häufig genutzten Daten, die vorab festgelegt werden kann, ist z.B. A110 oder A111 sowie eine 32-Bit-Folge von 0 oder 1 oder ist ein Datenmuster, das durch Analysieren des Ausführungscodes beim Kompilieren eines Programms erhalten wird; und eine Adresse für häufig genutzte Daten wird erstellt und im Adresssuchabschnitt 10 gespeichert.
-
2 zeigt ein Strukturbeispiel für einen Adresssuchabschnitt 10. Der Adresssuchabschnitt 10 weist eine Tabelle 11 auf, die aus einer Vielzahl von Einträgen besteht. Die Eintragsmenge kann beliebig festgelegt werden, es wird jedoch bevorzugt, sie entsprechend der Adressmenge für häufig verwendete Daten festzulegen, die im Adresssuchabschnitt 10 gespeichert ist. Innerhalb jedes Eintrags in der Tabelle 11 wird ein Adressfeld 12 zum Speichern der Adresse, ein Datenindexfeld 14 zum Speichern eines Datenindexes für die Adresse des Adressfelds 12 und ein Markierungsfeld 13 zum Speichern einer Markierung erstellt, die anzeigt, wie häufig ein Schreib- oder Lesevorgang für die Adresse des Adressfelds 12 durchgeführt wurde. Tabelle 11 kann nach CAM (Content Addressable Memory, Inhaltsadressierbarer Speicher) oder RAM (Random Access Memory, Speicher mit wahlfreiem Zugriff) strukturiert sein. Das Adressfeld 12 ist nach CAM strukturiert, um die Adresssuche zu beschleunigen, und das Markierungsfeld 13 und das Datenindexfeld 14, die dem Adressfeld 12 entsprechen, sind nach RAM strukturiert.
-
Für jeden Eintrag wird innerhalb des Adressfelds 12 eine Adresse für häufig genutzte Daten im gleichen Format wie die Voll-Bit-Adresse erstellt und gespeichert, die z.B. von der Adresszeile vom Bus 110 auf dem Chip bereitgestellt wird. Das Markierungsfeld 13 ist ein Zähler-Bit zum Speichern der Anzahl der Häufigkeit, mit der ein Schreib- oder Lesevorgang für die Adresse des Adressfelds 12 durchgeführt wurde. Die Markierung des Markierungsfelds 13 ermöglicht das Speichern des Verlaufs für die Adresse des Adressfelds 12, und sie erfasst die Zugriffshäufigkeit für häufig genutzte Daten, wie von der Adresse festgelegt, zum Zeitpunkt der tatsächlichen Nutzung der Speichereinheit automatisch.
-
Wenn der Adresssuchabschnitt 10 eine Adresse erfasst, verwendet er diese erfasste Adresse, um nach den Adressen des Adressfelds 12 in der Tabelle 11 zu suchen. Wenn die erfasste Adresse einen Treffer bezüglich einer Adresse im Adressfeld 12 erzielt (Adressentreffer), gibt der Adresssuchabschnitt 10 das Tag an den Speicherabschnitt 20 für häufig genutzte Daten aus, das mit dem im Datenindexfeld 14 für die Adresse, für die ein Treffer erzielt wurde, gespeicherten Datenindex assoziiert ist. Die erfasste Adresse für Schreibdaten wird an die Schreib-Lese-Steuereinheit 120 ausgegeben, unabhängig davon, ob sie einen Treffer bezüglich einer Adresse im Adressfeld 12 erzielt. Wenn eine erfasste Adresse für Lesedaten keinen Treffer bezüglich einer Adresse im Adressfeld 12 erzielt (kein Lesetreffer), wird sie an die Schreib-Lese-Steuereinheit 120 ausgegeben, aber wenn sie einen Treffer erzielt (Lesetreffer), wird sie nicht an die Schreib-Lese-Steuereinheit 120 ausgegeben. Dies ist darauf zurückzuführen, dass, wenn eine erfasste Adresse für Lesedaten einen Treffer bezüglich einer Adresse im Adressfeld 12 erzielt (Lesetreffer), es keine Adresse zum Erfassen von Lesedaten aus der Speichereinheit ist, und aus diesem Grund werden die im Speicherabschnitt 20 für häufig genutzte Daten gespeicherten häufig genutzten Daten als die Lesedaten bereitgestellt. Zu diesem Zeitpunkt weist der Adresssuchabschnitt 10 die Auswahl von Lesedaten in der Lesedaten-Auswahleinheit 90 an, die im Speicherabschnitt 20 für häufig genutzte Daten gespeicherten häufig genutzten Daten als die Lesedaten auszuwählen.
-
Wenn die von der Datenvergleichseinheit 30 eingegebenen Schreibdaten einen Treffer bezüglich im Speicherabschnitt 20 für häufig genutzte Daten gespeicherter häufig genutzter Daten erzielen (Datentreffer), wird der Adresssuchabschnitt 10 über ein Tag für die häufig genutzten Daten, für die ein Treffer erzielt wurde, aus dem Datenspeicher 20 für häufig genutzte Daten benachrichtigt, empfängt er eine Anweisung zum Überschreiben der Speicheradresse für das älteste Tag innerhalb des Adressfelds 12 mit der erfassten Adresse für diese Schreibdaten und führt er das Überschreiben durch. Die Speicheradresse für das älteste Tag innerhalb des Adressfelds 12 wird durch Prüfen der Markierungen im Markierungsfeld 13 bestimmt. Durch dieses Überschreiben speichert der Eintrag, der die Speicheradresse für das älteste Tag enthält, die erfasste Adresse im Adressfeld 12, speichert eine neue Markierung im Markierungsfeld 13 und speichert das benachrichtigte Tag im Datenindexfeld 14. Wenn die erfasste Adresse für die eingegebenen Schreibdaten einen Treffer bezüglich einer Speicheradresse im Adresssuchabschnitt 10 erzielt und die Schreibdaten keinen Treffer bezüglich der vom Speicherabschnitt 20 für häufig genutzte Daten festgelegten häufig genutzten Daten erzielt, wird der Adresssuchabschnitt 10 vom Speicherabschnitt 20 für häufig genutzte Daten darüber hinaus angewiesen, eine Invalidierung der Speicheradresse durchzuführen, für die ein Treffer erzielt wurde (Invalidieren), und die Speicheradresse, für die ein Treffer erzielt wurde, wird invalidiert. Eine Invalidierung wird durch Festlegen eines vorgeschriebenen Werts, z.B. 0, für die Markierung des Markierungsfelds 13 durchgeführt.
-
Der Speicherabschnitt 20 für häufig genutzte Daten speichert ein Tag, das eine Beziehung zwischen der Vielzahl von Daten innerhalb der Speichereinheit, auf die es zuzugreifen gilt, und dem Datenindex innerhalb des Adresssuchabschnitts 10 herstellt. Darüber hinaus stellt der Speicherabschnitt 20 für häufig genutzte Daten alle gespeicherten häufig genutzten Daten an eine Datenvergleichseinheit 30 bereit, um der Datenvergleichseinheit 30 ein Vergleichen dieser Daten mit den Schreibdaten aus dem Bus 110 auf dem Chip zu ermöglichen.
-
3 zeigt ein Strukturbeispiel für den Speicherabschnitt 20 für häufig genutzte Daten. Der Speicherabschnitt 20 für häufig genutzte Daten weist eine Tabelle 21 auf, die aus einer Vielzahl von Einträgen besteht. Die Eintragsmenge kann beliebig festgelegt werden, es wird jedoch bevorzugt, sie entsprechend der Menge an häufig genutzten Daten festzulegen, die im Speicherabschnitt 20 für häufig genutzte Daten gespeichert ist. Sämtliche häufig genutzten Daten können von einer Vielzahl von unterschiedlichen Adressen festgelegt werden, und somit enthält die Tabelle 21 eine Eintragsmenge, die zumindest so zahlreich wie die Eintragsmenge in Tabelle 11 ist. Innerhalb jedes Eintrags in der Tabelle 21 wird ein Tag-Feld 22 zum Speichern eines Tags und ein Feld 23 für häufig genutzte Daten zum Speichern von häufig genutzten Daten erstellt, die vorab und entsprechend jedem Tag gebildet wurden. Das Verfahren zum Speichern der häufig genutzten Daten im Feld 23 für häufig genutzte Daten ist nicht spezifisch eingeschränkt, beispielsweise jedoch kann vorgesehen sein, dass häufig genutzte Daten im Feld 23 für häufig genutzte Daten entsprechend einer Zugriffshäufigkeits-Reihenfolge auf der Grundlage einer Zugriffshäufigkeit gespeichert werden, die aus der Markierung des Adresssuchabschnitts 10 erhalten werden kann.
-
Für jeden Eintrag wird innerhalb des Tag-Felds 22 ein Tag gespeichert, das dem im Datenindexfeld 14 des Adresssuchabschnitts 10 speicherten Datenindex entspricht. Demgemäß wird im Tag-Feld 22 ein numerischer Wert gespeichert, der in der Reihenfolge von 0 zugeordnet wird, z.B. identisch mit dem für das Datenindexfeld 14. Im Feld 23 für häufig genutzte Daten werden häufig genutzte Daten gespeichert, die die Datenlänge aufweisen, bei der ein Schreiben und Lesen in geeigneten Einheiten durchgeführt wird, z.B. die Grunddatenlänge, die aus dem Bus 110 auf dem Chip geschrieben und in diesen gelesen wird, die Pixellänge für ein Bild oder die Zeilenlänge für einen Cachespeicher. Die häufig genutzten Daten sind z.B. A110 oder A111 als 32-Bit-Folge von 0 oder 1 oder ein Datenmuster, das durch Analysieren des Ausführungsmodus beim Kompilieren eines Programms erhalten wurde.
-
Wenn die erfasste Adresse einen Treffer bezüglich einer gespeicherten Adresse im Adresssuchabschnitt 10 erzielt (Adressentreffer), erfasst der Speicherabschnitt 20 für häufig genutzte Daten ein Tag aus dem Adresssuchabschnitt 10, das dem Datenindex für die gespeicherten Adressen entspricht, für die Treffer erzielt wurden. Der Speicherabschnitt 20 für häufig genutzte Daten erkennt, das das Tag mit einem Tag aus dem Tag-Feld 22 der Tabelle 21 übereinstimmt, das dem erfassten Datenindex entspricht, und identifiziert die häufig genutzten Daten, die dem übereinstimmenden Tag entsprechen.
-
Beim Schreiben werden die identifizierten häufig genutzten Daten von der Datenvergleichseinheit 30 mit den Schreibdaten aus dem Bus 110 auf dem Chip verglichen, wie sie mit anderen häufig genutzten Daten verglichen wurden, die im Feld 23 für häufig genutzte Daten gespeichert sind. Wenn die identifizierten häufig genutzten Daten Schreibdaten sind und sie einen Treffer bezüglich anderer häufig genutzter Daten erzielt haben, empfängt der Speicherabschnitt 20 für häufig genutzte Daten auf der Datenvergleichseinheit 30 eine Anweisung, dass die häufig genutzten Daten aus der Datenvergleichseinheit 30 einen Treffer erzielt haben (Datentrefferanweisung), benachrichtigt er den Adresssuchabschnitt 10 über ein Tag, das im Tag-Feld 22 des Eintrags für die häufig genutzten Daten, für die ein Treffer erzielt wurde (Datentreffer), gespeichert ist, und weist er an, die Speicheradresse des ältesten Tag im Adresssuchabschnitt 10 mit der erfassten Adresse zu überschreiben. Wenn die Schreibdaten keinen Treffer bezüglich identifizierter häufig genutzter Daten in der Datenvergleichseinheit 30 erzielt haben, weist der Speicherabschnitt 20 für häufig genutzte Daten den Adresssuchabschnitt 10 an, die Speicheradresse zu invalidieren, für die ein Treffer auf dem Adresssuchabschnitt 10 erzielt wurde (Invalidierung einer Adresse, für die ein Treffer erzielt wurde). Beim Lesen werden die identifizierten häufig genutzten Daten (Lesetreffer) als Lesedaten an die Lesedaten-Auswahleinheit 90 bereitgestellt.
-
Die Datenvergleichseinheit 30 erfasst die gespeicherten häufig genutzten Daten aus dem Speicherabschnitt 20 für häufig genutzte Daten und vergleicht diese mit der Schreibdateneingabe aus dem Bus 110 auf dem Chip. 4 zeigt ein Strukturbeispiel für eine Datenvergleichseinheit 30. Die Datenvergleichseinheit 30 beinhaltet die Vielzahl von Vergleichseinheiten 31a, 31b ... 31n, die alle der entsprechenden häufig genutzten Daten mit den Schreibdaten vergleichen. Wenn Schreibdaten einen Treffer bezüglich der häufig genutzten Daten erzielen, erstellt die Vielzahl von Vergleichseinheiten 31a, 31b ... 31n eine Anweisung für den Treffer (Datentreffer) und gibt die Anweisung an den Speicherabschnitt 20 für häufig genutzte Daten und die Schreibdaten-Auswahleinheit 80 aus. Nachdem sämtliche eingegebenen häufig genutzten Daten verglichen wurden, stellt die Vielzahl von Vergleichseinheiten 31a, 31b ... 31n die Daten an das Komprimierungsmodul 50 des Komprimierungs-/Dekomprimierungsabschnitts 40 bereit. Die Schreibdaten werden darüber hinaus an das Komprimierungsmodul 50 aus der Datenvergleichseinheit 30 bereitgestellt.
-
Der Komprimierungs-/Dekomprimierungsabschnitt 40 erfasst und komprimiert Schreibdaten und häufig genutzte Daten aus der Datenvergleichseinheit 30 und erfasst und dekomprimiert Lesedaten aus der Schreib-Lese-Steuereinheit 120 in Bezug auf die Speichereinheit. 5 zeigt ein Strukturbeispiel für den Komprimierungs-/Dekomprimierungsabschnitt 40. Der Komprimierungs-/ Dekomprimierungsabschnitt 40 weist ein Komprimierungsmodul 50, ein Komprimierungs-/Dekomprimierungs-Wörterbuch 60 und ein Dekomprimierungsmodul 70 auf. Das Komprimierungsmodul 50 enthält die Vielzahl von Komprimierungsschaltkreisen 51a, 51b ... 51m, die sich nach Komprimierungsverfahren unterscheiden, und komprimiert die Schreibdaten und häufig genutzten Daten, die aus der Datenvergleichseinheit 30 erfasst wurden. Die Komprimierungsschaltkreise 51a, 51b ... 51m sind Schaltkreise, die Hardware verwenden, um z.B. Algorithmen eines verlustlosen Komprimierungsverfahrens (LHA usw.) zu erzeugen. Das Komprimierungsmodul 50 verwendet die Komprimierungsschaltkreise, um die Schreibdaten und häufig genutzten Daten zu komprimieren und stellt die Daten an die Schreibdaten-Auswahleinheit 80 bereit. Das Dekomprimierungsmodul 70 entspricht dem Komprimierungsmodul 50 und enthält die Vielzahl von Dekomprimierungsschaltkreisen 71a, 71b ... 71m, die sich nach Dekomprimierungsverfahren unterscheiden, und dekomprimiert die aus der Schreib-Lese-Steuereinheit 120 erfassten Lesedaten. Das Dekomprimierungsmodul 70 verwendet die Dekomprimierungsschaltkreise, um die Lesedaten zu dekomprimieren und stellt die Daten an die Lesedaten-Auswahleinheit 90 bereit. Das Erfassen von Lesedaten aus der Schreib-Lese-Steuereinheit 120 erfolgt, wenn es keine häufig genutzten Daten im Speicherabschnitt 20 für häufig genutzte Daten gibt, die zu den Lesedaten werden (Kein Lesetreffer). Das Komprimierungs-/Dekomprimierungs-Wörterbuch 60 enthält eine Datenkodierungs-Unterstützungstabelle 61a, 61b ... 61m, die eine Entsprechung der von den Komprimierungsschaltkreisen 51a, 51b ... 51m zu komprimierenden Daten mit der Kodierung durchführt, die die Daten auf den Dekomprimierungsschaltkreisen 71a, 71b ... 71m dekomprimiert. Darüber hinaus ist eine solche Strukturierung denkbar, bei der im Speicherabschnitt 20 für häufig genutzte Daten gespeicherte Daten durch die Datenkodierungs-Unterstützungstabelle 61a, 61b ... 61m komprimiert werden, wodurch sowohl den Komprimierungsschaltkreisen 51a, 51b ... 51m als auch den Dekomprimierungsschaltkreisen 71a, 71b ... 71m entsprochen wird.
-
Die Schreibdaten-Auswahleinheit 80 erfasst die Schreibdaten und häufig genutzten Daten, die vom Komprimierungs-/Dekomprimierungsabschnitt 40 komprimiert wurden, und wählt gemäß Anweisung von der Datenvergleichseinheit 30 die komprimierten Schreibdaten oder die komprimierten häufig genutzten Daten aus, die im Komprimierungs-/Dekomprimierungs-Wörterbuch 60 verzeichnet sind. 6 zeigt ein Strukturbeispiel für die Schreibdaten-Auswahleinheit 80. Die Schreibdaten-Auswahleinheit 80 weist eine Auswahleinheit 81 zum Antworten auf die Anweisung von der Datenvergleichseinheit 30, zum Auswählen der komprimierten Schreibdaten oder der komprimierten häufig genutzten Daten und zum Bereitstellen der Daten an die Schreib-Lese-Steuereinheit 120 auf.
-
Wenn die Adresse der aus dem Bus 110 auf dem Chip erfassten Lesedaten einen Treffer bezüglich einer Speicheradresse im Adresssuchabschnitt 10 erzielt (Lesetreffer), erfasst die Lesedaten-Auswahleinheit 90 die identifizierten häufig genutzten Daten innerhalb der häufig genutzten Daten aus dem Speicherabschnitt 20 für häufig genutzte Daten; und wenn die Daten keinen Treffer erzielt haben (kein Lesetreffer), erfasst sie die Lesedaten, die aus der Schreib-Lese-Steuereinheit 120 in Bezug auf die Speichereinheit gelesen und durch den Komprimierungs-/ Dekomprimierungsabschnitt 40 dekomprimiert wurden. Die Lesedaten-Auswahleinheit 90 wählt gemäß Anweisung von der Datenvergleichseinheit 30 die identifizierten häufig genutzten Daten oder die dekomprimierten Lesedaten aus. 7 zeigt ein Strukturbeispiel für die Lesedaten-Auswahleinheit 90. Die Lesedaten-Auswahleinheit 90 umfasst eine Leseeinheit 91 zum Antworten auf die Anweisung vom Adresssuchabschnitt 10, zum Auswählen der identifizierten häufig genutzten Daten oder der dekomprimierten Lesedaten und zum Bereitstellen der Daten an den Bus 110 auf dem Chip.
-
8 zeigt den Ablauf der Leseverarbeitung im Speichereinheit-Zugriffssystem 100. Das Zugriffssystem 100 beginnt mit Schritt 801, wenn eine Eingabe einer Adresse oder Schreibdaten aus dem Bus 110 auf dem Chip vorhanden ist bzw. sind. Die in Schritt 802 eingegebene Adresse oder eingegebenen Schreibdaten wird bzw. werden vom Zugriffssystem 100 erfasst, und in Schritt 803 wird vom Adresssuchabschnitt 10 eine Adresssuche für die erfasste Adresse durchgeführt, wobei die gespeicherten Adressen durchsucht werden. In Schritt 803 geht der Prozess zu Schritt 804 über, wenn die durchgeführte Adresssuche zu keinem Treffer führt (Nein), bei einem Treffer (Ja) geht er zu Schritt 805 über. Sowohl in Schritt 804 als auch Schritt 805 vergleicht die Datenvergleichseinheit 30 die Schreibdaten mit häufig genutzten Daten aus dem Speicherabschnitt 20 für häufig genutzte Daten. Wenn der Datenvergleich in Schritt 804 oder Schritt 805 zu einem Datentreffer (Übereinstimmung) führt (Ja), geht der Prozess zu Schritt 806 über, und der Adresssuchabschnitt 10, der vom Speicherabschnitt 20 für häufig genutzte Daten über ein Tag für die häufig genutzten Daten benachrichtigt wurde, für die ein Treffer erzielt wurde, empfängt eine Anweisung zum Überschreiben der Speicheradresse mit dem ältesten Tag innerhalb des Adressfelds 12 auf die erfasste Adresse und führt das Überschreiben durch. Wenn der Datenvergleich in Schritt 805 zu keinem Datentreffer führt (Nein), geht der Prozess zu Schritt 807 über, und der Adresssuchabschnitt 10, der vom Speicherabschnitt 20 für häufig genutzte Daten zur Durchführung einer Invalidierung der Speicheradresse angewiesen wurde, für die ein Treffer erzielt wurde (Invalidieren), invalidiert die Speicheradresse, für die ein Treffer erzielt wurde. Wenn der Datenvergleich in Schritt 804 zu keinem Datentreffer führt (Nein) und die Speicheradresse, für die ein Treffer erzielt wurde, in Schritt 807 invalidiert wurde, geht der Prozess zu Schritt 808 über und die Schreibdaten werden vom Komprimierungs-/Dekomprimierungs-Abschnitt 40 komprimiert. Wenn die Speicheradresse mit dem ältesten Tag in Schritt 806 auf die erfasste Adresse überschrieben wird, werden die Schreibdaten und die häufig genutzten Daten, für die ein Treffer erzielt wurde, vom Komprimierungs-/Dekomprimierungsabschnitt 40 komprimiert. Nachdem die Daten komprimiert wurden, wird die erfasste Adresse in Schritt 809 vom Adresssuchabschnitt 10 ausgegeben, wenn kein Lesetreffer vorliegt, und gemäß Anweisung durch die Datenvergleichseinheit 30 erfolgt eine Auswahl und eine Ausgabe der komprimierten Schreibdaten oder der komprimierten häufig genutzten Daten, die im Komprimierungs-/Dekomprimierungs-Wörterbuch 60 verzeichnet sind, aus der Datenauswahleinheit 80. Wenn die erfasste Adresse und die erfassten komprimierten Daten in Schritt 809 ausgegeben wurden, geht der Prozess zu Schritt 810 über, und der Adresssuchabschnitt 10 beendet den Datenschreibprozess.
-
9 zeigt den Ablauf der Schreibverarbeitung im Speichereinheit-Zugriffssystem 100. Das Zugriffssystem 100 beginnt mit Schritt 901, wenn eine Eingabe einer Adresse aus dem Bus 110 auf dem Chip vorhanden ist bzw. sind. Die in Schritt 902 eingegebene Adresse wird vom Zugriffssystem 100 erfasst, und in Schritt 903 wird vom Adresssuchabschnitt 10 eine Adresssuche für die erfasste Adresse durchgeführt, wobei die gespeicherten Adressen durchsucht werden. Wenn die durchgeführte Adresssuche in Schritt 903 zu einem Treffer führt (Ja), insbesondere zu einem Lesetreffer, geht der Prozess zu Schritt 904 über, und wenn kein Treffer erzielt wird (Nein), insbesondere bei keinem Lesertreffer, geht er zu Schritt 906 über. Bei einem Lesetreffer werden die häufig genutzten Daten, die einen Treffer bezüglich der erfassten Adresse erzielen, in Schritt 904 aus dem Speicherabschnitt 20 für häufig genutzte Daten erfasst, und die häufig genutzten Daten werden in Schritt 905 ausgewählt und als Lesedaten ausgegeben. Liegt kein Lesertreffer vor, wird die erfasste Adresse in Schritt 906 hingegen aus dem Adresssuchabschnitt 10 an die Schreib-Lese-Steuereinheit 120 ausgegeben, und die komprimierten Daten für diese Adresse werden aus der Speichereinheit erfasst. In Schritt 907 werden die erfassten komprimierten Daten vom Komprimierungs-/ Dekomprimierungsabschnitt 40 dekomprimiert. In Schritt 908 werden die dekomprimierten Daten von der Lesedaten-Auswahleinheit 90, die die Daten als Lesedaten auswählt und ausgibt, aus dem Komprimierungs-/
Dekomprimierungsabschnitt 40 erfasst. Wenn die häufig genutzten Daten in Schritt 905 als Lesedaten ausgegeben werden oder die dekomprimierten Daten in Schritt 908 als Lesedaten ausgegeben werden, geht der Prozess zu Schritt 909 über, und der Adresssuchabschnitt 10 beendet den Leseprozess.
-
Bezugszeichenliste
-
- 10
- Adresssuchabschnitt
- 20
- Speicherabschnitt für häufig genutzte Daten
- 30
- Datenvergleichseinheit
- 40
- Komprimierungs-/Dekomprimierungsabschnitt
- 80
- Schreibdaten-Auswahleinheit
- 90
- Lesedaten-Auswahleinheit
- 100
- Speichereinheit-Zugriffssystem