[go: up one dir, main page]

DE69927325T2 - Automatisierte Steuerung der Stossbetriebdatenübertragung über einer Nachrichtenverbindung zwischen Einheiten im Blockmodusbetrieb - Google Patents

Automatisierte Steuerung der Stossbetriebdatenübertragung über einer Nachrichtenverbindung zwischen Einheiten im Blockmodusbetrieb Download PDF

Info

Publication number
DE69927325T2
DE69927325T2 DE69927325T DE69927325T DE69927325T2 DE 69927325 T2 DE69927325 T2 DE 69927325T2 DE 69927325 T DE69927325 T DE 69927325T DE 69927325 T DE69927325 T DE 69927325T DE 69927325 T2 DE69927325 T2 DE 69927325T2
Authority
DE
Germany
Prior art keywords
value
register
interface adapter
bus
data
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
DE69927325T
Other languages
English (en)
Other versions
DE69927325D1 (de
Inventor
Mark J. Simms
R. Alexis Takasugi
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 Development Co LP
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 Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE69927325D1 publication Critical patent/DE69927325D1/de
Application granted granted Critical
Publication of DE69927325T2 publication Critical patent/DE69927325T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)

Description

  • Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf Burst-Modus-Übertragungen über eine Kommunikationsverbindung zwischen Vorrichtungen, die in einem Blockmodus arbeiten, und insbesondere auf ein Verfahren zum Steuern und Automatisieren solcher Übertragungen.
  • Hintergrund der Erfindung
  • Wenig Personen hatten eine größere Auswirkung auf die Personalcomputerindustrie als Alan Shugart. Allgemein geachtet für das Erfinden des Diskettenlaufwerks während er für IBM in den späten 1960ern arbeitete, gründete er später Shugart Associates zum Zweck des Entwickelns und Herstellens von Disketten. 1974, kurz nach dem Verlassen des Unternehmens von Mr. Shugart, brachte Shugart Associates das 5¼-Zoll-Minidiskettenlaufwerk auf den Markt, das schnell die früheren 8-Zoll-Diskettenlaufwerke verdrängte und schließlich zum Standarddiskettenlaufwerk für die früheren PCs wurde. Die Diskettenschnittstelle, entwickelt von Shugart Associates, wurde von IBM in dem Original-IBM-PC verwendet und ist immer noch die Basis aller PC-Diskettenlaufwerk-Schnittstellen. 1979 gründeten Shugart und Finis Conner die Seagate Technology. Am Ende des Jahres hatte Seagate das 5-Megabyte-ST-506-Laufwerk vorgestellt, das nun als Mutter aller PC-Festplattenlaufwerke gehandelt wird. Dies wurde gefolgt von dem 10-Megabyte-ST-412-Laufwerk, das IBM für den Original-XT-Personalcomputer übernahm. Die STJ-506/412-Schnittstelle, entwickelt von Seagate, war de facto der Festplattenschnittstellenstandard für viele Jahre und diente als die Basis auch für ESDI- und IDE-Schnittstellen.
  • Obwohl Alan Shugart und die Unternehmen, die er gegründet hat, bekannt sind für Festplatteninnovation, ist es weniger bekannt, dass die Small Computer Systems Interface (SCSI; Klein-Computer-System-Schnittstelle) von Shugart Associates erzeugt wurde. Ursprünglich genannt die Shugart Associates System Interface (SASI) erhielt sie ihren gegenwärtigen Namen, als sie 1986 formell durch das ANSI-Komitee genehmigt wurde. Ein überarbeiteter SCSI-2-Standard wurde von dem selben Komitee 1994 genehmigt, und eine noch neuere Überarbeitung, genannt SCSI-3 wird gegenwärtig entwickelt. Die SCSI-Schnittstelle ist keine Vorrichtungsebenenschnittstelle, sondern eine Systemebenenschnittstelle. Der SCSI-Standard definiert die physischen und elektrischen Parameter eines Parallel-I/O-Busses, der zum Verbinden von Computern und Peripheriegeräten auf Daisy-Chain-Weise verwendet wird. Der Standard unterstützt Vorrichtungen, wie z. B. Festplattenlaufwerke, Bandlaufwerke, ZIP-Laufwerke, CD-ROM-Laufwerke, Graphikscanner und andere Peripheriegeräte. Der Original-SCSI-Bus-Standard unterstützt bis zu acht physische Vorrichtungen, die üblicherweise SCSI IDs genannt werden. Der neuere SCSI-2-Bus-Standard andererseits unterstützt bis zu sechzehn Vorrichtungen. Für jeden Standard funktioniert ein Host-Adapter, der als eine der physischen Vorrichtungen zählt, als der Gateway zwischen dem SCSI-Bus und dem Personalcomputersystembus. Der SCSI-Bus selbst spricht nicht direkt mit den Vorrichtungen, die mit demselben verbunden sind, sondern kommuniziert statt dessen mit einer Steuerung, die an der Vorderseite jeder Vorrichtung ist. Der Host-Adapter ist entweder in den Systembus eingesteckt oder integriert. Die meisten Personalcomputersysteme unterstützen bis zu vier Host-Adapter, wobei jeder derselben unter dem Original-SCSI-Standard mit insgesamt sieben Peripheriegeräten verbunden sein kann, für insgesamt 28 Peripheriegeräte. Für SCSI-2-Implementierungen können insgesamt 4 × 15 oder 60 Peripheriegeräte mit dem Systembus gekoppelt sein.
  • Dadurch, dass keine Erweiterungsschlitze in den frühen Macintosh-Computern vorgesehen waren, behielt der Apple-Computer die Gesamtsteuerung über System-Konfiguration, -Architektur und -Upgrades. Folglich ignorierten die meisten Unternehmen die Angebote von Apple. Als kostengünstige Weise aus dieser Bindung fügte Apple eine Erweiterbarkeit zu seinem geschlossenen Macintosh-System hinzu, durch Einlagern eines SCSI-Tors in das Mac-Plus-System. Peripheriegeräte konnten dann schnittstellenmäßig mit den schlitzlosen Macs verbunden werden.
  • SCSI holte langsam auf in der Welt von IBM und IBM-kompatiblen PCs, da diese Systeme immer erweiterbar waren. Mit acht Busschlitzen, die unterschiedliche Vorrichtungen und Steuerungen unterstützen, schien es, dass SCSI nicht benötigt wurde. Aufgrund der großen Erweiterbarkeit jedoch, die SCSI bietet, und aufgrund der Verfügbarkeit von Hunderten von Vorrichtungen mit eingebauten SCSI-Steuerungen, hat sie schnell Popularität in diesem Bereich erlangt. Der primäre Vorteil einer Erweiterung über SCSI in einem PC-System ist die Fähigkeit, eine Reihe von Peripheriegeräten von einer einzelnen Adapterkarte zu verketten, wodurch Kartenschlitze innerhalb des PCs gespart werden und die Ausbreitung von IRQs, DMAs und I/O-Speicheradressen eingeschränkt wird.
  • Ein Problem mit dem Original-SCSI-1-Standard war, dass viele der Befehle und Merkmale optional waren. Somit bestand keine Garantie, dass ein bestimmtes Peripheriegerät die erwarteten Befehle unterstützen würde. Als Ergebnis dieses Problems definiert der SCSI-2-Standard einen Satz von 18 Basis-SCSI-Befehlen, genannt der Common Command Set (CCS; allgemeiner Befehlssatz), die zu dem Minimalsatz von Befehlen wurden, die durch alle Peripheriegeräte unterstützt werden. Zusätzlich zu einer formalen Unterstützung für CCS, lieferte SCSI-2 zusätzliche Definitionen für Befehle zum Zugreifen auf CD-ROM-Laufwerke (und ihre Audio-Fähigkeiten), Bandlaufwerke, entfernbare Laufwerke, Optik- Laufwerke und verschiedene andere Peripheriegeräte. Zusätzlich dazu wurde eine optionale höhere Geschwindigkeit, genannt Fast SCSI-2 und eine 16-Bit-Version, genannt Wide SCSI-2 definiert. Ein anderes Merkmal von SCSI-2 ist Command Queuing (Befehls-Warteschlangenbildung), das ermöglicht, dass eine Vorrichtung mehrere Befehle annimmt und dieselben in der Reihenfolge ausführt, die die Vorrichtung als am effizientesten ansieht. Dieses Merkmal ist am vorteilhaftesten für Multi-Tasking-Betriebssysteme, die mehrere Anforderungen auf dem SCSI-Bus gleichzeitig senden können.
  • Jede Datenübertragung auf einem SCSI-Bus wird nach Paritätsfehlern geprüft. Somit umfasst ein 8-Bit-SCSI-Bus ein neuntes Paritätsbit, während ein 16-Bit-SCSI-Bus zusätzliche zwei Paritätsbits umfasst. Zusätzlich zu den neun oder achtzehn Datensignalleitungen umfasst ein SCSI-Bus ferner mehrere Leitungen für Masse, eine für Abschlussleistung und eine Leitung jeweils für die Signale ATN, BSY, ACK, RST, MSG, SEL, C/D, REQ und I/O. Da mehrere physische Vorrichtungen den SCSI-Bus gleichzeitig verwenden können, werden Daten in Bursts bzw. Stößen übertragen, so dass der Kommunikationsweg effizienter verwendet werden kann. Eine maximale Burst-Länge ist definiert. Nicht alle Datenübertragungen sind jedoch Mehrfache der Burst-Länge. Das heißt, eine gesamte Datenübertragung kann weniger sein als die Burst-Länge oder kann zwischen Mehrfache der Burst-Länge fallen. Ursprünglich, wenn eine Datenübertragung über den SCSI-Bus eine Paritätsprüfung nicht bestanden hat, wurde eine Fehlermeldung erzeugt, die anzeigt, dass die Datenübertragung fehlgeschlagen ist. Abhängig von dem Betriebssystem würde eine solche Situation bestenfalls eine Wiederholung der Operation erfordern, für die die Datenübertagung fehlgeschlagen war, oder im schlechtesten Fall zu einem Systemzusammenbruch führen, was ein Neu-Booten mit Datenverlust erfordert. Um solche Ergebnisse zu vermeiden, werden Datenübertragungen über SCSI-Busse jetzt allgemein durch Software-Routinen verwaltet, die die Anzahl von Bursts bei jeder Übertragung, die Größe von Weniger-Als-Voll-Bursts oder die Füllung von unvollständigen Bursts mit Füllbytes, die Anzahl von Bursts, die erfolgreich übertragen wurden und das erneute Senden von Bursts, die mit Paritätsfehlern empfangen wurden, verfolgen. Obwohl sie relativ erfolgreich sind beim Glätten der Datenübertragung auf dem SCSI-Bus, erfordern diese Softwareroutinen einen Systemmehraufwand, zusätzlich dazu, dass sie eine Datenübertragungsgeschwindigkeit über den SCSI-Bus reduzieren.
  • Was benötigt wird, ist eine Hardware-Implementierung zum Verwalten von Burst-Übertragungen über dem SCSI-Bus. Hardware-verwaltete Übertragungen haben das Potential zum bedeutenden Verbessern der Datenübertragungs-Effizienz und -Geschwindigkeit.
  • Das Patent AU-B-652371 offenbart eine Burst-Modus-Datenübertragungsschaltung, durch die die Größe des nächsten zu übertragenden Bursts berechnet wird.
  • Zusammenfassung der Erfindung
  • Die Erfindung schafft eine automatisierte Hardware-Steuerung von Burst-Modus-Übertragungen auf einem SCSI-Bus zwischen einem Hostbus-Adapter und einem Vorrichtungsserver mit einem Vorrichtungsschnittstellen-Adapter, der die Erfindung einlagert. Die Erfindung beseitigt den Bedarf nach einer Softwaresteuerung solcher Übertragungen, wodurch die Übertragungsgeschwindigkeit verbessert wird. Für ein bevorzugtes Ausführungsbeispiel der Erfindung ist der Vorrichtungsschnittstellen-Adapter mit drei Datenregistern, einem Komparator, einem Subtrahierer und einer getakteten Steuerlogik ausgerüstet. Die Steuerlogik, die vorzugsweise in eine anwendungsspezifische integrierte Schaltung (ASIC) eingelagert ist, kann eine Zustandsmaschine umfassen. Die Steuerlogik steuert nicht nur die Zeitgebung von Logikoperationen an Bord bei dem Vorrichtungsschnittstellen-Adapter, sondern auch die Datenübertragung zwischen dem Vorrichtungsserver und dem Hostschnittstellen-Adapter über den SCSI-Bus. Das erste Datenregister enthält einen Wert, der der Anzahl von Bytes entspricht, die bei der Übertragung verbleiben. Am Anfang der Übertragung entspricht der gespeicherte Wert der Gesamtanzahl von Datenbytes, die übertragen werden sollen. Das zweite Datenregister enthält einen Wert, der der maximal. möglichen Anzahl von Bytes bei einem Burst entspricht. Das dritte Datenregister enthält einen Wert, der der tatsächlichen Anzahl von Bytes entspricht, die bei dem nächsten Burst übertragen werden sollen.
  • Wenn eine Übertragung von dem Vorrichtungsschnittstellen-Adapter durch den Hostbus-Adapter angefordert wird, werden ein erstes und zweites Register mit Werten beladen, die der Länge der Übertragung bzw. der maximalen Burstlänge entsprechen. Das anfängliche Laden des ersten und zweiten Registers kann gehandhabt werden durch die ASIC, wenn eine solche Funktionalität in derselben eingelagert ist, oder kann gehandhabt werden durch einen optionalen Mikroprozessor an Bord bei dem Vorrichtungsschnittstellen-Adapter, der getrennt von der ASIC ist. Sobald das erste und zweite Register beladen sind, orchestriert die Steuerlogik die nachfolgende Verarbeitungssequenz ohne weitere Eingabe von dem Mikroprozessor (falls entsprechend ausgerüstet). Der Komparator vergleicht die Werte, die in dem ersten und zweiten Register gespeichert sind, und bestimmt, welcher der zwei Werte kleiner ist, und gibt den kleineren Wert, der die tatsächliche Burst-Länge ist, in das dritte Register aus. Der Subtrahierer dekrementiert dann den Wert in dem ersten Register um den Wert, der in dem dritten Register gespeichert ist. Der dekrementierte Wert stellt die Bytes dar, die bei der Übertragung verbleiben. Die Steuerlogik initiiert dann eine Übertragung eines Bursts der Länge, die durch das dritte Register spezifiziert wird, zwischen dem Vorrichtungsserver und dem Hostbus-Adapter. Sobald der Burst erfolgreich übertragen wurde, prüft die Steuerlogik, um zu sehen, ob der Wert, der in dem ersten Register gespeichert ist, Null ist. Wenn er Null ist, ist die Übertragung vollständig und die Routine wird abgeschlossen. Wenn er nicht Null ist, verursacht die Steuerlogik, dass die Sequenz wiederholt wird, bis der Wert, der in das erste Datenregister geladen wird, Null ist. Wenn ein Fehler während der Übertragung eines Bursts auftritt, kann dieser Burst wiederholt werden unter Verwendung des Werts, der in dem dritten Datenregister gespeichert ist. Alle anderen Aspekte von Datenübertragungen auf dem SCSI-Bus, wie z. B. Handshaking, werden durch das Protokoll des SCSI-Busses gehandhabt. Eine automatisierte Steuerung von Burst-Übertragungen ist nur möglich zwischen dem Host-Bus-Adapter und Vorrichtungen, die einen Vorrichtungsschnittstellen-Adapter aufweisen, der die Erfindung einlagert. Die Steuerung von Burst-Modus-Datenübertragungen zwischen dem Host-Adapter und jeglicher anderen Vorrichtung auf dem selben SCSI-Bus, deren Schnittstellen-Adapter die Erfindung nicht einlagert, werden gehandhabt gemäß dem Steuerverfahren, das durch diesen bestimmten Vorrichtungsschnittstellen-Adapter implementiert wird.
  • Als ein alternatives, wenn auch etwas langsameres Ausführungsbeispiel ersetzt ein Mikroprozessor die gesamte oder einen Abschnitt der spezialisierten Steuerlogik. Der Mikroprozessor und sein zugeordneter Takt können die Zeitgebung von Logikoperationen an Bord des Vorrichtungsschnittstellen-Adapters, die Übertragung von Daten zwischen dem Vorrichtungsserver und dem Hostschnittstellen-Adapter über den SCSI-Bus, das anfängliche Laden des ersten und zweiten Registers steuern und können, falls erwünscht, sogar den Komparator und Subtrahierer ersetzen. Der grundlegende Prozess bleibt der gleiche. Aufgrund des nicht-spezialisierten Wesens eines Mikroprozessors jedoch ist eine größere Anzahl von Taktzyklen erforderlich, um dieselben Aufgaben auszuführen, wodurch die Übertragungsgeschwindigkeit verlangsamt wird.
  • Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm eines ersten Ausführungsbeispiels eines SCSI-Busses mit einem Hostbus-Adapter und einem Vorrichtung-1-Schnittstellen-Adapter, der die Erfindung einlagert; und
  • 2 ist ein Blockdiagramm des Vorrichtung-l-Schnittstellen-Adapters aus 1, der die Erfindung einlagert;
  • 3 ist ein Blockdiagramm eines zweiten Ausführungsbeispiels eines SCSI-Busses, der einen Hostbus-Adapter und einen Vorrichtung-1-Schnittstellen-Adapter aufweist, der die Erfindung einlagert; und
  • 4 ist ein Logikdiagramm des Prozesses zum Steuern von Burst-Übertragungen.
  • Detaillierte Beschreibung der Erfindung
  • Wie hierin vorangehend angegeben wurde, ist es der primäre Vorteil des SCSI-Busses, dass er die Hinzufügung von bis zu sieben oder fünfzehn Peripheriegeräten (abhängig davon, ob der Bus SCSI-1 oder SCSI-2 ist) unter Verwendung eines einzelnen Hostbus-Adapters ermöglicht, der als das Gateway zu dem Host-Computersystem dient. In der echten Welt führt der Mangel an vorherrschenden Standards dazu, dass mehrere Vorrichtungen schnittstellenmäßig mit einem Hostsystem über dessen eigene spezialisierte Hostbus-Adapterkarte schnittstellenmäßig verbunden werden, die in den Systembus eingesteckt wird. Da jede Hostbus-Adapterkarte ihre eigene Systeminterruptzuordnung (IRQ-Zuordnung; IRQ = interrupt request = Unterbrechungsanforderung) erfordert, geht einer der primären Vorteile der Verwendung des SCSI-Busses verloren. Diese Situation ändert sich schrittweise, da dominante Unternehmen in der PC-Industrie Standards setzen, denen kleinere Unternehmen schließlich folgen. Gegenwärtig jedoch beeinflusst der Mangel an Standards die Implementierung der vorliegenden Erfindung. Allgemein ausgedrückt wird die Steuerung von Burst-Modus-Übertragungen auf der Vorrichtungsebene implementiert. Das heißt, dass eine Burst-Modus-Übertragungssteuerung verwaltet wird durch den Vorrichtungsschnittstellen-Adapter, der einer bestimmten Vorrichtung zugeordnet ist. Die vorliegende Erfindung schafft eine automatisierte Hardwaresteuerung von Burst-Modus-Übertragungen auf einem SCSI-Bus zwischen einem Hostbus-Adapter und einem Vorrichtungsserver mit einem Vorrichtungsschnittstellen-Adapter, der die Erfindung einlagert. Die Erfindung beseitigt den Bedarf nach einer Softwaresteuerung solcher Übertragungen, wodurch die Übertragungsgeschwindigkeit verbessert wird.
  • Bezug nehmend nun auf 1 wird ein erstes Peripheriegerät 101 mit einem Vorrichtungsserver 102 und ein zweites Peripheriegerät 103 mit einem Vorrichtungsserver 104 mit einem SCSI-Bus 105 über einen ersten Vorrichtungsschnittstellen-Adapter 106 bzw. einen zweiten Vorrichtungsschnittstellen-Adapter 107 gekoppelt. Der SCSI-Bus 105 ist schnittstellenmäßig mit einem Hostcomputersystembus 108 über einen Hostbus-Adapter 109 gekoppelt. Das erste und zweite Peripheriegerät 101 bzw. 103 kann einer beliebigen einer Anzahl von Vorrichtungen zugeordnet sein, wie z. B. einem Festplattenlaufwerk, einem Bandlaufwerk, einem ZIP-Laufwerk, einem CD-ROM-Laufwerk, einem Graphikscanner oder einer anderen Vorrichtung, die einen Vorrichtungsschnittstellen-Adapter aufweist, der entworfen ist, um mit dem Hostbus-Adapter 109 zu funktionieren. Die Gesamtanzahl von Peripheriegeräten, die schnittstellenmäßig mit dem Hostcomputersystembus 108 über den Hostbus-Adapter 109 verbunden sein können, hängt von der SCSI-Version ab. Ein Bus-Abschlusselement 110 verhindert ungewollte Signalreflexionen am Ende des SCSI-Busses 105, nachdem letzten Peripheriegerät, das an dem SCSI-Bus 105 installiert ist. Der erste Vorrichtungsschnittstellen-Adapter 106, der ein bevorzugtes Ausführungsbeispiel der Erfindung einlagert, ist detaillierter in 2 offenbart.
  • Bezug nehmend nun auf 2 lagert der erste Vorrichtungsschnittstellen-Adapter 106 ein erstes Datenregister 201, ein zweites Datenregister 202, ein drittes Datenregister 203, einen Komparator 204, einen Subtrahierer 205, eine getaktete Steuerlogik 206, einen Mikroprozessor 207 und einen programmierbaren Nur-Lese-Speicher (PROM; PROM = programmable read-only memory) 208 ein. Die Steuerlogik 206, die vorzugsweise in einer anwendungsspezifischen integrierten Schaltung (ASIC; ASIC = application-specific integrated circuit) eingelagert ist, kann eine Zustandsmaschine umfassen. Die Steuerlogik 206 steuert nicht nur die Zeitgebung von Logikoperationen an Bord des Vorrichtungsschnittstellen-Adapters 106, sondern auch die Übertragung von Daten zwischen dem ersten Vorrichtungsserver 102 und dem Hostschnittstellen-Adapter 109 (siehe 1) über den SCSI-Bus 105. Das erste Datenregister 201 enthält einen Wert, der der Anzahl von Bytes entspricht, die bei der Übertragung verbleiben. Die Größe der Übertragung kann jegliche Anzahl von Bytes lang sein, und kann kleiner als, größer als oder gleich zu der Größe einer Aufzeichnung sein (definiert durch das Host-Computersystem). Auf dieser Ebene der Systemoperation werden Übertragungen ohne Rücksicht auf Aufzeichnungsgröße durchgeführt. Am Beginn der Übertragung entspricht der Wert, der in dem ersten Datenregister 201 gespeichert ist, der Gesamtanzahl von Datenbytes, die übertragen werden sollen. Das zweite Datenregister 202 enthält einen Wert, der der maximal möglichen Anzahl von Bytes bei einem Burst entspricht. Das dritte Datenregister 203 enthält einen Wert, der der tatsächlichen Anzahl von Bytes entspricht, die bei dem nächsten Burst zwischen dem Vorrichtungsserver 102 und dem Hostbus-Adapter 109 übertragen werden sollen (siehe 1).
  • Weiterhin Bezug nehmend auf 2, wenn eine Übertragung von dem Vorrichtungsschnittstellen-Adapter 106 durch den Hostbus-Adapter 109 angefordert wird, werden das erste Datenregister 201 und das zweite Datenregister 202 mit Werten beladen, die der Übertragungslänge bzw. der maximalen Burstlänge entsprechen. Das anfängliche Beladen des ersten und zweiten Datenregisters kann gehandhabt werden durch die Steuerlogik 206, wenn eine solche Funktionalität in derselben eingelagert ist, oder kann gehandhabt werden durch einen optionalen Mikroprozessor 207 an Bord des Vorrichtungsschnittstellen-Adapters 106, der getrennt von der Steuerlogik 206 ist. Wenn ein Mikroprozessor 207 verwendet wird zum Laden der anfänglichen Datenwerte, wird ein Nur-Lese-Speicher (ROM) verwendet, um den Mikroprozessor 207 zu programmieren, wenn eine Einschaltfrequenz erfasst wird. Sobald das erste Datenregister 201 und das zweite Datenregister 202 mit den geeigneten Werten beladen sind, orchestriert die Steuerlogik 206 die nachfolgende Verarbeitungssequenz ohne weitere Eingabe von dem Mikroprozessor (falls entsprechend ausgerüstet). Der Komparator 204 vergleicht den Wert, der in dem ersten Datenregister 201 gespeichert ist, mit dem Wert, der in dem zweiten Datenregister 202 gespeichert ist, bestimmt, welcher der zwei Werte der kleinere ist und gibt den kleineren Wert in das dritte Register 203 aus, der die tatsächliche Länge in Bytes des nächsten Bursts ist. Der Subtrahierer dekrementiert dann den Wert in dem ersten Register 201 um den Wert, der in dem dritten Register 203 gespeichert ist. Der dekrementierte Wert stellt die Bytes dar, die bei der Übertragung verbleiben. Die Steuerlogik 207 initiiert dann eine Übertragung eines Datenbursts zwischen dem ersten Vorrichtungsserver 102 und dem Hostbus-Adapter 109. Wiederum wird die Anzahl von Bytes in dem Burst spezifiziert durch den Wert, der in dem dritten Register 203 gespeichert ist. Sobald der Burst erfolgreich übertragen wurde, wiederholt die Steuerlogik die Sequenz. Der Prozess wird wiederholt, bis die gesamte Übertragung erfolgreich abgeschlossen wurde und der Wert in dem ersten Datenregister 201 Null ist. Wenn ein Fehler während der Übertragung eines Bursts auftritt, kann dieser Burst wiederholt werden unter Verwendung des Werts, der in dem dritten Datenregister 203 gespeichert ist. Alle anderen Aspekte von Datenübertragungen auf dem SCSI-Bus, wie z. B. Handshaking, werden durch das Protokoll des SCSI-Busses gehandhabt. Eine automatisierte Steuerung von Burstübertragungen ist nur möglich zwischen dem Hostbus-Adapter 109 und Vorrichtungen, die einen Vorrichtungsschnittstellen-Adapter 106 aufweisen, der die Erfindung einlagert. Die Steuerung von Burst-Modus-Datenübertragungen zwischen dem Hostbus-Adapter 109 und jeglichem anderen Vorrichtungsserver, wie z. B. Vorrichtung II 103 auf dem selben SCSI-Bus, deren Schnittstellen-Adapter 107 die Erfindung nicht einlagert, wird gehandhabt gemäß dem Steuerverfahren, das durch diesen bestimmten Vorrichtungsschnittstellen-Adapter implementiert wird.
  • Bezug nehmend nun auf 3 wird ein erstes Peripheriegerät 301 mit einem Vorrichtungsserver 302 schnittstellenmäßig mit einem SCSI-Bus 105 über einen Vorrichtungsschnittstellen-Adapter 303 verbunden, der ein alternatives Ausführungsbeispiel der Erfindung einlagert. Ein zweiter Peripheriegeräteserver 104 ist schnittstellenmäßig mit dem SCSI-Bus 105 über einen herkömmlichen Vorrichtungsschnittstellen-Adapter 107 verbunden, der die Erfindung nicht einlagert. Der SCSI-Bus 105 ist schnittstellenmäßig mit einem Hostcomputersystembus 108 über einen Hostbus-Adapter 109 verbunden. Der erste Vorrichtungsschnittstellen-Adapter 303 weist zugeordnet zu demselben einen Mikroprozessor 307, einen Nur-Lese-Speicher (ROM) 308, in dem ein Programmcode zum Verwalten von Burst-Übertragungen gespeichert ist, ein erstes Datenregister 304, ein zweites Datenregister 305 und ein drittes Datenregister 306 auf. Ein lokaler Datenbus 309 verbindet den Mikroprozessor 307 mit den Datenregistern 304, 305 und 306. Das erste und zweite Peripheriegerät 301 bzw. 103 können jegliche einer Anzahl von Vorrichtungen sein, wie z. B. ein Festplattenlaufwerk, ein Bandlaufwerk, ein ZIP-Laufwerk, ein CD-ROM-Laufwerk, ein Graphikscanner.
  • Die Gesamtanzahl von Peripheriegeräten, die mit dem Hostcomputersystembus 108 über die Hostschnittstellensteuerung 109 verbunden sein kann, hängt von der SCSI-Version ab. Ein Busabschluss 110 verhindert ungewollte Signalreflexionen am Ende des Busses nach der letzten Vorrichtung. Die Burst-Modus-Übertragungssteuerung für das erste Peripheriegerät 301 ist auf ähnliche Weise zu der des zweiten Ausführungsbeispiels der Erfindung implementiert. Die primäre Differenz ist, dass Register-Lade-, -Vergleich-, und -Dekrementier-Funktionen durch den Mikroprozessor 307 und nicht die spezialisierte Steuerlogik 206 gehandhabt werden. Die Werte, die in dem ersten, zweiten und dritten Datenregister (304, 305 bzw. 306) dieses alternativen Ausführungsbeispiels gespeichert sind, entsprechen den Werten, die in dem ersten, zweiten und dritten Datenregister (201, 202 bzw. 203) des bevorzugten Ausführungsbeispiels gespeichert sind, das in 1 und 2 gezeigt ist.
  • Bezug nehmend nun auf 4 kann eine automatisierte Hardwaresteuerung von Burst-Modus-Übertragungen als ein hardware-implementierter Prozess charakterisiert werden. Für das bevorzugte Ausführungsbeispiel der Erfindung, gezeigt in 1 und 2, beginnt der Prozess mit „START" mit der Steuerlogik 206, die auf den Empfang der Übertragungsanforderung wartet. Nach dem Empfang einer solchen Anforderung wird die Anforderung decodiert, um festzustellen, ob die Anforderung auf die Vorrichtung zutrifft oder nicht, der der Schnittstellen-Adapter, der die Erfindung einlagert, zugeordnet ist. Wenn die Anforderung nicht auf die Vorrichtung zutrifft, die den Schnittstellen-Adapter aufweist, der die Erfindung einlagert, wird keine weitere Aktion unternommen. Wenn jedoch bestimmt wird, dass die Anforderung tatsächlich auf die Vorrichtung gerichtet ist, der der Schnittstellen-Adapter 106 vorangeht, werden das erste und zweite Register 201 und 202 durch die Steuerlogik 206 (oder den Mikroprozessor 207) mit den entsprechenden Werten beladen. Das erste Register 201 wird mit einem Wert beladen, der der Gesamtanzahl von Bytes bei der Übertragung entspricht, während das zweite Register 202 mit einem Wert beladen wird, der der Maximalanzahl von Bytes bei einem Burst entspricht. Der kleinere dieser zwei Werte wird dann in das dritte Register 203 geschrieben. Der Subtrahierer 205 dekrementiert dann den Wert, der in dem ersten Register 201 gespeichert wird, um den Wert, der in dem dritten Register 203 gespeichert ist. Eine Burst-Datenübertragung wird dann zwischen dem Vorrichtungsserver 102 und dem Hostbus-Adapter 109 ausgeführt, wobei die Anzahl von Bytes, die übertragen wird, dem Wert entspricht, der in dem dritten Register 203 gespeichert ist. Die Steuerlogik 206 prüft dann, um zu sehen, ob die Bytes erfolgreich übertragen wurden oder nicht. Wenn nicht, wird die Burst-Übertragung unter Verwendung des Datenwerts wiederholt, der immer noch in dem dritten Register 203 gespeichert ist. Wenn die Übertragung erfolgreich abgeschlossen wurde, wird der Wert, der in dem ersten Register 201 gespeichert ist, geprüft, um zu sehen, ob derselbe Null ist. Wenn eine Null in diesem Register gefunden wird, wird eine komplette Übertragung angezeigt, und die Routine wird beendet. Ein Wert ungleich Null in dem Register 201 zeigt an, dass die Übertragung noch nicht abgeschlossen ist. Somit vergleicht der Komparator 204 wiederum den Wert, der in dem ersten Register 201 gespeichert ist, mit dem Wert, der in dem zweiten Register 202 gespeichert ist, schreibt den kleineren der zwei Werte in das dritte Register 203, subtrahiert den Wert in dem dritten Register 203 von dem Wert bei dem ersten Registerwert 201, schreibt den Restwert in das erste Register 201 und überträgt die Anzahl von Datenbytes, die dem Wert entspricht, der in dem dritten Register 203 gespeichert ist, zwischen dem Vorrichtungsserver 102 und dem Host-Adapter 109. Der Prozess fährt wiederholt fort, bis der Wert in dem ersten Register 102 Null ist.
  • Für das alternative Ausführungsbeispiel der Erfindung beginnt der Prozess bei „START" mit dem Mikroprozessor 307, der auf den Empfang einer Übertragungsanforderung wartet. Nach dem Empfang einer solchen Anforderung, wird die Anfor derung decodiert, um festzustellen, ob die Anforderung auf die Vorrichtung zutrifft, der der Schnittstellen-Adapter, der die Erfindung einlagert, zugeordnet ist, oder nicht. Wenn bestimmt wird, dass die Anforderung tatsächlich auf die Vorrichtung gerichtet ist, die dem Vorrichtung-1-Schnittstellen-Adapter 303 vorangeht, werden das erste und zweite Register (304 bzw. 305) durch den Mikroprozessor 307 mit den entsprechenden Werten beladen. Das erste Register 304 wird mit einem Wert beladen, der der Gesamtanzahl von Bytes bei der Übertragung entspricht, während das zweite Register 305 mit einem Wert beladen wird, der der maximalen Anzahl von Bytes bei einem Burst entspricht. Der Mikroprozessor 307 vergleicht dann die Werte, die in dem ersten und zweiten Register (304 bzw. 305) gespeichert sind. Der Mikroprozessor 307 schreibt den kleineren dieser zwei Werte in das dritte Register 306. Der Mikroprozessor 307 dekrementiert dann den Wert, der in dem ersten Register 304 gespeichert ist, um den Wert, der in dem dritten Register 306 gespeichert ist. Eine Burst-Datenübertragung wird dann zwischen dem Vorrichtungsserver 302 und dem Hostbus-Adapter 109 ausgeführt, wobei die Anzahl von Bytes, die übertragen wird, dem Wert entspricht, der in dem dritten Register 306 gespeichert ist. Der Mikroprozessor 307 prüft dann, um zu sehen, ob die Übertragung vollständig abgeschlossen wurde oder nicht. Wenn nicht, wird die Burst-Übertragung unter Verwendung des Datenwerts wiederholt, der immer noch in dem dritten Register 306 gespeichert ist. Wenn die Übertragung erfolgreich abgeschlossen wurde, wird der Wert in dem ersten Register 304 geprüft, um zu bestimmen, ob der gespeicherte Wert Null ist. Wenn ja, endet die Routine. Wenn er nicht Null ist, kehrt der Logikfluss zu einem Vergleich der Werte in dem ersten und zweiten Register (304 bzw. 305) zurück. Der Prozess fährt fort, bis der Wert in dem ersten Register Null ist, was bedeutet, dass die Übertragung abgeschlossen ist.
  • Obwohl nur zwei Ausführungsbeispiele der Erfindung hierin beschrieben sind, ist es für Durchschnittsfachleute auf dem Gebiet offensichtlich, dass Änderungen und Modifikationen an der Erfindung durchgeführt werden können, ohne von dem Schutzbereich der Erfindung abzuweichen, wie er hierin nachfolgend beansprucht wird. Zum Beispiel, obwohl die Erfindung im Hinblick auf einen SCSI-Bus offenbart ist, ist die Erfindung an jeglichen anderen Typ von Bus oder allgemein jegliche Kommunikationsverknüpfung anwendbar, über die Burst-Modus-Übertragungen implementiert werden. Zusätzlich dazu können die Werte, die in den Datenregistern 201, 202, 203, 304, 305 und 306 gespeichert sind, Bytes oder jegliche andere Länge einer Dateneinheit repräsentieren, wie z. B. 16-Bit-Doppelbyte, 32-Bit-Wörter oder 64-Bit lange Wörter. Anders ausgedrückt, können Burst-Übertragungen, anstelle im Hinblick auf 8-Bit-Bytes quantifiziert zu werden, durch jegliche andere geeignete Mehrfachbiteinheit quantifiziert werden.

Claims (8)

  1. In Kombination mit einem SCSI-Bus (105), der mit einem Hostsystembus (108) über einen Hostbusadapter (109) gekoppelt ist, ein Vorrichtungsschnittstellenadapter (106 oder 303), der den SCSI-Bus (105) mit einem Peripheriegerät (101) koppelt, und der eine Hardwareautomatisierte Steuerung von Burst-Modus-Übertragungen über den SCSI-Bus (105) implementiert, wobei der Vorrichtungsschnittstellenadapter (106 oder 303) folgende Merkmale aufweist: (a) ein erstes Datenregister (201) zum Speichern eines ersten Werts, der die Gesamtanzahl von Dateneinheiten darstellt, die in einer Burst-Modus-Datenübertragung bleiben; (b) ein zweites Datenregister (202) zum Speichern eines zweiten Werts, der die maximale Größe eines Bursts in Dateneinheiten darstellt; (c) ein drittes Datenregister (203) zum Speichern eines dritten Werts, der die tatsächliche Größe des nächsten Bursts darstellt, der in Dateneinheiten übertragen werden soll; (d) eine Einrichtung zum Vergleichen des ersten und des zweiten Werts und zum Schreiben eines dritte Werts, der der kleinere des ersten und des zweiten Werts ist, in das dritte Register; (e) eine Einrichtung zum Subtrahieren des dritten Werts von dem ersten Wert, um einen Restwert zu erhalten und den ersten Wert durch einen neuen ersten Wert zu ersetzen, der gleich dem Restwert ist; (f) eine Einrichtung zum Orchestrieren der Schritte zum Vergleichen des ersten und des zweiten Werts, Speichern des kleineren des ersten und des zweiten Werts in dem dritten Register (203), Subtrahieren des dritten Werts von dem ersten Wert, um einen Restwert zu ergeben, Ersetzen des ersten Werts durch einen neuen ersten Wert gleich dem Restwert und Verursachen, dass die Schritte des Vergleichens, Speicherns, Subtrahierens und Ersetzens wiederholt werden, bis der erste Wert gleich Null ist.
  2. Der Vorrichtungsschnittstellenadapter (106) gemäß Anspruch 1, bei dem die Einrichtung zum Orchestrieren einen Mikroprozessor aufweist.
  3. Der Vorrichtungsschnittstellenadapter (106) gemäß Anspruch 2, der ferner einen lokalen Datenbus (209) aufweist, der den Mikroprozessor mit dem ersten und dem zweiten Register koppelt.
  4. Der Vorrichtungsschnittstellenadapter (106) gemäß Anspruch 3, bei dem der Mikroprozessor die Aufgaben des Ladens eines anfänglichen Satzes von ersten und zweiten Werten in das erste Register (201) bzw. in das zweite Register (202) ausführt.
  5. Der Vorrichtungsschnittstellenadapter (303) gemäß Anspruch 1, bei dem die Einrichtung zum Vergleichen und Schreiben, die Einrichtung zum Subtrahieren und Ersetzen und die Einrichtung zum Orchestrieren ein Mikroprozessor (307) sind, der mit dem SCSI-Bus (105) und mit dem ersten, dem zweiten bzw. dem dritten Register (304, 305 bzw. 306) gekoppelt ist.
  6. Der Vorrichtungsschnittstellenadapter (106 oder 303) gemäß einem der Ansprüche 2 bis 5, der ferner einen Nur-Lese-Speicher zum Programmieren des Mikroprozessors aufweist.
  7. Der Vorrichtungsschnittstellenadapter (106 oder 303) gemäß einem der vorangehenden Ansprüche, bei dem die Dateneinheiten Acht-Bit-Bytes sind.
  8. Der Vorrichtungsschnittstellenadapter (106) gemäß Anspruch 1, bei dem die Einrichtung zum Orchestrieren in eine anwendungsspezifische integrierte Schaltung eingelagert ist.
DE69927325T 1998-07-20 1999-07-19 Automatisierte Steuerung der Stossbetriebdatenübertragung über einer Nachrichtenverbindung zwischen Einheiten im Blockmodusbetrieb Expired - Fee Related DE69927325T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US119164 1980-02-06
US09/119,164 US6108723A (en) 1998-07-20 1998-07-20 System for implementing hardware automated control of burst mode data transfer over a communication link between devices operating in a block mode

Publications (2)

Publication Number Publication Date
DE69927325D1 DE69927325D1 (de) 2005-10-27
DE69927325T2 true DE69927325T2 (de) 2006-08-10

Family

ID=22382878

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69927325T Expired - Fee Related DE69927325T2 (de) 1998-07-20 1999-07-19 Automatisierte Steuerung der Stossbetriebdatenübertragung über einer Nachrichtenverbindung zwischen Einheiten im Blockmodusbetrieb

Country Status (4)

Country Link
US (1) US6108723A (de)
EP (1) EP0974911B1 (de)
JP (1) JP3417882B2 (de)
DE (1) DE69927325T2 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000285069A (ja) * 1999-03-31 2000-10-13 Copyer Co Ltd 同期式シリアル通信方法及び同期式シリアル通信システム
US6535935B1 (en) * 2000-04-06 2003-03-18 Unisys Corporation Method of sending data streams using a refetchable first-in-first-out memory which is read in a sequence that backs-up
US6766385B2 (en) * 2002-01-07 2004-07-20 Intel Corporation Device and method for maximizing performance on a memory interface with a variable number of channels
JP4147087B2 (ja) * 2002-10-29 2008-09-10 株式会社ルネサステクノロジ 情報処理通信装置
KR100664550B1 (ko) * 2005-11-02 2007-01-03 엠텍비젼 주식회사 인코딩된 데이터 전달 방법 및 그 방법을 수행하는 촬상장치
US8572302B1 (en) 2006-10-13 2013-10-29 Marvell International Ltd. Controller for storage device with improved burst efficiency
US8380922B1 (en) 2010-06-25 2013-02-19 Western Digital Technologies, Inc. Data storage device comprising host interface state machine blocking on target logical block address
US9350806B2 (en) 2012-09-07 2016-05-24 International Business Machines Corporation Zero copy data transfers without modifying host side protocol stack parameters

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1231455A (en) * 1984-04-09 1988-01-12 Masayuki Ikeda Nonrestoring divider
US5179663A (en) * 1988-02-19 1993-01-12 Hitachi, Ltd. Data transfer controller
US5179709A (en) * 1989-01-13 1993-01-12 International Business Machines Corporation Look ahead bus transfer request
JPH02190928A (ja) * 1989-01-19 1990-07-26 Nec Corp 除算器
US5185694A (en) * 1989-06-26 1993-02-09 Motorola, Inc. Data processing system utilizes block move instruction for burst transferring blocks of data entries where width of data blocks varies
US5128891A (en) * 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. High speed divider with square root capability
AU652371B2 (en) * 1990-06-29 1994-08-25 Fujitsu Limited Data transfer system
JP3187539B2 (ja) * 1992-07-28 2001-07-11 株式会社東芝 データ転送装置
JP3481308B2 (ja) * 1994-07-12 2003-12-22 富士通株式会社 インターフェース装置、データ転送システム及びデータ転送方法
JPH0870250A (ja) * 1994-08-29 1996-03-12 Mitsubishi Denki Semiconductor Software Kk アナログ/デジタル変換器
JP3344123B2 (ja) * 1994-11-16 2002-11-11 ヤマハ株式会社 データ受信装置
EP0764907A1 (de) * 1995-09-22 1997-03-26 International Business Machines Corporation Verfahren und System zur Fehlerkorrektur in einem Datenverarbeitungssystem
US5761453A (en) * 1995-12-07 1998-06-02 Apple Computer, Inc. Method and system for increasing the throughput of serial data in a computer system

Also Published As

Publication number Publication date
EP0974911A3 (de) 2001-09-05
JP3417882B2 (ja) 2003-06-16
US6108723A (en) 2000-08-22
DE69927325D1 (de) 2005-10-27
JP2000076178A (ja) 2000-03-14
EP0974911B1 (de) 2005-09-21
EP0974911A2 (de) 2000-01-26

Similar Documents

Publication Publication Date Title
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE69031367T2 (de) Blockübertragungs- und Koprozessorschnittstellenbefehl
DE3889366T2 (de) Interface für ein Rechnersystem mit reduziertem Befehlssatz.
DE112005001512B4 (de) Vorrichtung und Verfahren für den Hochleistungs- Zugriff auf einen flüchtigen Plattenlaufwerkspeicher unter Einsatz einer integrierten Direkt-Speicherzugriffs-Einrichtung
DE68916846T2 (de) Integriertes MODEM ohne speziell zugeordnete Steuerung.
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE3280451T2 (de) Verfahren zur Initialisierung eines Datenverarbeitungssystems.
DE19962768B4 (de) Verfahren zum Übertragen von Daten über einen Datenbus mit minimierter digitaler Intersymbolstörung
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE69117371T2 (de) Hintergrund-Plattenoberflächenanalyse durch eine Steuerung für intelligente Speicherplattenanordnung ausgeführt
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69803852T2 (de) Dos-anwenderprogrammünterstützungen für ein modem ohne steuerung
DE60309391T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE19900345A1 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE69622830T2 (de) Asynchrone Busbrücke
DE19900331A9 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE60037624T2 (de) Pci-lese-/schreiboptimierungsschaltung und entsprechendes verfahren
DE19900331A1 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE2448212A1 (de) Asynchrone sammelleitung zur selbstbestimmten kommunikation zwischen mutterrechnergeraeten und tochtergeraeten
DE69031782T2 (de) Verfahren zum Ersetzen von Speichermodulen in einem Computersystem und Computersystem zur Durchführung des Verfahrens
DE102004013112A1 (de) Speichersteuerungsvorrichtung und Verfahren für diese
DE69031670T2 (de) Verfahren zur Datenübertragung und Datenverarbeitungssystem, das dieses Verfahren anwendet
DE69927325T2 (de) Automatisierte Steuerung der Stossbetriebdatenübertragung über einer Nachrichtenverbindung zwischen Einheiten im Blockmodusbetrieb
DE112007000688B4 (de) Fehlerverwaltungstopologien
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

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

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee