Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PROCESS AND ARRANGEMENT FOR OPERATING A BUS SYSTEM
Document Type and Number:
WIPO Patent Application WO/1994/028487
Kind Code:
A1
Abstract:
The disclosed bus has a bus control unit (3) which controls only arbitration and time overrun during data transmission. Actual data transmission is determined in the active master unit (1) and the addressed slave unit (2). The properties of a bus cycle, such as data width, access to a data or control area, waiting cycle and so on, are coded and transmitted by a plurality of control lines (10).

Inventors:
NIEDERMEIER THOMAS (DE)
ROHM PETER (DE)
SCHMID RICHARD (DE)
FLYNN DAVID (GB)
KLAPPROTH PETER (NL)
ZANDVELD FREDERIK (NL)
KOOT JACOBUS CHRISTOPHORUS (NL)
JONES ANDREW MICHAEL (GB)
MATTHEW JAMES GRAHAM (GB)
DOUADY BRUNO (FR)
Application Number:
PCT/EP1994/001711
Publication Date:
December 08, 1994
Filing Date:
May 26, 1994
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
ADVANCED RISC MACH LTD (GB)
KONINKL PHILIPS ELECTRONICS NV (NL)
INMOS LTD (GB)
MATRA MHS (FR)
NIEDERMEIER THOMAS (DE)
ROHM PETER (DE)
SCHMID RICHARD (DE)
FLYNN DAVID (GB)
KLAPPROTH PETER (NL)
ZANDVELD FREDERIK (NL)
KOOT JACOBUS CHRISTOPHORUS (NL)
JONES ANDREW MICHAEL (GB)
MATTHEW JAMES GRAHAM (GB)
DOUADY BRUNO (FR)
International Classes:
G06F13/364; (IPC1-7): G06F13/364
Foreign References:
US4818985A1989-04-04
EP0444711A21991-09-04
US5127089A1992-06-30
EP0507954A11992-10-14
US4481580A1984-11-06
Download PDF:
Claims:
Patentansprüche
1. Verfahren zum Betreiben eines Busεystems mit wenigstenε einer Mastereinheit (1), die über einen Bus (6...12) mit wenigstenε einer SlaveEinheit (2) unte Steuerung einer Buεεteuereinheit (3) kommuniziert, d a d u r c h g e k e n n z e i c h n e t , daß die Buεεteuereinheit (3) die Zuteilung deε Buεses an eine Mastereinheit (1) steuert und die Datenübertragung zwischen Maεtereinheit (1) und einer adreεεierten Einheit (2) unter der Steuerung der Maεtereinheit (1) und der adres¬ sierten Einheit (2) erfolgt, wobei die jeweilige Eigenschaft des Buszyklusseε codiert über wenigεtenε eine Steuerleitung (10) des Busses übertragen wird.
2. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t , daß über eine Vielzahl von Steuerleitungen (10) die Breite der übertragenen Daten bestimmt wird.
3. Verfahren nach Anspruch 1 oder 2 , d a d u r c h g e k e n n z e i c h n e t , daß über eine Vielzahl von Steuerleitungen (10) der Zu¬ griffsbereich bestimmt wird.
4. Verfahren nach einem der vorhergehenden Anεprüche, d a d u r c h g e k e n n z e i c h n e t , daß über eine Vielzahl von Steuerleitungen (10) eine Anzahl von Wartezyklen beεtimmt wird.
5. Verfahren nach einem der vorhergehenden Anεprüche, d a d u r c h g e k e n n z e i c h n e t , d ß über wenigεtenε eine Steuerleitung (11) von der adres εierten Einheit (2) eine Datenübertragung quittiert wird.
6. Verfahren nach Anεpruch 5 , d a d u r c h g e k e n n z e i c h n e t , daß über eine Vielzahl von Steuerleitungen (11) von der adressierten Einheit (2) angezeigt wird, ob Daten bereit stehen, oder ob Daten verarbeitet werden.
7. Verfahren nach Anεpruch 5 oder 6, d a d u r c h g e k e n n z e i c h n e t , daß über eine Vielzahl von Steuerleitungen (11) von der adreεsierten Einheit (2) angezeigt wird, ob zusätzliche Wartezyklen eingefügt werden und/oder ob Fehlerzustände aufgetreten sind.
8. Verfahren nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t , daß die Mastereinheit (1) über eine Steuerleitung (8) anzei gen kann, oder aufeinanderfolgende Buszyklen ohne Unterbre¬ chung durchgeführt werden oder nicht.
9. Verfahren nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t , daß die Bussteuereinheit (3) ein Signal erzeugen kann, daß nach einer vorbestimmten Zeit eine Datenübertragung wegen Zeitüberschreitung abbricht.
10. Schaltungsanordnung zur Durchführung des Verfahrens nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t , daß eine Mastereinheit (1) Mittel zur zeitlichen Steuerung einer Datenübertragung aufweist, und die Buεsteuereinheit (3) Mittel zur Zuteilung aufweist, wobei die Zuteilung über jeweils wenigεtens ein Anforderungεsignal und wenigstens ein Quittiersignal zwischen Mastereinheit (1) und Bussteuerein¬ heit (3) erfolgt.
11. Schaltungsanordnung nach Anspruch 10, d a d u r c h g e k e n n z e i c h n e t , daß die Busεteuereinheit (3) Mittel zum Dekodieren der am Adressbus (5) anliegenden Signale enthält und Mittel zum Erzeugen wenigstens eines Selektiersignaleε (13) .
12. Sehaltungεanordnung nach Anεpruch 10, d a d u r c h g e k e n n z e i c h n e t , daß eine adressierte Eiheit (2) Mittel (16) zum Dekodieren der am Adreßbus (5) anliegenden Signale enthält und Mittel (16) zum Erzeugen eines Selektiersignales (17) .
Description:
Verfahren zum Betreiben eines Bussystems sowie Anordnung zur Durchführung des Verfahrens

Die Erfindung betrifft ein Verfahren zum Betreiben eines Bussystems sowie eine Anordnung zur Durchführung des Verfah¬ rens.

Bussysteme für Mikroprozessoren insbesondere für Mikrocon- troller, bei denen ein Bussystem für die Anbindung von Pe¬ ripherieeinheiten an einen Prozessorkern vorgesehen ist, sind z.B. aus Elektronik Report 10a, Oktober 1990 bekannt. Dort ist auf Seite 58ff insbesondere auf Seite 59 in der zugehörigen Figur der prinzipielle Aufbau eines derartigen Mikroprozessors dargestellt. Der beschriebene Mikroprozessor besteht aus einer zentralen Recheneinheit "Core Prozessor" und verschiedenen Peripherieeinheiten "Serial I/O", "Timer", "DMA-Controller" . Alle Einheiten sind über einen internen Bus "Inter-Module-Buε" miteinander verbunden. Weiterhin ist eine Bussteuereinheit "System-Interface" vorgesehen, die einen extern anschließbaren Bus mit dem internen Bus verbindet.

Der Zugriff auf eine an diesem Bus angeschlossene Periphe¬ rieeinheit erfolgt üblicherweise derart, daß die zugreifende Funktionseinheit, zumeist die zentrale Recheneinheit oder ein anderer Busmaster, die Adressen der anzusprechenden Peripherieeinheit auf den Adreßbus anlegt und auf den Datenbus die zu übertragenden Daten. Mittels Kontrollεigna- len erfolgt dann in verschiedenster Weise die Datenübertra-

gung. Bei einem Bussystem welches im Demultiplexbetrieb arbeitet, werden die Adreßsignale gleichzeitig auf zugehöri¬ gen Adreßleitungen übertragen, wohingegen bei Busεystemen mit Multiplexbetrieb ein Teil der Adresεe auf dem Datenbus gelegt werden und diese von einem Speicher in der Periphe- rieeinheit zwischengeεpeichert werden und die reεtliehen Adreßsignale auf Adreßleitungen des Adreßbusεes übertragen werden.

Liegt die Adresse an, so wird die zugehörige Peripherie¬ einheit selektiert und die entsprechenden Daten werden von der zentralen Recheneinheit oder der adressierten Periphe¬ rieeinheit auf den Datenbus gelegt, je nachdem ob geschrie¬ ben oder gelesen wird. Während der eigentlichen Datenüber- tragung müssen die Adressen konstant am Adressbus anliegen, um so die gewünschte adressierte Peripherieeinheit zu akti¬ vieren und eine gültige Datenübertragung zu erhalten.

Werden sehr schnelle zentrale Recheneinheiten verwendet, wie z.B. Riscprozessoren, so ist jedoch oftmals die Obertra- gungεgeεchwindigkeit auf derartigen Buεεen nicht ausrei¬ chend. Immer höhere Übertragungsraten werden angestrebt.

Aufgabe der Erfindung ist es, ein Verfahren zum Betreiben eineε Busses anzugeben, das möglichst flexibel und schnell eine Datenübertragung zwischen an dem Bus angeschlossenen Einheiten ermöglicht. Eine weitere Aufgabe der vorliegenden Erfindung ist es, eine Anordnung zur Durchführung dieses Verfahrens anzugeben.

Biese Aufgabe wird durch den kennzeichnenden Teil des An- εpruchε 1 bzw. des Anspruchs 10 gelöst. Weiterbildungen sind Kennzeichen der Unteranεprüche.

Die Erfindung wird nachfolgend anhand von zwei Figuren näher erläutert. Eε zeigen Figur 1 ein prinzipielles Blockschaltbild einer erfindungs- gemäßen Anordnung, Figur 2 einen zeitlichen Verlauf verschiedener Signale des erfindungsgemäßen Bussystems.

In Figur 1 ist beispielsweise ein Bussystem gemäß der vor¬ liegenden Erfindung mit einer Master-Einheit 1, z. B. einer zentralen Recheneinheit wie z.B. einem Riscprozessor darge- stellt. Dieser kommuniziert über einen Datenbus 4, welcher bidirektional betrieben wird, und über einen unidirek iona- len Adreßbus 5 sowie weiteren Steuerleitungen 6...15, welche ebenfalls unidirektional sind, z. B. mit weiteren Masterein¬ heiten oder Slaveeinheiten 2. Die Anzahl von Master- und Slave-Einheiten ist systemabhängig und nicht definiert. Eine Bussteuereinheit 3 steuert über die Leitungen 14 und 15 die Zuteilung des Busses (Arbitrierung) . Dazu ist die Bussteuer¬ einheit 3 mit jeder Master-Einheit 1 über ein Signalpaar 14/15 verbunden. Der Bussteuereinheit 3 werden außerdem der Adreßbus 5 sowie die Steuersignale 6, 7, 8, 10 und 11 zuge¬ führt. Der Bus kann von der Steuereinheit 3 zu einer Taktpe¬ riode der Taktsignalleitung 6 immer nur einer Master-Einheit zugeteilt sein. Über das Signal 12 kann die BusSteuereinheit 3, falls eine für das System unzulässig lange, durch eine Slave-Einheit 2 verursachte, Belegung des Busses auftritt, Slave- und Master-Einheit vom Bus abschalten. Die die Ab¬ schaltung bestimmende Zeit der Busbelegung (Anzahl von Takt-

zyklen) kann in der Busεteuereinheit fest oder variabel definiert sein.

In der vorliegenden Figur 1 ist an diesem Bus beispielsweise eine Peripherieeinheit 2 angeschlossen. Selbstverständlich können an diesen Bus eine Vielzahl von Peripherieeinheiten angeschlossen werden. Eine Peripherieeinheit kann entweder eine Master-Peripherieeinheit sein oder eine Slave- Peripherieeinheit.

Mit 7 ist eine Reset-Leitung bezeichnet, welche mit allen am Bus angeschlossenen Einheiten verbunden ist. Mit 8 ist eine Signalleitung bezeichnet, die anzeigt, ob eine Mastereinheit aufeinanderfolgende Zyklen ausführt. Mit 9 ist eine Schreib- Leseleitung bezeichnet. Die mit 10 bezeichnete Leitung kann auε mehreren Leitungen bestehen, z. B. aus vier Einzellei¬ tungen, welche zur codierten Übertragung weiterer Eigen- εchaften eineε Bus-Zyklusses dienen.

Über die ebenfalls auε mehreren Leitungen, z. B. auε 3 Lei¬ tungen, beεtehende Steuerbus 11 kann eine Slaveeinheit 2 anzeigen, daß gültige Signale auf dem Datenbus 4 anliegen oder von einer Slaveeinheit 2 erkannt werden. Eine Leitung 13 dient zur Selektierung einer Slaveeinheit 2.

