DE112017008201T5 - Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm - Google Patents

Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm Download PDF

Info

Publication number
DE112017008201T5
DE112017008201T5 DE112017008201.3T DE112017008201T DE112017008201T5 DE 112017008201 T5 DE112017008201 T5 DE 112017008201T5 DE 112017008201 T DE112017008201 T DE 112017008201T DE 112017008201 T5 DE112017008201 T5 DE 112017008201T5
Authority
DE
Germany
Prior art keywords
data
access
cache
access times
information processing
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.)
Granted
Application number
DE112017008201.3T
Other languages
English (en)
Other versions
DE112017008201B4 (de
Inventor
Tatsuya Yamada
Hirotaka Motai
Akio Idehara
Kotaro Hashimoto
Takehisa Mizuguchi
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112017008201T5 publication Critical patent/DE112017008201T5/de
Application granted granted Critical
Publication of DE112017008201B4 publication Critical patent/DE112017008201B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Abstract

Ein Historienspeicherbereich (106) speichert für jedes einer Vielzahl von Datenstücken eine Anzahl von Zugriffszeiten über ein Dateisystem. Eine Cache-Verwaltungseinheit (119) stellt, wenn ein Zugriff auf die Vielzahl von Datenstücken nicht über das Dateisystem auftritt, Daten als Überschreibungsverbotsdaten ein und speichert sie im Disk-Cache-Bereich (108) zwischen, für die eine Anzahl von Zugriffszeiten, die gleich wie oder größer als ein Schwellenwert ist, im Historienspeicherbereich (106) gespeichert ist, wobei der Schwellenwert auf der Grundlage einer Anzahl von Zugriffszeiten der Vielzahl von Datenstücken bestimmt wird.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf eine Informationsverarbeitungsvorrichtung, ein Informationsverarbeitungsverfahren und ein Informationsverarbeitungsprogramm.
  • Stand der Technik
  • In einem allgemeinen Betriebssystem (OS) werden Daten zwischengespeichert, die aus einem Speicher im Arbeitsspeicher (hauptsächlich dynamischer Direktzugriffsspeicher (DRAM)) ausgelesen werden. Dadurch entfällt die Notwendigkeit des Zugriffs auf den Speicher beim nächsten Auslesen der gleichen Daten und der Datenzugriff wird beschleunigt. Und Daten, die in einem Cache-Bereich (im Folgenden auch als Disk-Cache bezeichnet) zwischengespeichert werden, werden von einem Algorithmus, wie z. B. LeastRecentlyUsed, verworfen. Durch das Verwerfen der Daten durch einen solchen Algorithmus kann der Cache-Bereich effizient genutzt werden.
  • Ein konventionelles Betriebssystem wählt einen Disk-Block aus, aus dem Daten ausgelesen werden, indem es Prioritäten auf Grundlage von Informationen über Effizienz des Input/Output (I/O)-Prefetch und der Arbeitsspeichernutzung auf Seiten einstellt, und so den Dateizugriff beschleunigt (z.B. Patentliteratur 1).
  • Außerdem wird ein Verfahren vorgeschlagen, das verhindert, dass zum Zeitpunkt des Auslesens eines Arbeitsspeichers ein überlappender Zugriff auftritt, indem der Status des Arbeitsspeichers, der sich in einem Betriebszustand befindet, in einem Speicher aufgezeichnet wird und der im Speicher gespeicherte Status des Arbeitsspeichers wieder in den Arbeitsspeicher zurückgeführt wird, wenn eine Informationsverarbeitungsvorrichtung das nächste Mal aktiviert wird (z.B. Patentliteratur 2).
  • Darüber hinaus wird ein grundlegendes Verfahren der Zwischenspeicherung vorgeschlagen, das ein Hochgeschwindigkeitsspeichermedium zwischen einem langsamen Speicher und einer Zentralverarbeitungseinheit (CPU) anordnet und Daten, die aus dem langsamen Speicher ausgelesen werden, vorübergehend auf dem Hochgeschwindigkeitsspeichermedium speichert (z. B. Patentliteratur 3).
  • Referenzliste
  • Patentliteratur
    • Patentliteratur 1: JP 4724362
    • Patentliteratur 2: JP 6046978
    • Patentliteratur 3: JP S58-224491 A
  • Kurzfassung der Erfindung
  • Technisches Problem
  • Eine herkömmliche Technologie basiert auf der Annahme, dass eine Person, die Daten verwendet, und eine Person, die die Daten zwischenspeichert, identisch sind. Wenn demnach die Person, die die Daten verwendet, und die Person, die die Daten zwischenspeichert, unterschiedlich sind, macht die herkömmliche Technologie keinen wirksamen Gebrauch von einer Historie von Daten, die von der Person ausgelesen wurden, die sich von der Person unterscheidet, die die Daten zwischenspeichert. Daher weist die herkömmliche Technologie das Problem auf, dass der Datenzugriff in einem solchen Fall nicht effektiv beschleunigt werden kann. Insbesondere wird eine Historie von Daten, die über ein von einem Betriebssystem bereitgestelltem Dateisystem ausgelesen werden, nicht in einem Disk-Cache verwendet, der nicht über das Dateisystem erzeugt wurde. Es besteht daher die Möglichkeit, dass Cache-Daten, die häufig beim Auslesen von Daten über das Dateisystem verwendet werden, beim Auslesen von Daten, das nicht über das Dateisystem erfolgt, überschrieben werden, was zu einer Verschlechterung der Performance führt.
  • Außerdem ist in vielen Fällen auf einer Embedded-Plattform ein Bereich, in dem ein Betriebssystem und ein Anwendungsprogramm (im Folgenden einfach als Anwendung bezeichnet) gespeichert sind, ein Bereich, der dem Auslesen gewidmet ist. Daher ist eine Abfolge von der Stromversorgung einer Informationsverarbeitungsvorrichtung bis zur Aktivierung einer Anwendung oft festgelegt. Und auch eine Position eines Datenblocks, von dem aus auf einen Speicher zugegriffen wird, und sein Zugriffszeitpunkt sind oft deterministisch.
  • Bei der Ausführung eines sicheren Boot-Vorgangs auf der Embedded-Plattform ist es notwendig, die Integrität und Authentizität der Codedaten, aus denen die Anwendung besteht, zu verifizieren, bevor eine Partition verwendet wird, in der die Anwendung gespeichert ist. Daher ist es notwendig, die Verifizierung der Integrität und Authentizität der Codedaten, aus denen die Anwendung besteht, abgeschlossen zu haben, bevor das Betriebssystem aktiviert wird und die Anwendung über das Dateisystem ausgelesen wird. Mit anderen Worten: Bei der Verifizierung der Partition (Verifizierung der Integrität und der Authentizität der Codedaten, aus denen die Anwendung besteht) werden die Codedaten der Anwendung nicht über das Dateisystem, sondern direkt aus einem Gerätetreiber ausgelesen. Daher tritt das Problem auf, dass die bei der Verifizierung der Partition ausgelesenen Codedaten nicht in einem Disk-Cache des Dateisystems enthalten sind.
  • Der Hauptgegenstand der vorliegenden Erfindung ist die Lösung des Problems. Genauer gesagt, ist es das Ziel der vorliegenden Erfindung, eine effiziente Cache-Verwaltung unter einer Konfiguration auszuführen, bei der Datenzugriff über ein Dateisystem und Datenzugriff nicht über das Dateisystem auftritt.
  • Lösung des Problems
  • Eine Informationsverarbeitungsvorrichtung gemäß der vorliegenden Erfindung umfasst:
    • einen Cache-Bereich;
    • einen Zugriffszeiten-Speicherbereich, um eine Anzahl von Zugriffszeiten über ein Dateisystem für jedes einer Vielzahl von Datenstücken zu speichern; und
    • eine Cache-Verwaltungseinheit, um, wenn ein Zugriff auf die Vielzahl von Datenstücken nicht über das Dateisystem auftritt, Daten als Überschreibungsverbotsdaten einzustellen und im Cache-Bereich zwischenzuspeichern, für die eine Anzahl von Zugriffszeiten, die gleich wie oder größer als ein Schwellenwert ist, im Zugriffszeiten-Speicherbereich gespeichert ist, wobei der Schwellenwert auf der Grundlage einer Anzahl von Zugriffszeiten der Vielzahl von Datenstücken bestimmt wird.
  • Vorteilhafte Wirkungen der Erfindung
  • Die vorliegende Erfindung ermöglicht eine effiziente Cache-Verwaltung unter einer Konfiguration, bei der Datenzugriff über ein Dateisystem und Datenzugriff nicht über das Dateisystem auftreten.
  • Figurenliste
    • 1 ist ein Diagramm, das ein Beispiel einer Hardwarekonfiguration einer Informationsverarbeitungsvorrichtung gemäß Ausführungsform 1 darstellt.
    • 2 ist ein Diagramm, das ein Beispiel einer Hardwarekonfiguration einer Informationsverarbeitungsvorrichtung nach Ausführungsform 1 darstellt.
    • 3 ist ein Diagramm, das ein Beispiel einer Konfiguration eines Historienspeicherbereichs nach Ausführungsform 1 darstellt.
    • 4 ist ein Diagramm, das ein Beispiel einer Konfiguration eines Disk-Cache-Bereichs nach Ausführungsform 1 darstellt.
    • 5 ist ein Diagramm, das ein Beispiel einer funktionalen Konfiguration einer Informationsverarbeitungsvorrichtung nach Ausführungsform 2 darstellt.
    • 6 ist ein Diagramm, das ein Beispiel einer Konfiguration eines Historienspeicherbereichs nach Ausführungsform 2 darstellt.
    • 7 ist ein Diagramm, das ein Beispiel einer funktionalen Konfiguration einer Informationsverarbeitungsvorrichtung nach Ausführungsform 3 darstellt.
    • 8 ist ein Flussdiagramm, das ein Beispiel eines Betriebs der Informationsverarbeitungsvorrichtung nach Ausführungsform 1 darstellt.
    • 9 ist ein Flussdiagramm, das das Beispiel des Betriebs der Informationsverarbeitungsvorrichtung nach Ausführungsform 1 darstellt.
    • 10 ist ein Flussdiagramm, das das Beispiel des Betriebs der Informationsverarbeitungsvorrichtung nach Ausführungsform 1 darstellt.
    • 11 ist ein Flussdiagramm, das das Beispiel des Betriebs der Informationsverarbeitungsvorrichtung nach Ausführungsform 1 darstellt.
    • 12 ist ein Flussdiagramm, das das Beispiel des Betriebs der Informationsverarbeitungsvorrichtung nach Ausführungsform 1 darstellt.
    • 13 ist ein Flussdiagramm, das das Beispiel des Betriebs der Informationsverarbeitungsvorrichtung nach Ausführungsform 1 darstellt.
  • Beschreibung von Ausführungsformen
  • Im Folgenden werden Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die Zeichnungen erläutert. In den Beschreibungen von Ausführungsformen und der Zeichnungen zeigt ein durch ein gleiches Bezugszeichen bezeichneter Teil ein gleiches oder entsprechendes Teil an.
  • Ausführungsform 1.
  • *** Konfigurationsbeschreibung ***
  • In der vorliegenden Ausführungsform wird eine Konfiguration zur Lösung von Problemen erläutert, die bei der Anwendung eines sicheren Boot-Vorgangs auf einer Embedded-Plattform auftreten. Genauer gesagt wird eine Konfiguration erläutert, die eine effiziente Cache-Verwaltung, die als Disk-Cache des Dateisystems zur Verfügung steht, ermöglicht, durch Veranlassen des Auslesens nicht über ein Dateisystem aus einem Speicher und Anwenden eines deterministischen Verfahrens auf einen Verwerfungsalgorithmus des Disk-Caches.
  • 1 stellt ein Beispiel einer Hardwarekonfiguration einer Informationsverarbeitungsvorrichtung 100 gemäß der vorliegenden Ausführungsform dar.
  • Die Informationsverarbeitungsvorrichtung 100 gemäß der vorliegenden Ausführungsform ist ein Computer.
  • Wie in 1 dargestellt, umfasst die Informationsverarbeitungsvorrichtung 100 als Hardware einen Prozessor 101, einen Direktzugriffsspeicher (RAM) 103, einen Speicher 104 und eine Eingabe-/Ausgabe (E/A)-Einrichtung 105. Dieser Prozessor 101, RAM 103, Speicher 104 und E/A-Einrichtung 105 sind miteinander über einen Bus 102 verbunden.
  • Der Prozessor 101 ist eine arithmetische Einrichtung, die die Informationsverarbeitungsvorrichtung 100 steuert. Der Prozessor 101 ist zum Beispiel eine zentrale Verarbeitungseinheit (CPU). Die Informationsverarbeitungsvorrichtung 100 kann eine Vielzahl von Prozessoren 101 umfassen.
  • Der RAM 103 ist eine Flüchtiger-Speicher-Einrichtung, in der ein Programm, das auf dem Prozessor 101 läuft, ein Stack, eine Variable und ähnliches gespeichert werden.
  • Der Speicher 104 ist eine Nichtflüchtigkeitsspeichereinrichtung, in der ein Programm, Daten und ähnliches gespeichert werden. Dieser Speicher 104 ist z. B. eine Embedded-MultiMediaCard (eMMC).
  • Die E/A-Einrichtung 105 ist eine Schnittstelle, um eine externe Einrichtung wie z. B. eine Anzeige oder eine Tastatur zu verbinden.
  • In der vorliegenden Ausführungsform wird davon ausgegangen, dass der Prozessor 101, der RAM 103, der Speicher 104 und die E/A-Einrichtung 105 über den Bus 102 miteinander verbunden sind. Sie können jedoch auch über andere Verbindungsmittel miteinander verbunden sein.
  • Zu beachten ist, dass der auf der Informationsverarbeitungseinrichtung 100 durchgeführte Betrieb einem Informationsverarbeitungsverfahren und einem Informationsverarbeitungsprogramm entspricht.
  • Der Speicher 104 speichert Programme, um Funktionen eines Verifizierungsprogramms 110, einer Anwendung 111 und eines Betriebssystems 112 wie nachfolgend beschrieben, umzusetzen. Diese Programme zur Umsetzung der Funktionen des Verifizierungsprogramms 110, der Anwendung 111 und des Betriebssystems 112 werden in den RAM 102 geladen. Dann führt der Prozessor 101 diese Programme aus und führt den Betrieb des Verifizierungsprogramms 110, der Anwendung 111 und des Betriebssystems 112 wie nachfolgend beschrieben durch.
  • 1 stellt einen Zustand schematisch dar, in dem der Prozessor 101 die Programme zur Umsetzung der Funktionen des Verifizierungsprogramms 110, der Anwendung 111 und des Betriebssystems 112 ausführt.
  • Außerdem wird mindestens eine der Informationen, Daten, ein Signalwert und ein Variablenwert, der ein Ergebnis des Prozesses durch das Verifizierungsprogramm 110, die Anwendung 111 und das Betriebssystem 112 anzeigt, in mindestens einem des Speichers 104, dem RAM 103 und einem Register im Prozessor 101 gespeichert.
  • Außerdem können das Verifizierungsprogramm 110, die Anwendung 111 und das Betriebssystem 112 auf einem portablem Speichermedium gespeichert werden, z.B. auf einer Magnetplatte, einer flexiblen Platte, einer optischen Platte, einer Compact Disc, einer Blu-ray-Disk (ein eingetragenes Warenzeichen) und einer DVD.
  • Außerdem kann die Informationsverarbeitungsvorrichtung 100 durch einen Verarbeitungsschaltkreis umgesetzt werden. Der Verarbeitungsschaltkreis ist z. B. eine logische integrierte Schaltung (IC), ein Gate Array (GA), eine anwendungsspezifische integrierte Schaltung (ASIC) oder ein Field Programmable Gate Array (FPGA).
  • Zu beachten ist, dass in dieser Beschreibung ein weit gefasster Begriff des Prozessors 101 und des Verarbeitungsschaltkreises als „Verarbeitungsschaltung“ bezeichnet wird.
  • Mit anderen Worten ist jeder Prozessor 101 und der Verarbeitungsschaltkreis ein Beispiel der „Verarbeitungsschaltung“.
  • 2 stellt ein Beispiel einer funktionalen Konfiguration der Informationsverarbeitungsvorrichtung 100 gemäß der vorliegenden Ausführungsform dar.
  • In der Informationsverarbeitungsvorrichtung 100 läuft das Betriebssystem 112. Und auf dem Betriebssystems 112 laufen das Verifizierungsprogramm 110 und die Anwendung 111.
  • Das Verifizierungsprogramm 110 führt die Verifizierung für einen sicheren Boot aus. Mit anderen Worten verifiziert das Verifizierungsprogramm 110 die Integrität und Authentizität der Anwendung 111.
  • 2 stellt eine Konfiguration dar, die mit einem Dateisystem aus einer internen Konfiguration des Betriebssystems 112 in Beziehung steht.
  • Ein oberes Dateisystem 115 und ein unteres Dateisystem 114 bilden ein tatsächliches Dateisystem, das eine Abstraktion des Dateizugriffs aus der Anwendung 111 ist.
  • In einigen Fällen sind das obere Dateisystem 115 und das untere Dateisystem 114 in Abhängigkeit von einem Betriebssystem als ein einziges Dateisystem umgesetzt. Die Informationsverarbeitungsvorrichtung 100 nach der vorliegenden Ausführungsform kann umgesetzt werden, ohne von einer Multiplexing-Konfiguration des Dateisystems abhängig zu sein.
  • Ein Gerätetreiber 113 umfasst eine Gerätezugriffseinheit 116, eine Block-Zugriff-Anwendungsprogrammierschnittstelle (API)-Einheit 117, eine Zugriffszeiten-Verwaltungseinheit 118 und eine Cache-Verwaltungseinheit 119.
  • Die Gerätezugriffseinheit 116 greift auf den Speicher 104 zu, der eine Einrichtung ist.
  • Die Block-Zugriff-API 117 ist eine API, die direkt vom unteren Dateisystem 114 und dem Verifizierungsprogramm 110 erreichbar ist.
  • Die Zugriffszeiten-Verwaltungseinheit 118 zählt die Anzahl der Zugriffszeiten über das obere Dateisystem 115 und das untere Dateisystem 114 für jedes der Vielzahl von Codedatenstücken, die die Anwendung 111 bilden. Die Zugriffszeiten-Verwaltungseinheit 118 bestimmt auch einen Schwellenwert für die Anzahl der Zugriffszeiten, der auf einem Zählergebnis der Anzahl der Zugriffszeiten für jede der Codedaten basiert.
  • Die Anzahl der von der Zugriffszeiten-Verwaltungseinheit 118 gezählten Zugriffszeiten und der von der Zugriffszeiten-Verwaltungseinheit 118 bestimmte Schwellenwert werden in einem Historienspeicherbereich 106 im Speicher 104 gespeichert.
  • Wenn der Zugriff weder über das obere Dateisystem 115 noch über das untere Dateisystem 114 auftritt, stellt die Cache-Verwaltungseinheit 119 Codedaten als Überschreibungsverbotsdaten ein und speichert sie in einem Disk-Cache-Bereich 108 zwischen, für die eine Anzahl von Zugriffszeiten, die einem Schwellenwert entspricht oder diesen überschreitet, im Historienspeicherbereich 106 gespeichert sind. Konkret erfolgt der Zugriff weder über das obere Dateisystem 115 noch über das untere Dateisystem 114, wenn das Verifizierungsprogramm 110 die Verifizierung der Integrität und Authentizität der Vielzahl von Codedatenstücken, aus denen die Anwendung 111 besteht, ausführt. Wenn das Verifizierungsprogramm 110 die Verifizierung ausführt, extrahiert die Cache-Verwaltungseinheit 119 die Codedaten, für die die Anzahl der Zugriffszeiten, die gleich wie oder größer als der Schwellenwert ist, im Historienspeicherbereich 106 gespeichert ist, und stellt die extrahierten Codedaten als Überschreibungsverbotsdaten ein und speichert sie im Disk-Cache-Bereich 108 zwischen.
  • Die Cache-Verwaltungseinheit 119 schreibt auch in den Disk-Cache-Bereich 108 die Anzahl der Zugriffszeiten von im Historienspeicherbereich 106 gespeicherten Überschreibungsverbotsdaten, wobei die Anzahl der Zugriffszeiten den Überschreibungsverbotsdaten zugeordnet wird.
  • Die Cache-Verwaltungseinheit 119 speichert weiterhin im Disk-Cache-Bereich 108 Codedaten zwischen, für die die Anzahl der Zugriffszeiten, die unter dem Schwellenwert liegt, im Historienspeicherbereich 106 gespeichert ist, ohne die Überschreibungsverbotsdaten zu überschreiben.
  • Ein durch die Cache-Verwaltungseinheit 119 ausgeführter Prozess entspricht einem Cache-Verwaltungsprozess.
  • Der durch das Betriebssystem 112 verwendete Disk-Cache-Bereich 108 wird im RAM 103 beschafft.
  • Der Disk-Cache-Bereich 108 entspricht einem Cache-Bereich.
  • Der Speicher 104 umfasst eine Anwendungspartition 107, den Historienspeicherbereich 106 und einen Firmware-Bereich 109.
  • In der Anwendungspartition 107 ist ein Ausführungsabbild der Anwendung 111 gespeichert.
  • Im Historienspeicherbereich 106 ist die Anzahl der von der Zugriffszeiten-Verwaltungseinheit 118 gezählten Zugriffszeiten und der von der Zugriffszeiten-Verwaltungseinheit 118 bestimmte Schwellenwert gespeichert. Der Historienspeicherbereich 106 entspricht einem Zugriffszeiten-Speicherbereich.
  • Im Firmware-Bereich 109 ist das Betriebssystem 112 gespeichert.
  • 3 zeigt ein Beispiel einer Konfiguration des in 2 dargestellten Historienspeicherbereichs 106.
  • Im Historienspeicherbereich 106 gibt es einen Eintrag 120, dessen Zahl gleich einem Quotienten ist, der sich aus dem Teilen der Größe der Anwendungspartition 107 durch eine Blockgröße ergibt, die für den Zugriff auf den Speicher 104 verwendet werden soll. Jeder Eintrag 120 entspricht Codedaten, die durch Teilen des Ausführungsabbilds der Anwendung 111 durch die Blockgröße erhalten werden. Mit anderen Worten ist das Ausführungsabbild der Anwendung 111 im Beispiel von 3 in N Codedatenstücke unterteilt.
  • Der Einfachheit halber ist ein Offset vorgesehen, um jeden Eintrag mit 120 zu nummerieren. Somit speichert der Historienspeicherbereich 106 nur einen Wert einer Anzahl von Zugriffszeiten und einen Schwellenwert 121. In der vorliegenden Ausführungsform ist die Größe eines Eintrags der Anzahl von Zugriffszeiten ein Byte. Die Größe eines Eintrags kann jedoch je nach Kapazität des Speichers 104 willkürlich geändert werden.
  • Die Größe des Schwellenwerts 121 ist die gleiche wie die eines Eintrags der Anzahl von Zugriffszeiten. Mit anderen Worten ist in der vorliegenden Ausführungsform die Größe des Schwellenwerts 121 ein Byte. Wie vorstehend beschrieben, wird der Schwellenwert 121 von der Cache-Verwaltungseinheit 119 verwendet, um zu bestimmen, ob Codedaten als Überschreibungsverbotsdaten eingestellt werden sollen oder nicht.
  • 4 zeigt ein Beispiel einer Konfiguration des in 2 dargestellten Disk-Cache-Bereichs 108 im RAM 103.
  • Ein Eintrag 122 ist ein Eintrag von Cache-Daten 125. Der Eintrag 122 kann durchgehend sein oder kann unterbrochen sein.
  • Eine Anordnung des Eintrags 122 hängt davon ab, auf welche Weise der Gerätetreiber 113 einen Puffer beschafft. Die Informationsverarbeitungsvorrichtung 100 nach der vorliegenden Ausführungsform kann umgesetzt werden, ohne davon abzuhängen, auf welche Weise der Gerätetreiber 113 den Puffer beschafft.
  • Jeder Eintrag 122 speichert die Cache-Daten 125, ein Überschreibungsverbot-Flag 123 und eine Referenzzählung 124.
  • Die Cache-Daten 125 sind Codedaten der Anwendung 111, die durch die Cache-Verwaltungseinheit 119 zwischengespeichert werden.
  • Die Cache-Verwaltungseinheit 119 stellt die Cache-Daten 125 als Überschreibungsverbotsdaten durch Einstellen des Überschreibungsverbot-Flags 123 auf AN ein.
  • Zu beachten ist, dass das Überschreibungsverbot-Flag 123 aus zumindest einem Bit besteht, da es keine Rolle spielt, solange AN und AUS unterscheidbar sind.
  • Die Referenzzählung 124 ist der gleiche Wert wie die Anzahl der Zugriffszeiten im Historienspeicherbereich 106. Somit muss die Größe der Referenzzählung 124 die gleiche wie die Anzahl von Zugriffszeiten sein.
  • ***Beschreibung des Betriebs ***
  • Als nächstes wird ein Beispiel für den Betrieb der Informationsverarbeitungsvorrichtung 100 nach der vorliegenden Ausführungsform erläutert.
  • Zunächst wird unter Bezugnahme auf 8 und 9 ein Ablauf implementiert, um die Informationsverarbeitungsvorrichtung 100 auf normale Weise zu aktivieren und dann die Anwendung 111 auszuführen, um Daten über das deterministische Verwerfen des Caches zu lernen.
  • Nach Aktivierung der Informationsverarbeitungsvorrichtung 100 (Schritt 501), wird das installierte Betriebssystem 112 aktiviert (Schritt 502).
  • Dann, nachdem verschiedene Dienste des Betriebssystems 112 ausgeführt wurden, wird die Ausführung der Anwendung 111 gestartet (Schritt 503). Zu diesem Zeitpunkt beginnt eine Ladeeinrichtung mit dem Auslesen eines Ausführungsabbilds der Anwendung 111 aus dem Speicher 104 (Schritt 504).
  • Beim Auslesen des Ausführungsabbilds der Anwendung 111 fordert das obere Dateisystem 115 das untere Dateisystem 114 auf, das Ausführungsabbild der Anwendung 111 auszulesen (Schritt 505). Als nächstes fordert das untere Dateisystem 114 auf der Grundlage der Anforderung durch das obere Dateisystem 115 die Block-Zugriff-API-Einheit 117 auf, das Ausführungsabbild der Anwendung 111 auszulesen (Schritt 506). Als nächstes fordert die Block-Zugriff-API-Einheit 117 auf der Grundlage der Anforderung durch das untere Dateisystem 114 die Gerätzugriffseinheit 116 auf, das Ausführungsabbild der Anwendung 111 auszulesen (Schritt 507). Als nächstes berechnet die Gerätezugriffseinheit 116 eine Blocknummer im Speicher 104 (Schritt 508).
  • Wenn dann Daten über die in Schritt 508 berechnete Blocknummer von der Gerätezugriffseinheit 116 ausgelesen werden, werden Codedaten, die Teil des Ausführungsabbilds der Anwendung 111 sind, beschafft (Schritt 509).
  • Zu diesem Zeitpunkt addiert die Zugriffszeiten-Verwaltungseinheit 118 eins zu der Anzahl der Zugriffszeiten 120 eines Offsets, der der Blocknummer im Historienspeicherbereich 106 entspricht (Schritt 510).
  • Alternativ kann die Cache-Verwaltungseinheit 119 die ausgelesenen Codedaten im Disk-Cache-Bereich 108 zwischenspeichern.
  • Zu beachten ist, dass wenn das Auslesen der Anwendung 111 nicht abgeschlossen ist (NEIN in Schritt 511), die Gerätezugriffseinheit 116 eine als nächstes auszulesende Blocknummer berechnet (Schritt 512).
  • Dann werden das Auslesen der Codedaten der berechneten Blocknummer und die Addition eines der Blocknummer entsprechenden Offsets zur Anzahl der Zugriffszeiten wiederholt (Schritte 509 und 510).
  • Wenn das Laden der Anwendung 111 abgeschlossen ist, wird die Block-Zugriff-API-Einheit 117 geschlossen (Schritte 512 bis 516).
  • Während die Block-Zugriff-API-Einheit 117 geschlossen wird, berechnet die Zugriffszeiten-Verwaltungseinheit 118 einen Schwellenwert für die Anzahl der Zugriffszeiten und schreibt den berechneten Schwellenwert als Schwellenwert 121 in den Historienspeicherbereich 106 (Schritt 517).
  • Genauer gesagt sortiert die Zugriffszeiten-Verwaltungseinheit 118 die Einträge 120 im Historienspeicherbereich 106 in absteigender Reihenfolge der Anzahl der Zugriffszeiten. Dann wählt die Zugriffszeiten-Verwaltungseinheit 118 die Einträge 120 der gleichen Anzahl als die Hälfte der Anzahl der Blöcke aus, die im Disk-Cache-Bereich 108 in absteigender Reihenfolge der Anzahl der Zugriffszeiten beschafft werden können. Dann bestimmt die Zugriffszeiten-Verwaltungseinheit 118 als Schwellenwert die kleinste Anzahl von Zugriffszeiten unter der Anzahl der Zugriffszeiten der ausgewählten Einträge 120.
  • Wenn beispielsweise eine Gesamtzahl der Einträge im Historienspeicherbereich 106 20 und die Anzahl der Blöcke, die im Disk-Cache-Bereich 108 beschafft werden können, 20 beträgt, wählt die Zugriffszeiten-Verwaltungseinheit 118 aus den 20 Einträgen 10 Einträge in absteigender Reihenfolge der Anzahl der Zugriffszeiten aus. Dann bestimmt die Zugriffszeiten-Verwaltungseinheit 118 als Schwellenwert die kleinste Anzahl von Zugriffszeiten aus der Anzahl der Zugriffszeiten der 10 ausgewählten Einträge.
  • Theoretisch ist es für die Zugriffszeiten-Verwaltungseinheit 118 möglich, Einträge der gleichen Anzahl als die Anzahl der Blöcke auszuwählen, die im Disk-Cache-Bereich 108 beschafft werden können. Diese Auswahl verhindert jedoch, dass neu aus dem Speicher 104 ausgelesene Codedaten im Disk-Cache-Bereich 108 gespeichert werden. Daher wählt die vorliegende Ausführungsform die Einträge mit der gleichen Anzahl als die Hälfte der Anzahl der Blöcke aus, die im Disk-Cache-Bereich 108 beschafft werden können.
  • Anschließend wird unter Bezugnahme auf 10 und 11 eine Erläuterung des Betriebs gegeben, der durchgeführt wird, wenn Codedaten der Anwendung 111 aus der Anwendungspartition 107 im Speicher 104 weder über das obere Dateisystem 115 noch über das untere Dateisystem 114 ausgelesen werden.
  • Im Folgenden wird eine Erläuterung des Betriebs gegeben, der durchgeführt wird, wenn das Verifizierungsprogramm 110 eine Verifizierung der Integrität und Authentizität der Anwendung 111 wie einen sicheren Boot-Vorgang ausführt und Codedaten einer Anwendung durch den Gerätetreiber 113 aus der Anwendungspartition 107 weder über das obere Dateisystem 115 noch über das untere Dateisystem 114 ausgelesen werden.
  • Wenn die Informationsverarbeitungsvorrichtung 100 aktiviert ist, bevor die Anwendungspartition 107 im Speicher 104 für die Verwendung durch das obere Dateisystem 115 und das untere Dateisystem 114 verfügbar wird (Schritt 601), wird das installierte Betriebssystem 112 aktiviert (Schritt 602).
  • Auch das Verifizierungsprogramm 110 wird aktiviert (Schritt 603).
  • Zu beachten ist, dass es keine im Disk-Cache-Bereich 108 gespeicherten Cache-Daten 125 gibt, wenn die Informationsverarbeitungsvorrichtung 100 aktiviert ist (Schritt 601).
  • Als nächstes liest die Gerätezugriffseinheit 116 Codedaten von einem Kopfblock der Anwendungspartition 107 (Schritt 604) aus. Die Gerätezugriffseinheit 116 überträgt die ausgelesenen Codedaten an die Cache-Verwaltungseinheit 119 und teilt der Cache-Verwaltungseinheit 119 auch eine Blocknummer der Codedaten mit.
  • Die Cache-Verwaltungseinheit 119 beschafft aus dem Historienspeicherbereich 106 eine Anzahl von Zugriffszeiten eines Offsets, was der durch die Gerätezugriffseinheit 116 mitgeteilten Blocknummer entspricht (Schritt 606).
  • Als nächstes bestimmt die Cache-Verwaltungseinheit 119, ob die Anzahl der in Schritt 606 erfassten Zugriffszeiten gleich einem Schwellenwert 121 oder größer ist (Schritt 607).
  • Wenn die Anzahl der in Schritt 606 erfassten Zugriffszeiten gleich wie oder größer als der Schwellenwert 121 ist (JA in Schritt 607), stellt die Cache-Verwaltungseinheit 119 ein Überschreibungsverbot-Flag 123 im Disk-Cache-Bereich 108 ein und schreibt die Codedaten als Cache-Daten 125 in den Disk-Cache-Bereich 108 (Schritt 608). Wie vorstehend beschrieben, werden durch Einstellen des Überschreibungsverbot-Flags 123 die Codedaten wie Überschreibungsverbotsdaten behandelt.
  • Die Cache-Verwaltungseinheit 119 schreibt auch einen Wert der Anzahl der Zugriffszeiten im Historienspeicherbereich 106 als eine Referenzzählung 124 in den Disk-Cache-Bereich 108 (Schritt 608).
  • Wenn andererseits die Anzahl der in Schritt 606 beschafften Zugriffszeiten kleiner als der Schwellenwert 121 ist (NEIN in Schritt 607), schreibt die Cache-Verwaltungseinheit 119 die Codedaten als Cache-Daten 125 in den Disk-Cache-Bereich 108 (Schritt 609). Da in diesem Fall das Überschreibungsverbot-Flag 123 nicht gesetzt ist, werden die Codedaten nicht wie die Überschreibungsverbotsdaten behandelt.
  • Die Cache-Verwaltungseinheit 119 schreibt auch den Wert der Anzahl der Zugriffszeiten im Historienspeicherbereich 106 als die Referenzzählung 124 in den Disk-Cache-Bereich 108 (Schritt 609).
  • Dann verifiziert das Verifizierungsprogramm 110 die Integrität und Authentizität der in Schritt 606 ausgelesenen Codedaten (Schritt 610).
  • Als nächstes erhöht die Gerätezugriffseinheit 116 eine Blocknummer eines Zugriffsziels um eins (Schritt 611).
  • Danach und bis die Blocknummer des Zugriffsziels eine Gesamtanzahl von Blöcken in der Anwendungspartition 107 überschreitet, wird der Betrieb von Schritt 605 bis Schritt 611 wiederholt (Schritt 604, Schritt 612). Mit anderen Worten, der Betrieb von Schritt 605 bis Schritt 611 wird für die gesamte Anwendungspartition 107 wiederholt.
  • Da die Anwendungspartition 107, die dem Verifizierungsprogramm 110 unterliegt, im allgemeinen eine größere Kapazität als die des Disk-Cache-Bereichs 108 aufweist, sollen alte Cache-Daten 125 durch danach ausgelesene Codedaten überschrieben werden.
  • Beim Schreiben von Codedaten in den Disk-Cache-Bereich 108 sucht die Cache-Verwaltungseinheit 119 nach einem Bereich, in dem das Überschreibungsverbot-Flag 123 nicht AN ist, d. h. nach einem Bereich, in dem Überschreiben möglich ist, und schreibt die Codedaten in den Bereich, in dem das Überschreiben möglich ist. Wenn in dem Bereich, in dem Überschreiben möglich ist, bereits Codedaten gespeichert wurden, so sind diese Codedaten durch neue Codedaten zu überschreiben.
  • Cache-Daten 125 in einem Bereich, in dem das Überschreibungsverbot-Flag 123 AN ist (d.h. die Überschreibungsverbotsdaten), werden im Disk-Cache-Bereich 108 gehalten, ohne durch andere Codedaten überschrieben zu werden.
  • Anschließend wird unter Bezugnahme auf 12 und 13 eine Erläuterung eines Beispielbetriebs gegeben, der durch Laden und Ausführen der Anwendung 111 über das obere Dateisystem 115 und das untere Dateisystem 114 durchgeführt wird.
  • Nach kontinuierlicher Ausführung des Verifizierungsprogramms 110 wird die Ausführung der Anwendung 111 gestartet (Schritt 701).
  • Eine Ladeeinrichtung startet einen Ladebetrieb eines Ausführungsabbilds der Anwendung 111 aus dem Speicher 104 und das obere Dateisystem 115 startet das Auslesen (Schritte 702 und 703). Zu diesem Zeitpunkt wird bestimmt, ob ein Block, der ausgelesen werden soll, im Disk-Cache-Bereich 108 (Schritt 704) vorhanden ist oder nicht. Konkret wird ein Ablauf aus den Schritten 505 bis 509 in 8 ausgeführt, und die Cache-Verwaltungseinheit 119 bestimmt, ob Codedaten einer in Schritt 509 berechneten Blocknummer im Disk-Cache-Bereich 108 vorhanden sind oder nicht.
  • Wenn die auszulesenden Codedaten im Disk-Cache-Bereich 108 vorhanden sind (JA in Schritt 704), liest die Cache-Verwaltungseinheit 119 die relevanten Cache-Daten 125 aus dem Disk-Cache-Bereich 108 aus und überträgt die ausgelesenen Cache-Daten 125 an die Ladeeinrichtung (Schritt 705). Konkret überträgt die Cache-Verwaltungseinheit 119 die aus dem Disk-Cache-Bereich 108 ausgelesenen Cache-Daten 125 an die Block-Zugriff-API-Einheit 117, und danach wird ein Ablauf der Schritte 514 und 515 in 9 ausgeführt.
  • Und außerdem subtrahiert die Cache-Verwaltungseinheit 119 Eins von einer Referenzzählung 124 der ausgelesenen Cache-Daten 125 (Schritt 706).
  • Wenn ein Wert der Referenzzählung 124 durch Subtrahieren von Eins von der Referenzzählung 124 zu Null wird (JA in Schritt 707), gibt die Cache-Verwaltungseinheit 119 einen relevanten Bereich frei, um die Verwendung des Bereichs als neuen Disk-Cache zu ermöglichen (Schritt 708). Mit anderen Worten: Wenn der Zugriff auf Cache-Daten so oft ausgeführt wird, wie der in 3 angegebene Zugriff, annulliert die Cache-Verwaltungseinheit 119 die Cache-Daten.
  • Wenn sich andererseits im Disk-Cache-Bereich 108 in Schritt 704 kein auslesbarer Block befindet (NEIN in Schritt 704), liest das obere Dateisystem 115 relevante Codedaten aus dem Speicher 104 aus und überträgt die ausgelesenen Codedaten an die Ladeeinrichtung (Schritt 709). Konkret wird ein Ablauf aus Schritt 509 in 8 und den Schritten 513 bis 515 in 9 ausgeführt.
  • Wenn das Laden abgeschlossen ist (JA in Schritt 710), ist ein Prozess abgeschlossen.
  • Wenn andererseits das Laden des Ausführungsabbildes noch nicht abgeschlossen ist (NEIN in Schritt 710), berechnet die Gerätezugriffseinheit 116 eine Blocknummer, auf die die Gerätezugriffseinheit 116 als nächstes zugreifen soll (Schritt 711), und ein Ablauf von und nach Schritt 704 wird wiederholt.
  • *** Beschreibung der Wirkungen der Ausführungsform ***
  • Wie vorstehend beschrieben, werden in der vorliegenden Ausführungsform Cache-Daten von Daten, auf die beim Datenzugriff über ein Dateisystem häufig zugegriffen wird, aus Cache-Daten, die durch Datenzugriff nicht über das Dateisystem beschafft werden, wie z. B. ein sicherer Boot-Vorgang, ohne Überschreiben aufbewahrt. Daher ist es bei der Ausführung des Datenzugriffs über das Dateisystem möglich, die Cache-Daten zu verwenden, um den Datenzugriff mit hoher Geschwindigkeit auszuführen.
  • Die vorliegende Erfindung ermöglicht dementsprechend eine effiziente Cache-Verwaltung unter einer Konfiguration, bei der der Datenzugriff über das Dateisystem und der Datenzugriff nicht über das Dateisystem auftreten.
  • Eine Partition, die einem sicheren Boot-Vorgang unterliegt, ist dem Auslesen gewidmet. Die herkömmliche Technologie verwendet jedoch einen konventionellen Cache-Verwerfungsalgorithmus, der durch ein Dateisystem umgesetzt wird, und bestimmt die Cache-Daten, die verworfen werden sollten, unter Verwendung von Informationen, die verfügbar sind, wenn eine Anwendung ausgeführt wird. Daher kann die Bestimmung der Cache-Daten-Vernichtung mit der herkömmlichen Technologie nicht effizient durchgeführt werden.
  • Gemäß der vorliegenden Ausführungsform ist es möglich, einen Block, der häufig in einer Anwendungspartition verwendet wird, zu lernen und die Anzahl der Auslesezeiten zu erkennen, bis die dem Block entsprechenden Cache-Daten verworfen werden, indem im Voraus ein Protokoll über die Ausführung einer Anwendung geführt wird. Gemäß der vorliegenden Ausführungsform ist es auch möglich, relevante Cache-Daten zu verwerfen, wenn die Anzahl der Auslesezeiten eine vorgeschriebene Anzahl erreicht, indem die Anzahl der Auslesezeiten bis zum Verwerfen der Cache-Daten erkannt wird. Auf diese Weise wird es möglich, einen Bereich, in dem die Cache-Daten verworfen werden, als einen neuen Disk-Cache zu verwenden und dadurch den Disk-Cache effizient zu nutzen.
  • Ausführungsform 2.
  • In Ausführungsform 1 wird die Konfiguration erläutert, die ein Hochgeschwindigkeitsdatenauslesen und die effiziente Nutzung eines Disk-Caches ermöglicht, wenn es nur eine Anwendung gibt. In der vorliegenden Ausführungsform wird eine Konfiguration erläutert, die das Hochgeschwindigkeitsdatenauslesen und die effiziente Nutzung eines Disk-Caches ermöglicht, wenn es eine Vielzahl von Anwendungen gibt.
  • In der vorliegenden Ausführungsform werden hauptsächlich Unterschiede zu Ausführungsform 1 beschrieben.
  • Zu beachten ist, dass die im Folgenden nicht erläuterten Sachverhalte die gleichen sind wie die in Ausführungsform 1.
  • *** Beschreibung der Konfiguration ***
  • 5 stellt ein Beispiel einer funktionalen Konfiguration einer Informationsverarbeitungsvorrichtung 100 gemäß der vorliegenden Ausführungsform dar.
  • Im Vergleich zu 2, gibt es in 5 drei Anwendungen (eine Anwendung A 134, eine Anwendung B 135 und eine Anwendung C 136). Außerdem gibt drei Anwendungspartitionen (eine Anwendung A-Partition 130, eine Anwendung B-Partition 131 und eine Anwendung-C Partition 132). Die Anwendung A 134 ist in der Anwendung A-Partition 130 gespeichert. Die Anwendung B 135 ist in der Anwendung B-Partition 131 gespeichert. Die Anwendung C 136 ist in der Anwendung C-Partition 132 gespeichert.
  • In 5 wird angenommen, dass es drei Anwendungen gibt. Die Anzahl der Anwendungen ist jedoch willkürlich.
  • Außerdem gibt es in 5 einen Historienspeicherbereich 133 anstelle des Historienspeicherbereichs 106.
  • Der Historienspeicherbereich 133 weist eine Konfiguration auf, die den drei Anwendungen entspricht.
  • Auf eine Beschreibung anderer Komponenten wird verzichtet, da sie die gleichen sind wie die in 2 dargestellten.
  • 6 zeigt ein Beispiel einer Konfiguration des Historienspeicherbereichs 133.
  • Ein Eintrag 140 in 6 umfasst zusätzlich zu der Zusammensetzung des Eintrags 120 in 3 eine Partitionsnummer. Der Einfachheit halber wird die Partitionsnummer in 6 durch A, B und C dargestellt. Es ist jedoch angemessen, die Partitionsnummer in einem echten Fall mit einem nummerischen Wert darzustellen.
  • Eine Partitionsnummer A entspricht der Anwendung A-Partition 130. Eine Partitionsnummer B entspricht der Anwendung B-Partition 131. Eine Partitionsnummer C entspricht der Anwendung C-Partition 132.
  • In der vorliegenden Ausführungsform speichert die Zugriffszeiten-Verwaltungseinheit 118 die Anzahl der Zugriffszeiten in einem entsprechenden Eintrag 140 für jede der Anwendungspartitionen.
  • *** Beschreibung des Betriebs ***
  • Als nächstes wird der Betrieb der Informationsverarbeitungsvorrichtung 100 nach der vorliegenden Ausführungsform erläutert.
  • In der vorliegenden Ausführungsform ist eine Aktivierungsreihenfolge der Anwendungen nicht vorgeschrieben. Somit berechnet die Zugriffszeiten-Verwaltungseinheit 118 einen Schwellenwert 121 für jede der Anwendungen. Mit anderen Worten wird für jede der Anwendungen ein Prozess von 8 und 9 ausgeführt, und die Zugriffszeiten-Verwaltungseinheit 118 speichert im Historienspeicherbereich 133 die Anzahl der Zugriffszeiten aller Codedaten für jede der Anwendungen und bestimmt den Schwellenwert 121 auf der Grundlage der Anzahl der Zugriffszeiten für jede der Anwendungen.
  • Die Art und Weise, wie die Anzahl der Zugriffszeiten im Historienspeicherbereich 133 gespeichert wird und wie der Schwellenwert 121 bestimmt werden kann, ist die gleiche wie in Ausführungsform 1 beschrieben. In der vorliegenden Ausführungsform wird die Anzahl der Zugriffszeiten aufgezeichnet und der Schwellenwert 121 wird für jede der Anwendungen bestimmt.
  • Darüber hinaus extrahiert die Cache-Verwaltungseinheit 119 in der vorliegenden Ausführungsform für jede der Anwendungen Codedaten, für die bei der Verifizierung durch das Verifizierungsprogramm 110 die Anzahl der Zugriffszeiten, die gleich wie oder größer als der Schwellenwert 121 ist, im Historienspeicherbereich 106 gespeichert wird. Dann stellt die Cache-Verwaltungseinheit 119 als Überschreibungsverbotsdaten und Caches im Disk-Cache-Bereich 108 die extrahierten Code-Daten ein.
  • Der Betrieb der Cache-Verwaltungseinheit 119 selbst ist der gleiche wie der in Ausführungsform 1 beschriebene. In der vorliegenden Ausführungsform vergleicht die Cache-Verwaltungseinheit 119 die Anzahl der Zugriffszeiten mit den Schwellenwerten 121 für jede der drei Anwendungen und bestimmt, ob die extrahierten Codedaten als Überschreibungsverbotsdaten eingestellt werden sollen oder nicht.
  • *** Beschreibung der Wirkungen der Ausführungsform ***
  • Gemäß der vorliegenden Ausführungsform ist es möglich, für eine Vielzahl von Anwendungen die gleichen Wirkungen zu erzielen, wie die in Ausführungsform 1 beschriebenen.
  • Und gemäß der vorliegenden Ausführungsform ist es auch möglich, für jede Anwendungspartition eine Verifizierung durchzuführen. Somit ist es möglich ein Verifizierungsprogramm für die Vielzahl von Anwendungen gleichzeitig auszuführen und damit einen Verifizierungsprozess zu beschleunigen.
  • Ausführungsform 3.
  • In Ausführungsform 1 gibt es im Speicher 104 einen Historienspeicherbereich. Wenn jedoch die Größe der Anwendungspartition groß ist, wird die Zugriffshäufigkeit auf den Speicher 104 hoch. Somit besteht die Möglichkeit, dass sich die Performance verschlechtert. Um dies zu vermeiden, wird in der vorliegenden Ausführungsform eine Konfiguration erläutert, bei der der Historienspeicherbereich im Gerätetreiber 113 zwischengespeichert ist. Unter der Konfiguration der vorliegenden Ausführungsform ist es möglich, die Verschlechterung der Geschwindigkeit des Datenzugriffs zu steuern, indem Informationen im Historienspeicherbereich zu einem Zeitpunkt zurück in den Speicher 104 geschrieben werden, wenn das Schreiben in den Historienspeicherbereich abgeschlossen ist.
  • In der vorliegenden Ausführungsform werden hauptsächlich Unterschiede zu Ausführungsform 1 beschrieben.
  • Zu beachten ist, dass im Folgenden nicht erläuterte Sachverhalte die gleichen sind wie die in Ausführungsform 1.
  • 7 stellt ein Beispiel einer funktionalen Konfiguration einer Informationsverarbeitungsvorrichtung 100 gemäß der vorliegenden Ausführungsform dar.
  • Im Vergleich zu 1 wird in 7 ein Historienspeicherbereich (Cache) 150 hinzugefügt.
  • In 7 ist zum leichteren Verständnis der Historienspeicherbereich (Cache) 150 im Gerätetreiber 113 dargestellt. Der Historienspeicherbereich (Cache) 150 ist jedoch physisch im Disk-Cache-Bereich 108 im RAM 103 angeordnet.
  • Es ist zu beachten, dass 7 aus zeichnerischen Gründen keine interne Konfiguration des Speichers 104 darstellt, die interne Konfiguration des Speichers 104 in 7 jedoch doch die gleiche ist wie die in 1. Mit anderen Worten gibt es auch in dem Speicher 104 in 7 die Anwendungspartition 107, den Historienspeicherbereich 106 und den Firmware-Bereich 109.
  • Als nächstes wird ein Beispiel für den Betrieb der Informationsverarbeitungsvorrichtung 100 nach der vorliegenden Ausführungsform erläutert.
  • In der vorliegenden Ausführungsform werden Informationen im Historienspeicherbereich 106 im Speicher 104 bei Aktivierung des Betriebssystems 112 in den Disk-Cache-Bereich 108 kopiert. Dadurch wird der Historienspeicherbereich (Cache) 150 erzeugt.
  • Die Zugriffszeiten-Verwaltungseinheit 118 schreibt die Anzahl der Zugriffszeiten in den Historienspeicherbereich (Cache) 150. Die Zugriffszeiten-Verwaltungseinheit 118 berechnet auch einen Schwellenwert 121 auf Grundlage der Anzahl der Zugriffszeiten, die in den Historienspeicherbereich (Cache) 150 geschrieben sind.
  • Informationen im Historienspeicherbereich (Cache) 150 werden zurück in den Historienspeicherbereich 106 im Speicher 104 geschrieben, nachdem der Schwellenwert 121 durch die Zugriffszeiten-Verwaltungseinheit 118 berechnet und die Anwendung 111 geschlossen ist.
  • Wie vorstehend beschrieben, ist in der vorliegenden Ausführungsform ein Cache-Bereich im Historienspeicherbereich im Arbeitsspeicher umgesetzt, und so ist es möglich, häufige Zugriffe auf einen Speicher zu vermeiden und eine Verschlechterung der Performance zu steuern.
  • Ausführungsformen der vorliegenden Erfindung sind vorstehend beschrieben. Zwei oder mehr von diesen Ausführungsformen können jedoch in Kombination implementiert werden.
  • Alternativ kann jede dieser Ausführungsformen teilweise implementiert werden.
  • Alternativ können zwei oder mehr von diesen Ausführungsformen teilweise in Kombination implementiert werden.
  • Es ist darauf hinzuweisen, dass die vorliegende Erfindung nicht auf diese Ausführungsformen beschränkt ist und auf unterschiedliche Weise bei Bedarf geändert werden kann.
  • Bezugszeichenliste
  • 100: Informationsverarbeitungsvorrichtung; 101: Prozessor; 102: Bus; 103: RAM; 104: Speicher; 105: E/A-Einrichtung; 106: Historienspeicherbereich; 107: Anwendungspartition; 108: Disk-Cache-Bereich; 109: Firmware-Bereich; 110: Verifizierungsprogramm; 111: Anwendung; 112: Betriebssystem; 113: Gerätetreiber; 114: unteres Dateisystem; 115: oberes Dateisystem; 116: Gerätezugriffseinheit; 117: Block-Zugriff-API-Einheit; 118: Zugriffszeiten-Verwaltungseinheit; 119: Cache-Verwaltungseinheit; 130: Anwendung A-Partition, 131: Anwendung B-Partition; 132: Anwendung C-Partition; 133: Historienspeicherbereich; 134: Anwendung A; 135: Anwendung B; 136: Anwendung C; 150: Historienspeicherbereich (Cache)
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • JP 4724362 [0005]
    • JP 6046978 [0005]
    • JP 58224491 A [0005]

Claims (11)

  1. Informationsverarbeitungsvorrichtung, umfassend: einen Cache-Bereich; einen Zugriffszeiten-Speicherbereich, um eine Anzahl von Zugriffszeiten über ein Dateisystem für jedes einer Vielzahl von Datenstücken zu speichern; und eine Cache-Verwaltungseinheit, um, wenn ein Zugriff auf die Vielzahl von Datenstücken nicht über das Dateisystem auftritt, Daten als Überschreibungsverbotsdaten einzustellen und im Cache-Bereich zwischenzuspeichern, für die eine Anzahl von Zugriffszeiten, die gleich wie oder größer als ein Schwellenwert ist, im Zugriffszeiten-Speicherbereich gespeichert ist, wobei der Schwellenwert auf der Grundlage einer Anzahl von Zugriffszeiten der Vielzahl von Datenstücken bestimmt wird.
  2. Informationsverarbeitungsvorrichtung nach Anspruch 1, wobei die Cache-Verwaltungseinheit Daten, für die eine Anzahl von Zugriffszeiten, die unter dem Schwellenwert liegt, im Zugriffszeiten-Speicherbereich gespeichert ist, ohne Überschreiben auf den Überschreibungsverbotsdaten zwischenspeichert.
  3. Informationsverarbeitungsvorrichtung nach Anspruch 1 oder 2, wobei die Cache-Verwaltungseinheit eine Anzahl von Zugriffszeiten, die im Zugriffszeiten-Speicherbereich gespeichert ist, in den Cache-Bereich schreibt, wobei die Anzahl der Zugriffszeiten Daten zugeordnet wird, die im Cache-Bereich zwischengespeichert werden sollen.
  4. Informationsverarbeitungsvorrichtung nach Anspruch 3, wobei, wenn der Zugriff über das Dateisystem auf die Daten, die im Cache-Bereich zwischengespeichert sind, mit einer Anzahl von Malen ausgeführt wird, die der Anzahl von Zugriffszeiten entspricht, die Cache-Verwaltungseinheit die im Cache-Bereich zwischengespeicherten Daten annulliert.
  5. Informationsverarbeitungsvorrichtung nach Anspruch 1, wobei, wenn ein Zugriff auf die Vielzahl von Datenstücken nicht über das Dateisystem auftritt, für eine Verifikation von Integrität und Authentizität der Vielzahl von Datenstücken, die Cache-Verwaltungseinheit diejenigen Daten als Überschreibungsverbotsdaten einstellt und im Cache-Bereich zwischenspeichert, für die eine Anzahl von Zugriffszeiten, die gleich wie oder größer als der Schwellenwert ist, im Zugriffszeiten-Speicherbereich gespeichert ist.
  6. Informationsverarbeitungsvorrichtung nach Anspruch 5, wobei der Zugriffszeiten-Speicherbereich eine Anzahl von Zugriffszeiten über das Dateisystem für jedes einer Vielzahl von Codedatenstücken, die ein Anwendungsprogramm bilden, speichert, und wobei, wenn ein Zugriff auf die Vielzahl von Datenstücken nicht über das Dateisystem auftritt, für eine Verifikation von Integrität und Authentizität der Vielzahl von Codedatenstücken, die das Anwendungsprogramm bilden, die Cache-Verwaltungseinheit diejenigen Codedaten als die Überschreibungsverbotsdaten einstellt und im Cache-Bereich zwischenspeichert, für die eine Anzahl von Zugriffszeiten, die gleich wie oder größer als der Schwellenwert ist, im Zugriffszeiten-Speicherbereich gespeichert ist.
  7. Informationsverarbeitungsvorrichtung nach Anspruch 6, wobei der Zugriffszeiten-Speicherbereich in Bezug auf eine Vielzahl von Anwendungsprogrammen und für jedes der Anwendungsprogramme die Anzahl der Zugriffszeiten über das Dateisystem für jedes der Vielzahl von Codedatenstücken, die das Anwendungsprogramm bilden, speichert, und wobei, wenn der Zugriff nicht über das Dateisystem auf die Vielzahl von Codedatenstücken der Vielzahl von Anwendungsprogrammen auftritt, für die Verifikation von Integrität und Authentizität, die Cache-Verwaltungseinheit diejenigen Codedaten als die Überschreibungsverbotsdaten einstellt und im Cache-Bereich zwischenspeichert, für die eine Anzahl von Zugriffszeiten, die gleich wie oder größer als der Schwellenwert ist, im Zugriffszeiten-Speicherbereich für jedes der Anwendungsprogramme gespeichert ist.
  8. Informationsverarbeitungsvorrichtung nach Anspruch 7, wobei die Cache-Verwaltungseinheit einen Schwellwert verwendet, der für jedes der Anwendungsprogramme bestimmt ist, und für jedes der Anwendungsprogramme Codedaten als Überschreibungsverbotsdaten einstellt und im Cache-Bereich zwischenspeichert, für die eine Anzahl von Zugriffszeiten, die gleich wie oder größer als ein entsprechender Schwellwert ist, im Zugriffszeiten-Speicherbereich gespeichert ist.
  9. Informationsverarbeitungsvorrichtung nach Anspruch 1, wobei die Informationsverarbeitungsvorrichtung den Zugriffszeiten-Speicherbereich umfasst, der im Cache-Speicher für einen Gerätetreiber vorgesehen ist.
  10. Informationsverarbeitungsverfahren durch einen Computer, einen Cache-Bereich und einen Zugriffszeiten-Speicherbereich aufweisend, der eine Anzahl von Zugriffszeiten über ein Dateisystem für jedes einer Vielzahl von Datenstücken speichert, wobei das Informationsverarbeitungsverfahren umfasst: Einstellen als Überschreibungsverbotsdaten und Zwischenspeichern im Cache-Bereich von Daten, für die eine Anzahl von Zugriffszeiten, die gleich wie oder größer als ein Schwellenwert ist, im Zugriffszeiten-Speicherbereich gespeichert ist, wobei der Schwellenwert auf der Grundlage einer Anzahl von Zugriffszeiten der Vielzahl von Datenstücken bestimmt wird, wenn ein Zugriff auf die Vielzahl von Datenstücken nicht über das Dateisystem auftritt.
  11. Informationsverarbeitungsprogramm, das einen Computer, der einen Cache-Bereich und einen Zugriffszeiten-Speicherbereich aufweist, der eine Anzahl von Zugriffszeiten über ein Dateisystem für jedes einer Vielzahl von Datenstücken speichert, veranlasst zur Ausführung: eines Cache-Verwaltungsprozesses eines Einstellens als Überschreibungsverbotsdaten und Zwischenspeicherns im Cache-Bereich von Daten, für die eine Anzahl von Zugriffszeiten, die gleich wie oder größer als ein Schwellenwert ist, im Zugriffszeiten-Speicherbereich gespeichert ist, wobei der Schwellenwert auf der Grundlage einer Anzahl von Zugriffszeiten der Vielzahl von Datenstücken bestimmt wird, wenn ein Zugriff auf die Vielzahl von Datenstücken nicht über das Dateisystem auftritt.
DE112017008201.3T 2017-12-18 2017-12-18 Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm Expired - Fee Related DE112017008201B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/045336 WO2019123519A1 (ja) 2017-12-18 2017-12-18 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
DE112017008201T5 true DE112017008201T5 (de) 2020-07-30
DE112017008201B4 DE112017008201B4 (de) 2022-02-24

Family

ID=66993280

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017008201.3T Expired - Fee Related DE112017008201B4 (de) 2017-12-18 2017-12-18 Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm

Country Status (5)

Country Link
US (1) US20200257630A1 (de)
JP (1) JP6689471B2 (de)
CN (1) CN111465926A (de)
DE (1) DE112017008201B4 (de)
WO (1) WO2019123519A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234431B (zh) * 2023-11-14 2024-02-06 苏州元脑智能科技有限公司 缓存管理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4724362Y1 (de) 1969-06-22 1972-08-01
JPS58224491A (ja) 1982-06-21 1983-12-26 Fujitsu Ltd デ−タ相関管理処理方式
JPS6046978B2 (ja) 1983-01-20 1985-10-18 ツインベル ユゴー 子宮内避妊具

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06124239A (ja) * 1992-10-13 1994-05-06 Kawasaki Steel Corp キャッシュメモリの常駐データ制御装置
JP3111912B2 (ja) * 1996-11-29 2000-11-27 日本電気株式会社 ディスクキャッシュ制御方式
JP2002099465A (ja) * 2000-09-25 2002-04-05 Hitachi Ltd キャッシュ制御方法
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
JP2008026970A (ja) * 2006-07-18 2008-02-07 Toshiba Corp ストレージ装置
US20120047330A1 (en) 2010-08-18 2012-02-23 Nec Laboratories America, Inc. I/o efficiency of persistent caches in a storage system
JP6046978B2 (ja) 2012-10-26 2016-12-21 キヤノン株式会社 情報処理装置およびその方法
JP6106028B2 (ja) * 2013-05-28 2017-03-29 株式会社日立製作所 サーバ及びキャッシュ制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4724362Y1 (de) 1969-06-22 1972-08-01
JPS58224491A (ja) 1982-06-21 1983-12-26 Fujitsu Ltd デ−タ相関管理処理方式
JPS6046978B2 (ja) 1983-01-20 1985-10-18 ツインベル ユゴー 子宮内避妊具

Also Published As

Publication number Publication date
WO2019123519A1 (ja) 2019-06-27
DE112017008201B4 (de) 2022-02-24
JP6689471B2 (ja) 2020-04-28
JPWO2019123519A1 (ja) 2020-04-02
CN111465926A (zh) 2020-07-28
US20200257630A1 (en) 2020-08-13

Similar Documents

Publication Publication Date Title
DE102012216022B4 (de) Verwaltung einer Zeitpunktkopie-Beziehung für platzsparende Datenträger
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE60030876T2 (de) Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität
DE69836796T2 (de) Datenverarbeiter mit lokalisierter gedächtnisreklamierung
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE102017112751A1 (de) Internes Vorkonditionieren von Halbleiterlaufwerken für verschiedene Arbeitslasten
DE102009034651A1 (de) Prozess und Verfahren zur Abbildung von logischen Adressen auf physische Adressen in Festkörperplatten
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE102009046444A1 (de) An die Software angepasste Abnutzungsausgleichung
DE112011105774B4 (de) Verschiebbarer Speicher, der In-Memory-Datenstrukturen unterstützt
DE102015007709A1 (de) Invalidationsdatenbereich für einen Cache
DE102005019842A1 (de) System und Verfahren zum sequentiellen Schreiben von Daten in einen Flash-Speicher
DE112004001255T5 (de) Speichervorrichtung und Speichersystem
DE112017005782T5 (de) Warteschlange für Speichervorgänge
DE102012203713A1 (de) Verfahren und Vorrichtung zur Verlängerung der Lebensdauer von Speichern
DE112017008201B4 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
EP2948894B1 (de) Verfahren zum sicheren löschen eines nichtflüchtigen halbleiter-massenspeichers, computersystem sowie computerprogrammprodukt
DE10321104B4 (de) Verfahren zur Ablage von veränderlichen Daten
DE10127194B4 (de) Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen
DE112021005128T5 (de) Verwalten eines am längsten nicht verwendeten daten-caches mit einempersistenten hauptteil
DE102004005290B3 (de) Verfahren und Vorrichtung zur Absicherung von Daten in einem nichtflüchtigen Datenspeicher
DE112015002881B4 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm
DE10227256C1 (de) Verfahren zum Adressieren von blockweise löschbaren Speichern
DE69637329T2 (de) Speichermanagementsystem und verfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee