DE102006009034B3 - Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller - Google Patents

Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller Download PDF

Info

Publication number
DE102006009034B3
DE102006009034B3 DE102006009034A DE102006009034A DE102006009034B3 DE 102006009034 B3 DE102006009034 B3 DE 102006009034B3 DE 102006009034 A DE102006009034 A DE 102006009034A DE 102006009034 A DE102006009034 A DE 102006009034A DE 102006009034 B3 DE102006009034 B3 DE 102006009034B3
Authority
DE
Germany
Prior art keywords
access
master
arbiter
transmission channel
bus
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.)
Active
Application number
DE102006009034A
Other languages
English (en)
Inventor
Karl Herz
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102006009034A priority Critical patent/DE102006009034B3/de
Priority to US11/678,872 priority patent/US7689746B2/en
Application granted granted Critical
Publication of DE102006009034B3 publication Critical patent/DE102006009034B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Bussystems, insbesondere in einem Mikroprozessor oder Mikrocontroller und ein Halbleiter-Bauelement zur Ausführung des Verfahrens. Zur Optimierung der Zugriffsreihenfolge auf das Bussystem 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 in der die Master auf den Übertragungskanal zugreifen. Das Verfahren ist dadurch gekennzeichnet, dass der Arbiter bei der Ermittlung der Zugriffsreihenfolge Metainformationen über geplante Zugriffe berücksichtigt. Metainformation kann weiterhin gespeichert und für nachfolgende Ermittlungen herangezogen werden.

Description

  • 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.
  • Figure 00090001
    Tabelle 1
  • 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.
  • Figure 00110001
    Tabelle 2
  • 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

Claims (14)

  1. 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, dadurch gekennzeichnet, dass der Arbiter bei der Ermittlung der Zugriffsreihenfolge mindestens eine Metainformation über mindestens einen Zugriff berücksichtigt.
  2. Verfahren nach Anspruch 1, wobei ein Master vor einem geplanten Zugriff auf den Übertragungskanal die Metainformation an den Arbiter mitteilt.
  3. Verfahren nach einem der vorstehenden Ansprüche, wobei die Metainformation von dem Arbiter gespeichert wird.
  4. Verfahren nach Anspruch 3, wobei mindestens eine gespeicherte Metainformation über einen vorherigen Zugriff berücksichtigt wird.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei die Metainformation das Ziel des Zugriffs beschreibt.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei die Metainformation die Art des Zugriffs beschreibt.
  7. Verfahren nach Anspruch 6, wobei die Art des Zugriffs diesen als Lese- oder Schreib- oder Steuerzugriff kennzeichnet.
  8. Verfahren nach einem der vorstehenden Ansprüche, wobei jedem Master eine Priorität für einen Zugriff auf einen Übertragungskanal zugeordnet ist.
  9. Verfahren nach einem der vorstehenden Ansprüche, wobei ein auf dem Übertragungskanal kürzer dauernder Zugriff gegenüber einem länger dauernden Zugriff vorgezogen wird.
  10. Verfahren nach Anspruch 9, wobei der auf dem Übertragungskanal kürzer dauernde Zugriff einem Master geringer Zugriffspriorität und der länger dauernde Zugriff einem Master höherer Zugriffspriorität zugeordnet ist.
  11. Verfahren nach einem der vorstehenden Ansprüche, wobei der Arbiter eine endliche Anzahl verschiedener Zustände einnehmen kann.
  12. Halbleiter-Bauelement zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 11 mit mindestens einem Übertragungskanal zur Übertragung von Daten, 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, wobei die Master zur Übertragung von Metainformationen eines geplanten Zugriffs mit dem Arbiter verbunden sind.
  13. Halbleiter-Bauelement nach Anspruch 12, wobei das Halbleiter-Bauelement einen Speicher aufweist zur Speicherung mindestens einer Metainformationen über mindestens einen Zugriff.
  14. Halbleiter-Bauelement nach einem der vorstehenden Ansprüche 12–13, wobei das Halbleiter-Bauelement integraler Bestandteil eines Mikrocontrollers ist.
DE102006009034A 2006-02-27 2006-02-27 Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller Active DE102006009034B3 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102006009034A DE102006009034B3 (de) 2006-02-27 2006-02-27 Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller
US11/678,872 US7689746B2 (en) 2006-02-27 2007-02-26 Bus system employing an arbiter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006009034A DE102006009034B3 (de) 2006-02-27 2006-02-27 Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller

Publications (1)

Publication Number Publication Date
DE102006009034B3 true DE102006009034B3 (de) 2007-08-02

Family

ID=38268417

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006009034A Active DE102006009034B3 (de) 2006-02-27 2006-02-27 Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller

Country Status (2)

Country Link
US (1) US7689746B2 (de)
DE (1) DE102006009034B3 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065460B2 (en) * 2007-03-18 2011-11-22 Moxa Inc. Method of determining request transmission priority subject to request content and transmitting request subject to such request transmission priority in application of fieldbus communication framework
US7913016B2 (en) * 2007-03-18 2011-03-22 Moxa, Inc. Method of determining request transmission priority subject to request source and transmitting request subject to such request transmission priority in application of fieldbus communication framework
US7743192B2 (en) * 2007-03-18 2010-06-22 Moxa Inc. Method of determining request transmission priority subject to request content and transmitting request subject to such request transmission priority in application of Fieldbus communication framework
DE102009027625A1 (de) * 2009-07-10 2011-01-13 Robert Bosch Gmbh Elektrische Schaltung zur Übertragung von Signalen zwischen zwei Mastern und einem oder mehreren Slaves
TWI760690B (zh) * 2020-02-03 2022-04-11 瑞昱半導體股份有限公司 一種資料傳輸系統及其資源配置方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1220103B1 (de) * 2000-12-29 2003-11-19 Zarlink Semiconductor Limited Arbiter für ein System zum Verwalten von Warteschlangen
DE102004013635A1 (de) * 2004-03-19 2005-10-13 Infineon Technologies Ag Verfahren und Vorrichtung zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467002B1 (en) * 1999-10-19 2002-10-15 3Com Corporation Single cycle modified round-robin arbitration with embedded priority
JP2002304369A (ja) * 2001-04-04 2002-10-18 Nec Corp バスシステム
US7032046B2 (en) * 2002-09-30 2006-04-18 Matsushita Electric Industrial Co., Ltd. Resource management device for managing access from bus masters to shared resources
JP4266619B2 (ja) * 2002-11-25 2009-05-20 株式会社ルネサステクノロジ 調停回路
US7024506B1 (en) * 2002-12-27 2006-04-04 Cypress Semiconductor Corp. Hierarchically expandable fair arbiter

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1220103B1 (de) * 2000-12-29 2003-11-19 Zarlink Semiconductor Limited Arbiter für ein System zum Verwalten von Warteschlangen
DE102004013635A1 (de) * 2004-03-19 2005-10-13 Infineon Technologies Ag Verfahren und Vorrichtung zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen

Also Published As

Publication number Publication date
US7689746B2 (en) 2010-03-30
US20070204081A1 (en) 2007-08-30

Similar Documents

Publication Publication Date Title
DE69628609T2 (de) Distribuiertes Pipeline-Busarbitrierungssystem
DE102008034500B4 (de) Arbitrierung
DE60036096T2 (de) Vorrichtung zur kommunikation zwischen mehreren funktionseinheiten in einer rechnerumgebung
EP2030118B1 (de) Mehrprozessor-gateway
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE3606211A1 (de) Multiprozessor-computersystem
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE102006009034B3 (de) Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller
EP0050305B1 (de) Einrichtung zur Steuerung des Zugriffes von Prozessoren auf eine Datenleitung
DE60036923T2 (de) Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung
DE102004013635B4 (de) Verfahren zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen, sowie Multimaster-Bussystem zur Durchführung des Verfahrens
DE10314175A1 (de) Bussystem sowie Informationsverarbeitungssystem, das ein Bussystem einschliesst
DE19950255B4 (de) Mikroprozessor
DE60127357T2 (de) Ausführung von einem PCI-Arbiter mit dynamischem Prioritätsschema
DE102020205765A1 (de) Systemkomponente und Verwendung einer Systemkomponente
DE60211874T2 (de) Anordnung von zwei Geräten, verbunden durch einen Kreuzvermittlungsschalter
EP1308846B1 (de) Datenübertragungseinrichtung
DE10306285A1 (de) Mikrocomputersystem
DE3247083A1 (de) Mehrprozessorsystem
DE69827879T2 (de) Zeitmultiplexschema zur Verklemmungsauflösung in distribuierter Arbitrierung
DE60038172T2 (de) Verfahren um Daten in einem Verarbeitungsystem zu übertragen
DE112020005466T5 (de) Bussystem und verfahren zum betrieb eines bussystems
EP0970426B1 (de) Abhängigkeitssteuerung für überlappende speicherzugriffe
DE60109699T2 (de) Gerät und Verfahren zum Signalgruppenaustausch zwischen mehreren Teilen in einer Einrichtung zur digitalen Signalverarbeitung der eine Direktspeicherzugriffssteuerung enthält
DE2900380C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative