DE112008001143T5 - Serialisierung von Daten in einer Multi-Chip-Busimplementierung - Google Patents

Serialisierung von Daten in einer Multi-Chip-Busimplementierung Download PDF

Info

Publication number
DE112008001143T5
DE112008001143T5 DE112008001143T DE112008001143T DE112008001143T5 DE 112008001143 T5 DE112008001143 T5 DE 112008001143T5 DE 112008001143 T DE112008001143 T DE 112008001143T DE 112008001143 T DE112008001143 T DE 112008001143T DE 112008001143 T5 DE112008001143 T5 DE 112008001143T5
Authority
DE
Germany
Prior art keywords
bus
information
slave
matrix
serializer
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.)
Withdrawn
Application number
DE112008001143T
Other languages
English (en)
Inventor
Rocendo Bracamontes Del Toro
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.)
Atmel Corp
Original Assignee
Atmel Corp
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
Priority claimed from US11/741,156 external-priority patent/US7769933B2/en
Priority claimed from US11/741,328 external-priority patent/US7743186B2/en
Priority claimed from US11/741,250 external-priority patent/US7761632B2/en
Priority claimed from US11/741,352 external-priority patent/US7814250B2/en
Application filed by Atmel Corp filed Critical Atmel Corp
Publication of DE112008001143T5 publication Critical patent/DE112008001143T5/de
Withdrawn 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/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

Serialisierer zum Koppeln von Buskommunikationen für einen Slave oder einen Master in einem Bussystem, wobei der Serialisierer umfasst:
ein oder mehrere Schieberegister, die betrieben werden, um Informationen für das Senden über einen Kommunikationsbus zu serialisieren oder von einem Kommunikationsbus empfangene Informationen zu deserialisieren, und
einen Mechanismus, der mit den Schieberegistern verbunden ist und betrieben wird, um parallele Businformationen von einer Busmatrix zu den Schieberegistern für eine Serialisierung und Kommunikation zu dem Slave zu geben oder um parallele Businformationen von dem Master zu den Schieberegistern für eine Serialisierung zu geben, wobei der Mechanismus betrieben wird, um von den Schieberegistern empfangene deserialisierte Informationen zu einer Busmatrix oder dem Master zu geben, und wobei der Mechanismus einen oder mehrere Wartezyklen in die Kommunikation mit der Matrix oder dem Master während der Serialisierung und Deserialisierung einfügt.

