Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ADDRESSING SCHEME FOR DOUBLING THE TRANSMISSION CAPACITY OF A MASTER-CONTROLLED SLAVE-TO-SLAVE COMMUNICATION IN ANY KIND OF BUS SYSTEM
Document Type and Number:
WIPO Patent Application WO/1999/049397
Kind Code:
A1
Abstract:
The invention relates to an addressing scheme for doubling the transmission capacity of a master-controlled slave-to-slave communication in any kind of bus system which makes it possible to transmit data from one slave to a second slave on a bus within a bus cycle controlled by a bus master. This is achieved simply by way of a special address assignment so that the invention can be used with any address-controlled bus system, such as PCI, ISA, EPP. The description distinguishes between indirect read access, inverse indirect read access and indirect write access as variants of the addressing scheme. These three variants differ in terms of the direction of transmission between the participating slaves a and b and the hardware required for implementation. Normal bus access remains possible without restrictions.

Inventors:
HORN RAYMOND (DE)
Application Number:
PCT/EP1998/001644
Publication Date:
September 30, 1999
Filing Date:
March 20, 1998
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HORN RAYMOND (DE)
International Classes:
G06F13/42; (IPC1-7): G06F13/42
Foreign References:
US5649142A1997-07-15
US4001790A1977-01-04
DE3240141A11984-05-03
Attorney, Agent or Firm:
Kaden, Jutta (Speiser & Partner Büro Berli, Friedrichstrasse 56 Berlin, DE)
Download PDF:
Claims:
Patentansprüche
1. Adressierungsschema zur Verdoppelung der Übertragungsleistung einer ma stergesteuerten SlavetoSlaveKommunikation in einem beliebigen Bussystem nach dem Schema m < xo + y wobei gilt m Anzahl der Adressbits (Ao... Au 1) des Bussystems xo Anzahl der Adressbits (Ano... Ano+xo,) zur Selektierung eines Slaves (Slave Index) y Anzahl der Adressbits (AmoBBAmo+y1) zur Auswahl eines Registers oder einer Speicherzelle (Internal Adress) gekennzeichnet durch die Definition weiterer Adressbits xl (an... Ai+. i) (Indirect Index), so daß gilt m < xo + x, + y, und die Datenübertragung zwischen zwei Slaves mittels eines indirekten Lesezugriffs, eines indirekten Schreibzugriffs oder eines inversen indirekten Lesezugriffs.
2. Adressierungsschema nach Anspruch 1, dadurch gekennzeichnet, daß für den indirekten Lesezugriff die Quelle (Slave a) durch den Slave Index und das Ziel (Slave b) durch den Indirect Index selektierbar ist, daß die Quelle des angefor derten Datums innerhalb des Slaves a durch die Internal Adress und das Ziel des Datums innerhalb des Slaves b implizit durch die Selektion des Slaves b mit dem Indirect Index definiert ist und daß die Bussteuerung durch den Busmaster erfolgt.
3. Adressierungsschema nach Anspruch 1, dadurch gekennzeichnet, daß für den indirekten Schreibzugriff das Ziel (Slave a) durch den Slave Index und die Quelle (Slave b) durch den Indirect Index selektierbar ist, daß die Quelle des angeforder ten Datums innerhalb des Slaves b implizit durch die Selektion des Slaves b mit dem Indirect Index und das Ziel des Datums innerhalb des Slaves a durch die Internal Address definiert ist und daß die Bussteuerung durch den Busmaster erfolgt.
4. Adressierungsschema nach Anspruch 1, dadurch gekennzeichnet, daß für den inversen indirekten Lesezugriff die Quelle (Slave b) durch den Indirect Index und das Ziel (Slave a) durch den Slave Index selektierbar ist, daß die Quelle des angeforderten Datums innerhalb des Slaves b implizit durch den Indirect Index und das Ziel des Datums innerhalb des Slaves a durch die Internal Address definiert ist und daß die Bussteuerung durch den Busmaster erfolgt.
5. Adressierungsschema nach einem der Ansprüche 1 bis 4, dadurch gekenn zeichnet, daß es in jedem adressgesteuerten Bussystem, wie z. B. PCI, ISA, EPP, einsetzbar ist.
Description:
Adressierungsschema zur Verdoppelung der Übertragungsleistung einer master- gesteuerten Slave-to-Slave-Kommunikation in einem beliebigen Bussystem Die Datenübertragung eines Wertes zwischen zwei nicht masterfähigen Slaves (z. B.

Speicher, 10-Schnittstelle) auf einem Bussystem benötigt gewöhnlich zwei Buszy- klen.

Zunächst liest der Busmaster das Datum von der Quelle (Slave 1). Im zweiten Bus- zyklus wird dieses Datum dann an das Ziel (Slave 2) übertragen.

Im Gegensatz dazu ermöglicht das erfindungsgemäße Adressierungschema die mastergesteuerte Datenübertragung zwischen zwei Slaves in nur einem Buszyklus.

Anwendungsgebiete sind Systeme der digitalen Meßtechnik, der digitalen Signal- verarbeitung sowie alle Systeme, die hohe Übertragungsraten zwischen zwei nicht masterfähigen Busteilnehmern benötigen.

Die Adressen eines Bussystems werden gewöhnlich durch m Adressbits (Ao... Ar"-,) repräsentiert. Von diesen m Adressbits dienen für jeden von n Slaves am Bus xi Adressbits (AnO... Ano+xo-1) zur Selektion dieses Slaves. Diese Adressbits werden im folgenden"Slave Index"genannt. Weitere y Adressbits (Amo... Amo+y-,) dienen zur Auswahl eines Registers oder einer Speicherzelle in dem durch den"Slave Index" selektierten Slave. Diese y Adressbits werden im folgenden"Internal Address" genannt.

In den meisten Fällen ist mo = 0, so daß die Adressierung innerhalb eines Slaves durch die Adressbits Ao... AY_1 erfotgt. Im Allgemeinen gilt : m<xo+y, wobei m (xo+y) Adressbits bei der Adressdekodierung unberücksichtigt bleiben.

Der Erfindung lag die Aufgabe zugrunde, innerhalb eines Buszyklus Daten zwischen zwei nicht masterfähigen Busteilnehmern, sog. Slaves, zu übertragen.

Die Aufgabe wird erfindungsgemäß entsprechend den Merkmalen des Anspruchs 1 gelöst. Ausgestaltende Merkmale sind in den Unteransprüchen angegeben. Durch die Definition weiterer x1 Adressbits, so daß gilt : m<x0+x1 +y, wird es ermöglicht, innerhalb eines Buszyklus Daten zwischen zwei nicht masterfähigen Busteilnehmern, sogenannten Slaves, zu übertragen.

Diese x, Adressbits (An1... An1 + xl-,) werden im folgenden"Indirect Index"genannt.

Die Datenübertragung erfolgt mittels eines indirekten Lesezugriffs, eines indirekten Schreibzugriffs oder eines inversen indirekten Lesezugriffs.

Zur Erläuterung der Erfindung werden drei verschiedene Methoden vorgestellt, dieses Adressierungsschema anzuwenden.

Das im folgenden beschriebene Konzept der indirekten Buszyklen ist ausdrücklich auch in einem Bussystem mitmehreren Busmastern, z. B. DMA-Controllern, einsetz- bar, auch wenn in der Beschreibung grundsätzlich von einem Master die Rede ist.

Gemeint ist jeweils der aktuelle Busmaster des Busses. Ebenso ist es anwendbar, wenn neben den in der folgenden Beschreibung verwendeten Slaves a und b weitere Slaves mit dem Bus verbunden sind. Außerdem ist es für beliebige Paare Slave a und Slave b auf demselben Bussystem anwendbar.

Interessant ist dieses Verfahren für die Echtzeitverarbeitung von digitalen Daten, insbesondere in Mesßystemen. Aber auch PC's können davon durch eine Ver- ringerung der Prozessor-und der Busbelastung bei der 10-Steuerung profitieren.

Ein indirekter Lesezugriff ermöglicht eine direkte Datenübertragung von einem Slave a an einen weiteren Slave b (vergl. Fig. 1). Die Quelle (Slave a) wird wie in einem normalen Lesezugriff durch den"Slave Index"selektiert. Das Ziel (Slave b) wird durch den"Indirect Index"selektiert. Die Quelle des angeforderten Datums in- nerhalb des Slaves a wird durch die"Internal Address"definiert, während das Ziel des Datums innerhalb des Slaves b implizit durch die Selektion des Slaves b mit dem"Indirect Index"gegeben ist. Die Bussteuerung wird, wie bei einem normalen Lesezyklus, vom Busmaster übernommen.

Ein indirekter Lesezugriff ist mit einem normalen Lesezugriff weitestgehend iden- tisch. Ein Master liest aus einem durch den"Slave Index"selektierten Slave a das mit der"Internal Address"angeprochene Datum aus. Dieser Lesezugriff wird zu einem indirekten Lesezugriff, wenn durch den"Indirect Index"ein weiterer Slave b aktiviert wird. Der Slave b kann damit die vom Master von Slave a angeforderten Daten übernehmen. Die Adressierung des Datums innerhalb von Slave b ist implizit durch den"Indirect Index"gegeben.

Zur Realisierung des indirekten Lesezugriffs ist ein geringer Hardwareaufwand not- wendig. Als einzige Maßnahme ist es notwendig, die Adressdekodierung des durch den"Indirect Index"angesprochenen Slave b auf die mit einem indirekten Lesezu- griff verbundene Datenübernahme vorzubereiten.

Ein Beispiel für die Anwendung des indirekten Lesezugriffs ist die Ausgabe von Daten aus dem Arbeitsspeicher an eine Ausgabeeinheit, z. B. einem Parallelport, am Bussystem.

Ein indirekter Schreibzugriff ermöglicht eine direkte Datenübertragung von einem Slave b an einen weiteren Slave a (vergl. Fig. 2). Das Ziel (Slave a) wird wie in einem normalen Schreibzugriff durch den"Slave Index"selektiert. Die Quelle (Slave b) wird durch den"Indirect Index"selektiert. Die Quelle des angeforderten Datums innerhalb des Slaves b ist implizit durch die Selektion des Slaves b mit dem"Indi- rect Index"gegeben, während das Ziel des Datums innerhalb des Slaves a durch die"Internal Address"definiert ist. Die Busteuerung wird, wie bei einem normalen Schreibzyklus, vom Busmaster übernommen.

Ein indirekter Schreibzugriff ist mit einem normalen Schreibzugriff weitestgehend identisch. Ein Master überträgt an einen durch den"Slave Index"selektierten Slave a ein Datum, dessen Ziel innerhalb von Slave a durch die"Internal Address"explizit definiert ist. Dieser Schreibzugriff wird zu einem indirekten Schreibzugriff, wenn durch den"Indirect Index"ein weiterer Slave b aktiviert wird. Der Slave b stellt dann, anstelle des Masters, das zu übertragende Datum für Slave a auf dem Bus bereit. Die Adressierung des Datums innerhalb von Slave b ist implizit durch den "Indirect Index"gegeben.

Zur Umsetzung des indirekten Schreibzugriffs ist es notwendig, die ausgegebenen Daten des aktiven Masters durch geeignete Maßnahmen vom Bus zu trennen, um einen Buskonflikt zu vermeiden. Dies könnte z. B. durch Tri-State-Buffer geschehen, die aktiviert werden, sobald durch Analyse des"Indirect Index"und weiterer Bussignale ein indirekter Schreibzugriff erkannt wird. Ahnlich dem indirekten Lesezugriff muß die Adressdekodierung des durch den"Indirect Index"angespro- chenen Slave b auf die mit einem indirekten Schreibzugriff verbundene Datenaus- gabe vorbereitet sein.

Ein Beispiel für die Anwendung des indirekten Schreibzugriffs ist das Einlesen von Daten von einer Eingabeeinheit am Bussystem, z. B. einem Parallelport, in den Arbeitsspeicher.

Ein inverser indirekter Lesezugriff ermöglicht ebenso wie der indirekte Lesezugriff eine direkte Datenübertragung zwischen zwei Slaves im Rahmen eines Lesezyklus durch den Busmaster (vergl. Fig. 3). Im Gegensatz zum indirekten Lesezugriff ist jedoch die Übertragungsrichtung umgekehrt. Die Quelle (Slave b) wird durch den "Indirect Index"selektiert. Das Ziel (Slave a) wird durch den"Slave Index"selek- tiert. Die Quelle des angeforderten Datums innerhalb des Slaves b ist implizit durch den"Indirect Index"gegeben, während dessen Ziel innerhalb des Slaves a durch die "Internal Address"definiert ist. Die Busteuerung wird, wie bei einem normalen Lesezyklus, vom Busmaster übernommen.

Ein inverser indirekter Lesezugriff ist mit einem indirekten Lesezugriff weitestgehend identisch. Die Datenübertragungsrichtung ist jedoch entgegengesetzt. Der durch den"Indirect Index"selektierte Slave b dient als Quelle und der durch den"Slave Index"selektierte Slave a dient als Ziel. Daher wird durch die"Internal Address"die Zieladresse im empfangenden Slave a festgelegt. Bei einem indirekten Lesezugriff wird durch den"Indirect Index"die Quelladresse des Datums im sendenden Slave definiert. Die Funktionalität des inversen indirekten Lesezugriffs ist daher mit dem indirekten Schreibzugriff identisch. Zusätzlich ist der Master in der Lage, das von Slave b an Slave a übertragene Datum einzulegen und zu verarbeiten.

Zur Realisierung des inversen indirekten Lesezugriffs ist ein geringer Hardwareauf- wand notwendig. Im Gegensatz zum indirekten Lesezugriff muß die Adressdekodie- rung beider an der Übertragung beteiligten Slaves a und b auf den inversen indirek- ten Lesezugriff vorbereitet sein. Damit ist der Aufwand etwas höher als beim indirekten Lesezugriff, jedoch geringer als beim indirekten Schreibzugriff. Im Gegensatz zum indirekten Schreibzugriff ist keine Veränderung der Verbindung des Masters mit dem Bus notwendig.

Der inverse indirekte Lesezugriff ist funktional mit dem indirekten Schreibzugriff identisch. Es wird ein implizit in der Quelle adressiertes Datum an ein explizit adressiertes Ziel übertragen. Im Gegensatz zum indirekten Schreibzugriff kann der Master beim inversen indirekten Lesezugriff die übertragenen Daten einlesen und bei Bedarf verarbeiten. Als Anwendungsbeispiel sei wie beim indirekten Schreibzu- griff das Einlesen von Daten von einer Eingabeeinheit am Bussystem, z. B. einem Parallelport, in den Arbeitsspeicher genannt.

Normale Buszyklen zur direkten Übertragung von Daten zwischen einem Master und einem Slave sind auch bei Verwendung des hier beschriebenen Adressierungs- schemas weiterhin uneingeschränkt durchführbar. Hierzu muß der"Indirect Index" lediglich eine Kodierung aufweisen, die keinem Busteilnehmer einen indirekten Zugriff signalisiert. Empfohlen wird, diesen Zustand durch Aktivierung oder Deakti- vierung aller x, Adressbits des"Indirect Index"zu kodieren.

Busteilnehmer, die nicht bei einem indirekten Lesezugriff als Ziel oder bei einem indirekten Schreibzugriff als Quelle dienen, können ohne Modifikation an einem Bus eingesetzt werden, der indirekte Zugriffe mit dem beschriebenen Adressierungs- schema unterstützt. Sie können sogar ohne spezielle Anpassung bei einem indirek- ten Lesezugriff als Quelle oder bei einem indirekten Schreibzugriff als Ziel dienen.

Dieses gilt insbesondere für Arbeitsspeicher (RAM).

Ein Beispiel soll die Verwendung des Adressierungsschemas verdeutlichen : Ausge- hend von einer Datenbusbreite m = 32 bit mit Indexgrössen von jeweils x. = x, = 4 bit und daraus folgender"Internal Address"von y = 24 bit, ergibt sich bei entsprechender Verteilung eine Zuordnung der Adressbits gemäß Fig. 4. Angenom- men der Wert $4 für den"Indirect Index"aktiviert ein 10-Gerät (Slave b) und der Wert $1 für den"Slave Index"aktiviert den Arbeitspeicher (Slave a). Ein Lesezugriff auf die Adresse $ 41000000 durch den Master wird dann den Wert der Speicher- zelle $ 000000 des Arbeitsspeichers an das 10-Gerät übertragen. Der gelesene Wert wird außerdem vom Master eingelesen, als hätte er einen Lesezugriff auf die Adresse $01000000 ausgeführt.