[go: up one dir, main page]

DE69131728T2 - Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur - Google Patents

Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur

Info

Publication number
DE69131728T2
DE69131728T2 DE69131728T DE69131728T DE69131728T2 DE 69131728 T2 DE69131728 T2 DE 69131728T2 DE 69131728 T DE69131728 T DE 69131728T DE 69131728 T DE69131728 T DE 69131728T DE 69131728 T2 DE69131728 T2 DE 69131728T2
Authority
DE
Germany
Prior art keywords
data
host computer
storage
cache memory
read
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 - Fee Related
Application number
DE69131728T
Other languages
English (en)
Other versions
DE69131728D1 (de
Inventor
Theodore Goodlander
Tamas Hetenyi
Raul Kacirek
Andras Sarkozy
Janos Selmeczi
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.)
STORAGE COMP CORP
Original Assignee
STORAGE COMP 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24212152&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69131728(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by STORAGE COMP CORP filed Critical STORAGE COMP CORP
Publication of DE69131728D1 publication Critical patent/DE69131728D1/de
Application granted granted Critical
Publication of DE69131728T2 publication Critical patent/DE69131728T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Hardware Redundancy (AREA)

Description

    Hintergrund der Erfindung:
  • Diese Anmeldung betrifft Verbesserungen für Speicherungssysteme der in der US-A-4942579 offengelegten Art.
  • Die Anmeldung betrifft Speicherungssysteme für Digitalrechner und insbesondere eine Steuervorrichtung für den Zugriff auf ein Laufwerk zur Verbindung zwischen einem Hostcomputer und einer Vielzahl von Plattenlaufwerken, um ein asynchron funktionierendes Hochgeschwindigkeits-, Hochkapazitäts-, fehlertolerantes, fehlerkorrigierendes Speicherungssystem zum Empfangen von Lese- und Schreibanforderungen von dem Hostcomputer zu bieten, um Daten von und zu den mehreren Laufwerken zu lesen und zu schreiben, und um Daten zu und von dem Hostcomputer zu übertragen, einschließlich mehrerer Controllerkanäle, die an die entsprechenden von den mehreren Laufwerken angeschlossen sind, zum Steuern von Übertragungen von Daten zu und von einem zugehörigen von den mehreren Laufwerken als Reaktion auf empfangene höhere Befehle, wobei jedes der mehreren Plattenlaufwerk-Controllerkanäle einen Cache-/Pufferspeicher und einen Mikroprozessor zum Steuern der Übertragungen von Daten aufweist; Schnittstellen- und Treibermittel zum Verbinden mit dem Hostcomputer; einen zentralen Cache-Speicher; Cache-Speichersteuerlogik zum Steuern der Datenübertragungen von dem Cache- /Pufferspeicher von den mehreren Controllerkanälen für Laufwerke zu dem Cache-Speicher und von dem Cache- Speicher zu dem Cache-Pufferspeicher von den mehreren Controllerkanälen für Laufwerke und von dem Cache- Speicher zu dem Hostcomputer über die Schnittstellen- und Treibermittel; zentrale Verarbeitungsmittel zum Verwalten der Benutzung des Cache-Speichers durch angeforderte Datenübertragungen nur in bezug auf einige der mehreren Laufwerke, wobei dazugehörige Daten nicht in dem Cache-Speicher vorhanden sind, und zum Senden höherer Befehle zu den mehreren Controllerkanälen für Laufwerke, um dadurch Datenübertragungen zu bewirken; einen ersten (Daten-)Bus, der die mehreren Cache- Pufferspeicher des Controllers für Laufwerke der Cache-Pufferspeicher, der Schnittstellen- und Treibermittel und den Cache-Speicher miteinander verbindet, um Informationen dazwischen zu übertragen; und einen zweiten (Informations- und Befehls-) Bus, der die mehreren Plattenlaufwerk-Controllerkanäle, die Schnittstellen- und Treibermittel, die Cache-Speichersteuermittel und die zentralen Verarbeitungsmittel miteinander verbindet, um Steuerinformationen dazwischen zu übertragen.
  • In dem Maße, in dem Systeme mit Digitalrechnern entwickelt wurden, sind ihre Anforderungen an zugehörige Speicherungssysteme angestiegen. Die ersten Computersysteme hatten typischerweise eine Trommel oder Plattenspeichervorrichtung für schnellen Zugriff auf angeforderte Dateien, die nicht im RAM-Speicher gespeichert werden konnten. Bei Verarbeitung großer Mengen von Daten, die nicht auf die Trommel oder Platte paßten, wurden die Daten auf entfernbaren Magnetbandrädern gespeichert, die (auf Anforderung durch das Computerprogramm) auf einem Bandtransportmechanismus montiert und von dort in den Computer eingelesen werden konnten. Solche Systeme stellten eine Verbesserung gegenüber Nicht-Computer-Ansätzen für Anwendungen dar, bei denen nur gelegentlicher Zugriff auf einzelne Dateien erforderlich war, wie beispielsweise im Bereich der Banken, Buchhaltung, bei Gehaltslisten, Versicherungen und bei ähnlichen Unternehmen. Da viele Anwendungen in bezug auf Berechnungen intensiver, und die Systeme komplexer wurden, mußten die Begrenzungen und Anforderungen der Speicherungssysteme geändert werden. In den meisten Fällen hielt jedoch die Speichertechnologie nicht mit den Bedürfnissen der Computersysteme schritt. Bei den ursprünglichen Digitalrechnern wurde ein Programm mit seinen Daten geladen, ausgeführt, und die Antworten ausgedruckt. Die dabei beteiligten Programme waren durchschaubar und relativ leicht zu programmieren. Wenn ein Programm einen Fehler aufwies (d. h. einen Programmierfehler), dann brachte es einfach kein ausführbares Programm hervor, wenn es zusam mengestellt oder zusammengesetzt wurde, und erzeugte auch keine Antworten, wenn es schließlich ausgeführt wurde. Bei einem Computersystem, bei dem viele Computer miteinander verbunden sind, und auf denen viele Programme auf vielen Prioritätsniveaus unter der Steuerung einer Unterbrechungsstruktur laufen, ist das Problem nicht so einfach. Ein Programm, das bei der sogenannten "Wiedereintritts"-Codierung unsachgemäß programmiert wurde, kann möglicherweise Tage oder Wochen laufen, bevor die richtige Kombination von Umständen einen Fehler verursacht. Nicht nur das, sondern solche Systeme sind auf Dauerbetrieb ausgelegt und produzieren nur Ergebnisse als Reaktion auf Anregung von außen hin. Ein Programmierfehler in einem solchen System kann in der Tat für das System tödlich sein und dazu führen, daß der gesamte Computer seine Programme nicht mehr ausführt. Wenn es sich bei dem betroffenen System beispielsweise um ein Luftverkehrssteuersystem handelt, kann der Begriff "tödlich" sowohl im wörtlichen Sinne als auch im bildlichen Sinne zutreffend sein.
  • Wenn es Probleme mit dem Plattenlaufwerkssystem gibt, so sollte dies für die Anwender durchschaubar sein und das Plattenlaufwerkssystem sollte trotz Fehlern weiter funktionieren. Darüber hinaus sollte es die Fehler korrigieren, so daß rekonstruierte, fehlerfreie Daten geboten werden. Auch wenn das Plattenlaufwerkssystem nicht in der Lage ist, alle Datendateien aufzunehmen, sollten die angeforderten Daten automatisch aus einem nahezu verbundenen Archivspeichersystem in kürzestmög licher Zeit geladen werden. Vorzugsweise sollten die verschiedenen Funktionen unter der Kontrolle eines Systems mit künstlicher Intelligenz stehen, damit die Bedürfnisse des Anwenders gelernt und vorausgesehen werden können, um die Leistungsfähigkeit des Systems zu optimieren.
  • Die Gesamtleistungsfähigkeit eines gegebenen Systems ist das Ergebnis der Integration einer Anzahl unabhängiger Technologien, deren individuelles Wachstum bei der Leistung/Fähigkeit sich im Laufe der Zeit bedeutend voneinander unterscheidet. Fig. 1 (a) bis (g) zeigen die geschichtliche Leistungsfähigkeit der den Computersystemen zugrundeliegenden Technologien. Die Faktoren dahinter sind gut bekannt und umfassen Fortschritte bei der Verarbeitungstechnik, die die Schaltungsdichte und -geschwindigkeit erhöhen. Schrumpfende Geometrien und erhöhte Waferleistungen in Kombination mit Neuerungen bei der Schaltungskonstruktion bedeuten, daß die Leistung von Halbleitern weiter mit ihrem exponentiellen Wachstum fortfahren sollte. Fig. 1b spiegelt das exponentielle Wachstum an CPU-Leistung wider, wie in MIPS gemessen. Die CPUs sind die direkten Nutznießer von Verbesserungen bei den Halbleitern als auch bei der Schaltungskonstruktion und baulichen Neuerungen, wie beispielsweise massive parallele CPUs.
  • Fig. 1c zeigt den Trend bei der Leistung für Betriebssysteme. Die Leistung des Betriebssystems wird durch mehrere Faktoren abgeflacht, wie beispielsweise durch Hinzufügungen von Anwenderschnittstellen, Grafikunterstützung und das bloße Wachstum bei der Größe im Laufe der Jahre, wodurch die Betriebssysteme zu den begierigsten Verbrauchern von Computerressourcen wurden.
  • Fig. 1d zeigt die Verbesserung der Kapazität/Leistung bei den Plattenlaufwerken. Diese Kurve könnte am besten als "sprunglinear" bezeichnet werden. Kapazitäten und Leistungen von Plattenlaufwerksvorrichtungen tendieren zu einem linearen Wachstum, bis ein neues technologisches Ereignis eintritt. Solche Ereignisse waren in der Vergangenheit die Einführung der versiegelten Platten nach der Winchestertechnik in den frühen siebziger Jahren, die Einführung der Dünnfilmköpfe und beschichteten Medien in den achtziger Jahren, und in den neunziger Jahren die allgemeine Einführung von Laufwerken mit 5400 und 7200 U/min., um die Latenzzeitverzögerungen zu reduzieren und die berührende Aufzeichnungstechnologie, die die Spurendichte auf 100.000 pro Inch hochtreiben kann. Fig. 1e demonstriert die Leistung von I/O-Systemen. Diese Kurve stellt die gemeinsame Wirkung von CPU- und Controllerhardware, Betriebssystemen und Plattenlaufwerken dar. Es sollte bemerkt werden, daß das exponentielle Wachstum bei der Leistung von Halbleitern sich nicht in der I/O-Systemleistung widerspiegelt, die linear gewachsen ist. Fig. 1f spiegelt ein allgemein verstandenes Phänomen bei Anwendungsprogrammen wider, bei denen im Laufe der Zeit vorgenommene Ergänzungen, Änderungen und Wartung am Programm dazu neigen, zu einer Verringerung von dessen Leistung zu führen. Fig. 1g demonstriert, daß sich die Systemleistung insgesamt stetig weiter verbessert hat, jedoch mit einer viel langsameren Geschwindigkeit als bei den zugrundeliegenden Technologien. In der Tat verringert sich die Systemleistung insgesamt ohne Aufrüstungen und Verbesserungen der Hardware als Reaktion auf die Leistung von Betriebssystemen und Anwendungsprogrammen.
  • Fig. 1(h) zeigt ein typisches Computersystem nach dem Stand der Technik unter Verwendung von Laufwerken für die Speicherung. Der Hostcomputer 10 (d. h. derjenige, der mit den Computeroperatoren verbunden ist, weist ein Betriebssystem 12 auf. Wie Fachleuten bekannt ist, ist das Betriebssystem ein Satz von Computerprogrammen, die ständig laufen, während der Computer angeschaltet ist. Das Betriebssystem steuert alle Funktionen des Computers, einschließlich Anforderungen zum Betrieb von Teilen des Speichers, Fehlerreaktion und Input/Output-(I/O-)Anforderungen. Der Computer 10 weist einen Plattencontroller 14 auf, der mit diesem verbunden ist, wobei der Plattencontroller 14 wiederum mit vier Plattenlaufwerken 16 verbunden ist. Bei Gebrauch führt ein Anwendungsprogramm (nicht dargestellt) eine Anforderung von Daten vom Betriebssystem 12 aus. Die Speicherstellen der Daten sind für das Anwendungsprogramm vollkommen transparent, d. h. das Anwendungsprogramm weiß nicht, wo die Daten physisch angeordnet sind. Zur Zeit der Systemeinrichtung (oder möglicherweise danach durch Eingabe durch den Bediener) sind die Speicherstellen der Daten in Tabellen gespeichert (nicht dargestellt), die Teil des Betriebssystems 12, oder für dieses zugänglich sind. Da es aus den Tabellen weiß, daß sich die angeforderten Daten auf einem bestimmten Plattenlaufwerk 16 auf ei ner bestimmten Spur zwischen Start- und Endsektoren befinden, gibt das Betriebssystem eine Plattenleseanforderung auf Leitung 18 an den Plattencontroller 14 aus. Der Plattencontroller 14 wiederum gibt wiederum eine Leseanforderung an das passende Plattenlaufwerk 16 auf seiner Verbindungsleitung 20 aus, die den Lesekopf (nicht dargestellt) innerhalb des Plattenlaufwerkes 16 dazu veranlaßt, sich zu der bezeichneten Spur zu bewegen und dann Daten zu lesen und sie an den Plattencontroller 14 auf Leitung 20 vom Startsektor bis zum Endsektor auszugeben. Wenn die Daten von dem Plattencontroller 14 empfangen wurden (in einem entsprechenden Cache-/Pufferspeicher, wird das Betriebssystem 12 durch ein passendes Signal auf Leitung 18 informiert.
  • Wie einzuschätzen ist, muß die Programmierung des Betriebssystems 12 komplexer werden, wenn man mehr Leistung vom Betriebssystem 12 wünscht. Bei dem gegenwärtigen Status der Komplexität des typischen Betriebssystems und der Fähigkeiten des durchschnittlichen Computersystemprogrammierers hinsichtlich solcher esoterischer Angelegenheiten wie Wiedereintrittscodierung und "Überall lauffähig"-Codierung, bedeutet die an das Betriebssystem gerichtete Forderung, mehr Leistung zu bringen, Schwierigkeiten zu verlangen, und zwar aufgrund von "Flaschenhälsen" bei der Informationsverarbeitung.
  • Es besteht auch das Problem der Systemverwaltungszeit. Wenn Sie vom Betriebssystem mehr Leistung fordern, dann verlängert dies die Verwaltungszeit des Betriebssystems und dadurch wiederum Verwaltungszeit eines jeden Programmes, das darauf zugreift.
  • Bei jedem gegebenen Betriebs- und Computersystem veranlaßt die Ausführung von irgendwelchen Echtzeitfunktionen das Betriebssystem dazu, einen großen Anteil der Rechenressource zu verbrauchen, aus der Perspektive des Anwenders schnell die Leistung des Systems zu verringern und das Arbeitsprodukt-Berechnungspotential ernsthaft zu begrenzen.
  • Wie Fachleute schnell erkennen und einschätzen werden, enthält ein solcher Ansatz, selbst wenn dem Betriebssystem die Strafe der zusätzlichen Verwaltungszeit auferlegt wird, um in anderen Bereichen Vorteile zu erreichen, keine Mittel, um die zusätzliche Verwaltungszeit jemals zu reduzieren.
  • Dateienpflege, Verwaltung und Archivkopien (FMMAC) sind Tasks, die für die Zuverlässigkeit, Benutzbarkeit und Integrität der im Computer gespeicherten Daten wesentlich sind. Diese Tasks werden nun von den Funktionen des Betriebssystems geleistet, durch separat laufende Anwendungsprogramme, durch den manuellen Eingriff des Bedieners oder des Systemverwalters oder eine Kombination dieser Techniken.
  • Diese FMMAC-Tasks erfordern fast immer die manuelle Entscheidung des Bedieners zum Initialisieren und Ausführen. Oftmals muß dafür das Computersystem offline geschaltet werden, wodurch es für die Anwender während der Zeit, die für die Ausführung dieser Tasks erforderlich ist, für die Anwender nicht verfügbar ist. Einige größere kompliziertere Betriebssysteme ermöglichen es, daß eine bestimmte Datei offline genommen wird, wobei der größte Teil der Computerressource verfügbar bleibt. Der manuelle Eingriff ist jedoch immer noch erforderlich, um die Dateienpflege und Archivkopie zu initialisieren.
  • Weil entscheidende FMMAC-Tasks von manuellen Eingriffen, arbiträren Umständen und Plänen abhängig sind, ist die Voraussagbarkeit dieser auszuführenden Tasks gering. Dies gilt insbesondere außerhalb von zentralisierten Großrechnerzentren (FMMAC-Tasks werden hier typischerweise durch eine spezielle Wartungsschicht mit großen zusätzlichen Betriebskosten ausgeführt). Die meisten Computer (und durch Erweiterung die meisten in Computern gespeicherten Daten) sind nicht innerhalb von "Computerzentren" angeordnet, oder genießen den Vorteil von speziellem Dateienwartungspersonal. Deshalb ist die Zuverlässigkeit, Benutzbarkeit und Integrität der meisten in Computern gespeicherten Daten von Menschen und ihrer Motivation abhängig, und von der dubiosen Annahme, daß die Umstände um das Computersystem selbst immun gegen intervenierende Ereignisse sind, wie beispielsweise Geräteausfall oder schnell durchzuführende Arbeiten, die Priorität über FMMAC-Tasks haben.
  • Dauerbetriebscomputersysteme wie beispielsweise Echtzeitüberwachungs- und Steuersysteme oder Online- Transaktionsverarbeitungssysteme stellen zusätzliche Barrieren für FMMAC-Tasks dar. In der Theorie ist keine Zeit verfügbar, um die Tasks auszuführen. In der Realität werden solche Systeme jedoch einfach für FMMAC abgeschaltet. Bei Anwendungen mit, kritischen Aufträgen' wie beispielsweise Kraftwerksüberwachung und -steuerung) wird das FMMAC-Problem oftmals durch doppelte Hardwaresysteme mit großen wirtschaftlichen Kosten verringert.
  • In dem oben erwähnten Patent US-A-4942579 wurde ein Hochgeschwindigkeits-, Hochkapazitäts-, fehlertolerantes, fehlerkorrigierendes Speichersystem offengelegt, das eine Lösung für viele der beschriebenen Bedürfnisse der modernen Computersysteme bietet (sowohl militärische als auch wirtschaftliche). Seit dessen ursprünglicher Anmeldung, die den Modus enthielt, der zum damaligen Zeitpunkt als der beste angesehen wurde, wurden durch fortgesetzte Arbeiten neue Ausführungen entwickelt, die neuartige Verbesserungen gegenüber den dort enthaltenen Lehren enthalten. Insbesondere wurde das Leistungs- und Kapazitätspotential, sowie auch die Flexibilität als Systemkomponente bedeutend verbessert. Darüber hinaus wurden zusätzliche Verbesserungen beim Gesamtspeichersystem dort eingegliedert.
  • Daher ist es ein Gegenstand dieser Erfindung, bedeutende und patentierbare, klare Verbesserungen für das Hochgeschwindigkeits-, Hochkapazitäts-, fehlertoleran te, fehlerkorrigierende Speicherungssystem des oben erwähnten Patentes zu bieten.
  • Es ist ein weiterer Gegenstand dieser Erfindung, bedeutende und patentierbare, klare Verbesserungen für Hochgeschwindigkeits-, Hochkapazitäts-, fehlertolerante, fehlerkorrigierende Speicherungssysteme für Digitalcomputer im allgemeinen zu bieten.
  • Es ist ein weiterer Gegenstand dieser Erfindung, ein Mittel zu bieten, um Archivkopiedateien auf einer automatischen und für den Anwender transparenten Grundlage aufrechtzuerhalten und zu verwalten, und eine hohe Voraussagbarkeit in bezug auf die Zuverlässigkeit, Verwendbarkeit und Integrität von computergespeicherten Dateien zu bieten.
  • Computergespeicherte Dateien werden im allgemeinen nach ihrer Anwendung klassifiziert, wie beispielsweise "Gehaltsdateien" oder "Inventardateien" auf nahezu die gleiche Art und Weise, in der bei einem Büroaktenschrank und die in ihm aufbewahrten Aktenordner gekennzeichnet wären. Fachleute werden erkennen, daß Dateien auch durch ihre Benutzung pro Zeitdauer klassifiziert werden können. Dies bedeutet, daß einige Dateien mehr benutzt werden als andere, und auf dieser Grundlage zuverlässig klassifiziert werden können:
  • Die US-A-4467421 legt ein virtuelles Speichersystem für einen oder mehrere Hostcomputer offen. Dieses System führt alle Massenspeichervorgänge unabhängig von dem Hostcomputer aus.
  • Der Erfindungsgedanke der vorliegenden Erfindung bietet eine Steuervorrichtung für den Zugriff auf einen Massenspeicher, durch die die Massenspeichereinheit in Verbindung und in Zusammenwirken mit den Dateiverwaltungsfunktionen des Betriebssystems des Hostcomputers auf durchschaubare Art und Weise betrieben werden kann.
  • Zusammenfassung:
  • Die vorstehenden Gegenstände wurden in einer Steuervorrichtung für den Zugriff auf einen Massenspeicher zur Verwendung in einem Computersystem mit einem Hostcomputer erreicht, der angeschlossen ist, um auf mehrere Datenspeicher zuzugreifen, und ein Betriebssystem mit Tabellen für Dateispeicherstellen von auf den Datenspeichern gespeicherten Daten aufweist, wobei die Steuervorrichtung für den Zugriff auf einen Massenspeicher folgendes aufweist:
  • a) Steuermittel für den Zugriff auf einen Datenspeicher, die zwischen dem Hostcomputer und den mehreren Datenspeichern angeschlossen sind, zum Empfangen von Lese- und Schreibanforderungen von dem Hostcomputer, wobei die Lese- und Schreibanforderungen Befehle zur Manipulation von Datendateien und zugehörige Speicherstellen der Datendatei enthalten, um Daten von den mehreren Datenspeichern zu lesen und darauf zu schreiben, und zum Übertragen von Daten von und zu dem Hostcomputer;
  • b) Hostcomputerverbindungsmittel, die zwischen den Steuermitteln für den Zugriff auf einen Datenspei cher und dem Hostcomputer angeschlossen sind, zum Bilden eines ersten Datenpfads für Lese- und Schreibanforderungen zwischen dem Hostcomputer und den Steuermitteln für den Zugriff auf einen Datenspeicher, zum Versorgen der Steuermittel für den Zugriff auf einen Datenspeicher mit den Lese- und Schreibanforderungen von dem Hostcomputer und zum Übertragen von Daten von und zu dem Hostcomputer;
  • c) Übertragungsverbindungsmittel für das Betriebssystem des Hostcomputers, die zwischen den Steuermitteln für den Zugriff auf einen Datenspeicher und einer Konsolenprivilegschnittstelle zu dem Betriebssystem des Hostcomputers eine Verbindung herstellen, zum Bilden eines zweiten Datenpfads für Lese- und Schreibanforderungen zwischen dem Hostcomputer und den Steuermitteln für den Zugriff auf einen Datenspeicher, zum Erhalten von und Versorgen der Steuermittel für den Zugriff auf einen Datenspeicher mit Befehlen von dem Betriebssystem zur Manipulation von Datendateien und zugehörigen Speicherstellen der Datendatei von den Tabellen des Betriebssystems für Dateispeicherstellen von auf den Datenspeichern gespeicherten Daten, wobei die Befehle zur Manipulation von Datendateien zum Ansteuern der Datenspeicher dienen, um bestimmte in den zu den Befehlen zur Manipulation von Datendateien gehörenden Speicherstellen der Datendateien gespeicherte Daten zu manipulieren; und
  • d) Berechnungslogikmittel, die in den Steuermitteln für den Zugriff auf einen Datenspeicher enthalten sind und auf zumindest die Befehle zur Manipula tion von Datendateien und zugehörige Speicherstellen der Datendateien ansprechen, die über die Übertragungsverbindungsmittel für das Betriebssystem des Hostcomputers empfangen werden, zum Bereitstellen von Befehlssignalen für einen Datenspeicher, die die Datenspeicher ansteuern, um die bestimmten Daten, die in den Speicherstellen der Datendateien gespeichert sind, die zu den Befehlen zur Manipulation von Datendateien gehören, asynchron mit und unabhängig von den Lese- und Schreibanforderungen zu manipulieren, der von den Hostcomputerverbindungsmitteln gebildet wird, wodurch das Betriebssystem des Hostcomputers eine Transparenz über Befehle zur Manipulation von Datendateien den Anwendungsprogrammen zur Verfügung stellt, die auf dem Hostcomputer laufen und Daten von den mehreren Datenspeichern über die Hostcomputerverbindungseinrichtung lesen und darauf schreiben.
  • Bei der bevorzugten Ausführung weist das Berechnungslogikmittel eine Lernlogik auf, so daß, wenn einmal die Speicherstelle von angeforderten Daten auf den mehreren Datenspeichern unter Verwendung der Übertragungsverbindungsmittel erhalten wurde, diese bekannt ist und durch das Berechnungsmittel behalten wird.
  • Bei einem Computersystem, das eine nahezu verbundene Archivspeichervorrichtung einer automatisierten Art aufweist, wobei Offlinespeichermedien zum Lesen und Schreiben auf Anforderung von dem automatisierten Me chanismus eingelegt werden, um die Notwendigkeit eines Eingriffs durch den Bediener zu vermeiden, weist die bevorzugte Ausführung das Berechnungslogikmittel mit Logik zum Benutzen der Übertragungsverbindungsmittel auf, um Informationen der Speicherstelle der Datei für die Daten auf der nahezu verbundenen Speichervorrichtung zu erhalten. Als weiteres Merkmal der bevorzugten Ausführung weist diese das Berechnungslogikmittel mit Lernlogik auf, so daß, wenn einmal die Speicherstelle von angeforderten Daten auf den mehreren Datenspeichern unter Verwendung der Übertragungsverbindungsmittel erhalten wurde, diese bekannt ist und durch das Berechnungslogikmittel behalten wird. Weiterhin ist die Lernlogik des Berechnungslogikmittels von einer selbst lernenden Art, die aus Erfahrung lernt, so daß, wenn eine bestimmte Datei von der nahezu verbundenen Speichervorrichtung wiederholt zu einer bestimmten Zeit oder Monatstag benutzt wird, die Lernlogik das zu einer bestimmten Zeit aus Erfahrung lernt und mit dem Laden der Datei aus der nahezu verbundenen Archivspeichervorrichtung unter Vorausberechnung einer erwarteten Anforderung derart beginnt, daß, wenn die Anforderung gemacht wird, diese Datei bereits eingelesen ist und zur Benutzung zur Verfügung steht. Die Dateien werden durch das Berechnungslogikmittel so behandelt, daß sie der CPU des Anwenders als virtuelles Feld erscheinen.
  • Das nahezu verbundene Archivspeichersystem wird von dem Berechnungslogikmittel so verwaltet, daß es die Maximalkapazität der physikalischen Feldlaufwerke praktisch erweitert, um die Kapazität des gesamten Archivs aufzunehmen, und somit den Eindruck eines Plattenlaufwerkes von unbegrenzter Kapazität zu schaffen, ohne die Leistung zu verschlechtern.
  • Zusätzlich werden hierdurch die zuvor erwähnten Backupprobleme bei der Dateienpflege, -verwaltung und Archivkopie gelöst.
  • Vorzugsweise weist das Berechnungslogikmittel eine Testlogik zum Testen der mehreren Datenspeicher in einer Hintergrundbetriebsart auf Basis der zur Verfügung stehenden Zeit auf.
  • Das bevorzugte Steuermittel für den Zugriff auf einen Datenspeicher weist mehrere Controllerkanalmittel für einen Datenspeicher auf, die an die entsprechenden von den mehreren Datenspeichern angeschlossen sind, zum Steuern von Übertragungen von Daten zu und von dem zugehörigen von den mehreren Datenspeichern als Reaktion auf empfangene höhere Befehle, wobei jedes der mehreren Controllerkanalmittel für einen Datenspeicher einen Cache-/Pufferspeicher und einen Mikroprozessor zum Steuern der Übertragungen von Daten und Zuständen aufweist; Schnittstellen- und Treibermittel zum Verbinden mit den Übertragungsverbindungsmitteln und dem Hostcomputer; einen zentralen Cache-Speicher; Cache- Speichersteuermittel zum Steuern der Datenübertragungen von dem Cache-/Pufferspeicher von den mehreren Controllerkanalmitteln für einen Datenspeicher zu dem Cache-Speicher und von dem Cache-Speicher zu dem Cache-Pufferspeicher von den mehreren Controllerkanalmitteln für einen Datenspeicher und von dem Cache- Speicher zu dem Hostcomputer über die Schnittstellen- und Treibermittel; zentrale Verarbeitungsmittel zum Verwalten der Benutzung des Cache-Speichers durch angeforderte Datenübertragungen nur in bezug auf einige der mehreren Datenspeicher, wobei dazugehörige Daten nicht in dem Cache-Speicher vorhanden sind, und zum Senden höherer Befehle zu den mehreren Controllerkanalmitteln für einen Datenspeicher, um dadurch Datenübertragungen zu bewirken; einen ersten (Daten-)Bus, der die mehreren Cache-Pufferspeicher des Controllers für einen Datenspeicher des Cache-Pufferspeichers der Schnittstellen- und Treibermittel und den Cache- Speicher miteinander verbindet, um Informationen dazwischen zu übertragen; und einen zweiten (Informations- und Befehls-)Bus, der die mehreren Controllerkanalmittel für einen Datenspeicher, die Schnittstellen- und Treibermittel, die Cache-Speichersteuermittel und die zentralen Verarbeitungsmittel miteinander verbindet, um Steuerinformationen dazwischen zu übertragen. Das Steuermittel für den Zugriff auf einen Datenspeicher weist ein alphanumberisches Display und Treibermittel zum Betrieb des Displays auf.
  • Das bevorzugte Schnittstellen- und Treibermittel weist einen ersten Bustreiber zum Anschließen an und Verbinden mit dem ersten Bus auf; einen ersten Schnittstellentreiber für den Hostcomputer zum Anschließen an und Verbinden mit dem Hostcomputer; eine Übertragungsverbindungsschnittstelle zum Anschließen an und Verbinden mit den Übertragungsverbindungsmitteln; eine erste unidirektionale FIFO, die zwischen dem ersten Bustreiber und dem Schnittstellentreiber des Hostcomputers und dem ersten Bustreiber zum Empfangen von Eingaben von dem ersten Bus angeschlossen ist, die für den Hostcomputer gedacht sind; eine zweite unidirektionale FIFO, die zwischen dem Schnittstellentreiber des Hostcomputers und dem ersten Bustreiber zum Empfangen von Eingaben von dem Hostcomputer angeschlossen ist, die für den ersten Bus gedacht sind; einen lokalen Mikroprozessor zum Steuern der ersten unidirektionalen FIFO, der zweiten unidirektionalen FIFO, und des Schnittstellentreibers des Hostcomputers; und Verbindungsmittel zum Verbinden des lokalen Mikroprozessors mit dem zweiten Bus.
  • Bei der bevorzugten Ausführung weist jedes der mehreren Controllerkanalmittel für einen Datenspeicher einen ersten Bustreiber zum Anschließen an und Verbinden mit dem ersten Bus auf; einen Schnittstellentreiber für einen Datenspeicher zum Anschließen an und Verbinden mit einem zugehörigen der mehreren Datenspeicher; einen Cache-Datenpuffer; einen Datensemaphor zum Verhindern eines gleichzeitigen Zugriffs auf den Datenpuffer durch den ersten Bustreiber und den Schnittstellentreiber für einen Datenspeicher; ein Pufferadreßregister zum Bereitstellen einer gegenwärtigen aktiven Adresse in dem Datenpuffer; einen lokalen Mikroprozessor zum Steuern des Datensemaphors und des Schnittstellentreibers für einen Datenspeicher; und Verbindungsmittel zum Verbinden des lokalen Mikroprozessors mit dem zweiten Bus.
  • Fig. 1(i) zeigt das Leistungspotential der vorliegenden Erfindung sowie den sich vergrößernden Abstand zwischen CPU- und IO-Speicherleistung beim Stand der Technik.
  • In Übereinstimmung mit einem weiteren Aspekt der Erfindung ist ein Verfahren zum Betreiben der Steuervorrichtung für den Zugriff auf einen Massenspeicher, wie zuvor definiert, dadurch gekennzeichnet, daß die Vorrichtung folgende Schritte durchführt:
  • a) Empfangen von Lese- und Schreibanforderungen von dem Hostcomputer, wobei die Lese- und Schreibanforderungen Speicherstellen von Datendateien enthalten, um Daten von den mehreren -Datenspeichern zu lesen und darauf zu schreiben, und um Daten von und zu dem Hostcomputer zu übertragen;
  • b) Bilden eines ersten Datenpfads für Lese- und Schreibanforderungen zwischen dem Hostcomputer und den Steuermitteln für den Zugriff auf einen Datenspeicher, um die Steuermittel für den Zugriff auf einen Datenspeicher mit den Lese- und Schreibanforderungen von dem Hostcomputer zu versorgen, und um Daten von und zu dem Hostcomputer zu übertragen.
  • c) Bilden eines zweiten Datenpfads für Lese- und Schreibanforderungen zwischen dem Hostcomputer und den Steuermitteln für den Zugriff auf einen Datenspeicher, um Befehle zur Dateimanipulation von dem Betriebssystem und zugehörige Speicherstellen der Datendateien von den Tabellen des Betriebssystems für die Dateispeicherstellen von auf den Datenspeichern gespeicherten Daten zu erhalten und bereitzustellen, wobei die Befehle zur Manipulation der Datendateien dazu dienen, die Datenspeicher anzusteuern, um bestimmte in den Speicherstellen der Datendateien gespeicherte Daten zu manipulieren, die zu den Befehlen zur Manipulation der Datendatei gehören.
  • d) Bereitstellen von Befehlssignalen für einen Datenspeicher, die die Datenspeicher ansteuern, um die bestimmten in den Speicherstellen der Datendateien, die zu den Befehlen zur Manipulation der Datendateien gehören, gespeicherten Daten asynchron mit und unabhängig von den Lese- und Schreibanforderungen zu manipulieren, der von der Hostcomputerverbindungseinrichtung gebildet wird, wodurch das Betriebssystem des Hostcomputers eine Transparenz über Befehle zur Manipulation von Datendateien den Anwendungsprogrammen zur Verfügung stellt, die auf dem Hostcomputer laufen und Daten von den mehreren Datenspeichern über die Hostcomputerverbindungseinrichtung lesen und darauf schreiben.
  • e) Steuern der Datenübertragungen von dem Cache-/Pufferspeicher zu den mehreren Plattenlaufwerk-Controllerkanälen zu dem Cache-Speicher und von dem Cache-Speicher zu dem Cache-/Pufferspeicher der mehreren Plattenlaufwerk-Controllerkanäle und von dem Cache-Speicher zu dem Hostcomputer über die Schnittstellen- und Treibereinheit; und,
  • f) Verwalten der Verwendung des Cache-Speichers durch Anfordern von Datenübertragungen nur mit Bezug auf einige der mehreren Plattenlaufwerke, wobei zugehörige Daten gegenwärtig nicht in dem Cache- Speicher sind, und Senden von höheren Befehlen zu den mehreren Plattenlaufwerk-Controllerkanälen, um dadurch die Datenübertragungen zu bewirken.
  • Beschreibung der Zeichnungen:
  • Fig. 1 (a) bis (i) stellen die historische Leistung von Computersystemen 1a-g in Form eines vereinfachten Blockdiagramms eines Ansatzes des Standes der Technik für ein Plattenspeichersystem 1(h) und das Leistungspotential der vorliegenden Erfindung 1(i) dar.
  • Fig. 2 ist ein vereinfachtes Blockdiagramm eines Plattform-Plattenspeichersystems gemäß der vorliegenden Erfindung.
  • Fig. 3 ist ein vereinfachtes Blockdiagramm der Plattenspeicherplattform des Systems von Fig. 2.
  • Fig. 4 ist ein vereinfachtes Blockdiagramm des Hostschnittstellenblocks der Plattenspeicherplattform von Fig. 3.
  • Fig. 5 ist ein vereinfachtes Blockdiagramm des einen der Plattencontrollerkanäle der Plattenspeicherplattform von Fig. 3.
  • Fig. 6 ist eine vereinfachte Zeichnung, die als Beispiel dient, um den dualen Asynchronbetrieb der vorliegenden Erfindung darzustellen.
  • Beschreibung der bevorzugten Ausführung:
  • Ein verbessertes Gesamtcomputersystem gemäß der vorliegenden Erfindung, bei dem Platten und eine nahezu verbundene Speichervorrichtung verwendet werden, wird in Fig. 2 dargestellt, wo es im allgemeinen mit 22 bezeichnet ist. Das System 22 weist einen Hostcomputer 10 auf, der ein Betriebssystem 12 mit seinen Tabellen 25 enthält. Es ist auch eine Konsolenprivilegschnittstelle 26 vorhanden, mittels derer externe Anwenderkonsolen (nicht dargestellt) benutzt werden können, um auf das Betriebssystem 12 des Hostcomputers zuzugreifen. Es ist einweiterer Plattencontroller 24 vorhanden, da es keine Änderung am Betriebssystem 12 gibt, wobei das Betriebssystem 12 so eingerichtet ist, daß es mit dem Plattencontroller 24 verbunden ist. Die einzelne Leitung 20 ist nicht, wie das beim Ansatz gemäß dem Stand der Technik von Fig. 1(i) der Fall ist, direkt mit den Plattenlaufwerken 16 verbunden, sondern die einzelne Leitung 20 des Plattencontrollers 24 ist mit einer intelligenten Plattenplattform 28 verbunden. Die Plattenplattform 28 wird dann so verbunden, daß sie mit dem Plattenlaufwerken 16 durch Leitungen 30 verbunden ist. Zusätzlich weist die Plattenplattform 28 eine bidirektionale Verbindung 32 durch eine Übertragungsverbindung 34 zur Konsolenprivilegschnittstelle 26 auf. In der bevorzugten Ausfüh rung, wie sie für Großspeichersysteme angewandt wird, ist auch die nahezu verbundene Speichervorrichtung 36 durch Leitung 38 mit der Plattenplattform 28 verbunden. Um innerhalb des erfindungsgemäßen Systems 22 zu funktionieren, sollte die nahezu verbundene Speichervorrichtung 36 von einer automatisierten Art sein, die aus einer beliebigen aus den im Fachgebiet bekannten ausgewählt werden kann, bei denen Offlinespeichermedien zum Lesen und Schreiben auf Anforderung durch automatisierte Mechanismen geladen werden, um die Notwendigkeit des Eingriffs durch den Bediener zu vermeiden.
  • Um die einzigartigen Verbesserungen gegenüber dem Stand der Technik zu verwirklichen, weist die Plattenplattform 28 ihre eigene Berechnungsfähigkeit auf, wie durch den Computerblock 40 dargestellt. Wie in Kürze ersichtlich sein wird, kann der Computer 40 in der Tat eine Vielzahl von Verarbeitungseinheiten aufweisen, wobei es für den hier vorliegenden jedoch ausreicht zu bemerken, daß es sich bei der Plattenplattform 28 nicht um den "dummen" Controller 14 des Standes der Technik handelt. Durch Verwendung der bidirektionalen Verbindung 32 durch eine Übertragungsverbindung 34 zur Konsolenprivilegschnittstelle 26 kann der Computer 40 die Anordnung der Daten innerhalb der Plattenlaufwerke 16 von den Tabellen 25 des Betriebssystems 12 aus finden. Die Anordnung der Daten innerhalb der Plattenlaufwerke 16 oder des nahezu verbundenen Archivspeichersystems 36 ist daher sowohl für das Betriebssystem 12 als auch für das Anwendungsprogramm transparent, die sie anfordern. Wenn angeforderte Daten auf dem nahezu verbundenen Archivspeichersystem 36 angeordnet sind, kann automatisch auf sie zugegriffen werden und sie können dann an das Betriebssystem 12 übertragen werden, als ob sie sich auf den Plattenlaufwerken 16 befinden würden. Noch wichtiger ist, daß der bevorzugte Computer 40 von einer selbst lernenden Art ist, die aus Erfahrung lernt. Wenn daher beispielsweise eine bestimmte Datei von dem nahezu verbundenen Archivspeichersystem 36 an einem bestimmten Zeitpunkt und/oder Tag in jedem Monat benutzt wird (wie bei der Vorbereitung einer Gehaltsliste), lernt die Logik des Computers 40 aus dieser Erfahrung und beginnt, die Datei von dem nahezu verbundenen Speichersystem 36 vor der erwarteten Anforderung zu laden, so daß bei Stellung der Anforderung die Datei bereits eingelesen und zur Verwendung bereit ist. Daher wird die Gesamtsystemleistung des Systems 22 nicht nur gegenüber den Stand der Technik in bezug auf ein vorgegebenes Niveau der Transparenz der Dateispeicherstelle für die Anwender verbessert, sondern es wird zusätzlich die Verwaltungszeit verringert, wenn das System die den Anwendern zugeordneten wiederholten Anwendungsmuster lernt. Dazu kommt, daß während der Ansatz nach dem Stand der Technik von Fig. 1(i) nur System- und Ausrüstungsdiagnosen durchführen konnte, indem der Computer 10 offline genommen oder die Komplexität und Verwaltungszeit des Betriebssystems 12 erneut erhöht wurde, indem das Betriebssystem 12 solche Funktionen in einem Hintergrundmodus ausführte, das Speicherssystem und die Ausrüstungsdiagnose nun durch den Computer 40 ausgeführt werden, der innerhalb der Plattenplattform 28 auf einer dauerhaften und zeitlich verfügbaren Grundlage angeordnet ist. Wie aus der nachfolgenden Beschreibung ersichtlich werden wird, können, wenn die Plattenlaufwerke 16 eine Störung oder Fehler aufweisen, alle beliebigen gefundenen Fehler und Probleme korrigiert, oder zumindest genau lokalisiert werden, damit der Bediener Korrekturen und Austauscharbeiten vornehmen kann, ohne das System 22 offline nehmen zu müssen oder irgendwelche größeren Beeinträchtigungen von dessen Leistung zu verursachen.
  • Nach der hiermit erfolgten Beschreibung des Gesamtsystemansatzes für Speicherungssysteme gemäß der vorliegenden Erfindung konzentriert sich die Aufmerksamkeit nun auf eine bevorzugte Konstruktion der Plattenplattform 28. Wie unter Bezugnahme auf die oben zitierte US-A-4942579 offensichtlich werden wird, bestand das Wesentliche dieser Erfindung in einem asynchronen Zugriff auf die Plattenlaufwerke 16. Bei diesem System wurden einzelne Plattenkanalcontroller für einzelne unter den Plattenlaufwerken 16 verwendet, wobei jeder der Plattenkanalcontroller einen Cache-/Pufferspeicher umfaßte. Alle Plattenkanalcontroller wurden durch Steuersignale von einem gemeinsamen Steuerrechner gesteuert, und für die Daten und Steuersignale wurde derselbe Bus verwendet. Wie in Fig. 3 dargestellt, wurde die bevorzugte Plattenplattform 28 dieser Offenlegung so restrukturiert, daß sie die Leistung bedeutend verbessert, während sie gleichzeitig wesentlich die Komplexität reduziert, wodurch die Zuverlässigkeit erhöht und deren Ausführung mit den bekannten vorteil haften Begleiterscheinungen bedeutend vereinfacht wird.
  • In Fig. 3 wird Leitung 18 als "SERIELLE SCHNITTSTELLE" bezeichnet, und Leitung 20 wird als "HOSTSCHNITTSTEL- LE" bezeichnet. In einer getesteten Ausführung ist die SERIELLE SCHNITTSTELLE von Leitung 18 eine RS232- Schnittstelle und die HOSTSCHNITTSTELLE von Leitung 20 ist eine SCSI-Schnittstelle (Small Computer System Interface. Diese Wahl war ein Ergebnis der Verfügbarkeit von häufig benutzter Ausrüstung, die nur bei Tests verwendet wurde, und Fachleute werden bereitwillig anerkennen und einschätzen, daß dieselben Techniken, die hier mittels Beispielen beschrieben wurden, auch bei Verwendung anderer Hardware-Schnittstellenmethoden und im Fachgebiet bekannten Vorrichtungen, oder noch zu entwickelnden, erreicht werden könnten. In dieser Hinsicht sind die Verbesserungen dieser Erfindung sowohl universell als auch anpassungsfähig. Die zwei Leitungen werden mit einer Schnittstellen- und Treibereinheit 42 verbunden, die die Hostschnittstelle, die serielle Schnittstelle und die LCD-Display- Treiberfunktionen, wie in diesem Dokument angegeben, bietet. Die Schnittstellenlogik und -vorrichtung und Treibereinheit 42 ist auch mit einem Display 44 verbunden. Das Display 44 ist nicht absolut erforderlich, doch vorzugsweise vorhanden, damit Meldungen an einen Bediener ausgegeben werden können, und zwar beispielsweise wenn bei ein erkanntes, fehlerhaft arbeitendes Plattenlaufwerk 16 außer Betrieb genommen und ersetzt werden sollte, um die volle Systemleistungsfähigkeit wiederherzustellen.
  • Es ist eine Vielzahl von Plattencontrollerkanälen 46 vorhanden, die mit einzelnen unter den Plattenlaufwerken 16 verbunden sind. An diesem Punkt ist vernünftigerweise von bis zu dreiundzwanzig Plattenlaufwerken 16 auszugehen, die durch die Plattenplattform 28 unterstützt werden können. Zwecks Fehlererkennung und Korrekturoptimierung ist vorzugsweise immer mindestens ein zusätzlicher Plattencontrollerkanal 46 und zugehöriges Plattenlaufwerk 16 aktiviert und läuft immer, um bei einem erkannten Fehler oder potentiellen Problem als "warmgelaufener" Ersatz verfügbar zu sein. Während aus der US-A-4942579 bereits die Vorrichtung gemäß dem allgemeinen Ansatz bekannt ist, dessen Verbesserung diese Erfindung ist, kann diese mit erkannten Fehlern weiter betrieben werden, indem sie im Betrieb korrigiert werden, wobei diese dynamische Korrektur die Leistung des Systems verringert. Daher ist es vorzuziehen, einen Plattenkanal dynamisch zu ersetzen und den Problemkanal durch Servicepersonal offline reparieren zu lassen. Nach der Reparatur kann der Kanal zum warmgelaufenen Ersatz werden. Jeder der Plattencontrollerkanäle 46 weist wiederum einen damit verbundenen Cache-/Pufferspeicher 48 auf. Während der Speicher der Plattencontrollerkanäle in der US-A-4942579 die Doppelfunktion eines Speicherpuffers ausführte, in den eingelesen, und von dem in bezug auf das damit verbundene Plattenlaufwerk und in einen Cache-Speicher geschrieben wurde, führen die Speicher 48 dieser Er findung im allgemeinen die Pufferfunktion aus. Vorzugsweise weisen die Speicher 48 eine solche Größe auf, daß sie geeignet sind, an mehr als einer Übertragung auf einmal beteiligt zu sein, damit mindestens ein Datenstrom in den Speicher 48 eingelesen werden kann, während ein anderer Datenstrom aus dem Speicher 48 heraus geschrieben wird. Ein weiterer wichtiger Unterschied zwischen dem Ansatz dieser Erfindung und dem der Mutteranmeldung besteht in der Einbindung eines Mikroprozessors 50. Wie man sich erinnern wird, waren die Plattencontrollerkanäle der Mutteranmeldung "dumm", d. h. sie verfügten über keine Rechenleistung. Daher mußten die Plattencontrollerkanäle der Mutteranmeldung mit einem Strom von niedrigeren Befehlen gespeist werden, was einen großen Betrag an Nichtdatenverkehr verursachte, der sich den Bus mit den Daten teilte. Das verringerte natürlich den Gesamtdurchsatz von Daten entlang des Busses. In den "intelligenten" Plattencontrollerkanälen 46 dieses Ansatzes sind die Plattencontrollerkanäle 46 nur mit höheren Befehlssignalen versehen, und erreichen den Ausgleich der angegebenen Lese- und Schreibfunktionen intern mit den Mikroprozessoren 50. Daher ist der Betrag des Nichtdatenverkehrs beim CPU-Bus 52 stark reduziert, wodurch mehr Zeit für die Übertragung von Daten verfügbar bleibt, die natürlich dessen primäre Funktion für eine optimale Systemleistung sein sollte.
  • Ein bedeutendes Element dieser Anmeldung ist die Cache-Speicher und Steuereinheit 54. Während die Speicher 48 der Plattencontrollerkanäle 46 in der geteste ten Ausführung jeweils 8 KB Größe aufweisen, weist der Cache-Speicher 56 der Cache-Speicher und Steuereinheit 54 16 MB auf. Die Cache-Speicher und Steuereinheit 54 weist ebenfalls ihren eigenen Mikroprozessor 58 und Hauptfehler-Wiederherstellungslogik 59 auf.
  • Schließlich weist die bevorzugte Plattenplattform 28 eine Zentralprozessoreinheit (CPU) 60 mit ihrem eigenen Privatspeicher 62 auf. Die CPU 60 wird für die Cache-Verwaltung und für Systemsteuerfunktionen auf eine Art und Weise verwendet, die kurz beschrieben wird. Wie in Fig. 3 gezeigt, sind die oben beschriebenen Komponenten mit Ausnahme der CPU 60 miteinander verbunden, um miteinander über den XBUS 64 kommunizieren zu können, und sind miteinander verbunden, um mit der CPU 60 mittels des CPU-Busses 52 kommunizieren zu können.
  • Wie oben erwähnt, besteht die hauptsächliche Neuheit der US-A-4942579 darin, daß die Daten asynchron von und zu den verschiedenen Plattenlaufwerken übertragen wurden. Bei dieser Erfindung sind zwei Schichten asynchronen Betriebes vorhanden, wodurch die Gesamtsystemleistung bedeutend erweitert wird. Es wird nicht nur die Übertragung von Daten zwischen den Speichern 48 und den Plattenlaufwerken 16 asynchron durchgeführt, wie in der vorangegangenen Offenlegung, sondern zusätzlich werden auch Übertragungen in und aus dem Cache-Speicher 56 asynchron durchgeführt. Aufgrund seiner Größe (d. h. 16 MB) kann der Cache-Speicher 56 für die Übertragung von gleichzeitigen Mehrfachanfor derungen vom Hostcomputer 10 verwendet werden. Aufgrund von Zugriffszeiten der Plattenlaufwerke 16, der Länge der angeforderten Übertragungen, und/oder bereits im Cache-Speicher 56 befindlicher Datenanteile, werden die Anforderungen zum Lesen und Schreiben von Daten von der CPU 60 zur Plattenplattform 28 möglicherweise nicht in der empfangenen Reihenfolge erledigt. Sobald eine Anforderung erledigt ist, und zwar unabhängig von ihrer Position bei der Reihenfolge der Anforderungen, wird die CPU 60 darüber informiert, daß die Anforderung erledigt ist. Somit wird der Durchsatz aus Sicht des Hostcomputers 10 bedeutend verbessert.
  • Die CPU 60 weist ein eingebettetes Feldplattenbetriebssystem 61 auf und verwendet seinen Privatspeicher 62, um die Inhalte des Cache-Speichers 56 aufzuzeichnen, damit es optimal auf Anforderungen vom Hostcomputer 10 reagieren kann. Wie zuvor erwähnt, gibt die CPU 60 in diesem System nur höhere Befehle an die Plattencontrollerkanäle 46 aus, damit der Ansatz von vielfachen niedrigeren Befehlen der Mutteranmeldung, bei der wertvolle Zeit auf dem CPU-Bus 66 benötigt wird, beseitigt wird. Die Mikroprozessoren 50 enthalten jeweils ein Festprogramm, das nicht nur die eigentlichen niedrigeren Befehlsschritte ausführt, die für Plattenübertragungen erforderlich sind, sondern zusätzlich auch den dauernden Selbsttest des einzelnen Controllerkanals auf einer zeitlich verfügbaren Grundlage durchführt um sicherzustellen, daß die Komponenten weiterhin ordnungsgemäß arbeiten. Sollte solch ein Selbsttest ein potentielles Problem aufzeigen, führt die CPU 60 einen weiteren Test des betroffenen Plattencontrollerkanals 46 durch um festzustellen, ob ein online geschaltetes, "warmgelaufenes" Ersatzplattenlaufwerk oder Plattencontrollerkanal 46 verwendet werden sollte, während die versagende Einheit für Wartungsarbeiten gekennzeichnet, und temporär von der Benutzung ausgeschlossen wird.
  • Indem die CPU 60 mittels dem Mikroprozessor 58 vollständig mit den Übertragungen zwischen den Speichern 48 und dem Cache-Speicher 56 beauftragt wird, wird auch das Problem mit der Buszuweisungsentscheidung auf dem XBUS 64 beseitigt. Dies hat natürlich viele vorteilhafte Effekte zur Folge, wie beispielsweise erhöhte Zuverlässigkeit, erhöhter Durchsatz und Einfachheit bei der Ausführung.
  • Um eine bessere Vorstellung von dem Betrieb der Plattenplattform 28 dieser Erfindung zu vermitteln, werden wir uns nun insbesondere Fig. 4 und 5 zuwenden. Fig. 4 zeigt weitere Details der Schnittstellen- und Treibereinheit, die im allgemeinen mit 42 bezeichnet ist, während Fig. 5 weitere Details der Plattencontrollerkanäle 46 zeigt. Unter Bezugnahme zuerst auf Fig. 4 ist dort ein XBUS-Treiber 66 mittels eines Verbinders 68 mit dem XBUS 64 verbunden. Es ist ebenfalls ein Hostschnittstellentreiber 70 (SCSI in der getesteten Ausführung) in Leitung 20 hinein und zurück zum Hostcomputer 10 mittels eines Verbinders 72 verbunden. Wie bei den anderen Elementen ist auch hier ein lokaler Mikroprozessor 74 vorhanden, um den Betrieb der Ele mente der Schnittstellen- und Treibereinheit 42 zu steuern. Der Mikroprozessor 74 ist mit einem Displaytreiber 76 (der mit dem Display 44 verbunden ist) verbunden, und mit einem seriellen Schnittstellentreiber 78 (der mit der seriellen Schnittstellen auf Leitung 18 verbunden ist). Alle Treiberelemente sind Fachleuten bekannt, und werden entsprechend der Art der Vorrichtung ausgewählt, mit der sie verbunden werden sollen. Der Mikroprozessor 74 ist ebenfalls mittels Verbinder 80 mit dem CPU-Bus 52 verbunden. Das Herzstück der Schnittstellen- und Treibereinheit 42 und wichtigster Teil davon ist ein Paar unidirektionaler FIFOs 82 und 84. Unter der Steuerung des lokalen Mikroprozessors 74 empfängt und überträgt die FIFO 82 Daten vom XBUS 66 zum Hostcomputer 10. Auf ähnliche Art und Weise empfängt und überträgt die FIFO 84 Anforderungen und Daten vom Hostcomputer 10 zum XBUS 66. Daher können bidirektionale Übertragungen zwischen dem XBUS 66 und dem Hostcomputer 10 erfolgen. Dies ist ein weiteres Merkmal dieser Ausführung, die den Gesamtdurchsatz des Systems 22 verbessert.
  • Die in Fig. 5 dargestellten Plattencontrollerkanäle 46 weisen auch einen XBUS-Treiber 66 sowie einen Plattenlaufwerksschnittstellentreiber 92 auf, die mittels ihrer zugehörigen Verbinder 68, 94 mit dem zugehörigen Plattenlaufwerk 16 verbunden sind. Auf ähnliche Art und Weise ist der lokale Mikroprozessor 50 mittels eines Verbinders 80 mit dem CPU-Bus 52 verbunden. Zusätzlich zum Datenpufferspeicher 48 ist ein Pufferadreßregister 86 vorhanden, das die Stellen im Spei cher 48 steuert, auf die ein Zugriff erfolgt sowie ein Datenverkehrssemaphor 88, der so funktioniert, daß er den Zugriff auf und vom Speicher 48 unter der Kontrolle des Mikroprozessors 58 auf eine Art und Weise steuert, die für Fachleute offensichtlich ist. Daher ist es der Datenverkehrssemaphor 8, der eigentlich die Adressen in das Pufferadreßregister 86 einfügt. Der Datenverkehrssemaphor 88 muß vorhanden sein, um einen gleichzeitigen Zugriff auf den Speicher 48 sowohl durch den XBUS 64 (und den durch diesen verbundenen Elementen) und den Hostcomputer 10 zu verhindern. Solche Vorrichtungen sind im Computerfachgebiet gut bekannt und werden für diesen Zweck verwendet, da jeder Versuch, gleichzeitig von einem Speicherort zu lesen und in einen Speicherort zu schreiben, irreversible Fehler verursachen kann.
  • Der nahezu verbundene Archivspeicherkanal 100 wird auf dieselbe Art und Weise gesteuert, wie Plattencontrollerkanal 46 durch Mikroprozessor 50 und Cache- /Pufferspeicher 48, und weist die Logik auf, um mittels des Steuerbusses 101 den nahezu verbundenen Archivspeicher 103 und dessen einzelne Elemente 104, 105 und 106 in bezug darauf zu steuern, Daten mittels des Datenbusses 102 zu lesen und zu schreiben. Von dem nahezu verbundenen Archivspeicher 103 gelesene Daten werden im Cache-Speicher 56 oder auf den Plattenlaufwerken 16 aufbewahrt und auf sie wird durch den Hostcomputer mit Sektornummern zugegriffen, die über die physikalischen Grenzen der Plattenlaufwerke 16 hinaus gehen, wodurch eine praktisch grenzenlose Speicherkapazität erzeugt wird.
  • Da nun die Konstruktion und der Betrieb des Systems 22 im allgemeinen beschrieben wurde, wird nun ein spezifischeres Beispiel seines einzigartigen Betriebsmodus unter Bezugnahme auf Fig. 6 beschrieben. Der Einfachheit halber stellt Fig. 6 in vereinfachter Form nur die Cache-/Pufferspeicher 48 in den Kanälen und den Cache-Speicher 48 als durch den XBUS 64 verbunden dar. Es wird angenommen, daß eine Anforderung zum Lesen von Daten durch den Hostcomputer 10 erfolgte. Die Plattenplattform 28 kennt natürlich die Speicherstelle (oder legt sie fest) der Daten in den Laufwerken 16 durch ihren oben beschriebenen Zugriff auf die Tabellen 24 in dem Hostcomputer 10. Gemäß den in der US-A-4942579 beschriebenen fehlertoleranten Techniken werden die Daten (und ihre Paritätsbits) über die Plattenlaufwerke 16 verbreitet. Aus den Inhalten ihres Privatspeichers 62 kennt die Logik in der CPU 60 die aktuellen Inhalte des Cache-Speichers 56. Alles, was sich bereits im Cache-Speicher 56 befindet, wird nicht neu gelesen, was natürlich die gewöhnliche Funktion eines jeden Cache-Speichers ist (d. h. redundante und unnötige Plattenzugriffe zu beseitigen). Die CPU 60 gibt dann Hochniveauanforderungen an die verschiedenen Plattencontrollerkanäle 46 aus, damit diese die Elemente der Daten von ihren Speicherstellen von den Plattenlaufwerken abfragen. Die Anforderungen werden auch an die Cache-Speicher und Steuereinheit 54 gerichtet, damit sie weiß, was abläuft. Von da an befin det sich die Datensammlung und deren Übertragung unter der Kontrolle des Mikroprozessors 58 in der Cache- Speicher und Steuereinheit 54. Der Mikroprozessor 58 ordnet verfügbaren Pufferplatz (wie durch die gestrichelte Box 90 angegeben) zu, auf dem die angeforderten Daten empfangen werden sollen. Die Datensegmente werden synchron in die Pufferspeicher 48 unter die Kontrolle des Mikroprozessors 50 als eine Funktion der ursprünglich ausgegebenen höheren Befehle von der CPU 60 gebracht. Bei Empfang der Datensegmente wird der Mikroprozessor 58 durch die Mikroprozessoren 50 über den XBUS 64 benachrichtigt. Der Mikroprozessor 58 überträgt dann die Datensegmente asynchron an ihre passende Speicherstelle innerhalb des zugeordneten Pufferplatzes 90. Wenn sich die gesamten Daten der Anforderung an dem zugeordneten Pufferplatz 90 befinden, überträgt der Mikroprozessor 58 diese durch die oben beschriebene FIFO 82 an den Hostcomputer 10. Ein Schreibvorgang erfolgt natürlich auf nahezu ähnliche Art und Weise, mit der Ausnahme, daß der Datenfluß in die entgegengesetzte Richtung gerichtet ist.
  • Während in Fig. 6 nur eine Darstellung in vereinfachter Form erfolgte, kann daraus, und aus einer Berücksichtigung der Elemente und deren Betriebsmethode wie oben beschrieben, geschätzt werden, daß der einzelne Cache-Speicher 56 von wesentlicher Größe, wie in dieser Ausführung verwendet, eine weitreichende Verbesserung bei der Einfachheit und Effektivität des Betriebs bewirkt (d. h. Geschwindigkeit). Aufgrund seiner Größe führt der Cache-Speicher 56 in der Tat eine automati sche Optimierung der Daten durch, die er über die Zeit im Cache behält, um die Anzahl der bei den Plattenlaufwerken erforderlichen Datenübertragungen zu minimieren. In bezug darauf ist es wichtig zu erkennen, daß die den Daten zugeordneten Paritätsbits an separat zu übertragenden Speicherstellen auf den Plattenlaufwerken 16 angeordnet sind. Daher werden im Laufe der Zeit die meisten verwendeten Daten und ihre Paritätsbits praktisch permanent im Cache-Speicher 56 vorhanden sein, und nur zum Zwecke von Backups durch den Mikroprozessor 58 in einem Hintergrundmodus auf einer zeitlich verfügbaren Grundlage auf die Plattenlaufwerke 16 geschrieben werden. Die Auswirkung dieser Vorgänge auf die Gesamtleistung des Systems 22 sollte nicht übersehen oder heruntergespielt werden. Nehmen wir an, daß wenn acht Plattenlaufwerke 16, die die einzelnen Datenbits von Daten enthalten, und ein neuntes Plattenlaufwerk 16 die damit verbundenen Paritätsbits enthält, und sich die Paritätsbits auf einem unbenutzten Teil des Cache-Speichers 56 befinden und nur dann auf das neunte Plattenlaufwerk 16 geschrieben werden, wenn die acht Plattenlaufwerke 16 nicht auf andere Art und Weise an einer tatsächlichen Datenübertragung beteiligt sind, die Plattenzugriffszeit um ein Neuntel oder elf Prozent reduziert wird. Die Zeitersparnisse könnten dann noch größer sein, wenn eines der acht Plattenlaufwerke 16, das die Datenbits enthält, versagt, und die Paritätsbits für die Korrektur von Fehlern im Datenstrom erforderlich sind.
  • Daher ist aus der vorangehenden Beschreibung ersichtlich, daß die in diesem Dokument beschriebenen Ausführungen gegenüber dem grundlegenden Computerspeichersystem des Patentes US-A-4,942,579 wesentliche Verbesserungen und Neuerungen bieten.
  • Wie bei der US-A-4,942,579 werden Fachleute bereitwillig anerkennen und schätzen, daß die Verwendung von Plattenlaufwerken, wie diese obenstehend mittels eines Beispiels beschrieben wurden, nur eine Annehmlichkeit darstellen und daß die in diesem Dokument beschriebenen Techniken bei anderen Speichervorrichtungen anwendbar wären und sind, die gegenwärtig verfügbar, oder in Entwicklung befindlich sind, wie beispielsweise CD-ROMs. Angesichts des Vorangegangenen wird es für einen Fachmann offensichtlich sein, daß Abänderungen mit eingebunden werden können, ohne von dem Umfang der vorliegenden Erfindung, wie in den beigefügten Ansprüchen definiert, abzuweichen.

Claims (7)

1.Steuervorrichtung für den Zugriff auf einen Massenspeicher zur Verwendung in einem Computersystem mit einem Hostcomputer (10), der angeschlossen ist, um auf mehrere Datenspeicher (16, 36) zuzugreifen, und ein Betriebssystem (12) mit Tabellen (25) für Dateispeicherstellen von auf den Datenspeichern gespeicherten Daten aufweist, wobei die Steuervorrichtung für den Zugriff auf einen Massenspeicher aufweist:
a) Steuermittel (28) für den Zugriff auf einen Datenspeicher, die zwischen dem Hostcomputer (10) und den mehreren Datenspeichern (16, 36) angeschlossen sind, zum Empfangen von Lese- und Schreibanforderungen von dem Hostcomputer, wobei die Lese- und Schreibanforderungen Befehle zur Manipulation von Datendateien und zugehörige Speicherstellen der Datendatei enthalten, um Daten von den mehreren Datenspeichern zu lesen und darauf zu schreiben, und zum Übertragen von Daten von und zu dem Hostcomputer;
b) Hostcomputerverbindungsmittel (18, 24, 20), die zwischen den Steuermitteln (28) für den Zugriff auf einen Datenspeicher und dem Hostcomputer (10) angeschlossen sind, zum Bilden eines ersten Datenpfads für Lese- und Schreibanforderungen zwischen dem Hostcomputer und den Steuermitteln für den Zugriff auf einen Datenspeicher, zum Versorgen der Steuermittel (28) für den Zugriff auf einen Datenspeicher mit den Lese- und Schreibanforderungen von dem Hostcomputer (10) und zum Übertragen von Daten von und zu dem Hostcomputer (10);
c) Übertragungsverbindungsmittel (34, 32) für das Betriebssystem des Hostcomputers, die zwischen den Steuermitteln (28) für den Zugriff auf einen Datenspeicher und einer Konsolenprivilegschnittstelle (26) zu dem Betriebssystem (12) des Hostcomputers eine Verbindung herstellen, zum Bilden eines zweiten Datenpfads für Lese- und Schreibanforderungen zwischen dem Hostcomputer (10) und den Steuermitteln (28) für den Zugriff auf einen Datenspeicher, zum Erhalten von und Versorgen der Steuermittel (28) für den Zugriff auf einen Datenspeicher mit Befehlen von dem Betriebssystem (12) zur Manipulation von Datendateien und zugehörigen Speicherstellen der Datendatei von den Tabellen (25) des Betriebssystems für Dateispeicherstellen von auf den Datenspeichern (16, 36) gespeicherten Daten, wobei die Befehle zur Manipulation von Datendateien zum Ansteuern der Datenspeicher dienen, um bestimmte in den zu den Befehlen zur Manipulation von Datendateien gehörenden Speicherstellen der Datendateien gespeicherte Daten zu manipulieren; und
d) Berechnungslogikmittel (40), die in den Steuermitteln (28) für den Zugriff auf einen Datenspeicher enthalten sind und auf zumindest die Befehle zur Manipulation von Datendateien und zugehörige Speicherstellen der Datendateien ansprechen, die über die Übertragungsverbindungsmittel (34, 32) für das Betriebssystem des Hostcomputers empfangen werden, zum Bereitstellen von Befehlssignalen für einen Datenspeicher, die die Datenspeicher ansteuern, um die bestimmten Daten, die in den Speicherstellen der Datendateien gespeichert sind, die zu den Befahlen zur Manipulation von Daten gehören, asynchron mit und unabhängig von den Lese- und Schreibanforderungen von dem Hostcomputer über den ersten Datenpfad für Lese- und Schreibanforderungen zu manipulieren, der von den Hostcomputerverbindungsmitteln (18, 24, 20) gebildet wird, wodurch das Betriebssystem des Hostcomputers eine Transparenz über Befehle zur Manipulation von Datendateien den Anwendungsprogrammen zur Verfügung stellt, die auf dem Hostcomputer laufen und Daten von den mehreren Datenspeichern über die Hostcomputerverbindungseinrichtung (34, 32) lesen und darauf schreiben.
2. Steuervorrichtung für den Zugriff auf einen Massenspeicher nach Anspruch 1, dadurch gekennzeichnet, daß
a) die Berechnungslogikmittel (40) eine Lernlogik aufweisen, so daß, wenn einmal die Speicherstelle von angeforderten Daten auf den mehreren Datenspeichern (16, 36) unter Verwendung der Übertragungsverbindungsmittel (34, 32) erhalten wurde, diese bekannt ist und behalten wird; und/oder b) die Berechnungslogikmittel (40) eine Testlogik zum Testender mehreren Datenspeicher (16, 36) in einer Hintergrundbetriebsart auf Basis der zur Verfügung stehenden Zeit aufweisen;
c) das Computersystem eine nahezu verbundene Archivspeichervorrichtung (103) einer automatisierten Art aufweist, wobei Offlinespeichermedien zum Lesen und Schreiben auf Anforderung von dem automatisierten Mechanismus eingelegt werden, und daß die Berechnungslogikmittel (40) eine Logik zum Benutzen der Übertragungsverbindungsmittel (34, 32) aufweist, um Informationen der Speicherstelle der Datei für die Daten auf der nahezu verbundenen Speichervorrichtung (103) zu erhalten; und daß vorzugsweise
d) die Lernlogik der Berechnungslogikmittel (40) von einer selbst lernenden Art ist, die aus Erfahrung lernt, so daß, wenn eine bestimmte Datei von der nahezu verbundenen Speichervorrichtung (103) wiederholt benutzt wird, die Lernlogik das zu einer bestimmten Zeit aus Erfahrung lernt und mit dem Laden der Datei aus der nahezu verbundenen Archivspeichervorrichtung (103) unter Vorrausberechnung einer erwarteten Anforderung derart beginnt, daß, wenn die Anforderung gemacht wird, diese Datei bereits eingelesen ist und zur Benutzung zur Verfügung steht.
3. Steuervorrichtung fürden Zugriff auf einen Massenspeicher nach Anspruch 1, des weiteren gekennzeichnet durch:
a) mehrere Controllerkanalmittel (46) für einen Datenspeicher, die an die entsprechenden von den mehreren Datenspeicher (16, 36) angeschlossen sind, zum Steuern von Übertragungen von Daten zu und von den zugehörigen von den mehreren Datenspeichern (16, 26) als Reaktion auf empfangene höhere Befehle, wobei jedes der mehreren Controllerkanalmittel (46) für einen Datenspeicher einen Cache-/Pufferspeicher (48) und
einen Mikroprozessor (50) zum Steuern der Übertragungen von Daten und Zuständen aufweist;
b) Schnittstellen- und Treibermittel zum Verbinden mit den Übertragungsverbindungsmitteln und dem Host- Computer;
c) einen zentralen Cache-Speicher (56);
d) Cache-Speichersteuermittel (59, 58) zum Steuern der Datenübertragungen von dem Cache-/Pufferspeicher (48) von den mehreren Controllerkanalmitteln (46) für einen Datenspeicher zu dem Cache-Speicher (56) und von dem Cache-Speicher (56) zu dem Cache-/Pufferspeicher (48) von den mehreren Controllerkanalmitteln (46) für einen Datenspeicher und von dem Cache-Speicher (56) zu dem Hostcomputer (10) über die Schnittstellen- und Treibermittel;
e) zentrale Verarbeitungsmittel (60) zum Verwalten der Benutzung des Cache-Speichers (56) durch angeforderte Datenübertragungen nur in Bezug auf einige der mehreren Datenspeicher (16, 36), wobei dazugehörige Daten nicht in dem Cache-Speicher (56) vorhanden sind, und zum Senden höherer Befehle zu den mehreren Controllerkanalmitteln (56) für einen Datenspeicher, um dadurch Datenübertragungen zu bewirken;
f) einen ersten (Daten-)Bus (64), der die mehreren Cache-Pufferspeicher (48) des Controllers für einen Datenspeicher, den Cache-Pufferspeicher (48) der Schnittstellen- und Treibermittel und den Cache-Speicher (56) miteinander verbindet, um Informationen dazwischen zu übertragen; und
g) einen zweiten (Informations- und Befehls-) Bus (52), der die mehreren Controllerkanalmittel (46) für einen Datenspeicher, die Schnittstellen- und Treibermittel, die Cache-Speichersteuermittel (59, 58) und die zentralen Verarbeitungsmittel (60) miteinander verbindet, um Steuerinformationen dazwischen zu übertragen.
4. Steuervorrichtung für den Zugriff auf einen Massenspeicher nach Anspruch 3, dadurch gekennzeichnet, daß die Schnittstellen- und Treibermittel aufweisen:
a) einen ersten Bustreiber (66) zum Anschließen an und Verbinden mit dem ersten Bus (64);
einen Schnictstellentreiber (70) für den Hostcomputer zum Anschließen an und Verbinden mit dem Hostcomputer (10);
eine Übertragungsverbindungsschnittstelle (80) zum Anschließen an und Verbinden mit den Übertragungsverbindungsmitteln (34, 32);
eine erste unidirektionale FIFO (82), die zwischen dem ersten Bustreiber (66) und dem Schnittstellentreiber (70) des Hostcomputers zum Empfangen von Eingaben von dem ersten Bus (64) angeschlossen ist, die für den Hostcomputer (10) gedacht sind;
eine zweite unidirektionale FIFO (84), die zwischen dem Schnittstellentreiber (70) des Hostcomputers und dem ersten Bustreiber (66) zum Empfangen von Eingaben von dem Hostcomputer (10) angeschlossen ist, die für den ersten Bus (64) gedacht sind;
einen lokalen Mikroprozessor (74) zum Steuern der ersten unidirektionalen FIFO (82), der zweiten unidirektionalen FIFO (84), und des Schnittstellentreibers (70) des Hostcomputers; und Verbindungsmittel (80) zum Verbinden des lokalen Mikroprozessors (74) mit dem zweiten Bus (52); und/
oder daß
b) jedes der mehreren Controllerkanalmittel (46) für einen Datenspeicher aufweist:
einen ersten Bustreiber (66) zum Anschließen an und Verbinden mit dem ersten Bus (64);
einen Schnittstellentreiber (92) für einen Datenspeicher zum Anschließen an und Verbinden mit einem zugehörigen der mehreren Datenspeicher (16, 36);
einen Datenpuffer (48);
ein Datensemaphor (88) zum Verhindern eines gleichzeitigen Zugriffs auf den Datenpuffer (48) durch den ersten Bustreiber (66) und den Schnittstellentreiber (92) für einen Datenspeicher;
ein Pufferadreßregister (86) zum Bereitstellen einer gegenwärtigen aktiven Adresse in dem Datenpuffer (48);
einen lokalen Mikroprozessor (50) zum Steuem des Datensemaphors (88) und des Schnittstellentreibers (92) für einen Datenspeicher; und
Verbindungsmittel (80) zum Verbinden des lokalen Mikroprozessors (50) mit dem zweiten Bus (52).
5. Verfahren zum Betreiben der Steuervorrichtung für den Zugriff auf einen Massenspeicher nach Anspruch 3; wobei die Vorrichtung folgende Schritte durchführt:
a) Empfangen von Lese- und Schreibanforderungen von dem Hostcomputer (10), wobei die Lese- und Schreibanforderungen Speicherstellen von Datendateien enthalten, um Daten von den mehreren Datenspeichern (16,36) zu lesen und darauf zu schreiben, und um Daten von und zu dem Hostcomputer (10) zu übertragen;
b) Bilden eines ersten Datenpfads für Lese- und Schreibanforderungen zwischen dem Hostcomputer (10) und den Steuermitteln (28) für den Zugriff auf einen Datenspeicher, um die Steuermittel (28) für den Zugriff auf einen Datenspeicher mit den Lese- und Schreibanforderungen von dem Hostcomputer (10) zu versorgen, und um Daten von und zu dem Hostcomputer (10) zu übertragen;
c) Bilden eines zweiten Datenpfads für Lese- und Schreibanforderungen zwischen dem Hostcomputer (10) und den Steuermitteln (213) für den Zugriff auf einen Datenspeicher, um Befehle zur Dateimanipulation von dem Betriebssystem und zugehörige Speicherstellen der Datendateien von den Tabellen des Betriebssystems für die Dateispeicherstellen von auf den Datenspeichern (16, 36) gespeicherten Daten zu erhalten und bereitzustellen, wobei die Befehle zur Manipulation der Datendateien dazu dienen, die Datenspeicher anzusteuern um bestimmte in den Speicherstellen der Datendateien gespeicherte Daten zu manipulieren, die zu den Befahlen zur Manipulation der Datendatei gehören;
d) Bereitstellen von Befehlssignalen für einen Datenspeicher, die die Datenspeicher (16, 36) ansteuern, um die bestimmten in den Speicherstellen der Datendateien, die zu den Befehlen zur Manipulation der Datendateien gehören, gespeicherten Daten asynchron mit und unabhängig von den Lese- und Schreibanforderungen von dem Hostcomputer (10) über den ersten Datenpfad für Lese- und Schreibanforderungen zu manipulieren, der von der Hostcomputerverbindungseinrichtung gebildet wird, wodurch das Betriebssystem des Hostcomputers eine Transparenz über Befehle zur Manipulation von Datendateien den Anwendungsprogrammen zur Verfügung stellt, die auf dem Hostcomputer (10) laufen und Daten von den mehreren Datenspeichern (16, 36) über die Hostcomputerverbindungseinrichtung lesen und darauf schreiben;
e) Steuern der Datenübertragungen von dem Cache-/Pufferspeicher (48) zu den mehreren Plattenlaufwerk-Controllerkanälen zu dem Cache-Speicher (56) und von dem Cache-Speicher (56) zu dem Cache-/Pufferspeicher (48) der mehreren Plattenlaufwerk-Controllerkanälen und von dem Cache-Speicher (56) zu dem Hostcomputer (10) über die Schnittstellen- und Treibereinheit; und
f) Verwalten der Verwendung des Cache-Speichers (56) durch Anfordern von Datenübertragungen nur mit Bezug auf einige der mehreren Plattenlaufwerke (16, 36), wobei zugehörige Daten gegenwärtig nicht in dem Cache-Speicher (56) sind, und Senden von höheren Befehlen zu den mehreren Plattenlaufwerk-Controllerkanälen, um dadurch die Datenübertragungen zu bewirken.
6. Verfahren nach Anspruch 5, gekennzeichnet durch:
a) Empfangen von Eingaben, die für den Hostcomputer (10) bestimmt sind, Empfangen von Eingaben von dem Hostcomputer (10), die für den ersten Bus (64) bestimmt sind, und Verwenden eines lokalen Mikroprozessors (74), um die empfangenen Eingaben, die fürden Hostcomputer (10) oder den ersten Bus (64) bestimmt sind, zu steuern, und/oder
b) Einsetzen eines Datensemaphors, um einen gleichzeitigen Zugriff auf den Datenpuffer (48) von dem ersten Bustreiber (66) und einem Schnittstellentreiber (92) eines Plattenlaufwerks zu verhindern; und/oder
c) Erhalten der Speicherstelle von Dateien auf den mehreren Plattenlaufwerken (16, 36) von dem Hostcomputer (10); und/oder
d) Speichern einer Entwicklungsgeschichte von Datenzugriffen von dem Hostcomputer (10); Vorausberechnen von Datenzugriffen aus der Entwiklungsgeschichte von Datenzugriffen und Abrufen der Daten, die zu den Zugriffen gehören, von den Plattenlaufwerken (16, 36), bevor eine tatsächliche Anforderung dafür von dem Hostcomputer (10) gemacht wird; und Verwalten der nahezu verbundenen Archivspeicherungsvorrichtung (103), um ein virtuelles Feld von zugreifbaren Daten einschließlich der Kapazität der gesamten nahezu verbundenen Archivspeichervorrichtung (103) mit dem Erscheinungsbild von einem Plattenlaufwerk unbegrenz ter Kapazität zu erzeugen: und/oder
e) Einlegen von Offlinespeichermedien zum Lesen und Schreiben auf Anfrage durch automatisierte Mechanismen, um die Notwendigkeit des Eingreifen des Bedieners zu vermeiden, wobei die Vorrichtung zusätzlich folgende Schritte durchführt:
Einetzen der Übertragungsverbindung (34) für das Betriebssystems des Hostcomputers, um die Speicherstelle von Daten auf der nahezu verbundenen Speichervorrichtung (36) von dem Betriebssystem (12) des Hostcomputers zu erhalten.
7. Verfahren nach Anspruch 6, wobei die Vorrichtung zusätzlich folgende Schritte durchführt:
a) Speichern einer Entwicklungsgeschichte von Datenzugriffen von dem Hostcomputer (10);
b) Vorausberechnen von Datenzugriffen aus der Entwicklungsgeschichte und Abrufen der Daten von der nahezu verbundenen Speichervorrichtung (36), die zu den Zugriffen gehören, bevor eine tatsächliche Anforderung von dem Hostcomputer (10) dafür gemacht wird, und
c) Verwalten der nahezu verbundenen Archivspeichervorrichtung (36), um ein virtuelles Feld von zugreifbaren Daten einschließlich der Kapazität der gesamten nahezu verbundenen Archivspeichervorrichtung (36) mit dem Erscheinungsbild von einem Plattenlaufwerk unbegrenzter Kapazität zu-erzeugen.
DE69131728T 1990-07-17 1991-07-15 Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur Expired - Fee Related DE69131728T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/554,127 US5257367A (en) 1987-06-02 1990-07-17 Data storage system with asynchronous host operating system communication link
PCT/US1991/004988 WO1992001988A1 (en) 1990-07-17 1991-07-15 High-speed, high-capacity, fault-tolerant, error-correcting storage system for binary computers

Publications (2)

Publication Number Publication Date
DE69131728D1 DE69131728D1 (de) 1999-11-25
DE69131728T2 true DE69131728T2 (de) 2000-11-16

Family

ID=24212152

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69131728T Expired - Fee Related DE69131728T2 (de) 1990-07-17 1991-07-15 Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur

Country Status (8)

Country Link
US (1) US5257367A (de)
EP (1) EP0539494B1 (de)
JP (1) JP3273254B2 (de)
AT (1) ATE185910T1 (de)
AU (1) AU663293B2 (de)
CA (1) CA2087162C (de)
DE (1) DE69131728T2 (de)
WO (1) WO1992001988A1 (de)

Families Citing this family (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4993030A (en) * 1988-04-22 1991-02-12 Amdahl Corporation File system for a plurality of storage classes
US5689670A (en) * 1989-03-17 1997-11-18 Luk; Fong Data transferring system with multiple port bus connecting the low speed data storage unit and the high speed data storage unit and the method for transferring data
JP3409859B2 (ja) 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
US6874101B2 (en) 1991-01-31 2005-03-29 Hitachi, Ltd. Storage unit subsystem
GB9116268D0 (en) * 1991-07-27 1991-09-11 Int Computers Ltd Data processing system
JP2536984B2 (ja) * 1991-09-26 1996-09-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 周辺装置の制御方法、フロッピ・ディスク装置の制御方法、周辺装置、フロッピ・ディスク装置、及び、デ―タ処理システム
US5499337A (en) * 1991-09-27 1996-03-12 Emc Corporation Storage device array architecture with solid-state redundancy unit
US5745789A (en) * 1992-01-23 1998-04-28 Hitachi, Ltd. Disc system for holding data in a form of a plurality of data blocks dispersed in a plurality of disc units connected by a common data bus
US5581778A (en) * 1992-08-05 1996-12-03 David Sarnoff Researach Center Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock
GB2270791B (en) * 1992-09-21 1996-07-17 Grass Valley Group Disk-based digital video recorder
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
US5448709A (en) * 1992-10-13 1995-09-05 Compaq Computer Corporation Disk array controller having command descriptor blocks utilized by bus master and bus slave for respectively performing data transfer operations
GB2273584B (en) * 1992-12-16 1997-04-16 Quantel Ltd A data storage apparatus
GB2274182B (en) * 1993-01-09 1996-09-25 Digital Equipment Int Database co-processor
US5689678A (en) * 1993-03-11 1997-11-18 Emc Corporation Distributed storage array system having a plurality of modular control units
US5933839A (en) * 1993-07-23 1999-08-03 Kabushiki Kaisha Toshiba Distributed file system for renewing data with high integrity
JPH0793219A (ja) * 1993-09-20 1995-04-07 Olympus Optical Co Ltd 情報処理装置
US7080051B1 (en) 1993-11-04 2006-07-18 Crawford Christopher M Internet download systems and methods providing software to internet computer users for local execution
US5771354A (en) 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
JP3161189B2 (ja) * 1993-12-03 2001-04-25 株式会社日立製作所 記憶システム
JP3224326B2 (ja) * 1994-06-24 2001-10-29 富士通株式会社 ディスク装置及びディスクサブシステム
US5715445A (en) * 1994-09-02 1998-02-03 Wolfe; Mark A. Document retrieval system employing a preloading procedure
US6604103B1 (en) 1994-09-02 2003-08-05 Mark A. Wolfe System and method for information retrieval employing a preloading procedure
US5884093A (en) * 1994-09-02 1999-03-16 Rock Solid Systems, Inc. Hard disk cache for CD-ROM and other slow access time devices
US7103594B1 (en) 1994-09-02 2006-09-05 Wolfe Mark A System and method for information retrieval employing a preloading procedure
US7467137B1 (en) 1994-09-02 2008-12-16 Wolfe Mark A System and method for information retrieval employing a preloading procedure
JP3782840B2 (ja) * 1995-07-14 2006-06-07 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
US5802560A (en) * 1995-08-30 1998-09-01 Ramton International Corporation Multibus cached memory system
US6098128A (en) 1995-09-18 2000-08-01 Cyberstorage Systems Corporation Universal storage management system
JPH0991230A (ja) * 1995-09-26 1997-04-04 Matsushita Electric Ind Co Ltd データ転送システム
US5802069A (en) * 1995-11-13 1998-09-01 Intel Corporation Implementing mass storage device functions using host processor memory
US5884098A (en) * 1996-04-18 1999-03-16 Emc Corporation RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems
US5790774A (en) * 1996-05-21 1998-08-04 Storage Computer Corporation Data storage system with dedicated allocation of parity storage and parity reads and writes only on operations requiring parity information
US5720027A (en) * 1996-05-21 1998-02-17 Storage Computer Corporation Redundant disc computer having targeted data broadcast
US5732238A (en) * 1996-06-12 1998-03-24 Storage Computer Corporation Non-volatile cache for providing data integrity in operation with a volatile demand paging cache in a data storage system
US6434663B1 (en) 1996-09-06 2002-08-13 Intel Corporation Disk block allocation optimization methodology with accommodation for file system cluster size greater than operating system memory page size
US6742080B1 (en) 1996-09-06 2004-05-25 Intel Corporation Disk block allocation optimization methodology and application
US5802593A (en) * 1996-09-06 1998-09-01 Intel Corporation Method and apparatus for improving disk drive performance
KR100208801B1 (ko) 1996-09-16 1999-07-15 윤종용 데이타 입/출력 성능을 향상시키기 위한 기억장치 시스템 및 그에 따른 데이타 복구정보 캐시구현방법
US6292878B1 (en) * 1996-12-12 2001-09-18 Matsushita Electric Industrial Co., Ltd. Data recorder and method of access to data recorder
US8626763B1 (en) 1997-05-22 2014-01-07 Google Inc. Server-side suggestion of preload operations
US6381674B2 (en) * 1997-09-30 2002-04-30 Lsi Logic Corporation Method and apparatus for providing centralized intelligent cache between multiple data controlling elements
US7257604B1 (en) 1997-11-17 2007-08-14 Wolfe Mark A System and method for communicating information relating to a network resource
US5953689A (en) * 1998-03-12 1999-09-14 Emc Corporation Benchmark tool for a mass storage system
US6205449B1 (en) * 1998-03-20 2001-03-20 Lucent Technologies, Inc. System and method for providing hot spare redundancy and recovery for a very large database management system
JP3812928B2 (ja) * 1999-07-14 2006-08-23 株式会社日立製作所 外部記憶装置及び情報処理システム
EP1098249A1 (de) * 1999-11-05 2001-05-09 Emc Corporation Cachespeichersegmentierung zur Bereitstellung von unterschiedlichen Betriebsniveaus
US6457102B1 (en) 1999-11-05 2002-09-24 Emc Corporation Cache using multiple LRU's
US6636940B1 (en) * 1999-12-02 2003-10-21 International Business Machines Corporation Task control for high level commands in disk drives
US6865514B1 (en) * 2000-08-18 2005-03-08 Emc Corporation Post test data processing of a mass storage system
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US6851082B1 (en) 2001-11-13 2005-02-01 Network Appliance, Inc. Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array
US7346831B1 (en) 2001-11-13 2008-03-18 Network Appliance, Inc. Parity assignment technique for parity declustering in a parity array of a storage system
US8402346B2 (en) * 2001-12-28 2013-03-19 Netapp, Inc. N-way parity technique for enabling recovery from up to N storage device failures
US7073115B2 (en) * 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US6993701B2 (en) * 2001-12-28 2006-01-31 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US7640484B2 (en) 2001-12-28 2009-12-29 Netapp, Inc. Triple parity technique for enabling efficient recovery from triple failures in a storage array
US7613984B2 (en) * 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
US7080278B1 (en) 2002-03-08 2006-07-18 Network Appliance, Inc. Technique for correcting multiple storage device failures in a storage array
US7539991B2 (en) 2002-03-21 2009-05-26 Netapp, Inc. Method and apparatus for decomposing I/O tasks in a raid system
US7254813B2 (en) * 2002-03-21 2007-08-07 Network Appliance, Inc. Method and apparatus for resource allocation in a raid system
US7200715B2 (en) * 2002-03-21 2007-04-03 Network Appliance, Inc. Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes
US7437727B2 (en) * 2002-03-21 2008-10-14 Network Appliance, Inc. Method and apparatus for runtime resource deadlock avoidance in a raid system
US20030212859A1 (en) * 2002-05-08 2003-11-13 Ellis Robert W. Arrayed data storage architecture with simultaneous command of multiple storage media
US6976146B1 (en) 2002-05-21 2005-12-13 Network Appliance, Inc. System and method for emulating block appended checksums on storage devices by sector stealing
JP3996010B2 (ja) 2002-08-01 2007-10-24 株式会社日立製作所 ストレージネットワークシステム、管理装置、管理方法及びプログラム
JP2004118250A (ja) * 2002-09-24 2004-04-15 Hitachi Ltd 計算機管理システム、管理プログラム
US7185144B2 (en) * 2003-11-24 2007-02-27 Network Appliance, Inc. Semi-static distribution technique
US7664913B2 (en) * 2003-03-21 2010-02-16 Netapp, Inc. Query-based spares management technique
US7143235B1 (en) 2003-03-21 2006-11-28 Network Appliance, Inc. Proposed configuration management behaviors in a raid subsystem
US7111147B1 (en) * 2003-03-21 2006-09-19 Network Appliance, Inc. Location-independent RAID group virtual block management
US7328364B1 (en) 2003-03-21 2008-02-05 Network Appliance, Inc. Technique for coherent suspension of I/O operations in a RAID subsystem
US7424637B1 (en) 2003-03-21 2008-09-09 Networks Appliance, Inc. Technique for managing addition of disks to a volume of a storage system
US7275179B1 (en) 2003-04-24 2007-09-25 Network Appliance, Inc. System and method for reducing unrecoverable media errors in a disk subsystem
US7653699B1 (en) * 2003-06-12 2010-01-26 Symantec Operating Corporation System and method for partitioning a file system for enhanced availability and scalability
US7328305B2 (en) * 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7366837B2 (en) * 2003-11-24 2008-04-29 Network Appliance, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
US7647451B1 (en) 2003-11-24 2010-01-12 Netapp, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
US7263629B2 (en) * 2003-11-24 2007-08-28 Network Appliance, Inc. Uniform and symmetric double failure correcting technique for protecting against two disk failures in a disk array
JP4516306B2 (ja) 2003-11-28 2010-08-04 株式会社日立製作所 ストレージネットワークの性能情報を収集する方法
JP2005190106A (ja) 2003-12-25 2005-07-14 Hitachi Ltd 論理ボリュームを管理する記憶制御サブシステム
JP4401788B2 (ja) 2004-01-06 2010-01-20 株式会社日立製作所 ストレージ制御装置
JP2006065697A (ja) * 2004-08-27 2006-03-09 Hitachi Ltd 記憶デバイス制御装置
US20060075281A1 (en) * 2004-09-27 2006-04-06 Kimmel Jeffrey S Use of application-level context information to detect corrupted data in a storage system
US7398460B1 (en) 2005-01-31 2008-07-08 Network Appliance, Inc. Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
US7747835B1 (en) 2005-06-10 2010-06-29 American Megatrends, Inc. Method, system, and apparatus for expanding storage capacity in a data storage system
US8055938B1 (en) 2005-06-10 2011-11-08 American Megatrends, Inc. Performance in virtual tape libraries
US7536529B1 (en) 2005-06-10 2009-05-19 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for provisioning space in a data storage system
US7689766B1 (en) 2005-06-10 2010-03-30 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for integrating a caching module into a storage system architecture
US7373366B1 (en) 2005-06-10 2008-05-13 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for taking and managing snapshots of a storage volume
US7711897B1 (en) 2005-06-10 2010-05-04 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for improving disk array performance
US7562200B1 (en) 2005-06-10 2009-07-14 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for locking and synchronizing input/output operations in a data storage system
US8010485B1 (en) 2005-10-20 2011-08-30 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US7996608B1 (en) 2005-10-20 2011-08-09 American Megatrends, Inc. Providing redundancy in a storage system
US7721044B1 (en) 2005-10-20 2010-05-18 American Megatrends, Inc. Expanding the storage capacity of a virtualized data storage system
US7778960B1 (en) 2005-10-20 2010-08-17 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US8010829B1 (en) 2005-10-20 2011-08-30 American Megatrends, Inc. Distributed hot-spare storage in a storage cluster
US20070101058A1 (en) * 2005-10-27 2007-05-03 Kinnan Keith R Storage unit configuration
US8560503B1 (en) 2006-01-26 2013-10-15 Netapp, Inc. Content addressable storage system
US20070177739A1 (en) * 2006-01-27 2007-08-02 Nec Laboratories America, Inc. Method and Apparatus for Distributed Data Replication
US7809892B1 (en) 2006-04-03 2010-10-05 American Megatrends Inc. Asynchronous data replication
US7822921B2 (en) 2006-10-31 2010-10-26 Netapp, Inc. System and method for optimizing write operations in storage systems
US7613947B1 (en) 2006-11-30 2009-11-03 Netapp, Inc. System and method for storage takeover
US7647526B1 (en) 2006-12-06 2010-01-12 Netapp, Inc. Reducing reconstruct input/output operations in storage systems
KR100877609B1 (ko) 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
US7908448B1 (en) 2007-01-30 2011-03-15 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems with write-back cache
US8046547B1 (en) 2007-01-30 2011-10-25 American Megatrends, Inc. Storage system snapshots for continuous file protection
US8046548B1 (en) 2007-01-30 2011-10-25 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems using bitmap write-intent logging
US8498967B1 (en) 2007-01-30 2013-07-30 American Megatrends, Inc. Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome
US8209587B1 (en) 2007-04-12 2012-06-26 Netapp, Inc. System and method for eliminating zeroing of disk drives in RAID arrays
US8006061B1 (en) 2007-04-13 2011-08-23 American Megatrends, Inc. Data migration between multiple tiers in a storage system using pivot tables
US8024542B1 (en) 2007-04-13 2011-09-20 American Megatrends, Inc. Allocating background workflows in a data storage system using historical data
US8370597B1 (en) 2007-04-13 2013-02-05 American Megatrends, Inc. Data migration between multiple tiers in a storage system using age and frequency statistics
US8140775B1 (en) 2007-04-13 2012-03-20 American Megatrends, Inc. Allocating background workflows in a data storage system using autocorrelation
US8001352B1 (en) 2007-04-17 2011-08-16 American Megatrends, Inc. Networked raid in a virtualized cluster
US8082407B1 (en) 2007-04-17 2011-12-20 American Megatrends, Inc. Writable snapshots for boot consolidation
US8271757B1 (en) 2007-04-17 2012-09-18 American Megatrends, Inc. Container space management in a data storage system
US8108580B1 (en) 2007-04-17 2012-01-31 American Megatrends, Inc. Low latency synchronous replication using an N-way router
US8898536B2 (en) * 2007-04-27 2014-11-25 Netapp, Inc. Multi-core engine for detecting bit errors
US7840837B2 (en) * 2007-04-27 2010-11-23 Netapp, Inc. System and method for protecting memory during system initialization
US7836331B1 (en) 2007-05-15 2010-11-16 Netapp, Inc. System and method for protecting the contents of memory during error conditions
US8711851B1 (en) 2007-07-19 2014-04-29 American Megatrends, Inc. Multi-protocol data transfers
US8127096B1 (en) 2007-07-19 2012-02-28 American Megatrends, Inc. High capacity thin provisioned storage server with advanced snapshot mechanism
US8549522B1 (en) 2007-07-19 2013-10-01 American Megatrends, Inc. Automated testing environment framework for testing data storage systems
US8554734B1 (en) 2007-07-19 2013-10-08 American Megatrends, Inc. Continuous data protection journaling in data storage systems
US7975102B1 (en) 2007-08-06 2011-07-05 Netapp, Inc. Technique to avoid cascaded hot spotting
US8799595B1 (en) 2007-08-30 2014-08-05 American Megatrends, Inc. Eliminating duplicate data in storage systems with boot consolidation
US8732411B1 (en) 2007-11-19 2014-05-20 American Megatrends, Inc. Data de-duplication for information storage systems
US8065442B1 (en) 2007-11-19 2011-11-22 American Megatrends, Inc. High performance journaling for replication and continuous data protection
US8245078B1 (en) 2007-12-21 2012-08-14 American Megatrends, Inc. Recovery interface
US8352716B1 (en) 2008-01-16 2013-01-08 American Megatrends, Inc. Boot caching for boot acceleration within data storage systems
US8799429B1 (en) 2008-05-06 2014-08-05 American Megatrends, Inc. Boot acceleration by consolidating client-specific boot data in a data storage system
US8255739B1 (en) 2008-06-30 2012-08-28 American Megatrends, Inc. Achieving data consistency in a node failover with a degraded RAID array
US8706694B2 (en) * 2008-07-15 2014-04-22 American Megatrends, Inc. Continuous data protection of files stored on a remote storage device
US9158579B1 (en) 2008-11-10 2015-10-13 Netapp, Inc. System having operation queues corresponding to operation execution time
US8650328B1 (en) 2008-12-15 2014-02-11 American Megatrends, Inc. Bi-directional communication between redundant storage controllers
US8332354B1 (en) 2008-12-15 2012-12-11 American Megatrends, Inc. Asynchronous replication by tracking recovery point objective
US8495417B2 (en) * 2009-01-09 2013-07-23 Netapp, Inc. System and method for redundancy-protected aggregates
US8904128B2 (en) * 2011-06-08 2014-12-02 Hewlett-Packard Development Company, L.P. Processing a request to restore deduplicated data
US10185639B1 (en) 2015-05-08 2019-01-22 American Megatrends, Inc. Systems and methods for performing failover in storage system with dual storage controllers
US10558598B2 (en) 2018-03-20 2020-02-11 Seagate Technology Llc Logic circuit that provides verification of signals used to interrupt server operation
CN112863553A (zh) * 2019-11-12 2021-05-28 光宝电子(广州)有限公司 运用于光盘柜中的光盘机启动控制方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3876978A (en) * 1973-06-04 1975-04-08 Ibm Archival data protection
GB1578485A (en) * 1976-06-22 1980-11-05 Bell & Howell Co Data coding and error correcting method
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
US4410942A (en) * 1981-03-06 1983-10-18 International Business Machines Corporation Synchronizing buffered peripheral subsystems to host operations
US4644545A (en) * 1983-05-16 1987-02-17 Data General Corporation Digital encoding and decoding apparatus
FR2561428B1 (fr) * 1984-03-16 1986-09-12 Bull Sa Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques
CA1263194A (en) * 1985-05-08 1989-11-21 W. Daniel Hillis Storage system using multiple mechanically-driven storage units
US4722085A (en) * 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US4849978A (en) * 1987-07-02 1989-07-18 International Business Machines Corporation Memory unit backup using checksum
US4903218A (en) * 1987-08-13 1990-02-20 Digital Equipment Corporation Console emulation for a graphics workstation
US4933936A (en) * 1987-08-17 1990-06-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Distributed computing system with dual independent communications paths between computers and employing split tokens

Also Published As

Publication number Publication date
EP0539494A1 (de) 1993-05-05
CA2087162C (en) 2001-04-24
EP0539494A4 (de) 1995-03-01
EP0539494B1 (de) 1999-10-20
DE69131728D1 (de) 1999-11-25
AU8300491A (en) 1992-02-18
AU663293B2 (en) 1995-10-05
WO1992001988A1 (en) 1992-02-06
JP3273254B2 (ja) 2002-04-08
ATE185910T1 (de) 1999-11-15
JPH05509186A (ja) 1993-12-16
US5257367A (en) 1993-10-26
CA2087162A1 (en) 1992-01-18

Similar Documents

Publication Publication Date Title
DE69131728T2 (de) Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur
DE69412775T2 (de) System zur Kontrolle der Befehlswarteschlange der Paritätsplatte in einer Speicherplattenanordnung
DE69127895T4 (de) Logisches spurschreibzuordnungssystem für paralleles plattenlaufwerksmatrixdatenspeicherungsuntersystem
DE3280428T2 (de) Datenspeichersystem fuer einen arbeitsrechner.
DE3881786T2 (de) Identifizierung von Datenspeicherungseinrichtungen.
DE3856443T2 (de) Gegen Fehler tolerantes, Fehler korrigierendes Speichersystem und Verfahren zur Speicherung digitaler Information in einem derartigen Speichersystem
DE69807101T2 (de) Segmentiertes dma mit xor-puffer für speicheruntersysteme
DE69632424T2 (de) Server für kontinuierliche Daten und Datentransferschema für mehrfache gleichzeitige Datenzugriffe
DE69631106T2 (de) On-line-Rekonfiguration einer Speicherplattenanordnung
DE69131551T2 (de) Logische Aufteilung eines Speichersystems mit redundanter Matrix
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69323225T2 (de) Datenbehandlung in einem System mit Prozessor zur Steuerung des Zugangs zu einer Mehrzahl von Datenspeicherplatten
DE69529728T2 (de) Speicherplattenanordnungsgerät
DE69621270T2 (de) Cache-Speichersteuervorrichtung und Methode
DE68928546T2 (de) Dateisystem für eine vielzahl von speicherklassen
DE69221279T2 (de) Plattenlaufwerkmatrix mit redundanten Kanälen
DE69533764T2 (de) Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung
DE69915243T2 (de) Speicherplattenanordnung-Steuerungsvorrichtung
DE2921387C2 (de) Verfahren zum Austauschen von Informationen zwischen einer Datenverarbeitungsanlage und einem Magnetplattenspeicher
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE602005000926T2 (de) Speichersystem und Speicherauszugs-Erstellungsverfahren eines Speichersystems
DE69833815T2 (de) Verbesserter Disk-Log mit verteiltem Schreibsystem
DE69132511T2 (de) Verfahren und vorrichtung zur zuordnung von erkennungszeichen an die glieder einer gruppe von massenspeichern
DE69635713T2 (de) Diskarray-Teilsystem
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden

Legal Events

Date Code Title Description
8363 Opposition against the patent
8339 Ceased/non-payment of the annual fee