DE69814579T2 - Parallel arbeitende exklusiv-oder-einheit - Google Patents

Parallel arbeitende exklusiv-oder-einheit Download PDF

Info

Publication number
DE69814579T2
DE69814579T2 DE69814579T DE69814579T DE69814579T2 DE 69814579 T2 DE69814579 T2 DE 69814579T2 DE 69814579 T DE69814579 T DE 69814579T DE 69814579 T DE69814579 T DE 69814579T DE 69814579 T2 DE69814579 T2 DE 69814579T2
Authority
DE
Germany
Prior art keywords
xor
memory
data
bus
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69814579T
Other languages
English (en)
Other versions
DE69814579D1 (de
Inventor
R. Steven KLEIMAN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NetApp Inc
Original Assignee
Network Appliance Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Network Appliance Inc filed Critical Network Appliance Inc
Application granted granted Critical
Publication of DE69814579D1 publication Critical patent/DE69814579D1/de
Publication of DE69814579T2 publication Critical patent/DE69814579T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1054Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity

Description

  • Die Erfindung bezieht sich auf ein Speichersystem.
  • Eine bekannte Art von Speichersystemen ist als "RAID" bekannt, in welchem Daten über viele Plattenlaufwerke verteilt und gespeichert werden, um im Falle, dass eines dieser Plattenlaufwerke oder einer oder mehrer seiner Speicherblöcke mit Datenverlust ausfällt, wieder herzustellen. Um zur späteren Wiederherstellung Daten zu speichern, nehmen RAID-Systeme Daten zusammen mit Paritätsinformation auf, so dass Daten aus der Paritätsinformation wieder hergestellt werden können. Beispielsweise wird in einer Art von RAID-Systemen eine Reihe von fünf Platten verwendet, um vier Datenblöcke und einen Block mit Paritätsinformation in einer als "Stripe" bekannten Einheit aufzunehmen.
  • Ein Problem, welches im Fachgebiet auftrat, ist, dass RAID-Systeme, welche Paritätsinformationen aufnehmen, schnell und häufig die Berechnung von Paritätsinformationen erfordern. Beispielsweise erfordern Operationen, welche auf einen Stripe schreiben, mindestens eine Reihe von zu berechnenden Paritätsinformationen. Die Berechnung von Paritätsinformation benötigt im wesentlichen die XOR (exclusiv-or-)Funktion. Dies kann die Belegung wesentlicher Rechenressourcen erfordern, wie z. B. Prozessorzyklen, Cache-Adressen und Speicherzugriffszyklen.
  • Eine mögliche Technik zur Berechnung von Paritätsinformation ist, Software zur Kontrolle eines Prozessors zur Berechnung der XOR-Funktion anzubieten. Diese Technik hat mehrere Ausführungsalternativen, wie z. B. diese, welche Versuche enthalten, Prozessoranweisungen zu koordinieren, um Registerkon flikte und unnötiges Warten zu vermeiden und Cache-Fehler zu verringern, um unnötige Speichertransfers und unnötiges Warten durch den Prozessor zu vermeiden. Während diese Technik das Ziel der Berechnung von Paritätsinformation erreicht, leidet sie unter den Nachteilen, dass sie wesentliche Rechenressourcen erfordert (Prozessorzyklen, Cache-Adressen, Speichertransfers).
  • Eine andere mögliche Technik zur Berechnung von Paritätsinformation ist die Bereitstellung eines zweiten Prozessors mit einem unabhängigen Speicher zur Ausführung von XOR-Operationen. Der zweite Prozessor ist an den Hauptspeicher gekoppelt (d. h., durch den ersten Prozessor verwendeter Speicher), wobei er eine EMA-Verbindung verwendet, welche Eingaben für die XOR-Operation vom Speicher, welcher DMA-Operationen verwendet, abruft, wodurch der erste Prozessor frei ist, andere Tasks auszuführen. Während diese Technik das Ziel der Berechnung von Paritätsinformation erreicht, leidet sie auch unter den Nachteilen, dass sie wesentliche Speichertransfers und Verwendung des Systembus erfordert, sogar obwohl sie den ersten Prozessor von einigen seiner Belastungen entlastet.
  • Danach wäre es vorteilhaft, ein Verfahren und eine Anordnung zur Ausführung von XOR-Operationen bereitzustellen, welches gleichzeitig weniger Rechenressourcen verbraucht. Dieser Vorteil wird in einem Ausführungsbeispiel der Erfindung erreicht, in welchem ein spezialisierter Prozessor Speicher- und Plattenzugriffe, während sie auf einem Systembus übertragen werden, prüft, welcher XOR Operationen ausführt, die Ergebnisse dieser XOR-Operationen speichert und welcher auf Prozessoranweisung die Ergebnisse dieser XOR-Operationen ausgibt.
  • US 5,335,235 offenbart eine logische Schaltung für einen FIFO basierten Paritätsgenerator, zur Generierung von Paritätsblöcken zur Verwendung in einem Computersystem. Die logische Schaltung kann einen Datenblock generieren, welcher aus einer XOR-Operation einer logischen "0" mit jedem Bit in der ersten der Folgen von Datenblöcken resultiert und welcher den resultierenden Datenblock in einer FIFO Datenstruktur speichert. Es ist kein Gerätespeicher vorgesehen, welcher zur Anpassung eines Teils einer ausgewählten Speicheradresse mit einer Vielzahl von XOR-Akkumulator-Puffern eingerichtet ist.
  • WO 98/21656, welche nur aufgrund des Artikels 54(3)EPC Stand der Technik ist, offenbart einen Hochleistungsdatenpfad zur Ausführung von XOR on the fly, wobei einer an einen ersten Bus und ein zweiter an einen zweiten Bus angeschlossen ist, welcher selektiv an den ersten Bus gekoppelt ist.
  • Die Erfindung, welche in den anhängenden Ansprüchen festgelegt ist, sieht ein Verfahren und eine Anordnung zur Ausführung von XOR-Operationen vor, ohne wesentliche Rechenressourcen zu verbrauchen. Ein spezialisierter Prozessor ist an denselben Bus wie eine Reihe von Plattenlaufwerken gekoppelt; der spezialisierte Prozessor prüft Datentransfers zu und von den Plattenlaufwerken und führt auf Basis der Daten, welche zu und von den Plattenlaufwerken transferiert wurden, XOR-Operationen ohne das Erfordernis separater Transfers durch.
  • In einem bevorzugten Ausführungsbeispiel unterstützt der spezialisierte Prozessor einen XOR-Akkumulator, welcher für XOR-Operationen verwendet wird, welcher die Ergebnisse von XOR-Operationen aufnimmt und welcher auf Anweisung des Prozessors ausgelesen wird. Der XOR-Akkumulator umfaßt eine Reihe von Akkumulatorregistern für jeden RAID-Stripe, für eine ausgewählte Reihe von RAID-Stripes. Ein Speicher (wie ein inhaltsadressierbarer Speicher) verbindet eine Reihe von Akkumulatorregistern mit jedem ausgewählten RAID-Stripe.
  • 1 zeigt ein Blockdiagramm eines Systems zur Ausführung von fly-by XOR.
  • 2 zeigt ein Flußdiagramm eines Verfahrens zum Betreiben eines Systems, um fly-by XOR auszuführen.
  • 3 zeigt ein Blockdiagramm eines ersten fly-by XOR-Elements.
  • 4 zeigt ein Blockdiagramm eines zweiten fly-by XOR-Elements.
  • Detaillierte Beschreibung des bevorzugten Ausführungsbeispiels
  • In der folgenden Beschreibung wird ein bevorzugtes Ausführungsbeispiel der Erfindung in Bezug auf bevorzugte Prozessschritte und Datenstrukturen beschrieben. Dennoch würde der Fachmann nach Durchsicht dieser Anmeldung erkennen, dass Ausführungsbeispiele der Erfindung implementiert werden können, bei denen einer oder mehrere Mehrzweckprozessoren (oder Sonderanwendungsprozessoren, welche an die besonderen Prozessschritte und Datenstrukturen angepasst sind) verwendet werden, welche unter Programmkontrolle operieren, und dass die Implementierung der bevorzugten Prozessschritte und Datenstrukturen, welche hierin beschrieben sind und derartige Ausstattung nutzen, kein übermäßiges Experimentieren oder weitere Erfindung erfordern würden.
  • Systemkomponenten
  • 1 zeigt ein Blockdiagramm eines Systems zur Ausführung von fly-by XOR.
  • Ein System 100 umfaßt mindestens einen Prozessor 110, einen Speicher 120, und einen Systembus 130 zur Kopplung des Prozessors 110 und des Speichers 120. Obwohl nur ein Prozessor 110 gezeigt ist, kann in Ausführungsbeispielen, welche für einige Anwendungen bevorzugt sein können, mehr als ein Prozessor 110 an den Systembus 130 gekoppelt werden und die Prozessoren 110 arbeiten in ihren Operationen zusammen.
  • Das System 100 umfaßt auch eine Vielzahl von Plattenlaufwerken 140 und mindestens einen Platten-I/O-Adapter 150, der an die Plattenlaufwerke 150 gekoppelt ist, um die Plattenlaufwerke 140 zu kontrollieren und Daten zwischen den Plattenlaufwerken 140 und dem Systembus 130 zu koppeln, wobei ein sekundärer Bus 160 verwendet wird.
  • In einem bevorzugten Ausführungsbeispiel ist der sekundäre Bus 160 ein PCI-Bus, wie er durch bekannte Standards für PCI-Busse definiert wird, und ist an den Speicherbus 130 gekoppelt, wobei eine PCI-Brücke 170 verwendet wird.
  • Obwohl der sekundäre Bus 160 in einem bevorzugten Ausführungsbeispiel ein PCI-Bus ist, ist die Erfindung nicht auf die Verwendung eines PCI-Bus oder eines anderen besonderen Bustyps beschränkt. Gleichermaßen ist die Erfindung, obwohl der sekundäre Bus hierin weiter als ein 32-Bit-Bus beschrieben wird, nicht auf die Verwendung eines 32-Bit-Bus beschränkt und könnte auch mit einer anderen Busbreite, wie ein 64-Bit-Bus, implementiert werden. Solche Alternativen würden kein übermäßiges Experimentieren oder Erfinden erfordern.
  • Ein fly-by XOR-Element 180 ist an den sekundären Bus 160 gekoppelt, um Daten von Datentransfers ausfindig zu machen, welche den sekundären Bus 160 verwenden. Das fly-by XOR-Element 180 verwendet einen XOR-Puffer 140 zur Speicherung von Teil- und Endergebnissen von XOR-Operationen.
  • Wenn der Prozessor 110 den Transfer von Daten zwischen dem Speicher 120 und einem oder mehreren der Plattenlaufwerke 140 anweist, werden die Daten transferiert, indem der Speicherbus 130, die PCI-Brücke 170 und der sekundäre Bus 160 verwendet werden. Während die Daten mit Verwendung des sekundären Bus 160 transferiert werden, liest das fly-by XOR-Element 180 die Daten (ohne Beeinflussung des Datentransfers) und fügt sie zu einem der XOR-Akkumulatoren (siehe 2) in dem XOR-Puffer 109 hinzu. Wird ein RAID-Stripe entweder gesamt oder teilweise gelesen oder beschrieben, berechnet das fly-by XOR-Element 180 dadurch dynamisch eine Reihe von Paritätsinformationen für das RAID-Stripe, ohne zusätzliche Ressourcen von irgendeinem Teil des Systems 100 zu erfordern. Keine zusätzlichen Datentransfers sind notwendig, und der Prozessor 110 und der Speicher 120 werden nicht zur Ausführung dieser XOR-Operationen benötigt.
  • Wenn der Prozessor 110 derart anweist, wird das fly-by XOR-Element 180 akkumulierte Paritätsinformation von einem der XOR-Akkumulatoren in dem XOR-Puffer 190 auslesen, wie z. B. beim Ausschreiben der Paritätsinformation an einen Speicherblock in dem RAID-Stripe, welcher gelesen oder beschrieben wurde. Die akkumulierte Paritätsinformation von dem XOR-Puffer 190 kann auch zum Rekonstruieren oder Reparieren von Daten in dem RAID-Stripe verwendet werden, wenn eines der Plattenlaufwerke 140 in dem RAID-Stripe alle oder einen Teil von einem der Speicherblöcke in dem RAID-Stripe verliert.
  • Systemoperation
  • 2 zeigt ein Flußdiagramm eines Verfahrens zum Betreiben eines Systems um fly-by XOR auszuführen.
  • Ein Verfahren 200 zum Betreiben des fly-by XOR-Elements 180 umfaßt eine Folge von durch den Prozessor 110, die Plattenlaufwerke 140 und das fly-by XOR-Element 180 auszuführenden Schritten.
  • An einem Flußpunkt 210 führt das System 100 eine XOR-Operation auf einem RAID-Stripe aus.
  • Bei einem Schritt 221 belegt der Prozessor 110 einen Speicherpuffer in dem Speicher 120 und legt Daten fest, damit sie zu oder von dem Speicherpuffer und einem der Plattenlaufwerke 140 DMA-transferiert werden.
  • Bei einem Schritt 222 überträgt der Prozessor 110 eine Speicheradresse des Speicherpuffers an das fly-by XOR-Element 180 und weist das fly-by XOR-Element an, Daten zu erkennen, welche zu oder von diesem Speicherpuffer transferiert werden. Der Prozessor 110 belegt auch einen der XOR-Akkumulator-Puffer in dem XOR-Puffer 190, um die Ergebnisse der XOR-Operation zu akkumulieren.
  • Bei einem Schritt 223 wird der DMA-Transfer ausgeführt. Das fly-by XOR-Element 180 überwacht den sekundären Bus 160 und versucht Transfers zu oder von dem Speicherpuffer zu erkennen. Wenn das fly-by XOR-Element 180 solch einen Transfer erkennt, kopiert es die transferierten Daten und fügt sie (mittels Ausführung einer XOR-Operation) der akkumulierten Paritätsinformation in dem angeschlossen XOR-Akkumulator-Puffer hinzu. Wenn alle Daten für den bekannten Speicherpuffer transferiert wurden, enthält der angeschlossene XOR-Akkumulator-Puffer die berechnete Parität für den RAID-Stripe.
  • Beim Schritt 224 weist der Prozessor 110 das fly-by XOR-Element 180 an, die akkumulierte Paritätsinformation aus dem angeschlossenen XOR-Akkumulator-Puffer, entweder zu einem Speicherpuffer in dem Speicher 110 oder in den Speicherblock auf einem der Plattenlaufwerke 140 auszulesen. In jedem Fall wird das Auslesen aus dem fly-by XOR-Element 180 mittels Lesen durch den Prozessor oder DMA-Transfer zu einem der Plattenlaufwerke 140 ausgeführt. In einem bevorzugten Ausführungsbeispiel bedingt ein Auslesen der akkumulierten Paritätsinformation, dass der angeschlossene XOR-Akkumulator-Puffer auf Null zurückgesetzt wird.
  • Bei einem Flußpunkt 230 ist die XOR-Operation auf dem RAID-Stripe komplett, und das System 100 kann mit einem anderen RAID-Stripe fortfahren.
  • In einem bevorzugten Ausführungsbeispiel kann der Prozessor 110 eine XOR-Operation ausführen, ohne wirklich Daten von einem der Plattenlaufwerke 140 zu einem Speicherpuffer in dem Speicher 120 zu transferieren. Dies ist hierin als ein Transfer zu einem "Null"-Speicherpuffer bezeichnet, da die Operation abläuft, als ob es in jeder Hinsicht ein Transfer zu einem Speicherpuffer wäre, mit der Ausnahme, dass die Daten nicht wirklich in dem Speicher 120 gespeichert werden. Es ist vorteilhaft in der Lage zu sein, zu einem Null-Speicherpuffer zu transferieren, da es Plattenoperationen für einen RAID-Stripe gibt, in welchen es gewünscht ist, weniger als alle der Speicherblöcke des RAID-Stripe zu lesen oder zu schreiben, die in den Plattenlaufwerken 140 gespeichert sind, aber in welchen es notwendig ist, Paritätsinformation für den gesamten RAID-Stripe zu berechnen.
  • Wenn es beispielsweise gewünscht ist, gerade einen Speicherblock eines RAID-Stripe zu schreiben, ist es notwendig, sowohl auf diesen Speicherblock als auch den Paritätsinformations-Speicherblock zu schreiben. In bekannten RAID-Speichersystemen würde es notwendig sein, zuerst sowohl die aktuelle Parität als auch Datenblöcke von den Platten in den Speicher zu lesen, so dass der Prozessor dann die neue Paritätsinformation berechnen kann. Jedoch könnten diese Blöcke mittels der Erfindung zu einem Null-Speicherpuffer transferiert werden, so dass Ressourcen des Prozessors 110 oder des Speichers 120 nicht verwendet werden, sondern dass Paritätsinformation mittels des flyby XOR-Elements 180 berechnet werden.
  • Außerdem wird in einem bevorzugten Ausführungsbeispiel das Schreiben nur eines Speicherblocks eines RAID-Stripes in weniger Schritten ausgeführt: (1) Die alten Speicherblockdaten und die alten Paritätsblockdaten werden zu einem Null-Speicherpuffer transferiert, um Paritätsinformation mittels dem fly-by XOR-Element 180 zu akkumulieren. (2) Die neuen Speicherblockdaten werden in den Speicherblock geschrieben, um sowohl den Speicherblock zu beschreiben als auch gleichzeitig Paritätsinformation mittels dem fly-by XOR-Element 180 zu akkumulieren. (3) Die akkumulierte Paritätsinformation wird in den Paritätsspeicherblock von dem XOR-Puffer 190 geschrieben. Die Ressourcen des Prozessors 110 und des Speichers 120 werden für diese Operationen nicht benötigt.
  • Um den Transfer zu einem Null-Speicherpuffer auszuführen, belegt der Prozessor 110 bei dem Schritt 221 keinen Speicherpuffer in dem Speicher 120 und legt Daten fest, welche zwischen einem der Plattenlaufwerke 140 und einer Speicheradresse, welche nicht durch den Speicher 120 erkannt wird, DMA-transferiert werden. Bei dem Schritt 223 wird der DMA-Transfer ausgeführt und das fly-by XOR-Element überwacht den sekundären Bus 160, jedoch erfasst der Speicher 120 keine der Daten, welche zu dem Null-Speicherpuffer "transferiert" werden.
  • Erstes fly-by XOR-Element
  • 3 zeigt ein Blockdiagramm eines ersten fly-by XOR-Elements 180.
  • Ein erstes fly-by XOR-Element 180 umfasst ein Businterface 310, ein Zeit- und Kontrollglied 320 und einen inhaltsadressierbaren Speicher (CAM) 330 und angeschlossene Elemente. Der XOR-Puffer 190 wird an das fly-by XOR-Element gekoppelt und umfasst einen Schreib-Lese-Speicher (RAM) 340, eine FIFO-Reihe 350 und angeschlossene Elemente. Obwohl der XOR-Puffer 190 konzeptionell den RAM 340 umfasst, wird das RAM 340 in einem bevorzugten Ausführungsbeispiel implementiert, wobei ein externer RAM-Schaltkreis verwendet wird, während die FIFO 350 und angeschlossene Elemente mit anderen Schaltkreisen des fly-by XOR-Elements 180 in einem ASIC implementiert werden.
  • Die Busschnittstelle 310 und das Zeit- und Kontrollglied 320 stellen eine Schnittstelle zwischen dem fly-by XOR-Element 180 und dem sekundären Bus 160 bereit. Die Schnittstelle umfasst eine Reihe von Kontrollpfaden 311, welche durch den sekundären Bus 160 verwendete Kontrollsignale übermittelt, einen Busadressenpfad (BA) 312, welcher einen Busadressenwert übermittelt, der die Bits 0 bis einschließlich 31 besitzt, und einen Busdatenpfad (BD) 313, welcher einen Busdatenwert übermittelt, der die Bits 0 bis einschließlich 31 besitzt. Die Übermittlung mittels einem PCI-Bus ist im Fachgebiet des Computersystemgestaltung bekannt.
  • In alternativen Ausführungsbeispielen, in denen der sekundäre Bus 160 kein PCI-Bus ist oder eine andere Breite als 32 Bit besitzt, besitzt der Busdatenwert andere Bit-Kennungen (wie Bits 0 bis einschließlich 63) und die Übermittlung erfolgt mittels einem vom PCI verschiedenen Busprotokoll.
  • Der XOR-Puffer 190 umfaßt einen Schreib-Lese-Speicher (RAM) 340, welcher eine Reihe von 32 XOR-Akkumulator-Puffern bildet, wobei jeder 1024 Einträge lang mit 4 Byte (32 Bit) Breite ist, also 4K Byte groß. Deshalb können bei bis zu 32 verschiedenen RAID-Stripes XOR-Akkumulation stattfinden, welche gleichzeitig mittels des fly-by XOR-Elements 180 ausgeführt werden.
  • Der XOR-Puffer 190 besitzt auch eine FIFO-Warteschlange 350, welche vorgesehen ist für die Eingabe sequentieller Busdatenwertworte und für die Durchfürhung der XOR-Operation auf Basis dieser sequentiellen Worte, um Paritätsinformationen in einem der 32 XOR-Akkumulator-Puffer in dem RAM 340 zu akkumulieren.
  • Der CAM 330 stellt eine Reihe von 256 Eingängen bereit, wobei jeder einen 20-Bit Busadressenwert mit einer zugehörigen 5-Bit-Adresse eines der 32 XOR-Akkumulator-Puffer in dem RAM 340 verbindet. Der CAM 330 besitzt einen Adresseneingangsport 331 zum Auswählen eines der 256 Eingänge in dem CAM 330, einen 20-Bit Kennzeichenport 332 zum Bereitstellen eines 20-Bit Kennzeichens, welches mittels des CAM 330 angepasst wird, einen 5-Bitwert-Port 330 zum Bereitstellen eines durch den CAM 330 mit dem 20-Bit Kennzeichen verbundenen 5-Bit Werts, einen Schreib-Kontroll-Port 334 zum Empfangen eines Schreib-Kontroll-Signals und einen Übereinstimmungs-Kontrollport 335, zum Bereitstellen eines Übereinstimmungs-Kontrollsignals.
  • Das Zeit- und Kontrollglied 320 empfängt auch das Übereinstimmungs-Kontrollsignal vom Übereinstimmungs-Kontroll-Port 335 und stellt einen 15-Bit RAM Adressenpfad (RA) 314 zur Adressierung des RAM 340 und einen Schreib-Kontroll-Pfad 315 zur Kontrolle des CAM 330 bereit.
  • Bits 12 bis einschließlich 31 des Busadressenpfads 312 und Bits 12 bis einschließlich 31 des Busadressenpfads 313 (also in jedem Fall die höherwertigen 20 Bits) werden an Eingänge eines CAM Multiplexers 336 gekoppelt, wobei ein Ausgang dessen an den Kennzeichenport 332 des CAM 330 gekoppelt ist. Der Kennzeichenport 332 bildet auch ein 20-Bit Ausgangskennzeichen, welches an den Busdatenpfad 313 gekoppelt werden kann, wobei ein Treiber 337 verwendet wird. Der zugehörige 5-Bit Wert an dem Wertport 333 ist an den XOR-Puffer 190 gekoppelt und ist auch an den Busdatenpfad 313 gekoppelt, wobei ein Paar Treiber 338 verwendet wird.
  • Der XOR-Puffer 190 umfasst den RAM 340, welcher einen RAM-Adressenport 341 zum Empfangen des 15-Bit RAM-Adressenwert und einen RAM-Datenports 342 zum Bereitstellen eines 32-Bit RAM-Datenwerts umfasst, welcher an der zugehörigen Adresse in dem RAM 340 gespeichert ist. Der RAM 340 ist konzeptuell in 32 separate XOR-Akkumulator-Puffer aufgeteilt, wobei jeder 1K 32-Bit-Wörter (also 4K Byte) umfasst und eine Reihe von Adressen in dem RAM 340 belegt, wobei jede ihre 5-Bit XOR-Akkumulator-Puffernummer (0 bis einschließlich 31) als die höherwertigen Bits des RAM-Adressenwerts besitzt.
  • Der zugehörige 5-Bit-Wert an dem Wertport 333 ist an den RAM-Adressenport 341 gekoppelt und stellt höherwertige 5-Bit zur Adressierung von Wörtern in dem RAM 340 bereit. Bits 2 bis einschließlich 11 des Busadressenpfads 312 (also die niederwertigen 10 Bits zur Adressierung eines 4-Byte-Worts) stellen die niederwertigen 10 Bit zur Adressierung von Wörtern in RAM 340 bereit und sind auch an den RAM-Adressenport 341 gekoppelt. Also empfängt der RAM 340 eine 15-Bit-Adresse an dem RAM-Adressenport 341 und stellt ein 32-Bit Ausgangsdatenwort an dem RAM-Datenport 342 bereit.
  • Der RAM-Datenport 342 ist mittels eines Treibers 351 an den Busdatenpfad 313 (und auch an einen Eingang der FIFO-Warteschlange 350), an einen Ausgang eines FIFO-Multiplexers 352 und an einen Eingang eines FIFO-Registers 352 gekoppelt. Die FIFO-Warteschlange 350 besitzt einen Ausgang, welcher an einen XOR-Operator 354 gekoppelt ist, welcher eine Reihe von 32 XOR-Steuerelementen zur parallelen Ausführung einer XOR-Operation auf ein gesamtes 32-Bit Wort umfasst. Der FIFO-Multiplexer 352 ist an einen Ausgang des XOR-Operators 354 und an einen "Null"-Eingang 355 gekoppelt.
  • Um einen XOR-Akkumulator-Puffer für einen neuen RAID-Stripe wie in dem Schritt 221 und dem Schritt 222 zu belegen, veranlaßt das Zeit- und Kontrollglied 320, den CAM 330 mit einer 20-Bit Speicheradresse für einen Speicherpuffer in dem Speicher 120 (oder eine 20-Bit Speicheradresse für einen Null-Speicherpuffer) geladen zu werden, und verbindet diese 20-Bit Spei cheradresse mit einer 5-Bit Kennung für einen der 32 XOR-Akkumulator-Puffer. Bits 2 bis einschließlich 9 des Busadressenfads 312 werden an den Adresseneingangsport 331 gekoppelt und bilden die Adresse eines neuen Eintrags für den CAM 330. Der CAM-Multiplexer 336 wählt unter Kontrolle des Zeit- und Rollelements 320 den Busdatenpfad 313 zur Kopplung an den Kennzeichenport 332 aus. Der CAM 330 fügt Bits 12 bis einschließlich 31 des Busdatenwerts von dem Busdatenpfad 313 als ein neues 20-Bit Kennzeichen an der Adresse ein, welche an dem Adresseneingangsport 331 spezifiziert ist, und fügt Bits 0 bis einschließlich 4 des Busdatenwerts von dem Busdatenpfad 313 als einen neuen 5-Bit Wert ein. Der Prozessor 110 kann auch einen ausgewählten Eintrag in dem CAM 330 für Diagnostikzwecke lesen.
  • Um den sekundären Bus 160 wie in Schritt 223 zu überwachen, wählt das Zeit- und Kontrollelement 320 den Busadressenpfad 312 zur Kopplung an den Kennzeichenport 332 aus. Wenn die höherwertigen 20 Bits einer Speicheradresse (oder einer Adresse innerhalb eines Null-Speicherpuffers), welche auf dem sekundären Bus 160 erscheint, mit einem der 20-Bit Kennzeichen in dem CAM 330 übereinstimmt, stimmt der CAM 330 die Bits 12 bis einschließlich 31 der Busadresse ab und verbindet ein 5-Bit Wert mit diesem 20-Bit Kennzeichen.
  • Der zugehörige 5-Bit-Wert wird zur Auswahl eines der 32 XOR-Akkumulator-Puffern in dem RAM 340 verwendet, während Bits 2 bis einschließlich 11 des Busadressenpfads 312 zur Auswahl eines individuellen Worts in dem XOR-Akkumulator-Puffer in dem RAM 340 verwendet werden, so dass die Datenwerte an dem sekundären Bus 160 Wort für Wort in die FIFO-Warteschlange 350 eingelesen werden. Das Zeit- und Kontrollglied 320 sequentiert jedes Wort in der FIFO-Warteschlange 350 in Verbindung mit einem entsprechenden Wort, welches von dem RAM 340 in den FIFO-Register 353 gelesen wurde, durch den XOR-Operator 354, um eine XOR-Operation auf Basis von Daten in dem verbundenen XOR-Akkumulator-Puffer in dem RAM 340 mit Daten in der FIFO-Warteschlange 350 auszuführen. Das Zeit- und Kontrollelement 320 veranlaßt daraufhin, dass die Ergebnisse der XOR-Operation in den XOR-Akkumulator-Puffer in dem RAM 340 zurückgeschrieben werden.
  • Um die akkumulierte Paritätsinformation wie in Schritt 224 auszulesen, wählt das Zeit- und Kontrollglied 320 den Busadressenpfad 312 zur Kopplung an den RAM-Adressenport 341 aus, um jedes Wort in dem XOR-Akkumulator-Puffer in dem RAM 340 in Reihe auf dem Busdatenpfad 313 auszulesen, während DMA-Transfer entweder zu dem Speicher 120 oder zu einem der Plattenlaufwerke 140 erfolgt. Am üblichsten geht DMA-Transfer direkt zu einem der Plattenlaufwerke 140, kann aber zu dem Speicher 120 gehen, wenn der Prozessor 110 mit der Paritätsinformation operieren muß. Der Prozessor 110 kann die RAM 340 Einträge auch direkt für Diagnosezwecke lesen oder währenddessen in dem XOR-Puffer 190 bearbeiten, wenn es anderenfalls wünschenswert ist, an der Paritätsinformation zu lesen oder zu operieren. Das Zeit- und Kontrollglied 320 schreibt gleichzeitig Null-Werte in jedes Wort in dem XOR-Akkumulator-Puffer in dem RAM 340, um den XOR-Akkumulator-Puffer zu veranlassen, auf einen gleichförmigen Null-Wert zurückgesetzt zu werden.
  • Der Prozessor 110 kann auch direkt auf ausgewählte Adressen in dem RAM 340 schreiben, um eine XOR-Operation direkt zwischen den Inhalten des XOR-Puffers 190 und ausgewählter Information durchzuführen. Dies ist ähnlich der XOR-Operation, welche in Schritt 223 ausgeführt wurde. Dennoch werden Bits 12 bis einschließlich 16 des Busdatenpfads 113 an den RAM-Adressenport 341 anstelle des 5-Bit Ausgangswerts von dem Wertport 333 des CAM 330 gekoppelt.
  • In einem bevorzugten Ausführungsbeispiel werden Werte auf dem Busadressenpfad 312 und Busdatenpfad 313 wie in Tabelle 3-1 verwendet. In Tabele 3-1 werden Adressbereichswerte in hexidezimaler Darstellung gezeigt, und ausgewählte Bit-Bereiche werden für den Busadressenpfad (BA) 312 und Busdatenpfad (BD) 313 gezeigt.
  • Tabelle 3-1
    Figure 00140001
  • Zweites fly-by XOR-Element
  • 4 zeigt ein Blockdiagramm eines zweiten fly-by XOR-Elements. Ein zweites fly-by XOR-Element 180 und ein XOR-Puffer 190 sind dem ersten fly-by XOR-Element 180 und XOR-Puffer 190 gleich. Dennoch wird ein erster SRAM 430 anstelle des CAM 330 und ein zweiter SRAM 440 anstelle des RAM 340 verwendet. Obwohl auch der XOR-Puffer 190 konzeptuell den SRAM 430 beinhaltet, ist der SRAM 430 in einem bevorzugten Ausführungsbeispiel ähnlich dem ersten fly-by XOR-Element 180 und XOR-Puffer 190 mittels einem externen SRAM-Schaltkreis implementiert, während andere Elemente des XOR-Puffers 190 mit anderen Schaltkreisen des fly-by XOR-Elements 180 in einem ASIC implementiert sind.
  • Die Busschnittstelle 410 für das zweite fly-by XOR-Element 180 ist gleich der Busschnittstelle 310 für das erste fly-by XOR-Element 180; das Zeit- und Kontrollglied 420 für das zweite fly-by XOR-Element 180 ist gleich dem Zeit- und Kontrollglied 320 für das erste fly-by XOR-Element 180. Die Busschnittstelle 410 und das Zeit- und Kontrollelement 420 bilden in ähnlicher Weise eine Schnittstelle zwischen dem fly-by XOR-Element 180 und dem sekundären Bus 160. Die Schnittstelle umfaßt eine Reihe von Kontrollpfaden 411, welche durch den sekundären Bus 160 verwendete Kontrollsignale übermitteln, ein Busadressenpfad (BA) 412, welcher einen Busadressenwert übermittelt, der Bits 0 bis einschließlich 31 besitzt, und ein Busdatenpfad (BD) 413, welcher einen Busdatenwert übermittelt, welcher Bits 0 bis einschließlich 31 besitzt.
  • Der erste SRAM 430 umfaßt ein 1 Megawortspeicher von 5-Bit Worten und besitzt einen ersten SRAM-Adresseneingangsport 431, einen Schreib-Kontroll-Eingangsport 432 zum Empfang eines Schreibkontrollsignals, einen 5-Bit ersten RAM-Datenport 433 und einen Gültigkeitskontroll-Ausgangsport 434 (einen zusätzlichen Datenbit-Ausgangsport für den SRAM 430) zur Bereitstellung eines Ausgangs-Datenbits, welches als ein Gültigkeitskontrollsignal verwendet wird. Bits 2 bis einschließlich 21 des Busadressenpfads 412 sind an einen ersten Eingang eines SRAM-Multiplexers 435 gekoppelt, Bits 12 bis einschließlich 31 des Busadressenpfads 412 sind an einen zweiten Eingang des SRAM-Multipelxers 435 gekoppelt und ein Ausgang des SRAM-Multiplexers 435 ist an den ersten SRAM-Adresseneingangsport 431 gekoppelt.
  • Das Zeit- und Kontrollglied 420 empfängt auch das Gültigkeitskontrollsignal von dem Gültigkeitskontroll-Ausgangsport 434 und bildet einen 15-Bit RAM-Adressenpfad (RA) 414 zur Adressierung des zweiten SRAM 440 und einen Schreib-Kontrollpfad 415 zur Kontrolle des ersten SRAM 430.
  • Der XOR-Puffer 190 besitzt den zweiten SRAM 440, welcher einen zweiten SRAM-Adresseneingangsport 441 besitzt, um den zweiten 15-Bit SRAM-Adressenwert zu empfangen, und einen zweiten SRAM-Datenport 442 zur Bereitstellung eines 32-Bit SRAM-Datenwert umfasst, welcher unter der zugehörigen Adresse in dem zweiten SRAM 440 gespeichert wird. Ähnlich dem RAM 340 ist der zweite SRAM 440 konzeptuell in 32 separate XOR-Akkumulator-Puffer geteilt, von denen jeder 1K 32-Bit-Wörter (also 4K-Byte) umfaßt und eine Reihe von Adressen in dem zweiten SRAM 440 belegt, von denen jede ihre 5-Bit XOR-Akkumulator-Puffer-Nummer (0 bis einschließlich 31) als die höherwertigen Bits des zweiten SRAM-Adressenwerts besitzt.
  • Anstelle einen 5-Bit-Wert mit einem aus einer Reihe von 256 20-Bit Kennzeichen zu verbinden, behält der erste SRAM 430 eine Tabelle bei, welche einen Eintrag für jedes mögliche 20-Bit Kennzeichen, ein gültiges Bit für jeden Eintrag und für jene Einträge mit einer gültigen Bit-Reihe einen 5-Bit Wert besitzt. Jedes 20-Bit Kennzeichen repräsentiert mögliche höherwertige 20-Bit einer Adresse eines Speicherpuffers in dem Speicher 120 (oder eine Adresse für einen Null-Speicherpuffer). Jeder 5-Bit Wert repräsentiert eine mögliche XOR-Akkumulator-Puffer-Nummer.
  • Der zugehörige 5-Bit Wert an dem ersten SRAM-Datenport 433 wird an den zweiten SRAM-Adressenport 441 gekoppelt und stellt höherwertige 5-Bit zur Adressierung von Worten in dem zweiten SRAM 440 dar. Bits 2 bis einschließlich 11 des Busadressenpfads 412 (also die niederwertigen 10 Bits zur Adressierung eines 4-Byte Wortes) stellen die niederwertigen 10 Bits zur Adressie rung von Worten in dem zweiten SRAM 440 dar und werden auch an den zweiten SRAM-Adressenport 441 gekoppelt. Somit empfängt der zweite SRAM 440 eine 15-Bit Adresse an dem zweiten SRAM-Adressenport 441 und bildet ein 32-Bit Datenwortausgang an dem zweiten SRAM Datenport 442.
  • Der zweite SRAM-Datenport 442 wird an ein erstes Register 450 und mittels einem Treiber 451 an den Busdatenpfad 413 (und auch an ein zweites Register 452) gekoppelt. Der erste Register 450 und der zweite Register 452 werden an Eingänge eines XOR-Operators 453 gekoppelt, welcher eine Reihe von 32 XOR-Steuerelementen zur parallelen Ausführung einer XOR-Operation an einem gesamten 32-Bit Wort umfasst. Ein Ausgang des XOR-Operators 453 und ein "Null"-Eingang 454 sind an einen Eingang eines XOR-Multiplexers 455 gekoppelt; ein Ausgang des XOR-Multiplexers 455 ist auch an den zweiten SRAM-Datenport 442 gekoppelt.
  • In alternativen Ausführungsbeispielen kann das zweite Register 452 mit einer FIFO oder anderen Schaltungsstrukturen ersetzt werden, insbesondere wenn der zweite SRAM 440 nicht schnell genug ist, um rechtzeitig Ergebnisse für das zweite Register 452 zu liefern.
  • Um einen XOR-Akkumulator-Puffer für einen neuen RAID-Stripe wie in Schritt 221 und Schritt 222 zu belegen, veranlasst das Zeit- und Kontrollglied 420 den ersten SRAM 430 an eine 20-Bit Speicheradresse für einen Speicherpuffer in dem Speicher 120 gekoppelt zu werden (oder eine 20-Bit Speicheradresse für einen Null-Speicherpuffer) und speichert eine 5-Bit Kennung für einen der 32 XOR-Akkumulator-Puffern in der durch die 20-Bit Speicheradresse spezifizierten Adresse.
  • Der SRAM-Multiplexer 435 wählt unter Kontrolle des Zeit- und Kontrollglieds 420 Bits 2 bis einschließlich 21 des Busadressenpfads 412 zur Kopplung an den ersten SRAM-Adresseneingangsport 431 aus, speichert Bits 0 bis einschließlich 4 des Busdatenwerts von dem Busdatenpfad 413 als einen neuen 5-Bit Wert für diese Adresse und setzt den gültigen Bit für diese Adresse. Der Pro zessor 110 kann auch einen ausgewählten Eintrag in dem ersten SRAM 430 zu Diagnosezwecken lesen.
  • Um den sekundären Bus 160 wie in Schritt 223 zu überwachen, wählt das Zeit- und Kontrollglied 420 den Busadnessenpfad 412 zur Kupplung an den ersten SRAM-Adresseneingangsport 431 aus. Die höherwertigen 20 Bits einer Speicheradresse (oder einer Adresse innerhalb eines Null-Speicherpuffers), welche an dem sekundären Bus 160 erscheinen, werden verwendet, um den ersten SRAM 430 zu adressieren; wenn das gültige Bit für diese Adresse gesetzt ist, stellt der erste SRAM-Datenport 433 einen 5-Bit-Wert für einen XOR-Akkumulatorpuffer bereit, welcher mit dieser 20-Bit Speicheradresse verbunden ist.
  • Der verbundene 5-Bit-Wert wird zum Auswählen eines der 32 XOR-Akkumulator-Puffer in dem zweiten SRAM 440 verwendet, während Bits 2 bis einschließlich 11 des Busdadressenpfads 412 zum Auswählen eines individuellen Worts in dem XOR-Akkumulator-Puffer in dem zweiten SRAM 440 verwendet werden. Datenwerte in dem zweiten SRAM 440 werden Wort für Wort in das erste Register 450 ausgelesen, während Datenwerte von dem sekundären Bus 160 zu dem zweiten Register 452 Wort für Wort kopiert werden. Der XOR-Operator 453 führt die XOR-Operation auf Basis von Daten in dem XOR-Akkumulator-Puffer mit Daten durch, welche den sekundären Bus 160 durchqueren. Ausgaben von dem XOR-Operator 453 werden in den zweiten SRAM 440 zurückgeschrieben, wobei der zweite SRAM Datenport 442 verwendet wird.
  • Gleich dem ersten fly-by XOR-Element 180 zum Auslesen der akkumulierten Paritätsinformation wie in Schritt 422 wählt das Zeit- und Kontrollglied 420 den Busadressenpfad 412 zur Kopplung an den zweiten SRAM Adressenport 441 aus, um jedes Wort in dem XOR-Akkumulator-Puffer in dem zweiten SRAM 440 der Reihe nach auf den Busdatenpfad 413 auszulesen, während der DMA-Transfer entweder zu dem Speicher 120 oder zu einem der Plattenlaufwerke 140 erfolgt. Ähnlich dem ersten fly-by XOR-Element 180, kann der Prozessor 110 die Einträge des zweiten SRAM 440 direkt für Diagnosezwecke auslesen oder währenddessen in dem XOR-Puffer 190 Paritätsinformation zu lesen oder zu bearbeiten, wenn es anders gewünscht ist. Gleich dem ersten fly-by XOR-Element 180 schreibt das Zeit- und Kontrollglied 420 gleichzeitig Null-Werte in jedes Wort in dem XOR-Akkumulator-Puffer in dem zweiten SRAM 440, um den XOR-Akkumulator-Puffer zu einem Rücksetzen auf einen gleichförmigen Null-Wert zu bedingen.
  • Ähnlich dem ersten fly-by XOR-Element 180 kann der Prozessor 110 auch direkt auf ausgewählte Adressen in dem zweiten SRAM 440 schreiben, um eine XOR-Operation direkt zwischen den Inhalten des XOR-Puffers 190 und ausgewählten Informationen auszuführen.
  • Das zweite fly-by XOR-Element 180 besitzt das zusätzliche Merkmal, dass die Anzahl von Speicherpuffern in dem Speicher 120 (oder Null-Speicherpuffern), welche mit einem XOR-Akkumulator-Puffer verbunden werden können, nicht durch die Anzahl der Einträge in dem CAM 330 begrenzt ist. Dies erlaubt die Verwendung von RAID-Stripes mit beliebiger Breite, wo bis zu 32 RAID-Stripes gleichzeitig verwendet werden. Das zweite fly-by XOR-Element 180 kann zum Abändern der Anzahl von XOR-Akkumulator-Puffern modifiziert werden, indem die Breite des ersten SRAM-Datenport 433 und die Größe des zweiten SRAM 440 geändert wird.
  • In einem bevorzugten Ausführungsbeispiel werden Werte auf dem Busadressenpfad 412 und Busdatenpfad 430, wie in Tabelle 4-1 gezeigt, verwendet. In Tabelle 4-1 werden Adressbereichwerte hexadezimal und ausgewählte Bit-Bereiche für den Busadressenpfad (BA) 312 und Busdatenpfad (BD) 313 gezeigt.
  • Tabelle 4-1
    Figure 00200001
  • Bevorzugte Ausführungsbeispiele
  • Das erste fly-by XOR-Element 180 und sein zugehöriger XOR-Puffer 190 und das zweite fly-by XOR-Element 180 und sein zugehöriger XOR-Puffer 190 sind bevorzugte Ausführungsbeispiele. Dem Fachmann wird es nach Durchsicht dieser Anmeldung klar sein, dass das erste fly-by XOR-Element 180 und sein zugehöriger XOR-Puffer 190 für einige Arten von Gestaltungsbeschränkungen bevorzugt werden würde und dass das zweite fly-by XOR-Element 180 und sein zugehöriger XOR-Puffer 190 für andere Gruppen von Gestaltungsbeschränkungen bevorzugt werden würde.
  • Beispielsweise würden das erste fly-by XOR-Element 180 und sein zugehöriger XOR-Puffer 190 in jenen Fällen bevorzugt sein, in denen ein relativ kleiner aber komplexer CAM 330 weniger kostenaufwändig als ein zusätzlicher relativ großer externer SRAM 430 ist, während das zweite fly-by XOR-Element 180 und sein zugehöriger XOR-Puffer 190 in jenen Fällen der gegensätzlichen Situation bevorzugt werden, oder wenn die Stripes für das RAID-Suchsystem relativ breit sind.
  • Alternative Ausführungsbeispiele
  • Obwohl hierin bevorzugte Ausführungsbeispiele offenbart sind, sind viele Variationen möglich, welche innerhalb des Bereichs der Ansprüche bleiben, und diese Variationen werden dem Fachmann nach Durchsicht dieser Anmeldung klar.

Claims (7)

  1. Ein Verfahren mit den Schritten: – Lesen mindestens eines Datenblocks von einem Stripe, wobei das Stripe einen Speicherblock auf jedem einer Vielzahl von Massenspeichergeräten (140) enthält, wobei der Schritt des Lesens den Schritt des Übertragens von Daten von dem Datenblock über einen Bus (130, 160) enthält; – während der Ausführung des Schrittes des Übertragens der Daten über den Bus, Akkumulieren eines Ergebnisses einer XOR-Operation (354, 453) in einem von einer Vielzahl von XOR-Akkumulator-Puffern (340, 440), ohne sich auf den Schritt des Übertragens auszuwirken; – wobei der Schritt des Lesens den Schritt des Initiierens eines DMA-Transfers (223) von einem der Vielzahl von Massenspeichergeräten zu einer ausgewählten Speicherstelle enthält; und – wobei die ausgewählte Speicherstelle von dem Speicher ignoriert wird, wodurch der DMA-Transfer zu der ausgewählten Speicherstelle die Wirkung hat, das Ergebnis ohne Speicherung des Datenblocks in dem Speicher zu akkumulieren; – wobei ein Gerätespeicher (330, 430) zum Abgleichen eines Teils einer ausgewählten Speicheradresse mit einer der Vielzahl von XOR-Akkumulator-Puffern angeordnet ist.
  2. Verfahren nach Anspruch 1, wobei – der Schritt des Lesens das Kopieren des Datenblocks zu einem Speicher (120) enthält, welcher an einen Prozessor (110) mittels einem Speicherbus (130) gekoppelt ist; – der Schritt des Übertragens von Daten von dem Datenblock den Schritt des Übertragens von Daten über einen sekundären Bus (160), der nicht der Speicherbus ist, enthält; und – der Schritt des Akkumulierens auf den Schritt des Übertragens der Daten über den sekundären Bus reagiert.
  3. Verfahren nach Anspruch 1, wobei – der Schritt des Übertragens der Daten den Schritt des Ausführens des DMA-Transfers enthält; und – der Schritt des Akkumulierens auf den DMA-Transfer reagiert.
  4. Ein System enthaltend – einen Prozessor (110), einen mit dem Prozessor gekoppelten Speicherbus (130) und einen mit dem Speicherbus gekoppelten Speicher (120); und – eine Vielzahl von Massenspeichergeräten (140) und einen sekundären Bus (160), welcher die Vielzahl von Massenspeichergeräten mit dem Speicherbus koppelt, wodurch der sekundäre Bus für das Übertragen von Daten zu und von einem der Vielzahl von Massenspeichergeräten verwendet wird; und – ein Element gekoppelt mit dem sekundären Bus, wobei das Element eine Einrichtung zum Kopieren von Daten enthält, welche zu und von einem der Vielzahl von Massenspeichergeräten ohne Auswirkung auf die Operation der Übertragung übertragen werden, und eine Akkumuliereinrichtung (190) eines Ergebnisses einer XOR-Operation (354, 453) für die Daten enthält; und – einen Gerätespeicher (330, 430), welcher zum Abgleichen eines Teils einer ausgewählten Speicheradresse mit einer von einer Vielzahl von XOR-Akkumulator-Puffern (340, 440) angeordnet ist; und – einen XOR-Operator (354, 453), welcher mit dem Gerätespeicher und dem sekundären Bus gekoppelt ist und angeordnet ist zum Anwenden einer XOR-Operation auf Daten in einer der Vielzahl von XOR-Akkumulator-Puffern (340, 440) und Daten, welche mit der ausgewählten Speicheradresse assoziiert sind, und zum Schreiben eines Ergebnisses der XOR-Operation in eine der Vielzahl von XOR-Akkumulator-Puffern (340, 440); – wobei die Vielzahl der XOR-Akkumulator-Puffer und der XOR-Operator in der Akkumuliereinrichtung enthalten sind.
  5. System nach Anspruch 4 mit einem mit dem sekundären Bus gekoppelten DMA-Transferelement (310, 320, 410, 420); wobei das DMA-Transferelement eine Einrichtung zum Erkennen von DMA-Transfers, welche durch das DMA-Transferelement ausgeführt werden, und eine Einrichtung zum Kopieren von Daten der DMA-Transfers enthält; und wobei diese Akkumuliereinrichtung auf die Erkennungseinrichtung und die DMA-Transfers reagiert.
  6. System nach Anspruch 4 mit einem DMA-Transferelement (310, 320, 410, 420), welches mit dem sekundären Bus gekoppelt ist und zum Ausführen eines DMA-Transfers (223) von einem der Vielzahl von Massenspeichergeräten und einer ausgewählten Speicherstelle angeordnet ist; wobei die ausgewählte Speicherstelle von dem Speicher ignoriert wird, wodurch der DMA-Transfer zu der ausgewählten Speicherstelle die Wirkung hat, das Ergebnis ohne Speicherung des Datenblocks im Speicher zu akkumulieren.
  7. Eine Datenstruktur zur Verwendung in einem System nach einem der Ansprüche 4 bis 6, wobei diese Datenstruktur enthält: – eine Vielzahl von XOR-Akkumulator-Puffern (340, 440), von denen jeder ein Ergebnis einer auf Daten angewendeten XOR-Operation (354, 453) besitzt; und – ein Verzeichnis, welches eine Vielzahl von Einträgen besitzt, wobei jeder Eintrag einen Teil einer Speicheradresse mit einem der Vielzahl von XOR-Akkumulator-Puffern assoziiert, wobei die Speicheradresse mit den Daten assoziiert wird.
DE69814579T 1997-02-28 1998-02-27 Parallel arbeitende exklusiv-oder-einheit Expired - Lifetime DE69814579T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US808396 1985-12-12
US08/808,396 US5950225A (en) 1997-02-28 1997-02-28 Fly-by XOR for generating parity for data gleaned from a bus
PCT/US1998/003833 WO1998038576A1 (en) 1997-02-28 1998-02-27 Fly-by xor

Publications (2)

Publication Number Publication Date
DE69814579D1 DE69814579D1 (de) 2003-06-18
DE69814579T2 true DE69814579T2 (de) 2004-04-01

Family

ID=25198648

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69814579T Expired - Lifetime DE69814579T2 (de) 1997-02-28 1998-02-27 Parallel arbeitende exklusiv-oder-einheit

Country Status (10)

Country Link
US (1) US5950225A (de)
EP (2) EP1310874A3 (de)
JP (1) JP2000514941A (de)
KR (1) KR100352039B1 (de)
CN (1) CN1242330C (de)
AT (1) ATE240551T1 (de)
AU (1) AU6671098A (de)
DE (1) DE69814579T2 (de)
HK (1) HK1020624A1 (de)
WO (1) WO1998038576A1 (de)

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138126A (en) * 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US6161165A (en) * 1996-11-14 2000-12-12 Emc Corporation High performance data path with XOR on the fly
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6119244A (en) 1998-08-25 2000-09-12 Network Appliance, Inc. Coordinating persistent status information with multiple file servers
US6343984B1 (en) * 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
EP1912124B8 (de) 1999-10-14 2013-01-09 Bluearc UK Limited Vorrichtung und System zur Ausführung von Betriebsfunktionen
US6370616B1 (en) * 2000-04-04 2002-04-09 Compaq Computer Corporation Memory interface controller for datum raid operations with a datum multiplier
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6636879B1 (en) * 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US6728922B1 (en) 2000-08-18 2004-04-27 Network Appliance, Inc. Dynamic data space
US6952797B1 (en) 2000-10-25 2005-10-04 Andy Kahn Block-appended checksums
US7054927B2 (en) 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6990547B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Replacing file system processors by hot swapping
US6862692B2 (en) * 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US20020156973A1 (en) * 2001-01-29 2002-10-24 Ulrich Thomas R. Enhanced disk array
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US20020138559A1 (en) * 2001-01-29 2002-09-26 Ulrich Thomas R. Dynamically distributed file system
US6799284B1 (en) 2001-02-28 2004-09-28 Network Appliance, Inc. Reparity bitmap RAID failure recovery
JP4615137B2 (ja) * 2001-03-26 2011-01-19 富士通セミコンダクター株式会社 同期型メモリに対するフライバイ転送を可能にするdma制御システム
US7739614B1 (en) 2001-05-22 2010-06-15 Netapp, Inc. System and method for consolidated reporting of characteristics for a group of directories
US8171414B2 (en) * 2001-05-22 2012-05-01 Netapp, Inc. System and method for consolidated reporting of characteristics for a group of file systems
US7249150B1 (en) * 2001-07-03 2007-07-24 Network Appliance, Inc. System and method for parallelized replay of an NVRAM log in a storage appliance
US6944785B2 (en) * 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US6757695B1 (en) 2001-08-09 2004-06-29 Network Appliance, Inc. System and method for mounting and unmounting storage volumes in a network storage environment
US6851070B1 (en) 2001-08-13 2005-02-01 Network Appliance, Inc. System and method for managing time-limited long-running operations in a data storage system
US6965989B1 (en) 2001-08-14 2005-11-15 Network Appliance, Inc. System and method for fast reboot of a file server
US6883131B2 (en) * 2001-09-28 2005-04-19 Sun Microsystems, Inc. XOR processing incorporating error correction code data protection
US20030084397A1 (en) * 2001-10-31 2003-05-01 Exanet Co. Apparatus and method for a distributed raid
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
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
US6871317B1 (en) 2001-11-13 2005-03-22 Network Appliance, Inc. Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
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
US8402346B2 (en) * 2001-12-28 2013-03-19 Netapp, Inc. N-way parity technique for enabling recovery from up to N storage device failures
US7613984B2 (en) * 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
US7254813B2 (en) * 2002-03-21 2007-08-07 Network Appliance, Inc. Method and apparatus for resource allocation in a raid system
US7437727B2 (en) * 2002-03-21 2008-10-14 Network Appliance, Inc. Method and apparatus for runtime resource deadlock avoidance 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
US7539991B2 (en) 2002-03-21 2009-05-26 Netapp, Inc. Method and apparatus for decomposing I/O tasks in a raid system
US7107385B2 (en) * 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7426576B1 (en) 2002-09-20 2008-09-16 Network Appliance, Inc. Highly available DNS resolver and method for use of the same
US7171452B1 (en) 2002-10-31 2007-01-30 Network Appliance, Inc. System and method for monitoring cluster partner boot status over a cluster interconnect
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US8041761B1 (en) 2002-12-23 2011-10-18 Netapp, Inc. Virtual filer and IP space based IT configuration transitioning framework
US7664913B2 (en) * 2003-03-21 2010-02-16 Netapp, Inc. Query-based spares management technique
US7424637B1 (en) 2003-03-21 2008-09-09 Networks Appliance, Inc. Technique for managing addition of disks to a volume of a storage system
US7328364B1 (en) 2003-03-21 2008-02-05 Network Appliance, Inc. Technique for coherent suspension of I/O operations in a RAID subsystem
US7457982B2 (en) 2003-04-11 2008-11-25 Network Appliance, Inc. Writable virtual disk of read-only snapshot file objects
US7383378B1 (en) * 2003-04-11 2008-06-03 Network Appliance, Inc. System and method for supporting file and block access to storage object on a storage appliance
US7739543B1 (en) 2003-04-23 2010-06-15 Netapp, Inc. System and method for transport-level failover for loosely coupled iSCSI target devices
US7260737B1 (en) 2003-04-23 2007-08-21 Network Appliance, Inc. System and method for transport-level failover of FCP devices in a cluster
US7293152B1 (en) 2003-04-23 2007-11-06 Network Appliance, Inc. Consistent logical naming of initiator groups
US7437530B1 (en) 2003-04-24 2008-10-14 Network Appliance, Inc. System and method for mapping file block numbers to logical block addresses
US7330862B1 (en) 2003-04-25 2008-02-12 Network Appliance, Inc. Zero copy write datapath
US7577692B1 (en) 2003-04-25 2009-08-18 Netapp, Inc. System and method for reserving space to guarantee file writability in a file system supporting persistent consistency point images
US7437523B1 (en) 2003-04-25 2008-10-14 Network Appliance, Inc. System and method for on-the-fly file folding in a replicated storage system
US7181439B1 (en) 2003-04-25 2007-02-20 Network Appliance, Inc. System and method for transparently accessing a virtual disk using a file-based protocol
US7603553B1 (en) 2003-04-25 2009-10-13 Netapp, Inc. System and method to make file handles opaque to clients
US7523201B2 (en) * 2003-07-14 2009-04-21 Network Appliance, Inc. System and method for optimized lun masking
US7716323B2 (en) * 2003-07-18 2010-05-11 Netapp, Inc. System and method for reliable peer communication in a clustered storage system
US7593996B2 (en) 2003-07-18 2009-09-22 Netapp, Inc. System and method for establishing a peer connection using reliable RDMA primitives
US7055014B1 (en) 2003-08-11 2006-05-30 Network Applicance, Inc. User interface system for a multi-protocol storage appliance
US7647451B1 (en) 2003-11-24 2010-01-12 Netapp, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
TWI259356B (en) * 2004-03-26 2006-08-01 Infortrend Technology Inc Apparatus for checking data coherence, controller and storage system having the same and method therefore is disclosed
US20060123312A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation Method and system for increasing parallelism of disk accesses when restoring data in a disk array system
US7529894B2 (en) * 2005-08-17 2009-05-05 Sun Microsystems, Inc. Use of FBDIMM channel as memory channel and coherence channel
US7353340B2 (en) * 2005-08-17 2008-04-01 Sun Microsystems, Inc. Multiple independent coherence planes for maintaining coherency
US7398360B2 (en) * 2005-08-17 2008-07-08 Sun Microsystems, Inc. Multi-socket symmetric multiprocessing (SMP) system for chip multi-threaded (CMT) processors
US8560503B1 (en) 2006-01-26 2013-10-15 Netapp, Inc. Content addressable storage system
US7509460B2 (en) * 2006-05-04 2009-03-24 Sun Microsystems, Inc. DRAM remote access cache in local memory in a distributed shared memory system
US7844584B1 (en) 2006-06-23 2010-11-30 Netapp, Inc. System and method for persistently storing lock state information
US7979701B1 (en) 2006-09-15 2011-07-12 Netapp, Inc. Cross mapping graphical interface to show encryption relationships between hosts and storage devices
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
US7620669B1 (en) 2006-12-15 2009-11-17 Netapp, Inc. System and method for enhancing log performance
US8209587B1 (en) 2007-04-12 2012-06-26 Netapp, Inc. System and method for eliminating zeroing of disk drives in RAID arrays
US7975102B1 (en) 2007-08-06 2011-07-05 Netapp, Inc. Technique to avoid cascaded hot spotting
US8495417B2 (en) * 2009-01-09 2013-07-23 Netapp, Inc. System and method for redundancy-protected aggregates
US8688798B1 (en) 2009-04-03 2014-04-01 Netapp, Inc. System and method for a shared write address protocol over a remote direct memory access connection
US9646177B2 (en) * 2011-04-29 2017-05-09 Altera Corporation Systems and methods for preventing data remanence in memory systems
US9524107B2 (en) 2014-07-30 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Host-based device drivers for enhancing operations in redundant array of independent disks systems
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US10817388B1 (en) 2017-07-21 2020-10-27 EMC IP Holding Company LLC Recovery of tree data in a geographically distributed environment
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
US10817374B2 (en) 2018-04-12 2020-10-27 EMC IP Holding Company LLC Meta chunks
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
US11023130B2 (en) 2018-06-15 2021-06-01 EMC IP Holding Company LLC Deleting data in a geographically diverse storage construct
US10936196B2 (en) * 2018-06-15 2021-03-02 EMC IP Holding Company LLC Data convolution for geographically diverse storage
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US10901635B2 (en) 2018-12-04 2021-01-26 EMC IP Holding Company LLC Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns
US10931777B2 (en) 2018-12-20 2021-02-23 EMC IP Holding Company LLC Network efficient geographically diverse data storage system employing degraded chunks
US11119683B2 (en) 2018-12-20 2021-09-14 EMC IP Holding Company LLC Logical compaction of a degraded chunk in a geographically diverse data storage system
US10892782B2 (en) 2018-12-21 2021-01-12 EMC IP Holding Company LLC Flexible system and method for combining erasure-coded protection sets
US11023331B2 (en) 2019-01-04 2021-06-01 EMC IP Holding Company LLC Fast recovery of data in a geographically distributed storage environment
US10942827B2 (en) 2019-01-22 2021-03-09 EMC IP Holding Company LLC Replication of data in a geographically distributed storage environment
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10942825B2 (en) 2019-01-29 2021-03-09 EMC IP Holding Company LLC Mitigating real node failure in a mapped redundant array of independent nodes
US10944826B2 (en) 2019-04-03 2021-03-09 EMC IP Holding Company LLC Selective instantiation of a storage service for a mapped redundant array of independent nodes
US11029865B2 (en) 2019-04-03 2021-06-08 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes
US11119686B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Preservation of data during scaling of a geographically diverse data storage system
US11113146B2 (en) 2019-04-30 2021-09-07 EMC IP Holding Company LLC Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system
US11121727B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Adaptive data storing for data storage systems employing erasure coding
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11209996B2 (en) 2019-07-15 2021-12-28 EMC IP Holding Company LLC Mapped cluster stretching for increasing workload in a data storage system
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
US11228322B2 (en) 2019-09-13 2022-01-18 EMC IP Holding Company LLC Rebalancing in a geographically diverse storage system employing erasure coding
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11288139B2 (en) 2019-10-31 2022-03-29 EMC IP Holding Company LLC Two-step recovery employing erasure coding in a geographically diverse data storage system
US11119690B2 (en) 2019-10-31 2021-09-14 EMC IP Holding Company LLC Consolidation of protection sets in a geographically diverse data storage environment
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11144220B2 (en) 2019-12-24 2021-10-12 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes
US11231860B2 (en) 2020-01-17 2022-01-25 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage with high performance
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk storage system
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146588A (en) * 1990-11-26 1992-09-08 Storage Technology Corporation Redundancy accumulator for disk drive array memory
US5469566A (en) * 1992-03-12 1995-11-21 Emc Corporation Flexible parity generation circuit for intermittently generating a parity for a plurality of data channels in a redundant array of storage units
US5335235A (en) * 1992-07-07 1994-08-02 Digital Equipment Corporation FIFO based parity generator
US5522050A (en) * 1993-05-28 1996-05-28 International Business Machines Corporation Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
US5603051A (en) * 1995-06-06 1997-02-11 Hewlett-Packard Company Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus
US5729705A (en) * 1995-07-24 1998-03-17 Symbios Logic Inc. Method and apparatus for enhancing throughput of disk array data transfers in a controller
US5737744A (en) * 1995-10-13 1998-04-07 Compaq Computer Corporation Disk array controller for performing exclusive or operations
US5742752A (en) * 1995-12-29 1998-04-21 Symbios Logic Inc. Method for performing a RAID stripe write operation using a drive XOR command set
US6161165A (en) * 1996-11-14 2000-12-12 Emc Corporation High performance data path with XOR on the fly

Also Published As

Publication number Publication date
CN1222986A (zh) 1999-07-14
EP0927395A1 (de) 1999-07-07
KR20000065071A (ko) 2000-11-06
HK1020624A1 (en) 2000-05-12
WO1998038576A1 (en) 1998-09-03
ATE240551T1 (de) 2003-05-15
CN1242330C (zh) 2006-02-15
US5950225A (en) 1999-09-07
DE69814579D1 (de) 2003-06-18
EP0927395B1 (de) 2003-05-14
EP1310874A2 (de) 2003-05-14
JP2000514941A (ja) 2000-11-07
AU6671098A (en) 1998-09-18
EP1310874A3 (de) 2004-09-22
KR100352039B1 (ko) 2003-01-24

Similar Documents

Publication Publication Date Title
DE69814579T2 (de) Parallel arbeitende exklusiv-oder-einheit
DE60003273T2 (de) Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE69434473T2 (de) Prozessorschnittstellenchip für Doppelmikroprozessorsystem
DE69733076T2 (de) Hochleistungsdatenweg mit sofortigem xor
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE69919137T2 (de) Datenspeichersystem
DE2806024C2 (de)
DE3909896A1 (de) Vorrichtung und verfahren fuer den zugriff zu in einem seitenspeicher gespeicherten daten
DE2617408A1 (de) Datenverarbeitungsgeraet
DE10236179A1 (de) Speichersystem und Verfahren zur Verwendung desselben
DE1931966B2 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE69734551T2 (de) Verfahren und Gerät zur Erzeugung von Paritätsblöcken
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE19722803A1 (de) Schaltung zur Verschiebung von Daten zwischen entfernten Speichern und ein diese Schaltung enthaltender Rechner
DE19782017B4 (de) Verfahren und Computersystem zur Durchführung einer Burst-Leseoperation eines Bus-Masters aus einem Systemspeicher
DE3936339A1 (de) Controller fuer direkten speicherzugriff
DE3832758C2 (de) Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers
DE2902477A1 (de) Datenverarbeitungsanordnung
DE2611897A1 (de) Verfahren zur datenabrufsteuerung und dv-system zur durchfuehrung des verfahrens
EP0036148A1 (de) Hybrid-Assoziativspeicher
DE102015121128B4 (de) Verfahren und Vorrichtung zum beschleunigten Zugriff auf Signale eines programmierbaren Logikbausteins
DE2629311C2 (de)
DE4439809C2 (de) Virtuell indizierbarer Cache-Speicher
EP2728477A1 (de) Verfahren und Logikschaltung zum Kopieren von Daten, Speichervorrichtung und Datenverarbeitungsvorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition