DE102004046429B4 - Interface means - Google Patents

Interface means Download PDF

Info

Publication number
DE102004046429B4
DE102004046429B4 DE200410046429 DE102004046429A DE102004046429B4 DE 102004046429 B4 DE102004046429 B4 DE 102004046429B4 DE 200410046429 DE200410046429 DE 200410046429 DE 102004046429 A DE102004046429 A DE 102004046429A DE 102004046429 B4 DE102004046429 B4 DE 102004046429B4
Authority
DE
Germany
Prior art keywords
data
memory
cache
cpu
block read
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
DE200410046429
Other languages
German (de)
Other versions
DE102004046429A1 (en
Inventor
Frank Hellwig
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 DE200410046429 priority Critical patent/DE102004046429B4/en
Publication of DE102004046429A1 publication Critical patent/DE102004046429A1/en
Application granted granted Critical
Publication of DE102004046429B4 publication Critical patent/DE102004046429B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Abstract

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.The invention relates to a method for operating an interface device (20), and an interface device (20), in particular for a microcontroller or microprocessor system (10), which is connected to a memory device (18) and to a bus system (16) can be connected, with a device (23, 20) for requesting a plurality of data to be read out from the memory device (18), characterized in that only some of the data received by the memory device (18), requested data are forwarded from the interface device (20) to the bus system (16).

Description

Die Erfindung betrifft eine Schnittstellen-Einrichtung, insbesondere eine Schnittstellen-Einrichtung für ein Mikrocontroller- bzw. Mikroprozessor-System.The invention relates to an interface device, in particular an interface device for a microcontroller or microprocessor system.

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”).Conventional digital arithmetic circuits (eg corresponding microcontroller or microprocessor systems arranged on a microchip) have one or more (central) control or arithmetic units (Central Processing Units (CPUs) or 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”).The CPU or the CPUs are - z. B. via a corresponding multi-master on-chip bus (and possibly one or more other bus systems) - connected to one or more (external or internal) storage facilities, eg. B. a program and a data storage device ("program memory", and "data storage").

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.The multi-master on-chip bus (eg the FPI bus of the company Infineon, or the AHB bus of the company ARM, etc.) can z. B. have a data bus width of 1 word (32 bits), or z. From 2 Word (64 bits), 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).The "program memory" contains, in particular, the sequence of the commands to be processed by the CPU core (s), that is to say the program (and possibly additionally corresponding data constants to be used by the CPU core or cores).

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).The program memory can z. B. from an EPROM (erasable PROM or erasable PROM) or EEPROM (Electrically Erasable PROM), in particular a flash EEPROM device (for example, a burst flash EEPROM).

Dadurch kann erreicht werden, dass das Programm auch bei unterbrochener Stromzufuhr auf der entsprechenden Speicher-Einrichtungen gespeichert bleibt.It can thereby be achieved that the program remains stored even if the power supply is interrupted on the corresponding memory devices.

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-SDRAMs, etc., die von einem externen Massenspeicher geladen werden können.For frequently changed programs can - alternatively - z. B. RAMs (RAM = Random Access Memory or read-write memory), in particular DRAMs are used as program memory, z. B. corresponding SDRAMs, in particular DDR SDRAMs, etc., which can be loaded from an external mass storage.

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.The o. G. Memory devices, in particular z. Flash EEPROMs, SDRAMs, DDR SDRAMs, etc., have the property that each first access may take a relatively long access time (in particular, more than one clock, eg, two or three clocks), directly sequentially subsequent accesses (in particular burst accesses), however, can take place with significantly less access time (for example, one clock in each case).

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.In o. G. "Datastore" can z. For example, the variables to be stored, in particular by the CPU cores when executing the program, may be stored.

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.The data store can, for. B. of one or more RAM devices, in particular z. B. a corresponding DRAM device (DRAM = Dynamic Random Access Memory), or SRAM device (SRAM = static random access memory) are formed.

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.The CPU or CPUs can -. B. on the o. G. Multi-master on-chip bus, and an interface device connected thereto - to be connected to one (or more) external module (s), in particular corresponding peripheral, external from o. G. Microchip arranged modules, the z. B. communicate with the interface device via corresponding further bus systems.

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.In order for the CPU or the CPUs, the access times to the program (more precisely: the above-mentioned program commands), and / or the o. G. In addition, so-called cache memory can be used to shorten data constants or variables.

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).A cache is a small, fast buffer memory that can be used, for example. B. may be integrated into the CPU itself (or may be located in the vicinity).

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.A cache may include one or more cache lines, e.g. B. each have a cache line width of z. B. 8 Word (256 bits), or z. B. 16 Word (512 bits), etc. may have.

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).In a cache memory z. As the last used - or expected to be used in the future - commands are stored (instruction cache), or the last used - or expected to be used in the future - data (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.For most programs, the probability that - if accessed - the required commands / data are still (or already) in the cache memory (eg in the instruction cache, or in the data cache) is relatively high.

Dadurch können – im Mittel – geringere Zugriffszeiten erreicht werden, als ohne Cache-Speicher.As a result, on average, lower access times can be achieved than without cache memory.

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.If the required commands / data are not in the cache memory (so-called "cache miss"), the corresponding data / commands from the corresponding (external or internal) data memory or program memory read, and - z. B. over the above-mentioned multi-master on-chip bus - to the respective cache memory, or the CPU transferred.

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.Since - as explained above - in the o. Memory devices (eg., Flash EEPROMs, SDRAMs, DDR SDRAMs, etc.) each first access can take a relatively long access time, directly followed sequentially subsequent accesses (in particular burst accesses) but with significantly lower access time can, is at a "cache miss" i. d. R. read out not only the respective required date / command from the respective memory component, but also a plurality of additional, subsequent data / commands (eg, 8, 16 or 32 at successive memory locations or addresses in the respective memory Component), and transferred to the respective cache memory - the likelihood that these data / instructions will be accessed in the near future is relatively high.

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.The disadvantage of this approach is u. a. That up to the time at which the actual - currently - required date or the actual - actually - required command transmitted to the cache memory, and stored is a relatively long period of time can pass.

Aus der US 6 021 480 A ist ein Computer-System bekannt, bei dem eine PCI-Bridge an eine Speicher-Einrichtung, und ein Bus-System angeschlossen ist.From the US 6 021 480 A For example, a computer system is known in which a PCI bridge is connected to a memory device and a bus system.

Die US 6 654 872 B1 zeigt ein Verfahren, bei dem eine Befehls-Cache-Line in zwei Komponenten aufgeteilt wird.The US Pat. No. 6,654,872 B1 shows a method in which an instruction cache line is split into two components.

In der US 5,131,083 A ist ein Verfahren zum Übertragen von Burst-Daten in einem Mikroprozessor beschrieben.In the US 5,131,083 A A method for transmitting burst data in a microprocessor is described.

Die US 2004/0088490 A1 zeigt ein Prefetch-System, bei dem ein Buffer eines Memory Controllers oder Cache Controllers verwendet wird, um eine Prefetch-Operation durchzuführen.The US 2004/0088490 A1 shows a prefetch system in which a buffer of a memory controller or cache controller is used to perform a prefetch operation.

Gemäß der Erfindung wird eine Schnittstellen-Einrichtung mit den im Anspruch 1 angegebenen Merkmalen zur Verfügung gestellt, sowie ein Mikrocontroller- bzw. Mikroprozessor-System mit einer derartigen Schnittstellen-Einrichtung.According to the invention, an interface device with the features specified in claim 1 is provided, as well as a microcontroller or microprocessor system with such an interface device.

Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.Advantageous developments of the invention are specified in the subclaims.

Im folgenden wird die Erfindung anhand von Ausführungsbeispielen und der beigefügten Zeichnung näher erläutert. In der Zeichnung zeigt:In the following the invention will be explained in more detail with reference to embodiments and the accompanying drawings. In the drawing shows:

1 eine schematische, beispielhafte Darstellung eines Mikrocontroller- bzw. Mikroprozessor-Systems; 1 a schematic, exemplary representation of a microcontroller or microprocessor system;

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; 2a a schematic data flow diagram illustrating a with the in 1 a microcontroller microprocessor system executable cache load method according to an embodiment of the present invention;

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; 2 B a schematic data flow diagram illustrating a variant of the in 1 shown microcontroller or microprocessor system feasible cache memory charging method, at different clock frequencies used by the multi-master on-chip bus and the external memory device;

3a eine schematische Detail-Darstellung der in 1 gezeigten Schnittstellen-Einrichtung des Mikrocontroller- bzw. Mikroprozessor-Systems, und der daran angeschlossenen Speicher-Einrichtung, zur Veranschaulichung des Adress- und Steuerdaten-Flusses; und 3a a schematic detail representation of in 1 shown interface means of the microcontroller or microprocessor system, and the memory device connected thereto, for the purpose of illustrating the address and control data flow; and

3b eine schematische Detail-Darstellung der in 1 gezeigten Schnittstellen-Einrichtung des Mikrocontroller- bzw. Mikroprozessor-Systems, und der daran angeschlossenen Speicher-Einrichtung, zur Veranschaulichung des Nutz-Daten-Flusses. 3b a schematic detail representation of in 1 shown interface device of the microcontroller or microprocessor system, and the memory device connected thereto, for illustrating the Nutz-data flow.

In 1 ist eine schematische Darstellung eines Mikrocontroller- bzw. Mikroprozessor-Systems 10 gemäß einem Ausführungsbeispiel der Erfindung gezeigt.In 1 is a schematic representation of a microcontroller or microprocessor system 10 shown according to an embodiment of the invention.

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.In the microcontroller or microprocessor system 10 can it be z. B. an 8-bit microcontroller or microprocessor system 10 or any other microcontroller or microprocessor system, e.g. B. a corresponding 16-bit or 32-bit microcontroller or microprocessor 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”).The microcontroller or microprocessor system 10 has one or more, on a corresponding microchip 15 arranged (central) control or computing units 11 on (Central Processing Units (CPUs), or 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.The CPU 11 or the CPUs are - via a multi-master on-chip bus 16 (and possibly one or more other bus systems) - with one or more internal (on the same microchip 15 like the CPU 11 provided) storage facilities 17 connected, and - z. Via the multi-master on-chip bus 16 , and one or more corresponding memory controllers ("memory controller") 12 - with one or more external (on a different microchip, than the CPU 11 provided) storage facilities 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.As a multi-master on-chip bus, in principle, any multi-master on-chip bus can be used, for. As the FPI bus from. Infineon, or the AHB bus 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.The multi-master on-chip bus may have multiple sub-buses, e.g. As a data bus, a control bus, and an address bus, via which corresponding data, control and address signals can be transmitted.

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.The data bus can z. B. have a width of 1 word (32 bits), or z. From 2, 3 or 4 Word (64, 96, or 128 bits), etc.

Die Speicher-Einrichtungen 17, 18 können z. B. als Programmspeichereinrichtung, und/oder Datenspeichereinrichtung („Programmspeicher”, und „Datenspeicher”) fungieren.The storage facilities 17 . 18 can z. B. as a program storage device, and / or data storage device ("program memory", and "data storage") act.

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).The "program memory" contains in particular the sequence of the CPU or CPUs 11 to be processed commands, so the program (and possibly additionally appropriate - of the or the CPUs 11 to be used - data constants).

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).The - z. B. from the memory device 17 , and / or the memory device 18 formed - program memory can, for. B. from an EPROM (erasable PROM or erasable PROM) or EEPROM (Electrically Erasable PROM), in particular a flash EEPROM device (for example, a burst flash EEPROM).

Dadurch kann erreicht werden, dass das Programm auch bei unterbrochener Stromzufuhr auf der entsprechenden Speicher-Einrichtungen gespeichert bleibt.It can thereby be achieved that the program remains stored even if the power supply is interrupted on the corresponding memory devices.

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.For frequently changed programs can - alternatively - z. B. RAMs (RAM = Random Access Memory or read-write memory), in particular DRAMs (DRAM = Dynamic Random Access Memory) are used as program memory, z. B. corresponding SDRAMs (SDRAM = Static Dynamic Random Access Memory), in particular DDR SDRAMs (Double Data Rate SDRAMs or SDRAMs with double data rate), 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.In the above -. B. from the memory device 18 , and / or the memory device 17 formed - "data storage" can z. B. the - in particular of the or the CPUs 11 Variables to be modified when the program is executed.

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.The data store can, for. B. of one or more RAM devices, in particular z. B. a corresponding DRAM device (DRAM = Dynamic Random Access Memory), or SRAM device (SRAM = static random access memory) are formed, 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.The above-mentioned storage facilities 17 and or 18 may have the property that each first access can take a relatively long access time (in particular more than one clock, eg two or three clocks), directly sequentially subsequent accesses (in particular burst accesses) but with significantly less access time (For example, one clock each) can be done.

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.The CPU or CPUs 11 can -. B. via the above-mentioned multi-master on-chip bus 16 (and possibly one or more other bus systems), and one to the bus 16 (or the other bus systems) connected, internal, on the microchip 15 provided interface device 20 - be connected to one (or more) external module (s).

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).Alternatively or additionally, the CPU or the CPUs 11 - z. B. via the above-mentioned multi-master on-chip bus 16 , and a connected bridge 14 (or more such bridges) - to one or more other on-chip buses 19 be connected (eg, one or more other multi-master on-chip buses 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.These can - as in 1 is shown - over one or more more, internal, on the microchip 15 provided interface devices 21 - be connected to one or more other external modules.

Wie aus 1 weiter hervorgeht, kann an den Multi-Master-On-Chip-Bus 16 ein DMA Controller angeschlossen sein (DMA = Direct Memory Access)How out 1 further points out, to the multi-master on-chip bus 16 be connected to a DMA controller (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).In order for the CPU 11 or the CPUs the access times to the program (more precisely: the above-mentioned program commands), and / or the above-mentioned data constants or variables - on average - to keep as short as possible in the present embodiment - and as in 1 shown - one or more so-called cache memory 22a . 22b used (here: two cache memories 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).For the cache memories 22a . 22b These are small, fast buffer memories, which can be B. into the CPU 11 themselves (or can be arranged in their immediate vicinity).

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.).The cache memory 22a . 22b - where z. B. may be so-called. "Critical word first" cache memory - may each include one or more cache lines, the z. B. each have a cache line width of z. B. 8 × 1 word (256 bits), or z. 16 or 32 x 1 Word (512 bits or 1 Gbit), etc. (or, for example, 8 x 2 Word, 16 x 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.).Each date stored in a corresponding cache line (which may each have, for example, a width of, for example, 1 word (or, for example, a width of 2 words each, etc.)) is a corresponding cache line. Line address assigned, z. Example, the address 0, or the address 1, or 2, 3, 4, 5, 6, 7 (or expressed as a corresponding binary number, for example, "000", or "001", or "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.).For example, with a cache line width of e.g. For example, a total of 8 Word at 8 different cache line addresses (eg, the addresses 0, 1, 2, 3, 4, 5, 6, 7) as a date each z. For example, a word may be stored (or, for example, 2 words each, 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”).In the cache 22a can z. For example, the most recently used instructions, or those expected to be used in the future, are stored ("instruction cache") and in the cache memory 22b the most recently used - or the data likely to be used in the future - especially data constants or variables ("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.For most programs, the probability is relatively high that - with a corresponding access - the required commands / data still (or already) in the respective cache memory 22a . 22b (eg in the instruction cache 22a , or in the data cache 22b ) stand.

Dadurch können – im Mittel – geringere Zugriffszeiten erreicht werden, als ohne Cache-Speicher.As a result, on average, lower access times can be achieved than without cache memory.

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.If a respective required command / date is not available - at the corresponding cache line address - in the corresponding cache memory 22a . 22b ("Cache Miss"), this command / this date is from the CPU 11 - By means of a corresponding, via the control bus of the on-chip bus 16 transferred to the appropriate storage facility 17 . 18 directed control signal, z. Block read command ("Data Block Read") - requested.

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”).At the same time or substantially simultaneously z. B. by means of a corresponding, via the address bus of the on-chip bus 16 transmitted address signal, the address of each required command / date in the corresponding memory device 17 . 18 and / or the respective cache line address at which a "cache miss" has occurred ("start address").

Wie oben erläutert, kann der On-Chip-Bus 16 ein Multi-Master-Bus sein.As explained above, the on-chip bus 16 be a multi-master bus.

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.The control of the bus 16 can thus - optionally - from one of several, to the bus 16 affiliated institutions are taken over, for. B. either from the CPU 11 , or from the DMA controller 13 , or one of the above-mentioned other 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.Each possible master has one master at the bus 16 connected - possible - masters uniquely identifying identifier assigned z. For example, a corresponding 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.The CPU 11 assigned identifier, in particular the assigned this master tag ID is from the CPU 11 - also z. B. via the control bus of the on-chip bus 16 - in the above requirement of not in the corresponding cache memory 22a . 22b stored, respectively required command / date z. B. together with or as part of the above block read command ("Data Block Read") (with) transfer.

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.As a read command signal at a "cache miss" can z. For example, as already mentioned above, a so-called "block read command signal" may be used, in particular a block read command signal corresponding to the cache line width.

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.The block read command signal causes not only a single one - with a present "cache miss" in the respective cache memory 22a . 22b not present (a single cache line address ("Start Address") associated) date / command is requested (eg, a single word), but each several (especially at successive addresses in the respective memory device 17 . 18 stored) data / commands, in particular so many data / commands, that the cache line can be completely rewritten with these data / commands.

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.).For example, z. B. at a cache line width of z. B. 8 Words by means of a corresponding "8 Data Block Read" command not only a single - a single cache line address (namely the above "Start Address") associated - Word are requested, but 8 × 1 Word (or z B. with a cache line width of, for example, 16 words by means of a corresponding "16 block data block read" command 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)).In particular, if the case of a "cache miss" not in the respective cache memory 22a existing, required command or the above with a "cache miss" not in the respective cache memory 22b existing, required date is not at the beginning of the corresponding cache line (ie not the first of the above, several cache line addresses, ie, for example, the address "0", or - in binary terms - "000" as "Start Address "Is assigned), can - as in 2a and 2 B illustrates (see the step A shown there) - the above-mentioned block read command from the CPU 11 as a so-called "wrap-around" command (eg in the form of a corresponding "8 Data Block Read Wrap Around" command (or, for example, a "16 Data Block Read Wrap Around" command)) ,

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)).In a "wrap around read command" - starting from the "Start Address" mentioned above - not only the "Start Address", and - until the end of the cache line - the subsequent addresses of the cache line to be assigned ( at successive addresses in the respective memory device 17 . 18 stored) data / commands are requested, but - following this - also those at the beginning of the corresponding cache line (before the "Start Address") lying cache line addresses to be assigned (at corresponding (start) addresses of the respective memory Facility 17 . 18 data / instructions to be stored (eg, in the case of a "cache miss" at the cache line address "2" (or, in binary terms, "010")), and a cache line width of e.g. 8 × 1 word - the data / instructions to be assigned to the cache line addresses 2, 3, 4, 5, 6, 7, 0, 1 (in this same order)).

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).Receives an interface device 12 the respective memory device 17 . 18 (in particular, for example, in the exemplary embodiment explained here, the "memory controller" used above as interface device) 12 the storage facility 18 ) the above-mentioned "Data Block Read Wrap Around" command is - as will be explained in more detail below - by a there provided (first, special) prefetch buffer device 23 Check if the by the "Wrap around read command" mentioned above (for example, the above-mentioned "8 Data Block Read Wrap Around" command) from the CPU 11 requested data / instructions not already - from previous accesses - in the prefetch buffer facility 23 are stored (see, for example, the in 2a and 2 B shown step 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.).If so, the corresponding data / instructions are taken from the prefetch buffer facility 23 read out, and - via the multi-master on-chip bus 16 - to the CPU 11 or the respective cache memory 22a . 22b transferred (see below).

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.If this is not the case, as well as in 2a and 2 B is shown - z. B. under the control of the prefetch buffer device 23 via a corresponding memory device 17 . 18 , and the interface facility 12 (here: the "memory controller" 12 ) connecting bus 25 z. B. transmitted a corresponding, further block read command, in particular z. For example, another "wrap-around" block read command (see, for example, US Pat 2a and 2 B shown step C) (or alternatively, for example, a "continuous" block read command (see below)), together with an address of the above-mentioned respectively required command / date in the corresponding memory device 17 . 18 , and / or the above "Start Address" indicating address 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.).If a "Wrap Around" block read command is used, then this one can be compared to that of the CPU 11 / the respective cache memory 22a . 22b "Wrap around" block read command will indicate a higher number of data / instructions to be read by the command (eg, data / commands to be read by more than 3 or 7) will have a higher number of data / commands to be read, e.g. a doubled or tripled number of data / instructions to be read, 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.).For example - at one of the CPU 11 / the respective cache memory 22a . 22b received "8 Data Block Read Wrap Around" command - a "16 Data Block Read Wrap Around" command (or, for example, a "32 Data Block Read Wrap Around" command, etc.) over the bus 25 to the respective storage device 17 . 18 be transferred (or one of the CPU 11 / the respective cache memory 22a . 22b received "16 Data Block Read Wrap Around" command z. A "32 Data Block Read Wrap Around" command, 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.It can thus be achieved that, in addition to the data / commands directly associated with the above-mentioned cache line, the data / commands associated with the next cache line (or, for example, the two next cache lines) from the corresponding memory -Facility 17 . 18 be read out.

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)).The corresponding data / commands are from the respective memory device 17 . 18 - Starting with the above "Start-Address" or the above memory device address, where the above (in the cache memory 22a . 22b missing) command / the above (cached 22a . 22b missing) date in the appropriate storage facility 17 . 18 is stored - read out, and over the bus 25 to the interface device 12 the respective memory device 17 . 18 (here for example: the "memory controller" 12 ) (for example, a "16 Data Block Read Wrap Around" command, and a Start Address "2" or "010" which are sent to the 16 memory device setup device). Addresses 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 0, 1 stored data / commands (in just this order) (see, for example, the in 2a . 2 B shown step 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)).As mentioned above, instead of the Wrap Around block read command, a Continuous Block Read command is sent over the bus 25 to the appropriate storage facility 17 . 18 transferred, all - starting with the above "Start-Address" or the corresponding, above-mentioned memory device address - in the corresponding memory device 17 . 18 stored data / commands from the corresponding memory device 17 . 18 read out, and over the bus 25 to the interface device 12 the respective memory device 17 . 18 (here for example: the "memory controller" 12 ) (eg, at a "Start Address" of "2" or "010", the memory device addresses 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13, etc. stored data / commands (in just this order)).

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).Once the interface device 12 (eg the "memory controller" 12 ) - in particular the above-mentioned prefetch buffer device 23 - Starting from the above "Start Address" to the "Wrap Around" (relative to that of the CPU 11 to the interface device 12 originally sent "wrap-around" command (eg the above-mentioned "8 Data Block Read Wrap Around" command)) has received the corresponding data / commands (valid) (ie, for example, one from the CPU 11 originally sent "8 Data Block Read Wrap Around" command, and a "Start Address" of "2" or "010" - the data / commands associated with addresses 2, 3, 4, 5, 6, 7) - and not only after receipt of all, as explained above, from the interface device 12 (eg the "memory controller" 12 requested data / commands (eg the data / commands assigned to the addresses 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, etc.), the corresponding data / Commands via the multi-master on-chip bus 16 to the CPU 11 (or the cache memory 22a . 22b ) (see, eg, the in 2a . 2 B shown step 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.In addition to this, instead of - in relation to that of the CPU 11 to the interface device 12 originally sent out "wrap-around" command - additionally requested (possibly the interface device 12 not yet or not yet valid), z. B. the addresses "0" and "1" associated data / commands from the interface device 12 corresponding, any "dummy data" X or "dummy commands" X via the multi-master on-chip bus 16 to the CPU 11 (or the cache memory 22a . 22b ) (in total eg, for one of the CPU 11 originally sent "8 Data Block Read Wrap Around" command, and a "Start Address" of "2" - z. B. sequentially in succession for the address 2 a corresponding one of the memory device 17 . 18 received date / command D2, for the address 3 a corresponding one of the memory device 17 . 18 received date / command D3, for the address 4 a corresponding one of the memory device 17 . 18 received date / command D4, for the address 5 a corresponding one of the memory device 17 . 18 received date / command D5, for the address 6 a corresponding one of the memory device 17 . 18 received date / command D6, for the address 7 a corresponding one of the memory device 17 . 18 received date / command D7, for the address 0, a corresponding dummy date X or a corresponding dummy command X, and for the address 1 - also - a corresponding dummy date X or a corresponding dummy command 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.How out 2a can be shown - if for the multi-master on-chip bus 16 , and the storage facility 16 identical clock frequencies are used - per clock z. For example, a date / command of the above data / commands - via the bus 25 - from the storage facility 18 to the interface device 12 be transmitted, and - also - per clock z. For example, a date / command of the above data / commands - via the multi-master on-chip bus 16 - from the interface device 12 to the CPU 11 or the cache memory 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.Become - like 2 B shows - for the multi-master on-chip bus 16 , and the storage facility 16 different clock frequencies used (eg for the memory device 16 a clock frequency that is only half the clock frequency of the multi-master on-chip bus 16 ) can - based on the clock of the multi-master on-chip bus 16 - z. B. only every other clock in each case a date / command of the above data / commands via the multi-master on-chip bus 16 from the interface device 12 to the CPU 11 or the cache memory 22a . 22b be transmitted.

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.The above, from the CPU 11 or the corresponding cache memory 22a . 22b received data / commands (eg, the above data / commands D2, D3, D4, D5, D6, D7, X, X) are - stored at the respective cache line addresses - in the appropriate cache line.

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”).Here are the -. B. the above addresses "0" and "1" attributable - from the interface device 12 to the CPU 11 or the cache memory 22a . 22b transmit "dummy data" or "dummy commands" in the corresponding cache line by the CPU 11 or the corresponding cache memory 22a . 22b (or a corresponding cache controller) marked as "invalid" (and the other addresses, eg the addresses 2 '', 3 '', 4 '', 5 '', 6 '', 7 '' corresponding to the corresponding cache line, from the interface device 12 to the CPU 11 or the cache memory 22a . 22b transfer data / commands as "valid").

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.In other words, the corresponding cache line of the o. G. "Start Address" to the end of the cache line with valid data / commands described, and from the cache line start to o. G. "Start Address" with invalid data / commands.

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.As soon as the date / command associated with the "Start Address" mentioned above is missing, the "Cache Miss" is triggered by the CPU 11 or the cache memory 22a . 22b received, or in the corresponding cache memory 22a . 22b was saved, the CPU can 11 continue in the above program.

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.As explained above, the interface device 12 (More precisely, the prefetch buffer facility 23 ) due to the above, special to the memory device 17 . 18 sent "Wrap Around" block read command (eg the above-mentioned "16 Data Block Read Wrap Around" command), or the - alternatively - sent "Continuous" block read command more data / Receive commands as - initially - as explained above via the multi-master on-chip bus 16 to the CPU 11 or the cache memory 22a . 22b be transmitted.

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).These data / commands - or advantageously only a part thereof, z. B. the next to the above cache line cache lines (or the respective associated addresses) associated data / commands - are in the prefetch buffer device 23 stored (eg - in the example above - the addresses assigned to the next cache line addresses 8, 9, A, B, C, D, E, F) by the interface device 12 received data / commands).

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).If only a portion of the received data / commands are stored, the remaining received data / commands may be received from the interface device 12 can be discarded (alternatively, the corresponding transaction from the interface device 12 be aborted accordingly early, especially if the last to be stored date / the last command to be stored has been received).

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.Receives the interface device 12 - again (eg a new "cache miss") - from the CPU 11 a corresponding read command, the chance is relatively good that the corresponding data / instructions in the prefetch buffer facility 23 are stored.

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.These can then - without prior access to the storage facility 17 . 18 - directly from the prefetch buffer facility 23 and via the multi-master on-chip bus 16 to the CPU 11 or the respective cache memory 22a . 22b be transferred (and stored in the appropriate cache line).

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.How out 3a and 3b are apparent in the interface device 12 - In addition to the above prefetch buffer facility 23 - One or more further prefetch buffer facilities 24 intended.

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.Is from the interface device 12 - via the above-mentioned multi-master on-chip bus 16 - Receive a corresponding command (eg, the above or any other read command, or eg a corresponding write command, etc.) is first checked from which of the above-mentioned several master the corresponding command was sent ,

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.This can be done by comparing the - as explained above with a corresponding command in each case with transmitted, sent by the respective master - master identifier, in particular the above-mentioned Master Tag ID with in the interface device 12 previously stored identifiers, in particular master tag IDs.

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).Is determined - on the basis of the respective identifier, in particular Master Tag ID - that the respective command (in particular, for example, the above-mentioned "8 Data Block Read Wrap Around" command) from the CPU 11 was sent, takes over the prefetch buffer facility 23 (in whole or in part) control over the data or instruction read / transmit / save process (which may then be performed as described above).

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).On the other hand, it is determined on the basis of the respective identifier, in particular master tag ID, that the respective command (in particular, for example, a corresponding "block read" or "block read wrap around" command) is not received from the CPU 11 but another master of the multi-master on-chip bus 16 was sent, does not inherit the prefetch buffer facility 23 but the above-mentioned further prefetch buffer device 24 (in whole or in part) control over the data or instruction readout / transfer / storage operation (which, for example, is then similar or identical to that described above, or, for example, in any other way, for example, in a conventional manner).

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).In particular, the further prefetch buffer device 24 in reaction z. B. on a received read command, z. For example, a "Block Read" or "Block Read Wrap Around" command, and a corresponding one, over the bus 25 to the storage facility 18 transmitted read command, in particular "block read" or "block read wrap around" command - unlike the above for the prefetch buffer device 23 first wait for the complete or at least for the respective cache line complete transfer of the corresponding data / commands, and these - only then - on the multi-master on-chip bus 16 transferred (ie without the use of - invalid - "dummy data" or dummy commands ", but only using valid, from the memory device 18 received data or commands).

BezugszeichenlisteLIST OF REFERENCE NUMBERS

1010
Mikroprozessor-SystemMicroprocessor system
1111
CPUCPU
1212
Speicher-SteuereinrichtungMemory control means
1313
DMA ControllerDMA controller
1414
Brückebridge
1515
Mikrochipmicrochip
1616
Multi-Master-On-Chip-BusMulti-master on-chip bus
1717
Speicher-EinrichtungMemory means
1818
Speicher-EinrichtungMemory means
1919
On-Chip-BusOn-chip bus
2020
Schnittstellen-EinrichtungInterface means
2121
Schnittstellen-EinrichtungInterface means
22a22a
Cache-SpeicherCache
22b22b
Cache-SpeicherCache
2323
Prefetch-Buffer-EinrichtungPrefetch buffer device
2424
Prefetch-Buffer-EinrichtungPrefetch buffer device
2525
Busbus

Claims (6)

Schnittstellen-Einrichtung (12) mit einer Prefetch-Buffer-Einrichtung (23), die zum einen an eine Speicher-Einrichtung (18) und zum anderen über ein Bus-System (16) an einen Cache-Speicher einer CPU (11) angeschlossen ist, wobei die Prefetch-Buffer-Einrichtung (23) der Schnittstellen-Einrichtung (12) im Fall eines Cache-Miss auf eine Datenanforderung der CPU (11) durch einen ersten Wrap-Around Block-Lese-Befehl hin, bei dem beginnend von einer durch die CPU (11) angeforderten Start-Adresse, die nicht am Anfang einer Cache-Line liegt, nicht nur auch die darauf folgenden zugeordneten Daten bis zum Ende einer betreffenden Cache-Line sondern anschließend auch die Daten, die den übrigen am Anfang der entsprechenden Cache-Line liegenden Cache-Line-Adressen zugeordnet sind, in eben dieser Reihenfolge angefordert werden, ausgebildet ist, ein Verfahren mit den folgenden Schritten durchzuführen: Empfangen des ersten Wrap-Around Block-Lese-Befehls; Überprüfen, ob die durch den ersten Wrap-Around Block-Lese-Befehl angeforderten Daten bereits in der Prefetch-Buffer-Einrichtung (23) abgespeichert sind; falls die Daten abgespeichert sind, Auslesen und Übertragen der Daten an den Cache-Speicher der CPU (11); falls die Daten nicht abgespeichert sind, Übertragen eines weiteren Wrap-Around Block-Lese-Befehls unter Steuerung durch die Prefetch-Buffer-Einrichtung (23) über einen die Speicher-Einrichtung (18) und die Schnittstellen-Einrichtung (12) verbindenden Bus, wobei der weitere Wrap-Around Block-Lese-Befehl im Vergleich zum von der CPU (11) empfangenen ersten Wrap-Around Block-Lese-Befehl eine höhere Anzahl an auszulesenden Daten angibt, sodass zusätzlich zu den der vom Cache-Miss unmittelbar betroffenen Cache-Line zugeordneten Daten auch die der nächstfolgenden Cache-Line zugeordneten Daten aus der Speicher-Einrichtung (18) ausgelesen werden, wobei die Start-Adresse des weiteren Wrap-Around Block-Lese-Befehls dieselbe wie die Start-Adresse des ersten Wrap-Around Block-Lese-Befehls ist, wobei, sobald die Prefetch-Buffer-Einrichtung (23) die Daten entsprechend den Adressen beginnend von der Start-Adresse bis zur Adresse am Cache-Line-Ende gültig erhalten hat, diese Daten an den Cache-Speicher der CPU übertragen und dort als gültig markiert werden, und zusätzlich anstelle der noch nicht vorliegenden durch den ersten Wrap-Around Block-Lese-Befehl angeforderten Daten beliebige Dummy-Daten an den Cache-Speicher der CPU übertragen und dort als ungültig markiert werden, wobei die zugeordneten Daten der nächstfolgenden Cache-Line in der Prefetch-Buffer-Einrichtung (23) abgespeichert werden.Interface device ( 12 ) with a prefetch buffer device ( 23 ), which on the one hand to a memory device ( 18 ) and on the other hand via a bus system ( 16 ) to a cache memory of a CPU ( 11 ), the prefetch buffer device ( 23 ) of the interface device ( 12 ) in the case of a cache miss to a data request from the CPU ( 11 ) by a first wrap-around block read command, starting from one through the CPU ( 11 ) requested start address, which is not at the beginning of a cache line, not only the subsequent associated data to the end of a respective cache line but then also the data, the other at the beginning of the corresponding cache line lying cache Are assigned in this order, is configured to perform a method with the following steps: receiving the first wrap-around block read command; Check that the data requested by the first wrap-around block read command is already in the prefetch buffer ( 23 ) are stored; if the data is stored, reading out and transferring the data to the cache memory of the CPU ( 11 ); if the data is not stored, transferring another wrap-around block read command under control of the prefetch buffer device ( 23 ) via a memory device ( 18 ) and the interface device ( 12 ), with the additional wrap-around block read command compared to the CPU ( 11 received first wrap-around block read command indicating a higher number of data to be read, so that in addition to the data associated with the cache miss directly affected cache line and the data associated with the next cache line from the memory device ( 18 ), wherein the start address of the further wrap-around block read command is the same as the start address of the first wrap-around block read command, and once the prefetch buffer device ( 23 ) has received the data valid according to the addresses starting from the start address to the address at the cache line end, these data are transferred to the cache memory of the CPU and marked there as valid, and in addition instead of not yet available data requested to the first wrap-around block read command, any dummy data is transferred to the cache memory of the CPU where it is marked as invalid, the associated data of the next cache line in the prefetch buffer device ( 23 ) are stored. Schnittstellen-Einrichtung (12) nach Anspruch 1, bei welcher das Bus-System (16) ein Multi-Master-Bus-System ist.Interface device ( 12 ) according to claim 1, wherein the bus system ( 16 ) is a multi-master bus system. Schnittstellen-Einrichtung (12) nach Anspruch 2, welche eine Ermittlungs-Einrichtung aufweist zum Ermitteln, von welchem Master des Multi-Master-Bus-Systems (16) Daten über das Bus-System (16) angefordert werden.Interface device ( 12 ) according to claim 2, comprising a determining means for determining from which master of the multi-master bus system ( 16 ) Data via the bus system ( 16 ). Schnittstellen-Einrichtung (20) nach Anspruch 2 oder 3, wobei das Multi-Master-Bus-System ein On-Chip-Bus ist.Interface device ( 20 ) according to claim 2 or 3, wherein the multi-master bus system is an on-chip bus. Schnittstellen-Einrichtung (12) nach einem der vorhergehenden Ansprüche, welche ein Memory Controller bzw. Teil eines Memory Controllers ist.Interface device ( 12 ) according to one of the preceding claims, which is a memory controller or part of a memory controller. Mikrocontroller- bzw. Mikroprozessor-System (10), mit einer Schnittstellen-Einrichtung (12) nach einem der Ansprüche 1 bis 5.Microcontroller or microprocessor system ( 10 ), with an interface device ( 12 ) according to one of claims 1 to 5.
DE200410046429 2004-09-24 2004-09-24 Interface means Active DE102004046429B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200410046429 DE102004046429B4 (en) 2004-09-24 2004-09-24 Interface means

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200410046429 DE102004046429B4 (en) 2004-09-24 2004-09-24 Interface means

Publications (2)

Publication Number Publication Date
DE102004046429A1 DE102004046429A1 (en) 2006-04-06
DE102004046429B4 true DE102004046429B4 (en) 2014-05-22

Family

ID=36061940

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410046429 Active DE102004046429B4 (en) 2004-09-24 2004-09-24 Interface means

Country Status (1)

Country Link
DE (1) DE102004046429B4 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5131083A (en) * 1989-04-05 1992-07-14 Intel Corporation Method of transferring burst data in a microprocessor
US6021480A (en) * 1996-06-05 2000-02-01 Compaq Computer Corporation Aligning a memory read request with a cache line boundary when the request is for data beginning at a location in the middle of the cache line
US6654872B1 (en) * 2000-01-27 2003-11-25 Ati International Srl Variable length instruction alignment device and method
US20040088490A1 (en) * 2002-11-06 2004-05-06 Subir Ghosh Super predictive fetching system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5131083A (en) * 1989-04-05 1992-07-14 Intel Corporation Method of transferring burst data in a microprocessor
US6021480A (en) * 1996-06-05 2000-02-01 Compaq Computer Corporation Aligning a memory read request with a cache line boundary when the request is for data beginning at a location in the middle of the cache line
US6654872B1 (en) * 2000-01-27 2003-11-25 Ati International Srl Variable length instruction alignment device and method
US20040088490A1 (en) * 2002-11-06 2004-05-06 Subir Ghosh Super predictive fetching system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Klaus-Dieter Thies: 80486 Systemsoftware-Entwicklung, Carl Hanser Verlag München Wien, 1992, S. 145, 191-193 *

Also Published As

Publication number Publication date
DE102004046429A1 (en) 2006-04-06

Similar Documents

Publication Publication Date Title
DE3803759C2 (en)
DE69632450T2 (en) High speed, flexible slave interface for parallel shared bus to local cache buffer
DE10394081B4 (en) Method and device for impressing write data into a cache memory
DE102008062044B4 (en) 1In-memory, in-page directory cache coherency configuration
DE60110227T2 (en) INTEGRATED CIRCUIT WITH FLASH
DE112008000736T5 (en) ECC implementation in components without ECC
DE2847216A1 (en) DATA PROCESSING SYSTEM WITH MULTIPROGRAM OPERATION
DE112007003015T5 (en) Method and apparatus for cache-based error detection and correction in a memory
DE112014000340T5 (en) Prefetching data for a chip with a parent core and a scout core
DE112005000996T5 (en) Mechanism for canceling data entries of a translation buffer in a multiprocessor system
EP0739509B1 (en) Arrangement with master and slave units
DE4114053A1 (en) COMPUTER SYSTEM WITH CACHE MEMORY
DE102004046429B4 (en) Interface means
DE102006009034B3 (en) Bus system method for operating a bus system has transmission channels for linking masters and slaves to each other and linking each master to an arbiter
DE3832758C2 (en) Method for addressing a write-back virtual cache
DE10146516A1 (en) Program controlled unit
DE3200042C2 (en)
DE69729598T2 (en) A method and apparatus for address parity checking for multiple overlapping address areas on a common bus
DE102005040109A1 (en) Semiconductor memory system and semiconductor memory chip
DE4136729C2 (en) Cache controller
EP2203823B1 (en) Method for testing an address bus in a logic module
DE69334046T2 (en) Cache memory device
EP0725338B1 (en) Method and circuit for downloading a boot program in a computer
DE102004045727B3 (en) Microcontroller or microprocessor with interface circuit has demultiplexer, registers in parallel and multiplexer for processing signals including page control bits
DE3903066A1 (en) DATA PROCESSING SYSTEM WITH CACHE STORAGE

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R020 Patent grant now final

Effective date: 20150224