Description

  • Anspruch auf Priorität
  • Der Vorteil der Priorität wird hiermit auf der Grundlage der folgenden US-Patentanmeldungen beansprucht, die hier vollständig unter Bezugnahme eingeschlossen sind: US-Patentanmeldung Nr. 11/741,250 vom 27. April 2007 mit dem Titel „Serialization of Data for Communication with Slave in Multi-Chip Bus Implementation”, US-Patentanmeldung Nr. 11/741,156 vom 27. April 2007 mit dem Titel „Serialization of Data for Communication with Master in Multi-Chip Bus Implementation”, US-Patentanmeldung Nr. 11/741,328 vom 27. April 2007 mit dem Titel „Serialization of Data for Communication with Different-Protocol Slave in Multi-Chip Bus Implementation”, US-Patentanmeldung Nr. 11/741,352 vom 27. April 2007 mit dem Titel „Serialization of Data for Multi-Chip Bus Implementation”.
  • Erfindungsfeld
  • Die vorliegende Erfindung betrifft integrierte Schaltungssysteme und insbesondere Architekturen für integrierte Schaltungssysteme.
  • Hintergrund der Erfindung
  • System-on-a-Chip (Soc)-Designs integrieren viele oder alle Komponenten eines Computers oder eines anderen elektronischen Geräts oder Systems auf einem IC-Chip und werden gewöhnlich verwendet, um Komponenten für eine höhere Systemleistung und eine einfachere Herstellung zu vereinigen. Ein typisches SoC umfasst ein oder mehrere Mikrocontroller (z. B. einen Mikroprozessor oder DSP-Kern), einen Speicher, Peripherieeinrichtungen, Schnittstellen, Zeitgeber, Spannungsregler, Stromverwaltungsschaltungen und externe Schnittstellen.
  • Die Komponenten eines SoC sind über einen proprietären oder branchenstandardmäßigen On-Chip-Bus verbunden, über den die Komponenten des SoC miteinander kommunizieren können. Ein derartiger dem Branchenstandard entsprechender Bus ist die Advanced Mikrocontroller Bus Architecture (AMBATM) von ARM Ltd., die eine übliche 32-Bit-Architektur für eingebettete CPUs ist. Der AMBA-On-Chip-Bus ist eine offene Spezifikation, die als Rahmen für SOC-Designs dient. Die Verwendung der AMBA-Spezifikation kann Bibliothekskerne miteinander verbinden und ermöglicht die Wiederverwendung von Bibliothekskomponenten. Bei einem Design in Übereinstimmung mit der Standard-AMBA-Schnittstelle können Module ohne vorausgehende Kenntnis des Systems, in dem die Komponente schließlich integriert wird, implementiert und getestet werden.
  • Die AMBA-Busschnittstelle enthält zwei verschiedene Protokolle: Advanced High Performance Bus (AHB) und Advanced Peripheral Bus (APB). Der AHB-Bus weist eine höhere Geschwindigkeit auf als der APB-Bus und wird gewöhnlich als Hochleistungssystem-Backbone-Bus verwendet.
  • 1 ist ein Blockdiagramm eines typischen AMBA-Systems 10 und zeigt die Integration der AMBA-AHB und APB-Busse bei Verwendung einer mehrschichtigen Verbindungsmatrix. Die mehreren Schichten enthalten eine AHB-Matrix 12, die AHB-Lite-Master 14 mit AHB-Lite-Slaves 16 verbindet, und eine AHB/APB-Brücke 18, die APB-Slaves 20 mit der AHB-Matrix 12 verbindet. Ein Bus-Master kann Lese- und Schreiboperationen einleiten, indem er Adress- und Steuerinformationen bereitstellt. Gewöhnlich darf zu einem bestimmten Zeitpunkt jeweils nur ein Master den Bus aktiv nutzen. Ein Bus-Slave antwortet auf eine Lese- oder Schreiboperation innerhalb eines vorgegebenen Adressraumbereichs. Der Slave signalisiert an den aktiven Master, ob die Übertragung erfolgreich war, fehlgeschlagen ist oder noch aussteht.
  • Die indem System 10 verwendeten Masters oder Slaves können standardmäßige AMBA-AHB-Komponenten oder „AHB-Lite”-Komponenten (wie in 1 gezeigt) sein. AHB-Lite ist ein Teilsatz der vollständigen AHB-Spezifikation und kann in Designs verwendet werden, in denen ein einzelner Bus-Master verwendet wird, wobei es sich etwa um ein einfaches Single-Master-System oder ein mehrschichtiges AHB-System mit nur einem AHB-Master pro Schicht handeln kann. AHB-Lite vereinfacht die AHB-Spezifikation, indem auf das für mehrere Bus-Master erforderliche Protokoll verzichtet wird, sodass die in Übereinstimmung mit der AHB-Lite-Schnittstellenspezifikation entworfenen Masters ein einfacheres Schnittstellendesign aufweisen können als ein gewöhnlicher AHB-Master.
  • 2 ist ein Blockdiagramm, das ein AMBA-Bussystem 40 mit zwei IC-Chips zeigt. Ein üblicher Ansatz sieht vor, dass die Komponenten eines SoC auf zwei oder mehr Chips verteilt werden, wie etwa auf die Chips 42 und 44, die über eine Standardschnittstelle wie etwa AMBA miteinander kommunizieren. Gewöhnlich ist die AHB- und APB-Busschnittstelle außerhalb jedes Chips für jeden Master und Slave verfügbar, um eine Verbindung zu anderen Chips zu gestatten. In 2 verbinden die AHB-Busse 46 und die APB-Busse 48 die zwei Chips 42 und 44, wobei der Chip 44 zwölf zusätzliche Masters und Slaves für das System 40 vorsieht.
  • Ein Nachteil des in 2 gezeigten Systems besteht darin, dass die Komplexität und die Gesamtkosten des Systems exponentiell in Übereinstimmung mit der für alle Chips im gesamten System erforderlichen Anzahl von AHB- und APB-Schnittstellenbussen anwachsen. Durchschnittlich werden 100 oder mehr Leitungen für jeden AHB- und APB-Bus benötigt, wobei die genaue Anzahl von der Anzahl der durch die Slaves benötigten Adressen abhängt. Dieser Ansatz wird impraktikabel, wenn die Anzahl der AHB- und APB-Schnittstellenbusse die Höchstzahl der verfügbaren E/A-Stifte erreicht. Mit anderen Worten hängt die maximale Anzahl von AHB- und APB-Schnittstellenbussen direkt von der verfügbaren Anzahl von E/A-Stiften ab.
  • Wenn zum Beispiel in dem Beispiel von 2 die durchschnittliche Anzahl von Leitungen pro Bus bei 100 liegt und diese Anzahl von Leitungen mit der Anzahl von Masters und Slaves (12) multipliziert wird, sind mindestens 1200 E/A-Stifte erforderlich, um die Schnittstellenanforderungen zu erfüllen. Wenn also mehrere Masters und Slaves in dem System enthalten sind, was ja gewöhnlich der Fall ist, kann die erforderliche Anzahl von Kommunikationsleitungen stark anwachsen, was impraktikabel sein kann und/oder die Komplexität und die Kosten des SoC aufgrund der hohen Anzahl von E/A erhöhen kann.
  • Dementsprechend wären in vielen Anwendungen ein Verfahren und ein System vorteilhaft, mit denen die Komponenten eines Systems auf einem Chip mit einer Busarchitektur verbunden werden könnten, ohne dass dazu viele die Komplexität erhöhende Kommunikationsleitungen erforderlich sind.
  • Zusammenfassung der Erfindung
  • Die Erfindung der vorliegenden Anwendung betrifft die Buskommunikation für Komponenten eines Systems auf einem Chip. Gemäß einem Aspekt der Erfindung umfasst ein Serialisierer für die Kopplung von Buskommunikationen für einen Slave in einem Bussystem ein oder mehrere Schieberegister, die Informationen für das Senden über einen Kommunikationsbus serialisieren und über den Kommunikationsbus empfangene Informationen deserialisieren. Ein Mechanismus gibt parallele Businformationen aus einer Busmatrix zu den Schieberegistern für eine Serialisierung und eine Kommunikation mit dem Slave und gibt aus den Schieberegistern empfangene deserialisierte Informationen an eine Busmatrix. Der Mechanismus fügt einen oder mehrere Wartezyklen in die Kommunikation mit der Matrix während der Serialisierung und Deserialisierung ein. Gemäß einem anderen Aspekt gibt der Mechanismus von den Schieberegistern empfangene deserialisierte Informationen an den Master und fügt einen oder mehrere Wartezyklen in der Kommunikation mit dem Master während der Serialisierung und Deserialisierung ein.
  • Gemäß einem anderen Aspekt der Erfindung umfasst ein Verfahren zum Koppeln von Buskommunikationen für einen Slave in einem Bussystem das Empfangen von parallelen Businformationen von einer Busmatrix, wobei die parallelen Businformationen an den Slave adressiert sind, sowie das Serialisieren der parallelen Businformationen und das Senden der seriellen Informationen auf einem Kommunikationsbus. Ein Wartezyklus zu der Busmatrix wird während der Serialisierung der parallelen Businformationen und dem Senden der seriellen Informationen eingefügt. Ein ähnlicher Aspekt der Erfindung sieht ein computerlesbares Medium mit Programmbefehlen zum Implementieren derartiger Merkmale vor.
  • Gemäß einem anderen Aspekt der Erfindung umfasst ein Verfahren zum Koppeln von Buskommunikationen für einen Master in einem Bussystem das Empfangen von parallelen Businformationen von einem Master, wobei die parallelen Businformationen an einen Slave adressiert sind, sowie das Serialisieren der parallelen Businformationen und das Senden der seriellen Informationen auf einem Kommunikationsbus. Ein Wartezyklus zu dem Master wird während der Serialisierung der parallelen Businformationen und dem Senden der seriellen Informationen eingefügt. Ein ähnlicher Aspekt der Erfindung sieht ein computerlesbares Medium mit Programmbefehlen zum Implementieren derartiger Merkmale vor.
  • Gemäß einem anderen Aspekt der Erfindung umfasst ein Verfahren zum Koppeln von Buskommunikationen für einen Slave in einem Bussystem das Empfangen von seriellen Informationen auf einem Kommunikationsbus, wobei die seriellen Informationen von Informationen abgeleitet werden, die durch eine Busmatrix vorgesehen und an einen Slave adressiert sind. Die durch die Busmatrix vorgesehen Informationen werden von Informationen aus einem Master abgeleitet. Die seriellen Informationen werden deserialisiert, um parallele Informationen zu erhalten, die dann zu dem Slave gegeben werden. Eine Antwort auf die parallelen Informationen von dem Slave wird empfangen und serialisiert, um die Antwort auf dem Kommunikationsbus zu der Busmatrix zu geben. Ein ähnlicher Aspekt der Erfindung sieht ein computerlesbares Medium mit Programmbefehlen zum Implementieren derartiger Merkmale vor.
  • Gemäß einem anderen Aspekt der Erfindung umfasst ein System mit einer Buskommunikation zu einem Master einen Master, der betrieben wird, um Informationen zu lesen und zu einem Slave des Systems zu schreiben, wobei der Master an einer ersten Einrichtung vorgesehen ist. Ein erster Serialisierer ist mit dem Master verbunden und an einer ersten Einrichtung vorgesehen, wobei der erste Serialisierer die von dem Master empfangenen Informationen serialisiert und die serialisierten Informationen über einen Kommunikationsbus sendet. Ein zweiter Serialisierer ist an einer zweiten Einrichtung vorgesehen und mit dem Kommunikationsbus verbunden, wobei der zweite Serialisierer die serialisierten Informationen empfängt und die serialisierten Informationen deserialisiert. Eine Busmatrix an der zweiten Einrichtung ist mit dem zweiten Serialisierer verbunden und wählt Ziele für die Informationen auf mehreren mit der Busmatrix verbundenen Bussen aus, wobei die deserialisierten Informationen auf die Busmatrix gegeben und zu dem Slave geführt werden.
  • Gemäß einem anderen Aspekt der Erfindung umfasst ein System mit einer Buskommunikation zu einem Slave eine Busmatrix, die betrieben wird, um Informationen unter Verwendung von Bussen des Systems zu kommunizieren, wobei die Busmatrix an einer ersten Einrichtung vorgesehen ist. Ein erster Serialisierer ist mit der Busmatrix verbunden und an einer ersten Einrichtung vorgesehen, wobei der erste Serialisierer die von der Busmatrix empfangenen Informationen serialisiert und die serialisierten Informationen über einen Kommunikationsbus sendet. Ein zweiter Serialisierer ist an einer zweiten Einrichtung vorgesehen und mit dem Kommunikationsbus verbunden, wobei der zweite Serialisierer die serialisierten Informationen empfängt und die serialisierten Informationen deserialisiert. Ein Slave an der zweiten Einrichtung ist mit dem zweiten Serialisierer verbunden und sieht eine Antwort für die Informationen von der Busmatrix vor, wobei die deserialisierten Informationen zu dem Slave gegeben werden.
  • Gemäß einem Aspekt der Erfindung umfasst ein System mit einer Buskommunikation eine Matrix, die betrieben wird, um Ziele für Informationen auf den mit der Matrix verbundenen Bussen zu wählen. Ein erster Serialisierer an einer ersten Einrichtung serialisiert von der Matrix empfangene Informationen und sendet die serialisierten Informationen über einen Kommunikationsbus. Ein zweiter Serialisierer an einer zweiten Einrichtung empfängt die serialisierten Informationen und deserialisiert die serialisierten Informationen, wobei die deserialisierten Informationen zu einer Peripherieeinrichtung an der zweiten Einrichtung gegeben werden.
  • Gemäß einem anderen Aspekt der Erfindung umfasst ein Verfahren zum Vorsehen einer Buskommunikation das Serialisieren der von einer Matrix empfangenen Businformationen unter Verwendung eines ersten Serialisierers an einer ersten Einrichtung und das Senden der serialisierten Businformationen über einen Kommunikationsbus. Die serialisierten Businformationen von dem Kommunikationsbus werden empfangen und unter Verwendung eines zweiten Serialisierers an einer zweiten Einrichtung deserialisiert, wobei die deserialisierten Informationen zu einer Peripherieeinrichtung an der zweiten Einrichtung gegeben werden. Ein ähnlicher Aspekt der Erfindung gibt ein computerlesbares Medium mit Programmbefehlen zum Implementieren derartiger Merkmale an.
  • Gemäß einem anderen Aspekt der Erfindung umfasst ein System mit einer Buskommunikation eine Matrix, die betrieben wird, um Ziele für Informationen auf mehreren mit der Matrix verbundenen Bussen zu wählen, wobei die Matrix auf einem ersten Chip vorgesehen ist. Ein erster Serialisierer an dem ersten Chip serialisiert von der Matrix empfangene Informationen und sendet die serialisierten Informationen über einen Kommunikationsbus. Ein zweiter Serialisierer an dem zweiten Chip empfängt die serialisierten Informationen und deserialisiert die serialisierten Informationen. Eine Peripherieeinrichtung an dem zweiten Chip empfängt die deserialisierten Informationen von dem zweiten Serialisierer. Der erste und der zweite Serialisierer führen automatische Wartezyklen in das Kommunikationsprotokoll für den Kommunikationsbus ein, um eine Serialisierung der Informationen zu gestatten.
  • Die Erfindung der vorliegenden Erfindung betrifft eine Buskommunikation für Komponenten eines Systems auf einem Chip. Gemäß einem Aspekt der Erfindung umfasst ein System mit einer Buskommunikation zu einem Slave eine Brücke, die betrieben wird, um ein erstes Busprotokoll mit einer Busmatrix, die ein zweites Busprotokoll verwendet, zu koppeln. Eine erster Serialisierer, der mit der Brücke verbunden ist, serialisiert von der Brücke empfangene Informationen und sendet die serialisierten Informationen über einen Kommunikationsbus. Ein zweiter Serialisierer, der mit dem Kommunikationsbus verbunden ist, empfängt die serialisierten Informationen und deserialisiert die serialisierten Informationen. Ein Slave verwendet das erste Protokoll und ist mit dem zweiten Serialisierer verbunden, wobei die deserialisierten Informationen zu dem Slave gegeben werden und der Slave eine Antwort auf die Informationen von der Brücke vorsieht.
  • Gemäß einem anderen Aspekt der Erfindung umfasst ein Verfahren zum Koppeln von Buskommunikationen für einen Slave in einem Bussystem das Empfangen von parallelen Businformationen von einer Brücke, wobei die parallelen Businformationen zu dem Slave adressiert sind, wobei die Brücke betrieben wird, um ein erstes Busprotokoll mit einer Busmatrix zu koppeln, die ein zweites, sich von dem ersten Protokoll unterscheidendes Busprotokoll verwendet, wobei der Slave das erste Busprotokoll verwendet. Die parallelen Businformationen werden serialisiert und auf einem Kommunikationsbus gesendet. Ein Wartezyklus für die Brücke wird während des Serialisierens der parallelen Businformationen und des Sendens der seriellen Informationen eingefügt. Ein ähnlicher Aspekt der Erfindung gibt ein computerlesbares Medium mit Programmbefehlen zum Implementieren von derartigen Merkmalen an.
  • Gemäß einem Aspekt der Erfindung umfasst ein Verfahren zum Koppeln von Buskommunikationen für eine Slave das Geben eines Wahlsignals und eines Aktivierungssignals an den Slave, um eine Kommunikation mit dem Slave zu ermöglichen, wobei das Wahlsignal und das Aktivierungssignal durch eine Brücke vorgesehen werden, die betrieben wird, um zwei verschiedene Busprotokolle in einem Bussystem zu koppeln. Ein Wartesignal wird empfangen, das einen Wartezustand in der Brücke veranlasst, bis die serielle Kommunikation mit dem Slave abgeschlossen ist. Ein ähnlicher Aspekt der Erfindung gibt ein computerlesbares Medium mit Programmbefehlen zum Implementieren von derartigen Merkmalen an.
  • Die vorliegende Erfindung reduziert die Verbindungskomplexität und die Kosten, wenn ein Bussystem wie etwa ein AMBA-System über mehrere Einrichtungen wie etwa Chips vorgesehen wird. Die Anzahl von Leitungen, die für eine Kommunikation von Masters und Slaves verschiedener Chips in dem System erforderlich ist, wird um eine Größenordnung reduziert. Weiterhin werden die Kosten für das Gesamtsystem reduziert, weil die kostspielige Anforderung einer großen Anzahl von E/A-Stiften reduziert wird.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm, das ein Standardsystem auf einem Chip und eine Busarchitektur aus dem Stand der Technik zeigt.
  • 2 ist ein Blockdiagramm, das ein Multi-Chip-System auf einem Chip aus dem Stand der Technik zeigt.
  • 3 ist ein Blockdiagramm, das ein Multi-Chip-System der vorliegenden Erfindung zeigt.
  • 4 ist ein Blockdiagramm, das ein Serialisierersystem der vorliegenden Erfindung zeigt.
  • 5A ist ein Blockdiagramm, das einen standardmäßigen AHB-Master und dessen Schnittstelle aus dem Stand der Technik zeigt.
  • 5B ist ein Zeitdiagramm, das den Zeitablauf der Signale an der Master-Schnittstelle von 5A zeigt.
  • 6 ist ein Blockdiagramm, das ein standardmäßiges Chip-Layout für AHB-Masters in einem SoC aus dem Stand der Technik zeigt.
  • 7 ist ein Blockdiagramm einer Chip-Layoutsystems für Inter-Chip-AHB-Master in einem SoC der vorliegenden Erfindung.
  • 8 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform der Master-Serialisierer der vorliegenden Erfindung an einer Schnittstelle zwischen einem Master und einer Matrix zeigt.
  • 9 ist ein Flussdiagramm, das ein beispielhaftes Verfahren oder Betriebszustände der linken Zustandsmaschine des Master-Serialisierers auf dem Chip des Masters zeigt.
  • 10 ist ein schematisches Diagramm, das eine beispielhafte Ausführungsform der synchronen Schieberegister eines Serialisierers zeigt.
  • 11 ist ein Flussdiagramm, das ein beispielhaftes Verfahren oder Betriebszustände der rechten Zustandsmaschine des Master-Serialisierers auf dem Chip des Masters zeigt.
  • 12 ist ein Zeitdiagramm, das den Zeitablauf für eine Übertragung zwischen einem Master und der Matrix einschließlich der Serialisierung der vorliegenden Erfindung zeigt.
  • 13A ist ein Blockdiagramm, das einen standardmäßigen AHB-Slave und dessen Schnittstelle zeigt.
  • 13B ist ein Zeitdiagramm, das einen standardmäßigen AHB-Slave und dessen Schnittstelle zeigt.
  • 14 ist ein Blockdiagramm, das ein standardmäßiges Chip-Layout für AHB-Slaves in einem standardmäßigen SoC aus dem Stand der Technik zeigt.
  • 15 ist ein Blockdiagramm, das ein Chip-Layoutsystem für Inter-Chip-AHB-Slaves in einem SoC der vorliegenden Erfindung zeigt.
  • 16 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform von Slave-Serialisierern der vorliegenden Erfindung in einer Schnittstelle zwischen einem AHB-Slave und der Matrix zeigt.
  • 17 ist ein Flussdiagramm, das ein beispielhaftes Verfahren oder Betriebszustände der linken Zustandsmaschine des Slave-Serialisierers auf dem Chip der Matrix zeigt.
  • 18 ist ein Flussdiagramm, das ein beispielhaftes Verfahren oder Betriebszustände der rechten Zustandsmaschine des Slave-Serialisierers auf dem Chip des Slaves zeigt.
  • 19 ist ein Zeitdiagramm, das den Zeitablauf für eine Übertragung zwischen der Matrix und einem AHB-Slave einschließlich der Serialisierung der vorliegenden Erfindung zeigt.
  • 20A ist ein Blockdiagramm, das einen standardmäßigen APB-Slave und dessen Schnittstelle zeigt.
  • 20B ist ein Zeitdiagramm, das einen standardmäßigen APB-Slave und dessen Schnittstelle für eine Schreibübertragung zeigt.
  • 20C ist ein Zeitdiagramm, das einen standardmäßigen APB-Slave und dessen Schnittstelle für eine Leseübertragung zeigt.
  • 21 ist ein Blockdiagramm, das ein standardmäßiges Chip-Layout für APB-Slaves in einem SoC aus dem Stand der Technik zeigt.
  • 22 ist ein Blockdiagramm, das ein beispielhaftes Chip-Layoutsystem für Inter-Chip-Slaves in einem SoC der vorliegenden Erfindung zeigt, wobei Slaves ein anderes Protokoll verwenden als die Matrix des Bussystems.
  • 23 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform von Slave-Serialisierern der vorliegenden Erfindung an einer Schnittstelle zwischen einem APB-Slave und einer erweiterten AHB/APC-Brücke zeigt.
  • 24 ist ein Flussdiagramm, das ein beispielhaftes Verfahren oder Betriebszustände der linken Zustandsmaschine des Slave-Serialisierers auf dem Chip der erweiterten Brücke zeigt.
  • 25 ist ein Flussdiagramm, das eine standardmäßige Zustandsmaschine in einer AHB/APB-Brücke aus dem Stand der Technik zeigt.
  • 26 ist ein Flussdiagramm, das ein Verfahren oder Betriebszustände für die erweiterte AHB/APB-Brücke der vorliegenden Erfindung zeigt.
  • 27 ist ein Flussdiagramm, das ein beispielhaftes Verfahren oder Betriebszustände der rechten Zustandsmaschine des APB-Serialisierers auf dem Chip des APB-Slaves zeigt.
  • 28A ist ein Zeitdiagramm, das einen Zeitablauf für eine Leseübertragung zwischen der erweiterten Brücke und dem APB-Slave einschließlich der Serialisierung der vorliegenden Erfindung zeigt.
  • 28B ist ein Zeitdiagram, das den Zeitablauf für eine Schreibübertragung zwischen der erweiterten Brücke und dem APB-Slave einschließlich der Serialisierung der vorliegenden Erfindung zeigt.
  • 29 ist ein Blockdiagramm, das eine andere Ausführungsform eines Multi-Chip-Busarchitektursystems der vorliegenden Erfindung zeigt.
  • Ausführliche Beschreibung
  • Die vorliegende Erfindung betrifft integrierte Schaltungssysteme und insbesondere Busarchitekturen für integrierte Schaltungssysteme. Die folgende Beschreibung soll es dem Fachmann unter Erfüllung aller Anforderungen an eine Patentanmeldung ermöglichen, die Erfindung zu realisieren und zu nutzen. Der Fachmann kann verschiedene Modifikationen an der bevorzugten Ausführungsform vornehmen, wobei dem Fachmann die allgemeinen Prinzipien und die hier beschriebenen Merkmale deutlich sein sollten. Die vorliegende Erfindung ist also nicht auf die hier beschriebene Ausführungsform beschränkt, sondern wird durch die nachfolgend beschriebenen allgemeinen Prinzipien und Merkmale definiert.
  • Die vorliegende Erfindung wird hauptsächlich anhand von bestimmten Schaltungen in besonderen Implementierungen beschrieben. Dem Fachmann sollte jedoch deutlich sein, dass die Schaltung auch in anderen Implementierungen und Anwendungen effektiv betrieben werden kann. Die vorliegende Erfindung wird weiterhin in dem Kontext besonderer Verfahren mit bestimmten Schritten oder Zuständen beschrieben. Das Verfahren und das System können jedoch auch effektiv für andere Verfahren mit anderen und/oder zusätzlichen Schritten betrieben werden.
  • Die folgende Beschreibung der Merkmale der vorliegenden Erfindung nimmt auf die 3 bis 29 Bezug.
  • 3 ist ein Blockdiagramm eines Multi-Chip-SoC 100 der vorliegenden Erfindung. Das System 100 kann auf einer beliebigen, geeigneten Leiterplatte oder einem Substrat vorgesehen werden, auf dem mehrere Einrichtungen (Einrichtungen wie etwa IC-Chips oder ähnliches) und Verbindungen zwischen denselben vorsehen sind. In der beispielhaften Ausführungsform von 3 umfasst das System 100 zwei Chips, den Chip 102 und den Chip 103, über die das System 100 verteilt ist und die über mehrere Kommunikationsbusse miteinander verbunden sind. Zum Beispiel kann die vorliegende Erfindung verwendet werden, um einen Prototyp für ein AMBA-Bussystem auf einer Entwicklungsleiterplatte zu erstellen, wobei ein Basissystem-Chip (der Chip 102 in dem Beispiel von 3) einschließlich der Hauptkomponenten als Bezug verwendet wird und zusätzliche Master- und/oder Slave-Periepherieeinrichtungen in einer oder mehreren Einrichtungen (in dem Chip 103 in dem Beispiel von 3) hinzugefügt werden. In anderen Ausführungsformen des Systems 100 können die Komponenten auch anders über die verschiedenen Einrichtungen verteilt sein und/oder zusätzliche Einrichtungen in Übereinstimmung mit der gewünschten Anwendung vorgesehen sein.
  • Das System 100 umfasst einen Prozessor 104 und eine Matrix 106. Der Prozessor 104 kann eine beliebige, geeignete Steuereinrichtung wie etwa ein Mikroprozessor, eine anwendungsspezifische integrierte Schaltung (ASIC), ein digitaler Signalprozessor (DSP) usw. sein. Der Prozessor 104 ist mit der Matrix 106 verbunden, die eine Kommunikationsarchitektur vorsieht, über die verschiedene Slaves und Master des SoC-Systems derart miteinander verbunden sind, dass sie miteinander kommunizieren können. Die Matrix 106 erzeugt Steuersignale auf der Basis der bestimmenden Protokollzeiten, wobei es sich in dem gezeigten Beispiel um AHB-Protokollzeiten handelt. Die Matrix 106 umfasst gewöhnlich mehrere parallel zueinander vorgesehene Busse, die jeweils Informationsströme mit hoher Bandbreite unterstützen. Die Matrix 106 kann Kommunikationen handhaben und dabei eingehende Übertragungen für empfangende Slaves zwischenspeichern und Wahlsignale für Slaves erzeugen. Die Matrix 106 kann wählen, welche Signale von Masters zu einem Slave gesendet werden sollen und welche Signale von Slaves zu einem Master gesendet werden sollen. Die Matrix 106 kann gleichzeitige Anforderungen von mehreren Masters zu einem bestimmten Slave handhaben, indem sie den Master wählt, der auf diesen Slave zugreifen wird.
  • Die Matrix 106 ist mit verschiedenen Masters und Slaves verbunden. Diese Masters und Slaves können verschiedene elektronische Einrichtungen und Komponenten sein. Dabei werden die Masters und Slaves gesammelt als „Peripherieeinrichtungen” bezeichnet. In dem Beispiel von 3 sind mehrere Masters und Slaves auf demselben Chip 102 zusammen mit dem Prozessor 104 und der Matrix 106 enthalten, sodass also ein vollständiges System auf dem Chip 102 vorgesehen ist. Dazu gehören AHB-Master 110, die über einen AHB-Bus 112 mit der Matrix 106 verbunden sind. Außerdem sind AHB-Slaves 114 auf dem Chip 102 enthalten, die über den AHB-Bus 112 mit der Matrix verbunden sind.
  • Eine AHB/APB-Brücke 116 kann auf dem Chip 102 enthalten sein, um eine Kopplung von einer AHB-Matrix zu APB- Einrichtungen zu ermöglichen. Die Brücke 116 ist mit der Matrix 106 über den AHB-Bus 112 und mit den APB-Slaves 118 auf dem Chip 102 über einen APB-Bus 120 verbunden.
  • Mehrere andere Busse und deren Verbindungen sind auf dem Chip 102 vorgesehen, um mit anderen zusätzlichen Master- und Slave-Einrichtungen auf anderen Chips wie etwa dem Chip 103 verbunden zu werden. Der Chip 102 umfasst zusätzliche Peripherieeinrichtungen, die mit anderen Peripherieeinrichtungen des Systems wie zusätzlichen Master- und Slave-Einrichtungen kommunizieren können. Gemäß der vorliegenden Erfindung sind die Verbindungsbusse zwischen den Chips 102 und 103 mit Serialisierern auf dem Chip 102 und dem Chip 103 versehen, um die erforderliche Anzahl von Busverbindungen zu reduzieren, wodurch auch die Komplexität und die Kosten des Systems 100 reduziert werden. Die Serialisierer und die Deserialisierer der vorliegenden Erfindung ersetzen hunderte von Verbindungsleitungen in der Kommunikation mit Masters und Slaves auf anderen Chips.
  • Die Serialisierer auf dem Chip 102 sind von verschiedenen Typen für verschiedene Einrichtungen und umfassen Master-Serialisierer (MSs) 126, die mit dem AHB-Bus 112 verbunden sind und für die Verwendung mit AHB-Masters 110 vorgesehen sind, Slave-Serialisierer (SSs) 128, die mit dem AHB-Bus 112 verbunden sind und für die Verwendung mit AHB-Slaves 114 vorgesehen sind, und APB-Slave-Serialisierer (APBSs) 130, die mit dem APB-Bus 120 verbunden sind und für die Verwendung mit APB-Slaves 118 vorgesehen sind. Jeder Typ von Serialisierer weist eine besondere Schnittstelle und Komponenten auf, um den korrekten Zeitablauf für den assoziierten Bus und die assoziierte Einrichtung zu steuern. Die Serialisierer werden weiter unten genauer mit Bezug auf 4 beschrieben.
  • Serialisierte Informationen aus einem Serialisierer 126, 128 oder 130 werden über einen Inter-Chip-Kommunikationsbus zu einem Serialisierer auf dem anderen Chip 103 übertragen. Für die Master-Serialisierer 126 werden die Busse 132 verwendet, für die Slave-Serialisierer 128 werden die Busse 134 verwendet und für die APB-Slave-Serialisierer 130 werden die Busse 136 verwendet. Diese Busse sind in dem Beispiel jeweils mit nur 11 oder 12 Leitungen gezeigt, was in Vergleich zu den Implementierungen aus dem Stand der Technik eine wesentliche Verminderung in der Anzahl von Leitungen darstellt. Ein serieller Takt 124 wird verwendet, um die serielle Kommunikation über die Busse 132, 134 und 136 zu bestimmen.
  • Auf dem Chip 103 senden und empfangen ähnliche Serialisierer Informationen über die Busse 132, 134 und 136. Master-Serialisierer 138 senden und empfangen Signale auf Bussen 132. Slave-Serialisierer 140 senden und empfangen Signale auf Bussen 134. Und APBS-Serialisierer senden und empfangen Signale auf Bussen 136. Diese Serialisierer deserialisieren empfangene Signale und geben die deserialisierten Signale zu assoziierten Master- oder Slave-Einrichtungen auf dem Chip 103, die mit den Serialisierern verbunden sind. Zum Beispiel geben Serialisierer 138 Signale zu zusätzlichen AHB-Mastern 144 auf Bussen 145, geben Serialisierer 140 Signale zu zusätzlichen AHB-Slaves 146 auf Bussen 147 und geben Serialisierer 142 Signale zu zusätzlichen APB-Slaves 148 auf Bussen 149.
  • Ähnliche Kommunikationen wie die oben beschriebenen, jedoch in der umgekehrten Richtung, werden durchgeführt, wenn die Peripherieeinrichtungen auf dem Chip 103 Informationen zurück an die Komponenten auf dem Chip 102 über Busse 132, 134 und 136 senden.
  • Die Funktionen der Serialisierer sowie der anderen Komponenten des Systems können durch Programmbefehle in einer Software implementiert werden, die auf einem computerlesbaren Medium wie etwa einem Speicher, einer Festplatte oder einer anderen magnetischen Platte, einer optischen Platte (CD-ROM, DVD-ROM) usw. gespeichert sein kann. Alternativ hierzu können einige oder alle Funktionen unter Verwendung von Hardware (Logikgatter usw.) oder durch eine Kombination von Soft- und Hardware implementiert werden.
  • 4 ist ein Blockdiagramm, das ein Serialisierersystem 150 der vorliegenden Erfindung zeigt. Die Serialisierer müssen sich genau an den verwendeten Zeitablauf des Bus-Protokolls (z. B. an den Zeitablauf des AMBA-Busses) halten, sodass das Protokoll nicht verletzt wird. Das Serialisierersystem 150 umfasst einen Serialisierer 152 und einen Serialisierer 154, die über einen Kommunikationsbus 156 kommunizieren können. In dem gezeigten Beispiel ist der Serialisierer 152 auf dem Chip 102 vorgesehen und ist der Serialisierer 154 auf dem Chip 103 vorgesehen, sodass der Bus 156 zwischen den zwei Chips gekoppelt ist. In anderen Ausführungsformen können auch andere Konfigurationen verwendet werden.
  • In dem Beispiel von 4 empfängt der Serialisierer 152 parallele Informationen von einem „vor-seriellen” AHB- oder APB-Bus 158, auf dem die Informationen zu dem anderen Chip 103 gesendet werden sollen. Der Serialisierer 152 umfasst einen Zustandsmaschinen-Steuerblock 160, der verwendet wird, um die serielle Kommunikation zu steuern und automatische Wartezyklen in die Kommunikation der Informationen einzufügen. Diese Wartezyklen werden während des Serialisierungsprozesses ausgeführt, bis eine Antwort von der adressierten Master- oder Slave-Einrichtung erhalten wurde.
  • Die Anzahl der eingefügten automatischen Wartezyklen hängt von dem Verhältnis zwischen den Frequenzen des seriellen Takts und des HCLK ab. Wenn das Verhältnis zwischen den Frequenzen des seriellen Takts und des HCLK größer ist, ist die Anzahl der automatischen Wartezyklen kleiner. In einer beispielhaften Ausführungsform kann die Anzahl der automatischen HCLK-Wartezyklen unter Verwendung der folgenden Gleichung angenähert werden: Wartezyklen = Tsync1 + Treq + Pr + Tres + Tsync2wobei Tre1 die Übertragungsanforderung ist, die 8 serielle Takte benötigt, Tres die Übertragungsantwort ist, die 8 serielle Takte benötigt, Pr die Peripherieantwort ist, die je nach der besonderen Peripherieeinrichtung eine variable Anzahl von Takten benötigt, und Tsync1 und Tsync2 jeweils die Zeiten zum Synchronisieren des seriellen Taktes mit HCLK links und HCLK rechts sind, wobei es sich gewöhnlich um einen einzelnen HCLK-Zyklus handelt.
  • Wenn zum Beispiel der serielle Takt eine Frequenz von 200 MHz aufweist, die HCLKs eine Frequenz von 50 MHz aufweisen und die Peripherieantwort Pr gleich 1 HCLK-Zyklus ist, dann ist Treq gleich 8/(200/50), d. h. gleich 2 HCLK-Zyklen, und ist Tres gleich 8/(200/50), d. h. gleich 2 HCLK-Zyklen. Die Gesamtzahl der Wartezyklen ist in diesem Fall also 1 + 2 + 1 + 2 + 1, d. h. gleich 7 HCLK-Zyklen.
  • Der Zustandsmaschinen-Steuerblock 160 gibt die parallelen Informationen an einen Verschieber 162 und empfängt parallele Informationen von dem Verschieber 162. Der Verschieber wird verwendet, um parallele Informationen in eine serielle Form für die Übertragung zu verschieben oder um serielle Informationen in eine parallele Form für den Empfang zu verschieben. Die übertragenen seriellen Informationen oder die empfangenen seriellen Informationen werden über einen bidirektionalen E/A-Block von oder zu dem mit dem Kommunikationsbus 156 verbundenen Verschieber 162 gegeben. Der Zustandsmaschinen-Steuerblock 160 kann auch Signale direkt über den bidirektionalen E/A-Block 164 senden und empfangen.
  • Die durch den Serialisierer 152 serialisierten Informationen werden über den Bus 156 zu dem Serialisierer 154 gesendet, der in diesem Fall als ein Deserialisierer funktioniert. Der Serialisierer 154 empfängt die Informationen an einem bidirektionalen E/A-Block 166 und gibt die serialisierten Informationen zu einem Verschieber 168 (und/oder zu einer Zustandsmaschinen-Steuerung 170). Der Verschieber 168 gibt die deserialisierten (parallelen) Informationen zu dem Zustandsmaschinen-Steuerblock 170, der die Informationen zu dem nach-seriellen AHB- oder APB-Bus gibt (derselbe Typ von Busprotokoll wurde an dem vor-seriellen Ende der Übertragung verwendet). Dieser Bus gibt die Informationen zu der mit dem Bus verbundenen adressierten Peripherieeinrichtung. Entsprechend werden Informationen von den Peripherieeinrichtungen auf dem Chip 103 serialisiert, übertragen und an dem Chip 102 deserialisiert.
  • Neben den Serialisierer-Komponenten gestattet eine Verbesserung der vorliegenden Erfindung an der AHB/APB-Brücke 116, dass die Brücke Wartezyklen auf der APB-Sete des Systems unterstützt. Die Modifikationen an der AHB/APB-Brücke 116 werden weiter unten ausführlicher mit Bezug auf 26 erläutert.
  • Jeder der Serialisierer 152 und 154 weist eine besondere Schnittstelle und einen Zustandsmaschinen-Steuerblock zum Steuern des entsprechenden Zeitablaufs für seine Anwendung auf. Zum Beispiel können die Master-Serialisierer 126 jeweils AHB-Master-Serialisierer für eine Kopplung mit AHB-Mastern (oder AHB-Lite-Mastern sein). Alle Signale aus dem Master werden erfasst, bevor die Signale an der Busmatrix 106 ankommen, wobei die Serialisierer-Zustandsmaschine automatische Wartezyklen einfügt, um den Master in einem Wartezustand zu halten, bis eine entsprechende Antwort von dem adressierten Slave kommt. Die Slave-Serialisierer 128 können jeweils AHB-Slave-Serialisierer für eine Kopplung mit AHB-Slaves (oder mit AHB-Lite-Slaves) sein. Alle Signale von der Busmatrix 106 werden erfasst, bevor die Signale an dem AHB-Slave ankommen. Und die Serialisierer-Zustandsmaschine fügt automatische Wartezyklen ein, um die Matrix in einem Wartezustand zu halten, bis eine entsprechende Antwort von dem adressierten Slave kommt. Die APBS-Serialisierer 130 sind für eine Kopplung mit den APB-Slaves ausgebildet. Alle Signale von der AHB/APB-Brücke 116 werden erfasst, bevor sie an dem APB-Slave ankommen. Und die Serialisierer-Zustandsmaschine fügt automatische Wartezyklen ein, um die Brücke 116 in einem Wartezustand zu halten, bis eine entsprechende Antwort von dem adressierten Slave kommt. Die Details jedes besonderen Typs von Serialisierer werden nachfolgend in Verbindung mit den verschiedenen Anwendungen beschrieben, wobei die Master-Serialisierer mit Bezug auf 5A12 beschrieben werden, die Slave-Serialisierer mit Bezug auf 13A19 beschrieben werden und die APB-Slave-Serialisierer mit Bezug auf 20A28B beschrieben werden.
  • 5A ist ein Blockdiagramm, das eine standardmäßige AHB-Master-Einrichtung 14 aus dem Stand der Technik und deren Schnittstelle zeigt. In 5A ist ein AHB-Lite-Master als Master 14 gezeigt. Der AHB-Master 14 startet alle Übertragungen zu der AHB-Matrix 12. Die durch den AHB-Lite-Master benötigte Schnittstelle umfasst ein HCLK-Signal 180 und ein HRESETN-Signal 182. Der Master gibt die Signale 184 zu dem AHB-Lite-Bus und damit zu der Matrix 12. Die Signale 184 enthalten eine Adresse auf dem Bus HADDR und Daten auf dem Bus HWDATA. Der AHB-Lite-Master 14 empfängt Eingangssignale 186 von dem AHB-Lite-Bus einschließlich von Daten auf dem Bus HRDATA von einem Slave oder einer anderen Peripherieeinrichtung. 5B ist ein Zeitdiagramm 190, das den Zeitablauf der Signale in der Master-Schnittstelle von 5A zeigt.
  • 6 ist ein Blockdiagramm, das ein standardmäßiges Chip-Layout 200 für AHB-Master in einem SoC aus dem Stand der Technik zeigt. Ein erster Chip 202 umfasst eine AHB-Matrix 12 und AHB- und APB-Peripherieeinrichtungen 206, die mit der Matrix kommunizieren können. Ein zweiter Chip 204 umfasst eine Anzahl von AHB-Mastern 208. Wie gezeigt, erfordert die Anordnung aus dem Stand der Technik 113 Kommunikationsleitungen in jedem Bus 46, der einen einzelnen AHB-Master zwischen dem Chip 204 und dem Chip 202 verbindet. Wenn mehrere Master auf diese Weise, wie gezeigt und wie es üblich ist, verbunden werden, wird die erforderliche Gesamtanzahl der Kommunikationsleitungen stark erhöht, wodurch wiederum die Komplexität und die Kosten des SoC erhöht werden.
  • 7 ist ein Blockdiagramm, das ein Chip-Layoutsystem 220 für Inter-Chip-AHB-Master in einem SoC der vorliegenden Erfindung zeigt. Zum Beispiel kann das Chip-Layoutsystem 220 auf einer Leiterplatte 222 oder einem anderen geeignetem Substrat vorgesehen werden.
  • Die Leiterplatte 222 umfasst einen ersten Chip 102 und einen zweiten Chip 103, der mit dem ersten Chip 102 kommuniziert. Der erste Chip 102 umfasst einen Matrix 106 und AHB- und APB-Peripherieeinrichtungen 228. Die Peripherieeinrichtungen 228 können beliebige Komponenten umfassen, die die AHB- und APB-Protokolle verwenden, wie etwa eine AHB/APB-Brücke 116, Masters und Slaves auf dem Chip 102, einen oder mehrere geeignete Steuereinrichtungen (Mikroprozessoren, anwendungsspezifische integrierte Schaltungen (ASICs), digitale Signalprozessoren (DSPs) usw.) und andere geeignete Komponenten.
  • Gemäß der vorliegenden Erfindung ist jeder Bus, der über die Matrix 106 mit einem Master an einem anderen Chip verbunden werden soll, mit einem Master-Serialisierer (MS) 126 verbunden. Wie oben beschrieben, serialisiert der Master-Serialisierer 126 Informationen, die zu dem Chip gesendet werden, und deserialisiert Informationen, die von einem anderen Chip empfangen werden.
  • Der Chip 103 ist ebenfalls auf der Leiterplatte 222 vorgesehen und umfasst N Master 144 für die Verwendung mit der Busarchitektur und der Matrix 106 des Chips 102. Die Master 144 können zusätzliche Master wie in 3 gezeigt oder erforderliche Master des Systems sein. Jeder Master 144 weist einen Bus 145 auf, der mit dem anderen Chip 102 zu verbinden ist. In dem System der vorliegenden Erfindung ist jeder Bus 145 mit einem Master-Serialisierer 138 verbunden, der den Master-Serialisierern 126 auf dem Chip 102 ähnlich ist. Jeder Master-Serialisierer 138 ist über einen Kommunikationsbus 132 mit einem assoziierten Master-Serialisierer 126 verbunden. In dem gezeigten Beispiel sind aufgrund der Serialisierung nur 12 Leitungen pro Bus erforderlich, was eine beträchtliche Reduktion in der Anzahl der erforderlichen Busleitungen im Vergleich zu anderen Systemen und Verfahren darstellt. In der beschriebenen Ausführungsform sind einige der Kommunikationskanäle bidirektional, sodass die Anzahl der Leitungen zwischen den Chips 102 und 103 minimiert werden kann.
  • Das Verfahren der vorliegenden Erfindung basiert darauf, alle Signale von einem Master 144 abzufangen, bevor die Signale an der Matrix 106 ankommen. Die Serialisierer verwenden einfache vollsynchrone Hochgeschwindigkeits-Schieberegister, um Informationen zwischen dem Master 144 und der Matrix 106 zu serialisieren. Um die Serialisierung zu erreichen und die Synchronisation zwischen einem AHB-Lite-Master 144 und der Matrix 106 aufrechtzuerhalten, wird eine Zustandsmaschine verwendet, die alle Master-Übertragung zusammen mit den entsprechenden Steuer- und Wartezuständen erfasst und reproduziert. Die Zustandsmaschine in einem Serialisierer 138 fügt automatische Wartezyklen ein, um den Master 144 in einem Wartezustand zu halten, bis eine entsprechende Antwort von dem adressierten Slave über den entsprechenden Verbindungsbus 132 auftritt. Diese Operationen werden weiter unten ausführlicher mit Bezug auf 8 beschrieben.
  • 8 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform 240 der Master-Serialisierer 126 und 138 der vorliegenden Erfindung an einer Schnittstelle zwischen einem Master 144 und der Matrix 106 zeigt. In dem gezeigten Beispiel umfasst der Serialisierer 138 eine linke Zustandsmaschine 242, zwei 32-Bit-Schieberegister 244 und 246 und ein 16-Bit-Schieberegister 248. Die Zustandsmaschine 242 steuert den Betrieb des Serialisierers und fügt Wartezustände in dem Master 144 ein. Dies wird weiter unten ausführlicher mit Bezug auf 9 beschrieben. In anderen Ausführungsformen können andere Steuereinrichtungen anstelle einer Zustandsmaschine verwendet werden. Die zwei 32-Bit-Schieberegister 244 und 246 werden verwendet, um Informationen für den Adressbus und den Datenbus zu deserialisieren. Das 16-Bit-Schieberegister 248 wird verwendet, um die in dem Protokoll verwendeten Steuersignale zu serialisieren und zu deserialisieren. (Es ist kein Puffer für das Schieberegister 244 (und für andere ähnliche Schieberegister in den unten beschriebenen Beispielen) vorgesehen, weil es in der beschriebenen Ausführungsform unidirektional ist). In anderen Ausführungsformen können Schieberegister mit anderen Bitbreiten verwendet werden. Die Komponenten und der Betrieb der Schieberegister 244, 246 und 248 werden weiter unten ausführlicher mit Bezug auf 10 beschrieben.
  • Entsprechend umfasst der Serialisierer 126 eine rechte Zustandsmaschine 250, zwei 32-Bit-Schieberegister 252 und 254 und ein 16-Bit-Schieberegister 256. Die Zustandsmaschine 250 steuert den Betrieb des Serialisierers 126 wie weiter unten ausführlicher mit Bezug auf 11 beschrieben. Die zwei 32-Bit-Schieberegister 252 und 254 werden verwendet, um Informationen für den Adressbus und den Datenbus zu deserialisieren und zu serialisieren; und das 16-Bit-Schieberegister 256 wird verwendet, um die in dem Protokoll verwendeten Steuersignale zu deserialisieren und zu serialisieren. In anderen Ausführungsformen können auch Schieberegister mit anderen Bitbreiten verwendet werden. Die Komponenten und der Betrieb der Schieberegister 252, 254 und 256 werden weiter unten ausführlicher mit Bezug auf 10 beschrieben.
  • Das Schieberegister 244 ist mit dem Schieberegister 252 über einen Adressbus 260 verbunden, der in der beschriebenen Ausführungsform 4 Bits breit ist und unidirektional sein kann, damit der Master 144 einen Slave adressieren kann (der Master 144 muss keine Adressen empfangen). Das Schieberegister 246 ist mit dem Schieberegister 254 über einen bidirektionalen Datenbus 262 verbunden, der in der beschriebenen Ausführungsform 4 Bit breit ist; und das Schieberegister 248 ist mit dem Schieberegister 256 über einen bidirektionalen Steuerbus 264 verbunden, der in der beschriebenen Ausführungsform 2 Bits breit ist. Außerdem wird ein start_left_transfer-Signal 266 durch die linke Zustandsmaschine 242 verwendet, um eine Übertragung von Informationen von einem Master zu der Matrix zu wählen, und wird ein start_right_transfer-Signal 268 durch die rechte Zustandsmaschine 250 verwendet, um eine Übertragung von Informationen von der Matrix zu einem Master zu wählen. Diese Signale können zwischen den Serialisierern über dedizierte Leitungen gesendet werden. Die linke Zustandsmaschine 242 kann wahlweise ein HREADY-Signal 269 setzen, das zu dem Master 144 zurückgesendet wird, um Wartezustände einzuführen. Ein serielles Taktsignal 124 wird an beide Serialisierer 138 und 126 gegeben, um deren Funktionen der seriellen Kommunikation zu koordinieren. Die Verwendung dieser Signale wird mit Bezug auf 9 und 11 ausführlicher beschrieben.
  • HCLK-Signale 272 und 274 werden jeweils zu den Serialisierern 138 und 126 gegeben und sind Chip-Takte für die Chips 102 und 103, an denen die Serialisierer vorgesehen sind. HCLK_left und HCLK_right können Signale mit verschiedenen oder gleichen Frequenzen sein, je nach der gewünschten Frequenz für diesen Chip. In den beschriebenen Ausführungsformen weisen sie dieselbe Frequenz auf. Weil die Steuerung für die Schieberegister durch die Zustandsmaschinen 242 und 250 vorgesehen wird, wird der resynchronisierte Takt HCLK benötigt, um alle Operationen auszuführen. (Der serielle Takt bestimmt das Verschieben der Schieberegister und die serielle Kommunikation, während die HCLK-Signale die Kommunikation zu dem Master, dem Slave oder der Matrix bestimmen.) Der serielle Takt 124 muss eine größere Frequenz aufweisen als jedes der HCLK-Signale, damit eine gute Synchronisation zwischen der HCLK-Domäne und der Domäne des seriellen Takts aufrechterhalten werden kann.
  • 9 ist ein Flussdiagramm, das ein beispielhaftes Verfahren 300 oder Betriebszustände der linken Zustandsmaschine 242 des Master-Serialisierers 138 an dem Chip 103 des Masters 144 zeigt. Die linke Zustandsmaschine 242 steuert die Serialisierung und die Deserialisierung von Informationen und fügt auch automatische Wartezyklen ein, damit die Serialisierungsprozedur in Übereinstimmung mit dem Busprotokoll ausgeführt werden kann. Die Zustandsmaschine steuert den gesamten Zeitablauf und resynchronisiert die Informationen auf der Basis von HCLK_left mit der seriellen Taktdomäne „serial_clk” für die serielle Übertragung. Diese Synchronisation sollte auf beiden Seiten (links und rechts) des seriellen Kommunikationsbusses vorgenommen werden, um eine synchrone Hochgeschwindigkeits-Seriellübertragung zu ermöglichen.
  • Wie in Schritt 302 gezeigt, wartet die Zustandsmaschine 242, bis eine gültige Übertragung von dem Master 144 auftritt. Wenn keine gültige Übertragung auftritt, wartet die Zustandsmaschine weiter. Wenn das Hauptsystem-Rücksetzsignal HRESETN zu dem Master 144 durch eine externe Quelle (wie etwa eine Reset-Steuereinrichtung an dem Chip oder eine extern zu dem Chip vorgesehene Quelle) ausgegeben wird, muss die Zustandsmaschine 242 in Schritt 302 in den Wartezustand eintreten. Das HREADY-Signal 269 wird in diesem Zustand durch die Zustandsmaschine hoch gesetzt.
  • Eine gültige Übertragung wird angegeben, indem das HTRANS-Signal nicht inaktiv, sondern aktiv ist. Sobald dies der Fall ist und eine gültige Übertragung von dem Master 144 bewerkstelligt wird, geht die Zustandsmaschine zu Schritt 304 über, in dem Adress- und Steuersignale von dem Master erfasst werden. Weiterhin wird das HREADY-Signal 269 zu dem Master 144 niedrig gesetzt, um einen oder mehrere Wartezyklen in dem Master 144 einzufügen. Das HREADY-Signal wird durch die Zustandsmaschine eingeleitet und imitiert ein normaler HREADY-Signal von einem Slave oder Matrix (das den Master dazu veranlassen würde, auf eine Antwort des Slaves auf eine Anforderung zu warten). Wenn das HWRITE-Signal niedrig ist, dann hat der Master eine Leseoperation eingeleitet und keine Datensignale gesendet, sodass die Zustandsmaschine zu dem weiter unten beschriebenen Schritt 308 übergeht. Wenn das HWRITE-Signal gleich 1 ist, dann handelt es sich um eine Schreiboperation, wobei die Zustandsmaschine in Schritt 306 die Dateninformationen, die der Master zu schreiben wünscht, erfasst und dann zu Schritt 308 übergeht.
  • In Schritt 308 resynchronisiert die Zustandsmaschine 242 das Herausschieben von seriellen Informationen in Übereinstimmung mit dem seriellen Taktsignal 124, lädt die entsprechenden Schieberegister 244, 246 und 248 in Übereinstimmung mit dem Operationstyp (Lesen oder Schreiben) und startet die Übertragung von Informationen über die entsprechenden Busse 260, 262 und/oder 264. Die linke Zustandsmaschine 242 setzt auch das Signal 266 (start_left_transfer) hoch, sodass die rechte Zustandsmaschine 250 mit der Erfassung der eingehenden synchronen Informationen beginnen kann. Die linke Zustandsmaschine 242 hält das HREADY-Signal 269 niedrig, sodass der Master 244 wartet. Auf diese Weise fügt die Zustandsmaschine 242 automatische Wartezyklen ein.
  • Sobald das Verschieben abgeschlossen ist, fährt der Prozess mit Schritt 310 fort, in dem das start_left_transfer- Signal 266 auf null gesetzt wird. Die Zustandsmaschine wartet dann in Schritt 312 auf eine Antwort von der Matrix 106 in einem Haltezusand, während das start_right_transfer-Signal 268 gleich null ist. Die rechte Zustandsmaschine startet das start_right_transfer_Signal 268, wenn sie ein Antwortsignal zu der linken Zustandsmaschine senden möchte. Wenn das Signal 268 hoch geht, geht der Prozess zu Schritt 314 über, wo die linke Zustandsmaschine 242 die von dem seriellen Bus empfangenen seriellen Informationen zu einer parallelen Form verschiebt, und fährt mit dem Verschieben fort, bis alle Informationen empfangen wurden. Die Zustandsmaschine 242 synchronisiert die eingehenden Informationen aus den Hochgeschwindigkeits-Schieberegistern mit der HCLK_left-Taktdomäne. Die Zustandsmaschine 242 analysiert auch die HRESP-Signale von der Matrix 106, um zu bestimmen, ob die Operation erfolgreich war oder ob ein Fehler aufgetreten ist. Wenn das HRESP-Signal ein erfolgreiches Senden von Informationen angibt, dann wird in Schritt 316 das HREADY-Signal 269 hoch gesetzt, das den Master 144 darüber informiert, dass die Operation abgeschlossen ist, sodass der Master den Wartezyklus verlässt. Der Prozess kehrt dann zu Schritt 302 zurück, um auf eine andere gültige Übertragung von dem Master zu warten.
  • Wenn das HRESP-Signal in Schritt 314 einen Fehler in den empfangenen Informationen angibt, wird dies in Schritt 317 gemeldet (z. B. können Standard-Fehlerprozeduren eingeleitet werden), wobei dann die Zustandsmaschine 242 in Schritt 318 das HREADY-Signal zu dem Master 144 ähnlich wie in Schritt 316 ausgibt, damit der Master den Wartezyklus verlässt. Der Prozess kehrt dann zu Schritt 302 zurück, um auf eine andere gültige Übertragung von dem Master zu warten.
  • Während also die Serialisierung voranschreitet (d. h. in den Schritten 304314), wird das HREADY-Signal 269 niedrig gehalten, das einen Wartezustand in den Master 144 einführt. Nach der Antwort wird das HREADY-Signal freigegeben, sodass es hoch wird und die Antwort von der Matrix 106 zurück zu dem Master gegeben wird. (Das HREADY-Signal 269 (oder ein separates HREADY-Signal, wenn ein solches implementiert ist), kann wiederum durch den adressierten Slave während der Anforderung niedrig gesetzt oder niedrig gehalten werden, wenn der adressierte Slave mehr Zeit für die Antwort an den Master benötigt.)
  • 10 ist ein schematisches Diagramm, das eine beispielhafte Ausführungsform 330 der synchronen Schieberegister 244, 246, 248, 252, 254 und 256 zeigt. Die synchronen Schieberegister der Serialisierer umfassen eine Anordnung von Flip-Flops und mehrere Multiplexer, um den Informationsfluss zwischen ihnen zu bestimmen. Um eine bidirektionale Kommunikation zu unterstützen, unterstützen die Schieberegister 246, 248, 254 und 256 (nicht jedoch 244 und 252, weil diese in der beschriebenen Ausführungsform unidirektional sind) Funktionen zum seriellen Herausschieben, seriellen Hereinschieben, parallelen Laden und Schalten (zum Stoppen der Verschiebung) von Informationen. Die Zustandsmaschine 242 oder 250 sieht alle Steuerungen und Taktungen vor, um die Serialisierung und Deserialisierung der AHB-Lite-Master-Informationen zu bewerkstelligen.
  • Ein beispielhaftes 32-Bit-Schieberegister 330 umfasst Flip-Flops 332 und Multiplexer 334. In der beschriebenen Ausführungsform von 10 weisen die 32-Bit-Schieberegister 244, 246, 252 und 254 jeweils einen Tap 334 (d. h. eine Bitposition, die den nächsten Zustand des Schieberegisters beeinflusst) in den Bits 7, 15, 23 und 31 wie gezeigt auf. Die 16-Bit-Schieberegister 248 und 256 weisen jeweils einen Tap in den Bits 7 und 15 auf. Jeder Tap in dem Schieberegister umfasst einen bidirektionalen Puffer 336, wobei ein ähnlicher Puffer an dem anderen Ende des Busses 260, 262 oder 264 über einen Kommunikationskanal an der Leiterplatte verbunden ist (der Kanal 338 ist mit 4 Bits für das beispielhafte 32-Bit-Schieberegister 330 gezeigt). Weil in dem gezeigten Beispiel die Taps 334 in Gruppen von 8 Registern vorgesehen sind, sind nur acht serielle Taktzyklen erforderlich, um alle Informationen zu übertragen, unabhängig davon, ob das Schieberegister 16 oder 32 Bit breit ist.
  • Eine Herausschiebeprozedur für die 32-Bit-Register wird wie im Folgenden beschrieben ausgeführt. Sobald Informationen parallel von einem Ladeparallelbus 340 geladen wurden, werden die nächsten acht Zyklen aller Informationen seriell herausgeschoben. Zum Beispiel verschiebt die Leitung S-Bit 0 die Bits [7:0] nach außen, verschiebt die Leitung S-Bit 1 die Bits [15:8] nach außen, verschiebt die Leitung S-Bit 3 die Bits [23:16] nach außen und verschiebt die Leitung S-Bit 4 die Bits [31:24] nach außen. Wenn für ein Hereinschieben Informationen empfangen und erfasst werden, führt die Leitung S-Bit 0 das Bit 0 zu und führt eine Verschiebung durch, bis das Bit 7 empfangen wird, führt die Leitung S-Bit 1 das Bit 8 zu und führt eine Verschiebung durch, bis das Bit 15 empfangen wird, und führt die Leitung S-Bit 3 das Bit 24 zu und führt eine Verschiebung durch, bis das Bit 31 empfangen wird. Die verschobenen Bits werden zu dem Leseparallelbus 342 gegeben. Die 16-Bit-Schieberegister werden in gleicher Weise betrieben, wobei sie jedoch jeweils 2 S-Bit-Leitungen verwenden.
  • 11 ist ein Flussdiagramm, das ein beispielhaftes Verfahren 350 oder Betriebszustände der rechten Zustandsmaschine des Master-Serialisierers 126 an dem Chip 102 der Matrix 106 zeigt. Die rechte Zustandsmaschine 250 ist komplementärer Bestandteil des Systems und steuert alle Taktungen und Signale zu der Matrix 106.
  • Wie in Schritt 352 gezeigt, wartet die rechte Zustandsmaschine 250, während das start_left_transfer-Signal 266 gleich null ist. Wenn das HRESETN-Signal durch eine externe Quelle ausgegeben wird, wird die Zustandsmaschine 250 in Schritt 352 dazu gewunden, in den Wartezustand einzutreten. Wenn die Zustandsmaschine 250 erfasst, dass das start_left_transfer-Signal 266 durch die linke Zustandsmaschine 242 auf 1 gesetzt wurde, geht die Zustandsmaschine 250 zu Schritt 354 über, in dem die rechte Zustandsmaschine die empfangenen serialisierten Informationen unter Verwendung der Schieberegister verschiebt, bis die Verschiebung abgeschlossen ist und die Informationen in der parallelen Form vorliegen. In dem nächsten Schritt 356 werden die empfangenen Adress- und Steuersignale zu der Matrix 106 gegeben. Wenn das HWRITE-Signal von der Matrix 106 hoch ist, dann handelt es sich um eine Schreiboperation mit Daten, wobei die Zustandsmaschine in Schritt 358 die erfassten Daten zu der Matrix 106 gibt und mit Schritt 360 fortfährt. Wenn das HWRITE-Signal von der Matrix gleich null ist, handelt es sich um eine Leseoperation ohne Datensignale, wobei der Prozess in diesem Fall direkt von Schritt 356 zu Schritt 360 übergeht.
  • In Schritt 360 wartet die Zustandsmaschine 250 in einem Haltezustand, während das HREADY-Signal von der adressierten Peripherieeinrichtung (hier von der Matrix 106) gleich null ist. Wenn das HREADY-Signal hoch geht, ist die adressierte Peripherieeinrichtung bereit, ihre Antwort zu senden, wobei der Prozess in Schritt 362 die (über die Matrix 106 geführte) Antwort des Slaves erfasst. In dem nächsten Schritt 364 setzt die Zustandsmaschine das start_right_transfer-Signal 268 auf 1, um für die linke Zustandsmaschine 242 anzugeben, dass eine Antwort kommt, und verschiebt die Antwort zurück zu dem anderen Serialisierer 138 heraus, damit der Master die Antwort empfängt. (Das HREADY-Signal von der Matrix/dem Slave kann also über den seriellen Kommunikationsbus zu dem Serialisierer 138 in den Steuerbits gesendet werden, wobei der Serialisierer 138 das HREADY-Signal zu dem Master sendet, um anzugeben, dass der Slave dazu bereit ist, seine Antwort zu senden, wenn z. B. zuvor ein niedriges HREADY-Signal von dem adressierten Slave zu dem Master 144 gesendet wurde.) Der Prozess kehrt dann zu Schritt 352 zurück, um start_right_transfer 268 niedrig zu setzen und auf eine andere Übertragung zu warten (der eingefügte automatische Wartezyklus wird nur auf der linken Seite der seriellen Kommunikation, d. h. zu dem Master 144, vorgesehen.)
  • 12 ist ein Zeitdiagramm 370, das den Zeitablauf für eine Übertragung zwischen einem AHB-Lite-Master 144 und der Matrix 106 einschließlich der Serialisierung der vorliegenden Erfindung zeigt. In dem Diagramm entspricht die Zeit t1 der Zeit für eine standardmäßige Übertragung. Die Zeit t2 entspricht der Zeit zum Erfassen und Senden von serialisierten Informationen zu der Matrix. Die Zeit t3 entspricht der Zeit zum Wiederherstellen von seriellen Informationen und zum Reproduzieren der Operation auf der Seite der Matrix. Die Zeit t4 entspricht der Zeit zum Übertragen und Wiederherstellen der Antwort von der Matrix an den Master. Die Zeit t5 entspricht der Zeit zum Wiederherstellen der Antwort, die dem Master vorgelegt werden soll. Die Zeit t6 entspricht der Zeit, während der Wartezyklen automatisch eingefügt werden können.
  • Die Anzahl der eingefügten automatischen Wartezyklen hängt von dem Verhältnis des seriellen Takts 124 zu den HCLK-Signalen 272 und 274 (HCLK_left und HCLK_right, die in den hier beschriebenen Beispielen jeweils die gleiche Frequenz aufweisen) ab. Wenn das Verhältnis größer ist, ist die Anzahl der benötigten Wartezyklen kleiner.
  • 13A ist ein Blockdiagramm, das einen standardmäßigen AHB-Slave 16 und dessen Schnittstelle zeigt. In dem Beispiel von 13A ist ein AHB-Lite-Slave als Slave 16 gezeigt. Der AHB-Lite-Slave 16 antwortet auf Übertragungen, die durch mit der AHB-Matrix 12 verbundenen Busübertragungen eingeleitet werden. Die durch den Slave 16 benötigte Schnittstelle enthält Steuersignale 382 von dem AHB-Lite-Bus 32, die durch die Matrix in Übereinstimmung mit dem AHB-Protokoll erzeugt werden, mit Ausnahme eines HSEL-Signals 380, das durch den Slave 16 als Wahlsignal verwendet wird, um zu bestimmen, wann auf eine Busübertragung geantwortet werden soll. Der AHB-Lite-Slave 16 gibt Ausgabesignale 384 zurück zu dem AHB-Lite-Bus, wo sie dann zu der AHB-Matrix 12 gegeben werden. 13B ist ein Zeitdiagramm 386, das den Zeitablauf von Signalen für eine Basisübertragung für den Slave 16 zeigt.
  • 14 ist ein Blockdiagramm, das ein standardmäßiges Chip-Layout 390 für AHB-Slaves in einem SoC aus dem Stand der Technik zeigt. Auf einer Entwicklungsplatte 391 enthält ein erster Chip 392 eine AHB-Matrix 12 und einen ARM-Prozessor 393, der mit der Matrix kommunizieren kann. Ein zweiter Chip 394 enthält eine Anzahl von AHB-Lite-Slaves 396. Wie gezeigt, erfordert die Anordnung aus dem Stand der Technik 109 Kommunikationsleitungen (mit Ausnahe der Signale HRESETN und HCLK) in jedem AHB-Bus 46, der einen einzelnen AHB-Slave zwischen dem Chip 392 und dem Chip 394 verbindet. Wenn mehrere Slaves auf diese Weise verbunden sind, wie hier gezeigt und was auch gewöhnlich der Fall ist, nimmt die erforderliche Gesamtanzahl von Kommunikationsleitungen beträchtlich zu, wodurch wiederum die Komplexität und die Kosten des SoC erhöht werden.
  • 15 ist ein Blockdiagramm eines Chip-Layoutsystems 400 für Inter-Chip-AHB-Slaves in einem SoC der vorliegenden Erfindung. Zum Beispiel kann das Chip-Layoutsystem 400 auf einer Leiterplatte 402 oder einem anderen geeigneten Substrat vorgesehen werden.
  • Die Leiterplatte 402 enthält einen ersten Chip 102 und eine zweiten Chip 103, der mit dem ersten Chip 102 kommuniziert. Der erste Chip 102 umfasst einen Prozessor 104 und eine Matrix 106. Der Prozessor 104 kann eine beliebige geeignete Steuereinrichtung sein, wie sie mit Bezug auf 3 beschrieben wurde. Der Prozessor 104 ist mit der Matrix 106 verbunden, die die Slaves und Masters des Systems wie oben beschrieben verbindet. Die AHB-Lite-Slaves können mit einem oder mehreren Masters in dem System kommunizieren. Die Matrix 106 kann Wahlsignale für Slaves erzeugen und außerdem wählen, welche Signale von den Slaves zu einem Master gesendet werden und welche Informationen zu einem Slave gesendet werden.
  • Gemäß der vorliegenden Erfindung ist jeder über die Matrix 106 vorgesehene Bus, der mit einem Slave auf einem anderen Chip verbunden werden soll, mit einem Slave-Serialisierer (SS) 128 verbunden. Wie oben beschrieben, serialisiert der Slave-Serialisierer von einem Chip gesendete Informationen oder deserialisiert von einem anderen Chip empfangene Informationen.
  • Der Chip 103 ist auch auf der Leiterplatte 402 vorgesehen und enthält N AHB-Slaves 146 für die Verwendung mit der Busarchitektur und der Matrix 106 des Chips 102. Die Slaves 146 können zusätzliche Slaves wie oben in 3 gezeigt oder die erforderlichen Slaves des Systems sein. Jeder Slave 146 weist einen Bus 147 auf, der mit dem anderen Chip 102 verbunden werden soll. In dem System der vorliegenden Erfindung ist jeder Bus 147 mit einem Slave-Serialisierer 140 verbunden, der den Slave-Serialisierern 128 an dem Chip 102 ähnlich ist. Jeder Slave-Serialisierer 140 ist über einen Kommunikationsbus 134 mit einem assoziierten Slave-Serialisierer 128 verbunden. In dem gezeigten Beispiel sind aufgrund der Serialisierung nur 12 Leitungen pro Bus erforderlich, sodass also eine wesentliche Reduktion in der Anzahl der erforderlichen Busleitungen im Vergleich zu anderen Systemen und Verfahren möglich ist. In der beschriebenen Ausführungsform sind einige der Kommunikationskanäle bidirektional, sodass die Anzahl der Leitungen zwischen den Chips 102 und 103 minimiert werden kann.
  • Das Verfahren der vorliegenden Erfindung beruht auf dem Erfassen der Signale, die zu dem AHB-Slave gesendet werden sollen, und auf dem Einfügen von Wartezuständen in Übereinstimmung mit dem AHB-Protokoll, bis diese Signale durch den Slave 146 an dem anderen Ende empfangen werden. Eine Antwort wird dann von dem Slave innerhalb einer entsprechenden Reaktionszeit zurückgesendet. Die Serialisierer verwenden vollsynchrone Hochgeschwindigkeits-Schieberegister, um Informationen zwischen dem Slave 146 und der Matrix 106 zu serialisieren. Um die Serialisierung zu bewerkstelligen und die Synchronisation zwischen einem AHB-Slave und der Matrix aufrechtzuerhalten, wird eine Zustandsmaschine zum Erfassen und Reproduzieren aller Slave-Kommunikationen mit einer entsprechenden Steuerung, einem entsprechenden Zeitablauf und entsprechenden Wartezuständen verwendet. Diese Operationen werden im Folgenden ausführlicher mit Bezug auf 16 beschrieben.
  • 16 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform 410 der Slave-Serialisierer 128 und 140 der vorliegenden Erfindung in einer Schnittstelle zwischen einem AHB-Slave 146 und der Matrix 106 zeigt. In dem gezeigten Beispiel enthält der Serialisierer 128 eine linke Zustandsmaschine 412, zwei 32-Bit-Schieberegister 414 und 416 und ein 16-Bit-Schieberegister 418. Die Zustandsmaschine 412 steuert den Betrieb des Serialisierers und führt Wartezustände in die Matrix 106 ein. Dies wird weiter unten ausführlicher mit Bezug auf 17 beschrieben. In anderen Ausführungsformen können auch andere Steuereinrichtungen als eine Zustandsmaschine verwendet werden. Die zwei 32-Bit-Schieberegister 414 und 416 werden verwendet, um Informationen für den Adressbus und den Datenbus zu serialisieren und zu deserialisieren. Das 16-Bit-Schieberegister 418 wird verwendet, um die in dem Protokoll verwendeten Steuersignale zu serialisieren und zu deserialisieren. In anderen Ausführungsformen können auch Schieberegister mit anderen Bitbreiten verwendet werden.
  • Entsprechend enthält der Serialisierer 140 eine rechte Zustandsmaschine 422, zwei 32-Bit-Schieberegister 424 und 426 und ein 16-Bit-Schieberegister 428. Die Zustandsmaschine 422 steuert den Betrieb des Serialisierers 140 wie weiter unten ausführlicher mit Bezug auf 18 beschrieben. Die zwei 32-Bit-Schieberegister 424 und 426 werden verwendet, um Informationen für den Adressbus und den Datenbus zu deserialisieren und zu serialisieren. Und das 16-Bit-Schieberegister 428 wird verwendet, um die in dem Protokoll verwendeten Steuersignale zu deserialisieren und zu serialisieren. Die synchronen Schieberegister der Serialisierer enthalten eine Anordnung von Flipflops und mehrere Multiplexer, um den Informationsfluss zwischen ihnen zu bestimmen, sowie weiterhin Puffer an den Bussen. Eine Ausführungsform mit synchronen Schieberegistern 414, 416, 418, 424, 426 und 428 enthält Komponenten und Operationen, die denjenigen der oben mit Bezug auf 8 und 10 beschriebenen Schiebregister 244, 246, 248, 252, 254 und 256 ähnlich sind. Es sind keine Puffer an dem Ausgang und dem Eingang der Register 414 und 424 vorgesehen, weil diese Register in der beschriebenen Ausführungsform unidirektional sind.
  • Das Schieberegister 414 ist mit dem Schieberegister 424 über einen Adressbus 423 verbunden, der in dem gezeigten Beispiel 4 Bit breit ist und unidirektional sein kann, damit die Matrix 106 den Slave 146 adressieren kann (der Slave 146 muss keine Adressen senden). Das Schieberegister 416 ist mit dem Schieberegister 426 über einen bidirektionalen Datenbus 434 verbunden, der in dem gezeigten Beispiel 4 Bit breit ist. Und das Schieberegister 418 ist mit dem Schieberegister 428 über einen bidirektionalen Steuerbus 436 verbunden, der in dem gezeigten Beispiel 2 Bit breit ist. Ein start_left_transfer-Signal 438 wird durch die linke Zustandsmaschine 412 verwendet, um eine Übertragung von Informationen von der Matrix zu einem Slave zu wählen; und ein start_right_transfer-Signal 440 wird durch die rechte Zustandsmaschine 422 verwendet, um eine Übertragung von Informationen von dem Slave zu der Matrix zu wählen. Diese Signale können zwischen den Serialisierern über dedizierte Leitungen gesendet werden. Ein serielles Taktsignal 124 ist an den beiden Serialisierern 128 und 140 vorgesehen, um deren Funktionen der seriellen Kommunikation zu koordinieren. Die linke Zustandsmaschine 412 kann auch wahlweise ein HREADY-Signal 439 zurück zu der Matrix 106 geben, um Wartezustände einzufügen. Die Verwendung dieser Signale wird weiter unten ausführlicher mit Bezug auf 17 und 18 beschrieben.
  • HCLK-Signale 442 und 444 sind jeweils an den Serialisierern 128 und 140 vorgesehen, wobei es sich um die Chip-Takte für die Chips 102 und 103 handelt, an denen die Serialisierer vorgesehen sind. Weil die Steuerung für die Schieberegister durch die Zustandsmaschinen 412 und 422 vorgesehen wird, muss der resynchronisierte Takt HCLK alle Operationen ausführen. Der serielle Takt 124 muss eine größere Frequenz aufweisen als jedes der HCLK-Signale, um die gute Synchronisierung zwischen den HCLK- und Serielltakt-Domänen aufrechtzuerhalten.
  • 17 ist ein Flussdiagramm, das ein beispielhaftes Verfahren 450 oder Betriebszustände der linken Zustandsmaschine 412 des Slave-Serialisierers 128 zeigt, der an dem Chip 102 der Matrix 106 vorgesehen ist. Die linke Zustandsmaschine 412 steuert und synchronisiert alle eingehenden Informationen von dem AHB-Bus und fügt automatische Wartezustände ein, damit das AHB-Protokoll während des laufenden Serialisierungsprozesses eingehalten wird. Die linke Zustandsmaschine 412 steuert den Zeitablauf und die Neusynchronisierungsinformationen, die von HCLK_left zu der Domäne des seriellen Takts 124 eingehen. Auf diese Weise können beide Seiten (links und rechts) eine synchrone Hochgeschwindigkeits-Seriellübertragung ausführen.
  • In Schritt 452 ist die linke Zustandsmaschine 412 inaktiv und wartet auf eine Übertragung von der Matrix 106. Das HREADY-Signal 439 ist in diesem Zustand hoch. Wenn das Rücksetzsignal HRESETN durch eine externe Quelle (z. B. durch eine Steuereinrichtung an dem Chip oder durch eine extern zu dem Chip vorgesehene Quelle) ausgegeben wird, wird die Zustandsmaschine 412 gezwungen, in den inaktiven Zustand 452 einzutreten. Sobald das HSEL-Signal als 1 ausgegeben wird, um den Slave 146 für eine Übertragung des Masters zu wählen, fährt der Prozess mit Schritt 454 fort, in dem die Zustandsmaschine 412 die Adresse und die Steuerinformationen von der Matrix erfasst. Weiterhin wird das HREADY-Signal 439 (durch die Zustandsmaschine eingeleitet) zu der Matrix 106 niedrig gesetzt, um automatische Wartezyklen in die Matrix einzufügen. Wenn das HWRITE-Signal hoch ist, handelt es sich um eine Schreiboperation, wobei der Prozess zu Schritt 456 fortschreitet, um die Datensignale von der Matrix zu erfassen. Wenn HWRITE niedrig ist, handelt es sich um eine Leseoperation, sodass keine Datensignale von der Matrix erfasst werden und der Prozess von Schritt 454 zu Schritt 458 fortschreitet.
  • In Schritt 458 synchronisiert die Zustandsmaschine 412 das Herausschieben auf der Basis des seriellen Taktsignals 124 neu, lädt die entsprechenden Schieberegister 414, 416 und 418 und schiebt die Informationen in serialisierter Form heraus zu dem anderen Serialisierer 140 an den entsprechenden seriellen Bussen 432, 434 und 436. Die linke Zustandsmaschine 412 setzt das start_left_transfer-Signal 438 hoch, damit die rechte Zustandsmaschine 422 mit dem Erfassen der synchronen, eingehenden seriellen Informationen beginnen kann. Die linke Zustandsmaschine 412 hält weiterhin das HREADY-Signal niedrig, sodass automatische Wartezyklen in die Matrix 106 eingefügt werden.
  • Wenn das Herausschieben abgeschlossen ist, fährt der Prozess mit Schritt 460 fort, in dem das start_left_transfer-Signal 438 auf null gesetzt wird. In Schritt 462 wartet die Zustandsmaschine 412 auf eine Antwort von dem Slave und der rechten Seite, die dadurch angegeben würde, dass die rechte Seite start_right_transfer auf 1 setzt, um anzugeben, dass die rechte Seite eine Slave-Antwort zurück zu der linken Zustandsmaschine 412 senden möchte. Sobald dies geschieht, fährt der Prozess mit Schritt 464 fort, in dem die Zustandsmaschine 412 von dem seriellen Bus empfangene seriellen Informationen zu einer parallelen Form hineinschiebt und das Verschieben fortsetzt, bis alle Informationen empfangen wurden. Die Zustandsmaschine 412 synchronisiert die eingehenden Informationen von den Hochgeschwindigkeits-Schieberegistern neu zu der HCLK_left-Taktdomäne. Die Zustandsmaschine 412 analysiert auch das HRESP-Signal von dem Slave 146, um zu bestimmen, ob die Operation erfolgreich war oder ob ein Fehler aufgetreten ist. Wenn das HRESP-Signal ein erfolgreiches Senden von Informationen angibt, dann wird in Schritt 466 das HREADY-Signal 439 hoch gesetzt, um die Matrix 106 darüber zu informieren, das die Operation abgeschlossen ist, und wird der Wartezyklus verlassen. Der Prozess kehrt dann zu Schritt 302 zurück, um auf eine andere gültige Übertragung von der Matrix zu warten.
  • Wenn das HRESP-Signal in Schritt 464 einen Fehler in den empfangenen Informationen angibt, wird dies in Schritt 468 gemeldet (z. B. werden standardmäßige Fehlerprozeduren eingeleitet) und gibt die Zustandsmaschine 412 in Schritt 470 das HREADY-Signal zu dem Master 144 ähnlich wie in Schritt 316 aus, um zu veranlassen, dass der Master den Wartezyklus verlässt. Der Prozess fährt dann mit Schritt 452 fort, um auf eine andere gültige Übertragung von der Matrix zu warten.
  • Während also die Serialisierung abläuft (d. h. in den Schritten 454464), wird das HREADY-Signal 439 von der linken Zustandsmaschine 412 zu der Matrix 106 niedrig gehalten, um einen Wartezustand in die Matrix 106 einzufügen. Nach der Antwort wird das HREADY-Signal wieder hoch gesetzt, um die Antwort von dem Slave zurück an die Matrix zu geben. (Das HREADY-Signal 439 (oder ein separates HREADY-Signal, wenn ein solches implementiert ist) können durch den adressierten Slave während der Anforderung wieder niedrig gesetzt oder niedrig gehalten werden, wenn der adressierte Slave mehr Zeit für die Antwort an den Master benötigt.)
  • 18 ist ein Flussdiagramm, das ein beispielhaftes Verfahren 480 für den Betrieb der rechten Zustandsmaschine 422 des Slave-Serialisierers 140 zeigt, der an dem Chip 103 des Slaves 146 vorgesehen ist. Die rechte Zustandsmaschine 422 ist komplementär in dem System vorgesehen und steuert den gesamte Zeitablauf und die Signale zu dem Slave 146. Der Betrieb ist ähnlich wie auf derjenige der rechten Zustandsmaschine 126, der oben mit Bezug auf 11 beschrieben wurde.
  • Wie in Schritt 482 gezeigt, wartet die Zustandsmaschine 442, bis das start_left_transfer-Signal 440 gleich 1 ist. Das HRESETN-Signal erzwingt in Schritt 482, dass die Zustandsmaschine 442 in den Wartezustand eintritt. Wenn das start_left_transfer-Signal durch die linke Zustandsmaschine 412 auf 1 gesetzt wird, geht die rechte Zustandsmaschine 422 zu Schritt 484 über, in dem die Zustandsmaschine 422 die serialisierten Informationen aus dem seriellen Bus unter Verwendung der Schieberegister hineinschiebt, bis diese vollständig in paralleler Form vorliegen. In dem nächsten Schritt 486 werden die empfangenen Adress- und Steuersignale zu dem Slave freigegeben. Wenn das HWRITE-Signal von dem Slave 416 hoch ist, handelt sich um eine Schreiboperation mit Daten, wobei die Zustandsmaschine 422 in diesem Fall in Schritt 488 die Datensignale zu dem Slave 146 freigibt und der Prozess mit Schritt 490 fortschreitet. Wenn das HRWITE-Signal von dem Slave gleich null ist, handelt es sich um eine Leseoperation ohne Datensignale, wobei der Prozess in diesem Fall direkt von Schritt 486 zu Schritt 490 fortschreitet.
  • In Schritt 490 wartet die Zustandsmaschine 422 in einem Haltezustand, während das HREADY-Signal von dem Slave gleich null ist. Wenn das HREADY-Signal hoch geht, ist der Slave dazu bereit, seine Antwort zu senden. Der Prozess erfasst dann in Schritt 492 die Antwort des Slaves. In dem nächsten Schritt 494 setzt die Zustandsmaschine 422 das start_right_transfer-Signal 438 auf 1, um anzugeben, dass eine Antwort von dem Slave kommt, und schiebt die Antwort heraus und zurück zu dem anderen Serialisierer 128, sodass die Matrix die Antwort empfängt (und die Antwort dann zu dem ursprünglichen Master gesendet werden kann). Der Prozess kehrt dann zu Schritt 482 zurück, um start_right_transfer niedrig zu setzen und auf eine andere Übertragung zu warten. (Ähnlich wie in dem oben beschriebenen Diagramm von 11 wird das hohe HREADY-Signal von dem Slave auch über den seriellen Kommunikationsbus zu dem Serialisierer 128 in den Steuerbits gesendet und sendet der Serialisierer 128 sendet hohe HREADY-Signal zu der Matrix und zu dem anfordernden Master, um anzugeben, dass der Slave bereit ist, seine Antwort zu senden.)
  • 19 ist ein Zeitdiagramm 496, das den Zeitablauf für eine Übertragung zwischen der Matrix 106 und einem AHB-Lite-Slave 146 einschließlich der Serialisierung der vorliegenden Erfindung zeigt. In dem Diagramm entspricht die Zeit t1 der Zeit für eine standardmäßige Übertragung mit zwei Zyklen. Die Zeit t2 entspricht der Zeit zum Erfassen und Senden von serialisierten Informationen zu dem Slave. Die Zeit t3 entspricht der Zeit zum Wiederherstellen von seriellen Informationen und zum Geben derselben zu dem Slave mit der entsprechenden Übertragung. Die Zeit t4 entspricht der Zeit zum Empfangen der Slave-Antwort und zum Senden derselben zurück zu dem anderen Chip in dem seriellen Modus. Die Zeit t5 entspricht der Zeit zum Reproduzieren der Antwort von dem Slave an dem anderen Serialisierer und zum Geben derselben zu der Matrix. Die Zeit t6 entspricht der Zeit, während welcher Wartezyklen automatisch eingefügt werden können.
  • Die Anzahl der eingefügten automatischen Wartezyklen hängt von dem Verhältnis des seriellen Takts 124 zu den HCLK-Signalen 442 und 444 ab. Wenn das Verhältnis größer ist, ist die Anzahl von Wartezyklen kleiner.
  • 20A ist ein Blockdiagramm, das einen standardmäßigen APB-Slave 20 und dessen Schnittstelle zeigt. Der APB-Slave 20 antwortet auf Übertragungen, die durch die mit der AHB-Matrix 12 verbundene AHB/APB-Brücke 18 eingeleitet werden und gewöhnlich von einem Master stammen. Die durch den Slave 20 benötigte Schnittstelle enthält Steuersignale 500, die von der AHB/APB-Brücke 18 erzeugt und in Übereinstimmung mit dem Zeitablauf der APB-Protkoll über den APB-Bus ausgegeben werden, mit Ausnahme eines PSEL-Signals 502, das durch den Slave 20 als Wahlsignal verwendet wird, um zu bestimmen, wann auf eine Busübertragung geantwortet werden soll. Der APB-Slave 20 gibt ein Ausgabesignal 504 (HRDATA) an den APB-Bus zurück, von wo es zu der AHB/APB-Brücke 18 gegeben wird. 20B und 20C sind Zeitdiagramme 506 und 508, die den Zeitablauf für eine Basisübertragung für den APB-Slave 20 zeigen, wobei das Zeitdiagramm 506 den Zeitablauf für eine Schreibübertragung zeigt und das Zeitdiagramm 508 den Zeitablauf für eine Leseübertragung zeigt.
  • 21 ist ein Blockdiagramm, das ein standardmäßiges Chip-Layout 510 für APB-Slaves in einem SoC aus dem Stand der Technik zeigt. Ein erster Chip 512 enthält eine AHB-Matrix 12, einen ARM-Prozessor 393, der mit der Matrix kommunizieren kann, und eine AHB/APB-Brücke 18, um eine Verbindung zwischen Periphereinrichtungen mit AHB- und APB-Protokollen zu gestatten. Ein zweiter Chip 514 enthält eine Anzahl von APB-Slaves 516. Wie gezeigt, erfordert die Anordnung aus dem Stand der Technik 99 Kommunikationsleitungen (mit Ausnahme der PRESETN- und PCLK-Sgnale) in jedem Bus 48, der einen einzelnen APB-Slave zwischen dem Chip 512 und dem Chip 514 verbindet. Wenn mehrere APB-Slaves auf diese Weise verbunden werden, wie gezeigt und was gewöhnlich der Fall ist, wird die Gesamtanzahl der Kommunikationsleitungen wesentlich erhöht, wodurch wiederum die Komplexität und die Kosten des SoC erhöht werden.
  • 22 ist ein Blockdiagramm eines beispielhaften Chip-Layoutsystems 520 für Inter-Chip-Slaves in einem SoC der vorliegenden Erfindung, wobei die Slaves ein anderes Protokoll verwenden als die Matrix des Bussystems. Zum Beispiel kann ein Chip-Layoutsystem 520 auf einer Leiterplatte 522 oder einem anderen geeigneten Substrat vorgesehen sein.
  • Die Leiterplatte 522 umfasst den ersten Chip 102 und den zweiten Chip 103, der mit dem ersten Chip 102 kommuniziert. Der erste Chip 102 enthält einen Prozessor 104, eine AHB-Matrix 106 und eine erweiterte AHB/APB-Brücke 116. Der Prozessor 104 kann eine beliebige, geeignete Steuereinrichtung wie oben mit Bezug auf 3 beschrieben sein. Der Prozessor 104 ist mit der Matrix 106 verbunden, die die Slaves und die Masters des Systems wie oben beschrieben verbindet. Die APB-Slaves können mit einem oder mehreren Mastern in dem System kommunizieren. Die Matrix 106 kann Wahlsignale für Slaves erzeugen und wählen, welche Eingaben von den Slaves zu einem Master gesendet werden und welche Informationen zu einem Slave gesendet werden.
  • Die AHB/APB-Brücke 116 stellt eine Verbindung zwischen APB-Peripherieeinrichtungen wie etwa den APB-Slaves der vorliegenden Ausführungsform und der AHB-Matrix 106 her. Das AMBA-APB-Protokoll spezifiziert keine Wartezyklen in dem APB-Bus, wobei jedoch Wartezyklen für eine korrekte Serialisierung in der vorliegenden Erfindung erforderlich sind, wenn der serielle Takt nicht schnell genug ist, um eine Übertragung in einem einzigen PCLK-Zyklus abzuschließen. Die Brücke 116 wird also erweitert, sodass ein Serialisierer die Busübertragungen anhalten kann, damit die AHB/APB-Brücke 116 Wartezyklen in die APB-Busübertragungen einfügen kann. Andere Ausführungsformen können einen anderen Typ von Brücke verwenden, um eine Verbindung zwischen Peripherieeinrichtungen, die ein Protokoll verwenden, mit einer Matrix, die ein anderes Protokoll verwendet, herzustellen.
  • Gemäß der vorliegenden Erfindung ist jeder über die Brücke 116 vorgesehene Bus, der mit einem Slave an einem anderen Chip verbunden werden soll, mit einem APB-Slave-Serialisierer 130 verbunden. Der APB-Slave-Serialisierer 130 serialisiert von dem Chip gesendete Informationen oder deserialisiert von einem anderen Chip empfangene Informationen.
  • Der Chip 103 ist ebenfalls auf der Leiterplatte 520 vorgesehen und enthält N APB-Slaves 148 für die Verwendung mit der APB-Busarchitektur des Chips 102. Die APB-Slaves 148 können zusätzliche Slaves wie oben in 3 gezeigt oder die erforderlichen Slaves des Systems sein. Jeder APB-Slave 148 weist einen Bus 149 auf, der mit dem anderen Chip 102 verbunden werden soll. In dem System der vorliegenden Erfindung ist jeder Bus 149 mit einem APB-Slave-Serialisierer 142 verbunden, der den Slave-Serialisierern 130 an dem Chip 102 ähnlich ist. Jeder APB-Slave-Serialisierer 142 ist mit einem assoziierten APB-Slave-Serialisierer 130 über einen Bus 136 verbunden. In dem gezeigten Beispiel sind aufgrund der Serialisierung nur 11 Leitungen pro Bus erforderlich, sodass eine beträchtliche Reduktion in der Anzahl der erforderlichen Busleitungen im Vergleich zu anderen Systemen und Verfahren erzielt werden kann. In der beschriebenen Ausführungsform sind einige der Kommunikationskanäle bidirektional, sodass die Anzahl der Leitungen zwischen den Chips 102 und 103 minimiert werden kann.
  • Das Verfahren der vorliegenden Erfindung basiert auf dem Erfassen der APB-Slave-Signale von der AHB/APB-Brücke und dem Einfügen von automatischen Wartezuständen in Übereinstimmung mit dem APB-Protokoll, damit die Serialisierungsprozedur die Übertragung zu einem bestimmten Slave abschließen kann. Das Serialisierungsverfahren ermöglicht eine Reduktion in der Anzahl der Signale, die über die Leiterplatte gehen müssen, indem einfache, vollsynchrone Hochgeschwindigkeits-Schieberegister verwendet werden, um Informationen zwischen dem APB-Slave 148 und der Brücke 116 zu serialisieren. Um die Serialisierung zu erzielen, wird eine Zustandsmaschine verwendet, um die Steuerung und das APB-Protokoll vorzusehen. Diese Operationen werden nachfolgend ausführlicher mit Bezug auf 23 beschrieben.
  • 23 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform 530 der Slave-Serialisierer 130 und 142 der vorliegenden Erfindung in einer Schnittstelle zwischen einem APB-Slave 148 und einer erweiterten AHB/APB-Brücke 116 zeigt. In dem gezeigten Beispiel enthält der Serialisierer 130 eine linke Zustandsmaschine 532, zwei 32-Bit-Schieberegister 534 und 536 und ein 8-Bit-Schieberegister 538. Die linke Zustandsmaschine 532 steuert den Betrieb des Serialisierers und fügt Wartezustände zu der Brücke 116 hinzu. Dies wird weiter unten ausführlicher mit Bezug auf 24 beschrieben. In anderen Ausführungsformen können auch andere Steuereinrichtungen als eine Zustandsmaschine verwendet werden. Die zwei 32-Bit-Schieberegister 534 und 536 werden verwendet, um Informationen für den Adressbus und den Datenbus zu serialisieren und zu deserialisieren. Das 8-Bit-Schieberegister 538 wird verwendet, um die in dem Protokoll verwendeten Steuersignale zu serialisieren und zu deserialisieren. In anderen Ausführungsformen können auch Schieberegister mit anderen Bitbreiten verwendet werden.
  • Entsprechend enthält der Serialisierer 142 eine rechte Zustandsmaschine 540, zwei 32-Bit-Schieberegister 542 und 544 und ein 8-Bit-Schieberegister 546. Die Zustandsmaschine 540 steuert den Betrieb des Serialisierers 142 wie weiter unten ausführlicher mit Bezug auf 27 beschrieben. Die zwei 32-Bit-Schieberegister 542 und 544 werden verwendet, um Informationen für den Adressbus und den Datenbus zu deserialisieren und zu serialisieren. Und das 8-Bit-Schieberegister 546 wird verwendet, um die in dem Protokoll verwendeten Steuersignale zu deserialisieren und zu serialisieren. Die synchronen Schieberegister der Serialisierer enthalten eine Anordnung von Flipflops und mehrere Multiplexer, um den Informationsfluss zwischen ihnen zu bestimmen, sowie Puffer an den Bussen. Eine Ausführungsform der synchronen Schieberegister 534, 536, 542 und 544 umfasst Komponenten für einen Betrieb, der dem Betrieb der Schieberegister 244, 246, 252, 254 wie oben mit Bezug auf 10 beschrieben ähnlich ist. Die 8-Bit-Register 538 und 546 werden ähnlich betrieben, wobei sie jedoch nur eine S-Bit-Leitung verwenden. Es sind keine Puffer an dem Ausgang und dem Eingang der Register 534 und 542 vorgesehen, weil diese Register in der beschriebenen Ausführungsform unidirektional sind.
  • Das Schieberegister 534 ist mit dem Schieberegister 542 über einen Adressbus 550 verbunden, der in dem gezeigten Beispiel 4 Bit breit ist und unidirektional sein kann, damit die Brücke 116 den APB-Slave 148 adressieren kann (der APB-Slave 148 muss keine Adressen senden). Das Schieberegister 536 ist mit dem Schieberegister 544 über einen bidirektionalen Datenbus 552 verbunden, der in dem gezeigten Beispiel 4 Bit breit ist. Und das Schieberegister 538 ist mit dem Schieberegister 546 über einen bidirektionalen Steuerbus 554 verbunden, der in dem gezeigten Beispiel ein Bit breit ist. Ein start_left_transfer-Signal 556 wird durch die linke Zustandsmaschine 532 verwendet, um eine Übertragung von Informationen von der Brücke zu einem APB-Slave zu wählen. Und ein start_right_transfer-Signal 558 wird durch die rechte Zustandsmaschine 540 verwendet, um eine Übertragung von Informationen von dem APB-Slave zu der Brücke 116 zu wählen. Diese Signale können zwischen den Serialisierern über dedizierte Leitungen gesendet werden. Ein Wartesignal 563 von dem Serialisierer 130 zu der Brücke 116 wird verwendet, um Wartezyklen zu der Brücke 116 hinzuzufügen. Ein serielles Taktsignal 124 wird zu beiden Serialisierern 130 und 142 gegeben, um deren Funktionen für eine serielle Kommunikation zu koordinieren. Die Verwendung dieser Signale wird weiter unten ausführlicher mit Bezug auf 24, 26 und 27 beschrieben.
  • PCLK-Signale 560 und 562 werden jeweils zu den Serialisierern 130 und 142 gegeben und sind die APB-Bustakte für die Chips 102 und 103, an denen die Serialisierer vorgesehen sind. Die Signale PCLK_left und PCLK_right weisen hier dieselbe Frequenz auf, wobei sie jedoch in anderen Ausführungsformen auch verschiedene Frequenzen aufweisen können. Weil die Steuerung für die Schieberegister durch die Zustandsmaschinen 532 und 540 geleistet wird, wird der resynchronisierte Takt PCLK benötigt, um alle Operationen auszuführen. Der serielle Takt 124 muss eine größere Frequenz aufweisen als jedes der PCLK-Signale, damit eine gute Synchronisation zwischen der PCLK-Domäne und der Domäne des seriellen Takts aufrechterhalten werden kann.
  • 24 ist ein Flussdiagramm, das ein beispielhaftes Verfahren 570 oder Betriebszustände der linken Zustandsmaschine 532 des Slave-Serialisierers 130 zeigt, der an dem Chip 102 der Brücke 116 vorgesehen ist. Die Zustandsmaschine 532 steuert und synchronisiert alle eingehenden Informationen von der erweiterten AHB/APB-Brücke 116 und sendet ein Wartesignal zurück zu der Brücke, um Wartezyklen einzufügen, damit eine Serialisierungsprozedur ausgeführt werden kann. Die linke Zustandsmaschine 532 steuert den gesamten Zeitablauf und resynchronisiert die von PCLK_left eingehenden Informationen zu der Domäne des seriellen Takts 142. Auf diese Weise können beiden Seiten (links und rechts) eine synchrone Hochgeschwindigkeits-Seriellübertragung ausführen.
  • In Schritt 572 ist die linke Zustandsmaschine 532 inaktiv und wartet auf eine Übertragung von der Brücke 116. Das Wartesignal 563 ist in diesem Zustand auf null gesetzt. Wenn das PRESETN-Signal durch eine externe Quelle (z. B. durch eine Steuereinrichtung auf dem Chip oder durch eine extern zu dem Chip vorgesehene Steuereinrichtung) ausgegeben wird, wird die Zustandsmaschine 532 gezwungen, in den inaktiven Zustand 572 einzutreten. Sobald das PSEL-Signal als eine 1 ausgegeben wird, um den APB-Slave für eine Übertragung von der Brücke zu wählen, fährt der Prozess mit Schritt 574 fort, in dem die Zustandsmaschine 532 die Adresse und Steuerinformationen von der Brücke 116 erfasst. Weiterhin wird das Wartesignal auf 1 gesetzt, um automatische Wartezyklen einzufügen. Wenn das PWRITE-Signal hoch gesetzt ist, handelt es sich um eine Schreiboperation und fährt der Prozess mit Schritt 576 fort, um die Datensignale von der Brücke 116 zu erfassen und zu Schritt 578 fortzuschreiten. Wenn PWRITE niedrig ist, handelt es sich um eine Leseoperation und es werden keine Datensignale von der Brücke erfasst, wobei der Prozess von Schritt 574 zu Schritt 578 fortschreitet.
  • In Schritt 578 resynchronisiert die Zustandsmaschine 532 das Herausschieben auf der Basis des seriellen Taktsignals 124, lädt die entsprechenden Schieberegister 534, 536 und 538 und schiebt Informationen in serialisierter Form zu dem anderen Serialisierer 142 auf den entsprechenden seriellen Bussen 550, 552 und 554 heraus. Die linke Zustandsmaschine 532 setzt auch das start_left_transfer-Signal 556 hoch, sodass die rechte Zustandsmaschine 540 mit dem Erfassen der synchronen, eingehenden seriellen Informationen beginnen kann. Das Wartesignal 563 wird hoch gehalten, damit die erweiterte Brücke 116 automatische AHB-Wartezyklen einfügen kann.
  • Wenn das Herausschieben abgeschlossen ist, befindet sich der Prozess in Schritt 580, in dem das start_left_transfer-Signal 556 auf null gesetzt wird. Wenn das PWRITE-Signal als null erfasst wird, handelt es sich um eine Schreiboperation und es werden keine Daten von dem Slave erwartet, wobei der Prozess zu Schritt 572 zurückkehrt, sodass die Zustandsmaschine 532 in einen inaktiven Zustand eintritt und das Wartesignal 563 auf null gesetzt wird. Wenn das PWRITE-Signal nicht gleich null ist, handelt es sich um eine Leseoperation, wobei die Zustandsmaschine 532 in Schritt 582 auf eine Antwort von der rechten Seite wartet, die dadurch angegeben würde, dass die rechte Seite start_right_transfer auf 1 setzt. Sobald dies geschieht, fährt der Prozess mit Schritt 584 fort, in dem die linke Zustandsmaschine 532 resynchronisiert und die von dem seriellen Bus empfangenen Informationen zu einer parallelen Form hineinschiebt, wobei das Verschieben fortgesetzt wird, bis alle Informationen empfangen wurden. Die Zustandsmaschine 532 resynchronisiert die eingehenden Informationen von den Hochgeschwindigkeits- Schieberegistern zu der Domäne des Takts PCLK_left. In Schritt 586 werden die empfangenen Informationen zu der erweiterten Brücke 116 übertragen und wird das Wartesignal auf null gesetzt. Der Prozess kehrt dann zu Schritt 572 zurück, um auf eine andere Operation von der Brücke 116 zu warten.
  • Während also die Serialisierung voranschreitet (d. h. in den Schritten 574586), wird das Wartesignal von der erweiterten Brücke 116 niedrig gehalten, um APB-Wartezustände einzufügen. Sobald die linke Zustandsmaschine 532 das Wartesignal freigibt, sendet die Brücke 116 die Antwort von dem APB-Slave zu der Brücke 116 zurück.
  • 25 ist ein Flussdiagramm, das eine standardmäßige Zustandsmaschine 590 zeigt, die in einer AHB/APB-Brücke 18 aus dem Stand der Technik enthalten ist. In einem Schritt 592 befindet sich die Brücken-Zustandsmaschine in einem inaktiven Zustand, in dem die PSEL- und PENABLE-Signale gleich null sind. Wenn eine Übertragung auftritt, setzt der Setup-Zustand 594 das PSEL-Signal hoch, um den adressierten Slave für eine Antwort zu wählen. In dem nächsten Aktivierungszustand 596 wird PENABLE hoch gesetzt, um den Slave für eine Kommunikation zu aktivieren, die dann auftreten kann. Wenn eine andere Übertragung stattfindet, kehrt die Zustandsmaschine zu dem Zustand 594 zurück. Und wenn keine Übertragung stattfindet, kehrt die Zustandsmaschine zu dem Zustand 592 zurück. Die Standardspezifikation für die AHB/APB-Brücke enthält eine Unterstützung von Wartezyklen für die AHB-Seite der Brücke, sieht aber keine Unterstützung von Wartezyklen für die APB-Seite vor.
  • 26 ist ein Flussdiagramm, das ein Verfahren 600 oder Betriebszustände für die erweiterte Brücke 116 der vorliegenden Erfindung zeigt. Die Erweiterung der Brücke 116 ermöglicht eine Unterstützung der APB-Serialisierung wie oben beschrieben. Die Verbesserung umfasst einen zusätzlichen Zustand in der AHB/APB-Aktivitäts-Peripheriebusmaschine.
  • In einem Schritt 602 befindet sich die Aktivitäts-Peripheriebusmaschine der Brücke 116 in einem inaktiven Zustand und sind die PSEL- und PENABLE-Signale niedrig gesetzt. Der inaktive Zustand dauert an, solange keine Übertragungen von der Brücke empfangen werden. Wenn eine Übertragung empfangen wird, wird der Setup-Schritt 604 ausgeführt, um das PSEL-Signal auf 1 zu setzen und den adressierten Slave zu wählen. In dem Aktivierungsschritt 606 wird das PENABLE-Signal hoch gesetzt, damit der Slave eine Kommunikation ausführen kann, die anschließend beginnt. Der Warteschritt 608 der vorliegenden Erfindung veranlasst, dass die Brücke 116 wie durch das Wartesignal 563 von der linken Zustandsmaschine 532 in dem Serialisierer angewiesen wartet, wobei während dieser Zeit die Kommunikation zu dem Slave serialisiert und gesendet wird und Antworten serialisiert und zurückgeführt werden. Sobald das Wartesignal 563 durch die linke Zustandsmaschine hoch ausgegeben wird, weil die serielle Kommunikation abgeschlossen ist, kehrt die Maschine zu Schritt 604 zurück, wenn eine andere Übertragung empfangen wird, oder kehrt zu Schritt 602 zurück, wenn keine weitere Übertragung auftritt.
  • 27 ist ein Flussdiagramm, das ein beispielhaftes Verfahren 620 oder Betriebszustände der rechten. Zustandsmaschine 540 des APB-Slave-Serialisierers 142 zeigt, der an dem Chip 103 des APB-Slaves 148 vorgesehen ist. Die rechte Zustandsmaschine 540 ist komplementär in dem System vorgesehen und steuert den gesamten Zeitablauf und die Signale zu dem APB-Slave 148.
  • Wie in Schritt 622 gezeigt, wartet die Zustandsmaschine 540, bis das start_left_transfer-Signal 556 gleich eins ist. (Das PRESETN-Signal zwingt die Zustandsmaschine 540 in Schritt 622, in den inaktiven Zustand einzutreten.) Wenn das start_left_transfer-Signal durch die linke Zustandsmaschine 532 auf 1 gesetzt wird, geht die rechte Zustandsmaschine 540 zu Schritt 624 über, in dem die Zustandsmaschine 540 die seriellen Informationen hineinschiebt, um die Informationen in paralleler Form vorzusehen. In dem nächsten Schritt 626 werden die parallelen Adress- und Steuerinformationen zu dem APB-Slave freigegeben. Wenn das PWRITE-Signal von der Brücke 116 hoch ist, handelt es sich um eine Schreiboperation, wobei in diesem Fall die Zustandsmaschine 540 in Schritt 628 auch die empfangenen Dateninformationen zu dem APB-Slave 148 freigibt und der Prozess zu Schritt 622 zurückkehrt, um das start_right_transfer-Signal 558 niedrig zu setzen und in einen inaktiven Zustand einzutreten (weil keine APB-Slave-Antwort für eine Schreiboperation erwartet wird). Wenn das PWRITE-Signal von dem Slave gleich null ist, handelt es sich um eine Leseoperation ohne Dateninformationen und geht der Prozess von Schritt 626 zu Schritt 630 über.
  • In Schritt 630 wartet der Prozess, falls erforderlich, und erfasst die Antwort des APB-Slaves. In dem nächsten Schritt 632 setzt die Zustandsmaschine 540 das start_right_transfer-Signal auf 1 und schiebt die Antwort des Slaves über den Kommunikationsbus zurück zu dem anderen Serialisierer 130, sodass die Brücke 116 die Antwort empfängt. Der Prozess kehrt dann zu Schritt 622 zurück, um das start_right_transfer-Signal niedrig zu setzen und auf eine andere Übertragung zu warten.
  • 28A ist ein Zeitdiagramm 640, das den Zeitablauf für eine Leseübertragung zwischen der erweiterten Brücke 116 und der APB-Slave-Peripherieeinrichtung 148 einschließlich der Serialisierung der vorliegenden Erfindung zeigt. In dem Diagramm entspricht t1 der Zeit für eine standardmäßige Leseübertragung. Die Zeit t2 entspricht der Zeit zum Erfassen und Senden von seriellen Informationen zu dem APB-Slave. Die Zeit t3 entspricht der Zeit zum Wiederherstellen von seriellen Informationen und zum Reproduzieren der Operation in dem APB-Slave. Die Zeit t4 entspricht der Zeit zum Wiederherstellen und Übertragen der Antwortinformation zurück zu der erweiterten Brücke 116. Die Zeit t6 entspricht der Zeit, während der Wartezyklen automatisch eingefügt werden können.
  • Die Anzahl der automatisch eingefügten Wartezyklen hängt von dem Verhältnis des seriellen Takts 124 zu den PCLK-Signalen 560 und 562 ab. Wenn das Verhältnis größer ist, ist die Anzahl der Wartezyklen kleiner.
  • 28B ist ein Zeitdiagramm 642, das den Zeitablauf für eine Schreibübertragung zwischen der erweiterten Brücke 116 und der APB-Slave-Peripherieeinrichtung 148 einschließlich der Serialisierung der vorliegenden Erfindung zeigt. In dem Diagramm entspricht die Zeit t1 der Zeit für eine standardmäßige Schreibübertragung. Die Zeit t2 entspricht der Zeit zum Erfassen und Senden von serialisierten Informationen zu dem APB-Slave. Die Zeit t3 entspricht der Zeit zum Wiederherstellen der seriellen Informationen an dem anderen Chip und zum Reproduzieren der Operation in dem APB-Slave.
  • 29 ist ein Blockdiagramm, das eine andere Ausführungsform 650 eines Multi-Chip-Busarchitektursystems der vorliegenden Erfindung zeigt. Das System 650 umfasst vier verschiedene Chips, nämlich die Chips 652, 654, 656 und 658. Mehrere der zusätzlichen Master und Slaves des Systems sind auf die mehreren Chips verteilt.
  • Wegen der Natur der Serialisierer kann das System in mehrere Taktdomänen unterteilt werden. Der AHB-Takt HCLK kann unabhängig auf jedem Chip vorgesehen sein und in keiner Beziehung zu anderen HCLK-Signalen auf anderen Chips des Systems stehen. Es müssen also nicht alle HCLK-Signale ausgeglichen sein oder dieselbe Frequenz aufweisen. Die Hauptanforderung besteht in dem seriellen Takt, der einen Ausgleich zwischen beiden Serialisierern an den Enden eines Kommunikationsbusses herstellt.
  • In der beschriebenen Ausführungsform von 29 sind die HCLK-Signale voneinander unabhängig, wobei auch die seriellen Takte 660, 662 und 664 voneinander unabhängig sind. Zum Beispiel kann sich der serielle Takt 660 von dem seriellen Takt 662 und dem seriellen Takt 664 unterscheiden. Jeder serielle Takt ist jedoch zwischen seinen eigenen Serialisieren ausgeglichen; ansonsten kann die serielle Kommunikation nicht korrekt ausgeführt werden und können Informationen verloren gehen.
  • Die vorliegende Erfindung wurde anhand der gezeigten Ausführungsformen beschrieben, wobei dem Fachmann jedoch deutlich sein sollte, dass innerhalb des Erfindungsumfangs Variationen an den Ausführungsformen vorgenommen werden können. Es können also zahlreiche Modifikationen durch den Fachmann vorgenommen werden, ohne dass deshalb der durch die beigefügten Ansprüche definierte Erfindungsumfang verlassen wird.
  • Zusammenfassung
  • Es wird eine Buskommunikation für Komponenten eines Systems auf einem Chip angegeben. Gemäß einem Aspekt der Erfindung umfasst ein Serialisierer zum Koppeln von Buskommunikationen für einen Slave oder von einem Master in einem Bussystem ein oder mehrere Schieberegister, die Informationen für das Senden über einen Kommunikationsbus serialisieren und von dem Kommunikationsbus empfangene Informationen deserialisieren. Gemäß einem Aspekt der Erfindung umfasst ein System mit einer Buskommunikation zu einem Slave eine Brücke, die betrieben wird, um ein erstes Busprotokoll mit einer Busmatrix zu verbinden, die ein zweites Busprotokoll verwendet. Ein erster Serialisierer, der an einer ersten Einrichtung vorgesehen ist, serialisiert von der Matrix oder der Brücke empfangene Informationen und sendet die serialisierten Informationen über einen Kommunikationsbus. Ein zweiter Serialisierer, der an einer zweiten Einrichtung vorgesehen ist, empfängt die serialisierten Informationen und deserialisiert die serialisierten Informationen, wobei die deserialisierten Informationen zu einer Peripherieeinrichtung gegeben werden, die an der zweiten Einrichtung vorgesehen ist. Gemäß einem Aspekt gibt ein Mechanismus parallele Businformationen von einer Busmatrix oder einem Master zu den Schieberegistern für eine Serialisierung und für eine Kommunikation zu dem Slave oder dem Master, wobei der Mechanismus von den Schieberegistern empfangene deserialisierte Informationen zu einer Busmatrix oder dem Master gibt. Der Mechanismus fügt einen oder mehrere Wartezyklen in die Kommunikation mit der Matrix oder dem Master während der Serialisierung und der Deserialisierung ein.

Claims (73)

  1. Serialisierer zum Koppeln von Buskommunikationen für einen Slave oder einen Master in einem Bussystem, wobei der Serialisierer umfasst: ein oder mehrere Schieberegister, die betrieben werden, um Informationen für das Senden über einen Kommunikationsbus zu serialisieren oder von einem Kommunikationsbus empfangene Informationen zu deserialisieren, und einen Mechanismus, der mit den Schieberegistern verbunden ist und betrieben wird, um parallele Businformationen von einer Busmatrix zu den Schieberegistern für eine Serialisierung und Kommunikation zu dem Slave zu geben oder um parallele Businformationen von dem Master zu den Schieberegistern für eine Serialisierung zu geben, wobei der Mechanismus betrieben wird, um von den Schieberegistern empfangene deserialisierte Informationen zu einer Busmatrix oder dem Master zu geben, und wobei der Mechanismus einen oder mehrere Wartezyklen in die Kommunikation mit der Matrix oder dem Master während der Serialisierung und Deserialisierung einfügt.
  2. Serialisierer nach Anspruch 1, wobei der Mechanismus eine Zustandsmaschine ist.
  3. Serialisierer nach Anspruch 1 und 2, wobei die Schieberegister serielle Informationen über den Kommunikationsbus zu dem Slave senden, der an einer anderen Einrichtung vorgesehen ist als der Einrichtung, an der die Busmatrix vorgesehen ist.
  4. Serialisierer nach Anspruch 1 und 2, wobei die Schieberegister serielle Informationen über den Kommunikationsbus zu einer Busmatrix senden, die an einer anderen Einrichtung vorgesehen ist als der Einrichtung, an der der Master vorgesehen ist.
  5. Serialisierer nach Anspruch 4, wobei die Busmatrix die über den Kommunikationsbus gesendeten Informationen an einen Slave gibt, der durch die Informationen von dem Master adressiert wird.
  6. Serialisierer nach einem der Ansprüche 1–5, wobei die Schieberegister serielle Informationen von dem Kommunikationsbus empfangen, wobei die empfangenen seriellen Informationen aus Informationen von dem Slave erhalten werden, der an einer anderen Einrichtung vorgesehen ist als der Einrichtung, an der die Busmatrix vorgesehen ist.
  7. Serialisierer nach einem der Ansprüche 1–6, wobei die Schieberegister ein Adresssignal-Schieberegister, ein Datensignal-Schieberegister und ein Steuersignal-Schieberegister umfassen.
  8. Serialisierer nach Anspruch 2, wobei die Zustandsmaschine Informationen, die auf der Basis eines seriellen Takts während der Übertragung vorgesehen werden, zu einem Takt resynchronisiert, der den Betrieb der Busmatrix bestimmt.
  9. Serialisierer nach Anspruch 8, wobei die Schieberegister jeweils eine Vielzahl von Flipflops und Multiplexern sowie einen Puffer an jedem Tap des Schieberegisters enthalten.
  10. Serialisierer nach Anspruch 1, wobei ein zweiter Serialisierer mit dem anderen Ende des Kommunikationsbusses verbunden ist, wobei der zweite Serialisierer die durch die Schieberegister auf dem Kommunikationsbus gesendeten Informationen deserialisiert und die durch die Schieberegister auf dem Kommunikationsbus empfangenen Informationen serialisiert.
  11. Serialisierer nach einem der Ansprüche 1–10, wobei der Mechanismus Informationen, die auf der Basis eines seriellen Takts während der seriellen Übertragung vorgesehen werden, zu einem Takt resynchronisiert, der den Betrieb des Masters bestimmt.
  12. Serialisierer nach einem der Ansprüche 1–11, wobei die Busmatrix eine AHB-Matrix ist, die das AMBA-Busprotokoll verwendet.
  13. Verfahren zum Koppeln von Buskommunikationen für einen Slave in einem Bussystem, wobei das Verfahren umfasst: Empfangen von parallelen Businformationen von einer Busmatrix, wobei die parallelen Businformationen zu dem Slave adressiert sind, Serialisieren der parallelen Businformationen und Senden der seriellen Informationen auf einem Kommunikationsbus, und Einfügen eines Wartezyklus in der Busmatrix während der Serialisierung der parallelen Businformationen und Senden der seriellen Informationen.
  14. Verfahren nach Anspruch 13, das weiterhin umfasst: Warten auf eine Angabe dazu, dass eine Antwort von dem adressierten Slave über den Kommunikationsbus gesendet wird, und Empfangen und Deserialisieren der Antwort, um die Antwort zu der Busmatrix oder dem Master zu geben, wobei der Wartezyklus zu der Busmatrix oder dem Master andauert, bis die Antwort für die Busmatrix oder den Master bereit ist.
  15. Verfahren nach eine der Ansprüche 13–14, wobei das Empfangen von parallelen Businformationen und das Einfügen eines Wartezyklus durch eine Zustandsmaschine durchgeführt werden und das Serialisieren und das Deserialisieren von Informationen unter Verwendung von einem oder mehreren Schieberegistern durchgeführt werden.
  16. Verfahren nach einem der Ansprüche 13–15, wobei die seriellen Informationen über den Kommunikationsbus zu dem Slave oder zu einer Busmatrix gesendet werden, wobei der Slave an einer anderen Einrichtung als der Einrichtung vorgesehen ist, an der die Busmatrix vorgesehen ist.
  17. Verfahren nach Anspruch 13, wobei die empfangenen seriellen Informationen von dem Kommunikationsbus aus Informationen von dem Slave erhalten werden oder durch eine Matrix vorgesehen werden, die an einer anderen Einrichtung als der Einrichtung vorgesehen ist, an der der Master vorgesehen ist, wobei der Slave an einer anderen Einrichtung als der Einrichtung vorgesehen ist, an der die Busmatrix vorgesehen ist.
  18. Verfahren nach einem der Ansprüche 13–17, das weiterhin das Resynchronisieren der empfangenen seriellen Informationen von einem seriellen Takt während der seriellen Übertragung zu einem Takt, der den Betrieb der Busmatrix oder des Masters bestimmt, umfasst.
  19. Verfahren nach einem der Ansprüche 13–18, wobei die Busmatrix und der Slave eine AHB-Busmatrix und ein AHB-Slave sind, die das AMBA-Busprotokoll verwenden.
  20. Verfahren nach einem der Ansprüche 13–19, wobei der Master ein AHB-Master ist, der das AMBA-Busprotokoll verwendet.
  21. Verfahren zum Koppeln von Buskommunikationen für einen Slave oder einen Master in einem Bussystem, wobei das Verfahren umfasst: Empfangen von seriellen Informationen auf einem Kommunikationsbus, wobei die seriellen Informationen aus Informationen erhalten werden, die durch eine Busmatrix vorgesehen werden und an einen Slave adressiert sind oder durch einen Master vorgesehen werden und an einen Slave adressiert sind, wobei die durch die Busmatrix vorgesehenen Informationen aus Informationen von dem Master erhalten werden oder durch den Master vorgesehen werden und an einen Slave adressiert sind, Deserialisieren der seriellen Informationen, um parallele Informationen zu erhalten, und Geben der parallelen Informationen zu dem Slave oder zu einer Busmatrix für das Senden an den Slave, und Empfangen und Serialisieren einer Antwort auf die parallelen Informationen von dem Slave, um die Antwort auf dem Kommunikationsbus zu der Busmatrix zu geben, oder von der Busmatrix, um die Antwort an den Master zu geben.
  22. Verfahren nach Anspruch 21, wobei das Empfangen der seriellen Informationen das Empfangen von Adressinformationen, Dateninformationen und Steuerinformationen von der Busmatrix umfasst.
  23. Verfahren nach Anspruch 21, wobei das Vorsehen von parallelen Informationen zu dem Slave oder der Busmatrix durch eine Zustandsmaschine ausgeführt wird, und das Deserialisieren und Serialisieren von Informationen unter Verwendung von einem oder mehreren Schieberegistern ausgeführt wird.
  24. Verfahren nach einem der Ansprüche 21–23, wobei die Busmatrix an einer anderen Einrichtung vorgesehen ist als der Einrichtung, an der der Slave vorgesehen ist.
  25. Verfahren nach einem der Ansprüche 21–24, wobei der Master an einer anderen Einrichtung vorgesehen ist als der Einrichtung, an der die Busmatrix vorgesehen ist.
  26. Verfahren nach einem der Ansprüche 21–25, wobei die von dem Kommunikationsbus empfangenen seriellen Informationen durch einen Serialisierer vorgesehen werden, der an einer anderen Einrichtung als der Einrichtung vorgesehen ist, an der der Slave vorgesehen ist.
  27. Verfahren nach einem der Ansprüche 21–26, das weiterhin das Resynchronisieren der von einem seriellen Takt während einer seriellen Übertragung empfangenen seriellen Informationen zu einem Takt, der den Betrieb des Slaves oder der Busmatrix bestimmt.
  28. Verfahren nach einem der Ansprüche 21–27, wobei die Busmatrix und der Slave eine AHB-Matrix und ein AHB-Slave sind, die das AMBA-Busprotokoll verwenden.
  29. System mit einer Buskommunikation zu einem Slave, das umfasst: eine Busmatrix, die betrieben wird, um Informationen unter Verwendung von Bussen des Systems zu kommunizieren, wobei die Busmatrix an einer ersten Einrichtung vorgesehen ist, einen ersten Serialisierer, der mit der Busmatrix verbunden ist und an einer ersten Einrichtung vorgesehen ist, wobei der erste Serialisierer betrieben wird, um die von der Busmatrix empfangenen Informationen zu serialisieren und die serialisierten Informationen über einen Kommunikationsbus zu senden, einen zweiten Serialisierer, der an einer zweiten Einrichtung vorgesehen ist und mit dem Kommunikationsbus verbunden ist, wobei der zweite Serialisierer betrieben wird, um die serialisierten Informationen zu empfangen und die serialisierten Informationen zu deserialisieren, und einen Slave, der an der zweiten Einrichtung vorgesehen und mit dem zweiten Serialisierer verbunden ist, wobei der Slave betrieben wird, um eine Antwort auf die Informationen aus der Busmatrix vorzusehen, wobei die deserialisierten Informationen zu dem Slave gegeben werden.
  30. System nach Anspruch 29, wobei die erste Einrichtung ein erster IC-Chip ist und die zweite Einrichtung ein zweiter IC-Chip ist.
  31. System nach einem der Ansprüche 29–30, wobei der erste und der zweite Serialisierer jeweils eine Zustandsmaschine enthalten, die betrieben wird, um automatische Wartezustände in die Busmatrix einzufügen, um die Serialisierung der Informationen zu gestatten.
  32. System mit einer Buskommunikation zu einem Master, wobei das System umfasst: einen Master, der betrieben wird, um Informationen zu einem Slave des Systems zu lesen und zu schreiben, wobei der Master an einer ersten Einrichtung vorgesehen ist, einen ersten Serialisierer, der mit dem Master verbunden ist und an einer ersten Einrichtung vorgesehen ist, wobei der erste Serialisierer betrieben wird, um die von dem Master empfangenen Informationen zu serialisieren und die serialisierten Informationen über einen Kommunikationsbus zu senden, einen zweiten Serialisierer, der an einer zweiten Einrichtung vorgesehen ist und mit dem Kommunikationsbus verbunden ist, wobei der zweite Serialisierer betrieben wird, um die serialisierten Informationen zu empfangen und die serialisierten Informationen zu deserialisieren, und eine Busmatrix, die an der zweiten Vorrichtung vorgesehen ist und mit dem zweiten Serialisierer verbunden ist, wobei die Busmatrix betrieben wird, um Ziele für Informationen an mehreren mit der Busmatrix verbundenen Bussen zu wählen, wobei die deserialisierten Informationen zu der Busmatrix gegeben werden, um zu dem Slave geführt zu werden.
  33. System nach Anspruch 32, wobei die erste Einrichtung ein erster IC-Chip ist und die zweite Einrichtung ein zweiter IC-Chip ist.
  34. System nach einem der Ansprüche 32–33, wobei der erste und der zweite Serialisierer betrieben werden, um automatische Wartezyklen in dem Master einzufügen, um die Serialisierung der Informationen zu gestatten.
  35. Computerlesbares Medium mit Programmbefehlen für die Implementierung durch einen Computer zum Koppeln von Buskommunikationen für einen Slave oder einen Master in einem Bussystem, wobei die Programmbefehle ausführen: Empfangen von parallelen Businformationen von einer Busmatrix oder einer Busmatrix, wobei die parallelen Businformationen an den Slave adressiert sind, Serialisieren der parallelen Businformationen und Senden der seriellen Informationen auf einem Kommunikationsbus, und Einfügen eines Wartezyklus zu der Busmatrix oder dem Master während der Serialisierung der parallelen Businformationen und Senden von seriellen Informationen.
  36. Computerlesbares Medium mit Programmbefehlen für die Implementierung durch einen Computer zum Koppeln von Buskommunikationen für einen Slave in einem Bussystem, wobei die Programmbefehle ausführen: Empfangen von seriellen Informationen auf einem Kommunikationsbus, wobei die seriellen Informationen aus Informationen erhalten werden, die durch eine Busmatrix oder einen Master vorgesehen werden und an einen Slave adressiert sind, wobei, wenn die Informationen durch die Busmatrix vorgesehen werden, die Informationen aus Informationen von einem Master erhalten werden, Deserialisieren der seriellen Informationen, um parallele Informationen zu erhalten, und Geben der parallelen Informationen zu dem Slave oder einer Busmatrix, und Empfangen und Serialisieren einer Antwort auf die parallelen Informationen von dem Slave oder der Busmatrix, um die Antwort auf dem Kommunikationsbus zu der Busmatrix oder zu dem Master zu geben.
  37. System mit einer Buskommunikation, wobei das System umfasst: eine Matrix, die betrieben wird, um Ziele für Informationen auf mit der Matrix verbundenen Bussen zu wählen, einen ersten Serialisierer, der mit der Matrix verbunden ist und an einer ersten Einrichtung vorgesehen ist, wobei der erste Serialisierer betrieben wird, um von der Matrix empfangene Informationen zu serialisieren und die serialisierten Informationen über einen Kommunikationsbus zu senden, und einen zweiten Serialisierer, der an einer zweiten Einrichtung vorgesehen ist und mit dem Kommunikationsbus verbunden ist, wobei der zweite Serialisierer betrieben wird, um die serialisierten Informationen zu empfangen und die serialisierten Informationen zu deserialisieren, wobei die deserialisierten Informationen zu einer Peripherieeinrichtung gegeben werden, die an der zweiten Einrichtung vorgesehen ist.
  38. System nach Anspruch 37, das weiterhin eine Brücke umfasst, die betreiben wird, um ein erstes Busprotokoll mit einer Busmatrix zu verbinden, die ein zweites Busprotokoll verwendet, und wobei der erste Serialisierer mit der Brücke verbunden ist.
  39. System nach Anspruch 38, weiterhin gekennzeichnet durch einen Slave, der das erste Protokoll verwendet und mit dem zweiten Serialisierer verbunden ist, wobei die deserialisierten Informationen zu dem Slave gegeben werden und wobei der Slave betrieben wird, um eine Antwort auf die Informationen von der Brücke vorzusehen.
  40. System nach einem der Ansprüche 37–39, wobei die erste Einrichtung ein erster IC-Chip ist und die zweite Einrichtung ein zweiter IC-Chip ist.
  41. System nach einem der Ansprüche 37–40, wobei die Peripherieeinrichtung an der zweiten Einrichtung ein Master ist, der betrieben wird, um Informationen von und zu einem Slave des Systems zu lesen und zu schreiben.
  42. System nach einem der Ansprüche 37–40, wobei die Peripherieeinrichtung an der zweiten Einrichtung ein Slave ist, der betrieben wird, um Informationen von einem Master des Systems zu empfangen und Informationen zu demselben zu geben.
  43. System nach Anspruch 42, wobei der Slave ein AHB (Advanced High-Performance Bus)-Slave ist, der über ein AHB-Protokoll kommuniziert.
  44. System nach Anspruch 42, wobei der Slave ein APB (Advanced Peripheral Bus)-Slave ist, der über ein APB-Protokoll kommuniziert.
  45. System nach einem der Ansprüche 38–44, wobei die Brücke eine AHB/APB-Brücke ist, die an der ersten Einrichtung vorgesehen ist, wobei die AHB/APB-Brücke erweitert ist, um Wartezyklen in Kommunikationen über den Kommunikationsbus zu ermöglichen, um die Serialisierung der Informationen zu gestatten.
  46. System nach einem der Ansprüche 37–45, wobei der erste und der zweite Serialisierer jeweils einen Mechanismus enthalten, der betrieben wird, um automatische Wartezyklen in dem Kommunikationsprotokoll für den Kommunikationsbus einzufügen, um die Serialisierung der Informationen zu gestatten.
  47. System nach Anspruch 46, wobei die automatischen Wartezyklen wenigstens teilweise auf einem Verhältnis zwischen den Frequenzen eines seriellen Takts und eines Systemtakts beruhen.
  48. System nach einem der Ansprüche 46–47, wobei der Mechanismus, der betrieben wird, um automatische Wartezyklen einzufügen, eine Zustandsmaschine umfasst und wobei jeder Serialisierer ein oder mehrere Schieberegister umfasst, die betrieben werden, um Informationen für das Senden über den Kommunikationsbus zu serialisieren und von einem Kommunikationsbus empfangene Informationen zu deserialisieren.
  49. System nach einem der Ansprüche 37–48, das weiterhin wenigstens eine zusätzliche Einrichtung einschließlich einer Peripherieeinrichtung umfasst, wobei ein mit der Matrix verbundener Serialisierer an der ersten Einrichtung vorgesehen ist und über einen Kommunikationsbus mit einem Serialisierer an der zusätzlichen Einrichtung verbunden ist, wobei der Serialisierer an der zusätzlichen Einrichtung mit der Peripherieeinrichtung verbunden ist.
  50. System nach einem der Ansprüche 38–48, wobei der erste Serialisierer empfangene serielle Informationen von einem seriellen Takt während einer seriellen Übertragung zu einem Takt resynchronisiert, der den Betrieb der Brücke bestimmt.
  51. System nach einem der Ansprüche 37–48, wobei der zweite Serialisierer empfangene serielle Informationen von einem seriellen Takt während einer seriellen Übertragung zu einem Takt resynchronisiert, der den Betrieb des Slaves bestimmt, der das zweite Protokoll verwendet.
  52. Verfahren zum Vorsehen einer Buskommunikation, wobei das Verfahren umfasst: Serialisieren von Businformationen, die von einer Matrix empfangen werden, unter Verwendung eines ersten Serialisierers, der an einer ersten Einrichtung vorgesehen ist, und Senden der serialisierten Businformationen über einen Kommunikationsbus, und Empfangen der serialisierten Businformationen von dem Kommunikationsbus und Deserialisieren der serialisierten Businformationen unter Verwendung eines zweiten Serialisierers, der an einer zweiten Einrichtung vorgesehen ist, wobei die deserialisierten Informationen zu einer Peripherieeinrichtung gegeben werden, die an der zweiten Einrichtung vorgesehen ist.
  53. Verfahren nach Anspruch 52, wobei die Serialisierung das Empfangen von parallelen Businformationen von einer Brücke umfasst, wobei die parallelen Businformationen zu dem Slave adressiert sind, wobei die Brücke betrieben wird, um ein erstes Busprotokoll mit einer Busmatrix zu verbinden, die ein zweites Busprotokoll verwendet, das sich von dem ersten Protokoll unterscheidet, und wobei der Slave das erste Busprotokoll verwendet.
  54. Verfahren nach einem der Ansprüche 52–53, wobei die Serialisierung das Einfügen eines Wartezyklus zu der Brücke während der Serialisierung der parallelen Businformationen und das Senden von seriellen Informationen umfasst.
  55. Verfahren nach einem der Ansprüche 53–54, wobei die empfangenen seriellen Informationen von dem Kommunikationsbus aus Informationen erhalten werden, die durch den Slave vorgesehen werden, wobei der Slave an einer anderen Einrichtung vorgesehen ist als an einer Einrichtung, an der die Brücke vorgesehen ist.
  56. Verfahren nach einem der Ansprüche 52–55, das weiterhin das Resynchronisieren der empfangenen seriellen Informationen von einem seriellen Takt während einer seriellen Übertragung zu einem Takt, der den Betrieb der Busmatrix bestimmt, umfasst.
  57. Verfahren nach einem der Ansprüche 52–56, wobei die Peripherieeinrichtung, die an der zweiten Einrichtung vorgesehen ist, ein Master ist, der betrieben wird, um Informationen von und zu einem Slave des Systems zu lesen und zu schreiben.
  58. Verfahren nach einem der Ansprüche 52–56, wobei die Peripherieeinrichtung, die an der zweiten Einrichtung vorgesehen ist, ein Slave ist, der betrieben wird, um Informationen von einem Master des Systems zu empfangen und Informationen zu demselben zu geben.
  59. Verfahren nach Anspruch 58, wobei der Slave ein AHB-Slave ist, der über ein AHB-Protokoll kommuniziert.
  60. Verfahren nach Anspruch 58, wobei der Slave ein APB-Slave ist, der über ein APB-Protokoll kommuniziert.
  61. Verfahren nach einem der Ansprüche 53–54, wobei die Brücke eine erweiterte AHB/APB-Brücke ist, die an der ersten Einrichtung vorgesehen ist und Wartezyklen in den Kommunikationen über den Kommunikationsbus ermöglicht, um die Serialisierung der Informationen zu gestatten.
  62. Verfahren nach einem der Ansprüche 52–61, wobei der erste und der zweite Serialisierer automatische Wartezyklen in dem Kommunikationsprotokoll für den Kommunikationsbus einfügen, um die Serialisierung der Informationen zu gestatten.
  63. Verfahren nach Anspruch 62, wobei die automatischen Wartezyklen wenigstens teilweise auf dem Verhältnis zwischen den Frequenzen eines seriellen Takts und eines Systemtakts beruhen.
  64. System mit einer Buskommunikation, wobei das System umfasst: eine Matrix, die betrieben wird, um Ziele für Informationen auf mehreren mit der Matrix verbundenen Bussen zu wählen, wobei die Matrix an einem ersten Chip vorgesehen ist, einen ersten Serialisierer, der mit der Matrix verbunden ist und an dem ersten Chip vorgesehen ist, wobei der erste Serialisierer betrieben wird, um von der Matrix empfangene Informationen zu serialisieren und die serialisierten Informationen über einen Kommunikationsbus zu senden, einen zweiten Serialisierer, der an einem zweiten Chip vorgesehen ist und mit dem Kommunikationsbus verbunden ist, wobei der zweite Serialisierer betrieben wird, um die serialisierten Informationen zu empfangen und die serialisierten Informationen zu deserialisieren, und eine Peripherieeinrichtung, die mit dem zweiten Serialisierer verbunden ist und an dem zweiten Chip vorgesehen ist, wobei die Perhiperieeinrichtung die deserialisierten Informationen von dem zweiten Serialisierer empfängt, wobei der erste und der zweite Serialisierer automatische Wartezyklen in dem Kommunikationsprotokoll für den Kommunikationsbus einfügen, um die Serialisierung der Informationen zu gestatten.
  65. System nach Anspruch 64, wobei die Peripherieeinrichtung ein Master ist, der betrieben wird, um Informationen von und zu einem Slave des Systems zu lesen und zu schreiben.
  66. System nach Anspruch 64, wobei die Peripherieeinrichtung ein Slave ist, der betrieben wird, um Informationen von einem Master des Systems zu empfangen und zu demselben zu geben.
  67. System nach Anspruch 66, wobei der Slave ein AHB-Slave ist, der über ein AHB-Protokoll kommuniziert.
  68. System nach Anspruch 66, wobei der Slave ein APB-Slave ist, der über ein APB-Protokoll kommuniziert, wobei das System weiterhin eine AHB/APB-Brücke umfasst, die an der ersten Einrichtung vorgesehen ist, wobei die AHB/APB-Brücke erweitert ist, um Wartezyklen in Kommunikationen über den Kommunikationsbus zu ermöglichen, um die Serialisierung der Informationen zu gestatten.
  69. Computerlesbares Medium mit Programmbefehlen für die Implementierung durch einen Computer zum Vorsehen einer Buskommunikation, wobei die Programmbefehle ausführen: Serialisieren von Businformationen, die von einer Matrix empfangen werden, unter Verwendung eines ersten Serialisierers, der an einer ersten Einrichtung vorgesehen ist, und Senden der serialisierten Businformationen über einen Kommunikationsbus, und Empfangen der serialisierten Businformationen von dem Kommunikationsbus und Deserialisieren der serialisierten Businformationen unter Verwendung eines zweiten Serialisierers, der an einer zweiten Einrichtung vorgesehen ist, wobei die deserialisierten Informationen zu einer Peripherieeinrichtung gegeben werden, die an der zweiten Einrichtung vorgesehen ist.
  70. Computerlesbares Medium nach Anspruch 69, wobei der Programmbefehl zum Serialisieren das Empfangen von parallelen Businformationen von einer Brücke umfasst, wobei die parallelen Businformationen an den Slave adressiert sind, wobei die Brücke betrieben wird, um ein erstes Busprotokoll mit einer Busmatrix zu koppeln, die ein zweites Busprotokoll verwendet, das sich von dem ersten Protokoll unterscheidet, und wobei der Slave das erste Busprotokoll verwendet.
  71. Computerlesbares Medium nach Anspruch 70, wobei der Programmbefehl zum Serialisieren das Einfügen eines Wartezyklus zu der Brücke während des Serialisierens der parallelen Businformationen und das Senden der seriellen Informationen umfasst.
  72. Computerlesbares Medium mit Programmbefehlen für die Implementierung durch einen Computer zum Koppeln von Buskommunikationen für einen Slave in einem Bussystem, wobei die Programmbefehle ausführen: Empfangen von parallelen Businformationen von einer Brücke, wobei die parallelen Businformationen an den Slave adressiert sind, wobei die Brücke betrieben wird, um ein erstes Busprotokoll mit einer Busmatrix zu koppeln, die ein zweites Busprotokoll verwendet, das sich von dem ersten Protokoll unterscheidet, und wobei der Slave das erste Busprotokoll verwendet, Serialisieren der parallelen Businformationen und Senden der seriellen Informationen auf einem Kommunikationsbus, und Einfügen eines Wartezyklus zu der Brücke während der Serialisierung der parallelen Businformationen und Senden der seriellen Informationen.
  73. Computerlesbares Medium mit Programmbefehlen für die Implementierung durch einen Computer zum Koppeln von Buskommunikationen für einen Slave, wobei die Programmbefehle ausführen: Geben eines Wahlsignals und eines Aktivierungssignals zu dem Slave, um eine Kommunikation mit dem Slave zu ermöglichen, wobei das Wahlsignal und das Aktivierungssignal durch eine Brücke vorgesehen werden, die betrieben wird, um zwei verschiedene Busprotokolle in einem Bussystem zu verbinden, und Empfangen eines Wartesignals, das einen Wartezustand in der Brücke veranlasst, bis die serielle Kommunikation mit dem Slave abgeschlossen ist.
DE112008001143T 2007-04-27 2008-04-23 Serialisierung von Daten in einer Multi-Chip-Busimplementierung Withdrawn DE112008001143T5 (de)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US11/741,328 2007-04-27
US11/741,156 US7769933B2 (en) 2007-04-27 2007-04-27 Serialization of data for communication with master in multi-chip bus implementation
US11/741,328 US7743186B2 (en) 2007-04-27 2007-04-27 Serialization of data for communication with different-protocol slave in multi-chip bus implementation
US11/741,156 2007-04-27
US11/741,250 US7761632B2 (en) 2007-04-27 2007-04-27 Serialization of data for communication with slave in multi-chip bus implementation
US11/741,352 US7814250B2 (en) 2007-04-27 2007-04-27 Serialization of data for multi-chip bus implementation
US11/741,250 2007-04-27
US11/741,352 2007-04-27
PCT/US2008/005284 WO2008133940A2 (en) 2007-04-27 2008-04-23 Serialization of data in multi-chip bus implementation

Publications (1)

Publication Number Publication Date
DE112008001143T5 true DE112008001143T5 (de) 2010-11-04

Family

ID=39580149

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008001143T Withdrawn DE112008001143T5 (de) 2007-04-27 2008-04-23 Serialisierung von Daten in einer Multi-Chip-Busimplementierung

Country Status (2)

Country Link
DE (1) DE112008001143T5 (de)
WO (1) WO2008133940A2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769933B2 (en) 2007-04-27 2010-08-03 Atmel Corporation Serialization of data for communication with master in multi-chip bus implementation
US7761632B2 (en) 2007-04-27 2010-07-20 Atmel Corporation Serialization of data for communication with slave in multi-chip bus implementation
US7814250B2 (en) 2007-04-27 2010-10-12 Atmel Corporation Serialization of data for multi-chip bus implementation
US7743186B2 (en) 2007-04-27 2010-06-22 Atmel Corporation Serialization of data for communication with different-protocol slave in multi-chip bus implementation
CN116822445B (zh) * 2023-08-25 2023-11-03 成都金支点科技有限公司 一种用于高速并行计算的片间总线协议实现方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058051A (en) * 1988-07-29 1991-10-15 Texas Medical Instruments, Inc. Address register processor system
JP2778222B2 (ja) * 1990-08-15 1998-07-23 日本電気株式会社 半導体集積回路装置
DE60119155T2 (de) * 2000-10-31 2007-02-08 Koninklijke Philips Electronics N.V. Erweiterung für die advanced microcontroller bus architecture (amba)
US7069363B1 (en) * 2001-02-27 2006-06-27 Lsi Logic Corporation On-chip bus
JP3510618B2 (ja) * 2002-02-05 2004-03-29 沖電気工業株式会社 バスブリッジ回路及びそのアクセス制御方法

Also Published As

Publication number Publication date
WO2008133940A3 (en) 2008-12-31
WO2008133940A2 (en) 2008-11-06

Similar Documents

Publication Publication Date Title
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
EP0929041B1 (de) Verfahren und Anordnung zum Betreiben eines Bussystems
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE69935852T2 (de) Host-Zugriff zu gemeinschaftlichem Speicher mit Hochprioritätsbetriebsart
DE112007000443B4 (de) Vorrichtung mit einer gemeinsamen Schnittstelle fiir mehrere Prozessorkerne und Verfahren zur Steuerung der Kommunikation derselben mit einer damit gekoppelten Verbindung
DE19680668C2 (de) Verfahren zum Überbrücken zweier Busse, transparente Brücke zum Koppeln zwischen zwei Bussen und Anordnung mit einem Computersystem
US7761632B2 (en) Serialization of data for communication with slave in multi-chip bus implementation
US7743186B2 (en) Serialization of data for communication with different-protocol slave in multi-chip bus implementation
US7814250B2 (en) Serialization of data for multi-chip bus implementation
DE69333479T2 (de) Hierarchisches Verbindungsverfahren und -gerät
DE4142756A1 (de) Datenweg-einrichtung zur kopplung zweier busse
DE102013224101A1 (de) Verbinden mehrerer Slave-Vorrichtungen mit einem einzigen Master
DE102004033445A1 (de) Host-integrierte Schaltungseinheit und Ressourcenzugriffsverfahren
DE19828620B4 (de) Während des Betriebs aufteilbarer Computerbus für einen verbesserten Betrieb mit sich ändernden Bustaktfrequenzen
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
US7769933B2 (en) Serialization of data for communication with master in multi-chip bus implementation
DE112013003766T5 (de) Schnelles Entzerren beim Verlassen eines Niedrigenergie-Teilbreite-Hochgeschwindigkeitsverbindungszustands
WO2012065760A1 (de) Verfahren und schaltungsanordnung zur datenübertragung zwischen prozessorbausteinen
DE102005062537A1 (de) Mehrspeicherchip und Datenübertragungsverfahren hierfür
DE19808988B4 (de) Target-Eingabe/Ausgabesystem zum Koppeln eines auf Hardwarelogik basierenden Emulators an ein Target-System
DE112011105543T5 (de) Verfahren zur Verbesserung des Datendurchsatzes in Open-Core-Protokoll-basierten Verbindungsnetzen unter Verwendung von dynamisch wählbaren redundanten physischen Pfaden mit gemeinsamem Link
DE60017774T2 (de) Verfahren und vorrichtung zur unterstützung von mehrtaktübertragung in einem rechnersystem mit einer punkt-zu-punkt halb-duplex verbindung
DE112008001143T5 (de) Serialisierung von Daten in einer Multi-Chip-Busimplementierung
DE102016206170B4 (de) Serielle draht-debug-brücke

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination