PatentDe  


Dokumentenidentifikation DE102004046429A1 06.04.2006
Titel Schnittstellen-Einrichtung
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Hellwig, Frank, 81827 München, DE
Vertreter Bosch, Graf von Stosch, Jehle Patentanwaltsgesellschaft mbH, 80639 München
DE-Anmeldedatum 24.09.2004
DE-Aktenzeichen 102004046429
Offenlegungstag 06.04.2006
Veröffentlichungstag im Patentblatt 06.04.2006
IPC-Hauptklasse G06F 13/16(2006.01)A, F, I, 20051017, B, H, DE
Zusammenfassung Die Erfindung betrifft ein Verfahren zum Betreiben einer Schnittstellen-Einrichtung (20) und eine Schnittstellen-Einrichtung (20), insbesondere für ein Mikrocontroller- bzw. Mikroprozessor-System (10), welche an eine Speicher-Einrichtung (18) und an ein Bus-System (16) anschließbar ist, mit einer Einrichtung (23, 20) zum Anfordern mehrerer aus der Speicher-Einrichtung (18) auszulesender Daten, dadurch gekennzeichnet, dass nur ein Teil der von der Speicher-Einrichtung (18) empfangenen, angeforderten Daten von der Schnittstellen-Einrichtung (20) an das Bus-System (16) weitergeleitet werden.

Beschreibung[de]

Die Erfindung betrifft eine Schnittstellen-Einrichtung, insbesondere eine Schnittstellen-Einrichtung für ein Mikrocontroller- bzw. Mikroprozessor-System gemäß Oberbegriff des Anspruchs 1, und ein Verfahren zum Betreiben einer Schnittstellen-Einrichtung.

Herkömmliche digitale Rechenschaltkreise (z.B. entsprechende, auf einem Mikrochip angeordnete Mikrocontroller- bzw. Mikroprozessor-Systeme) weisen eine oder mehrere (zentrale) Steuer- bzw. Recheneinheiten auf (Central Processing Units (CPUs), bzw. CPU „Cores").

Die CPU oder die CPUs sind – z.B. über einen entsprechenden Multi-Master-On-Chip-Bus (und ggf. ein oder mehrere weitere Bus-Systeme) – mit einer oder mehreren (externen oder internen) Speicher-Einrichtungen verbunden, z.B. einer Programm- und einer Datenspeichereinrichtung („Programmspeicher", und „Datenspeicher").

Der Multi-Master-On-Chip-Bus (z.B. der FPI-Bus der Fa. Infineon, oder der AHB-Bus der Fa. ARM, etc.) kann z.B. eine Datenbusbreite von 1 Word (32 Bit) aufweisen, oder z.B. von 2 Word (64 Bit), etc.

Der „Programmspeicher" enthält insbesondere die Folge der von dem bzw. den CPU Cores abzuarbeitenden Befehle, also das Programm (und ggf. zusätzlich entsprechende – von dem bzw. den CPU Cores zu verwendende – Daten-Konstanten).

Der Programmspeicher kann z.B. von einem EPROM (Erasable PROM bzw. Löschbaren Festwertspeicher) oder EEPROM (Electrically Erasable PROM bzw. Elektrisch Löschbarer Festwertspeicher) gebildet werden, insbesondere einem Flash-EEPROM-Bauelement (beispielsweise einem Burst-Flash-EEPROM).

Dadurch kann erreicht werden, dass das Programm auch bei unterbrochener Stromzufuhr auf der entsprechenden Speicher-Einrichtungen gespeichert bleibt.

Für häufig zu ändernde Programme können – alternativ – z.B. auch RAMs (RAM = Random Access Memory bzw. Schreib-Lese-Speicher), insbesondere DRAMs als Programmspeicher verwendet werden, z.B. entsprechende SDRAMs, insbesondere DDR-SDRRMs, etc., die von einem externen Massenspeicher geladen werden können.

Die o.g. Speicher-Einrichtungen, insbesondere z.B. Flash-EEPROMs, SDRAMs, DDR-SDRAMs, etc. haben die Eigenschaft, dass ein jeweils erster Zugriff eine relativ lange Zugriffszeit in Anspruch nehmen kann (insbesondere mehr als einen Takt, z.B. zwei oder drei Takte), direkt sequentiell darauffolgende Zugriffe (insbesondere Burst-Zugriffe) jedoch mit deutlich geringerer Zugriffszeit (z.B. jeweils einen Takt) erfolgen können.

Im o.g. „Datenspeicher" können z.B. die – insbesondere von dem bzw. den CPU Cores beim Abarbeiten des Programms ggf. abzuändernden – Variablen gespeichert sein.

Der Datenspeicher kann z.B. von einem oder mehreren RAM-Bauelementen, insbesondere z.B. einem entsprechenden DRAM-Bauelement (DRAM = Dynamic Random Access Memory), oder SRAM-Bauelement (SRAM = Static Random Access Memory) gebildet werden.

Die CPU bzw. CPUs können – z.B. über den o.g. Multi-Master-On-Chip-Bus, und eine daran angeschlossene Schnittstellen-Einrichtung – an ein (oder mehrere) externe(s) Modul(e) angeschlossen sein, insbesondere entsprechende periphere, extern vom o.g. Mikrochip angeordnete Module, die z.B. über entsprechende weitere Bus-Systeme mit der Schnittstellen-Einrichtung kommunizieren.

Um für die CPU bzw. die CPUs die Zugriffszeiten auf das Programm (genauer: die o.g. Programm-Befehle), und/oder die o.g. Daten-Konstanten bzw. -Variablen zu verkürzen, können zusätzlich sog. Cache-Speicher verwendet werden.

Ein Cache-Speicher ist ein kleiner, schneller Puffer-Speicher, der z.B. in die CPU selbst integriert sein kann (oder in deren Nähe angeordnet sein kann).

Ein Cache-Speicher kann eine oder mehrere Cache-Lines umfassen, die z.B. jeweils eine Cache-Line-Breite von z.B. 8 Word (256 Bit), oder z.B. 16 Word (512 Bit), etc. aufweisen können.

In einem Cache-Speicher können z.B. die zuletzt verwendeten – bzw. die voraussichtlich in Zukunft zu verwendenden – Befehle gespeichert werden (Instruction Cache), oder die zuletzt verwendeten – bzw. die voraussichtlich in Zukunft zu verwendenden – Daten (Data Cache).

Bei den meisten Programmen ist die Wahrscheinlichkeit relativ groß, dass – bei einem entsprechenden Zugriff – die jeweils benötigten Befehle / Daten noch (bzw. bereits) im Cache-Speicher (z.B. im Instruction Cache, oder im Data Cache) stehen.

Dadurch können – im Mittel – geringere Zugriffszeiten erreicht werden, als ohne Cache-Speicher.

Stehen die benötigten Befehle / Daten nicht im Cache-Speicher (sog. „Cache Miss") werden die entsprechenden Daten / Befehle aus dem entsprechenden (externen oder internen) Datenspeicher bzw. Programmspeicher ausgelesen, und – z.B. über den o.g.

Multi-Master-On-Chip-Bus – an den jeweiligen Cache-Speicher, bzw. die CPU übertragen.

Da – wie oben erläutert – bei den o.g. Speicher-Bauelementen (z.B. Flash-EEPROMs, SDRAMs, DDR-SDRAMs, etc.) ein jeweils erster Zugriff eine relativ lange Zugriffszeit in Anspruch nehmen kann, direkt sequentiell darauffolgende Zugriffe (insbesondere Burst-Zugriffe) jedoch mit deutlich geringerer Zugriffszeit erfolgen können, wird bei einem „Cache Miss" i.d.R. nicht nur das jeweils benötigte Datum / der jeweils benötigte Befehl aus dem jeweiligen Speicher-Bauelement ausgelesen, sondern auch eine Vielzahl zusätzlicher, darauffolgender Daten / Befehle (z.B. 8, 16 oder 32 an aufeinanderfolgenden Speicherstellen bzw. Adressen im jeweiligen Speicher-Bauelement abgespeicherte Words), und an den jeweiligen Cache-Speicher übertragen – die Wahrscheinlichkeit, dass in naher Zukunft auf diese Daten / Befehle zugegriffen wird, ist relativ hoch.

Von Nachteil bei dieser Vorgehensweise ist u.a., dass bis zu dem Zeitpunkt, zu dem das jeweils tatsächlich – aktuell – benötigte Datum bzw. der jeweils tatsächlich – aktuell – benötigte Befehl an den Cache-Speicher übertragen, und abgespeichert ist eine relativ lange Zeitdauer vergehen kann.

Die Erfindung hat zur Aufgabe, eine neuartige Schnittstellen-Einrichtung zur Verfügung zu stellen, insbesondere eine neuartige Schnittstellen-Einrichtung für ein Mikrocontroller- bzw. Mikroprozessor-System, sowie ein neuartiges Verfahren zum Betreiben einer Schnittstellen-Einrichtung.

Sie erreicht dieses und weitere Ziele durch die Gegenstände der Ansprüche 1 und 18.

Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.

Gemäß einem Aspekt der Erfindung wird eine Schnittstellen-Einrichtung, insbesondere für ein Mikrocontroller- bzw. Mikroprozessor-System bereitgestellt, welche an eine Speicher-Einrichtung, und an ein Bus-System anschließbar ist, mit einer Einrichtung zum Anfordern mehrerer, aus der Speicher-Einrichtung auszulesender Daten

dadurch gekennzeichnet, dass nur ein Teil der von der Speicher-Einrichtung empfangenen, angeforderten Daten von der Schnittstellen-Einrichtung an das Bus-System weitergeleitet werden.

Bei einer bevorzugten Ausgestaltung ist vorteilhaft, daß die mehreren, angeforderten Daten jeweils entsprechenden Adressen zugeordnet sind, wobei für eine erste Teilmenge der Adressen entsprechende, von der Speicher-Einrichtung empfangenen Daten von der Schnittstellen-Einrichtung an das Bus-System weitergeleitet werden, und für eine zweite Teilmenge der Adressen statt entsprechender, von der Speicher-Einrichtung empfangener Daten entsprechende Dummy-Daten, insbesondere entsprechende von der Einrichtung bereitgestellte Dummy-Daten.

Damit kann – in Reaktion auf die Anforderung entsprechender Daten über das Bus-System (z.B. bei einem Cache Miss) – bereits dann mit der Übertragung / Weiterleitung von Daten von der Schnittstellen-Einrichtung über das Bus-System begonnen werden, wenn noch nicht alle angeforderten Daten von der Speicher-Einrichtung empfangen worden sind.

Im folgenden wird die Erfindung anhand von Ausführungsbeispielen und der beigefügten Zeichnung näher erläutert. In der Zeichnung zeigt:

1 eine schematische, beispielhafte Darstellung eines Mikrocontroller- bzw. Mikroprozessor-Systems;

2a ein schematisches Daten-Flussdiagramm zur Veranschaulichung eines mit dem in 1 gezeigten Mikrocontroller- bzw. Mikroprozessor-Systems durchführbaren Cache-Speicher-Ladeverfahrens gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;

2b ein schematisches Daten-Flussdiagramm zur Veranschaulichung einer Variante des mit dem in 1 gezeigten Mikrocontroller- bzw. Mikroprozessor-Systems durchführbaren Cache-Speicher-Ladeverfahrens, bei unterschiedlichen vom Multi-Master-On-Chip-Bus und von der externen Speicher-Einrichtung verwendeten Takt-Frequenzen;

3a eine schematische Detail-Darstellung der in 1 gezeigten Schnittstellen-Einrichtung des Mikrocontrollerbzw. Mikroprozessor-Systems, und der daran angeschlossenen Speicher-Einrichtung, zur Veranschaulichung des Adress- und Steuerdaten-Flusses; und

3b eine schematische Detail-Darstellung der in 1 gezeigten Schnittstellen-Einrichtung des Mikrocontrollerbzw. Mikroprozessor-Systems, und der daran angeschlossenen Speicher-Einrichtung, zur Veranschaulichung des Nutz-Daten-Flusses.

In 1 ist eine schematische Darstellung eines Mikrocontroller- bzw. Mikroprozessor-Systems 10 gemäß einem Ausführungsbeispiel der Erfindung gezeigt.

Bei dem Mikrocontroller- bzw. Mikroprozessor-System 10 kann es sich z.B. um ein 8 Bit Mikrocontroller- bzw. Mikroprozessor-System 10 handeln, oder um ein beliebiges anderes Mikrocontroller- bzw. Mikroprozessor-System, z.B. ein entsprechendes 16 Bit oder 32 Bit Mikrocontroller- bzw. Mikroprozessor-System, etc.

Das Mikrocontroller- bzw. Mikroprozessor-System 10 weist eine oder mehrere, auf einem entsprechenden Mikrochip 15 angeordnete (zentrale) Steuer- bzw. Recheneinheiten 11 auf (Central Processing Units (CPUs), bzw. CPU „Cores").

Die CPU 11 oder die CPUs sind – über einen Multi-Master-On-Chip-Bus 16 (und ggf. ein oder mehrere weitere Bus-Systeme) – mit einer oder mehreren internen (auf demselben Mikrochip 15, wie die CPU 11 vorgesehenen) Speicher-Einrichtungen 17 verbunden, sowie – z.B. über den Multi-Master-On-Chip-Bus 16, und eine oder mehrere entsprechende Speicher-Steuereinrichtungen („memory controller") 12 – mit einer oder mehreren externen (auf einem anderen Mikrochip, als die CPU 11 vorgesehenen) Speicher-Einrichtungen 18.

Als Multi-Master-On-Chip-Bus kann in Prinzip ein beliebiger Multi-Master-On-Chip-Bus verwendet werden, z.B. der FPI-Bus der Fa. Infineon, oder der AHB-Bus der Fa. ARM, etc.

Der Multi-Master-On-Chip-Bus kann mehrere Sub-Busse aufweisen, z.B. einen Datenbus, einen Steuerbus, und einen Adressbus, über welche entsprechende Daten-, Steuer- und Adress-Signale übertragen werden können.

Der Datenbus kann z.B. eine Breite von 1 Word (32 Bit) aufweisen, oder z.B. von 2, 3 oder 4 Word (64, 96, oder 128 Bit), etc.

Die Speicher-Einrichtungen 17, 18 können z.B. als Programmspeichereinrichtung, und/oder Datenspeichereinrichtung („Programmspeicher", und „Datenspeicher") fungieren.

Der „Programmspeicher" enthält insbesondere die Folge der von der bzw. den CPUs 11 abzuarbeitenden Befehle, also das Programm (und ggf. zusätzlich entsprechende – von der bzw. den CPUs 11 zu verwendende – Daten-Konstanten).

Der – z.B. von der Speicher-Einrichtung 17, und/oder der Speicher-Einrichtung 18 gebildete – Programmspeicher kann z.B: von einem EPROM (Erasable PROM bzw. Löschbaren Festwertspeicher) oder EEPROM (Electrically Erasable PROM bzw. Elektrisch Löschbarer Festwertspeicher) gebildet werden, insbesondere einem Flash-EEPROM-Bauelement (beispielsweise einem Burst-Flash-EEPROM).

Dadurch kann erreicht werden, dass das Programm auch bei unterbrochener Stromzufuhr auf der entsprechenden Speicher-Einrichtungen gespeichert bleibt.

Für häufig zu ändernde Programme können – alternativ – z.B. auch RAMs (RAM = Random Access Memory bzw. Schreib-Lese-Speicher), insbesondere DRAMs (DRAM = Dynamic Random Access Memory) als Programmspeicher verwendet werden, z.B. entsprechende SDRAMs (SDRAM = Static Dynamic Random Access Memory), insbesondere DDR-SDRAMs (Double Data Rate SDRAMs bzw. SDRAMs mit doppelter Datenrate), etc.

Im o.g. – z.B. von der Speicher-Einrichtung 18, und/oder der Speicher-Einrichtung 17 gebildeten – „Datenspeicher" können z.B. die – insbesondere von der bzw. den CPUs 11 beim Abarbeiten des Programms ggf. abzuändernden – Variablen gespeichert sein.

Der Datenspeicher kann z.B. von einem oder mehreren RAM-Bauelementen, insbesondere z.B. einem entsprechenden DRAM-Bauelement (DRAM = Dynamic Random Access Memory), oder SRAM-Bauelement (SRAM = Static Random Access Memory) gebildet werden, etc.

Die o.g. Speicher-Einrichtungen 17 und/oder 18 können die Eigenschaft haben, dass ein jeweils erster Zugriff eine relativ lange Zugriffszeit in Anspruch nehmen kann (insbesondere mehr als einen Takt, z.B. zwei oder drei Takte), direkt sequentiell darauffolgende Zugriffe (insbesondere Burst-Zugriffe) jedoch mit deutlich geringerer Zugriffszeit (z.B. jeweils einen Takt) erfolgen können.

Die CPU bzw. CPUs 11 können – z.B. über den o.g. Multi-Master-On-Chip-Bus 16 (und ggf. ein oder mehrere weitere Bus-Systeme), und eine an den Bus 16 (bzw. das oder die weiteren Bus-Systeme) angeschlossene, interne, auf dem Mikrochip 15 vorgesehene Schnittstellen-Einrichtung 20 – an ein (oder mehrere) externe(s) Modul(e) angeschlossen sein.

Alternativ oder zusätzlich kann die CPU oder die CPUs 11 – z.B. über den o.g. Multi-Master-On-Chip-Bus 16, und eine daran angeschlossene Brücke 14 (oder mehrere derartige Brücken) – an ein oder mehrere weitere On-Chip-Busse 19 angeschlossen sein (z.B. ein oder mehrere weitere Multi-Master-On-Chip-Busse 19).

Diese können – wie in 1 gezeigt ist – über eine oder mehrere weitere, interne, auf dem Mikrochip 15 vorgesehene Schnittstellen-Einrichtungen 21 – an ein oder mehrere weitere externe Module angeschlossen sein.

Wie aus 1 weiter hervorgeht, kann an den Multi-Master-On-Chip-Bus 16 ein DMA Controller angeschlossen sein (DMA = Direct Memory Access)

Um für die CPU 11 bzw. die CPUs die Zugriffszeiten auf das Programm (genauer: die o.g. Programm-Befehle), und/oder die o.g. Daten-Konstanten bzw. -Variablen – im Mittel – möglichst kurz zu halten, werden beim vorliegenden Ausführungsbeispiel – und wie in 1 gezeigt – ein oder mehrere sog. Cache-Speicher 22a, 22b verwendet (hier: zwei Cache-Speicher 22a, 22b).

Bei den Cache-Speichern 22a, 22b handelt es sich um kleine, schnelle Puffer-Speicher, die z.B. in die CPU 11, selbst integriert sein können (oder in deren unmittelbarer Nähe angeordnet sein können).

Die Cache-Speicher 22a, 22b – bei denen es sich z.B. um sog. „critical word first" Cache-Speicher handeln kann – können jeweils eine oder mehrere Cache-Lines umfassen, die z.B. jeweils eine Cache-Line-Breite von z.B. 8 × 1 Word (256 Bit), oder z.B. 16 oder 32 × 1 Word (512 Bit oder 1 GBit), etc. aufweisen können (oder z.B. 8 × 2 Word, 16 × 2 Word, etc.).

Jedem in einer entsprechenden Cache-Line jeweils gespeicherten Datum (welches z.B. jeweils eine Breite von z.B. 1 Word aufweisen kann (oder z.B. eine Breite von jeweils 2 Words, etc.)) ist eine entsprechende Cache-Line-Adresse zugeordnet, z.B. die Adresse 0, oder die Adresse 1, oder 2, 3, 4, 5, 6, 7 (bzw. als entsprechende Binärzahl ausgedrückt z.B. „000", oder „001", oder „010", „011", „100", etc.).

Beispielsweise kann bei einer Cache-Line-Breite von z.B. insgesamt 8 Word an 8 verschiedenen Cache-Line-Adressen(z.B. den Adressen 0, 1, 2, 3, 4, 5, 6, 7) als Datum jeweils z.B. ein Word gespeichert sein (oder z.B. jeweils 2 Words, etc.).

In dem Cache-Speicher 22a können z.B. die zuletzt verwendeten – bzw. die voraussichtlich in Zukunft zu verwendenden – Befehle gespeichert werden („Instruction Cache"), und in dem Cache-Speicher 22b die zuletzt verwendeten – bzw. die voraussichtlich in Zukunft zu verwendenden – Daten, insbesondere Daten-Konstanten bzw. -Variablen („Data Cache").

Bei den meisten Programmen ist die Wahrscheinlichkeit relativ groß, dass – bei einem entsprechenden Zugriff – die jeweils benötigten Befehle / Daten noch (bzw. bereits) im jeweiligen Cache-Speicher 22a, 22b (z.B. im Instruction Cache 22a, oder im Data Cache 22b) stehen.

Dadurch können – im Mittel – geringere Zugriffszeiten erreicht werden, als ohne Cache-Speicher.

Steht ein jeweils benötigter Befehl / ein jeweils benötigtes Datum nicht – an der jeweils entsprechenden Cache-Line-Adresse – im entsprechenden Cache-Speicher 22a, 22b („Cache Miss"), wird dieser Befehl / dieses Datum von der CPU 11 – mittels eines entsprechenden, über den Steuerbus des On-Chip-Busses 16 übertragenen, an die entsprechende Speicher-Einrichtung 17, 18 gerichteten Steuer-Signals, z.B. Block-Lese-Befehls („Data Block Read") – angefordert.

Gleichzeitig bzw. im wesentlichen gleichzeitig wird z.B. mittels eines entsprechenden, über den Adressbus des On-Chip-Busses 16 übertragenen Adress-Signals die Adresse des jeweils benötigten Befehls / Datums in der entsprechenden Speicher-Einrichtung 17, 18 angegeben, und/oder die jeweilige Cache-Line-Adresse, bei der ein „Cache-Miss" aufgetreten ist („Start Address").

Wie oben erläutert, kann der On-Chip-Bus 16 ein Multi-Master-Bus sein.

Die Kontrolle über den Bus 16 kann somit – wahlweise – von einem von mehreren, an den Bus 16 angeschlossenen Einrichtungen übernommen werden, z.B. entweder von der CPU 11, oder vom DMA Controller 13, oder von einer der o.g. weiteren CPUs, etc., etc.

Jedem möglichen Master ist eine den jeweiligen Master unter den an den Bus 16 angeschlossenen – möglichen – Mastern eindeutig kennzeichnende Kennung zugeordnet, z.B. eine entsprechende Master Tag ID.

Die der CPU 11 zugeordnete Kennung, insbesondere die dieser zugeordnete Master Tag ID wird von der CPU 11 – ebenfalls z.B. über den Steuerbus des On-Chip-Busses 16 – bei der o.g. Anforderung des nicht im entsprechenden Cache-Speicher 22a, 22b gespeicherten, jeweils benötigten Befehls / Datums z.B. zusammen mit bzw. als Teil des o.g. Block-Lese-Befehls („Data Block Read") (mit) übertragen.

Als Lese-Befehls-Signal bei einem „Cache Miss" kann z.B. – wie bereits oben erwähnt – ein sog. „Block-Lese-Befehls-Signal" verwendet werden, insbesondere ein der Cache-Line-Breite entsprechendes Block-Lese-Befehls-Signal.

Durch das Block-Lese-Befehls-Signal wird bewirkt, dass nicht nur ein einzelnes – bei einem vorliegenden „Cache Miss" im jeweiligen Cache-Speicher 22a, 22b nicht vorhandenes (einer einzelnen Cache-Line-Adresse („Start Address") zugeordnetes) – Datum / Befehl angefordert wird (z.B. ein einzelnes Word), sondern jeweils mehrere (insbesondere an aufeinanderfolgenden Adressen in der jeweiligen Speicher-Einrichtung 17, 18 gespeicherte) Daten / Befehle, insbesondere so viele Daten / Befehle, dass die Cache-Line mit diesen Daten / Befehlen komplett neu beschrieben werden kann.

Beispielsweise kann z.B. bei einer Cache-Line-Breite von z.B. 8 Words mittels eines entsprechenden „8 Data Block Read"-Befehls nicht nur ein einzelnes – einer einzelnen Cache-Line-Adresse (nämlich der o.g. "Start Address") zugeordnetes – Word angefordert werden, sondern 8 × 1 Word (oder z.B. bei einer Cache-Line-Breite von z.B. 16 Words mittels eines entsprechenden „16 Block Data Block Read"-Befehls 16 × 1 Word, etc.).

Insbesondere dann, wenn der bei einem „Cache Miss" nicht im jeweiligen Cache-Speicher 22a vorhandene, benötigte Befehl bzw. das o.g. bei einem „Cache Miss" nicht im jeweiligen Cache-Speicher 22b vorhandene, benötigte Datum nicht am Anfang der entsprechenden Cache-Line liegt (d.h. nicht der ersten der o.g., mehreren Cache-Line-Adressen, d.h. z.B. der Adresse „0", bzw. – binär ausgedrückt – „000" als „Start Address" zugeordnet ist), kann – wie in 2a und 2b veranschaulicht (vgl. den dort gezeigten Schritt A) – der o.g. Block-Lese-Befehl von der CPU 11 als sog. „Wrap-Around"-Befehl ausgesendet werden (z.B. in Form eines entsprechenden „8 Data Block Read Wrap Around"-Befehls (oder z.B. eines „16 Data Block Read Wrap Around"-Befehls)).

Bei einem „Wrap-Around-Lese-Befehl" werden – beginnend von der o.g. „Start Address" – nicht nur das der „Start Address", und – bis zum Ende der Cache-Line – den darauffolgenden Adressen der Cache-Line zuzuordnende (an aufeinanderfolgenden Adressen in der jeweiligen Speicher-Einrichtung 17, 18 gespeicherte) Daten / Befehle angefordert, sondern – auf diese folgend – auch die den am Anfang der entsprechenden Cache-Line (vor der „Start Address") liegenden Cache-Line-Adressen zuzuordnende (an entsprechenden (Anfangs-)Adressen der jeweiligen Speicher-Einrichtung 17, 18 zu speichernde) Daten / Befehle (z.B. – bei einem „Cache Miss" bei der Cache-Line-Adresse „2" (bzw. – binär ausgedrückt – „010"), und einer Cache-Line-Breite von z.B. 8 × 1 Word – die den Cache-Line-Adressen 2, 3, 4, 5, 6, 7, 0, 1 zuzuordnenden Daten / Befehle (in eben dieser Reihenfolge)).

Empfängt eine Schnittstellen-Einrichtung 12 der jeweiligen Speicher-Einrichtung 17, 18 (insbesondere z.B. – beim hier erläuterten Ausführungsbeispiel – der o.g. – als Schnittstellen-Einrichtung verwendete – „memory controller" 12 der Speicher-Einrichtung 18) den o.g. „Data Block Read Wrap Around"-Befehl, wird – wie im folgenden noch genauer erläutert wird – durch eine dort vorgesehene (erste, spezielle) Prefetch-Buffer-Einrichtung 23 überprüft, ob die durch den o.g. „Wrap-Around-Lese-Befehl" (z.B. den o.g. „8 Data Block Read Wrap Around"-Befehl) von der CPU 11 angeforderten Daten / Befehle nicht bereits – von vorherigen Zugriffen – in der Prefetch-Buffer-Einrichtung 23 abgespeichert sind (vgl. z.B. den in 2a und 2b gezeigten Schritt B).

Ist dies der Fall, werden die entsprechenden Daten / Befehle aus der Prefetch-Buffer-Einrichtung 23 ausgelesen, und – über den Multi-Master-On-Chip-Bus 16 – an die CPU 11 bzw. den jeweiligen Cache-Speicher 22a, 22b übertragen (s.u.).

Ist dies nicht der Fall, wird – wie ebenfalls in 2a und 2b gezeigt ist – z.B. unter Steuerung durch die Prefetch-Buffer-Einrichtung 23 über einen die entsprechende Speicher-Einrichtung 17, 18, und die Schnittstellen-Einrichtung 12 (hier: den „memory controller" 12) verbindenden Bus 25 z.B. ein entsprechender, weiterer Block-Lese-Befehl übertragen, insbesondere z.B. ein weiterer „Wrap-Around"-Block-Lese-Befehl (vgl. z.B. den in 2a und 2b gezeigten Schritt C) (oder alternativ z.B. ein „Continuous"-Block-Lese-Befehl (s.u.)), zusammen mit einem die Adresse des o.g. jeweils benötigten Befehls / Datums in der entsprechenden Speicher-Einrichtung 17, 18, und/oder die o.g. „Start Address" angebenden Adress-Signal.

Wird ein „Wrap-Around"-Block-Lese-Befehl verwendet, so kann dieser eine im Vergleich zum von der CPU 11 / dem jeweiligen Cache-Speicher 22a, 22b empfangenen „Wrap-Around"-Block-Lese-Befehl höhere Anzahl an aufgrund des Befehls auszulesenden Daten / Befehlen anzeigen (z.B. eine um mehr als 3 oder 7 auszulesende Daten / Befehle höhere Anzahl an auszulesenden Daten / Befehlen, z.B. eine verdoppelte oder verdreifachte Anzahl an auszulesenden Daten / Befehlen, etc.).

Beispielsweise kann – bei einem von der CPU 11 / dem jeweiligen Cache-Speicher 22a, 22b empfangenen „8 Data Block Read Wrap Around"-Befehl – ein „16 Data Block Read Wrap Around"-Befehl (oder z.B. ein „32 Data Block Read Wrap Around"Befehl, etc.) über den Bus 25 an die jeweilige Speicher-Einrichtung 17, 18 übertragen werden (oder bei einem von der CPU 11 / dem jeweiligen Cache-Speicher 22a, 22b empfangenen „16 Data Block Read Wrap Around"-Befehl z.B. ein „32 Data Block Read Wrap Around"-Befehl, etc., etc.).

Dadurch kann erreicht werden, dass zusätzlich zu den der o.g. vom „Cache Miss" unmittelbar betroffenen Cache Line zugeordneten Daten / Befehle auch die der nächstfolgenden Cache Line (oder z.B. den beiden nächstfolgenden Cache Lines) zugeordneten Daten / Befehle aus der entsprechenden Speicher-Einrichtung 17, 18 ausgelesen werden.

Die entsprechenden Daten / Befehle werden von der jeweiligen Speicher-Einrichtung 17, 18 – beginnend mit der o.g. „Start-Address" bzw. der o.g. Speicher-Einrichtungs-Adresse, an dem der o.g. (im Cache-Speicher 22a, 22b fehlende) Befehl / das o.g. (im Cache-Speicher 22a, 22b fehlende) Datum in der entsprechenden Speicher-Einrichtung 17, 18 abgespeichert ist – ausgelesen, und über den Bus 25 an die Schnittstellen-Einrichtung 12 der jeweiligen Speicher-Einrichtung 17, 18 (hier z.B.: den „memory controller" 12) übertragen (z.B. bei einem „16 Data Block Read Wrap Around"-Befehl, und einer Start Address „2" bzw. „010" die an den 16 Speicher-Einrichtungs-Adressen 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 0, 1 gespeicherten Daten / Befehle (in eben dieser Reihenfolge) (vgl. z.B. den in 2a, 2b gezeigten Schritt D)).

Wird – wie oben erwähnt – statt des „Wrap-Around"-Block-Lese-Befehls ein „Continuous"-Block-Lese-Befehl über den Bus 25 an die entsprechende Speicher-Einrichtung 17, 18 übertragen, werden – beginnend mit der o.g. „Start-Address" bzw. der entsprechenden, o.g. Speicher-Einrichtungs-Adresse – sämtliche in der entsprechenden Speicher-Einrichtung 17, 18 abgespeicherte Daten / Befehle aus der entsprechenden Speicher-Einrichtung 17, 18 ausgelesen, und über den Bus 25 an die Schnittstellen-Einrichtung 12 der jeweiligen Speicher-Einrichtung 17, 18 (hier z.B.: den „memory controller" 12) übertragen (z.B. bei einer „Start Address" von „2" bzw. „010" die an den Speicher-Einrichtungs-Adressen 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13, etc. gespeicherten Daten / Befehle (in eben dieser Reihenfolge)).

Sobald die Schnittstellen-Einrichtung 12 (z.B. der „memory controller" 12) – insbesondere die o.g. Prefetch-Buffer-Einrichtung 23 – beginnend von der o.g. „Start Address" bis zum „Wrap Around" (bezogen auf den von der CPU 11 an die Schnittstellen-Einrichtung 12 ursprünglich ausgesendeten „Wrap-Around"-Befehl (z.B. den o.g. „8 Data Block Read Wrap Around"-Befehl)) die entsprechenden Daten / Befehle (gültig) erhalten hat (also z.B. – bei einem von der CPU 11 ursprünglich ausgesendeten „8 Data Block Read Wrap Around"-Befehl, und einer „Start Address" von „2" bzw. „010" – die den Adressen 2, 3, 4, 5, 6, 7 zugeordneten Daten / Befehle) – und nicht erst nach Erhalt sämtlicher, wie oben erläutert von der Schnittstellen-Einrichtung 12 (z.B. dem „memory controller" 12) angeforderter Daten / Befehle (z.B. der den Adressen 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, etc. zugeordneten Daten / Befehle) – werden die entsprechenden Daten / Befehle über den Multi-Master-On-Chip-Bus 16 an die CPU 11 (bzw. die Cache-Speicher 22a, 22b) übertragen (vgl. z.B. den in 2a, 2b gezeigten Schritt E).

Zusätzlich hierzu werden anstelle der – in Bezug auf den von der CPU 11 an die Schnittstellen-Einrichtung 12 ursprünglich ausgesendeten „Wrap-Around"-Befehl – zusätzlich angeforderten (ggf. der Schnittstellen-Einrichtung 12 noch nicht bzw. noch nicht gültig vorliegenden), z.B. den Adressen „0" und „1" zugeordneten Daten / Befehle von der Schnittstellen-Einrichtung 12 entsprechende, beliebige „Dummy-Daten" X bzw. „Dummy-Befehle" X über den Multi-Master-On-Chip-Bus 16 an die CPU 11 (bzw. die Cache-Speicher 22a, 22b) übertragen (insgesamt also z.B. – bei einem von der CPU 11 ursprünglich ausgesendeten „8 Data Block Read Wrap Around"-Befehl, und einer „Start Address" von „2" – z.B. sequentiell hintereinander für die Adresse 2 ein entsprechendes von der Speicher-Einrichtung 17, 18 empfangenes Datum / Befehl D2, für die Adresse 3 ein entsprechendes von der Speicher-Einrichtung 17, 18 empfangenes Datum / Befehl D3, für die Adresse 4 ein entsprechendes von der Speicher-Einrichtung 17, 18 empfangenes Datum / Befehl D4, für die Adresse 5 ein entsprechendes von der Speicher-Einrichtung 17, 18 empfangenes Datum / Befehl D5, für die Adresse 6 ein entsprechendes von der Speicher-Einrichtung 17, 18 empfangenes Datum / Befehl D6, für die Adresse 7 ein entsprechendes von der Speicher-Einrichtung 17, 18 empfangenes Datum / Befehl D7, für die Adresse 0 ein entsprechendes Dummy-Datum X bzw. ein entsprechender Dummy-Befehl X, und für die Adresse 1 – ebenfalls – ein entsprechendes Dummy-Datum X bzw. ein entsprechender Dummy-Befehl X.

Wie aus 2a hervorgeht, kann – falls für den Multi-Master-On-Chip-Bus 16, und die Speicher-Einrichtung 16 identische Takt-Frequenzen verwendet werden – pro Takt z.B. jeweils ein Datum / Befehl der o.g. Daten / Befehle – über den Bus 25 – von der Speicher-Einrichtung 18 an die Schnittstellen-Einrichtung 12 übertragen werden, und – ebenfalls – pro Takt z.B. jeweils ein Datum / Befehl der o.g. Daten / Befehle – über den Multi-Master-On-Chip-Bus 16 – von der Schnittstellen-Einrichtung 12 an die CPU 11 bzw. die Cache-Speicher 22a, 22b.

Werden – wie aus 2b hervorgeht – für den Multi-Master-On-Chip-Bus 16, und die Speicher-Einrichtung 16 unterschiedliche Takt-Frequenzen verwendet (z.B. für die Speicher-Einrichtung 16 eine Takt-Frequenz, die nur halb so groß ist, wie die Takt-Frequenz des Multi-Master-On-Chip-Busses 16) kann – bezogen auf den Takt des Multi-Master-On-Chip-Busses 16 – z.B. auch nur bei jedem zweiten Takt jeweils ein Datum / Befehl der o.g. Daten / Befehle über den Multi-Master-On-Chip-Bus 16 von der Schnittstellen-Einrichtung 12 an die CPU 11 bzw. die Cache-Speicher 22a, 22b übertragen. werden.

Die o.g., von der CPU 11 bzw. dem entsprechenden Cache-Speicher 22a, 22b empfangenen Daten / Befehle (z.B. die o.g. Daten / Befehle D2, D3, D4, D5, D6, D7, X, X) werden – an den jeweils zugehörigen Cache-Line-Adressen – in der entsprechenden Cache-Line abgespeichert.

Dabei werden die – z.B. den o.g. Adressen „0" und „1" zuzuordnenden – von der Schnittstellen-Einrichtung 12 an die CPU 11 bzw. den Cache-Speicher 22a, 22b übertragen „Dummy-Daten" bzw. „Dummy-Befehle" in der entsprechenden Cache-Line durch die CPU 11 bzw. den entsprechenden Cache-Speicher 22a, 22b (bzw. einen entsprechenden Cache-Controller) als „ungültig" markiert (und die den übrigen Adressen, z.B. den Adressen "2" 3" 4" 5" 6" 7" der entsprechenden Cache-Line zuzuordnenden, von der Schnittstellen-Einrichtung 12 an die CPU 11 bzw. den Cache-Speicher 22a, 22b übertragen Daten / Befehle als „gültig").

Mit anderen Worten wird die entsprechende Cache-Line also von der o.g. „Start Address" bis zum Cache-Line-Ende mit gültigen Daten / Befehlen beschrieben, und vom Cache-Line-Anfang bis zur o.g. "Start Address" mit ungültigen Daten / Befehlen.

Sobald das der o.g. „Start Address" zugeordnete, fehlende, den „Cache Miss" auslösende Datum / Befehl von der CPU 11 bzw. den Cache-Speicher 22a, 22b empfangen, bzw. im entsprechenden Cache-Speicher 22a, 22b abgespeichert wurde, kann die CPU 11 im o.g. Programm fortfahren.

Wie oben erläutert, werden von der Schnittstellen-Einrichtung 12 (genauer: der Prefetch-Buffer-Einrichtung 23) aufgrund des o.g., speziellen an die Speicher-Einrichtung 17, 18 gesendeten „Wrap-Around"-Block-Lese-Befehls (z.B. des o.g. „16 Data Block Read Wrap Around"-Befehls), bzw. des – alternativ – gesendeten „Continuous"-Block-Lese-Befehls mehr Daten / Befehle empfangen, als – zunächst – wie oben erläutert über den Multi-Master-On-Chip-Bus 16 an die CPU 11 bzw. den Cache-Speicher 22a, 22b übertragen werden.

Diese Daten / Befehle – bzw. vorteilhaft lediglich ein Teil hiervon, z.B. die den auf die o.g. Cache-Line nächstfolgenden Cache-Lines (bzw. den diesen jeweils zugeordneten Adressen) zugeordneten Daten / Befehle – werden in der Prefetch-Buffer-Einrichtung 23 abgespeichert (z.B. – beim obigen Beispiel – die den Adressen 8, 9, A, B, C, D, E, F der nächsten Cache-Line zugeordneten, von der Schnittstellen-Einrichtung 12 empfangenen Daten / Befehle).

Wird lediglich ein Teil der empfangenen Daten / Befehle abgespeichert, können die übrigen empfangenen Daten / Befehle von der Schnittstellen-Einrichtung 12 verworfen werden (alternativ kann die entsprechende Transaktion von der Schnittstellen-Einrichtung 12 auch entsprechend frühzeitig abgebrochen werden, insbesondere dann, wenn das letzte zu speichernde Datum / der letzte zu speichernde Befehl empfangen worden ist).

Empfängt die Schnittstellen-Einrichtung 12 – erneut (z.B. bei einem erneuten „Cache Miss") – von der CPU 11 einen entsprechenden Lese-Befehl, ist die Chance relativ gut, dass die entsprechenden Daten / Befehle in der Prefetch-Buffer-Einrichtung 23 abgespeichert sind.

Diese können dann – ohne vorherigen Zugriff auf die Speicher-Einrichtung 17, 18 – direkt aus der Prefetch-Buffer-Einrichtung 23 ausgelesen, und über den Multi-Master-On-Chip-Bus 16 an die CPU 11 bzw. den jeweiligen Cache-Speicher 22a, 22b übertragen (und in der entsprechenden Cache-Line abgespeichert) werden.

Wie aus 3a und 3b hervorgeht, sind in der Schnittstellen-Einrichtung 12 – zusätzlich zur o.g. Prefetch-Buffer-Einrichtung 23 – noch eine oder mehrere weitere Prefetch-Buffer-Einrichtungen 24 vorgesehen.

Wird von der Schnittstellen-Einrichtung 12 – über den o.g. Multi-Master-On-Chip-Bus 16 – ein entsprechender Befehl empfangen (z.B. der o.g. oder ein beliebiger, anderer Lese-Befehl, oder z.B. ein entsprechender Schreib-Befehl, etc.) wird zunächst überprüft, von welchem der o.g. mehreren Master der entsprechende Befehl ausgesendet wurde.

Dies kann durch Vergleich der – wie oben erläutert bei einem entsprechenden Befehl jeweils mit übertragenen, von dem jeweiligen Master ausgesendeten – Master-Kennung, insbesondere der o.g. Master Tag ID mit in der Schnittstellen-Einrichtung 12 vorab abgespeicherten Kennungen, insbesondere Master Tag IDs erfolgen.

Wird – aufgrund der jeweiligen Kennung, insbesondere Master Tag ID – ermittelt, dass der jeweilige Befehl (insbesondere z.B. der o.g. „8 Data Block Read Wrap Around"-Befehl) von der CPU 11 ausgesendet wurde, übernimmt die Prefetch-Buffer-Einrichtung 23 (ganz bzw. teilweise) die Kontrolle über den Daten- bzw. Befehls-Auslese-/Übertragungs-/Abspeicher-Vorgang (der dann entsprechend wie oben beschrieben durchgeführt werden kann).

Wird demgegenüber – aufgrund der jeweiligen Kennung, insbesondere Master Tag ID – ermittelt, dass der jeweilige Befehl (insbesondere z.B. ein entsprechender „Block Read"- bzw. „Block Read Wrap Around"-Befehl) nicht von der CPU 11, sondern einem anderen Master des Multi-Master-On-Chip-Busses 16 ausgesendet wurde, übernimmt nicht die Prefetch-Buffer-Einrichtung 23, sondern die o.g. weitere Prefetch-Buffer-Einrichtung 24 (ganz bzw. teilweise) die Kontrolle über den Daten- bzw. Befehls-Auslese-/Übertragungs-/Abspeicher-Vorgang (der dann z.B. entsprechend ähnlich oder identisch wie oben beschrieben, oder z.B. auf beliebige andere Weise, z.B. auf herkömmliche Art und Weise durchgeführt werden kann).

Insbesondere kann die weitere Prefetch-Buffer-Einrichtung 24 in Reaktion z.B. auf einen empfangenen Lese-Befehl, z.B. einen „Block Read"- bzw. „Block Read Wrap Around"-Befehl, und einen entsprechenden, über den Bus 25 an die Speicher-Einrichtung 18 übertragenen Lese-Befehl, insbesondere „Block Read"- bzw. „Block Read Wrap Around"-Befehl – anders als oben für die Prefetch-Buffer-Einrichtung 23 beschrieben – zunächst die vollständige bzw. zumindest für die jeweilige Cache-Line vollständige Übertragung der entsprechenden Daten / Befehle abwarten, und diese – erst dann – über den Multi-Master-On-Chip-Bus 16 übertragen (d.h. ohne Verwendung von – ungültigen – „Dummy-Daten" bzw. Dummy-Befehlen", sondern ausschließlich unter Verwendung gültiger, von der Speicher-Einrichtung 18 erhaltener Daten bzw. Befehle).

10Mikroprozessor-System 11CPU 12Speicher-Steuereinrichtung 13DMA Controller 14Brücke 15Mikrochip 16Multi-Master-On-Chip-Bus 17Speicher-Einrichtung 18Speicher-Einrichtung 19On-Chip-Bus 20Schnittstellen-Einrichtung 21Schnittstellen-Einrichtung 22aCache-Speicher 22bCache-Speicher 23Prefetch-Buffer-Einrichtung 24Prefetch-Buffer-Einrichtung 25Bus

Anspruch[de]
  1. Schnittstellen-Einrichtung (20), insbesondere für ein Mikrocontroller- bzw. Mikroprozessor-System (10), welche an eine Speicher-Einrichtung (18), und an ein Bus-System (16) anschließbar ist, mit einer Einrichtung (23, 20) zum Anfordern mehrerer, aus der Speicher-Einrichtung (18) auszulesender Daten dadurch gekennzeichnet, dass nur ein Teil der von der Speicher-Einrichtung (18) empfangenen, angeforderten Daten von der Schnittstellen-Einrichtung (20) an das Bus-System (16) weitergeleitet werden.
  2. Schnittstellen-Einrichtung (20) nach Anspruch 1, bei welcher die mehreren, angeforderten Daten jeweils entsprechenden Adressen zugeordnet sind, und für eine erste Teilmenge der Adressen entsprechende, von der Speicher-Einrichtung (18) empfangenen Daten von der Schnittstellen-Einrichtung (20) an das Bus-System (16) weitergeleitet werden, und für eine zweite Teilmenge der Adressen statt entsprechender, von der Speicher-Einrichtung (18) empfangener Daten entsprechende Dummy-Daten, insbesondere entsprechende von der Einrichtung (23, 20) bereitgestellte Dummy-Daten von der Schnittstellen-Einrichtung (20) an das Bus-System (16) übertragen werden.
  3. Schnittstellen-Einrichtung (20) nach Anspruch 1 oder 2, bei welcher von der Einrichtung (23, 20) mehr – aus der Speicher-Einrichtung (18) auszulesende – Daten angefordert werden, als über das Bus-System (16) angefordert wurden.
  4. Schnittstellen-Einrichtung (20) nach Anspruch 3, bei welcher in Reaktion auf die Daten-Anforderung über das Bus-System (16) die für die erste Adress-Teilmenge von der Speicher-Einrichtung (18) empfangenen Daten an das Bus-System (16) weitergeleitet werden, und die für die zweite Adress-Teilmenge – insbesondere von der Einrichtung (23) – bereitgestellten Dummy-Daten.
  5. Schnittstellen-Einrichtung (20) nach einem der vorhergehenden Ansprüche, bei welcher das Bus-System (16) ein Multi-Master-Bus-System ist.
  6. Schnittstellen-Einrichtung (20) nach einem der Ansprüche 3 bis 5, bei welcher die Daten über das Bus-System (16) von einem Mikroprozessor bzw. Mikrocontroller (11) angefordert werden können.
  7. Schnittstellen-Einrichtung (20) nach Anspruch 6, bei welcher die Daten bei einem Cache Miss von dem Mikroprozessor bzw. Mikrocontroller (11) angefordert werden können.
  8. Schnittstellen-Einrichtung (20) nach einem der vorhergehenden Ansprüche, bei welcher zur Anforderung der aus der Speicher-Einrichtung (18) auszulesenden Daten von der Einrichtung (23, 20) ein Block-Lese-Befehl verwendet wird.
  9. Schnittstellen-Einrichtung (20) nach Anspruch 8, bei welcher als Block-Lese-Befehl ein Wrap-Around-Block-Lese-Befehl verwendet wird.
  10. Schnittstellen-Einrichtung (20) nach Anspruch 8, bei welcher als Block-Lese-Befehl ein Continuous-Block-Lese-Befehl verwendet wird.
  11. Schnittstellen-Einrichtung (20) nach einem der Ansprüche 3 bis 10, bei welcher zur Anforderung der Daten über das Bus-System (16), insbesondere von dem Mikroprozessor bzw. Mikrocontroller (11), ein Block-Lese-Befehl verwendet wird.
  12. Schnittstellen-Einrichtung (20) nach Anspruch 11, bei welcher als Block-Lese-Befehl ein Wrap-Around-Block-Lese-Befehl verwendet wird.
  13. Schnittstellen-Einrichtung (20) nach einem der Ansprüche 5 bis 12, welche eine Ermittlungs-Einrichtung aufweist zum Ermitteln, von welchem Master des Multi-Master-Bus-Systems (16) Daten über das Bus-System (16) angefordert werden.
  14. Schnittstellen-Einrichtung (20) nach Anspruch 13, bei welcher dann, wenn Daten über das Multi-Master-Bus-System (16) von dem Mikroprozessor bzw. Mikrocontroller (11) angefordert wurden, zum Anfordern von Daten von der Speicher-Einrichtung (18) bzw. zum Weiterleiten von Daten über das Multi-Master-Bus-System (16) die Einrichtung (23, 20) verwendet wird.
  15. Schnittstellen-Einrichtung (20) nach Anspruch 13 oder 14, bei welcher dann, wenn Daten über das Multi-Master-Bus-System (16) von einem anderen Master, als dem Mikroprozessor bzw. Mikrocontroller (11) angefordert wurden, zum Anfordern von Daten von der Speicher-Einrichtung (18) bzw. zum Weiterleiten von Daten über das Multi-Master-Bus-System (16) eine zusätzlich zu der Einrichtung (23, 20) vorgesehene weitere Einrichtung (24) verwendet wird.
  16. Schnittstellen-Einrichtung (20) nach einem der vorhergehenden Ansprüche, welche ein Memory Controller bzw. Teil eines Memory Controllers ist.
  17. Mikrocontroller- bzw. Mikroprozessor-System (10), mit einer Schnittstellen-Einrichtung (20) nach einem der Ansprüche 1 bis 16.
  18. Verfahren zum Betreiben einer Schnittstellen-Einrichtung (20), welche an eine Speicher-Einrichtung (18), und an ein Bus-System (16) anschließbar ist, welches die Schritte aufweist:

    – Anfordern mehrerer, aus der Speicher-Einrichtung (18) auszulesender Daten durch die Schnittstellen-Einrichtung (20);

    – Weiterleiten nur eines Teils der von der Speicher-Einrichtung (18) empfangenen, angeforderten Daten von der Schnittstellen-Einrichtung (20) an das Bus-System (16).
Es folgen 5 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

  Patente PDF

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com