-
Die
vorliegende Erfindung betrifft ein Verfahren zur Kommunikation zwischen
mindestens zwei Teilnehmern eines Kommunikationssystems über mehrere
Datenleitungen eines Datenbusses, von denen einige als Adressleitungen
eines Adressbusses genutzt werden, wobei Daten und Adressen im Multiplex übertragen
werden.
-
Die
Erfindung betrifft außerdem
ein Bussystem zur Kommunikation zwischen mindestens zwei Teilnehmern
eines Kommunikationssystems, wobei das Bussystem mehrere Datenleitungen
eines Datenbusses umfasst, von denen einige als Adressleitungen
eines Adressbusses nutzbar sind, wobei die Übertragung von Daten über die
Datenleitungen und Adressen über
die Adressleitungen im Multiplex erfolgt.
-
Schließlich betrifft
die vorliegende Erfindung auch einen einem Mikroprozessor zugeordneten Speicherbaustein,
der über
mehrere Datenleitungen eines Datenbusses mit dem Mikroprozessor
in Verbindung steht, von denen einige als Adressleitungen eines
Adressbusses nutzbar sind, wobei Daten und Adressen im Multiplex übertragen
werden.
-
Stand der Technik
-
Bei
bekannten Bussystemen, über
die Mikroprozessoren mit zugeordneten externen Speichern kommunizieren,
ist keinerlei Absicherung des Übertragungsweges
vorgesehen. Tritt bei der Übertragung
eine Störung
beziehungsweise ein Fehler auf, wird dies nicht erkannt. Zum einen
kann eine von dem Mikroprozessor an den Speicher übertragene Adresse
falsch verstanden werden. Zum anderen können von dem Speicher an den
Mikroprozessor Daten falsch übertragen
werden. In beiden Fällen
ist die Folge, dass in dem Mikroprozessor falsche oder fehlerhafte
Daten vorliegen und dort bei der Abarbeitung zu Fehlern führen können. Falls
nach dem Stand der Technik Störungen
erkannt werden sollen, müssen
die zwischen Speicher und Mikroprozessor übertragenen Daten zumindest
teilweise redundant übertragen
werden. Dazu sind dann jedoch weitere Busleitungen notwendig, was
erhebliche zusätzliche Kosten
und Probleme bei der Implementierung und Integration in bestehende
Systeme verursacht.
-
Am
Beispiel eines 32-bit-Bussystems wird eine bekannte Kommunikation
zwischen einem Mikroprozessor und einem externen Speicher erläutert. Bei
einem solchen Bussystem werden 32 bit Daten und beispielsweise 24
bit Adressen im Multiplex auf den gleichen Busleitungen übertragen.
Dabei ist es unerheblich, ob die Daten zwischen Speicher und Mikroprozessor
im Burst oder asynchron übertragen werden.
Ein Speicherzugriff nach dem bekannten Verfahren läuft folgendermaßen ab:
-
Der
Prozessor legt eine 24-bit-Adresse einer gewünschten Speicherzelle an das
Bussystem und aktiviert ein Chip Select (CS)-Signal und ein Address Latch
Enable (ALE)-Signal.
Kurz darauf deaktiviert der Prozessor das ALE-Signal wieder, und der Speicherbaustein
merkt sich die übermittelte
Adresse und holt die Daten aus der entsprechenden Speicherzelle.
Bei einer Datenübertragung
im Burst werden Daten aus der entsprechenden Speicherzelle und aus
nachfolgenden Speicherzellen geholt. Dann schaltet der Prozessor über ein
Output Enable (OE)-Signal die Ausgangstreiber des Speicherbausteins
ein und liest die anliegenden Daten ein.
-
Ausgehend
von diesem Stand der Technik liegt der vorliegenden Erfindung die
Aufgabe zugrunde, eine Möglichkeit
zu schaffen, redundante Daten zu übertragen, ohne zusätzliche
Busleitungen zwischen den Teilnehmern des Kommunikationssystems
vorsehen zu müssen.
-
Zur
Lösung
dieser Aufgabe wird ausgehend von dem Kommunikationsverfahren der
eingangs genannten Art vorgeschlagen, dass gleichzeitig mit der Übertragung
der Adresse über
die Adressleitungen über
mindestens eine der nicht als Adressleitung genutzten Datenleitungen
redundante Daten übertragen
werden.
-
Vorteile der
Erfindung
-
Da
der Datenbus bei modernen Prozessooren mehr Leitungen beansprucht
(beispielsweise 32 Leitungen) als für die Übermittlung der Adressen notwendig
sind (beispielsweise 24 Leitungen), sind während der Adressierungsphase
einige Busleitungen ungenutzt. Diese ungenutzten Busleitungen werden erfindungsgemäß während der
Adressierungsphase zur Übertragung
der redundanten Daten, vorzugsweise in Form von Datenbits, genutzt.
Die redundanten Informationen können
zur Absicherung des Übertragungsweges
zwischen den Teilnehmern des Kommunikationssystems genutzt werden.
Auf diese Weise ist es möglich,
mit minimalem Aufwand, insbesondere ohne zusätzliche Busleitungen vorsehen
zu müssen,
den Übertragungsweg
zwischen Mikroprozessor und Speicher abzusichern. Dadurch können Übertragungsfehler
erkannt und entsprechende Maßnahmen
ergriffen werden. Diese Maßnahmen können beispielsweise
darin bestehen, die übertragenen
Daten als fehlerhaft zu markieren und einen entsprechenden Hinweis
an den Benutzer auszugeben. Auch eine Wiederholung der Datenübertragung ist
denkbar.
-
In
den Unteransprüchen
sind vorteilhafte Ausgestaltungen der Erfindung beschrieben. Gemäß dem Ausführungsbeispiel
nach Anspruch 3 werden als redundante Daten Prüfsummen (sogenannte Checkbits) übertragen.
Vorzugsweise wird über
die zu übertragenden
Daten eine Quersumme gebildet und je nachdem, ob die Quersumme eine
gerade oder eine ungerade Zahl darstellt, als Checkbit eine "1" oder eine "0" übertragen.
-
Als
eine weitere Lösung
der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Bussystem
der eingangs genannten Art vorgeschlagen, dass das Bussystem Mittel
zur Übertragung
redundanter Daten gleichzeitig mit der Übertragung der Adresse über die
Adressleitungen aufweist, wobei die Mittel zur Übertragung der redundanten
Daten mindestens eine der nicht als Adressleitung genutzten Datenleitungen
nutzen.
-
Als
noch eine weitere Lösung
der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Speicherbaustein
der eingangs genannten Art vorgeschlagen, dass der Speicherbaustein
Mittel zur Übertragung
redundanter Daten gleichzeitig mit der Übertragung der Adressen vom
Mikroprozessor zum Speicherbaustein über die Adressleitungen aufweist, wobei
die Mittel zur Übertragung
der redundanten Daten mindestens eine der nicht als Adressleitung genutzten
Datenleitungen nutzen.
-
Zeichnungen
-
In
den Figuren sind bevorzugte Ausführungsbeispiele
der vorliegenden Erfindung dargestellt und in der nachfolgenden
Figurenbeschreibung näher
erläutert.
Es zeigen:
-
1 ein
erfindungsgemäßes Bussystem zwischen
einem Mikroprozessor und einem Speicherbaustein zur Realisierung
des erfindungsgemäßen Verfahrens
gemäß einer
bevorzugten Ausführungsform;
-
2 eine
Verschaltung bestimmter Signale im Speicherbaustein zur Realisierung
des erfindungsgemäßen Verfahrens;
-
3 ein
Zeitdiagramm mehrerer Signale bei der Realisierung der vorliegenden
Erfindung; und
-
4 ein
Zeitdiagramm mehrerer Signale bei der Realisierung einer herkömmlichen,
aus dem Stand der Technik bekannten Kommunikation zwischen Speicherbaustein
und Mikroprozessor.
-
Beschreibung
der Ausführungsbeispiele
-
Grundlage
der vorliegenden Erfindung ist ein Bussystem, wie es beispielsweise
in 1 dargestellt und in seiner Gesamtheit mit dem
Bezugszeichen 1 bezeichnet ist. Das Bussystem 1 ist
zwischen einem Speicherbaustein 2 und einem Prozessor 3 (Central
Processing Unit (CPU)) eines Mikroprozessorbausteins 4 angeordnet.
Der Speicherbaustein 2 umfasst beispielsweise einen Flash-Speicher.
Das Bussystem 1 umfasst in dem dargestellten Ausführungsbeispiel 32 Busleitungen
BL0 – BL31,
die zur Übertragung
von Daten aus dem Speicherbaustein 2 an den Mikroprozessor 3 alle
als Datenleitungen D0 – D31
eines Datenbusses genutzt werden. Zur Adressierung einer oder mehrerer
gewünschter
Speicherzellen des Speicherbausteins 2 durch den Mikroprozessor 3 werden
einige der Busleitungen BL0 – BL31
als Adressleitungen A0 – A23
eines Adressbusses genutzt. Bei dem Bussystem 1 werden
die 32 bit Daten und die 24 bit Adressen im Multiplex auf den gleichen
Busleitungen BL0 – BL31 übertragen.
Zusätzlich
verfügt
das Bussystem 1 über
Steuerleitungen, von denen in 1 Leitungen
für das
Address Latch Enable (ALE)-, das Output Enable (OE)-, das Write
Enable (WE)- und das Chip Select (CS)-Signal dargestellt sind.
-
Ein
gemultiplexter Speicherzugriff nach einem bekannten Verfahren läuft folgendermaßen ab:
-
Der
Mikroprozessor 3 legt die Adresse (A0 – A23) der gewünschten
Speicherzelle an den Bus 1 und aktiviert das CS- und das
ALE-Signal (vergleiche 4; ALE = LOW). Danach deaktiviert
der Mikroprozessor 3 das ALE-Signal (ALE = HIGH). Der Speicherbaustein 2 merkt
sich die Adresse und holt die Daten aus der oder den entsprechenden
Speicherzellen. Der Mikroprozessor 3 schaltet über das OE-Signal Ausgangstreiber
des Speicherbausteins 2 ein (OE = LOW) und liest die Daten
aus. Der entsprechende zeitliche Ablauf der Signale ist in 4 dargestellt.
-
Da
nur 24 bit-Adressen übertragen
werden, aber 32 Datenleitungen an dem Bus 1 zur
Verfügung stehen,
können
gemäss
der vorliegenden Erfindung die verbleibenden 8 Datenleitungen
C0 – C7
in der Adressierungsphase für
die Übertragung
redundanter Daten, beispielsweise in Form einer Prüfsumme (eines
sogenannten Checkbits), genutzt werden.
-
Wie
beim Standardzugriff (vergleiche 3) legt
der Prozessor 3 die 24 bit-Adresse (A0 – A23) an und aktiviert das
ALE-Signal und das CS-Signal. Zusätzlich wird auch das OE-Signal
aktiviert (vergleiche 4, OE = LOW). Anhand der Tatsache,
dass das ALE-Signal LOW (aktiviert) ist, erkennt der erfindungsgemäße Speicherbaustein 2,
dass zum einen eine Adresse A0 – A23
anliegt und zum anderen Ausgangstreiber (Driver) des Speicherbausteins 2 für die redundanten
Daten aktiviert werden dürfen.
Der Speicherbaustein 2 legt dann während der Adressierungsphase
die redundanten Daten auf die Busleitungen BL24 – BL31 beziehungsweise auf
die entsprechenden ungenutzten Datenleitungen D24 – D31. Mit
dem Deaktivieren des ALE-Signals
(ALE = HIGH) übernimmt
der Mikroprozessor 3 die redundanten Daten (Checkbits),
der Speicherbaustein 2 übernimmt
die Adresse und schaltet auf Datenausgang um. Der entsprechende
zeitliche Ablauf der Signale ist in 3 dargestellt.
-
Da
die Adressen vom Mikroprozessor 3 in Richtung Speicherbaustein 2 und
die Daten vom Speicherbaustein 2 in Richtung Mikroprozessor 3 übermittelt
werden, muss im Speicherbaustein 2 die Leitung für das OE-Signal
der einzelnen Treiber (Driver) des Speicherbausteins 2 mit
der Leitung für
das ALE-Signal logisch verknüpft
werden. Die erforderliche Verschaltung im Speicherbaustein 2 ist
in 2 dargestellt. Mit "Latch" ist in 2 ein Adressregister bezeichnet,
wo die vom Mikroprozessor 3 angelegte Adresse zwischengespeichert
wird.
-
Da
die Adressenphase zeitlich vor der Datenübertragung liegt, stehen die
redundanten Daten in der Adressierungsphase eigentlich noch nicht
zur Verfügung.
Der Speicherbaustein 2 weiß noch nicht, welche Daten
er an den Mikroprozessor 3 liefern soll. Daher werden in
der Adressierungsphase immer die redundanten Daten des vorangegangenen
Datenübertragungszyklus
(Buszyklus) übermittelt.
Das heißt,
die Übertragung
der redundanten Daten hinkt um einen Buszyklus hinter der eigentlichen
Datenübertragung
her. Dies ist jedoch in den meisten Systemen problemlos tolerierbar.
-
Es
ist denkbar, in dem Speicherbaustein 2 einen Zwischenspeicher,
einen sogenannten Cache-Speicher, vorzusehen, in dem die an den
Mikroprozessor 3 zu übertragenden
Daten zunächst
für einen
Buszyklus zwischengespeichert werden, bevor sie übermittelt werden. Die redundanten
Daten können
jedoch bereits vor der Datenübertragung
aus dem Zwischenspeicher und dem Mikroprozessor 3 in der
Adressierungsphase von dem Speicherbaustein 2 an den Mikroprozessor 3 übermittelt
werden. Das bedeutet also, dass in der Adressierungsphase eines bestimmten
Buszyklus die Adresse der gewünschten Speicherzelle
für den
nachfolgenden Buszyklus von dem Mikroprozessor 3 an den
Speicherbaustein 2 übermittelt
wird. Zeitgleich dazu erfolgt die Übermittlung der redundanten
Daten zu den im Zwischenspeicher abgespeicherten Daten des vorangegangenen Buszyklus
an den Mikroprozessor 3. Erst in dem anschließenden Buszyklus
werden dann die in dem Zwischenspeicher abgelegten Daten an den
Mikroprozessor 3 übermittelt.
Gemäß dieser
Ausgestaltung der Erfindung liegen zum Zeitpunkt des Empfangs der
Daten aus dem Speicherbaustein 2 beim Mikroprozessor 3 bereits
die redundanten Daten vor, so dass deren fehlerfreie Übertragung
sofort überprüft werden
kann.
-
Die
Generierung der redundanten Daten, insbesondere der Prüfsumme (der
sogenannten Checkbits) im Speicherbaustein 2 und die Auswertung
im Mikroprozessor 3 kann nach an sich bekannten Verfahren
durchgeführt
werden. Bei einer asynchronen Datenübertragung zwischen dem Speicherbaustein 2 und
dem Mikroprozessor 3 ist es ausreichend, wenn als redundante
Daten lediglich ein Checkbit übertragen
wird, das Informationen darüber enthält, ob die
Quersumme über
die zu übertragenden
Daten eine gerade oder eine ungerade Zahl ist. Das bedeutet, dass
bei einer asynchronen Datenübertragung
bereits eine einzige nicht als Adressleitung genutzte Datenleitung
ausreicht, um das erfindungsgemäße Verfahren
realisieren zu können. Selbstverständlich ist
es auch möglich,
zusätzliche redundante
Daten zu übertragen,
wobei die redundanten Daten dann mehr als 1 bit umfassen können und
somit auch mehr als eine Datenleitung für die Übertragung der redundanten
Daten benötigen.
-
Bei
einer Datenübertragung
im Burst-Modus wird von dem Prozessor 3 die Adresse einer
ersten Speicherzelle an den Speicherbaustein 2 übertragen. Ausgehend
von dieser ersten Speicherzelle werden Daten dieser Speicherzelle
und mehrerer nachfolgender Speicherzellen an den Mikroprozessor 3 übertragen.
Das heißt,
dass zwischen den aufeinander folgenden Datenübertragungsphasen keine Adressphasen
vorgesehen sind, beziehungsweise nur eine Adressphase für mehrere
Datenübertragungsphasen
vorgesehen ist. Dennoch kann selbst bei einer Datenübertragung
im Burst-Modus die vorliegende Erfindung eingesetzt werden, indem
beispielsweise Checkbits für
die in den einzelnen Datenübertragungsphasen
zu übertragenden
Daten ermittelt werden und die Checkbits dann in der anschließenden Adressierungsphase über die
ungenutzten Datenleitungen an den Mikroprozessor 3 übertragen werden.
-
Wenn
beispielsweise bei dem oben beschriebenen Ausführungsbeispiel 8 ungenutzte
Datenleitungen C0 – C7 während der
Adressierungsphase zur Verfügung
stehen, kann über
jede dieser 8 Datenleitungen C0 – C7 jeweils ein Checkbit für die während einer
Datenübertragungsphase übermittelten
Daten übermittelt
werden. In einer einzigen Adressphase können also Checkbits für bis zu
acht Datenpakete von acht aufeinander folgenden Datenübertragungsphasen übermittelt
werden.