DE69936225T2 - Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung - Google Patents

Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung Download PDF

Info

Publication number
DE69936225T2
DE69936225T2 DE69936225T DE69936225T DE69936225T2 DE 69936225 T2 DE69936225 T2 DE 69936225T2 DE 69936225 T DE69936225 T DE 69936225T DE 69936225 T DE69936225 T DE 69936225T DE 69936225 T2 DE69936225 T2 DE 69936225T2
Authority
DE
Germany
Prior art keywords
serial
command
port
data
ports
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
DE69936225T
Other languages
English (en)
Other versions
DE69936225D1 (de
Inventor
Paul S. Chandler LEVY
Judson Alan Scottsdale LEHMAN
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.)
NXP BV
Original Assignee
Koninklijke Philips Electronics NV
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22745869&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69936225(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Application granted granted Critical
Publication of DE69936225D1 publication Critical patent/DE69936225D1/de
Publication of DE69936225T2 publication Critical patent/DE69936225T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Description

  • Gebiet der Erfindung
  • Die Erfindung bezieht sich allgemein auf den Entwurf integrierter Schaltkreise und deren Architektur, und insbesondere auf eine Schnittstelle zur Verbindung mehrerer Funktionsblöcke untereinander in einem integrierten Schaltkreis.
  • Hintergrund der Erfindung
  • Computertechnologie hat sich über die letzten paar Jahrzehnte besonders stark weiterentwickelt. Während Computer früher ganze Räume ausfüllten und unter Verwendung individuell zusammengestellter Transistoren und/oder Vakuumröhren zur Durchführung verschiedener logischer Operationen aufgebaut wurden, haben Innovationen bei der Halbleiterherstellung ermöglicht, mehrere Transistoren oder logische Gates zusammen in einem einzigen integrierten Schaltkreis oder Chip zu integrieren, um eine größere Anzahl von logischen Funktionen durchführen zu können. Die Größe und Anzahl von logischen Gates die gemeinsam in einem Chip integriert werden können, vergrößert sich fortlaufend und während frühere Chips höchstens ein paar hundert Gates hatten, sind modernere Chips entwickelt worden, die über wesentlich mehr und im Bereich von einigen Millionen angesiedelte Anzahl von Gates verfügen. Darüber hinaus haben Fortschritte bei der Integrierung ermöglicht, welche zu einer anderen Zeit dadurch implementiert worden sind, dass mehrere Chips in einem einzigen Chip implementiert worden sind.
  • Da Chipentwurf immer komplexer wird, wird der Entwurf- und Entwicklungsprozess immer teurer und zeitintensiver. Um dieses Problem abzumildern, sind Design-Tools entwickelt worden, die es Entwicklern gestatten, maßgeschneiderte Chips durch einen Zusammenbau kleinerer, generischer Komponenten herzustellen, welche Basisfunktionen übernehmen, die für den Entwurf erforderlich sind. Durch die Verwendung von generischen Komponenten wird die zum Entwurf notwendige Zeit und der dafür notwendige Aufwand reduziert, da Schaltkrei se nicht Gate für Gate entworfen werden müssen. Darüber hinaus können die Komponenten gewöhnlicher Weise vor dem Zusammenbau in einem bestimmten Entwurf getestet und optimiert werden, so dass der Testaufwand, welcher dem Entwickler aufgetragen ist, substanziell reduziert wird.
  • Die Möglichkeit, eine größere Anzahl von Gates auf einem Chip zu integrieren, hat auch ein Wachsen der Komplexität von generischen Komponenten gestattet, welche von Design-Tools verwendet werden. Während frühere generische Komponenten Basisfunktionen replizierten, wie z. B. Multiplexer, Register, Zähler usw., replizieren fortgeschrittene Komponenten typischerweise Funktionen höherer Ebenen, wie die von Mikroprozessoren, Speicher-Steuereinheiten, Kommunikations-Schnittstellen-Steuereinheiten, usw. Diese fortgeschritteneren Komponenten werden hierin insofern als Funktionsblöcke bezeichnet, als sie dazu ausgebildet sind, eine oder mehrere High-Level-Funktionen in einem Entwurf durchzuführen. Funktionsblöcke sind typischerweise insofern portabel, als sie in verschiedenen Entwürfen wiederverwendbar sind. Darüber hinaus sind sie oftmals autonom und können deshalb unabhängig und gleichzeitig mit anderen Komponenten in einem Entwurf operieren.
  • Eine Schwierigkeit, die mit der Verwendung von Komponenten wie Funktionsblöcken verbunden ist, ergibt sich aus der Notwendigkeit für verschiedene Komponenten in einem Entwurf, miteinander zu kommunizieren und Informationen untereinander auszutauschen. Jede Komponente verfügt typischerweise über eine oder mehrere Schnittstellen, die für diese definiert sind und über die die Kommunikation mit anderen Komponenten oder mit anderen, außerhalb eines Chips angeordneten Bauteilen stattfindet. Diese Schnittstellen sind typischerweise über ein Anschlusssystem, wie ein Bus, miteinander verbunden, der die Kommunikation zwischen den verschiedenen Komponenten unterstützt.
  • Zum Beispiel besteht eine gleichzeitige Art und Weise, mehrere Komponenten miteinander zu verbinden darin, einen Multi-Drop-Bus zu verwenden. Mit einem Multi-Drop-Bus ist jede Komponente mit einem gemeinsamen Satz Leitungen verbunden, so dass jede Komponente dazu in der Lage ist, jede Kommunikation, welche über den Bus geleitet wird, zu empfangen. Informationen, welche über einen Bus geleitet werden, werden gewöhnlicher Weise mit der Verwendung ei ner bestimmten Adresse oder eines anderen Identifizierers assoziiert, so dass nur die Komponente, die wirklich das Ziel der Information ist, die Information empfängt und verarbeitet. Die anderen Komponenten, die nicht als Ziel der Information bestimmt sind, ignorieren die Information.
  • Typischerweise ist ein Bus parallel und umfasst mehrere Leitungen, sodass mehrere Informations-Bits gleichzeitig übertragen werden können. Des Weiteren werden sowohl Steuerinformationen, welche von einer Komponente dazu verwendet werden, die Operation einer anderen Komponente zu steuern, und Daten, welche die Informationen, die von den Komponenten verarbeitet werden, darstellen, typischerweise über die gleichen Leitungen in dem Bus geleitet. Beispielsweise ist die Periphere-Komponenten-Anschluss-Architektur (PCI) eine Architektur, welche in integrierten Multifunktionsblöcken in einem Chip verwendet wird, welche gewöhnlicher Weise eher auf der Baugruppenebene verwendet wird, um einen Mikroprozessor mit verschiedenen peripheren Geräten in einem Computer zu verbinden.
  • Busartige Verbindungen leiden jedoch unter einer Anzahl von Nachteilen, welche ihre Nützlichkeit beim Verbinden mehrerer Funktionsblöcke in einem Chip limitieren. Zunächst benötigen Parallel-Bus-Architekturen eine relativ große Anzahl von Leitungen oder Drähten, welche zwischen den verschiedenen Komponenten, die an den Bus angeschlossen sind, verlaufen. Routing-Drähte zwischen den Komponenten können wertvollen Platz in einem Entwurf belegen und die Anzahl von Komponenten, die in dem Entwurf untergebracht werden können, reduzieren. Z. B. übertragen viele Parallel-Busse Daten in 32- oder 64-Bit-Worten und benötigen mindestens 32 oder 64 Leitungen, die zu jeder Komponente geroutet sind, nicht gezählt jegliche zusätzlichen Steuersignale, die benötigt werden könnten.
  • Zweitens kann typischerweise nur eine Komponente zur gleichen Zeit eine Information über einen parallelen Bus übertragen. Aus diesem Grund müssen Komponenten, welche eine Information übertragen wollen, typischerweise warten, bis die Komponente das Übertragen ihrer Information beendet hat, oder alternativ dazu muss jede Komponente den Bus teilen und überträgt Informations-Teilstücke eins nach dem anderen, wodurch die Übertragungsrate für alle Komponenten sinkt. Auch teilen sich Steuer-Informationen und Daten typischerweise die gleichen Leitungen in einem parallelen Bus, und aus diesem Grund müssen Steuer-Informationen, die anderenfalls möglicherweise in einer bestimmten Komponente verarbeitet werden könnten, ohne den Zugang zu dem Bus zu benötigen, warten, bis eine Datenübertragung, die vor der gewünschten Steuer-Operation gestartet worden ist, beendet worden ist.
  • Drittens kann die Gesamtgeschwindigkeit eines parallelen Busses limitiert sein und dadurch die potentielle Bandbreite für Informationen, die zwischen den Komponenten übertragen werden, begrenzen. Die Bandbreite in einem parallelen Bus wird typischerweise durch Vergrößerung der Breite des Busses oder Erhöhung der Taktgeschwindigkeit des Busses verbessert. Eine Vergrößerung der Breite des Busses fügt jedoch zusätzliche Leitungen dem Bus hinzu, wodurch die Routing-Dichte des Entwurfs erhöht wird. Die Erhöhung der Taktgeschwindigkeit, auf der anderen Seite, kann die Anzahl der Komponenten, die an dem Bus angeschlossen sein können begrenzen, weil die Anzahl der Komponenten die Größe der Ladungs- und Routing-Störeinflüsse des Busses beeinflussen kann, von denen beide die zulässige Taktgeschwindigkeit begrenzen.
  • US-Patent 5,513,369 offenbart ein integriertes Schaltkreisbauteil, welches über Sternkoppler erster und zweiter Ebene verfügt. Der Sternkoppler erster Ebene umfasst eine Anzahl von Eingängen und korrespondierende Ausgängen und verknüpft alle Informationen die an seinen Eingängen empfangen wurden über logische ODER, um ein erstes Ausgangs-Signal zu generieren. Der Stern-Koppler zweiter Ebene verfügt ebenfalls über eine Anzahl von Eingängen und korrespondierende Ausgänge, wobei einer der Eingänge zu dem Stern-Koppler zweiter Ebene so verbunden ist, dass er das erste Ausgangs-Signal empfängt. Der Stern-Koppler zweiter Ebene verknüpft alle an seinen Eingängen empfangen Signale einschließlich das erste Ausgangssignal über logische ODER, um ein zweites Ausgangssignal, welches an jedem seiner Ausgänge zur Verfügung gestellt ist, zu generieren. Ein Schalter oder Multiplexer dirigiert entweder das erste oder zweite Ausgangssignal zu jedem der Ausgänge des Stern-Kopplers erster Ebene. Innerhalb eines solchen Systems werden die Verbindungen von Eingangssignalen mit Ausgängen in Übereinstimmung mit den Konventionen von Stern-Kopplern eingeschränkt Aus diesem Grund besteht ein signifikantes Bedürfnis auf diesem Gebiet für eine verbesserte Art und Weise der Verbindung von Komponenten, wie Funktionsblöcke und dergleichen in einem Integrierten-Schaltkreis-Entwurf und insbesondere für eine Art und Weise, Komponenten miteinander zu verbinden, welche flexibler, kompakter, schneller, wiederverwendbarer und expansibeler als bei konventionellen Entwürfen ist.
  • Zusammenfassung der Erfindung
  • Die Erfindung ist auf diese und andere Probleme gerichtet, welche mit dem Stand der Technik verbunden sind, indem eine Schaltungsanordnung und ein Verfahren, das mehrere Funktionsblöcke innerhalb eines Integrierten-Schaltkreis-Bauteils über einen gleichzeitigen seriellen Anschluss verbindet, der dazu in der Lage ist, separate serielle Kommando-, Daten- und Taktsignale zwischen Funktionsblöcken in dem Bauteil zu routen.
  • Gemäß einem ersten Aspekt der Erfindung wird eine Schaltungsanordnung zur Verbindung einer Vielzahl von Funktionsblöcken miteinander in einem Integrierten-Schaltkreis-Bauteil zur Verfügung gestellt, wobei die Funktionsblöcke innerhalb eines Integrierten-Schaltkreis-Bauteils angeordnet sind, wobei die Schaltungsanordnung umfasst:
    • (a) eine Vielzahl von seriellen Anschlüssen (40, 42, 44, 46, 48), von denen jeder serielle Anschluss einem Funktionsblock zugeordnet und mit diesem über eine Punkt-zu-Punkt-Verbindung (50, 52, 54, 56, 58) verbunden ist, um mit diesen eine externe Kommunikation zuzulassen, und jeder serielle Anschluss getrennte serielle Kommando-, Daten- und Taktanschlüsse einschließt; und
    • (b) eine Schnittstellen-Steuereinheit (14), die mit jedem der seriellen Anschlüsse (40, 42, 44, 46, 48) verbunden ist, wobei die Schnittstellen-Steuereinheit ausgebildet ist, gezielt und gleichzeitig zumindest zwei der seriellen Anschlüsse miteinander zu verbinden, um einen logischen Kommunikationskanal zwischen den den seriellen Anschlüssen zugeordneten Funktionsblöcken zu definieren.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren zur Verbindung einer Vielzahl von Funktionsblöcken in einem Integrierten-Schaltkreis-Bauteil, wie in dem unabhängigen Anspruch 25 definiert, zur Verfügung gestellt.
  • Ein gleichzeitiger serieller Anschluss gemäß der Erfindung verwendet eine Vielzahl von seriellen Anschlüssen, die selektiv miteinander durch eine Schnittstellensteuereinheit gekoppelt sind, um einen oder mehrere logische Kommunikationskanäle zwischen zwei oder mehreren der seriellen Anschlüsse zu bilden. Die logischen Kommunikationskanäle wirken ihrem Wesen nach als Punkt-zu-Punkt serielle Verbindungen zwischen den Funktionsblöcken, so dass direkte Kommunikation zwischen logisch verbundenen Funktionsblöcken stattfinden kann.
  • Durch die Verwendung von seriellen Verbindungen wird die Anzahl von Leitungen, welche von und zu individuellen Funktionsblöcken geroutet ist, reduziert, wodurch die Integration von Funktionsblöcken in einen Entwurf vereinfacht wird und der Routing-Stau, der mit der Kommunikation zwischen Blöcken einhergeht, vermindert wird. Zusätzlich kann durch die Kommunikation über separate serielle Kommando-, Daten- und Taktsignale, Hochgeschwindigkeitsdatendurchgang unterstützt werden. Des Weiteren können, wenn mehr als ein logischer Kommunikationskanal durch eine Schnittstellensteuereinheit gemäß der Erfindung unterstützt wird, gleichzeitig mehrere Kommunikationssitzungen stattfinden, wodurch der Gesamtdatendurchsatz weiter vergrößert wird.
  • Ein weiterer Vorteil eines gleichzeitigen seriellen Anschlusses, welcher Teil der Erfindung ist, besteht darin, dass der Entwurf von Integrierten-Schaltkreis-Bauteilen und dergleichen substantiell vereinfacht wird. Funktionsblöcke können durch das Hinzufügen eines seriellen Anschlusses zusammengefügt werden, wobei jeder Funktionsblock mit einem einer Vielzahl serieller Anschlüsse in dem seriellen Anschluss durch das separate Routen von seriellen Kommando, Daten- oder Takt-Drähten zwischen ihnen verbunden. Entwurf und Entwicklung werden vereinfacht, da das Hinzufügen neuer Funktionsblöcke zu einem Entwurf typischerweise nur den Entwurf des seriellen Anschlusses und speziell die Schnittstellensteuereinheit, die darin verwendet wird, beeinflusst. Des Weiteren werden modulares Testen und Prüfen insofern vereinfacht, als dass die Kommunikationen zwischen den Funktionsblöcken zunächst durch den seriellen Anschluss verläuft und die Notwendigkeit des Testens und Prüfens individueller Anschlüsse zwischen den Funktionsblöcken oft reduziert oder beseitigt wird.
  • Weitere Ausführungsformen der Erfindung werden in den angehängten abhängigen Ansprüchen spezifiziert.
  • Diese und andere Vorteile und Eigenschaften, welche die Erfindung kennzeichnen, sind in den angehängten Ansprüchen weiter ausgeführt und bilden einen weiteren Teil hiervon. Zum besseren Verständnis der Erfindung und der Vorteile und Ziele, welche durch deren Verwendung erlangt werden, soll auf die Zeichnungen und die zugehörige Beschreibung Bezug genommen werden, in welcher eine beispielhafte Ausführungsvariante der Erfindung beschrieben ist.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm einer Schaltungsanordnung für ein Integrierter-Schaltkreis-Bauteil gemäß der Erfindung.
  • 2 ist ein Blockdiagramm der Schnittstellensteuereinheit der Schaltungsanordnung aus 1.
  • 3 ist ein Blockdiagramm einer Dreikanalimplementierung der Schnittstellensteuereinheit aus 2.
  • 4 ist ein Flussdiagramm, welches die Sequenz der Operationen darstellt, die von der Schnittstellensteuereinheit gemäß 2 während einer System-Zurücksetzung durchgeführt wird.
  • 5 ist ein Flussdiagramm, welches eine Sequenz von Operationen darstellt, die in der Schaltungsanordnung gemäß 1 durchgeführt wird, wenn ein logischer Kommunikationskanal aufgebaut wird.
  • 6 ist ein Flussdiagramm, welches eine Sequenz von Operationen darstellt, die durchgeführt wird, wenn ein logischer Kommunikationskanal in einer Schaltungsanordnung gemäß 1 entlassen wird.
  • 7A, 7B u. 7C sind Timing-Diagramme, welche jeweils exemplarische Datenstromübertragungen zwischen zwei Ausgängen während des Aufbaus eines logischen Kanals, der Verarbeitung einer Leseanforderung über den aufgebauten Kanal und der Entlassung des logischen Kanals darstellen.
  • 8 ist ein Flussdiagramm, welches eine Sequenz von Operationen darstellt, die während eines implizit vorgegebenen Präemtions-Verfahrens für die Schaltungsanordnung gemäß 1 durchgeführt wird.
  • 9 ist ein Flussschaltbild, welches eine Sequenz von Operationen, die während eines explizit vorgegebenen Präemtions-Verfahrens für die Schaltungsanordnung gemäß 1 durchgeführt wird, darstellt.
  • 10 ist ein Blockdiagramm, der primären Logik-Komponenten in einer Funktionsblock-Schaltungsanordnung gemäß der Erfindung.
  • 11 ist ein Blockdiagramm eines Entwicklungsumgebungs-Datenverarbeitungssystems gemäß der Erfindung.
  • 12 ist ein Blockdiagramm der Systemsteuereinheit des Entwicklungsumgebungs-Datenverarbeitungssystems gemäß 11.
  • 13 ist ein Blockdiagramm eines Set-Top-Box-Datenverarbeitungssystems gemäß der Erfindung.
  • 14 ist ein Blockdiagramm der Set-Top-Box-Steuereinheit in dem Set-Top-Box-Datenverarbeitungssystem gemäß 13.
  • Detaillierte Beschreibung
  • Die dargestellten Ausführungsvarianten der Erfindung beruhen auf einem gleichzeitigen seriellen Anschluss zur Verbindung einer Vielzahl von Funktionsblöcken untereinander in einer Integrierter-Schaltkreis-Bauteil-Schaltungsanordnung. Ein gleichzeitiger serieller Anschluss gemäß der Erfindung verfügt über eine Vielzahl von seriellen Anschlüssen unter der Kontrolle einer Schnittstellensteuereinheit und ist über eine Vielzahl von seriellen direkten Punkt-zu-Punkt-Verbindungen mit verschiedenen Funktionsblöcken in der Schaltungsanordnung verbunden. Die Schnittstellensteuereinheit verbindet serielle Anschlüsse selektiv um einen oder mehrere logische Kommunikationskanäle zu bilden, über welche eine Information von den Funktionsblöcken gesendet wird, welche mit den zugeordneten seriellen Anschlüssen verbunden sind.
  • Als Funktionsblock wird jede logische Schaltung angesehen, welche dazu ausgebildet ist, eine oder mehrere High-Level-Funktionen in einem Integrierten-Schaltkreis-Entwurf durchzuführen.
  • Die meisten Funktionsblöcke sind insofern „portabel", als sie in verschiedenen Entwürfen wiederverwendbar sind. Darüber hinaus sind die meisten Funktionsblöcke auch „autonom" und dementsprechend in der Lage, unabhängig und gleichzeitig mit anderen Komponenten in einem Entwurf zu operieren.
  • Beispiele von Funktionsblöcken sind Prozessoren, Steuereinheiten, externe Schnittstellen, Kodierer, Dekodierer, Signalprozessoren und jede andere analoge und/oder digitale Schaltung, welche eine bestimmte Funktion oder einen Satz Funktionen ausführt, die Erfindung ist aber sind nicht auf diese beschränkt. Oft sind Funktionsblöcke entworfen, entwickelt und geprüft als unabhängige Einheiten und können sogar lieber von Drittanbietern, als von den Entwicklern des gesamten Integrierten-Schaltkreis-Bauteils erhalten werden.
  • Die Integration von mehreren Funktionsblöcken über einen gleichzeitigen seriellen Anschluss entsprechend der Erfindung ist typischerweise in einer Schaltungsanordnung für einen Prozessor oder andere programmierbare Integrierter-Schaltkreis-Bauteile implementiert und es sollte gewürdigt werden, dass eine große Bandbreite von programmierbaren Bauteilen die verschiedenen hierin offenbarten Varianten verwenden kann. Darüber hinaus werden Integrierter-Schaltkreis-Bauteile, wie in dem Fachgebiet bekannt ist, typischerweise unter Verwendung einer oder mehrerer Computerdateien entworfen und hergestellt, welche im Weiteren als Hardware-Definitionsprogramme bezeichnet werden, die das Layout der Schaltungsanordnung auf dem Bauteil bestimmen. Die Programme werden typischerweise von einem Design-Tool generiert und werden deswegen während des Herstellungsprozesses verwendet, um Layoutmasken zu kreie ren, die die Schaltungsanordnung bestimmen und auf Halbleiter-Wafer aufgetragen werden. Typischerweise werden die Programme in einem vorbestimmten Format zur Verfügung gestellt, welche eine Hardware-Definitionssprache (HDL) sowie VHDL, Verilog, EDIF etc. benutzt. Während die Erfindung im Zusammenhang mit Schaltungsanordnungen beschrieben wurde und im Folgenden beschrieben wird, welche in voll funktionsfähigen Integrierter-Schaltkreis-Bauteilen implementiert sind und mit Datenverarbeitungssystemen, welche derartige Bauteile verwenden, beschrieben wird, werden Fachleute begrüßen, dass die Schaltungsanordnungen gemäß der Erfindung, als Programmprodukte in einer großen Bandbreite von Ausführungsformen zur Verfügung gestellt werden können, und dass die Erfindung gleichermaßen anwendbar ist, unabhängig von dem speziellen Typ von Signal-enthaltendem Medium, welches tatsächlich verwendet wird, um die Verteilung durchzuführen. Beispiele für Signal-enthaltende Medien umfassen, aber sind nicht auf diese beschränkt, aufnehmende Medien, wie z. B. Kurzzeit- oder Langzeit-Speichergeräte, Floppy-Disks, Hard-Disk-Drives, CD-ROMs und DVDs, unter anderen, und Übertragungstyp-Medien wie digitale und analoge Kommunikations-Links.
  • Im Folgenden wird auf die Zeichnungen näher eingegangen, wobei gleiche Bezugszeichen gleiche Teile überall bei den verschiedensten Darstellungen kennzeichnen, 1 stellt eine repräsentative Integrierter-Schaltkreis-Bauteil-Schaltungsanordnung 10 gemäß der Erfindung dar. Ein gleichzeitiger serieller Anschluss 12, welcher über eine Schnittstellensteuereinheit 14 verfügt, wird dazu verwendet, einen Host 20 mit einer Vielzahl von Funktionsblöcken 22, 24, 26 und 28 (auch gekennzeichnet als FB 1 ... n) zu verbinden. Host 20 kann auch als Funktionsblock angesehen werden, der zusätzlich zu anderen Hochlevel-Funktionsweisen, wofür er definiert ist, weitere Logikschaltkreise enthält, um als ein Masterbauteil für den gleichzeitigen seriellen Anschluss 12 zu fungieren.
  • Jeder Funktionsblock 20, 22, 24, 26 und 28 verfügt über eine zugehörige Anschlussschnittstelle 30, 32, 34, 26 und 38, welche mit einer Vielzahl von seriellen Anschlüssen 40, 42, 44, 46 und 48 (auch gekennzeichnet als Anschluss 0 ... n) über direkte serielle Punkt-zu-Punkt-Verbindungen 50, 52, 54, 56 und 58 verbunden ist. Jeder serielle Anschluss 40 bis 48 wird von der Schnittstellensteuereinheit 14 gesteuert, um selektiv einen oder mehrere logische Kommunikationska näle zwischen zwei oder mehreren Funktionsböcken 20 bis 28 zu bilden. Des Weiteren fungiert Host 20 als Master für Anschluss 12, und Anschluss 40 ist der Masteranschluss für den Anschluss, über welchen Initialisierungsinformationen durch den Host zur Verfügung gestellt werden.
  • Jede serielle Verbindung 50 bis 58 verfügt über separate serielle Kommando-, Daten- und Taktleitungen. Die seriellen Kommandoleitungen werden dazu verwendet, seriell kodierte Kommando- und Steuerinformationen zwischen den Funktionsblocks oder zwischen der Schnittstellensteuereinheit und einem Funktionsblock zu überfragen. Die seriellen Datenleitungen werden dazu verwendet, seriell kodierte Daten zwischen Funktionsblöcken oder zwischen der Schnittstellensteuereinheit und einem Funktionsblock zu übertragen, wobei die Datenleitungen des Weiteren dazu verwendet werden, zusätzliche Informationen für die einzelnen Kommandos, welche über die seriellen Kommandoleitungen übertragen worden sind, zur Verfügung zu stellen, wie nachfolgend detaillierter ausgeführt wird. Die seriellen Daten werden von den seriellen Kommandoinformationen Daten-gerahmt.
  • Die seriellen Taktleitungen werden dazu verwendet, Taktsignale zu übertragen, um die Kommando- und Datenleitungen zu synchronisieren, wodurch ermöglicht wird, dass die Funktionsblöcke substantiell asynchron voneinander und/oder von der Schnittstellensteuereinheit arbeiten, wenn erwünscht. Alternativ dazu können die Funktionsblöcke durch das Zur-Verfügung-Stellen des gleichen Taktsignals synchronisiert werden. Die Kommando- und Datenleitungen können je nach Wunsch einheitlich oder uneinheitlich getaktet sein.
  • Jede dieser Leitungen kann auf verschiedenste Art und Weise implementiert sein. Zum Beispiel kann jede Leitung durch die Verwendung eines bidirektionalen Drahtes implementiert sein, oder ein Paar von unidirektionalen Drähten kann zur Verfügung gestellt sein, um gleichzeitige Kommunikation in beide Richtungen zwischen einem seriellen Anschluss und seinem zugehörigen Funktionsblock zu unterstützen. Zusätzlich können Leitungen mit Single-Edged-Drähten oder Differentialpaare von Drähten implementiert sein, um die Leistung zu verbessern. In der Implementierung, welche im Nachfolgenden diskutiert wird, z. B. wenn differentiale Drähte-Paare für Kommandoeingangs-, Dateneingangs- und Taktein gangssignale zur Verfügung gestellt werden (von einem Funktionsblock zu einem seriellen Anschluss), als auch für jeden der Kommandoausgangs- und Taktausgangssignale (von einem seriellen Anschluss zu einem Funktionsblock), werden insgesamt nur 12 Leitungen für jede serielle Verbindung 50 bis 58 benötigt.
  • Zusätzlich, wie durch Pfeil 60 dargestellt, kann jeder Funktionsblock, muss aber nicht, einen externen Eingang und/oder Ausgang für das Integrierte-Schaltkreis-Bauteil gemäß dem speziellen Entwurf des Funktionsblocks zur Verfügung stellen.
  • Wie in 2 dargestellt, verfügt Schnittstellensteuereinheit 14 über eine Matrixsteuereinheit 64, welche mit einer Anschluss-Matrix 66 verbunden ist. Die Matrixsteuereinheit ist auch mit einem Speicherbauteil 67 verbunden, in welchem Entscheidungsdaten, welche ein Entscheidungsschema für die Steuereinheit definieren, gespeichert sind. Ein Satz von Matrixsteuerleitungen 68 wird von der Steuereinheit 64 ausgegeben um die Konfigurierung der Matrix 66, basierend auf dem definierten Entscheidungsschema, für die Steuereinheit zu steuern. Des Weiteren empfängt Matrix 66 die Kommando/Daten/Takt-Signale von jedem der seriellen Anschlüsse 40, 42, 44, 46 und 48, welche von den Leitungen 70, 72, 74, 76 und 78 entsprechend gebildet werden. Die seriellen Leitungen für jeden seriellen Anschluss werden auch der Matrixsteuereinheit 64 zur Verfügung gestellt, damit die Steuereinheit die Kommandos, welche hierdurch über die entsprechenden seriellen Leitungen von einem speziellen Anschluss weitergeleitet wurden, dekodiert, so dass die Matrixsteuereinheit die Matrix wie notwendig rekonfigurieren kann, um den (die) gewünschten logischen Kommunikationskanal(e) zwischen den gewählten Anschlüssen aufzubauen.
  • Die Konfigurierung sowohl der Matrixsteuereinheit 64 und des Matrixanschlusses 66 kann abhängig von der gewünschten Konvektivität zwischen den einzelnen Funktionsblöcken signifikant variieren. Jegliche Anzahl von bekannten Schaltungsmatriximplementierungen kann verwendet werden, einschlossen Cross-Bar-Schaltungen, Tree-Structures usw. Des Weiteren kann ein Matrixanschluss entwickelt werden, um jede Anzahl gleichzeitiger logischer Kommunikationskanäle zu unterstützen. Des Weiteren kann für einige Implementierungen wünschenswert sein, die Eingangs- und Ausgangsleitungen zwischen Anschlüssen zu teilen, um einem Anschluss zu ermöglichen, Informationen von einem Kanal zu empfangen, während Informationen über einen anderen Kanal gesendet werden. Zum Beispiel stellt 3 eine passende Implementierung von Anschluss-Matrix 66 als einen Dreikanal-Cross-Bar-Anschluss zur Verbindung fünf serieller Anschlüsse 40 bis 48 (Anschlüsse 0 ... 4) dar. Um Matrix 66 zu steuern, verfügt die Matrixsteuereinheit 64 über drei logische Blöcke: einen Route-Kommando- und Steuerblock 80, einen Route-Anforderungsblock 82 und einen Kanalmatrixsteuerblock 84.
  • Matrixanschluss 66 verfügt über drei Kanäle 86, 88, 90, welche darin festgelegt sind, um selektiv die Anschlüsse 40 bis 48 zu verbinden. Aus illustrativen Gründen wird jeder der Anschlüsse 40 bis 48 in zwei Positionen in der Figur dargestellt, wobei die linke Darstellung den Anschluss in einem „Initiator"- oder Modus und und die rechte Darstellung den Anschluss in einen Empfangs- oder Zielmodus darstellt.
  • Jeder der Anschlüsse 40 bis 48 ist mit jedem der Kanäle 86 bis 90 durch ein zugehöriges Paar von Routern verbunden. Für die Kanäle 88 und 90 werden gleichsam konfigurierte Router 96, 98 und 100, 102 verwendet. In der dargestellten Ausführungsvariante ist jeder Kanal bidirektional und jeder Router 92 bis 102 fungiert dementsprechend sowohl als Multiplexer, als auch als Demultiplexer, wobei die Information, welche von den Anschlüssen zu dem Kanal weitergeleitet werden gemultiplext und die Informationen, welche von einem Kanal zu den Anschlüssen geleitet werden, demultiplext werden.
  • Es ist anzumerken, dass in der dargestellten Implementierung jeder Anschluss mit jedem Kanal verbunden und jeder Kanal bidirektional ist. Des Weiteren ist es wünschenswert, den Anschluss mehrerer Empfänger an eine gegebene Quelle zu gestatten. Dementsprechend stellt die dargestellte Implementierung maximale Konvektivität dar, da jede Kombination von Anschlüssen miteinander verbunden werden kann und sogar die Verbindung von einem Anschluss zu sich selbst unterstützt wird.
  • In einer anderen Implementierung kann es jedoch wünschenswert sein, den Routing-Schaltkreis in dem Matrixanschluss zu vereinfachen, z. B. durch das Weglas sen von Verbindungen zwischen bestimmten Anschlüssen und bestimmten Kanälen, durch die Konfiguration eines oder mehrerer Kanäle als unidirektionale Kanäle, durch Konfiguration eines oder mehrerer Kanäle als einfache Empfangs-(Nicht-Broadcast)-Kanäle usw. Des Weiteren kann auch wünschenswert sein, mehr oder weniger Kanäle, so wie von den Bandbreite-Anforderungen des endgültigen Entwurfs vorgegeben, zu unterstützen.
  • Logische Kommunikationskanäle können durch die Matrix 66 durch eine Kanalanforderung, welche von einem oder mehreren der Anschlüsse 40 bis 48 erhalten worden ist, aufgebaut werden. Diese Kanalanforderungen werden über die seriellen Kommando-Eingangsleitungen des Anschlusses zu Route-Anforderungsblock 82, wie von den Leitungen dargestellt, welche die linke Darstellung der Anschlüsse 40 bis 48 mit dem Block 82 verbinden, weitergeleitet. Block 82 arbeitet ähnlich einem Instruction-Parser, welcher das serielle Kommando in den Leitungen der Anschlüsse detektiert und die Kanalanforderungen, die hierüber übertragen worden sind, dekodiert. Die Kanalanforderungen werden daraufhin zu dem Route & Kommando-Steuerungsblock 80 weitergegeben, welcher als ein Zuteiler fungiert, der unter den Kanälen zuteilt und zuordnet und den Zugriff von Anschlüssen auf Kanäle basierend auf einem vorgegebenen Entscheidungsschema freigibt.
  • Wie durch die bidirektionale Leitung von Anschluss 40 dargestellt (Master Anschluss 0), ist Block 80 in der Lage, von einem Host dazu programmiert zu sein, jegliche Anzahl gewünschter Entscheidungsschemata, unter anderen Zeitplanprioritäten, Präemtionsregeln, Unterbrechungshandlungen, etc. zu implementieren. Alternativ dazu kann Block 80 mit einem festgesetzten Entscheidungsschemata fest verdrahtet sein und deshalb nicht die Konfigurationsdaten von dem Masteranschluss benötigen. Die Daten, welche zur Implementierung des Entscheidungsschemas notwendig sind, sind im Speicherbauteil 67 gespeichert, welches mit Block 80 verbunden ist.
  • Darüber hinaus ist wünschenswert, ein Set von Steuer- und Statusregister, welche hierin als Schnittstellensteuereinheits-Register 81 bezeichnet werden, für den Gebrauch durch Block 80 zu unterstützen. Solche Register können dazu verwendet werden, z. B. einige oder alle Services der Schnittstellensteuereinheit zu aktivieren oder zu deaktivieren, um einen oder mehrere Anschlüsse zu aktivieren oder zu deaktivieren, um explizite oder implizite Präemtions-(Unterbrechungs)-Services zu aktivieren oder zu deaktivieren und um Verbindungsstatusinformationen zurück zu einem Host zur Verfügung zu stellen. Oftmals ist wünschenswert, jedes dieser Register an einem speziellen Speicherort abzubilden, so dass ein Host (oder potentiell jeder Funktionsblock) auf die Register über Standard Read/Write-Kommandos, welche von der Schnittstelle unterstützt werden, zugreifen kann.
  • Block 80 steuert den Kanalmatrixsteuerblock 84, um einen Kanal für einen bestimmten Satz von Anschlüssen bei Empfang einer Route-Anforderung zuzuteilen, basierend auf dem vordefinierten Entscheidungsschema, welches darin programmiert ist. Kanalmatrixsteuerblock 84 kann darin implementiert sein, z. B. als eine Sequenz von Relais, die die Router 92 bis 102 steuern, um die Kanäle mit den spezifischen Anschlüssen, welche durch Block 80 identifiziert worden sind, zu verbinden, wie durch die Leitungen, welche von Block 84 zu jedem der Router 92 bis 102 verlaufen, dargestellt ist.
  • Gewürdigt werden sollte, dass die Logik und Eigenschaft der Matrixsteuereinheit 64 bis zu einem gewissen Ausmaß jedem der Blöcke 80 bis 84 zugeteilt ist. Darüber hinaus kann eine zusätzliche oder alternative Eigenschaft der Matrixsteuereinheit unterstützt werden, wie durch nachfolgende Erläuterungen klar wird.
  • Für die Schnittstellensteuereinheit gemäß 3 wird davon ausgegangen, dass mit unterschiedlichem Takt und Daten zum Anschluss-Routing und bei einer 0,2-Mikrometer-Entwurfsregel eine Taktrate von ungefähr 2,5 GHz oder mehr implementiert werden kann, wodurch eine serielle Bandbreite von ungefähr 312,5 MB/sec (ohne Overhead) pro Kanal oder mehr erreicht wird. Dementsprechend wird erwartet, dass mit einer Dreikanalmatrix eine Gesamt-Durchbruch-Bandbreite von wenigstens ungefähr 937,5 MB/sec ohne Overhead mit dieser Konfiguration ermöglicht ist.
  • In der dargestellten Implementierung werden seriell kodierte Anforderungs- und Antwortkommandos oder Pakete zwischen Funktionsblöcken und/oder zwischen einem Funktionsblock und der Schnittstellensteuereinheit weitergeleitet, um ei nen gleichzeitigen serielle Anschluss gemäß der Erfindung zu implementieren.
  • Solche Anforderungs- und Antwortkommandos können in zwei Typen klassifiziert werden, solche, welche von der Schnittstellensteuereinheit aufgenommen werden und solche, welche von einem Funktionsblock aufgenommen werden. Die Ersten hiervon, welche hierin IC-Kommandos genannt werden, werden dazu verwendet, logische Kommunikationskanäle in der Schnittstellensteuereinheit aufzubauen oder zu entlassen. Die Zweiten hiervon, die hierin als FR-Kommandos bezeichnet werden, werden dazu verwendet, Kommunikationsstatus, Datenlänge und Datenrahmeninformationen zwischen Funktionsblöcken zu kommunizieren, wie weiter unten ausführlicher erläutert wird. Jedes Kommando ist typischerweise durch ein Kommando-Token, in vieler Hinsicht gleichermaßen zu einem Opcode, identifiziert. Während jede Anzahl von Kommandos in Übereinstimmung mit der Erfindung verwendet werden kann, ist ein möglicher Satz von Kommando-Tokens, welche solch einen Kommandosatz definieren, ist in Tabelle I aufgelistet, wobei der Typ jedes Kommandos darüber hinaus indiziert ist:
    Token Typ Kommando Beschreibung
    0001 FB WRITE_ADDRESS Aufforderung zur Verschiebung von Daten von der Quelle zum Ziel
    0010 FB WRITE_DATA Datenrahmen für jedes geschriebene Datenobjekt
    0011 FB READ_REQ Aufforderung für das Ziel, Daten zur Quelle zu senden
    0100 FB LOCK_REQ Aufforderung für die Quelle zur automatischen Ansteuerung des Ziels
    0101 FB LOCK_RESP Antwort für LOCK_REQ
    0110 FB FLOW_CONTROL Gestattet dem Ziel, die Datenrate der Daten, die an es geschickt werden, zu steuern
    0111 FB/IC ERROR Anzeige eines illegalen Zielzustandes
    1000 FB/IC INT_SERV_REQ Unterbrich Aufforderung für einen Zielanschluss
    1001 FB/IC INT_SERV_RESP Antwort auf INT_SERV_REQ
    1010 FB/IC CHANNEL_REQ Aufforderung zum Aufbau eines logischen Kanals mit Ziel(en)
    1011 FB/IC CONNECT_RESP Antwort auf CHANNEL_REQ
    1100 FB/IC CHANNEL_ABORT Aufforderung zum Entlassen aller aktiven Kanäle für den Anschluss
    1101 FB/IC PORT_STATUS Suchstatus eines weiteren Anschlusses/Funktionsblocks
  • Es sollte festgestellt werden, dass die INT_SERV_REQ, INT_SERV_RESP, CHANNEL_REQ, CONNECT_RESP, CHANNEL_ABORT und PORT_STATUS Kommandos sowohl als IC- als auch FR-Kommandos überlastet sind. Diese Kommandos sind IC-Kommandos, wenn sie von einem Funktionsblock ausgegeben werden, und sind FR-Kommandos, wenn sie von der Schnittstellensteuereinheit ausgegeben werden. Mit einem separaten Kodierungs-/Dekodierungs-Schaltkreis in der Schnittstellensteuereinheit und in jedem Funktionsblock und mit allen Kommunikationen zwischen Funktionsblöcke, welche durch die Schnittstellensteuereinheit weitergegeben werden, ist es wünschenswert, dass eine solche Überladung nicht problematisch ist.
  • Jegliche Anzahl von Kommandoformaten kann in Übereinstimmung mit der Erfindung verwendet werden. Gemäß der dargestellten Implementierung sind Kommandos seriell kodiert, haben das generelle Format eines logischen 1-Start-Bit, gefolgt von einem Kommando-Token, irgendeinem Operanden und schließlich einem logischen 0-Stop-Bit. Die Kommandos werden dazu verwendet, die Informationen in den Datenleitungen zu Datenrahmen und zusätzliche Informationen, die von einem speziellen Kommando benötigt werden, können auf einer der Leitungen oder auf sowohl den Kommando- als auch den Datenleitungen zur Verfügung gestellt werden.
  • Ein passendes Format für das Kommando zum Schreiben einer Adresse (WRITE_ADDRESS) ist nachfolgend in Tabelle II gezeigt: Tabelle II: Kommandoformat zum Schreiben einer Adresse (FB nach FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token WRITE_ADDRESS Token (0001)
    5 TargetSize Anzahl der Zieladressen Bits TS
    1 Stop Stop-Bit (0)
    Daten (Data) TS TargetAddre TS Bits der Zieladresse
  • Das Kommando zum Schreiben der Adresse wird dazu verwendet, eine Adresse, auf die in dem Zielfunktionsblock geschrieben werden soll, zu übertragen, nachdem ein logischer Kommunikationskanal zwischen dem Quellanschluss und einem oder mehreren Zielanschlüssen aufgebaut worden ist. Die Anzahl der Bits in der Adresse wird auf der Kommandoleitung in dem TargetSize-Feld zur Verfügung gestellt und die Zieladresse selbst wird auf der Datenleitung gleichzeitig mit der Übertragung des Kommandos zum Schreiben der Adresse auf der Kommandoleitung übertragen.
  • Sobald eine Schreibe-Adresse einem Zielanschluss zur Verfügung gestellt worden ist, werden die Kommandos zum Schreiben der Daten (WRITE_DATA) von dem Quellanschluss zum Schreiben in die spezifizierte Adresse weitergeleitet.
  • Ein passendes Format für das Kommando zum Schreiben der Daten wird nachfolgend in Tabelle III gezeigt: Tabelle III: Kommandoformat zum Schreiben von Daten (FB nach FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token WRITE_ADDRESS Token (0010)
    1 Stop Stop-Bit (0)
    Daten (Data) 8 Data Ein Byte von Daten
  • Jedes Kommando zum Schreiben der Daten stellt ein Byte oder 8 Bits an Daten zur Verfügung, um in die spezifizierte Adresse zu schreiben. In der dargestellten Implementierung kann es auch wünschenswert sein, sowohl die Quell- als auch die Zielfunktionsblöcke so zu konfigurieren, dass sie bei Empfang eines Kommandos zum Schreiben von Daten zur nächsten Adresse auto-inkrementieren, so dass mehrere Kommandos zum Schreiben von Daten geschickt werden können, ohne jede neue Adresse zurückzuversenden.
  • Ein geeignetes Kommando für eine Leseaufforderung (READ_REQ) ist nachfolgend in Tabelle IV gezeigt: Tabelle IV: Leseaufforderungs-Kommandoformat (FB nach FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token READ_REQ Token (0011)
    5 TargetSize Anzahl der Zieladressen Bits TS
    TS TargetAddr TS Bits der Zieladresse
    5 SourceSize Anzahl der Quelladressen-Bits SS
    SS SourceAddr SS Bits der Quelladresse
    1 Stop Stop-Bit (0)
    Daten (Data) 13 BlockSize Anzahl der Erfragten Datenbytes, bis zu 8 K
  • Das Leseaufforderungs-Kommando wird von einem Quellfunktionsblock dazu verwendet, Daten von einem Zielfunktionsblock anzufordern. Die Kommandoleitung trägt die Adresse sowohl zum Ziel, wo die angeforderten Daten gespeichert sind (Zieladresse), als auch die Adresse in der Quelle, wo die angeforderten Daten gespeichert werden sollen (Quelladresse). Die Anzahl von Bytes, welche übertragen werden, wird auf der Datenleitung gleichzeitig mit dem Kommando der Leseaufforderung auf der Kommandoleitung übertragen.
  • In der dargestellten Implementierung ist das Leseaufforderungs-Kommando von einem Zielfunktionsblock durch Schreiben der angefragten Daten zurück auf den Quellausgang geregelt, wobei die WRITE_ADDRESS und WRITE_DATA Kom mandos, welche weiter oben diskutiert worden sind, verwendet werden, was den Kommandosatz zur Verbindung vereinfacht. Alternativ dazu kann ein separates Datenlese-Antwortkommando von dem Ziel zur Quelle dazu verwendet werden, die angefragten Daten an einen Quellfunktionsblock zurückzugeben.
  • Sperroperationen werden auch unterstützt, um einer Quelle zu ermöglichen, automatisch einen Speicherort in dem Zielfunktionsblock zu manipulieren. Ein geeignetes Kommandoformat für Sperraufforderungen (LOCK_REQ) ist nachfolgend in Tabelle V gezeigt, und ein Format eines Sperrantwort-Kommandos (LOCK_RESP) ist nachfolgend in Tabelle VI gezeigt: Tabelle V: Kommandoformat Sperraufforderung (FB nach FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token LOCK_REQ Token (0100)
    5 TargetSize Anzahl der Zieladressen Bits TS
    4 LockType Unterbrechungstyp
    5 ArgSize Zahl der Bytes des Unterbrechungsarguments(s) AS
    1 Stop Stop-Bit (0)
    Daten (Data) TS TargetAddr TS-Bits der Zieladresse
    AS*8 Arguments Unterbrechungsargument(e) 1 ... n
    Tabelle VI: Format eines Sperrantwort-Kommandos (FB nach FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token LOCK_RESP Token (0101)
    5 ArgSize Anzahl der Bytes in dem Rückgabeargument(e) AS
    1 Stop Stop-Bit (0)
    Daten (Data) AS*8 Arguments Rückgabe Argument(e)1 ... n
  • Verschiedene unterschiedliche Typen von Sperroperationen werden unterstützt, basierend auf dem LockTyp-Feld in dem Sperraufforderungskommando. Für jeden Sperrtyp wird eine unterschiedliche Anzahl von ein-Byte-Argumenten in dem Sperraufforderungskommando zur Verfügung gestellt, und eine unterschiedliche Anzahl von ein-Byte-Argumenten wird in dem Sperrantwort-Kommando von dem Ziel zurückgegeben. Die Argumente selbst werden auf den Datenleitungen zur Verfügung gestellt und die Anzahl der Argumente wird in dem ArgSize-Feld sowohl des Sperraufforderungs- als auch des Sperrantwort-Kommandos spezifiziert. Beispiele von gewünschten Sperrtypen sind Byte-Compare-and-Swap, Byte-Subtraktion, wenn größer oder gleich, und andere Sperrtypen, welche dem Fachmann bekannt sind.
  • Ein Ziel kann auch zusätzliche Informationen als eine Antwort auf eine Quellanforderung ausgeben. Zum Beispiel kann ein Flusskontrollkommando (FLOW_CONTROL) von einem Ziel dazu verwendet werden, die Rate, mit der Daten an es gesendet werden, zu steuern. In der dargestellten Ausführungsvariante ist für ein Ziel gewünscht, immer empfangsbereit zu sein, wenn ein logischer Kommunikationskanal aufgebaut wird. Das Flusskontrollkommando kann deshalb zurück zur Quelle signalisieren, dass weitere Übertragungen verzögert werden müssen, was dazu führt, dass die Quelle weitere Sendungen verzögert, bis eine Fertigindikation von dem Ziel ausgegeben wird. Ein geeignetes Format für das Flusskontrollkommando ist nachstehend in Tabelle VII gezeigt, und es sollte gewürdigt werden, dass zusätzliche Statuscodes über simples fertig und beschäftigt hinausgehen, unterstützt werden: Tabelle VII: Kommandoformat der Flusssteuerung (FB nach FB)
    Leitung Bit s Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit(1)
    4 Token FLOW_CONTROL Token (0110)
    2 Status Anschlussstatus (00 = BUSY, 01 = READY)
    1 Stop Stop-Bit (0)
  • Ein Ziel kann auch dazu benötigt werden, einen Fehler als Antwort auf eine Anforderung von der Quelle zurückzugeben, z. B. unter Verwendung eines Fehler-(ERROR)-Kommandos. Jegliche Anzahl von Fehlertypen kann unterstützt sein, z. B. geschützte Adresse, Nur-Lesen, usw. Ein geeignetes Format für ein Fehlerkommando ist in nachfolgender Tabelle VIII gezeigt: Tabelle VIII: Fehlerkommandoformat (FB nach FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMC) 1 Start Start-Bit(1)
    4 Token ERROR Token (0111)
    4 Type Error-Type (0001 = Prot. Address, 0010 = Read Only)
    1 Stop Stop-Bit (0)
  • Es kann auch gewünscht sein, die Verwendung von Unterbrechern über die gleichzeitige serielle Verbindung zu unterstützen. In der dargestellten Implementierung wird ein Unterbrechungsservice-Kommando (INT_SERV_REQ) unterstützt, um einem Funktionsblock zu gestatten, eine Unterbrechung von dem Host anzufordern, über sowohl die Schnittstellensteuereinheit und Master-Anschluss, als auch von einem weiteren Funktionsblock (z. B. um explizite anderweitige vorrangige Belegung (Präemtion) durchzuführen). Mit diesem Kommando ist es wünschenswert, der Schnittstellensteuereinheit einen Indikator des Ziels oder des angeforderten Anschlusses, sowie eine Adresse einer Service-Routine in dem Zielanschluss zur Verwendung bei der Ausführung der Unterbrechung zur Verfügung zu stellen. Wenn das Kommando von der Schnittstellensteuereinheit zu dem Zielanschluss gesendet wird, wird eine Indikation des anfordernden Anschlusses anstatt des Zielanschlusses zur Verfügung gestellt. Alternativ dazu können verschiedene Unterbrechungstypen unterstützt werden, wobei nur ein Unterbrechungstyp übertragen wird, so dass eine bestimmte Service-Routine, welche gemäß dem Unterbrechungstyp in dem Ziel definiert ist, ausgeführt wird.
  • Ein geeignetes Kommandoformat für das Kommando zur Anforderung des Unterbrechungsservice ist nachfolgend in Tabelle IX gezeigt: Tabelle IX: Kommandoformat einer Unterbrechungsserviceanforderung (FB/IC nach IC/FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token INT_SERV_REQ Token (1000)
    4 ReqPort ID des angeforderten Anschlusses (FB nach IC)/ID des anfordernden Anschlusses (IC nach FB)
    5 SRAddrSize Anzahl der Adressen-Bits der Unterbrechungsservice-Routine RS
    1 Stop Stop-Bit (0)
    Daten (DATA) RS SRAddr RS-Bits der Adresse der Unterbrechungsservice-Routine
  • Als Antwort auf eine Unterbrechungsservice-Anforderung antwortet das Ziel typischerweise dem anfordernden Anschluss über die Schnittstellensteuereinheit mit einem Unterbrechungsservice-Antwortkommando (INT_SERV_RESP), welches dazu verwendet wird, anzuzeigen, ob die Unterbrechung gestattet oder verweigert worden ist, und typischerweise enthält dieses eine unterschiedliche Anzahl von Rückmeldungs-Codes, um verschiedene Antworten zu kennzeichnen. Ein geeignetes Format des Antwortkommandos für den Unterbrechungsservice ist nachfolgend in Tabelle X gezeigt: Tabelle X: Format des Antwortkommandos des Unterbrechungsservice (FB/IC nach IC-FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando 1 Start Start-Bit (1)
    4 Token INT_SERV_RESP Token (1001)
    4 ACK/NAK Rückmeldungscode
    1 Stop Stop-Bit (0)
  • Wie weiter oben beschrieben, können direkte Kommunikationen zwischen Funktionsblöcken typischerweise nicht auftreten, bis ein logischer Kommunikationska nal zwischen einem Quellfunktionsblock und einem oder mehreren Zielfunktionsblöcken aufgebaut worden ist. Um den Aufbau eines solchen Kanals abzuwickeln, wird ein Kanalanforderungskommando (CHANNEL_REQ) verwendet. Das Kanalanforderungskommando ist anfänglich von einer Quelle zu der Schnittstellensteuereinheit gerichtet, um den Aufbau eines logischen Kommunikationskanals anzufordern. Wenn ein verfügbarer Kanal für das (die) spezifizierte(n) Ziel(e) existiert, wird ein Kanalanforderungskommando daraufhin von der Schnittstellensteuereinheit zu dem (den) Zielanschluss(-anschlüssen) weitergegeben. Geeignete Formate für das Signalanforderungskommando von der Quelle zu der Schnittstellensteuereinheit und von der Schnittstellensteuereinheit zu dem Ziel (den Zielen) sind nachfolgend in Tabelle XI und XII gezeigt: Tabelle XI: Kommandoformat der Kanalanforderung (FB nach IC)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token CHANNEL_REQ Token (1010)
    2 Type Kanaltyp (00 = unidirektional, 01 = bidirektional)
    4 NumPorts Anzahl der Zielanschlüsse NP
    1 Stop Stop-Bit (0)
    Daten (DATA) NP*4 TargetPorts Zielanschluss IDs
    Tabelle XII: Kommandoformat der Kanalanforderung (IC nach FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token CHANNEL_REQ Token (1010)
    2 Type Kanaltyp (00 = unidirektional, 01 = bidirektional)
    4 SourcePort ID des Quellanschlusses
    1 Stop Stop-Bit (0)
  • Gemäß dieser Implementierung wird ein Maximum von 16 Anschlüssen unterstützt, obwohl jede Anzahl von Anschlüssen dadurch unterstützt werden kann, indem die Größen der Anschluss-ID-Felder variiert werden. Des Weiteren kann vorgesehen sein, dass unidirektionale und bidirektionale Kanaltypen unterstützt werden. Mit dem unidirektionalen Typ werden Broadcast-Kanäle mit multiplen Zielen ermöglicht. Bidirektionale Kanäle unterstützen nur ein einziges Ziel. Des Weiteren spart sich das Kanalanforderungskommando von der Quelle zur Schnittstellensteuereinheit die Anschluss-ID der Quelle (weil diese Information der Schnittstellensteuereinheit bekannt ist), aber das Kanalanforderungskommando von der Schnittstellensteuereinheit stellt diese Anschluss-ID dem Ziel (den Zielen) zur Verfügung.
  • Bei Empfang eines Kanalanforderungskommandos hat ein Zielknoten die Möglichkeit, den Aufbau eines Signals zu anzunehmen oder zu verweigern, durch das Vorsehen eines geeigneten Verbindungsantwortkommandos (CONNECT_RESP) zurück zu der Schnittstellensteuereinheit, welche daraufhin an die Quelle weitergegeben wird. Geeignete Formate für beide Phasen des Verbindungsantwortkommandos werden nachfolgend in Tabellen XIII und XIV gezeigt: Tabelle XIII: Kommandoformat der Verbindungsantwort (FB nach IC)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token CONNECT_RESP Token (1011)
    4 ACK/NAK Rückmeldungscode
    1 Stop Stop-Bit (0)
    Tabelle XIV: Kommandoformat der Verbindungsantwort (IC nach FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token CONNECT_RESP Token (1011)
    2 ACK/NAK Rückmeldungscode
    4 RespPort ID des Anschlusses des korrespondierenden Anschlusses
    1 Stop Stop-Bit (0)
  • Der Rückmeldungscode, der von dem Ziel gegenüber der Schnittstellensteuereinheit zur Verfügung gestellt wird, kann dazu verwendet werden, die Anforderung anzunehmen oder zu bewilligen, wodurch die Steuereinheit den Kanal aufbaut und der Quelle antwortet, um den Aufbau des Kanals anzuzeigen. Der Rückmeldungscode kann auch dazu verwendet werden, den Aufbau des Kanals zu verweigern, z. B. wenn das Ziel belegt ist und nicht anderweitig vorrangig belegt werden will. Obwohl mit dem Kanalanforderungskommando die Anschluss-ID des Ziels nicht notwendigerweise der Schnittstellensteuereinheit zur Verfügung gestellt werden muss, wird sie jedoch typischerweise zurück zu der ursprünglichen Quelle von der Schnittstellensteuereinheit in dem Verbindungsantwortkommando weitergeleitet.
  • Zusätzliche Kommandos können von der gleichzeitigen seriellen Verbindung dazu verwendet werden, den Aufbau, die Entlassung und die Operation von logischen Kommunikationskanälen zu steuern. Ein Kanalabbruch-(CHANNEL_ABORT)-Kommando wird entweder von einer Quelle oder einem Ziel ausgegeben, um den Abbruch irgendeines Kanalverkehrs zu bewirken, und anzufordern, dass die Schnittstellensteuereinheit alle Kanäle, die mit dem anfordernden Anschluss verbunden sind, entlässt. Wenn der anfordernde Anschluss die initiierende Quelle für den Kanal gewesen wäre, würden alle damit assoziierten Anschlüsse in dem Kanal entlassen. Wenn der anfordernde Anschluss einer der multiplen Ziele wäre, würden nur deren Anschlüsse entlassen werden, wobei die Schnittstellensteuereinheit ein Verbindungsantwortkommando zu der Quelle schicken würde, um einen Kanalstatuswechsel anzuzeigen. Das gleiche Kommandoformat wird von einem anfordernden Anschluss an die Schnittstellensteuereinheit verwendet, und von der Schnittstellensteuereinheit an jeden Anschluss, für den gewünscht ist, einen Kanal zu entlassen. Ein geeignetes Format für das Kanalabbruchkommando ist nachfolgend in Tabelle XV gezeigt: Tabelle XV: Kanalabbruchkommandoformat (IC nach FB und FB nach IC)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token CHANNEL_ABORT Token (1100)
    1 Stop Stop-Bit (0)
  • Ein Anschlussstatuskommando (PORT_STATUS) ist auch unterstützt, um das Abfragen von Anschlüssen, um die richtige Operation hierfür zu bestätigen, zu ermöglichen. Zwei Level von Abragen sind in der dargestellten Ausführungsvariante unterstützt. Ein erster Level fordert eine Anzeige, mit welchen Anschlüssen (wenn überhaupt) ein bestimmter Anschluss verbunden ist. Eine zweite Ebene fordert eine Anzeige des Status des Funktionsblocks, mit welchem ein bestimmter Anschluss verbunden ist, z. B. ob der Funktionsblock richtig arbeitet, bereit ist, Daten zu empfangen usw. Der erste Level kann typischerweise einzig und alleine in der Schnittstellensteuereinheit als Antwort auf eine Anschlussstatusanforderung von einem der Anschlüsse erledigt werden, unter der Voraussetzung, dass die momentane Route-/Kanalkonfiguration der Schnittstellensteuereinheit dazu verwendet werden kann, festzulegen, welche Anschlüsse miteinander verbunden sind. Zum Beispiel können geeignete Anschlussstatusanforderungen von Block 82 abgefangen und verarbeitet werden, wobei die resultierende Statusinformation an Block 84 zur Rückübertragung an den anfordernden Anschluss (2) weitergeleitet wird. Der zweite Level benötigt typischerweise jedoch Interaktion mit dem Anschluss, für den der Status abgefragt wird, wodurch das Weiterleiten geeigneter Anforderungen von der Schnittstellensteuereinheit zu entsprechenden Anschlüssen notwendig ist. Separate Kommandoformate können von einem Funktionsblock zu der Schnittstellensteuereinheit und zwischen der Schnittstellensteuereinheit und einem Funktionsblock verwendet werden, wie nachfolgend in Tabellen XIV und XVII gezeigt ist: Tabelle XVI: Anschlussstatuskommandoformat (FB nach IC)
    Leitung Bits Name Beschreibung (Wert)
    Kommando (CMD) 1 Start Start-Bit (1)
    4 Token PORT_STATUS Token (1101)
    2 ACK/NAK Rückmeldungscode
    1 Stop Stop-Bit (0)
    Tabelle XVII: Anschlussstatuskommandoformat (IC nach FB)
    Leitung Bits Name Beschreibung (Wert)
    Kommando 1 Start Start-Bit (1)
    4 Token PORT_STATUS Token (1101)
    4 RespPort Anschluss-ID des antwortenden Anschlusses
    4 NumPorts Anzahl der Anschlüsse NP, mit der der antwortende Anschluss momentan verbunden ist
    2 ACK/NAK Rückmeldungscode
    1 Stop Stop-Bit (0)
    Daten NP*4 ConnPorts IDs der Anschlüsse, mit denen der antwortende Anschluss verbunden ist
  • Dementsprechend werden von der Schnittstellensteuereinheit zu dem Funktionsblock eine Anzeige der Identität jedes Anschlusses, der mit dem Anschluss, der abgefragt wird, verbunden ist, auf der Datenleitung zur Verfügung gestellt.
  • Darüber hinaus können verschiedene Rückmeldungscodes zurückgegeben werden, um jegliche Anzahl möglicher Zustände der Verbindungen, der Anschlüsse und/oder der Funktionsblöcke mit denen die Anschlüsse verbunden sind, anzuzeigen.
  • Es sollte gewürdigt werden, dass die Kommandoformate, welche hierin diskutiert werden, nur ein möglicher Satz von Formaten sind. Die Erfindung sollte deshalb nicht auf die hier diskutierten bestimmten Ausführungsvarianten beschränkt sein.
  • Um noch weiter die Operation einer gleichzeitigen seriellen Verbindung darzustellen, sind die Operationen, die während der Initialisierung der Verbindung, während des Aufbaues eines logischen Kommunikationskanals und während des Entlassens eines logischen Kommunikationskanals durchgeführt werden, entsprechend in den 4 bis 6 dargestellt.
  • 4 stellt z. B. eine Systemzurücksetzungsoperation 110 dar, welche während einer anfänglichen Inbetriebnahme durchgeführt wird. In dieser Ausführungsvariante wird die Schnittstellensteuereinheit von dem Host über den Master-Anschluss initialisiert. Die Operation 110 beginnt in Block 112 damit, dass die Schnittstellensteuereinheit alle logischen Kommunikationskanäle schließt. Als nächstes wird eine Schleife in der Schnittstellensteuereinheit bei Block 14 in Gang gesetzt, um auf ein Kanalanforderungskommando von dem Master-Anschluss (Anschluss 0) zu warten. Bei Empfang eines solchen Kommandos öffnet die Schnittstellensteuereinheit einen logischen Kommunikationskanal mit dem Master-Anschluss als beides, sowohl die Quelle, als auch das Ziel des Kanals 116.
  • Als Nächstes lädt der Host in Block 118 Entscheidungs- und Verbindungstabellen in die Schnittstelleneinheit herunter, um insbesondere den Route-Kommando & Steuerlogikblock 80 (3) zu konfigurieren, um das gewünschte Entscheidungsschema zu implementieren. Bei der dargestellten Implementierung wird dies über die Schreibkommandos, welche weiter oben beschrieben worden sind, durchgeführt, wobei eine bekannte Adresse für die Tabellen in der Schnittstellensteuereinheit verwendet wird. Es sollte gewürdigt sein, dass die Logik der Schnittstellensteuereinheit dazu konfiguriert ist, insbesondere diesen Initialisierungsmodus zu detektieren, wenn ein logischer Kanal mit dem Master-Anschluss als sowohl die Quelle, als auch das Ziel aufgebaut wird. Des Weiteren sollte begrüßt werden, dass, anstatt die Tabellendaten herunterzuladen, die aktuell mikrokodierte Routine, welche für die Implementierung eines speziellen Entscheidungsschemas notwendig ist, gemäß anderen Implementierungen herunter geladen werden kann. Darüber hinaus kann in anderen Implementierungen, wenn nur ein festgelegtes Entscheidungsschema verwendet wird, kein Download von Daten zu der Schnittstellensteuereinheit notwendig sein.
  • Als Nächstes wird in Block 120 der normale Arbeitsmodus für die Schnittstellensteuereinheit von dem Host aktiviert, der auf den Speicherort als das geeignete Steuerungsregister unter Verwendung des oben diskutierten Schreibkommandos (z. B. gemäß Block 20, gezeigt in 3) schreibt. Während des Schreibens in das Register werden alle Services der Schnittstellensteuereinheit aktiviert und die Schnittstellensteuereinheit ist dazu bereit, Steuerbefehle zu empfangen.
  • 5 stellt bei 125 eine Sequenz von Operationen dar, welche während des Aufbaus eines logischen Kanals durchgeführt werden. Angefangen bei Block 126, sendet ein Initialisierungsanschluss (gekennzeichnet als Anschluss X) ein Kanalanforderungskommando an die Schnittstellensteuereinheit, wobei ein Zielanschluss (gekennzeichnet als Anschluss Y) bestimmt wird. Als Nächstes empfängt die Schnittstellensteuereinheit in Block 128 das Kommando und dekodiert die Zielinformation hiervon.
  • Als Nächstes bestimmt die Schnittstellensteuereinheit in Block 130, ob ein offener Kanal erhältlich ist. Wenn dies der Fall ist, bestimmt die Schnittstellensteuereinheit als nächstes in Block 132, ob der Zielanschluss schon an einen Kanal angeschlossen ist. Unter der Annahme des Ersteren, dass das Ziel nicht verbunden ist, leitet die Schnittstellensteuereinheit daraufhin ein Kanalanforderungskommando an den Zielanschluss in Block 134.
  • Als Nächstes bestimmt der Zielanschluss, wie in Block, 136 dargestellt, ob die Verbindung akzeptiert werden soll. Wenn ein Zielanschluss die Verbindung akzeptiert, sendet der Anschluss ein Anschlussantwortkommando an die Schnittstellensteuereinheit in Block 138 zurück, wobei ein Rückmeldungscode (ACK) angegeben wird. Die Schnittstellensteuereinheit baut den logischen Kommunikationskanal auf und leitet ein Anschlussantwortkommando an den Quellanschluss in Block 140 zurück. Bei Beendigung von Block 140 ist der Kanal aufgebaut und Kommunikation zwischen der Quelle und dem Ziel (den Zielen) kann beginnen.
  • Zurück zu Block 130, sendet die Schnittstellensteuereinheit, wenn derzeitig kein Kanal in der Schnittstellensteuereinheit verfügbar ist, ein Kanalanforderungskommando zurück zu dem anfordernden Anschluss in Block 142, wodurch dieser Anschluss als der Quellanschluss angegeben wird, um dem anfordernden Anschluss anzuzeigen, dass keine Quellen verfügbar sind. Als Alternative dazu könnte ein weiteres Kommando dazu verwendet werden, diesen Fehlzustand anzuzeigen.
  • Als Nächstes Zurück zur Block 132, sendet die Schnittstellensteuereinheit, wenn Anschluss Y schon an einen Kanal angeschlossen ist, ein Kanalabbruchkommando an den anfordernden Anschluss in Block 144, um anzuzeigen, dass der Zielanschluss nicht verfügbar ist. Als Alternative könnten andere Kommandos verwendet werden. Wenn ein bestimmter Zielanschluss nicht verfügbar ist, könnte eine anderweitige vorrangige Belegung (Präemtionsoperation), wie weiter unten beschrieben, dazu verwendet werden, den Versuch zu unternehmen, den existierenden Kanal zu überschreiben und einen neuen Kanal zu dem Ziel aufzubauen. Als Alternative dazu kann des Weiteren wünschenswert sein, einen Warteschlangenmechanismus in der Schnittstellensteuereinheit zur Verfügung zu stellen, um nicht-erfolgreiche Kanalanforderungskommandos zu speichern und zu versuchen, das Kommando später abzusetzen, anstatt sofort die Anforderung platzen zu lassen.
  • Als Nächstes zurück zu Block 136 sendet der Anschluss, wenn der Zielanschluss wünscht, die Kanalanforderung abzuweisen, ein Anschlussantwortkommando zurück zu der Schnittstellensteuereinheit in Block 146, wodurch ein Nicht-Bestätigung-(NAK)-Rückmeldungscode in dem Kommando angegeben wird. Die Schnittstellensteuereinheit leitet daraufhin den Kode an den anfordernden Anschluss in einem Anschlussantwortkommando in Block 148 weiter, wobei kein Kanal aufgebaut wird. Wie oben kann anderweitige vorrangige Belegung (Präemtionsoperation) wie weiter unten beschrieben, dazu verwendet werden, Zugang zu dem Zielanschluss zu erhalten, wenn die normale Verbindungssequenz nicht erfolgreich ist.
  • Es sollte gewürdigt sein, dass zum Aufbau von Mehrfach-Ziel-Kanälen die Schnittstellensteuereinheit die Kommunikationen mit den multiplen Zielen notwendigerweise überwachen muss. Zum Beispiel stellt die Schnittstelleneinheit in der dargestellten Implementierung fest, ob jeder Zielanschluss schon angeschlossen ist, und sendet Kanalabbruchkommandos an den anfordernden Anschluss für alle schon angeschlossenen Zielanschlüsse (wie in Block 132 und 144) zurück. Dies kann entweder dazu führen, dass die gesamte Kanalanforderungsoperation abgewiesen wird oder alternativ dazu führen, dass der Kanal ohne schon angeschlossene Zielanschlüsse aufgebaut wird.
  • Auch sendet die Schnittstellensteuereinheit für alle nicht angeschlossene Ziele Kanalanforderungskommandos an jedes Ziel (wie in Block 134). Darüber hinaus überwacht die Schnittstellensteuereinheit ein Anschlussantwortkommando eines jeden Ziels und gibt jede Antwort an den anfordernden Anschluss weiter. Wie weiter oben, kann entweder der Kanal abgewiesen werden, wenn nicht alle Ziele den Anschluss annehmen, oder der Kanal kann mit den anderen Zielen, die den Anschluss annehmen, aufgebaut werden.
  • 6 kennzeichnet bei 150 eine Sequenz von Operationen, die dazu durchgeführt wird, einen logischen Kanal zu entlassen, entweder von allen Anschlüssen des Kanals oder von einem Zielanschluss, der daran angeschlossen ist. Die Operation zum Entlassen des Kanals wird in Block 152 von dem Funktionsblock bei einem bestimmten Anschluss (Port Z) initiiert, wobei ein Kanalabbruchkommando an die Schnittstellensteuereinheit gesendet wird. Dieses Kommando wird daraufhin von der Schnittstellensteuereinheit in Block 154 detektiert, wobei in Block 156 die Schnittstellensteuereinheit feststellt, ob der anfordernde Anschluss der Ursprungsanschluss (Quelle) des Kanals ist.
  • Wenn dies der Fall ist, ist wünschenswert, alle angeschlossenen Anschlüsse von dem Kanal zu entlassen, und deshalb sendet die Schnittstellensteuereinheit ein Kanalabbruchkommando an alle angeschlossenen Anschlüsse in Block 158.
  • Zurück zu Block 156 stellt die Schnittstellensteuereinheit, wenn der anfordernde Anschluss nicht der Ursprung des Kanals ist, in Block 162 fest, ob der Kanal ein Broadcast-Kanal (d.h. einer mit mehrfachen Zielen) ist. Wenn nicht, sendet die Schnittstellensteuereinheit Kanalabbruchkommandos zu sowohl dem anfordernden Anschluss, als auch dem Ursprungsanschluss in Block 164, und die Operation ist abgeschlossen. Das Kanalabbruchkommando zurück zu dem anfordernden Anschluss bestätigt, dass die Unterbrechung erfolgreich war und das Kanalabbruchkommando zu dem Ursprungsanschluss zeigt an, dass der anfordernde Anschluss abgetrennt worden ist. Es ist anzumerken, dass die Kanalquelle nicht entlassen worden ist; stattdessen muss der Ursprung des Kanals ein weiteres Kanalabbruchkommando an die Schnittstellensteuereinheit senden, wenn das Entlassen des Kanals gewünscht ist. Alternativ dazu kann ein Zielanschluss dazu in der Lage sein, einen Kanal in einer anderen Implementierung zu entlassen.
  • Zurück zu Block 162, sendet die Schnittstellensteuereinheit ein Anschlussantwortkommando an den Urheberanschluss in Block 166, wenn der Kanal ein Mehrfach-Kanal ist, wobei er einen Nicht-Bestätigung-(NAK)-Rückmeldungscode anzeigt und den anfordernden Anschluss identifiziert. Dieses hat den Effekt, dass der Status des anfordernden Anschlusses in dem Ursprungsanschluss upgedatet wird, so dass der Ursprungsanschluss darüber informiert worden ist, dass der anfordernde Anschluss abgetrennt worden ist. Als Nächstes sendet die Schnittstellensteuereinheit im Block 168 ein Kanalabbruchkommando zurück zu dem anfordernden Anschluss, um zu bestätigen, dass der Anschluss abgetrennt worden ist. Die Operation ist daraufhin abgeschlossen.
  • Als ein Beispiel der generellen Operation der gleichzeitigen seriellen Verbindung stellen 7A bis 7C Beispiel-Kommandos dar, welche zwischen einem Paar von Funktionsblöcken ausgegeben werden, um eine Basis-Lose-Operation von einem ersten Funktionsblock zu einem zweiten Funktionsblock durchzuführen. Um das Beispiel zu vereinfachen, wird angenommen, dass jeder Funktionsblock ein 4-Bit-großes Adressspeicherfeld besitzt (16 mögliche Speicheradressen), und dass ein Maximum von 16 Anschlüssen mit dem Anschluss verbunden werden kann. In diesem Beispiel wünscht ein Funktionsblock mit einem Anschlusskennzeichen 7, die Inhalte von zwei sequentiellen Speicheradressen in einem Funktionsblock mit einem Anschlusskennzeichen 9 zu lesen, wobei bei Speicheradresse 14 (0x1110) gestartet wird. Der Funktionsblock bei Anschluss 7 wünscht, dass die Inhalte dieser Speicheradressen (bei welchen davon ausgegangen wird, dass sie 0x00000001 & 0x00000010 sind) in zwei sequentielle Speicheradressen geschrieben werden, wobei bei einer Speicheradresse 8 (0x1000) gestartet wird.
  • Wie in 7A gezeigt, muss ein Kanal zwischen Anschlüssen 7 und 9 aufgebaut werden, um die Leseoperation durchzuführen. Anschluss 7 sendet deshalb ein Kanalanforderungskommando zur Schnittstellensteuereinheit, wodurch angegeben wird, dass ein unidirektionaler Kanal mit Anschluss 9 angefordert wird. Davon ausgehend, dass ein Kanal verfügbar ist, wird das Kanalanforderungskommando einige Zeit später (wie durch die „//"-Zeichen gekennzeichnet ist) durch die Schnittstellensteuereinheit zu Anschluss 9 weitergeleitet, wobei hierin angezeigt wird, dass Anschluss 7 einen Kanal angefordert hat. Davon ausgehend, dass Anschluss 9 verfügbar ist, leitet der Anschluss ein Anschlussantwortkommando zurück zu der Schnittstellensteuereinheit mit einem ACK-Rückmeldungscode, was dazu führt, dass die Schnittstellensteuereinheit ein An schlussantwortkommando zurück zu dem anfordernden Anschluss 7 leitet, wobei ein ACK-Code angezeigt wird und Anschluss 9 identifiziert wird. Daraufhin wird ein Kanal aufgebaut.
  • Als Nächstes, wie in 7B gezeigt, gibt der Funktionsblock, der mit Anschluss 7 verbunden ist, auf den Kommando- und Dateneingangsleitungen von Anschluss 7 ein Leseanforderungskommando aus. Basierend auf dem existierenden Kanal wird die Information direkt zu den Kommando- und Datenausgangsleitungen von Anschluss 9 von der Schnittstellensteuereinheit (welche nicht separat gezeigt ist) weitergeleitet. Das Leseanforderungskommando gibt auf der Kommandoeingangsleitung eine Zieladresse von 0x1110 und eine Quelladresse von 0x1000 an und zeigt auf der Dateneingangsleitung, dass 2 Datenbytes angefordert werden.
  • Einige Zeit später antwortet der Funktionsblock bei Anschluss 9 auf die Leseanforderung durch Ausgabe eines Adresseschreibkommandos auf den Kommando- und Dateneingangsleitungen von Anschluss 9. Die Information wird direkt von der Schnittstellensteuereinheit zu den Kommando- und Datenausgangsleitungen von Anschluss 7 weitergeleitet. Das Adresseschreibenkommando gibt auf den Kommandoeingangsleitungen an, dass eine vier-Bit-Adresse (Adresse 0x1000) auf der Dateneingangsleitung ist, welche der Quelladresse entspricht, die in dem Leseanforderungskommando zur Verfügung gestellt worden ist. Das Adressschreibekommando ist daraufhin dicht gefolgt von zwei Datenschreibekommandos, von denen jedes die entsprechend angeforderten Inhalte der Speicheradressen 0x11110 und 0x1111 zur Verfügung stellt.
  • Bei Beendigung der Lese-/Schreibkommandos ist der Kanal zwischen Anschlüssen 7 und 9 immer noch aktiv, bis zur Entlassung. Dementsprechend wird, wie in 7C dargestellt, ein Kanalabbruchkommando zu der Schnittstellensteuereinheit weitergeleitet, wenn der Funktionsblock bei Anschluss 7 feststellt, dass der Kanal nicht länger gebraucht wird, welche hiernach Kanalabbruchkommandos zu sowohl Anschluss 7 als auch Anschluss 9 ausgibt, was dazu führt, dass die Kanalquelle entlassen wird.
  • Es ist festzustellen, dass in jedem Fall, in dem Informationen sowohl auf den Kommando- als auch auf den Datenleitungen weitergeleitet werden, die Kom mandoleitungen (und speziell die Inhalte darauf) jedes Kommando Datenrahmen, um die Ausrichtung zwischen den Informationen in den Kommando- und Datenleitungen aufrechtzuerhalten. Dementsprechend können Kommandos variable Längen aufweisen.
  • Als Alternative dazu kann eine festgelegte Kommandolänge verwendet werden. Es sollte gewürdigt werden, dass ein Taktsignal auch mit allen Kommando- und Dateninformationen (nicht gezeigt) übertragen wird.
  • Wenn ein bestimmter Anschluss und/oder Kanal nicht verfügbar ist, könnten verschiedenste Arten und Weisen der anderweitigen vorrangigen Belegung (Präemtion) eines existierenden Kanals unterstützt werden. Zum Beispiel kann eine implizite anderweitige vorrangige Belegung (Präemtion) unterstützt sein. Für eine implizite anderweitige vorrangige Belegung (Präemtion) werden bei verschiedenen Anschlüssen variierende Prioritäten innerhalb des Entscheidungsschemas, welches in der Schnittstellensteuereinheit definiert und/oder programmiert ist, zugelassen. Zum Beispiel ist oft gewünscht, dass der Masteranschluss gegenüber den anderen Anschlüssen bevorzugt wird, wodurch dem Host gestattet ist, immer andere Funktionsblöcke zu unterbrechen und den Kanal vorrangig zu belegen.
  • Die Basissequenz von Operationen, die während eines implizierten anderweitigen vorrangigen Belegen (Präemptionsoperation) durchgeführt werden, sind bei 170 in 8 gezeigt (die Sequenz von Operationen kann so angesehen werden, dass sie Block 144 in der Anschlusssequenz von 5 ersetzt). In dieser Sequenz wird angenommen, dass Anschluss X einen Kanal mit Anschluss Y anfordert, während Anschluss Y schon durch einen existierenden Kanal mit Anschluss Z verbunden ist. Wie in Block 172 gezeigt, sendet der Funktionsblock von Anschluss X mit einer normalen Anschlusssequenz ein Kanalanforderungskommando für Anschluss Y, welches die Schnittstellensteuereinheit empfängt und dekodiert. Die Schnittstellensteuereinheit erkennt, dass Anschluss Y schon verbunden ist, jedoch anstatt nur ein NAK zu Anschluss X zurückzugeben, entscheidet die Schnittstellensteuereinheit in Block 174, ob Anschluss X eine höhere Priorität als Anschluss Z aufweist. Wenn dies nicht der Fall ist, kehrt die Schnittstellensteuereinheit zum normalen Prozess in Block 176 zurück, sendet im Grun de ein Anschlussantwortkommando zu Anschluss X mit einem NAK-Rückmeldungscode.
  • Wenn jedoch Anschluss X eine höhere Priorität aufweist, als Anschluss Z, sendet die Schnittstellensteuereinheit ein Kanalabbruchkommando an Anschlüsse Y und Z in Block 178, um die existierende Kanalquelle zu entlassen. Als Nächstes leitet in Block 180 die Schnittstellensteuereinheit ein Kanalanforderungskommando zu Anschluss Y weiter, welches aufgrund der kürzlichen Entlassung von Anschluss Y von einem Kanal, in einem Anschlussantwortkommando mit einem ACK-Rückmeldungscode, welcher von dem Anschluss Y zurückgegeben wird, resultiert. Als Nächstes leitet in Block 182 die Schnittstellensteuereinheit das Anschlussantwortkommando an Anschluss X weiter, um einen neuen Kanal aufzubauen. Die Kommunikationen zwischen Anschlüssen X und Y werden daraufhin gestattet.
  • Zusätzlich dazu oder anstatt von impliziter anderweitiger vorrangiger Belegung (Präemption) kann auch explizite anderweitige vorrangige Belegung (Präemption) unterstützt werden. Mit expliziter anderweitiger vorrangiger Belegung (Präemption) fordert ein Funktionsblock eine Unterbrechung mit einem anderen Funktionsblock nach einem nicht-erfolgreichen Anschlussversuch. In dieser Situation wird die Entscheidung, ob eine Unterbrechung zugelassen werden soll, in dem Zielfunktionsblock lieber als in der Schnittstellensteuereinheit gefällt. Die Schnittstellensteuereinheit agiert mehr als ein Übermittler, um die Unterbrechung und Rückbestätigung zwischen den Anschlüssen, welche mit den Funktionsblöcken verbunden sind, zu übermitteln.
  • Zum Beispiel stellt 9 bei 185 eine Sequenz von Operationen für eine explizite Präemptionsoperation dar. Unter der Annahme, dass Anschluss X versucht hat, sich mit Anschluss Y zu verbinden, jedoch nicht erfolgreich war, weil der Anschluss mit Anschluss Z verbunden war, sendet der Funktionsblock über Anschluss X ein Unterbrechungsservice-Anforderungskommando zu Anschluss Y über die Schnittstellensteuereinheit. Als Nächstes entscheidet Anschluss Y, ob die Unterbrechung in Block 188 akzeptiert werden soll. Diese Entscheidung wird typischerweise auf Basis eines speziellen Entscheidungsschemas, welches innerhalb des Funktionsblocks, welcher mit Anschluss Y verbunden ist, definiert ist, gefällt. Wenn der Funktionsblock entscheidet, die Unterbrechung nicht zuzulassen, sendet der Anschluss ein Unterbrechungsservice-Antwortkommando zurück zu Anschluss X über die Schnittstellensteuereinheit in Block 190, wobei ein NAK-Rückmeldungscode angezeigt wird. Die Unterbrechung wird dementsprechend abgewiesen.
  • Wenn jedoch der Funktionsblock entscheidet, die Unterbrechung zuzulassen, gibt Anschluss Y sofort ein Unterbrechungsservice-Antwortkommando zurück zu Anschluss X über die Schnittstellensteuereinheit in Block 192, wobei ein ACK-Rückmeldungscode angezeigt wird. Als Nächstes sendet in Block 194 Anschluss Y ein Kanalabbruchkommando zu der Schnittstellensteuereinheit, was dazu führt, dass die Schnittstellensteuereinheit Anschluss Y von dem Kanal abtrennt und den Kanal (wenn angebracht) entlässt, wie weiter oben beschrieben. Ein Kanalabbruchkommando wird auch zur Bestätigung an Anschluss Y zurückgegeben.
  • Als Nächstes sendet Anschluss Y in Block 196 ein Kanalanforderungskommando für Anschluss X, was dazu führt, dass ein neuer Kanal zwischen Anschluss X und Y in der Art und Weise, wie weiter oben unter Bezugnahme auf 5 beschrieben worden ist, aufgebaut wird. Die Unterbrechung wird dementsprechend vollzogen, und Kommunikationen zwischen Anschlüssen X und Y werden zugelassen.
  • Es sollte erwähnt werden, dass in der dargestellten Implementierung wünschenswert ist (obwohl nicht notwendig), ein Unterbrechungsservice-Antwortkommando zurück zu dem anfordernden Anschluss vor einer Entlassung des arbeitenden Anschlusses und dem Aufbau des neuen Kanals zu senden. Ein Vorteil dieser Konfiguration besteht darin, dass der arbeitende Anschluss möglicherweise die Durchführung der Unterbrechung bei Bedarf verzögert, und trotzdem dem anfordernden Anschluss gegenüber bestätigt, dass die Unterbrechung durchgeführt werden wird, sodass der anfordernde Anschluss auf den Aufbau des neuen Kanals wartet. Zum Beispiel werden einkommende Unterbrechungen für einen Anschluss in eine Warteschleife geschoben und bei dieser Ausgestaltung gemäß einem Entscheidungsschema behandelt.
  • Es soll gewürdigt sein, dass die verschiedenen Funktionen, welche von der hier beschriebenen Schnittstellensteuereinheit, den Anschlüssen und den Funktionsblöcken (speziell den hierin definierten Anschlussschnittstellen) durchgeführt werden, auf keinen Fall eine ausschließliche Implementierung der Erfindung darstellen, und deshalb sollte die Erfindung nicht alleine auf die hierin beschriebenen Implementierungen beschränkt sein. Umso mehr sollte gewürdigt werden, dass eine Implementierung der Eigenschaft der Schnittstellensteuereinheit, der Anschlüsse, der Anschlussschnittstellen und der Funktionsblöcke sowohl in geeigneter logischer Schaltung, als auch in den Implementierungen eines geeigneten Programmcodes, welcher von einer dieser Komponenten ausgeführt wird, in den Kenntnisbereich fallen, der sich dem Fachmann aufgrund der vorliegenden Offenbarung erschließt.
  • Als ein Beispiel ist eine mögliche Implementierung einer Funktionsblockschaltungsanordnung bei 400 in 10 dargestellt. Schaltungsanordnung 400 umfasst die Funktionsblocklogik 402, welche sowohl die primäre Operationseigenschaft des Funktionsblocks, als auch die Anschlussschnittstellenlogik 403 implementiert. Die Eigenschaft der Anschlussschnittstelle ist innerhalb einer Vielzahl von logischen Blöcke angeordnet, unter anderem einem Adressenkodier-/-Dekodierblock 404, einem Datendekodier-/-Kodierblock 406, einem Lese-/Schreibsteuerblock 408, einem Kommandosteuerblock 410, einem Taktblock 412, Schreibe- und Lese-FIFO-Pufferblöcken 414, 416, einem Anforderungs-/Zulassungssteuerblock 418, einem Datenflusssteuerblock 420, DATA-Übertragungs- und Empfangs-Serialisierungs-/-Deserialisierungs-(SERDES)-Blöcken 422, 424, Kommando- und Steuerkodierungs- und Dekodierungsblöcken 426, 428 und einem Taktsynchronisations-/Generierungsblock 430. Weitere logische Implementierungen können als Alternative verwendet werden.
  • Gleichzeitige serielle Verbindungen gemäß der Erfindung können in einer großen Bandbreite von Integrierten-Schaltkreis-Bauteilen und/oder in einer großen Bandbreite von Datenverarbeitungssystemen, umfassend Computer, eingebettete Steuereinheiten und andere programmierbare elektronische Bauteile verwendet werden. Zum Beispiel zeigt 11 ein exemplarisches Datenverarbeitungssystem 200, welches praktisch jedes programmierbare elektronische Bauteil und sogar eine Entwicklungsumgebung für ein programmierbares elektronisches Bauteil darstellt. Datenverarbeitungssystem 200 umfasst eine Systemsteuereinheit 202, verbunden mit einer Speichereinheit, wie z. B. Synchronous Dynamic Random Access Memory (SDRAM) 204. Ein Taktoszillator 206 und ein Joint-Test-Automation-Group-(JTAG)-Anschluss 208 (zur Durchführung von Bauteil-Überprüfung und Tests) sind mit der Steuereinheit verbunden. Des Weiteren kann jede Anzahl von externen Bauteilen mit der Steuereinheit 202 verbunden sein, Z. B. eine RS232-Schnittstelle 210, eine Steuerungstafel 211, ein Infrarot-Transceiver 212, ein Universal-Serieller-Bus-(USB)-Anschluss 214, ein Netzwerkanschluss 216, ein IEEE-1394-Anschluss 218 und ein LCD-Display 220, unter anderem. Weitere externe Bauteile können mit der Systemsteuereinheit über ASB- und PCI-Slots 221, 222 verbunden werden.
  • Wie in 12 gezeigt ist, kann die Systemsteuereinheit 202 durch Verwendung eines gleichzeitigen seriellen Anschlusses gemäß der Erfindung implementiert sein, mit einer Schnittstellensteuereinheit 223, welche eine Vielzahl von seriellen Anschlüssen 224 steuert, die mit einer Vielzahl von Funktionsblöcken über serielle Anschlüsse 225 verbunden sind, die mit Anschlussschnittstellen 226, welche innerhalb jedes Funktionsblocks definiert sind, verbunden sind. Steuereinheit 202 umfasst einen Funktionsblock 228 als zentrale Steuereinheit (CPU), welcher als Host für die gleichzeitigen seriellen Verbindungen fungiert, welche durch Master-Anschluss 0 über einen DMA/Cache-Block 230, innerhalb dessen eine Anschlussschnittstelle 226 definiert ist, verbunden ist. Zusätzliche Verarbeitungseinheiten, z. B. eine Floating-Point-Einheit 232, kann mit der CPU 228 verbunden sein, und weitere Speicherbauteile, Z. B. ROM 234, können mit Block 230 verbunden sein. Prüfen und Testen kann durch einen JTAG-Block 236 durchgeführt werden, welcher mit einem JTAG-Anschluss 208 (11) verbunden ist.
  • Anschlüsse 1 und 2 sind mit einem SDRAM-Steuereinheitfunktionsblock 238 verbunden, der über ein Paar von Anschlussschnittstellen 226 verfügt. Anschluss 3 ist so dargestellt, dass er mit einem JAVA-Beschleunigungsfunktionsblock 240 verbunden ist, der dazu verwendet wird, die Verarbeitung von JAVA-Sprach-Bytekodierungen auf der CPU 228 zu beschleunigen (wie z. B. in US S/N 08/757,430 , angemeldet am 27. November 1996 von David Ross Evoy). Anschlüsse 4 und 5 sind mit ASB- und PCI-Verbindungsblöcken 244, 246 verbun den, welche ihrerseits mit ASB- und PCI-Slots 221, 222 entsprechend (11) verbunden sind.
  • Anschlüsse 6 bis 11 sind entsprechend mit einem 16550/GP1O-(General Purpose Input/Output)-Funktionsblock 248, einem Infrarotschnittstellen-Funktionsblock 250, einem USB-SIave-Funktionsblock 252, einem Ethernet-Medienzugangssteuerungs-(MAC)-Funktionsblock 254, einem 1394-Schnittstellen-Funktionsblock 256 und einem LCD-Treiber-Funktionsblock 258 verbunden. Jeder dieser Funktionsblöcke ist mit den geeigneten Komponenten 210 bis 220 von 11 verbunden.
  • 13 stellt ein weiteres exemplarisches Datenverarbeitungssystem, eine Set-Top-Box 300 zur Verwendung bei der Distribution eines digitalen Videosignals von einer Kabelfernsehübertragung zu einem Fernseher dar. Set-Top-Box 300 umfasst eine Steuereinheit 302, die mit SDRAM 304 verbunden ist. Zusätzlich verbunden mit der Steuereinheit ist eine Steuertafel 306, ein Taktoszillator 308, JTAG-Anschluss 310, Infrarot-Transceiver 312, Videoausgangsanschluss 314, 1394-Anschlüsse 316, 318, Videoeingangsanschluss 320 und ein alternierender Videoeingangsanschluss 322.
  • Wie in 14 gezeigt, ist Steuereinheit 302 mit den verschiedenen externen Komponenten aus 13 über eine Vielzahl von Funktionsblöcken verbunden, welche ihrerseits über den gleichzeitigen seriellen Anschluss gemäß der Erfindung verbunden sind. Eine Schnittstellensteuereinheit 324 ist mit einer Vielzahl von seriellen Anschlüssen 326 verbunden, welche ihrerseits mit Funktionsblöcken über serielle Anschlüsse 328 und Anschlussschnittstellen 333, welche in jedem der Funktionsblöcke definiert sind, verbunden sind.
  • Ein CPU-Funktionsblock 332 ist mit einem Masteranschluss 0 über einen DMA/Cache-Block 334 verbunden und operiert als Host für den gleichzeitigen seriellen Anschluss. Zusätzliche Komponenten, z. B: ein FPU-Block 336 und eine ROM 338, können auch mit Blöcken 332 und 334 ihrerseits verbunden sein. Ein digitaler Videokodier-(DENC)-Funktionsblock 340 ist mit Anschluss 1 über einen Anzeigeblock 342 verbunden und ist schließlich mit dem Videoausgangsanschluss 314 aus 13 verbunden. Anschluss 2 ist mit einem zentralen Service funktionsblock 344 verbunden, welcher die Steuereinheit mit einer Anzahl von zentralen Services, umfassend Komponenten 306 bis 312 aus 13, verbindet. Anschlüsse 3 und 4 sind mit 1394-Linkfunktionsblöcken 346, 348 verbunden, welche ihrerseits mit Anschlüssen 316, 318 (13) verbunden sind. Anschlüsse 5 bis 8 sind ihrerseits mit MPEG-Funktionsblock 350, Kabeltransport-Funktionsblock 352, 2D/3D-Graphikfunktionsblock 354 und digitalem Videoempfangsfunktionsblock 356 verbunden. Blöcke 352 und 356 sind ihrerseits mit den Anschlüssen 320, 322 (13) verbunden.
  • Um eine der Steuereinheiten 202, 302 aus 12, 14 zu entwerfen, würde jeder der Funktionsblöcke, der hierfür notwendig wäre, zusammengebaut und geeignet ausgelegt, wie dem Fachmann wohlbekannt ist. Innerhalb jedes Funktionsblocks wäre eine geeignete generische Anschlussschnittstelle, oder alternativ dazu könnte eine angepasste Schaltung entworfen werden, um die I/O-Anschlüsse für einen Funktionsblock mit einer generischen Anschlussschnittstelle, welche außerhalb des Blocks ist, zu verbinden. Als Nächstes würde ein gleichzeitiger serieller Anschluss dem Entwurf hinzugefügt werden, umfassend eine Schnittstellensteuereinheit mit geeigneter Anzahl von Kanälen und geeigneter Anzahl von Anschlüssen, notwendig für ein adäquates Verbinden der Funktionsblöcke in dem Entwurf Daraufhin könnten die Funktionsblöcke durch simples Routing der geeigneten seriellen Kommando-/Daten-/Takteingangs-/Ausgangsleitungen zwischen den Ausgängen und den Funktionsblocks miteinander verbunden werden, um den gleichzeitigen seriellen Anschluss zu bilden.
  • Gleichzeitige serielle Anschlüsse gemäß der Erfindung verfügen über eine Anzahl von einzigartigen Vorteilen. Zunächst ist ein Routing-Stau typischerweise reduziert, weil eine reduzierte Anzahl von Drähten benötigt wird, um die Funktionsblöcke zu verbinden, im Vergleich zu Multidrop-Bus-Schnittstellen. Zweitens ist die Wiederverwendbarkeit verbessert worden, weil die Schnittstelle „Datengerahmt" ist und das Steuerschema kodiert ist. Drittens das Hinzufügen von neuen Systemfunktionen, insbesondere neuer Funktionsblöcke zu einem Entwurf typischerweise nur den Entwurf der Schnittstellensteuereinheit beeinflusst, wodurch die Entwurf-Wiederverwendung vergrößert wird, da ältere Blöcke mit neuen Blöcken mit kleiner oder keiner Veränderung verwendet werden können. Viertens muss das Testen für Datenintegrität und das Implementieren von Fehlerkor rekturen typischerweise nur für die Schnittstellensteuereinheit durchgeführt werden, da die Steuereinheit zum primären Datenrouter für den Entwurf wird. Fünftens wird den gesamten Entwurf durch das Zur-Verfügung-Stellen des Taktes zwischen den Funktionsblöcken synchron, auch wenn einer oder mehrere der Funktionsblöcke autonom zu anderen Blöcken arbeiten. Sechstens, sind ausgesprochen hohe Datenraten aufgrund der hohen Übertragungsgeschwindigkeit über den Anschluss möglich. Des Weiteren wird der Gesamtdurchlass mit mehreren Kanälen noch darüber hinaus vergrößert.

Claims (38)

  1. Schaltungsanordnung (10) zum Verbinden einer Vielzahl von Funktionsblöcken (22, 24, 28) miteinander innerhalb eines integrierten Schaltkreises, wobei die Funktionsblöcke in dem integrierten Schaltkreis enthalten sind, wobei die Schaltungsanordnung (10) aufweist: (a) eine Vielzahl von seriellen Anschlüssen (40, 42, 44, 46, 48), von denen jeder serielle Anschluss einem Funktionsblock zugeordnet und mit diesem über eine Punkt-zu-Punkt-Verbindung (50, 52, 54, 56, 58) verbunden ist, um mit diesen eine externe Kommunikation zuzulassen, und jeder serielle Anschluss getrennte serielle Kommando-, Daten- und Taktanschlüsse einschließt; und (b) eine Schnittstellen-Steuereinheit (14), die mit jedem der seriellen Anschlüsse (40, 42, 44, 46, 48) verbunden ist, wobei die Interface-Steuereinheit ausgebildet ist, gezielt und gleichzeitig zumindest zwei der seriellen Anschlüsse miteinander zu verbinden, um einen logischen Kommunikationskanal zwischen den den seriellen Anschlüssen zugeordneten Funktionsblöcken zu definieren, wodurch serielle gleichzeitige Punkt-zu-Punkt-Verbindungen zwischen den Funktionsblöcken bereitgestellt werden können.
  2. Schaltungsanordnung (10) gemäß Anspruch 1, die zusätzlich eine Vielzahl von Anschlussschnittstellen (30, 32, 34, 36, 38) aufweist, von denen jede Anschlussschnittstelle innerhalb eines Funktionsblocks angeordnet und mit diesen verbunden ist, um den Funktionsblock mit dem mit ihm verbundenen seriellen Anschluss zu verbinden.
  3. Schaltungsanordnung (10) gemäß Anspruch 1, bei der die seriellen Kommando- und Datenanschlüsse für wenigstens einen der seriellen Anschlüsse serielle Kommando- und Dateneingangsleitungen aufweist.
  4. Schaltungsanordnung (10) gemäß Anspruch 1, bei dem die seriellen Kommando- und Datenanschlüsse für wenigstens einen der seriellen Anschlüsse serielle Kommando- und Datenausgangsleitungen aufweist.
  5. Schaltungsanordnung (10) gemäß Anspruch 1, bei der der serielle Kommandoanschluss wenigstens eines der seriellen Anschlüsse separate serielle Kommandoeingangs- und -ausgangsleitungen aufweist und der serielle Datenanschluss für wenigstens einen der seriellen Anschlüsse separate serielle Dateneingangs- und -ausgangsleitungen aufweist.
  6. Schaltungsanordnung (10) gemäß Anspruch 1, bei der der serielle Taktanschluss wenigstens eines der seriellen Anschlüsse separate serielle Takteingangs- und -ausgangsleitungen aufweist.
  7. Schaltungsanordnung (10) gemäß Anspruch 1, bei der die seriellen Kommando- und Datenanschlüsse für zumindest einen der seriellen Anschlüsse differenzielle Anschlüsse sind.
  8. Schaltungsanordnung (10) gemäß Anspruch 1, bei der die seriellen Kommando- und Datenanschlüsse für zumindest einen der seriellen Anschlüsse einseitig geerdete (unsymmetrische) Anschlüsse sind.
  9. Schaltungsanordnung (10) gemäß Anspruch 1, bei der die Schnittstellensteuereinheit (14) so konfiguriert ist, dass sie serielle Anschlüsse in Reaktion auf ein von einem Funktionsblock über den Kommandoanschluss des ihm zugeordneten seriellen Anschlusses empfangenes Steuerkommando hin selektiv mit einem anderen der seriellen Anschlüsse koppelt.
  10. Schaltungsanordnung (10) gemäß Anspruch 9, bei der die Schnittstellensteuereinheit (14) weiterhin so konfiguriert ist, dass sie Funktionsblockkommandos zwischen Quell- und Zielfunktionsplatten über die Kommandoanschlüsse der mit diesen verbundenen seriellen Anschlüsse richtet, um zuzulassen, dass der Quellfunktionsblock den Zielfunktionsblock steuert.
  11. Schaltungsanordnung (10) gemäß Anspruch 9, bei der die Schnittstellensteuereinheit (14) weiterhin so konfiguriert ist, dass sie einen logischen Kommunikationskanal aufbaut, indem sie von einem anfordernden seriellen Anschluss eine Kanalanforderung empfängt und eine Kanalanforderung zu zumindest einem seriellen Zielanschluss weiterleitet und eine Anschlussantwort von dem seriellen Zielanschluss empfängt, und die Anschlussantwort an den anfordernden seriellen Port weiterleitet.
  12. Schaltungsanordnung (10) gemäß Anspruch 11, bei der die Schnittstellensteuereinheit (14) weiterhin so konfiguriert ist, dass sie einen von einem anfordernden seriellen Anschluss angeforderten logischen Kommunikationskanal nur in Reaktion auf einen Zulassungshinweis in der Anschlussantwort des seriellen Zielanschlusses aufbaut, und den Aufbau eines von einem anfordernden seriellen Anschluss angeforderten logischen Kommunikationskanals in Reaktion auf einen Verweigerungshinweis in der Verbindungsantwort des seriellen Zielknotens verweigert.
  13. Schaltungsanordnung (10) gemäß Anspruch 11, bei der die Schnittstellensteuereinheit (14) weiterhin so konfiguriert ist, dass sie in Reaktion auf ein von einem der Vielzahl serieller Anschlüsse empfangendes Kanalabbruchkommando zumindest einen seriellen Anschluss aus dem logischen Kommunikationskanal entlässt.
  14. Schaltungsanordnung (10) gemäß Anspruch 9, bei der die Schnittstellensteuereinheit (14) so konfiguriert ist, dass sie in Reaktion auf eine von einem anfordernden seriellen Anschluss mit höherer Priorität als zumindest einer der seriellen Anschlüsse, die mit dem logischen Kommunikationskanal verbunden sind, empfangene Kanalanforderung einen logischen Kommunikationskanal selektiv vorrangig belegt.
  15. Schaltungsanordnung (10) gemäß Anspruch 1, bei der die Schnittstellensteuereinheit (14) weiterhin so konfiguriert ist, dass sie ein Interrupt-Kommando von einem Quell- zu einem Zielfunktionsblock richtet, um zu erlauben, dass der Quellfunktionsblock einen für den Zielfunktionsblock aufgebauten logischen Kommunikationskanal vorrangig belegt.
  16. Schaltungsanordnung (10) gemäß Anspruch 1, bei der die Schnittstellensteuereinheit (14) so konfiguriert ist, dass sie selektiv einen seriellen Quellenanschluss mit zumindest zwei seriellen Zielanschlüssen verbindet, um einen logischen Broadcast-Kommunikationskanal zwischen den mit diesen verbundenen Funktionsblöcken zu definieren.
  17. Schaltungsanordnung (10) gemäß Anspruch 1, bei der die Schnittstellencontroller (14) so konfiguriert ist, dass sie selektiv zumindest zwei weitere der Vielzahl von seriellen Anschlüssen miteinander koppelt, um einen zweiten logischen Kommunikationskanal zwischen den diesen zugeordneten Funktionsblöcken aufzubauen, wobei die Schnittstellensteuereinheit weiterhin so konfiguriert ist, dass sie gleichzeitig Information über die ersten und die zweiten logischen Kommunikationskanäle überträgt.
  18. Schaltungsanordnung (10) gemäß Anspruch 17, bei der zumindest eine der seriellen Anschlüsse zumindest seriellen Kommando- und Dateneingangsleitungen und serielle Kommando- und Datenausgangsleitungen aufweist, und bei der die Schnittstellensteuereinheit (14) so konfiguriert ist, dass sie die seriellen Kommando- und Dateneingangsleitungen mit dem ersten logischen Kommunikationskanal verbindet und die seriellen Kommando- und Datenausgangsleitungen mit dem zweiten logischen Kommunikationskanal verbindet.
  19. Schaltungsanordnung (10) gemäß Anspruch 1, bei der die Schnittstellensteuereinheit (14) ein programmierbares Entscheidungsschema aufweist.
  20. Schaltungsanordnung (10) gemäß Anspruch 19, bei der die Schnittstellensteuereinheit (14) so konfiguriert ist, dass sie Entscheidungsdaten (67), die ein Entscheidungsschema definieren, von mindestens einem der Vielzahl serieller Anschlüsse empfängt.
  21. Integrierte Schaltung, die eine Schaltungsanordnung (10) gemäß Anspruch 1 aufweist.
  22. Datenverarbeitungssystem, das eine Schaltungsanordnung (10) gemäß Anspruch 1 aufweist.
  23. Programmprodukt, umfassend ein Hardwaredefinitionsprogramm, das die Schaltungsanordnung (10) gemäß Anspruch 1 definiert und ein Signal tragendes Medium (Datenträger), das das Hardwaredefinitionsprogramm trägt.
  24. Programmprodukt gemäß Anspruch 23, beidem das Signal tragende Medium wenigstens eines aus der Gruppe Übertragungs-Typ-Medium und Aufzeichnungs-Medium ist.
  25. Verfahren zum Verbinden einer Vielzahl von Funktionsblöcken (22, 24, 26, 28) miteinander innerhalb eines integrierten Schaltkreises, wobei die Funktionsblöcke in dem integrierten Schaltkreis enthalten sind und jeder Funktionsblock aus einer Vielzahl von seriellen Anschlüssen zugeordnet und mit diesem über eine serielle Punkt-Punkt-Verbindung (50, 52, 54, 56, 58) verbunden ist, wobei jeder serielle Anschluss separate Kommando-Daten- und Taktanschlüsse aufweist, wobei das Verfahren aufweist: (a) gleichzeitiges Aufbauen logischer Punkt-zu-Punkt-Kommunikationskanäle zwischen ersten und zweiten Funktionsblöcken aus einer Vielzahl von Funktionsblöcken (22, 24, 26, 28) durch Übertragung eines Kommandos von dem ersten Funktionsblock zu dem Schnittstellencontroller (14) über einen ersten seriellen Anschluss aus einer Vielzahl von seriellen Anschlüssen (40, 42, 44, 46, 48), der dem ersten Funktionsblock zugeordnet ist; und (b) Kommunizieren von Daten zwischen einem ersten und einem zweiten der Funktionsblöcke durch Übertragen der Daten zwischen dem ersten seriellen Anschluss und einem zweiten seriellen Anschluss aus der Vielzahl serieller Anschlüsse (40, 42, 44, 46, 48), zweiten Funktionsblock zugeordnet ist.
  26. Verfahren nach Anspruch 25, bei dem jeder serieller Anschluss (50, 52, 54, 56, 58) separate serielle Kommando- und Datenleitungen aufweist.
  27. Verfahren nach Anspruch 25, bei der das Kommunizieren von Daten zwischen den ersten und zweiten Funktionsblöcken das Richten von Funktionsblockkommandos zwischen den ersten und zweiten Funktionsblöcken über den logischen Kommunikationskanal einschließt.
  28. Verfahren nach Anspruch 25, bei dem das Aufbauen des logischen Kommunikationskanals einschließt: (a) Senden eines Kanalanforderungskommandos von dem ersten Funktionsblock zu der Schnittstellensteuereinheit (14); (b) Senden des Kanalanforderungskommandos von der Schnittstellensteuereinheit (14) zu dem zweiten Funktionsblock; (c) Senden einer Verbindungsantwort von dem zweiten Funktionsblock zu der Schnittstellensteuereinheit (14); und (d) Senden einer Verbindungsantwort von der Schnittstellensteuereinheit (14) zu dem ersten Funktionsblock.
  29. Verfahren nach Anspruch 28, bei dem der Aufbau des logischen Kommunikationskanals es einschließt festzustellen, ob die Verbindungsantwort von dem zweiten Funktionsblock einen Bestätigungshinweis einschließt.
  30. Verfahren nach Anspruch 29, das zusätzlich aufweist: (a) Übertragen eines Kanalanforderungskommandos von einem anfragenden Funktionsblock aus der Vielzahl von Funktionsblöcken (22, 24, 26, 28), wobei das Kanalanforderungskommando einen Zielfunktionsblock aus der Vielzahl von Funktionsblöcken (22, 24, 26, 28) angibt, mit dem ein zweiter logischer Kommunikationskanal angefordert wird; (b) Überfragen einer Verbindungsantwort von dem Zielfunktionsblock, wobei die Verbindungsantwort einen Zurückweisungshinweis einschließt und (c) Verweigern des Aufbaus eines zweiten logischen Kommunikationskanals in Antwort auf den Zurückweisungshinweis in der Verbindungsantwort.
  31. Verfahren nach Anspruch 28, das weiterhin das Entlassen von zumindest einem der ersten und zweiten Funktionsblöcke aus dem logischen Kommunikationskanal in Antwort auf ein Kanalabbruchkommando aufweist, welches von einem aus der Vielzahl der Funktionsblöcke (22, 24, 26, 28) empfangen wurde.
  32. Verfahren nach Anspruch 28, das weiterhin ein selektives vorrangiges Belegen des logischen Kommunikationskanals in Antwort auf ein Kanalanforderungskommando aufweist, welches von einem dritten Informationsblock empfangen wurde, welcher eine höhere Priorität als zumindest einer der ersten und zweiten Funktionsblöcke hat.
  33. Verfahren nach Anspruch 25, das weiterhin aufweist: (a) Richten eines Interrupt-Kommandos von einem dritten Funktionsblock des zweiten Funktionsblocks; und (b) Selektives vorrangiges Belegen des logischen Kommunikationskanals basierend auf einem Prioritätsschema in dem zweiten Funktionsblock.
  34. Verfahren nach Anspruch 33, bei dem das selektive vorrangige Belegen des logischen Kommunikationskanals einschließt: (a) Freigeben des ersten logischen Kommunikationskanals zwischen den ersten und zweiten Funktionsblöcken; und (b) Aufbauen eines zweiten logischen Kommunikationskanals zwischen den zweiten und dritten Funktionsblöcken durch Übertragen eines Kommandos von dem zweiten Funktionsblock zu der Schnittstellensteuereinheit (14).
  35. Verfahren nach Anspruch 25, bei dem das Aufbauen des logischen Kommunikationskanals weiterhin das Kuppeln eines dritten Funktionsblocks zu dem logischen Kommunikationskanal einschließt.
  36. Verfahren nach Anspruch 25, das weiterhin aufweist: (a) Aufbauen eines zweiten Kommunikationskanals zwischen zumindest zwei weiteren aus der Vielzahl der Funktionsblöcke; und (b) Kommunizieren von Daten über den zweiten logischen Kommunikationskanal gleichzeitig mit dem Kommunizieren von Daten über den ersten logischen Kommunikationskanal.
  37. Verfahren nach Anspruch 25, das weiterhin das Programmieren der Schnittstellensteuereinheit (14) mit einem Entscheidungsschema aufweist.
  38. Verfahren nach Anspruch 37, bei dem das Programmieren der Schnittstelleneinheit (14) das Empfangen von Entscheidungsdaten (67) einschließt, die ein Entscheidungsschema von mindestens einen der Vielzahl von Funktionsblöcken (22, 24, 26, 28) definieren.
DE69936225T 1998-11-30 1999-11-29 Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung Expired - Lifetime DE69936225T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201450 1994-02-14
US09/201,450 US6317804B1 (en) 1998-11-30 1998-11-30 Concurrent serial interconnect for integrating functional blocks in an integrated circuit device
PCT/US1999/028217 WO2000033201A1 (en) 1998-11-30 1999-11-29 Concurrent serial interconnect for integrating functional blocks in an integrated circuit device

Publications (2)

Publication Number Publication Date
DE69936225D1 DE69936225D1 (de) 2007-07-12
DE69936225T2 true DE69936225T2 (de) 2008-01-24

Family

ID=22745869

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69936225T Expired - Lifetime DE69936225T2 (de) 1998-11-30 1999-11-29 Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung

Country Status (5)

Country Link
US (1) US6317804B1 (de)
EP (1) EP1141845B1 (de)
JP (1) JP2002531891A (de)
DE (1) DE69936225T2 (de)
WO (1) WO2000033201A1 (de)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060174052A1 (en) * 2005-02-02 2006-08-03 Nobukazu Kondo Integrated circuit and information processing device
US7072817B1 (en) * 1999-10-01 2006-07-04 Stmicroelectronics Ltd. Method of designing an initiator in an integrated circuit
US6629310B1 (en) * 1999-12-22 2003-09-30 Koninklijke Philips Electronics N.V. System and method for accessing internal registers in integrated circuits
JP2001350505A (ja) * 2000-06-08 2001-12-21 Dennoo:Kk 制御装置
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US6662253B1 (en) * 2000-09-13 2003-12-09 Stmicroelectronics, Inc. Shared peripheral architecture
US7024653B1 (en) * 2000-10-30 2006-04-04 Cypress Semiconductor Corporation Architecture for efficient implementation of serial data communication functions on a programmable logic device (PLD)
US20040197101A1 (en) * 2001-02-05 2004-10-07 Sasser Gary D. Optical transceiver module with host accessible on-board diagnostics
US7079775B2 (en) 2001-02-05 2006-07-18 Finisar Corporation Integrated memory mapped controller circuit for fiber optics transceiver
US6807640B2 (en) * 2001-05-08 2004-10-19 Intersil Americas, Inc. Programmable interface controller suitable for spanning clock domains
JP2002368727A (ja) 2001-06-04 2002-12-20 Nec Corp 半導体集積回路
US6836815B1 (en) * 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
US20030041302A1 (en) * 2001-08-03 2003-02-27 Mcdonald Robert G. Markup language accelerator
JP2003296296A (ja) * 2002-01-30 2003-10-17 Oki Electric Ind Co Ltd マイクロコントローラ
US6738961B2 (en) * 2002-02-28 2004-05-18 Hewlett-Packard Development Company, L.P. Computer readable medium and a method for representing an electronic circuit as a routing-resource graph
US6996651B2 (en) * 2002-07-29 2006-02-07 Freescale Semiconductor, Inc. On chip network with memory device address decoding
US7051150B2 (en) * 2002-07-29 2006-05-23 Freescale Semiconductor, Inc. Scalable on chip network
US7139860B2 (en) * 2002-07-29 2006-11-21 Freescale Semiconductor Inc. On chip network with independent logical and physical layers
US7277449B2 (en) * 2002-07-29 2007-10-02 Freescale Semiconductor, Inc. On chip network
US7200137B2 (en) * 2002-07-29 2007-04-03 Freescale Semiconductor, Inc. On chip network that maximizes interconnect utilization between processing elements
US8385188B2 (en) 2002-10-29 2013-02-26 Broadcom Corporation Multi-port, gigabit serdes transceiver capable of automatic fail switchover
US7373561B2 (en) * 2002-10-29 2008-05-13 Broadcom Corporation Integrated packet bit error rate tester for 10G SERDES
US7802049B2 (en) * 2002-10-30 2010-09-21 Intel Corporation Links having flexible lane allocation
US7062586B2 (en) * 2003-04-21 2006-06-13 Xilinx, Inc. Method and apparatus for communication within a programmable logic device using serial transceivers
TWI221369B (en) * 2003-04-29 2004-09-21 Via Tech Inc Device and method for adjusting the frequency of the timing signal
JP4272005B2 (ja) * 2003-07-31 2009-06-03 パイオニア株式会社 Avシステム、増幅器、ディスプレイ
US8775997B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8872833B2 (en) 2003-09-15 2014-10-28 Nvidia Corporation Integrated circuit configuration system and method
US7328403B2 (en) 2003-10-22 2008-02-05 Intel Corporation Device for structured data transformation
US7458022B2 (en) * 2003-10-22 2008-11-25 Intel Corporation Hardware/software partition for high performance structured data transformation
US7409400B2 (en) * 2003-10-22 2008-08-05 Intel Corporation Applications of an appliance in a data center
US7437666B2 (en) * 2003-10-22 2008-10-14 Intel Corporation Expression grouping and evaluation
US7430240B2 (en) * 2003-10-29 2008-09-30 Broadcom Corporation Apparatus and method for automatic polarity swap in a communications system
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US20050256977A1 (en) * 2004-05-14 2005-11-17 Dehaemer Eric J Integrated circuit having processor and switch capabilities
KR101092438B1 (ko) * 2004-08-05 2011-12-13 엘지전자 주식회사 케이블 방송 수신기 및 그의 진단 방법
US8291145B2 (en) * 2004-08-10 2012-10-16 Hewlett-Packard Development Company, L.P. Method and apparatus for setting a primary port on a PCI bridge
US7457311B2 (en) 2004-08-31 2008-11-25 Honeywell International Inc. Portable communication interface device
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
US7552242B2 (en) 2004-12-03 2009-06-23 Intel Corporation Integrated circuit having processor and switch capabilities
US7434192B2 (en) * 2004-12-13 2008-10-07 Altera Corporation Techniques for optimizing design of a hard intellectual property block for data transmission
US7136954B2 (en) * 2005-01-31 2006-11-14 International Business Machines Corporation Data communication method and apparatus utilizing credit-based data transfer protocol and credit loss detection mechanism
US7493426B2 (en) * 2005-01-31 2009-02-17 International Business Machines Corporation Data communication method and apparatus utilizing programmable channels for allocation of buffer space and transaction control
US20060174050A1 (en) * 2005-01-31 2006-08-03 International Business Machines Corporation Internal data bus interconnection mechanism utilizing shared buffers supporting communication among multiple functional components of an integrated circuit chip
JP4896450B2 (ja) 2005-06-30 2012-03-14 株式会社東芝 記憶装置
JP2007164286A (ja) * 2005-12-09 2007-06-28 Sony Corp 情報信号処理装置、機能ブロックおよび機能ブロックの制御方法
US20100318953A1 (en) * 2006-12-13 2010-12-16 Luminary Micro, Inc. Platform programming for mass customization
US8699514B2 (en) 2007-01-12 2014-04-15 Broadcom Corporation Multi-rate MAC to PHY interface
US8014480B1 (en) 2007-03-09 2011-09-06 Altera Corporation Zero-delay serial communications circuitry for serial interconnects
US7725635B2 (en) * 2007-03-18 2010-05-25 Moxa Inc. Method of determining request transmission priority subject to request channel and transmitting request subject to such request transmission priority in application of fieldbus communication framework
US8065460B2 (en) * 2007-03-18 2011-11-22 Moxa Inc. Method of determining request transmission priority subject to request content and transmitting request subject to such request transmission priority in application of fieldbus communication framework
TWI376946B (en) * 2007-07-11 2012-11-11 Realtek Semiconductor Corp Signal receiving circuit adapted for multiple digital video/audio transmission interface standards
US8159956B2 (en) 2008-07-01 2012-04-17 Finisar Corporation Diagnostics for serial communication busses
CN101764794B (zh) * 2008-12-23 2012-12-12 中国科学院空间科学与应用研究中心 一种可编程的ieee1394总线监测系统及监测方法
US8239590B1 (en) 2009-01-31 2012-08-07 Xilinx, Inc. Method and apparatus for transferring data between two different interfaces
WO2010103610A1 (ja) * 2009-03-09 2010-09-16 富士通株式会社 情報処理装置
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US8901747B2 (en) 2010-07-29 2014-12-02 Mosys, Inc. Semiconductor chip layout
GB2484483B (en) * 2010-10-12 2018-07-11 Advanced Risc Mach Ltd Communication using integrated circuit interconnect circuitry
US9176919B2 (en) * 2012-06-06 2015-11-03 Honeywell International Inc. Process controller having multi-channel serial communications link
US9251554B2 (en) 2012-12-26 2016-02-02 Analog Devices, Inc. Block-based signal processing
CN103984659B (zh) * 2014-05-15 2017-07-21 华为技术有限公司 分时使用串口的方法和装置
US9934179B2 (en) 2015-02-17 2018-04-03 Mediatek Inc. Wafer-level package with at least one input/output port connected to at least one management bus
US10152445B2 (en) * 2015-02-17 2018-12-11 Mediatek Inc. Signal count reduction between semiconductor dies assembled in wafer-level package
JP2019164713A (ja) 2018-03-20 2019-09-26 東芝メモリ株式会社 ストレージシステム及びデータ転送方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151623A (en) 1985-03-29 1992-09-29 Advanced Micro Devices, Inc. Programmable logic device with multiple, flexible asynchronous programmable logic blocks interconnected by a high speed switch matrix
CA1322390C (en) 1987-09-22 1993-09-21 Nec Corporation Star topology local area network
US5068823A (en) 1988-07-11 1991-11-26 Star Semiconductor Corporation Programmable integrated circuit using topological and parametric data to selectively connect and configure different high level functional blocks thereof
US5189665A (en) * 1989-03-30 1993-02-23 Texas Instruments Incorporated Programmable configurable digital crossbar switch
US5261059A (en) * 1990-06-29 1993-11-09 Digital Equipment Corporation Crossbar interface for data communication network
JP2770936B2 (ja) * 1990-12-18 1998-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 通信ネットワークおよび通信チャンネルをつくる方法
US5404461A (en) * 1991-03-29 1995-04-04 International Business Machines Corp. Broadcast/switching apparatus for executing broadcast/multi-cast transfers over unbuffered asynchronous switching networks
US5513369A (en) 1991-08-05 1996-04-30 Ncr Corporation Star coupler device including means for connecting multiple star couplers together in a cascaded relationship
US5469545A (en) 1991-10-03 1995-11-21 Compaq Computer Corp. Expandable communication system with data flow control
WO1993009502A1 (en) * 1991-10-30 1993-05-13 I-Cube Design Systems, Inc. Field programmable logic module
US5311459A (en) 1992-09-17 1994-05-10 Eastman Kodak Company Selectively configurable integrated circuit device for performing multiple digital signal processing functions
JPH07141312A (ja) 1993-11-16 1995-06-02 Canon Inc 情報処理装置
JPH07210537A (ja) 1993-12-10 1995-08-11 Advanced Micro Devicds Inc コンピュータシステム
US5537583A (en) * 1994-10-11 1996-07-16 The Boeing Company Method and apparatus for a fault tolerant clock with dynamic reconfiguration
US5555543A (en) * 1995-01-03 1996-09-10 International Business Machines Corporation Crossbar switch apparatus and protocol
US5555540A (en) * 1995-02-17 1996-09-10 Sun Microsystems, Inc. ASIC bus structure
US5604735A (en) * 1995-03-15 1997-02-18 Finisar Corporation High speed network switch
US5754828A (en) * 1995-07-31 1998-05-19 Microsoft Corporation System and method for positional control device data source selection
KR0152228B1 (ko) * 1995-12-23 1998-11-02 양승택 데이타 교환 시스템에 있어서 분산 경로 제어를 이용한 데이타 송수신 방법
KR100392325B1 (ko) * 1996-04-26 2003-10-22 삼성전자주식회사 직렬통신포트전환회로
US5870310A (en) 1996-05-03 1999-02-09 Lsi Logic Corporation Method and apparatus for designing re-usable core interface shells
JP3459056B2 (ja) * 1996-11-08 2003-10-20 株式会社日立製作所 データ転送システム
US6094436A (en) * 1997-02-14 2000-07-25 Advanced Micro Devices, Inc. Integrated multiport switch having shared media access control circuitry
JPH10340243A (ja) * 1997-06-06 1998-12-22 Hitachi Ltd 入出力データ転送システム
US6112241A (en) * 1997-10-21 2000-08-29 International Business Machines Corporation Integrated network interconnecting device and probe
US6041400A (en) 1998-10-26 2000-03-21 Sony Corporation Distributed extensible processing architecture for digital signal processing applications
US6138185A (en) * 1998-10-29 2000-10-24 Mcdata Corporation High performance crossbar switch

Also Published As

Publication number Publication date
WO2000033201A1 (en) 2000-06-08
EP1141845A1 (de) 2001-10-10
DE69936225D1 (de) 2007-07-12
US6317804B1 (en) 2001-11-13
JP2002531891A (ja) 2002-09-24
EP1141845B1 (de) 2007-05-30

Similar Documents

Publication Publication Date Title
DE69936225T2 (de) Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE69133569T2 (de) Netzschnittstelle
DE60201682T2 (de) Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE102019121523A1 (de) Skalierbares netz werk-auf-chip für hochbandbreitenspeicher
DE602006000516T2 (de) Architektur eines Kommunikationsknoten in einem global asynchronen Netzwerk on-chip-System
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE2856483C2 (de)
DE2854485C2 (de) Datenverarbeitungsanlage
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
EP0960374A2 (de) Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand
EP0929041A2 (de) Verfahren und Anordnung zum Betreiben eines Bussystems
DE102008049018A1 (de) Filtern und Routen in einer Management Component Transport Protocol-Zwischenverbindung
WO2019030388A1 (de) Verfahren, vorrichtung und computerprogramm zur dynamischen ressourcenzuweisung in einem mehrprozessor-computersystem
DE60204794T2 (de) Mechanismus zur kennzeichnung und arbitrierung in einem eingabe/ausgabe knoten eines rechnersystems
DE69534171T2 (de) Verfahren und Vorrichtung für verbesserten Durchfluss in einem Vielfachknoten-Kommunikationssystem mit einem gemeinsamen Betriebsmittel
DE10296700T5 (de) Flusssteuerungssystem zur Verringerung der Speicherpufferanforderungen und zur Herstellung einer Prioritätsbedienung zwischen Netzen
AT410491B (de) Kommunikationsverfahren zur realisierung von ereigniskanälen in einem zeitgesteuerten kommunikationssystem
DE10085501B3 (de) Ein Verfahren und eine Einrichtung für einen isochronen Datentransport über einen asynchronen Bus
EP1121645B1 (de) Elektronische steuereinrichtung mit einem parallelen datenbus und verfahren zum betreiben der steuereinrichtung
DE102016206109A1 (de) Speicherdirektzugriffssteuereinrichtung für mindestens eine einen Arbeitsspeicher aufweisende Recheneinheit
DE3247083A1 (de) Mehrprozessorsystem
DE2749884A1 (de) Einrichtung zum automatischen neuformatieren von daten in einem dv-system

Legal Events

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

Owner name: NXP B.V., EINDHOVEN, NL

8328 Change in the person/name/address of the agent

Representative=s name: EISENFUEHR, SPEISER & PARTNER, 10178 BERLIN