Eε folgt eine genauere Beschreibung der Busεignale:

Signale der Buεsteuereinheit 3:

Signal 14: Bus Reguest; mit diesem Signal fordert eine Ma¬ ster-Einheit 1 den Bus für eine Datenübertragung mit einer Slave-Einheit 2 an.

Signal 15: Bus Grant; mit dieεem Signal gibt die Buεsteuer- einheit 3 der Maεter-Einheit 1 bekannt, wann dieεe auf dem Buε mit der Datenübertragung be- ginnen kann.

Signal 12: Timeout; über dieses Signal bricht die Bussteu¬ ereinheit 3 eine Datenübertragung zwischen Ma¬ ster- 1 und Slave-Einheit 2 ab. Wird dieseε Si- gnal aktiv, müssen Master- 1 und Slave-Einheit 2 ihre aktiv treibenden Signalleitungen abschal¬ ten.

Signal 13: Unit Select; dieser Signaleingang ist von jeder als Slave-Einheit 2 ansprechbaren Einheit am Bus zu deren Auswahl bei einer Datenübertragung zu Vergügung zu stellen.

Signale einer Maεter-Einheit 1:

Signal 5: Adreεεbuε z. B. A31 - A2; die Adreεεleitungen werden von der an einer Datenübertragung betei¬ ligten Maεter-Einheit 1 getrieben.

Signal 8: Lock; mit dieεem Signal kann eine Maεter-Einheit

1 aufeinanderfolgende Bus Zyklen ohne Unterbre¬ chung der Datenübertragung durch eine andere Ma¬ ster-Einheit 1 durchführen.

Signal 9: Read/Write; mit diesem Signal zeigt eine Master- Einheit 1 zu Beginn des Buε-Zyklusεeε der über Signal 13 auεgewählten Slave-Einheit 2 an, ob in

einem Bus-Zyklus Daten von oder zu dieser Slave- Einheit 2 übertragen werden.

Signale 10:Operation Code; mit diesen Signalen werden von der Master-Einheit 1, zusätzlich zu den Signalen

8 und 9, weitere Eigenschaften eineε Buε-Zykluε- εeε codiert übertragen. Solche Eigenschaften sind z. B. Größe der übertragenen Dateneinheit (8-/16-/32-Bit) , Zugriff auf Daten- oder Steuer- bereich, Warte Zykluε.

Signale einer Slave-Einheit 2:

Signale ll:Acknowledge Code; dieεe kodierten Signale werden von den Slave-Einheiten 2 generiert. Die Slave-

Einheiten 2 zeigen über dieεe Signale z. B. an, ob Daten bereit stehen, ob Daten verarbeitet wurden, ob Warte-Zyklen eingefügt werden und ob Fehlerzustände beim aktuellen Bus-Zykluε aufge- treten sind oder nicht.

Sonstige Signale:

Signal 4: Datenbus D31-D0; dies iεt der bidirektionale Datenbuε, über welchen z. B. 8-/16- oder 32-Bit breite Daten übertragen werden.

Signal 16: Clock; dieses Signal ist daε Taktεignal für den Bus, welches zur Zeitsteuerung der Signalabläufe benutzt wird.

Signal 17: Reεet; dieεes Signal ist ein Rücksetzsignal für Bus, welches asynchron aktiv werden kann und synchron inaktiv wird.

Eine Datenübertragung auf dem Datenbus 4 erfolgt immer zwi- εchen einer Maεter- 1 und einer Slave-Einheit 2. Nach Zutei¬ lung des Buεses durch die Busεteuereinheit 3 wählt die Maεter-Einheit 1 die zur Datenübertragung benötigte Slave- Einheit 2 über eine Adresse, welche auf dem Adressbuε 5 übertragen wird, auε. Die Dekodierung dieser Adresse kann zentral in der Busεteuereinheit 3 oder dezentral in einem Dekoder 16 bei der Slave-Einheit 2 erfolgen. Jede alε Slave- Einheit 2 adreεεierbare Einheit (d. h. möglicherweiεe auch eine Maεter-Einheit) muß dazu ein Eingangssignal 13 vorse- hen. Eine Slave-Einheit 2 mit Dekoder 16 kann dann ein zu- εätzlicheε Signal 17 zur Selektierung der jeweiligen Slave- Einheit 2 aufweisen.

Master- 1 und Slave-Einheit 2 kommunizieren miteinander über die Steuersignale 8, 9, 10, den Adressbuε 5 (vom Maεter zum Slave) εowie über die Steuerεignale 11 (vom Slave zum Ma¬ εter) .

In Figur 2 wird der Verlauf verschiedener Signale darge- εtellt. Die Numerierung der Signale entεpricht der in Figur 1 definierten Nummern.

Figur 2 zeigt die Übertragung von 3 zuεammenhängenden Daten¬ einheiten (32-Bit) von einer Slave-Einheit 2 zu einer Ma- ster-Einheit 1. Als Referenz für das Timing auf dem Bus dient daε Taktεignal 16. Vor und nach einer Datenübertragung auf dem Buε (tl und t7) befindet εich der Buε in einem War-

t^zuεtand. Bei A weiεt die Bussteuereinheit 3 der Master- Einheit 1 den Bus zu. Diese beginnt mit der Datenübertragung und treibt die Signale 8, 9, 10 und den Adreεεbus 5. Während t2 wird die Adresεinformation auf dem Adressbuε 5 zentral oder dezentral dekodiert und zum Zeitpunkt B alε Auεwahlsi- gnal in der Slave-Einheit zwischengespeichert. Die Signale 9 und 10, welche weitere Informationen über den begonnen Buε- Zyklus enthalten (schreiben oder lesen, Quantität der Da¬ ten) , werden ebenfalls in der auεgewählten Slave-Einheit zwiεchengespeichert. Das Signal 8 zeigt der Bussteuereinheit am Ende von t2 an, daß noch ein weiterer Bus-Zyklus folgt und der Bus nicht für eine neue Maεter-Einheit freigegeben werden kann.

Mit Beginn von t3 beginnt die Slave-Einheit 2 (da Lesevor¬ gang) den Datenbus 4 und die Signale 11 zu treiben. Die Kombination der Signale 11 (RDM = Ready, noch mehr Daten folgen) in t3 zeigt an, daß die Daten des 1. Lesezyklusseε zur Verfügung εtehen und von der Maεter-Einheit 1 übernommen werden können. Parallel zu den Daten deε 1. Leεezykluεεeε gibt die Master-Einheit 1 in t3 die Adresse und die Signale 8, 9 und 10 des 2. Lesezyklusses aus (Pipelining) . Mit t4 wird die Adresεe und die Signale 8, 9 und 10 deε 3ten Leεe¬ zykluεεeε auεgegeben. Signal 8 gibt an, daß nach dem 3ten Leεezykluε die Datenübertragung zwiεchen Maεter- 1 und Slave-Einheit 2 beendet iεt. Da für die Daten deε 2. Leεezy¬ kluεεeε, gesteuert über die Signale 11, ein Wartezyklus benötigt wird (WAT=Wait, Daten noch nicht verfügbar) , können die Signale 8, 9, 10 und die Adresse 5 erst am Ende von t5 bewertet werden.

Mit gültigen Daten in t5 und dem Pegel von Signal 8 am Ende von t5 hört die Master-Einheit 1 auf die Bussignale 8, 9, 10 und den Adresεbuε 5 zu treiben. Die Slave-Einheit 2 treibt den Datenbuε 4 und die Signale 11 solange, bis gültige Daten über die Signale 11 angezeigt werden. In Figur 2 ist dies am Ende von t6 der Fall (ACK = Ready, Buszykluε beendet) . Am Ende von t6 kann außerdem die Bussteuereinheit 3 entscheiden ob, wenn eine entsprechende Anforderung vorliegt (was für Figur 2 nicht zutrift) , eine andere Master-Einheit 1 den Bus zugeteilt bekommt. Somit könnte frühestens in t7 eine andere Master-Einheit 1 die Signale 8, 9, 10 und 5 zu treiben be¬ ginnen womit auch erst im Buszyklus nach t7 eine Slave-Ein¬ heit 2 wieder die Signale 4 und 11 treiben kann. Dadurch wird das gleichzeitig aktive Treiben von Bus-Signalleitungen (Signal Konflikt) vermieden.