DE69839374T2 - Multitorspeicher verwendende intelligente datenbusschnittstelle - Google Patents

Multitorspeicher verwendende intelligente datenbusschnittstelle Download PDF

Info

Publication number
DE69839374T2
DE69839374T2 DE69839374T DE69839374T DE69839374T2 DE 69839374 T2 DE69839374 T2 DE 69839374T2 DE 69839374 T DE69839374 T DE 69839374T DE 69839374 T DE69839374 T DE 69839374T DE 69839374 T2 DE69839374 T2 DE 69839374T2
Authority
DE
Germany
Prior art keywords
data
bus
port
memory
data bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69839374T
Other languages
English (en)
Other versions
DE69839374D1 (de
Inventor
Volker Lindenstruth
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.)
Callahan Cellular LLC
Original Assignee
ICORE TECHNOLOGIES Inc
ICORE TECHNOLOGIES Inc
Icore Technologies Inc Dayton
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ICORE TECHNOLOGIES Inc, ICORE TECHNOLOGIES Inc, Icore Technologies Inc Dayton filed Critical ICORE TECHNOLOGIES Inc
Publication of DE69839374D1 publication Critical patent/DE69839374D1/de
Application granted granted Critical
Publication of DE69839374T2 publication Critical patent/DE69839374T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Description

  • Die vorliegende Erfindung betrifft eine intelligente Datenbus-Schnittstelle und insbesondere eine intelligente Datenbus-Schnittstelle mit einem Multiport-Speicher und einem Datenprozessor.
  • Eine typische Schnittstelle zwischen dem Bus eines Host-Computers und dem Bus eines Slave-Computers oder einer I/O-Vorrichtung enthält einen Dualport-Speicher mit zwei unabhängigen bidirektionalen Ports. Der Dualport-Speicher liegt im Allgemeinen in einem überlappenden Adressbereich beider Computer. Daten werden zwischen den Computern übertragen, indem ein Computer an jenen Adressbereich des Computers schreibt, der dem Dualport-Speicher zugehörig ist, und der andere Computer anschließend die Daten aus dem anderen Adressbereich des Computers liest, der dem Dualport-Speicher zugehörig ist. Der Dualport-Speicher ist als Schnittstelle zwischen einem Host-Bus und einem Slave-Bus besonders vorteilhaft, die bei verschiedenen Datenraten arbeiten. Die Schnittstelle erfordert einen unterbrechungsgetriebenen Zugriff auf die zentralen Verarbeitungseinheiten ("Central Processing Unit" – CPU) des Host-Computers und des Slave-Computers für Protokoll-, Steuerungs- und Datenverarbeitungsfunktionen. Jede CPU wird durch die Schnittstellenunterbrechungen belastet, die einen signifikanten Anteil der Verarbeitungsleistung der CPU fordern können.
  • Eine typische intelligente Schnittstelle hat einen Eingangs-/Ausgangsprozessor ("Input/Output Processor" – IOP), der einen zweckbestimmten Mikroprozessor enthält, der ermöglicht, dass die CPU des Host-Computers von vielen mit der Eingabe/Ausgabe (I/O) zusammenhängenden Aufgaben entlastet wird. Daher kann eine höhere I/O-Leistung erreicht werden, während die Verarbeitungslast an der Host-CPU gesenkt wird. Zusätzlich kann der IOP höhere Ebenen des I/O-Protokolls ausführen, Datenkonvertierungen durchführen, wie Verschlüsselung/Entschlüsselung, und intelligente Laufzeitoptimierungen, wie Read-Ahead Caching und Write-Date Merging, durchführen.
  • Ein Beispiel für eine bestehende intelligente Datenbus-Schnittstelle ist als Netzwerkbrücke 100 in U.S. Patent Nr. 5,130,981 an Murphy offenbart. Der Begriff "intelligent" stammt von einem zweckbestimmten Systemprozessor 101, der in der Netzwerkbrücke enthalten ist. In der Netzwerkbrücke von Murphy wird ein Singleport-Direktzugriffsspeicher ("Random Access Memory" – RAM) 102 zum Speichern von Datenpaketen verwendet, die von der Netzwerkbrücke von einem ersten Netzwerk 105 und von einem zweiten Netzwerk 106 durch erste und zweite DMA-Steuerungen 103 bzw. 104 empfangen werden. Der Systemprozessor und die DMA-Steuerungen haben über eine 3-Port-RAM-Schnittstelle Zugriff auf die Datenpakete, die im RAM gespeichert sind, die verhindert, dass der Systemprozessor oder die DMA-Steuerungen simultan auf den Singleport-RAM zugreifen. Im Idealfall ordnet die 3-Port-RAM-Schnittstelle 107 den Zugriff dem Singleport-RAM derart zu, dass der Prozessor und die zwei DMA-Steuerungen gleiche Zugriffsprioritäten für den Singleport-RAM haben. Zur Bereitstellung gleicher Zugriffsprioritäten muss jedoch die Zugriffszykluszeit des RAM das Dreifache der Zugriffszykluszeit des Prozessors oder der DMA-Steuerungen sein, wodurch die maximale Bandbreite der Netzwerkbrücke auf etwa ein Drittel der Bandbreite des RAM begrenzt ist. Die 3-Port-RAM-Schnittstelle verknüpft den Zugriff auf den Singleport-RAM in einer Weise, die einen simultanen und asynchronen Zugriff durch den Prozessor und die DMA-Steuerungen zu dem Singleport-Speicher verhindert. Ferner müssen alle Datenübertragungen und alle Anfragen im Murphy-Patent zwischen den zwei Netzwerken durch den RAM erfolgen.
  • US 5,434,818 betrifft eine Vierport-RAM-Zelle. Eine Speichervorrichtung zur Verwendung in einem digitalen Computersystem weist mehrere Speicherzellen auf, wobei jede der mehreren Speicherzellen ein Bit Daten speichert. Das eine Bit Daten hat einen Wert. Jede der mehreren Speicherzellen hat eine erste Wortleitung, eine zweite Wortleitung, eine dritte Wortleitung, eine vierte Wortleitung, eine erste Bitleitung, eine zweite Bitleitung, eine dritte Bitleitung, eine vierte Bitleitung, eine fünfte Bitleitung und eine sechste Bitleitung. In der ersten Bitleitung ist ein erstes Schreibdaten-Bit enthalten und in der zweiten Bitleitung ist das Inverse des ersten Schreibdaten-Bit enthalten. In der dritten Bitleitung ist ein zweites Schreibdaten-Bit enthalten und in der vierten Bitleitung ist das Inverse des zweiten Schreibdaten-Bit enthalten. Die erste Wortleitung gibt die entsprechende Speicherzelle frei, so dass das erste Schreibdaten-Bit, das in der ersten Bitleitung enthalten ist, in der entsprechenden Speicherzelle gespeichert wird. Die zweite Wortleitung gibt die entsprechende Speicherzelle frei, so dass das zweite Schreibdaten-Bit, das in der dritten Bitleitung enthalten ist, in der entsprechenden Speicherzelle gespeichert wird. Die dritte Wortleitung gibt die entsprechende Speicherzelle frei, so dass der Wert des einen Bit Daten, das sie enthält, auf die fünfte Bitleitung gelegt wird. Die vierte Wortleitung gibt die entsprechende Speicherzelle frei, so dass der Wert des einen Bit Daten, das sie enthält, auf die sechste Bitleitung gelegt wird. Des Weiteren ist ein erster Adressenport mit den mehreren Speicherzellen verbunden, so dass die erste Wortleitung einer vorgegebenen Anzahl von Speicherzellen freigegeben wird. Des Weiteren ist ein erster Datenport kommunikativ an die mehreren Speicherzellen gekoppelt, um das erste Datenschreib-Bit auf die erste Bitleitung der vorbestimmten Anzahl der mehreren Speicherzellen zu legen, die von der ersten Wortleitung freigegeben werden, und das Inverse des ersten Datenschreib-Bit auf die zweite Bitleitung der vorbestimmten Anzahl der mehreren Speicherzellen zu legen, die von der ersten Wortleitung freigegeben werden. Ein zweiter Adressenport ist kommunikativ an die mehreren Speicherzellen gekoppelt, um die zweite Wortleitung einer vorbestimmten Anzahl der mehreren Speicherzellen freizugeben. Ein zweiter Datenport ist kommunikativ an die mehreren Speicherzellen gekoppelt, um das zweite Schreibdaten-Bit auf die dritte Bitleitung der vorbestimmten Anzahl der mehreren Speicherzellen zu legen, die durch die zweite Wortleitung freigegeben werden, und das Inverse des zweiten Schreibdaten-Bit auf die vierte Bitleitung der vorbestimmten Anzahl der mehreren Speicherzellen zu legen, die durch die zweite Wortleitung freigegeben werden.
  • Die Offenbarung IDT "Synchronous FourPort Static RAM", Copyright 2003 Integrated Device Technology Inc. DSC-5649/3, August 2003 (IDT70V5388/78) betrifft einen 64/32 K × 18 Bit, synchronen FourPort-, statischen Hochgeschwindigkeits-RAM. Die Speicheranordnung verwendet FourPort-Speicherzellen, so dass ein simultaner Zugriff auf jede Adresse von allen vier Ports möglich ist. Register an Steuerungs-, Daten- und Adresseingängen sorgen für minimale Vorbereitungs- und Haltezeiten. Der Zeitspielraum, der durch diese Methode geboten wird, ermöglicht eine Konstruktion des Systems mit sehr kurzen Zykluszeiten. Mit einem Eingangsdatenregister und integrierten Burst-Zählern wurde das 70V5388/78 für Anwendungen mit unidirektionalem oder bidirektionalem Datenfluss in Bursts optimiert. Ein automatisches Leistungssenkungsmerkmal, das durch CE0 und CE1 gesteuert wird, ermöglicht, dass die On-Chip-Schaltung jedes Ports in einen sehr niedrigen Bereitschaftsleistungsmodus geht.
  • Im Allgemeinen muss ein Betriebssystem eines Host-Computers und eines Slave-Computers Hardwarespezifische Funktionen implementieren, um einen bestehenden Datenbus oder eine bestehende Netzwerk-Schnittstelle zu verwenden. Derzeit sind Bemühungen um eine Standardisierung für intelligente Datenbus-Schnittstellen auf die Entkopplung des Betriebssystems von der spezifischen intelligenten Schnittstellen-Hardware gerichtet, indem ein standardmäßiges intelligentes Schnittstellen-Protokoll definiert wird, das von dem Betriebssystem unabhängig ist. Daher ist eine intelligente Schnittstellen-Hardware, die das Standardprotokoll implementiert, mit allen Betriebssystemen konform, die das Standardprotokoll unterstützen. Beispielhafte Standards sind die Intelligente I/O (I2O)-Architektur, die Intel/Microsoft Virtual Interface (VI)-Architektur, die Uniform Driver Interface und die IEEE SCI Physical Layer API. Der I2O-Standard definiert insbesondere eine intelligente I/O-Hardware-Architektur, Byte-Transportprotokolle zwischen einer Host-CPU und einem IOP, die Transporttreiber-Schnittstellen, das Nachrichtenprotokoll und die IOP-Initialisierung und -Konfiguration.
  • Ein derzeit verfügbarer intelligenter IOP 2, wie ein Intel i960RP, ist in 1 in vereinfachter Form dargestellt. Der Intel IOP ist so positioniert, dass er in dem I2O-Standard arbeitet. Der IOP enthält einen Mikroprozessor (Prozessor) 4 mit einem internen Speicher 6, eine Speicher-Bus-Schnittstelleneinheit (MIU) 8, eine lokale Bus-Schnittstelleneinheit (BIU) 12 und zwei Direktspeicherzugriffs-("Direct Memory Access" – DMA)Schnittstellen 14, 18. Der Prozessor, die MIU-, BIU- und DMA-Schnittstellen sind durch einen internen Bus 10 verbunden. Die große Zahl an I/O-Schnittstellen des IOP ermöglichen, dass er als intelligente I/O-Brücke wirkt, wie auch Initialisierungs- und Steuerfunktionen für die Bus-Schnittstelle ausführt. Die primäre DMA-Schnittstelle 14 des IOP ist für gewöhnlich über den lokalen PCI-(Peripheral Component Interconnect)Bus 16 des Hosts an eine Host-CPU (nicht dargestellt) angeschlossen. Eine sekundäre DMA-Schnittstelle 18 ist über einen zweiten PCI-Bus 20 an die Netzwerk-Hardware (nicht dargestellt) angeschlossen. Eine PCI-PCI-Brücke 22 ermöglicht einen DMA-Datenaustausch zwischen den PCI-Bussen 16, 20, ohne den IOP zu verwenden oder den Durchsatz an einem Bus zu verringern. Der Mikroprozessor des IOP verwendet den internen Bus 10 für den Anschluss der MIU 8 an die BIU 12 und an die zwei DMA-Schnittstellen 14, 18.
  • In einem typischen I/O-Betrieb empfängt der IOP 2 eine Anfrage, die an eine spezifische Adresse gerichtet ist, in seinem internen On-Chip-Speicher 6. Der Prozessor 4 dekodiert anschließend die Anfrage und antwortet durch Konfigurieren einer passenden Netzwerkschnittstelle (nicht dargestellt) unter Verwendung des PCI-Busses 20. Die Netzwerkschnittstelle führt die Anfrage durch und kopiert die resultierenden Daten in den/aus dem Speicher des Host-Computers unter Verwendung der PCI-PCI-Brücke 22. Nach Beendigung der DMA-Transaktion empfängt der IOP 2 eine angemessene Unterbrechung, die einen Beendigungsvorgang für die Anfrage auslöst.
  • Leistungseinschränkungen, die sich aus der Architektur des IOP 2 ergeben, sind offensichtlich, wenn eine zusätzliche I/O-Datenverarbeitung erforderlich ist, wie eine Datenverschlüsselung/-entschlüsselung, Steuerung eines paketweisen Stroms oder Implementierung höherer Protokollschichten in der intelligenten Netzwerkschnittstelle. Für eine derartige I/O-Datenverarbeitung muss der Prozessor 4 direkten Zugriff auf den Datenstrom haben. Der Zugriff der CPU auf den Datenstrom kann unter Verwendung mehrerer Techniken erfolgen, von welchen zwei in der Folge dargestellt sind.
  • In einer ersten Technik führt der Prozessor 4 programmierte Eingaben/Ausgaben aus, liest direkt aus internen dynamischen Pufferspeichern der Netzwerkschnittstelle unter Verwendung des PCI-Busses 20, verarbeitet die Daten intern, und schreibt unter Verwendung des Host-PCI-Busses 16 die Daten direkt in den Zielspeicher in dem primären PCI-Adressenraum. Leider kann während solcher programmierter Eingaben/Ausgaben an einer der zwei DMA-Schnittstellen 14, 18 jede Zugriffslatenz den Prozessor 4 deutlich verlangsamen, wodurch seine Verarbeitungseffizienz verringert wird. Ferner ist die gesamte verfügbare Bandbreite durch den IOP auf eine halbe Bandbreite des internen Busses 10 minus Prozessor-Programm-Code-Fetches (Programm-Cache-Misses) und Zugriffslatenzen oder Verzögerungen an einer der beiden DMA-Schnittstellen 14, 18 begrenzt.
  • In einer zweiten Technik können die PCI-Bus-Zugriffslatenzen durch Verwendung von DMA-Prozessoren in den zwei Schnittstellen 14, 18 vermieden werden, um Daten zu und von dem lokalen Speicher (nicht dargestellt) über die MIU 8 durch einen lokalen Speicherbus 24 zu bewegen. Der lokale Speicher dient als dynamischer Pufferspeicher für jede I/O-Verarbeitung. Der interne Hochgeschwindigkeitsspeicher 6 kann auch ein dynamischer Pufferspeicher sein, um PCI-Bus-Latenzen zu verhindern. Der interne Speicher 6 ist für gewöhnlich klein, z. B. 1 KByte, wodurch eine enge Kopplung zwischen dem Sender und Empfänger von Datenpaketen erforderlich ist. Bei Verwendung des internen Speichers 6 ist die gesamte verfügbare Bandbreite auf eine halbe Bandbreite des Busses 10 beschränkt, minus Code-Fetches durch den Prozessor 4. Die Zugriffslatenz zu einem der PCI-Busse wird über größere Daten-Bursts amortisiert und kann vernachlässigt werden. Wenn der interne Speicher 6 jedoch zu klein ist und der lokale Speicher (nicht dargestellt) verwendet wird, ist der gesamte Datendurchsatz auf ¼ der Bandbreite des internen Busses 10 minus der Bandbreite, die für Code-Fetches notwendig ist, verringert.
  • Wie die Bandbreiteneinschränkungen der zwei zuvor beschriebenen Techniken zeigen, ist die Architektur des bestehenden IOP 2 vorteilhaft, wenn der IOP Plan- und Steueroperationen ausführt. Wenn der IOP jedoch auf einen Hochgeschwindigkeitsdatenstrom zugreifen muss, ist seine Leistung aufgrund der inhärenten Bandbreitenbegrenzungen seiner Architektur stärker eingeschränkt.
  • Daher besteht ein definitiver Bedarf an einer intelligenten Datenbus-Schnittstelle mit einem internen Prozessor, der auf einen Hochgeschwindigkeitsdatenstrom zugreifen und diesen bearbeiten kann, ohne die Datenrate des Stroms durch die Schnittstelle ungebührlich zu beeinflussen. Ferner besteht ein Bedarf an einer intelligenten Datenbus-Schnittstelle, die Daten über die Schnittstelle leiten kann, ohne dass die Schnittstelle einen internen Superhochgeschwindigkeitsdatenbus aufweisen muss, der bei einer Bandbreite arbeiten muss, die um ein Vielfaches größer als die Bandbreite eines Hochgeschwindigkeitsdatenstroms ist. Die vorliegende Erfindung erfüllt diesen Bedarf und bietet weitere damit in Zusammenhang stehende Vorteile.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung wird durch eine intelligente Datenbus-Schnittstelle und ein zugehöriges Verfahren verkörpert, um flexible und effiziente Datenschnittstellen bereitzustellen. Die intelligente Datenbus-Schnittstelle enthält einen Multiport-Speicher, einen ersten bidirektionalen Datenbus, einen zweiten bidirektionalen Datenbus und einen Prozessor. Der Multiport-Speicher hat mehrere Datenspeicherzellen und hat mindestens drei unabhängige bidirektionale Datenports, die so konfiguriert sind, dass sie simultan und asynchron Daten aus den mehreren Datenspeicherzellen lesen und in diese schreiben. Der erste bidirektionale Datenbus ist an einen ersten Port der bidirektionalen Datenports gekoppelt. Der zweite bidirektionale Datenbus ist an einen zweiten Port der bidirektionalen Datenports gekoppelt. Der Prozessor ist an einen dritten Port der bidirektionalen Datenports gekoppelt und bearbeitet Daten in den mehreren Datenspeicherzellen. Die intelligente Datenbus-Schnittstelle ermöglicht unter Verwendung eines Multiport-Speichers, dass jeder bidirektionale Datenbus unabhängig bei seiner Datenrate voller Bandbreite arbeitet, während eine Datenstromverarbeitung durch den Prozessor bereitgestellt wird.
  • In einem ausführlicheren Merkmal der Erfindung enthält die intelligente Datenbus-Schnittstelle des Weiteren eine erste Datenbus-Schnittstelleneinheit, die zwischen dem ersten bidirektionalen Datenbus und dem ersten bidirektionalen Datenport gekoppelt ist, eine zweite Datenbus-Schnittstelleneinheit, die zwischen dem zweiten bidirektionalen Datenbus und dem zweiten bidirektionalen Datenport gekoppelt ist. Die erste und zweite Datenbus-Schnittstelleneinheit schreiben Daten asynchron in die mehreren Datenspeicherzellen und lesen asynchron Daten aus diesen. Der Prozessor bearbeitet Daten asynchron, die zuvor von einer der ersten und zweiten Datenbus-Schnittstellen in einen Abschnitt der mehreren Datenspeicherzelle geschrieben wurden, während die erste und zweite Busschnittstelle simultan Daten in jeweils andere Abschnitte der mehreren Datenspeicherzellen schreiben oder aus diesen lesen. Die intelligente Datenbus-Schnittstelle kann auch eine logische Durchgangseinheit enthalten, die zwischen den ersten und zweiten Busschnittstelleneinheiten gekoppelt ist, um eine Datenbrücke zwischen dem ersten und zweiten Datenbus bereitzustellen. Zusätzlich kann der erste Datenbus ein PCI-Datenbus sein, die erste Datenbus-Schnittstelleneinheit kann eine PCI-Schnittstelleneinheit sein, der zweite Datenbus kann ein SCI-Datenbus sein und die zweite Datenbus-Schnittstelle kann eine SCI-Schnittstelleneinheit sein. Die logische Durchgangseinheit kann eine Datenadresse auf dem SCI-Datenbus in eine Datenadresse auf dem PCI-Datenbus umsetzen, um eine SCI-PCI-Datenbusbrücke bereitzustellen. Die logische Durchgangseinheit kann auch eine Datenadresse auf dem PCI-Datenbus in eine Datenadresse auf dem SCI-Datenbus umsetzen, um eine PCI-SCI-Datenbusbrücke bereitzustellen. Ferner kann ein interner Bus zwischen dem Prozessor und der PCI-Schnittstelleneinheit gekoppelt sein.
  • In einem ausführlicheren Merkmal der Erfindung kann der SCI-Datenbus eine 64-Bit-Datenadresse verwenden, der PCI-Datenbus kann eine 32-Bit-Datenadresse verwenden, und der Multiport-Speicher kann ein Dreifachport-Speicher sein, der einen Vierfachport-Speicher verwendet, von dem zwei seiner vier Ports so konfiguriert sind, dass sie den zweiten bidirektionalen Datenbus bilden, der an den SCI-Datenbus gekoppelt ist. Ferner kann die logische Durchgangseinheit eine Fly-by-Adressumsetzung zwischen der SCI-Busschnittstelleneinheit und der PCI-Busschnittstelleneinheit implementieren. Ebenso kann die Datenbrücke eine Protokollkonvertierung zwischen einem geteilten Transaktionsprotokoll (Split Transaction Protocol) und einem vereinten Transaktionsprotokoll (Unified Transaction Protocol) ausführen. Als Alternative kann der Prozessor Blocklesevorgänge zwischen der ersten und zweiten Datenbus-Schnittstelle planen, um einen Kettenmodus-DMA zu implementieren.
  • In einem ausführlicheren Merkmal der Erfindung kann der erste Datenbus ein Host-PCI-Datenbus sein, wobei die erste Datenbus-Schnittstelleneinheit eine erste DMA-Schnittstelleneinheit ist, der zweite Datenbus kann ein Slave-PCI-Datenbus sein, wobei die zweite Datenbus-Schnittstelleneinheit eine zweite DMA-Schnittstelleneinheit ist, und die logische Durchgangseinheit leitet entsprechend eine Datenadresse auf dem Host-PCI-Datenbus zu dem Slave-PCI-Datenbus und leitet eine Datenadresse auf dem Slave-PCI-Datenbus zu dem Host-PCI-Datenbus, um eine PCI-PCI-Brückeneinheit bereitzustellen. Als Alternative kann ein dritter bidirektionaler Datenbus, wie ein ATM-Bus, an einen vierten Port der mindestens drei bidirektionalen Datenports durch eine ATM-Schnittstelle gekoppelt sein, der erste Datenbus kann ein Ethernet-Datenbus sein, wobei die erste Datenbus-Schnittstelleneinheit eine erste Ethernet-Schnittstelleneinheit ist, der zweite Datenbus kann ein Ethernet-Datenbus sein, wobei die zweite Datenbus-Schnittstelleneinheit eine zweite Ethernet-Schnittstelleneinheit ist, und die logische Durchgangseinheit kann eine Datenbrücke zwischen dem ersten und zweiten Ethernet-Bus bereitstellen. Ebenso kann ein interner Bus an den Prozessor, an die erste Datenbus-Schnittstelleneinheit und an die zweite Datenbus-Schnittstelleneinheit gekoppelt sein, um eine Kommunikation für Steuerungs- und Konfigurationsanweisungen unter dem Prozessor und den ersten und zweiten Datenbus-Schnittstelleneinheiten zu ermöglichen.
  • In weiteren ausführlicheren Merkmalen der Erfindung führt der Prozessor eine Verschlüsselung und Entschlüsselung an Daten durch, die im Multiport-Speicher gespeichert sind. Ferner kann der Prozessor eine Digitalzustandsmaschine oder eine Datenmanipulationszustandsmaschine für eine Datenverschlüsselung und -entschlüsselung sein. Der Prozessor kann einen lokalen Speicher zur Implementierung eines reflektiven Speicherprotokolls eines Speicher-Caches enthalten. Zusätzlich kann ein zweiter Prozessor an einen vierten Port der mindestens drei bidirektionalen Datenports gekoppelt sein. Ebenso kann eine Host-Busschnittstelle an einen Port des Multiport-Speichers gekoppelt sein.
  • Eine alternative Ausführungsform der vorliegenden Erfindung ist eine Schnittstelle, die einen Prozessor, eine erste Busschnittstelle zum Empfangen von Daten von und Übertragen von Daten zu einem ersten Datenbus, eine zweite Busschnittstelle zum Empfangen von Daten von und Übertragen von Daten zu einem zweiten Datenbus, und einen Dreifachport-Speicher mit ersten, zweiten und dritten Ports zum Speichern von Daten in mehreren Speicherzellen und zum Lesen der gespeicherten Daten aus den Speicherzellen enthält. Der erste Port ist derart an die erste Busschnittstelle gekoppelt, dass Daten, die von dem ersten Datenbus empfangen werden, in den Speicherzellen gespeichert werden, und Daten, die von der ersten Busschnittstelle aus den Speicherzellen gelesen werden, zu dem ersten Datenbus übertragen werden. Der zweite Port ist derart an die zweite Busschnittstelle gekoppelt, dass Daten, die von dem zweiten Datenbus empfangen werden, in den Speicherzellen gespeichert werden, und Daten, die von der zweiten Busschnittstelle aus den Speicherzellen gelesen werden, zu dem zweiten Datenbus übertragen werden. Der Prozessor ist an den dritten Port zum Lesen, Verarbeitung und Speichern von Daten in den Speicherzellen gekoppelt, und die Daten, die in einer bestimmten Speicherzelle durch einen bestimmten Port gespeichert werden, stehen zum Lesen durch einen anderen Port zur Verfügung, unabhängig von dem bestimmten Port und während der bestimmte Port Daten aus einer anderen Speicherzelle liest oder in Daten dieser speichert.
  • Die vorliegende Erfindung ist auch in einem Verfahren zur Übergabe von Daten verkörpert. Das Verfahren enthält das Bereitstellen eines Multiport-Speichers mit mehreren Datenspeicherzellen, Speichern von Daten, die durch einen ersten Port von einem ersten Datenbus empfangen wurden, in einem ersten Abschnitt der mehreren Speicherzellen, und Verarbeiten, durch einen zweiten Port, der Daten, die in dem ersten Abschnitt der mehreren Datenspeicherzellen gespeichert sind, während Daten, die durch den ersten Port von dem ersten Datenbus empfangen werden, unabhängig und simultan in einem zweiten Abschnitt der mehreren Speicherzellen gespeichert werden.
  • Als ausführlicheres Merkmal der Erfindung enthält das Verfahren des Weiteren das Lesen, durch eine dritten Datenport, verarbeiteter Daten, die in dem ersten Abschnitt der mehreren Datenspeicherzellen gespeichert sind, während durch den zweiten Port die Daten, die in dem zweiten Abschnitt der mehreren Datenspeicherzellen gespeichert sind, unabhängig und simultan verarbeitet werden, und während Daten, die durch den ersten Port von dem ersten Datenbus empfangen werden, in einem dritten Abschnitt der mehreren Speicherzellen unabhängig und simultan gespeichert werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein vereinfachtes Blockdiagramm eines intelligenten I/O-Prozessors nach dem Stand der Technik.
  • 2 ist ein Blockdiagramm einer ersten Ausführungsform einer intelligenten Datenbus-Schnittstelle gemäß der Erfindung mit einem Dreifachport-Speicher für einen Betrieb zwischen zwei PCI-Bussen.
  • 3 ist ein Blockdiagramm einer zweiten Ausführungsform einer intelligenten Datenbus-Schnittstelle gemäß der Erfindung mit einem Vierfachport-Speicher und zwei Prozessoren für einen Betrieb zwischen ersten und zweiten Netzwerkbussen.
  • 4 ist ein Blockdiagramm einer dritten Ausführungsform einer intelligenten Datenbus-Schnittstelle gemäß der Erfindung für einen Betrieb zwischen einem PCI-Bus und einem SCI-Bus.
  • 5 ist ein schematisches Diagramm einer Fly-by-Adressumsetzungsmethode, zur Verwendung mit der Busschnittstelle von 4 unter Verwendung einer Adressumsetzungstabelle zum Konvertieren von Adressen zwischen den Adressdomänen des SCI-Busses und des PCI-Busses.
  • 6 ist ein Datenflussdiagramm eines Verfahrens zum Konvertieren einer 64-Bit-SCI-Adresse in eine 32-Bit-PCI-Adresse gemäß der Fly-by-Adressumsetzungsmethode von 5.
  • 7 ist ein Datenflussdiagramm eines anderen Verfahrens zum Konvertieren einer 64-Bit-SCI-Adresse in eine 32-Bit-PCI-Adresse gemäß der Fly-by-Adressumsetzungsmethode von 5.
  • 8 ist ein schematisches Diagramm eines Dreifachport-Speichers, der aus einem Vierfachport-Speicher gebildet ist, gemäß der Erfindung, mit zwei n-Bit breiten Datenbussen und einem 2n-Bit breiten Datenbus.
  • 9 ist ein schematisches Diagramm von vier Vierfachport-Speichern, die zur Bildung eines Dreifachport-Speichers konfiguriert sind, gemäß dem Dreifachport-Speicher von 8 mit einem 32-Bit-PCI-Bus und einem 64-Bit-SCI-Bus.
  • 10 ist ein Blockdiagramm eines intelligenten Netzwerk-Routers, basierend auf einem Vierfachport-Speicher gemäß der vorliegenden Erfindung zur Kopplung zwischen zwei Ethernet-Netzwerken und einem ATM-Netzwerk.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Unter Bezugnahme nun auf 2 ist eine intelligente Datenbus-Schnittstelle 30 gemäß einer ersten Ausführungsform der Erfindung dargestellt. Die Busschnittstelle 30 kann ungefähr gleich dem IOP 2 von 1 sein, enthält aber des Weiteren einen Multiport-Speicher 32, wie einen Dreifachport-Speicher, und eine logische Durchgangseinheit 52. Die Schnittstelle enthält einen Prozessor 34 mit einem internen Prozessorspeicher 36 und enthält zwei externe Busschnittstellen 44, 48, die dem ersten bzw. zweiten Datenbus 46, 50 zugeordnet sind. Jeder Datenbus 46, 50 ist an einen bidirektionalen Datenport 32a, 32b des Dreifachport-Speichers durch die jeweilige Busschnittstelle 44, 48 gekoppelt, die Datenpakete von spezifizierten Pufferspeicherzellen im Dreifachport-Speicher empfangen und an diese übertragen kann. Der Prozessor 34 ist an einen dritten bidirektionalen Datenport 32c des Dreifachport-Speichers gekoppelt. Ein besonderer Vorteil der intelligenten Datenbus-Schnittstelle gemäß der Erfindung ist, dass jeder bidirektionale Datenport unabhängig Daten bei einer Datenrate bis zur vollen Zugriffsgeschwindigkeit ohne Synchronisierung mit den oder Warten auf die anderen Datenports senden oder empfangen kann.
  • Der Prozessor 34 ist durch einen internen Bus 40 an den dritten Port 32c des Dreifachport-Speichers 32 und an die DMA-Schnittstellen 44, 48 gekoppelt. Da der Prozessor durch den dritten Port des Dreifachport-Speichers Zugriff auf die Daten beider Datenbusse 46, 50 hat, kann er Daten, die in dem Dreifachport-Speicher liegen, bei einer Rate unabhängig von der Datenrate jedes Datenbusses 46, 50 bearbeiten, ohne die Datenübertragung bei Vollgeschwindigkeit zwischen jedem Datenbus und dem Dreifachport-Speicher zu unterbrechen.
  • Daher kann der Prozessor einen Slot eines Pufferspeichers oder ein Segment von Speicherzellen in dem Dreifachport-Speicher modifizieren, während in einen zweiten Pufferspeicher oder ein zweites Segment von Speicherzellen durch eine erste Busschnittstelle geschrieben wird, und während Daten von einem dritten Pufferspeicher oder Segment von Speicherzellen durch eine zweite Busschnittstelle gelesen werden. Somit können die Datenbusse 46, 50 bei voller Geschwindigkeit arbeiten und sind von dem Prozessor 34 vollkommen unabhängig. Wenn eine zusätzliche Verarbeitungsleistung notwendig ist, um einen Hochgeschwindigkeitsdatenstrom zu unterstützen, können dem Dreifachport-Speicher zusätzliche Ports hinzugefügt werden, wodurch ein Multiport-Speicher entsteht, mit zusätzlichen Prozessoren, die an die zusätzlichen Ports angeschlossen sind.
  • Die intelligente Datenbus-Schnittstelle 30 der vorliegenden Erfindung kann des Weiteren eine Speicherbus-Schnittstelleneinheit (MIU) 38 und eine lokale Busschnittstelleneinheit (BIU) 42 enthalten, die in ihrer Funktion der MIU 8 und der BIU 12 von 1 ähnlich sind. Durch einen zweckbestimmten Port 32c des Multiport-Speichers 32 hat der Prozessor 34 direkten Zugriff auf alle Daten, die durch die zwei Busschnittstellen 44, 48 gehen. Der Prozessor ist der Master des internen Busses 40 und daher gibt es keine Zugriffslatenz oder andere Buskonkurrenz, wenn der Prozessor auf den Multiport-Speicherport durch den internen Bus zugreift. Infolgedessen ist die gesamte verfügbare Datenkonvertierungsbandbreite durch die Schnittstelle 30 eine halbe Bandbreite des gesamten internen Multiport-Speicherports des Prozessors, bestimmt durch die Geschwindigkeit des internen Busses 40, minus der Bandbreite, die für Prozessor-Programm-Code-Fetches (Programm-Cache-Misses) erforderlich ist. Die Bandbreite des internen Busses kann leicht durch ausreichendes Vergrößern ihrer Breite auf das Zweifache der Bandbreite des schnellsten externen Busses vergrößert werden. Der Prozessor kann auch durch den internen Bus zum Initialisieren und Konfigurieren der Busschnittstellen direkten Zugriff auf jede Busschnittstelle 44, 48 haben.
  • Die zwei Ports des Multiport-Speichers 32, die an zwei Busschnittstellen 44, 48 angeschlossen sind, können Datenpakete bei Datenraten bis zur Bandbreite des Speichers empfangen oder übertragen. Die Busschnittstellen können unter Verwendung der logischen Durchgangseinheit 52 in Kombination mit dem Multiport-Speicher 32 so konfiguriert sein, dass sie eine ähnliche Funktion wie die PCI-PCI-Brücke 22 in 1 haben, um eine Weiterleitung von Datenpaketen in einer "Durchgangsweise" zu implementieren, ohne dass der Prozessor 34 auf die Daten zugreifen muss. Die logische Durchgangseinheit 52 kann selektiv die Datenpakete paketweise bearbeiten und somit eine Filterfunktion implementieren. Eine Entscheidung, ein bestimmtes Datenpaket weiterzuleiten, erfolgt, wenn das Paket an einer der Busschnittstellen empfangen wird, ohne das Paket durch den Prozessor zu leiten. Die logische Durchgangseinheit kann eine Zustandsmaschine sein, die durch den Prozessor konfiguriert wird und die triviale Quittungspakete abfängt oder besondere Datenpakete umleitet, wodurch der Prozessor 34 von der Aufgabe der Verarbeitung trivialer Pakete entlastet wird. Die logische Durchgangseinheit implementiert eine gewählte Ebene der Paketbehandlung, die mit der Kopplung mit vereinten Transaktionsbussen, geteilten Transaktionsbussen und Netzwerken, wie PCI, SBUS, SCI, SerialExpress, ATM oder Ethernet verbunden ist.
  • Der Prozessor 34 hat unbegrenzten direkten Zugriff auf jeden Teil des Datenstroms, so dass sowohl eine Protokollkonvertierung wie auch eine Bandbreitenkonvertierung zwischen verschiedenen Bussen möglich sind. Der Prozessor kann komplexe Datenmanipulationen an jedem Teil des Datenstroms ausführen, ohne eine der Busschnittstellen zu beeinflussen. Somit kann der Prozessor effizient niedere Netzwerk-Protokollschichten aufnehmen, um die Verarbeitungslast des Host-Prozessors zu verringern. Der Mehraufwand bei der Paketverarbeitung durch den Prozessor ist eine erhöhte Latenz in der intelligenten Datenbus-Schnittstelle. Diese Latenz ist jedoch viel geringer als jede Latenz, die durch die Host-CPU auferlegt wird, die dieselbe Aufgabe erfüllt.
  • Der Einfachheit wegen verwendet die intelligente Datenbus-Schnittstelle 30, die in 2 dargestellt ist, einen Dreifachport-Speicher 32. Die Erfindung ist jedoch nicht auf einen Dreifachport-Speicher begrenzt. Wie zum Beispiel in 3 dargestellt ist, kann ein Vierfachport-Speicher 32' zur Unterstützung eines zusätzlichen Prozessors 34' verwendet werden, wie eine Hardware-Verschlüsselungs-/Entschlüsselungsmaschine, die an den vierten Port 32d des Speichers angeschlossen ist. Der zusätzliche Prozessor kann die Bandbreite verringern, die für einen internen Bus 40' erforderlich ist.
  • Eine andere Ausführungsform der intelligenten Busschnittstelle, die einen Multiport-Speicher 70 verwendet, kann eine SCI-PCI-Brücke 60 sein, wie in 4 dargestellt ist. Die Brücke koppelt einen PCI-Bus 62, der häufig als vereinter Transaktionsbus charakterisiert ist, und einen SCI-Bus 64, der häufig als geteiltes Transaktionsnetzwerk charakterisiert ist. SCI-Pakete, die an einer SCI-Schnittstelle 66 empfangen werden, können Read-Ahead-Cache-Lines sein und müssten daher innerhalb eines dynamischen Pufferspeichers in einem Dreifachport-Speicher 70 gespeichert werden. Die Brücke enthält auch eine PCI-Schnittstelle 68, die zwischen dem Dreifachport-Speicher 70 und dem PCI-Bus 62 gekoppelt ist. Die zwei Datenbusse 62 und 64 können asynchron arbeiten, d. h., bei verschiedenen Datenraten.
  • Unter Verwendung im Handel erhältlicher Multiport-Speicher kann die intelligente Multiport-Speicherbrücke 60 unter Verwendung von Commercial-Off-The-Shelf-(COTS-)Chips implementiert werden, wodurch teurere anwendungsspezifische integrierte Schaltungs-(ASIC)Designs vermieden werden. Die verschiedenen logischen Teile des Designs könnten auch zu einer einzigen ASIC für verringerte Hochvolumenproduktionskosten kombiniert werden. Die SCI-PCI-Brücke 60 ist in 4 als Board-Level-Vorrichtung und nicht als Chip-Vorrichtung dargestellt. Ein interner Bus 72 verbindet einen Prozessor 74 mit seinem lokalen Speicher 76, einer Firmware 78, wie einem Nur-Lese-Speicher ("Read Only Memory" – ROM), und einem Dreifachport-Speicher 70. Der Prozessor ist eine COTS-Mikrosteuerung. Der Prozessor hat direkten Zugriff auf die lokale PCI-Busschnittstelle 68 zur Initialisierung, Konfiguration und für spezielle Zyklen, wie Lese-Modifizierungs-, Schreib-Transaktionen. Der direkte PCI-Zugriffspfad kann auch zur Implementierung einer reflektiven Speicherregion im lokalen Speicher 76 verwendet werden. Der Prozessor kann zur Implementierung eines Synchronisierungsprotokolls für den reflektiven Speicher mit allen anderen konformen, fernen, reflektiven Speichern unter Verwendung des SCI-Netzwerkes verwendet werden. In diesem Szenario kann der lokale PCI direkt aus dem reflektiven lokalen Speicher 76 lesen.
  • Sowohl die SCI-Schnittstellen 66 wie auch die PCI-Schnittstelle 68 können gleiche Dualfunktionalität implementieren, die ihnen den Empfang und die Übertragung von Daten ermöglichen. Die Hauptfunktionalität der Busschnittstelle 60 ist die Fähigkeit, ein bestimmtes Datenpaket über die Schnittstelle zu übertragen. Für die SCI-Schnittstelle 66 wird ein Datenpaket, das sich im Dreifachport-Speicher 70 befindet, zu dem Netzwerk gesendet, während für die PCI-Schnittstelle 68 ein Datenpaket, das sich im Dreifachport-Speicher befindet, in eine spezifizierte PCI-Adresse geschrieben oder aus dieser gelesen wird.
  • Die SCI-Schnittstelle 66 empfängt Daten und speichert diese in einem verfügbaren dynamischen Pufferspeicher. Wie dem Fachmann allgemein bekannt ist, kann ein dynamischer Pufferspeicher unter Verwendung freier Pufferspeicherlisten oder Verfügbarkeitsverweistabellen implementiert werden. Das gewählte Verfahren für das Pufferspeicher-Ressourcenmanagement ist für die vorliegende Erfindung nicht von Bedeutung. Weitere eingehende Anfragen werden blockiert, wenn keine freien Pufferspeicher zur Verfügung stehen. Die SCI-Schnittstelle überwacht auch die Daten, um zu bestimmen, ob ein bestimmtes Paket von dem Prozessor 74 oder einer logischen Durchgangseinheit 80 bearbeitet werden muss.
  • Da der PCI-Bus 62 ein vereinter Transaktionsbus ist, ist die PCI-Schnittstelle 68 komplexer. Für Schreibtransaktionen werden die Daten in verfügbaren Pufferspeichern gespeichert. Wenn die PCI-Datenburstgröße eine Blockgröße von 64 oder 256 Byte überschreitet, werden mehrfache Schreibbursts erzeugt. Wenn alle Schreibpufferspeicher voll sind, gibt die PCI-Schnittstelle Neuversuche aus, bis mindestens ein Pufferspeicher frei ist. Bei jedem erzeugten PCI-Datenburst benachrichtigt die PCI-Schnittstelle 68 den Prozessor 74 unter Anwendung einer bestehenden Methode, wie Nachrichtenschlangen, über die anstehende Anfrage. Der Prozessor führt dann jede notwendige Reformatierung und Adressumsetzung durch. Nach erfolgreicher Beendigung der Schreib-Paketverarbeitung bestimmt der Prozessor das Paket zur Übertragung an die SCI-Netzwerkschnittstelle.
  • Für PCI-Lesetransaktionen definiert eine interne Adressenkarte, ob der besondere Lesevorgang die reflektive Speicherregion wählt, die Teil des lokalen Speichers 76 ist, oder ob ein transparenter Lesevorgang ausgeführt wird. Für Zugriffe auf den lokalen reflektiven Speicher 76 wird der lokale Bus 72 arbitriert und die angemessene Lesetransaktion ausgeführt. Für transparente Lesevorgänge wird die Leseadresse als Leseanfrage in den Dreifachport-Speicher 70 geschrieben und der Prozessor benachrichtigt. Der Prozessor prüft um zu bestimmen, ob die angeforderten Lesedaten in einem der lokalen Caches verfügbar sind. Wenn die angeforderten Daten nicht im Cache sind, wird eine angemessene SCI-Leseanfrage erstellt. Wenn die bestimmten Attribute ein Read-Ahead-Caching zulassen, wird eine 64- oder 256-Byte-Lesetransaktion erstellt, die das angeforderte Wort abdeckt. Die Gemeinkosten zum Lesen von 64 Byte anstelle eines Wortes sind gering.
  • In dieser Architektur können zwei Cache-Schichten implementiert sein. Die erste Cache-Schicht ist der Dreifachport-Speicher 70. Zusätzliche Lesetransaktionen zu benachbarten Adressen können unmittelbar nach Beendigung des ersten SCI-Lesevorgangs behandelt werden. Die zweite Cache-Schicht ist im lokalen Speicher 76 implementiert. Vor dem Löschen eines Lese-Datenpakets aus dem Dreifachport-Speicher 70 nach Beendigung der Lesetransaktion kann der Prozessor 74 dieses in reservierte Regionen des lokalen Speichers 76 kopieren, der als sekundärer Cache dient. Im Falle zusätzlicher Lesetransaktionen zu dieser Cache-Line können Daten im lokalen Cache zurückkopiert werden, so als würden sie von einem fernen Knoten empfangen werden, aber mit weniger Latenz. Kopiertransaktionen zwischen dem Dreifachport-Speicher 70 und dem lokalen Speicher 76 werden, wie in der Technik bekannt ist, als Fly-by-Transaktionen ausgeführt, die nur einen Taktzyklus pro Datenwort benötigen. Jeder gültige Lese- Datenpufferspeicher in dem Dreifachport-Speicher 70 wird durch einen Cache Tag Entry aufgenommen, so dass die PCI-Leseschnittstelle 68 die Verfügbarkeit und Lokalisierung der Cache-Line ohne Prozessorintervention bestimmen kann.
  • Schreibtransaktionen zu der reflektiven Speicherregion werden ähnlich wie Schreibvorgänge zu der SCI-Adressdomäne behandelt. Der Prozessor 74 kopiert die Schreibdaten in den reflektiven Speicher und generiert die passenden SCI-Schreibtransaktionen, wobei alle anderen verknüpften reflektiven Speichersegmente aktualisiert werden. Eingehende SCI-Schreibvorgänge zu der reflektiven Speicher-Subadresse werden in die passenden reflektiven Speicherregionen kopiert.
  • Der Prozessor 74 kann die SCI-Schnittstelle 66 so konfigurieren, dass bestimmte Datenpaketarten zu einer logischen Durchgangseinheit 80 befördert werden, um den Prozessor 74 von der Verarbeitung trivialer Datenpakete zu entlasten. Zum Beispiel machen angezeigte Schreibantwort-Erfolgsnachrichten nur die passende Pufferspeicherressource im Dreifachport-Speicher 70 frei und erfordern keine Verarbeitung durch den Prozessor. Ein weiteres Merkmal der logischen Durchgangseinheit ist die Fähigkeit, strömende Blockdaten zu verarbeiten. Für lange DMA-Bursts von Daten, die keiner Reformatierung bedürfen, wie asynchrone Videodaten, kann ein Basis-DMA-Pufferspeichertyp (für gewöhnlich 64- oder 256-Byte-Blöcke) direkt zu der PCI-Schnittstelle 68 weitergeleitet werden. Die logische Durchgangseinheit 80 schreibt in die passende Schlüsseladresse der PCI-Schnittstelle 68, wodurch der passende PCI-Burst ausgelöst wird. Der Prozessor 74 steuert, welche Pakete durch die logische Durchgangseinheit 80 weitergeleitet werden. Die Wahl der Weiterleitung kann von der Paketart, der Quellenadresse und der SCI-Subadresse abhängig sein. Es kann mehrere simultane Datenströme geben, von welchen einige den Prozessor umgehen, während andere von dem Prozessor verarbeitet werden.
  • Der relevante Abschnitt der SCI-Subadresse wird von der SCI-Slave-Schnittstelle 66 erfasst und zu der PCI-Master-Schnittstelle 68 weitergeleitet. Vorausgesetzt, dass eine richtig formatierte Adressumsetzungstabelle im Dreifachport-Speicher gespeichert ist, kann die PCI-Master-Schnittstelle 68 die SCI-PCI-Adressumsetzung fliegend ausführen.
  • Die SCI-PCI-Fly-by-Adressumsetzungsmethode ist in 5 bis 7 dargestellt. Das Verfahren kann zur Durchführung von PCI-SCI-Adressimisetzungen angepasst werden. Die relevanten oberen Bit der SCI-Anforderungsadresse 100 werden von der SCI-Schnittstelle 66 von 4 erfasst, während die Adresse in eine definierte, statische Subadresse in einem verfügbaren Pufferspeicher-Slot 102 geschrieben wird. Die SCI-Quellen-ID kann zur Definition verschiedener Adresskarten oder Privilegien für verschiedene SCI-Hosts verwendet werden. Nicht alle Adressbit, die in 5 dargestellt sind, müssen verwendet werden. Der PCI-Port des Dreifachport-Speichers 70 kann als zwei Datenworte mit unabhängigen Adressbussen implementiert werden, in 5 als Adressdomäne A und B angegeben. Adressdomäne A ist äquivalent zu der Seitengröße des Host-Systems, die für gewöhnlich 4 KByte ist, wodurch 12 Adressierungsbit erforderlich sind. Während der Adressenphase in der PCI-Schnittstelle 68 trägt die Adressdomäne A die Seiten-Subadresse, die hindurchgeleitet wird. Die Adressbit von Domäne A werden aus einer Stelle im Dreifachport-Speicher 70 gelesen, die durch die Basisadresse des Empfangspufferspeichers 102 plus dem angemessenen statischen Pufferspeicherversatz des Adresswortes definiert ist. Die Adressdomäne B 106 trägt die umgesetzte Adresse plus Zugriffsoptionen 108, wie das Nur-Lese-Attribut. Im Falle eines nicht autorisierten Zugriffs, wie eines Schreibvorgangs in einer Nur-Lese-Region, wird die Transaktion beendet, was zu einer Nur-Adressen-Phase führt. Der Adressenabschnitt 106 wird aus einem Adressumsetzungstabelleneintrag 110 gelesen. Er ist durch die Adressumsetzungstabelle plus Basisadresse plus Adressumsetzungsindex 112 definiert, der von der SCI-Slave-Schnittstelle 66 erfasst wurde. Die neue Adresse wird durch simultanes Adressieren verschiedener Abschnitte des Dreifachport-Speichers 70 zusammengefügt, unter Verwendung der weitergeleiteten früheren Kenntnis der richtigen Pufferspeicheradresse und des Adressumsetzungsindex. Die zwei Nebenworte des Multiport-Speicher-PCI-Busses werden leicht implementiert, wenn berücksichtigt wird, dass typische Multiport-Speicher in Breiten von 8 oder 16 Bit pro Port verfügbar sind. Daher kann ein 32-Bit-PCI-Datenbus aus mehreren Multiport-Speicher-Chips zusammengefügt werden. Indem nicht alle Adressbits eines bestimmten Ports zusammen geführt werden, werden somit mehrere einzeln addressierbare Datennebenworte erzeugt, die zum Zusammenstellen einer umgesetzten Adresse verwendet werden können.
  • Eine ausführlichere Beschreibung der Fly-by-Adressumsetzungsmethode mit externer LUT ist in 6 dargestellt. Die 64-Bit-SCI-Adresse 100 und die 32-Bit-PCI-Adresse 114 sind im Maßstab gezeichnet, wobei jede gestrichelte Region 4 Bit darstellt. Natürlich sind andere Adressbitbreiten möglich und die vorliegende Erfindung ist nicht auf eine 64-Bit-SCI-Adresse oder eine 32-Bit-PCI-Adresse beschränkt.
  • Während die SCI-Schnittstelle 66 die eingehende SCI-Anfrage in ihren passenden Slot 102 im Multiport-Speicher 70 kopiert, erfasst sie auch die Adressbit der eingehenden Anfrage. In dem vorliegenden Beispiel werden SCI-Adressbit 48, 43-42 und 21-16 zur Bildung des 9-Bit-Index 112 in der 16-Bit-SCI-PCI- Verweistabelle verwendet. Der SCI-PCI-Verweistabellenindex wird aus drei Feldern zusammengestellt. Das erste Indexbit ist das niedrigste Bit der SCI-Quellen-ID. Dieses Bit sorgt für eine Differenzierung zwischen zwei Gruppen von SCI-Anfragern in Bezug auf ihre Zugriffsprivilegien und Fenster. Die nächsten zwei Indexbit (SCI-Adressbit 43-42) werden verwendet, dass bis zu vier simultane Fenster von bis zu 4 MB Größe möglich sind. Die niedrigsten sechs Indexbit definieren bis zu 64 Seiten in dem gegebenen Fenster. Es ist zu beachten, dass in dieser Ausführungsform die SCI-Subadressenbit 47-44 null sein müssen, damit die logische Durchgangsvorrichtung 80 die Anfrage annehmen und zu der PCI-Schnittstelle 68 weiterleiten kann.
  • Die oberen zwei Bit aus der Verweistabelle definieren ein 2-Bit-Steuerfeld 116. Das erste Bit des Steuerfeldes 116 wird als Schreibschutz-Bit verwendet und das zweite Bit wird zur Steuerung einer Byte-Swap-Maschine der PCI-Schnittstelle 68 verwendet. Dieses Merkmal ermöglicht eine seitenweise Endianess-Konvertierung. Die verbleibenden vierzehn Bit von der Verweistabelle bilden Bit 16 bis 29 der PCI-Hauptadresse. Die oberen zwei PCI-Adressbit sind durch ein CSR-Register definiert und definieren die PCI-Hauptbasisadresse. Dies garantiert ein 1 GB PCI-Adressenfenster. Die SCI-PCI-LUT kann jede Speichergröße aufweisen. Wenn 512 Adressumsetzungseinträge nicht ausreichend sind, kann ein größerer Speicher verwendet werden, wodurch ein größerer LUT-Index 112 möglich ist.
  • Die SCI-Adresse wird immer in eine spezifische Subadresse eines passenden Eingangspufferspeichers im Dreifachport-Speicher 70 geschrieben. Daher ist es möglich, den Dreifachport-Speicher derart zu adressieren, dass seine Datenausgänge dieses Adresswort ansteuern. In diesem Szenario werden nur die Ausgangsfreigaben entsprechend den niederen 16 Bit des Speichers freigegeben, während die oberen 16 Bit simultan durch die SCI-PCI-LUT zugeleitet werden. Die PCI-Master-Ablaufsteuereinrichtung (Master Sequencer) erzeugt die geeignete Adresse aus dem LUT-Index 112, die ihr unter Verwendung der logischen Durchgangseinheit 80 weitergeleitet wurde.
  • Der externe Verweistabellenspeicher kann in dem Dreifachport-Speicher 70 durch Reservieren eines Teils des Dreifachport-Speichers für die Verweistabelle integriert werden. Die einzige Änderung gegenüber dem oben genannten Szenario ist, dass der PCI-Port des Dreifachport-Speichers eine unabhängige Adressierung seines höchst- und niedrigstwertigen 16-Bit-Ports ermöglichen muss. In diesem Szenario hat der lokale PCI-Speicher zwei unabhängige Adressbusse, aber nur einen Steuerbus.
  • Eine Beschreibung einer Fly-by-Adressumsetzungsmethode mit interner LUT und einem Tag-Vergleich ist in 7 dargestellt. Diese Adressumsetzungsmethode wird durch die Seitengröße des verwendeten Betriebssystems angesteuert. Eine typische Seitengröße ist 4 KByte. Angesichts der geringen Seitengröße und der begrenzten Anzahl an Adressumsetzungseinträgen, die in dem kleinen Multiport-Speicher 70 verfügbar sind, werden die Einträge, die in dem Multiport-Speicher 70 gespeichert sind, als Adressumsetzungs-Cache-Einträge implementiert. Wie zuvor werden ausgewählte Bit der SCI-Adresse erfasst und zur Erstellung des Verweistabellenindex 112 verwendet. Der Adressumsetzungseintrag ("Address Translation Entry" – ATE) 108 ist jedoch 32 Bit breit, wovon ein Teil einen ATE-Cache-Tag 118 definiert, der mit den passenden SCI-Zieladressen-Bit 120 übereinstimmen muss, damit der Eintrag gültig ist. Diese SCI-Zieladressen-Bit 120 können von der SCI-Schnittstelle 66 erfasst und zu der PCI-Schnittstelle 68 in einer ähnlichen Weise wie beim Adressumsetzungsindexfeld 112 weitergeleitet werden.
  • Sie können auch aus dem PCI-Port des Multiport-Speichers 70 ausgelesen werden.
  • Die fertige PCI-Adresse wird dann aus Datenbit 0 bis 11 des SCI-Ziel-Adress-Offset der Eingangs-Pufferspeicher-Slots und den Bit 12 bis 31 des geeigneten passenden Adressumsetzungseintrags zusammengestellt. Dies erfolgt während des Zyklus, der auf das Lesen des ATE folgt, in dem die Adressen-Tags verglichen werden. während der PCI-Adressenphase wird der zweite 8-Bit-Port (D8-15) des Multiport-Speichers 70 gesperrt und die PCI-Schnittstelle 68 steuert die zuvor gelesenen/erfassten Adressbit passend an.
  • Es ist zu beachten, dass die PCI-SCI-Adressumsetzung auf gleiche Weise implementiert wird. Ebenso kann in einer komplexeren Ausführungsform ein Datenport mehrere Adressbusse aufweisen. Eine solche Implementierung erweitert die zuvor beschriebenen Methoden.
  • Eine Speicherkarte des Dreifachport-Speichers 70, wie von der Mikrosteuerung 74 oder von dem lokalen PCI-Bus 62 gesehen, für die oben genannte Methode kann gemäß der folgenden Tabelle 1 implementiert sein. Tabelle 1: TPM Speicher-Layout
    Relativer Adress-Offset Inhalt 31 23 15 7
    0000h...05FCh 384 SCI → PCI Zugriffssteuerung/ Adressumsetzungstabelleneinträge (SCIPCILUT) 384 SCI → PCI Zugriffssteuerung/ Adressumsetzungstabellen-Tags (SCIPCILUT) CFG
    0600h...06FCh 64 PCI Lesedaten-Pufferspeicherdeskriptor
    0700h...07FCh 16×16-Byte-Sendepufferspeicher-Slots Dieser Pufferspeicher wird von der PCI-Slawe-Lese-Ablaufsteuereinrichtung betrieben. Er wird zum Speichern von direkten PCI-Leseanfragen verwendet.
    0800h...0FFCh 16×128-Byte-Sendepufferspeicher-Slots (von welchen jeder bis zu 80-Byte-Pakete hält) Dieser Pufferspeicher wird von der PCI-Slave-Schreib-Ablaufsteuereinrichtung betrieben. Er wird zum Speichern von direkten PCI-Schreibdaten verwendet.
    1000h...1FFCh 32×128-Byte-Sendepufferspeicher-Slots (von welchen jeder bis zu 80-Byte-Pakete hält) Dieser Pufferspeicherpool wird von der 1960-Mikrosteuerung betrieben. DMA-Anfrage-, SCI-Antwortpakete und andere Pakete werden von hier gesendet.
    2000h...3FFCh 64×128-Byte-Sendepufferspeicher-Slots (von welchen jeder bis zu 80-Byte-Pakete halt) Dieser Pufferspeicherpool wird von dem Blink Receiver betrieben. Hier wird jede Art von eingehendem Paket gespeichert.
  • Die einfachsten, derzeitig erhältlichen Multiport-Speicher sind entweder Dualport- oder Vierfachport-Speicher. Es ist möglich, einen Dreifachport-Speicher unter Verwendung von drei Dualport-Speichern zu implementieren. Es ist jedoch nur ein Speicher-Chip zur Bildung eines Dreifachport-Speichers 70 unter Verwendung eines Vierfachport-Speichers 130 notwendig, wie in 8 dargestellt ist. Der Vierfachport-Speicher hat vier 8-Bit-Datenbusse. Daher müssen vier Chips kombiniert werden, um einen 32-Bit-Bus zu bilden. Die SCI-Backend-Busschnittstelle ist für gewöhnlich 64 Bit breit. Damit die Verwendung von acht 8-Bit-Multiport-Speichern zur Bildung eines 64-Bit-Busses vermieden wird, können zwei Datenports zur Bildung eines 64-Bit-Busses kombiniert werden. Das niedrigste Adressbit des zusammengelegten 64-Bit-Busses wird einer bestimmten Ebene zugeteilt (niedrig für Port 2 und hoch für Port 3). Welches Adressbit welcher Ebene zugeteilt wird, hängt von der Endianess-Variante der IOP- Busschnittstelle und der Organisation des Datenbusses B ab. Wenn eine 64-Bit-Schreibtransaktion ausgeführt wird, erkennt der Vierfachport-Speicher zwei simultane Schreibanfragen an zwei Ports zu zwei benachbarten Speicherstellen mit identischer Zeitsteuerung. Dies zeigt, wie die Schnittstelle der vorliegenden Erfindung verschiedene Busbreiten aufnehmen kann, ohne speziell konstruierte Chips zu benötigen. Alle Ports des Multiport-Speichers arbeiten asynchron, so dass an jedem Port unabhängige Taktdomänen möglich sind. Eine andere Nutzung des Vierfachport-Speichers ist die Verwendung des vierten Ports entweder als zusätzlichen Netzwerkport, oder die Möglichkeit, einen zweiten Prozessor 74' hinzuzufügen, sollte sich ein Prozessor 74 als unzureichend erweisen.
  • Die Konfiguration eines Dreifachport-Speichers 70 unter Verwendung eines Vierfachport-Speichers 130 ist in 9 ausführlicher dargestellt. Der Blink-Adressbus ist 11 Bit breit, da der niedrigste Adressen-Pin GND bzw. VCC zugeteilt ist (A2(0)<='0'; A3(0)<='1' oder umgekehrt, für alle Chips abhängig von der Endianess der beteiligten Busse). Der lokale PCI-Bus-Chip B1 ist asymmetrisch, wobei der Chip D8–D15 ansteuert, der einen Teil der Durchgangsadress- und einen Teil der ATE-Adress-Bit enthält. Andere Gruppierungen der Ausgangsfreigabesignale und möglicherweise der Adressbusse sind offensichtlich möglicherweise von dem spezifischen Fly-by-Adressumsetzungsschema abhängig.
  • 10 zeigt die Architektur eines intelligenten Netzwerk-Routers 60 auf der Basis eines Vierfachport-Speichers 162 gemäß der vorliegenden Erfindung. Das gewählte Beispiel ist eine LAN/WAN-Feuerwand, die zum Beispiel eine 155-MBit-ATM-Verknüpfung 164 plus zwei unabhängige 100-Megabit-Ethernet-LAN-Verknüpfungen 166, 168 implementiert. Sie kann auch als Ethernet-Brücke dienen, unter Verwendung der logischen Durchgangseinheit 170. Der Prozessor 172 wird, wie in den vorangehenden Ausführungsformen, vom lokalen Speicher 174 und der Firmware ROM 176 unterstützt, und hat, unter Verwendung eines internen Busses 184, Zugriff auf alle Netzwerk-Ports für die Konfiguration und Steuerung. Der gesamte ATM-Verkehr wird durch den Vierfachport-Speicher 162 geleitet, wo alle Feuerwand-Funktionalitäten und die LAN/WAN-Protokollkonvertierung von dem Prozessor 172 ausgeführt werden. Die Netzwerkschnittstellen 178, 180 und 182, die in 10 dargestellt sind, sind Beispiele für mögliche Datenbuskonfigurationen. Die Erfindung ist jedoch nicht auf ein spezifisches Protokoll oder einen spezifischen Netzwerkstandard beschränkt. Schlüssel zu den Figuren
    Figur 1
    Memory Bus Interface Unit MIU Speicherbus-Schnittstellen-Einheit MIU
    Processor Prozessor
    Memory Speicher
    Local Bus Interface Unit BIU Lokale Busschnittstellen-Einheit BIU
    DMA Interface DMA-Schnittstelle
    PCI-PCI Bridge PCI-PCI-Brücke
    Figur 2
    Memory Bus Interface Unit MIU Speicher-Busschnittstellen-Einheit MIU
    Processor Prozessor
    Memory Speicher
    Local Bus Interface Unit BIU Lokale Busschnittstellen-Einheit BIU
    DMA Interface DMA-Schnittstelle
    Triple Port Memory Dreifachport-Speicher
    Pass-Through Logic Unit Logische Durchgangseinheit
    Figur 3
    Memory Bus Interface Unit MIU Speicherbus-Schnittstellen-Einheit MIU
    Processor Prozessor
    Memory Speicher
    Local Bus Interface Unit BIU Lokale Busschnittstellen-Einheit BIU
    DMA Interface DMA-Schnittstelle
    Quad Port Memory Vierfachport-Speicher
    Pass-Through Logic Unit Logische Durchgangseinheit
    Fig. 4
    Local Memory Lokaler Speicher
    Processor Prozessor
    Firmware Firmware
    PCI-Interface PCI-Schnittstelle
    Triple Port Memory Dreifachport-Speicher
    SCI-Interface SCI-Schnittstelle
    Pass-Through Logic Unit Logische Durchgangseinheit
    Fig. 5
    SCI Source ID SCI-Quellen-ID
    SCI Subaddress SCI-Subadresse
    Page size Seitengröße
    Address Translation Index Adressumsetzungsindex
    Buffer Pufferspeicher
    Address Translation Table Adressumsetzungstabelle
    Address domain Adressdomäne
    Fig. 6
    16-bit SCI Source ID 16-Bit-SCI-Quellen-ID
    64-bit SCI Address 64-Bit-SCI-Adresse
    32-bit PCI Address 32-Bit-PCI-Adresse
    SCI > PCI Lut SCI > PCI LUT
    PCI Master Window Base PCI-Hauptfensterbasis
    Fig. 7
    16-bit SCI Source ID 16-Bit-SCI-Quellen-ID
    64-bit SCI Address 64-Bit-SCI-Adresse
    32-bit PCI Address 32-Bit-PCI-Adresse
    SCI > PCI Lut SCH > PCI LUT
    PCI Master Window Base PCI-Hauptfensterbasis
    Fig. 8
    Control Port Steuerport
    Address Port Adressenport
    Data Port Datenport
    4-Port Memory Vierport-Speicher
    Fig. 9
    4-Port Memory Vierport-Speicher
    Blink Port Blink-Port
    Micro Controller Port Mikrosteuerungsport
    Fig. 10
    Local Memory Lokaler Speicher
    Prozessor Prozessor
    Firmware Firmware
    Ethernet Interface Ethernet-Schnittstelle
    Quad Port Memory Vierfachport-Speicher
    Pass-Through Logic Unit Logische Durchgangseinheit
    ATM Interface ATM-Schnittstelle

