-
TECHNISCHES GEBIET
-
Ausführungsformen der Erfindung beziehen sich im Allgemein auf das Gebiet von Netzwerken und insbesondere auf automatische Datenausrichter für eine Mehrzahl von seriellen Empfängern in seriellen Verbindungstechnologien (serial link technologies).
-
HINTERGRUND
-
Serielle-Port-Speicher-Technologie (Serial Port Memory Technology, SPMT) verwendet sogar im Speicherbereich serielle Hochgeschwindigkeitsverbindungstechnologie. Diese serielle Verbindung bietet mehrere Vorteile, inklusive niedrigem Stromverbrauch und reduzierten Pin-Anzahlen und wird zwischen Host und Speicher angeschlossen. Obwohl eine serielle Verbindung mehrere Gbps an Bandbreite zur Verfügung stellen kann, müssen, wenn der Speicherbandbreitenbedarf größer wird als der durch eine einzelne serielle Leitung bereitgestellte, eine Mehrzahl von seriellen Verbindungen eingesetzt werden, um den zusätzlichen Bandbreitenbedarf bereitzustellen.
-
Beispielsweise ist, nun bezugnehmend auf die herkömmliche Rahmenausrichtung veranschaulichende 1A, ein Befehl 108 in mehreren Bits 110 codiert und wird bitweise über eine Hochgeschwindigkeitsverbindung 102 gesendet, wie es ein zweites Signal Serielle Daten 102 zeigt. Wenn diese seriellisierten Daten 102 an der Empfängerseite ankommen, werden diese Datenbits 110 wieder parallelisiert und in einem Bit-Paket, wie beispielsweise einem 20-Bit-Paket 112, gespeichert, wie es ein drittes Signal De-seriellisierte Daten zeigt. Jedoch können diese „de-seriellisierten“ 20-Bit-Daten 104 nicht zum Dekodieren verwendet werden, da der Befehl 108 in der Mitte dieser empfangenen Daten anfangen kann. Beispielsweise werden die de-seriellisierten Daten 104 an der Empfängerseite als „fghabcde“ 116 empfangen, obwohl der Host „abcdefgh“ 118 gesendet hat. Mit anderen Worten, muss die Startposition (oder der Header) des Befehls 108 identifiziert werden, während die Host-Daten 100 durch den Host in einem vordefinierten Muster gesendet werden. Zum Beispiel wird in diesem Fall das vordefinierte Muster auf „abcdefgh“ 118 festgelegt. Nachdem die Startposition bestimmt wurde, wird der korrekte Befehl 114 durch Verschieben von zwei benachbarten de-seriellisierten Daten 104 erhalten. Diese Technik wird als „Rahmenausrichtung (frame aligning)“ bezeichnet und das zum Ausrichten verwendete vordefinierte Muster 118 wird als „SYNC“-Zeichen bezeichnet.
-
Falls jedoch ein Host eine große Datenmenge zu senden hat, werden die Daten über mehrere serielle Verbindungen 152–162 übertragen, wie es 1B referenziert, die herkömmliches Rahmen- und Portausrichten zeigt. Die Eigenschaften von mehreren Hochgeschwindigkeitsverbindungen unterscheiden sich voneinander. Normalerweise tastet ein Abtast-Front-End-Block (sampling front-end block), (beispielsweise eine Taktdatenrückgewinnung (clock data recovery, CDR)) eingehende serielle Daten 102 ab und übergibt sie in einem bestimmten Takt an einen De-seriellisierer-Block (deserializer block). Des Weiteren sind die Durchlaufzeiten (flight times) vom Host zum Empfänger für jeden Kanal nicht genau gleich. Beispielsweise sendet der Host zur gleichen Zeit einen Datensatz, während ein Empfänger Daten mit einem ersten Takt abtastet und der andere Empfänger sie mit einem zweiten Takt abtastet. Um diese Durchlaufdifferenz oder Pfaddifferenz zu kompensieren, ist es notwendig, einen Verzögerungszyklus (one cycle delay) 164 zu den Kanälen 158 hinzufügen, an denen die Daten früher ankommen als respektive an den Kanälen 162, wo sie später eintreffen. Dieser Vorgang wird als „virtuelle Pfad-Ausrichtung (virtual lane alignment)“ 164 für Computer-Erweiterungskarten bezeichnet. Ein anderer Ausrichtungsvorgang 166 zum Suchen und Ausrichten der Header von jedem Datensegment wird ebenfalls neben dem Vorgang der virtuellen Pfad-Ausrichtung durchgeführt.
-
Unter Bezugnahme auf 2, die herkömmliche Verfahren zum Messen und Kompensieren von Pfaddifferenzen veranschaulicht, werden zum Identifizieren von Pfaddifferenzen unterscheidbare vorbestimmte Mustern bestimmt und an verschiedene Kanäle kommuniziert. Zum Beispiel zeigt 2 ein Verfahren zum Messen von Pfaddifferenzen und zum Durchführen der erforderlichen Datenausrichtung mit Bezug auf verschiedene Kanäle von Computer-Erweiterungskarten. Zum Beispiel werden im Verarbeitungsblock 202 Daten innerhalb eines Datenstroms gesendet und im Verarbeitungsblock 204 fügt der Host zwei COMMA-Muster in den Datenstrom ein und sendet die Daten im Verarbeitungsblock 206. Wenn im Verarbeitungsblock 208 ein Empfänger dieses Muster untersucht, prüft er die Ankunftszeit des COMMA-Zeichens auf jedem Kanal oder Port im Verarbeitungsblock 210. Im Entscheidungsblock 212 bestimmt er weiter, ob das gleiche COMMA-Zeichen zuvor auf einen anderen Kanal erschienen ist. Falls ja und es einen Kanal gibt, der noch kein COMMA-Zeichen hat, fügt der Empfänger im Verarbeitungsblock 214 eine Ein-Zyklus-Verzögerung für die durch diesen Kanal fließenden Daten ein. Falls nicht, fährt das Verfahren mit der Verzögerung fort.
-
3 zeigt eine herkömmliche Architektur 300 zum Bereitstellen von virtueller Pfad-Ausrichtung (z.B. Rahmenausrichtung und Portausrichtung). Wenn Daten über eine serielle Verbindung empfangen werden, werden sie von einem Taktrückgewinnungsblock (Clock Data Recovery block, CDR) abgetastet, der einen Takt (rck) aus den eingehenden Daten extrahiert, um den Abtastfehler zu minimieren. Danach leitet er seine Ergebnisse mit Zusammenfassen von 4 Bits an einen Ausrichterblock. Die erste Komponente des Ausrichterblocks ist ein De-seriellisierer 302, der fünf aufeinanderfolgende einkommende 4-Bit-Daten mit Hilfe einer Tiefe von fünf Schieberegistern 308 in 20-Bit-Daten zusammenfasst. Die zweite Komponente ist ein Rahmenausrichter 304, um die Ausgabe an einer korrekten Position starten zu lassen. Da der Deserialisierer 302 mit einem rückgewonnen Takt (rck) betrieben wird und der Rahmenausrichter 304 mit einem Systemtakt (clk) betrieben wird, sind zwei Register der fünf Register 308 zum Überwinden des Problems beim Überqueren der Taktdomäne (crossing the clock domain) angeordnet. Die Kombination kann ein Register und eine Schiebevorrichtung (shifter) aufweisen. Die dritte Komponente ist ein Portausrichter 306. Wenn eine Ein-Zyklus-Verzögerung erforderlich ist, wird die Ausgabe von einem im Rahmenausrichter 306 angeordneten Register anstelle der vom Rahmenausrichter 304 kommenden Daten ausgewählt.
-
Das Ausrichten von Daten (z.B. Rahmenausrichtung, Portausrichtung) oder die Zeitversatzkompensation zwischen mehreren Kanälen wird üblicherweise in verschiedenen seriellen Verbindungstechnologien, wie beispielsweise PCI-Express, eingesetzt. Die
WO 01 078 337 offenbart eine derartige bekannte Technologie. Jedoch weist SPMT im Vergleich zu anderen seriellen Technologien eher kurze Zwischenverbindungen zwischen Host und Speicher auf, was bedeutet, dass der Datenversatz (data skew) von Kanälen auf einen relativ kurzen Betrag begrenzt sein kann. Der Unterschied tritt als 0 oder 1 im Host-Taktzyklus hervor. Sie verwendet eine Art von SYNC-Zeichen, um die ausgehenden und eingehenden Kanäle einrichten und sendet keine unterscheidbare Zeichen oder Sonderzeichen, um den Datenversatz zu messen. So kann beispielsweise die herkömmliche unhandliche (bulky) First-In-First-Out(FIFO)-basierte Technik nicht zum Kompensieren von Datenversatz angewendet werden, während sich ein Kanal in einer Einrichtungsperiode befindet.
-
ZUSAMMENFASSUNG
-
Ein Verfahren, eine Vorrichtung und ein System zum Verwenden eines automatischen Datenausrichters für mehrere serielle Empfänger in seriellen Verbindungstechnologien (z.B. Computer-Erweiterungskarten) werden bereitgestellt.
-
In einer Ausführungsform weist ein Verfahren auf das Umwandeln eines Übertragungsdatenpfads von einem Einzelbit über einen Datenausrichter in ein Parallelbit, wobei die Daten über einen oder mehrere Ports übertragen werden und das Binden von Datenübertragungskanälen, um die Latenz beim Übertragen der Daten zu reduzieren, wobei das Binden der Datenübertragungskanäle weiter das Einfügen von Verzögerung aufweist, um die Latenz über den einen oder die mehreren Ports anzugleichen.
-
In einer Ausführungsform weist eine Vorrichtung auf einen Mechanismus zur Datenausrichtung für mehrere serielle Empfänger, wobei der Mechanismus aufweist einen Datenausrichter zum Umwandeln eines Übertragungsdatenpfads aus einem Einzelbit in ein Parallelbit, wobei die Daten über einen oder mehrere Ports übertragen werden, und das Binden von Datenübertragungskanälen, um die Latenz beim Übertragen der Daten zu reduzieren, wobei das Binden der Datenübertragungskanäle weiter das Einfügen von Verzögerung aufweist, um die Latenz über den einen oder die mehreren Ports anzugleichen.
-
In einer Ausführungsform weist ein System auf ein Computersystem mit einem Prozessor und einen an den Prozessor gekoppelten Speicher, wobei das Computersystem einen Mechanismus zum Datenausrichten für mehrere serielle Empfänger aufweist, wobei der Mechanismus aufweist einen Datenausrichter zum Umwandeln eines Übertragungsdatenpfads eines Einzelbits über einen Datenausrichter in ein Parallelbit, wobei die Daten über einen oder mehrere Ports übertragen werden, und das Binden von Datenübertragungskanälen, um die Latenz beim Übertragen der Daten zu reduzieren, wobei das Binden der Datenübertragungskanäle weiter das Einfügen von Verzögerung aufweist, um die Latenz über den einen oder die mehreren Ports anzugleichen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen der Erfindung werden in den Figuren der beigefügten Zeichnungen, in denen sich gleiche Bezugszeichen auf ähnliche Elemente beziehen, als Beispiele und nicht als Beschränkung gezeigt:
-
1A zeigt herkömmliche Rahmenausrichtung;
-
1B zeigt herkömmliche Rahmen- und Portausrichtung;
-
2 zeigt ein herkömmliches Verfahren zur Messung und Kompensation von Pfaddifferenzen;
-
3 zeigt eine herkömmliche Architektur 300 zum Bereitstellen von virtueller Pfadausrichtung;
-
4 zeigt eine Ausführungsform einer Ausrichtarchitektur zum Bereitstellen eines Ausrichtsystems zur Reduzierung von Latenz;
-
5 zeigt eine Ausführungsform eines 4-zu-20-Ausrichters;
-
6 zeigt eine Ausführungsform eines Verfahrens zum Ausrichten unter Verwendung eines 4-zu-20-Bit-Ausrichters;
-
7 zeigt eine Ausführungsform eines Komparatorfeldes;
-
8 zeigt eine Ausführungsform eines Datenpfads;
-
9 zeigt eine Ausführungsform zum Erhalten eines rahmenausgerichteten 20-Bit-Datenstroms;
-
10 zeigt eine Ausführungsform eines Steuergenerators mit einem internen Taktsignal zum Vermeiden der Taktdomäneüberquerungsproblematik;
-
11 zeigt eine Ausführungsform einer Beziehung zwischen Latenz und Zeiger in einem 4-zu-20-Portausrichter;
-
12 zeigt eine Ausführungsform von Portausrichtung auf Basis von Zeigerwerten über mehrere Ports;
-
13 zeigt ein Ausführungsbeispiel eines Verfahrens, das einem jmp-Signal zugeordnet ist;
-
14 zeigt eine Ausführungsform eines Verfahrens zum Durchführen von automatischer Datenausrichtung für mehrere Datenübertragungskanäle; und
-
15 zeigt ein Computersystem, mit dem eine Ausführungsform der vorliegenden Erfindung implementiert werden kann.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsbeispiele der Erfindung sind im Allgemeinen auf Portmultipliziererverbesserung (port multiplier enhancement) gerichtet.
-
SPMT wird als eine neue Speicherschnittstellenarchitektur betrachtet, die ursprünglich auf dynamische Direktzugriffsspeicher(Dynamic Random Access Memory, DRAM)-Chips gerichtet war, die im Gegensatz zu einer parallelen Schnittstellenarchitektur, die üblicherweise in aktuellen Speichertechnologien vorhanden ist, eine serielle Schnittstellenarchitektur einsetzt. SPMT verwendet typischerweise und sogar im Speicherbereich eine serielle Hochgeschwindigkeitsverbindungstechnologie und bietet die Vorteile von niedrigem Stromverbrauch und reduzierter Pin-Anzahl wenn sie zwischen einem Host und einem Speicher verbindet. Allerdings müssen, wenn der Speicherbandbreitenbedarf größer wird als der von einer Hochgeschwindigkeitsverbindung unterstützten (z.B. mehrere Gbps), mehrere serielle Verbindungen eingesetzt werden. Deshalb soll, wenn ein Host eine große Menge von Daten (z.B. Lesedaten, Schreibdaten) auf einmal senden soll, dem Speicher eine ausreichende Bandbreite zur Verfügung gestellt werden, um die große Menge von Daten durch die mehreren seriellen Verbindungen oder seriellen Kanälen durchzureichen. Obwohl physikalisch mehrere Verbindungen oder Kanäle verwendet werden, werden die durchgereichten Daten als ein einzelner großer logischer Kanal behandelt und werden mit „Portbindung (port binding)“ bezeichnet, da serielle Ports des Hosts oder Speichers gebunden werden, um größere Bandbreite bereitzustellen.
-
Die Ausführungsformen der vorliegenden Erfindung verbessern SPMT und stellen mehr Bandbreitenflexibilität, eine deutlich reduzierte Pin-Anzahl, einen niedrigeren Leistungsbedarf und Einsparungen der Systemgesamtkosten bereit. Diese Technik ist besonders für mobile Geräte äußerst wichtig, um zur Erhöhung der Funktionalität beizutragen während die Systemgesamtkosten beibehalten oder reduziert werden, da beim Entwickeln eines mobilen Geräts die Art des Speichersystems oft einen wesentlichen Aspekt bildet.
-
Im Falle eines Einzelkanals sind jegliche seriellisierten Daten an der Empfängerseite an einer „Rahmengrenze (frame-boundary)“ oder „Header“ auszurichten. Auch im Falle von Mehrfachkanälen wird, um die gleiche Latenz bereitzustellen, jede der rahmenausgerichteten Daten ausgerichtet, was als „Interkanalausrichtung (inter-channel alignment)“ bezeichnet wird. Typischerweise werden die Rahmengrenze und der Header von einem Empfänger unter Verwendung eines SYNC-Musters (z.B. K28.5 in 8B10B-Codierung) geprüft. Allerdings wird die Interkanalausrichtung außerhalb der PHY-Schicht durchgeführt, die zur Handhabung von langen Verzögerungen mittels FIFO implementiert ist. Die Technik der Portbindung bezieht sich auf die Ausrichtung der Daten von mehreren Kanälen an der Empfängerseite mit der gleichen Latenz (Interkanalausrichtung), so dass die empfangenen Daten die gleichen Daten von einem Host haben sollen. Wenn ein Kanal (oder eine serielle Verbindung) eine Latenz hat, die sich von den anderen unterscheidet, werden die empfangenen Daten nicht als ausgerichtet betrachtet.
-
Die Technik des Ausrichtens von Daten oder des Kompensierens von Zeitversatz zwischen mehreren Kanälen wird häufig in anderen seriellen Verbindungstechnologien wie z.B. High-Definition Multimedia Interface (HDMI) und PCI-Express eingesetzt. Zum Beispiel richtet die Transition Minimized Differential Signal(TMDS)-Technologie, die in HDMI verwendet wird, die Daten auf drei rot-grün-blau-(RGB)Kanälen durch Detektieren von SYNC-Mustern 702 aus, welche innerhalb eines Pixeldatenstrom erscheinen. Ein FIFO ist dem PHY nachgeordnet und die Daten eines jeden Kanals werden durch Messen einer Position des SYNC-Zeichens ausgerichtet. Die Daten werden, auch wenn es eine große Pfaddifferenz zwischen den Kanälen gibt, auf Mehrfachkanälen ausgerichtet. Im Falle von PCI-Express wird die Technik des Verteilens von Daten auf mehrere Kanäle als „Data Striping“ bezeichnet und die zwei SYNC-Zeichen erscheinen periodisch, um den Datenversatz zwischen den Kanälen zu messen.
-
SPMT weist im Vergleich zu anderen seriellen Technologien jedoch ziemlich kurze Verbindungen zwischen Host und Speicher auf, was bedeutet, dass der Datenversatz auf den Kanälen auf einen relativ kurzen Betrag zu begrenzen ist. Die resultierende Differenz ist typischerweise 0 oder 1 in einem Host-Taktzyklus. Eine Art von SYNC-Zeichen wird für das Einrichten von ausgehenden und eingehenden Kanälen verwendet und es werden keine unterscheidbaren Zeichen oder Sonderzeichen gesendet, um den Datenversatz zu messen. Das bedeutet, dass die herkömmliche unhandliche (bulky) FIFO-basierte Technik nicht zum Kompensieren von Datenversatz angewendet werden soll, während sich der Kanal in der Einrichtungsperiode (setup period) befindet.
-
4 zeigt eine Ausführungsform der Ausrichtarchitektur 400 zum Bereitstellen eines Ausrichtsystems zum Reduzieren von Latenz. Die Ausrichtarchitektur 400 weist einen Ausrichter 402, CDR 404, einen Portausrichter 406 und De-seriellisierer 408–414 auf. Gemäß einer Ausführungsform werden unter Verwendung der Ausrichtarchitektur 400 verschiedene Techniken eingesetzt, um die Latenz zu verringern. Beispielsweise dauert es herkömmlicherweise mindestens drei Zyklen um einen 4-Bit-CDR Ausgang als Eingabe an die Schiebevorrichtung in einem Rahmenausrichter vorzubereiten. Unter Verwendung der Architektur 400 wird diese Latenz minimiert, indem diese drei Zyklen auf einen Zyklus reduziert werden. In einer Ausführungsform wird eine 4-Bit-CDR-Ausgabe unter Verwendung eines Einzelregisters (siehe 6) anstelle der Verwendung des in 3 dargestellten Schieberegisters an eine richtige Position gesetzt, wodurch eine große 40-Bit-Schiebevorrichtung mit einer vergleichsweisen kleinen 8-Bit-Schiebevorrichtung ersetzt wird. In einer anderen Ausführungsform wird ein neuer Arbeitstakt (z.B. rck20, sck 416, usw.) erzeugt und ersetzt die beiden Takte rck und clk (z.B. 314, 312 in 3), um sämtliche Taktdomäneüberquerungsprobleme zu beseitigen, die verursacht werden, wenn die beiden Takte rck und clk eingesetzt werden. Unter Verwendung von geeigneten Steuersignalen werden in diesen beiden Ausführungsformen die Taktzyklen zur Rahmenausrichtung von 4 Zyklen auf 2 Zyklen gekürzt.
-
In noch einer anderen Ausführungsform wird anstelle einer Einzeltaktverzögerung in einem Portausrichterblock eine kleine Verzögerung in einem Eingangsdatenstrom eingefügt. Zum Beispiel ist das Zielsystem der Unterstreichungsspeicher (underline memory) und eine Pfaddifferenz wird als eine geringe Menge beibehalten, da der Host und der Empfänger auf einer Platine angeordnet sind. Weiter wird in diesem Fall bestimmt, ob es möglich ist, dass eine Taktfehlanpassung auf der Empfängerseite während dem Überprüfen des zum Rahmenausrichten eingesetzten Zeigerwerts auftreten kann, was zum Reduzieren eines zusätzlichen Zyklus beitragen kann. Mit Hilfe dieser Techniken wird ein Portausrichten ohne Sonderzeichen (z.B. COMMA in PCI-Express) durchgeführt.
-
In einer Ausführungsform führt das Entfernen eines Sonderzeichens (z.B. SYNC, COMMA) zu (1) einer Vereinfachung der Unterstreichungshardware (underline hardware) während das entsprechende Protokoll einfach gehalten wird und (2) einer Verringerung der für das Einrichten (set up) eines Kanals erforderlichen Zeit (z.B. Trainingszeit, training time). Zum Beispiel wird in der „Kanaleinrichtungsperiode (channel-setup-period)“ eine Startposition eines Datenpakets detektiert und aufgefunden. Ferner dient die Kanaleinrichtungsperiode zum Auffinden der Rahmengrenze oder Headers, sowie auch zum Ausrichten von Interkanaldaten.
-
In einer Ausführungsform werden Daten auf mehreren Kanälen innerhalb der Kanaleinrichtungsperiode ohne Verwendung eines Sonderzeichens synchronisiert, wobei der Datenversatz zwischen Mehrfachkanälen kürzer als die Hälfte der typischen Hosttaktperiode gehalten wird. Zum Beispiel kann eine durch Verwendung der herkömmlichen Architektur hervorgerufene Latenzzeit von 6 Taktzyklen bei Verwendung einer neuen Technik gemäß einer Ausführungsform auf lediglich 3 Zyklen reduziert werden.
-
Die Architektur 400 hat einen SPMT-Empfänger PHY bestehend aus vier Ports von De-seriellisierern 408–414, die je einem Kanal zugeordnet sind und einem Steuerblock, der die Verzögerung der Kanäle steuert. Jeder Port 408–414 ist mit einer CDR 404 verbunden, um Einzelbit-serielle-Daten an einem Differentialpaar (z.B. RX0 416) mit einem gegebenen Taktsignal pck 424 zu detektieren, um die Daten in 4-Bit-Daten zusammenzufassen und sie an den 4-zu-20-Ausrichter 402 unter Verwendung eines rückgewonnenen Taktsignals (rck) weiterzuleiten. Danach erzeugt der 4-bis-20-Ausrichter 402 aus dem ankommenden 4-Bit-Datenstrom 20-Bit-Daten und detektiert die Start-Bit-Position während sich der Kanal in der Kanaleinrichtungsperiode oder Trainingszeit befindet und richtet danach die Daten an beibehaltener Position aus. Der Portausrichter 406 dient zum Erzeugen eines Signals, das dem 4-zu-20-Ausrichter zum Erfüllen seiner Aufgaben zuführt wird.
-
5 zeigt eine Ausführungsform eines 4-zu-20-Ausrichters 402. Die dargestellte Ausführungsform des 4-zu-20-Ausrichters 402 stellt verschiedene Komponenten und Elemente des Ausrichters 402, wie zum Beispiel einen Datenpfad 508 und einen Steuerpfad 510, bereit. Der Datenpfad 508 enthält verschiedene Register und Multiplexer, während der Steuerpfad einen Steuergenerator 502, ein Komparatorfeld (comparator array) 504 und eine endliche Zustandsmaschine (finite state machine, FSM) 506 aufweist. Im Ausführungsbeispiel sollen der Steuerpfad 510 und seine Komponenten die Funktion des Datenpfads 508 durch Erzeugen der richtigen Steuersignale für den Datenpfad 508 und der Interaktion mit externen Komponenten und Maschinen über die FSM 506 steuern. Die FSM 506 stellt Schnittstellen für externe Komponenten und Maschinen bereit.
-
Der ankommende 4-Bit-Datenstrom (d[3:0]) 512 wird zu einem 20-Bit-Strom 514 zusammengesetzt und wird mit externen Steuersignalen rahmen- und portausgerichtet. Steuergenerator 502 übergibt Steuersignale 516 zusammen mit rck20 518 an den Datenpfad 508 und kommuniziert einen Zwischentakt (z.B. rck20), der die gleiche Frequenz wie der Systemtakt (sck) 520 hat, der mit dem rückgewonnen Takt (rck) 522 synchronisiert ist. Diese Signale 516 werden benutzt, um die Daten an einer Rahmengrenze auszurichten. Ferner wird ein Steuersignal jmp 524 von einem externen Portausrichter empfangen, um jeden Port gänzlich auszurichten. Dies wird mit Bezug auf 10 diskutiert.
-
6 zeigt eine Ausführungsform eines Verfahrens zum Ausrichten unter Verwendung eines 4-zu-20-Bit-Ausrichters. In einer Ausführungsform wird ein 20-Bit-Datenstrom mit Hilfe eines 4-zu-20-Ausrichter ausgerichtet, indem zum Beispiel ein SearchFrame(Such-Rahmen)-Signal zum Betreiben dieses Ausrichters ausgegeben wird. Weiterhin soll die FSM den Ausrichter global verwalten und mit externer Hardware kommunizieren.
-
Wenn ein Signal an einem 4-zu-20-Bit-Ausrichter empfangen wird, wird am Entscheidungsblock 602 eine Entscheidung getroffen, ob ein Rahmen auszurichten ist. Falls nicht, wird das Verfahren mit Rückkehr zu Entscheidungsblock 602 weitergeführt. Falls ja, löscht der 4-bis-20-Bit-Ausrichter als erstes den Zeiger und füllt den Datenpfad mit einem neuen Zeigerwert (z.B. durch Setzen des Zeigers auf 0) bei Verarbeitungsblock 604 und wartet bei Verarbeitungsblock 606 3 Zyklen, um die ausgerichteten 20-Bit-Daten zu erhalten. Die neuen ausgerichteten Daten mit Zeiger „0“ werden durch ein Komparatorfeld überprüft, um festzustellen, ob die ersten 4 Bit des SYNC-Musters in den nicht-ausgerichteten 20-Bit-Daten vorhanden sind und Zeigerwerte (z.B. ptr[4:0] / wptr[2:0]) mit der aufgefundenen Position eines 4-Bit-Musters zu berechnen. Dies stellt die erste Halbphase der Kanaleinrichtungsperiode dar.
-
Im Entscheidungsblock 608 wird bestimmt, ob ein Header innerhalb der ausgerichteten Daten aufgefunden wurde. Falls kein Header aufgefunden wurde, kehrt das Verfahren zu Verarbeitungsblock 604 zurück. Falls ein Header aufgefunden wurde, fährt das Verfahren mit Verarbeitungsblock 610 fort. Beispielsweise werden wptr-Werte von jedem Port an einen Portausrichter geleitet, der an den 4-zu-20-Ausrichterblock gekoppelt ist. Am Verarbeitungsblock 610 bestimmt der Portausrichter durch Überprüfen dieser Werte, ob eine 8-Benutzeroberfläche(user interface, UI)-Verzögerung an jedem Port eingefügt werden soll. Der Portausrichterblock sendet diese Anweisung als ein jmp-Signal an alle an den 4-zu-20-Ausrichter angeschlossenen Komponenten. Mit diesem jmp-Signal und der bereits aufgefunden Header-Position berechnet das Komparatorfeld bei Verarbeitungsblock 612 einen Zeigerwert in Abhängigkeit von der Header-Position. Der Zeigerwert wird dann in einem Register gespeichert. Sobald der Zeiger bestimmt wurde, wartet es bei Verarbeitungsblock 614 3 Zyklen, um den Datenpfad mit dem neuen Zeigerwert zu füllen. Dies wird als die zweite Halbphase der Kanaleinrichtungsperiode angesehen.
-
Im Entscheidungsblock 616 wird bestimmt, ob die ausgerichteten 20-Bit-Daten SYNC sind. Falls nicht, fährt das Verfahren mit Verarbeitungsblock 604 fort. Falls ja, wird bei Verarbeitungsblock 618 ein Rahmen-Ausgerichtet-Flag (frame aligned flag) gesetzt. Beispielsweise werden die ausgerichteten 20-Bit-Daten nach der zweiten Halbphase als eine Ausgabe des Datenpfads (z.B. rxdata[19:0]) plaziert. Der 4-zu-20-Ausrichter setzt ein Signal (z.B. FrameLocked (Rahmen-Gesperrt)-Signal), um anzuzeigen, dass eine Rahmengrenze aufgefunden wurde, falls die ausgerichteten 20-Bit-Daten SYNC sind. Falls nicht, wiederholt er den gesamten Prozess erneut bis festgestellt wird, dass SYNC den ausgerichteten 20-Bit-Daten zugeordnet ist.
-
7 zeigt eine Ausführungsform des Komparatorfelds 504. In einer Ausführungsform weist das Komparatorfeld 504 eine beliebige Anzahl von Komparatoren auf, wie z.B. die gezeigten zwanzig 4-Bit-Komparatoren 702 (z.B. 4b cmp[0]–[19]). Ein 4-Bit-Extraktor 704 extrahiert zwanzig 4-Bit sequentielle Datenströme aus einem ankommenden 20-Bit-Datenstrom über einen 4-Bit-Extraktor 704 und diese zwanzig 4-Bit extrahierten Datenströme werden an entsprechende Komparatoren 702 geleitet. Jeder Komparator vergleicht jeden der zwanzig ankommenden 4-Bit-Datenströme mit einer 4-Bit-Konstante 706 (z.B. 0010), was den Start eines 4-Bit-SYNC-Zeichens auslöst. Einer dieser Komparatoren kann während einer Kanaleinrichtungsperiode ein „Übereinstimmen (matching)“ melden. Diese Vergleichsergebnisse werden dann mit einem 20-zu-5-Bit-Kodierer 708 in eine 5-Bit-Zahl kodiert und in einem Ausgaberegister 710 zwischengespeichert (latched), falls set eins ist (z.B. setptr) 712. Unterdessen werden die oberen 3 Bits eines nicht-zwischengespeicherten (unlatched) Signals als Ausgangssignal (z.B. wptr) 714 übergeben und werden von einem externen Portausrichter verwendet.
-
8 zeigt eine Ausführungsform des Datenpfads 508. Wie gezeigt, besteht der Datenpfad 508 aus fünf Stufen 810–818. Die erste Stufe 810 weist das Einfügen einer Zwei-Zyklen-Verzögerung auf, die von einem jmp-Signalwert 802 abhängt, der von einem mit dem Datenpfad 508 gekoppelten externen Portausrichter empfangen wird und fügt zwei rck-Zyklen (oder 8 UI) 820 ein, falls dieser aktiv ist. Die Funktionen dieser Stufe werden anderswo in diesem Dokument erläutert. Die zweite Stufe 812 enthält eine Schiebevorrichtung, die einen 4-Bit-Datenstrom von einem 8-Bit-Eingangsdatenstrom auswählt, welcher mit zwei sequentiellen 4-Bit-Datenströmen kombiniert wird. Die Schiebevorrichtung weist eine 8-zu-4-Schiebevorrichtung auf, um eine große herkömmliche 40-zu-20-Schiebevorrichtung zu ersetzen. Die Funktionen dieser 8-zu-4-Schiebevorrichtung können von einem 2-Bit-msel Signalwert 804 abhängen. Die dritte Stufe 814 des Datenpfads 508 weist das Anordnen oder Ausrichten von fein verschobenen Daten in der richtigen Reihenfolge auf. Das zugehörige Steuersignal 806 (z.B. Iden) wird zum Platzieren des Headers eines empfangenen Pakets geeignet erzeugt, um im ersten Register zwischengespeichert zu werden. Mit anderen Worten, werden die Daten in zwei Stufen ausgerichtet: einmal auf feinem Niveau und dann noch einmal auf grobem Niveau.
-
Obwohl ein Datenbitstrom durch die zweite und der dritte Stufe 812, 814 korrekt verschoben wurde, können bestimmte Teile der ausgerichteten Daten von einem vorherigen Paket empfangen worden sein. Um diese Ein-Zyklus-Verzögerung zu kompensieren, werden 4-Bit-ausgerichtete Daten ausgewählt und eine Ein-Zyklus-Verzögerung wird vor ihnen durch Verwendung einer Reihe von Multiplexern 808 (z.B. die vier dargestellten Multiplexer) in der vierten Stufe 816 zwischengespeichert. Die fünfte und letzte Stufe 818 enthält lediglich zwei Register, die zum Speichern der ausgerichteten 20-Bit-Daten eingesetzt werden.
-
Des Weiteren wird die Latenz jedesmal geändert, wenn ein jmp-Signal 802 ausgelöst wird. Falls der Rahmenausrichter keine Rahmenausrichtung durchführen muss, führt stattdessen der Portausrichter eine Portausrichtung durch. In einer solchen Situation, wie sie vom Portausrichter detektiert wird, wird das jmp-Signal 802 erzeugt und eine Zwei-Zyklus-Verzögerung wird in der zweiten Stufe 812 in den Eingangsdatenstrom eingefügt. Da diese Verzögerung in der rck-Domäne 820 durchgeführt wird, ist in einer Ausführungsform die Einbuße im Vergleich zu der in einem herkömmlichen System erzwungenen relativ klein. Ferner muss diese, wenn nur ein Einzelkanal verwendet wird, nicht erforderlich sein. Wenn jedoch Daten auf mehreren Kanälen ankommen, können die Daten durch Auswahl eines geeigneten jmp-Wertes 802 ausgerichtet werden. Dies wird mit Bezug auf 12 weiter beschrieben.
-
9 zeigt eine Ausführungsform zum Erhalten eines rahmensausgerichteten 20-Bit-Datenstroms. Im Verarbeitungsblock 902 wird ein unausgerichteter 4-Bit-Datenstrom empfangen. Im Verarbeitungsblock 904 wird ein ausgerichteter Untere-4-Bit-Strom aus einem aktuellen 8-Bit-Datenstrom extrahiert. Im Verarbeitungsblock 906 werden die unausgerichteten 4-Bit-Daten abgespeichert. Im Entscheidungsblock 908 wird bestimmt, ob eine Schleife fünfmal durchgelaufen wird. Falls ja, wird im Verarbeitungsblock 914 ein ausgerichteter 20-Bit-Datenstrom erzeugt. Im Verarbeitungsblock 916 werden die Oberen-16-Bit-Daten bei rck20 gespeichert und im Verarbeitungsblock 918 wird der ausgerichtete 20-Bit-Datenstrom bereitgestellt.
-
10 zeigt eine Ausführungsform des Steuergenerators 502 mit einem internen Taktsignal (z.B. rck20 1006) zum Vermeiden von Taktdomäneüberquerungsproblemen. In einer Ausführungsform werden zwei Takte sck 1002 und rck 1004 im Steuergenerator 502 verwendet. Takt sck 1002 stellt einen Systemtakt dar und die FSM wird mit diesem Takt betrieben. Takt sck 1002 weist einen Zeitraum von 20 Zeichensymbolen (z.B. 20 UIs) auf, während Takt rck 1004 einen rückgewonnenen Takt des CDRs darstellt und einen Zeitraum von 5 UI aufweist. Ferner kommt ein eingehender Datenstrom in Takt rck 1004 an. Damit ein Datenpfad 508 (wie in 5 gezeigt) 20-Bit-Daten aus einem Datenstrom extrahieren kann, wird ein Zwischentakt mit 20 UI Taktperioden benutzt und anhand von Takt rck 1004 erzeugt. Dieses Taktsignal wird als rck20 1006 bezeichnet und wird im Steuergenerator 502 erzeugt. Auch hat beispielsweise das Taktsignal rck20 1006 die Eigenschaft, eine Phasendifferenz von etwa 180 Grad zum Takt sck 1002 aufzuweisen. Eine weitere Rolle des Steuergenerators 502 ist die Erzeugung von Steuersignalen für den Datenpfad 508 mit einem vom Komparatorfeld 504 kommenden gegebenen Zeigerwert (ptr) (in 5 dargestellt).
-
Ferner wird ein Hinweis verwendet, um den Stromverbrauch zu reduzieren. Zum Beispiel ist, nachdem ein Kanal eingerichtet wurde, das Komparatorfeld nicht erforderlich, weshalb der ausgerichtete 20-Bit-Datenstrom maskiert und zum Komparatorfeld geleitet wird, um den Stromverbrauch zu reduzieren, wenn ein Signal (z.B. framelocked(Rahmen-gesperrt)-Signal) aktiv wird.
-
11 zeigt eine Ausführungsform einer Beziehung zwischen Latenz 1102 und Zeiger 1104 in einem 4-zu-20-Portausrichter 402. In einer Ausführungsform erzeugt der 4-zu-20-Portausrichter 402 parallele Daten vom Hochgeschwindigkeitssignal und leitet das Ergebnis zur Systemtaktdomäne. Mit anderen Worten, nimmt die Latenz 1102 in der Systemtaktdomäne an bestimmten Positionen, beispielsweise Positionen 1106, 1108 zu, was eine zunehmende Kommunikationsverzögerung des Hochgeschwindigkeitskanals widerspiegelt. Unterdessen beeinflusst die Verzögerung im Hochgeschwindigkeitskanal die Position einer Rahmengrenze und diese Informationen können als Zeigerwerte des Zeigers 1104 erhalten werden. Unter Verwendung der dargestellten graphischen Beziehung zwischen Latenz 1102 und Zeiger 1104 können einige wesentliche Punkte erkannt werden, wie z.B. jede Latenzerhöhung 1106, 1108, die eine Unstetigkeitsstelle widerspiegelt. In diesem Fall erhöht sich die Latenz 1102 an den Positionen 1106, 1108 (bei ptr 8, wptr 2).
-
12 zeigt eine Ausführungsform von Portausrichtung auf Basis von Zeigerwerten über mehrere Ports. Die gezeigte Ausführungsform stellt eine Beziehung zwischen Latenz 1202 und Zeiger 1204 (und wptr 1206) dar, mit verschiedenen Balken 1208–1220, die verschiedene von jedem Port empfangene ptr-Werte 1204 und wptr-Werte 1206 wiedergeben. Zum Beispiel mit Bezug auf Fall 1 1208, 1218, hat der erste Port 1222 von Balken 1208 einen wptr-Wert von 0, während der zweite Port 1224 von Balken 1218 einen wptr-Wert von 2 aufweist, was anzeigt, dass die Latenzen für diese beiden Ports unterschiedlich voneinander sind. Wenn jedoch diese beiden Balken 1208, 1218 nach rechts in die sichere Zone verschoben werden, wird der erste Wert von wptr 0 wptr 2, während der zweite Wert von wptr 2 wptr 4 wird und beide zeigen die gleiche Latenz. Die zum Verschieben der beiden Balken 1208, 1218 auf die beiden neuen wptr-Werte erforderliche Menge bedarf zwei Takte von rck oder 8 UI 1226, was ein Absicht des Anordnens von zwei Registern in der ersten Stufe des Datenpfades 508 darstellt.
-
In ähnlicher Weise ist im Fall 2 1210, 1220 der erste Port 1228 von Balken 1210 bei wptr 1, während der zweite Port 1230 von Balken 1220 bei wptr 3 ist. Die notwendige Anzahl, um die beiden Balken 1210, 1220 auf die beiden neuen wptr Werte in einer sicheren Zone zu verschieben, kann zwei Takte von rck oder 8 UI 1232 benötigen. Allerdings sind die übrigen Illustrationen von Fall 3 1212, Fall 4, 1214 und Fall 5 1216 bereits in einer sicheren Zone platziert und es gibt keine Notwendigkeit, sie zu verschieben. Beim Vergleich von Fall 1 1208, 1218 und Fall 4 1214 kann die Zeigerverschiebung abhängig von den wptr Werten von anderen Ports festgelegt werden, selbst wenn ein wptr einen Wert von 0 aufweist.
-
13 zeigt eine Ausführungsform eines Verfahrens, das mit einem Signal (z.B. jmp-Signal) verbunden ist. Die veranschaulichte Verfahrensausführungsform wird benutzt, um einen jmp-Signalwert zu bestimmen. Wenn wptr von Ports bei Block 1302 gültig sind und wenn beispielsweise ein wptr in einem Port bereit wird, wird es auch ein stable (stablies)-Signal setzen, wie in 5 gezeigt ist. Wenn im Entscheidungsblock 1310 alle stable-Signale von Ports 1 sind, wird ein jmp-Wert bestimmt. Es gibt zwei Pfade in dem gezeigten Entscheidungsdiagramm: Zum Beispiel, wenn bei Entscheidungsblock 1304 einer der wptr 0 ist und wenn bei Entscheidungsblock 1306 der andere wptr-Wert gleich 1 oder 2 ist, ist bei Block 1308 der jmp-Wert gleich 1. Falls nicht, ist bei Block 1314 der jmp-Wert gleich 0. Auf der anderen Seite, wenn bei Entscheidungsblock 1310 der Wert für einen der wptr 1 ist und wenn im Entscheidungsblock 1312 die anderen wptr auf 2 oder 3 gesetzt werden, wird bei Block 1308 der jmp-Wert auf 1 gesetzt. Falls nicht, wird bei Block 1314 der jmp-Wert auf 0 gesetzt. Diese Entscheidung kann in einem Einzelzyklus parallel berechnet werden. Sie setzt auch ein allstable (alle-stabil)-Signal, wie es in 5 gezeigt ist, um anzuzeigen, dass jmp bestimmt wurde und der angeschlossene 4-zu-20-Ausrichter wird darauf aufmerksam gemacht.
-
14 zeigt eine Ausführungsform eines Verfahrens zur Durchführung von automatischer Datenausrichtung für mehrere Datenübertragungskanäle. Beim Verarbeitungsblock 1402 wird ein Deseriellisierer eingeschaltet und konfiguriert, um eine Rahmengrenze zu detektieren und für den normalen Betrieb bereit zu sein, nachdem er eingeschaltet wurde. Beim Verarbeitungsblock 1404 wird ein Gerät eingeschaltet und sendet ein SYNC2-Muster zu einem Host im Ausgangszustand (initial state). Beim Verarbeitungsblock 1406 sendet ein mit dem Gerät gekoppelter Host ein SYNC-Muster. Das Gerät macht Ausrichter (im Inneren des Geräts) geltend, um mit der Suche nach Rahmengrenzen (beispielsweise SearchFrame) fortzufahren und beim Verarbeitungsblock 1408 versuchen daher die Ausrichter eine vordefinierte Sequenz von SYNC-Muster innerhalb eines eingehenden Datenstroms aufzufinden. Beim Verarbeitungsblock 1410 interagieren die Ausrichter mit Portausrichtern, um die Rahmengrenze zu finden und Synchronisation zwischen den Ports zu erreichen.
-
Im Entscheidungsblock 1412 wird bestimmt, ob ein SYNC-Muster in der Ausgabe von jedem der Ausrichter aufgefunden wurde. Falls nicht, fährt das Verfahren mit Verarbeitungsblock 1410 fort. Falls ja, wird das Verfahren bei Verarbeitungsblock 1414 fortgesetzt, wo die Ausrichter das FrameLocked-Signal setzen, um das Gerät zu informieren. Um den Host zu signalisieren, beginnt das Gerät dann bei Verarbeitungsblock 1416 SYNC-Muster an den Host zu senden. Beim Verarbeitungsblock 1418 sendet der Host nach der Kanaleinrichtung einen Starte-Normalbetrieb.
-
15 zeigt ein Computersystem 1500, mit dem eine Ausführungsform der vorliegenden Erfindung implementiert werden kann. Das Computersystem 1500 weist einen Systembus 1520 zum Kommunizieren von Informationen und einen an den Bus 1520 gekoppelten Prozessor 1510 zum Verarbeiten von Informationen auf. Gemäß einer Ausführungsform ist der Prozessor 1510 mit einem aus der Vielzahl von Mikroprozessoren implementiert. Ein Fachmann würde jedoch erkennen, dass auch andere Prozessoren benutzt werden können.
-
Das Computersystem 1500 weist ferner zum Speichern von Informationen und vom Prozessor 1510 auszuführenden Anweisungen einen Direktzugriffsspeicher (random access memory, RAM) oder eine andere dynamische Speichervorrichtung 1525 auf (hier als Hauptspeicher bezeichnet), die mit dem Bus 1520 gekoppelt ist. Der Hauptspeicher 1525 kann auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung von Anweisungen durch den Prozessor 1510 verwendet werden. Das Computersystem 1500 kann auch einen Nur-Lese-Speicher (ROM) und/oder eine andere statische Speichervorrichtung 1526 aufweisen, die mit dem Bus 1520 zum Speichern von statischen Informationen und vom Prozessor 1510 verwendete Anweisungen gekoppelt ist.
-
Eine Datenspeichervorrichtung 1525, wie z.B. eine Magnetplatte oder eine optische Platte und ihr entsprechendes Laufwerk kann ebenfalls mit dem Computersystem 1500 zum Speichen von Informationen und Befehlen gekoppelt sein. Das Computersystem 1500 kann auch mit einem zweiten Eingang/Ausgang(E/A)-Bus 1550 über eine E/A-Schnittstelle 1530 gekoppelt sein. Eine Vielzahl von E/A-Geräten können mit dem E/A-Bus 1550 gekoppelt sein, einschließlich einer Anzeigevorrichtung 1524, einer Eingabevorrichtung (z.B. eine alphanumerische Eingabevorrichtung 1523 oder eine Zeigerssteuervorrichtung 1522). Die Kommunikationsvorrichtung 1521 dient dem Zugreifen auf andere Rechner (Server oder Clients) über externe Datennetze. Die Kommunikationsvorrichtung 1521 kann ein Modem, eine Netzwerkschnittstellenkarte oder andere wohlbekannte Schnittstellengeräte, wie sie z.B. zur Kopplung mit Ethernet, Token Ring oder anderen Arten von Netzwerken verwendet werden, aufweisen. Das Computersystem 1500 kann ein Netzwerk-Computer-Gerät, ein Mobiltelefon, ein persönlicher Datenassistent (PDA), usw., aufweisen, ist aber nicht darauf beschränkt.
-
Das Computersystem 1500 kann in einem Client/Server-Netzwerksystem verbunden sein. Ein Netzwerk kann ein Local Area Network (LAN), Wide Area Network (WAN), Metropolitan Area Network (MAN), Intranet, das Internet, etc., aufweisen. Wie an anderer Stelle in diesem Dokument erwähnt, kann eine beliebige Anzahl von Netzwerkgeräten kaskadiert werden, um mit einem Port-Multiplizierer verbunden zu sein, wodurch ein Netzwerkmechanismus innerhalb eines Netzwerks gebildet wird. Es wird erwogen, dass es eine beliebige Anzahl von Geräten über das Netzwerk verbunden sein können. Ein Gerät kann Datenströme, wie z.B. Streaming-Media-Daten, über eine Vielfalt von Standard- und Nicht-Standard-Protokollen, einschließlich der in diesem Dokument beschriebenen Protokolle, an andere Geräte im Netzwerksystem übertragen.
-
In der obigen Beschreibung werden zum Zweck der Erläuterung zahlreiche spezifische Details dargelegt, die dem gründlichen Verständnis der vorliegenden Erfindung dienen. Es wird jedoch für einen Fachmann offensichtlich sein, dass die vorliegende Erfindung ohne einige dieser spezifischen Details ausgeführt werden kann. In anderen Fällen werden wohlbekannte Strukturen und Vorrichtungen in Blockdiagrammform gezeigt. Zwischen den dargestellten Komponenten können sich Zwischenstrukturen befinden. Die hierin beschriebenen oder dargestellten Komponenten können zusätzliche Eingänge oder Ausgänge haben, die nicht dargestellt oder beschrieben worden sind.
-
Verschiedene Ausführungsformen der vorliegenden Erfindung können verschiedene Verfahren umfassen. Diese Verfahren können durch Hardwarekomponenten ausgeführt werden oder können in Computerprogrammen oder maschinenausführbaren Befehlen eingebettet sein, die einen Universal- oder Spezialprozessor oder mit den Befehlen programmierte Logikschaltungen veranlassen können, die Verfahren auszuführen. Alternativ können die Verfahren durch eine Kombination von Hardware und Software ausgeführt werden.
-
Ein oder mehrere in diesem Dokument beschriebe Module, Komponenten oder Elemente, wie z.B. die in einem oder mit einem Ausführungsbeispiel eines Portvervielfacherverbesserungsmechanismus (port multiplier enhancement mechanism) assoziierten gezeigten, können Hardware, Software, und/oder deren Kombination aufweisen. Im Fall, dass ein Modul Software aufweist, können die Software-Daten, Befehle und/oder Konfiguration über einen Herstellungsartikel (article of manufacture) von einer Maschine/einem elektronischen Gerät/einer Hardware bereitgestellt werden. Ein Herstellungsartikel kann ein maschinenzugängliches/lesbares Medium mit Inhalt zum Bereitstellen von Befehlen, Daten, usw., aufweisen. Der Inhalt kann darin resultieren, dass eine elektronische Vorrichtung, zum Beispiel ein Dateiserver, eine Platte oder eine Festplattensteuerung, wie sie hier beschrieben wurden, verschiedene beschriebe Operationen oder Ausführungen, durchführt.
-
Teile der verschiedenen Ausführungsbeispiele der vorliegenden Erfindung können als ein Computerprogrammprodukt zur Verfügung gestellt werden, das ein computerlesbares Medium aufweisen kann, auf dem Computerprogrammbefehle gespeichert sind, die verwendet werden können, um einen Computer (oder andere elektronische Geräte) zu programmieren, um ein Verfahren gemäß den Ausführungsformen der vorliegenden Erfindung auszuführen. Das maschinenlesbare Medium kann Disketten, optische Platten, Compact Disc Read-Only Memory (CD-ROM) und magnetooptische Platten, Nur-Lese-Speicher (ROM), Direktzugriffsspeicher (RAM), löschbare programmierbare Nur-Lese-Speicher (EPROM), elektrische EPROM (EEPROM), magnetische oder optische Karten, Flash-Speicher oder andere Arten von Medien/maschinenlesbaren Medium, die zum Speichern von elektronischen Befehle geeignet sind, umfassen, ist aber nicht darauf beschränkt. Darüber hinaus kann die vorliegende Erfindung auch als ein Computerprogrammprodukt heruntergeladen werden, wobei das Programm von einem entfernten Computer zu einem anfordernden Computer übertragen werden kann.
-
Viele der Verfahren sind in ihrer grundlegendsten Form beschrieben, aber Prozesse können aus irgendeinem der Verfahren hinzugefügt oder entfernt werden und Information kann von irgendwelchen der beschriebenen Meldungen hinzugefügt oder entfernt werden ohne vom grundlegenden Umfang der vorliegenden Erfindung abzuweichen. Es ergibt sich für den Fachmann, dass viele weitere Modifikationen und Anpassungen vorgenommen werden können. Die besonderen Ausführungsformen sind nicht bereitgestellt worden, um die Erfindung zu beschränken, sondern um sie zu veranschaulichen. Der Umfang der Ausführungsformen der vorliegenden Erfindung soll nicht anhand den spezifischen oben bereitgestellten Beispielen bestimmt werden, sondern nur durch die nachfolgenden Ansprüche.
-
Wenn gesagt wird, dass ein Element „A“ an oder mit Element „B“ gekoppelt ist, kann Element A direkt mit Element B gekoppelt sein oder indirekt, beispielsweise durch Element C, gekoppelt sein. Wenn die Beschreibung oder die Ansprüche angeben, dass eine Komponente, Merkmal, Struktur, Prozess oder Eigenschaft A eine Komponente, Merkmal, Struktur, Prozess oder Eigenschaft B „bewirkt“, bedeutet dies, dass „A“ zumindest Teilursache von „B“ ist, dass aber auch zumindest eine andere Komponente, Merkmal, Struktur, Prozess oder Eigenschaft die Bewirkung von „B“ unterstützen kann. Wenn die Beschreibung angibt, dass eine Komponente, Merkmal, Struktur, Prozess oder Eigenschaft enthalten sein „kann“ oder „könnte“, ist es nicht erforderlich, dass diese Komponente, Merkmal, Struktur, Prozess oder Eigenschaft aufgewiesen wird. Wenn die Beschreibung oder die Ansprüche sich auf „ein“ Element beziehen, bedeutet dies nicht, dass es nur eines der beschriebenen Elemente gibt.
-
Eine Ausführungsform ist eine Implementierung oder ein Beispiel der vorliegenden Erfindung. Die Bezugnahme in der Beschreibung auf „eine Ausführungsform“, „einige Ausführungsformen“ oder „andere Ausführungsformen“ bedeutet, dass ein bestimmtes Merkmal, Struktur oder Eigenschaft, die in Verbindung mit den Ausführungsformen beschrieben ist, in wenigstens einigen Ausführungsformen enthalten ist, aber nicht notwendigerweise in allen Ausführungsformen. Die verschiedenen Erwähnungen von „einer Ausführungsform“ oder „einigen Ausführungsformen“ beziehen sich nicht notwendigerweise auf dieselben Ausführungsformen. Es versteht sich, dass in der vorstehenden Beschreibung der Ausführungsbeispiele der vorliegenden Erfindung manchmal verschiedene Merkmale in einer einzigen Ausführungsform, Figur oder deren Beschreibung gruppiert werden, mit dem Ziel, die Offenbarung zu straffen und das Verständnis von einem oder mehreren der verschiedenen erfinderischen Aspekte zu verbessern. Dieses Verfahren der Offenbarung soll jedoch nicht als eine Absicht wiedergebend ausgelegt werden, dass die beanspruchte Erfindung mehr Merkmale erfordert, als ausdrücklich in jedem Anspruch genannt werden. Stattdessen liegen, wie es die folgenden Ansprüche wiedergeben, erfinderische Aspekte in weniger als allen Merkmalen einer einzelnen vorstehend offenbarten Ausführungsform. Somit werden die Ansprüche hiermit ausdrücklich in diese Beschreibung aufgenommen, wobei jeder Anspruch für sich alleine eine separate Ausführungsform dieser Erfindung ist.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-