DE60035774T2 - Arbitrierungsverfahren und systeme zur zugriffsarbitrierung auf einen speicher einer plattensteuerung - Google Patents

Arbitrierungsverfahren und systeme zur zugriffsarbitrierung auf einen speicher einer plattensteuerung Download PDF

Info

Publication number
DE60035774T2
DE60035774T2 DE60035774T DE60035774T DE60035774T2 DE 60035774 T2 DE60035774 T2 DE 60035774T2 DE 60035774 T DE60035774 T DE 60035774T DE 60035774 T DE60035774 T DE 60035774T DE 60035774 T2 DE60035774 T2 DE 60035774T2
Authority
DE
Germany
Prior art keywords
access
time
period
unit
circuit
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
DE60035774T
Other languages
English (en)
Other versions
DE60035774D1 (de
Inventor
Leon A. Mission Viejo KRANTZ
Frank W. Long Beach CAMPBELL
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.)
Marvell World Trade Ltd
Original Assignee
Marvell World Trade Ltd
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 Marvell World Trade Ltd filed Critical Marvell World Trade Ltd
Publication of DE60035774D1 publication Critical patent/DE60035774D1/de
Application granted granted Critical
Publication of DE60035774T2 publication Critical patent/DE60035774T2/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
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Systems (AREA)

Description

  • Hintergrund der Erfindung
  • Gebiet der Erindung
  • Die vorliegende Erfindung betrifft Controller für Massendatenspeichervorrichtungen. Insbesondere betrifft die Erfindung Verfahren und Systeme zum Zuteilen bzw. Arbitrieren eines Zugriffs auf einen Platten-Controllerspeicher.
  • Beschreibung des Stands der Technik
  • Massendatenspeicherung ist eine kritische Komponente von Computersystemen. Typischerweise bestehen Massenspeichereinheiten aus einem nicht-flüchtigen Speicher, wie z.B. einer Festplatte, einem optischen Laufwerk oder anderen Art von Speichervorrichtung. Computersysteme enthalten typischerweise auch flüchtige Systemspeicher, wie z.B. Arbeitsspeicher-(RAM)-Schaltungen. Die meisten Personal Computer enthalten derzeit weniger als 256 Megabyte RAM, während dieselben Computer oft Festplatten bis zu 10 Gigabyte oder mehr Kapazität enthalten.
  • Die Massenspeichereinheit eines Computers wird zum Speichern von Programmen und Daten auf einer nicht-flüchtigen Basis verwendet. Somit behält die Massenspeichervorrichtung Daten selbst wenn der Computer und die Massenspeichervorrichtung ausgeschaltet sind. Flüchtiger Systemspeicher dient im Gegensatz dazu zur temporären Ablage von Programmcode und Daten. Typischerweise kann auf flüchtigen Systemspeicher wesentlich schneller als auf eine Massenspeichervorrichtung zugegriffen werden. Wenn ein Mikroprozessor Zugriff auf Programme oder Daten benötigt, die sich nicht im Systemspeicher befinden, kopiert der Mikroprozessor zuerst die Daten von der größeren, jedoch langsameren Massenspeichervorrichtung in den Systemspeicher. Der Prozessor kann dann schnell auf die Daten aus dem Systemspeicher zugreifen. Ferner schreibt der Mikroprozessor unter bestimmten Bedingungen, wenn neue oder modifizierte Daten im Systemspeicher gespeichert werden, die Daten in die Massenspeichervorrichtung.
  • Eine Massenspeichereinheit besteht typischerweise aus einer Festplatte und einem Festplatten-Controller (HDC). Der Controller betreibt die Festplatte, formatiert die Daten, während sie auf die Festplatte geschrieben werden, prüft die Daten, wenn sie von der Festplatte ausgelesen werden, überträgt die Daten an das und von dem Host-System und puffert die Daten, um so eine Latenz und Differenz in den Datenübertragungsraten zwischen der Festplatte und dem Host-Computersystem zu kompensieren.
  • Typischerweise enthält der HDC einen Pufferspeicher, welcher dazu genutzt werden kann, Daten zwischen der Platte und dem Host zu puffern. Da verschiedene Funktionseinheiten, wie z.B. die Platte, der Host und der lokale Controller mit dem Pufferspeicher zusammenarbeiten müssen, muss der Zugriff auf den Pufferspeicher in einer gewissen Weise koordiniert werden. Somit kann der HDC einen Zugriffs-Arbiter verwenden, um einen Zugriff auf den Pufferspeicher unter den einen Zugriff anfordernden verschiedenen Vorrichtungen auszuhandeln. Jedoch verwenden herkömmliche Systeme typischerweise Arbiter, die in ineffizienter Weise feste Zugriffszeitabschnitte für den Zugriff auf Einheiten in jedem Zugriffszyklus bereitstellen. Somit können sich herkömmliche Systeme nicht dynamisch an sich ändernde Nutzungen des Pufferspeichers durch die zugreifenden Einheiten anpassen.
  • EP-A-0 622 726 offenbart ein Verfahren zur Arbitrierung des Zugriffs mehrerer zugreifender Einheiten auf einen gemeinsamen Pufferspeicher in einem Controller einer Massenspeichervorrichtung. Insbesondere beschreibt dieses Dokument eine verbesserte Festplattenlaufwerksarchitektur, die eine zwischen einen Laufwerk-Mikrocontroller und einem Puffer-Controller geschaltete Mikrocontroller-Schnittstellenschaltung, die. Die Mikrocontroller-Schnittstellenschaltung enthält Adressenzuordnungsregister zum Zuordnen wenigstens eines vorbestimmten Abschnittes eines direkt adressierbaren Speichers des Mikrocontrollers, um Stellen des Laufwerk-Cache-Puffers zu adressieren. Die Puffer-Controllerschaltung enthält eine Zugriffs-Arbitrierschaltung zum Entscheiden von Anforderungen auf Zugriff zu dem Cache-Puffer über den Laufwerk-Datensequenzer, den Laufwerk-Host-Schnittstellencontroller und den Laufwerk-Mikrocontroller. Ein Mikrocontroller-Wartezustandsgenerator reagiert auf die Zugriffs-Arbitrierschaltung durch Erzeugen und Anwenden einer Wartezustandssequenz bei dem Mikrocontroller, bis eine Anforderung, die er für einen Zugriff zu dem Cache-Puffer stellt, ausgeführt werden kann.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren, eine Platten-Controllerschaltung und ein Computersystem bereitzustellen, welche eine verbesserte Speicherzugriffszeit ermöglichen.
  • Diese Aufgabe wird durch den Gegenstand der Ansprüche 1, 25 und 30 gelöst.
  • Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen spezifiziert.
  • Die vorliegende Erfindung offenbart ein Verfahren und ein System zur Zugriffsarbitrierung auf eine gemeinsame Ressource eines Controllers einer Massenspeichervorrichtung. In einer Ausführungsform der Erfindung ist der Controller ein Festplatten-Controller und die gemeinsame Ressource ist ein lokaler Pufferspeicher des Festplatten-Controilers. Mehrere Einheiten oder Schaltungen innerhalb des Controllers greifen jeweils auf den Pufferspeicher zu, um Information zu speichern oder auszulesen. Diese Einheiten können einen Controller-Mikroprozessor, eine Host-Schnittstellenschaltung, eine Platten-Formatiereinheit, eine Pufferspeicher-Auffrischeinheit, eine Plattenformatdaten-Abrufeinheit und eine Fehlerkorrektureinheit sein. Bei der Zugriffsarbitrierung auf dem Pufferspeicher werden die verschiedenen Zugriffsanforderungen der Einheiten berücksichtigt. Beispielsweise hat in einer Ausführungsform der Platten-Controller die zeit-kritischsten, vorhersagbaren und periodischen Zugriffsanforderungen, die anderen Einheiten haben weniger kritische und weniger vorhersagbare Zugriffsanforderungen, und die Host-Schnittstelleneinheit hat die am wenigsten vorhersagbaren und am wenigsten zeitkritischen Zugriffsanforderungen.
  • Eine Ausführungsform der Erfindung arbeitet in einem Zyklus, während welchem jeder Einheit eine zusammenhängende Zugriffsdauer angeboten wird. Dem Platten-Formatierer, welcher die kritischsten Zugriffsanforderungen hat, wird ein periodischer Zugriff in der Weise angeboten, dass die Zeitverzögerung, während welcher er keinen Zugriff hat, keine spezifizierte Zeitspanne überschreitet.
  • Auf der höheren Ebene ist der Zugriffszyklus in zwei Teile aufgeteilt. Ein erster Teil repräsentiert die Zeit, während welcher der Platten-Formatierer auf den Pufferspeicher zugreift. Der zweite Teil des Zugriffszyklus repräsentiert die Zeit, während welcher die rest lichen Einheiten, d.h., die Einheiten außer dem Platten-Formatierer, auf den Pufferspeicher zugreifen. Jedoch kann, während die restlichen Einheiten auf dem Pufferspeicher zugreifen, der Platten-Formatierer nicht auf den Pufferspeicher zugreifen. In einer Ausführungsform wird, um sicherzustellen, dass dem Platten-Formatierer ein periodischer Zugriff innerhalb eines vorbestimmten Zeitabschnittes garantiert wird, die kombinierte Zugriffszeit der restlichen Einheiten auf einen vorbestimmten Betrag begrenzt. Ebenso wird, um sicherzustellen, dass die restlichen Einheiten einen Zugriff erhalten, die Zugriffszeit des Platten-Formatierers ebenfalls auf einen vorbestimmten Betrag begrenzt. Da jeder von den zwei Teilen des Zugriffszyklus eine maximale Dauer hat, hat der Zugriffszyklus selbst eine maximal zulässige Dauer.
  • Auf der nächsten Ebene wird der Teil des den restlichen Einheiten zugeordneten Zugriffszyklus noch einmal aufgeteilt. Jeder von den restlichen Einheiten wird ein maximaler Zeitabschnitt innerhalb der den restlichen Nicht-Plattenformatierer-Einheiten zugewiesenen Zeit zugewiesen. Wenn irgendeine von den restlichen Einheiten ihre maximale Zuweisung nicht ausnutzt, wird die nicht genutzte Zeit der letzten von den verbleibenden Einheiten angeboten. Wenn die letzte Einheit nicht die gesamte für sie verfügbare Zeit nutzt, endet der Arbitrierzyklus früher. Somit wird die Zeit, vor welcher dem Platten-Formatierer wieder ein Zugriff auf den Pufferspeicher angeboten wird, kürzer als die spezifizierte maximale Dauer.
  • In einer Ausführungsform wird während eines Zugriffszyklus Zeit von der den restlichen Einheiten zugewiesenen Gesamtzugriffszeit abgezogen, da jede von den restlichen Einheiten sequentiell einen Abschnitt der gesamten zugewiesenen Zeit nutzt. Alles was von der zugewiesenen Zeit übrig bleibt, nachdem allen bis auf die letzte Einheit ein Zugriff angeboten wurde, wird der letzten Einheit angeboten.
  • Kurzbeschreibung der Zeichnungen
  • In den Zeichnungen, in welchen gleiche Bezugszeichen durchgängig entsprechende Komponenten repräsentieren, stellen dar:
  • 1 eine Blockdarstellung einer Ausführungsform eines Computersystems, das zur Implementation einer Ausführungsform der vorliegenden Erfindung angepasst ist;
  • 2 eine Ausführungsform einer Platten-Controllerschaltung;
  • 3 eine Ausführungsform der Busarchitektur des Platten-Controllers;
  • 4 eine Ausführungsform der Platten-Controller-Arbitrierarchitektur;
  • 5 eine Ausführungsform eines typischen Plattenschreibsequenz und eines Datenformats;
  • 6 eine Ausführungsform einer typischen Lesesequenz und eines Datenformats;
  • 7 eine Ausführungsform einer Arbitriersequenz;
  • 8A-8E ein Flussdiagramm einer Ausführungsform eines Arbitrierprozesses; und
  • 9 einen Zeitverlauf der Arbitriergrenzwerten und einige exemplarische Zugriffszeitdiagramme.
  • Detaillierte Beschreibung der Zeichnungen
  • In der nachstehenden Beschreibung wird Bezug auf die beigefügten Zeichnungen genommen, welche einen Teil davon bilden, und in welchen im Rahmen einer Veranschaulichung eine spezifische Ausführungsform dargestellt ist, in welcher die Erfindung in die Praxis umgesetzt werden kann. Es dürfte sich verstehen, dass weitere Ausführungsformen verwendet und strukturelle Änderungen ohne Abweichung von dem Schutzumfang der vorliegenden Erfindung durchgeführt werden können. Wo möglich, werden dieselben Bezugszeichen durchgängig durch die Zeichnungen verwendet, um dieselben oder ähnliche Komponenten zu bezeichnen. Zahlreiche spezifische Details werden beschrieben, um ein tiefes Verständnis der vorliegenden Erfindung zu ermöglichen. Es dürfte jedoch für den Fachmann auf diesem Gebiet offensichtlich sein, dass die vorliegende Erfindung ohne die spezifischen Details, oder mit bestimmten alternativen äquivalenten Vorrichtungen und Verfahren zu den hierin beschriebenen in die Praxis umgesetzt werden kann. In weiteren Fällen wurden allgemein bekannte Verfahren, Pro zeduren, Komponenten und Vorrichtungen nicht im Detail beschrieben, um so nicht unnötigerweise Aspekte der vorliegenden Erfindung zu verschleiern.
  • Die detaillierte Beschreibung, welche folgt, ist in nachstehende Kapitel organisiert: Aufbauübersicht einer Ausführungsform eines zur Verwendung mit einer Ausführungsform der vorliegenden Erfindung geeigneten Systems, Detaillierte Beschreibung einer Ausführungsform des Arbitrierprozesses, exemplarischer Zeittaktszenarien und exemplarischer Arbitrier-Grenzwertberechnungen.
  • Aufbauübersicht einer Ausführungsform eines zur Verwendung mit einer Ausführungsform der vorliegenden Erfindung geeigneten Systems
  • 1 zeigt eine Blockdarstellung einer Ausführungsform eines Systems 100, in welcher typischerweise ein Festplatten-Controller (HDC) 122 verwendet wird. Ein HDC-Kern 102 ist über eine Host-Busschnittstelle 110 mit einem Host-System 108 unter Verwendung eines Host-Systembusses 112 verbunden. Das Host-System 108 kann aus einem oder mehreren Host-System-Mikroprozessoren, einem System-RAM, einem Monitor, einer Tastatur und weiteren Vorrichtungen bestehen.
  • Das Host-System 108 tauscht Daten aus, die auf einer Festplatte 114 zu speichern oder davon auszulesen sind, über den Host-Systembus 112 aus. Befehle aus dem Host-System 108 an den HDC-Kern 102 beispielsweise in Bezug darauf, welche Daten auszulesen sind, oder wo Daten zu speichern sind, werden ebenfalls über den Host-Systembus 112 gesendet.
  • Zusätzlich ist ein Controller-Mikroprozessor 104 mit dem HDC-Kern 102 über eine Mikroprozessorschnittstelle 106 verbunden. Der Controller-Mikroprozessor 104, welcher in einer Ausführungsform von dem Host-System-Mikroprozessor getrennt ist, empfängt und führt Befehle aus dem Host-System 108 aus und verwaltet den HDC-Kern 102. Die Festplatte 114 ist mit dem HDC-Kern 102 über einen Platten-Formatierer 116 verbunden. Wie es nachstehend detaillierter diskutiert wird, steuert der Platten-Formatierer 116 den Betrieb der Festplatte 114. In der dargestellten Ausführungsform besteht die Fest platte 114 aus einer Magnetplattenvorrichtung und der zugeordneten Schaltung. Ein Controller-Pufferspeicher 118 ist mit dem HDC-Kern 102 über eine Pufferschnittstelle 120 verbunden. In einer Ausführungsform ist der Pufferspeicher 118 als ein Arbeitsspeicher (RAM) konfiguriert. Der RAM kann dynamisch oder statisch sein.
  • 2 stellt eine Ausführungsform des HDC-Kerns 102 und zugeordneter Ports 204, 208, 210, 216 dar. Die Busschnittstelle 202 sendet und empfängt Information aus dem Host-System 108 über Daten-, Steuer- und Interruptleitungen des Host-Busports 204. Die Mikroprozessorschnittstellenlogik 206 verbindet den Controller-Mikroprozessor 104 mit dem HDC-Kern 102 über Zeittakt-, Adressen- und Datenleitungen des Controller-Mikroprozessorports 208. Der Mikroprozessorbus 220 ermöglicht dem Controller-Mikroprozessor 104, mit den verschiedenen Einheiten in dem HDC 102 zu kommunizieren und diese zu steuern.
  • Gemäß Darstellung in 2 ist der Platten-Formatierer 116 mit der Platte 114 über die Daten- und Steuerleitungen des Plattenports 210 verbunden. Eine Reed Solomon Fehlerkorrekturcode-(ECC)-Maschine 212 ist mit dem Platten-Formatierer 116 über einen Bus verbunden. Die ECC-Maschine 212 führt eine Fehlerkorrektur bei Plattenlesevorgängen sowie eine Fehlerkorrekturcode-Erzeugung bei Plattenschreibvorgängen durch. Ein Puffer-Controller 214 ist mit dem Pufferspeicher 118 über Adressen-, Zeittakt- und Datenleitungen des Pufferports 216 verbunden. In einer Ausführungsform enthält der Puffer-Controller 214 einen (nicht dargestellten) Arbiter, welcher einen Zugriff auf den Pufferspeicher 118 über den Platten-Formatierer 116, die ECC-Maschine 212, die Host-Busschnittstelle 202 und die Mikroprozessorschnittstelle 206 zusätzlich zu anderen nachstehend diskutierten Einheiten steuert. Der Arbiter wird später detaillierter diskutiert. Die verschiedenen Einheiten, welche auf den Pufferspeicher 118 zugreifen, führen dieses über den Datenbus 218 aus. Der Datenbus 218 ist mit dem Pufferspeicher 118 über den Pufferport 216 verbunden.
  • 3 stellt eine Ausführungsform der HDC-Busarchitektur dar. Die Einheiten, welche auf den Pufferspeicher 118 zugreifen, tun dies über entsprechende "first in first out"-FIFO-Puffer 308, 312, 314, 316, 318 und 320. Diese FIFO-Puffer können in der Größe variieren. In einer Ausführungsform haben die FIFO-Puffer jeweils zwischen 64 bis 96 Byte Speicherplatz. Der Controller-Mikroprozessor 104 greift auf den Pufferspeicher 118 über den Mikroprozessor-FIFO 308 zu. Der Pufferspeicher 118 dient als der Hauptspeicher, welcher Befehle und Daten für den Controller-Mikroprozessor 104 speichert.
  • Eine Plattenformatdaten-Abrufeinheit 304 arbeitet, indem sie Plattenformatdaten aus dem Pufferspeicher 118 abruft. Der Platten-Formatierer 116 verwendet diese Daten, um Host-Systemdaten auf der Festplatte 114 zu lokalisieren und zu organisieren. Die Speicherauffrischeinheit 306 arbeitet so, dass sie den Pufferspeicher 116 bei erforderlichen Intervallen auffrischt, wenn der Pufferspeicher einen dynamischen RAM verwendet. Wie nachstehend diskutiert, nutzen in einer Ausführungsform sowohl die Plattenformatdaten-Abrufeinheit 304 als auch die Speicherauffrischungseinheit 306 einen Arbitrierzeitschlitz für die Zwecke der Pufferspeicher-Zugriffsarbitrierung. Somit kann nur eine von der Plattenformatdaten-Abrufeinheit 304 und der Speicherauffrischungseinheit 306 auf den Pufferspeicher in nur einem Zugriffszyklus zugreifen. Jedoch können in einer weiteren Ausführungsform die Speicherauffrischeinheit 306 und die Plattenformatdaten-Abrufeinheit 304 jeweils ihren eigenen Arbitrier-Zeitschlitz haben. Die Plattenformatdaten-Abrufeinheit 304 und die Speicherauffrischeinheit 306 greifen auf den Pufferspeicher 118 über ihre entsprechenden FIFO-Puffer 314 und 317 zu.
  • Gemäß Darstellung in 3 ist die ECC-Maschine 212 mit dem Pufferspeicher 118 über einen FIFO 318 verbunden. Der FIFO 318 der ECC-Maschine wird zum Korrigieren von aus der Festplatte 114 ausgelesenen Daten verwendet, während sich die Daten in dem Pufferspeicher 118 befinden. Der Puffer-Controller 214 führt die Korrektur mittels eines Lese/Modifizierungs/Schreib-Prozesses aus.
  • Die Host-Busschnittstelle 110 ist mit dem Pufferspeicher 118 über ihren FIFO 320 verbunden. Die Host-Busschnittstelle 110 kanalisiert Daten und Befehle zwischen dem Host-System 108 und dem Pufferspeicher 118.
  • 4 stellt eine Ausführungsform der Verbindung zwischen dem Platten-Formatierer 116, der Plattenformatdaten-Abrufeinheit 304 der Speicherauffrischeinheit 306, der ECC-Maschine 212, dem Mikroprozessor-FIFO 308, der Host-Busschnittstelle 110 und einem Arbiter 402 dar. Der Arbiter 402 arbitriert zwischen den auf den Pufferspeicher zugreifenden verschiedenen Einheiten. Der Arbiter 402 gewährt während eines sich wiederholenden Zugriffszyklus den anfordernden Einheiten Zugriff. Ein Zugriffszyklus ist eine Zeitperiode, während welcher jeder Einheit, oder einer Gruppe von Einheiten, die sich einen Zugriffsschlitz teilen, der auf den Pufferspeicher zugreift, ein Zugriff angeboten wird. In einer Ausführungsform besitzt jede Einheit eine mit "REQ" bezeichnete Anforderungsleitung zum Anfordern eines Zugriffs auf den Pufferspeicher 118, sowie eine als "ACK" bezeichnete Bestätigungsleitung, mittels welcher der Arbiter 402 einen angeforderten Zugriff gewährt.
  • Mit dem Arbiter 402 ist ein Satz von Arbitrierbegrenzungsregistern 410-418 verbunden, welche entsprechende Einheiten-Arbitriergrenzwerte speichern. In einer Ausführungsform ist ein gegebener Arbitriergrenzwert als die Anzahl von HDC-Taktzyklen pro Zugriffszyklus, der für eine Einheit verfügbar ist, während welcher diese auf den Pufferspeicher 118 gerade zugreifen kann, spezifiziert. Die Arbitriergrenzwertregister umfassen: Das Platten-Formatier-Arbitriergrenzwertregister 410, das Arbitriergrenzwertregister 412 für die gemeinsame Platten-Formatier-Datenabrufeinheit und Speicherauffrischeinheit, das Arbitriergrenzwert der ECC-Maschinenregister 414, das Mikroprozessor-FIFO-Arbitriergrenzwertregister 416 und das Host-Busschnittstellen-(Global)-Arbitriergrenzwertregister 418. Man beachte, dass sich die Platten-Formatier-Datenabrufeinheit 306 und die Speicherauffrischeinheit 30. denselben Arbitriergrenzwert teilen und dasselbe Arbitriergrenzwertregister 412 verwenden. Das Host-Busschnittstellen-Arbitriergrenzwertregister 418 wird auch als das globale Arbitriergrenzwertregister aus Gründen genannt, welche nachstehend diskutiert werden. Die Arbitriergrenzwertregister 410-418 speichern in HDC-Taktzyklen definierte Zeitgrenzwerte für die maximale spezifizierte Zugriffszeitspanne jeder Einheit während eines Zugriffszyklus. In einer Ausführungsform ist die Zugriffszeitspanne eine zusammenhängende Zeitdauer. Wie es ferner nachstehend beschrieben wird, sind mit dem Arbiter 402 auch ein Arbitriergrenzwertzähler 406 und ein globaler Arbitriergrenzwertzähler 408 verbunden, um die Zugriffszeitspannen der Einheiten durch Laden und Dekrementieren von Arbitriergrenzwerten zu verfolgen. Der globale Arbitriergrenzwertzähler 408 verfolgt die verfügbare Zugriffszeit auf die Host-Busschnittstelle und der Arbitriergrenzwertzähier 406 verfolgt die verfügbare Zugriffszeit auf die restlichen Einheiten.
  • 5 stellt eine exemplarische Plattenschreibsequenz 500 dar, wenn die Schreibdaten verschiedene Einheiten des HDC 102 passieren. Daten 502 aus dem Host-System 108 kommen an der Host-Busschnittstelle 110 an und werden über den Host-Busschnitt stellen-FIFO 320 zu dem Pufferspeicher 118 weitergegeben. Der FIFO 320 puffert die Daten 502 nach Bedarf, während er auf einen Zugriff auf den Pufferspeicher 118 wartet. In einer Ausführungsform werden Daten von der Festplatte 114 in Einheiten nicht größer als ein Sektor, welcher typischerweise 512 Bytes ist, ausgelesen oder gespeichert. Wenn auf eine Datenmenge kleiner als ein Sektor zugegriffen werden muss, wird trotzdem auf einen gesamten Sektor zugegriffen. Nachdem wenigstens ein vollständiger Datensektor in dem Pufferspeicher 118 gespeichert ist, werden die Daten 502 zusammen mit einem zyklischen Redundanzprüf-(CRC)-Etikett an den Plattenformat-FIFO 312 gesendet. Der CRC ist ein Code, der aus den Daten erzeugt wird, die dazu verwendet werden können, die Korrektheit der Daten zu bestätigen. Der FIFO 312 puffert die Daten 512 bei deren Ankunft aus dem Pufferspeicher 118. Während sich die Daten 502 und das CRC 508 auf dem Weg zu dem Platten-Formatierer 116 befinden, werden die Daten 502 und der CRC 508 ebenfalls durch die ECC-Maschine 212 geleitet, welche einen Fehlerkorrekturcode (ECC) 510 erzeugt. Der ECC 510 wird dann an den Platten-Formatierer 116 weitergeleitet, um an die Daten 502 und den CRC 508 angehängt zu werden, welche alle durch den Platten-Formatierer 116 auf die Festplatte 114 geschrieben werden.
  • 6 stellt eine exemplarische Plattenlesesequenz 600 dar, wenn die Daten durch die Einheiten des HDC 102 geführt werden. ECC-Techniken werden eingesetzt, um die Möglichkeit zu kompensieren, dass Sektordaten 604, CRC 606 und ECC 602 während des Schreib- und Leseprozesses von der Festplatte 114 verfälscht werden. Wie nachstehend beschrieben, führt die ECC-Maschine 212 die Aufgabe der Korrektur der unkorrigierten Daten 604 und/oder des CRC 606 durch, nachdem diese von der Festplatte 114 ausgelesen wurden. Da die unkorrigierten Daten 604, der CRC 606 und der ECC 602 von der Festplatte 114 gelesen werden, sendet der Platten-Formatierer 116 die unkorrigierten Daten 604, den CRC 606 und den ECC 602 an die ECC-Maschine 212. Der Platten-Formatierer 116 entfernt auch den ECC 602 und führt die unkorrigierten Daten 604 und den CRC 606 dem Platten-Formatier-FIFO 312 und dann dem Pufferspeicher 118 zu. Der Platten-Formatier-FIFO 312 absorbiert jede Latenz, wenn auf den Zugriff zu dem Pufferspeicher 118 gewartet wird. Während die unkorrigierten Daten 604 und der CRC 606 in dem Pufferspeicher 118 gespeichert werden, führt die ECC-Maschine 212 einen Algorithmus durch, der eine Fehlerkorrekturinformation 612 aus den unkorrigierten Daten 604, dem CRC 600 und dem ECC 602 erzeugt. Die ECC-Maschine 212 leitet die se Fehlerkorrekturinformation 612 an den ECC-FIFO 318 weiter. Der Puffer-Controller 214 verwendet dann diese Fehlerkorrekturinformation 612 in den ECC-FIFO 318, um zu versuchen, alle Fehler in den unkorrigierten Daten 604 und dem CRC 606, die sich in dem Pufferspeicher 118 befinden, zu korrigieren. Der Puffer-Controller 214 korrigiert die Daten 604 und den CRC 606, indem er die unkorrigierten Daten 604 und/oder den CRC 606 aus dem Pufferspeicher 118 ausliest, entsprechend die unkorrigierten Daten 604 und/oder den CRC 606 unter Verwendung der Information 614 in dem ECC-FIFO 318 modifiziert und dann die korrigierten Daten 616 und/oder den CRC 618 in den Pufferspeicher 118 zurück schreibt. Die korrigierten Daten 616 und der CRC 618 werden dann an den Host-Busschnittstellen-FIFO 320 weitergeleitet. Der CRC 618 wird dann geprüft. Die CRC-Prüfung ermittelt, ob die Datenkorrekturoperation erfolgreich war. Wenn die Daten 616 korrekt sind, werden die Daten 616 an die Host-Busschnittstelle 110 und an das Host-System 108 weitergeleitet. Wenn die Daten 616 nicht korrekt sind, wird ein Fehlersignal erzeugt und an das Host-System geleitet.
  • Wie vorstehend diskutiert, greifen einige Einheiten innerhalb des HDC 102 auf den Pufferspeicher 118 während eines typischen Lese- oder Schreibvorgangs von Plattendaten zu. Zusätzlich zu den während der Lese- und Schreibsequenzen beschriebenen Zugriffen greift der Controller-Mikroprozessor 104 ebenfalls auf den Pufferspeicher 118 zu, da der Pufferspeicher als der Mikroprozessorhauptspeicher dient. Ferner nutzt der Platten-Formatierer 116 nach der Durchführung eines Plattenschreib- oder Lesevorgangs die durch die Plattenformatdaten-Abrufeinheit 304 ausgelesene und in dem Pufferspeicher 118 gespeicherte Plattenformatinformation. Der dynamische Puffferspeicher RAM 118 muss ebenfalls periodisch aufgefrischt werden, und somit greift die Pufferspeicher-Auffrischeinheit 306 ebenfalls auf den Pufferspeicher zu.
  • Detaillierte Beschreibung einer Ausführungsform des Arbitrierprozesses
  • Eine Ausführungsform des Arbitrierverfahrens und der Vorrichtung stellt einen periodischen Zugriff durch alle einen Zugriff anfordernden Einheiten sicher und stellt dynamisch eine effiziente Zuweisung der verfügbaren Zugriffszeit zwischen den Einheiten bereit. Der Arbiter 402 funktioniert durch die Verwendung von einstellbaren Arbitriergrenzwerten. In einer Ausführungsform entsprechen die Arbitriergrenzwerte der Anzahl von Taktzyklen, welche die maximale Zugriffszeit für eine entsprechende Einheit repräsentieren.
  • Die Grenzwerte können in einem nicht-flüchtigen Speicher wie z.B. einem ROM oder EEPROM programmiert sein. Alternativ können die Arbitriergrenzwerte ermittelt werden, und durch das Host-System oder den Controller-Mikroprozessor kurzfristig festgelegt werden.
  • 7 stellt eine Ausführungsform eines Zugriffszyklus 700 dar. Während eines Zugriffszyklus prüft der Arbiter 402 jede Einheit auf Zugriffsanforderungen in einer vorbestimmten sich wiederholenden Reihenfolge. Wenn eine Einheit ihre REQ-Leitung zu dem Arbiter 402 nicht angehoben hat, prüft dann der Arbiter 402 die REQ-Leitung der nächsten Einheit. Der Arbiter 402 setzt den Zugriffszyklus fort, bis er eine Einheit findet, welche einen Pufferspeicherzugriff anfordert. Man beachte, dass die Speicherauffrischeinheit 306 und die Plattenformatdaten-Abrufeinheit 304 um denselben Zugriffszyklusschlitz konkurrieren. In einem gegebenen Zugriffszyklus kann der Arbiter nur einer von der Speicherauffrischeinheit 306 oder der Plattenformatdaten-Abrufeinheit 304 einen Zugriff gewähren. Wenn beide Einheiten 304/306 einen Zugriff in demselben Zyklus angefordert haben, gibt der Arbiter 402 der Speicherauffrischeinheit 306 Priorität, da der Pufferspeicher aufgefrischt werden muss, um den Verlust von Inhalten zu vermeiden; die Plattenformatdaten-Abrufeinheit 304 wartet dann bis zu dem nächsten Zugriffszyklus, um einen Zugriff zu erhalten.
  • 8 stellt ein detailliertes Flussdiagramm 800 einer Ausführungsform eines einzelnen Zugriffszyklus des Arbitrierprozesses dar. In einer Ausführungsform wird der Arbitrierprozess unter Verwendung einer Arbiter-Zustandsmaschine gesteuert. Da der Arbitrierprozess in einem Zyklus abläuft, ist die Wahl einer Startstelle nicht kritisch. Für die Zwecke einer Darstellung ist jedoch ein Startzustand 802 dargestellt. Der erste Abschnitt des Arbitrierprozesses 804814 befasst sich mit dem Platten-Formatiererzugriff. Bei dem Zustand 804 prüft der Arbiter 402, ob der Platten-Formatierer 116 einen Pufferspeicherzugriff anfordert, indem er die REQ-Leitung des Platten-Formatierers prüft. Wenn der Platten-Formatierer 116 einen Zugriff anfordert, gewährt der Arbiter 402 einen Zugriff bei dem Zustand 806, indem er die ACK-Leitung des Platten-Formatierers anhebt. Weitergehend zu dem Schritt 808 liest der Arbiter 402 den Platten-Formatierer-Arbitriergrenzwert aus dem entsprechenden Arbitriergrenzwertregister 410 aus und lädt den Grenzwert in den Arbitriergrenzwertzähler 406. Der Arbitriergrenzwertzähler 406 wird während jedes HDC-Taktzyklus dekrementiert (um 1 herunter gezählt). Anschließend prüft der Arbiter 402 bei den Zuständen 810, 812, ob der Arbitriergrenzwertzähler 406 Null erreicht hat, und ob die REQ-Anforderungsleitung des Platten-Formatierers noch aktiv ist. Wenn der Arbitriergrenzwertzähler 406 Null erreicht hat, oder wenn die REQ-Anforderungsleitung des Platten-Formatierers inaktiv ist, deaktiviert der Arbiter 402 bei dem Zustand 814 die ACK-Bestätigungsleitung des Platten-Formatierers. Wenn bei dem vorstehend erwähnten Zustand 804 der Platten-Formatierer 116 keinen Zugriff anfordert, geht der Arbiter direkt vom Zustand 804 zum Zustand 816 über.
  • Vor dem Fortfahren mit dem Rest des Arbitrierprozesses lädt der Arbiter 402 bei dem Zustand 816 den globalen Arbitriergrenzwert aus dem globalen Arbitriergrenzwertregister 418 in den globalen Arbitriergrenzwertzähler 408. Der globale Arbitriergrenzwertzähler 408 wird während jedes Taktzyklus des Restes des Zugriffszyklus dekrementiert. Somit wird der globale Arbitriergrenzwert dekrementiert, während die ECC-Maschine 212, der Mikroprozessor-FIFO 308, die Plattenformat-Datenabruf/Speicherauffrisch-Einheiten 304/306 und die Busschnittstelleneinheit 110 auf den Pufferspeicher 118 zugreifen. Sobald der globale Arbitriergrenzwertzähler 408 Null erreicht, beginnt ein neuer Zugriffszyklus und es wird wieder dem Platten-Formatierer 116 ein Zugriff angeboten.
  • Der globale Arbitriergrenzwert dient zwei Zwecken. Erstens begrenzt der globale Arbitriergrenzwert die verfügbare Zeit für alle Einheiten mit Ausnahme des Platten-Formatierers 116. Zweitens dient der globale Arbitriergrenzwert in der Auswirkung als der Arbitriergrenzwert für die Host-Schnittstelleneinheit 110. Jede von der ECC-Maschine 212, dem Mikroprozessor-FIFO 308 und den Plattenformat-Datenabruf/Speicherauffrisch-Einheiten 304/306 hat ihren eigenen Arbitriergrenzwert. Während jede von diesen Einheiten auf den Pufferspeicher 118 zugreift, zählt der Arbitriergrenzwertzähler 406 von den entsprechenden Arbitriergrenzwerten abwärts. Ferner zählt, während jede von diesen Einheiten auf den Pufferspeicher 118 zugreift, der globale Arbitriergrenzwertzähler 408 von dem globalen Arbitriergrenzwert abwärts, um die Zeit zu ermitteln, welche schließlich der Host-Schnittstelleneinheit 110 angeboten wird. Sobald die ECC-Maschine 212, der Mikroprozessor-FIFO 308 und die Plattenformat-Datenabruf/Speicherauffrisch-Einheiten 304/306 ihren Zugriff abgeschlossen haben, wird der Host-Schnittstelleneinheit 110 Zugriff für die restliche Zeit in dem globalen Arbitriergrenzwertzähler 408 gewährt.
  • Sobald der globale Arbitriergrenzwertzähler 408 geladen ist, fährt der Arbiter 402 mit dem Zustand 818 fort, um zu ermitteln, ob die ECC-Maschine 212 einen Zugriff anfordert, indem er die REQ-Leitung der ECC-Maschine prüft. Wenn die ECC-Maschine 212 einen Zugriff anfordert, geht der Arbiter zu dem Zustand 820 über und erteilt einen Zugriff, indem er die ACK-Leitung der ECC-Maschine aktiviert. An diesem Punkt liest der Arbiter 402 den Arbitriergrenzwert der ECC-Maschine aus dem entsprechenden Arbitriergrenzwertregister 412 ein und setzt zu dem Zustand 822 übergehend den Arbitriergrenzwertzähler 406. Der Arbitriergrenzwertzähler 406 wird mit jedem Taktzyklus während der Zugriffszeitdauer der ECC-Maschine dekrementiert. Man beachte, dass der globale Arbitriergrenzwertzähler 408 ebenfalls während dieser Zeit dekrementiert wird. Anschließend prüft der Arbiter 402 bei den Zuständen 824, 826 wiederholt, ob der Arbitriergrenzwertzähler 406 Null erreicht hat, und ob die REQ-Anforderungsleitung der ECC-Maschine noch angehoben ist. Wenn der Arbitriergrenzwertzähler 406 Null erreicht hat, oder wenn die Anforderungsleitung REQ der ECC-Maschine inaktiv ist, deaktiviert der Arbiter 402 die ACK-Leitung der ECC-Maschine bei dem Zustand 828. Wenn bei dem Zustand 828 die ECC-Maschine 212 keinen Zugriff anfordert, geht der Arbiter 402 direkt zum Zustand 830 über.
  • Sobald der Arbiter 402 den ECC-Maschinen-Abschnitt des Zugriffszyklus abgeschlossen hat, geht der Arbiter 402 zum Anbieten eines Zugriffs für den Mikroprozessor-FIFO 308 bei den Zuständen 830-840 in einer ähnlichen Weise wie der vorstehend bezüglich des ECC-Maschinenzugriffs beschriebenen über. Wie bei der ECC-Maschine 212 werden, während dem Mikroprozessor-FIFO 308 ein Zugriff gewährt wird, sowohl der Arbitriergrenzwertzähler 406 als auch der globale Arbitriergrenzwertzähler 408 bei jedem Taktzyklus dekrementiert. Sobald der Arbiter 402 den Mikroprozessor-FIFO-Abschnitt des Zugriffszyklus abgeschlossen hat, geht der Arbiter 402 zu dem Zustand 842 über.
  • In der vorliegenden Ausführungsform gewährt der Arbiter 402 nur einer von der Speicherauffrischeinheit 306 und der Plattenformatdaten-Abrufeinheit 304 Zugriff in einem einzelnen Zugriffszyklus. Somit verzweigt das Flussdiagramm bei dem Zustand 842 zur Anpassung an dieses Merkmal. Eine Pufferspeicher-Auffrischanforderung erhält Priorität gegenüber einer Anforderung der Plattenformatdaten-Abrufeinheit. Daher ermittelt der Arbiter 402 zuerst, ob die Auffrischeinheit 306 einen Zugriff anfordert. Wenn die Auf frischeinheit 306 einen Zugriff anfordert, folgt der Arbiter 402 einer Sequenz 844-852 ähnlich der vorstehend für die vorherigen Einheiten beschriebenen. Natürlich wird in diesem Falle der Arbitriergrenzwertzähler 406 mit dem Auffrisch/Datenabruf-Arbitriergrenzwert geladen. Wenn die Auffrischeinheit 306 keinen Zugriff anfordert, geht der Arbiter 402 zu einem Zustand 854 über und ermittelt, ob die Plattenformatdaten-Abrufeinheit 304 einen Zugriff fordert. Falls ja, folgt dann der Arbiter 402 einer Sequenz 856-864 ähnlich der Sequenz für die Auffrischeinheit 306. Wenn weder die Plattenformatdaten-Abrufeinheit 304 noch die Auffrischeinheit 306 einen Zugriff anfordert, geht der Arbiter 402 direkt vom Zustand 854 zum Zustand 866 über. An diesem Punkt bietet der Arbiter 402 der Host-Schnittstelle 110 einen Zugriff an.
  • In der vorliegenden Ausführungsform ist die Zugriffszeitspanne der Host-Schnittstelle 110 nur durch den globalen Arbitriergrenzwert begrenzt. Wie vorstehend diskutiert, wird der globale Arbitriergrenzwertzähler 406 zurückgesetzt, nachdem ein Zugriff dem Platten-Formatierer 116 angeboten wird, und bevor ein Zugriff der ECC-Maschine 212 angeboten wird, und wird dann kontinuierlich dekrementiert, während die Einheiten vor der Schnittstelle 110 auf den Pufferspeicher 118 zugreifen. Der Host-Schnittstelle 110 wird ein Zugriff für den Rest des globalen Arbitriergrenzwertes erlaubt, der nicht durch die vorstehenden Einheiten verwendet wird. Man beachte, dass der Zeitabschnitt, während welchem der Platten-Formatierer 116 auf den Pufferspeicher 28 zugreift, nicht den globalen Arbitriergrenzwertzähler 408 oder den der Host-Schnittstelle 110 zugeteilten Zeitabschnitt beeinflusst. Dieses beruht darauf, weil der globale Arbitriergrenzwertzähler 408 nur dann gesetzt wird, nachdem Platten-Formatierer 116 seine Zuteilung während des Zugriffszyklus hatte. Somit wird der Host-Schnittstelle flexibel eine Zugriffszeit angeboten, welche von einer vorbestimmten minimalen bis zu einer maximalen so groß wie der globale Arbitriergrenzwert in einem zusammenhängenden Zeitblock reicht.
  • Um der Host-Schnittstelle 110 einen Zugriff zuzuweisen, prüft der Arbiter zuerst in dem Zustand 866, ob die Host-Schnittstelle 110 einen Zugriff anfordert. Falls ja, aktiviert der Arbiter bei dem Zustand 868 die ACK-Leitung der Host-Schnittstelle, und gewährt dadurch einen Zugriff auf den Pufferspeicher 118. Der globale Arbitriergrenzwertzähler 408 wird weiter dekrementiert, während der Host-Schnittstelleneinheit 110 ein Zugriff gewährt wird. In der vorliegenden Ausführungsform ist der globale Arbitriergrenzwert ausreichend lang, um die Arbitriergrenzwerte der vorherigen Einheiten aufzunehmen und trotzdem noch wenigstens eine Restzeit für die Host-Schnittstelleneinheit aufzuweisen. Anschließend prüft der Arbiter 402 bei den Zuständen 870, 872 wiederholt, ob der globale Arbitriergrenzwertzähler 408 Null erreicht hat, und ob die Host-Schnittstelleneinheit 110 immer noch einen Zugriff anfordert. Wenn der globale Arbitriergrenzwertzähler 408 Null erreicht hat, oder wenn die Host-Schnittstelleneinheit 110 ihr REQ-Leitung bei dem Zustand 874 deaktiviert, deaktiviert der Arbiter 402 die ACK-Leitung der Host-Schnittstelle. Wenn die Host-Schnittstelle 110 bei dem Zustand 866 keinen Zugriff anfordert, geht der Arbiter 402 vom Zustand 866 zum Zustand 876 über. An diesem Punkt hat der Arbiter 402 einen Zugriffszyklus abgeschlossen und kehrt zu dem Startzustand 802 des Flussdiagramms 800 zurück.
  • Exemplarische Zeitablaufszenarios
  • 9 stellt verschiedene exemplarische Arbitriergrenzwerte und zugeordnete Zeitdiagramme dar, welche den Betrieb des Arbiters veranschaulichen. Wie vorstehend in der dargestellten Ausführungsform erwähnt, gibt ein Arbitriergrenzwert die Anzahl von HDC-Taktzyklen jedes für eine entsprechende Einheit verfügbaren Zugriffszyklus an, während welchen die Einheit auf den Pufferspeicher 118 zugreifen kann. Bezüglich der dargestellten Zeitlinien 902-918 beginnt die Zeit auf der linken Seite der Figur. Die erste Zeitlinie 902 stellt dar, dass auf einer obersten Ebene der Arbitrierprozesses in zwei Teile aufgeteilt werden kann. Der erste Teil besteht aus der dem Platten-Formatierer 116 zugewiesenen Zeit, dem Platten-Arbitriergrenzwert. Der zweite Teil besteht aus der allen anderen Einheiten zugewiesenen Zeit, dem globalen Arbitriergrenzwert. Die zweite Zeitlinie 904 stellt dar, dass die für die Host-Schnittstelle 110 verfügbare Zeit, dargestellt durch den dynamischen Host-Schnittstellen-Arbitriergrenzwert, die Zeit ist, die durch den globalen Arbitriergrenzwert, verringert durch die der ECC 212, dem Mikroprozessor 308, der Auffrisch/Datenabruf-Einheiten 304/306 repräsentiert wird. Die Zeitlinie 906 stellt dar, dass in einer Ausführungsform der kombinierte ECC-Arbitriergrenzwert, der Mikroprozessor-Arbitriergrenzwert und der Auffrischungs/Formatdatenabruf-Arbitriergrenzwert kleiner als der globale Arbitriergrenzwert sind, um dadurch sicherzustellen, dass ein minimaler Zeitabschnitt, der minimale Host-Schnittstellen-Arbitriergrenzwert, der Host-Schnittstelleneinheit 110 zugewiesen wird. Somit ist, selbst wenn die ECC 212, der Mikroprozessor 308 und die Auffrisch/Datenabruf-Einheiten 304/306 alle ihre verfügbare Zugriffszeit nutzen, immer noch eine Restzeit für die Benutzerschnittstelle 110 zum Zugriff auf den Pufferspeicher 118 vorhanden.
  • 9 stellt Zeitdiagramme für exemplarische Pufferspeicher-Arbitriersequenzen 908-918 dar. In jedem Diagramm ist nur ein vollständiger Zugriffszyklus dargestellt, welcher darstellt, wie die Zugriffszykluszeit variieren kann. Die erste exemplarische Arbitriersequenz 908 stellt die relative Zugriffszeit dar, die jeder Einheit zugeteilt wird, wenn alle Einheiten ihre maximale Zugriffszeit anfordern. In diesem Falle ist die Gesamtzugriffszykluszeit an ihrem Maximum. In der nächsten Sequenz deaktiviert die ECC-Maschine 212 ihre REQ-Leitung und beendet den Zugriff etwa in der Mitte während der in 906 dargestellten zugeordneten Arbitrierungszeit. In diesem Beispiel fordert der Mikroprozessor-FIFO 308 überhaupt keinen Zugriff, aber die Host-Schnittstelle 110 fordert und bekommt ihn für die gesamte restliche verfügbare Zeit. In der nächsten Sequenz 912 fordern die ECC-Maschine 212, die en 304, 306 und der Mikroprozessor 308 keinen Pufferzugriff. Somit wird der vollständige globale Arbitriergrenzwert für die Host-Schnittstelle 110 verfügbar. In dieser Sequenz verwenden sowohl der Platten-Formatierer 116 als auch die Host-Schnittstelle 110 die gesamte verfügbare Zeit für sich.
  • In der nächsten Sequenz 914 gibt der Platten-Formatierer 116 seine REQ-Leitung frei und verwendet nur etwa die Hälfte seiner verfügbaren Zeit. In dieser Sequenz verwenden die ECC-Maschine 212, die Auffrisch/Datenabruf-Einheiten 304/306 und die Host-Schnittstelle 110 ihre gesamte verfügbare Zugriffszeit. Da der Platten-Formatierer 116 frühzeitig seinen Zugriff aufgibt, ist die komplette Zugriffszykluszeit kürzer als in den vorherigen Sequenzen. Die Sequenz 916 ist ähnlich der Sequenz 914 mit der Ausnahme, dass die ECC 212, der Mikroprozessor 308 und die Auffrisch/Datenabruf-Einheiten 304/306 keinen Zugriff anfordern. Jedoch fordert die Host-Schnittstelle 110 in diesem Falle maximalen Zugriff und nutzt die von den anderen Einheiten abgegebene Zeit. Die letzte Folge 918 stellt eine Situation dar, in welcher der Platten-Formatierer 116 seine volle Zugriffszeit anfordert, die ECC 212, der Mikroprozessor 308, oder die Auffrisch/Datenabruf-Einheiten 304, 306 keinen Zugriff anfordern, und die Host-Schnittstelle 110 nur einen Teil ihrer verfügbaren Zugriffszeit anfordert. In diesem Falle ist, da der globale Arbitriergrenzwert niemals erreicht wird, die Gesamtzugriffszykluszeit wesentlich kürzer als die maximal mögliche Zugriffszykluszeit.
  • Exemplarische Arbitrier-Grenzwertberechnungen
  • Arbitriergrenzwerte können auf verschiedenen Faktoren einschließlich der nachstehenden beruhen: unter anderem der Größe des Platten-Formatierer-FIFO, der Breite des Pufferspeicherdatenbusses, der Daten-Lese/Schreib-Geschwindigkeit der Festplatte, der Taktgeschwindigkeit des HDC 102, der Zeitverzögerung bevor angeforderte Daten aus dem Pufferspeicher 118 gelesen werden, und der erforderlichen Zeit für den Arbiter 402, seine Operationen durchzuführen. Diese Faktoren sind typischerweise konstant und können zum Zeitpunkt der Konstruktion und Fertigung der Festplatteneinheit ermittelt werden. Die Arbitriergrenzwerte können in einem nicht-flüchtigen Speicher gespeichert werden, oder diese Faktoren können alternativ dynamisch während des Systembetriebs ermittelt werden.
  • In einer Ausführungsform der vorliegenden Erfindung wird der globale Arbitriergrenzwert so gesetzt, dass die Nutzung der Festplatte 114 optimiert wird. Dieses wird erreicht, indem sichergestellt wird, dass der Platten-Formatierer-FIFO 312 niemals leer oder voll gelassen wird. Der globale Arbitriergrenzwert definiert die Anzahl von Taktzyklen zwischen dem Zeitpunkt, an dem der Platten-Formatierer 116 den Zugriff auf den Pufferspeicher 118 bei einem vorherigen Zyklus aufgibt, und dem Zeitpunkt, bei dem Daten wieder an den FIFO 312 aus dem Pufferspeicher 118 bei einem anschließenden Zyklus ankommen. Solange sich Daten in dem FIFO 312 bei einem Plattenschreibvorgang befinden, und solange der FIFO 312 nicht bei einem Plattenlesevorgang voll ist, wird die Festplatte 114 optimal genutzt.
  • Gemäß nochmaligem Bezug auf 5 werden während des Plattenschreibvorgangs Daten 502 aus dem Pufferspeicher 118 an den Platten-Formatierer-FIFO 312 übertragen. Wenn der Platten-Formatierer 116 nicht auf den Pufferspeicher 118 zugreift, wird der Platten-Formatierer-FIFO 312 kontinuierlich geleert, wobei die Daten mit der Festplattendatengeschwindigkeit auf die Festplatte 114 geschrieben werden. Die Plattendatengeschwindigkeit ist die Geschwindigkeit, mit welcher Daten auf die Festplatte 114 geschrieben oder davon gelesen werden können. In einer Ausführungsform kann somit die Zeit, die es dauert, um einen vollen Platten-Formatierer-FIFO 312 zu leeren, definiert werden als: Leerungszeit = (FIFO-Größe)/(Plattendatengeschwindigkeit)
  • Diese Zeit kann mit der Taktfrequenz multipliziert werden, um die Zeit in Taktzyklen zu erhalten. Leerungstaktzyklen = (Taktfrequenz) × (FIFO-Größe)/(Plattendatengeschwindigkeit)
  • Indem der globale Arbitriergrenzwert angenähert auf die Anzahl von Taktzyklen eingestellt wird, welche die Festplatte 114 zum Leeren oder Füllen des Platten-Formatierer-FIFO 312 benötigt, kann der Platten-Formatierer 116 mit dem Nachfüllen des FIFO 312 zu beginnen, wenn dieser gerade leer wird. Somit wird die Plattennutzung optimiert.
  • Bei der Festlegung des globalen Arbitriergrenzwertes können zusätzliche Überlegungen berücksichtigt werden. Erstens benötigt der Arbiter 402 eine als Arbitrierverzögerung bezeichnete begrenzte Anzahl von Taktzyklen, um einer Einheit einen Zugriff zu gewähren. Zweitens dauert es eine als Einstellzeit bezeichnete begrenzte Anzahl von Taktzyklen, um den Pufferspeicher 118 einzustellen, um mit dem Übertragen von Daten zu beginnen. Drittens dauert es eine als Leseverzögerung bezeichnete begrenzte Anzahl von Taktzyklen, um Daten aus dem Pufferspeicher 118 an den Platten-Formatierer-FIFO 312 zu übertragen. Somit wird die Anzahl der "Leerungstaktzyklen" durch die Arbitrierverzögerung, die Einstellzeit und die Leseverzögerung verringert, so dass Daten aus dem Pufferspeicher 118 an den Platten-Formatierer-FIFO 312 gerade ankommen, wenn der FIFO 312 leer zu werden beginnt. Mit diesen Anpassungen wird in einer Ausführungsform der globale Arbitriergrenzwert wie folgt berechnet: Globaler Arbitriergrenzwert = (Taktfrequenz) × (FIFO-Größe)/(Festplattengeschwindigkeit) – (Arbitrierverzögerung) – (Einstellverzögerung) – (Leseverzögerung)
  • Obwohl dieser globale Arbitriergrenzwert auf der Basis des Zeitablaufs bei einem Plattenschreibvorgang beruht, ist der Zeitablauf bei einem Plattenlesevorgang analog und ergibt ein ähnliches Ergebnis.
  • Dieselben an den globalen Arbitriergrenzwert ausgeführten Anpassungen werden auf den Platten-Formatierer-Arbitriergrenzwert addiert statt subtrahiert. Im Wesentlichen, werden die von dem globalen Arbitriergrenzwert weggenommenen Zyklen dem Platten-Formatierer-Arbitriergrenzwert gegeben, um die Platten-Formatierernutzung zu maximieren. Jedoch wird vor der Ausführung der Anpassungen an dem Platten-Formatierer-Arbitriergrenzwert ein Basis-Arbitriergrenzwert formuliert.
  • Bei der Berechnung des Platten-Formatierer-Arbitriergrenzwertes muss die Tatsache, dass der Platten-Formatierer-FIFO 312 gleichzeitig sowohl geleert als auch gefüllt wird, berücksichtigt werden. In der bevorzugten Ausführungsform leert, wenn der Platten-Formatierer 116 Zugriff auf den Pufferspeicher 118 hat und Daten daraus an den Platten-Formatierer-FIFO 312 überträgt, der Platten-Formatierer 116 gleichzeitig den FIFO 312 zu der Festplatte 114 hin. Wenn der Platten-Formatierer-FIFO 312 gleichzeitig gefüllt und geleert wird, ist die Nettogeschwindigkeit, mit welcher er gefüllt wird, die Differenz in den Geschwindigkeiten, mit welcher Daten in dem FIFO 312 platziert und mit welcher Daten aus dem FIFO 312 entnommen werden. Die Geschwindigkeit, mit welcher Daten in dem FIFO 312 platziert werden, welche als Pufferdatengeschwindigkeit bezeichnet wird, ist gleich der Busbreite des HDC mal der Taktfrequenz. Damit kann die Füllgeschwindigkeit ausgedrückt werden wie folgt: Füllgeschwindigkeit = (Busbreite) × (Taktfrequenz) – (Plattendatengeschwindigkeit)
  • Die Größe des Platten-Formatierer-FIFO wird durch die Füllgeschwindigkeit dividiert, um die Zeit zum Füllen des Platten-Formatierer-FIFO 312 zu ermitteln. Dieses Ergebnis wird mit der Taktfrequenz multipliziert, um die Anzahl von Taktzyklen zum Füllen des Platten-Formatierer-FIFO 312 zu erhalten: Fülltaktzyklen = (FIFO-Größe) × (Taktfrequenz)/((Busbreite) × (Taktfrequenz) – (Plattendatengeschwindigkeit))
  • Wie vorstehend erwähnt, werden in den Berechnungen der Anzahl der Zyklen zum Füllen des Platten-Formatierer-FIFO 312 die Arbitrier-, Aufbau- und Verzögerungszeiten berücksichtigt. Während der Füllung des FIFO 312 besteht jedoch eine Möglichkeit, dass eine Seitengrenze in dem Pufferspeicher 112 überschritten wird. Wenn eine Seitengrenze überschritten wird, wird eine weitere Einstellverzögerung eingeführt, und eine zweite Einstellverzögerung in die Berechnung mit einbezogen. Der sich ergebende Plat ten-Formatierer-Arbitriergrenzwert wird somit durch die zusätzliche Verwaltungszeit der Arbitrierverzögerung, die doppelte Einstellverzögerung und die Leseverzögerung erhöht: Platten-Formatierer-Arbitriergrenzwert = (FIFO-Größe) × (Taktfrequenz)/((Busbreite) × (Taktfrequenz) – (Festplattengeschwindigkeit)) + (Arbitrierverzögerung) + 2 × (Einstellverzögerung) + (Leseverzögerung)
  • Wenn die Platten-Formatierer- und globalen Arbitriergrenzwerte wie vorstehend beschrieben gesetzt sind, erzielen der Platten-Formatierer 116 und die Festplatte 114 eine optimale Nutzung. Die Arbitriergrenzwerte der anderen Einheiten innerhalb des HDC 102 sind durch den globalen Arbitriergrenzwert beschränkt. Die Speicherauffrischung/ Plattenformatdatenabruf-Einheiten 304, 306 und die ECC-Maschine 212 haben typischerweise vorhersagbare Puffernutzungseigenschaften. Somit können die Arbitriergrenzwerte leicht gemäß diesen Eigenschaften gewählt werden. Der Arbitriergrenzwert des Mikroprozessor-FIFO nimmt eine vernünftige Nutzungserwartung an. Letztlich ist die Host-Busschnittstellennutzung kaum vorhersagbar, so dass der Busschnittstelleneinheit 110 die restliche Zugriffszeit zugewiesen wird.
  • In einer weiteren Ausführungsform der vorliegenden Erfindung wird zwei oder mehr Einheiten Zugriffszeit außerhalb des Umfangs des globalen Arbitriergrenzwertes zugewiesen. In noch einer weiteren Ausführungsform wird keinen Einheiten Zugriffszeit außerhalb des Umfangs des globalen Arbitriergrenzwertes zugewiesen. Stattdessen wird allen Einheiten ein Zugriff innerhalb des globalen Arbitriergrenzwertes gewährt und somit definiert der globale Arbitriergrenzwert allein die maximale Zugriffszykluszeit. In noch weiteren Ausführungsformen kann die Anzahl von unter dem globalen Arbitriergrenzwert begrenzten Einheiten verändert werden. Optional können zusätzliche globale Arbitriergrenzwerte hinzuaddiert werden, die gleichzeitig oder sequentiell arbeiten. Weitere Ausführungsformen werden in Betracht gezogen, in welchen zusätzliche Einheiten auf den Pufferspeicher 118 in einer ähnlichen Weise wie der Platten-Formatierer 116 außerhalb des globalen Arbitriergrenzwertes zugreifen können.

Claims (31)

  1. Verfahren zum Bereitstellen von Zugang zu einem gemeinsamen Speicher eines Platten-Controllers, wobei das Verfahren die folgenden Schritte umfasst: Zuordnen eines Zeitabschnitts als verfügbare Speicherzugriffszeit zu jeder von wenigstens zwei Einheiten; und Zugreifen auf den gemeinsamen Controller-Speicher unter Verwendung der wenigstens zwei Einheiten, wobei der ersten der wenigstens zwei Einheiten zugewiesene ungenutzte Zeit einer zweiten der wenigstens zwei Einheiten neu zugewiesen wird.
  2. Verfahren nach Anspruch 1, wobei die wenigstens zwei Einheiten wenigstens eine Datenabrufschaltung und eine Host-Schnittstellenschaltung enthalten.
  3. Verfahren nach den Ansprüchen 1 oder 2, wobei die erste Einheit eine Fehlerkorrektureinheit ist, die zweite Einheit eine Host-Schnittstelleneinheit ist und der Speicher ein Pufferspeicher ist.
  4. Verfahren nach Anspruch 3, das des Weiteren die folgenden Schritte umfasst: Zugreifen auf den Pufferspeicher unter Verwendung der Fehlerkorrektureinheit über eine erste Zeitspanne, wobei die erste Zeitspanne nicht länger ist als der erste Zeitabschnitt; Regulieren des zweiten Zeitabschnitts um ein Maß, das mit der Differenz zwischen dem ersten Zeitabschnitt und der ersten Zeitspanne zusammenhängt; Zugreifen auf den Pufferspeicher unter Verwendung der Host-Schnittstelleneinheit über eine zweite Zeitspanne, wobei die zweite Zeitspanne nicht länger ist als das zweite Zeitmaß.
  5. Verfahren nach Anspruch 4, das des Weiteren die folgenden Schritte umfasst: Zuweisen eines dritten Zeitabschnitts zu der Platten-Formatiereinheit; und Gewähren von Pufferspeicher-Zugriff für die Platten-Formatiereinheit; Zugreifen auf den Pufferspeicher unter Verwendung der Platten-Formatiereinheit über eine dritte Zeitspanne, wobei die dritte Zeitspanne nicht länger ist als das dritte Zeitmaß und ein ungenutzter Teil des dritten Zeitabschnitts der Host-Schnittstelleneinheit nicht zugewiesen wird.
  6. Verfahren nach Anspruch 5, wobei der Platten-Formatiereinheit innerhalb eines vorgegebenen vierten Zeitabschnitts nach dem Ende der dritten Zeitspanne wieder Zugriff auf den Pufferspeicher gewährt wird.
  7. Verfahren nach Anspruch 4, wobei Zugriff auf den Pufferspeicher während eines sich wiederholenden Zugriffszyklus gewährt wird, in dessen Verlauf keine Einheit mehr als einmal auf den Pufferspeicher zugreift.
  8. Verfahren nach Anspruch 1, das des Weiteren die folgenden Schritte umfasst: Bereitstellen eines ersten Zugriffszyklus, in dessen Verlauf Arbitrierung von Zugriff auf den gemeinsamen Controller-Speicher durchgeführt wird; Zuweisen eines ersten Teils des ersten Zugriffszyklus als einen ersten kontinuierlichen Block von Zugriffszeit zu einer ersten zugreifenden Einheit; Nutzen eines Abschnitts des ersten kontinuierlichen Blocks von Zugriffszeit unter Verwendung der ersten zugreifenden Einheit; Zuweisen eines zweiten Teils des ersten Zugriffszyklus und eines nicht genutzten Abschnitts des ersten kontinuierlichen Blocks von Zugriffszeit als einen zweiten kontinuierlichen Block von Zugriffszeit zu einer zweiten zugreifenden Einheit; und Nutzen eines Abschnitts des zweiten kontinuierlichen Blocks von Zugriffszeit unter Verwendung der zweiten zugreifenden Einheit.
  9. Verfahren nach Anspruch 8, das des Weiteren die folgenden Schritte umfasst: Zuweisen eines dritten Teils des ersten Zugriffszyklus als einen dritten kontinuierlichen Block von Zugriffszeit zu einer dritten zugreifenden Einheit; Gewähren von Ressourcen-Zugriff für die dritte zugreifende Einheit während des ersten Zugriffszyklus; Nutzen eines Abschnitts des dritten kontinuierlichen Blocks von Zugriffszeit mit der dritten zugreifenden Einheit während des ersten Zugriffszyklus; Beenden von Zugriff auf die Ressource durch die dritte zugreifende Einheit; und Gewähren von Ressourcen-Zugriff für die dritte zugreifende Einheit während eines zweiten Zugriffszyklus, wobei die Gewährung des zweiten Zugriffszyklus innerhalb eines vorgegebenen Zeitabschnitts nach dem Vorgang des Beendens durchgeführt wird.
  10. Verfahren nach Anspruch 9, das des Weiteren die folgenden Schritte umfasst: Spezifieren einer Zeitspanne, die mit dem Zugriffszyklus verbunden ist; und Reduzieren der Dauer wenigstens einer Wiederholung des Zugriffszyklus um einen Abschnitt, der mit einem nicht genutzten Abschnitt des zweiten kontinuierlichen Blocks von Zugriffszeit zusammenhängt.
  11. Verfahren nach Anspruch 9, wobei die gemeinsame Controller-Ressource ein Pufferspeicher ist.
  12. Verfahren nach Anspruch 9, wobei die erste zugreifende Einheit ein Prozessor ist und die zweite zugreifende Einheit eine Host-Schnittstellenschaltung ist.
  13. Verfahren nach Anspruch 1, wobei der Zugriff mehrerer Einheiten auf den gemeinsamen Speicher Arbitrierung unterworfen wird und das Verfahren die folgenden Schritte umfasst: Bereitstellen eines Zugriffszyklus, wobei der Zugriffszyklus eine Zyklusdauer hat; Zuweisen eines ersten Zeitabschnitts zu einer ersten zugreifenden Einheit; Zugreifen auf den gemeinsamen Controller-Speicher unter Verwendung der ersten Einheit über eine erste Zeitdauer, wobei die ersten Zeitdauer nicht länger ist als der erste Zeitabschnitt; und Zuweisen eines zweiten Zeitabschnitts und eines ungenutzten Abschnitts des ersten Zeitabschnitts zu einer zweiten zugreifenden Einheit.
  14. Verfahren nach Anspruch 13, das des Weiteren die folgenden Schritte umfasst: Zuweisen eines dritten Zeitabschnitts zu einer dritten zugreifenden Einheit; Zugreifen auf den gemeinsamen Speicher unter Verwendung der dritten Einheit über eine dritte Zeitspanne, wobei die dritte Zeitspanne nicht länger ist als der dritte Zeitabschnitt; und Reduzieren der Dauer des Zugriffszyklus um einen Abschnitt, der mit einem ungenutzten Abschnitt des dritten Zeitabschnitts zusammenhängt.
  15. Verfahren nach Anspruch 14, wobei die erste zugreifende Einheit eine Speicherauffrischungsschaltung ist, die zweite zugreifende Einheit eine Host-Schnittstellenschaltung ist und die dritte zugreifende Einheit eine Platten-Formatierungsschaltung ist.
  16. Verfahren nach Anspruch 1, das die folgenden Schritte umfasst: Zuweisen eines ersten Zeitabschnitts als eine erste verfügbare Zugriffszeit zu einer ersten zugreifenden Einheit; Zuweisen eines zweiten Zeitabschnitts als eine zweite verfügbare Zugriffszeit zu einer zweiten zugreifenden Einheit, wobei die zweite verfügbare Zugriffszeit wenigstens die erste verfügbare Zugriffszeit einschließt; Zugreifen auf den gemeinsamen Controller-Speicher unter Verwendung der ersten Einheit über eine erste Zeitspanne, wobei die erste Zeitspanne nicht länger ist als die erste verfügbare Zugriffszeit. Verringern der zweiten verfügbaren Zugriffszeit um die erste Zeitspanne; und Zugreifen auf den gemeinsamen Controller-Speicher unter Verwendung der zweiten Einheit über eine zweite Zeitspanne, wobei die zweite Zeitdauer nicht länger ist als die verringerte zweite verfügbare Zugriffszeit.
  17. Verfahren nach Anspruch 16, das des Weiteren die folgenden Schritte umfasst: Zuweisen eines dritten Zeitabschnitts als eine dritte verfügbare Zugriffszeit zu einer dritten zugreifenden Einheit, wobei der dritte Zeitabschnitt nicht in dem zweiten Zeitabschnitt eingeschlossen ist; und Zugreifen auf den gemeinsamen Controller-Speicher unter Verwendung der dritten Einheit über eine dritte Zeitspanne, wobei die dritte Zeitspanne nicht länger ist als die dritte verfügbare Zugriffszeit.
  18. Verfahren nach Anspruch 16, wobei Zugriff auf den gemeinsamen Controller-Speicher während eines sich wiederholenden Zugriffszyklus bereitgestellt wird, in dessen Verlauf keine Einheit mehr als einmal auf den gemeinsamen Controller-Speicher zugreift.
  19. Verfahren nach Anspruch 17, wobei der Zugriffszyklus eine maximale Dauer hat, die ungefähr der Summe des zweiten Zeitabschnitts und des dritten Zeitabschnitts gleich ist.
  20. Verfahren nach Anspruch 17, wobei die dritte Einheit einen Datenpuffer aufweist, den Daten durchlaufen, wenn sie sich zwischen dem gemeinsamen Controller-Speicher und der dritten zugreifenden Einheit bewegen.
  21. Verfahren nach Anspruch 17, wobei der dritte Zeitabschnitt wenigstens teilsweise durch die Größe des Datenpuffers sowie durch die Differenz zwischen der Rate, mit der Daten zwischen dem gemeinsamen Controller-Speicher und dem Datenpuffer übertragen werden, und der Rate bestimmt wird, mit der Daten durch die dritte zugreifende Einheit verarbeitet werden.
  22. Verfahren nach Anspruch 17, wobei der zweite Zeitabschnitt wenigstens teilweise durch die Größe des Datenpuffers und durch die Rate bestimmt wird, mit der Daten durch die dritte zugreifende Einheit verarbeitet werden.
  23. Verfahren nach Anspruch 17, wobei der zweite Zeitabschnitt und der dritte Zeitabschnitt wenigstens teilweise bestimmt werden, indem der Zeitabschnitt berücksichtigt wird, der notwendig ist, um eine Übertragung von Daten zwischen dem gemeinsam genutzten Controller-Speicher und dem Datenpuffer bei Beendigung von Zugriff durch eine zugreifende Einheit zu beginnen.
  24. Verfahren nach Anspruch 17, wobei die zweite Einheit eine Host-Schnittstelleneinheit ist und die dritte Einheit eine Speichervorrichtungs-Formatiereinheit ist.
  25. Platten-Controllerschaltung, die einen Speicher enthält, auf den durch eine Vielzahl von Platten-Controllerschaltungen zugegriffen wird, wobei die Platten-Controllerschaltung umfasst: eine erste Controllerschaltung mit einer entsprechenden ersten zugewiesenen Zugriffsdauer; eine zweite Controllerschaltung mit einer entsprechenden zweiten zugewiesenen Zugriffsdauer; und eine Arbitrierschaltung, die eine Größe misst, die mit einer tatsächlichen Zugriffsdauer durch die erste Controllerschaltung verbunden ist und den zweiten Zeitabschnitt um einen Abschnitt reguliert, der mit der Differenz zwischen der ersten zugewiesenen Zugriffsdauer und der tatsächlichen Zugriffsdauer zusammenhängt.
  26. Platten-Controllerschaltung nach Anspruch 25, wobei die erste Controllerschaltung eine Fehlerkorrekturschaltung ist, die verwendet wird, um aus einer Massenspeichervorrichtung gelesene Daten zu korrigieren, und die Fehlerkorrekturschaltung mit einem ersten Zeitabschnitt verbunden ist, der für Zugriff auf den gemeinsamen Speicher zugewiesen wird; die zweite Controllereinheit eine Host-System-Schnittstellenschaltung ist, die verwendet wird, um Daten mit einem Host-System auszutauschen, wobei die Host-System-Schnittstellenschaltung mit einem zweiten Zeitabschnitt verbunden ist, der für Zugriff auf den gemeinsamen Speicher zugewiesen wird; und eine Speichervorrichtungs-Formatierschaltung, die als Schnittstelle zu der Massenspeichervorrichtung dient, wobei die Speichervorrichtungs-Formatierschaltung mit einem dritten Zeitabschnitt verbunden ist, der für Zugriff auf den gemeinsamen Speicher zugewiesen wird; und wobei die Arbitrierschaltung dazu dient, Arbitrierung von Zugriff auf den gemeinsamen Speicher durch wenigstens die Host-System-Schnittstellenschaltung, die Fehlerkorrekturschaltung und die Speichervorrichtungs-Formatierschaltung durchzuführen und die Arbitrierungsschaltung so konfiguriert ist, dass sie der Fehlerkorrekturschaltung Zugriff auf den gemeinsamen Speicher über eine erste Zeitspanne gewährt, wobei die erste Zeitspanne nicht länger ist als der erste Zeitabschnitt, und sie den zweiten Zeitabschnitt um einen Abschnitt reguliert, der mit der Differenz zwischen dem ersten Zeitabschnitt und der ersten Zeitspanne zusammenhängt.
  27. Platten-Controllerschaltung nach Anspruch 26, wobei die Arbitrierschaltung des Weiteren so konfiguriert ist, dass sie Zugriff auf den gemeinsamen Speicher während eines sich wiederholenden Zugriffszyklus bereitstellt, in dessen Verlauf keine Schaltung mehr als einmal auf den gemeinsamen Speicher zugreift.
  28. Platten-Controllerschaltung nach Anspruch 26, wobei der Speichervorrichtungs-Formatierschaltung Zugriff auf den gemeinsamen Speicher innerhalb eines vorgegebenen Zeitraums nach einem vorangehenden Zugriff auf den gemeinsamen Speicher durch die Speichervorrichtungs-Formatierschaltung bereitgestellt wird.
  29. Platten-Controllerschaltung nach Anspruch 26, wobei die Arbitriereinrichtung eine Zustandsmaschine ist.
  30. Computersystem, das umfasst: ein Host-System; ein Host-System-Schnittstellenschaltung, die mit dem Host-System gekoppelt ist, wobei die Host-System-Schnittstellenschaltung dazu dient, Daten mit dem Host-System auszutauschen; eine Fehlerkorrekturschaltung, die dazu dient, aus einer Massenspeichervorrichtung gelesene fehlerhafte Daten zu korrigieren; eine Speichervorrichtungs-Formatierschaltung, die als Schnittstelle zu der Massenspeichervorrichtung dient; und eine Arbitrierschaltung, die dazu dienst, Arbitrierung von Zugriff auf einen Pufferspeicher durch wenigstens die Host-System-Schnittstellenschaltung, die Fehlerkorrekturschaltung und die Speichervorrichtungs-Formatierschaltung durchzuführen, wobei die Arbitrierschaltung so konfiguriert ist, dass sie der Fehlerkorrekturschaltung einen ersten Zeitabschnitt zuweist, der Host-Schnittstellenschaltung einen zweiten Zeitabschnitt zuweist und der Speichervorrichtungs-Formatierschaltung einen dritten Zeitabschnitt zuweist, und die Arbitrierschaltung des Weiteren so konfiguriert ist, dass sie der Fehlerkorrekturschaltung Zugriff über eine erste Zeitspanne bereitstellt, wobei die erste Zeitspanne nicht länger ist als der erste Zeitabschnitt, und sie den zweiten Zeitabschnitt um einen Abschnitt reguliert, der mit der Differenz zwischen dem ersten Zeitabschnitt und der ersten Zeitspanne zusammenhängt.
  31. Computersystem nach Anspruch 30, wobei die Arbitrierschaltung des Weiteren so konfiguriert ist, dass sie Zugriff auf den Pufferspeicher während eines sich wiederholenden Zugriffszyklus bereitstellt, in dessen Verlauf keine Schaltung mehr als einmal auf den Pufferspeicher zugreift.
