DE69508034T2 - Fehlererkennungs-System und -Verfahren für gespiegelten Speicher zwischen doppelten Plattenspeichersteuerungen - Google Patents

Fehlererkennungs-System und -Verfahren für gespiegelten Speicher zwischen doppelten Plattenspeichersteuerungen

Info

Publication number
DE69508034T2
DE69508034T2 DE1995608034 DE69508034T DE69508034T2 DE 69508034 T2 DE69508034 T2 DE 69508034T2 DE 1995608034 DE1995608034 DE 1995608034 DE 69508034 T DE69508034 T DE 69508034T DE 69508034 T2 DE69508034 T2 DE 69508034T2
Authority
DE
Germany
Prior art keywords
data
error
memory
controller
disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1995608034
Other languages
English (en)
Other versions
DE69508034D1 (de
Inventor
Barry J. Oldfield
Mark D. Petersen
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE69508034D1 publication Critical patent/DE69508034D1/de
Application granted granted Critical
Publication of DE69508034T2 publication Critical patent/DE69508034T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • 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/109Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

  • Diese Erfindung bezieht sich im allgemeinen auf Speicherungssteuerungseinrichtungen für Computerplatten und insbesondere auf ein System zum Erfassen von Datenfehlern in einem gespiegelten Speicher eines Plattenspeicherungssystems mit zwei Steuerungseinrichtungen.
  • Hintergrund der Erfindung
  • Bei sehr zuverlässigen Computerplattenspeicherungssystemen besteht ein Bedarf danach, bei allen physischen Bestandteilen, die ein Teilsystem aufbauen, eine Redundanz zu besitzen, um bei einem Versagen eines Bestandteils die Möglichkeit für einen Datenverlust und die Ausfallzeit zu reduzieren. Die Verwendung von zwei Plattenspeicherungssteuerungseinrichtungen, die jeweils ihren eigenen Speicher aufweisen, liefert mehrere Hauptvorteile für ein Plattenspeicherungssystem. Beispielsweise wird (1) eine Redundanz der Speicherungsinformationen beibehalten, um für den Fall eines Versagens einer Steuerungseinrichtung oder eines Verlustes ihres Speichers eine Wiederherstellung zu ermöglichen; (2) eine Instandsetzung einer deaktivierten Steuerungseinrichtung ist aufgrund der Einspringfähigkeiten der zweiten Steuerungseinrichtung durchführbar; und (3) eine größere Systembetriebszeit wird dadurch erreicht, daß die zweite Steuerungseinrichtung verfügbar ist.
  • Mit dem Wunsch nach einer besseren Leistungsausbeute dieser redundanten Teilsysteme wurden Cache-Speicherfunktionen und die Verwendung eines Speichers als temporärer Speicher allgemein üblich. Die Einrichtungen, mittels der diese duplizierten physischen Speicher synchron gehalten werden, können kompliziert sein. Einige Plattensysteme verwenden einen la tenten (verzögerten oder massiven Aktualisierungs-) Prozeß, um diese Duplizierung zu erzeugen, wobei dieser Lösungsansatz jedoch einerseits dazu tendiert, zusätzlichen Aufwand zu erzeugen, und andererseits sehr komplex zu verwalten ist. Ein weiterer Lösungsansatz (d. h. derjenige, der bei dieser Erfindung verwendet wird) besteht darin, einen Echtzeitprozeß für einen gespiegelten Speicher zu bilden, um diese Datenduplizierung genau zu erzeugen und beizubehalten. Die Verwendung eines synchronisierten redundanten Echtzeitspeichers (gespiegelten Speichers) bei zwei Steuerungseinrichtungen kann für den Fall eines Einspringens einer Steuerungseinrichtung für die andere die Geschwindigkeit und die Genauigkeit verbessern.
  • Die Verwendung eines redundanten Speichers macht jedoch das Problem des Bereitstellens von Lösungen für mehrere Plattenspeicherungssteuerungseinrichtungen wesentlich schwieriger. Ein Beispiel der zu überwindenden, bedeutenden Probleme besteht darin, (1) wie Datenfehler in dem gespiegelten Speicher ohne Verlust der Verarbeitungsgeschwindigkeit wirksam und zuverlässig erfaßt werden können, und (2) wie die Quelle der Datenfehler, d. h. welche Seite des Spiegels die verfälschten Daten enthält, wirksam und zuverlässig identifiziert werden kann.
  • Unter der Voraussetzung der vorhergehenden Probleme, die einer Fehlererfassung in einem gespiegelten Speicher bei einem Plattenspeicherungssystem mit mehreren Steuerungseinrichtungen zugeordnet sind, und weiteren Problemen, die hierin nicht aufgegriffen wurden, wird im Stand der Technik im allgemeinen nicht die Verwendung eines gespiegelten Speichers zwischen den Steuerungseinrichtungen in einem System mit mehreren Steuerungseinrichtungen gelehrt.
  • Das US-Patent 5,005,174 offenbart ein fehlertolerantes Computersystem mit zwei Zonen, das ein erstes Verarbeitungssystem und ein zweites Verarbeitungssystem, das im wesentlichen mit dem ersten Verarbeitungssystem identisch ist, auf weist. Fehlererfassungsvorrichtungen sind mit einem ersten und einem zweiten Datenausgabeterminal des ersten und zweiten Verarbeitungssystems gekoppelt, um die Datenausgabe aus dem ersten Verarbeitungssystem mit der Datenausgabe aus dem zweiten Verarbeitungssystem zu vergleichen. Die Fehlererfassungsvorrichtungen identifizieren das Vorhandensein eines Fehlers, wenn sich die Datenausgabe aus dem ersten Verarbeitungssystem an dem ersten Ausgabeterminal von der Datenausgabe aus dem zweiten Verarbeitungssystem an dem zweiten Ausgabeterminal unterscheidet.
  • Dieses Dokument offenbart jedoch keine Einrichtung, die einer ausgewählten Einrichtung der Plattensteuerungseinrichtungen einen alleinigen Zugriff auf den Speicher der ausgewählten Plattensteuerungseinrichtung und gleichzeitig auf den Speicher von zumindest einer der weiteren Plattensteuerungseinrichtungen gewährt.
  • Demgemäß besteht die Aufgabe der vorliegenden Erfindung darin, ein wirksames und zuverlässiges System zur Datenfehlererfassung in einem gespiegelten Speicher für synchrone Echtzeitsteuerungseinrichtungen von gespiegelten Speichern in einem Plattenspeicherungssystem mit zwei Steuerungseinrichtungen zu schaffen.
  • Zusammenfassung der Erfindung
  • Gemäß den Prinzipien der vorliegenden Erfindung ist bei einem bevorzugten Ausführungsbeispiel ein Fehlererfassungssystem und -Verfahren zum zuverlässigen Erfassen von Speicherdatenfehlern in einem Plattenspeicherungssystem offenbart, das zwei Steuerungseinrichtungen und einen gespiegelten Speicher zwischen denselben aufweist, wie es in den unabhängigen Ansprüchen 1 bzw. 5 definiert ist. Das System und das Verfahren umfaßen eine Einrichtung zum Abrufen von ersten Daten aus dem Speicher einer der Steuereinrichtungen und zum im wesentlichen gleichzeitigen Abrufen von zweiten Daten aus der Adressenposition in dem gespiegelten Speicher der anderen Steuerungseinrichtung. Das System und Verfahren umfaßt ferner eine Einrichtung zum getrennten Erfassen eines Fehlers in den ersten und zweiten Daten und zum im wesentlichen gleichzeitigen Erfassen eines Fehlers in den ersten und zweiten Daten bezüglich einander.
  • Gemäß weiteren Prinzipien der vorliegenden Erfindung umfaßt die Einrichtung zum getrennten Erfassen eines Fehlers bei den ersten und zweiten Daten eine Einrichtung zum Verwenden einer ECC-Korrektur (ECC = Error Correcting Code = Fehlerkorrekturcode) bei den ersten bzw. zweiten Daten. Außerdem umfaßt die Einrichtung zum Erfassen eines Fehlers in den ersten und zweiten Daten bezüglich einander eine Einrichtung zum Vergleichen der ersten Daten mit den zweiten Daten zum Bestimmen, ob eine Übereinstimmung vorhanden ist.
  • Gemäß weiteren Prinzipien der vorliegenden Erfindung verwaltet eine Entscheidungseinrichtung die Gewährung eines Zugriffs auf den Speicher beider Steuerungseinrichtungen an eine der Steuerungseinrichtungen, um gleichzeitig beide Seiten des Spiegels zu lesen und die Daten auf Fehler zu überprüfen.
  • Weitere Aufgaben, Vorteile und Eigenschaften der vorliegenden Erfindung werden aus der folgenden Beschreibung offensichtlich.
  • Beschreibung der Zeichnungen
  • Fig. 1 ist ein Blockdiagramm, das einen Überblick des Systems der vorliegenden Erfindung zum Erfassen von Datenfehlern in einem System mit zwei Plattenspeicherungssteuerungseinrichtungen, das einen gespiegelten Speicher zwischen denselben aufweist, darstellt.
  • Fig. 2 ist ein detaillierteres schematisches Blockdiagramm der vorliegenden Erfindung.
  • Fig. 3 ist das schematische Blockdiagramm von Fig. 2, bei dem unidirektionale Kommunikations- und Datenübertragungswege zum Erfassen von Datenfehlern während des Lesen von einem gespiegelten Speicher gemäß den Prinzipien der vorliegenden Erfindung dargestellt sind.
  • Detaillierte Beschreibung der Erfindung
  • Fig. 1 ist ein Blockdiagramm, das einen Überblick des Systems der vorliegenden Erfindung zum Erfassen von Datenfehlern bei einem System 10 mit zwei Plattenspeicherungssteuerungseinrichtungen, das einen gespiegelten Speicher zwischen denselben aufweist, darstellt. Das Plattenspeicherungssteuerungssystem 10 umfaßt ein Plattenspeicherungsteilsystem 15 mit Plattenspeicherungsvorrichtungen 12 in demselben und zwei Plattenspeicherungssteuerungseinrichtungen 20 und 25. Die Steuerungseinrichtungen 20 und 25 weisen jeweils einen Speicher 30 bzw. 35 auf.
  • Obwohl meistens ein beliebiger Typ eines Speichers mit wahlfreiem Zugriff (RAM; RAM = Random Access Memory) für eine Verwendung als Speicher 30 und 35 geeignet ist, wird bei dem bevorzugten Ausführungsbeispiel ein nicht-flüchtiger RAM (oder ein flüchtiger RAM, der unter Verwendung einer Leistungsversorgungsabsicherung nicht-flüchtig gemacht wird) verwendet, um für den Fall eines Leistungsausfalls eine Aufrechterhaltung der Daten zu ermöglichen. Außerdem wird es offensichtlich, daß die hierin ausgedrückten und einbezogenen Prinzipien entsprechend auf eine Umgebung mit mehreren Steuerungseinrichtungen, d. h. mit mehr als zwei Steuerungseinrichtungen, anwendbar sind, obwohl lediglich zwei Steuerungseinrichtungen 20 und 25 in dem Diagramm dargestellt sind und im allgemeinen hierin erörtert werden.
  • Jeder Speicher 30 und 35 ist ein gespiegelter Speicher. Wie es im Stand der Technik bekannt ist, bedeutet "gespiegelter Speicher" einfach, daß Daten in einem Speicher in einem weiteren Speicher dupliziert oder "gespiegelt" werden. Entsprechend der vorliegenden Erfindung bedeutet gespiegelter Speicher, daß Daten in dem Speicher einer Steuerungseinrichtung in den Speicher der anderen Steuerungseinrichtung dupliziert oder "gespiegelt" werden. Das Vorhandensein von zwei Steuerungseinrichtungen und jeweils eines gespiegelten Speichers liefert eine fehlertolerante Umgebung für das Plattenspeicherungssystem 10. Für den Fall eines Ausfalls einer der Steuerungseinrichtungen oder eines der Speicher der Steuerungseinrichtungen liefert das Vorhandensein der anderen Steuerungseinrichtung und ihres gespiegelten Speichers eine nahtlose Einspringoption für eine ununterbrochene Verarbeitung. Das bedeutet in diesem Zusammenhang, daß eine Kommunikation zwischen den Steuerungseinrichtungen 20 und 25 auftritt, um eine kosteneffektive Echtzeitverbindung bereitzustellen, und um jeder Steuerungseinrichtung zu ermöglichen, den Zustand der Duplikatsteuerungseinrichtung zu überwachen und die Aktivitäten zu koordinieren.
  • Bei dem bevorzugten Ausführungsbeispiel ist der gespiegelte Speicher ein gespiegelter Echtzeitspeicher, d. h. ein einziger Mikroprozessorzugriff oder ein direkter Speicherzugriff aktualisiert die Daten in beiden Speichern 30 und 35 im wesentlichen gleichzeitig oder gewinnt die Daten aus beiden Speichern 30 und 35 im wesentlichen gleichzeitig wieder. Eine Entscheidungslogik 40 und 45 steuert, wann jeder Steuerungseinrichtung ein Zugriff gewährt wird, um die Daten aus dem Speicher zu aktualisieren oder wiederzugewinnen. Die Entscheidungslogikanordnungen 40 und 45 kommunizieren miteinander, so daß jede weiß, welche Steuerungseinrichtung gegenwärtig auf die Speicher zugreift.
  • Bei dem bevorzugten Ausführungsbeispiel erlaubt die Entscheidungslogik 40 und 45 lediglich einer Steuerungseinrich tung, zu einem Zeitpunkt auf die Speicher zuzugreifen. Wenn beispielsweise die Entscheidungslogik 40 der Steuerungseinrichtung 20 einen Zugriff auf den Speicher 30 gewährt, gewährt dieselbe der Steuerungseinrichtung 20 einen Zugriff auf den Speicher 35 der Steuerungseinrichtung 25, indem geeignete Signalleitungen aktiviert/deaktiviert werden. Dies ermöglicht es, daß die Steuerungseinrichtung 20 gleichzeitig auf beide Speicher zugreifen kann. Demgemäß verweigert die Entscheidungslogik 45 der Steuerungseinrichtung 25 einen Zugriff auf einen der Speicher, wenn die Entscheidungslogik 40 der Steuerungseinrichtung 20 einen Zugriff auf die Speicher 30 und 35 gewährt.
  • Unter der Voraussetzung, daß einer der Hauptzwecke einer Konfiguration mit zwei Steuerungseinrichtungen darin besteht, die Fähigkeit vorzusehen, daß im Falle eines Ausfalls sofort eine Steuerungseinrichtung für die andere Steuerungseinrichtung einspringt, ist es unbedingt erforderlich, daß die Speicherinhalte jeder Steuerungseinrichtung identisch sind, bevor ein Einspringen vorgenommen wird, so daß der Betrieb ununterbrochen fortgesetzt wird. Demgemäß richtet sich die vorliegende Erfindung auf eine Datenfehlererfassung während einer im wesentlichen gleichzeitigen Wiedergewinnung in Echtzeit von Daten aus beiden Speichern 30 und 35. Wenn eine Steuerungseinrichtung auf beide Speicher zugreift, werden entsprechend der Entscheidungslogik 40 und 45 erste Daten aus einem der Speicher 30 und 35 abgerufen, wobei gleichzeitig zweite Daten aus dem anderen der Speicher 30 und 35 abgerufen werden. Die ersten und zweiten Daten werden aus den gespiegelten Adressenpositionen in den Speichern 30 bzw. 35 wiedergewonnen. Die ersten und zweiten Daten können Einzel- oder Mehrfachdatenbits (Bytes) aufweisen.
  • Unmittelbar wenn die ersten und zweiten Daten abgerufen werden, werden dieselben durch eine Implementierung von Fehlerkorrekturcodes (ECC) 100 und 105 getrennt und unabhängig auf Fehler überprüft. Die ersten und zweiten Daten werden ferner im wesentlichen gleichzeitig miteinander verglichen, 90 und 95, um zu bestimmen, ob ein Fehler zwischen denselben aufgetreten ist. Für den Fall, daß kein Fehler erfaßt wird, wird der Zugriff normal fortgesetzt, wobei der Vergleichsprozeß keine Auswirkungen auf die Zugriffszeit aufweist, falls die Datenwerte übereinstimmen. Falls jedoch durch die EOC-Überprüfung oder die Vergleichsüberprüfung ein Fehler erfaßt worden ist, werden Signalleitungen (Bits) eingestellt, um einen Steuerungsprozessor von dem Fehler in Kenntnis zu setzen. Mit diesen drei getrennten Fehlerüberprüfungen kann die Fehlerquelle im allgemeinen bestimmt werden (es kann nämlich bestimmt werden, von welcher Seite des Spiegels die verfälschten Daten stammen). Demgemäß kann daraufhin eine geeignete Aktion vorgenommen werden, um auf den Fehler zu reagieren, wodurch die Zuverlässigkeit des Speichersystems erhöht wird.
  • Im folgenden wird nun auf Fig. 2 Bezug genommen. Dort ist ein detaillierteres schematisches Blockdiagramm des Systems der vorliegenden Erfindung dargestellt. Gleiche Komponenten zwischen den Fig. 1 und 2 behalten die gleichen Bezugszeichen bei. Demgemäß wird jede Steuerungseinrichtung 20 und 25 im allgemeinen wie in Fig. 1 bezeichnet, wobei jeder gespiegelte Speicher 30 und 35 als nicht-flüchtiger dynamischer Speicher mit wahlfreiem Zugriff (NVDRAM; NVDRAM = Non- Volatile Dymamic Random Access Memory) entsprechend dem bevorzugten Ausführungsbeispiel bezeichnet wird, wobei die Entscheidungslogik 40 und 45, die ECC-Schaltungsanordnung 100 und 105 und die Vergleichsschaltung 90 und 95 jeweils entsprechend wie in Fig. 1 bezeichnet werden. Zu Vereinfachungszwecken werden die NVDRAM-Steuerungseinrichtungen 50 und 55 hierin als DRAM-Steuerungseinrichtungen bezeichnet. Alle Richtungspfeile bezeichnen Kommunikations- und/oder Datenübertragungswege.
  • Jede Steuerungseinrichtung 20 und 25 weist ihr eigenes internes Taktsignal (nicht gezeigt) zum Verwalten ihrer jeweiligen Schaltungsanordnung als Ganzes auf. Wie im vorhergehenden bezugnehmend auf Fig. 1 erwähnt wurde, steuert die Entscheidungslogik 40 und 45, welcher Steuerungseinrichtung der Zugriff auf die Speicher 30 und 35 gewährt wird, und welcher Steuerungseinrichtung ein Zugriff auf dieselben verweigert wird. Die Entscheidungslogikanordnungen 40 und 45 kommunizieren jeweils miteinander, mit den DRAM-Steuerungseinrichtungen 50 und 55, den Puffern 60 und 65, den Steuerungssendeempfängern 70 und 75 und den Datensendeempfängern 80 und 85.
  • Wie im Stand der Technik üblich verwalten und erzeugen die DRAM-Steuerungseinrichtungen 50 und 55 Zeitgebungs- und Steuerlogiksignale, wie z. B. ein Zeilenadressenauswahlsignal (RAS; RAS = Row Address Select), ein Spaltenadressenauswahlsignal (CAS; CAS = Column Address Select), ein Schreibfreigabesignal (WE; WE = Write Enable), ein Ausgabefreigabesignal (OE; OE = Output Enable) usw., zum Zugreifen auf geeignete Adressen in dem DRAM 30 bzw. 35. Die Puffer 60 und 65 sind DRAM-Steuerungseinrichtungspuffer zum Aktivieren/Deaktivieren jeder DRAM-Steuerungseinrichtung 50 und 55 hinsichtlich des Zugreifens auf den DRAM 30 bzw. 35.
  • Die Steuerungssendeempfänger 70 und 75 sind bidirektionale Sendeempfangspuffer für die lokale Steuerungseinrichtung (d. h. für die Steuerungseinrichtung, in der sich der Sendeempfänger befindet), um (1) Adressensignale zu einer Rückebene 78 des Computersystems zu treiben, um auf den Speicher der anderen (entfernten) Steuerungseinrichtung zuzugreifen, oder um (2) Adressensignale von der entfernten Steuerungseinrichtung durch die Rückebene zu empfangen, um auf den Speicher der lokalen Steuerungseinrichtung zuzugreifen. Ebenfalls sind die Datensendeempfänger 80 und 85 bidirektionale Sendeempfangspuffer für eine lokale Steuerungseinrichtung, um (1) Datensignale zu der Rückebene 78 zu treiben, um dieselben zu der entfernten Steuerungseinrichtung zu senden, oder um (2) Datensignale von der entfernten Steuerungseinrichtung durch die Rückebene zu empfangen.
  • Die ECC-Logik 100 und 105 führt die gesamte ECC-Überprüfung und Korrektur bezüglich der jeweils aus den DRAM-Blöcken 30 und 35 ausgelesenen Daten durch. Die ECC-Logik erzeugt anfangs Überprüfungsbits (Check-Bits), die auf den in den DRAM geschiebenen Daten (Bits) basieren. Diese Überprüfungsbits werden mit den Datenbits in dem DRAM gespeichert, wenn der Schreibvorgang durchgeführt wird. Während der DRAM-Lesezugriffe werden die Überprüfungsbits mit den Daten (Bits) zurückgelesen und mit neu berechneten Überprüfungsbits verglichen (d. h., mit Überprüfungsbits, die aus den zurückgelesenen Daten neu berechnet wurden, im Vergleich zu den Überprüfungsbits, die gespeichert wurden, als die Daten anfänglich in den DRAM geschrieben wurden). Durch Vergleichen der gespeicherten Überprüfungsbits mit den neu berechneten Überprüfungsbits kann die ECC-Logik alle Einzelbitfehler erfassen und korrigieren und alle Zweibitfehler erfassen. Es ist nicht sichergestellt, daß alle Fehler aus mehr als zwei Bits erfaßt werden. Falls ein Fehler erfaßt wird, werden geeignete Signalleitungen (Bits) 110, 115, 120 und 125 eingestellt, um den Prozessor oder die Logik zu unterrichten, die diese Fehler verwalten (d. h. bei der gegenwärtigen Erfindung, die DRAM-Steuerungseinrichtungen 50 und 55).
  • Um die Datenzuverlässigkeit in Verbindung mit der ECC-Logik 100 und 105 weiter zu erhöhen, führen die Vergleichsschaltungsanordnungen 90 und 95 einen vollständigen Vergleich von ersten und zweiten aus den DRAM 30 bzw. 35 ausgelesenen Daten durch. Da Mehrfach-Bitfehler durch die ECC-Logik nicht erfaßt werden, wird die Vergleichsschaltung 90 und 95 verwendet, um zu bestimmen, ob die in jeder Steuerungseinrichtung gespeicherten Daten identisch sind. Im wesentlichen werden die ersten und zweiten Daten verglichen, um zu bestimmen, ob eine Übereinstimmung vorhanden ist (d. h. ob eine Spiegelung vorliegt) oder, ob eine Ungleichheit vorliegt, die einen Fehler in einem der Daten anzeigt. Durch miteinander Vergleichen der Daten werden alle Fehler einer beliebigen Anzahl von Bits erfaßt.
  • Einer der neuen Aspekte der vorliegenden Erfindung besteht darin, daß die ECC-Fehlererfassung in jeder Steuerungseinheit für die aus dieser Steuerungseinheit ausgelesenen Daten getrennt auftritt, wobei die selben, aus beiden Seiten des gespiegelten Speichers ausgelesenen Daten im wesentlichen gleichzeitig miteinander verglichen werden. Es sind keine zusätzlichen Taktzyklen für den Vergleich erforderlich, wobei die Gesamtzuverlässigkeit des Systems erhöht wird. Mit den gegebenen Fehlersignalbiteinstellungen kann im allgemeinen außerdem bestimmt werden, auf welcher Seite des Spiegels der Fehler aufgetreten ist.
  • Die Funktionsweise von Fig. 2 wird sehr gut durch ein erläuterndes Beispiel, wie es in Fig. 3 gezeigt ist, beschrieben. Fig. 3 stimmt mit Fig. 2 überein, mit der Ausnahme, daß die bidirektionalen Pfeile von Fig. 2 durch unidirektionale Pfeile in Fig. 3 ersetzt sind, die die tatsächlichen Kommunikations- und Datenübertragungsrichtungswege zum Erfassen von Datenfehlern während eines Lesevorgangs aus dem gespiegelten Speicher durch die Steuerungseinrichtung 20 darstellen.
  • Für den Fall, daß die Steuerungseinrichtung 20 einen Lesevorgang initiiert, aktiviert die DRAM-Steuerungseinrichtung 50 eine Anforderung an ihre eigene Entscheidungslogik 40. Die Entscheidungslogik 40 tritt daraufhin in einen Anforderungszustand ein und wartet darauf, daß die Entscheidungslogik 45 der Steuerung 25 in einen Slave-Zustand (Neben-Zustand) eintritt. Ein Anforderungszustand ist dann vorhanden, wenn die lokale Entscheidungslogik 40 (bei diesem Beispiel) darauf wartet, daß die entfernte Entscheidungslogik 45 der Steuerungseinrichtung 20 einen Zugriff auf den entfernten DRAM 35 gewährt. Ein Slave-Zustand ist dann vorhanden, wenn die Entscheidungslogik 45 den DRAM-Steuerungseinrichtungspuffer 65 (bei diesem Beispiel) deaktiviert, um der Steuerungseinrichtung 20 einen Zugriff auf den DRAM 35 zu gewähren.
  • Insbesondere wenn die DRAM-Steuerungseinrichtung 55 der Steuerungseinrichtung 25 ihren Zyklus für eine Verwendung des Speichers (entweder zum Lesen oder Schreiben) abschließt, entfernt dieselbe ihre eigene Anforderung an die Entscheidungslogik 45 und tritt in einem Slave-Zustand ein. Beim Eintreten in den Slave-Zustand deaktiviert die Entscheidungslogik 45 den DRAM-Steuerungseinrichtungspuffer 65, wie es durch die Tatsache dargestellt ist, daß kein Richtungspfeil aus dem Puffer 65 weitergeführt wird (bzw. von demselben weg zeigt). Die Entscheidungslogik 45 stellt ferner die Steuersendeempfänger 75 ein, um die Adressensignale von der Rückebene 78 zu dem DRAM 35 zu treiben, wie es durch Richtungspfeile 73 und 77 gezeigt ist, und stellt ferner Datensendeempfänger 85 ein, um Daten von dem DRAM 35 zu der Rückebene 78 zu treiben, wie es durch die Richtungspfeile 87 und 83 dargestellt ist.
  • Die Entscheidungslogik 40 bestätigt dies durch Eintreten in einen Hauptzustand (Master-Zustand), bei dem die Steuerungseinrichtung 20 auf beide Speicher 30 und 35 zugreifen kann. Die Entscheidungslogik 40 aktiviert ihren Steuerungseinrichtungspuffer 60 ihres lokalen DRAM, wie es durch den Richtungspfeil 62 gezeigt ist; stellt die Steuerungssendeempfänger 70 ein, um Daten von der Steuerungseinrichtung 20 zu der Rückebene 78 zu treiben, wie es durch den Richtungspfeil 73 dargestellt ist; und deaktiviert die Datensendeempfänger 80, wie es durch die Tatsache dargestellt ist, daß kein Richtungspfeil aus den Datensendeempfängern 80 weiterführt (bzw. von denselben weg zeigt).
  • Als nächstes führt die DRAM-Steuerungseinrichtung 50 einen DRAM-Lesezyklus durch, indem die Zeilenadressen- und OE-Signale angesteuert werden, um auf ihren eigenen DRAM 30 zuzugreifen, wie es durch einen Richtungspfeil 64 gezeigt ist, und indem dieselben über die Steuerungssendeempfänger 70 und 75 angesteuert werden, um auf den DRAM 35 der Steuerung 25 zuzugreifen, wie es durch Richtungspfeile 66, 73 und 77 gezeigt ist. Die Steuerungseinrichtung 50 aktiviert ihre eigene ECC-Logik 100, wobei die Steuerungseinrichtung 55 ihre eigene ECC-Logik 105 aktiviert, um die aus den jeweiligen DRAM-Arrays 30 und 35 ausgelesenen Daten geeignet zu überprüfen. Daraufhin wird das RAS-Signal aktiviert, die Spaltenadresse wird aktiviert, und das CAS-Signal wird ebenfalls aktiviert, um entsprechende erste Daten aus dem DRAM 30 (wie es durch einen Richtungspfeil 74 gezeigt ist) und im wesentlichen gleichzeitig zweite Daten aus dem DRAM 35 (wie es durch Richtungspfeile 87 und 83 gezeigt ist) auszulesen. Dieses Lesen von Daten aus dem DRAM 30 und 35 ist offensichtlich ein Abrufen von Daten aus gespiegelten Adressenpositionen, d. h., Adressenpositionen, die dieselben "gespiegelten" Daten enthalten.
  • Die ersten Daten werden für eine Überprüfung und Korrektur aus dem DRAM 30 ausgelesen und mittels der ECC-Logik 100 verarbeitet. Die zweiten Daten werden ebenfalls für eine Überprüfung und Korrektur aus dem DRAM 35 ausgelesen und mittels der ECC-Logik 105 verarbeitet. Die ECC-Überprüfung tritt in jedem Fall auf, indem die Überprüfungsbits, die den ausgelesenen Daten zugeordnet sind, gelesen werden. Die Überprüfungsbits wurden nämlich ursprünglich aus den Daten berechnet, als die Daten anfänglich in den DRAM geschrieben wurden, wobei diese Überprüfungsbits zusammen mit den Daten selbst in dem DRAM gespeichert wurden. Folglich werden während eines Lesezyklusses der Daten die gespeicherten Überprüfungsbits zurückgeschrieben und mit neu wiederberechneten Überprüfungsbits verglichen (d. h. mit Überprüfungsbits, die aus dem gegenwärtigen Auslesen der Daten erzeugt wurden). Falls eine Diskrepanz vorhanden ist, wird eine Korrektur (wenn möglich) durchgeführt, wobei ein geeignetes Fehlersignal (Statusbit) für eine nachfolgende Verarbeitung des Fehlers gelatcht wird. Falls beispielsweise ein korrigierbarer Fehler bei den ersten Daten in der ECC-Logik 100 erfaßt wurde, wird der Fehler korrigiert und eine Korrigierbar-Signalleitung 110 (Statusbit) eingestellt, um die geeignete Steuerlogik zu unterrichten. Falls andererseits ein nicht-korrigierbarer Fehler mit den zweiten Daten in der ECC-Logik 105 erfaßt wurde, wird eine Unkorrigierbar-Signalleitung 125 (Statusbit) eingestellt.
  • Im wesentlichen gleichzeitig mit der ECC-Überprüfung werden die zweiten Daten (zusammen mit deren Überprüfungsbits) von dem DRAM 35 durch den Datensendeempfänger 85 und die Rückebene 78 zu der Vergleichslogik 90 der Steuerungseinrichtung 20 weitergeleitet. Der Datensendeempfänger 80 wird deaktiviert, um eine Kollision der ersten aus dem DRAM 30 ausgelesenen Daten (zusammen mit deren Überprüfungsbits) mit den zweiten aus dem DRAM 35 ausgelesenen Daten zu vermeiden. Sowohl die ersten Daten aus dem DRAM 30 als auch die zweiten Daten aus dem DRAM 35 können zu der Vergleichslogik 90 der Steuerungseinrichtung 200 verlaufen. Die Vergleichslogik 90 vergleicht die ersten und zweiten Daten, um zu bestimmen, ob eine Übereinstimmung vorliegt. Falls eine Übereinstimmung vorhanden ist, wird die Verarbeitung normal fortgesetzt. Falls dagegen keine Übereinstimmung vorliegt, wird eine Ungleichheits-Signalleitung 130 (Statusbit) eingestellt, um die entsprechende Steuerlogik von dem Fehler zu unterrichten.
  • Zusammenfassend kann festgestellt werden, daß die ECC-Logikanordnungen 100 und 105 in jeweiligen lokalen Daten, die die Logikanordnung während eines Lesezyklusses durchlaufen, getrennt und unabhängig nach Datenfehlern suchen. Die Daten werden in der Vergleichslogik 90 (bei dem Beispiel in Fig. 3) im wesentlichen gleichzeitig verglichen, um Mehrfach-Bitfehler zu erfassen, die von der ECC-Logik 100 und 105 nicht erfaßbar sind. Während der Verarbeitung stellt jede ECC- und Vergleichsüberprüfung bei einer Erfassung eines Fehlers geeignete Statusbits ein. Am Ende des Lesezyklusses überprüft die DRAM-Steuerungseinrichtung 50 die Statusbits von der ECC- und Vergleichslogik, um zu erkennen, ob eine dieser Logikschaltungen einen Fehler gelatcht (zwischengespeichert) hat, und um den Fehler (falls vorhanden) geeignet zu verarbeiten.
  • Im vorhergehenden wurden die bevorzugten Ausführungsbeispie le für ein System und ein Verfahren zum Erfassen von Datenfehlern in zwei Plattenspeicherungssteuerungseinrichtungen mit einem gespiegelten Speicher zwischen denselben beschrieben. Es ist offensichtlich, daß die vorliegende Erfindung ein leistungsstarkes Hilfsmittel zum Erhöhen der Zuverlässigkeit in einem System mit zwei Steuerungseinrichtungen mit gespiegelten Speichern bietet. Außerdem wird es einem Fachmann auf diesem Gebiet offensichtlich, daß die vorliegende Erfindung ohne weiteres unter Verwendung einer beliebigen einer Vielzahl von Hardwareplattformen und Softwarehilfsmitteln, die auf diesem Gebiet vorhanden sind, implementiert werden kann. Obwohl die vorliegende Erfindung bezugnehmend auf spezifische Ausführungsbeispiele beschrieben worden ist, wird es offensichtlich, daß andere alternative Ausführungsbeispiele und Verfahren für eine Implementierung oder Modifizierung verwendet werden können, ohne von dem Schutzbereich der Erfindung, der durch die beigefügten Ansprüche definiert ist, abzuweichen.

Claims (8)

1. Ein Datenfehlererfassungssystem für ein Computerplattenspeicherungssteuerungssystem (10) mit einer Mehrzahl von Plattensteuerungseinrichtungen (20, 25), mit folgenden Merkmalen:
(a) einem Speicher (30, 35) in jeder der Mehrzahl von Plattensteuerungseinrichtungen (20, 25), wobei der Speicher (30, 35) jeder Plattensteuerungseinrichtung hinsichtlich jedes anderen Plattensteuerungseinrichtungsspeichers ein gespiegelter Speicher ist;
(b) einer Einrichtung (40, 45) zum Gewähren eines alleinigen Zugriffs auf den Speicher der ausgewählten Plattensteuerungseinrichtung und gleichzeitig auf den Speicher von zumindest einer der anderen Plattensteuerungseinrichtungen (20, 25) einer ausgewählten der Plattensteuerungseinrichtungen (20, 25);
(c) einer Einrichtung (80, 85) zum Abrufen von ersten Daten aus dem Speicher der ausgewählten der Plattensteuerungseinrichtungen (20, 25) und zum gleichzeitigen Abrufen von zweiten Daten aus dem Speicher der zumindest einen der anderen Plattensteuerungseinrichtungen (20, 25);
(d) einer Einrichtung (100, 105) zum getrennten Erfassen eines Fehlers in den ersten und zweiten Daten; und
(e) einer Einrichtung (90, 95) zum Erfassen eines Fehlers in den ersten und zweiten Daten bezüglich einander gleichzeitig mit dem getrennten Erfassen eines Fehlers in den ersten und zweiten Daten.
2. Das System gemäß Anspruch 1, bei dem die Einrichtung zum getrennten Erfassen eines Fehlers in den ersten und zweiten Daten eine Einrichtung zum Verwenden einer ECC-Korrektur (ECC = Error Correcting Code = Fehlerkorrekturcode) (100, 105) bei den ersten bzw. zweiten Daten umfaßt.
3. Das System gemäß Anspruch 1 oder 2, bei dem die Einrichtung zum Erfassen eines Fehlers in den ersten und zweiten Daten bezüglich einander eine Einrichtung zum Vergleichen (90, 95) der ersten Daten mit den zweiten Daten umfaßt, um zu bestimmen, ob eine Übereinstimmung vorliegt.
4. Das System gemäß einem der Ansprüche 1 bis 3, das ferner eine Einrichtung zum Signalisieren einer Fehlererfassung:
(a) basierend auf Vergleichsergebnissen (130, 135) aus einem Vergleich der ersten Daten mit den zweiten Daten; und
(b) basierend auf ECC-Ergebnissen (110, 115, 120, 125) jeweils getrennt aus den ersten und zweiten Daten aufweist.
5. Ein Verfahren zum Erfassen von Fehlern in einem Computerplattenspeicherungssteuerungssystem (10) mit einer Mehrzahl von Plattensteuerungseinrichtungen (20, 25), wobei jede Plattensteuerungseinrichtung einen gespiegelten Speicher bezüglich jeder anderen (30, 35) aufweist, wobei das Verfahren folgende Schritte aufweist:
(a) Gewähren eines alleinigen Zugriffs auf den Speicher der ausgewählten Plattensteuerungseinrichtung und gleichzeitig auf den Speicher von zumindest einer der anderen Plattensteuerungseinrichtungen einer ausgewählten der Plattensteuerungseinrichtungen (20, 25);
(b) Abrufen von ersten Daten aus dem Speicher der ausgewählten der Plattensteuerungseinrichtungen (20, 25) und gleichzeitiges Abrufen von zweiten Daten aus dem Speicher der einen der anderen Plattensteuerungseinrichtungen;
(c) getrenntes Erfassen (100, 105) eines Fehlers in den ersten und zweiten Daten; und
(d) Erfassen (90, 95) eines Fehlers in den ersten und zweiten Daten bezüglich einander gleichzeitig mit dem getrennten Erfassen eines Fehlers in den ersten und zweiten Daten.
6. Das Verfahren gemäß Anspruch 5, bei dem der Schritt des getrennten Erfassens eines Fehlers in den ersten und zweiten Daten ein Verwenden einer ECC-Korrektur (ECC = Error Correcting Code = Fehlerkorrekturcode) (100, 105) bei den ersten bzw. zweiten Daten umfaßt.
7. Das Verfahren gemäß Anspruch 5 oder 6, bei dem der Schritt des Erfassens eines Fehlers in den ersten und zweiten Daten bezüglich einander ein Vergleichen (90, 95) der ersten Daten mit den zweiten Daten umfaßt, um zu bestimmen, ob eine Übereinstimmung vorliegt.
8. Das Verfahren gemäß einem der Ansprüche 5 bis 7, das ferner den Schritt des Signalisierens einer Fehlererfassung aufweist, indem:
(a) ein Vergleichsfehler (130, 135) aus einem Vergleich der ersten Daten mit den zweiten Daten signalisiert wird; und
(b) ein ECC-Fehler (110, 115, 120, 125) getrennt jeweils aus den ersten und zweiten Daten signalisiert wird.
DE1995608034 1994-10-25 1995-07-11 Fehlererkennungs-System und -Verfahren für gespiegelten Speicher zwischen doppelten Plattenspeichersteuerungen Expired - Fee Related DE69508034T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US32955694A 1994-10-25 1994-10-25

Publications (2)

Publication Number Publication Date
DE69508034D1 DE69508034D1 (de) 1999-04-08
DE69508034T2 true DE69508034T2 (de) 1999-08-19

Family

ID=23285961

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1995608034 Expired - Fee Related DE69508034T2 (de) 1994-10-25 1995-07-11 Fehlererkennungs-System und -Verfahren für gespiegelten Speicher zwischen doppelten Plattenspeichersteuerungen

Country Status (3)

Country Link
EP (1) EP0709782B1 (de)
JP (1) JP3748117B2 (de)
DE (1) DE69508034T2 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4748871B2 (ja) * 2001-03-28 2011-08-17 日本信号株式会社 ワンチップマイクロコントローラシステム
US6938124B2 (en) 2002-07-19 2005-08-30 Hewlett-Packard Development Company, L.P. Hardware assisted communication between processors
US7594135B2 (en) 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
JP4667093B2 (ja) * 2005-03-17 2011-04-06 富士通株式会社 二重化記憶装置及び二重化記憶装置の制御方法
US7873803B2 (en) * 2007-09-25 2011-01-18 Sandisk Corporation Nonvolatile memory with self recovery
WO2009153623A1 (en) * 2008-06-20 2009-12-23 Freescale Semiconductor, Inc. Memory system with redundant data storage and error correction
EP2294581B1 (de) 2008-06-20 2013-01-09 Freescale Semiconductor, Inc. System zum verteilen eines verfügbaren speicherbetriebsmittels
US8634240B2 (en) 2009-10-28 2014-01-21 SanDisk Technologies, Inc. Non-volatile memory and method with accelerated post-write read to manage errors
US20130031431A1 (en) * 2011-07-28 2013-01-31 Eran Sharon Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US8566671B1 (en) 2012-06-29 2013-10-22 Sandisk Technologies Inc. Configurable accelerated post-write read to manage errors
US20140052906A1 (en) * 2012-08-17 2014-02-20 Rambus Inc. Memory controller responsive to latency-sensitive applications and mixed-granularity access requests
US9213601B2 (en) 2013-12-03 2015-12-15 Sandisk Technologies Inc. Adaptive data re-compaction after post-write read verification operations

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0306211A3 (de) * 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronisiertes Doppelrechnersystem
GB8815239D0 (en) * 1988-06-27 1988-08-03 Wisdom Systems Ltd Memory error protection system
CA2097762A1 (en) * 1992-06-05 1993-12-06 Dennis J. Alexander Disk drive controller with a posted write cache memory

Also Published As

Publication number Publication date
EP0709782B1 (de) 1999-03-03
EP0709782A3 (de) 1996-06-12
DE69508034D1 (de) 1999-04-08
JP3748117B2 (ja) 2006-02-22
JPH08234922A (ja) 1996-09-13
EP0709782A2 (de) 1996-05-01

Similar Documents

Publication Publication Date Title
DE69608641T2 (de) Ausfallbeseitigung für Steuergerät für eine Ein-/Ausgabevorrichtung
DE69523124T2 (de) Fehlererkennungssystem für einen gespiegelten Speicher in einer duplizierten Steuerung eines Plattenspeicherungssystems
DE69910320T2 (de) Technik für Einzelfehlerkorrektur im Cachespeicher mit Subblock-Paritätenbits
DE3855031T2 (de) Kopiesystem mit "Hot-standby"-Speicher
DE3587493T2 (de) Betriebssicheres Datenverarbeitungsbussystem.
DE60016371T2 (de) Vorrichtung und verfahren um die übereinstimmung der daten in einer gruppe von einspiegelungseinrichtungen gespeichert zu behalten
DE2806024C2 (de)
DE3382592T2 (de) Zweifachbusstruktur fuer die rechnerverbindung.
DE69029479T2 (de) Hochleistungsspeichersystem
DE3485820T2 (de) Doppelspeichersystem mit reservestromversorgung.
DE3111447C2 (de)
DE3876459T2 (de) Speicher und deren pruefung.
DE69508034T2 (de) Fehlererkennungs-System und -Verfahren für gespiegelten Speicher zwischen doppelten Plattenspeichersteuerungen
DE69026346T2 (de) Technik zum Informationsschutz für fehlertolerante redundante Informationsspeichereinrichtungen
EP0922254B1 (de) Fehlererkennung in einem speichersystem
DE2430464A1 (de) Einrichtung zur fehlergesicherten datenuebertragung
DE69126057T2 (de) Ein Informationsverarbeitungsgerät mit einer Fehlerprüf- und Korrekturschaltung
DE69930307T2 (de) Datenspeichersystem
DE19900245A1 (de) Vorrichtung und Verfahren zum Senden und Empfangen von USB-Isochrondaten
DE4423949A1 (de) E/A-Hilfssystem und Exklusiv-Steuerverfahren, Datenspeicherverfahren und Speicherinitialisierungsverfahren in einem E/A-Hilfssystem
DE69624191T2 (de) Atomisches Aktualisieren von EDC-geschützten Daten
DE102006047656A1 (de) Speichersteuerung
DE112012005617T5 (de) Speicherung von Daten in Speichermodulpuffern
DE1549468A1 (de) Speicheranordnung fuer ein programmgesteuertes Datenverarbeitungssystem
DE112007003015T5 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE),

8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8339 Ceased/non-payment of the annual fee