DE69535330T2 - Caching-System mit Explitzer Folgeliste - Google Patents

Caching-System mit Explitzer Folgeliste Download PDF

Info

Publication number
DE69535330T2
DE69535330T2 DE69535330T DE69535330T DE69535330T2 DE 69535330 T2 DE69535330 T2 DE 69535330T2 DE 69535330 T DE69535330 T DE 69535330T DE 69535330 T DE69535330 T DE 69535330T DE 69535330 T2 DE69535330 T2 DE 69535330T2
Authority
DE
Germany
Prior art keywords
data
sequence
editing system
list
storage device
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.)
Expired - Lifetime
Application number
DE69535330T
Other languages
English (en)
Other versions
DE69535330D1 (de
Inventor
J. Allen Simi Valley CURTIS
A. Reza Valencia RASSOOL
T. Stephen Newhall WHITELEY
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE69535330D1 publication Critical patent/DE69535330D1/de
Application granted granted Critical
Publication of DE69535330T2 publication Critical patent/DE69535330T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F3/0656Data buffering arrangements
    • 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/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • 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
    • 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/6028Prefetching based on hints or prefetch instructions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/213Read-only discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2545CDs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
    • G11B2220/415Redundant array of inexpensive disks [RAID] systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers

Description

  • EINFÜHRUNG
  • Die Erfindung betrifft allgemein ein verbessertes Verfahren zum Holen von Daten von Speichervorrichtungen, beispielsweise Festplattenlaufwerken, RAID-Systemen, CD-ROM-Laufwerken, digitalen Bandsystemen, optischen Speichervorrichtungen, holographischen Speichervorrichtungen und Halbleiter-Speichersystemen. Die Erfindung betrifft insbesondere ein Pre-Caching-System für den Gebrauch mit Videoeditieranwendungen und anderen Anwendungen, die das rechtzeitige Holen von großen Datenmengen erfordern, die an unterschiedlichen Orten in der Speichervorrichtung abgelegt sein können.
  • HINTERGRUND DER ERFINDUNG
  • Festplattenlaufwerke sind bekannt und werden in Speichervorrichtungen häufig verwendet. Deshalb werden sie dazu benutzt, den Hintergrund der Erfindung und die beim Stand der Technik auftretenden Probleme zu erläutern.
  • Ein Hostcomputer wird in der Regel über einen SCSI-Bus (SCSI = Small Computer System Interface) mit einem Festplattenlaufwerk verbunden. Festplattenlaufwerke enthalten normalerweise eine oder mehrere Festplatten, einen Lese/Schreib-Kopf und einen Controller. In den allereinfachsten Systemen sendet der Hostcomputer gemäß den Anforderungen eines Anwendungsprogramms eine Folge von SCSI-Lesebefehlen an den Controller des Festplattenlaufwerks. Nach jedem Befehl werden die angeforderten Daten auf der Platte gesucht, geholt und über den SCSI-Bus an den Host gesendet. In dieses einfache System ist ein beträchtlicher Verwaltungsaufwand eingebaut, d. h. Verzögerungen beim Liefern der Daten. Anders ausgedrückt kann der Datenstrom zum Hostcomputer durch Verwaltungsaktivitäten und Datensuchvorgänge unterbrochen werden.
  • Auf der Hostseite gehen in diese Verzögerungen die Zeitperiode zwischen dem Lesen des letzten Datenbytes und dem Senden des letzten Datenbytes über den SCSI-Bus, die Zeitperiode zwischen dem Senden des letzten Datenbytes und "bus free", die Zeitperiode, die der Host zum Ausführen der folgenden SCSI-Datenanforderung benötigt, und die Zeitperiode ein, die der Host zum Verwalten des Busses und zum Senden des letzten Befehlsbytes braucht. Sind die von der Hostanwendung benötigten Daten nicht zusammenhängend auf der Platte angeordnet, so gehört zum Verwaltungsaufwand auf Festplattenseite die Zeit, die zum Bewegen des Kopfs auf eine neue Spur benötigt wird, sowie die Zeit, die der geforderte Abschnitt der Platte dazu braucht, sich zum Kopf zu drehen.
  • Ein Weg zum Verbessern der Leistungsfähigkeit von Computersystemen besteht darin, Daten in einem schnellen Cachespeicher unterzubringen. Zum Unterbringen im Cachespeicher gehört das Übertragen der Daten von der Speichervorrichtung in den schnelleren Cache oder RAM-Speicher (RAM = Speicher mit wahlfreiem Zugriff). Befinden sich vom Anwendungsprogramm angeforderte Daten nicht im Cachespeicher, so wird auf die Speichervorrichtung zugegriffen. Dadurch muss die Anwendung warten. Derartige Situationen werden als "Cache-Miss" bezeichnet.
  • Das vorbeugende Ablegen im Cache ist ein Verfahren, mit dem man die Anzahl der Fälle verringert, in denen vom Anwendungsprogramm angeforderte Daten aus der Speichervorrichtung geholt werden müssen und nicht aus dem Cachespeicher. Programme für das vorbeugende Ablegen im Cache sind manchmal in der Firmware gespeichert, die zum Controller der Speichervorrichtung gehört. Ein übliches vorbeugendes Ablegeverfahren im Cache ist als "Read-Ahead" Cachingverfahren bekannt. Das "Read-Ahead"-Cachingverfahren besteht einfach darin, die Daten aus dem folgenden Sektor auf dem momentanen Zylinder zu lesen, nachdem die Information aus dem aktuellen Sektor gelesen ist. Offenkundig ist das "Read-Ahead"-Verfahren dann am wirksamsten, wenn große Datenmengen zusammenhängend in der Speichervorrichtung abgelegt sind. Es gibt jedoch eine Anzahl Anwendungen, bei denen nacheinander auf Datenblöcke an vielen verschiedenen Orten in der Speichervorrichtung zugegriffen werden muss. In diesen Fällen treten die angesprochenen Datenlieferungsverzögerungen bei jedem Cache-Miss auf, da sich der folgende Datenblock nicht im folgenden Speicherplatz in der Speichervorrichtung befindet. Ein vorbeugendes "Read-Ahead" ist in US-4,903,195 offenbart.
  • Es gibt eine Anwendung, die sich für vorbeugende "Read-Ahead"-Cachingverfahren nicht eignet, nämlich das Videoeditieren. Videoeditiersysteme erfordern häufig drei Datenströme, zwei Audioströme und einen Videostrom. Die Audiodatenströme benötigen 96 KByte/Sek, und die Videodatenströme benötigen 3,6 MByte/Sek. In Videoeditiersystemen, beispielsweise dem Lightworks System von Lightworks Editing Systems Ltd., wird eine Editierentscheidungsliste (EDL) erzeugt, die die Reihenfolge beschreibt, in der die Audio- und Videoclips gemischt werden. Die EDL ist im Wesentlichen ein Zugriffsplan, der verschiedene Datenblöcke in der Speichervorrichtung auflistet. Dummerweise sind diese Daten nur selten fortlaufend in der Speichervorrichtung hinterlegt. Um den Datenstromanforderungen zu genügen werden in herkömmlichen Videoeditiersystemen hostgestützte Daten-Cachingpläne verwendet, mit denen große Mengen an Audio- und Videodaten gespeichert werden können. Derartige hostgestützte Cacheverwaltungstechniken erfordern einen Puffer aus teuerem Speicher mit wahlfreiem Zugriff, der mindestens 32 MByte um fasst. Ein derartiger Speicher kann den Ladenpreis des Systems um mehrere tausend Dollar erhöhen. Zudem muss die Host-CPU dazu verwendet werden, den hostgestützten Cachespeicher zu verwalten. In EP 0 560 624 A2 ist ein Videoeditiersystem offenbart, das die Merkmale des Oberbegriffs von Anspruch 1 angibt.
  • Daher besteht Bedarf für ein Cachingschema, das in der Lage ist, dem Host einen ununterbrochenen Strom von nicht zusammenhängend gespeicherten Daten zu liefern, das jedoch keine großen Mengen an teuerem Speicher mit wahlfreiem Zugriff benötigt.
  • AUFGABE UND ZUSAMMENFASSUNG DER ERFINDUNG
  • Die generelle Aufgabe der Erfindung besteht darin, ein Cachingsystem bereitzustellen, das für praktische Zwecke die beschriebenen Probleme des Stands der Technik vermeidet. Im Einzelnen besteht eine Aufgabe der Erfindung darin, ein verbessertes Verfahren zum Holen zufälliger physikalischer Daten von einer Speichervorrichtung in vorbestimmter logischer Weise bereitzustellen, das man an Videoeditieranwendungen und andere Anwendungen anpassen kann, die das rasche Holen von großen Datenmengen erfordern, die nicht zusammenhängend in der Speichervorrichtung abgelegt sind.
  • Die Aufgaben werden von dem in Anspruch 1 bestimmten System erfüllt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die bevorzugten Ausführungsformen der Erfindung werden nun anhand der beiliegenden Zeichnungen ausführlich beschrieben.
  • Es zeigt:
  • 1 eine Speicherplatte, die in einem Datenlesevorgang der Erfindung verwendet wird;
  • 2 ein Flussdiagramm, das eine Ausführungsform des Folge- und Hinweis-Erzeugungsvorgangs erläutert;
  • 3 ein Kontextstatusdiagramm gemäß dem in 2 erklärten Flussdiagramm;
  • 4 ein Datenflussdiagramm gemäß dem in 3 erklärten Kontextdiagramm; und
  • 5 ein Audio/Video-Editiersystem, das einen Hostcomputer, einen Monitor und ein Festplattenlaufwerk enthält.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Es folgt eine ausführliche Beschreibung der bevorzugten Ausführungsform der Erfindung. Diese Beschreibung ist nicht in einem einschränkenden Sinn zu verstehen; sie dient lediglich der Erläuterung der allgemeinen Prinzipien der Erfindung. Der Bereich der Erfindung ist durch die beigefügten Ansprüche bestimmt.
  • Die bevorzugte Ausführungsform der Erfindung wird im Zusammenhang mit einem Audio/Video- (oder Multimedia-) Editiersystem beschrieben. Vor der Beschreibung der bevorzugten Audio/Video-Editierumgebung wird das Konzept ausführlich definiert.
  • Folgen. Eine Folge ist ein unabhängiger Datenagent, der bei Bedarf von einer Hostanwendung erzeugt wird, um einen vorbestimmten logischen Datenstrom von der Speichervorrichtung zu unterhalten.
  • So wie der Begriff hier verwendet wird, bezeichnet Agent einen Zusammenarbeitstask, der für das Ausführen einer bestimmten Funktion erzeugt wird. Damit ist eine Folge ein unabhängiger Prozess innerhalb der Firmware der Speichervorrichtung, der zum Unterhalten eines Datenstroms in die Speichervorrichtung oder aus der Speichervorrichtung erzeugt wird. In Multimediaanwendungen können mehrere Folgen (Audio, Video und Graphik) erforderlich sein, um die geforderten Datenströme anzupassen. Dort wo Anwendungen zukünftige Datenanforderungen festlegen können, kann man Folgen zum Verwalten dieser Datenströme erzeugen. Solche Folgen können Informationen enthalten, die zum Verwalten der Zugriffe auf Speichervorrichtungen und Speicherressourcen nützlich sind.
  • Der Ausdruck "logischer Datenstrom" stellt einen anwendungsspezifischen Datenstrom dar. Anders formuliert können Folgen auf Daten in anwendungsspezifischer Weise zugreifen. In Multimediaanwendungen wird auf die Daten beispielsweise in Form von Videoframes und entsprechenden Audioblöcken zugegriffen. In Datenbankanwendungen kann auf Daten in Form von Datenbankeinträgen zugegriffen werden.
  • Folgen sind aus einer Folgenkennung und einem oder mehreren Blockeinträgen zusammengesetzt. In Videoanwendungen ist ein Blockeintrag ein Clip, d. h. eine Reihe von Videoframes. Jeder Blockeintrag kann am Anfang eine logische Blockadresse (LBA), einen Versatz zum ersten Byte und die Anzahl der Bytes aufweisen. Damit definiert die Folge die interessierenden Daten besonders, und nicht nur die LBA, die die interessierenden Daten enthält. Blockeinträge können auch in der Reihenfolge angeordnet sein, in der die zugehörigen Daten von der Hostanwendung benötigt werden. Dies ermöglicht es der Speichervorrichtung, Daten wirksam vorab zu holen.
  • Die Folgenliste erlaubt es der Speichervorrichtung auch, während eines Lesevorgangs wirksamer zwischen unterschiedlichen Speicherbereichen umzuschalten. Anders gesagt kann die Speichervorrichtung das Vorabwissen über die vom Host angeforderten Daten und das Wissen über ihre eigenen physikalischen Eigenschaften dazu verwenden, die Datenholvorgänge zu optimieren. In 1, die eine Festplatte zeigt, ist beispielhaft dargestellt, dass eine Folgenliste, die angibt, dass in den Speicherbereichen AB und CD Daten vorhanden sind, die sich auf unterschiedlichen Spuren befinden und von der Anwendung benötigt werden, an das Festplattenlaufwerk übergeben werden kann. Der Plattencontroller kann nun diese Information dazu verwenden, die wirksamste Weise festzulegen, in der die Daten gelesen werden. Beispielsweise kann nach dem Lesen des Speicherbereichs AB der Bereich CD in zwei Segmenten ED und CE gelesen werden. Dadurch braucht der Plattencontroller nicht darauf zu warten, dass sich die Platte bis zum Punkt C dreht, nachdem vor dem Beginn des Lesevorgangs die Spuren gewechselt wurden. Offensichtlich lassen sich derartige Optimiertechniken zum Datenholen auch bei anderen Arten von Speichervorrichtungen einsetzen.
  • Zur weiteren Definition einer Folge kann man eine Entnahmeeinheit-Definitionsliste verwenden. So wie der Begriff hier verwendet wird, ist eine Entnahmeeinheit ein Datenelement in seiner natürlichen Form. In Videoanwendungen ist beispielsweise eine Entnahmeeinheit ein einziger Videoframe. In Datenbankanwendungen ist eine Entnahmeeinheit ein einzelner Datenbankeintrag. Entnahmeeinheiten können eine feste oder veränderbare Größe aufweisen. Die Entnahmeeinheit-Definitionsliste legt fest, ob jede Entnahmeeinheit eine feste oder eine veränderliche Länge hat, sowie die Größe der Entnahmeeinheit. Auf Entnahmeeinheiten kann man in folgender Weise über die Entnahmeeinheitenanzahl zugreifen. Für eine gegebene Entnahmeeinheitenanzahl wird die Summe (in Byte) der vorhergehenden Entnahmeeinheiten bestimmt. Diese Summe ist gleich der Anzahl an Bytes, die die Entnahmeeinheit vom Beginn der LBA versetzt ist. Dadurch kann man eine Entnahmeeinheit finden, indem man einfach die ermittelte Byteanzahl vom Beginn der LBA aus vorwärts geht.
  • Hinweise. Hinweise werden dazu verwendet, Folgenoperationen speziell anzupassen, damit sie die Funktionalität erzielen, die die Hostanwendung erfordert. Anders formuliert sind Hinweise Datenzugriffsparameter, die die Weise beschreiben, in der die Daten geholt werden sollen. Sie spiegeln die momentanen Datenanforderungen der Hostanwendung wieder. Sie steuern die Priorisierung, die Cacheverwaltung, die Fehlerbehandlung und den Folgentyp. Hinweise sind insbesondere in Multimediaanwendungen wichtig, in denen Audio- und Videodaten mit unterschiedlichen Raten zugeführt werden müssen. Verschiedene Datenzugriffsparameter, die zum Unterstützen von Multimediaanwendungen und anderen Anwendungen erforderlich sind, beispielsweise Datenbanken und Dateisystemen, werden im Weiteren beschrieben.
  • Die erste Gruppe von Datenzugriffsparametern besteht aus den folgenden Prozesssteuerparametern: Folgentyp, Folgenpriorität und Daten-nicht-bereit. Bezüglich des Folgentyps weisen unterschiedliche Anwendungen unterschiedliche Datenzugriffsanforderungen auf. Diese Datenzugriffsanforderungen werden durch den Folgentypparameter dargestellt. In Multimediaanwendungen sind die meisten Daten in Blöcken von sequentiellen Daten auf dem Speichermedium abgelegt. In Datenbankanwendungen können Daten spezifiziert werden. Die Reihenfolge, in der sie vom Host gefunden werden, kann jedoch oft nicht angegeben werden. Schließlich ist es in Dateisystemen vorteilhaft, gewisse Bereiche der Platte zu spezifizieren, beispielsweise die Dateizuordnungstabelle, die in den Cache gelegt werden sollen.
  • Der Folgen-Prioritätsparameter priorisiert die Daten im Datenstrom. Dies erlaubt es, Daten mit geringer Priorität zu opfern, falls die Speichervorrichtung den vom Host geforderten Datendurchsatz nicht beibehalten kann. Dieser Parameter wird normalerweise vom Benutzer definiert und unterscheidet sich von Anwendung zu Anwendung. In Multimediaanwendungen wird Audiodaten eine höhere Priorität gegeben als Videodaten, da es wahrscheinlicher ist, dass der Betrachter die Folgen einer Unterbrechung des Audiodatenstroms hört. Unterbrechung des Videodatenstroms lassen sich relativ leicht verbergen. Man kann beispielsweise den vorhergehenden Videoframe nochmals darstellen.
  • Der Parameter Daten-nicht-bereit informiert die Speichervorrichtung, was sie tun soll, falls die vom Host geforderten Daten nicht in ihrem Cache hinterlegt sind oder innerhalb der geforderten Zeit nicht vom Speichermedium geholt werden können. Eine Option besteht darin, eine Fehlermeldung zu senden. Eine weitere Möglichkeit ist, einfach die letzte vom Host geforderte Entnahmeeinheit erneut zu senden.
  • Die zweite Gruppe von Datenzugriffsparametern enthält die folgenden Cacheverwaltungsparameter: Cachegröße, Cachenähesteuerung, Folgencachesteuerung und Folgenschreibsteuerung. Bezüglich der Cachegröße sagt dieser Parameter der Speichervorrichtung, wieviel Cachespeicher reserviert werden soll. Dieser Parameter ist besonders in Anwendungen nützlich, in denen Daten nicht aufeinander folgend in der Speichervorrichtung abgelegt sind und die Cachezuordnung kontrolliert werden muss.
  • Es kann Situationen geben, in denen der Cache nicht in der Lage ist, alle in einer Folge spezifizierten Daten zu speichern. Der Parameter Cachenähesteuerung wird dazu verwendet, sicherzustellen, dass die Daten mit der höchsten Anforderungswahrscheinlichkeit durch die Hostanwendung im Cache verfügbar sind. In einer sequentiellen Folge sollen die im Cache gehaltenen Daten direkt auf die aktuelle Position des Zeigers in der Folge bezogen sein. Eine derartige Nähe ist nicht in allen Anwendungen gut zu nutzen. In Datenbankanwendungen spiegeln beispielsweise Folgenlisten die Wahrscheinlichkeit der Datensuche wider. In den Fällen, in denen die vom Host verlangten Daten nicht im Cache abgelegt sind, sucht sie der Controller der Speichervorrichtung auf dem Speichermedium. Dies sollte jedoch die im Cache gespeicherten Daten nicht beeinflussen.
  • Der Parameter Folgencachesteuerung wird zusammen mit Cachenähesteuerung dazu verwendet, festzulegen, welche prozentualen Anteile des Caches jeweils dem Vorwärts-Caching und dem Rückwärts-Caching zugewiesen werden sollten. Dieser Parameter ist besonders in Multimediaanwendungen nützlich, in denen rasche Antworten auf Veränderungen in der Wiedergaberichtung erforderlich sind.
  • Schließlich wird der Parameter Folgenschreibsteuerung verwendet, wenn Schreib-Caching verwendet wird, während Information auf das Speichermedium geschrieben wird. Für jede Folge sind eine Anzahl Optionen verfügbar. Beispielsweise kann die gesamte von der Folge bezeichnete Information unmittelbar auf das Speichermedium geschrieben werden. Eine weitere Option ist, alle Daten unmittelbar in den Cache zu schreiben und anschließend die Kontrolle an die Hostanwendung zurückzugeben. Die Daten können dann in untätigen Zeitabschnitten auf das Speichermedium geschrieben werden. Schließlich können alle in das Speichermedium geschriebenen Daten für zukünftige Zugriffe im Cache gehalten werden.
  • Die dritte Gruppe von Datenzugriffsparametern sind die Datenholparameter. Diese Gruppe enthält den Parameter für die sequentielle Datenrate und den Datenumkehrparameter. Der Parameter für die sequentielle Datenrate legt die Rate fest, mit der Daten von einer bestimmten Folge von der Speichervorrichtung angefordert werden. In Multimediaanwendungen werden beispielsweise Datenraten über die Audio- und Videoabtastraten definiert. Der Parameter wird dazu verwendet, die Datenholplanung von der Speichervorrichtung zu optimieren, damit die Anforderungen für alle aktuellen Folgen erfüllt werden. Die Datenrateninformation erlaubt es der Speichervorrichtung, den Zeitpunkt der folgen den Datenanforderung für jede Folge zu berechnen. Diese Information erlaubt es der Speichervorrichtung zusammen mit der Größe der Entnahmeeinheit den spätesten Zeitpunkt zu ermitteln, an dem jeder Datenholvorgang beginnen muss, damit er bei der zugehörigen Datenanforderung fertig ist. Die Speichervorrichtung plant nun Datenholvorgänge anhand der vorbestimmten Datenholzeiten.
  • Der Datenumkehrparameter ist besonders in Multimediaanwendungen nützlich. Dieser Parameter erlaubt es, die Daten in der gleichen Richtung an den Host zu liefern, in der die aktuelle Folge verarbeitet wird. Wird der Videoanteil einer Multimediapräsentation rückwärts abgespielt, so können die Audiodaten von der Speichervorrichtung ebenfalls rückwärts geliefert werden.
  • Folge-und-Hinweis-Operation. Es gibt zwei Grundtypen von Folgen, nämlich einfache Folgen (mit festen Blöcken) und generische Folgen. Einfache Folgen erfordern keine Entnahmeeinheiten-Definitionslisten. Sie nutzen nur das grundlegende Folge-und-Hinweis-Konzept zum Verbessern der Leistung des zugeordneten Anwendungsprogramms. Eine einfache Folge enthält eine Liste von LBAs und Hinweisen, die die Operationsmerkmale der Folge festlegen. Der Folgenzugriff erfolgt über blockgestützte Standard-SCSI-Befehle. Bei einer einfachen Folge ist die Speicherkapazität des Caches größer als der Umfang der zu speichernden Datenmenge. Einfache Folgen eignen sich gut zum Optimieren der Leistung von Dateisystemen und anderen blockorientierten Anwendungen. Derartige Folgen definieren eine Anzahl fester Blöcke, auf die mit der größten Wahrscheinlichkeit zugegriffen wird.
  • Generische Folgen enthalten besondere Informationen hinsichtlich eines jeden für die Hostanwendung interessanten Datenelements. Es kann eine generische Folgenliste definiert werden, die eine Anzahl LBAs in einer vorbestimmten Reihenfolge definiert. Die von der Folge definierte Datenmenge kann größer sein als die Speicherkapazität des Caches. Damit ändern sich Daten innerhalb des Caches abhängig vom Ort des Folgenzeigers. Die Blöcke können dann sequentiell gelesen oder geschrieben werden. Damit können generische Folgen Daten in anwendungsspezifischer Weise holen und damit die Hostanwendung davon entlasten, einzelne Datenelemente aus den Datenblöcken zu entnehmen. Ein derartiges anwendungsspezifisches Datenholen erfordert jedoch besonders zugeschnittene SCSI-Befehle, da Standard-SCSI-Befehle auf Blöcken beruhen. Derartige Sonderbefehle müssen in Hostanwendungen enthalten sein, die die Erfindung vorteilhaft nutzen.
  • Generische Folgen können entweder sequentiell oder vorhersagend sein. Sequentielle Folgen sind in Anwendungen nützlich, in denen ein von der Folge definierter Pfad durch die Daten vorab eingestellt wird. Vorhersagende Folgen dienen zum Festlegen einer Liste von Entnahmeeinheiten, auf die wahlfrei zugegriffen wird, und zwar sortiert nach der Wahrscheinlichkeit des Zugriffs. Vorhersagende Folgen erlauben den Zugriff auf jede Entnahmeeinheit in einer Liste, in der die Daten in ihrer ursprünglichen Form definiert sind (beispielsweise ein Videoframe oder ein Audioblock). Vorhersagende Folgen erlauben es auch, die Cachegröße zum Zeitpunkt der Erzeugung festzulegen. Schließlich erlauben es vorhersagende Folgen dem Laufwerk, die Folge abhängig von den jüngsten Datenanforderungen des Host umzusortieren.
  • Folgen können generell entweder dynamisch oder dauerhaft sein. Dynamische Folgen müssen von der Hostanwendung erzeugt werden. Dagegen werden dauerhafte Folgen auf dem Speichermedium gesichert und nach jedem Einschalten oder Zurücksetzen im Cache wieder hergestellt. Dauerhafte Folgen bestimmen system- oder anwendungsspezifische Datenparameter, auf die konstant zugegriffen wird, beispielsweise Dateizuordnungstabellen.
  • 24 zeigen ein Beispiel des Folgen- und Hinweis-Erzeugungsvorgangs, den Anwendungsprogramme ausführen. Im Übersichtsflussdiagramm in 2 stellt der Schritt 10 die Datenanforderung des Anwendungsprogramms definiert bezüglich eines logischen Orts dar. Im Schritt 20 wird die Datenanforderung in einen Block von logischen Dateizugriffsdaten konvertiert, die durch eine LBA, einen Versatz gegen das erste Byte und die Anzahl der Bytes bestimmt sind. Sind die Daten nicht fortlaufend auf dem Speichermedium angeordnet, so wird eine Liste von Blöcken erzeugt. In den Schritten 3050 werden die logischen Dateizugriffsdaten der vom Anwendungsprogramm geforderten Daten in den physikalischen Ort oder die physikalischen Orte auf dem Speichermedium konvertiert, beispielsweise einer Festplatte. Anders ausgedrückt wird eine Folge gebildet. Der Schritt 30 ist ein Entscheidungsblock.
  • Im Schritt 40 werden die logischen Dateizugriffsdaten (die Einzelheiten werden im Folgenden beschrieben) blockweise in physikalische I/O-Anforderungen konvertiert. Im Schritt 50 werden die physikalischen I/O-Anforderungen hintereinander zusammengehängt, so das sie eine physikalische Folgendefinitionsliste bilden. Die Hinweise, d. h. die anwendungsspezifischen Folgenparameter wie die Datenrate liefert das Anwendungsprogramm im Schritt 60. Die Hinweise werden im Schritt 70 mit der Folgenliste verbunden und bilden die Speichermediums-Zugriffsfolge, die das Anwendungsprogramm an die Speichervorrichtung sendet.
  • Das in 3 dargestellte Kontextdiagramm gibt einen Überblick über ein Beispiel der Umsetzung von logischen Dateidaten in eine physikalische Folge. Eine derartige Umsetzung nimmt normalerweise ein Unterprogramm im Anwendungsprogramm vor. Allgemein gesagt empfängt ein Codierunterprogramm (dargestellt durch den Kreis) logische Dateiinformation vom Anwendungsprogramm und physikalische Dateizuordnungsinformation vom Speichermedium. Abhängig von der empfangenen Information wird nun eine physikalische Folge gebildet. Das durch den Kreis in 3 dargestellte Codierunterprogramm ist in 4 ausführlicher erläutert. Zunächst werden logische Dateidaten blockweise oder segmentweise in eine logische Dateizuordnung konvertiert. Die logischen Dateidaten können einer Anzahl von Typen angehören, beispielsweise Editierentscheidungsliste, DOS-Datei, Datenbank und AV-Medium. Mit Hilfe von physikalischen Zuordnungsdaten vom Speichermedium, beispielsweise der Dateizuordnungstabelle, wird ein physikalisches Zuordnungssegment für jedes logische Dateisegment erzeugt. Daraufhin wird die physikalische Folge gebildet.
  • Multimedia-Beispiel
  • 5 zeigt ein Multimedia-Editiersystem, in dem die Erfindung angewendet werden kann. Das beispielhafte Multimedia-Editiersystem enthält einen Hostcomputer 100, einen Monitor 110 und ein Festplattenlaufwerk 120, das über einen SCSI-Bus 130 mit dem Hostcomputer 100 verbunden ist. Das Festplattenlaufwerk 120 enthält einen Controller 122 und einen Puffer 124.
  • Dem Laufwerkscontroller 122 werden eine oder mehrere physikalische Folgen übergeben, die eine Hostanwendung liefert. In Audio- und Videoanwendungen werden beispielsweise eine Video- und zwei Audiofolgen von der Hostanwendung geliefert. Der Laufwerkscontroller 122 beginnt nun, diese Daten auf der Speicherplatte zu suchen und speichert sie in seinem Puffer 124. Beim Empfang der SCSI-Lesebefehle von der Hostanwendung werden dem Hostcomputer im Puffer gespeicherte Daten geliefert. Der Laufwerkscontroller 122 fährt mit der Datensuche gemäß der physikalischen Folge fort, während die SCSI-Befehle empfangen werden. Dadurch wird der größte Teil der herkömmlicherweise benötigten Suchzeit beseitigt. In den Fällen, in denen ein SCSI-Lesebefehl empfangen wird und die zugehörigen Daten nicht im Puffer 124 gespeichert sind, sucht der Controller 122 die Daten einfach in der üblichen Weise auf der Speicherplatte.
  • Die Tabellen 1–6 zeigen SCSI-Befehle, die man in Verbindung mit einer Multimediaimplementierung der Erfindung in einer SCSI-Bus-Umgebung verwenden kann. Tabelle 1 zeigt den AV-Modus-Seitenwahlbefehl, der auf der Speicherplatte gesichert ist und der beim Hochfahren die anfänglichen Parameter für das Laufwerk einstellt. Dieser Befehl definiert eine dauerhafte Folge auf dem Speichermedium, die eine Dateizuordnungstabelle und die Größe eines Puffersegments beschreibt, das man für SCSI-Anforderungen verwenden kann, die nicht auf eine Folge bezogen sind. Der restliche Puffer ist für die Zuordnung der Folge verfügbar. Da das Laufwerk einen nicht flüchtigen Speicher darstellt, ist es nach jedem Ausschaltvorgang oder SCSI-Rücksetzvorgang in dieser Weise konfiguriert. Der dauerhaften Folge können zahlreiche verschiedene Caching-Arten zugeordnet sein. Beispielsweise bringt ein Schreibvorgang durch Caching mit sich, dass das Aktualisieren der Daten im Cache sofort auf dem Speichermedium erfolgt. Obwohl dies relativ sicher ist, kann mit einem derartigen Cachingverfahren ein beträchtlicher Zusatzaufwand verbunden sein. Dagegen werden bei einem Schreibvorgang nach dem Caching Daten im Cache gespeichert, bis sich ein geeigneter Zeitpunkt zum Schreiben der Daten auf das Speichermedium ergibt. Ein derartiges Verfahren senkt den Zusatzaufwand, ist jedoch riskant. Erfolgt beispielsweise ein Ausschaltvorgang oder SCSI-Rücksetzvorgang vor dem Schreiben der Daten auf das Speichermedium, so sind die Daten verloren.
  • Figure 00110001
    Tabelle 1 – AV-Modus-Seitenwahlbefehl
  • Es werden nun die Einzelheiten des AV-Modus-Seitenwahlbefehls behandelt. Das Seitencodebyte [Byte 00] enthält Bits [Bit 00–05], die die AV-Modus-Cacheparameter kennzeichnen. Das Seitenlängenbyte [Byte 01] legt fest, welcher Teil des verfügbaren Speichers (255 Byte in der beispielhaften Ausführungsform) von der dauerhaften Folgendefinitionsliste verwendet wird. Das Bitmapbyte [Byte 02] legt Cachingverfahren fest und enthält weitere Bits, die der Benutzer für andere Zwecke definieren kann. Beispielsweise kann das Bit 00 dazu verwendet werden, festzulegen, ob als Cachingverfahren Schreiben im Nachhinein oder direktes Schreiben verwendet wird. Die Bytes 03 und 04 legen den Platz fest, den man zum Halten der definierten Folge benötigt, d. h. den Folgenpuffer. Ist die Folgendefinition größer als der Folgenpuffer, so wird ein Fehler zurückgegeben. Schließlich geben die Bytes 05 bis 255 die dauerhafte Folgendefinition selbst an.
  • Tabelle 2 zeigt den Folgeninitialisierungsbefehl für eine dauerhafte Cachefolge. Anders als AV-Modus-Seitenwahl ist er beim Einschalten oder nach einem SCSI-Rücksetzvorgang nicht vorhanden.
  • Figure 00120001
    Tabelle 2 – Folgeninitialisierungsbefehl
  • Der Folgeninitialisierungsbefehl führt mehrere Funktionen aus. Das Byte 01 speichert eine Folgenmarkierungszahl, die der Host zuweist. Markierungszahlen erlauben es einer einzigen Folgenausgabeinstitution, auf zahlreiche Folgen zuzugreifen. Das Byte 02 liefert eine Bitmap, die das Cachingverfahren und weitere Verhaltensweisen festlegt. Die Folgenpuffergröße-Bytes [Byte 03 und 04] spezifizieren den Speicherplatzumfang, der zum Halten der Folge benötigt wird. Die Minimum-Vorabholbytes [Byte 05 und 06] legen die kleinste Anzahl Bytes fest, die vorab geholt werden. Das Byte 07 legt die relativen prozentualen Anteile des Folgenpuffers fest, die für Weiterlesedaten und dem Hostcomputer vorab gelieferte Daten reserviert werden sollen. Zuletzt wird die Größe der Folgendefinitionsliste in Byte in den Bytes 08 und 09 angegeben.
  • Wie die Tabellen 3–6 zeigen, gibt es zahlreiche unterschiedliche Wege, die Daten in einer Folge zu beschreiben. Diese Information wird mit dem eröffnenden Folgenbefehl übergeben. Folgendaten können beispielsweise, siehe Tabelle 3, anhand eines oder mehrerer Verbünde von Daten beschrieben werden, die durch eine Anfangs-LBA, die Länge des Folgenbereichs in Blöcken und den Versatz eines jeden Bereichs von seiner jeweiligen Anfangs-LBA definiert sind.
  • Figure 00130001
    Tabelle 3
  • Tabelle 4 zeigt ein Beispiel für einen Datenbeschreibungstyp, der sich für Datenbank- und Audioanwendungen eignet, in denen alle Entnahmeeinheiten die gleiche Größe haben. Es wird nur ein Datenblock definiert.
  • Figure 00130002
    Tabelle 4
  • Die Tabellen 5 und 6 zeigen Entnahmeeinheitsdefinitionen, die sich für Videoanwendungen eignen, bei denen die Entnahmeeinheiten nicht alle gleich groß sind. Die in Tabelle 5 dargestellte Definition definiert Entnahmeeinheitsgrößen über die Anzahl der Bytes je Entnahmeeinheit. In Tabelle 6 werden die Entnahmeeinheiten über den Versatz gegen die letzte Entnahmeeinheit definiert.
    Figure 00140001
    Tabelle 5
    Figure 00140002
    Tabelle 6
  • Das nächste Folgendefinitionsbeispiel definiert eine Folge, die bei der LBA 0 beginnt, bis zur LBA 512 geht, einen ersten Entnahmeeinheitsversatz von 100 Byte gegen die Anfangs-LBA hat sowie Entnahmeeinheiten, die 256 Byte lang sind:
    0 × 01, 0 × 00000000, 0 × 0064, 0 × 0200, 0 × 02, 0 × 00000100.
  • Schließlich zeigt Tabelle 7 ein Beispiel für einen Folgenzugriffsbefehl. Zum Zugriff auf eine Folge sind eine Folgenmarkierungszahl und eine Hostkennung erforderlich. Daher wird eine Folgenmarkierungszahl [Byte 01, Bits 00-04] geliefert. Die Hostkennung wird über SCSI geliefert und vom Host definiert. Das Schreib/Lese-Bit [Byte 02, Bit 07] legt fest, ob der Folgenzugriff dem Lesen vom oder dem Schreiben auf das Speichermedium dient. In der bevorzugten Ausführungsform legt eine 0 das Lesen und eine 1 das Schreiben fest. Wird das Bit für folgende/vorhergehende Werte [Byte 02, Bit 06] auf 0 gesetzt, so wird die nächste Entnahmeeinheit bzw. werden die nächsten N Byte gesendet, und der Folgenzeiger wird um die Übertragungslänge in Byte erhöht. Wird das Bit für folgende/vorhergehende Werte auf 1 gesetzt, so wird er Folgenzeiger um die Übertragungslänge in Byte erniedrigt, und die zugehörige Entnahmeeinheit bzw. N Byte werden gesendet. Der Folgenzeiger verbleibt am Punkt der ersten Erniedrigung. Wird das Folgenzugriffs-Pausenbit [Byte 02, Bit 05] auf 1 gesetzt, so bleibt der Folgenzeiger an dem Punkt, auf den er bei Ausgabe des Folgenzugriffsbefehls gezeigt hat. Dies ist beispielsweise dann sinnvoll, wenn man eine Pause in einer Videopräsentation wünscht, das Bild jedoch weiterhin anzeigen will. Wird das Bit auf 0 gesetzt, so geschieht nichts. Das Entnahmeeinheitsbit [Byte 02, Bit 02] gibt an, ob die Folgendaten durch einen Folgen-Byteversatz (0) oder durch einen Folgen-Entnahmeeinheitsversatz (1) spezifiziert werden. Wird das Dumpbit [Byte 02, Bit 01] auf 1 gesetzt, so werden der momentane Folgenzeigerort und die Folgendefinitionsdaten an den Host gesendet. Wird das Bit auf 0 gesetzt, so geschieht nichts. Die Folgenzuweisung wird aufgehoben, wenn das Beenden-Bit [Byte 02, Bit 00] auf 1 gesetzt wird. Der zum Halten der Folge zugewiesene Speicher wird freigegeben und sämtliche zur Folge gehörenden Daten werden entfernt. Wird das Bit auf 0 gesetzt, so geschieht nichts. Der Folgenzugriff geschieht anhand der aktuellen Folgenzeigerposition, falls die Folgenanfangsort-Bytes [Byte 03–06] 0 sind. Haben diese Bytes einen von null verschiedenen Wert, so wird der Folgenzeiger auf den Folgenanfangsort-Wert geändert. Der Folgenzeigerort wird durch einen Entnahmeeinheitenversatz gegeben, falls das Entnahmeeinheitsbit auf 1 gesetzt ist. Andernfalls wird er als Byteversatz bezogen auf die absolute Byteposition innerhalb der Folge angegeben. Schließlich legen die Folgenzugriffslängen-Bytes [Byte 08–0B] die Übertragungsgröße in Entnahmeeinheiten fest, falls das Entnahmeeinheitsbit auf 1 gesetzt ist. Andernfalls wird sie in Byte angegeben. Sind die Folgenzugriffsbytes auf 0 gesetzt, so erfolgt keine Datenübermittlung.
  • Figure 00150001
    Tabelle 7 – Folgenzugriffsbefehl
  • Zum Modifizieren einer Folgenliste kann man neue Folgendaten mit der Markierungszahl der zu modifizierenden Folge senden. In gleicher Weise kann man Hinweise modifizieren, indem man neue Hinweise mit der entsprechenden Folgenmarkierungszahl sendet. Der Folgenzugriffsbefehl kann auch dazu verwendet werden, neue Hinweise weiterzuleiten, beispielsweise Cache vorwärts und Cache rückwärts.
  • Zum Schluss sei angemerkt, dass die meisten Hersteller von Speichervorrichtungen, beispielsweise die Hersteller von Festplattenlaufwerken, zum Kontrollieren der Arbeitsweise der Vorrichtung ihre hauseigene Firmware verwenden. Es kann sein, dass man eine derartige Firmware geringfügig abwandeln muss, damit sich die Vorrichtung mit der Erfindung verwenden lässt. Hinsichtlich der obigen Beschreibung der SCSI-Befehle sind Fachleuten derartige Modifikationen geläufig. Da die meisten Hersteller ihre firmeneigene Firmware verwenden, werden diese Modifikationen nicht detailliert dargestellt.
  • Die Erfindung ist anhand der bevorzugten Ausführungsform dargestellt. Für Fachleute sind zahlreiche Änderungen und/oder Zusätze für die beschriebenen Ausführungsformen offensichtlich. Es ist beabsichtigt, dass sich der Bereich der Erfindung auf alle derartigen Änderungen und/oder Zusätze erstreckt, und dass der Bereich der Erfindung nur durch die im Folgenden angegebenen Ansprüche begrenzt ist.

Claims (12)

  1. Multimedien-Editiersystem mit einer Hartdisk-Einheit (120), beinhaltend mindestens eine Hartdisk und einen Betriebspuffer (124), wobei das System einen Leitrechner (100) umfasst, beinhaltend eine Einrichtung zum Generieren einer Editierbefehlsliste, eine Einrichtung zum Umwandeln der Editierbefehlsliste in mindestens einen Block Dateizugriffsdaten, dadurch gekennzeichnet, dass es weiterhin umfasst eine Einrichtung zum Empfangen der physikalischen Dateiabbildungsinformation von der Hartdisk-Einheit (120), eine Einrichtung zum Generieren mindestens einer Folgeliste, welche den mindestens einen Block Dateizugriffsdaten identifiziert sowie die Information der physikalischen Dateiabbildung, eine Einrichtung zum Übertragen der mindestens einen Folgeliste an den Betriebspuffer (124), und eine Einrichtung zum Generieren von Lesebefehlen entsprechend den Daten, die von der Editierentscheidungsliste bestimmt werden; und einen Hartdisk-Betriebskontroller (122), beinhaltend die Einrichtung zum Lokalisieren vorgegebener Daten auf der mindestens einen Hartdisk entsprechend der mindestens einen Folgeliste, die im Betriebspuffer abgelegt ist, und Speichern der vorgegebenen Daten im Betriebspuffer (124), eine Einrichtung zum Senden vorgegebener Daten, die im Betriebspuffer (124) abgelegt sind, an den Leitrechner in Erwiderung auf die Lesebefehle.
  2. Multimedia-Editiersystem nach Anspruch 1, wobei die mindestens eine Folgeliste eine Videofolge und eine Audiofolge beinhaltet.
  3. Multimedia-Editiersystem nach Anspruch 2, wobei die Videofolge beinhaltet eine Videodatenprüfgeschwindigkeit und die Audiofolge eine Audioprüfgeschwindigkeit.
  4. Multimedia-Editiersystem nach Anspruch 1, wobei die mindestens eine Folgeliste beinhaltet Daten, welche einen Prozentsatz des Betriebspuffers bezeichnen, der vorbehalten ist dem Ablesen vorlaufender Daten, und einen Prozentsatz des Be triebspuffers (124), der vorbehalten ist den Daten, die zuvor dem Leitrechner (100) bereitgestellt wurden.
  5. Multimedia-Editiersystem nach Anspruch 1, wobei der mindestens ein Block Dateizugriffsdaten bestimmt ist hinsichtlich einer Logikblockadresse, einem Offset zum ersten Byte und der Gesamtzahl Bytes in dem mindestens einen Block Dateizugriffsdaten.
  6. Multimedia-Editiersystem nach Anspruch 1, wobei die Lesebefehle SCSI-Lesebefehle (small computer system interfaces) sind.
  7. Multimedia-Editiersystem nach Anspruch 1, wobei die mindestens eine Folgeliste beinhaltet mindestens einen Datenzugriffsparameter, der die Leitrechner-Anwendungsdatenerfordernisse widerspiegelt.
  8. Multimedia-Editiersystem nach Anspruch 7, wobei der mindestens eine Datenzugriffsparameter beinhaltet mindestens einen Parameter aus Datenpriorisierung, Cache-Management, Fehlerprozessierung, Folgeart und Datenversorgungsrate.
  9. Multimedia-Editiersystem nach Anspruch 7, wobei mindestens ein Datenzugriffsparameter umfasst einen Fehlerprozessierparameter, der die Datenspeichervorrichtung veranlasst mindestens die letzte Prüfung erneut zu senden in Erwiderung auf einen Zustand, wo eine nächste Prüfung nicht verfügbar ist im Datenspeichervorrichtungspuffer und auch nicht aus dem Speichermedium innerhalb einer vorgegebenen Zeit gehoben werden kann.
  10. Multimedia-Editiersystem nach Anspruch 7, wobei der mindestens eine Datenzugriffsparameter einen Datenumkehrparameter umfasst.
  11. Multimedia-Editiersystem nach Anspruch 1, wobei die mindestens eine Folgeliste eine Anzahl nicht zusammenhängender lokalisierter Datenblöcke definiert.
  12. Multimedia-Editiersystem nach Anspruch 1, wobei die mindestens eine Folgeliste umfasst eine Anzahl von Folgelisten, wobei die Folgeliste jeweils eine eigene Leitrechner-Anwendungsdatenstromanforderung bestimmt.
DE69535330T 1994-09-14 1995-09-12 Caching-System mit Explitzer Folgeliste Expired - Lifetime DE69535330T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US30557294A 1994-09-14 1994-09-14
US305572 1994-09-14
PCT/US1995/012144 WO1996008772A1 (en) 1994-09-14 1995-09-12 Method of pre-caching data utilizing thread lists and multimedia editing system using such pre-caching

Publications (2)

Publication Number Publication Date
DE69535330D1 DE69535330D1 (de) 2007-01-18
DE69535330T2 true DE69535330T2 (de) 2007-05-31

Family

ID=23181352

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69535330T Expired - Lifetime DE69535330T2 (de) 1994-09-14 1995-09-12 Caching-System mit Explitzer Folgeliste

Country Status (6)

Country Link
US (1) US6092154A (de)
EP (1) EP0781432B1 (de)
AT (1) ATE347709T1 (de)
AU (1) AU3723395A (de)
DE (1) DE69535330T2 (de)
WO (1) WO1996008772A1 (de)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2728559B1 (fr) * 1994-12-23 1997-01-31 Saint Gobain Vitrage Substrats en verre revetus d'un empilement de couches minces a proprietes de reflexion dans l'infrarouge et/ou dans le domaine du rayonnement solaire
GB9715925D0 (en) * 1997-07-29 1997-10-01 Discreet Logic Inc Video data transfer
JP3522527B2 (ja) * 1998-03-27 2004-04-26 富士通株式会社 入出力制御装置および入出力制御方法
US6606617B1 (en) * 1998-09-24 2003-08-12 International Business Machines Corporation Optimized technique for prefetching LOB table space pages
JP2001022529A (ja) * 1999-06-30 2001-01-26 Internatl Business Mach Corp <Ibm> ディスクドライブ装置及びその制御方法
US9038108B2 (en) * 2000-06-28 2015-05-19 Verizon Patent And Licensing Inc. Method and system for providing end user community functionality for publication and delivery of digital media content
US6606689B1 (en) 2000-08-23 2003-08-12 Nintendo Co., Ltd. Method and apparatus for pre-caching data in audio memory
US6643744B1 (en) 2000-08-23 2003-11-04 Nintendo Co., Ltd. Method and apparatus for pre-fetching audio data
US8990214B2 (en) * 2001-06-27 2015-03-24 Verizon Patent And Licensing Inc. Method and system for providing distributed editing and storage of digital media over a network
US8972862B2 (en) 2001-06-27 2015-03-03 Verizon Patent And Licensing Inc. Method and system for providing remote digital media ingest with centralized editorial control
US7970260B2 (en) * 2001-06-27 2011-06-28 Verizon Business Global Llc Digital media asset management system and method for supporting multiple users
US20060236221A1 (en) * 2001-06-27 2006-10-19 Mci, Llc. Method and system for providing digital media management using templates and profiles
US20070089151A1 (en) * 2001-06-27 2007-04-19 Mci, Llc. Method and system for delivery of digital media experience via common instant communication clients
US20030088658A1 (en) * 2001-11-08 2003-05-08 Davies Ian R. Obtaining information to facilitate system usage
US7937554B2 (en) * 2002-11-12 2011-05-03 Broadcom Corporation System and method for managing memory
US6986019B1 (en) 2003-04-21 2006-01-10 Maxtor Corporation Method and apparatus for detection and management of data streams
US7424202B2 (en) * 2003-07-29 2008-09-09 Sony Corporation Editing system and control method using a readout request
GB0318196D0 (en) * 2003-08-02 2003-09-03 Ibm A method apparatus and computer program for processing a queue of messages
US7562361B2 (en) * 2004-02-26 2009-07-14 Microsoft Corporation Thread-based limitation on computer application
US7418582B1 (en) 2004-05-13 2008-08-26 Sun Microsystems, Inc. Versatile register file design for a multi-threaded processor utilizing different modes and register windows
US7519796B1 (en) 2004-06-30 2009-04-14 Sun Microsystems, Inc. Efficient utilization of a store buffer using counters
US7366829B1 (en) 2004-06-30 2008-04-29 Sun Microsystems, Inc. TLB tag parity checking without CAM read
US20060009265A1 (en) * 2004-06-30 2006-01-12 Clapper Edward O Communication blackout feature
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US7543132B1 (en) 2004-06-30 2009-06-02 Sun Microsystems, Inc. Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes
US7509484B1 (en) 2004-06-30 2009-03-24 Sun Microsystems, Inc. Handling cache misses by selectively flushing the pipeline
US7571284B1 (en) 2004-06-30 2009-08-04 Sun Microsystems, Inc. Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor
US7398348B2 (en) * 2004-08-24 2008-07-08 Sandisk 3D Llc Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory
EP1797561B1 (de) * 2004-09-28 2012-06-06 Koninklijke Philips Electronics N.V. Host-Gerät, Gerät zum Zugriff auf ein Speichermedium und Datenspeicherungssystem
US8756605B2 (en) * 2004-12-17 2014-06-17 Oracle America, Inc. Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline
US7430643B2 (en) * 2004-12-30 2008-09-30 Sun Microsystems, Inc. Multiple contexts for efficient use of translation lookaside buffer
US9270732B2 (en) * 2005-03-14 2016-02-23 Rhapsody International Inc. System and method for automatically uploading updates
US8024523B2 (en) * 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US11824723B2 (en) 2005-03-23 2023-11-21 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US20070143536A1 (en) * 2005-06-07 2007-06-21 Maxtor Corporation Storage device that pre-fetches data responsive to host access stream awareness
US20060294315A1 (en) * 2005-06-27 2006-12-28 Seagate Technology Llc Object-based pre-fetching Mechanism for disc drives
WO2007000081A1 (en) * 2005-06-29 2007-01-04 Intel Corporation Methods, apparatus, and systems for caching
US7788698B2 (en) * 2005-08-31 2010-08-31 Microsoft Corporation Pre-negotiation and pre-caching media policy
US9076311B2 (en) * 2005-09-07 2015-07-07 Verizon Patent And Licensing Inc. Method and apparatus for providing remote workflow management
US20070107012A1 (en) * 2005-09-07 2007-05-10 Verizon Business Network Services Inc. Method and apparatus for providing on-demand resource allocation
US8631226B2 (en) * 2005-09-07 2014-01-14 Verizon Patent And Licensing Inc. Method and system for video monitoring
US9401080B2 (en) 2005-09-07 2016-07-26 Verizon Patent And Licensing Inc. Method and apparatus for synchronizing video frames
DE102005059044A1 (de) * 2005-12-08 2007-06-14 Deutsche Thomson-Brandt Gmbh Verfahren zum Bearbeiten von Medieninhalten in einer Netzwerkumgebung sowie Gerät zur Vorratsspeicherung von Medien-Daten
US8099548B2 (en) * 2006-03-23 2012-01-17 Microsoft Corporation Power efficient media playback on general purpose portable devices
US8332608B2 (en) 2008-09-19 2012-12-11 Mediatek Inc. Method of enhancing command executing performance of disc drive
US8473688B2 (en) 2010-03-26 2013-06-25 Microsoft Corporation Anticipatory response pre-caching
US20110320863A1 (en) * 2010-06-24 2011-12-29 International Business Machines Corporation Dynamic re-allocation of cache buffer slots
US9104583B2 (en) 2010-06-24 2015-08-11 International Business Machines Corporation On demand allocation of cache buffer slots
US8775742B2 (en) * 2010-08-25 2014-07-08 Lsi Corporation System and method for cache management in a DIF enabled storage system
US8745158B2 (en) 2011-09-30 2014-06-03 Avid Technology, Inc. Application-guided bandwidth-managed caching
US10228854B2 (en) 2014-08-20 2019-03-12 Sandisk Technologies Llc Storage devices and methods for optimizing use of storage devices based on storage device parsing of file system metadata in host write operations
US10007442B2 (en) 2014-08-20 2018-06-26 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically deriving hints from accesses to a storage device and from file system metadata and for optimizing utilization of the storage device based on the hints
US10268584B2 (en) * 2014-08-20 2019-04-23 Sandisk Technologies Llc Adaptive host memory buffer (HMB) caching using unassisted hinting
US10884920B2 (en) 2018-08-14 2021-01-05 Western Digital Technologies, Inc. Metadata-based operations for use with solid state devices
US11340810B2 (en) 2018-10-09 2022-05-24 Western Digital Technologies, Inc. Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints
US11249664B2 (en) 2018-10-09 2022-02-15 Western Digital Technologies, Inc. File system metadata decoding for optimizing flash translation layer operations

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5927935B2 (ja) * 1980-02-29 1984-07-09 株式会社日立製作所 情報処理装置
US4604691A (en) * 1982-09-07 1986-08-05 Nippon Electric Co., Ltd. Data processing system having branch instruction prefetching performance
US4979050A (en) * 1983-12-02 1990-12-18 Lex Computer And Management Corporation Video composition method for assembling video segments
JPS59153251A (ja) * 1983-02-18 1984-09-01 Toshiba Corp デイスクキヤツシユシステム
US4604687A (en) * 1983-08-11 1986-08-05 Lucasfilm Ltd. Method and system for storing and retrieving multiple channel sampled data
US4746994A (en) * 1985-08-22 1988-05-24 Cinedco, California Limited Partnership Computer-based video editing system
JPH087662B2 (ja) * 1985-10-18 1996-01-29 株式会社日立製作所 データ転送制御方法
US5008820A (en) * 1987-03-30 1991-04-16 International Business Machines Corporation Method of rapidly opening disk files identified by path names
US4980823A (en) * 1987-06-22 1990-12-25 International Business Machines Corporation Sequential prefetching with deconfirmation
US4894772A (en) * 1987-07-31 1990-01-16 Prime Computer, Inc. Method and apparatus for qualifying branch cache entries
US4860199A (en) * 1987-07-31 1989-08-22 Prime Computer, Inc. Hashing indexer for branch cache
US4888679A (en) * 1988-01-11 1989-12-19 Digital Equipment Corporation Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
US5136696A (en) * 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
GB2235815A (en) * 1989-09-01 1991-03-13 Compact Video Group Inc Digital dialog editor
JPH0452743A (ja) * 1990-06-14 1992-02-20 Fujitsu Ltd 2重化外部記憶装置制御方式
US5283873A (en) * 1990-06-29 1994-02-01 Digital Equipment Corporation Next line prediction apparatus for a pipelined computed system
CA2045788A1 (en) * 1990-06-29 1991-12-30 Kadangode K. Ramakrishnan Cache arrangement for file system in digital data processing system
US5421014A (en) * 1990-07-13 1995-05-30 I-Tech Corporation Method for controlling multi-thread operations issued by an initiator-type device to one or more target-type peripheral devices
GB2247546B (en) * 1990-08-31 1995-03-01 Sun Microsystems Inc Method and apparatus for predictive caching
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
US5317713A (en) * 1991-09-19 1994-05-31 Quantum Corporation Micro-winchester disk drive having on-board segmented cache memory
US5396339A (en) * 1991-12-06 1995-03-07 Accom, Inc. Real-time disk system
US5285527A (en) * 1991-12-11 1994-02-08 Northern Telecom Limited Predictive historical cache memory
GB2266037B (en) * 1992-03-13 1996-02-14 Quantel Ltd An electronic video processing system
US5410653A (en) * 1992-06-16 1995-04-25 International Business Machines Corporation Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length
US5371861A (en) * 1992-09-15 1994-12-06 International Business Machines Corp. Personal computer with small computer system interface (SCSI) data flow storage controller capable of storing and processing multiple command descriptions ("threads")
US5442747A (en) * 1993-09-27 1995-08-15 Auravision Corporation Flexible multiport multiformat burst buffer

Also Published As

Publication number Publication date
AU3723395A (en) 1996-03-29
WO1996008772A1 (en) 1996-03-21
EP0781432A1 (de) 1997-07-02
ATE347709T1 (de) 2006-12-15
EP0781432A4 (de) 2005-05-25
DE69535330D1 (de) 2007-01-18
EP0781432B1 (de) 2006-12-06
US6092154A (en) 2000-07-18

Similar Documents

Publication Publication Date Title
DE69535330T2 (de) Caching-System mit Explitzer Folgeliste
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE60035151T2 (de) Hardware-Anordnung zur Verwaltung von Cachespeicherstrukturen in einem Datenspeichersystem
DE2801981C2 (de)
DE60032531T2 (de) Aufzeichnungsverfahren, Verwaltungsverfahren und Aufzeichnungsgerät
DE60035780T2 (de) Schaltung für plattenantriebskontroller und verfahren zur überschlagung von defekten oder ungewünschten sektoren
DE602004005050T2 (de) Verfahren, vorrichtung und computerprogramm zum verarbeiten einer warteschlange von nachrichten
DE69034227T2 (de) EEprom-System mit Blocklöschung
DE69631749T2 (de) Speichergerät und Verfahren zur gemeinsamen Benutzung von Daten
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE112011102076B4 (de) Neuordnen des Zugriffs zum Verringern der Gesamtsuchzeit auf Bandmedien
DE69914732T2 (de) Multimediasystem
DE10050171B4 (de) Verfahren zur Steuerung von Cache-Speichern
DE3935235A1 (de) Speicherungsverfahren fuer microcomputersysteme
DE3743890A1 (de) Verfahren zum schnellen eroeffnen von plattendateien
DE112013001284T5 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
WO1996008772B1 (en) Method of pre-caching data utilizing thread lists and multimedia editing system using such pre-caching
DE19633648A1 (de) Verfahren und Schaltungsanordnung zur Speicherung von Diktaten bei einem digitalen Diktiergerät
DE4213073A1 (de) Cache-steuergeraet und verfahren zur auswahl eines pfades eines cache-verzeichnisses bei einem zeilen-fuell-zyklus
DE19945993B4 (de) Plattenschreibvollendungssystem
DE112011102139B4 (de) Bandspeichereinheit und Schreibverfahren dafür
DE112012004297T5 (de) Verfahren zum Erkennen von Datenmanipulationen in einem Bandlaufwerk und Dateisystem
DE69633885T2 (de) Datenübertragungssteuerungsverfahren und Vorrichtung für externes Speichersubsystem
DE602004004780T2 (de) Verfahren und einrichtung zum transferieren von daten zwischen einem hauptspeicher und einer speichereinrichtung
EP1676203B1 (de) Verfahren zum schreiben von speichersektoren in einem blockweise löschbaren speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition