-
Verfahren
zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor-
bzw. Mikrocontroller Die Erfindung betrifft ein Verfahren zum Betreiben
eines Bussystems, welches mindestens einen Übertragungskanal aufweist,
wobei der Übertragungskanal
mindestens zwei Master und mindestens einen Slave miteinander verbindet,
und wobei die Master mit einem Arbiter verbunden sind, der die Zugriffsreihenfolge
ermittelt, in der die Master auf den Übertragungskanal zugreifen.
Weiterhin betrifft die Erfindung ein Halbleiter-Bauelement, welches
zur Durchführung
des Verfahrens geeignet ist.
-
In
elektrischen oder elektronischen Systemen kommunizieren einzelne
System-Module über
ein Übertragungsmedium.
Die System-Module können
dabei verschiedene, jeweils in einer Baugruppe angeordnete elektronische
Bauelemente, beispielsweise verschiedene, in einer einzelnen Baugruppe
angeordnete Halbleiter-Bauelemente, sein. Weiterhin können dies
verschiedene, in einem einzelnen Bauelement vorgesehene Bauelement-Sub-Komponenten,
insbesondere verschiedene Komponenten eines Halbleiter-Bauelements, z.B.
eines Speicher- und/oder Rechenschaltkreises beispielsweise eines
Mikrocontrollers oder -prozessors sein. Das Übertragungsmedium kann beispielsweise
ein Bus- oder ein Switchsystem sein.
-
Ein
Bus- oder Switchsystem kann mehrere Bauelemente oder Komponenten
miteinander verbinden, die das Bus- oder Switchsystem gemeinsam
nutzen.
-
Konventionelle
Bus- oder Switchsysteme können
dabei aus einem oder mehreren Teilsystemen bestehen, beispielsweise
aus einem Datenbus zur Übertragung
der eigentlichen Nutzdaten und/oder einem Steuerbus zur Übertragen
von Steuerdaten und/oder aus einem Adressbus zur Übertragung
von Adressdaten. Dabei können
sowohl der Datenbus wie auch der Steuerbus und der Adressbus jeweils
ein oder mehrere physische Datenleitungen aufweisen.
-
Ein
Bus- oder Switchsystem kann damit mehrere Übertragungskanäle zur Übertragung
von Daten aufweisen, wobei ein Übertragungskanal
zu einer Zeit nur von einem der angeschlossenen Bauelemente genutzt werden
kann.
-
Im
Folgenden wird ein solcher Übertragungskanal, über den
also beispielsweise Nutz- oder Steuer- oder Adressdaten übertragen
werden können
und auf den zu einer Zeit nur ein angeschlossenes Bauelement zugreifen
kann, als ein Bus bezeichnet. Ein System, welches die gleichzeitige,
also zeitlich parallele, Übertragung
gleichartiger Daten über
entsprechende Übertragungskanäle zulässt wird
als Switch bezeichnet.
-
Ein
Switchsystem kann damit von mehreren parallelen Bussen gebildet
werden.
-
Sind
nun mehrere Systemmodule über
einen Bus miteinander verbunden, so agieren diese entweder als Master
oder Slave. Ein Master ist dabei ein Systemmodul, welches eine Kommunikation
auf einem Bus beginnen kann und dazu aktiv auf den Bus zugreifen
kann. Ein Slave nimmt eine solche Kommunikation entgegen oder beantwortet
sie, kann eine solche jedoch nicht von sich aus – unaufgefordert – beginnen.
Sind beispielsweise ein Prozessor und ein Speicher über einen
Bus miteinander verbunden, so fordert der Prozessor bei einem Lesezugriff
auf den Speicher diesen zur Bereitstellung von Daten auf. Der Speicher
nimmt diese Anforderung entgegen und führt den Lesezugriff aus und
stellt die gewünschten
Daten bereit. Der Prozessor agiert dabei als Master, der den Lesezugriff
beginnt, und der Speicher agiert als Slave, der den Lesezugriff
entgegen nimmt und ausführt.
-
In
Datenverarbeitungs- oder Steuerungssystemen, insbesondere in Computer-
sowie in Mikroprozessor- und Mikrocontrollersystem, können nun über einen
Bus mehrere Systemmodule miteinander verbunden sein, wobei mehr
als ein Systemmodul als Master agiert. Greifen mehrere Master unkoordiniert
gleichzeitig auf den Bus zu, um mit einem oder mehreren Slaves zu
kommunizieren, so stören
diese sich gegenseitig.
-
Damit
besteht die Notwendigkeit, die Zugriffe der Master so zu koordinieren,
dass gegenseitige Störungen
der Master verhindert werden, in dem zu einem Zeitpunkt nur ein
Master auf den Bus zugreift.
-
Die
Zugriffe auf einen Bus werden dazu von einem Arbiter koordiniert,
der mit jedem als Master agierenden Systemmodul verbunden ist und
mit diesem Daten austauschen kann.
-
Nach
einem konventionellen Verfahren kann der Arbiter die Zugriffserlaubnis
beispielsweise reihum, also nach einem round-robin Verfahren, an
die Master vergeben, so dass allen Mastern nacheinander die Möglichkeit
gegeben wird, auf den Bus zuzugreifen, auch wenn für diese
kein Bedarf eines Zugriffs besteht.
-
Der
Arbiter kann nach einem weiteren konventionellen Verfahren zur Ermittlung
der Zugriffsreihenfolge auf den Bus verschiedene Informationen nutzen.
Zur Auswertung der Informationen weist der Arbiter die zur Ermittlung
der Zugriffsreihenfolge notwendige Logik auf.
-
Bevor
nun beispielsweise ein Master auf den Bus zugreifen kann, muss dieser
Master den gewünschten
Zugriff dem Arbiter kommunizieren. Bei konkurrierenden Zugriffen
auf den Bus ermittelt der Arbiter die Reihenfolge der Zugriffe und
teilt einem Master mit, wann dieser zur Ausführung der gewünschten
Aktion auf den Bus zugreifen darf.
-
Nach
einem weiteren konventionellen Verfahren können den Mastern Prioritäten zugewiesen
werden, so dass bei zeitgleichen und damit konkurrierenden Zugriffen
immer der Master mit der höheren
Priorität
auf den Bus zugreifen darf.
-
In
komplexen Bus- oder Switchsystem ermöglichen diese Verfahren jedoch
keine optimale Reihenfolge für
konkurrierende Zugriffe auf einen Bus, so dass diese möglichst
schnell durchgeführt
werden können
und das Bus- bzw.
Switchsystem möglichst
optimal ausgelastet wird.
-
In
der
DE 10 2004
013 635 A1 ist eine Vorrichtung und ein Verfahren zur Vergabe
von Buszugriffsrechten in einem Multimaster-Bussystem offenbart,
bei dem an Master-Einrichtungen
des Bussystems eindeutige Adressen zugeordnet werden.
-
Aus
der
EP 1 220 103 B1 ist
ein System mit einem Bus und einem Arbiter bekannt, mit einer Prioritätssetzungseinrichtung
zum Zuteilen eines Prioritätsniveaus
zu einem Master des Busses in Abhängigkeit von dem Grad der Nutzung
der dem Master zugewiesenen Buszeit.
-
Aufgabe
der Erfindung ist es, ein neuartiges, insbesondere verbessertes
Verfahren zum Betreiben eines Bussystems vorzuschlagen, sowie ein
neuartiges Halbleiter-Bauelement, welches zur Durchführung des Verfahrens
geeignet ist.
-
Gemäß einem
ersten Aspekt der Erfindung wird ein Verfahren zum Betreiben eines
Bussystems vorgeschlagen, welches mindestens einen Übertragungskanal
aufweist, wobei der Übertragungskanal
mindestens zwei Master und mindestens einen Slave miteinander verbindet,
und wobei die Master mit einem Arbiter verbunden sind, der die Zugriffsreihenfolge ermittelt,
nach der die Master auf den Übertragungskanal
zugreifen. Bei der Ermittlung der Zugriffsreihenfolge berücksichtigt
der Arbiter mindestens eine Metainformation über mindestens einen Zugriff.
-
Eine
Metainformation über
einen Zugriff ist dabei Information über den Zugriff. Damit beschreibt
oder charakterisiert eine Metainformation einen Zugriff. Relevante
Metainformationen über
einen Zugriff sind hier beispielsweise die Art des Zugriffs, ob
es sich also um eine Lese- oder Schreib- oder Steuerzugriff handelt, oder
das Ziel des Zugriffs, beispielsweise auf welchen der mit dem Übertragungskanal
verbundenen Slaves zugegriffen werden soll. Weitere Metainformationen
können
die Menge der mit dem Zugriff zu übertragenden Daten oder die – voraussichtliche – zeitliche
Dauer eines geplanten Zugriffs angeben.
-
Der
Arbiter wertet die Metainformation aus und ermittelt dabei, ob durch
die Reihenfolge der Zugriffe die auszuführenden Zugriffe auf den Übertragungskanal
insgesamt schneller ausgeführt
werden können
und ob der Übertragungskanal
durch eine von ihm bestimmbare Zugriffsreihenfolge besser ausgenutzt
werden kann.
-
Die
Metainformationen werden dem Arbiter von jedem mit dem Übertragungskanal
verbundenen Master mitgeteilt. Der Arbiter kann die Metainformation
speichern und gespeicherte Metainformation bei einer nachfolgenden
Ermittlung einer Zugriffsreihenfolge berücksichtigen.
-
Nach
einem weiteren Aspekt der Erfindung wird ein Halbleiter-Bauelement mit mindestens
einem Übertragungskanal
zur Übertragung
von Daten vorgeschlagen, wobei der Übertragungskanal mindestens
zwei Master und einen Slave miteinander verbindet, und mit einem
Arbiter zur Ermittlung einer Zugriffsreihenfolge für Zugriffe
auf den Übertragungskanal.
Bei diesem Halbleiter-Bauelement sind die Master zur Übertragung von
Metainformation über
einen Zugriff mit dem Arbiter verbunden.
-
Über die
Verbindung zwischen den Mastern und dem Arbiter kommunizieren die
Master dem Arbiter einen geplanten Zugriff auf den Übertragungskanal,
wobei Metainformation über
einen geplanten Zugriff dem Arbiter mitgeteilt werden. Der Arbiter
erhält
damit Informationen beispielsweise darüber, welcher Master auf welches
Ziel, also einen Slave, in welcher Art, also beispielsweise mit
einem Schreib- oder einem Lese- oder einem Steuerzugriff, zugreifen
muss. Der Arbiter ermittelt bei zeitlich konkurrierenden Zugriffen
die gelieferte Metainformation, um eine Reihenfolge der Zugriffe
zu ermitteln, mit der die Zugriffe möglichst schnell nacheinander
ausgeführt
werden können
und/oder wobei der Übertragungskanal
besser ausgenutzt wird.
-
Im
Folgenden wird die Erfindung anhand von Ausführungsbeispielen und der Abbildungen
näher erläutert.
-
Es
zeigen
-
1 ein
vereinfachtes Blockschaltbild eines Master-Slave Kommunikationssystems
-
2 ein
vereinfachtes Blockschaltbild eines Master-Slave Systems mit einem Switch
-
1 zeigt
ein Master-Slave Kommunikationssystem 1. Der Bus 2 verbindet
einen ersten Master 3, M-1, mit einem zweiten Master 4,
M-2, und mit einem ersten Slave 5, S-1, und einem zweiten
Slave 6, S-2.
-
In
diesem Ausführungsbeispiel
weist der Bus 2 einen Übertragungskanal
auf. Auf diesen kann – um gegenseitige
Störungen
zu vermeiden – zu
einer Zeit nur ein Master zugreifen. Die Slaves 5, 6 greifen
aufgrund ihrer Eigenschaft als Slave nicht aktiv auf den Bus 2 zu.
-
Der
erste Master 3 kann hier beispielsweise eine CPU und der
zweite Master 4 ein Speicher-Controller, z.B. ein DMA-Controller sein.
Der erste Slave 5 kann beispielsweise eine serielle Schnittstelle
und der zweite Slave 6 kann eine Schnittstelle zu einem
anderen Bussystem, beispielsweise eine CAN-Schnittstelle (Controller
Area Network) sein.
-
Alle
Master 3, 4 sind weiterhin mit einem Arbiter 7 verbunden,
um diesem Informationen mitzuteilen oder von diesem zu empfangen.
-
Die
Richtungen der Pfeile, die die Verbindungen der Master 3, 4 und
der Slaves 5, 6 mit dem Bus sowie der Master mit
dem Arbiter 7 darstellen, geben die Richtung an, in der
ein Datenaustausch entsprechend der Eigenschaft als Master oder
Slawe angestoßen
wird.
-
Die
offenen Enden des Busses 2 deuten an, dass dieser noch
weitere Master und/oder weitere Slaves verbinden kann.
-
In
diesem Ausführungsbeispiel
habe der erste Master 3 eine höhere Priorität als Master 4,
so dass Master 3 bei zeitlich konkurrierenden Zugriffen
der Master 3, 4 seinen Zugriff auf den Bus 2 zuerst
ausführen darf.
Weiterhin wird angenommen, dass die Slaves 5, 6 zur
Ausführung
von Lese- und Schreibzugriffen jeweils 3 Taktzyklen benötigen.
-
Die
Slaves 5, 6 weisen zur Ausführung von Schreibzugriffen
einen Schreibpuffer auf. Bei einem Schreibzugriff eines Masters 3, 4 werden
die zu schreibenden Daten von dem Slave zunächst in den Schreibpuffer geschrieben,
so dass diese Aktion nach außen,
also auf dem Bus 2, beendet ist, sobald die Daten vollständig in
dem Schreibpuffer gespeichert sind. Das weitere Speichern der Daten
aus dem Schreibpuffer des Slaves an die letzliche Speicherstelle
findet in konventioneller Weise innerhalb des Slaves statt. Der
Bus 2 wird somit freigegeben, sobald die Daten in dem Schreibpuffer
abgelegt sind. Da hier davon ausgegangen wird, dass die zu schreibenden
Daten mit einem Bustakt übertragen
werden können,
wird der Bus 2 bei einem Schreibzugriff von einem Master 3, 4 nur
für einen
Takt belegt. Entsprechend dauert ein Schreibzugriff für einen Master 3, 4 einen
Takt.
-
Für einen
Lesezugriff wird in diesem Ausführungsbeispiel
angenommen, dass der Master 3, 4 wartet, bis der
Slave 5, 6 die gewünschten Daten gelesen hat und
diese über
den Bus 2 an den Master 3, 4 übermitteln kann.
Für einen
Lesezugriff wird der Bus 2 somit für eine Dauer von 3 Takten belegt.
-
Um
auf den Bus 2 und damit auf einen Slave 5, 6 zugreifen
zu können,
kommunizieren die beiden Master 3, 4 über die jeweilige
Verbindung zu dem Arbiter jeweils eine Zugriffsanforderung.
-
In
diesem Ausführungsbeispiel
benötigt
der erste Master 3 einen Lesezugriff auf den ersten Slave 5, der
zweite Master 4 benötigt
einen Schreibzugriff auf den zweiten Slave 6.
-
Nach
einem konventionellen Verfahren zur Festlegung der Reihenfolge der
Zugriffe auf den Bus 2 übermitteln
die Master 3, 4 dazu jeweils an den Arbiter 7,
dass sie auf den Bus zugreifen müssen,
ohne dem Arbiter jedoch die Art des gewünschten Zugriffs, also ob es
sich um einen Lese- oder Schreibzugriff, und das Ziel des Zugriffs
mitzuteilen. Aufgrund der Zugriffspriorität des ersten Masters 3 wird
der Arbiter 7 diesem zuerst den Zugriff auf den Bus 2 gestatten.
Sobald der Bus 2 wieder frei ist, kann der zweite Master 4 seinen Schreibzugriff
auf den Slave ausführen.
Fordert der zweite Master 4 einen weiteren Schreibzugriff
auf den zweiten Slave 6 an, so kann dieser im Anschluss
an den ersten Schreibzugriff des zweiten Masters 4 auf
den zweiten Slave 6 durchgeführt werden.
-
Tabelle
1 verdeutlicht die Reihenfolge und Zeitdauer dieser Aktionen nach
dem konventionellen Verfahren.
-
-
In
den Takten 1 bis 3 führt
der erste Master 3, also M-1, seinen Lesezugriff, in der
Tabelle 1 als „Read1 S-1" eingetragen, auf
den ersten Slave 5, also S-1, aus. Der Bus 2 ist
während
dieser drei Takte im Zugriff des ersten Masters 3.
-
Der
Schreibzugriff des zweiten Masters 4, in der Tabelle 1
als „Write1
S-2" eingetragen,
auf den zweiten Slave 6 beginnt im vierten Takt. Da der
zweite Schreibzugriff des zweiten Masters (M-2) 4 auf den
zweiten Slave (S-2) 6 erst beginnen darf, wenn der erste
Schreibzugriff innerhalb des zweiten Slave 6 beendet ist,
beginnt der zweite Schreibzugriff, in der Tabelle 1 als „Write2
S-2" eingetragen,
im siebenten Takt. Obwohl der Master 4 zur Übertragung
der zu schreibenden Daten an den zweiten Slave 6 nur einen
Takt benötigt,
verbleibt der Bus 2 in der Zwischenzeit, in der der zweite
Master 4 darauf wartet, dass der zweite Slave 6 den
ersten Schreibzugriff beendet, im Zugriff des zweiten Masters 4.
Insgesamt dauert die Abarbeitung dieser Transaktion damit 7 Bustakte.
-
Im
Unterschied zu dem vorbeschriebenen konventionellen Verfahren teilen – nach dem
neuen Verfahren – die
Master bei einer Zugriffsanforderung an den Arbiter nicht nur mit,
dass sie auf den Bus 2 zugreifen müssen, sondern sie teilen diesem
auch mit, welcher Art der Zugriff und welcher Slave das Ziel des
Zugriffs sein wird. Der Arbiter 7 berücksichtigt bei der Festlegung
der Zugriffsreihenfolge diese Information. Da der Arbiter „weiß", dass ein Schreibzugriff
hier nur einen Bustakt dauert, ermittelt der Arbiter 7 die
in Tabelle 2 dargestellte, günstigere
Reihenfolge der Zugriffe.
-
-
Bei
der hier ermittelten Zugriffsreihenfolge wird der erste Schreibzugriff
des zweiten Masters 4 auf den zweiten Slave 6 entgegen
der Priorität
des ersten Masters 3 vorgezogen. Der Bus 2 ist
für diesen
Schreibzugriff für
einen Takt durch den zweiten Master M-2 belegt. Mit dem nächsten Bustakt,
also Takt 2, beginnt der erste Master 3 seinen
Lesezugriff auf den ersten Slave 5. Der Bus ist damit für drei Takte,
also Takte 2 bis 4, durch den ersten Master 3 belegt.
Der Arbiter 7 kann dem zweiten Master 4 den Zugriff
auf den Bus 2 dann gewähren, wenn
der Bus wieder frei ist und der zweite Slave 6 den ersten
Schreizugriff intern abgearbeitet hat. Damit beginnt der zweite
Master 4 den zweiten Schreibzugriff auf den zweiten Slave 6 in
Takt 5. Da für
diesen Schreibzugriff auf dem Bus 2 nur ein Takt benötigt wird,
haben die Master die geplanten Zugriffe bereits nach 5 Bustakten
abgearbeitet.
-
Unter
Verwendung des neuen Verfahrens wird damit zum einen der Bus 2 besser
ausgelastet, zum anderen müssen
die Master 3, 4 insgesamt weniger warten. Zur
Abarbeitung der geplanten Zugriffe wird damit weniger Zeit benötigt.
-
2 zeigt
einen Instruction Memory Block (IMB) 8 als Ausschnitt aus
einem Blockschaltbild eines Mikrocontrollers. Ziffer 9 bezeichnet
ein Program Memory Interface (PMI), die beim Starten des Mikrocontrollers zunächst aus
einem ROM-Speicher
eine Startbefehlssequenz und anschließend aus einem SRAM-Speicher ein
ausführbares
Programm liest. Die Logik des Arbiters ist in dem PMI 9 abgebildet,
so dass das PMI die Funktion des Arbiters ausführt.
-
Das
PMI ist über
die Verbindung 10 mit einer – hier nicht dargestellten – Data Management
Unit (DMU), über
die Verbindung 11 mit einer – ebenfalls hier nicht dargestellten – Program
Management Unit (PMU) und über
die Verbindung 12 mit einem Flash Application Programming
Interface 13 (FAPI) verbunden.
-
Die
DMU, PMU und FAPI agieren jeweils als Master, die auf einen Flash
Access Switch 14 aktiv zugreifen können. Über den Flash Access Switch 14 können Code-
und Datenzugriffe auf ein erstes Speichermodul „Flash Module 1" 15, ein
zweites Speichermodul „Flash
Module 2" 16 und
ein drittes Speichermodul „Flash
Module N" 17 gleichzeitig
ausgeführt
werden, wobei auf ein Speichermodul zu einer Zeit entweder mit einem
Code- oder Datenzugriff jeweils lesend oder schreibend zugegriffen
werden kann.
-
Die
Speichermodule 15, 16 und 17 agieren
hier als Slaves, auf die die Master, hier also die DMU und die PMU
und das FAPI 13, über
den Flash Access Switch 14 zugreifen können. Das FAPI 13 ist
dazu direkt mit dem Flash Access Switch 14 verbunden, die
Zugriffe auf den Switch 14 der DMU und der PMU werden von dem
PMI 9 über
die Verbindungen 18 und 19 zu dem Flash Access
Switch 14 weitergeleitet.
-
Der
Zugriff auf ein Speichermodul 15, 16 oder 17 wird über ein
jeweiliges Busy-Signal gesteuert, welches von einem Speichermodul
gesetzt wird, solange dieses eine Aktion ausführt, also noch mit der Ausführung eines
Zugriffs beschäftigt
ist.
-
Für Lesezugriffe
auf ein Speichermodul gibt es jedoch eine Beschleunigung für niedrige
Systemtaktfrequenzen. Der Arbiter kann zulassen, dass ein Master
einen Lesezugriff an ein Speichermodul sendet, wenn noch ein vorher
gestarteter Lesezugriff von demselben Speichermodul abgearbeitet
wird. Dies gilt jedoch nur für
direkt aufeinander folgende Lesezugriffe. Das jeweilige Speichermodul 15, 16 oder 17 nimmt
den zweiten Lesezugriff an. Intern arbeitet das Speichermodul Lesezugriffe
jedoch sequentiell ab, so dass der zweite Lesebefehl im Anschluss
an den ersten ausgeführt
wird.
-
Führt ein
Speichermodul einen Zugriff einer anderen Zugriffsart aus, wenn
also beispielsweise ein Master schreibend auf das Speichermodul
zugreift, so muss der Arbiter das Busy-Signal des Speichermoduls beachten
und er darf einen Zugriff auf das jeweilige Speichermodul nur dann
zulassen, wenn das Busy-Signal des Speichermoduls nicht mehr gesetzt
ist. Das Senden einer zweiten Zugriffsanforderung an ein Speichermodul
ist also nur bei direkt aufeinander folgenden Lesezugriffen zulässig.
-
Zur
Optimierung der Zugriffe auf die Speichermodule 15, 16 und 17 teilen
die Master, also die DMU, PMU und das FAPI 13 dem PMI 9,
der die Funktion des Arbiters integriert, nicht nur mit, dass ein
Zugriff auf den Switch notwendig ist.
-
Vielmehr
liefert jeder Master dem PMI 9 nun auch die Information über die
Art des gewünschten
Zugriffs, ob es sich also beispielsweise um einen Lese- oder einen
Schreibzugriff handelt, und/oder das Ziel des gewünschten
Zugriffs, also auf welchen Slave 15, 16 oder 17 der
Master zugreifen möchte.
-
Die
Arbiterlogik in dem PMI 9 wertet diese Informationen für jeden
der Slaves 15, 16 oder 17 und für die aktuelle
Zugriffsanforderung aus und speichert die Information, um auf diese
für die
nächste
Entscheidung über
einen Zugriff zugreifen zu können.
-
Die
Information der Master über
die Art und das Ziel eines gewünschten
Zugriffs ermöglichen
damit, dass das PMI 9 zu einer Zeit zwei – dann zeitlich
parallel stattfindende – Lesezugriffe
auf ein Speichermodul, also einen Slave, zulässt.
-
Ohne
diese Information über
die Art und das Ziel eines Zugriffs könnte das PMI 9 nicht
prüfen,
ob der zu einem Slave aktuell angeforderte und der zuvor durchgeführte Zugriff
jeweils ein Lesezugriff sind, so dass in jedem Falle ein Zugriff
auf ein Speichermodul verhindert werden müsste, bis das Busy-Signal des
Speichermoduls nicht mehr gesetzt ist.
-
Die
Logik des Arbiters – hier
in das PMI integriert – ist
in diesem Ausführungsbeispiel
als endliche Zustandsmaschine abgebildet. Da die Zugriffe auf die
Slaves 15, 16 und 17, also die Speichermodule,
unabhängig
voneinander stattfinden können,
ist für
jedes Speichermodul jeweils solche endliche Zustandsmaschine vorgesehen.
-
Eine
solche endliche Zustandmaschine kann sechs Zustände annehmen, die im Folgenden
für ein Speichermodul
beschrieben sind.
-
Im
ersten Zustand, „NO_ACCESS", greift kein Master
auf das Speichermodul zu. Das Speichermodul hat das Busy-Signal
nicht gesetzt, so dass ein Zugriff auf das Speichermodul unabhängig von
der Art des Zugriffs sofort zugelassen werden kann. Sollten zwei
Master um den Zugriff konkurrieren, also gleichzeitig einen Zugriff
anfordern, so wird die Zugriffsreihenfolge gemäß den Prioritätsregeln
ermittelt.
-
Die
Zustandsmaschine nimmt den zweiten Zustand, „NO_ACCESS_AFTER_FLASH_READ", ein, falls der
letzte Zugriff auf das Speichermodul ein Lesezugriff, also ein Code-
oder Datenlesezugriff, war. Obwohl der Lesezugriff beendet ist,
ist das Busy-Signal des Speichermoduls – aus internen Gründen des
Speichermoduls – noch
gesetzt. In diesem Zustand kann eine Zugriffsanfrage nach einem
Lesezugriff auf das Speichermodul zugelassen werden, obwohl das
Busy-Signal noch gesetzt ist.
-
In
dem dritten Zustand, „FAPI_DATA_SFR_ACCESS", wird dem FAPI 13 der
Zugriff auf das Speichermodul gewährt. In diesem Zustand greift
das FAPI auf spezielle Register, sogenannte Special Function Register
(SFR), zu. Ein weiterer Zugriff auf das Speichermodul ist erst zulässig, falls
das Busy-Signal des Speichermoduls nicht mehr gesetzt ist. In diesem
Zustand ist ein zeitgleicher lesender Zugriff auf das Speichermodul nicht
zulässig.
-
Im
vierten Zustand, „DMU_SFR_ACCESS", wird der DMU exklusiver
Zugriff auf das Speichermodul gewährt, welches ebenfalls auf
sogenannte Special Function Register (SFR) zugreift. Analog zu dem
dritten Zustand ist ein weiterer Zugriff auf das Speichermodul erst
dann zugelassen werden, wenn das Busy-Signal des Speichermoduls nicht mehr
gesetzt ist.
-
Die
Zustandsmaschine nimmt den fünften
Zustand, „DMU_DATA_ACCESS", ein, wenn die DMU
lesend, also mit einem Datenlesezugriff auf das Speichermodul zugreift.
In diesem Zustand ist ein sofortiger zweiter Lesezugriff auf das
Speichermodul zulässig,
so dass also nicht abzuwarten ist, bis das Busy-Signal zurückgesetzt
wird. Zugriffsanforderungen anderer Art, also Anforderungen für Schreibzugriffe,
werden entgegengenommen und im Falle mehrerer Anfragen unter Beachtung
der Prioritäten
der Master zugelassen, wenn das Busy-Signal nicht mehr gesetzt ist.
-
Ebenso
wird ein sofortiger lesender Zugriff im sechsten Zustand, „PMU_CODE_ACCESS", zugelassen. In
diesem Zustand greift die PMU lesend auf das Speichermodul zu, so
dass ein weiterer lesender Zugriff auf das Speichermodul zugelassen
werden kann, ohne dass das Rücksetzen
des Busy-Signals abzuwarten ist. Zugriffsanfragen anderer Arten,
also beispielsweise schreibend, werden analog zur Behandlungsweise
im fünften
Zustand zugelassen.
-
Mit
einer solchen endlichen Zustandsmaschine kann somit das gewünschte Verhalten
des Arbiters vorteilhaft abgebildet werden.
-
- 1
- Kommunikationssystem
- 2
- Bus
- 3
- Master-1
- 4
- Master-2
- 5
- Slave-1
- 6
- Slave-2
- 7
- Arbiter
- 8
- Instruction
Memory Block (IMB)
- 9
- Program
Memory Interface (PMI)
- 10
- DMU-Verbindung
- 11
- PMU-Verbindung
- 12
- FAPI
Verbindung
- 13
- FAPI
- 14
- Flash
Access Switch
- 15
- erstes
Speichermodul
- 16
- zweites
Speichermodul
- 17
- drittes
Speichermodul
- 18
- Verbindung
- 19
- Verbindung