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 fehlerkorrekturInfo
- 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
Links
- 238000003860 storage Methods 0.000 title claims abstract description 92
- 238000012937 correction Methods 0.000 title description 4
- 230000015654 memory Effects 0.000 claims abstract description 118
- 238000012546 transfer Methods 0.000 claims abstract description 45
- 239000000872 buffer Substances 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000013500 data storage Methods 0.000 claims description 38
- 238000004891 communication Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000000034 method Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 8
- 230000008878 coupling Effects 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000000717 retained effect Effects 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims 1
- 230000037431 insertion Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 17
- 230000006872 improvement Effects 0.000 description 12
- 238000013459 approach Methods 0.000 description 9
- 230000001965 increasing effect Effects 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000002301 combined effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99955—Archiving 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
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1990
- 1990-07-17 US US07/554,127 patent/US5257367A/en not_active Expired - Lifetime
-
1991
- 1991-07-15 DE DE69131728T patent/DE69131728T2/de not_active Expired - Fee Related
- 1991-07-15 AU AU83004/91A patent/AU663293B2/en not_active Ceased
- 1991-07-15 WO PCT/US1991/004988 patent/WO1992001988A1/en active IP Right Grant
- 1991-07-15 CA CA002087162A patent/CA2087162C/en not_active Expired - Fee Related
- 1991-07-15 EP EP91913709A patent/EP0539494B1/de not_active Expired - Lifetime
- 1991-07-15 JP JP51307991A patent/JP3273254B2/ja not_active Expired - Fee Related
- 1991-07-15 AT AT91913709T patent/ATE185910T1/de not_active IP Right Cessation
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 |