Claims (23)

  1. Schnittstellenvorrichtung, aufweisend: einen Multiport-Speicher (32) mit mehreren Datenspeicherzellen und mit mindestens drei bidirektionalen Datenports (32a, 32b, 32c), die unabhängige, simultane und asynchrone Schreibvorgänge bei verschiedenen Datenworten und Lesevorgänge von Daten aus den mehreren Datenspeicherzellen unterstützen, ein erstes Mittel (44) zum Koppeln eines ersten Ports (32a) der bidirektionalen Datenports an einen ersten bidirektionalen Datenbus (46), ein zweites Mittel (48) zum Koppeln eines zweiten Ports (32b) der bidirektionalen Datenports an einen zweiten bidirektionalen Datenbus (50), und einen Prozessor (34), der an einen dritten Port (32c) der bidirektionalen Datenports gekoppelt ist, um Daten in den mehreren Datenspeicherzellen zu bearbeiten, wobei die Daten, die in einer bestimmten Speicherzelle durch einen bestimmten Port gespeichert sind, für das Lesen durch einen anderen Port unabhängig von dem bestimmten Port verfügbar sind, während der bestimmte Port Daten aus einer anderen Speicherzelle liest oder Daten in dieser speichert.
  2. Schnittstellenvorrichtung nach Anspruch 1, wobei: der erste Datenbus (46) n-Datenbit verwendet; der zweite Datenbus (50) m-Datenbit verwendet, wobei m größer n ist, und der Multiport-Speicher ein Dreifachport-Speicher ist, der einen Vierfachport-Speicher (130') verwendet, von welchem einer seiner vier Ports für den ersten Datenbus (46) konfiguriert ist und zwei seiner vier Ports für den zweiten Datenbus (50) konfiguriert sind, um die breitere m-Bit-Datenadresse zu unterstützen.
  3. Schnittstellenvorrichtung nach Anspruch 1, wobei: das erste Kopplungsmittel eine erste Datenbus-Schnittstelleneinheit (44) enthält, die zwischen dem ersten bidirektionalen Datenbus (46) und dem ersten bidirektionalen Datenport (32a) gekoppelt ist, um Daten asynchron in die mehreren Datenspeicherzellen zu schreiben und Daten asynchron aus diesen zu lesen; das zweite Kopplungsmittel eine zweite Datenbus-Schnittstelleneinheit (48) enthält, die zwischen dem zweiten bidirektionalen Datenbus (50) und dem zweiten bidirektionalen Datenport (32b) gekoppelt ist, um Daten asynchron in die mehreren Datenspeicherzellen zu schreiben und Daten asynchron aus diesen zu lesen; und der Prozessor (34) asynchron Daten bearbeitet, die zuvor von einer der ersten und zweiten Datenbus-Schnittstelle (44, 48) in einen Abschnitt der mehreren Datenspeicherzellen geschrieben wurden, während die erste und zweite Busschnittstelle (44, 48) simultan Daten in jeweils andere Abschnitte der mehreren Datenspeicherzellen schreiben oder aus diesen lesen.
  4. Schnittstellenvorrichtung nach Anspruch 3, des Weiteren aufweisend eine logische Durchgangseinheit (52), die zwischen der ersten und zweiten Datenbus-Schnittstelle (44, 48) gekoppelt ist, um eine Datenbrücke zwischen dem ersten und zweiten Datenbus (46, 50) bereitzustellen.
  5. Schnittstellenvorrichtung nach Anspruch 4, wobei die Datenbrücke eine Protokollkonvertierung zwischen einem geteilten Transaktionsprotokoll und einem vereinten Transaktionsprotokoll durchführt.
  6. Schnittstellenvorrichtung nach Anspruch 4, wobei: der erste Datenbus (62) ein PCI-Datenbus ist; die erste Datenbus-Schnittstelleneinheit (68) eine PCI-Schnittstelleneinheit ist; der zweite Datenbus (64) ein SCI-Datenbus ist; die zweite Datenbus-Schnittstelle (66) eine SC-Schnittstelleneinheit ist; und die logische Durchgangseinheit (80) eine Datenadresse auf dem SCI-Datenbus in eine Datenadresse auf dem PCI-Datenbus umsetzt, um eine SCI-PCI-Datenbusbrücke bereitzustellen.
  7. Schnittstellenvorrichtung nach Anspruch 6, wobei die logische Durchgangseinheit (80) eine Datenadresse auf dem PCI-Datenbus (62) in eine Datenadresse auf dem SCI-Datenbus (64) umsetzt, um eine PCI-SCI-Datenbusbrücke (60) bereitzustellen.
  8. Schnittstellenvorrichtung nach Anspruch 4, wobei: der SCI-Datenbus (64) eine 64-Bit-Datenadresse verwendet; der PCI-Datenbus (62) eine 32-Bit-Datenadresse verwendet; und der Multiport-Speicher (70) ein Dreifachport-Speicher ist, der einen Vierfachport-Speicher verwendet, von welchem einer seiner vier Ports für den PCI-Datenbus (62) konfiguriert ist und zwei seiner vier für den SCI-Bus-Datenbus (64) konfiguriert sind, um die breitere 64-Bit-Datenadresse zu unterstützen.
  9. Schnittstellenvorrichtung nach Anspruch 8, wobei die logische Durchgangseinheit (80) eine Fly-by-Adressumsetzung zwischen der SCI-Busschnittstelleneinheit (66) und der PCI-Busschnittstelleneinheit (68) implementiert.
  10. Schnittstellenvorrichtung nach Anspruch 3, wobei: der erste Datenbus (46) ein Host-PCI-Datenbus ist; die erste Datenbus-Schnittstelleneinheit eine erste DMA-Schnittstelleneinheit (44) ist; der zweite Datenbus (50) ein Slave-PCI-Datenbus ist; die zweite Datenbus-Schnittstelleneinheit eine zweite DMA-Schnittstelleneinheit (48) ist; und die logische Durchgangseinheit (52) eine Datenadresse auf dem Host-PCI-Datenbus (46) zu dem Slave-PCI-Datenbus (50) weiterleitet und eine Datenadresse auf dem Slave-PCI-Datenbus (50) zu dem Host-PCI-Datenbus (46) weiterleitet, um eine PCI-PCI-Brückeneinheit bereitzustellen.
  11. Schnittstellenvorrichtung nach Anspruch 3, wobei der Prozessor (34) Blocklesevorgänge zwischen der ersten und zweiten Datenbus-Schnittstelleneinheit (44, 48) plant, um einen Kettenmodus-DMA-Datentransfer zu implementieren.
  12. Schnittstellenvorrichtung nach Anspruch 3, des Weiteren aufweisend einen internen Bus (40), der an den Prozessor (34), an die erste Datenbus-Schnittstelleneinheit (44) und an die zweite Datenbus-Schnittstelleneinheit (48) gekoppelt ist, um eine Kommunikation von Steuerungs- und Konfigurationsanweisungen unter dem Prozessor (34) und den ersten und zweiten Datenbus-Schnittstelleneinheiten (44, 48) zu ermöglichen.
  13. Schnittstellenvorrichtung nach Anspruch 1, des Weiteren aufweisend ein drittes Mittel, das einen vierten Port der bidirektionalen Datenports an einen dritten bidirektionalen Datenbus koppelt.
  14. Schnittstellenvorrichtung nach Anspruch 13, wobei: das dritte Kopplungsmittel eine dritte bidirektionale Datenbus-Schnittstelleneinheit enthält, die an einen vierten Port der bidirektionalen Datenports gekoppelt ist; und die Schnittstellenvorrichtung des Weiteren eine logische Durchgangseinheit (170) aufweist, die zwischen der ersten und zweiten Datenbus-Schnittstelleneinheit (178, 180) gekoppelt ist, um eine lokale Netzwerkbrücke zwischen dem ersten und zweiten Datenbus (166, 168) bereitzustellen.
  15. Schnittstellenvorrichtung nach Anspruch 14, wobei: der erste Datenbus ein erster Ethernet-Datenbus (166) ist; das erste Kopplungsmittel eine erste Ethernet-Schnittstelleneinheit (178) enthält; der zweite Datenbus ein zweiter Ethernet-Datenbus (168) ist; das zweite Kopplungsmittel eine zweite Ethernet-Schnittstelleneinheit (180) enthält, das dritte Kopplungsmittel eine ATM-Schnittstelleneinheit (182) enthält, die zwischen dem dritten bidirektionalen Datenbus und dem vierten bidirektionalen Datenport gekoppelt ist, und die logische Durchgangseinheit (170) eine Datenbrücke zwischen dem ersten und zweiten Ethernet-Datenbus (166, 168) bereitstellt.
  16. Schnittstellenvorrichtung nach Anspruch 1, wobei der Prozessor (34) Mittel zur Ausführung einer Verschlüsselung und Entschlüsselung von Daten enthält, die in dem Multiport-Speicher (32, 32', 70, 130) gespeichert sind.
  17. Schnittstellenvorrichtung nach Anspruch 1, des Weiteren aufweisend einen zweiten Prozessor (34'), der an einen vierten Port (32d) der bidirektionalen Datenports (32a, 32b, 32c, 32d) gekoppelt ist, um Daten in den mehreren Datenspeicherzellen zu bearbeiten.
  18. Schnittstellenvorrichtung nach Anspruch 1, wobei der Prozessor eine Digitalzustandsmaschine ist.
  19. Schnittstellenvorrichtung nach Anspruch 1, mit: einem Prozessor (34), einer ersten Busschnittstelle (44) zum Empfangen von Daten von einem ersten Datenbus (46) und zum Übertragen von Daten zu diesem, einer zweiten Busschnittstelle (48) zum Empfangen von Daten von einem zweiten Datenbus (50) und zum Übertragen von Daten zu diesem, einem Dreifachport-Speicher (32) mit ersten, zweiten und dritten Ports (32a, 32b, 32c) zum Speichern von Daten in mehreren Speicherzellen und zum Lesen gespeicherter Daten aus den Datenspeicherzellen, Unterstützen unabhängiger simultaner und asynchroner Schreibvorgänge von Daten in die mehreren Datenspeicherzellen und Lesen von Daten aus diesen, ohne Zuordnung eines Zugriffs; wobei der erste Port (32a) derart an die erste Busschnittstelle (44) gekoppelt ist, dass Daten, die von dem ersten Datenbus (46) empfangen werden, in den Speicherzellen gespeichert werden, und Daten, die durch die erste Busschnittstelle (44) aus den Speicherzellen gelesen werden, zu dem ersten Datenbus (46) übertragen werden; wobei der zweite Port (32b) derart an die zweite Busschnittstelle (48) gekoppelt ist, dass Daten, die von dem zweiten Datenbus (50) empfangen werden, in den Speicherzellen gespeichert werden, und Daten, die durch die zweite Busschnittstelle (48) aus den Speicherzellen gelesen werden, zu dem zweiten Datenbus (50) übertragen werden; wobei der Prozessor (34) an den dritten Port (32c) gekoppelt ist, um Daten in den Speicherzellen zu lesen, zu verarbeiten und zu speichern; und wobei die Daten, die in einer bestimmten Speicherzelle durch einen bestimmten Port gespeichert werden, für einen Lesevorgang durch einen anderen Port zur Verfügung stehen, unabhängig von dem bestimmten Port, während der bestimmte Port Daten aus einer anderen Speicherzelle liest oder Daten in dieser speichert.
  20. Schnittstellenvorrichtung nach Anspruch 1, mit: einem Multiport-Speicher (32, 70, 162) mit mehreren bidirektionalen Datenports (32a, 32b, 32c, 32d); mehreren Busschnittstellen, wobei jede Schnittstelle an einen der mehreren Datenports angeschlossen ist, um Daten in dem Multiport-Speicher (32, 70, 162) zu speichern und Daten aus diesem zu lesen; und mehreren Datenprozessoren (34, 34'; 74, 172), wobei jeder Datenprozessor an einen separaten Datenport der mehreren Datenports angeschlossen ist, um simultan Daten aus verschiedenen Abschnitten des Multiport-Speichers (32, 70, 162) zu lesen, die gespeicherten Daten zu verarbeiten, und die verarbeiteten Daten in dem Multiport-Speicher zu speichern, wobei die bidirektionalen Datenports (32a, 32b, 32c) einen unabhängigen simultanen und asynchronen Schreibvorgang oder Lesevorgang von Daten in die bzw. aus den mehreren Datenspeicherzellen unterstützen, ohne Zuordnung eines Zugriffs.
  21. Schnittstellenvorrichtung nach Anspruch 20, des Weiteren aufweisend eine logische Durchgangseinheitsvorrichtung (52, 80, 170) zum Übertragen von Daten zwischen zwei Busschnittstellen unter Verwendung des Multiport-Speichers (32, 70, 162) unabhängig von dem Prozessor (34, 74, 172).
  22. Schnittstellenvorrichtung nach Anspruch 20, wobei der Multiport-Speicher (32, 70, 162) ein Vierfachport-Speicher (130) ist, der einen Dreifachport-Speicher mit verschiedenen Port- Datenbusbreiten unter Verwendung eines Vierfachport-Speichers implementiert.
  23. Verfahren zur Datenübergabe, aufweisend: das Bereitstellen eines Multiport-Speichers mit mehreren Datenspeicherzellen; das Speichern von Daten, die durch einen ersten Port von einem ersten Datenbus empfangen wurden, in einem ersten Abschnitt der mehreren Speicherzellen; und das Verarbeiten, durch einen zweiten Port, der Daten, die in dem ersten Abschnitt der mehreren Datenspeicherzellen gespeichert sind, während Daten, die durch den ersten Port von dem ersten Datenbus empfangen werden, unabhängig und simultan in einem zweiten Abschnitt der mehreren Speicherzellen gespeichert werden, ohne Zuordnung eines Zugriffs; und das Lesen, durch einen dritten Datenport, verarbeiteter Daten, die in dem ersten Abschnitt der mehreren Datenspeicherzellen gespeichert sind, während durch den zweiten Port die Daten, die in dem zweiten Abschnitt der mehreren Datenspeicherzellen gespeichert sind, unabhängig und simultan verarbeitet werden, und während Daten, die durch den ersten Port von dem ersten Datenbus empfangen werden, in einem dritten Abschnitt der mehreren Speicherzellen unabhängig und simultan gespeichert werden.
DE69839374T 1997-09-23 1998-09-22 Multitorspeicher verwendende intelligente datenbusschnittstelle Expired - Lifetime DE69839374T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/935,921 US6067595A (en) 1997-09-23 1997-09-23 Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories
US935921 1997-09-23
PCT/US1998/020049 WO1999016200A2 (en) 1997-09-23 1998-09-22 Intelligent data bus interface using multi-port memory

Publications (2)

Publication Number Publication Date
DE69839374D1 DE69839374D1 (de) 2008-05-29
DE69839374T2 true DE69839374T2 (de) 2009-06-25

Family

ID=25467893

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69839374T Expired - Lifetime DE69839374T2 (de) 1997-09-23 1998-09-22 Multitorspeicher verwendende intelligente datenbusschnittstelle

Country Status (9)

Country Link
US (1) US6067595A (de)
EP (1) EP1047994B1 (de)
JP (1) JP2001517844A (de)
KR (1) KR20010015608A (de)
CN (1) CN1154934C (de)
AT (1) ATE392664T1 (de)
AU (1) AU9665798A (de)
DE (1) DE69839374T2 (de)
WO (1) WO1999016200A2 (de)

Families Citing this family (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19529434B4 (de) * 1995-08-10 2009-09-17 Continental Teves Ag & Co. Ohg Microprozessorsystem für sicherheitskritische Regelungen
US6343086B1 (en) * 1996-09-09 2002-01-29 Natural Microsystems Corporation Global packet-switched computer network telephony server
JPH1185668A (ja) * 1997-09-11 1999-03-30 Mitsubishi Electric Corp バス制御装置
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6320859B1 (en) * 1997-10-31 2001-11-20 Nortel Networks Limited Early availability of forwarding control information
US6363076B1 (en) * 1998-01-27 2002-03-26 International Business Machines Corporation Phantom buffer for interfacing between buses of differing speeds
CA2228687A1 (en) * 1998-02-04 1999-08-04 Brett Howard Secured virtual private networks
US6473818B1 (en) * 1998-09-09 2002-10-29 Advanced Micro Devices, Inc. Apparatus and method in a network interface device for asynchronously generating SRAM full and empty flags using coded read and write pointer values
TW502172B (en) * 1998-10-26 2002-09-11 Winbond Electronics Corp Digital camera to printer conversion device with USB structure
US6272567B1 (en) * 1998-11-24 2001-08-07 Nexabit Networks, Inc. System for interposing a multi-port internally cached DRAM in a control path for temporarily storing multicast start of packet data until such can be passed
US6738821B1 (en) * 1999-01-26 2004-05-18 Adaptec, Inc. Ethernet storage protocol networks
US6701432B1 (en) * 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US7107612B1 (en) * 1999-04-01 2006-09-12 Juniper Networks, Inc. Method, apparatus and computer program product for a network firewall
JP2000315186A (ja) * 1999-05-06 2000-11-14 Hitachi Ltd 半導体装置
US6553446B1 (en) * 1999-09-29 2003-04-22 Silicon Graphics Inc. Modular input/output controller capable of routing packets over busses operating at different speeds
US6282144B1 (en) * 2000-03-13 2001-08-28 International Business Machines Corporation Multi-ported memory with asynchronous and synchronous protocol
US6633967B1 (en) * 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Coherent translation look-aside buffer
US7031992B2 (en) * 2000-09-08 2006-04-18 Quartics, Inc. Hardware function generator support in a DSP
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
DE10050980A1 (de) * 2000-10-13 2002-05-02 Systemonic Ag Speicherkonfiguration mit I/O-Unterstützung
US7328232B1 (en) 2000-10-18 2008-02-05 Beptech Inc. Distributed multiprocessing system
US6704831B1 (en) * 2000-11-16 2004-03-09 Sun Microsystems, Inc. Method and apparatus for converting address information between PCI bus protocol and a message-passing queue-oriented bus protocol
WO2002061591A1 (en) * 2001-01-31 2002-08-08 Hitachi,Ltd Data processing system and data processor
US6961475B2 (en) * 2001-03-30 2005-11-01 Ricoh Co., Ltd. Context model access to memory based on run and skip counts and context model skipping
KR100412130B1 (ko) * 2001-05-25 2003-12-31 주식회사 하이닉스반도체 램버스 디램의 출력전류 제어회로
US7047328B1 (en) * 2001-07-13 2006-05-16 Legerity, Inc. Method and apparatus for accessing memories having a time-variant response over a PCI bus by using two-stage DMA transfers
AU2002327912A1 (en) * 2001-08-07 2003-02-24 Innominate Security Technologies Ag Method and computer system for securing communication in networks
CN1282924C (zh) * 2001-10-17 2006-11-01 Bep技术公司 通过操作系统进行通信的方法
US20030105799A1 (en) * 2001-12-03 2003-06-05 Avaz Networks, Inc. Distributed processing architecture with scalable processing layers
US20030112758A1 (en) * 2001-12-03 2003-06-19 Pang Jon Laurent Methods and systems for managing variable delays in packet transmission
US6829660B2 (en) * 2001-12-12 2004-12-07 Emulex Design & Manufacturing Corporation Supercharge message exchanger
US7389315B1 (en) * 2002-02-28 2008-06-17 Network Appliance, Inc. System and method for byte swapping file access data structures
US7146454B1 (en) * 2002-04-16 2006-12-05 Cypress Semiconductor Corporation Hiding refresh in 1T-SRAM architecture
GB0221464D0 (en) * 2002-09-16 2002-10-23 Cambridge Internetworking Ltd Network interface and protocol
US7260112B2 (en) * 2002-12-24 2007-08-21 Applied Micro Circuits Corporation Method and apparatus for terminating and bridging network protocols
US7103697B2 (en) * 2003-01-08 2006-09-05 Emulex Design & Manufacturing Corporation Flow-through register
US7100002B2 (en) * 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7949782B2 (en) * 2003-11-06 2011-05-24 Qualcomm Incorporated Extended link monitoring channel for 10 Gb/s Ethernet
JP2005293427A (ja) * 2004-04-02 2005-10-20 Matsushita Electric Ind Co Ltd データ転送処理装置及びデータ転送処理方法
JP2005332145A (ja) * 2004-05-19 2005-12-02 Nec Electronics Corp データ転送制御回路及びデータ転送方法
US20060083102A1 (en) * 2004-10-20 2006-04-20 Seagate Technology Llc Failover control of dual controllers in a redundant data storage system
US7373447B2 (en) * 2004-11-09 2008-05-13 Toshiba America Electronic Components, Inc. Multi-port processor architecture with bidirectional interfaces between busses
JP4806418B2 (ja) * 2005-01-10 2011-11-02 クォーティックス インク ビジュアルメディアの統合処理のための統合アーキテクチャ
JP4776947B2 (ja) * 2005-03-10 2011-09-21 キヤノン株式会社 データ処理装置
JP4667108B2 (ja) * 2005-04-11 2011-04-06 パナソニック株式会社 データ処理装置
US7725609B2 (en) 2005-08-05 2010-05-25 Qimonda Ag System memory device having a dual port
DE102006045248A1 (de) * 2005-09-29 2007-04-19 Hynix Semiconductor Inc., Ichon Multiport-Speichervorrichtung mit serieller Eingabe-/Ausgabeschnittstelle
KR100725100B1 (ko) * 2005-12-22 2007-06-04 삼성전자주식회사 포트간 데이터 전송기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치
KR100684553B1 (ko) * 2006-01-12 2007-02-22 엠텍비젼 주식회사 듀얼 포트 메모리와 결합되는 마이크로 프로세서
US7600081B2 (en) * 2006-01-18 2009-10-06 Marvell World Trade Ltd. Processor architecture having multi-ported memory
US7844756B2 (en) * 2007-01-22 2010-11-30 International Business Machines Corporation Selection of data mover for data transfer
US7702840B1 (en) 2007-05-14 2010-04-20 Xilinx, Inc. Interface device lane configuration
US7573295B1 (en) 2007-05-14 2009-08-11 Xilinx, Inc. Hard macro-to-user logic interface
US7557607B1 (en) 2007-05-14 2009-07-07 Xilinx, Inc. Interface device reset
US7626418B1 (en) 2007-05-14 2009-12-01 Xilinx, Inc. Configurable interface
US7535254B1 (en) 2007-05-14 2009-05-19 Xilinx, Inc. Reconfiguration of a hard macro via configuration registers
US10210750B2 (en) 2011-09-13 2019-02-19 Lutron Electronics Co., Inc. System and method of extending the communication range in a visible light communication system
US9509525B2 (en) * 2008-09-05 2016-11-29 Ketra, Inc. Intelligent illumination device
US8886047B2 (en) * 2008-09-05 2014-11-11 Ketra, Inc. Optical communication device, method and system
US8674913B2 (en) 2008-09-05 2014-03-18 Ketra, Inc. LED transceiver front end circuitry and related methods
US8456092B2 (en) * 2008-09-05 2013-06-04 Ketra, Inc. Broad spectrum light source calibration systems and related methods
US20110063214A1 (en) * 2008-09-05 2011-03-17 Knapp David J Display and optical pointer systems and related methods
US8773336B2 (en) * 2008-09-05 2014-07-08 Ketra, Inc. Illumination devices and related systems and methods
US9276766B2 (en) * 2008-09-05 2016-03-01 Ketra, Inc. Display calibration systems and related methods
US8521035B2 (en) * 2008-09-05 2013-08-27 Ketra, Inc. Systems and methods for visible light communication
US8471496B2 (en) * 2008-09-05 2013-06-25 Ketra, Inc. LED calibration systems and related methods
US8179787B2 (en) * 2009-01-27 2012-05-15 Smsc Holding S.A.R.L. Fault tolerant network utilizing bi-directional point-to-point communications links between nodes
CN102203743A (zh) * 2008-10-24 2011-09-28 惠普发展公司,有限责任合伙企业 直接-附接的/网络-附接的存储设备
US8316192B2 (en) * 2009-10-08 2012-11-20 Honeywell International Inc. Multiple-port memory systems and methods
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8677180B2 (en) 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8510599B2 (en) 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8416834B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Spread spectrum wireless communication code for data center environments
US8417911B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Associating input/output device requests with memory associated with a logical partition
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US8615622B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Non-standard I/O adapters in a standardized I/O architecture
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8683108B2 (en) 2010-06-23 2014-03-25 International Business Machines Corporation Connected input/output hub management
US8656228B2 (en) 2010-06-23 2014-02-18 International Business Machines Corporation Memory error isolation and recovery in a multiprocessor computer system
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US8918573B2 (en) 2010-06-23 2014-12-23 International Business Machines Corporation Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8645606B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Upbound input/output expansion request and response processing in a PCIe architecture
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US8745292B2 (en) 2010-06-23 2014-06-03 International Business Machines Corporation System and method for routing I/O expansion requests and responses in a PCIE architecture
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8505032B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Operating system notification of actions to be taken responsive to adapter events
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US8671287B2 (en) 2010-06-23 2014-03-11 International Business Machines Corporation Redundant power supply configuration for a data center
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8645767B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Scalable I/O adapter function level error detection, isolation, and reporting
EP2876559B1 (de) * 2010-09-21 2016-04-27 Mitsubishi Electric Corporation DMA-Steuerung und Datenauslesevorrichtung
USRE49454E1 (en) 2010-09-30 2023-03-07 Lutron Technology Company Llc Lighting control system
US9386668B2 (en) 2010-09-30 2016-07-05 Ketra, Inc. Lighting control system
US8749172B2 (en) 2011-07-08 2014-06-10 Ketra, Inc. Luminance control for illumination devices
JP5848570B2 (ja) * 2011-09-30 2016-01-27 ラピスセミコンダクタ株式会社 通信装置、受信制御方法及び送信制御方法
US9117037B2 (en) * 2011-11-21 2015-08-25 Acer Incorporated Interface apparatus, cascading system thereof and cascading method thereof
CN103376866B (zh) * 2012-04-19 2016-09-14 鸿富锦精密工业(深圳)有限公司 服务器系统
US9910808B2 (en) * 2012-04-30 2018-03-06 Hewlett Packard Enterprise Development Lp Reflective memory bridge for external computing nodes
US10762011B2 (en) 2012-04-30 2020-09-01 Hewlett Packard Enterprise Development Lp Reflective memory bridge for external computing nodes
USRE48955E1 (en) 2013-08-20 2022-03-01 Lutron Technology Company Llc Interference-resistant compensation for illumination devices having multiple emitter modules
US9769899B2 (en) 2014-06-25 2017-09-19 Ketra, Inc. Illumination device and age compensation method
US9345097B1 (en) 2013-08-20 2016-05-17 Ketra, Inc. Interference-resistant compensation for illumination devices using multiple series of measurement intervals
US9155155B1 (en) 2013-08-20 2015-10-06 Ketra, Inc. Overlapping measurement sequences for interference-resistant compensation in light emitting diode devices
US9247605B1 (en) 2013-08-20 2016-01-26 Ketra, Inc. Interference-resistant compensation for illumination devices
US9360174B2 (en) 2013-12-05 2016-06-07 Ketra, Inc. Linear LED illumination device with improved color mixing
US9578724B1 (en) 2013-08-20 2017-02-21 Ketra, Inc. Illumination device and method for avoiding flicker
US9332598B1 (en) 2013-08-20 2016-05-03 Ketra, Inc. Interference-resistant compensation for illumination devices having multiple emitter modules
US9651632B1 (en) 2013-08-20 2017-05-16 Ketra, Inc. Illumination device and temperature calibration method
US9237620B1 (en) 2013-08-20 2016-01-12 Ketra, Inc. Illumination device and temperature compensation method
USRE48956E1 (en) 2013-08-20 2022-03-01 Lutron Technology Company Llc Interference-resistant compensation for illumination devices using multiple series of measurement intervals
US9736895B1 (en) 2013-10-03 2017-08-15 Ketra, Inc. Color mixing optics for LED illumination device
US9146028B2 (en) 2013-12-05 2015-09-29 Ketra, Inc. Linear LED illumination device with improved rotational hinge
US9392663B2 (en) 2014-06-25 2016-07-12 Ketra, Inc. Illumination device and method for controlling an illumination device over changes in drive current and temperature
US9557214B2 (en) 2014-06-25 2017-01-31 Ketra, Inc. Illumination device and method for calibrating an illumination device over changes in temperature, drive current, and time
US9736903B2 (en) 2014-06-25 2017-08-15 Ketra, Inc. Illumination device and method for calibrating and controlling an illumination device comprising a phosphor converted LED
US10161786B2 (en) 2014-06-25 2018-12-25 Lutron Ketra, Llc Emitter module for an LED illumination device
US9510416B2 (en) 2014-08-28 2016-11-29 Ketra, Inc. LED illumination device and method for accurately controlling the intensity and color point of the illumination device over time
US9392660B2 (en) 2014-08-28 2016-07-12 Ketra, Inc. LED illumination device and calibration method for accurately characterizing the emission LEDs and photodetector(s) included within the LED illumination device
CN104407992B (zh) * 2014-12-17 2017-04-05 中国人民解放军国防科学技术大学 一种基于双端口寄存器阵列的四端口存储器
US9237612B1 (en) 2015-01-26 2016-01-12 Ketra, Inc. Illumination device and method for determining a target lumens that can be safely produced by an illumination device at a present temperature
US9485813B1 (en) 2015-01-26 2016-11-01 Ketra, Inc. Illumination device and method for avoiding an over-power or over-current condition in a power converter
US9237623B1 (en) 2015-01-26 2016-01-12 Ketra, Inc. Illumination device and method for determining a maximum lumens that can be safely produced by the illumination device to achieve a target chromaticity
CN105159842B (zh) * 2015-08-31 2018-03-27 浪潮(北京)电子信息产业有限公司 存储系统数据写时拷贝的处理方法和处理装置
CN108780593A (zh) 2016-04-11 2018-11-09 创科(澳门离岸商业服务)有限公司 模块化车库开门器
JP6880402B2 (ja) * 2017-05-10 2021-06-02 富士通株式会社 メモリアクセス制御装置及びその制御方法
CN107678992B (zh) * 2017-11-08 2019-10-11 四川虹美智能科技有限公司 一种通信装置及一种通信系统
CN109862553B (zh) * 2017-11-30 2022-07-12 华为技术有限公司 终端和通信方法
US10983920B2 (en) * 2018-02-08 2021-04-20 Xilinx, Inc. Customizable multi queue DMA interface
US11272599B1 (en) 2018-06-22 2022-03-08 Lutron Technology Company Llc Calibration procedure for a light-emitting diode light source
CN111027284B (zh) * 2019-12-05 2023-08-25 集奥聚合(北京)人工智能科技有限公司 一种基于数据灵活接入标准化输出方法
US11218396B2 (en) 2019-12-23 2022-01-04 Seagate Technology Llc Port-to-port network routing using a storage device
CN113504893B (zh) * 2021-07-23 2022-08-26 河南亿秒电子科技有限公司 一种智能芯片架构和高效处理数据的方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1394431A (en) * 1971-06-24 1975-05-14 Plessey Co Ltd Multiprocessor data processing system
DE3276916D1 (en) * 1981-09-18 1987-09-10 Rovsing As Christian Multiprocessor computer system
US4564782A (en) * 1983-09-02 1986-01-14 Murata Manufacturing Co., Ltd. Ceramic filter using multiple thin piezoelectric layers
JPH0760595B2 (ja) * 1988-01-12 1995-06-28 日本電気株式会社 半導体メモリ
US5214760A (en) * 1988-08-26 1993-05-25 Tektronix, Inc. Adaptable multiple port data buffer
US5237670A (en) * 1989-01-30 1993-08-17 Alantec, Inc. Method and apparatus for data transfer between source and destination modules
US5130981A (en) * 1989-03-22 1992-07-14 Hewlett-Packard Company Three port random access memory in a network bridge
JPH04257048A (ja) * 1991-02-12 1992-09-11 Mitsubishi Electric Corp デュアルポートメモリ
US5442708A (en) * 1993-03-09 1995-08-15 Uunet Technologies, Inc. Computer network encryption/decryption device
GB2278698B (en) * 1993-05-05 1997-09-03 Hewlett Packard Co Multi-ported data storage device with improved cell stability
US5737569A (en) * 1993-06-30 1998-04-07 Intel Corporation Multiport high speed memory having contention arbitration capability without standby delay
US5440523A (en) * 1993-08-19 1995-08-08 Multimedia Communications, Inc. Multiple-port shared memory interface and associated method
JPH07225727A (ja) * 1994-02-14 1995-08-22 Fujitsu Ltd 計算機システム
JPH08212132A (ja) * 1995-02-07 1996-08-20 Mitsubishi Electric Corp 記憶装置
US5793996A (en) * 1995-05-03 1998-08-11 Apple Computer, Inc. Bridge for interconnecting a computer system bus, an expansion bus and a video frame buffer
US5659518A (en) * 1995-05-22 1997-08-19 Micron Technology, Inc. Multi-port memory with multiple function access cycles and transfers with simultaneous random access
US5734847A (en) * 1995-06-15 1998-03-31 Intel Corporation Method and apparatus for enabling intelligent I/O subsystems using PCI I/O devices
US5875470A (en) * 1995-09-28 1999-02-23 International Business Machines Corporation Multi-port multiple-simultaneous-access DRAM chip
KR0150072B1 (ko) * 1995-11-30 1998-10-15 양승택 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치
US5748921A (en) * 1995-12-11 1998-05-05 Advanced Micro Devices, Inc. Computer system including a plurality of multimedia devices each having a high-speed memory data channel for accessing system memory
US5799209A (en) * 1995-12-29 1998-08-25 Chatter; Mukesh Multi-port internally cached DRAM system utilizing independent serial interfaces and buffers arbitratively connected under a dynamic configuration
US5828623A (en) * 1996-02-23 1998-10-27 Integrated Device Technology, Inc. Parallel write logic for multi-port memory arrays

Also Published As

Publication number Publication date
WO1999016200A2 (en) 1999-04-01
EP1047994A2 (de) 2000-11-02
WO1999016200A3 (en) 2000-07-27
ATE392664T1 (de) 2008-05-15
AU9665798A (en) 1999-04-12
KR20010015608A (ko) 2001-02-26
CN1279785A (zh) 2001-01-10
DE69839374D1 (de) 2008-05-29
JP2001517844A (ja) 2001-10-09
CN1154934C (zh) 2004-06-23
US6067595A (en) 2000-05-23
EP1047994A4 (de) 2002-07-24
EP1047994B1 (de) 2008-04-16

Similar Documents

Publication Publication Date Title
DE69839374T2 (de) Multitorspeicher verwendende intelligente datenbusschnittstelle
US6041397A (en) Efficient transmission buffer management system
DE60207177T2 (de) System, welches zwei oder mehr Paketschnittstellen, einen Schalter, einen gemeinsamen Paket-DMA (Direct Memory Access)-Schaltkreis sowie einen L2 (Level 2) Cache aufweist
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE602004012106T2 (de) Multikanal-DMA mit gemeinsamem FIFO-Puffer
US5446915A (en) Parallel processing system virtual connection method and apparatus with protection and flow control
DE60202926T2 (de) Multicomputersystem mit konfigurierbaren Schnittstellen für flexible Systemkonfigurationen
US7496699B2 (en) DMA descriptor queue read and cache write pointer arrangement
DE60006842T2 (de) Multiprozessor-Node-Controller-Schaltung und Verfahren
US5522045A (en) Method for updating value in distributed shared virtual memory among interconnected computer nodes having page table with minimal processor involvement
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
US5574944A (en) System for accessing distributed memory by breaking each accepted access request into series of instructions by using sets of parameters defined as logical channel context
DE60032357T2 (de) Verbindungsarchitektur um minderbandbreitige verbindungen über eine hoch-bandbreitige verkettung zu verwalten
US5768618A (en) Method for performing sequence of actions in device connected to computer in response to specified values being written into snooped sub portions of address space
US6189062B1 (en) Apparatus and method for address translation in bus bridge devices
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus
DE10211054A1 (de) USB-Hostcontroller
DE112015006516T5 (de) BUS-Einrichtung-Funktion-Adressraumabbildung
US5574869A (en) Bus bridge circuit having configuration space enable register for controlling transition between various modes by writing the bridge identifier into CSE register
Ang et al. StarT-Voyager: A flexible platform for exploring scalable SMP issues
DE10234990A1 (de) Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
DE19908618A1 (de) Gemeinsam genutzter Hochleistungscachespeicher
DE60314641T2 (de) Verfahren, system und programm zur konfiguration von teilnehmern auf einem bus fürein-/ausgabeoperationen
EP0566421A1 (de) Doppeladressieranordnung für Kommunikationsschnittstellenarchitektur

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: LINDENSTRUTH, VOLKER, 69120 HEIDELBERG, DE

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

Owner name: JASPIN TRANSFER BV, LLC, WILMINGTON, DEL., US