Connect public, paid and private patent data with Google Patents Public Datasets

Modem zur Kommunikation von Hochgeschwindigkeitsdaten

Info

Publication number
DE69633894T2
DE69633894T2 DE1996633894 DE69633894T DE69633894T2 DE 69633894 T2 DE69633894 T2 DE 69633894T2 DE 1996633894 DE1996633894 DE 1996633894 DE 69633894 T DE69633894 T DE 69633894T DE 69633894 T2 DE69633894 T2 DE 69633894T2
Authority
DE
Grant status
Grant
Patent type
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE1996633894
Other languages
English (en)
Other versions
DE69633894D1 (de )
Inventor
Ran-Fun Chiu
Mehrban Jam
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
Grant date

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Queuing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. local area networks [LAN], wide area networks [WAN]
    • H04L12/2801Broadband local area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L29/00Arrangements, apparatus, circuits or systems, not covered by a single one of groups H04L1/00 - H04L27/00 contains provisionally no documents
    • H04L29/02Communication control; Communication processing contains provisionally no documents
    • H04L29/06Communication control; Communication processing contains provisionally no documents characterised by a protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption

Description

  • Querverweis auf verwandte Anmeldungen
  • [0001]
    Diese Anmeldung bezieht sich auf die ebenfalls anhängige Anmeldung EP-A-0765055 mit dem Titel „High-Speed Data Communications Network System and Method", eingereicht am 12. September 1996 beim EPO, ebenfalls mit der vorliegenden Erfindung übertragen.
  • Gebiet der Erfindung
  • [0002]
    Die vorliegende Erfindung bezieht sich auf eine Datenkommunikation und insbesondere auf die Zweiwegkommunikation von Daten auf einem Kabel.
  • Hintergrund der Erfindung
  • [0003]
    In der Vergangenheit gehörten Computernetze zur akademischen Welt, zu großen Forschungsgemeinschaften, Unternehmen und Regierungsbehörden. Im Laufe der Zeit haben sich diese Netze dahingehend entwickelt, dass sie viel mehr Computerbenutzer und -verwendungen innerhalb ihres Bereichs enthalten. Außerdem wurden die Netze in großem Maßstab verbunden („vernetzt"), um ein weltweites Netz von Computern zu bilden, das als das Internet bekannt ist, und neue Typen von Computernetzen sind verfügbar geworden. Somit ist es heute in hohem Maße wahrscheinlich, dass ein Computer mit irgendeinem Typ von Computernetz verbunden ist.
  • [0004]
    Eine Folge dieser ständig zunehmenden Konnektivität von Computern besteht darin, dass die Menge an Informationen, die „online" verfügbar sind, enorm geworden ist. Zum Beispiel enthielt im August 1995 eine beliebte Suchmaschine von Informationen, die im Internet verfügbar sind (Lycos, http:\\www.lycos.com) einen Index von 5,6 Millionen Webseiten. In ähnlicher Weise stehen die Online-Dienste, wie z. B. America Online, Compuserve und Prodigy, miteinander im Wettbewerb auf der Basis der Menge an Informationen, die durch ihre bestimmten Dienste verfügbar sind.
  • [0005]
    Während Informationsverbreitung eine wichtige Verwendung von Computernetzen darstellt, liefert Computerkonnektivität viele andere wertvolle Dienste. Ein Beispiel ist die elektronische Post. Ein weiteres ist der elektronische Geschäftsverkehr.
  • [0006]
    Aus all diesen Gründen ist es mittlerweile allgemein anerkannt, dass, während es in der Vergangenheit stimmte, dass es einen Wettbewerbsvorteil liefern konnte, mit einem Netz oder einem Online-Dienst verbunden zu sein, dies in der modernen Geschäftswelt und zu Bildungszwecken eine Notwendigkeit geworden ist.
  • [0007]
    Viele Benutzer von Online-Diensten und dem Internet schließen sich an diese Netzwerke über Modems und herkömmliche Telefonleitungen an. Während dies für einige Verwendungen ausreichend ist, ist es für andere nicht wünschenswert. Es hat den Vorteil, eine eigens vorgesehene Verbindung zwischen einem Benutzer und einem Computer zu liefern, mit dem dieser Benutzer verbunden ist. Und es nutzt eine Verbindungsleitung, die Telefonleitung, an die die meisten Haushalte und Büros bereits angeschlossen sind. Indem dem Benutzer eine eigens vorgesehene Verbindung bereitgestellt wird, besteht keine Notwendigkeit, Kollisionen zwischen Benutzern zu lösen, die versuchen, gleichzeitig auf das Netz zuzugreifen. Alle derartigen Konflikte werden an dem Computer gelöst, an den die mehreren Benutzer angeschlossen sind. (Natürlich müssen, falls dieser Computer mit anderen Computern auf gemeinschaftlich verwendeten Leitungen verbunden ist, Konflikte zwischen diesen Computern gelöst werden.) Telefonleitungen sind jedoch alles andere als die ideale Weise, Computer zu verbinden. Erstens besteht der offensichtliche Nachteil, dass es bei einer Heimcomputerumgebung sein kann, dass ein Haushalt nur mit einer Telefonleitung ausgestattet ist. Somit würde eine ausgedehnte Online-Verwendung die Telefonleitung blockieren, die zu anderen Verwendungen gebraucht werden könnte. Es gibt auch technische Probleme mit Telefonleitungen. Diese Leitungen sind für eine Sprachkommunikation vorgesehen, die eine Übertragungsbandbreite aufweist, die auf 3,2 KHz beschränkt ist. Somit weist eine digitale Kommunikation über Telefonleitungen eine relativ geringe Bitrate auf. Normalerweise ist ein modernes Modem, das einen Personalcomputer mit einer Telefonleitung verbindet, auf 28,8 kbps beschränkt.
  • [0008]
    Deshalb ist es erwünscht, alternative Technologien zum Verbinden von Heimcomputern mit Computernetzen zu liefern.
  • [0009]
    Ein Technologietyp, der die Bandbreite für Verbindungen von Heimcomputern und Kleinbürocomputern mit Computernetzen erhöht, sind ISDN-Leitungen. Dabei handelt es sich um eigens vorgesehene Leitungen, die für eine digitale Kommunikation zwischen Computern vorgesehen sind. ISDN weist eine viel höhere Bandbreite auf als Telefonleitungen. Die meisten Haushalte und kleinen Büros sind jedoch nicht mit ISDN-Leitungen ausgestattet, und wenige sind bereit, die Kosten dafür auf sich zu nehmen, ISDN installieren zu lassen.
  • [0010]
    Eine Technologie, die in die meisten Haushalte und kleinen Büros eingezogen ist, sind Kabelfernsehnetze. Anders als Telefonnetze, die jedem Haushalt eigens vorgesehene Leitungen liefern, verwenden bei Kabelfernsehsystemen alle Teilnehmer in einer Nachbarschaft das Kabel gemeinsam. Es ist jedoch auf den Kabeln, die durch die meisten Kabelfernsehsysteme verwendet werden, verglichen mit Telefonleitungen eine viel größere Bandbreite verfügbar.
  • [0011]
    Aus diesen Gründen ist es erwünscht, eine Zweiwegdatenkommunikation zwischen Heim-/Kleinbürocomputern und Computernetzen über vorhandene Kabelfernsehsysteme zu liefern.
  • [0012]
    Da alle Kabelfernsehteilnehmer in einer Nachbarschaft ein Kabel gemeinschaftlich verwenden, besteht eine Möglichkeit, dass mehrere Computer, die mit einem derartigen Netz verbunden sind, gleichzeitig Daten auf diesem Kabel übertragen. Eine derartige gleichzeitige Übertragung würde verstümmelte Daten zur Folge haben, und die Nachricht von keinem der Sender würde durch den beabsichtigten Empfänger erfolgreich empfangen, außer es liegt ein Mechanismus zum Vermeiden oder Lösen derartiger Konkurrenzprobleme vor.
  • [0013]
    Das Problem, Konkurrenz auf gemeinschaftlich verwendeten Computernetzen zu vermeiden, ist in einer Vielzahl von Weisen angegangen worden. Ein früher Lösungsansatz ist als das ALOHA-System bekannt. ALOHA entstand an der Universität von Hawaii und wurde anfangs hauptsächlich zur Kommunikation unter Verwendung von Rundfunk verwendet. Die Kommunikation über ein gemeinschaftlich verwendetes Kabel ist auch ein Rundsendesystem, bei dem alle Stationen, die an dem Kabel angeschlossen sind, jedes Signal empfangen, das über dieses Kabel übertragen wird.
  • [0014]
    ALOHA's Grundprinzip besteht darin, es jedem Benutzer, der den gemeinsamen Kanal verwendet, zu ermöglichen, eine Nachricht zu jedem beliebigen gegebenen Zeitpunkt rundzusenden. Der sendende Benutzer hört dann dem Kanal zu und wartet auf seine eigene Nachricht. Wird die Nachricht nicht empfangen (durch den Benutzer, der dieselbe gesendet hat), weiß der Benutzer, dass die Nachricht aus irgendeinem Grund vernichtet worden sein muss. Mit hoher Wahrscheinlichkeit wurde die Nachricht durch eine andere Nachricht vernichtet, die gleichzeitig durch einen anderen Benutzer gesendet wurde. Um diese Konkurrenz für den gemeinsamen Kanal zu lösen, halten sich beide Benutzer eine zufällige Zeitspanne lang zurück („back-off"), bevor dieselben die Nachricht erneut senden. Somit würden, falls zwei Benutzer versuchen, eine Nachricht zu einer Zeit t zu senden, deren jeweilige Nachrichten vernichtet. Durch ein Zurückhalten (Backing off) für zufällige Zeitspannen würde der erste Benutzer seine Nachricht bei t + r1 und der zweite Benutzer seine Nachricht bei t + r2 erneut senden. Falls r1 und r2 unterschiedlich sind (was sie normalerweise sein sollten, falls sie wirklich zufällig ausgewählt werden), sollte es beim zweiten Mal, wenn dieselben gesendet werden, keinen Konflikt zwischen den zwei Nachrichten geben.
  • [0015]
    Ein Nachteil von ALOHA besteht darin, dass die Wahrscheinlichkeit einer Konkurrenz sehr hoch ist. Die Kanaleffizienzrate für ALOHA beträgt lediglich 18%.
  • [0016]
    Eine Verbesserung von ALOHA ist Schlitz-ALOHA. Bei Schlitz-ALOHA wird die Zeit in bestimmte Intervalle geteilt, und Nachrichten können nur während dieser Intervalle gesendet werden, d. h. keine Nachricht darf sich über Intervallgrenzen erstrecken. Die Kanaleffizienz von Schlitz-ALOHA beträgt 38%.
  • [0017]
    Für eine Erörterung von ALOHA, Schlitz-ALOHA und die Ableitung der Kanaleffizienzraten sei auf Tanenbaum, Andrew, Computer Networks, 2. Ausgabe, Prentice-Hall, S. 121–124, verwiesen.
  • [0018]
    Derzeitige Lösungen für eine Datenkommunikation auf Kabelfernsehsystemen umfassen LANMCN-AT der Zenith Corporation und LCP der LANcity Corporation, Andover, MA. Diese Produkte haben eine gemeinsame Entwurfsphilosophie. Bei beiden werden die Aufwärtsdaten, d. h. die Daten, die von dem Endbenutzer zu der Kabelsystemkopfstelle übertragen werden, durch das untere Band des Rundsendespektrums (unter den Frequenzbändern, die für Abwärtsdaten vorgesehen sind) übertragen. Diese Aufwärtsdaten werden auf eine von zwei Weisen gehandhabt. Die erste Alternative besteht darin, zu einem höheren Band des Spektrums frequenzzuübersetzen, und die zweite besteht darin, die Daten zu demodulieren. Die gehandhabten Daten werden dann auf dem Oberband erneut gesendet. Alle Modems einschließlich des Modems an der Kopfstelle übertragen auf dem Unterband. Die übertragenen Daten werden entweder frequenzübersetzt oder demoduliert. Alle Modems empfangen dann auf dem Oberband.
  • [0019]
    Die Aufwärtsdaten und die Abwärtsdaten weisen die gleiche Bandbreite und Datenrate auf. Tatsächlich gibt es, da das Modem an der Kopfstelle wie alle anderen Modems in dem System behandelt wird, keine Unterscheidung zwischen Aufwärts- und Abwärtsdaten.
  • [0020]
    Bei diesem Lösungstyp für digitale Datenkommunikation auf einem Kabelfernsehkabel treten mehrere Probleme auf. Erstens unterscheiden sich die Übertragungscharakteristika des Abwärtsbandes von denen des Aufwärtsbandes. Das Aufwärtsband (Unterband) weist viel mehr Rauschen auf als das Abwärtsband. Um bei beiden Bändern die gleiche Datenrate zu erzielen, ist das Abwärtsband hergestellt, um mit dem Aufwärtsband konform zu sein. Somit erreicht das Verfahren nicht das volle Datenratenpotential des Abwärtsbandes.
  • [0021]
    Zweitens sind die Aufwärtsdaten in den meisten Fällen für einen entfernten Server und nicht für einen Partnerendbenutzer bestimmt. Deshalb verschwendet ein erneutes Übertragen der Daten auf dem Abwärtsband Abwärtsbandbreite.
  • [0022]
    Deshalb wäre es erwünscht, ein Hochgeschwindigkeitsdatenkommunikationssystem mit einer Hocheffizienzrate zu liefern, das ein gemeinschaftlich verwendetes Kabel verwendet und die verfügbare Bandbreite des Übertragungskabels voll ausnutzt.
  • [0023]
    Karshmer u. a., „TVNET: AN IMAGE AND DATA DELIVERY SYSTEM ...", offenbart ein System, bei dem eine Bild- und Datenlieferung konzipiert ist, um zwei Kanäle eines Standardkabelfernsehsystems zu verwenden. Eine Datenübertragung auf dem Aufwärts- und dem Abwärtskanal wird auf einer Anforderungsbasis gehandhabt, wobei Knoten, die digitale oder analoge Informationen übertragen möchten, die Möglichkeit haben, Anforderungsnachrichten an eine Kopfstelle zu senden. Anforderungen für eine Übertragung von Datenschlitzen können während einer Reservierungsunterkanalphase von den Knoten an die Kopfstelle übertragen werden, wobei das Netz für Anforderungsdatenschlitze geöffnet wird. Danach wird in der Datenphase eine Stattgabeliste auf dem Abwärtskanal von der Kopfstelle zu dem Knoten übertragen, die denselben ihre Position in der Datenübertragungsphase mitteilt. Am Ende der Stattgabeliste senden die Knoten, die die Erlaubnis für eine Übertragung empfangen haben, eine vorbestimmte Anzahl von Paketen auf dem Aufwärtskanal zu der Kopfstelle. Die Kopfstelle überträgt die empfangenen Pakete zu dem Abwärtskanal zum Übertragen derselben an die Empfangsknoten. In dem letzten Datenpaket sendet der Knoten, dem die Übertragung bewilligt ist, ein letztes Datenblockbit, um dem Empfänger mitzuteilen, dass keine weiteren Datenpakete mehr kommen, und um dem nächsten Sender in der Reservierungsliste ein Signal zu geben, mit dem Übertragen zu beginnen.
  • [0024]
    Die US-5,446,918 beschreibt ein interaktives Kabelnetz, bei dem Informationen von einer Kopfstelle zu einem zentralen Verteiler, der eine Mehrzahl von Kopfstellenmodems aufweist, zu einer Gruppe von Benutzermodems gesendet werden, die mit einem jeweiligen Kopfstellenmodem verbunden sind. Die Verwendung innerhalb einer Teilgruppe wird abwechselnd abgefragt durch ein Befragen im Kreis, das es ermöglicht, Benutzermodems zu unterdrücken und zu aktivieren, die zu einem gegebenen Zeitpunkt nicht das Wort haben.
  • [0025]
    Die US-4,553,161 zeigt ein System zum Übertragen von Daten bei einem Zweiwegkabelfernsehsystem. Das System umfasst eine Kabelkopfstelle, die mit jedem Endgerät einer Mehrzahl von Teilnehmern über ein Fernsehkabel gekoppelt ist. Diese Teilnehmerendgeräte umfassen eine Decodiervorrichtung, die eine Abstimmvorrichtung umfasst, die auf einen codierten Kabelfernsehkanal abgestimmt ist. Die Daten werden während des vertikalen Austastintervalls eines Abwärtsvideoprogrammiersignals geliefert, wobei eine Adresse, die den geographischen Bereich definiert, in dem das System wirksam ist, in einem x-Bit übertragen wird, und der Programmidentifikationscode, der das zugehörige Fernsehprogramm definiert, in einem y-Bit übertragen wird. Die Abwärtssignale werden durch jedes der Teilnehmerendgeräte empfangen und werden decodiert, um einen Adressübereinstimmungszwischenspeicherpuls zu erzeugen, wenn eine Übereinstimmung zwischen dem empfangen y-Bitprogrammcode und dem gespeicherten Programmdecodierautorisierungsstatus angetroffen wird. Bei der Aufwärtsübertragung werden Datenpakete von den Ausgangsanschlussstiften eines Mikrocomputers zu einem Sender geliefert und werden auf vier getrennten Kanälen zu der Kopfstelle übertragen, derart, dass die Datenpakete mit dem Abwärtsvideosignal durch den erzeugten Adressübereinstimmungszwischenspeicherpuls synchronisiert sind.
  • [0026]
    Es ist die Aufgabe der vorliegenden Erfindung, eine Datenübertragung mit einer hohen Effizienz zu liefern.
  • [0027]
    Diese Aufgabe wird durch ein Hochgeschwindigkeitsdatenmodem gemäß Anspruch 1 gelöst.
  • [0028]
    Gemäß einem Ausführungsbeispiel wird ein Computernetz zur Hochgeschwindigkeitsdatenkommunikation bereitgestellt, das ein Datenübertragungskabel mit einer Wurzel und zumindest einem Blattknoten aufweist. Ein Signalumwandlungssystem (SCS) ist an der Wurzel angeschlossen, und zumindest eine Client-Station ist an einem Blattknoten angeschlossen. Das SCS umfasst einen Sender, der Abwärtsdaten auf dem Kabel in einem ersten Frequenzband überträgt; und einen Empfänger, der Daten von den Client-Stationen auf einem zweiten Frequenzband empfängt; wobei die Abwärtsdaten Synchronisierungs- und Bestätigungssignale umfassen. Jede Client-Station weist einen Empfänger, der Daten auf dem ersten Frequenzband empfängt, und einen Sender auf, der Daten auf einem zweiten Frequenzband überträgt gemäß den auf dem ersten Frequenzband empfangenen Synchronisierungssignalen.
  • [0029]
    Das Computernetz folgt den Schritten eines Verfahrens, das ein Abwärtsübertragen eines Steuersignals, das Synchronisierungsinformationen aufweist, auf einem ersten Frequenzband von dem Signalumwandlungssystem (SCS), ein Empfangen des Steuersignals an Client-Stationen, ein Aufwärtsübertragen von den Client-Stationen an das SCS auf einem zweiten Frequenzband, wobei die Übertragung zeitlich bezüglich der Synchronisierungsinformationen abgestimmt ist, und ein Bestätigen des erfolgreichen Empfangs der Aufwärtsübertragung auf dem ersten Frequenzband durch das SCS aufweist.
  • [0030]
    Die Übertragungspakete der Client-Station können Anforderungen für reservierte Schlitze auf dem zweiten Frequenzband für nachfolgende Übertragungen umfassen, und das SCS weist einen Zeitplaner auf, der wirksam ist, um eine Startzeit für angeforderte reservierte Schlitze zu bestimmen, und überträgt die Startzeit für die angeforderten reservierten Schlitze. Eine Client-Station, die reservierte Schlitze angefordert hat, wartet mit dem Fortfahren ihrer Übertragung bis zu dieser Startzeit.
  • Kurze Beschreibung der Zeichnungen
  • [0031]
    1 ist eine Darstellung eines Nachbarschaftskabelfernsehsystems, das gemäß der vorliegenden Erfindung angepasst ist, um eine Datenkommunikation zwischen einem Signalumwandlungssystem (SCS), das an der Kopfstelle angeordnet ist, und Client-Stationen, die an den Teilnehmerorten angeordnet sind, zu liefern.
  • [0032]
    2 ist ein Schema des Signalumwandlungssystems (SCS) gemäß der vorliegenden Erfindung.
  • [0033]
    3 ist ein grobes Schema eines Kabelmodems, das gemäß dem Kabelfernsehsystem von 1 verwendet wird.
  • [0034]
    4 ist eine Kennlinie, die ein Beispiel von Amplituden über Frequenz für einen Teil des Frequenzspektrums für ein Kabelfernsehkabel zeigt.
  • [0035]
    5 ist eine Darstellung einer exemplarischen Aktivität auf dem Abwärtskanal und dem Aufwärtskanal.
  • [0036]
    6(a) ist ein Blockdiagramm des üblichen Rahmenformats für den Abwärtssteuerkanal.
  • [0037]
    6(b) ist ein Blockdiagramm des Formats eines Abwärtsbestätigungsrahmens, der auf dem Steuerkanal gesendet wird.
  • [0038]
    6(c) ist ein Blockdiagramm der Abwärtsnutzdatenrahmen, die von dem SCS zu den Kabelmodems übertragen werden.
  • [0039]
    7 ist ein Blockdiagramm eines üblichen Formats für einen Aufwärtskanalrahmen.
  • [0040]
    8 zeigt detaillierter ein Kabelmodem der vorliegenden Erfindung.
  • [0041]
    9 ist ein Blockdiagramm eines verallgemeinerten Verbindungsschemas zum Verbinden von Vorrichtungen mit der Busentscheidungs- und Prioritätsschaltung (BAPC).
  • [0042]
    10 ist ein Zeitdiagramm, das ein Beispiel einer Übertragung von Daten zwischen einer zustandsmaschinengesteuerten Vorrichtung und der BAPC zeigt.
  • [0043]
    11 ist ein Schema der Busentscheidungs- und Prioritätsschaltung (BAPC).
  • [0044]
    12 ist ein Schema eines Abschnitts einer Vorrichtung, und zwar des Abschnitts, der das Bestätigungssignal empfängt, und ist eine Darstellung des Betriebs der Vorrichtung im Stoß-Modus.
  • [0045]
    13 ist ein Zeitdiagramm, das einen exemplarischen Satz von Transaktionen zeigt, die durch die Busentscheidungs- und Prioritätsschaltung von 11 verarbeitet werden.
  • [0046]
    14(a) ist ein grobes Schema der Master-Aller-Zeiger-(MOAP-) Struktur der Steuerschaltung des Kabelmodems, wie es in 8 gezeigt ist.
  • [0047]
    14(b) ist ein Schema der allgemeinen Formate von Datenpaketen, wie diese in RAM gespeichert sind.
  • [0048]
    15 ist ein „Blasendiagramm" der allgemeinen Form einer ersten und einer zweiten Kategorie von Zustandsmaschinen.
  • [0049]
    16 ist ein Schema des verallgemeinerten Datenpfades 1601 von Adressregistern der Komponentenvorrichtungen der Steuerschaltung des Kabelmodems gemäß der vorliegenden Erfindung.
  • [0050]
    17 ist ein „Blasendiagramm" der Zustandsmaschine, die die vorgeschaltete Vorrichtung steuert.
  • [0051]
    18 ist ein „Blasendiagramm" der Zustandsmaschine, die die Chiffriervorrichtung steuert.
  • Detaillierte Beschreibung der bevorzugten Ausführungsbeispiele
  • [0052]
    1 ist eine Darstellung eines Nachbarschaftskabelfernsehsystems 100, das gemäß der vorliegenden Erfindung angepasst ist, um eine Datenkommunikation zwischen einem Signalumwandlungssystem (SCS) 101, das an einer Kopfstelle 103 angeordnet ist, und Client-Stationen 105a–j, die an Teilnehmerorten angeordnet sind, zu liefern. Jedes SCS 101 ist mit einem Paketrouter 117 verbunden, der Datenpakete zu und von entfernten Serverstationen leitet. Bei einem alternativen Verbindungsschema bildet ein SCS 101, z. B. 101'', lokal oder entfernt eine Schnittstelle mit einem Schaltungsschalter 119 für schaltungsgeschaltete konstante Bitratendienste. Letzterer kann verwendet werden, um eine digitalisierte Sprachverbindung mit einem Telefonnetz zu liefern.
  • [0053]
    Bei vielen Kabelfernsehsystemen sind etwa 500 bis 2.000 Teilnehmer an die gleiche Kopfstelle 103 angeschlossen. Die Kopfstelle 103 kommuniziert mit den verschiedenen Teilnehmerorten 105 über optische Faserkabel 107a und 107b, die mit einem Faserknoten 109 verbunden sind. Der Faserknoten 109 ist ferner über Koaxialkabel 111a und 111b angeschlossen. Der Faserknoten 109 enthält einen Mechanismus zum Umwandeln zwischen optischen und elektrischen Signalen. Die Kommunikation zwischen einem Router 117 und einem SCS 101 ist digital. Die Kommunikation zwischen der Kopfstelle 103 und den Teilnehmerorten erfolgt jedoch in analoger Form.
  • [0054]
    Das SCS 101 wandelt die digitalen Kommunikationssignale zwischen den Routern 117 und die analoge Kommunikation, die auf den optischen Faser- und Koaxialkabeln eines Kabelfernsehsystems stattfindet, um.
  • [0055]
    Jede Client-Station 105 enthält ein Kabelmodem 113, das mit einem Computer 115 verbunden ist. Bei alternativen Ausführungsbeispielen ist der Computer 115 durch andere Vorrich tungen ersetzt, die von einer Datenkommunikation mit der Kopfstelle 103 über das Kabel 111 profitieren würden. Beispiele für derartige Alternativen umfassen Set-Top-Boxen zum Anfordern bestimmter Kabelfernsehoperationen, z. B. Dienste nach dem Video-auf-Anfrage-Typ und interaktives Fernsehen.
  • [0056]
    2 ist ein Blockdiagramm des Signalumwandlungssystems (SCS) 101. Das Signalumwandlungssystem (SCS) 101 ist an die Faserkabel 107a und 107b angeschlossen. Unter Verwendung eines Senders 205 überträgt das SCS 101 Daten auf das Faserkabel 107a unter Verwendung eines 64-QAM- (64-Bit-Quadratur-Amplitudenmodulation-) oder 256-QAM- (256-Bit-QAM-) Übertragungsformats. Unter Verwendung mehrerer Empfänger 207 empfängt das SCS 101 QPSK-Daten auf mehreren Kanälen auf dem Faserkabel 107b. Sowohl der Sender 205 als auch der Empfänger 207 sind mit einem SCS-Bus 203 verbunden.
  • [0057]
    Das SCS 101 enthält eine Router-Schnittstelle 201, die mit einem Router 117 verbunden ist. Die ROUTER-Schnittstelle 201 empfängt und überträgt digitale Datenpakete, z. B. Internetprotokoll- (IP-) Pakete oder ATM-Zellen, zu dem Router 117. Die ROUTER-Schnittstelle 201 ist mit dem internen Bus 203 zum Übertragen von Daten zu und von anderen Komponenten des SCS 101 verbunden.
  • [0058]
    Eine zentrale Verarbeitungseinheit (CPU) 209 bewerkstelligt die Umwandlung von Daten zwischen 64-QAM, QPSK und dem digitalen Paketformat der Router-Schnittstelle 201. Die CPU 209 leitet auch Datenverkehr auf dem Bus 203. Außerdem erfordern viele der Daten, die auf den Kabeln 107a und 107b übertragen und empfangen werden, ein umfangreiches Verarbeiten und Formatieren. Die CPU 209 ist für dieses Verarbeiten und Formatieren zuständig. Viele der Prozeduren zum Steuern des Betriebs der CPU 209 sind in einem ROM 211 gespeichert, der mit dem Bus 203 verbunden ist. Ein RAM 213 zum Speichern von Daten während eines Verarbeitens und einer erneuten Übertragung ist ferner mit dem Bus 203 verbunden. Andere Prozeduren zum Steuern des Betriebs des SCS 101 und seiner Komponenten, wie z. B. der CPU 209, sind in sekundären Speichervorrichtungen 213 und 215 gespeichert, die beide über eine I/O-Einheit 217 mit dem Bus 203 verbunden sind.
  • [0059]
    In vielen Fällen sind Daten, die über die Kabel 107a und 107b zu und von dem SCS übertragen werden, verschlüsselt. Die CPU 209 fordert eine Datenverschlüsselungsvorrichtung 219 auf, die Verschlüsselungs- und Entschlüsselungsaufgaben auszuführen. Bei einem bevorzugten Ausführungsbeispiel verwendet das SCS den Datenverschlüsselungsstandard DES zur Verschlüsselung.
  • [0060]
    3 ist ein grobes schematisches Diagramm des Kabelmodems (CM) 113, das mit einem Kabel 111 und einem Personalcomputer (PC) 115 verbunden ist. Das CM 113 empfängt Datensignale von dem Kabel in eine Abstimmvorrichtung 303 und überträgt Datensignale auf das Kabel durch einen Sender 305. Bei dem bevorzugten Ausführungsbeispiel ist die Abstimmvorrichtung 303 ein 64-QAM-Empfänger und der Sender ist ein QPSK-Sender.
  • [0061]
    Bei einer groben Beschreibung ist das CM 113 für ein Filtern von Signalen, die zwischen dem PC 115 und dem Kabel 111 übertragen werden, (ggf.) für ein Verschlüsseln/Entschlüsseln dieser Signale, für ein Puffern von Daten und für ein Übersetzen zwischen dem Kommunikationsprotokoll für Übertragungen auf dem Kabel und dem Kommunikationsprotokoll für Modem-zu-PC-Übertragungen zuständig. Diese und andere Funktionen (wie es im Folgenden erörtert ist) werden durch eine Vielzahl von Komponentenschaltungen erreicht. Das Herzstück des CM 113 ist eine Steuerschaltung 301. Die Steuerschaltung 301 ist mit den anderen Komponentenschaltungen verbunden und steuert mit Hilfe eines Mikroprozessors 302 Zeitgebung und das gemeinschaftliche Verwen den von Vorrichtungen unter den verschiedenen anderen Komponentenschaltungen.
  • [0062]
    Die Kommunikation zwischen dem CM 113 und dem PC 115 wird durch eine Lokales-Netz- (LAN-) Sender/Empfänger-Schaltung 307 erreicht. Die LAN-Schaltung ist mit der Steuerschaltung 301 verbunden. Bei dem bevorzugten Ausführungsbeispiel verwendet die bestimmte I/O-Schnittstelle zwischen dem CM 113 und dem PC 115 das 10-baseT-Protokoll, andere Modem-zu-PC-Protokolle sind jedoch annehmbare Alternativen. Bei alternativen Ausführungsbeispielen können andere LAN-Protokolle, wie z. B. das 100BaseVG-Protokoll der Hewlett-Packard Company, verwendet werden.
  • [0063]
    Informationen, die zwischen dem PC 115 und dem Kabel 111 übertragen werden, werden in dem Kabelmodem in einem Direktzugriffsspeicher 309 gepuffert, der mit der Steuerschaltung 301 verbunden ist. Wie es im Folgenden erörtert ist, ist eine Kommunikation zwischen dem CM 113 und dem Kabelsystem einer Kollision mit Nachrichten, die durch andere Client-Stationen 105 gesendet werden, ausgesetzt. Außerdem werden Kollisionen durch ein Verwenden eines Reservierungssystems vermieden. Das Kollisionshandhabungs- und Reservierungssystem ist für den PC 115 transparent. Während dieselbe darauf wartet, übertragen zu werden, wird eine Nachricht deshalb in dem RAM 309 gepuffert. Außerdem wird von dem CM 113 vor einer erneuten Übertragung an das Kabel 111 bzw. den PC 115 ein zusätzliches Verarbeiten einer ankommenden oder abgehenden Nachricht benötigt. Ein derartiges Verarbeiten umfasst eine Verschlüsselung und Entschlüsselung. Die Verschlüsselung/Entschlüsselung wird durch eine Chiffrierschaltung 311 ausgeführt, die mit der Steuerschaltung 301 verbunden ist.
  • [0064]
    Eine Kommunikation über das Kabel 111 ist durch ein Verwenden von Frequenzmultiplextechniken über einen Frequenzbereich von 5 MHz bis 750 MHz möglich. Standardfernsehkanäle werden üblicherweise in dem Bereich über 50 MHz übertragen.
  • [0065]
    Jeder derartige Kanal ist 6 MHz breit. Üblicherweise sind die Frequenzen unter 50 MHz unstrukturiert und weisen starkes Rauschen auf. Bei dem bevorzugten Ausführungsbeispiel findet eine Aufwärtskommunikation (eine Kommunikation von dem CM 113 zu dem SCS 101) auf einem 2 MHz breiten Frequenzband in dem Frequenzspektrum von 5 bis 42 MHz statt, und eine Abwärtskommunikation (von dem SCS 101 zu dem CM 113) findet auf einem 6 MHz breiten Standardfernsehkanal in dem Bereich von 50 MHz und darüber statt und wird im Folgenden als der Abwärtskanal bezeichnet. Somit dient das Band von 5 bis 42 MHz als das Spektrum, in dem ein Kommunikationskanal von den Client-Stationen 105 zu dem SCS 101 ausgewählt werden kann, und das Band über 50 MHz dient als das Spektrum, aus dem Kommunikationskanäle von dem SCS 101 zu den Client-Stationen 105 ausgewählt werden können.
  • [0066]
    Alternative Ausführungsbeispiele liefern mehrere Kommunikationskanäle in jeder Richtung. Derartige Alternativen sind natürliche Erweiterungen des beschriebenen bevorzugten Ausführungsbeispiels und fallen in den Schutzbereich der vorliegenden Erfindung. Zu veranschaulichenden Zwecken ist die vorliegende Erfindung in dem Zusammenhang des Ausführungsbeispiels mit einem Kanal pro Richtung beschrieben. Ein Fachmann wird jedoch erkennen, wie die Erfindung bei den Alternativen mit mehreren Kanälen anzuwenden ist.
  • [0067]
    4 ist ein graphisches Beispiel von Signalen, die unter 50 MHz übertragen werden. Wie es aus diesem Beispiel ersichtlich ist, gibt es einige Regionen mit sehr wenig Aktivität, z. B. zwischen 8 und 12 MHz, 15 und 20 MHz, 23 und 27 MHz und 31 und 37 MHz. Andere Bereiche weisen ein sehr starkes Rauschen auf. Das Signalumwandlungssystem (SCS) 101 überwacht fortlaufend das Frequenzband von 5 bis 42 MHz, um 2 MHz breite Bänder zu lokalisieren, die kein Rauschen aufweisen. Nachdem dasselbe ein derartiges Band lokalisiert hat, rundsendet das Signalumwandlungssystem (SCS) 101 die Frequenz (z. B. die Mitte oder den Beginn) des 2-MHz-Bandes an die Client-Stationen 105. Dieses 2-MHz- Band wird durch die Client-Stationen 105 verwendet, um Daten an das Signalumwandlungssystem (SCS) 101 zu übertragen, und wird im Folgenden als der „Aufwärtskanal" bezeichnet. Bei dem alternativen Ausführungsbeispiel mit mehreren Kanälen lokalisiert das Signalumwandlungssystem (SCS) 101 mehr als ein 2 MHz breites Band mit niedriger Aktivität und rundsendet die Frequenz eines jeden derartigen Bandes.
  • [0068]
    Bei dem bevorzugten Ausführungsbeispiel verwendet die Abwärtskommunikation 64-QAM. Bei 64-QAM werden sechs Bits pro Symbol von Daten gleichzeitig gesendet. Bei der vorliegenden Erfindung wird eines dieser Bits für Steuerinformationen verwendet, und die verbleibenden fünf Bits sind Nutzdaten. Das Steuerbit wird im Folgenden als der „Steuerkanal" bezeichnet.
  • [0069]
    5 ist eine Darstellung einer exemplarischen Aktivität auf dem Abwärtskanal und dem Aufwärtskanal. Für eine Abwärtskommunikation wird die Zeit in gleich lange Intervalle aufgeteilt, die Schlitze genannt werden. Jeder Schlitz ist durch eine Nummer identifiziert. Schlitznummern sind sequentiell und reichen von 0 bis zu einem Maximal_Zählwert, wobei die Schlitznummer auf 0 rückgesetzt wird, nachdem der Maximal_Zählwert erreicht worden ist. Bei dem bevorzugten Ausführungsbeispiel beträgt der Maximal_Zählwert weniger als 32. Andere Ausführungsbeispiele würden größere Maximal_Zählwert-Werte erlauben. Der Maximal_Zählwert ist durch das SCS programmierbar. Bei der Darstellung von 5 sind 14 Schlitze (0 bis 13) durch eine Zeitlinie 501 dargestellt. Die Schlitzgrenzen der Zeitlinie 501 beziehen sich auf das Signalumwandlungssystem (SCS) 101. Da Zeitverzögerungen auftreten, die mit der Fortpflanzung von Daten entlang des Kabels zusammenhängen, kommunizieren und empfangen die verschiedenen Client-Stationen 105 Daten bei unterschiedlichen Grenzen.
  • [0070]
    Die Länge jedes Zeitschlitzes ist durch eine feste Anzahl von Abwärtssteuerkanalrahmen dargestellt. Die Anzahl von Rahmen pro Schlitz ist durch das Signalumwandlungssystem (SCS) 101 programmierbar. Dieses Verhältnis (Rahmen/Schlitz) bleibt jedoch bis zur Rücksetzung fest. Der Zeitschlitz ist dimensioniert, um die Zeit, die erforderlich ist, um das größte zulässige Übertragungspaket während einer Konkurrenz aufwärts zu übertragen, und die Differenz bei der Umlauffortpflanzungsverzögerung zwischen der Client-Station 105, die dem SCS 101 am nächsten ist, und der Client-Station 105, die am weitesten von dem SCS 101 entfernt ist, zu umfassen.
  • [0071]
    Ein Steuerrahmen ist die Grundeinheit der Kommunikation zwischen dem Signalumwandlungssystem (SCS) 101 und den verschiedenen Client-Stationen 105 bei dem Steuerkanal. Bei dem bevorzugten Ausführungsbeispiel ist ein Steuerrahmen 20 Bytes lang. Es gibt ein übliches Rahmenformat. 6(a) ist ein Blockdiagramm des üblichen Rahmenformats. Jeder Rahmen folgt der allgemeinen Struktur, die in 6(a) gezeigt ist. Jeder Rahmen beginnt mit einem Sync-Flag 601. Die Rahmenbildung des Abwärtssteuerkanals verwendet das SYNC-Flag 601, um den Beginn des Rahmens zu bezeichnen. Bei dem bevorzugten Ausführungsbeispiel weist das SYNC-Flag den Wert „0110" auf, andere Bitsequenzen können jedoch durch Übereinkunft übernommen werden.
  • [0072]
    Bei dem bevorzugten Ausführungsbeispiel gibt es vier Typen von Rahmen: Bestätigungsrahmen, Steuerrahmen, Variable-Bitrate- (VBR-) Datenrahmen und Konstante-Bitrate- (CBR-) Datenrahmen. Der Typ wird durch das Typfeld 603 identifiziert. Es schließt sich ein 5-Bit-Feld an, das die Schlitz-ID für den Rahmen 605 angibt. Der maximale Wert für die Schlitz-ID ist durch das Signalumwandlungssystem (SCS) 101 programmierbar.
  • [0073]
    Schlitze werden in zwei Klassen aufgeteilt: Konkurrenzschlitze und reservierte Schlitze. Während eines Konkurrenzschlitzes können alle Client-Stationen 105 oder ein Teilsatz von Client-Stationen 105 auf den Aufwärtskanal übertragen. Reservierte Schlitze sind für eine bestimmte Client-Station 105 eigens vorgesehen, und nur dieser bestimmte Client 105 kann Informationspakete auf dem Aufwärtskanal übertragen.
  • [0074]
    In der Darstellung von 5 konkurrieren zwei Client-Stationen 105a und 105b um Zeit auf dem Aufwärtskanal. Linie 502 ist eine Darstellung der Übertragungen, die durch die Client-Station 105a auf dem Aufwärtskanal platziert werden, Linie 504 ist eine Darstellung des Empfangs von Nachrichten auf dem Aufwärtskanal durch das Signalumwandlungssystem (SCS) 101, Linie 506 ist eine Darstellung der Übertragungen, die durch das Signalumwandlungssystem (SCS) 101 auf dem Steuerkanal platziert werden, Linie 508 ist eine Darstellung des Empfangs von Nachrichten auf dem Steuerkanal durch die Client-Stationen 105a und 105b und Linie 510 ist eine Darstellung von Nachrichten, die durch die Client-Station 105b auf dem Aufwärtskanal platziert werden.
  • [0075]
    Die Nachrichten, die durch das Signalumwandlungssystem (SCS) 101 ausgesendet werden, legen den Takt für Aufwärtsübertragungen fest. Während Konkurrenzschlitzen werden alle Übertragungen derart ausgeführt, dass ein Übertragungspaket in seiner Gesamtheit innerhalb eines Schlitzes übermittelt wird. Während reservierter Schlitze kann ein Datenpaket jedoch Schlitzgrenzen überschreiten. Die Client-Stationen 105 überwachen den Steuerkanal, um herauszufinden, wann Schlitze beginnen und enden. Aufgrund von Übertragungsverzögerungen werden diese Schlitzgrenzen durch die verschiedenen Client-Stationen 105 abhängig von der Entfernung von dem Signalumwandlungssystem (SCS) 101 so wahrgenommen, dass sich dieselben bei unterschiedlichen Zeitpunkten befinden.
  • [0076]
    Bei Linie 502 von 5 sendet die Client-Station 105a eine Anforderung 505 in dem Zeitschlitz 0. Aufgrund der Fortpflanzungsverzögerung beginnt die Client-Station 105a aus der Perspektive des Signalumwandlungssystems (SCS) 101 die Übertragung bereits ein Stück innerhalb des Zeitschlitzes 0.
  • [0077]
    Bei der folgenden Erörterung sind Datenpakete zu veranschaulichenden Zwecken so gezeigt, dass dieselben gesamte Zeitschlitze verbrauchen. In Wirklichkeit verbraucht ein Paket weniger als einen Zeitschlitz, und die Zeitschlitze sind dimensioniert, um Fortpflanzungsverzögerungen zu berücksichtigen. Informationspakete sind durch ein Verwenden des gleichen Bezugszeichens, an das ein Apostroph angehängt ist, als die empfangene Version eines Pakets angezeigt, das durch eine andere Station gesendet wurde, z. B. kann eine Client-Station ein Paket 505 senden, wenn dasselbe empfangen worden ist, wird es als ein Paket 505' gezeigt.
  • [0078]
    Linie 504 ist eine Darstellung der Ansicht des Aufwärtskanals aus der Perspektive des Signalumwandlungssystems (SCS) 101. Aufgrund der Fortpflanzungsverzögerung empfängt das Signalumwandlungssystem (SCS) 101 das Paket 505 wieder zu einem späteren Zeitpunkt, als dasselbe gesendet wurde, wie es durch Paket 505' angezeigt ist. Das Signalumwandlungssystem (SCS) 101 verarbeitet dann das Paket 505. Ein Datenpaket, das von der Client-Station 105 gesendet wird, kann in sich geschlossen sein, d. h. es handelt sich dabei um eine vollständige Übermittlung von Informationen an das Signalumwandlungssystem (SCS) 101. Da jedoch eine Client-Station 105 manchmal mehr Informationen übertragen möchte, als in ein Paket passen, d. h. mehr als in einem Zeitschlitz übertragen werden kann, kann ein Anfangspaket, das von einer Client-Station 105 gesendet wird, eine Anforderung umfassen, zusätzliche zukünftige Schlitze für eine Übertragung des Rests der Übermittlung zu reservieren. Bei dem Beispiel von 5 will die Client-Station 105a Informationen übertragen, die sich über insgesamt drei Zeitschlitze erstrecken werden. Deshalb umfasst das Anfangspaket 505 eine Reservierungsanforderung für zwei zusätzliche eigens vorgesehene Zeitschlitze.
  • [0079]
    Beim Verarbeiten der Anforderung teilt das Signalumwandlungssystem (SCS) 101 der Client-Station 105a zwei zukünftige Zeitschlitze zu. Linie 506 ist eine Darstellung des Steuerkanals aus der Perspektive des Signalumwandlungssystems (SCS) 101. Auf die Zuteilung folgend überträgt das Signalumwandlungssystem (SCS) 101 auf dem Steuerkanal eine Bestätigungsnachricht 507 an die Client-Station 105. Die Bestätigungsnachricht zeigt der Client-Station 105 an, dass die Nachricht empfangen wurde, und in dem Fall einer Reservierungsanforderung, wie viele Zeitschlitze die Client-Station warten muss, um den Rest der Übermittlung zu übertragen. Bei dem Beispiel von 5 wurden zu der Zeit, zu der das Signalumwandlungssystem (SCS) 101 das Reservierungsanforderungspaket 505 von der Client-Station 105a empfängt, keine anderen Reservierungen vorgenommen, deshalb kann die Client-Station 105a auf den Empfang der Bestätigungsnachricht in Paket 507' hin mit der Übertragung des Rests der Übermittlung beginnen. Demgemäß zeigt das Bestätigungsnachrichtpaket 507 der Client-Station 105a an, dass die Verzögerungslänge (die Zeit, die die Client-Station 105a vor dem Übertragen des Restes warten muss) Null beträgt.
  • [0080]
    Obwohl die Client-Station 105a bei Zeitschlitz 0 begonnen hat, das Paket 505 zu übertragen, wurde dasselbe aufgrund der Fortpflanzungsverzögerung durch das Signalumwandlungssystem (SCS) 101 erst ein Stück innerhalb des Zeitschlitzes 2 vollständig empfangen. Da alle Übertragungen an Zeitschlitzgrenzen ausgeführt werden, wartet das Signalumwandlungssystem (SCS) 101 bis zum Beginn von Zeitschlitz 3, bevor dasselbe beginnt, das Bestätigungspaket 507 zu übertragen. Linie 508 ist eine Darstellung des Steuerkanals aus der Perspektive der Client-Station 105a. Das Bestätigungsnachrichtpaket 507' wird durch die Client-Station 105a empfangen, die aus der Nachricht erkennt, dass ihr Reservierungsanforderungspaket 505 durch das Signalumwandlungssystem (SCS) 101 berücksichtigt wurde, und dass ihre reser vierten Schlitze ohne Verzögerung zu übertragen sind. Deshalb überträgt die Client-Station 105a auf dem Aufwärtskanal (wie als Linie 502 dargestellt) den Rest ihrer Übermittlung in Paketen 509a und 509b.
  • [0081]
    Bei dem Beispiel von 5 will die Client-Station 105b vier Informationspakete übertragen. Wie es im Vorhergehenden erörtert ist, kann dieselbe ein Paket senden, das eine Reservierungsanforderung für die folgenden drei umfasst. Demgemäß sendet die Client-Station 105b ein erstes Reservierungsanforderungspaket 511. Das Anforderungsnachrichtpaket 511 umfasst die Reservierungsanforderung für drei Zeitschlitze.
  • [0082]
    Wie es in Linie 504 gezeigt ist, empfängt das Signalumwandlungssystem (SCS) 101 die Anforderungsnachricht 511'. Beim Verarbeiten der Anforderung für die Reservierung von drei zusätzlichen eigens vorgesehenen Zeitschlitzen erkennt das Signalumwandlungssystem (SCS), dass die Client-Station 105a bis zu dem Zeitpunkt, wenn die Client-Station 105b eine Bestätigung erhält, das erste Paket 509a in dem Rest ihrer Übermittlung übertragen haben wird, aber immer noch einen zusätzlichen Zeitschlitz für das zweite Paket 509b benötigt. Deshalb zeigt das Bestätigungsnachrichtpaket 513 der Client-Station 105b an, dass ihre Reservierung angenommen worden ist und dass dieselbe, nachdem sie das Bestätigungspaket 513' empfangen hat, beginnen soll, ihren Rest von Paketen nach einer Verzögerung von einem Zeitschlitz zu übertragen. Diese Verzögerung ist als Zeitschlitz 515 angezeigt. Nach der Verzögerung überträgt die Client-Station 105b den Rest von drei Paketen 517a, 517b und 517c auf dem Aufwärtskanal 510. Diese werden durch das Signalumwandlungssystem (SCS) 101 als Pakete 517a', 517b' und 517c' empfangen.
  • [0083]
    Jeder Schlitz, der nicht speziell reserviert ist, ist ein Konkurrenzschlitz. Deshalb sind bei dem Beispiel, weil der erste reservierte Schlitz Schlitz Nummer 4 ist, die Schlit ze 0 bis 3 Konkurrenzschlitze. Die Schlitze 4 bis 8 wurden durch die Client-Stationen 105a und 105b reserviert. Keine Reservierungen wurden jedoch für die Schlitze 9 bis 13 vorgenommen, die deshalb Konkurrenzschlitze sind.
  • [0084]
    Bei dem Beispiel von 5 gibt es keine Kollision während Konkurrenzschlitzen. Eine Kollision zwischen den Client-Stationen 105a und 105b kann zu irgendeiner Zeit vor Zeitschlitz 0 stattgefunden haben. Jeder Rahmen enthält eine Prüfsumme. Die Prüfsumme ist eine zyklische Redundanzprüfung, z. B. wie durch CCITT X.25 definiert.
  • [0085]
    Wenn eine Kollision erfolgt, werden die Nachrichten verstümmelt. Deshalb schlägt die Prüfsummenberechnung fehl. Immer wenn das Signalumwandlungssystem (SCS) 101 erfasst, dass die Prüfsummenberechnung fehlgeschlagen ist, sendet dasselbe keine Bestätigungsnachricht. Somit würde keine der Client-Stationen 105 eine Bestätigung empfangen. Die erwartete Zeitverzögerung zwischen dem Senden einer Nachricht und dem Empfangen der Bestätigung ist bekannt (sie beträgt die maximale Fortpflanzungsverzögerung plus Verarbeitungszeit). Wenn somit eine Client-Station 105 die Bestätigung nicht innerhalb dieser erwarteten Zeit empfängt, weiß dieselbe, dass die Übertragung fehlgeschlagen ist. Da Kollisionen eine wahrscheinliche Quelle für Übertragungsfehler sind, wird der Kollisionsauflösungsmechanismus der Client-Station 105 aufgerufen.
  • [0086]
    Bei einem Ausführungsbeispiel ist der Kollisionsauflösungsmechanismus der Client-Stationen 105 dem Ethernet-Schema ähnlich. Jede der kollidierenden Client-Stationen 105 hält sich eine zufällige Menge an Zeit zurück. Am Ende ihrer jeweiligen zufälligen Zeitmengen versuchen die Client-Stationen 105 erneut, ihre jeweiligen Nachrichten zu übertragen. Ein Zufallszahlengenerator 313, der mit der Steuerschaltung 301 verbunden ist, berechnet eine Zufallszahl, die zum Zurückhalten verwendet wird. Bei einem Ausführungsbeispiel ist der Bereich für die Anzahl von vor einer erneuten Übertragung zu verzögernden Schlitzzeiten eine Funktion davon, wie viele Versuche zu übertragen unternommen wurden. Die Anzahl von vor dem n-ten erneuten Übertragungsversuch zu verzögernden Schlitzzeiten wird als eine gleichmäßig verteilte Zufahlsganzzahl r ausgewählt in dem Bereich: 0 ≤ r < 2k wobei
    k = min (n, 7)
  • [0087]
    Falls eine maximal zulässige Anzahl von erneuten Übertragungsversuchen fehlschlägt, wird ein Fehlerzustand durch das CM 113 berichtet. Bei dem bevorzugten Ausführungsbeispiel beträgt die maximale Anzahl von erneuten Übertragungsversuchen sechzehn.
  • [0088]
    Bei einem alternativen Ausführungsbeispiel wird eine Kollisionshandhabung erreicht, indem nur von bestimmten Gruppen von Modems eine erneute Übertragung gestattet wird. Bei aufeinander folgenden Neuversuchen wird einem kleineren Teilsatz von Modems eine erneute Übertragung gestattet. Bei diesem Ausführungsbeispiel sind die CMs 113 in dem System in einem Binärbaum angeordnet. Wenn das SCS 101 erfasst, dass dasselbe verstümmelte Nachrichten empfängt, sendet dasselbe Nachrichten aus, um bestimmte CMs 113 abzuschalten. Zuerst steigt das SCS 101 eine Ebene von der Wurzel des Baums hinunter und schaltet aufeinander folgend alle CMs in der ersten Hälfte des Baums ab und reaktiviert dann diese CMs und schaltet die zweite Hälfte ab. Falls das SCS 101 weiterhin Kollisionen erfasst, steigt dasselbe eine weitere Ebene hinunter und schaltet Zweig für Zweig aufeinander folgend alle CMs in einem bestimmten Zweig auf dieser Ebene an und ab. Das SCS 101 wiederholt diese Prozedur, bis dasselbe entweder keine Kollisionen mehr erfasst oder bis dasselbe zu den Blättern des Binärbaums hinuntergestiegen ist.
  • [0089]
    6(b) ist ein Blockdiagramm des Formats eines Abwärtsbestätigungsrahmens 700, der auf dem Steuerkanal gesendet wird. Wenn das Signalumwandlungssystem (SCS) 101 erfolgreich eine Nachricht von einer der Client-Stationen 105 empfängt, wie es durch eine erfolgreiche Prüfsummenberechnung angezeigt wird, überträgt das Signalumwandlungssystem (SCS) 101 einen Bestätigungsrahmen 700, wie es in 6(b) gezeigt ist. Der Bestätigungsrahmen 700 folgt wie alle anderen Rahmen dem allgemeinen Format von Rahmen 600 von 6(a). Als solcher enthält derselbe ein SYNC-Feld 701, ein Rahmentypfeld 703 („00" im Fall eines Bestätigungsrahmens 700), ein Schlitz-ID- 705 und ein Schlitzzeitgeber- 707 Feld und ein Prüfsummenfeld 721. Diese Felder 701, 703, 705, 707 und 721 entsprechen Feldern 601, 603, 605, 607 bzw. 611.
  • [0090]
    Der typabhängige Inhalt 609 des Bestätigungsrahmens 700 kann verwendet werden, um bis zu zwei Nachrichten von Client-Stationen 105, die auf unterschiedlichen Aufwärtskanälen übertragen, zu bestätigen. Die Modem-MAC-Adresse der ersten dieser Client-Stationen 105 ist in einem Feld 709 angegeben, und für die zweite Client-Station 105 in einem Feld 715 von einem anderen Kanal.
  • [0091]
    Wenn eine Client-Station 105 eine Nachricht an das Signalumwandlungssystem (SCS) 101 sendet, weist die Client-Station 105 dieser Nachricht eine Nachricht-ID zu. Die Nachricht-ID, die bestätigt wird, wird durch das Signalumwandlungssystem (SCS) 101 in einem Nachricht-ID-(Msg ID) Feld 709 bzw. 717 an die Client-Station 105 zurückgesendet.
  • [0092]
    In dem Fall, dass die Nachricht, die bestätigt wird, eine Reservierungsanforderung enthält, wird die Anzahl von Schlitzen, die die Client-Station 105 vor einem Senden des Rests warten muss, in den Reservierungsverzögerungsfeldern 713 bzw. 719 gesendet.
  • [0093]
    Bei dem bevorzugten Ausführungsbeispiel gibt es elf Untertypen von Steuerrahmen. Andere Ausführungsbeispiele umfassen zusätzliche Untertypen von Steuerrahmen. Dieses Steuerrahmenuntertypen sind:
    • – inaktiver Unterrahmen
    • – Schlitz/Kanal-Statusunterrahmen
    • – Kabelmodem-Sperren/Freigeben-Anforderung
    • – Aufwärts/Abwärtskanal-Umschalten-Anforderung
    • – Echoanforderung
    • – Parameter-Erhalten/Setzen-Anforderung
    • – Schlüsselaustauscheinleitungsanforderung
    • – Leistungspegeleinstellungsantwort.
  • [0094]
    Jeder dieser Unterrahmentypen folgt dem allgemeinen Format, das in 6(a) gegeben ist, und enthält zusätzliche Felder für seinen spezifischen Unterrahmentyp. Das Typfeld 603 ist auf den Wert „01" gesetzt, um anzuzeigen, dass der Rahmen ein Steuerrahmen ist. Nach dem Schlitzzeitgeberfeld 607 enthalten Steuerrahmen ein 2 Byte langes Unterrahmentypfeld.
  • [0095]
    In Betrieb überträgt das Signalumwandlungssystem (SCS) 101 fortlaufend Steuerrahmen. Wenn das Signalumwandlungssystem (SCS) 101 somit während eines bestimmten Zeitschlitzes keine Abwärtsinformationen zu senden hat, sendet das Signalumwandlungssystem (SCS) 101 trotzdem einen Steuerrahmen. Dieser Rahmen enthält das Unterrahmentypfeld „00". Der Rest des Rahmens ist eine Pseudozufallssequenz. Die Pseudozufallssequenz sollte so zufällig wie möglich sein, um genug Übergänge zu liefern, damit die 64-QAM-Empfängerabstimmvorrichtung 303 synchron zu dem Sender 305 bleibt.
  • [0096]
    Der Kanal/Schlitz-Statusunterrahmentyp wird durch das SCS 101 als der erste Rahmen jedes Zeitschlitzes gesendet. Dieser Rahmen trägt den Belegungsstatus des nächsten Zeitschlitzes für jeden aktiven Aufwärtskanal sowie die Informationen des derzeitigen verfügbaren Aufwärts- und Abwärtskanals. Der Kanal/Schlitz-Statusunterrahmen enthält die folgenden spezifischen Felder (Tabelle 1):
  • Tabelle 1
  • [0097]
    (Viele der Felder für den Kanal/Schlitz-Statusunterrahmentyp werden durch andere Unterrahmentypen verwendet. Deshalb nimmt die folgende Beschreibung dieser Unterrahmentypen Bezug auf Tabelle 1.)
  • [0098]
    Der Kabelmodem-Sperren/Freigeben-Anforderung-Unterrahmentyp wird durch das Signalumwandlungssystem (SCS) 101 verwendet, um ein bestimmtes Kabelmodem 113 an- und abzuschalten. Der Unterrahmentyp ist 0x03 für Sperren und 0x05 für Freigeben. Der CM-Sperren/Freigeben-Unterrahmen ist ein Sechs-Byte-MAC-Modem-Adressfeld, das das bestimmte CM 113, an das der Rahmen gerichtet ist, eindeutig identifiziert.
  • [0099]
    Der Aufwärtskanal-Umschalten-Anforderung-Unterrahmentyp wird durch das SCS 101 verwendet, um einem CM 113 anzuordnen, seine Aufwärtskommunikation auf einen anderen Kanal umzuschalten. Wie es im Vorhergehenden erörtert ist, kann der Aufwärtsfrequenzbereich relativ starkes Rauschen aufweisen. Deshalb kann das SCS 101 von Zeit zu Zeit während des normalen Betriebs des Signalumwandlungssystems (SCS) 101 erfassen, dass es erwünscht ist, dass die Aufwärtskommunikation zu demselben auf einer anderen Frequenz erfolgt. Außerdem kann das Signalumwandlungssystem (SCS) 101 auch eine starke Verwendung eines bestimmten Aufwärtskanals und eine relativ geringe Verwendung eines anderen Aufwärtskanals erfassen, und deshalb anfordern, dass bestimmte CMs 113 die Frequenz ändern, um die Verwendung unter den verschiedenen Aufwärtskanälen auszugleichen.
  • [0100]
    Der Aufwärtskanal-Umschalten-Anforderung-Unterrahmen enthält ein Sechs-Byte-Feld für eine Modem-MAC-Adresse, an die die Anforderung gerichtet ist. Der Unterrahmen enthält auch Felder, um die aktuelle Aufwärtskanalnummer (1 Byte), die aktuelle Bitanzahl pro Symbol (2 Bits, siehe Tabelle 1), die aktuelle Symbolrate (6 Bits, siehe Tabelle 1) und die Mittenfrequenz des aktuellen Aufwärtskanals (2 Bytes, siehe Tabelle 1) zu identifizieren. Zusätzlich enthält der Unterrahmen auch Felder, um die Kanalnummer des Aufwärtskanals, zu dem umgeschaltet werden soll (1 Byte), die neue Bitanzahl pro Symbol (2 Bits, siehe Tabelle 1), die neue Symbolrate (6 Bits, siehe Tabelle 1) und die Mittenfrequenz des neuen Kanals (2 Bytes, siehe Tabelle 1) zu identifizieren.
  • [0101]
    Der Abwärtskanal-Umschalten-Anforderung-Unterrahmentyp wird durch das Signalumwandlungssystem (SCS) 101 gesendet, um einem CM 113 anzuordnen, seinen Empfänger umzuschalten, um zu beginnen, auf demjenigen zu empfangen, der in dem Anforderungsrahmen bezeichnet ist. Der Rahmen enthält ein Sechs-Byte-Feld für die Modem-MAC-Adresse und ein 1-Byte-Feld für die Abwärts-NTSC-Kanalnummer, auf die umgeschaltet werden soll.
  • [0102]
    Der Echoanforderung-Unterrahmentyp wird durch das Signalumwandlungssystem (SCS) 101 gesendet. Auf den Empfang der Echoanforderung hin sendet die Client-Station 105 auf einem der Aufwärtskanäle eine Echoantwortnachricht (im Folgenden im Abschnitt zum Aufwärtskanalformat erörtert) an das Signalumwandlungssystem (SCS). Der Echoanforderung-Unterrahmentyp enthält ein Modem-MAC-Adressfeld (6 Bytes) und ein Test-ID-Feld (4 Bytes). Das Test-ID-Feld enthält eine Zufallszahl, die durch das Signalumwandlungssystem (SCS) 101 festgelegt ist.
  • [0103]
    Die Parameter-Erhalten/Setzen-Anforderung-Unterrahmentypen werden hauptsächlich für SNMP (SNMP = Simple Network Management Protocol – einfaches Netzwerkverwaltungsprotokoll) verwendet. Der SNMP-Proxy-Agent, der an dem Signalumwandlungssystem (SCS) 101 angeordnet ist, verwendet die Parameter-Erhalten/Setzen-Anforderung, um Informationen über die Client-Stationen 105 oder die CMs 113, die an den Client-Stationen 105 angeordnet sind, zu bekommen, oder um bestimmte CM/Client-Station-Parameter zu löschen oder zu setzen. Die Parameter-Erhalten-und-Setzen-Anforderungen werden dadurch differenziert, dass dieselben unterschiedliche Werte für das Unterrahmentypfeld aufweisen. Die Parameter-Erhalten-und-Setzen-Anforderungen enthalten ein Modem-MAC-Adressfeld (6 Bytes) zum Identifizieren des Kabelmodems 113, an das die Anforderung gerichtet ist, und ein Parameter-ID-Feld (1 Byte). Der Setzen-Anforderung-Unterrahmentyp enthält auch ein bis zu 7 Byte langes Inhaltsfeld, das die neuen Werte für den Parameter enthält. Im Folgenden sind einige der Parameter aufgeführt, die durch den Parameter-Erhalten/Setzen-Anforderung-Unterrahmen gewonnen oder gesetzt werden können:
    • – Nutzlastkanal-CRC-Fehlerzählwert
    • – Nutzlast-Verfehlte-Puffer-Fehlerzählwert
    • – Nutzlast-Empfangene-Pakete-Zählwert
    • – Steuerkanal-CRC-Fehlerzählwert
    • – Steuerkanal-Verfehlte-Puffer-Zählwert
    • – Steuerkanal-Empfangene-Pakete-Zählwert
    • – Aufwärtsübertragungsneuversuchzählwert
    • – Aufwärts-Übertragene-Pakete-Zählwert
    • – Selbsttest (Durchführen/Berichten)
    • – einen bestimmten Test durchführen/sein Ergebnis berichten
    • – Aufwärtsverschlüsselung
    • – Firmware-Flag #n (Setzen/Rücksetzen/Berichten)
    • – Firmware-Register (Lesen/Schreiben/Berichten)
  • [0104]
    Der DES-Schlüsselaustausch-Unterrahmentyp wird durch das Signalumwandlungssystem (SCS) 101 verwendet, um das CM 113 anzuweisen, einen DES-Schlüssel-Handshake einzuleiten. Der Schlüsselaustausch verwendet den Diffie-Hellman-Schlüsselaustauschalgorithmus. Der DES-Schlüsselaustauschanforderung-Unterrahmen enthält ein Modem-MAC-Adressfeld (6 Bytes) zum Identifizieren des Kabelmodems 113, an das die Anforderung gerichtet ist.
  • Abwärtsnutzlastkanal
  • [0105]
    6(c) ist ein Blockdiagramm des Abwärtsnutzdatenrahmens 749, der von dem SCS 101 zu den Kabelmodems 113 übertragen wird. Ein Feld 751 ist ein ein Byte langes Sync-Flag, das die Bitfolge „01111110" enthält. Der Rest des Rahmens ist null-eingefügt, um sicherzustellen, dass keine andere Sechs-Bit-Folge von Einsen in einem Rahmen auftritt. Wenn somit ein CM 113 auf eine Folge von fünf Einsen, die von einer Null gefolgt sind, trifft, weiß das CM, dass dieses Null-Bit durch das SCS eingefügt worden ist und vor einem Verarbeiten der Daten verworfen werden muss.
  • [0106]
    Es folgt ein Sechs-Byte-Modem-MAC-Adressfeld 753 zum Identifizieren des Empfängers des Rahmens. Für Sammelsendungspakete enthält das MAC-Adressfeld 753 die Sammelsendung (Multicast)-MAC-Adresse des Kabelmodems 113 der Teilnehmer.
  • [0107]
    Feld 755 ist ein Ein-Bit-Verschlüsselungsflag, um dem CM 113 anzuzeigen, ob die übertragenen Daten verschlüsselt (1) oder Klartext (0) sind.
  • [0108]
    Es gibt zwei Typen von Nutzlastrahmen: solche, die Teilnehmerdaten tragen, und solche, die Modemsteuernachrichten tragen. Feld 757 ist ein Ein-Bit-Flag zum Anzeigen, ob der Rahmen Teilnehmerdaten (0) oder eine Modemsteuernachricht (1) aufweist.
  • [0109]
    Feld 759 ist ein Sechs-Bit-Feld zum Identifizieren des Nachrichtentyps. Die Nachrichtentypen umfassen: für Teilnehmerdaten:
    • – Ethernetrahmen
    • – ATM-Zelle
  • für Modemverwaltungsnachrichten
    • – Sammelsendungsadresse-Hinzufügen-Anforderung
    • – Sammelsendungsadresse-Löschen-Anforderung
    • – DES-Schlüsselaustauschantwort
    • – Testanforderung
  • [0110]
    Feld 760 ist ein Drei-Bit-Feld zum Identifizieren der Auffülllänge in Anzahl von Bytes. Zu Verschlüsselungszwecken ist die Nutzlast ein Vielfaches von acht Byte lang. Deshalb können bis zu sieben Bytes verwendet werden, um die Länge der Nachricht aufzufüllen, um sicherzustellen, dass die Nutzlast dieses Ziel erfüllt. Bei einem alternativen Ausführungsbeispiel, bei dem keine Verschlüsselung erforderlich ist oder bei dem ein Verschlüsselungsstandard vorliegt, der keine Nachrichtenlänge erfordert, die ein Vielfaches von Acht ist, werden das Auffüll- und das Auffülllängenfeld nicht benötigt.
  • [0111]
    Feld 761 ist ein Fünf-Bit-Feld von nicht verwendeten Bits. Diese Bits werden hinzugefügt, um zu verhindern, dass das Nachrichtenfeld 763 Bytegrenzen umwickelt. Feld 763 ist ein Feld variabler Länge (in Byte-Inkrementen) von nachrichtentypabhängigem Inhalt. Um in Einklang mit der Ethernet-MTU zu sein, wird das MTU in dem Nachrichteninhaltsfeld auf 1514 gesetzt. Das Nachrichteninhaltsfeld 763 wird mit bis zu sieben Bytes aufgefüllt, um sicherzustellen, dass seine Länge in Bytes ein Vielfaches von Acht ist.
  • [0112]
    Feld 765 ist eine vier Byte lange CRC-32-Prüfsumme, die das Ethernet-Polynom-Zyklische-Redundanzprüfung-Schema verwendet.
  • [0113]
    Bei dem bevorzugten Ausführungsbeispiel gibt es vier Typen von Modemverwaltungsnachrichten. Zwei erste Modemverwaltungsnachrichtentypen sind die Sammelsendungsadresse-Hinzufügen-Anforderung und die Sammelsendungsadresse-Löschen-Anforderung. Die Sammelsendungsadresse-Hinzufügen-Anforderung ordnet dem CM 113, an das dieselbe gerichtet ist, an, eine Sammelsendungsadresse zu der Liste von Sammelsendungsadressen hinzuzufügen, an der dasselbe teilnimmt, und die Sammelsendungsadresse-Löschen-Anforderung ordnet dem CM 113 an, eine spezifische Sammelsendungsadresse von seiner Teilnahmeliste zu löschen. Für die Sammelsendungsadresse-Hinzufügen- und -Löschen-Anforderung enthält das Inhaltsfeld 763 ein Sechs-Byte-Feld für die Sammelsendungsadresse und ein 1-Byte-Hash-Schlüsselfeld. Der Hash-Schlüssel sind die oberen sechs Bits von CRC 32 der Sammelsendungsadresse. Die unteren sechs Bits des Hash- Schlüsselfeldes enthalten diese sechs Bits. Der Hash-Schlüssel kann durch das CM 113 verwendet werden, um die Sammelsendungsadresse, die gelöscht werden muss, schneller zu gewinnen.
  • [0114]
    Eine dritte Modemverwaltungsnachricht ist die DES-Schlüsselaustauschantwort, bei der es sich um eine Antwortnachricht auf eine Anforderung eines CM 113 bzgl. eines Schlüsselaustauschs handelt. Die Antwort enthält zwei Zahlen N2 und N3. N2 ist ein 200 bis 400 Bit langes Ergebnis von BR2 mod P, und N3 ist das Ergebnis eines verschlüsselten N1 unter dem Schlüssel K, wobei K aus N1R2 mod P abgeleitet ist. B und P sind Zahlen, die dem SCS 101 und allen CMs 113 bekannt sind, R2 ist eine Zufallszahl, die jedes Mal, wenn dasselbe eine Schlüsselaustauschanforderung empfängt, durch das SCS 101 ausgewählt wird. Der DES-Schlüsselaustausch ist nicht verschlüsselt.
  • [0115]
    Eine vierte Modemverwaltungsnachricht ist der Testanforderungsnachrichtentyp. Der Testanforderungsnachrichtentyp wird durch das SCS 101 eingeleitet, um den Zustand des Weges zu einem CM 113 zu verifizieren und um zu verifizieren, dass eine Verschlüsselungs-/Entschlüsselungslogik an beiden Enden korrekt ist. Das CM 113 antwortet mit einer Testantwort. Falls eine Verschlüsselung angeschaltet ist, werden die Testanforderungsnachricht und die entsprechende Testantwort verschlüsselt.
  • Aufwärtskanalnachrichten
  • [0116]
    Die Aufwärtsrahmen tragen Teilnehmerdaten von Client-Stationen 105 sowie Modemsteuernachrichten von den CMs 113. Die Aufwärtsrahmen enthalten auch Zeitschlitzreservierungsanforderungen von den CMs 113 zum Übertragen von Paketen, die zu groß sind, um in einem Paket übermittelt zu werden. 7 ist ein Blockdiagramm eines üblichen Formats für einen Aufwärtskanalrahmen 773. Das erste Feld ist ein Fünf- Byte-Anfangsblock-Feld 775 aus nur Einsen, gefolgt von einem Ein-Byte-SYNC-Flag 777, das „01010100" enthält. Die Felder 775 und 777 bezeichnen den Anfang eines Aufwärtsrahmens. Rahmen werden mit einem Auffüllfeld 779 beendet, das sicherstellt, dass die Gesamtlänge des Rahmens nicht weniger als MinTU beträgt (die minimale Größe eines Aufwärtsdatenrahmens).
  • [0117]
    Feld 781 enthält die Sechs-Byte-MAC-Adresse des CM 113. Feld 783, das Nachricht-ID-Feld, ist ein 2-Bit-Feld, das eine Nachrichtennummer enthält, die durch das CM 113 zugeteilt ist. Wenn das SCS 101 eine Nachricht bestätigt, schließt es diese Nachrichtennummer mit ein.
  • [0118]
    Feld 785 ist das Reservierungslängenfeld. Dieses Feld ist ein Sechs-Bit-Feld, das dem SCS 101 die Anzahl von Zeitschlitzen anzeigt, die das CM 113 benötigt, um ein oder mehr Pakete zu übertragen. Das Reservierungslängenfeld 785 wird ignoriert, wenn dasselbe nur Nullen enthält. Jedes Paket, das größer ist als MaxTU, muss durch reservierte Zeitschlitze übertragen werden. Bei dem bevorzugten Ausführungsbeispiel ist eine rekursive Reservierung nicht erlaubt.
  • [0119]
    Das Verschlüsselungsflag 787 ist ein Ein-Bit-Flag zum Anzeigen, ob der Nachrichteninhalt verschlüsselt (1) oder Klartext (0) ist. Ein Rahmentypbit 789 wird verwendet, um anzuzeigen, ob es sich bei dem Nachrichteninhalt um Teilnehmerdaten (0) oder eine Modemsteuernachricht (1) handelt. Das Rahmentypbit 789 ist gefolgt von einem 6-Bit-Nachrichtentypfeld 790. Im Folgenden sind Beispiele von Nachrichtentypen aufgeführt:
  • für Teilnehmerdaten
    • – Reservierungsanforderung
    • – Ethernetrahmen
    • – ATM-Zelle
  • für Modemverwaltungsnachrichten
    • – CM-Sperren-Antwort
    • – CM-Freigeben-Antwort
    • – Aufwärtskanal-Umschalten-Antwort
    • – Abwärtskanal-Umschalten-Antwort
    • – Echoantwort
    • – Parameter-Erhalten-Antwort
    • – Parameter-Setzen-Antwort
    • – Sammelsendung-Hinzufügen-Antwort
    • – Sammelsendung-Löschen-Antwort
    • – DES-Schlüsselaustauschanforderung
    • – DES-Schlüsselaustauschbestätigung
    • – Leistungspegeleinstellungsanforderung
    • – Testantwort
  • [0120]
    Ein Bestätigungsflag 791 zeigt dem SCS 101 an, ob das CM 113 eine Bestätigung benötigt (1) oder ob keine Bestätigung benötigt wird (0). Da große Pakete unter Verwendung von reservierten Schlitzen übertragen werden, wird eine Bestätigung (ACK) nicht für eine Übertragung von großen Paketen verwendet.
  • [0121]
    Das Nachrichtlängenfeld ist ein 15 Bit langes Feld zum Anzeigen der Anzahl von Bytes des Nutzlastnachrichtenfeldes 793. Das Nutzlastnachrichtenfeld 793 enthält die tatsächliche Nachricht, die dem SCS 101 übertragen wird, und hängt von dem Nachrichtentyp (Feld 790) ab. Zu Verschlüsselungs/Entschlüsselungszwecken ist die Nachricht aufgefüllt, um sicherzustellen, dass ihre Länge ein Vielfaches von Acht ist.
  • [0122]
    Das Rahmenformat schließt mit einem CRC-32-Prüfsummenfeld 795 ab, das von dem Postambel-Feld 779 gefolgt ist.
  • Aufwärtsmodemnachrichten
  • [0123]
    Tabelle 2 zeigt den Inhalt des Nutzlastnachrichtenfeldes 793 für die verschiedenen Nachrichtentypen:
  • Tabelle 2
  • Kabelmodem 113
  • [0124]
    8 zeigt detaillierter ein Kabelmodem 113 der vorliegenden Erfindung. Wie es in 3 gezeigt ist, besteht das Modem aus einer Steuerschaltung 301, die mit mehreren externen Vorrichtungen verbunden ist, wie z. B. einer Abstimmvorrichtung 303, einem Sender 305, einem RAM 309, einer Chiffrierschaltung 311, einer LAN-Schnittstelle 307 und einem Mikroprozessor 302. Die Steuerschaltung 301 ist eine Datenverarbeitungs- und Datenleitungsschaltung, die den Informationsfluss zwischen diesen verschiedenen externen Schaltungen steuert.
  • [0125]
    Die Abstimm- und Demodulationsvorrichtung 303 ist eine Standardrundsendungsabstimmvorrichtung, die mit einem Demodulator kombiniert ist, die ein Fernsehrundsendungssignal von dem Kabel 111 empfängt und die I- und Q-Signale aus dem QAM-Datencodierformat ausgibt.
  • [0126]
    Die Steuerschaltung 301 besteht aus mehreren miteinander verbundenen Funktionsvorrichtungen. Dieser Satz von Vorrichtungen umfasst einen Front-End-Vorprozessor (FEP) 801, einen Front-End-Seriellumsetzer 803, eine Abwärtssteuervorrichtung bzw. nachgeschaltete Steuervorrichtung (DCD) 805, eine Abwärtsnutzlastvorrichtung 807, eine Aufwärtsvorrichtung (UD) 809, eine Chiffriervorrichtung (CD) 811, eine Chiffrierchipschnittstelle (CCI) 813, eine LAN-zu-RAM-Vorrichtung (LTR) 815, eine LAN-Schnittstelle (LANI) 817, eine RAM-zu-LAN-Vorrichtung (RTL) 819, eine Senderausgangsseite (TB) 821, eine Senderschnittstelle (TRI) 823 und eine Abstimmvorrichtungsschnittstelle (TUI) 824. Die CCI 813, die LANI 817, die TRI 823 und die TUI 824 sind alle über eine Mikroprozessorschnittstelle (MI) 829 verbunden.
  • [0127]
    Die Vorrichtungen 805, 807, 809, 811, 815, 819 und 823 sind alle über eine Busentscheidungs- und Prioritätssteuerung (BAPC) 825 mit dem RAM 309 verbunden. Die Vorrichtungen 805, 807, 811, 815, 819 und 823 sind über zwei Busse, einen Lesebus 831 und einen Schreibbus 833, mit der BAPC 825 verbunden. Eine Registerdatei, Master aller Zeiger (MOAP) 827, enthält Zeiger und Versätze für Datenblocks, die in dem RAM 309 gespeichert sind.
  • [0128]
    Eine Anmerkung zu der hier verwendeten Nomenklaturkonvention, die verschiedenen Vorrichtungen können jede als I/O-Puffer betrachtet werden, auf die geschrieben und von denen gelesen wird. Falls somit die BAPC 825 Daten zu einer Vorrichtung überträgt, „schreibt" dieselbe auf die Vorrichtung, falls die BAPC 825 Daten von einer Vorrichtung überträgt, „liest" die BAPC von der Vorrichtung.
  • [0129]
    Jede der Vorrichtungen, die mit der BAPC 825 verbunden sind, ist gemäß einem verallgemeinerten Verbindungsschema mit der BAPC 825 verbunden. 9 ist ein Blockdiagramm dieses verallgemeinerten Verbindungsschemas zum Verbinden von Vorrichtungen mit der BAPC 825. Eine Vorrichtung 901 ist eine der Vorrichtungen 805, 807, 809, 811, 815, 819 oder 823. Demgemäß bezieht sich in der folgenden Erörterung „Vorrichtung 901" auf jede beliebige der Vorrichtungen 805, 807, 809, 811, 815, 819 oder 823. Die verschiedenen Vorrichtungen 901 weisen unterschiedliche tatsächliche Notwendigkeiten hinsichtlich der Verbindung mit dem RAM auf. Zum Beispiel schreibt die BAPC 825 nur auf die Aufwärtsvorrichtung 809 (sie liest nicht von derselben). Andererseits wird von der Abwärtssteuervorrichtung 805 nur gelesen (auf dieselbe wird nicht geschrieben). Jede Vorrichtung weist ein „REQ"-Signal (request = Anforderung), ein „SCHREIB"- („WRITE"-) Signal und einen „Adress" („Address")-Bus auf. Jede Vorrichtung empfängt ein „ACK"-Signal von der BAPC 825. Falls eine bestimmte Vorrichtung eine Schreibfähigkeit aufweist, dann sind ein Eingangsbus, der „Schreibbus" genannt wird, und ein Eingangssignal, das DevXWE (Device X Write Enable – Vorrichtung-X-Schreibfreigabe) genannt wird, mit der Vorrichtung verbunden. Falls eine bestimmte Vorrichtung eine Lesefähigkeit aufweist, dann sind ein Ausgangsbus, der „Lesebus" genannt wird, und ein Eingangssignal, das DevXRE (Device X Read Enable – Vorrichtung-X-Lesefreigabe) genannt wird, mit der Vorrichtung verbunden. Das X in DevXWE und DevXRE ist ein eindeutiger Identifizierer für jede bestimmte Vorrichtung.
  • [0130]
    Die Chiffriervorrichtung (CD) 811 und die LAN-zu-RAM-Vorrichtung 815 sind spezielle Fälle, insofern als dieselben auch durch ein Setzen der „REQ"-, „Write"- und „Address"-Signale und ein Empfangen der entsprechenden „ACK"-Signale für ihre Schnittstellenschaltungen 813 bzw. 817 steuern.
  • [0131]
    Die Abwärtsnutzlastvorrichtung ist ein spezieller Fall, insofern als dieselbe zwei verschiedene Sätze von REQ-, Write- und Address-Signalen steuert und zwei entsprechende DevRE-Signale empfängt.
  • Busentscheidungs- und Prioritätsschaltung
  • [0132]
    10 ist ein Zeitdiagramm, das ein Beispiel einer Datenübertragung zwischen der Vorrichtung 901 und der BAPC 825 zeigt. Um eine Datenübertragung anzufordern, aktiviert die Vorrichtung 901 das REQ-Signal, die Adresse des RAM für die Transaktion und den Typ der Transaktion durch das WRITE-Signal (Schreiben = 1, Lesen = 0). Wenn dieser Anforderung stattgegeben wird, aktiviert die BAPC das ACK-Signal. Die Vorrichtung kann sofort eine neue Anforderung erzeugen, wenn dieselbe die Bestätigung an der Taktkante erfasst. Falls diese Vorrichtung eine Schreibfähigkeit aufweist, muss dieselbe das DevWE als das Taktfreigabesignal verwenden, um den Inhalt des „Schreibbusses" in ihr internes Register zu takten. Falls diese Vorrichtung eine Lesefähigkeit aufweist, muss dieselbe das DevRE-Signal verwenden, um den Inhalt ihres internen Registers auf den „Lesebus" zu takten.
  • [0133]
    11 ist ein Schema der Busentscheidungs- und Prioritätsschaltung (BAPC) 825. Bei dem bevorzugten Ausführungsbeispiel gibt es acht Vorrichtungen, die Daten zu der BAPC 825 übertragen können. Somit gibt es gemäß dem Verbindungsschema von 11 acht getrennte REQ-Leitungen und acht getrennte Schreib- (Write-)Leitungen, jeweils eine für jede Vorrichtung. Die acht REQ-Leitungen und die acht Schreibleitungen sind mit einer Prioritätscodiererschaltung 1101 verbunden. Der Prioritätscodierer bestimmt, welcher Vorrichtung als nächstes Zugriff auf den Lesebus 831 und den Schreibbus 833 gestattet wird. Der Prioritätscodierer 1101 setzt das ACK-Signal hoch für die Vorrichtung höchster Priorität, die ihr REQ-Signal hoch gesetzt hat. Der Priori tätscodierer 1101 weist auch ein Höchste-Priorität-REQ-Signal für jede der Vorrichtungen 1 bis 8 auf (HiREQ1 bis HiREQ8). Der Prioritätscodierer 1101 wählt für einen RAM-Zugriff die Vorrichtung 1 bis 8 aus, die die höchste Priorität aufweist und die ihr REQ-Signal hoch gesetzt hat. Für diese Vorrichtung setzt der Prioritätscodierer 1101 das entsprechende HiREQ-Signal auf hoch und lässt die anderen sieben HiREQ-Signale niedrig.
  • [0134]
    Eine Vorrichtung 901 ist entweder in einem Einzelanforderungsmodus oder in einem Stoßmodus wirksam. Im Stoßmodus ist ein Zähler in der Vorrichtung auf die Anzahl von Zugriffen auf den RAM 309 gesetzt, die die Vorrichtung 901 benötigt. Die Vorrichtung 901 hält das REQ-Signal hoch, bis alle diese Anforderungen bestätigt worden sind. 12 ist ein Schema eines Abschnitts der Vorrichtung 901, die das ACK-Signal empfängt, und veranschaulicht den Betrieb der Vorrichtung 901 im Stoßmodus. Die Vorrichtung 901 enthält ein Zählerregister 1201 zum Speichern der Anzahl von Speicheranforderungen, die dieselbe durchführen muss. Jede der Vorrichtungen 901 kann es wünschen, iterativ bzgl. einem Datenblock, der in dem RAM 309 gespeichert ist, wirksam zu sein. Zum Beispiel verschlüsselt die Chiffriervorrichtung 811 iterativ ein Datenpaket, das an das Signalumwandlungssystem (SCS) 101 gesendet werden soll. Wenn deshalb eine Vorrichtung 901 auf einen Datenblock zugreifen muss, ist die Anzahl von Aufzeichnungen oder Wörtern in dem Block, auf den die Vorrichtung 901 Zugriff braucht, in dem Zähler 1201 gespeichert.
  • [0135]
    Die Vorrichtung 901 enthält auch ein Adressregister 1203 zum Speichern der nächsten Adresse in dem RAM 309, auf die die Vorrichtung 901 Zugriff haben will. Das ACK-Signal wird verwendet, um den Zähler 1201 zu dekrementieren und das Adressregister 1203 zu inkrementieren. Die Bits, die den Zähler bilden, werden alle in ein ODER-Gatter 1205 gespeist. Wenn alle Bits in dem Zählerregister Null sind, ist die Ausgabe des ODER-Gatters 1205 Null, und somit ist das REQ-Signal der Vorrichtung 901 unten. Der Zähler 1201 wird auch durch ein „LADEN"- (Anforderungsstart-) Signal gesteuert. Der Zählwert von Wörtern, auf die zuzugreifen ist, wird an einer positiven Taktflanke in den Zähler geladen, wenn das LADEN-Signal hoch ist.
  • [0136]
    Aus Gründen der Klarheit werden in der Erörterung der Busentscheidungs- und Prioritätsschaltung 825 jeder der Vorrichtungen, die mit derselben verbunden sind, Vorrichtungsnummern zugeteilt. Welche Vorrichtungsnummer welcher bestimmten Vorrichtung entspricht, ist nicht wesentlich. Zu exemplarischen Zwecken soll jedoch Vorrichtung 1 als die Abwärtssteuervorrichtung 805 betrachtet werden; aus der Perspektive der Busentscheidungs- und Prioritätsschaltung 825 handelt es sich bei der Abwärtsnutzlastvorrichtung 807 um zwei Vorrichtungen, eine für den Primärzeiger und eine für den Sekundärzeiger, deshalb seien diese als Vorrichtungen 2 und 3 betrachtet; Vorrichtung 4 sei als die Aufwärtsvorrichtung 809 betrachtet; die Chiffriervorrichtung 813 sei als Vorrichtung 5 betrachtet; die LAN-zu-RAM 815 als Vorrichtung 6; die RAM-zu-LAN als Vorrichtung 7; und der Mikroprozessor 302 (mittels der Mikroprozessorschnittstelle 829) sei als Vorrichtung 8 betrachtet.
  • [0137]
    Der Prioritätscodierer 1101 weist eine Ausgangs-ACK-Signalleitung für jede der Vorrichtungen auf, die mit der Busentscheidungs- und Prioritätsschaltung verbunden sind, nämlich ACK 1 bis ACK 8. Jede dieser Leitungen ist in Leitungen INC 1 bis INC 8 aufgeteilt, die wiederum mit ihren jeweiligen Adressregistern 1103-1 bis 1103-8 verbunden sind (die Adressregister, die den Vorrichtungen 3 bis 7 entsprechen, sind nicht gezeigt).
  • [0138]
    Die Busentscheidungs- und Prioritätsschaltung 825 ist eine pipelineartige Vorrichtung. In anderen Worten werden Daten intern parallel in koordinierten Pipelinestufen übertragen. Die Pipelinestufen für Lese- und Schreiboperationen in und aus dem RAM 309 sind auf der Zeitlinie 1105 gezeigt.
  • [0139]
    Ein Register 1107 ist ein Pipelineregister, das die HiREQ-Signale 1 bis 8 und die Schreibsignale von dem Prioritätscodierer 1101 aufnimmt. Die Adressregister 1103-1 bis 1103-8 sind mit jeweiligen Pipelineregistern 1109-1 bis 1109-8 verbunden. Jede Vorrichtung, von der die Busentscheidungs- und Prioritätsschaltung 825 liest, enthält ein Leseregister. Die Leseregister sind in 11 als Register 1111-1 bis 1111-8 gezeigt (Anmerkung: nicht alle Vorrichtungen sind Vorrichtungen, von denen gelesen wird, und somit weisen nicht alle Vorrichtungen Leseregister auf). Die Register 1107, 1109 und 1111 sind parallele Pipelineregister. Somit werden Daten parallel in die und aus den Registern 1107, 1109 und 1111 getaktet.
  • [0140]
    Die erste Stufe der Pipeline für die Busentscheidungs- und Prioritätsschaltung 825 besteht aus dem Prioritätscodierer 1101, dem Laden oder Inkrementieren der Adressregister 1103, dem Dekrementieren der Zähler 1201 und dem Vorbereiten von Daten, die in Leseregister 1111 geladen werden sollen.
  • [0141]
    Die zweite Stufe der Pipeline für die BAPC 825 besteht aus einer Lese-Schreib-Vorrichtung-Auswählschaltung 1113. Die Lese-Schreib-Vorrichtung-Auswählschaltung 1113 ist wirksam, um auszuwählen, von welcher Vorrichtung gelesen werden soll oder auf welche Vorrichtung geschrieben werden soll. Die Schaltung 1113 nimmt als Eingabe zwei Sätze von Signalen von dem Pipelineregister 1107 auf. Der erste Satz von Signalen besteht aus den acht HiREQ-Leitungen, und der zweite Satz sind die acht Schreibleitungen. Die Schaltung 1113 weist als Ausgangsleitungen eine Chipfreigabe- (CE-) Leitung zum Freigeben des RAM 309, eine Ausgabefreigabe- (OE-) Leitung zum Setzen des RAM in Schreib- oder Lesemodus, wie es für die Anforderung durch die ausgewählte Vorrichtung geeignet ist, und eine Signalleitung zum Takten von Daten in oder aus dem RAM (DevReadE) auf. Am Schluss der zweiten Stufe werden diese Signale (CE, OE, DevReadE) in ein Pipelineregister 1119 getaktet.
  • [0142]
    Zusätzlich gibt es acht Vorrichtungsschreibfreigabe-Leitungen, die von der Auswählschaltung 1113 ausgegeben werden. Falls die ausgewählte Vorrichtung eine Schreibanforderung gestellt hat, wird die entsprechende Vorrichtungsschreibfreigabe-Leitung hoch gesetzt, ansonsten wird dieselbe niedrig gelassen. Die Vorrichtungsschreibfreigabe-Leitungen für alle nicht ausgewählten Vorrichtungen bleiben niedrig. Die acht Vorrichtungsschreibfreigabe-Leitungen werden in das Pipelineregister 1119 getaktet.
  • [0143]
    Die Schaltung 1113 weist eine Ausgangsleseauswählleitung auf, die jeder Vorrichtung mit einem Leseregister 1111 entspricht. Die Leseauswählleitung, die der ausgewählten Vorrichtung entspricht, wird durch die Auswählschaltung 1113 hoch gestellt, falls die Anforderung von der ausgewählten Vorrichtung eine Leseanforderung ist, ansonsten wird dieselbe niedrig gehalten. Alle anderen Leseauswählleitungen werden niedrig gehalten. Die Leseauswählleitungen werden jeweils in Schalter 1115-1 bis 1115-8 gespeist, die wiederum mit dem Ausgang der jeweiligen Leseregister 1111-1 bis 1111-8 verbunden sind. Die Schalter 1115 ermöglichen es, dass Daten aus dem Leseregister 1111, mit dem dieselben verbunden sind, auf den Lesebus 831 übertragen werden. Am Schluss der zweiten Stufe werden die Daten auf dem Lesebus 831 in ein Pipelineregister 1117 getaktet. Somit enthält das Pipelineregister 1117 am Ende der zweiten Stufe für eine Leseoperation die Daten, die von der Vorrichtung gelesen wurden.
  • [0144]
    Die zweite Stufe enthält auch einen Adressmultiplexer 1121. Der Adressmultiplexer 1121 empfängt als Eingaben die Adressen von den acht Adresspipelineregistern 1109-1 bis 1109-8. Diese Adressen werden durch die HiREQ-Leitungen ausgewählt. Es wird immer nur eine HiREQ-Leitung hoch gehalten. Der Adress-Mux 1121 wählt die Adresse aus, die in dem entspre chenden Adressregister 1109 gespeichert ist. Am Ende der zweiten Pipelinestufe wird die ausgewählte Adresse von dem Mux 1121 in ein Pipelineregister 1123 getaktet.
  • [0145]
    Die dritte Pipelinestufe besteht aus einem Bewegen von Daten in den RAM 309 und aus dem RAM 309, je nach Fall, abhängig von dem Typ (Lese- oder Schreib-) von Anforderung, die durch die ausgewählte Vorrichtung gestellt wurde.
  • [0146]
    Das Adresspipelineregister 1123 ist mit dem RAM 309 verbunden. Bei einem positiven Taktübergang wird die Adresse, die in dem Register 1123 gespeichert ist, dem RAM 309 zugänglich gemacht, so dass der RAM auf diese bestimmte Adresse zugreifen kann.
  • [0147]
    Drei Leitungen verbinden den RAM 309 mit dem Pipelineregister 1119. Die erste von ihnen ist die Chipfreigabe- (CE-) Leitung. Falls ein RAM 309-Zugriff verarbeitet wird, setzt die Vorrichtungsauswählschaltung 1113 in Stufe 2 die CE-Leitung hoch, um den RAM 309 freizugeben. Da der CE-Leitungswert in dem Pipelineregister 1119 gespeichert wird, wird der CE-Wert, der durch die Auswählschaltung 1113 gesetzt wurde, in der dritten Stufe an den RAM 309 übertragen. Eine zweite Steuerleitung von dem Pipelineregister 1119 zu dem RAM ist die Ausgabefreigabe- (OE-) Leitung. Die OE-Leitung trägt ein Signal, um dem RAM mitzuteilen, ob auf denselben im Schreibmodus oder im Lesemodus zugegriffen wird.
  • [0148]
    Eine Leitung zum Tragen des DevReadE-Signals verbindet das Pipelineregister 1119 mit einem Schalter 1125, der das Lesedatenpipelineregister 1117 mit einem RAM-Bus 1127 verbindet. Falls eine Leseoperation (d. h. der RAM 309 liest von der ausgewählten Vorrichtung) unternommen wird, ist das DevReadE-Signal hoch (wie es durch die Vorrichtungsauswählschaltung 1113 gesetzt ist). Wenn das DevReadE-Signal hoch ist, wird es ermöglicht, dass die Daten in dem Pipelineregister 1117 durch den Schalter 1125 auf den Bus 1127 übertragen werden.
  • [0149]
    Um einen direkten Speicherzugriff auszuführen, werden das Schreibfreigabe- (WE-) und das OE-Signal für den RAM 309 und die ausgewählte Vorrichtung umgekehrt. In anderen Worten, wenn der RAM 309 „liest", „schreibt" die Vorrichtung und umgekehrt. Somit ist die OE-Signalausgabe von der Vorrichtungsauswählschaltung 1113 die Inverse des DevReadE-Signals. Bei dem DevReadE-Signal wird auch eine NAND-Operation (über Gatter 1130) mit dem Systemtaktsignal durchgeführt, um ein Schreibfreigabesignal (WE) zu erzeugen, das von dem Gatter 1130 an den RAM 309 ausgegeben wird. Das WE-Signal ist ein Übernahmesignal für den RAM 309. Dies erweist sich als besonders nützlich, wenn zwei aufeinander folgende Schreiboperationen stattfinden.
  • [0150]
    Am Schluss der dritten Stufe für eine Leseoperation an dem Übernahmesignal, das durch das WE-Signal geliefert wird, werden die Daten auf dem RAM-Bus 1127 in den RAM übertragen, an der Adresse auf der RA-Leitung, die das Adresspipelineregister 1123 mit dem RAM verbindet.
  • [0151]
    Für Schreiboperationen, d. h. wenn der RAM 309 verwendet wird, um auf eine Vorrichtung zu schreiben, werden während der dritten Stufe die Daten, die an der Adresse auf der RA-Leitung gespeichert sind, aus dem RAM 309 auf den RAM-Bus 1127 übertragen. Am Schluss der dritten Stufe werden für Schreiboperationen die Daten auf dem RAM-Bus 1127 in das Schreibpipelineregister 1131 übertragen.
  • [0152]
    Ebenfalls während der dritten Pipelinestufe werden die Signale DevWE 1 bis 8 von den Pipelineregistern 1119 in Pipelineregister 1129-1 bis 1129-8 übertragen. Diese Übertragung wird verwendet, um das Eintreffen der DevWE-Signale zeitlich mit dem Eintreffen der Daten, die in das Schreibregister der ausgewählten Vorrichtung geschrieben werden sollen, abzustimmen.
  • [0153]
    In der vierten Stufe des Betriebs der Busentscheidungs- und Prioritätsschaltung 825 werden die Daten in dem Schreibpipelineregister 1131 zuerst auf den Schreibbus 833 und dann von dem Schreibbus 833 in das Schreibregister der ausgewählten Vorrichtung übertragen. Somit ist das Schreibpipelineregister 1131 mit dem Schreibbus 833 verbunden. Der Schreibbus 833 ist über Schalter 1133-1 bis 1133-8 mit Schreibregistern 1135-1 bis 1135-8 verbunden. Da nicht alle Vorrichtungen Vorrichtungen sind, auf die geschrieben wird, weisen nicht alle Vorrichtung Schreibregister auf. Die Schalter 1133 sind jeweils mit einer entsprechenden DevWE-Leitung verbunden und werden durch dieselbe gesteuert, z. B. ist der Schalter 1133-1 mit DevWE1 verbunden. Wenn die bestimmte DevWE-Leitung ein hohes Signal trägt, ermöglicht es der Schalter 1133, dass Daten von dem Schreibbus 833 in das entsprechende Schreibregister 1135 übertragen werden. Somit enthält das Schreibregister 1135 der ausgewählten Vorrichtung für eine Schreiboperation am Schluss der vierten Stufe die Daten, die an dem Ende der dritten Stufe in dem Schreibpipelineregister 1131 gehalten werden.
  • [0154]
    Da die Busentscheidungs- und Prioritätsschaltung 825 eine pipelineartige Architektur ist, kann dieselbe Lese- und Schreibanforderungen von den Vorrichtungen 901 mit einer Rate von einer Operation pro Taktzyklus verarbeiten. Die Latenzzeit auf der RAM-Ebene beträgt zwei Taktzyklen. Die Latenzzeit auf der Vorrichtungsebene beträgt drei Taktzyklen für die Schreibvorrichtungen (auf die Vorrichtung geschriebene Daten) und einen Taktzyklus für die Lesevorrichtungen (auf den RAM geschriebene Daten).
  • [0155]
    13 ist ein Zeitdiagramm, das einen exemplarischen Satz von Transaktionen zeigt, die durch die Busentscheidungs- und Prioritätsschaltung 825 von 11 verarbeitet werden. Das Diagramm von 13 zeigt den Systemtakt (1301), die Address-, REQ-, Write- (~Read-) und ACK-Leitungen für eine erste Vorrichtung (Leitungen 1303) und für eine zweite Vorrichtung (Leitungen 1305), die ausgewählte Vorrichtung (Leitung 1307) und die Werte verschiedener interner Leitungen der Schaltung, die in 11 gezeigt ist.
  • [0156]
    Bei dem Beispiel von 13 bemühen sich zwei Vorrichtungen 901-1 und 901-2 um Zugriff auf den RAM 309. Vorrichtung 1 stellt eine Schreibanforderung und Vorrichtung 2 stellt eine Leseanforderung. Bei Pipelinestufe 1 haben beide Vorrichtungen ihre jeweiligen REQ-Signale gehoben. Vorrichtung 1 weist eine höhere Priorität auf als Vorrichtung 2, deshalb sendet der Prioritätscodierer 1101, in den zwei hohe REQ-Signale eingegeben sind, eine Bestätigung an Vorrichtung 1, die ihr REQ-Signal in Stufe 2 niedriger macht. Deshalb empfängt der Prioritätscodierer 1101 in Stufe 2 nur das REQ-Signal von Vorrichtung 2 als hoch und sendet derselben eine Bestätigung.
  • Master aller Zeiger
  • [0157]
    Jede der Vorrichtungen, die auf den RAM 309 zugreifen (Vorrichtungen 805, 807, 809, 811, 813, 815, 817, 819 und 829), greift immer jeweils nur auf einen bestimmten Abschnitt oder Puffer des RAM zu. Während des Zeitintervalls, in dem eine Vorrichtung auf einen bestimmten Puffer zugreift, hat keine andere Vorrichtung gleichzeitigen Zugriff auf diesen Puffer. Die Adresse, auf die eine Vorrichtung zugreift, ist in dem internen Adressregister der Vorrichtung (1203 von 12) gespeichert. Diese Adresse wird durch den Mikroprozessor 302 initialisiert.
  • [0158]
    Die Abwärtssteuervorrichtung 805 und die Abwärtsnutzlastvorrichtung 807 sind relativ unabhängig von dem Mikroprozessor 302 wirksam. Die DCD 805 und die DPD 807 schreiben beide auf definierte Puffer in dem RAM 309. Für sowohl die DCD 805 als auch die DPD 807 ist der Pufferumfang definiert durch zwei Register in der Steuerschaltung 301, und zwar das Oberes-Pufferende- (TOB-) Register und das Unteres-Pufferende- (BOB-) Register.
  • [0159]
    Die anderen Vorrichtungen, d. h. die Vorrichtungen 809, 811, 813, 815, 817, 819 und 829, sind immer jeweils bezüglich einem Datenpaket wirksam. Der Ort dieser Pakete wird durch eine kleine Registerdatei in der Steuereinheit 301, die der Master aller Zeiger 827 genannt wird, verwaltet.
  • [0160]
    Der MOAP 827 ist ein 16 × 16-Bit eingebetteter Speicher, der Startadressen von unterschiedlichen Puffern in dem gemeinsamen RAM 309 enthält. Unter Verwendung der Syntax der C++ Sprache:
    int*addressA = new int[sizeof_block_A];
    int*addressB = new int[sizeof_block_B];
    int*addressC = new int[sizeof_block_C];
    int*addressD = new int[sizeof_block_D]; ...
    int*MOAP[] = {addressA, addressB, addressC, addressD ...};
  • [0161]
    14(a) ist ein grobes Schema der Struktur des MOAP 827. Unter Verwendung dieser Struktur ist das CM 113 in der Lage, Datenblöcke dynamisch zu handhaben und zu bewegen.
  • [0162]
    Der Betrieb des MOAP 827 wird am besten unter Verwendung eines veranschaulichenden Beispiels verstanden. Es sei angenommen, dass der Mikroprozessor 302 mit dem LAN-Chip 307 kommuniziert und dadurch erfährt, dass ein Datenpaket von dem PC verfügbar ist, um aufwärts zu dem SCS 101 übertragen zu werden. Der Mikroprozessor 302 teilt dann einen Speicherabschnitt für dieses Paket zu, schreibt den Start dieser Adresse in den MOAP 827, bereitet den Kopfblock mit den Iterationszählinformationen vor und signalisiert der LTR- (LAN-zu-RAM-) Vorrichtung 815, dass dieser Zeiger gültig ist. Die LTR-Vorrichtung 815 kopiert diesen MOAP 827-Eintrag in ihr eigenes Adressregister und beginnt, die Daten unter Verwendung des Adressregisters von dem LAN-Chip 307 in den RAM 309 zu kopieren (natürlich unter Verwendung der BAPC 825, wie es im Vorhergehenden beschrieben ist).
  • [0163]
    Wenn das gesamte Paket zu dem RAM übertragen worden ist, signalisiert die LTR-Vorrichtung 815 dem Mikroprozessor, dass dieselbe ihre Aufgabe abgeschlossen hat. Der Mikroprozessor bereitet dann den Chiffrierchip 311 vor durch ein Auswählen oder Schreiben des richtigen Entschlüsselungsschlüssels in ein Register, das durch die Chiffriervorrichtung 811 adressierbar ist, aktualisiert den Kopfblock des Pakets mit den Iterationszählinformationen und schreibt dann die Anfangsadresse des Datenblocks in das Register des MOAP 827 für die Chiffriervorrichtung 811 und signalisiert der Chiffriervorrichtung 811, die Chiffrieroperation zu beginnen.
  • [0164]
    Die Chiffriervorrichtung 811 kopiert ihren MOAP 827-Eintrag in ihr eigenes Adressregister und beginnt die Chiffrieroperation. Am Ende der Chiffrieroperation signalisiert die Chiffriervorrichtung 811 dem Mikroprozessor 302.
  • [0165]
    An diesem Punkt ist der Datenblock bereit für die Übertragung. Der Mikroprozessor schreibt die Anfangsadresse dieses Datenblocks in das Register des MOAP 827 für die Aufwärtsvorrichtung 809, bereitet den Kopfblock vor, bereitet, falls nötig, den Reservierungsblock vor und signalisiert der Aufwärtsvorrichtung 809, das Paket zu übertragen.
  • [0166]
    Die Aufwärtsvorrichtung 809 kopiert dann ihren MOAP-827-Eintrag in ihr eigenes Adressregister und überträgt zusammen mit der Abwärtssteuerkanalvorrichtung 805 den Block.
  • [0167]
    Der Vorteil der MOAP-Struktur und des durch den Mikroprozessor 302 gesteuerten Verfahrens zum Zugreifen auf Datenblöcke in dem RAM 309 besteht in der Flexibilität, die Aufmerksamkeit von unterschiedlichen Vorrichtungen auf einen bestimmten Block im Speicher zu konzentrieren durch ein Schreiben der Anfangsadresse dieses bestimmten Blocks in den MOAP 827-Bereich und ein Signalisieren an die Vorrichtungen, diesen Block für ihre bestimmte Verwendung zu verwenden. Eine Entscheidung hinsichtlich der Größe von Puffern, der Anzahl von Puffern und des Orts von Puffern wird einfach zu einer Mikroprozessorentscheidung und muss nicht fest codiert werden.
  • [0168]
    Die einzigen fest codierten Werte in einer Zustandsmaschine, die die Operationen von jeder beliebigen der Vorrichtungen steuern, ist die Adresse in dem MOAP 827-Eintrag, die auf den für die Zustandsmaschine interessierenden Block zeigt. Zum Beispiel ist die Vorrichtung, die bezüglich Block A in 14(a) wirksam ist, fest codiert, um den Zeiger auf Block A von dem ersten Wort des MOAP 827 zu empfangen. Hingegen ist die Vorrichtung, die an Block B interessiert ist, fest codiert, um einen Zeiger auf Block B von dem zweiten Wort des MOAP 827 zu empfangen.
  • [0169]
    Mehrere Vorrichtungen sind gleichzeitig bezüglich mehrerer Datenblöcke innerhalb der Steuerschaltung 301 wirksam. Der Mechanismus zur Kommunikation zwischen dem Mikroprozessor 302 und den Vorrichtungen bezüglich dieser Blöcke sind Einbitregister, die jeder Gruppe von Speicherblöcken zugeteilt sind. Diese Register sind sowohl durch die Vorrichtungen als auch den Mikroprozessor 302 les-/beschreibbar. Diese Einbitregister werden als „Prüfregister" bezeichnet und sind in 14(a) graphisch als Elemente 1401a, 1401b, 1401c und 1401d gezeigt. Operationen bzgl. dieser Prüfregister 1401 sind wie folgt:
  • [0170]
    Der Mikroprozessor 302 teilt einer Vorrichtung einen Speicherblock zu, schreibt die Anfangsadresse in den MOAP 827 und setzt das entsprechende Prüfregister 1401 für die Vorrichtung. Die Zustandsmaschine, die die Vorrichtung steuert, wartet normalerweise darauf, dass ihr Prüfregister 1401 gesetzt wird. Wenn die Prüfung gesetzt ist, schreitet die Zustandsmaschine fort, kopiert den MOAP 827-Eintrag und macht das Prüfregister 1401 ungeprüft. Wenn der Mikroprozessor 302 das Register ungeprüft sieht, teilt der Mikroprozessor 302 den nächsten Block zu und setzt die Prüfung erneut.
  • [0171]
    Bei dem bevorzugten Ausführungsbeispiel gibt es die folgenden Einträge in den MOAP:
    MOAP[0] = nächster RAM-zu-LAN-Block
    MOAP[1] = nächster LAN-zu-RAM-Block
    MOAP[2] = nächster Chiffrierblock
    MOAP[3] = nächster Chiffrierblockversatz
    MOAP[4] = Aufwärtsanfangsblock
    MOAP[5] = Aufwärtsreservierungsblock
    MOAP[6] = Aufwärtsreservierungsblockversatz
    MOAP[7] = nächster Aufwärtsübertragungsblock
    MOAP[8] = nächster Aufwärtsübertragungsblockversatz
  • [0172]
    Zwei Blöcke, auf die durch MOAP[0] und MOAP[1] gezeigt wird, benötigen nur die Anfangsadresse der einzelnen Pakete, um in dem MOAP spezifiziert zu sein. Die Pakete in diesen zwei Blöcken benötigen die Aufmerksamkeit des Mikroprozessors 302 einzeln und müssen immer zuerst durch den Mikroprozessor 302 vorbereitet werden. Der Mikroprozessor 302 entscheidet, welches Paket verarbeitet wird, und steuert den LAN-Chip 307 vor dem Übergeben der Steuerung des Pakets an die Vorrichtungen der Steuerschaltung 301.
  • [0173]
    Es gibt zwei Einträge in dem MOAP für die Chiffriervorrichtung 811 (MOAP[2], MOAP[3]). Ein Eintrag zeigt auf den Anfang des Pakets, der tatsächlich der Kopfblock zu dem Paket ist. Ein weiterer Eintrag ist der Versatz von dem Anfang des Pakets zu dem tatsächlichen zu chiffrierenden Datenblock. Der Grund für diese Anordnung liegt darin, dass ein Chiffrierblock einer von mehreren Pakettypen mit unterschiedlichen Datenformaten sein kann. Zum Beispiel benötigt ein Abwärtsnutzlastpaket eine Entschlüsselung, wohingegen ein Aufwärtsdatenpaket eine Verschlüsselung benötigt. Die Formate für die Aufwärts- und Abwärtspakete unterscheiden sich voneinander. Aus diesem Grund enthält der MOAP 827 zusätzliche Informationen für den Versatz der Daten für jedes Paket. Der Mikroprozessor 302 entscheidet, welches Paket chiffriert werden muss. Dann lädt der Mikroprozessor 302 den geeigneten Schlüssel, IV-Register, und setzt das Modusregister des Chiffrierchips 311. Nachdem dies ausgeführt ist, aktualisiert der Mikroprozessor 302 MOAP[2] und MOAP[3] mit der richtigen Adresse und dem Versatz des Pakets.
  • [0174]
    Die Aufwärtsübertragung ist meistens ein Prozess mit zwei Schritten. Zuerst entscheidet der Mikroprozessor 302, welches Paket aufwärts übertragen wird. Dann berechnet der Mikroprozessor 302 basierend auf der Länge des Pakets und MTU (maximale Übertragungseinheiten) die Anzahl von „Schlitzen", die für die Aufwärtsübertragung zu reservieren sind. Der Mikroprozessor 302 aktualisiert dann das Reservierungsfeld eines Reservierungspakets, bei dem es sich entweder um eine leere Schablone oder ein anderes Datenpaket handeln kann, mit „Schlitz"-Informationen und zeigt den MOAP[5, 6] auf dieses Reservierungspaket. Der Mikroprozessor 302 schreibt dann die Anfangsadresse und den Versatz des zu übertragenden Blocks in den MOAP[7, 8]. Der Mikroprozessor 302 signalisiert dann der Aufwärtsvorrichtung 809, „mit Reservierung" zu übertragen.
  • [0175]
    Die Aufwärtsvorrichtung 809 überträgt zuerst den Anfangsblock in zwei Teilen, einen konstanten Strom von „1" durch Hardware und den Rest des durch MOAP[4] gezeigten Anfangsblocks, dann das Reservierungspaket über den Konkurrenzkanal unter Verwendung des vollen Protokolls für Bestätigung und Zurückhalten, wie es im Vorhergehenden beschrieben ist.
  • [0176]
    Die Aufwärtsvorrichtung 809 überträgt dann den Anfangsblock und das tatsächliche Datenpaket über den Reservierungskanal ohne Bestätigung.
  • [0177]
    Es gibt mehrere Variationen dieses Schemas. Zum Beispiel kann der Mikroprozessor 302 entscheiden, ein Paket mit einer Länge, die geringer ist als die minimale TU (transfer unit – Übertragungseinheit), durch den Konkurrenzkanal zu senden. In diesem Fall wird nur das Paket, das durch MO-AP[7] gezeigt ist, über den Konkurrenzkanal mit der Bestätigung übertragen.
  • [0178]
    In einem anderen Fall kann der Mikroprozessor entscheiden, mehrere Pakete in einen Reservierungsprozess zu gruppieren und ein Reservierungspaket zu erzeugen, das durch MOAP[5] gezeigt ist, das alle diese Pakete darstellt. Der Mikroprozessor gewährleistet dann, MOAP[7, 8] mit der Adresse des nächsten Pakets während der Übertragung des vorhergehenden Pakets zu aktualisieren, bis alle Pakete übertragen sind.
  • [0179]
    Kein Paket sollte kürzer sein als die minimale TU (Differenz der Umlaufverzögerung zwischen dem nächstliegenden und dem entferntesten Kabelmodem). Der Mechanismus, ein Paket minimaler Größe unabhängig von dem Paketinhalt zu gewährleisten, ist die Größe der Postambel. Die Postambelgröße beträgt zumindest zwei Bytes von „bedeutungslosen" Daten (don't care data). Die Postambelmenge in Bytes ist für die Aufwärtsübertragung auf den Kopfblock geschrieben. Der Mikroprozessor 302 schreibt die Größe der Postambel für jedes Paket einschließlich dem Reservierungspaket auf den Kopfblock des Pakets.
  • Paketformate im RAM
  • [0180]
    14(b) ist ein Schema der allgemeinen Formate von Paketen 1403, wie diese in dem RAM 309 gespeichert sind. Ein Kopfblock 1405 wird jedem Paket mit Status- und Zählin formationen hinzugefügt, um die Zustandsmaschinen und den Mikroprozessor 302 zu unterstützen. Die Größe des Kopfblocks wird durch ein Programmieren der Schieberegisterkette (KTREG[0]) verändert. Acht Wörter werden als ein Kopfblock 1405 von Paketen, die auf dem Abwärtskanal empfangen werden, hinzugefügt. Die ersten zwei Wörter sind allen Pakettypen gemeinsam.
  • [0181]
    Das erste Wort 1407 ist eine Information bezüglich der Anzahl von Iterationen, die die Zustandsmaschine, die das Paket 1403 bekommt, durchführen muss, um das Paket 1403 zu verarbeiten. Das Iterationszählwort 1407 wird durch den Mikroprozessor 302 geschrieben. Das zweite Wort 1409 ist ein Firmware-Flag-Feld (FFF) und ist für den Mikroprozessor 302 reserviert.
  • [0182]
    Wörter 3 bis 8 sind auftragsspezifisch und werden durch eine bestimmte Zustandsmaschine nicht unbedingt verwendet.
  • [0183]
    Ein Beispiel der Verwendung des Kopfblocks 1405 ist der Fall von Abwärtsnutzdaten. Die Abwärtsnutzdaten verwenden vier Wörter des Kopfblocks während ihres Weges von dem Kabel 111 zu dem LAN-Chip 307. Wenn die Pakete empfangen werden, prüft die Abwärtsnutzlastvorrichtung 807 den Typ der ankommenden Nutzlastadresse. Falls das Paket ein Sammelsendungspaket ist und es an dieses bestimmte CM 113 adressiert ist, berechnet die Abwärtsnutzlastvorrichtung 807 den Hash-Wert für diese Adresse und schreibt denselben in die Wortnummer 4 des Kopfblocks 1405.
  • [0184]
    Wenn das Paket vollständig empfangen worden ist, schreibt die DPD 807 die Anzahl von Bytes der empfangenen Informationen einschließlich dem Mehraufwand in die Wortnummer 3 des Kopfblocks 1405.
  • [0185]
    Der Mikroprozessor 302 berechnet die Anzahl von Iterationen für die Entschlüsselungsoperation (Vielfache von 8, inklusive der Auffüllungen, exklusive des Mehraufwands) und schreibt in die Wortnummer 1 des Kopfblocks (Iterationsfeld). Der Mikroprozessor prüft auch das E- (Encryption – Verschlüsselung) Bit, die T- (Teilnehmernutzlast in Daten) Bits und auch Adressfelder der Nutzdaten, um den richtigen Entschlüsselungsschlüssel für die Chiffrieroperation zu bestimmen. Falls es sich bei der Adresse um eine Sammelsendungsadresse handelt, verwendet der Mikroprozessor 302 die Wortnummer 4 des Kopfblocks 1405 (Hash-Wert), um einen schnellen, genauen Vergleich der MAC-Adresse durchzuführen. Der Mikroprozessor kann dann das „grüne Licht" setzen, um die Chiffriervorrichtung 811-Zustandsmaschine zu starten.
  • [0186]
    Nach der Entschlüsselung liest der Mikroprozessor 302 die ursprünglichen Bytezählwerte (Wort 3 des Kopfblocks 1405), passt dieselben bezüglich des Mehraufwands an und schreibt dieselben in den LAN-Chip 307. Unter Verwendung der gleichen Informationen berechnet der Mikroprozessor 302 die Anzahl von Wörtern, die in den LAN-Chip geschrieben werden müssen, und schreibt diesen Wert in die Wortnummer 1 des Kopfblocks 1405 (Iterationsfeld), und signalisiert der RAM-zu-LAN-Vorrichtung 819, die Daten iterativ zu dem LAN-Chip 307 zu übertragen.
  • [0187]
    Jede Zustandsmaschine weist zumindest ein/einen 16-Bit-Register/Zähler auf, das/den dieselbe als ein Adressregister verwendet. Dieses Register ist das BASIS-Register 1410 und wird normalerweise aus dem MOAP 827 geladen. Jede Zustandsmaschine weist auch ein 5-Bit-VERSATZ-Register 1413 auf, das aus der Schiebekette 1411 geladen wird (die Schiebekette wird in dem Abschnitt mit dem Titel „Interne Register" beschrieben). Da die Chiffrierblocks entweder zur Verschlüsselung oder Entschlüsselung dienen mit unterschiedlichen Versatzwerten für jede Chiffrieroperation, lädt die Chiffriervorrichtung 813 ihr VERSATZ-Register 1413 aus dem Zeiger des MOAP 827 für jedes Paket. Um die tatsächliche Adresse eines Pakets, auf das zugegriffen werden soll, zu erhalten, wird der Inhalt des BASIS-Registers 1411 durch einen Addierer 1415 zu dem VERSATZ-Register 1413 hinzugefügt.
  • Mikroprozessor
  • [0188]
    Der Mikroprozessor 302 spielt eine wichtige Rolle bei dem Verhalten des Kabelmodems 113 und den Operationen der Steuerschaltung 301. Die Steuerschaltung 301 enthält eine Anzahl von Eingangs-/Ausgangsregistern (im Folgenden in dem Abschnitt „Mikroprozessorregisterbetrachtung" beschrieben). Der Mikroprozessor 302 steuert den Betrieb des Kabelmodems 113 durch ein Setzen dieser Register.
  • [0189]
    Eine Anzahl von Initialisierungsaufgaben wird durch den Mikroprozessor 302 durchgeführt. Bei einer Initialisierung bestimmt der Mikroprozessor 302 die MAC-Adresse des Kabelmodems und überträgt die Informationen an die Hardwareregister der Steuerschaltung 301. Der Mikroprozessor 302 initialisiert auch die Steuerschaltung 301, die Abstimmvorrichtung 303 und den Sender 305.
  • [0190]
    Ebenfalls während der Initialisierung verhandelt der Mikroprozessor 302 durch den Aufwärtskanal mit der Serverstation 101, um eine Verschlüsselungsschlüsselberechnung und einen Schlüsselaustausch durchzuführen. Es gibt zwei Typen von Initialisierung: die Initialisierung bei Installation und die Initialisierung eines erfolgreich installierten Kabelmodems 113, das durch einen Leistungszyklus geht.
  • [0191]
    Bei der Installation besteht die erste Aufgabe des Kabelmodems 301 darin, einen Abwärtskanal zu finden. Um einen Abwärtskanal zu finden, führt das Kabelmodem 113 eine Abstimm- und Testoperation der Abstimmvorrichtung 303 durch eine Kanaltabelle durch. Diese Tabelle ist in dem Mikroprozessor 302-ROM gespeichert. Die ROM-basierte Kanalabstimmtabelle ist so angeordnet, dass das Kabelmodem 113 auf Kanäle hoher Wahrscheinlichkeit abstimmt, bevor dasselbe Kanäle geringer Wahrscheinlichkeit probiert. Für jeden Eintrag in der Tabelle stimmt das Kabelmodem auf den Kanal ab und versucht, den Abwärtssteuerstrom zu empfangen. Falls das CM 113 den Abwärtssteuerstrom nicht empfängt, nimmt das CM 113 an, dass der Kanal kein Abwärtskanal von der Serverstation 101 ist, und stimmt die Abstimmvorrichtung 303 auf den nächsten Eintrag in der Tabelle ab. Falls das Kabelmodem 113 durch die ganze Tabelle abstimmt, ohne einen Abwärtssteuerkanal zu finden, wird ein Fehlerindikator angeschaltet (z. B. eine Fehlerleuchte an dem Kabelmodem 113), und das Verarbeiten wird eingestellt, bis das Kabelmodem 113 erneut einen Leistungszyklus durchläuft.
  • [0192]
    Wenn das Kabelmodem 113 einen Abwärtskanal erkannt hat, speichert dasselbe die Kanalnummer in einem EEPROM und verwendet diese Abwärtskanalnummer bei nachfolgendem Einschalten.
  • [0193]
    Die Abwärtskanalnummer kann sich von Zeit zu Zeit ändern. Der Betreiber der Serverstation 101 verändert den Abwärtskanal durch ein Aussenden eines Abwärtskanal-Ändern-Rahmens auf dem Steuerkanal einige Zeit vor der tatsächlichen Änderung (z. B. einen oder zwei Tage). Das Kabelmodem speichert die neue Kanalnummer in dem EEPROM. Wenn das Kabelmodem 113 nicht mehr in der Lage ist, den alten Abwärtskanal zu erfassen, wechselt das Kabelmodem 113 automatisch auf den neuen Kanal, indem bewirkt wird, dass die Abstimmvorrichtung 303 den Kanal wechselt, auf dem empfangen wird.
  • [0194]
    Wird das Kabelmodem 113 eingeschaltet, wird die Verbindung zwischen dem Kabelmodem 113 und der Serverstation 101 eingerichtet, indem zuerst die Abstimmvorrichtung 303 auf den Abwärtskanal abgestimmt wird, der zuletzt in dem EEPROM gespeichert wurde. Das Kabelmodem wartet dann darauf, dass die Serverstation 101 die Aufwärtskanäle beschreibt, die derzeit in Betrieb sind. Wenn die Aufwärtskanalnummer bekannt ist, wartet das Kabelmodem 113 auf einen Anmelde schlitz. Anmeldeschlitze sind reserviert zum Initialisieren der Übertragungsleistungseinstellung des Kabelmodems 301. Das Kabelmodem 113 überträgt zuerst bei der Durchschnittsleistungseinstellung (diese Informationen werden durch die Serverstation 101 ausgesendet) und wartet auf eine Anmeldebestätigung von der Serverstation 101. Wird keine Bestätigung empfangen, wird die Leistungseinstellung erhöht, und nachdem eine zufällige Anzahl von Anmeldeschlitzen vergangen ist, versucht es das Kabelmodem 113 erneut. Nachdem die erhöhten Leistungseinstellungen erschöpft sind, beginnt das Kabelmodem 113, von der Durchschnittsleistungseinstellung zurückzugehen.
  • [0195]
    Nachdem das Kabelmodem 113 die richtige Leistungseinstellung bestimmt hat, wird diese Leistung in dem EEPROM zur Wiederverwendung bei nachfolgenden Einschaltanmeldungen gespeichert. Die Serverstation 101 kann zu jeder Zeit anfordern, dass das Kabelmodem 113 seine Leistungseinstellung erhöht oder verringert.
  • [0196]
    Nachdem die richtige Übertragungsleistungseinstellung eingerichtet worden ist, kann das Kabelmodem 113 mit der Serverstation 101 kommunizieren. Bei dieser Stufe sendet das Kabelmodem 113 Diffie-Hellman-Schlüsselaustauschungen, die notwendig sind, um sich selbst zu identifizieren und die DES-Verschlüsselungsschlüssel zu erhalten. Der Mikroprozessor verwaltet den Schlüsselaustauschalgorithmus und speichert die ausgetauschten Schlüssel und erzeugten Zufallszahlen in Registern zur Verwendung durch die Chiffriervorrichtung 813 und den Chiffrierchip 311.
  • [0197]
    Während der Initialisierung initialisiert der Mikroprozessor 302 auch eine Registerdatei, die Zeiger enthält, die die Vorrichtungen (805, 807, 809, 811, 813, 815, 817, 819 und 829) verwenden, um auf den RAM 309 zuzugreifen. Der Mikroprozessor initialisiert auch die Speicherstrukturen, die in dem RAM 309 resident sind.
  • [0198]
    Während des Betriebs des Kabelmodems 113 steht der Mikroprozessor durch Register (siehe folgende Erörterung unter „Interne Register") in Wechselwirkung mit der Steuerschaltung 301 und verwaltet den RAM 309 und Puffer, die in dem RAM 309 gehalten werden.
  • [0199]
    Der Mikroprozessor bereitet auch den LAN-Chip 307 vor durch ein Lesen und Beschreiben der Status- und zugeordneten Steuerregister des LAN-Chips 307.
  • [0200]
    Der Mikroprozessor 302 verwaltet auch den MOAP 827 und Steuerregister in der Steuerschaltung 301, um die Zustandsmaschinen der Steuerschaltung 301 zu führen, um Daten zwischen den verschiedenen Vorrichtungen der Steuerschaltung 301 zu bewegen. Die Zustandsmaschinen werden im Folgenden in dem Abschnitt mit dem Titel „Zustandsmaschinen" beschrieben.
  • [0201]
    Der Mikroprozessor 302 verarbeitet auch Befehle, die das Kabelmodem 113 auf dem Abwärtssteuerkanal und dem Nutzlastkanal empfängt, und führt diese Befehle aus.
  • [0202]
    Außerdem bestimmt der Mikroprozessor 302 die Dauer eines Zeitgebungsschlitzes aus Statusregistern in der Mikroprozessorschnittstelle 829 der Steuerschaltung 301 und liefert diese Informationen an die Aufwärtskanalvorrichtung 809. Außerdem verwaltet der Mikroprozessor 302 den Aufbau und die Zeitplanung der Übertragung von „Reservierungsanforderungspaketen", wenn die Paketlänge einer Aufwärtsübertragung größer ist als eine aktuelle Schlitzlänge. Der Mikroprozessor liefert auch eine Unterstützung für die Aufwärtskanalvorrichtung 809 durch ein Setzen der internen Register der Steuerschaltung für Übertragungsfunktionen nach Bedarf.
  • Interne Register
  • [0203]
    Alle Transaktionen des Mikroprozessors 302 bezüglich Komponenten des CM 113 einschließlich der Steuerschaltung 301 sind durch die I/O-Register. Jeder Vorrichtung ist ein zusammenhängender I/O-Raum zugeteilt. Zum Beispiel werden dem LAN-Chip 307 „N" 16-Bit-Register mit der Startadresse von LNBSE zugeteilt. Der gemeinsame RAM 309 der Steuerschaltung 301 wird virtualisiert, um als ein zusammenhängendes 64-K-Array von Wortregistern zu erscheinen. Es gibt sechs I/O-Räume in dem Kabelmodem 113, einschließlich dem gemeinsamen RAM 309-I/O. Die Basisadresse für diese I/O-Räume ist:
    LAN 307 LNBSE
    CHIFFRIER 311 CIBSE
    ABSTIMMVORRICHTUNG 303 TUBSE (Abstimmvorrichtung und Unterstützungsschaltungsanordnung)
    SENDER 305 TRBSE
    Steuerschaltung 301 KTREG (Registerraum)
    Steuerschaltung 301 KTRAM (gemeinsamer RAM 309-Raum)
    Steuerschaltung 301 KTMOAP (MOAP-Registerdatei)
  • [0204]
    Die Register der Steuerschaltung 301 sind im Folgenden beschrieben:
  • [0205]
    Es gibt viele Register in der Steuerschaltung 301, die nur einmal initialisiert werden und deren Werte sich nicht oft verändern. Diese Register sind miteinander verkettet und auf dieselben wird als ein langes Schieberegister zugegriffen. Die Daten an dem Ende der Schiebekette erscheinen auf Bit 0, wenn Register 0 gelesen wird. Um ein einzelnes Datenbit in die Schiebekette zu verschieben, sind zwei Schreiboperationen erforderlich. Zuerst wird Bit 0 = Datenbit und Bit 1 = 1 in das Register 0 geschrieben. Dann wird Bit 0 = gleiches Datenbit, Bit 1 = 0 in das Register 0 geschrieben. Daten werden an der abfallenden Flanke des Bits 1 in die Schiebekette verschoben. Ein Lesen der Schiebekette ist ein zerstörendes Lesen. Um den Inhalt der Schiebekette zu bewahren, wenn die Kette gelesen wird, liest der Mikroprozessor 302 zuerst Bit 0, dann schiebt er das Bit zurück in die Schiebekette, wie es im Vorhergehenden beschrieben ist. Der Mikroprozessor 302 muss die gesamte Schiebekette lesen oder schreiben. Im Folgenden ist der Inhalt der Schieberegister aufgeführt:
    Meine MAC-Adresse 48 Bits
    Nutzlastzustandsmaschinenversatz 5 Bits
    LAN-zu-RAM-Zustandsmaschinenversatz 5 Bits
    RAM-zu-LAN-Zustandsmaschinenversatz 5 Bits
    Nutzlast-Oberes-Pufferende (PTOB) 16 Bits
    Nutzlast-Unteres-Pufferende (PBOB) 16 Bits
    Abwärtssteuerung-Oberes-Pufferende (DSCTOB) 16 Bits
    Abwärtssteuerung-Unteres-Pufferende (DSCBOB) 16 Bits
    Anfangsblockgröße 4 Bits
    Anfangsblockanfangseinsengröße 3 Bits
    Zurückhaltealgorithmusparameter 4 Bits
    Q256-Signal zu Front-End-Vorprozessor 1 Bit
  • [0206]
    Bei alternativen Ausführungsbeispielen sind die Register in der Schiebekette Direktzugriffsregister.
  • [0207]
    Meine MAC-Adresse ist die 6-Byte-MAC-Adresse, mit der das Kabelmodem dargestellt ist. Sie ist die MAC-Adresse des Kabelmodems 113.
  • [0208]
    Der Versatz für Pakete, die in dem RAM 309 liegen, für die RAM-zu-LAN 819-, LAN-zu-RAM 815- und Nutzlast 807-Zustandsmaschinen wird unter Verwendung von Versatzregistern gesetzt. Pakete, die in dem RAM 309 resident sind, sind im Vorhergehenden in Verbindung mit 14(b) beschrieben. Ein Verändern des Werts des Versatzregisters verändert die Größe des Kopfblocks.
  • [0209]
    PTOB, PBOB und DSCTOB, DSCBOB sind oberes Pufferende, unteres Pufferende für die Nutzlast- und Abwärtssteuerpuffer und werden in dem Abschnitt mit dem Titel „Pufferverwaltung" erörtert.
  • [0210]
    Die Anfangsblockgröße ist die Größe (in Wörtern) des festen Teils des Aufwärtsanfangsblocks, der vor jedem Aufwärtsblock übertragen wird. Der Anfangsblock enthält eine Kabelmodem-MAC-Adresse, Sync und einen Teil des fünf Byte langen Nur-1-Flags.
  • [0211]
    Die Anfangsblockanfangseinsengröße ist die Größe des Anfangsblock-Nur-1-Anfangsflags, in Wörtern, das durch die Hardware übertragen wird, bevor der Rest des Anfangsblocks von dem RAM 309 übertragen wird. Der Zurückhaltealgorithmusparameter ist eine Zahl zwischen 6 bis 10, die basierend auf der Installation und Topologie des Netzes bestimmt wird. Dieser Parameter bestimmt die Effizienz des Zurückhaltealgorithmus.
  • [0212]
    KTREG+1 ist ein Hardwareprüfregister, in dem die einzelnen Bits durch den Mikroprozessor 302 gesetzt werden. Diese einzelnen Bits signalisieren den Hardwarezustandsmaschinen, ihre bestimmten Aufgaben durchzuführen. Wenn dieselben den Befehl empfangen, löschen die Zustandsmaschinen diese Bits. Das Löschen der Bits durch die Zustandsmaschinen fungiert als ein Senden einer Bestätigung an den Mikroprozessor 302. Da Register-1-Bits durch den Mikroprozessor 302 gesetzt werden, wird keine Unterbrechung erzeugt, wenn diese Flags gesetzt werden.
  • [0213]
    Eine Aufwärtsübertragung ist eine komplizierte Operation des Kabelmodems 113 und wird im allgemeinen in zwei Schritten abgeschlossen. Der erste Schritt ist die Reservierung und der nächste Schritt ist die Übertragung des Datenpakets. Jeder Schritt muss auch mit einer engen Zeitgebungszusammenarbeit mit dem Abwärtssteuerkanal wirksam sein. Es gibt drei Fälle eines Übertragens eines Aufwärtspakets.
  • [0214]
    Fall 1 liegt vor, wenn der Mikroprozessor 302 entscheidet, ein einzelnes Datenpaket durch den Reservierungskanal zu übertragen. In diesem Fall muss der Mikroprozessor 302 die erforderliche Anzahl von Reservierungsschlitzen basierend auf MTU berechnen und die Reservierungsstruktur in dem gemeinsamen RAM 309 aktualisieren. Der Mikroprozessor 302 setzt dann das USTR RSV-Bit. Die UD 809 überträgt zuerst das Reservierungspaket durch den Konkurrenzkanal und überträgt dann das Datenpaket durch den Reservierungskanal.
  • [0215]
    Fall 2 liegt vor, wenn der Mikroprozessor 302 entscheidet, mehrere Aufwärtspakete für eine Übertragung durch den Reservierungskanal zu gruppieren. In diesem Fall berechnet der Mikroprozessor 302 die erforderliche Anzahl von Reservierungsschlitzen basierend auf MTU, einzelner und Gesamtlänge der Aufwärtspakete, und aktualisiert die Reservierungspaketschablone in dem gemeinsamen RAM 309. Der Mikroprozessor 302 setzt dann das USTR RSV-Bit für das erste Paket. Der Mikroprozessor 302 überwacht dann das USTR RSV-Bit. Wenn dieses Bit durch die UD 809 gelöscht wird, zeigt dies an, dass das erste Paket übertragen wird. Der Mikroprozessor 302 muss dann das nächste Paket vorbereiten und das USTR NC-Bit setzen, um der Zustandsmaschine zu signalisieren, dass das nächste Paket ein Teil einer Reihe von Paketen ist, die an einem Reservierungsschema beteiligt sind, und zu Beginn des ersten verfügbaren Zeitschlitzes übertragen werden muss. Der Mikroprozessor 302 überwacht dann und setzt USTR NC-Bits für die verbleibenden Pakete, wenn das vorhergehende Paket übertragen wird.
  • [0216]
    Fall 3 ist der Fall, bei dem der Mikroprozessor 302 entscheidet, dass ein Paket, das kürzer ist als MTU, über den Konkurrenzkanal übertragen werden muss. In diesem Fall bereitet derselbe das Paket vor und setzt das USTR C-Bit. Die Zustandsmaschine überträgt dann das Datenpaket nur durch den Konkurrenzkanal.
  • [0217]
    Zustandsmaschinen sind konzipiert, um das KTREG+1-Bit 14, „SMRTIASAP, Zustandsmaschinen kehren zu inaktivem ASAP zurück", häufig zu überwachen und zu einem Ruhezustand zurückzukehren, wenn dieselben erkennen, dass dieses Bit auf „1" gesetzt ist. Dies ist eine praktische Weise, um alle Aktionen in dem Kabelmodem 113 anzuhalten. Für das beste Ergebnis müssen alle anderen Bits von KTREG+1 auf 0 gesetzt werden.
  • [0218]
    Jedes der KTREG-Register (z. B. KTREG+1) ist kein einzelnes Mehrbitregister. Jedes KTREG-Register ist tatsächlich mehrere unabhängige 1-Bit-Register. Unabhängige Bitregister zu haben verhindert eine Wettlaufbedingung, wenn der Mikroprozessor 302 versucht, ein Bit zu lesen und zu modifizieren, während die Steuerschaltung 301 versucht, ein anderes Bit zu löschen. Um ein Bit auf 1 zu setzen, wird eine 1 in die entsprechende Bitposition geschrieben, wobei Bit 15 auch auf 1 gesetzt wird. Um ein Bit auf 0 rückzusetzen, wird eine 1 in die entsprechende Bitposition geschrieben, wobei das Bit 15 auf 0 gesetzt wird. Zum Beispiel setzt ein Schreiben eines Wertes von 0x8005 in KTREG+1 das PLFC und das RTL auf 1, ohne die anderen Bits zu beeinflussen, ein Schreiben eines Wertes von 0x000A in KTREG+1 löscht die CIPH- und DSCC-Bits, ohne die anderen Bits zu beeinflussen.
  • [0219]
    Die Bits des KTREG+2-Registers werden durch die Hardwarezustandsmaschinen gesetzt und teilen dem Mikroprozessor 302 im allgemeinen den Fortschrittsstatus der Zustandsmaschinen und der Hardware mit. Der Mikroprozessor 302 kann die Bits löschen und auf die nächste Veränderungsbedingung bei jedem Bit warten. Ein Setzen eines beliebigen dieser Registerbits erzeugt eine Mikroprozessor 302-Unterbrechung. Unterbrechungen können durch ein Schreiben in KTREG+3 freigegeben oder gesperrt werden. Es liegt an dem Mikroprozessor 302, zu entscheiden, die Unterbrechungen abhängig von verwendeten Algorithmen und der Unterbrechungslatenzzeit des Mikroprozessors zu verwenden.
  • [0220]
    Bit 2 bis 7 werden durch die Zustandsmaschinen gelöscht, wenn dieselben die Adresse des nächsten Blocks aus dem MOAP erfassen, und werden gesetzt, wenn das Paket ausgeführt ist. Diese Bits verbleiben gesetzt, bis dieselben entweder durch den Mikroprozessor 302 rückgesetzt werden oder bis der nächste Block verarbeitet zu werden beginnt. Dies erfolgt, um eine Notwendigkeit einer konstanten Aufmerksamkeit des Mikroprozessors 302 zu verhindern. Der Mikroprozessor 302 kann die entsprechenden Bits von Register 1 überwachen und mehrere Pakete anordnen, die eines nach dem anderen verarbeitet werden sollen, sobald die Zustandsmaschine die Adresse des Blocks aus dem MOAP erfasst und das Flag löscht. Ein Löschen des Flags durch die Zustandsmaschinen bedeutet, dass der vorhergehende Block ausgeführt ist. Deshalb besteht keine Notwendigkeit, die entsprechenden Bits von KTREG+2 zu prüfen und zu löschen. Da die Zustandsmaschinen auch die entsprechenden Bits des KTREG+2 löschen, stellen diese Bits den Zustand des letzten Pakets dar, das verarbeitet wird, unabhängig davon, ob ein anderes Paket in der Warteschlange steht oder nicht.
  • [0221]
    Bit 15 ist genauso wirksam wie Bit 15 von KTREG+1.
    KTREG+3 Unterbrechungsmaskenregister W
  • [0222]
    KTREG+3 weist ein Bit entsprechend jedem Bit des obigen KTREG+2 auf. Wenn eine „1" in diese Bitposition geschrieben wird, ist die entsprechende Unterbrechung freigegeben.
    KTREG+4 Fehler (Nutzlast) R/W
    Bits 7:0 Zählwert Nutzlast-CRC-Fehler
    Bits 15:8 Zählwert Nutzlast-Verfehlter-Puffer-Fehler
    KTREG+5 Status (Nutzlast) R/W
    Bits 15:0 Zählwert empfangene Nutzlastpakete
    KTREG+6 Fehler und Status (Abwärtssteuerung) R/W
    Bits 7:0 Zählwert Abwärtssteuerung-CRC-Fehler
    Bits 15:8 Zählwert Abwärtssteuerung-Verfehlter-Puffer-Fehler
    KTREG+7 Fehler und Status (Abwärtssteuerung) R/W
    Bits 15:0 Zählwert empfangene Abwärtssteuerpakete
    KTREG+8 Fehler und Status (aufwärts) R/W
    Bits 15:0 Zählwert Aufwärtsneuübertragungsfehler
    KTREG+9 Fehler und Status (aufwärts) R/W
    Bits 7:0 Zählwert fallengelassene Aufwärtspakete aufgrund eines Backoff-Fehlers
    KTREG+10 Status (aufwärts) R/W
    Bits 15:0 Zählwert übertragene Aufwärtspakete
    KTREG+11 Pufferverwaltung (Nutzlast) W
    Bits 15:0 Nutzlastfirmwarelesezeiger
    KTREG+12 Pufferverwaltung (Nutzlast) R/W
    Bits 15:0 Nutzlaststeuerschaltung 301-Schreibzeiger (Nutzlastbasisregister)
    KTREG+13 Pufferverwaltung (Abwärtssteuerung) W
    Bits 15:0 Abwärtssteuerungfirmwarelesezeiger
    KTREG+14 Pufferverwaltung (Abwärtssteuerung) R/W
    Bits 15:0 Abwärtssteuerschaltung 301-Schreibzeiger (Abwärtssteuerbasisregister)
    KTREG+15 Fehler- und Statusüberrollregister R/W
  • [0223]
    Jedes Bit in KTREG+15 ist ein Flag, das das Überrollen (Rollover – Rücksprung auf Null) eines bestimmten Zählers anzeigt.
    Bit 0 Überrollen Nutzlast-CRC-Fehlerzähler
    Bit 1 Überrollen Nutzlast-Verfehlter-Puffer-Fehlerzähler
    Bit 2 Überrollen Empfangene-Nutzlastpaketezähler
    Bit 3 Überrollen Abwärtssteuerung-CRC-Fehlerzähler
    Bit 4 Überrollen Abwärtssteuerung-Verfehlter-Puffer-Fehlerzähler
    Bit 5 Überrollen Empfangene-Abwärtssteuerpaketezähler
    Bit 6 Überrollen Aufwärtsneuübertragungsfehlerzähler
    Bit 7 Überrollen Fallengelassene-Aufwärtspaketezähler
    Bit 8 Überrollen Übertragene-Aufwärtspaketezähler
  • [0224]
    Der Mikroprozessor 302 kann nur obige Bits rücksetzen. Ein Schreiben einer „1" in einer beliebigen Bitposition „setzt nur dieses Bit auf 0 zurück" und beeinflusst nicht die anderen Bits. Zum Beispiel setzt ein Schreiben von 0x0003 in dieses Register nur Bits 0 und 1 auf „0" und beeinflusst nicht andere Bits.
  • [0225]
    Die obigen Bits bleiben nach dem Überrollen gesetzt, bis die Hälfte des maximalen Zählwerts in dem nächsten Zählzyklus erreicht ist. Zum Beispiel wird Bit 2 auf „1" gesetzt, wenn KTREG[5] von 0xffff auf 0x0000 überrollt, und bleibt bei „1", bis der Zählwert 0x8000 in dem nächsten Zählzyklus erreicht. Dies gibt dem Mikroprozessor 302 genug Zeit, das Bit zu löschen und die Gesamtzählwerte zu akkumulieren.
  • [0226]
    Eine Unterbrechung wird erzeugt, wenn irgendeines dieser Bits gesetzt wird.
    KTREG+16 Unterbrechungsmaskenregister für obiges KTREG+14 R/W
  • [0227]
    Ein Schreiben einer „1" in eine beliebige Bitposition gibt die Unterbrechung von dem entsprechenden Bit von KTREG[15] frei. Demgemäß sperrt eine „0" die Unterbrechung.
    KTREG+17 bis 20 Sammelsendungsadressen-Logische-Adresse-Filter- (LAF-)Register W
    KTREG[17]15:0 LAF(15:0)
    KTREG[18]15:0 LAF(31:16)
    KTREG[19]15:0 LAF(47:32)
    KTREG[20]15:0 LAF(48:63)
    KTREG[21] Hardwarerücksetzregister W
    Bit 0 Steuerschaltung 301-Hardwarerücksetzung
    Bit 1 Abstimmvorrichtungshardwarerücksetzung
    Bit 2 Chiffrierchiphardwarerücksetzung
    Bit 3 LAN-Hardwarerücksetzung
    Bit 4 Senderhardwarerücksetzung
    Bit 5 Mikroprozessorhardwarerücksetzung
  • [0228]
    Ein Schreiben einer 1 in eine beliebige Bitposition sendet ein Rücksetzsignal auf der Hardwarerücksetzleitung der entsprechenden Vorrichtung. Ein Senden eines Rücksetzsignals auf der Hardwarerücksetzleitung der Steuerschaltung 301 löscht ALLE internen Register.
  • [0229]
    Bit 5, Mikroprozessorhardwarerücksetzung, wird durch den Mikroprozessor 302 verwendet, um sich selbst eine Rücksetzung aufzuzwingen, die derselbe durchführt durch ein Schreiben einer 1 in Bit 5. Nach einer kurzen Anfangsverzögerung wird ein kurzer Rücksetzpuls erzeugt. Der Grund für eine Hardwarerücksetzung anstatt einer Softwarerücksetzung liegt darin, dass Erstere einen reinen Anfangshardwarezustand liefert, einschließlich aufgefrischter Cacheregister.
    KTREG[22] Maske und Konfiguration W
    Bits[5:0] Front-End-CBR-Maske
    Bits[9:6] Kabelmodemaufwärtskanalnummer
  • [0230]
    Die CBR-Maske dient dazu, CBR-Bits, die von dem Steuerkanal empfangen werden, zu maskieren/demaskieren. Eine QAM-Symbol-Verwendungsbitmap, die auf einer Abwärtskanalnummer in KTREG[36] Bits [7:0] basiert, wird verwendet, um die Maskenstruktur zu bestimmen. Die Aufwärtskanalnummer wird durch den Abwärtssteuerkanal zugeteilt. Der Abwärtssteuer kanal erzeugt die „Statusbitmap" für diesen Kanal und gibt dieselbe dem Aufwärtsübertragungsblock.
    KTREG+32 Zeitgebungs- und Steuerparameter R
    Bits 15:0 Frequenz verfügbarer Aufwärtskanal
    KTREG+33 Zeitgebungs- und Steuerparameter R
    Bits 7:0 Nummer verfügbarer Aufwärtskanal
    Bits 9:8 Bits pro Symbol verfügbarer Aufwärtskanal
    Bits 15:10 Symbolrate verfügbarer Aufwärtskanal
    KTREG+34 Zeitgebungs- und Steuerparameter R
    Bits 15:0 Schlitz-MaxTU
    KTREG+35 Zeitgebungs- und Steuerparameter R
    Bits 3:0 Version
    Bits 7:4 Kanaltyp
    Bits 14:8 Schlitzzeitgeberlänge
    Bit 15 gültig (Zeitgebungs- und Steuerparameterregister, KTREG[32-37] weisen gültige Inhalte auf
    KTREG+36 Zeitgebungs- und Steuerparameter W
    Bits 7:0 meine Abwärtskanalnummer
    Bits 15:8 Anzahl von Nutzlastbits in Abwärtskanal basierend auf KTREG[37]-QAM-Symbol-Verwendungsbitmap. Voreinstellung ist 5 in einer 64-QAM-Konfiguration.
    KTREG+37 Zeitgebungs- und Steuerparameter R
    Bits 15:0 QAM-Symbol-Verwendungsbitmap basierend auf Abwärtskanalnummer in KTREG[36] Bits [7:0]
  • [0231]
    Zeitgebungs- und Steuerparameter sind die Informationen, die in einem Steuerrahmen mit dem Teilcode 0x8001 enthalten sind. Mehrere Felder werden nicht direkt durch den Teilcode 0x8001 gesendet und werden entweder durch die Hardware erzeugt oder werden durch irgendeine Verarbeitung an dem Teilcode-0x8001-Rahmen erhalten.
  • [0232]
    KTREG[35], Bits 14:8 (Schlitzzeitgeberlänge), wird durch die DCD 805 bestimmt. Es ist der maximale Zählwert des Schlitzzeitgeberfeldes.
  • [0233]
    KTREG[36], Bits 7:0 (Kabelmodemabwärtskanal #), KTREG[36], Bits 15:8 (Anzahl von Nutzlastbits), und KTREG[37], Bits 15:0 (QAM-Symbol-Verwendung), werden miteinander verbunden, um einem gemeinsamen Zweck zu dienen. Dieser Zweck besteht darin, die Anzahl von Nutzlastbits innerhalb eines jeden Symbols zu bestimmen. Zum Beispiel empfängt das Kabelmodem 113, wenn dasselbe 64-QAM verwendet, sechs Bits bei jedem Symbol. Ein Bit ist der Steuerkanal und fünf Bits sind die Nutzdaten. Bei einem alternativen Ausführungsbeispiel kann es ein Steuerbit, zwei Bits Nicht-Nutzdaten und drei Bits Nutzdaten bei jedem Symbol geben.
  • [0234]
    Ein Steuerrahmen, der den Teilcode 0x8001 aufweist, überträgt eine QAM-Symbol-Verwendungsbitmap, die jedem Abwärtskanal zugeordnet ist. Der Mikroprozessor 302 bestimmt den Abwärtskanal und schreibt denselben in KTREG+36[7:0]. Die Steuerschaltung 301 filtert Informationen und liefert die QAM-Symbol-Verwendungsbitmap, die dem Abwärtskanal zugeordnet ist, bei KTREG+37[15:0]. Der Mikroprozessor 302 liest KTREG+37 und bestimmt die Anzahl von Nutzlastbits. Der Mikroprozessor 302 schreibt dann die Anzahl von Nutzlastbits in KTREG+36[15:8]. Der Voreinstellungswert für 64-QAM beträgt 5 (1 Bit Steuerung, 5 Bits Nutzdaten, 0 Bits Nicht-Nutzdaten).
  • [0235]
    KTREG+35 Bit 15 ist das Gültigkeitsprüfungsbit für alle „Zeitgebungs- und Steuerparameter". Der Steuerkanal stellt sicher, dass alle Daten auf KTREG[32-37] gültig sind, dann kennzeichnet derselbe sie mit einer „1" auf KTREG+35[15]. Der Mikroprozessor 302 prüft dieses Bit immer einmal unmittelbar vor und einmal unmittelbar nach dem Lesen irgendei nes der oben erörterten Parameter. Dies verhindert, dass ein ungültiger Parameter gelesen und verwendet wird.
  • Zustandsmaschinen
  • [0236]
    Jede Vorrichtung wird durch eine eigens vorgesehene Zustandsmaschine gesteuert. Der Mikroprozessor 302 steuert die Zustandsmaschinen durch ein Steuern von Hardware-Flags in der Steuerschaltung 301. Die verschiedenen Vorrichtungszustandsmaschinen übermitteln ihren Status auch an den Mikroprozessor 302 durch ein Steuern von Hardware-Flags. Diese Hardware-Flags werden in Registern in der Steuerschaltung 301 gespeichert. Alle Zustandsmaschinen laufen gleichzeitig. Jede Zustandsmaschine wartet auf ein „Grünes-Licht"-Steuerflag von der Firmware. Es gibt zwei allgemeine Kategorien von Zustandsmaschinen, die die verschiedenen Vorrichtungen steuern, die mit dem RAM 309 durch die BAPC 825 der Steuerschaltung 301 in Wechselwirkung stehen. Die erste Kategorie von Zustandsmaschinen führen ein Verarbeiten an einem einzelnen Datenpaket durch und kehren zu ihrem Ruhezustand zurück und warten auf das nächste Grünes-Licht-Signal, um an dem nächsten Paket wirksam zu werden. Bei der Zustandsmaschine in der ersten Kategorie handelt es sich um die Chiffrierzustandsmaschine (für die CD 811), die Aufwärtszustandsmaschine (für die UD 809), die RAM-zu-LAN-Zustandsmaschine (für RTL 819) und die LAN-zu-RAM-Zustandsmaschine (für die LTR 815). Die zweite Kategorie von Zustandsmaschinen sind unabhängig bzgl. mehrerer Pakete in Sequenz mit geringem Eingreifen von dem Mikroprozessor 302 wirksam. Bei den Zustandsmaschinen in dieser Kategorie handelt es sich um die Abwärtsnutzlastzustandsmaschine (für die DPD 807) und die Abwärtssteuerzustandsmaschine (für die DCD 805). Bei der ersten Kategorie führt die Zustandsmaschine, wenn das „grüne Licht" gegeben ist, ihre einzige Aufgabe aus und kehrt zu dem Wartezustand auf das nächste „grüne Licht" zurück. Einige Zustandsmaschinen sind ferner aus mehreren anderen parallelen Zustandsmaschinen gebildet.
  • [0237]
    Eine Hauptzustandsmaschine steuert andere Unterzustandsmaschinen, um die Teilaufgaben der Hauptaufgabe durchzuführen, die dieser Zustandsmaschine zugeteilt ist.
  • [0238]
    15 ist ein „Blasen"-Diagramm der allgemeinen Form von erster und zweiter Kategorie von Zustandsmaschinen. Die Zustandsmaschine wartet darauf, dass der Mikroprozessor 302 ihr ein Freigabe- oder ein „Grünes-Licht"-Signal gibt, Zustand 1501. Dies zeigt normalerweise an, dass ein Puffer in dem gemeinsamen RAM 309 bereit ist, um verwendet zu werden, und der MOAP 827-Eintrag für diesen Puffer gültig ist.
  • [0239]
    16 ist ein Schema des verallgemeinerten Datenwegs 1601 von Adressregistern der Vorrichtungen 805, 807, 809, 811, 813, 815, 817 und 819. Nicht alle Vorrichtungen benötigen die gesamte Struktur von 16. Ein Primärzeiger 1603 und ein Sekundärzeiger 1605 speichern Adressen zu dem nächsten Ort in dem RAM 309, der durch die Vorrichtung verarbeitet werden soll. Die Zeiger 1603 und 1605 werden drei Operationen unterzogen: Halten, Laden und Inkrementieren.
  • [0240]
    Im Allgemeinen werden die Zeiger 1603 und 1605 aus einer Addition durch einen Addierer/Subtrahierer 1609 eines Basisregisters (oder Basiszeigers) 1607 und einem Versatz 1611 geladen. Der Basiszeiger 1607 wird entweder aus dem MOAP 827-Register für die Vorrichtung geladen oder, in dem Fall von Vorrichtungen, die keine Basiszeiger in dem MOAP 827 aufweisen, aus den Schiebekettenregistern oder aus dem Primärzeiger 1603. Der Fall eines Ladens aus dem Primärzeiger 1603 ist z. B. gegeben, wenn ein CRC-Fehler gefunden wird und der Primärzeiger 1603 auf den Anfang des Pakets, das durch den Basiszeiger 1607 gezeigt wird, rückgesetzt werden muss, wodurch das Paket wirksam verworfen wird. Der Addierer/Subtrahierer 1609 liegt für den Fall der Chiffriervorrichtung 811 vor, die den Zeiger für eine Leseoperation vier Wörter zurück bewegt.
  • [0241]
    Alternativ dazu wird das gleiche Ergebnis erreicht, indem kein Addierer, Subtrahierer und zugeordneter Multiplexer verwendet wird, indem der Ausgang des Basiszeigers direkt mit dem Eingang des PP 1603 und des SP 1605 verbunden wird und eine Dekrementieroperation zu dem PP 1603 und dem SP 1605 hinzugefügt wird. Bei dieser Alternative kann die Zustandsmaschine Inkrementier- (inc) und Dekrementier- (dec) Anweisungen an den PP 1603 und den SP 1605 ausgeben und das gleiche Ergebnis erzielen. Die letztere Alternative benötigt jedoch eine größere Anzahl von Taktzyklen als das Ausführungsbeispiel, das in 16 gezeigt ist.
  • [0242]
    Um auf 15 zurückzukommen, fährt die Zustandsmaschine auf ein Empfangen des „Grünes-Licht"-Signals hin mit dem nächsten Schritt fort, der im allgemeinen darin besteht, darauf zu warten, dass ihr eigenes Aufgaben-Flag gültig wird, Zustand 1503. Zum Beispiel wartet eine Zustandsmaschine, die die Nutzlast von dem Kabel herunterlädt, hier darauf, dass ein neues Nutzlastpaket verfügbar wird, bevor dieselbe weiter fortfährt. Einige Zustandsmaschinen übergehen diesen Schritt und gehen direkt zum nächsten Schritt über. Zum Beispiel muss die Chiffrierzustandsmaschine hier nicht auf ihr eigenes Aufgaben-Flag warten, da das „grüne Licht" von dem Mikroprozessor 302 sowohl einen gültigen Puffer als auch eine gültige Aufgabe anzeigt. Der erste Schritt beim Durchführen einer bestimmten Aufgabe besteht darin, die Anfangsadresse des Puffers aus dem MOAP 827 in das Basisregister der Zustandsmaschine zu kopieren, das „Grünes-Licht"-Signal zu löschen, um dem Mikroprozessor 302 mitzuteilen, dass dieselbe die Adresse des Pakets erfasst hat, so dass der Mikroprozessor 302 fortfahren und die Adresse eines neuen Pakets in MOAP 827 kopieren kann, und das ERLEDIGT-Bit (DONE bit) für das Paket zu löschen, Aufgabe 1505. Das Löschen des Erledigt-Bits ist eine sehr wichtige Handshake-Aufgabe zwischen dem Mikroprozessor und der Vorrichtung. Der Mikroprozessor kann den Prozess von aufeinander folgenden Paketen überwachen durch ein Setzen und Überwachen des „Grünes-Licht"-Flags in der ersten Kategorie von Zustandsmaschinen. Wenn die Zustandsmaschine das Flag löscht, bedeutet dies, dass dieselbe ihre Verarbeitung des vorhergehenden Pakets abgeschlossen hat und an dem aktuellen Paket arbeitet. Deshalb muss der Mikroprozessor 302 das ERLEDIGT-Flag nicht überprüfen. Falls der Mikroprozessor 302 kein neues Paket anordnen will, kann derselbe einfach das ERLEDIGT-Bit überwachen, um herauszufinden, wann das Verarbeiten an dem letzten Paket abgeschlossen ist.
  • [0243]
    Die nächste Aufgabe besteht darin, den Basiszeiger auf den Primärzeiger zu kopieren, Aufgabe 1507, und mit der spezifischen Aufgabe der Zustandsmaschine fortzufahren, Zustand 1509. Der Grund, warum der Wert des Basiszeigers behalten wird, liegt darin, dass es sein kann, dass das CM 113 den aktuellen Auftrag aufgrund irgendeines Fehlers abbrechen muss. In diesem Fall kann das CM 113 immer zu dem Anfang des Pakets zurückkehren und den Puffer wiederverwenden. Diese Bedingung ist als „Von-Vorne-Anfangen-Bedingung"-Übergang in 16 gezeigt. Auch muss die Zustandsmaschine für einige Aufgaben vom Anfang des Kopfblocks neu anfangen und einige neue Informationen in den Kopfblock hinzufügen. Dies wird durchgeführt durch ein Kopieren des Basiszeigers in den Sekundärzeiger und ein Verwenden des Sekundärzeigers. Ein typischer Fall ist der Fall der Abwärtsnutzlastzustandsmaschine 807, die den Hash-Wert der Sammelsendungsadresse des Pakets in den Kopfblock schreibt, während dieselbe den Rest des Pakets empfängt. Auch schreibt, wenn eine Vorrichtung beginnt, ein neues Paket zu verarbeiten, dieselbe den Bytezählwert des vorhergehenden Pakets in seinen Kopfblock.
  • [0244]
    Die Zustandsmaschine geht dann zu dem nächsten Schritt über, der darin besteht, ihre eigene spezifische Aufgabe durchzuführen, was in 15 als überlappende Zustände 1511, 1513, 1515, 1517 gezeigt ist. Während der Ausführung dieser Aufgabe kann die Zustandsmaschine ihren Fortschritt dem Mikroprozessor durch ein Setzen von Status-Flags mit teilen. Auch kann die Zustandsmaschine auch andere Unterzustandsmaschinen aktivieren, um einige Teilaufgaben parallel durchzuführen. Im Allgemeinen setzt die Zustandsmaschine, wenn eine Aufgabe erledigt ist, ein „ERLEDIGT"-Flag, Zustand 1519 und Aufgabe 1521, und kehrt zu dem Wartezustand auf die neue Aufgabe zurück, Übergang „Zurückkehren".
  • Front-End-Vorprozessor
  • [0245]
    Um auf 8 zurückzukommen, werden die I- und Q-Signale in den Front-End-Vorprozessor (FEP) 801 der Steuerschaltung 301 eingegeben. Der FEP 801 decodiert die I- und Q-QAM-Signale und decodiert diese zu einem Symbolvektor, der von dem FEP 801 zu einem Front-End-Seriellumsetzer (FES) 803 übertragen wird. Der Symboldatenweg von dem FEP 801 zu dem FES 803 ist ein Acht-Bit-Datenweg.
  • [0246]
    Der FEP 801 kann entweder 64-QAM- oder 256-QAM-Signale aufnehmen. Ein Flag-Bit Q256 wird in den FEP 801 eingegeben, um zu steuern, ob der FEP 801 die I- und Q-Signale als 64-QAM oder als 256-QAM behandelt. Bei 64-QAM werden drei Bits der I- und Q-Signale, Bits 0 bis 2, verwendet, und der Symbolvektor zu FES 803 ist ein Sechs-Bit-Vektor, der Bit 7 und Bits 4 bis 0 der Symbolleitung entspricht. Bei 256-QAM werden vier Bits der I- und Q-Signale durch den FEP 801 verarbeitet, und der Symbolvektor ist ein Acht-Bit-Vektor. Bei sowohl 64-QAM als auch 256-QAM ist Bit 7 das Steuerkanalbit.
  • [0247]
    Der FEP 801 gibt auch einen Baud-Puls aus. Der Baud-Puls ist ein einen Taktzyklus breiter Puls, der einmal pro Symbol erzeugt wird. Bei dem bevorzugten Ausführungsbeispiel werden die Symbole mit einer Rate von 5 M Symbolen/Sekunde empfangen, und der Baud-Puls (baud_pulse) weist eine Dauer von 25 Nanosekunden auf.
  • Front-End-Seriellumsetzer
  • [0248]
    Der Front-End-Seriellumsetzer (FES) 803 empfängt den Symbol- und Baud-Puls von dem Front-End-Vorprozessor 801 und partitioniert den Symbolvektor in zwei serielle Ströme. Symbolbit 7 ist der Steuerstrom („Cont_Out"). Der Cont_Out-Strom wird ausgetaktet und an die Abwärtssteuervorrichtung 805 mit der Symbolrate (baud_pulse = 5 M Bits/Sekunde) angelegt.
  • [0249]
    Der zweite Strom ist der Strom mit Nutzdaten. Dieser Strom „Pl_Dat" wird von Symbol [0:4] bei 64-QAM und von Symbol [0:6] bei 256-QAM abgeleitet. Der Pl_Dat-Strom wird mit einer Rate von 40 Mbits/sec in die Abwärtsnutzlastvorrichtung 807 übertragen. Der Pl_Dat-Strom ist mit dem Signal „plse" (Nutzlastschiebefreigabe) gekennzeichnet, das auch in die Abwärtsnutzlastvorrichtung gespeist wird. Indem der Pl_Dat-Strom so gekennzeichnet wird, werden nur die Bits, die Nutzlast sind, in die Abwärtsnutzlastvorrichtung 807 verschoben.
  • [0250]
    Der Front-End-Seriellumsetzer 803 enthält auch eine Schaltungsanordnung zum Entwürfeln des Nutzlaststroms, bevor der Nutzlaststrom zu der Abwärtssteuervorrichtung 805 übertragen wird.
  • Abwärtssteuervorrichtung
  • [0251]
    Die Abwärtssteuervorrichtung 805 ist eine zustandsmaschinengesteuerte Vorrichtung, die die folgenden Funktionen liefert. Sie verwaltet ihren eigenen Puffer in dem RAM 309. Der Umfang ihres Pufferbereichs wird durch den Mikroprozessor 302 bestimmt, der DSCTOB- und DSCBOB-Register setzt. Wenn die Abwärtssteuervorrichtung Daten in den RAM 309-Puffer schreibt, hält dieselbe ein Schreibzeiger-DSCWP-Register aufrecht, das ihren aktuellen Ort anzeigt. Der Mikroprozessor 302 hält einen Lesezeiger DSCRP aufrecht, der anzeigt, wohin derselbe gelesen hat.
  • [0252]
    Die Abwärtssteuervorrichtung 805 schreibt fortlaufend in den Puffer, bis der DSCWP das Ende des Puffers erreicht, wie es durch das DSCBOB-Register angezeigt ist. Die Abwärtssteuervorrichtung 805 schreibt dann am Anfang des Puffers weiter, setzt ein Flag DSCWRAP, um anzuzeigen, dass dieselbe dies gemacht hat. Die Abwärtssteuervorrichtung 805 fährt fort, in den Puffer zu schreiben, bis der DSCWP gleich dem DSCRP ist, was anzeigt, dass dieselbe im Begriff ist, noch nicht verarbeitete Pakete zu überschreiben.
  • [0253]
    Die Abwärtssteuervorrichtung 805 ist mit der Aufwärtsvorrichtung 809 und der Senderausgangsseite 821 verbunden und liefert diesen Vorrichtungen Bestätigungs- und Zeitgebungssignale. Bei vielen Aufwärtsnachrichten sendet die Aufwärtsvorrichtung 809 die Nachricht erneut, wenn keine Bestätigung von dem SCS 101 empfangen wird. Die Abwärtssteuervorrichtung 805 analysiert derartige Bestätigungen aus dem cont_out-Strom syntaktisch aus und überträgt die Bestätigung an die Aufwärtsvorrichtung 809. Die Abwärtssteuervorrichtung 805 erfasst auf dem cont_out-Strom die SYNC-Felder, die einen Anfang von Schlitzen und Rahmen anzeigen. Die Abwärtssteuervorrichtung 805 erfasst auch, wenn Zeitschlitze auf dem Aufwärtskanal Konkurrenzschlitze sind, und sendet diese Information an die Aufwärtsvorrichtung 809.
  • [0254]
    Die Abwärtssteuervorrichtung 805 liefert auch Reservierungsinformationen an die Aufwärtsvorrichtung 809. Wenn somit die Aufwärtsvorrichtung 809 beauftragt worden ist, ein Paket zu senden, das länger ist als MaxTU, muss dieselbe auf eine Reservierung von dem SCS 101 warten. Die Abwärtssteuervorrichtung 805 analysiert die Reservierungsstattgabe und die Anzahl von Zeitschlitzen, die vor einem Übertragen zu warten sind, aus dem cont_out-Strom syntak tisch aus und liefert diese Informationen an die Aufwärtsvorrichtung 809.
  • [0255]
    Zusätzliche Aufgaben für die Abwärtssteuervorrichtung 805 umfassen:
    eine Abwärtsverwendungsbitmap für den Abwärtskanal liefern.
  • [0256]
    Statusinformationen an den Mikroprozessor liefern.
  • [0257]
    Status- und Fehlerinformationen für den Mikroprozessor aufrechterhalten.
  • [0258]
    Abwärtsbefehle an den gemeinsamen RAM speichern, damit eine Verarbeitung erst nach einer Verifizierung, dass der Befehl für das Kabelmodem bestimmt ist, erfolgt.
  • Abwärtsnutzlastvorrichtung
  • [0259]
    Die Abwärtsnutzlastvorrichtung 807 ist eine zustandsmaschinengesteuerte Vorrichtung zum Übertragen von Abwärtsnutzdatenpaketen von dem Front-End-Seriellumsetzer 803 in den RAM 309. Die DPD 807 wird durch den Mikroprozessor durch interne Register, wie z. B. oberes Pufferende (PTOB), unteres Pufferende (PBOB), Lese- und Schreibzeiger, gesteuert. Die DPD 807 verwaltet ihren eigenen Puffer unter Verwendung der Technik, die im Vorhergehenden für die Abwärtssteuervorrichtung 805 erörtert ist.
  • [0260]
    Die Abwärtsnutzlastvorrichtung 807 ist mit dem Front-End-Seriellumsetzer 803 durch zwei Leitungen, die pl_dat-Leitung und die plse-Leitung, verbunden. Die pl_dat-Leitung ist ein serieller Datenstrom, der die Nutzdaten enthält. Der Datenstrom auf der pl_dat-Leitung wird in die DPD 807 verschoben unter Verwendung eines Ein-Puls/Bit-Pulses auf der plse-Leitung.
  • [0261]
    Der Mikroprozessor 302 gibt der DPD 807 sein „grünes Licht" durch ein Setzen eines Internregisterflags. Indem derselbe der DPD 807 ein grünes Licht gibt, zeigt der Mikroprozessor 302 der DPD 807 an, dass die Pufferregister (PTOB, PBOB, PRP und PWP) für die DPD 807 gesetzt worden sind, und dass die DPD 807 beginnen kann, Daten in den RAM zu übertragen.
  • [0262]
    Die Abwärtsnutzlastvorrichtung 807 prüft dann den pl_dat-Datenstrom auf ein SYNC-Flag. Nutzdatenpakete halten das Rahmenformat, das in 6(c) gezeigt ist, ein. Das erste Feld 751 in einem Nutzlastrahmen ist ein Ein-Byte-SYNC-Flag, das das Bitmuster „01111110" aufweist (sechs Einsen, die durch zwei Nullen eingerahmt sind). Wenn auf dem Nutzlastkanal keine zu übertragenden Daten vorliegen, überträgt das SCS 101 eine fortlaufende Reihe von SYNC-Flags. Deshalb weiß die DPD 807, dass dieselbe, wenn sie ein SYNC-Flag gefolgt von einem SYNC-Flag empfängt, keine echten Nutzdaten empfängt.
  • [0263]
    Wenn die DPD 807 ein echtes Nutzdatenpaket erfasst hat, beginnt dieselbe, den Datenrahmen unter Verwendung der BAPC 825 in den RAM 309 zu kopieren. Die DPD 807 hält zwei Zeiger in den RAM 309 aufrecht: einen Primärzeiger PP und einen Sekundärzeiger SP.
  • [0264]
    Das zweite Feld des Nutzdatenpakets ist die Modem-MAC-Adresse 753. Bei dieser Adresse 753 kann es sich um eine Sammelsendungsadresse handeln. Falls die Adresse eine Sammelsendungsadresse ist, stimmt sie mit einem der gespeicherten Hash-Werte des CM 113 für eine Sammelsendungsadresse überein, an der das CM 113 teilnimmt. Die DPD 807 führt die Hash-Berechnung der MAC-Adresse parallel zu einem Schreiben von Paketen in einen elastischen Puffer, der bezüglich der DPD 807 intern ist, aus. Die DPD 807 schreibt den Hash-codierten Wert in einen Ort des RAM 309 in einem Paketkopfblock 1405, auf den durch den SP gezeigt wird. Die DPD 807 beginnt nach einer MAC-Adressen-Verifizierung, die Nutzdaten von dem elastischen Puffer in den RAM 309 zu schreiben.
  • [0265]
    Die DPD 807 enthält auch ein internes Vorausschauschieberegister, in dem dieselbe den pl_dat-Datenstrom empfängt. Die DPD 807 überträgt Daten von dem pl_dat-Datenstrom in das Vorausschauschieberegister, das immer mehrere Datenbytes hält. Indem immer einige Datenbytes in dem Vorausschauschieberegister gespeichert sind, ist die DPD 807 in der Lage, „vorauszuschauen", bevor dieselbe in den elastischen Puffer und schließlich in den RAM 309 schreibt.
  • [0266]
    Die Vorausschau ist nützlich, um die Länge des Pakets zu bestimmen. Ein Nutzdatenpaket kann eine nicht spezifizierte Länge aufweisen. Während dieselbe das Nachrichtenfeld 763 empfängt, führt die DPD 807 eine Zählung durch, wie viele Bytes dieselbe empfangen hat. Die Nachrichtenlänge ist erst bekannt, nachdem das Ende des Pakets empfangen wurde. Durch ein Vorausschauen kann die DPD 807 das SYNC-Flag des nächsten Pakets erfassen und dadurch die Länge erfahren. Diese Paketlänge wird durch die DPD 807 durch ein Verwenden des SP gespeichert, während es ermöglicht wird, dass der PP verwendet wird, um das nächste Paket zu speichern.
  • [0267]
    Wenn das SYNC-Flag erfasst worden ist, weiß die DPD außerdem, dass das CRC-Feld 765 gerade empfangen wurde. Die DPD vergleicht dann die zyklische Redundanzprüfung, um zu bestimmen, ob das Paket fehlerfrei empfangen wurde. Wenn die CRC-Prüfung fehlschlägt, setzt die DPD ein Fehler-Flag für den Mikroprozessor 302.
  • Aufwärtsvorrichtung
  • [0268]
    Die Aufwärtsvorrichtung 809 ist eine zustandsmaschinengesteuerte Vorrichtung, die für das Senden von Paketen auf dem Aufwärtskanal zuständig ist. Die Aufwärtsvorrichtung 809 ist mit der Senderausgangsseite 821 verbunden. Datenbits werden aus der UD 809 in die Senderausgangsseite 821 immer jeweils ein Bit auf einmal ausgetaktet auf einen Bitanforderungspuls hin, der der UD 809 durch die Senderausgangsseite 821 geliefert wird.
  • [0269]
    Der Mikroprozessor 302 leitet die Aktivität der UD 809 ein durch ein Setzen des entsprechenden „Grünes-Licht"-Registers und durch ein Platzieren der RAM 309-Paketadresse in dem MOAP 827-Register für die UD 809. Die UD 809 kann in einem von drei Modi übertragen: „Mit Reservierung Übertragen", „Auf Nicht-Konkurrenz-Kanal Übertragen" und „Auf Konkurrenz-Kanal Übertragen". Für jeden gibt es ein entsprechendes „Grünes-Licht"-Register.
  • [0270]
    17 ist ein „Blasendiagramm" der Zustandsmaschine für die Aufwärtsvorrichtung 809. Zustand 1701 ist ein Ruhezustand, in dem die UD 809 auf eine Anweisung wartet, eine Nachricht in einem der drei Modi zu senden: „Mit Reservierung Übertragen", „Auf Nicht-Konkurrenz-Kanal Übertragen" und „Auf Konkurrenz-Kanal Übertragen". Für jeden von ihnen gibt es einen Zweig in der Zustandsmaschine.
  • [0271]
    Der Zweig „Mit Reservierung Übertragen" beginnt mit einem Warten auf die Verfügbarkeit des bestimmten Aufwärtskanals, auf dem das CM 113 überträgt, Zustand 1703. Ein Rahmen in dem Steuerkanal für jeden Zeitschlitz enthält einen Kanal/Schlitz-Status-Unterrahmentyprahmen. Dieser Rahmen umfasst eine Kanalbelegungsbitmap (siehe Tabelle 1). Die Kanalbelegungsbitmap wird von der DCD 805 zu der UD 809 übertragen. Wenn die UD 809 erfasst, dass ihr Kanal in dem nächsten Schlitz frei ist, geht sie über zu einem Warten darauf, dass dieser nächste Schlitz beginnt, Zustand 1705.
  • [0272]
    Von Zustand 1705 geht die UD 809, wenn die UD 809 den nächsten Schlitz erfasst hat, wie es durch einen Schlitzpuls von der DCD 805 angezeigt ist, dazu über, die Daten zu übertragen, indem dieselbe in Wechselwirkung mit der Senderausgangsseite 821 tritt, und wartet darauf, dass die Übertragung abgeschlossen ist, Zustand 1707, und wartet auf eine Bestätigung von dem SCS 101, Zustand 1709. Die Bestätigung wird auch auf dem Steuerkanal empfangen und wird zu der UD 809 von der DCD 805 übertragen.
  • [0273]
    Die UD 809 hat ein Limit gesetzt, wie lange dieselbe auf eine Bestätigung wartet. Die erwartete Latenzzeit zwischen dem Senden einer Nachricht und dem Empfangen einer Bestätigung ist eine Funktion der Entfernung zwischen dem CM 113 und dem SCS 101. Bei der Installation ist diese Latenzzeit unbekannt. Deshalb wartet das CM 113 beim ersten Mal, wenn dasselbe versucht, ein Paket zu senden, eine Millisekunde, was eine mehr als ausreichende Zeitmenge dafür ist, dass das SCS 101 einen erfolgreichen Empfang eines Datenpakets bestätigt. Wenn das CM 113 diese erste Bestätigung empfängt, speichert dasselbe diese Latenzzeit in dem EEPROM sowie in einem internen Register. Bei nachfolgenden Übertragungen wartet die UD 809 diese bekannte erwartete Latenzzeit lang.
  • [0274]
    Falls die UD 809 die Bestätigung nicht innerhalb des Zeitlimits empfängt, versucht dieselbe die Übertragung entweder erneut oder bricht ab, Zustand 1711. Es gibt eine feste Anzahl von zulässigen Neuversuchen, bei der es sich um einen programmierbaren Parameter handelt. Falls die UD 809 dieses Limit nicht überschritten hat, hält sie sich zunächst zurück, um eine weitere Kollision zu vermeiden, Zustand 1714, und überträgt dann erneut, Zustand 1707.
  • [0275]
    Falls die UD 809 ihr oberes Limit für Neuversuche erreicht hat, bricht dieselbe ab und setzt das Erledigt-Flag, um dem Mikroprozessor 302 anzuzeigen, dass dieselbe das Verarbei ten abgeschlossen hat und auf eine weitere Anweisung wartet, Zustand 1713. Die UD 809 setzt auch ein Fehler-Flag, um den Übertragungsfehler anzuzeigen. Dadurch wird ermöglicht, dass der Mikroprozessor eine geeignete Maßnahme ergreift, z. B. eine Änderung des Aufwärtskanals einleitet oder einen Fehlerbericht an den PC 115 ausgibt.
  • [0276]
    Wenn die Bestätigung in dem Zweig „Mit Reservierung Übertragen" empfangen worden ist, zeigt die Bestätigung die zu wartende Anzahl von Zeitschlitzen an. In dem Zustand 1715 wartet die UD 809 diese Anzahl von Schlitzen lang, Zustand 1715, beginnt mit der Übertragung (durch ein Aufrufen einer Hauptübertragungszustandsmaschine, nicht gezeigt) des reservierten Datenpakets und wartet darauf, dass die Übertragung abgeschlossen ist, Zustand 1717, und setzt das Erledigt-Flag, Zustand 1719, und kehrt zu dem Ruhezustand 1701 zurück.
  • [0277]
    Ein zweiter Zweig der UD 809-Zustandsmaschine ist der Zweig „Auf Konkurrenz Übertragen". Der zweite Zweig ist im wesentlichen ein Teilsatz des ersten Zweiges mit einigen kleineren Unterschieden. Die Zustände des zweiten Zweiges, die Zuständen in dem ersten Zweig entsprechen, sind angezeigt, indem die gleichen Bezugszeichen mit einem hinzugefügten Apostroph verwendet werden. Nur Unterschiede zwischen den beiden werden erörtert.
  • [0278]
    Zustand 1707' unterscheidet sich von Zustand 1707 darin, dass ein Paket ohne eine Reservierungsanforderung gesendet wird. Zustand 1709' unterscheidet sich von Zustand 1709 darin, dass die UD 809 auf ein Empfangen einer Bestätigung hin direkt von Zustand 1709' zu Zustand 1719' übergeht.
  • [0279]
    Der dritte Zweig der Zustandsmaschine für die UD 809 ist der Zweig „Nicht-Konkurrenz Übertragen". Wenn das CM 113 weiß, dass dasselbe eine Anzahl von unterbrochenen Datenpaketen übertragen muss, die insgesamt die MaxTU-Länge überschreiten, kann das CM 113 eine Reservierung für die Ge samtanzahl von Zeitschlitzen vornehmen, die benötigt wird, um diese Sammlung von Datenpaketen zu übertragen. Dazu führt dasselbe zunächst einen Zweig „Mit Reservierung Übertragen" der Zustandsmaschine für die UD 809 aus. Bei seinem Abschluss senkt die UD 809 das „grüne Licht", was es ermöglicht, dass der Mikroprozessor 302 die MOAP-Zeiger für die UD rücksetzt. Wenn derselbe dies erledigt hat, gibt der Mikroprozessor 302 eine Anweisung „Nicht-Konkurrenz Übertragen" aus, da derselbe weiß, dass noch Zeitschlitze auf der Anfangsreservierung verbleiben. Sobald die UD 809 von dem Zustand 1719 in den Ruhezustand 1701 übergeht, bemerkt dieselbe die Anweisung „Nicht-Konkurrenz Übertragen" und geht in den entsprechenden Zweig über, nämlich bei Zustand 1705''. Zustand 1705'' ist wie Zustand 1705. Nachdem dieselbe den Schlitzpuls empfangen hat, sendet die UD 809 das Datenpaket, Zustand 1717'', wartet jedoch nicht auf eine Bestätigung. Nachdem die Übertragung des Datenpakets abgeschlossen ist, setzt die UD 809 das Erledigt-Flag, Zustand 1719''.
  • Chiffriervorrichtung
  • [0280]
    Die Chiffriervorrichtung 811 ist eine zustandsmaschinengesteuerte Vorrichtung, die mit dem MOAP 827, der Busentscheidungs- und Prioritätsschaltung 825 und über die Chiffrierchipschnittstelle 813 mit dem Chiffrierchip 311 verbunden ist. Die Chiffriervorrichtung 811 gewinnt über die BAPC 825 Datenpakete aus dem RAM 309, leitet diese zu dem Chiffrierchip 311 (über die CCI 813) zur Verschlüsselung oder Entschlüsselung (je nachdem), empfängt die verarbeiteten Daten von dem Chiffrierchip 311 und bewirkt, dass die sich ergebenden verschlüsselten/entschlüsselten Daten in den RAM 309 zurückgespeichert werden.
  • [0281]
    18 ist ein „Blasendiagramm" der Zustandsmaschine, die die Chiffriervorrichtung 811 steuert. In einem ersten Zustand, Zustand 1801, ist die Chiffriervorrichtung 811 inaktiv und wartet auf das grüne Licht von dem Mikroprozessor 302. Der Mikroprozessor setzt auf ein Erfassen des Bedarfs, ein Datenpaket zu verschlüsseln oder zu entschlüsseln, z. B. auf die Anweisung des Endbenutzerprogramms, das auf dem PC 115 läuft, oder wie durch das E-Bit 755 angezeigt, die MOAP 827-Zeiger für die Chiffriervorrichtung 811, um auf das Datenpaket in dem RAM 309 zu zeigen. Ein MOAP 827-Register 2 zeigt auf das Iterationszählwort 1407 in dem Paketkopfblock, das die Anzahl von Acht-Byte-Datenblöcken anzeigt, die in dem Paket enthalten sind, und ein MOAP 827-Register 3 zeigt auf den Anfang von zu verschlüsselnden oder zu entschlüsselnden Datenblöcken.
  • [0282]
    Wenn die Chiffriervorrichtung 811 das grüne Licht empfängt, was dadurch angezeigt ist, dass der Mikroprozessor 302 das Prüfregister 1401, das der Chiffriervorrichtung 811 entspricht, setzt, leitet die Chiffriervorrichtung 811 die Initialisierungsprozedur des Chiffrierchips 311 ein, Zustand 1803. Die Chiffriervorrichtung wartet nicht darauf, dass die Initialisierung abgeschlossen ist. Die Chiffriervorrichtung 811 kopiert dann die MOAP 827-Zeiger in interne Register der Chiffriervorrichtung 811, Zustand 1805, und wartet dann darauf, dass die Initialisierung des Chiffrierchips 311 abgeschlossen ist, Zustand 1807. Wenn der Chiffrierchip 311 initialisiert ist, gewinnt die Chiffriervorrichtung 811 den Iterationszählwert aus dem RAM, Zustand 1809, und bewegt ihren Primärzeiger, um auf den Anfang des Datenpakets zu zeigen, Zustand 1811.
  • [0283]
    Um eine gute Verschlüsselung zu erhalten, werden immer mehrere Wörter gleichzeitig verschlüsselt. Bei dem bevorzugten Ausführungsbeispiel ist der Chiffrierchip 311 immer an Vier-Wort- (Acht-Byte-) Datenblöcken wirksam. Deshalb richtet die Chiffriervorrichtung 811 im Zustand 1813 ihr Adressregister 1203 und ihr Zählerregister 1201 für einen Stoßmoduszugriff des RAM 309 ein, und im Zustand 1815 greift die Chiffriervorrichtung 811 über die BAPC 825 viermal auf den RAM 309 zu, um vier Datenwörter von dem Paket in den Chiffrierchip 311 zu leiten.
  • [0284]
    In Zustand 1817 dekrementiert die Chiffriervorrichtung 811 den Iterationszählwert. In Zustand 1819 wartet die Chiffriervorrichtung 811 darauf, dass die Verschlüsselung/Entschlüsselung durch den Chiffrierchip 311 abgeschlossen wird. Anschließend veranlasst die Chiffriervorrichtung 811 die Übertragung des Datenblocks von dem Chiffrierchip 311 zu dem RAM 309 und wartet dann darauf, dass der Chiffrierchip 311 die Übertragung der vier verschlüsselten/entschlüsselten Wörter zurück zu dem RAM 309 abschließt, Zustand 1821.
  • [0285]
    Nachdem die verschlüsselten/entschlüsselten Daten zurück in den RAM 309 geschrieben worden sind, bewirkt die Chiffriervorrichtung 811, falls der Iterationszählwert größer ist als Null, dass die gleiche Operation bei dem nächsten Vier-Wort-Block wiederholt wird durch ein Zurückkehren zu Zustand 1813. Falls der Iterationszählwert Null ist, setzt die Chiffriervorrichtung das Erledigt-Flag, Zustand 1825, und wartet wieder auf das nächste grüne Flag von dem Mikroprozessor 302.
  • LAN-zu-RAM
  • [0286]
    Die LAN-zu-RAM-Vorrichtung (LTR) 815 ist mit dem MOAP 827, der Busentscheidungs- und Prioritätsschaltung 825 und über die LAN-Schnittstelle 817 mit dem LAN-Chip 307 verbunden. Die LTR 815 bewirkt die Übertragung von Datenpaketen von dem LAN-Chip 307 zu dem RAM 309. Wenn der LAN-Chip 307 Daten zu übertragen hat, erhebt der LAN-Chip 307 ein Signal an der LAN-Schnittstelle 817, das die LAN-Schnittstelle 817 über ein internes Register wieder an den Mikroprozessor 302 überträgt. Der Mikroprozessor 302 setzt den MOAP 827-Zeiger, um für die LTR 815 den Ort in dem RAM 309 anzuzeigen, um das Paket zu speichern, und schaltet das „grüne Licht" an, damit die LTR 815 beginnt, Daten von dem LAN-Chip 307 zu dem RAM 309 zu übertragen.
  • [0287]
    Auf ein Empfangen ihres „grünen Lichts" von dem Mikroprozessor 302 hin verwendet die LTR 815 ihren MOAP 827-Zeiger und die BAPC 825, um das Paket in den RAM 309 zu übertragen. Wenn dies erledigt ist, erstellt die LTR 815 ihr Erledigt-Flag, das ein Signal an den Mikroprozessor 302 ist, die Steuerung des Pakets einer der anderen Vorrichtungen zu übertragen, z. B. der Aufwärtsvorrichtung 809 für eine Direktübertragung oder der Chiffriervorrichtung 811, falls das Paket eine Verschlüsselung benötigt.
  • RAM-zu-LAN
  • [0288]
    Die RAM-zu-LAN-Vorrichtung (RTL) 819 ist mit dem MOAP 827, der Busentscheidungs- und Prioritätsschaltung 825 und über die LAN-Schnittstelle 817 mit dem LAN-Chip 307 verbunden. Die RTL 819 bewirkt die Übertragung von Datenpaketen von dem RAM 309 zu dem LAN-Chip 307. Wenn ein Paket in dem RAM 309 bereit zur Übertragung zu dem LAN-Chip 307 ist (d. h. dasselbe wurde durch die Abwärtsvorrichtung 807 empfangen und durch die Chiffriervorrichtung 811 entschlüsselt), setzt der Mikroprozessor 302 den MOAP 827-Zeiger, um für die RTL 819 den Ort in dem RAM 309 anzuzeigen, um das Paket zu gewinnen, und schaltet das „grüne Licht" an, damit die RTL 819 beginnt, Daten zu dem LAN-Chip 307 zu übertragen.
  • [0289]
    Auf ein Empfangen ihres „grünen Lichts" von dem Mikroprozessor 302 hin verwendet die RTL 819 ihren MOAP 827-Zeiger und die BAPC 825, um das Paket zu dem LAN-Chip 307 zu übertragen. Wenn dies erledigt ist, erstellt die RTL 819 ihr Erledigt-Flag.
  • Schnittstellenvorrichtungen
  • [0290]
    Wie es in den 3 und 8 gezeigt ist, steht die Steuerschaltung 301 mit mehreren externen Vorrichtungen in Wechselwirkung, z. B. mit der Abstimmvorrichtung 303, dem Sender 305, dem Chiffrierchip 311, dem LAN-Chip 307 und dem RAM. Jede dieser Vorrichtung weist unterschiedliche Zeitgebungserfordernisse und unterschiedliche I/O-Konfigurationen auf. Der Mikroprozessor 302 und die Busentscheidungs- und Prioritätsschaltung 825 weisen jedoch einheitliche Schnittstellen mit diesen anderen Komponenten auf. Zum Beispiel sind die Schnittstelle und die Zeitgebung zwischen den Vorrichtungen, die die Wechselwirkung zwischen diesen externen Komponenten steuern, und der BAPC 825, in einer verallgemeinerten Form in den 9 und 10 gezeigt.
  • [0291]
    Um die Schnittstelleneinheitlichkeit zwischen der BAPC 825 und den Vorrichtungen zu erreichen, weist jede Vorrichtung eine Schnittstelleneinheit auf. Die Schnittstelleneinheit für die Chiffriervorrichtung 811 ist die Chiffrierchipschnittstelle 813; die Schnittstelleneinheit für die LAN-zu-RAM-Vorrichtung 815 und die RAM-zu-LAN 819 ist die LAN-Schnittstelle 817.
  • [0292]
    Für jede Vorrichtung besteht die entsprechende Schnittstelleneinheit aus einer dünnen Hardwareübersetzungsschicht. Die Schnittstelleneinheit weist zwei Seiten auf. Die erste Seite, die mit der Busentscheidungs- und Prioritätsschaltung 825 kommuniziert, ist in 9 dargestellt. Die zweite Seite der Schnittstelleneinheit enthält einen Abschnitt, der mit der externen Komponente, z. B. dem LAN-Chip, eine Schnittstelle bildet, und einen weiteren Abschnitt, der mit dem Mikroprozessor 302 eine Schnittstelle bildet.
  • [0293]
    Jede Schnittstelleneinheit enthält eine Zustandsmaschine, um die Zeitgebungsunterschiede zwischen den zwei Seiten der Schnittstelleneinheit zu verwalten. Die Schnittstelleneinheit, wie durch ihre interne Zustandsmaschine angewiesen, überträgt Daten von der Vorrichtungsseite, z. B. LTR 815, zu der Komponentenseite (z. B. dem LAN-Chip 307) der Schnittstelleneinheit mit einer geeigneten Handshake-Übersetzung, wie es durch die bestimmte externe Komponente benötigt wird, mit der dieselbe verbunden ist. Zum Beispiel wird in dem Fall des Chiffrierchips eine Adresse für jedes übertragene Wort erzeugt.
  • [0294]
    Wenn ein REQ ausgegeben wird, nimmt die Busentscheidungsund Prioritätsschaltung 825 an, dass die Vorrichtung immer bereit für diese Anforderung ist. Deshalb muss die Zustandsmaschine in der Schnittstelleneinheit das RD_ready- und das WT_ready-Signal setzen, wenn dieselbe bereit ist, die Lese- und Schreibtransaktionen anzunehmen. Die Zustandsmaschine der Busentscheidungs- und Prioritätsschaltung 825 tritt in den REQ-Zustand, wenn dieselbe das Bereit-Signal von der Schnittstelleneinheit erfasst.
  • [0295]
    Ein Hinzufügen dieser dünnen Hardwareübersetzungsschichten liefert Flexibilität für die Ausgestaltung der Steuerschaltung 301. Die Busentscheidungs- und Prioritätsschaltung 825 ist konzipiert, ohne die Besonderheiten jeder Peripheriegerätausgestaltung zu berücksichtigen. Dementsprechend können sich alternative Ausführungsbeispiele, die unterschiedliche externe Komponenten aufweisen, voneinander unterscheiden. Derartige Unterschiede können durch ein Verändern der entsprechenden Schnittstelleneinheiten aufgenommen werden.
  • Schlussfolgerung
  • [0296]
    Exemplarische und bevorzugte Ausführungsbeispiele der vorliegenden Erfindung wurden hier beschrieben. Es gibt viele Alternativen zu diesen Ausführungsbeispielen. Zum Beispiel ist in 2 ein Signalumwandlungssystem 101 so beschrieben, dass dasselbe eine auf einem gemeinschaftlich verwendeten Bus basierende Architektur aufweist, und in 8 ist ein Kabelmodem 113 so beschrieben, dass dasselbe viele parallele zustandsmaschinengesteuerte Vorrichtungen aufweist, die bzgl. eines gemeinschaftlich verwendeten Speichers 309 wirksam sind. Ein erstes alternatives Ausführungsbeispiel des SCS 101 umfasst die Ausgestaltung des Kabelmodems 113. Bzgl. des ersten alternativen SCS verwendet, wo das CM 113 einen QPSK-Sender 305 verwendet, das alternative SCS einen 64-QAM-Sender; wo das CM 113 einen 64-QAM-Empfänger verwendet, verwendet das alternative SCS einen QPSK-Empfänger; und anstatt eines LAN-Chips 307 verwendet das alternative SCS eine Routerschnittstelle. Bei dem ersten alternativen Ausführungsbeispiel des SCS sind die LTR 815 und die RTL 819 durch Schnittstellen zwischen dem RAM und der Routerschnittstelle ersetzt.
  • [0297]
    Da ein Fachmann erkennen wird, dass zahlreiche Modifizierungen und Veränderungen an der vorliegenden Erfindung vorgenommen werden können, ist es nicht erwünscht, die Erfindung auf den exakten Aufbau und den Betrieb zu beschränken, wie dieselben veranschaulicht und beschrieben sind. Somit kann auf alle geeigneten Modifizierungen und Äquivalente als in den Schutzbereich der Erfindung fallend zurückgegriffen werden.

Claims (1)

  1. Ein digitales Hochgeschwindigkeitsmodem, das folgende Merkmale aufweist: a. eine Abstimmvorrichtung (303), die mit einem Übertragungsmedium verbindbar ist und abgestimmt ist, um ein erstes Signal auf einem ersten Kanal des Übertragungsmediums zu empfangen; b. einen Front-End-Vorprozessor (801), der mit der Abstimmvorrichtung (303) verbunden ist und wirksam ist, um das erste Signal in einen ersten und einen zweiten Bitstrom umzuwandeln; c. eine nachgeschaltete Steuervorrichtung (805), die mit der Abstimmvorrichtung (303) verbunden ist, um den ersten Bitstrom zu empfangen, die wirksam ist, um den ersten Bitstrom syntaktisch zu analysieren, und die wirksam ist, um Steuersignale auszugeben, die Übertragungsverzögerungsinformationen umfassen, die eine für eine Übertragung zu wartende Zeitperiode anzeigen; d. einen Sender (305), der mit dem Übertragungsmedium verbindbar ist und wirksam ist, um ein zweites Signal auf einem zweiten Kanal des Übertragungsmediums zu übertragen; und e. eine vorgeschaltete Steuervorrichtung (809), die mit dem Sender (305) verbunden ist und die mit der nachgeschalteten Steuervorrichtung (805) verbunden ist, um die Steuersignale zu empfangen, und die wirksam ist, um zu bewirken, dass der Sender nach dem Ende einer Zeitperiode, die durch die Übertragungsverzögerungsinformationen bestimmt ist, beginnt, Datenpakete zu übertragen.
DE1996633894 1995-09-22 1996-09-12 Modem zur Kommunikation von Hochgeschwindigkeitsdaten Expired - Lifetime DE69633894T2 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US532923 1995-09-22
US08532923 US5787483A (en) 1995-09-22 1995-09-22 High-speed data communications modem

Publications (1)

Publication Number Publication Date
DE69633894T2 true DE69633894T2 (de) 2005-11-24

Family

ID=24123761

Family Applications (2)

Application Number Title Priority Date Filing Date
DE1996633894 Expired - Lifetime DE69633894T2 (de) 1995-09-22 1996-09-12 Modem zur Kommunikation von Hochgeschwindigkeitsdaten
DE1996633894 Expired - Lifetime DE69633894D1 (de) 1995-09-22 1996-09-12 Modem zur Kommunikation von Hochgeschwindigkeitsdaten

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE1996633894 Expired - Lifetime DE69633894D1 (de) 1995-09-22 1996-09-12 Modem zur Kommunikation von Hochgeschwindigkeitsdaten

Country Status (4)

Country Link
US (1) US5787483A (de)
JP (1) JP3279487B2 (de)
DE (2) DE69633894T2 (de)
EP (1) EP0765061B1 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8576693B2 (en) 1995-02-06 2013-11-05 Htc Corporation Systems and method for orthogonal frequency division multiplexing
US6334219B1 (en) 1994-09-26 2001-12-25 Adc Telecommunications Inc. Channel selection for a hybrid fiber coax network
USRE42236E1 (en) 1995-02-06 2011-03-22 Adc Telecommunications, Inc. Multiuse subcarriers in multipoint-to-point communication using orthogonal frequency division multiplexing
US7280564B1 (en) 1995-02-06 2007-10-09 Adc Telecommunications, Inc. Synchronization techniques in multipoint-to-point communication using orthgonal frequency division multiplexing
US7254781B1 (en) 1996-07-19 2007-08-07 Cisco Technology, Inc. Method and apparatus for providing multiple management interfaces to a network device
US6008805A (en) 1996-07-19 1999-12-28 Cisco Technology, Inc. Method and apparatus for providing multiple management interfaces to a network device
US6031844A (en) * 1996-12-24 2000-02-29 National Science Council Method of upstream multiple access control in a transmission system
US7529856B2 (en) * 1997-03-05 2009-05-05 At Home Corporation Delivering multimedia services
US6370571B1 (en) 1997-03-05 2002-04-09 At Home Corporation System and method for delivering high-performance online multimedia services
US6408336B1 (en) 1997-03-10 2002-06-18 David S. Schneider Distributed administration of access to information
JPH10301492A (ja) 1997-04-23 1998-11-13 Sony Corp 暗号化装置および方法、復号装置および方法、並びに情報処理装置および方法
US7233665B1 (en) 1997-04-23 2007-06-19 Sony Corporation Enciphering apparatus and method, deciphering apparatus and method as well as information processing apparatus and method
JP3760460B2 (ja) 1997-04-23 2006-03-29 ソニー株式会社 データ送信装置および方法、データ受信装置および方法、並びにデータ送受信システムおよび方法
US5884313A (en) * 1997-06-30 1999-03-16 Sun Microsystems, Inc. System and method for efficient remote disk I/O
US6263358B1 (en) * 1997-07-25 2001-07-17 British Telecommunications Public Limited Company Scheduler for a software system having means for allocating tasks
CA2248490C (en) 1997-10-31 2002-08-27 Lucent Technologies Inc. Access to communications systems
US8914410B2 (en) * 1999-02-16 2014-12-16 Sonicwall, Inc. Query interface to policy server
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US7194554B1 (en) 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
US7075903B1 (en) * 1999-04-14 2006-07-11 Adc Telecommunications, Inc. Reduced power consumption in a communication device
US6751230B1 (en) * 1999-05-24 2004-06-15 3Com Corporation Upstream channel multicast media access control (MAC) address method for data-over-cable systems
WO2001006704A3 (en) * 1999-07-05 2001-07-19 Brightcom Technologies Ltd Packet processor
WO2001006725A3 (en) * 1999-07-05 2001-07-19 Coresma Ltd Process and system for carrying out parallel packet processing
EP1819108B1 (de) * 1999-10-22 2013-09-18 Nomadix, Inc. System und Verfahren zur dynamischen Verwaltung von Bandbreite pro Teilnehmer in einem Kommunikationsnetzwerk
US7308700B1 (en) * 1999-12-15 2007-12-11 Stmicroelectronics, Inc. Network station management system and method
US7308575B2 (en) * 2000-03-30 2007-12-11 Arris Group, Inc. Data scrambling system for a shared transmission media
US6985963B1 (en) * 2000-08-23 2006-01-10 At Home Corporation Sharing IP network resources
US6742187B1 (en) 2000-09-15 2004-05-25 3Com Corporation Upstream bandwidth allocation map (MAP)-initiated channel change method for data-over-cable systems
GB0023338D0 (en) * 2000-09-22 2000-11-08 Nokia Networks Oy Negotiation of transmission parameter
CA2425388A1 (en) * 2000-11-08 2002-05-16 Coaxmedia, Inc. Data scrambling system for a shared transmission medium
US20020064282A1 (en) * 2000-11-29 2002-05-30 Dmitrii Loukianov Decryption key management in remote nodes
KR20040008124A (ko) * 2001-01-31 2004-01-28 인터내셔널 비지네스 머신즈 코포레이션 제어 정보 제공 방법 및 통신 스위치 및 이를 포함하는호스트 컴퓨터 시스템
US7197768B2 (en) * 2001-07-09 2007-03-27 Advanced Micro Devices, Inc. Software modem for communicating data using encrypted data and unencrypted control codes
US6839799B2 (en) * 2001-07-17 2005-01-04 Alliance Semiconductor Method for the prioritization of database entries
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7870346B2 (en) 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7080188B2 (en) 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US7099963B2 (en) * 2003-03-10 2006-08-29 Qlogic Corporation Method and system for monitoring embedded disk controller components
US8509442B2 (en) * 2005-07-27 2013-08-13 Sharp Laboratories Of America, Inc. Association, authentication, and security in a network
US7835315B2 (en) * 2005-08-23 2010-11-16 Nokia Corporation Method and apparatus for providing addressing in a multi-carrier communication system
US20070220509A1 (en) * 2006-02-24 2007-09-20 International Business Machines Corporation System and method for deploying software based on matching provisioning requirements and capabilities
US8893210B2 (en) * 2010-08-20 2014-11-18 Sony Corporation Server load balancing for interactive television
CA2825047A1 (en) 2011-01-18 2012-07-26 Nomadix, Inc. Systems and methods for group bandwidth management in a communication systems network

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521891A (en) * 1980-07-07 1985-06-04 Sytek, Incorporated Multiple channel data communication system
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
US4514825A (en) * 1982-03-09 1985-04-30 Kinex Corporation High speed digital modem
JPS6118226B2 (de) * 1982-06-18 1986-05-12 Fujitsu Ltd
US4553161A (en) * 1983-12-09 1985-11-12 Zenith Electronics Corporation Upstream data packet time slot synchronization with downstream VBI for two-way CATV system
US4674032A (en) * 1984-04-02 1987-06-16 Unisys Corporation High-performance pipelined stack with over-write protection
US5293500A (en) * 1989-02-10 1994-03-08 Mitsubishi Denki K.K. Parallel processing method and apparatus
US5155590A (en) * 1990-03-20 1992-10-13 Scientific-Atlanta, Inc. System for data channel level control
FR2667750A1 (fr) * 1990-10-05 1992-04-10 Philips Electro Grand Public Reseau cable et dispositif modulateur-demodulateur pour un tel reseau.
WO1994008414A1 (en) * 1992-09-29 1994-04-14 Com 21, Inc. Cell based wide area network alternative access telephone and data system
US5488412A (en) * 1994-03-31 1996-01-30 At&T Corp. Customer premises equipment receives high-speed downstream data over a cable television system and transmits lower speed upstream signaling on a separate channel
US5534913A (en) * 1994-03-31 1996-07-09 At&T Corp. Apparatus and method for integrating downstream data transfer over a cable television channel with upstream data carrier by other media

Also Published As

Publication number Publication date Type
DE69633894D1 (de) 2004-12-30 grant
EP0765061A3 (de) 1999-09-29 application
JP3279487B2 (ja) 2002-04-30 grant
EP0765061B1 (de) 2004-11-24 grant
US5787483A (en) 1998-07-28 grant
EP0765061A2 (de) 1997-03-26 application
JPH09172452A (ja) 1997-06-30 application

Similar Documents

Publication Publication Date Title
US7251231B2 (en) Method and apparatus for controlling communication within a computer network
Tanenbaum Network protocols
Limb et al. A protocol for efficient transfer of data over hybrid fiber/coax systems
Bisdikian et al. MLAP: A MAC level access protocol for the HFC 802.14 network
US5734833A (en) Shared communications channel with enhanced reservation and collision resolution protocols allows any subset of stations to transmit data after collision occured in contention slot
US5787483A (en) High-speed data communications modem
US20030061620A1 (en) Method and system for flexible channel association
EP0365693A1 (de) Verfahren und Schaltungsanordnung zum Übertragen von Nachrichtensignalen in einem Breitband-Kommunikationsnetz
EP1512254A1 (de) Kommunikationsverfahren und system zur übertragung von zeitgesteuerten und ereignisgesteuerten ethernet-nachrichten
JP2003274446A (ja) 帯域制御方法および基地局装置
WO2000016532A2 (en) Dynamic communication channel switching for computer networks
EP0996257A2 (de) Netzwerk mit Brücken-Terminal zur Übertragung von Daten zwischen mehreren Sub-Netzwerken
DE102005008503B3 (de) Verfahren und Netzwerk zur Daten- und Signalübertragung
DE19521484A1 (de) Verfahren und Vorrichtung zur Authentisierung von Teilnehmern gegenüber digitalen Vermittlungsstellen
DE102006003167B3 (de) Sichere Echtzeit-Kommunikation
EP0817427A1 (de) Adaptives kreditbasiertes Datenflusssteuerungsverfahren
EP2018015A1 (de) Verfahren und Vorrichtung für eine anonyme verschlüsselte mobile Daten- und Sprachkommunikation
DE102005059616A1 (de) Verfahren, Kommunikationssystem, Multimedia-Teilnehmer und Gateway zum Übertragen von im MPEG-Format vorliegenden Multimedia-Daten
DE19802867A1 (de) Verfahren sowie System zur schnurlosen Datenkommunikation
KR20010105387A (ko) 계층적 전송을 이용한 인터넷 방송 시스템 및 인터넷 방송방법
DE19956318A1 (de) Verfahren zur Steuerung
WO2000016517A2 (en) Method and apparatus for accessing a computer network communication channel
DE19605223A1 (de) Verfahren zum Betreiben einer Breitband-Verbindung zwischen einem Mobilfunk-Endgerät und einer netzseitigen Mobilfunkeinrichtung sowie Mobilfunk-Endgerät, netzseitige Mobilfunkeinrichtung und Mobilfunksystem
DE19725422A1 (de) Bussystem für ein digitales Kommunikationsnetz und Verfahren zur Steuerung eines derartigen Bussystems
DE19845071A1 (de) Verfahren zum Übermitteln von paketorientierten Informationen über ein Zubringernetz mit einer Funkstrecke