DE112012002452T5 - Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten - Google Patents

Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten Download PDF

Info

Publication number
DE112012002452T5
DE112012002452T5 DE112012002452.4T DE112012002452T DE112012002452T5 DE 112012002452 T5 DE112012002452 T5 DE 112012002452T5 DE 112012002452 T DE112012002452 T DE 112012002452T DE 112012002452 T5 DE112012002452 T5 DE 112012002452T5
Authority
DE
Germany
Prior art keywords
track
providing
record
cache
tracks
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
DE112012002452.4T
Other languages
English (en)
Other versions
DE112012002452B4 (de
Inventor
Joseph S. Hyde II
Michael T. Benhase
Lokesh M. Gupta
Lee C. LaFrese
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112012002452T5 publication Critical patent/DE112012002452T5/de
Application granted granted Critical
Publication of DE112012002452B4 publication Critical patent/DE112012002452B4/de
Active 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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
    • 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Eine Speichersteuereinheit empfängt eine Anfrage, die einem Zugriff auf eine Spur in einem Cachespeicher entspricht. Es wird eine Bestimmung durchgeführt, ob die Spur Daten entspricht, die auf einer Halbleiterplatte gespeichert sind. Als Reaktion darauf, dass die Spur Daten entspricht, die auf der Halbleiterplatte gespeichert sind, wird ein Bereitstellen eines Datensatzes von der Halbleiterplatte in den Cachespeicher ausgeführt, wobei jede Spur eine Vielzahl von Datensätzen aufweist.

Description

  • HINTERGRUND
  • 1. Gebiet der Erfindung
  • Die Offenbarung bezieht sich auf ein Verfahren, ein System und ein Produkt für ein anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten.
  • 2. Hintergrund
  • Eine Speichersteuereinheit kann eine Vielzahl von Speichereinheiten steuern, zu denen Festplatten, Bänder usw. gehören. Ein Cachespeicher kann auch durch die Speichersteuereinheit geführt werden, wobei der Cachespeicher einen Hochgeschwindigkeitsspeicher aufweisen kann, der im Vergleich zu bestimmten anderen Speichereinheiten wie zum Beispiel Festplatten, Bänder usw. schneller zugänglich ist. Die Gesamtmenge an Speicherkapazität des Cachespeichers kann jedoch relativ kleiner sein im Vergleich zur Speicherkapazität bestimmter anderer Speichereinheiten wie zum Beispiel Festplatten, Bänder usw., die von der Speichersteuereinheit gesteuert werden.
  • Bei bestimmten Speichersteuereinheiten können verschiedene vorausschauende oder anpassungsfähige Zwischenspeichermechanismen verwendet werden, um Daten in dem Cachespeicher zu speichern. Bestimmte Daten, die häufiger verwendet werden, oder Daten, die wahrscheinlich häufiger verwendet werden, können in der Erwartung, dass auf die Daten wahrscheinlich in der näheren Zukunft zugegriffen wird, in den Cachespeicher geschoben werden. Auf diese Arten von Zwischenspeichermechanismen wird als vorausschauendes oder anpassungsfähiges Zwischenspeichern Bezug genommen und sie können durch eine anpassungsfähige Zwischenspeicheranwendung ausgeführt werden, die in einer Speichersteuereinheit geführt wird. Die Speichersteuereinheit kann als Reaktion auf eine Anfrage nach Daten, wenn die angefragten Daten nicht in dem Cachespeicher gefunden werden, die angefragten Daten aus den Speichereinheiten abrufen, die von der Speichersteuereinheit gesteuert werden.
  • Zu einer Halbleiterplatte (solid state disk, SSD) kann eine Speichereinheit gehören, die einen Halbleiterspeicher verwendet, um persistente Digitaldaten zu speichern. Zu den Halbleiterplatten können Flashspeicher oder Speicher anderer Arten gehören. Auf die Halbleiterplatten kann im Vergleich zu elektromechanisch zugänglichen Datenspeichereinheiten wie zum Beispiel Festplatten schneller zugegriffen werden.
  • KURZDARSTELLUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Ein Verfahren, ein System und ein Computerprogrammprodukt werden bereitgestellt, in denen eine Speichersteuereinheit eine Anfrage empfängt, die einem Zugriff auf eine Spur in einem Cachespeicher entspricht. Es wird eine Bestimmung durchgeführt, ob die Spur Daten entspricht, die auf einer Halbleiterplatte gespeichert sind. Als Reaktion darauf, dass die Spur Daten entspricht, die auf der Halbleiterplatte gespeichert sind, wobei jede Spur eine Vielzahl von Datensätzen aufweist, wird ein Bereitstellen eines Datensatzes von der Halbleiterplatte in den Cachespeicher ausgeführt.
  • Bei weiteren Ausführungsformen wird eine Bestimmung getroffen, ob die Spur Daten entspricht, die auf einer Festplatte gespeichert sind. Als Reaktion darauf, dass die Spur Daten entspricht, die auf der Festplatte gespeichert sind, wird auf der Grundlage eines in der Speichersteuereinheit geführten Kriteriums eine Auswahl getroffen zwischen dem Ausführen eines Bereitstellens eines Teils einer Spur, eines Bereitstellens einer vollständigen Spur und eines Bereitstellens eines Datensatzes von der Festplatte in den Cachespeicher. Bei dem Bereitstellen einer vollständigen Spur wird eine ganze Spur bereitgestellt, bei dem Bereitstellen eines Teils einer Spur werden alle Sektoren beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur bereitgestellt und beim Bereitstellen eines Datensatzes werden nur die angefragten Sektoren bereitgestellt.
  • Bei noch weiteren Ausführungsformen wird das Bereitstellen eines Datensatzes von der Halbleiterplatte ausgeführt, wenn nicht relativ kurze Zeit zuvor auf die Spur zugegriffen wurde, und eine Auswahl wird zumindest aus einem Bereitstellen eines Teils einer Spur und einem Bereitstellen einer vollständigen Spur getroffen, wenn relativ kurze Zeit zuvor auf die Spur zugegriffen wurde.
  • Bei weiteren Ausführungsformen wird eine Liste für selten verwendete Spuren geführt, in der jede Spur in der Liste fortlaufend in einer monoton ansteigenden Reihenfolge so nummeriert wird, wie in dem Cachespeicher auf jede Spur zugegriffen wird und wie sie danach in der Liste selten verwendeter Spuren platziert wird. Auf der Grundlage eines vorbestimmten Kriteriums, das auf den Laufnummern der Spuren in der Liste selten verwendeter Spuren, auf einer Cachespeicherplatzkapazität, die von den in dem Cachespeicher gespeicherten Spuren beansprucht wird, und auf einem Schwellenwert beruht, der eine Speicherkapazität anzeigt, wird eine Bestimmung getroffen, ob eine ausgewählte Spur kurze Zeit zuvor verwendet wurde.
  • Bei noch weiteren Ausführungsformen wird das Bereitstellen eines Datensatzes als ein standardmäßiger Bereitstellungsvorgang für Halbleiterplatten verwendet, die mit der Speichersteuereinheit verbunden sind, und das Bereitstellen eines Teils einer Spur wird als der standardmäßige Bereitstellungsvorgang für Festplatten verwendet, die mit der Speichersteuereinheit verbunden sind, wobei bei dem Bereitstellen eines Teils einer Spur alle Sektoren, beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur, bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen stehen gleiche Bezugszeichen durchgehend für die gleichen Elemente:
  • 1 stellt ein Blockschaubild einer Computerumgebung dar, zu der gemäß bestimmten Ausführungsformen eine Speichersteuereinheit, die mit einer Vielzahl von Hosts verbunden ist, eine Vielzahl von Festplatten und eine Vielzahl von Halbleiterplatten gehören;
  • 2 stellt ein Blockschaubild dar, das die logische Darstellung eines Datenspeichers gemäß bestimmten Ausführungsformen zeigt;
  • 3A stellt ein Blockschaubild dar, das beispielhafte Bereitstellungsvorgänge gemäß bestimmten Ausführungsformen zeigt;
  • 3B stellt ein Blockschaubild dar, das ein Bereitstellen einer vollständigen Spur, ein Bereitstellen eines Teils einer Spur und ein Bereitstellen eines Datensatzes gemäß bestimmten Ausführungsformen zeigt;
  • 4 stellt ein Blockschaubild dar, das Datenstrukturen für ein anpassungsfähiges Zwischenspeichern gemäß bestimmten Ausführungsformen zeigt;
  • 5 stellt ein Blockschaubild dar, das Vorgänge für ein anpassungsfähiges Zwischenspeichern gemäß bestimmten Ausführungsformen zeigt;
  • 6 stellt ein Blockschaubild dar, das eine beispielhafte Ausführungsform für Halbleiterplatten gemäß bestimmten Ausführungsformen zeigt;
  • 7 stellt einen Ablaufplan dar, der bestimmte Vorgänge gemäß bestimmten Ausführungsformen zeigt;
  • 8 stellt einen Ablaufplan dar, der bestimmte Vorgänge gemäß bestimmten Ausführungsformen zeigt; und
  • 9 stellt ein Blockschaubild eines Computersystems dar, das bestimmte Elemente zeigt, die zu der Speichersteuereinheit in 1 gemäß bestimmten Ausführungsformen gehören können.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung wird auf die begleitenden Zeichnungen Bezug genommen, die einen Teil der Beschreibung bilden und die mehrere Ausführungsformen darstellen. Es ist selbstverständlich, das weitere Ausführungsformen verwendet werden können und das strukturelle und funktionelle Änderungen vorgenommen werden können.
  • Anpassungsfähige Zwischenspeichermechanismen
  • Anpassungsfähige Zwischenspeichermechanismen können für Festplatten ausgelegt werden, die mit einer Speichersteuereinheit verbunden sind. Bei bestimmten Ausführungsformen können auch Halbleitereinheiten mit einer Speichersteuereinheit verbunden sein. Halbleiterplatten weisen jedoch andere Eigenschaften auf als Festplatten. Während auf Halbleiterplatten im Vergleich zu Festplatten schneller zugegriffen werden kann, kann die Leistungsfähigkeit von Halbleiterplatten aufgrund des Übertragens von großen Blöcken anstelle des Übertragens von kleinen Blöcken viel schlechter sein. Die anpassungsfähigen Zwischenspeichermechanismen, die für die Festplatten ausgelegt sind, können jedoch das Übertragen großer Blöcke ausführen. Bei bestimmten Ausführungsformen, in denen die Halbleiterplatten verwendet werden, können diese anpassungsfähigen Zwischenspeichermechanismen verändert werden, um die Leistungsfähigkeit der Halbleiterplatten zu verbessern.
  • Bei bestimmten Ausführungsformen wird für Halbleiterplatten das Bereitstellen eines Datensatzes gegenüber dem Bereitstellen eines Teils einer Spur bevorzugt, das wiederum für Festplatten bevorzugt wird. Das Zwischenspeichern eines Datensatzes (d. h. das Bereitstellen oder das Kopieren von Datensätzen/Sektoren, die in dem Cachespeicher angefragt wurden) verursacht Übertragungen von relativ kleinen Blöcken im Vergleich zum Bereitstellen eines Teils einer Spur und übrigens auch im Vergleich zum Bereitstellen einer vollständigen Spur. Es wird darauf hingewiesen, dass eine Spur eine Vielzahl von Datensätzen aufweist und dass das Übertragen einer ganzen Spur oder des Teils einer Spur im Vergleich zum Übertragen von ausgewählten Datensätzen üblicherweise ein Übertragen von großen Blöcken verursacht.
  • Wenn eine Spur einer Halbleiterplatte nicht vor kurzer Zeit verwendet wurde [d. h. die Spur steht unten in einer Liste selten verwendeter Spuren (Least Recently Used list, LRU-Liste, die für den Cachespeicher geführt wird], wird außerdem bei bestimmten Ausführungsformen ein Zwischenspeichern von Datensätzen verwendet. Bei bestimmten Ausführungsformen können, wenn eine Spur einer Halbleiterplatte vor kurzer Zeit verwendet wurde (d. h. die Spur steht oben in der LRU-Liste, die für den Cachespeicher geführt wird), Bereitstellungsvorgänge von der Halbleiterplatte in den Cachespeicher in einer ähnlichen Weise wie die Bereitstellungsvorgänge von einer Festplatte in den Cachespeicher ausgeführt werden, indem zwischen dem Bereitstellen eines Datensatzes, dem Bereitstellen eines Teils einer Spur oder dem Bereitstellen einer vollständigen Spur gewählt wird.
  • Daher werden bei bestimmten Ausführungsformen anpassungsfähige Zwischenspeicheranwendungen für Festplatten verändert, um eine erweiterte anpassungsfähige Zwischenspeicheranwendung zu erzeugen, die sowohl für Festplatten als auch für Halbleitereinheiten verwendet werden kann.
  • Beispielhafte Ausführungsformen
  • 1 stellt ein Blockschaubild einer Computerumgebung 100 dar, zu der gemäß bestimmten Ausführungsformen eine Speichersteuereinheit 102, die mit einer Vielzahl von Hosts 104a, 104b, ... 104n verbunden ist, eine Vielzahl von Festplatten 106 und eine Vielzahl von Halbleiterplatten 108 gehören.
  • Die Speichersteuereinheit 102 und die Hosts 104a...104n können jede geeignete Computereinheit aufweisen einschließlich derjenigen, die im Stand der Technik bekannt sind wie zum Beispiel ein Personal Computer, eine Workstation, ein Server, ein Großrechner, ein tragbarer Computer, ein Palmtop-Computer, eine Telefoneinheit, ein Netzwerkgerät, ein Blade-Computer, ein Server usw. Die Vielzahl der Festplatten 106 kann alle geeigneten im Stand der Technik bekannten physischen Festplatten aufweisen. Die Vielzahl der Halbleiterplatten 108 kann alle geeigneten im Stand der Technik bekannten physischen Halbleiterplatten aufweisen.
  • Die Speichersteuereinheit 102, die Hosts 104a...104n, die Vielzahl von Festplatten 106 und die Vielzahl von Halbleiterplatten 108 können über ein Netzwerk wie zum Beispiel das Internet, ein Speichernetzwerk, ein Weitverkehrsnetzwerk, ein lokales Netzwerk usw. Daten austauschen. Die Vielzahl von Festplatten 106 kann in eine oder mehrere Festplattenlaufwerke konfiguriert werden und die Vielzahl von Halbleiterplatten 108 kann in eine Vielzahl von Halbleiterlaufwerken konfiguriert werden.
  • Die Speichersteuereinheit 102 führt eine erweiterte anpassungsfähige Zwischenspeicheranwendung 110 aus und steuert einen Cachespeicher 112, der innerhalb der Speichersteuereinheit 102 gezeigt wird. Bei alternativen Ausführungsformen kann sich der Cachespeicher 112 außerhalb der Speichersteuereinheit 102 befinden.
  • Die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 erweitert das Bereitstellen von Teilen einer Spur für Festplatten 106 mit einem Bereitstellen eines Datensatzes für Halbleiterplatten 108. Bei bestimmten Ausführungsformen, wenn eine Spur einer Halbleiterplatte nicht kurze Zeit zuvor verwendet wurde, wird nur das Zwischenspeichern von Datensätzen für die Halbleiterplatten verwendet. Auf die Anwendung 110 wird als eine erweiterte anpassungsfähige Zwischenspeicheranwendung 110 Bezug genommen, da die anpassungsfähigen Zwischenspeicheranwendungen, die für Festplatten ausgelegt sind, mit zusätzlichen Vorgängen verändert oder erweitert werden können, um die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 zu erzeugen, sodass sowohl Halbleiterplatten als auch Festplatten wirkungsvoll unter der Steuerung der Speichereinheit 102 betrieben werden können.
  • 2 stellt ein Blockschaubild 200 dar, das die logische Darstellung eines Speichers 202 gemäß bestimmten Ausführungsformen zeigt.
  • Die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 kann die für die Daten verwendeten Bereitstellungsvorgänge dynamisch ändern. Die Granularität für die Gestaltung ist ein Zylinderband 204, das eine beliebige Anzahl von aufeinanderfolgenden Zylindern 206a...206n auf einer Einheit ist. Bei bestimmten Ausführungsformen kann die Anzahl der Zylinder in einem Band 126 betragen. Jedes Band von Zylindern kann Datenstrukturen enthalten, um die Statistiken des diesem Band zugehörigen anpassungsfähigen Zwischenspeicherns zu verwalten.
  • Zu jedem Zylinder kann eine Vielzahl von Spuren gehören, wobei zu jeder Spur eine Vielzahl von Sektoren gehören kann. Zum Beispiel wird der Zylinder 206a gezeigt, der eine Vielzahl von Spuren 208a...208p aufweist, wobei die Spur 208a eine Vielzahl von Sektoren 210a...210m aufweist. Ein Sektor ist eine Unterteilung mit einer spezifischen Größe eines Festplattenlaufwerks, einer Halbleiterplatte oder einer anderen Art eines Speichermediums. Ein Betriebssystem kann sich auf Datensätze beziehen, die den Sektoren entsprechen, die auf einem Speichermedium gespeichert sind.
  • 3A stellt ein Blockschaubild 300 dar, das beispielhafte Bereitstellungsvorgänge 302 gemäß bestimmten Ausführungsformen zeigt. Ein Bereitstellungsvorgang kann Daten von einer Festplatte oder einem anderen Speichermedium in den Cachespeicher 112 kopieren. Die folgenden drei Bereitstellungsstrategien werden von der erweiterten Anwendung eines anpassungsfähigen Zwischenspeicherns 110 unterstützt:
    • (a) Bereitstellen eines Sektors (auch als Bereitstellen eines Datensatzes oder Zwischenspeichern eines Datensatzes bezeichnet) 304: Bei dem Bereitstellen eines Sektors wird nur ein Sektor, der erforderlich ist (werden nur Sektoren, die erforderlich sind), um die aktuelle Anfrage zu erfüllen, in dem Cachespeicher 112 bereitgestellt;
    • (b) Bereitstellen eines Teils einer Spur 306: Beim Bereitstellen eines Teils einer Spur wird ein Teil einer Spur von dem Ausgangspunkt des Zugriffs auf die Spur bis zum Ende der Spur bereitgestellt; und
    • (c) Bereitstellen einer vollständigen Spur 308: Bei dem Bereitstellen einer vollständigen Spur wird unabhängig von dem Zugriffspunkt auf die Spur, die gesamte Spur in dem Cachespeicher 112 bereitgestellt.
  • 3B stellt ein Blockschaubild 310 dar, das ein Bereitstellen einer vollständigen Spur, ein Bereitstellen eines Teils einer Spur und ein Bereitstellen eines Datensatzes gemäß bestimmten Ausführungsformen zeigt. In 3B wird eine vollständige Spur 312 gezeigt, die eine Vielzahl von Sektoren 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336 aufweist. Ein Host wie zum Beispiel der Host 104a fragt bei der Speichersteuereinheit 102 nach den Sektoren an, die als angefragte Sektoren 338 gezeigt werden, wobei der Beginn der angefragten Sektoren durch das Bezugszeichen 340 in 3B angezeigt wird. Für die vollständige Spur 312 werden auch der Beginn der Spur 342 und das Ende der Spur 344 gezeigt. Das Bereitstellen einer vollständigen Spur ist das Bereitstellen der vollständigen Spur 312 in dem Cachespeicher 112. Das Bereitstellen eines Teils einer Spur 346 ist das Bereitstellen der Sektoren von dem Beginn der angefragten Sektoren 340 bis zum Ende der Spur 344 in dem Cachespeicher 112. Das Bereitstellen eines Datensatzes ist das Bereitstellender der angefragten Sektoren 338 in dem Cachespeicher 112.
  • 4 stellt ein Blockschaubild 400 dar, das Datenstrukturen 402 für ein anpassungsfähiges Zwischenspeichern gemäß bestimmten Ausführungsformen zeigt. Mit dem Ziel, zu bestimmen, welche Bereitstellungsstrategie für eine bestimmte Anfrage zu verwenden ist, werden bei dem anpassungsfähigen Zwischenspeichern für jedes Zylinderband die folgenden Zähler mithilfe der Datenstrukturen 402 geführt:
    • 1) Fehlt 404: Wird erhöht, wenn die Spur nicht in dem Cachespeicher 112 vorhanden ist;
    • 2) Vorhanden 406: Wird erhöht, wenn die Spur in dem Cachespeicher 112 vorhanden ist;
    • 3) Vorderseitiger Zugriff (Front Access, FA) 408: Wird erhöht, wenn die Spur in dem Cachespeicher vorhanden ist und der erste angefragte Sektor vor dem Sektor liegt, der verursachte, dass die Spur befördert wurde.
    • 4) Rückseitiger Zugriff (Back Access, BA) 410: Wird erhöht, wenn die Spur in dem Cachespeicher vorhanden ist und der erste angefragte Sektor hinter dem Sektor liegt, der verursachte, dass die Spur befördert wurde.
    • 5) Langzeitfrontendzugriffsverhältnis (Historical front end, HFEAR) 412; und
    • 6) Langzeitzugriffsverhältnis für wechselnde Datensätze (Historical alternate record access ratio, HARAR) 414.
  • Diese Zähler werden für jeden Zugriff auf eine Spur aktualisiert. Nach ungefähr jeweils 128 Zugriffen auf ein Zylinderband werden die Langzeitverhältnisse aktualisiert und die aktuelle Bereitstellungsstrategie für das Zylinderband wird aktualisiert.
  • 5 stellt ein Blockschaubild dar, das Vorgänge 500 für ein anpassungsfähiges Zwischenspeichern gemäß bestimmten Ausführungsformen zeigt. In 5 werden die folgenden Langzeitverhältnisse wie folgt berechnet (Bezugszeichen 502): neues HFEAR = ((FA/(Vorhanden + Fehlt)) + HFEAR)/2 neues HARAR = (((FA + BA)/(Vorhanden + Fehlt)) + HARAR)/2
  • Die Bereitstellungsstrategie des Zylinderbands ist so einzustellen, dass die angefragten Sektoren 504 nur bereitgestellt werden, wenn HARAR kleiner ist als 0,10 (Bezugszeichen 506), dass ein Teil einer Spur 508 bereitgestellt wird, wenn HARAR größer oder gleich 0,10 und HFEAR kleiner als 0,05 ist (Bezugszeichen 510), und dass eine vollständige Spur bereitgestellt wird (Bezugszeichen 512), wenn HARAR größer oder gleich 0,10 und HFEAR größer oder gleich 0,05 (Bezugszeichen 514) ist.
  • Bei bestimmten Ausführungsformen können die in 5 gezeigten anpassungsfähigen Zwischenspeichervorgänge auf Festplatten angewandt werden. Das Bereitstellen eines Sektors, eines Teils einer Spur oder einer vollständigen Spur kann gemäß den in 5 gezeigten Berechnungen und Bedingungen ausgeführt werden. Bei alternativen Ausführungsformen können andere Berechnungen und Bedingungen verwendet werden, um anpassungsfähige Zwischenspeichervorgänge umzusetzen.
  • 6 stellt ein Blockschaubild 600 dar, das eine beispielhafte Ausführungsform 602 für Halbleiterplatten 108 gemäß bestimmten Ausführungsformen zeigt.
  • Jede Spur in dem Cachespeicher 112 hat eine globale Laufnummer, wobei die Laufnummer eine monoton ansteigende Nummer ist. Wenn in dem Cachespeicher 112 auf eine beispielhafte Spur 604 zugegriffen wird, wird der Spur 604 diese globale Laufnummer zugewiesen und wird in einer Liste selten verwendeter Spuren (LRU-Liste) 606 an das Ende der zuletzt verwendeten Spuren hinzugefügt 605. Die globale Laufnummer wird danach erhöht. Daher weisen alle Spuren in der LRU-Liste 606 zugehörige Laufnummern auf, sodass eine Spur 608 an dem Ende der selten verwendeten Spuren die niedrigste Laufnummer hat und eine Spur 610 am zuletzt verwendeten Ende die höchste Laufnummer hat.
  • 7 stellt einen Ablaufplan 700 dar, der bestimmte Vorgänge gemäß bestimmten Ausführungsformen zeigt. Die in 7 gezeigten Vorgänge entsprechen Vorgängen, die durch die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 ausgeführt werden, die erzeugt werden kann, indem die anpassungsfähigen Zwischenspeicheranwendungen verändert werden, die für ein anpassungsfähiges Zwischenspeichern auf Festplatten verwendet werden, das in den 3A, 3B, 4 und 5 gezeigt wird.
  • Eine Steuerung beginnt im Block 702, wo eine LRU-Liste 606 für die Spuren geführt wird. Eine Datenstruktur für eine monoton ansteigende globale Laufnummer wird (in Block 704) geführt. Im Cachespeicher wird (in Block 706) auf eine Spur zugegriffen und die globale Laufnummer wird der aufgegriffenen Spur (in Block 708) als die Variable „THISSeq” zugewiesen und danach wird die globale Laufnummer (in Block 710) erhöht. Die aufgegriffene Spur wird (in Block 712) an das Ende der zuletzt verwendeten Spur der LRU-Liste 606 hinzugefügt.
  • Die Steuerung geht weiter zu Block 714, in dem für Spuren einer Halbleiterplatte, wenn die Position der Spur in der LRU-Liste 606 niedrig ist (d. h., dass dieser Zugriff auf die Spur unabhängig von einem früheren Zugriff ist), ein Zwischenspeichern eines Datensatzes ausgeführt wird. In anderen Worten wird für Spuren von Halbleitereinheiten, die sich am unteren Ende der LRU-Liste 606 befinden, ein Zwischenspeichern eines Datensatzes ausgeführt. Als Standardvorgang für Festplatten wird das Bereitstellen/Zwischenspeichern eines Teils einer Spur beibehalten. Die Bestimmung einer niedrigen Position wird wie folgt ausgeführt:
    Wenn (((MRUseq – THISseq)·Consumed_Cache_Space/(MRUseq – LRUseq)) > 16 GB) gilt, wird ein Zwischenspeichern eines Datensatzes ausgeführt,
    wobei:
    MRUSeq = Laufnummer der Spur am MRU-Ende der LRU-Liste;
    LRUSeq = Laufnummer der Spur am LRU-Ende der LRU-Liste;
    THISSeq = Laufnummer dieser Spur; und
    Consumed_Cache_Space = Dies ist die Gesamtmenge des Cachespeicherplatzes, der von den Spuren in diesem Cachespeicher in Anspruch genommen wird.
  • Daher wird in 7 ein Bereitstellen von Datensätzen für Halbleiterplatten verwendet, wenn ein Zugriff unabhängig ist von früheren Zugriffen, d. h., dass auf eine Spur, auf die zugegriffen wird, nicht kurze Zeit zuvor zugegriffen wurde. In diesen Situationen ist es zu bevorzugen, dass Übertragungen kleiner Blöcke ausgeführt werden, indem Sektoren/Datensätze bereitgestellt werden, anstatt dem Cachespeicher eine vollständige Spur oder einen Teil einer Spur bereitzustellen.
  • 8 stellt einen Ablaufplan 800 dar, der bestimmte Vorgänge gemäß bestimmten Ausführungsformen zeigt. Bei bestimmten Ausführungsformen können die Vorgänge in 8 durch die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 ausgeführt werde, die in der Speichersteuereinheit 102 umgesetzt wird.
  • Die Steuerung startet im Block 802, in dem eine Speichersteuereinheit 102 eine Anfrage empfängt, die einem Zugriff auf eine Spur in einem Cachespeicher 112 entspricht. Die Speichersteuereinheit 102 kann die Anfrage von einem der Hosts 104a...104n empfangen. Die Anfrage kann für eine oder mehrere Datensätze (die Sektoren entsprechen) sein, die in einer Spur abgelegt sind.
  • Die Steuerung geht weiter zu Block 804, in dem die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 in der Speichersteuereinheit 102 bestimmt, ob die Spur Daten entspricht, die auf einer Halbleiterplatte 108 gespeichert sind. Wenn dies so ist, bestimmt die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 (in Block 806), ob auf die Spur relativ kurze Zeit zuvor zugegriffen wurde. Die Bestimmung, ob auf die Spur relativ kurze Zeit zuvor zugegriffen wurde, kann gemäß den im Block 714 in 7 gezeigten Vorgängen getroffen werden, in denen bestimmt wird, ob die Spur eine niedrige Laufnummer (in diesem Fall wurde auf die Spur nicht relativ kurze Zeit zuvor zugegriffen) oder eine hohe Laufnummer hat (in diesem Fall wurde auf die Spur relativ kurze Zeit zuvor zugegriffen).
  • Wenn im Block 806 bestimmt wird, dass auf die Spur nicht relativ kurze Zeit zuvor zugegriffen wurde, geht die Steuerung weiter zu Block 808, in dem die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 ein Bereitstellen eines Datensatzes von der Halbleiterplatte 108 in den Cachespeicher 112 ausführt. Es kann darauf hingewiesen werden, dass jede Spur eine Vielzahl von Datensätzen aufweist. Bei Halbleiterplatten ist es wirkungsvoller, weniger Datenblöcke gleichzeitig zu übertragen. Infolgedessen ist für Halbleiterplatten ein Bereitstellen eines Datensatzes in dem Cachespeicher 112 zu bevorzugen, ausgenommen, wenn es eine überwältigende Wahrscheinlichkeit gibt, dass benachbarte Datensätze, die nicht angefragt wurden, wahrscheinlich in der näheren Zukunft verwendet werden. Wenn auf eine Spur nicht kurze Zeit zuvor zugegriffen wurde (d. h., dass die Spur sich in der Nähe des Endes der selten verwendeten Spuren in der LRU-Liste 606 befindet), ist es daher zu bevorzugen, dass für Halbleiterplatten nur ein Zwischenspeichern eines Datensatzes (d. h. nur ein Bereitstellen von angefragten Sektoren/Datensätzen) ausgeführt wird.
  • Wenn im Block 806 bestimmt wird, dass auf die Spur relativ kurze Zeit zuvor zugegriffen wurde (d. h., dass die Spur sich in der Nähe des Endes der kurz zuvor verwendeten Spuren in der LRU-Liste 606 befindet), geht die Steuerung weiter zu Block 810, in dem die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 zwischen einem Bereitstellen eines Teils einer Spur, einem Bereitstellen einer vollständigen Spur und einem Bereitstellen eines Datensatzes von der Halbleiterplatte 108 in dem Cachespeicher 112 auf der Grundlage eines Kriteriums auswählt, das von der Speichersteuereinheit 102 geführt wird. Bei bestimmten Ausführungsformen beruht das Kriterium zum Auswählen, ob ein Bereitstellen eines Teils einer Spur, ein Bereitstellen einer vollständigen Spur oder ein Bereitstellen eines Datensatzes auszuführen ist, auf den in 5 in den Blöcken 504, 506, 508, 510, 512, 514 gezeigten Vorgängen, die zeigen, wann angefragte Sektoren/Datensätze bereitgestellt werden 504, wann ein Teil einer Spur bereitgestellt wird 508, und wann eine vollständige Spur 512 bereitgestellt wird. Daher funktioniert die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 in einer ähnlichen Weise sowohl für Halbleiterplatten als auch für Festplatten, wenn sich eine Spur in der Nähe des Endes der kurz zuvor verwendeten Spuren in der LRU-Liste 606 in dem Cachespeicher 112 befindet.
  • Wenn in Block 804 bestimmt wird, dass die Spur nicht Daten entspricht, die auf einer Halbleiterplatte gespeichert sind, geht die Steuerung weiter zu Block 812, wo eine Bestimmung getroffen wird, ob die Spur Daten entspricht, die auf einer Festplatte 106 gespeichert sind. Wenn dies so ist, wählt die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 (in Block 814) aus, ob von der Festplatte 106 auf der Grundlage eines Kriteriums, das von der Speichersteuereinheit 102 geführt wird, ein Bereitstellen eines Teils einer Spur, ein Bereitstellen einer vollständigen Spur und ein Bereitstellen eines Datensatzes in dem Cachespeicher 112 ausgeführt werden. Bei bestimmten Ausführungsformen beruht das Kriterium zum Auswählen, ob ein Bereitstellen eines Teils einer Spur, ein Bereitstellen einer vollständigen Spur oder ein Bereitstellen eines Datensatzes auszuführen ist, auf den in 5 gezeigten Vorgängen, die zeigen, wann angefragte Sektoren/Datensätze bereitgestellt werden 504, wann ein Teil einer Spur bereitgestellt wird 508, und wann eine vollständige Spur 512 bereitgestellt wird.
  • Wenn in Block 812 eine Bestimmung getroffen wird, dass die Spur nicht Daten entspricht, die auf der Festplatte 106 gespeichert sind, endet der Prozess (in Block 816). Die Steuerung geht auch aus den Blöcken 808, 810 und 814 zu Block 816, wo der Prozess endet.
  • Daher zeigen die 1 bis 8 bestimmte Ausführungsformen, in denen ein Bereitstellen eines Teils einer Spur für Festplatten erweitert wird mit dem Bereitstellen eines Datensatzes für Halbleiterplatten, wobei für Halbleiterplatten nur ein Bereitstellen eines Datensatzes verwendet wird, wenn eine Spur einer Halbleiterplatte nicht kurze Zeit zuvor verwendet wurde. Es kann darauf hingewiesen werden, das bei dem Bereitstellen einer vollständigen Spur eine ganze Spur bereitgestellt wird, bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur bereitgestellt werden und beim Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden. Bestimmte Ausführungsformen stellen Bedingungen bereit, unter denen das Bereitstellen eines Teils einer Spur, das Bereitstellen eines Datensatzes und/oder das Bereitstellen einer vollständigen Spur von einer Speichersteuereinheit ausgeführt wird, die sowohl Festplatten als auch Halbleiterplatten steuert.
  • Zusätzliche Einzelheiten der Ausführungsformen
  • Die beschriebenen Vorgänge können als ein Verfahren, eine Vorrichtung oder ein Computerprogrammprodukt umgesetzt werden, das eine Standardprogrammierung und/oder eine Entwicklungstechnik verwendet, um Software, Firmware, Hardware oder eine beliebige Kombination davon herzustellen. Entsprechend können die Aspekte der Ausführungsformen die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (einschließlich Firmware, resident Software, Mikrocode, usw.) oder einer Ausführungsform annehmen, die Software und Hardware-Komponenten kombiniert, wobei diese hier als „Schaltkreis”, „Modul” oder „System” bezeichnet werden. Außerdem können die Aspekte der Ausführungsformen die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien enthalten ist, die einen computerlesbaren Programmcode enthalten.
  • Jede beliebige Kombination eines oder mehrerer computerlesbarer Medien kann verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Ein computerlesbares Speichermedium kann beispielsweise, ohne auf diese beschränkt zu sein, ein System, eine Vorrichtung oder eine Einheit zur elektronischen, magnetischen, optischen, elektromagnetischen, Infrarot- oder Halbleiterspeicherung sein oder jede geeignete Kombination davon. Zu den konkreten Beispielen computerlesbarer Speichermedien gehören (in einer unvollständigen Liste) folgende: eine elektrische Ein- oder Mehrdrahtverbindung, eine tragbare Computerdiskette, eine Festplatte, ein Arbeitsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disc-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination davon. Im Zusammenhang mit diesem Dokument kann ein computerlesbares Speichermedium jedes verfügbare Medium sein, auf dem ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten sein oder gespeichert werden kann.
  • Ein computerlesbares Signalmedium kann ein übertragenes Datensignal mit einem darin beispielsweise im Basisband oder als Teil einer Trägerwelle eingebundenen computerlesbaren Programmcode enthalten. Ein solches übertragenes Signal kann eine von einer Vielfalt von Formen annehmen, unter anderem, ohne auf diese beschränkt zu sein, eine elektromagnetische oder optische Form oder jede geeignete Kombination davon. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und welches Programmdaten für eine Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung austauschen, verbreiten oder übertragen kann.
  • Ein Programmcode, der auf einem computerlesbaren Medium eingebunden ist, kann unter Verwendung eines geeigneten Mediums übertragen werden, unter anderem, ohne auf diese beschränkt zu sein, drahtlos oder leitungsgebunden, über Lichtwellenleiter, HF usw. oder jeder geeigneten Kombination davon.
  • Der Computerprogrammcode zur Durchführung von Operationen für einige Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kombination von Programmiersprachen geschrieben werden, unter anderem objektorientierte Programmiersprachen wie zum Beispiel Java*, Smalltalk, C++ oder ähnliche Programmiersprachen, und herkömmliche prozedurale Programmiersprachen wie zum Beispiel die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann entweder vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als unabhängiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf einem fernen Computer oder Server ausgeführt werden. Im letzten Szenario kann der ferne Computer mit dem Computer des Benutzers entweder über ein beliebiges Netzwerk verbunden werden, einschließlich eines lokalen Netzwerkes (LAN) oder eines Weitverkehrsnetzwerkes (WAN) oder die Verbindung kann über einen externen Computer (zum Beispiel, über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die Ablaufplandarstellungen und/oder die Blockschaubilder der Verfahren, Vorrichtungen (Systeme) und Computerprogrammprodukte gemäß einigen Ausführungsformen der Erfindung beschrieben. Selbstverständlich kann jeder Block der Ablaufplandarstellungen und/oder der Blockschaubilder und jede Kombination von Blöcken in den Ablaufplandarstellungen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden. Diese Computerprogrammbefehle können für einen Prozessor eines Universal-Computers, eines Spezial-Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt, um eine Maschine herzustellen, in der die vom Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Befehle die Mittel zur Umsetzung der in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds angegebenen Funktionen/Aktionen erzeugen.
  • Diese Computerprogrammbefehle können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten beauftragen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Befehle ein Produkt erzeugen, das die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifizierte Funktion/Aktion umsetzt.
  • Die Computerprogrammbefehle können auch in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von Betriebsschritten zu erzeugen, die auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten ausgeführt werden, um einen computergestützten Prozess zu erzeugen, durch den die Befehle, die im Computer oder in den anderen programmierbaren Vorrichtungen ausgeführt werden, die Verfahren für das Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds festgelegten Funktionen/Aktionen bereitstellen.
  • 9 stellt ein Blockschaubild dar, das bestimmte Elemente zeigt, die zu der Speichersteuereinheit 102 oder den Hosts 104a...104n gemäß bestimmten Ausführungsformen gehören können. Das System 900 kann die Speichersteuereinheit 102 oder die Hosts 104a...104n aufweisen und es kann eine Schaltung 902 enthalten, zu der bei bestimmten Ausführungsformen mindestens ein Prozessor 904 gehört. Zu dem System 900 können auch ein Arbeitsspeicher 906 (z. B. eine flüchtige Speichereinheit) und ein Datenspeicher 908 gehören. Zu dem Datenspeicher 908 können eine nichtflüchtige Speichereinheit (z. B. EEPROM, ROM, PROM, RAM, DRAM, SRAM, Flashspeicher, Firmware, eine programmierbare Logik usw.), ein magnetisches Laufwerk, ein optisches Laufwerk, ein Bandlaufwerk usw. gehören. Der Datenspeicher 908 kann eine interne Speichereinheit, eine angefügte Speichereinheit und/oder eine über ein Netzwerk zugängliche Speichereinheit aufweisen. Zu dem System 900 kann eine Programmlogik 910 gehören, zu der ein Code 912 gehört, der in den Arbeitsspeicher 906 geladen und von dem Prozessor 904 oder der Schaltung 902 ausgeführt werden kann. Bei bestimmten Ausführungsformen kann die Programmlogik 910, zu welcher der Code 912 gehört, in dem Datenspeicher 908 gespeichert werden. Bei bestimmten weiteren Ausführungsformen kann die Programmlogik 910 in der Schaltung 902 umgesetzt werden. Daher kann die Programmlogik 910 in dem Arbeitsspeicher 906 und/oder in der Schaltung 902 umgesetzt werden, obwohl in 9 die Programmlogik 910 getrennt von den weiteren Elementen gezeigt wird.
  • Bestimmte Ausführungsformen können sich auf ein Verfahren zum Anwenden von Computerbefehlen durch eine Person oder durch eine automatische Verarbeitung beziehen, die einen computerlesbaren Code in ein Computersystem eingibt, wobei es der Code in Kombination mit dem Computersystem ermöglicht, die Vorgänge der beschriebenen Ausführungsformen auszuführen.
  • Die Begriffe „eine Ausführungsform”, „Ausführungsform”, „Ausführungsformen”, „die Ausführungsformen”, „eine oder mehrere Ausführungsformen”, „einige Ausführungsformen” und „eine einzelne Ausführungsform” bedeuten „eine oder mehrere (aber nicht alle) Ausführungsformen der vorliegenden Erfindung(en)”, ausgenommen, wenn dies anders angegeben wird.
  • Die Begriffe „gehören”, „aufweisen”, „enthalten”, „haben” und Variationen davon bedeuten „einschließlich, ohne auf diese beschränkt zu sein”, ausgenommen, wenn dies anders angegeben wird.
  • Die Listen mit aufgezählten Elementen bedeuten nicht, dass sich einige oder mehrere der Elemente gegenseitig ausschließen, ausgenommen, wenn dies anders angegeben wird.
  • Die Begriffe „ein”, „eine”, „einer”, „der”, „die” und „das” bedeuten „ein oder mehrere”, „eine oder mehrere” oder „einer oder mehrere”, ausgenommen, wenn dies anders angegeben wird.
  • Einheiten, die für einen Datenaustausch miteinander verbunden sind, müssen nicht in einem andauernden Datenaustausch miteinander stehen, ausgenommen, wenn dies anders angegeben wird. Außerdem können Einheiten, die in einem Datenaustausch miteinander stehen, die Daten direkt oder indirekt über eine oder mehrere Zwischeneinheiten austauschen.
  • Eine Beschreibung einer Ausführungsform mit mehreren Komponenten, die in einem Datenaustausch miteinander stehen, bedeutet nicht, dass alle diese Komponenten erforderlich sind. Ganz im Gegenteil wird eine Vielfalt von optionalen Komponenten beschrieben, um die große Vielfalt von möglichen Ausführungsformen der vorliegenden Erfindung darzustellen.
  • Obwohl Prozessschritte, Verfahrensschritte, Algorithmen oder Ähnliche in einer geordneten Reihenfolge beschrieben werden können, können diese Prozesse, Verfahren und Algorithmen auch konfiguriert werden, um in einer alternativen Reihenfolge zu arbeiten. In anderen Worten, jede Reihenfolge oder Ordnung von Schritten, die beschrieben werden kann, gibt nicht unbedingt ein Erfordernis an, dass die Schritte in dieser Reihenfolge ausgeführt werden müssen. Die hier beschriebenen Schritte von Prozessen können in jeder beliebigen praktischen Reihenfolge ausgeführt werden. Außerdem können einige Schritte gleichzeitig ausgeführt werden.
  • Wenn hier eine einzige Einheit oder ein einziges Produkt beschrieben wird, ist es auf einfache Weise offensichtlich, dass mehr als eine Einheit oder ein Produkt (unabhängig davon, ob sie zusammenwirken oder nicht) anstelle einer einzigen Einheit oder eines einzigen Produkts verwendet werden kann. Wenn auf ähnliche Weise hier mehr als eine Einheit oder ein Produkt beschrieben wird (unabhängig davon, ob sie zusammenwirken oder nicht), ist es auf einfache Weise offensichtlich, dass eine einzige Einheit oder ein einziges Produkt anstelle von mehr als einer Einheit oder einem Produkt verwendet werden kann oder eine unterschiedliche Anzahl von Einheiten oder Produkten kann verwendet werden anstelle der angezeigten Anzahl von Einheiten oder Produkten. Die Funktionalität und/oder die Merkmale einer Einheit können alternativ von einer oder mehreren weiteren Einheiten verkörpert werden, die nicht ausdrücklich so beschrieben werden, dass sie diese Funktionalität oder Merkmale aufweisen. Auf diese Weise muss die Einheit selbst nicht zu weiteren Ausführungsformen der vorliegenden Erfindung gehören.
  • Zumindest bestimmte Vorgänge, die in den Figuren dargestellt sein können, zeigen bestimmte Ereignisse, die in einer bestimmten Reihenfolge auftreten. Bei alternativen Ausführungsformen können bestimmte Vorgänge in einer unterschiedlichen Reihenfolge ausgeführt, verändert oder entfernt werden. Des Weiteren können Schritte zu der oben beschriebenen Logik hinzugefügt werden und immer noch die beschriebenen Ausführungsformen erfüllen. Außerdem können hier beschriebene Vorgänge nacheinander erfolgen oder bestimmte Vorgänge können parallel verarbeitet werden. Ferner können Vorgänge von einer einzigen Verarbeitungseinheit oder von dezentralen Verarbeitungseinheiten ausgeführt werden.
  • Die vorangehende Beschreibung von verschiedenen Ausführungsformen der Erfindung wurde zu Veranschaulichungs- und Beschreibungszwecken vorgestellt. Sie ist nicht als erschöpfend oder als einschränkend für die Erfindung in der genau offenbarten Form zu verstehen. Angesichts der obigen Lehren sind viele Veränderungen und Variationen möglich. Diese detaillierte Beschreibung ist nicht so zu verstehen, dass sie den Umfang der Erfindung einschränkt, vielmehr wird dieser durch die hier angefügten Ansprüche definiert. Die obige Beschreibung, die Beispiele und Daten stellen eine vollständige Beschreibung der Herstellung und Verwendung der Zusammensetzung dieser Erfindung bereit. Da viele Ausführungsformen der Erfindung ausgeführt werden können, ohne vom Erfindungsgedanken und dem Umfang der Erfindung abzuweichen, beruht die Erfindung auf den nachfolgend angefügten Ansprüchen.

Claims (25)

  1. Verfahren, das aufweist: Empfangen einer Anfrage in einer Speichersteuereinheit, wobei die Anfrage einem Zugriff auf eine Spur in einem Cachespeicher entspricht; Bestimmen, ob die Spur Daten entspricht, die auf einer Halbleiterplatte gespeichert sind; und Ausführen eines Bereitstellens eines Datensatzes von der Halbleiterplatte in den Cachespeicher, als Reaktion auf das Bestimmen, dass die Spur Daten entspricht, die auf der Halbleiterplatte gespeichert sind, wobei jede Spur eine Vielzahl von Datensätzen aufweist.
  2. Verfahren nach Anspruch 1, wobei das Verfahren außerdem aufweist: Bestimmen, ob die Spur Daten entspricht, die auf einer Festplatte gespeichert sind; und Auswählen zwischen einem Ausführen eines Bereitstellens eines Teils einer Spur, eines Bereitstellens einer vollständigen Spur und eines Bereitstellens eines Datensatzes von der Festplatte in den Cachespeicher auf der Grundlage eines Kriteriums, das von der Speichersteuereinheit geführt wird, als Reaktion auf das Bestimmen, dass die Spur Daten entspricht, die auf der Festplatte gespeichert sind, wobei bei dem Bereitstellen einer vollständigen Spur eine vollständige Spur bereitgestellt wird, bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang der angefragten Sektoren bis zum Ende der Spur bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden.
  3. Verfahren nach Anspruch 1, wobei das Bereitstellen eines Datensatzes von der Halbleiterplatte ausgeführt wird, wenn nicht relativ kurze Zeit zuvor auf die Spur zugegriffen wurde, und das Auswählen zumindest zwischen dem Ausführen eines Bereitstellens eines Teils einer Spur und dem Ausführen eines Bereitstellens einer vollständigen Spur ausgeführt wird, wenn relativ kurze Zeit zuvor auf die Spur zugegriffen wurde.
  4. Verfahren nach Anspruch 1, das außerdem aufweist: Führen einer Liste selten verwendeter Spuren, in der jede Spur in der Liste fortlaufend in einer monoton ansteigenden Reihenfolge so nummeriert wird, wie in dem Cachespeicher auf jede Spur zugegriffen wird und wie sie danach in die Liste selten verwendeter Spuren platziert wird; und Bestimmen, ob eine ausgewählte Spur kurze Zeit zuvor auf der Grundlage eines vorbestimmten Kriteriums verwendet wurde, das auf den Laufnummern der Spuren in der Liste selten verwendeter Spuren, auf einer Cachespeicherplatzkapazität, die von den im Cachespeicher gespeicherten Spuren beansprucht wird, und auf einem Schwellenwert beruht, der eine Speicherkapazität anzeigt.
  5. Verfahren nach Anspruch 1, wobei: das Bereitstellen eines Datensatzes als ein standardmäßiger Bereitstellungsvorgang für Halbleiterplatten verwendet wird, die mit der Speichersteuereinheit verbunden sind; und das Bereitstellen eines Teils einer Spur als der standardmäßige Bereitstellungsvorgang für Festplatten verwendet wird, die mit der Speichersteuereinheit verbunden sind, wobei bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden
  6. System aufweisend: einen Arbeitsspeicher; und einen Prozessor, der mit dem Arbeitsspeicher verbunden ist, wobei der Prozessor Vorgänge ausführt, wobei die Vorgänge aufweisen: Empfangen einer Anfrage, die einem Zugriff auf eine Spur in einem Cachespeicher entspricht; Bestimmen, ob die Spur Daten entspricht, die auf einer Halbleiterplatte gespeichert sind; und Ausführen eines Bereitstellens eines Datensatzes von der Halbleiterplatte in den Cachespeicher, als Reaktion auf das Bestimmen, dass die Spur Daten entspricht, die auf der Halbleiterplatte gespeichert sind, wobei jede Spur eine Vielzahl von Datensätzen aufweist.
  7. System nach Anspruch 6, wobei die Vorgänge außerdem aufweisen: Bestimmen, ob die Spur Daten entspricht, die auf einer Festplatte gespeichert sind; und Auswählen zwischen einem Ausführen eines Bereitstellens eines Teils einer Spur, eines Bereitstellens einer vollständigen Spur und eines Bereitstellens eines Datensatzes von der Festplatte in den Cachespeicher auf der Grundlage eines geführten Kriteriums als Reaktion auf das Bestimmen, dass die Spur Daten entspricht, die auf der Festplatte gespeichert sind, wobei bei dem Bereitstellen einer vollständigen Spur eine vollständige Spur bereitgestellt wird, bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang der angefragten Sektoren bis zum Ende der Spur bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden.
  8. System nach Anspruch 6, wobei das Bereitstellen eines Datensatzes von der Halbleiterplatte ausgeführt, wenn nicht relativ kurze Zeit zuvor auf die Spur zugegriffen wurde, und das Auswählen zumindest zwischen dem Ausführen eines Bereitstellens eines Teils einer Spur und dem Ausführen eines Bereitstellens einer vollständigen Spur ausgeführt wird, wenn relativ kurze Zeit zuvor auf die Spur zugegriffen wurde.
  9. System nach Anspruch 6, wobei die Vorgänge außerdem umfassen: Führen einer Liste selten verwendeter Spuren, in der jede Spur in der Liste fortlaufend in einer monoton ansteigenden Reihenfolge so nummeriert wird, wie in dem Cachespeicher auf jede Spur zugegriffen wird und wie sie danach in die Liste selten verwendeter Spuren platziert wird; und Bestimmen, ob eine ausgewählte Spur kurze Zeit zuvor auf der Grundlage eines vorbestimmten Kriteriums verwendet wurde, das auf den Laufnummern der Spuren in der Liste selten verwendeter Spuren, auf einer Cachespeicherplatzkapazität, die von den im Cachespeicher gespeicherten Spuren beansprucht wird, und auf einem Schwellenwert beruht, der eine Speicherkapazität anzeigt.
  10. System nach Anspruch 6, wobei: das Bereitstellen eines Datensatzes als ein standardmäßiger Bereitstellungsvorgang für Halbleiterplatten verwendet wird; und das Bereitstellen eines Teils einer Spur als der standardmäßige Bereitstellungsvorgang für Festplatten verwendet wird, wobei bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden
  11. Speichersteuereinheit, die in einem Datenaustausch mit einer Halbleiterplatte und einer Festplatte steht, wobei die Speichersteuereinheit aufweist: einen Prozessor; einen Cachespeicher, der mit dem Prozessor verbunden ist, wobei die Speichersteuereinheit ausführt: Empfangen einer Anfrage, die einem Zugriff auf eine Spur in dem Cachespeicher entspricht; Bestimmen, ob die Spur Daten entspricht, die auf der Halbleiterplatte gespeichert sind; und Ausführen eines Bereitstellens eines Datensatzes von der Halbleiterplatte in den Cachespeicher, als Reaktion auf das Bestimmen, dass die Spur Daten entspricht, die auf der Halbleiterplatte gespeichert sind, wobei jede Spur eine Vielzahl von Datensätzen aufweist.
  12. Speichersteuereinheit nach Anspruch 11, wobei die Speichersteuereinheit außerdem ausführt: Bestimmen, ob die Spur Daten entspricht, die auf einer Festplatte gespeichert sind; und Auswählen zwischen einem Ausführen eines Bereitstellens eines Teils einer Spur, eines Bereitstellens einer vollständigen Spur und eines Bereitstellens eines Datensatzes von der Festplatte in den Cachespeicher auf der Grundlage eines Kriteriums, das von der Speichersteuereinheit geführt wird, als Reaktion auf das Bestimmen, dass die Spur Daten entspricht, die auf der Festplatte gespeichert sind, wobei bei dem Bereitstellen einer vollständigen Spur eine vollständige Spur bereitgestellt wird, bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang der angefragten Sektoren bis zum Ende der Spur bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden.
  13. Speichersteuereinheit nach Anspruch 11, wobei das Bereitstellen eines Datensatzes von der Halbleiterplatte ausgeführt wird, wenn nicht relativ kurze Zeit zuvor auf die Spur zugegriffen wurde, und das Auswählen zumindest zwischen dem Ausführen eines Bereitstellens eines Teils einer Spur und dem Ausführen eines Bereitstellens einer vollständigen Spur ausgeführt wird, wenn relativ kurze Zeit zuvor auf die Spur zugegriffen wurde.
  14. Speichersteuereinheit nach Anspruch 11, wobei die Speichersteuereinheit außerdem ausführt: Führen einer Liste selten verwendeter Spuren, in der jede Spur in der Liste fortlaufend in einer monoton ansteigenden Reihenfolge so nummeriert wird, wie in dem Cachespeicher auf jede Spur zugegriffen wird und wie sie danach in die Liste selten verwendeter Spuren platziert wird; und Bestimmen, ob eine ausgewählte Spur kurze Zeit zuvor auf der Grundlage eines vorbestimmten Kriteriums verwendet wurde, das auf den Laufnummern der Spuren in der Liste selten verwendeter Spuren, auf einer Cachespeicherplatzkapazität, die von den im Cachespeicher gespeicherten Spuren beansprucht wird, und auf einem Schwellenwert beruht, der eine Speicherkapazität anzeigt.
  15. Speichersteuereinheit nach Anspruch 11, wobei: das Bereitstellen eines Datensatzes als ein standardmäßiger Bereitstellungsvorgang für Halbleiterplatten verwendet wird, die mit der Speichersteuereinheit verbunden sind; und das Bereitstellen eines Teils einer Spur als der standardmäßige Bereitstellungsvorgang für Festplatten verwendet wird, die mit der Speichersteuereinheit verbunden sind, wobei bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden.
  16. Computerprogrammprodukt, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, auf dem ein computerlesbarer Programmcode enthalten ist, wobei der computerlesbare Programmcode konfiguriert ist, Vorgänge auszuführen, wobei die Vorgänge aufweisen: Empfangen einer Anfrage in einer Speichersteuereinheit, wobei die Anfrage einem Zugriff auf eine Spur in einem Cachespeicher entspricht; Bestimmen, ob die Spur Daten entspricht, die auf einer Halbleiterplatte gespeichert sind; und Ausführen eines Bereitstellens eines Datensatzes von der Halbleiterplatte in den Cachespeicher, als Reaktion auf das Bestimmen, dass die Spur Daten entspricht, die auf der Halbleiterplatte gespeichert sind, wobei jede Spur eine Vielzahl von Datensätzen aufweist.
  17. Computerprogrammprodukt nach Anspruch 16, wobei die Vorgänge außerdem aufweisen: Bestimmen, ob die Spur Daten entspricht, die auf einer Festplatte gespeichert sind; und Auswählen zwischen einem Ausführen eines Bereitstellens eines Teils einer Spur, eines Bereitstellens einer vollständigen Spur und eines Bereitstellens eines Datensatzes von der Festplatte in den Cachespeicher auf der Grundlage eines Kriteriums, das von der Speichersteuereinheit geführt wird, als Reaktion auf das Bestimmen, dass die Spur Daten entspricht, die auf der Festplatte gespeichert sind, wobei bei dem Bereitstellen einer vollständigen Spur eine vollständige Spur bereitgestellt wird, bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang der angefragten Sektoren bis zum Ende der Spur bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden.
  18. Computerprogrammprodukt nach Anspruch 16, wobei das Bereitstellen eines Datensatzes von der Halbleiterplatte ausgeführt wird, wenn nicht relativ kurze Zeit zuvor auf die Spur zugegriffen wurde, und das Auswählen zumindest zwischen dem Ausführen eines Bereitstellens eines Teils einer Spur und dem Ausführen eines Bereitstellens einer vollständigen Spur ausgeführt wird, wenn relativ kurze Zeit zuvor auf die Spur zugegriffen wurde.
  19. Computerprogrammprodukt nach Anspruch 16, wobei die Vorgänge außerdem aufweisen: Führen einer Liste selten verwendeter Spuren, in der jede Spur in der Liste fortlaufend in einer monoton ansteigenden Reihenfolge so nummeriert wird, wie in dem Cachespeicher auf jede Spur zugegriffen wird und wie sie danach in die Liste selten verwendeter Spuren platziert wird; und Bestimmen, ob eine ausgewählte Spur kurze Zeit zuvor auf der Grundlage eines vorbestimmten Kriteriums verwendet wurde, das auf den Laufnummern der Spuren in der Liste selten verwendeter Spuren, auf einer Cachespeicherplatzkapazität, die von den im Cachespeicher gespeicherten Spuren beansprucht wird, und auf einem Schwellenwert beruht, der eine Speicherkapazität anzeigt.
  20. Computerprogrammprodukt nach Anspruch 16, wobei: das Bereitstellen eines Datensatzes als ein standardmäßiger Bereitstellungsvorgang für Halbleiterplatten verwendet wird, die mit der Speichersteuereinheit verbunden sind; und das Bereitstellen eines Teils einer Spur als der standardmäßige Bereitstellungsvorgang für Festplatten verwendet wird, die mit der Speichersteuereinheit verbunden sind, wobei bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden.
  21. Verfahren zum Anwenden einer Computerinfrastruktur, das aufweist: Eingeben eines computerlesbaren Codes in eine Speichersteuereinheit, wobei der Code in Kombination mit der Speichersteuereinheit Vorgänge ausführt, wobei die Vorgänge aufweisen: Empfangen einer Anfrage in der Speichersteuereinheit, wobei die Anfrage einem Zugriff auf eine Spur in einem Cachespeicher entspricht; Bestimmen, ob die Spur Daten entspricht, die auf einer Halbleiterplatte gespeichert sind; und Ausführen eines Bereitstellens eines Datensatzes von der Halbleiterplatte in den Cachespeicher, als Reaktion auf das Bestimmen, dass die Spur Daten entspricht, die auf der Halbleiterplatte gespeichert sind, wobei jede Spur eine Vielzahl von Datensätzen aufweist.
  22. Verfahren zum Anwenden einer Computerinfrastruktur nach Anspruch 21, wobei die Vorgänge außerdem aufweisen: Bestimmen, ob die Spur Daten entspricht, die auf einer Festplatte gespeichert sind; und Auswählen zwischen einem Ausführen eines Bereitstellens eines Teils einer Spur, eines Bereitstellens einer vollständigen Spur und eines Bereitstellens eines Datensatzes von der Festplatte in den Cachespeicher auf der Grundlage eines Kriteriums, das von der Speichersteuereinheit geführt wird, als Reaktion auf das Bestimmen, dass die Spur Daten entspricht, die auf der Festplatte gespeichert sind, wobei bei dem Bereitstellen einer vollständigen Spur eine vollständige Spur bereitgestellt wird, bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang der angefragten Sektoren bis zum Ende der Spur bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden.
  23. Verfahren zum Anwenden einer Computerinfrastruktur nach Anspruch 21, wobei das Bereitstellen eines Datensatzes von der Halbleiterplatte ausgeführt wird, wenn nicht relativ kurze Zeit zuvor auf die Spur zugegriffen wurde, und das Auswählen zumindest zwischen dem Ausführen eines Bereitstellens eines Teils einer Spur und dem Ausführen eines Bereitstellens einer vollständigen Spur ausgeführt wird, wenn relativ kurze Zeit zuvor auf die Spur zugegriffen wurde.
  24. Verfahren zum Anwenden einer Computerinfrastruktur nach Anspruch 21, wobei die Vorgänge außerdem aufweisen: Führen einer Liste selten verwendeter Spuren, in der jede Spur in der Liste fortlaufend in einer monoton ansteigenden Reihenfolge so nummeriert wird, wie in dem Cachespeicher auf jede Spur zugegriffen wird und wie sie danach in die Liste selten verwendeter Spuren platziert wird; und Bestimmen, ob eine ausgewählte Spur kurze Zeit zuvor auf der Grundlage eines vorbestimmten Kriteriums verwendet wurde, das auf den Laufnummern der Spuren in der Liste selten verwendeter Spuren, auf einer Cachespeicherplatzkapazität, die von den im Cachespeicher gespeicherten Spuren beansprucht wird, und auf einem Schwellenwert beruht, der eine Speicherkapazität anzeigt.
  25. Verfahren zum Anwenden einer Computerinfrastruktur nach Anspruch 21, wobei: das Bereitstellen eines Datensatzes als ein standardmäßiger Bereitstellungsvorgang für Halbleiterplatten verwendet wird, die mit der Speichersteuereinheit verbunden sind; und das Bereitstellen eines Teils einer Spur als der standardmäßige Bereitstellungsvorgang für Festplatten verwendet wird, die mit der Speichersteuereinheit verbunden sind, wobei bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden.
DE112012002452.4T 2011-07-26 2012-06-26 Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten Active DE112012002452B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/190,833 US9069678B2 (en) 2011-07-26 2011-07-26 Adaptive record caching for solid state disks
US13/190,833 2011-07-26
USUS-13/190,833 2011-07-26
PCT/CN2012/077504 WO2013013549A1 (en) 2011-07-26 2012-06-26 Adaptive record caching for solid state disks

Publications (2)

Publication Number Publication Date
DE112012002452T5 true DE112012002452T5 (de) 2014-03-13
DE112012002452B4 DE112012002452B4 (de) 2020-09-10

Family

ID=47598233

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012002452.4T Active DE112012002452B4 (de) 2011-07-26 2012-06-26 Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten

Country Status (4)

Country Link
US (6) US9069678B2 (de)
CN (1) CN103688249B (de)
DE (1) DE112012002452B4 (de)
WO (1) WO2013013549A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069678B2 (en) 2011-07-26 2015-06-30 International Business Machines Corporation Adaptive record caching for solid state disks
JP5798459B2 (ja) * 2011-11-28 2015-10-21 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ファイル要求アクセスを制御する方法
US20140351532A1 (en) * 2013-05-23 2014-11-27 International Business Machines Corporation Minimizing destaging conflicts
JP2015170160A (ja) * 2014-03-07 2015-09-28 富士通株式会社 情報処理システム,情報処理装置,情報処理プログラム及び情報処理方法
US9665493B2 (en) * 2014-10-03 2017-05-30 International Business Machines Corporation Increased cache performance with multi-level queues of complete tracks
FR3041796B1 (fr) * 2015-09-24 2017-10-20 Stmicroelectronics Rousset Stockage et lecture d'un code d'authentification de message dans une memoire externe
US10424040B2 (en) 2017-04-21 2019-09-24 Intel Corporation Dynamic allocation of cache based on instantaneous bandwidth consumption at computing devices
US11062232B2 (en) 2018-08-01 2021-07-13 International Business Machines Corporation Determining sectors of a track to stage into cache using a machine learning module
US11080622B2 (en) 2018-08-01 2021-08-03 International Business Machines Corporation Determining sectors of a track to stage into cache by training a machine learning module
KR102612911B1 (ko) * 2018-08-31 2023-12-13 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11151058B2 (en) 2020-01-21 2021-10-19 International Business Machines Corporation Adaptive caching in a multi-tier cache
US11030104B1 (en) 2020-01-21 2021-06-08 International Business Machines Corporation Picket fence staging in a multi-tier cache
CN114077293A (zh) * 2020-08-21 2022-02-22 宏碁股份有限公司 电子装置及其固态硬盘的温度控制方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4536836A (en) 1981-11-27 1985-08-20 Storage Technology Corporation Detection of sequential data stream
US5594885A (en) 1991-03-05 1997-01-14 Zitel Corporation Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry
US6098153A (en) * 1998-01-30 2000-08-01 International Business Machines Corporation Method and a system for determining an appropriate amount of data to cache
US7464246B2 (en) 2004-09-30 2008-12-09 International Business Machines Corporation System and method for dynamic sizing of cache sequential list
US7260679B2 (en) 2004-10-12 2007-08-21 International Business Machines Corporation Apparatus and method to manage a data cache using a first and second least recently used list
US7899987B2 (en) 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
KR20090078999A (ko) 2008-01-16 2009-07-21 삼성전자주식회사 외란 상태에 따른 적응적 기록 방법 및 이를 이용한 저장장치
WO2009102425A1 (en) 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture
US20100030963A1 (en) * 2008-08-04 2010-02-04 Sandisk Il Ltd. Managing storage of cached content
US9208104B2 (en) * 2008-08-28 2015-12-08 Citrix Systems, Inc. Content replacement and refresh policy implementation for a content distribution network
US20100088459A1 (en) * 2008-10-06 2010-04-08 Siamak Arya Improved Hybrid Drive
US20100199036A1 (en) 2009-02-02 2010-08-05 Atrato, Inc. Systems and methods for block-level management of tiered storage
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
US9176883B2 (en) 2009-04-30 2015-11-03 HGST Netherlands B.V. Storage of data reference blocks and deltas in different storage devices
US20100318734A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Application-transparent hybridized caching for high-performance storage
US8095738B2 (en) 2009-06-15 2012-01-10 International Business Machines Corporation Differential caching mechanism based on media I/O speed
US9069678B2 (en) 2011-07-26 2015-06-30 International Business Machines Corporation Adaptive record caching for solid state disks

Also Published As

Publication number Publication date
US9477606B2 (en) 2016-10-25
US20160055092A1 (en) 2016-02-25
US9069678B2 (en) 2015-06-30
US9213488B2 (en) 2015-12-15
US20130031295A1 (en) 2013-01-31
DE112012002452B4 (de) 2020-09-10
US9069679B2 (en) 2015-06-30
US20160055090A1 (en) 2016-02-25
US20150261441A1 (en) 2015-09-17
US9207867B2 (en) 2015-12-08
US20130031297A1 (en) 2013-01-31
WO2013013549A1 (en) 2013-01-31
US20150261440A1 (en) 2015-09-17
WO2013013549A9 (en) 2013-05-02
US9477607B2 (en) 2016-10-25
CN103688249A (zh) 2014-03-26
CN103688249B (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE102016103359B4 (de) Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme
DE112011102487B4 (de) Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen
DE112017002941B4 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE102019130450B4 (de) Bypass-Speicherklasse Lese Cache auf der Grundlage eines Schwellwertes der Warteschlange
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE102020106971A1 (de) Datenschreibverwaltung im nichtflüchtigen speicher
DE102012219907B4 (de) Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE112011100618T5 (de) Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird
DE112008003256T5 (de) Verteilung und Speichervolumen auf Laufwerksbereiche mit intelligenter Dateiablage und/oder -umordnung
DE112010003788T5 (de) Datenspeicherung
DE202010017665U1 (de) Datenverteilung bei einer Datenspeichervorrichtung mit Flash-Speicherchips
DE102013210719B4 (de) Verfahren und Systeme zum Verwalten von Cache-Speichern
DE102013200032A1 (de) Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE10062063A1 (de) Verfahren, System, Programm und Datenstruktur zur Steuerung einer Warteschlange von Anforderungen unterschiedlicher Priorität
DE112017005782T5 (de) Warteschlange für Speichervorgänge
DE102012218264A1 (de) Effiziente Datenbereinigung in einer komprimierten Journaldatei
DE112020005695T5 (de) Speichercontroller für solid-state-speichereinheiten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final