DE112021001439T5 - Schnittstellenbildung einer anzahl von seriellen kommunikationsschnittstellenmit einer parallelen kommunikationsschnittstelle und zugehörige systeme,verfahren und vorrichtungen - Google Patents

Schnittstellenbildung einer anzahl von seriellen kommunikationsschnittstellenmit einer parallelen kommunikationsschnittstelle und zugehörige systeme,verfahren und vorrichtungen Download PDF

Info

Publication number
DE112021001439T5
DE112021001439T5 DE112021001439.0T DE112021001439T DE112021001439T5 DE 112021001439 T5 DE112021001439 T5 DE 112021001439T5 DE 112021001439 T DE112021001439 T DE 112021001439T DE 112021001439 T5 DE112021001439 T5 DE 112021001439T5
Authority
DE
Germany
Prior art keywords
encoded data
data blocks
symbols
serial communication
communication interfaces
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.)
Pending
Application number
DE112021001439.0T
Other languages
English (en)
Inventor
Johan Vaarlid
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112021001439T5 publication Critical patent/DE112021001439T5/de
Pending legal-status Critical Current

Links

Images

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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • 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/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • 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/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Die offenbarten Ausführungsformen beziehen sich allgemein auf die Schnittstellenbildung von seriellen Kommunikationsschnittstellen einer ersten Vorrichtung mit einer parallelen Kommunikationsschnittstelle einer zweiten Vorrichtung. Es kann eine erste Gruppe von zwei oder mehr seriellen Kommunikationsschnittstellen und eine Schnittstellenlogik bereitgestellt werden. Die Schnittstellenlogik kann zweite codierte Datenblöcke bilden, indem sie die Datenelemente der ersten codierten Datenblöcke so anordnet, dass Datenelemente innerhalb einer gleichen Datenelementposition jeweiliger zweiter codierter Datenblöcke ein gegebenes der Symbole darstellen, und die zweiten codierten Datenblöcke einer Anzahl von seriellen Kommunikationsschnittstellen bereitstellen, die mit einer parallelen Kommunikationsschnittstelle einer weiteren Vorrichtung (104) gekoppelt sind. Eine Schnittstellenlogik kann zusätzlich oder alternativ dazu konfiguriert sein, um von einer zweiten Gruppe von zwei oder mehr seriellen Kommunikationsschnittstellen empfangene codierte Datenblöcke zu empfangen, die empfangene Symbole darstellen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht den Vorteil des Prioritätsdatums der am 2. März 2020 eingereichten vorläufigen US-Patentanmeldung Nr. 62/984.086 mit dem Titel „INTERFACING A NUMBER OF SERIAL COMMUNICATION INTERFACES WITH A PARALLEL COMMUNICATION INTERFACE, AND RELATED SYSTEMS, METHODS, AND APPARATUSES“, deren Offenbarung und Inhalt hiermit in ihrer Gesamtheit durch diese Bezugnahme aufgenommen wird.
  • TECHNISCHES GEBIET
  • Diese Beschreibung bezieht sich allgemein auf Datenkommunikation und insbesondere beziehen sich einige Ausführungsformen auf Verfahren der Schnittstellenbildung von seriellen Kommunikationsschnittstellen mit einer parallelen Kommunikationsschnittstelle und Kommunikation unter Verwendung derselben.
  • HINTERGRUND
  • Mikrocontroller und eingebettete Systeme umfassen allgemeiner manchmal eine oder mehrere serielle Kommunikationsvorrichtungen, wie universelle synchrone/asynchrone Empfänger und Sender (USART), ohne Einschränkung, zum Bilden serieller Kommunikationsverbindungen und allgemeiner serieller Kommunikation über verschiedene Busse. Die serielle Kommunikation wird von dem Erfinder dieser Offenbarung allgemein so verstanden, dass sie besonders geeignet ist für eine Femdatenübertragung und für Fälle, bei denen eine Datenmenge (in der Regel in Bits, Bytes oder Nibbles gemessen) relativ klein ist.
  • Die parallele Kommunikation wird von dem Erfinder dieser Offenbarung allgemein so verstanden, dass sie als nicht einschränkendes Beispiel eine unerwünschte Form der Kommunikation durch Mikrocontroller ist, weil sie Stifte (z. B. Eingabe/Ausgabe-Stifte (E/A-Stifte), ohne Einschränkung) bindet und über lange Strecken ist die parallele Kommunikation anfällig für Rauschen und anfällig für Übertragungsfehler aufgrund von Zeitsteuerungsfehlern. Der Erfinder dieser Offenbarung erkennt, dass einige Mikrocontroller-Designer auf die Unterstützung der parallelen Kommunikation verzichten können, und dass Mikrocontroller-Peripheriegeräte, die parallele Kommunikation unterstützen, relativ unüblich sind.
  • Figurenliste
  • Um die Erörterung eines besonderen Elements oder einer besonderen Handlung leicht zu identifizieren, bezieht/beziehen sich die Hauptziffer(n) in einem Bezugszeichen auf die Figurennummer, in der dieses Element zuerst eingeführt wird.
    • 1 ist ein Flussdiagramm, das einen Prozess zum Schnittstellenbildung einer Anzahl von seriellen Kommunikationsschnittstellen einer ersten Vorrichtung mit einer parallelen Kommunikationsschnittstelle einer zweiten Vorrichtung gemäß einer oder mehreren Ausführungsformen darstellt.
    • 2 ist ein Flussdiagramm, das einen Prozess zum Anordnen von Datenelementen zweiter codierter Datenblöcke als Teil eines Prozesses zur Schnittstellenbildung einer Anzahl von seriellen Kommunikationsschnittstellen einer ersten Vorrichtung mit einer parallelen Kommunikationsschnittstelle einer zweiten Vorrichtung gemäß einer oder mehreren Ausführungsformen darstellt.
    • 3 ist ein Flussdiagramm, das einen Prozess zum Bereitstellen, durch eine erste Vorrichtung, von zweiten codierten Datenblöcken (z. B. über den Prozess 200 eingerichtet, ohne Einschränkung) an eine parallele Kommunikationsschnittstelle einer zweiten Vorrichtung gemäß einer oder mehreren Ausführungsformen darstellt.
    • 4 ist ein Flussdiagramm, das einen Prozess zur Datenaufbereitung durch eine erste Vorrichtung darstellt, die sich zum Senden von Symbolen an eine zweite Vorrichtung gemäß einer oder mehreren Ausführungsformen vorbereitet.
    • 5 ist ein Blockdiagramm, das ein System darstellt, das eine parallele Kommunikationsverbindung einschließt, die zwischen einer ersten Vorrichtung und einer zweiten Vorrichtung definiert ist, wobei eine Anzahl von seriellen Kommunikationsschnittstellen, speziell gruppierte serielle Kommunikationsschnittstellen, die an der ersten Vorrichtung bereitgestellt sind, gemäß einer oder mehreren Ausführungsformen mit einer parallelen Kommunikationsschnittstelle der zweiten Vorrichtung gekoppelt sind.
    • 6 ist ein Blockdiagramm, das eine Schaltlogik darstellt, die verwendet werden kann, um verschiedene Funktionen, Vorgänge, Handlungen, Prozesse und/oder Verfahren gemäß einer oder mehreren Ausführungsformen zu implementieren.
  • ART(EN) ZUM AUSFÜHREN DER ERFINDUNG
  • In der folgenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden und in denen zur Veranschaulichung spezifische beispielhafte Ausführungsformen gezeigt sind, in denen die vorliegende Offenbarung in die Praxis umgesetzt werden kann. Diese Ausführungsformen sind hinreichend detailliert beschrieben, um es einem Durchschnittsfachmann zu ermöglichen, die vorliegende Offenbarung in die Praxis umzusetzen. Es können jedoch auch andere Ausführungsformen verwendet werden und Änderungen der Struktur, des Materials und des Prozesses können vorgenommen werden, ohne vom Schutzumfang der Offenbarung abzuweichen.
  • Die hierin dargestellten Veranschaulichungen sollen keine tatsächlichen Ansichten eines bestimmten Verfahrens oder Systems oder einer bestimmten Vorrichtung oder Struktur sein, sondern sind lediglich idealisierte Darstellungen, die zur Beschreibung der Ausführungsformen der vorliegenden Offenbarung verwendet werden. Die hierin dargestellten Zeichnungen sind nicht notwendigerweise maßstabsgetreu. Ähnliche Strukturen oder Komponenten in den verschiedenen Zeichnungen können zur Vereinfachung für den Leser die gleiche oder eine ähnliche Nummerierung beibehalten; die Ähnlichkeit in der Nummerierung bedeutet jedoch nicht, dass die Strukturen oder Komponenten notwendigerweise in Größe, Zusammensetzung, Konfiguration oder einer anderen Eigenschaft identisch sind.
  • Es versteht sich von selbst, dass die Komponenten der Ausführungsformen, wie sie hierin allgemein beschrieben und in den Zeichnungen dargestellt sind, in einer großen Vielfalt unterschiedlicher Konfigurationen angeordnet und gestaltet werden können. Somit soll die folgende Beschreibung verschiedener Ausführungsformen den Schutzumfang der vorliegenden Offenbarung nicht einschränken, sondern ist lediglich repräsentativ für verschiedene Ausführungsformen. Während die verschiedenen Gesichtspunkte der Ausführungsformen in Zeichnungen dargestellt werden können, sind die Zeichnungen nicht notwendigerweise maßstabsgetreu gezeichnet, sofern nicht ausdrücklich angegeben.
  • Die folgende Beschreibung kann Beispiele einschließen, um es einem Durchschnittsfachmann zu ermöglichen, die offenbarten Ausführungsformen auszuführen. Die Verwendung der Begriffe „beispielhaft“, „als Beispiel“ und „zum Beispiel“ bedeutet, dass die zugehörige Beschreibung erläuternd ist, und obwohl der Schutzumfang der Offenbarung die Beispiele und ihre rechtlichen Äquivalente umfassen soll, ist die Verwendung solcher Begriffe nicht dazu bestimmt, den Schutzumfang einer Ausführungsform oder dieser Offenbarung auf die spezifizierten Komponenten, Schritte, Merkmale, Funktionen oder dergleichen einzuschränken.
  • Somit sind die gezeigten und beschriebenen spezifischen Implementierungen nur Beispiele und sollten nicht als die einzige Möglichkeit zur Implementierung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders angegeben. Elemente, Schaltungen und Funktionen können in Blockdiagrammform gezeigt sein, um die vorliegende Offenbarung nicht durch unnötige Details undeutlich werden zu lassen. Umgekehrt sind gezeigte und beschriebene spezifische Implementierungen nur beispielhaft und sollten nicht als die einzige Möglichkeit zur Implementierung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders angegeben. Außerdem sind Blockdefinitionen und die Aufteilung von Logik zwischen verschiedenen Blöcken beispielhaft für eine spezifische Implementierung. Es ist für den Durchschnittsfachmann ohne Weiteres ersichtlich, dass die vorliegende Offenbarung durch zahlreiche andere Aufteilungslösungen ausgeführt werden kann. Auf Details zu zeitlichen Erwägungen und dergleichen wurde größtenteils verzichtet, soweit solche Details für ein vollständiges Verständnis der vorliegenden Offenbarung nicht erforderlich sind und innerhalb der Fähigkeiten eines Durchschnittsfachmanns liegen.
  • Hierin beschriebene Informationen und Signale können unter Verwendung verschiedener unterschiedlicher Technologien und Techniken dargestellt werden. Zum Beispiel können Daten, Anweisungen, Befehle, Informationen, Signale, Bits und Symbole, auf die in der Beschreibung Bezug genommen werden kann, durch Spannungen, Ströme, elektromagnetische Wellen, Magnetfelder oder -partikel, optische Felder oder Partikel oder eine beliebige Kombination davon dargestellt werden. Einige Zeichnungen können Signale zur Übersichtlichkeit der Darstellung und Beschreibung als ein einzelnes Signal veranschaulichen. Es sollte für einen Durchschnittsfachmann ersichtlich sein, dass das Signal einen Bus von Signalen darstellen kann, wobei der Bus eine Vielfalt von Bitbreiten aufweisen kann und die Offenbarung auf einer beliebigen Anzahl von Datensignalen, einschließlich eines einzelnen Datensignals, implementiert werden kann.
  • Es versteht sich, dass jede Bezugnahme auf ein Element hierin unter Verwendung einer Bezeichnung wie „erste/r/s“, „zweite/r/s“ usw. die Menge oder Reihenfolge dieser Elemente nicht einschränkt, es sei denn, eine solche Einschränkung wird ausdrücklich angegeben. Vielmehr werden diese Bezeichnungen hierin als ein zweckmäßiges Verfahren zum Unterscheiden zwischen zwei oder mehr Elementen oder Instanzen eines Elements verwendet. Ein Verweis auf ein erstes und zweites Element bedeutet also nicht, dass nur zwei Elemente eingesetzt werden dürfen oder dass das erste Element dem zweiten Element in irgendeiner Art und Weise vorhergehen muss. Ebenso kann ein Satz von Elementen, sofern nicht anders angegeben, ein oder mehrere Elemente umfassen. Ebenso können manchmal Elemente, auf die in der Singularform Bezug genommen wird, auch eine oder mehrere Instanzen des Elements einschließen.
  • Wie hierin verwendet, bedeutet der Begriff „im Wesentlichen“ in Bezug auf einen gegebenen Parameter, eine gegebene Eigenschaft oder eine gegebene Bedingung und schließt in einem für den Durchschnittsfachmann verständlichen Ausmaß ein, dass der gegebene Parameter, die gegebene Eigenschaft oder die gegebene Bedingung mit einem geringen Maß an Varianz, wie zum Beispiel innerhalb annehmbarer Fertigungstoleranzen, erfüllt ist. Beispielhaft kann in Abhängigkeit von dem bestimmten Parameter, der bestimmten Eigenschaft oder der bestimmten Bedingung, der bzw. die im Wesentlichen erfüllt ist, der Parameter, die Eigenschaft oder die Bedingung zu mindestens 90 % erfüllt, zu mindestens 95 % erfüllt oder sogar zu mindestens 99 % erfüllt sein.
  • Die verschiedenen veranschaulichenden logischen Blöcke, Module und Schaltungen, die in Verbindung mit den hierin offenbarten Ausführungsformen beschrieben werden, können mit einem Allzweckprozessor, einem Spezialprozessor, einem digitalen Signalprozessor (DSP), einer anwendungsspezifischen integrierten Schaltung (ASIC), einem Field Programmable Gate Array (FPGA) oder einer anderen programmierbaren Logikvorrichtung, einer diskreten Gate- oder Transistorlogik, diskreten Hardwarekomponenten oder einer beliebigen Kombination davon, die zum Ausführen der hierin beschriebenen Funktionen ausgelegt sind, implementiert oder ausgeführt werden. Ein Allzweckprozessor (der hierin auch als Host-Prozessor oder einfach als Host bezeichnet werden kann) kann ein Mikroprozessor sein, alternativ kann der Prozessor jedoch ein beliebiger herkömmlicher Prozessor, Controller, Mikrocontroller oder Zustandsautomat sein. Ein Prozessor kann auch als eine Kombination von Rechenvorrichtungen, wie eine Kombination aus einem DSP und einem Mikroprozessor, eine Vielzahl von Mikroprozessoren, ein oder mehrere Mikroprozessoren in Verbindung mit einem DSP-Kern oder eine beliebige andere derartige Konfiguration implementiert sein. Ein Universalcomputer einschließlich eines Prozessors gilt als ein Spezialcomputer, während der Universalcomputer so konfiguriert ist, dass er Rechenanweisungen (z. B. einen Softwarecode) ausführt, die sich auf Ausführungsformen der vorliegenden Offenbarung beziehen.
  • Es wird auch angemerkt, dass die Ausführungsformen in Bezug auf einen Prozess beschrieben werden können, der als ein Flussdiagramm, ein Fließschema, ein Strukturdiagramm oder ein Blockdiagramm dargestellt ist. Obwohl ein Flussdiagramm Betriebsvorgänge als einen sequentiellen Prozess beschreiben kann, können viele dieser Vorgänge in einer anderen Reihenfolge, parallel oder im Wesentlichen gleichzeitig ausgeführt werden. Außerdem kann die Reihenfolge der Handlungen geändert werden. Ein Prozess kann ohne Einschränkung einem Verfahren, einem Thread, einer Funktion, einer Prozedur, einer Subroutine und einem Subprogramm entsprechen. Des Weiteren können die hierin offenbarten Verfahren in Hardware, Software oder beidem implementiert werden. Bei Implementierung in Software können die Funktionen als eine oder mehrere Anweisungen oder als Code auf computerlesbaren Medien gespeichert oder übertragen werden. Computerlesbare Medien schließen sowohl Computerspeichermedien als auch Kommunikationsmedien, einschließlich aller Medien, welche die Übertragung eines Computerprogramms von einem Ort zu einem anderen unterstützen, ein.
  • In dieser Beschreibung können der Begriff „gekoppelt“ und Derivate davon verwendet werden, um anzugeben, dass zwei Elemente zusammenwirken oder miteinander interagieren. Wenn ein Element als mit einem anderen Element „gekoppelt“ beschrieben wird, können die Elemente in direktem physischem oder elektrischem Kontakt sein oder es können Zwischenelemente oder -schichten vorhanden sein. Wenn dagegen ein Element als mit einem anderen Element „direkt gekoppelt“ bezeichnet wird, sind keine Zwischenelemente oder -schichten vorhanden. Der Begriff „verbunden“ kann in dieser Beschreibung austauschbar mit dem Begriff „gekoppelt“ verwendet werden und hat die gleiche Bedeutung, sofern nicht ausdrücklich etwas anderes angegeben ist oder der Kontext einem Fachmann etwas anderes angeben würde.
  • Wie hierin verwendet, bedeutet „Symbol“ Informationen, die durch eine Anzahl von Datenelementen dargestellt werden. In einem Kommunikationssystem kann eine beliebige Anzahl an Datenelementen vorab festgelegt werden, um Symbole darzustellen, jedoch können ein Sender und ein Empfänger eine Vereinbarung über die Anzahl an Datenelementen, die ein Symbol bilden, aufweisen. Nicht einschränkende Beispiele für Arten von Symbolen schließen Anwendungsinformationen, Steuerinformationen und Zeitinformationen ein.
  • Wie hierin verwendet, bedeutet „Kommunizieren“ das Senden und/oder Empfangen eines Symbols, und „Kommunikation“ bedeutet einen Prozess zum Kommunizieren eines Symbols.
  • Wie hierin verwendet, bedeutet „serielle Kommunikation“ einen Prozess der Kommunikation eines Symbols eines Datenelements gleichzeitig, in einer Sequenz. Parallele Kommunikation bedeutet einen Prozess, bei dem ein Symbol von zwei oder mehr Datenelementen zusammen, im Wesentlichen gleichzeitig, kommuniziert wird.
  • Der Erfinder dieser Offenbarung erkennt, dass Unterstützung für parallele Kommunikation bei Rechensystemen, die ansonsten Peripheriegeräte einschließen, die für serielle Kommunikation konfiguriert sind, wünschenswert sein kann.
  • Eine oder mehrere Ausführungsformen beziehen sich im Allgemeinen auf die Schnittstellenbildung von seriellen Kommunikationsschnittstellen (SCI) einer ersten Vorrichtung mit einer parallelen Kommunikationsschnittstelle einer zweiten Vorrichtung (hierin auch als „weitere Vorrichtung“ bezeichnet), eine parallele Kommunikationsschnittstelle (PCI) zum Bilden einer parallelen Kommunikationsverbindung unter Verwendung von seriellen Kommunikationsschnittstellen (SCI) und zugehörige Systeme, Verfahren und Vorrichtungen. Die Schnittstellenlogik eines solchen PCI-Blocks (z. B. implementiert durch eine Logikschaltlogik eines Verarbeitungskerns oder einer zentralen Verarbeitungseinheit, ohne Einschränkung) kann konfiguriert sein zum: Erhalten von Symbolen, die durch erste codierte Datenblöcke dargestellt werden, von denen jeder eine Anzahl von N Datenelementen hat, die in einer ersten Reihenfolge angeordnet sind, um ein gegebenes Symbol darzustellen; logisches Gruppieren einer Anzahl N von SCI, die einen Takt gemeinsam nutzen; Vorbereiten der ersten Datenblöcke zum Senden durch Umordnen der Datenelemente der ersten Datenblöcke, sodass für die daraus resultierenden zweiten codierten Datenblöcke die Datenelemente innerhalb einer gleichen Datenelementposition eines jeweiligen zweiten codierten Datenblocks ein gegebenes der Symbole darstellen; Senden der zweiten codierten Datenblöcke an jeweilige logisch gruppierte SCI (hierin auch als „serielle Schnittstellengruppe“ bezeichnet); Koppeln der jeweiligen logisch gruppierten SCI mit Übertragungsleitungen; und Austakten der Datenelemente an jeweiligen logisch gruppierten SCI synchron zu den Übertragungsleitungen und somit zur parallelen Schnittstelle der weiteren Vorrichtung. Während spezifische Zahlen von Datenelementen oder SCIs hierin erläutert oder veranschaulicht werden können, sollte beachtet werden, dass die Zahl N eine willkürliche Zahl darstellt, d. h. eine willkürliche Anzahl von Datenelementen, die zur Darstellung eines Symbols verwendet werden, oder eine Anzahl von SCIs, die zum Senden von Daten verwendet werden, und diese Offenbarung nicht auf eine spezifische Anzahl von Datenelementen oder SCIs beschränkt.
  • Wahlweise kann die Schnittstellenlogik einer parallelen Kommunikationsschnittstelle der ersten Vorrichtung die Parameter für eine parallele Kommunikationsverbindung mit der zweiten Vorrichtung gemäß jedem von der ersten und zweiten Vorrichtung verwendeten parallelen Kommunikationsprotokoll initialisieren. Somit können einige von der ersten Vorrichtung an die zweite Vorrichtung gesendete Symbole Protokollsymbole zur Initialisierung und zum Training einer stabilen parallelen Kommunikationsverbindung zwischen der ersten Vorrichtung und der zweiten Vorrichtung sein. In verschiedenen Ausführungsformen können einige oder die Gesamtheit solcher Protokollsymbole vorab festgelegt (z. B. vorab eingerichtet oder anderweitig vorkonfiguriert, ohne Einschränkung) und an einer parallelen Kommunikationsschnittstelle der ersten Vorrichtung gespeichert werden, wobei solche Protokollsymbole bereits als zweite codierte Datenblöcke, die für die Übertragung durch eine serielle Schnittstellengruppe geeignet sind, eingerichtet oder als zweite codierte Datenblöcke, die für die Übertragung durch eine serielle Schnittstellengruppe geeignet sind, durch eine Schnittstellenlogik, wie hierin erläutert, neu eingerichtet werden.
  • 1 ist ein Flussdiagramm, das einen Prozess 100 zur Schnittstellenbildung einer Anzahl von seriellen Kommunikationsschnittstellen einer ersten Vorrichtung mit einer parallelen Kommunikationsschnittstelle einer zweiten Vorrichtung gemäß einer oder mehreren Ausführungsformen darstellt.
  • Bei Vorgang 102 erhält der Prozess 100 Symbole, die durch erste codierte Datenblöcke dargestellt werden, von denen jeder Datenelemente umfassen kann. Als nicht einschränkende Beispiele können die ersten codierten Datenblöcke an oder von Eingaben oder einem Datenregister erhalten werden, die gemäß einer parallelen Kommunikationsschnittstelle, wie einer PCI 502 von 5, ohne Einschränkung, eingerichtet sind.
  • Bei Vorgang 104 bildet der Prozess 100 zweite codierte Datenblöcke, indem er die Datenelemente der ersten codierten Datenblöcke so einrichtet, dass Datenelemente innerhalb einer gleichen Datenelementposition der jeweiligen zweiten codierten Datenblöcke ein gegebenes der Symbole darstellen. Somit können die Datenelemente eines gegebenen von den zweiten codierten Datenblöcken die Datenelemente innerhalb einer gleichen Elementposition der verschiedenen ersten codierten Datenblöcke einschließen.
  • Bei Vorgang 106 wählt der Prozess 100 eine serielle Schnittstellengruppe aus (d. h. er gruppiert logisch eine Anzahl individueller SCI), um die Symbole zu senden (z. B. Kommunizieren der Symbole durch Übertragen der zweiten codierten Datenblöcke, die die Symbole darstellen, ohne Einschränkung). Die Anzahl der ausgewählten SCI kann von einer Breite einer parallelen Kommunikationsverbindung zwischen Vorrichtungen und allgemeiner von der Breite der parallelen Kommunikationsschnittstelle der zweiten Vorrichtung abhängen. Im Allgemeinen wird eine ausgewählte serielle Schnittstellengruppe mindestens zwei serielle Kommunikationsschnittstellen einschließen, sodass mindestens zwei Datenelemente von zweiten codierten Datenblöcken über jeweilige Kommunikationsverbindungen gleichzeitig, d. h. in einer Weise, die mit paralleler Kommunikation vereinbar ist, gesendet werden können. Die verfügbare Breite einer parallelen Kommunikationsverbindung kann, als nicht einschränkendes Beispiel, gemäß einer Form des parallelen Kommunikationsprotokolls, das verwendet wird, um die parallele Kommunikationsverbindung zu bilden, beim Systemdesign vorab festgelegt werden. Somit wird insbesondere die Auswahl von mehr als zwei seriellen Kommunikationsschnittstellen für eine serielle Schnittstellengruppe in Betracht gezogen und überschreitet nicht den Schutzumfang dieser Offenbarung.
  • Bei Vorgang 108 synchronisiert der Prozess 100 die seriellen Schnittstellen der seriellen Schnittstellengruppe. In einigen Ausführungsformen können serielle Kommunikationsschnittstellen automatisch übertragen (d. h. zur automatischen Übertragung von Daten in den jeweiligen Übertragungsregistern konfiguriert sein, ohne Einschränkung), und in solchen Fällen können die seriellen Kommunikationsschnittstellen durch Deaktivierung der automatischen Übertragung synchronisiert werden, und eine der seriellen Kommunikationsschnittstellen kann so gewählt werden, dass sie einen Takt als „Latch-Signal“ bereitstellt (das in digitalen Kommunikationssystemen die Form eines „Latch-Symbols“ annehmen kann), oder es kann ein gemeinsam genutzter Takt an den jeweiligen Takteingaben der seriellen Kommunikationsschnittstellen bereitgestellt werden. Ein solches Latch-Signal kann um einen halben Taktzyklus verzögert werden, um übertragene Daten im Wesentlichen auf einem korrekten Signalpegel zu verriegeln. In Ausführungsformen ohne automatisch übertragene SCI werden die SCI einer ausgewählten seriellen Schnittstellengruppe synchronisiert, indem ein gemeinsam genutztes Taktsignal an den jeweiligen Takteingaben der SCI bereitgestellt wird.
  • Bei Vorgang 110 verteilt der Prozess 100 die zweiten codierten Datenblöcke auf die ausgewählten seriellen Schnittstellen der seriellen Schnittstellengruppe. Als nicht einschränkendes Beispiel kann die serielle Schnittstelle 0 den Block 0 der zweiten codierten Datenblöcke empfangen, der die jeweiligen Datenelemente der Datenelementpositionen 0 der ersten codierten Datenblöcke einschließt, die serielle Schnittstelle 1 kann den Block 1 der zweiten codierten Datenblöcke empfangen, der die Datenelemente der Datenelementpositionen 1 jedes der ersten codierten Datenblöcke einschließt, und so weiter.
  • Bei Vorgang 112 verbindet (d. h. koppelt betriebsfähig) der Prozess 100 die Ausgänge der jeweiligen SCI der seriellen Schnittstellengruppe mit einzelnen Übertragungsleitungen und mit einzelnen jeweiligen Eingängen der parallelen Schnittstelle der zweiten Vorrichtung. Nicht genutzte Übertragungsleitungen einer SCI können von der parallelen Schnittstelle abgekoppelt werden, als nicht einschränkendes Beispiel können in Fällen, in denen ein einzelner Takt mit den Daten gesendet wird, andere an den SCI bereitgestellte Takte abgekoppelt werden.
  • Bei Vorgang 114 sendet der Prozess 100 (z. B. synchronisiertes Austakten, ohne Einschränkung) Symbole, ein Symbol nach dem anderen, die durch zweite codierte Datenblöcke dargestellt werden. Als nicht einschränkendes Beispiel kann jeder zweite codierte Datenblock der zweiten codierten Datenblöcke in einem Schieberegister gespeichert werden, das als Übertragungsregister einer jeweiligen seriellen Kommunikationsschnittstelle verwendet wird, und die codierten Datenelemente für ein gegebenes Symbol, ein Symbol nach dem anderen, können auf den parallelen Kommunikationsbus verschoben werden (z. B. hinausgeschoben auf den parallelen Kommunikationsbus, ohne Einschränkung), sodass sie während einer mit einem Takt synchronisierten Transaktion an der parallelen Schnittstelle der zweiten Vorrichtung empfangen werden.
  • Bei Vorgang 116 gibt der Prozess 100 wahlweise die seriellen Kommunikationsschnittstellen der seriellen Schnittstellengruppe beim Senden der Symbole frei. Die freigegebenen seriellen Kommunikationsschnittstellen können nach der Freigabe separat für die serielle Kommunikation zur Verfügung stehen oder zur Bildung der gleichen oder unterschiedlicher serieller Schnittstellengruppen verwendet werden.
  • Vorgang 102 und Vorgang 104 können so verstanden werden, dass sie einen Datenaufbereitungsprozess bilden oder einen Abschnitt davon bilden. Vorgang 106, Vorgang 108, Vorgang 110 und Vorgang 112 können so verstanden werden, dass sie einen Einrichtungsprozess für eine serielle Schnittstelle bilden oder einen Abschnitt davon bilden.
  • 2 ist ein Flussdiagramm, das einen Prozess 200 zum Anordnen von Datenelementen zweiter codierter Datenblöcke als Teil eines Prozesses zum Übersetzen erster codierter Datenblöcke in zweite codierte Datenblöcke darstellt, die gemäß einer oder mehrerer Ausführungsformen zur Eingabe und zum Senden durch serielle Kommunikationsschnittstellen einer ersten Vorrichtung geeignet sind, die mit einer parallelen Kommunikationsschnittstelle einer zweiten Vorrichtung gekoppelt ist.
  • Bei Vorgang 202 baut der Prozess 200 optional eine parallele Kommunikationsverbindung unter Verwendung vorab festgelegter Protokollsymbole auf (z. B. initialisiert, trainiert, ohne Einschränkung). Die vorab festgelegten codierten Datenblöcke, die die Protokollsymbole darstellen, können Datenelemente aufweisen, die in den Datenelementpositionen der vorab festgelegten codierten Datenblöcke vorab eingerichtet sind, die zum Senden der Protokollsymbole unter Verwendung der Anzahl der seriellen Kommunikationsschnittstellen geeignet sind.
  • Bei Vorgang 204 erhält der Prozess 200 erste codierte Datenblöcke, die Symbole darstellen. Die Symbole und damit die ersten codierten Datenblöcke können Datenelemente aufweisen, und die Symbole können in einer spezifischen Reihenfolge angeordnet werden. In einem nicht einschränkenden Beispiel stellt jeder Datenblock der ersten codierten Datenblöcke ein Symbol dar.
  • Bei Vorgang 206 identifiziert der Prozess 200 Teilmengen von Datenelementen gemäß ihren Datenelementpositionen innerhalb jeweiliger erster codierter Datenblöcke. Zum Beispiel kann eine erste identifizierte Teilmenge Datenelemente in einer Datenelementposition einschließen, die einem höchstsignifikanten Bit (MSB) der jeweiligen ersten codierten Datenblöcke entspricht, eine zweite identifizierte Teilmenge kann Datenelemente in einer Datenelementposition einschließen, die einer angrenzenden Position zum MSB der ersten codierten Datenblöcke entspricht, und so weiter.
  • Bei Vorgang 208 ordnet der Prozess 200 die Datenelemente jeweiliger Teilmengen in eine Reihenfolge an, die einer Reihenfolge der Symbole entspricht. Zum Beispiel entsprechen die Datenelemente an den höchstwertigen Datenelementpositionen einer Teilmenge einem ersten Symbol, die Datenelemente an der nächsten Datenelementposition einer Teilmenge entsprechen einem nächsten Symbol, und so weiter. Zweite codierte Datenblöcke können als Reaktion auf das Durchführen des Vorgangs 206 erhalten werden.
  • Bei Vorgang 210 sendet Prozess 200 wahlweise zweite codierte Datenblöcke, von denen jeder die Datenelemente einschließt, die gemäß der Reihenfolge des Symbols angeordnet sind, zu dem sie gehören, an serielle Kommunikationsschnittstellen, wie vorstehend in Bezug auf Vorgang 110 beschrieben.
  • 3 ist ein Flussdiagramm, das einen Prozess 300 zum Bereitstellen, durch eine erste Vorrichtung, von zweiten codierten Datenblöcken (z. B. über den Prozess 200 eingerichtet, ohne Einschränkung) an eine parallele Kommunikationsschnittstelle einer zweiten Vorrichtung gemäß einer oder mehreren Ausführungsformen darstellt.
  • Bei Vorgang 302 sendet der Prozess 300 seriell Datenelemente der jeweiligen zweiten codierten Datenblöcke während aufeinanderfolgenden Zeitperioden. Die während einer gegebenen der Zeitperioden gesendeten (z. B. gemeinsam ausgetakteten, ohne Einschränkung) Datenelemente stellen ein gegebenes der Symbole dar.
  • Bei Vorgang 304 synchronisiert der Prozess 300 das serielle Senden der Datenelemente, die die gleichen Positionen der jeweiligen zweiten codierten Datenblöcke aufweisen.
  • 4 ist ein Diagramm, das einen Prozess 400 zur Datenaufbereitung durch eine erste Vorrichtung darstellt, die sich zum Senden von Symbolen an eine zweite Vorrichtung gemäß einer oder mehreren Ausführungsformen vorbereitet. Prozess 400 stellt ein nicht einschränkendes Beispiel für die Aufbereitung von Daten gemäß Prozess 100 und Prozess 200 dar, um Symbole von ersten codierten Datenblöcken 450 in ein Format zu übersetzen, das für die Eingabe in mehrere serielle Kommunikationsschnittstellen geeignet ist, d. h. in Symbole eines zweiten codierten Datenblocks 452.
  • In dem spezifischen Beispiel, das von 4 dargestellt ist, erhält der Prozess 400 Symbole, die durch erste codierte Datenblöcke 450 dargestellt werden, von denen jeder eine Anzahl von N Datenelementen hat, die in einer ersten Reihenfolge angeordnet sind, um ein gegebenes Symbol darzustellen. Erste codierte Datenblöcke 450 schließen die vier Symbole ein, die in 4 als ,A` ,B` ,C` und ,D` bezeichnet sind. Der erste codierte Datenblock 402 stellt das Symbol A dar, der erste codierte Datenblock 412 stellt das Symbol B dar, der erste codierte Datenblock 422 stellt das Symbol C dar, und der erste codierte Datenblock 432 stellt das Symbol D dar. Jeder codierte Datenblock (z. B. von ersten codierten Datenblöcken 450 oder zweiten codierten Datenblöcken 452, ohne Einschränkung) schließt eine Anzahl von codierten Datenelementen ein (die hierin manchmal als „Datenelemente“ bezeichnet werden können). Die Gruppierung dieser Datenelemente in einer spezifischen Anordnung bildet die codierten Datenblöcke, die ein Symbol darstellen.
  • In dem spezifischen Beispiel, das durch 4 dargestellt ist, schließt der erste codierte Datenblock 402 Datenelemente 404, 406, 408 und 410 ein; erster codierter Datenblock 412 schließt Datenelemente 414, 416, 418 und 420 ein; erster codierter Datenblock 422 schließt Datenelemente 424, 426, 428 und 430 ein; und erster codierter Datenblock 432 schließt Datenelemente 434, 436, 438 und 440 ein. Datenelemente werden Datenelementpositionen innerhalb des jeweiligen codierten Datenblocks zugeordnet (z. B. des ersten codierten Datenblocks 450 oder des zweiten codierten Datenblocks 452, ohne Einschränkung). In verschiedenen Ausführungsformen kann jede geeignete Konvention zum Identifizieren von Datenelementpositionen verwendet werden. Unter Verwendung des ersten codierten Datenblocks 402 als Beispiel, das für alle ersten codierten Datenblöcke des Prozesses 400 gilt, wird das Datenelement 410 der Datenelementposition 0 zugeordnet, das Datenelement 408 wird der Datenelementposition 1 zugeordnet, das Datenelement 406 wird der Datenelementposition 2 zugeordnet und das Datenelement 404 wird der Datenelementposition 3 zugeordnet. Unter Verwendung des Beispiels einer beliebigen Anzahl von Bits digitaler Informationen ist die Datenelementposition 0 das höchstwertige Bit (MSB) und die Datenelementposition 3 ist das niedrigstwertige Bit (LSB). Andere Konventionen zur Identifizierung von Datenelementpositionen können verwendet werden, ohne über den Schutzumfang dieser Offenbarung hinauszugehen.
  • Zur Vereinfachung der Veranschaulichung sind vier Datenelemente für jeden codierten Datenblock dargestellt. In Ausführungsformen, in denen ein Datenelement eine Binärzahl (d. h. ein Bit digitaler Information) ist, wird ein Byte digitaler Information, per Konvention, unter Verwendung von acht codierten Bits dargestellt, und ein Nibble digitaler Information wird unter Verwendung von weniger als acht codierten Bits dargestellt.
  • Wie vorstehend erläutert, bereitet der Prozess 400 die ersten codierten Datenblöcke 450 zum Senden vor, indem er zweite codierte Datenblöcke 452 aus ersten codierten Datenblöcken 450 bildet. Der Prozess 400 ordnet die Datenelemente der ersten codierten Datenblöcke 450 neu an, sodass für die resultierenden zweiten codierten Datenblöcke 452 die Datenelemente innerhalb einer gleichen Datenelementposition eines jeweiligen zweiten codierten Datenblocks 452 ein gegebenes der Symbole A, B, C oder D darstellen. Insbesondere bildet der Prozess 400 den zweiten codierten Datenblock 442, den zweiten codierten Datenblock 444, den zweiten codierten Datenblock 446 und den zweiten codierten Datenblock 448 aus den jeweiligen Teilmengen der Datenelemente des ersten codierten Datenblocks 402, des ersten codierten Datenblocks 412, des ersten codierten Datenblocks 422 und des ersten codierten Datenblocks 432. Der zweite codierte Datenblock 442 schließt Datenelemente 410, 420, 430 und 440 ein; der zweite codierte Datenblock 444 schließt Datenelemente 408, 418, 428 und 438 ein; der zweite codierte Datenblock 446 schließt Datenelemente 406, 416, 426 und 436 ein; und der zweite codierte Datenblock 448 schließt Datenelemente 404, 414, 424 und 434 ein. Insbesondere werden die Datenelemente der jeweiligen ersten codierten Datenblöcke 402, 412, 422 und 432 auf die zweiten codierten Datenblöcke 446, 448, 444 und 442 verteilt. In einigen Ausführungsformen können Datenelemente gemäß einer zugeordneten Datenelementposition innerhalb eines codierten Datenblocks der ersten codierten Datenblöcke 450 verteilt werden. In dem durch 4 dargestellten spezifischen Beispiel befinden sich Datenelemente des ersten codierten Datenblocks 402 an der Datenelementposition 0 der verschiedenen zweiten codierten Datenblöcke 452, Datenelemente des ersten codierten Datenblocks 412 befinden sich an der Datenelementposition 1 der verschiedenen zweiten codierten Datenblöcke 452, Datenelemente des ersten codierten Datenblocks 422 befinden sich an der Datenelementposition 2 der zweiten codierten Datenblöcke 452 und Datenelemente des ersten codierten Datenblocks 432 befinden sich an der Datenelementposition 3 der verschiedenen zweiten codierten Datenblöcke 452.
  • Eine Anzahl N von SCI kann zur Kopplung mit einer parallelen Kommunikationsschnittstelle der weiteren (zweiten) Vorrichtung logisch gruppiert werden. Zumindest während der Gruppierung kann jede der Anzahl N von SCI einen Takt gemeinsam nutzen. Jeweilige zweite codierte Datenblöcke 452 können an unterschiedliche der Anzahl N von SCI gesendet werden. Solche logisch gruppierten SCI werden zum Beispiel durch Kopplung mit Übertragungsleitungen an die parallele Kommunikationsschnittstelle der weiteren Vorrichtung gekoppelt. Die Datenelemente der zweiten codierten Datenblöcke 452 werden als Reaktion auf den gemeinsam genutzten Takt an die Übertragungsleitungen und somit an die parallele Kommunikationsschnittstelle der weiteren Vorrichtung ausgetaktet. Als nicht einschränkendes Beispiel für eine vorgesehene Kommunikation werden Datenelemente in Datenelementposition 0 von zweiten codierten Datenblöcken 452 während einer ersten Kommunikationstransaktion an eine parallele Kommunikationsschnittstelle einer weiteren Vorrichtung bereitgestellt, Datenelemente in Datenelementposition 1 von zweiten codierten Datenblöcken 452 werden in einer nachfolgenden Kommunikationstransaktion an die parallele Kommunikationsschnittstelle der weiteren Vorrichtung bereitgestellt, und so weiter, bis alle Datenelemente an die parallele Kommunikationsschnittstelle der weiteren Vorrichtung bereitgestellt wurden.
  • In verschiedenen Ausführungsformen kann die Anzahl der Datenblöcke, die zur Bildung zweiter codierter Datenblöcke 452 verwendet werden, zumindest teilweise auf der Anzahl der verfügbaren seriellen Kommunikationsschnittstellen, der Größe (d. h. der Anzahl der Bits, die gleichzeitig gesendet werden können) einer parallelen Kommunikationsschnittstelle und Kombinationen davon basieren. In dem durch 4 dargestellten spezifischen Beispiel werden vier Datenblöcke gebildet, weil vier serielle Kommunikationsschnittstellen (nicht gezeigt) vorhanden sind oder weil die parallele Kommunikationsschnittstelle der zweiten Vorrichtung 4 Bit breit ist. Diese Beschreibung sieht insbesondere Ausführungsformen vor, bei denen weniger als alle Datenelemente eines Symbols mit jeder Kommunikationstransaktion gesendet werden können. In solchen Ausführungsformen können Datenelemente eines Symbols über zwei oder mehr Kommunikationstransaktionen gesendet und in codierten Datenblöcken von zweiten codierten Datenblöcken angeordnet werden, um das Senden über zwei oder mehr Kommunikationstransaktionen zu erleichtern.
  • In verschiedenen Ausführungsformen können die jeweiligen codierten Datenelemente eine beliebige Anzahl von messbaren Zuständen aufweisen, die einen anerkannten Informationswert haben. Als nicht einschränkendes Beispiel können jeweilige Datenelemente Binärzahlen sein, die auf einen Wert (z. B. einen Spannungspegel, ohne Einschränkung) eingestellt werden können, der einer , 0` entspricht, und auf einen Wert, der einer , 1' entspricht (d. h. ein Zustand einer , 1' oder ein Zustand einer , 0'). Es sollte beachtet werden, dass diese Beschreibung nicht auf Ausführungsformen unter Verwendung von Binärzahlen beschränkt ist, und dass in einigen Ausführungsformen jeweilige Datenelemente auf einen Zustand eingestellt werden können, der eine kohärente Überlagerung einer Binärzahl darstellt (z. B. ein Quantenbit oder „qbit“, ohne Einschränkung).
  • Das Vorstehende wurde in Bezug auf eine Datenübertragungstransaktion unter Verwendung von gruppierten seriellen Kommunikationsschnittstellen einer ersten Vorrichtung beschrieben. Insbesondere werden während einer Datenempfangstransaktion der ersten Vorrichtung Symbole von der zweiten Vorrichtung empfangen (d. h. empfangene Symbole), die über eine Gruppe von seriellen Kommunikationsschnittstellen der ersten Vorrichtung verteilt sind. Datenelemente der empfangenen codierten Datenblöcke können in neuen codierten Datenblöcken angeordnet werden, die gemäß der logischen Umkehrung dessen, was in 4 dargestellt ist, verarbeitet werden. Mit anderen Worten sind all die Datenelemente, die der Datenelementposition 0 der empfangenen codierten Datenblöcke entsprechen, in einem ersten neuen codierten Datenblock angeordnet, der ein empfangenes Symbol darstellt, alle der Datenelemente, die der Datenelementposition 1 der empfangenen codierten Datenblöcke entsprechen, sind in einem zweiten neuen codierten Datenblock angeordnet (z. B. serialisiert, ohne Einschränkung), der ein anderes Symbol darstellt, und so weiter.
  • 5 ist ein Blockdiagramm, das ein System 500 darstellt, das gemäß einer oder mehrerer Ausführungsformen eine parallele Kommunikationsverbindung 522 einschließt, die zwischen einer ersten Vorrichtung 510 und einer zweiten Vorrichtung 512 definiert ist. Die parallele Kommunikationsverbindung 522 schließt eine PCI 502 und gruppierte SCI 524 von SCI 504 ein, die an der ersten Vorrichtung 510 bereitgestellt sind, die logisch mit einer PCI 506 der zweiten Vorrichtung 512 gekoppelt sind und physisch mit der PCI 506 der zweiten Vorrichtung 512 über die Übertragungsleitung 508 gekoppelt sind.
  • Die PCI 502 ist im Allgemeinen so konfiguriert, dass sie erste codierte Datenblöcke 514 (die eine Anzahl von Symbolen darstellen) empfängt und die Datenelemente der ersten codierten Datenblöcke 514 als zweite codierte Datenblöcke 516 bereitstellt, wobei die Datenelemente in geeigneter Weise für den Empfang und die Übertragung durch gruppierte SCI 524 angeordnet sind, sodass die Reihenfolge der Symbole beibehalten wird. Die Schnittstellenlogik 518 der PCI 502 ist im Allgemeinen so konfiguriert, dass sie zwei oder mehr SCI 504 auswählt und synchronisiert, um gruppierte SCI 524 zu bilden, und Datenaufbereitungsvorgänge des Prozesses 100 von 1 und wahlweise des Prozesses 200 von 2 oder des Prozesses 300 von 3 durchführt und wie im Allgemeinen durch den Prozess 400 von 4 dargestellt. Nach der Auswahl und Synchronisierung einer Anzahl von SCI 504, um gruppierte SCI 524 zu bilden, kann die Schnittstellenlogik 518 so konfiguriert sein, dass sie die Datenelemente der ersten codierten Datenblöcke 514 in zweite codierte Datenblöcke 516, wie hierin erläutert, anordnet, und die zweiten codierten Datenblöcke 516 den jeweiligen SCI der gruppierten SCI 524 bereitstellt. Die Schnittstellenlogik 518 kann die gruppierten SCI 524 über den gemeinsam genutzten Takt 520 synchron takten, sodass die zweiten codierten Datenblöcke 516 auf die Übertragungsleitungen 508 ausgetaktet und an die PCI 506 der zweiten Vorrichtung 512 bereitgestellt werden. In einer Ausführungsform werden die Symbole, ein Symbol nach dem anderen, wie sie von den zweiten codierten Datenblöcken dargestellt werden, somit synchron und parallel übertragen.
  • In einer oder mehreren Konfigurationen kann die Schnittstellenlogik 518 oder die Protokollsteuerlogik (nicht gezeigt) der PCI 502 so konfiguriert sein, dass sie die Parameter für die parallele Kommunikationsverbindung 522 gemäß einem parallelen Kommunikationsprotokoll, das von der ersten Vorrichtung 510 und der zweiten Vorrichtung 512 implementiert wird, initialisiert und trainiert. Erste codierte Datenblöcke 514 können protokollspezifische Symbole zur Initialisierung einer stabilen parallelen Kommunikationsverbindung zwischen Verbindungspartnern sein. In einer oder mehreren Ausführungsformen kann PCI 502 als Schnittstellenschicht zwischen einem parallelen Kommunikationsprotokoll und SCI 504 konfiguriert sein, die solche protokollspezifischen Symbole zur Initialisierung der Verbindung von der Protokollschicht empfängt. In einer oder mehreren Ausführungsformen kann PCI 502 eine Unterschicht sein oder kann anderweitig einen Teil einer Schnittstelle für ein paralleles Kommunikationsprotokoll darstellen und vorab festgelegte Symbole für die Initialisierung, das Training und/oder das erneute Training der parallelen Kommunikationsverbindung 522 speichern, die als zweite codierte Datenblöcke (z. B. zweite codierte Datenblöcke 452, ohne Einschränkung) eingerichtet sind, die für die Übertragung durch gruppierte SCI 524 geeignet sind. In einigen Ausführungsformen kann PCI 502 vorab festgelegte Symbole speichern, die durch zweite codierte Datenblöcke dargestellt werden, die jeweils so konfiguriert sind (z. B. mit einer vorab festgelegten Anzahl von Datenelementpositionen, ohne Einschränkung), dass sie eine Anzahl unterschiedlicher Bitbreiten aufnehmen können, die in einer potenziellen parallelen Kommunikationsverbindung verwendet werden können.
  • Insbesondere können einige SCI der SCI 504 nicht für gruppierte SCI 524 ausgewählt werden. Solche SCI können für die serielle Kommunikation oder für das Bilden unterschiedlicher paralleler Kommunikationsverbindungen als die parallele Kommunikationsverbindung 522 verfügbar sein.
  • In einer oder mehreren Ausführungsformen kann die Schnittstellenlogik 518 so konfiguriert sein, dass sie gruppierte SCI 524 für einen Datenempfang auswählt und die empfangenen Daten so aufbereitet, dass sie einem parallelen Bus 526 bereitgestellt werden, der mit PCI 502 gekoppelt ist. In einem Fall des Datenempfangs kann der gemeinsam genutzte Takt 520 von der Schnittstellenlogik 518 getaktet werden, um die Übertragung von Datenelementen von den gruppierten SCI 524 zu PCI 502 zu synchronisieren. In verschiedenen Ausführungsformen können gruppierte SCI 524 für Übertragungstransaktionen, Empfangstransaktionen oder sowohl Übertragung als auch Empfangstransaktionen mit PCI 506 ausgewählt werden.
  • 6 ist ein Blockdiagramm einer Schaltlogik 600, die in einigen Ausführungsformen verwendet werden kann, um verschiedene hierin offenbarte Funktionen, Vorgänge, Handlungen, Prozesse und/oder Verfahren zu implementieren. Die Schaltung 600 schließt einen oder mehrere Prozessoren 602 (hierin manchmal als „Prozessoren 602“ bezeichnet) ein, die betriebsfähig mit einer oder mehreren Datenspeicherungsvorrichtungen 604 (hierin manchmal als „Speicher 604“ bezeichnet) gekoppelt sind. Der Speicher 604 schließt einen darauf gespeicherten maschinenausführbaren Code 606 ein, und die Prozessoren 602 schließen die Logikschaltlogik 608 ein. Der maschinenausführbare Code 606 schließt Informationen ein, die Funktionselemente beschreiben, die durch die Logikschaltlogik 608 implementiert (z. B. ausgeführt) werden können.
  • Die Logikschaltlogik 608 ist dafür ausgelegt, die durch den maschinenausführbaren Code 606 beschriebenen Funktionselemente zu implementieren (z. B. auszuführen). Die Schaltlogik 600 sollte beim Ausführen der durch den maschinenausführbaren Code 606 beschriebenen Funktionselemente als Spezialhardware betrachtet werden, die zum Ausführen von hierin offenbarten Funktionselementen konfiguriert ist. In einigen Ausführungsformen können die Prozessoren 602 konfiguriert sein, um die durch den maschinenausführbaren Code 606 beschriebenen Funktionselemente sequentiell, gleichzeitig (z. B. auf einer oder mehreren unterschiedlichen Hardwareplattformen) oder in einem oder mehreren parallelen Prozessströmen auszuführen.
  • Wenn er durch die Logikschaltlogik 608 der Prozessoren 602 implementiert wird, ist der maschinenausführbare Code 606 konfiguriert, um die Prozessoren 602 so anzupassen, dass diese Vorgänge der hierin offenbarten Ausführungsformen ausführen. Beispielsweise kann der maschinenausführbare Code 606 so konfiguriert sein, dass dieser die Prozessoren 602 so anpasst, dass diese zumindest einen Abschnitt oder eine Gesamtheit des Verfahrens 200 von 2, des Verfahrens 300 von 3 und/oder des Verfahrens 400 von 4 durchführen. Als weiteres Beispiel kann der maschinenausführbare Code 606 so konfiguriert sein, dass dieser die Prozessoren 602 so anpasst, dass diese zumindest einen Abschnitt oder die Gesamtheit der hierin erläuterten Vorgänge zur Schnittstellenbildung einer Anzahl von seriellen Kommunikationsschnittstellen mit einer parallelen Kommunikationsschnittstelle durchführen.
  • Die Prozessoren 602 können einen Universalprozessor, einen Spezialprozessor, eine zentrale Verarbeitungseinheit (CPU), einen Mikrocontroller, eine speicherprogrammierbare Steuerung (PLC), einen digitalen Signalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) oder eine andere programmierbare Logikvorrichtung, diskrete Gate- oder Transistorlogik, diskrete Hardwarekomponenten, andere programmierbare Vorrichtung oder eine beliebige Kombination davon, die zum Ausführen der hierin offenbarten Funktionen ausgelegt ist, einschließen. Ein Universalcomputer einschließlich eines Prozessors gilt als ein Spezialcomputer, während der Universalcomputer so konfiguriert ist, dass er Rechenanweisungen (z. B. einen Softwarecode) ausführt, die sich auf Ausführungsformen der vorliegenden Offenbarung beziehen.
  • Es sei darauf hingewiesen, dass ein Universalprozessor ein Mikroprozessor sein kann, aber alternativ können die Prozessoren 602 jeden herkömmlichen Prozessor, jede herkömmliche Steuerung, jeden herkömmlichen Mikrocontroller oder jede herkömmliche Zustandsmaschine einschließen. Die Prozessoren 602 können auch als eine Kombination von Rechenvorrichtungen, wie eine Kombination aus einem DSP und einem Mikroprozessor, eine Vielzahl von Mikroprozessoren, ein oder mehrere Mikroprozessoren in Verbindung mit einem DSP-Kern oder eine beliebige andere derartige Konfiguration implementiert sein.
  • In einigen Ausführungsformen schließt der Speicher 604 einen flüchtigen Datenspeicher (z. B. Direktzugriffsspeicher (RAM)), nichtflüchtige Datenspeicher (z. B. Flash-Speicher, ein Festplattenlaufwerk, ein Solid-State-Laufwerk, einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM) usw.) ein. In einigen Ausführungsformen können die Prozessoren 602 und der Speicher 604 in einer einzelnen Vorrichtung implementiert sein (z. B. einem Halbleitervorrichtungsprodukt, einem System-on-Chip (SOC) usw.). In einigen Ausführungsformen können die Prozessoren 602 und der Speicher 604 in separaten Vorrichtungen implementiert sein.
  • In einigen Ausführungsformen kann der maschinenausführbare Code 606 computerlesbare Anweisungen (z. B. Softwarecode, Firmwarecode) einschließen. Als nicht einschränkendes Beispiel können die computerlesbaren Anweisungen durch den Speicher 604 gespeichert werden, auf den direkt durch die Prozessoren 602 zugegriffen wird, und durch die Prozessoren 602 unter Verwendung mindestens der Logikschaltlogik 608 ausgeführt werden. Ebenfalls als nicht einschränkendes Beispiel können die computerlesbaren Anweisungen auf den Speicher 604 gespeichert, zur Ausführung an eine Speichervorrichtung (nicht gezeigt) übertragen und durch die Prozessoren 602 unter Verwendung mindestens der Logikschaltlogik 608 ausgeführt werden. Dementsprechend schließt die Logikschaltlogik 608 in einigen Ausführungsformen eine elektrisch konfigurierbare Logikschaltlogik 608 ein.
  • In einigen Ausführungsformen kann der maschinenausführbare Code 606 Hardware (z. B. Schaltungen) beschreiben, die in der Logikschaltlogik 608 implementiert wird, um die Funktionselemente auszuführen. Diese Hardware kann auf einer Vielzahl von Abstraktionsebenen beschrieben werden, von Low-Level-Transistor-Layouts bis hin zu High-Level-Beschreibungssprachen. Auf einer hohen Abstraktionsebene kann eine Hardwarebeschreibungssprache (HDL), wie eine Hardwarebeschreibungssprache (HDL), die vom Institute Of Electrical and Electronics Engineers (IEEE) akzeptiert wird, ohne Einschränkung verwendet werden. Als nicht einschränkende Beispiele können Verilog™, SystemVerilog™ Hardwarebeschreibungssprachen (VHDL™) mit Very Large Scale Integration (VLSI) verwendet werden.
  • HDL-Beschreibungen können nach Belieben in Beschreibungen auf einer beliebigen von zahlreichen anderen Abstraktionsebenen umgewandelt werden. Als nicht einschränkendes Beispiel kann eine Beschreibung auf hoher Ebene in eine Beschreibung auf Logikebene umgewandelt werden, wie beispielsweise eine Register-Übertragungssprache (RTL), eine Beschreibung auf Gate-Ebene (GL), eine Beschreibung auf Layout-Ebene oder eine Beschreibung auf Masken-Ebene. Als ein nicht einschränkendes Beispiel können Mikrovorgänge, die durch Hardware-Logikschaltungen (z. B. Gates, Flip-Flops, Register, ohne Einschränkung) der Logikschaltlogik 608 ausgeführt werden sollen, in einer RTL beschrieben und dann von einem Synthese-Tool in eine GL-Beschreibung umgewandelt werden, und die GL-Beschreibung kann von einem Platzierungs- und Routing-Tool in eine Beschreibung auf Layout-Ebene umgewandelt werden, die einem physischen Layout einer integrierten Schaltung einer programmierbaren Logikvorrichtung, diskreter Gate- oder Transistorlogik, diskreten Hardwarekomponenten oder Kombinationen davon entspricht. Dementsprechend kann in einigen Ausführungsformen der maschinenausführbare Code 606 eine HDL, eine RTL, eine GL-Beschreibung, eine Beschreibung auf Masken-Ebene, eine andere Hardwarebeschreibung oder eine beliebige Kombination davon einschließen.
  • In Ausführungsformen, in denen der maschinenausführbare Code 606 eine Hardwarebeschreibung (auf beliebiger Abstraktionsebene) einschließt, kann ein System (nicht gezeigt, aber den Speicher 604 einschließend) konfiguriert sein, um die durch den maschinenausführbaren Code 606 beschriebene Hardwarebeschreibung zu implementieren. Als nicht einschränkendes Beispiel können die Prozessoren 602 eine programmierbare Logikvorrichtung (z. B. ein FPGA oder ein PLC) einschließen, und die Logikschaltung 608 kann elektrisch gesteuert werden, um eine der Hardwarebeschreibung entsprechende Schaltlogik in der Logikschaltlogik 608 zu implementieren. Ebenfalls als nicht einschränkendes Beispiel kann die Logikschaltlogik 608 eine festverdrahtete Logik einschließen, die von einem Fertigungssystem (nicht gezeigt, aber den Speichers 604 einschließend) gemäß der Hardwarebeschreibung des maschinenausführbaren Codes 606 hergestellt wird.
  • Ungeachtet dessen, ob der maschinenausführbare Code 606 computerlesbare Anweisungen oder eine Hardwarebeschreibung einschließt, ist die Logikschaltlogik 608 dafür ausgelegt, diese durch den maschinenausführbaren Code 606 beschriebenen Funktionselemente auszuführen, wenn die Funktionselemente des maschinenausführbaren Codes 606 implementiert werden. Es sei darauf hingewiesen, dass, obwohl eine Hardwarebeschreibung Funktionselemente möglicherweise nicht direkt beschreibt, eine Hardwarebeschreibung indirekt Funktionselemente beschreibt, welche die durch die Hardwarebeschreibung beschriebenen Hardwareelemente ausführen können.
  • Einige typische parallele Kommunikationsbusse schließen keine separaten Sätze von Leitungen für das Senden und das Empfangen ein (in einem nicht einschränkenden Beispiel würde dies mehr E/A-Stifte erfordern, als ein MCU-Designer bereitstellen möchte). Entsprechend kann eine Datenübertragung (d. h. eine Kommunikation) gemäß einer oder mehrerer Ausführungsformen damit beginnen, dass eine erste Vorrichtung (d. h. ein Sender) eine Anforderung zum Senden von Daten (d. h. „Ich habe Daten zu senden, sag mir, wann du bereit bist, diese zu empfangen“) an eine zweite Vorrichtung (d. h. Empfänger), eine zweite Vorrichtung, die eine Datenempfangsanforderung („Ich wünsche Daten, hast du welche?“) an die erste Vorrichtung sendet, oder eine Master-Vorrichtung, die einer Slave-Vorrichtung befiehlt, Daten zu senden („Ich wünsche Daten, schick mir deine Daten“). Im ersten Szenario sendet die erste Vorrichtung die Daten als Reaktion darauf, dass die zweite Vorrichtung angibt, dass sie bereit ist, Daten zu empfangen. Im zweiten Szenario teilt die zweite Vorrichtung der ersten Vorrichtung mit, dass sie Daten wünscht, stellt sich darauf ein, ein Datensymbol zu empfangen, und fragt dann die erste Vorrichtung, ob sie Daten hat, die sie der zweiten Vorrichtung senden möchte. Im dritten Szenario stellt sich die Master-Vorrichtung darauf ein, Daten zu empfangen, und befiehlt dann der Slave-Vorrichtung, die Daten des Slaves an sie zu senden (an die Master-Vorrichtung).
  • In einigen dem Erfinder dieser Offenbarung bekannten Kommunikationssystemen fragt ein Empfänger nach Daten unter Verwendung einer Verbindung mit einem spezifischen externen Stift des Senders. Kontinuierliches Fragen nach Daten unter Verwendung des Stiftes kann die CPU-Zeit des Senders, des Empfängers oder beider monopolisieren. Um eine Monopolisierung der CPU-Zeit zu vermeiden und allgemeiner einen rationalisierten Betrieb bereitzustellen, kann in einigen Ausführungsformen ein Takt mit einem Umschaltstift gekoppelt werden, der angewiesen wird, unter Verwendung eines kemunabhängigen Peripheriegeräts umzuschalten. Das heißt, ein Peripheriegerät, das nicht von einem Verarbeitungskern oder einer zentralen Verarbeitungseinheit einer Rechenvorrichtung wie einem Mikrocontroller, einem eingebetteten System oder einer mikroelektronischen Vorrichtung überwacht wird, ohne Einschränkung.
  • Begriffe, die in der vorliegenden Offenbarung und insbesondere in den beiliegenden Ansprüchen verwendet werden (z. B. Inhalte der beiliegenden Ansprüche), sind im Allgemeinen als „offene“ Begriffe gedacht (z. B. sollte der Begriff „einschließlich“ als „einschließlich, jedoch nicht beschränkt auf interpretiert werden, der Begriff „aufweisend“ sollte als „mindestens aufweisend“ interpretiert werden, der Begriff „schließt ein“ sollte als „schließt ein, ist jedoch nicht beschränkt auf interpretiert werden usw.).
  • Darüber hinaus wird, wenn eine bestimmte Anzahl von einer eingeführten Anspruchsangabe beabsichtigt ist, diese Absicht ausdrücklich im Anspruch angegeben, und in Ermangelung dieser Nennung liegt keine solche Absicht vor. Als Verständnishilfe können zum Beispiel die folgenden beiliegenden Ansprüche die Verwendung der einleitenden Phrasen „mindestens eine/r/s“ und „eine/r/s oder mehrere“ zum Einführen von Anspruchsangaben enthalten. Die Verwendung solcher Formulierungen sollte jedoch nicht dahingehend ausgelegt werden, dass sie impliziert, dass die Einführung einer Anspruchsangabe durch die unbestimmten Artikel „ein“ oder „eine“ einen bestimmten Anspruch, der eine solche eingeführte Anspruchsangabe enthält, auf Ausführungsformen beschränkt, die nur eine solche Angabe enthalten, selbst wenn derselbe Anspruch die einleitenden Phrasen „eine/r/s oder mehrere“ oder „mindestens eine/r/s“ und unbestimmte Artikel wie „ein“ und/oder „eine“ einschließt (z. B. sollten „ein“ und/oder „eine“ so interpretiert werden, dass sie „mindestens ein/e“ oder „ein/e oder mehrere“ bedeutet); gleiches gilt für die Verwendung von bestimmten Artikeln, die zur Einführung von Anspruchsangaben verwendet werden.
  • Darüber hinaus wird, selbst wenn eine bestimmte Anzahl von eingeführten Anspruchsangabe explizit genannt wird, der Fachmann erkennen, dass eine solche Angabe dahingehend interpretiert werden sollte, dass mindestens die angegebene Anzahl gemeint ist (z. B. bedeutet die bloße Angabe von „zwei Angaben“ ohne andere Modifikatoren mindestens zwei Angaben oder zwei oder mehr Angaben). Des Weiteren ist in den Fällen, in denen eine Konvention analog zu „mindestens eines von A, B und C usw.“ oder „eines oder mehrere von A, B und C usw.“ verwendet wird, eine solche Konstruktion im Allgemeinen A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen oder A, B und C zusammen usw. einschließen soll.
  • Ferner sollte jedes disjunkte Wort oder jede disjunkte Formulierung, das bzw. die zwei oder mehr alternative Begriffe darstellt, sei es in der Beschreibung, den Ansprüchen oder den Zeichnungen, dahingehend verstanden werden, dass die Möglichkeit des Einschließens eines der Begriffe, des einen oder des anderen Begriffs oder beider Begriffe in Betracht gezogen wird. Zum Beispiel sollte die Formulierung „A oder B“ so verstanden werden, dass sie die Möglichkeiten „A“ oder „B“ oder „A und B“ einschließt. Zusätzliche, nicht einschränkende Ausführungsformen der Offenbarung schließen ein:
    • Ausführungsform 1: Verfahren zur Schnittstellenbildung einer Anzahl von seriellen Kommunikationsschnittstellen einer ersten Vorrichtung mit einer parallelen Kommunikationsschnittstelle einer zweiten Vorrichtung, umfassend:
      • Erhalten von Symbolen, die durch erste codierte Datenblöcke mit in einer ersten Reihenfolge angeordneten Datenelementen dargestellt werden; Bilden von zweiten codierten Datenblöcken durch Anordnen der Datenelemente, sodass Datenelemente innerhalb einer gleichen Datenelementposition von jeweiligen zweiten codierten Datenblöcken ein gegebenes der Symbole darstellen;
      • Bereitstellen der zweiten codierten Datenblöcke an eine Anzahl von seriellen Kommunikationsschnittstellen, die mit einer parallelen Kommunikationsschnittstelle einer anderen Vorrichtung gekoppelt sind; und Senden der Symbole, ein Symbol nach dem anderen, wie durch die zweiten codierten Datenblöcke dargestellt.
    • Ausführungsform 2: Verfahren gemäß Ausführungsform 1, wobei das Senden der Symbole ein serielles Senden der zweiten codierten Datenblöcke umfasst.
    • Ausführungsform 3: Verfahren gemäß einer der Ausführungsformen 1 und 2, wobei das Senden der Symbole umfasst: Senden der Datenelemente innerhalb einer gleichen Datenelementposition der jeweiligen zweiten codierten Datenblöcke im Wesentlichen gleichzeitig.
    • Ausführungsform 4: Verfahren gemäß einer der Ausführungsformen 1 bis 3, ferner umfassend: Senden der Datenelemente innerhalb der zweiten codierten Datenblöcke gemäß einer Reihenfolge des Symbols, zu dem jeweilige Datenelemente gehören.
    • Ausführungsform 5: Verfahren gemäß einer der Ausführungsformen 1 bis 4, ferner umfassend das Auswählen von gruppierten seriellen Kommunikationsschnittstellen, die die Anzahl von seriellen Kommunikationsschnittstellen umfassen.
    • Ausführungsform 6: Verfahren gemäß einer der Ausführungsformen 1 bis 5, ferner umfassend das Synchronisieren der seriellen Kommunikationsschnittstellen der gruppierten seriellen Kommunikationsschnittstellen.
    • Ausführungsform 7: Verfahren gemäß einer der Ausführungsformen 1 bis 6, ferner umfassend das Koppeln jeweiliger Ausgänge der gruppierten seriellen Kommunikationsschnittstellen mit einzelnen Eingängen der parallelen Kommunikationsschnittstelle der zweiten Vorrichtung.
    • Ausführungsform 8: Verfahren gemäß einer der Ausführungsformen 1 bis 7, ferner umfassend: Empfangen, aus gruppierten seriellen Kommunikationsschnittstellen, empfangener codierter Datenblöcke, die empfangene Symbole darstellen; Anordnen von Datenelementen der empfangenen codierten Datenblöcke in neue codierte Datenblöcke, die jeweils eines der empfangenen Symbole darstellen; und Bereitstellen des neuen codierten Datenblocks an einen parallelen Kommunikationsbus.
    • Ausführungsform 9: Verfahren gemäß einer der Ausführungsformen 1 bis 8, ferner umfassend: Aufbauen einer parallelen Kommunikationsverbindung unter Verwendung von Protokollsymbolen, die durch vorab festgelegte codierte Datenblöcke dargestellt werden, die Datenelemente aufweisen, die in Datenelementpositionen der vorab festgelegten codierten Datenblöcke in geeigneter Weise zum Senden der Protokollsymbole unter Verwendung der Anzahl von seriellen Kommunikationsschnittstellen vorab eingerichtet sind.
    • Ausführungsform 10: Rechenvorrichtung, umfassend: eine Anzahl von seriellen Kommunikationsschnittstellen; und eine Schnittstellenlogik, die konfiguriert ist zum: Erhalten von Symbolen, die durch erste codierte Datenblöcke dargestellt werden, die Datenelemente aufweisen, die in einer ersten Reihenfolge angeordnet sind; Bilden von zweiten codierten Datenblöcken durch Anordnen der Datenelemente der ersten codierten Datenblöcke, sodass Datenelemente innerhalb einer gleichen Datenelementposition der jeweiligen zweiten codierten Datenblöcke ein gegebenes der Symbole darstellen; Bereitstellen der zweiten codierten Datenblöcke an die Anzahl der seriellen Kommunikationsschnittstellen, die zur Kopplung mit einer parallelen Kommunikationsschnittstelle einer weiteren Vorrichtung gruppiert sind; und Senden der Symbole, ein Symbol nach dem anderen, wie durch die zweiten codierten Datenblöcke dargestellt.
    • Ausführungsform 11: Rechenvorrichtung gemäß Ausführungsform 10, wobei die Schnittstellenlogik konfiguriert ist, um die Anzahl von seriellen Kommunikationsschnittstellen auszuwählen.
    • Ausführungsform 12: Rechenvorrichtung nach einer der Ausführungsformen 10 und 11, wobei die Schnittstellenlogik an einer parallelen Kommunikationsschnittstelle der Rechenvorrichtung bereitgestellt ist.
    • Ausführungsform 13: Rechenvorrichtung nach einer der Ausführungsformen 10 bis 12, wobei die Schnittstellenlogik so konfiguriert ist, dass sie einen gemeinsam genutzten Takt für die Synchronisierung des Sendens der Symbole bereitstellt.
    • Ausführungsform 14: Rechenvorrichtung nach einer der Ausführungsformen 10 bis 13, wobei die Schnittstellenlogik konfiguriert ist, um Datenelemente von empfangenen zweiten codierten Datenblöcken, die empfangene Symbole darstellen, in neue erste codierte Datenblöcke anzuordnen, die die empfangenen Symbole darstellen, wobei die empfangenen Symbole von der Anzahl der seriellen Kommunikationsschnittstellen empfangen werden, die zur Kopplung mit der parallelen Kommunikationsschnittstelle gruppiert sind.
    • Ausführungsform 15: Rechenvorrichtung gemäß einer der Ausführungsformen 10 bis 14, wobei die Datenelemente der zweiten codierten Datenblöcke gemäß der Reihenfolge des Symbols angeordnet sind, zu dem jeweilige Datenelemente der zweiten codierten Datenblöcke gehören.
    • Ausführungsform 16: Rechenvorrichtung gemäß einer der Ausführungsformen 10 bis 15, ferner umfassend Protokollsymbole, die durch vorab festgelegte codierte Datenblöcke mit Datenelementen dargestellt werden, die in Datenelementpositionen der vorab festgelegten codierten Datenblöcke in geeigneter Weise zum Senden der Protokollsymbole unter Verwendung der Anzahl von seriellen Kommunikationsschnittstellen vorab eingerichtet sind.
    • Ausführungsform 17: System, umfassend: eine erste und eine zweite Vorrichtung, und eine Schnittstellenlogik, die konfiguriert ist, um Datenelemente von ersten codierten Datenblöcken, von denen jeder der ersten codierten Datenblöcke ein Symbol darstellt, in zweiten codierten Datenblöcken anzuordnen, sodass Datenelemente innerhalb einer gleichen Datenelementposition von jeweiligen zweiten codierten Datenblöcken ein gegebenes der Symbole darstellen, und die zweiten codierten Datenblöcke einer ersten Gruppe von seriellen Kommunikationsschnittstellen der ersten Vorrichtung bereitgestellt werden, die mit einer parallelen Kommunikationsschnittstelle der zweiten Vorrichtung gekoppelt sind.
    • Ausführungsform 18: System gemäß Ausführungsform 17, wobei die Schnittstellenlogik konfiguriert ist, um von einer zweiten Gruppe serieller Kommunikationsschnittstellen empfangene codierte Datenblöcke zu empfangen, die empfangene Symbole darstellen, und Datenelemente der empfangenen codierten Datenblöcke in neue codierte Datenblöcke anzuordnen, die die empfangenen Symbole darstellen.
  • Obwohl die vorliegende Offenbarung hierin in Bezug auf bestimmte veranschaulichte Ausführungsformen beschrieben wurde, wird der Durchschnittsfachmann erkennen und anerkennen, dass die vorliegende Erfindung nicht darauf beschränkt ist. Vielmehr können viele Ergänzungen, Weglassungen und Modifikationen an den veranschaulichten und beschriebenen Ausführungsformen vorgenommen werden, ohne vom Schutzumfang der Erfindung, wie er nachfolgend zusammen mit ihren rechtlichen Äquivalenten beansprucht wird, abzuweichen. Darüber hinaus können Merkmale einer Ausführungsform mit Merkmalen einer anderen Ausführungsform kombiniert werden, aber dennoch noch innerhalb des Schutzumfangs der Erfindung enthalten sein, der durch den Erfinder in Betracht gezogen wird.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62984086 [0001]

Claims (18)

  1. Verfahren zur Schnittstellenbildung einer Anzahl von seriellen Kommunikationsschnittstellen einer ersten Vorrichtung mit einer parallelen Kommunikationsschnittstelle einer zweiten Vorrichtung, umfassend: Erhalten von Symbolen, die durch erste codierte Datenblöcke dargestellt werden, die Datenelemente aufweisen, die in einer ersten Reihenfolge angeordnet sind; Bilden von zweiten codierten Datenblöcken durch Anordnen der Datenelemente, sodass Datenelemente innerhalb einer gleichen Datenelementposition von jeweiligen zweiten codierten Datenblöcken ein gegebenes der Symbole darstellen; Bereitstellen der zweiten codierten Datenblöcke an eine Anzahl von seriellen Kommunikationsschnittstellen, die mit einer parallelen Kommunikationsschnittstelle einer anderen Vorrichtung gekoppelt sind; und Senden der Symbole, ein Symbol nach dem anderen, wie durch die zweiten codierten Datenblöcke dargestellt.
  2. Verfahren nach Anspruch 1, wobei das Senden der Symbole ein serielles Senden der zweiten codierten Datenblöcke umfasst.
  3. Verfahren nach Anspruch 1, wobei das Senden der Symbole umfasst: Senden der Datenelemente innerhalb einer gleichen Datenelementposition der jeweiligen zweiten codierten Datenblöcke im Wesentlichen gleichzeitig.
  4. Verfahren nach Anspruch 1, ferner umfassend: Senden der Datenelemente innerhalb der zweiten codierten Datenblöcke gemäß einer Reihenfolge des Symbols, zu dem jeweilige Datenelemente gehören.
  5. Verfahren nach Anspruch 1, ferner umfassend das Auswählen von gruppierten seriellen Kommunikationsschnittstellen, die die Anzahl von seriellen Kommunikationsschnittstellen umfassen.
  6. Verfahren nach Anspruch 5, ferner umfassend das Synchronisieren der seriellen Kommunikationsschnittstellen der gruppierten seriellen Kommunikationsschnittstellen.
  7. Verfahren nach Anspruch 5, ferner umfassend das Koppeln jeweiliger Ausgänge der gruppierten seriellen Kommunikationsschnittstellen mit einzelnen Eingängen der parallelen Kommunikationsschnittstelle der zweiten Vorrichtung.
  8. Verfahren nach Anspruch 1, ferner umfassend: Empfangen, aus gruppierten seriellen Kommunikationsschnittstellen, empfangener codierter Datenblöcke, die empfangene Symbole darstellen; Anordnen von Datenelementen der empfangenen codierten Datenblöcke in neue codierte Datenblöcke, die jeweils eines der empfangenen Symbole darstellen; und Bereitstellen des neuen codierten Datenblocks an einen parallelen Kommunikationsbus.
  9. Verfahren nach Anspruch 1, ferner umfassend: Aufbauen einer parallelen Kommunikationsverbindung unter Verwendung von Protokollsymbolen, die durch vorab festgelegte codierte Datenblöcke dargestellt werden, die Datenelemente aufweisen, die in Datenelementpositionen der vorab festgelegten codierten Datenblöcke in geeigneter Weise zum Senden der Protokollsymbole unter Verwendung der Anzahl von seriellen Kommunikationsschnittstellen vorab eingerichtet sind.
  10. Rechenvorrichtung, umfassend: eine Anzahl von seriellen Kommunikationsschnittstellen; und eine Schnittstellenlogik, die konfiguriert ist zum: Erhalten von Symbolen, die durch erste codierte Datenblöcke dargestellt werden, die Datenelemente aufweisen, die in einer ersten Reihenfolge angeordnet sind; Bilden von zweiten codierten Datenblöcken durch Anordnen der Datenelemente der ersten codierten Datenblöcke, sodass Datenelemente innerhalb einer gleichen Datenelementposition der jeweiligen zweiten codierten Datenblöcke ein gegebenes der Symbole darstellen; Bereitstellen der zweiten codierten Datenblöcke an die Anzahl der seriellen Kommunikationsschnittstellen, die zur Kopplung mit einer parallelen Kommunikationsschnittstelle einer weiteren Vorrichtung gruppiert sind; und Senden der Symbole, ein Symbol nach dem anderen, wie durch die zweiten codierten Datenblöcke dargestellt.
  11. Rechenvorrichtung nach Anspruch 10, wobei die Schnittstellenlogik konfiguriert ist, um die Anzahl von seriellen Kommunikationsschnittstellen auszuwählen.
  12. Rechenvorrichtung nach Anspruch 10, wobei die Schnittstellenlogik an einer parallelen Kommunikationsschnittstelle der Rechenvorrichtung bereitgestellt ist.
  13. Rechenvorrichtung nach Anspruch 10, wobei die Schnittstellenlogik konfiguriert ist, um einen gemeinsam genutzten Takt für die Synchronisierung des Sendens der Symbole bereitzustellen.
  14. Rechenvorrichtung nach Anspruch 10, wobei die Schnittstellenlogik konfiguriert ist, um Datenelemente von empfangenen zweiten codierten Datenblöcken, die empfangene Symbole darstellen, in neue erste codierte Datenblöcke anzuordnen, die die empfangenen Symbole darstellen, wobei die empfangenen Symbole von der Anzahl der seriellen Kommunikationsschnittstellen empfangen werden, die zur Kopplung mit der parallelen Kommunikationsschnittstelle gruppiert sind.
  15. Rechenvorrichtung nach Anspruch 10, wobei die Datenelemente der zweiten codierten Datenblöcke gemäß der Reihenfolge des Symbols angeordnet sind, zu dem jeweilige Datenelemente der zweiten codierten Datenblöcke gehören.
  16. Rechenvorrichtung nach Anspruch 10, ferner umfassend die durch vorab festgelegte codierte Datenblöcke mit Datenelementen dargestellt sind, die in Datenelementpositionen der vorab festgelegten codierten Datenblöcke in geeigneter Weise zum Senden der Protokollsymbole unter Verwendung der Anzahl von seriellen Kommunikationsschnittstellen vorab eingerichtet sind.
  17. System, umfassend: eine erste Vorrichtung und eine zweite Vorrichtung; und eine Schnittstellenlogik, die konfiguriert ist, um Datenelemente von ersten codierten Datenblöcken, von denen jeder der ersten codierten Datenblöcke ein Symbol darstellt, in zweiten codierten Datenblöcken anzuordnen, sodass Datenelemente innerhalb einer gleichen Datenelementposition von jeweiligen zweiten codierten Datenblöcken ein gegebenes der Symbole darstellen, und die zweiten codierten Datenblöcke einer ersten Gruppe von seriellen Kommunikationsschnittstellen der ersten Vorrichtung bereitgestellt werden, die mit einer parallelen Kommunikationsschnittstelle der zweiten Vorrichtung gekoppelt sind.
  18. System nach Anspruch 17, wobei die Schnittstellenlogik konfiguriert ist, um von einer zweiten Gruppe serieller Kommunikationsschnittstellen empfangene codierte Datenblöcke zu empfangen, die empfangene Symbole darstellen, und Datenelemente der empfangenen codierten Datenblöcke in neue codierte Datenblöcke anzuordnen, die die empfangenen Symbole darstellen.
DE112021001439.0T 2020-03-02 2021-02-09 Schnittstellenbildung einer anzahl von seriellen kommunikationsschnittstellenmit einer parallelen kommunikationsschnittstelle und zugehörige systeme,verfahren und vorrichtungen Pending DE112021001439T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062984086P 2020-03-02 2020-03-02
US62/984,086 2020-03-02
PCT/US2021/017246 WO2021178113A1 (en) 2020-03-02 2021-02-09 Interfacing a number of serial communication interfaces with a parallel communication interface, and related systems, methods, and apparatuses

Publications (1)

Publication Number Publication Date
DE112021001439T5 true DE112021001439T5 (de) 2023-01-19

Family

ID=74853773

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021001439.0T Pending DE112021001439T5 (de) 2020-03-02 2021-02-09 Schnittstellenbildung einer anzahl von seriellen kommunikationsschnittstellenmit einer parallelen kommunikationsschnittstelle und zugehörige systeme,verfahren und vorrichtungen

Country Status (4)

Country Link
US (1) US11397702B2 (de)
CN (1) CN115461733A (de)
DE (1) DE112021001439T5 (de)
WO (1) WO2021178113A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11915780B2 (en) * 2021-08-27 2024-02-27 Pixart Imaging Inc. Device ID setting method and electronic device applying the device ID setting method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924464A (en) * 1989-03-13 1990-05-08 American Telephone And Telegraph Company Technique for converting either way between a plurality of N synchronized serial bit streams and a parallel TDM format
US6684275B1 (en) * 1998-10-23 2004-01-27 Octave Communications, Inc. Serial-to-parallel/parallel-to-serial conversion engine
US20030002474A1 (en) 2001-03-21 2003-01-02 Thomas Alexander Multi-stream merge network for data width conversion and multiplexing
US7565576B2 (en) * 2003-04-17 2009-07-21 Seagate Technology Llc Method and apparatus for obtaining trace data of a high speed embedded processor
US8510487B2 (en) * 2010-02-11 2013-08-13 Silicon Image, Inc. Hybrid interface for serial and parallel communication

Also Published As

Publication number Publication date
US20210271627A1 (en) 2021-09-02
US11397702B2 (en) 2022-07-26
CN115461733A (zh) 2022-12-09
WO2021178113A1 (en) 2021-09-10

Similar Documents

Publication Publication Date Title
DE102015117019B4 (de) Serielle Peripherieschnittstellen-Kettenkommunikation mit rahmengebundener Antwort
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE69634358T2 (de) Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
DE102015214915B4 (de) Flexibles Scheduling-Verfahren und Scheduling-Vorrichtung bei einer LIN-Kommunikation
DE2717311C2 (de) Datenprozessor
DE112021001780T5 (de) Wake-quellenkommunikation einer schnittstelle mit niedriger verbindungsanzahl gemäss lokalem und entferntem 10spe-wake und zugehörige systeme, verfahren und vorrichtungen
DE112018002334T5 (de) Vorrichtungen und verfahren zur übertragung von ereignissen mit einer gleichförmigen latenz auf seriellen kommunikationsverbindungen
DE102013018998A1 (de) Automatisches Steuersystem
DE112020004065T5 (de) Komplexe Daisy-Chain-Befehle
DE102013114341B4 (de) Ein System, ein Verfahren und ein Computerprogrammprodukt zur automatischen Zwei-Phasen-Taktung
DE112021001439T5 (de) Schnittstellenbildung einer anzahl von seriellen kommunikationsschnittstellenmit einer parallelen kommunikationsschnittstelle und zugehörige systeme,verfahren und vorrichtungen
DE69802426T2 (de) Taktschema für digitales signalprozessorsystem
DE69225095T2 (de) Wirksamer Arbiter
DE3883693T2 (de) Hochleistungsbusschnittstelle mit geringer zahl von anschlüssen.
DE3882526T2 (de) Knoten für rückwandplatinenbus.
DE102008048940A1 (de) Komponentenlose Terminierung für elektromagnetische Koppler zur Verwendung bei der Hochgeschwindigkeits-/Hochfrequenz-Differenzialsignalübertragung
DE102020124791A1 (de) Verfahren zur Übertragung von Daten von einer ersten Recheneinheit zu einer zweiten Recheneinheit
DE102011004358B3 (de) Verfahren zum Übertragen von Daten über einen synchronen seriellen Datenbus
WO2004025493A1 (de) Integrierter schaltkreis mit umschaltung durch multiplexer zwischen normalbetrieb und testbetrieb
DE112020004915T5 (de) Serielle n-kanal-peripheriekommunikation und darauf bezogene systeme, verfahren und vorrichtungen
DE69128319T2 (de) Arbeitsplatz mit Stossbetriebdatenübertragung
DE10056152B4 (de) Verfahren zur Durchführung von Busarbitration zwischen Steuerchips eines Chipsatzes mit preemptiver Fähigkeit
DE102018124375A1 (de) Betriebsverfahren eines signalempfängers, pulsbreitensteuerungund elektronische vorrichtung mit denselben
DE102022117904A1 (de) System und verfahren zum konfigurieren mehrerer ptp-ports einer netzvorrichtung
DE69128823T2 (de) Interner Bus für Arbeitsplatzschnittstellen

Legal Events

Date Code Title Description
R012 Request for examination validly filed