DE60035774T 1999-03-24 2000-03-23 Arbitrierungsverfahren und systeme zur zugriffsarbitrierung auf einen speicher einer plattensteuerung Expired - Lifetime DE60035774T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US275629 1999-03-24
US09/275,629 US6530000B1 (en) 1999-03-24 1999-03-24 Methods and systems for arbitrating access to a disk controller buffer memory by allocating various amounts of times to different accessing units
PCT/US2000/007780 WO2000057267A1 (en) 1999-03-24 2000-03-23 Arbitration methods and systems for arbitrating access to a disk controller memory

Publications (2)

Publication Number Publication Date
DE60035774D1 DE60035774D1 (de) 2007-09-13
DE60035774T2 true DE60035774T2 (de) 2007-12-06

Family

ID=23053180

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60035774T Expired - Lifetime DE60035774T2 (de) 1999-03-24 2000-03-23 Arbitrierungsverfahren und systeme zur zugriffsarbitrierung auf einen speicher einer plattensteuerung

Country Status (9)

Country Link
US (1) US6530000B1 (de)
EP (1) EP1163573B1 (de)
JP (1) JP4313516B2 (de)
KR (1) KR100619806B1 (de)
AT (1) ATE368885T1 (de)
AU (1) AU3915300A (de)
CA (1) CA2364625C (de)
DE (1) DE60035774T2 (de)
WO (1) WO2000057267A1 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6715009B1 (en) * 1999-12-21 2004-03-30 Intel Corporation Method and apparatus for coordinating cooperating resources and its application
US7406547B2 (en) * 2000-08-09 2008-07-29 Seagate Technology Llc Sequential vectored buffer management
US6763437B1 (en) * 2000-09-07 2004-07-13 Maxtor Corporation Control system, storage device and method for controlling access to a shared memory using a bus control or handshaking protocol
JP4213338B2 (ja) * 2000-12-22 2009-01-21 富士通マイクロエレクトロニクス株式会社 リアルタイムレコーディングシステム及びリアルタイムレコーディング方法
US7007114B1 (en) * 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7870346B2 (en) * 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7080188B2 (en) * 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US7099963B2 (en) * 2003-03-10 2006-08-29 Qlogic Corporation Method and system for monitoring embedded disk controller components
US7206922B1 (en) * 2003-12-30 2007-04-17 Cisco Systems, Inc. Instruction memory hierarchy for an embedded processor
US7139150B2 (en) * 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US7120084B2 (en) * 2004-06-14 2006-10-10 Marvell International Ltd. Integrated memory controller
US8166217B2 (en) * 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
US7757009B2 (en) * 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US8032674B2 (en) * 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) * 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) * 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7609468B2 (en) * 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
JP2006301810A (ja) * 2005-04-18 2006-11-02 Fujitsu Ltd データ転送処理方法、データ転送処理装置およびデータ転送処理制御プログラム
US8108659B1 (en) * 2006-11-03 2012-01-31 Nvidia Corporation Controlling access to memory resources shared among parallel synchronizable threads
KR101534790B1 (ko) * 2008-10-15 2015-07-07 마벨 월드 트레이드 리미티드 데이터 저장 시스템들을 위한 구조
CN102385555B (zh) * 2010-08-27 2015-03-04 深圳市朗科科技股份有限公司 一种缓存***和数据缓存的方法
US9268649B1 (en) * 2011-06-23 2016-02-23 Western Digital Technologies, Inc. Disk drive with recent write streams list for data refresh determination
US20130132621A1 (en) * 2011-11-23 2013-05-23 Ankit Sihare Method and apparatus to share hardware resources across storage controllers within a system using resource sharing module
US9886209B2 (en) * 2016-02-16 2018-02-06 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controlling file placement on a disk drive to improve file access

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4000485A (en) 1975-06-30 1976-12-28 Honeywell Information Systems, Inc. Data processing system providing locked operation of shared resources
US4558429A (en) 1981-12-17 1985-12-10 Honeywell Information Systems Inc. Pause apparatus for a memory controller with interleaved queuing apparatus
US5276807A (en) 1987-04-13 1994-01-04 Emulex Corporation Bus interface synchronization circuitry for reducing time between successive data transmission in a system using an asynchronous handshaking
US5193197A (en) 1987-09-24 1993-03-09 Digital Equipment Corporation Apparatus and method for distributed dynamic priority arbitration for access to a shared resource
US5072420A (en) 1989-03-16 1991-12-10 Western Digital Corporation FIFO control architecture and method for buffer memory access arbitration
US5506989A (en) 1990-01-31 1996-04-09 Ibm Corporation Arbitration system limiting high priority successive grants
US5249271A (en) 1990-06-04 1993-09-28 Emulex Corporation Buffer memory data flow controller
US5301333A (en) 1990-06-14 1994-04-05 Bell Communications Research, Inc. Tree structured variable priority arbitration implementing a round-robin scheduling policy
JP2703668B2 (ja) 1991-03-18 1998-01-26 株式会社日立製作所 データ転送制御装置および磁気ディスク制御装置
EP0543560B1 (de) 1991-11-19 1999-12-22 Sun Microsystems, Inc. Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln
CA2080608A1 (en) 1992-01-02 1993-07-03 Nader Amini Bus control logic for computer system having dual bus architecture
US5408644A (en) 1992-06-05 1995-04-18 Compaq Computer Corporation Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem
US5524268A (en) 1992-06-26 1996-06-04 Cirrus Logic, Inc. Flexible processor-driven control of SCSI buses utilizing tags appended to data bytes to determine SCSI-protocol phases
US5276662A (en) * 1992-10-01 1994-01-04 Seagate Technology, Inc. Disc drive with improved data transfer management apparatus
US5546548A (en) 1993-03-31 1996-08-13 Intel Corporation Arbiter and arbitration process for a dynamic and flexible prioritization
US5465343A (en) 1993-04-30 1995-11-07 Quantum Corporation Shared memory array for data block and control program storage in disk drive
US5487170A (en) 1993-12-16 1996-01-23 International Business Machines Corporation Data processing system having dynamic priority task scheduling capabilities
JPH07244635A (ja) 1994-01-14 1995-09-19 Fujitsu Ltd バス使用権調停回路及び方法
US5574867A (en) 1994-07-08 1996-11-12 Intel Corporation Fast first-come first served arbitration method
US5519837A (en) 1994-07-29 1996-05-21 International Business Machines Corporation Pseudo-round-robin arbitration for a shared resource system providing fairness and high throughput
US5881313A (en) 1994-11-07 1999-03-09 Digital Equipment Corporation Arbitration system based on requester class and relative priority including transmit descriptor valid bit for a shared resource having multiple requesters
US5546545A (en) 1994-12-09 1996-08-13 International Business Machines Corporation Rotating priority selection logic circuit
US5623672A (en) 1994-12-23 1997-04-22 Cirrus Logic, Inc. Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment
AU5563696A (en) 1995-05-03 1996-11-21 Apple Computer, Inc. Arbitration of computer resource access requests
US5664121A (en) 1995-11-07 1997-09-02 Sun Microsystems, Inc. Dual mode arbitration apparatus and method for reducing latency by allowing the possibility of simultaneous request and access for a shared bus
US5692135A (en) 1995-12-14 1997-11-25 International Business Machines Corporation Method and system for performing an asymmetric bus arbitration protocol within a data processing system
US5784569A (en) 1996-09-23 1998-07-21 Silicon Graphics, Inc. Guaranteed bandwidth allocation method in a computer system for input/output data transfers
US6178486B1 (en) * 1998-02-19 2001-01-23 Quantum Corporation Time allocation shared memory arbitration for disk drive controller

Also Published As

Publication number Publication date
CA2364625A1 (en) 2000-09-28
KR20010110679A (ko) 2001-12-13
EP1163573A1 (de) 2001-12-19
AU3915300A (en) 2000-10-09
JP4313516B2 (ja) 2009-08-12
EP1163573B1 (de) 2007-08-01
KR100619806B1 (ko) 2006-09-13
US6530000B1 (en) 2003-03-04
ATE368885T1 (de) 2007-08-15
DE60035774D1 (de) 2007-09-13
WO2000057267A1 (en) 2000-09-28
JP2002540499A (ja) 2002-11-26
CA2364625C (en) 2012-08-07

Similar Documents

Publication Publication Date Title
DE60035774T2 (de) Arbitrierungsverfahren und systeme zur zugriffsarbitrierung auf einen speicher einer plattensteuerung
DE3782335T2 (de) Speichersteuersystem.
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE602004012492T2 (de) DMA-Steuerung mit Busbesetzungszeit-Beschränkung sowie DMA-Parametersätze für mehrere logische Prozessoren
DE112005001512B4 (de) Vorrichtung und Verfahren für den Hochleistungs- Zugriff auf einen flüchtigen Plattenlaufwerkspeicher unter Einsatz einer integrierten Direkt-Speicherzugriffs-Einrichtung
DE69215538T2 (de) Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung
DE19983737B3 (de) System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision
DE60033994T2 (de) Verfahren und System zur Ausgabe an und zum Ordnen von Befehlen in einem Festplattenlaufwerk
DE60101253T2 (de) Arbiter für ein Warteschlangenverwaltungssystem
DE102015007709A1 (de) Invalidationsdatenbereich für einen Cache
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
WO2006058892A2 (de) Speichersystem mit sektorbuffern
DE202010017667U1 (de) Datenspeichervorrichtung mit Flash-Speicherchips
DE60026068T2 (de) System für externe transaktionen mit dynamischen prioritäten
DE69219848T2 (de) Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau
DE10393803T5 (de) Verfahren und Vorrichtung zum Bestimmen einer Seitenverwaltungsimplementierung bei dynamischem Speicher mit wahlfreiem Zugriff
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE19714681B4 (de) Speichersteuergerät
DE60307798T2 (de) Arbitrierung von gemeinsamen Speicher
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE102020130534A1 (de) System, Vorrichtung und Verfahren zum persistenten Umgehen mit Speicheranforderungen in einem System
DE3911721C2 (de)
DE60315190T2 (de) Vorladevorschlag
DE602004004780T2 (de) Verfahren und einrichtung zum transferieren von daten zwischen einem hauptspeicher und einer speichereinrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition