DE102004055013A1 - Computereinrichtung - Google Patents

Computereinrichtung Download PDF

Info

Publication number
DE102004055013A1
DE102004055013A1 DE102004055013A DE102004055013A DE102004055013A1 DE 102004055013 A1 DE102004055013 A1 DE 102004055013A1 DE 102004055013 A DE102004055013 A DE 102004055013A DE 102004055013 A DE102004055013 A DE 102004055013A DE 102004055013 A1 DE102004055013 A1 DE 102004055013A1
Authority
DE
Germany
Prior art keywords
memory
cache
access
system components
computer device
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.)
Withdrawn
Application number
DE102004055013A
Other languages
English (en)
Inventor
Carsten Mielenz
Hans-Georg Gruber
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 DE102004055013A priority Critical patent/DE102004055013A1/de
Priority to GB0523071A priority patent/GB2420199B/en
Priority to CNB2005101373202A priority patent/CN100442251C/zh
Priority to US11/280,937 priority patent/US20060143391A1/en
Publication of DE102004055013A1 publication Critical patent/DE102004055013A1/de
Withdrawn legal-status Critical Current

Links

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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Es wird eine Computereinrichtung mit einer Mehrzahl von Systemkomponenten bereitgestellt, die auf einen gemeinsamen Speicher zugreifen. Für den Speicherzugriff ist ein gemeinsamer Zwischenspeicher vorgesehen, der den Zugriff erhöht und an den Speicher angepasst werden kann.

Description

  • Die Erfindung betrifft eine Computereinrichtung.
  • Mobile elektronische Vorrichtungen, wie beispielsweise PDAs (personal digital assistants) und andere elektronische Vorrichtungen, die mit einem Mikroprozessor ausgerüstet sind, weisen aus Kostengründen typischerweise nur einen kleinen internen Speicher auf.
  • Üblicherweise werden Programminstruktionen und Daten für Anwendungen für diese mobilen Vorrichtungen auf externen Speichervorrichtungen gespeichert, die mit den mobilen Vorrichtungen gekoppelt werden.
  • Mittels solcher externen Speichervorrichtungen kann eine große Datenmenge gespeichert werden, typischerweise zwischen 100 Kilobyte und 256 Megabyte. Jedoch ist die Zugriffszeit für die externen Speichervorrichtungen gegenüber einem internen Speicher sehr groß. Beispielsweise kann die Zugriffszeit für einen externen Speicher, der in einer externen Speichervorrichtung enthalten ist, 80mal größer sein als die Zugriffszeit eines internen Speichers in der mobilen Vorrichtung. Auf externe Speicher, die in externen Speichervorrichtungen angeordnet sind, wird mittels einer in der mobilen Vorrichtung integrierten Steuereinrichtung zugegriffen. Die Steuereinrichtung kann üblicherweise mehrere Master bedienen, wie es im Folgenden mit Bezug auf 1 erläutert wird.
  • 1 zeigt eine bekannte Speicheranordnung 100.
  • Eine mobile Vorrichtung 101 ist mit einem extrenen Speicher 102 gekoppelt.
  • Die mobile Vorrichtung weist mehrere Master 103, 104, 105 auf. Die Master 103, 104, 105 greifen mittels einer Speichersteuereinheit 106 auf einen externen Speicher 102 zu.
  • Die Master können beispielsweise eine zentrale Verarbeitungseinheit (central processing unit, CPU), ein digitaler Signalprozessor (DSP), eine DMA (direct memory access, direkter Speicherzugriff)-Einheit oder Ähnliches sein.
  • Da wie erwähnt die Zugriffszeit auf den externen Speicher 102 sehr hoch sein kann, beispielsweise 100ns, ist in diesem Beispiel jeder Master 103, 104, 105 jeweils mit einem Zwischenspeicher (Cache) 107, 108, 109 ausgestattet. Die Zwischenspeicher 107, 108, 109 weisen typischerweise eine geringe Zugriffszeit auf, beispielsweise 10ns, wodurch durch Zwischenspeicherung ein insgesamt schnellerer Zugriff auf Daten, die in dem externen Speicher 102 gespeichert sind, erreicht wird.
  • Die Zwischenspeicher 107, 108, 109 können jedoch nur schlecht mit dem externen Speicher zusammenarbeiten, da beispielsweise der Bus, mittels welchem der externe Speicher 102 mit der mobilen Vorrichtung 101 gekoppelt ist, inkompatibel (beispielsweise hinsichtlich der Busbreite) mit dem von den Zwischenspeichern 107, 108, 109 zur Kommunikation mit der Speichersteuereinheit 106 verwendeten Bus ist.
  • Aufgrund einer Lizenzvereinbarung könnte einem Hersteller der mobilen Vorrichtung 101 es verboten sein, die Zwischenspeicher 107, 108, 109 an den Bus, mittels welchem der externe Speicher 102 mit der mobilen Vorrichtung 101 gekoppelt ist, anzupassen.
  • Ferner können Probleme auftreten, wenn mehrere der Master 103, 104, 105 auf dieselben Daten im externen Speicher 102 zugreifen und diese gegebenenfalls verändern. In diesem Fall muss ein Master 103, 104, 105, auf Daten, die von einem anderen Master 103, 104, 105 zuvor verändert werden warten, d.h. warten, bis die Daten aus dem jeweiligen Zwischenspeicher 107, 108, 109 des Masters, der die Daten verändert hat, in den externen Speicher 102 zurückgespeichert werden. Dabei geht insbesondere der durch die Verwendung eines Zwischenspeichers 107, 108, 109 erreichte Geschwindigkeitsvorteil hinsichtlich des Zugriffs auf den externen Speicher 102 verloren.
  • Weitere Geschwindigkeitsnachteile entstehen, wenn aus einem Grund ein Cache-Flush durchgeführt wird, d.h. die in einem Zwischenspeicher 107, 108, 109 gespeicherten Daten in den externen Speicher 102 geschrieben werden. Solche Cache-Flushes können beispielsweise von dem Betriebssystem der mobilen Vorrichtung 101, beispielsweise Windows Mobile, veranlasst werden, da für die Dauer des Cache-Flushes nicht anderweitig auf den externen Speicher 102 zugegriffen werden kann.
  • Der Erfindung liegt das Problem zugrunde, die obigen Nachteile auszuräumen und insbesondere eine Anordnung zu schaffen, die einen effizienten Zugriff mehrerer Master auf einen Speicher ermöglicht.
  • Das Problem wird durch die Computereinrichtung mit den Merkmalen gemäß dem unabhängigen Patentanspruch gelöst.
  • Es wird eine Computereinrichtung mit einer Mehrzahl von Systemkomponenten, einem Speicher und einem Zwischenspeicher bereitgestellt, wobei jede der Mehrzahl von Systemkomponenten mit dem Speicher gekoppelt ist und eingerichtet ist zum Lesezugriff und/oder Schreibzugriff auf den Speicher. Der Zwischenspeicher weist jeweils mindestens eine Schnittstelle zu jeder der Mehrzahl von Systemkomponenten auf, wobei jede der Mehrzahl von Systemkomponenten eingerichtet ist, mittels der Schnittstelle auf den Zwischenspeicher zuzugreifen. Der Zwischenspeicher ist mit dem Speicher gekoppelt und ist eingerichtet zum Zwischenspeichern von in dem Speicher gespeicherten oder zu speichernden Daten im Rahmen von Datentransfers zwischen der Mehrzahl von Systemkomponenten und dem Speicher.
  • Anschaulich kann eine der Erfindung zu Grunde liegende Idee darin gesehen werden, dass nicht jede der Systemkomponenten (anschaulich Master des Speichers) mit einem eigenen Zwischenspeicher (Cache) versehen wird, sondern ein gemeinsamer Zwischenspeicher für die Systemkomponenten zum Zugriff auf den Speicher vorgesehen ist. Entsprechend weist der Zwischenspeicher eine Schnittstelle, anders ausgedrückt einen Port, für jede der Systemkomponenten auf.
  • In einer Ausführungsform weist der Zwischenspeicher beispielsweise eine dedizierte Kommunikationsverbindung, das heißt einen dedizierten Computer-Bus, zu jeder der Systemkomponenten auf. Das heißt, dass die Systemkomponenten mit dem Zwischenspeicher nicht über einen gemeinsamen Computer-Bus kommunizieren.
  • In einer anderen Ausführungsform sind die Systemkomponenten mittels eines gemeinsamen Computer-Busses mit dem Zwischenspeicher gekoppelt.
  • Die Systemkomponenten sind Komponenten einer mobilen Vorrichtung, wie beispielsweise einem Laptop, einem PDA (personal digital assisstant) oder einem Mobilfunk-Teilnehmergerät.
  • Entsprechend sind die Systemkomponenten beispielsweise eine zentrale Verarbeitungseinheit (central processing unit, CPU), ein digitaler Signalprozessor oder eine Einheit für direkten Speicherzugriff, d.h. eine DMA (direct memory access)-Einheit.
  • Der Speicher ist beispielsweise ein externer Speicher, der mit der mobilen Vorrichtung gekoppelt ist.
  • Die Verwendung eines gemeinsamen Zwischenspeichers für die Mehrzahl von Systemkomponenten ermöglicht eine kostengünstige Anpassung an den Speicher oder an den Bus, mittels welchem der Zugriff der Systemkomponenten auf den Speicher erfolgt.
  • Beispielsweise kann die Breite der Speicherzeilen des Zwischenspeichers an die Breite des Busses angepasst sein, so dass eine Speicherzeile des Zwischenspeicher mittels eines einzigen Zugriffs auf den Speicher geladen werden kann.
  • Ferner kann der Zwischenspeicher so eingerichtet sein, dass er Speicherzeilen oder Speicherspalten aus dem Speicher lädt, je nachdem, welche Zugriffsart der Speicher besser unterstützt.
  • Anschaulich werden lange Zugriffszeiten am Ursprung, dem Speicher, der langen Zugriffszeiten vermieden, durch Verwendung eines Zwischenspeichers, der speziell an den Speicher (und/oder Bus) angepasst ist.
  • Anschaulich wird eine Optimierung des Zugriffs auf den Speicher durchgeführt, das heißt, der Zwischenspeicher ist so eingerichtet, dass der Zugriff auf den Speicher durch die Mehrzahl von Systemkomponenten hinsichtlich Zugriffszeit und/oder Datendurchsatzrate optimiert erfolgt.
  • Die Kopplung zwischen dem Zwischenspeicher und dem Speicher erfolgt beispielsweise mittels einer Standard-Schnittstelle, das heißt einer üblichen Schnittstelle.
  • Wie erwähnt ist es gemäß dem Stand der Technik nicht ohne Weiteres möglich, dass ein Zwischenspeicher einer Systemkomponente, das heißt der Zwischenspeicher, den eine Systemkomponente aufweist (beispielsweise ein Level 1-Cache einer CPU), an den Speicher und/oder an den Bus angepasst wird. Beispielsweise kann dies eine Lizenzvereinbarung verbieten oder die Anpassung sehr aufwändig oder sogar unmöglich sein. Ferner wäre für die Anpassung der Zwischenspeicher aller Systemkomponenten ein erheblicher (Kosten-) aufwand erforderlich.
  • Bei Verwendung der bereitgestellten Computereinrichtung tritt ferner das oben geschilderte Problem nicht auf, das entsteht, wenn eine der Systemkomponenten Daten verändert und eine andere Systemkomponente darauf warten muss, bis die veränderten Daten in den Speicher zurückgeschrieben werden, wofür eine große Anzahl von Taktzyklen erforderlich ist. Bei der bereitgestellten Computereinrichtung verändert eine Systemkomponente die Daten in dem (gemeinsamen) Zwischenspeicher und eine andere Systemkomponente kann auf die veränderten Daten unmittelbar zugreifen, ohne dass ein Zugriff auf den Speicher durchgeführt werden muss. Dies führt zu einem erheblichen Geschwindigkeitsgewinn, anschaulich wird der parallele Zugriff der Systemkomponenten auf die im Speicher gespeicherten Daten verbessert.
  • Bevorzugte Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
  • Es ist bevorzugt, dass die Computereinrichtung ferner eine Speicherzugriffseinheit aufweist, die zwischen die Mehrzahl von Systemkomponenten und den Speicher geschaltet ist und mittels welcher die Lesezugriffe und/oder Speicherzugriffe der Mehrzahl von Systemkomponenten durchgeführt werden.
  • Vorzugsweise wird der Zwischenspeicher von der Speicherzugriffseinheit verwaltet.
  • Anschaulich ist der Zwischenspeicher vorzugsweise ein Teil der Speicherzugriffseinheit.
  • Es ist ferner bevorzugt, dass die Mehrzahl von Systemkomponenten jeweils mittels eines Computer-Busses mit dem Speicher gekoppelt sind und dass der Zwischenspeicher an diese Computer-Busse angepasst ist.
  • Beispielsweise kann der Zwischenspeicher, beziehungsweise eine Steuerungseinheit des Zwischenspeichers, etwa die Speicherzugriffseinheit, mit den Arbitrierungseinheiten (Bus-Arbiter) der Computer-Busse gekoppelt sein und Informationen von diesen enthalten, beispielsweise ob die jeweilige Systemkomponente auf den jeweiligen Computer-Bus aktuell zugreift. Auf diese Weise ist es möglich, dass dem Zwischenspeicher bzw. der Steuerungseinheit stets bekannt ist, welche Systemkomponenten auf den Zwischenspeicher zugreift und/oder auf welchen Bereich des Zwischenspeichers die Systemkomponenten zugreifen (wollen). Somit lassen sich Konflikte, die bei Zugriff mehrerer Systemkompontenten entstehen, leicht auflösen.
  • Es ist ferner bevorzugt, dass der Zwischenspeicher an den Speicher angepasst ist.
  • Vorzugsweise ist der Zwischenspeicher an die Datenwortbreite des Speichers angepasst.
  • Der Zwischenspeicher kann in Hinblick darauf an den Speicher angepasst sein, dass die Speicherzeilenbreite des Zwischenspeicher so groß (oder auch größer) wie die Speicherzeilenbreite des Speichers ist. Somit kann eine komplette Speicherzeile (oder auch mehrere komplette Speicherzeilen) aus dem externen Speichers in eine Speicherzeile des Zwischenspeichers geladen werden.
  • Ferner kann der Zwischenspeicher in Hinblick auf die Refresh-Rate an den Speicher angepasst sein.
  • Der Zwischenspeicher ist vorzugsweise ein n-Set-assoziativer Cache, ein vollassoziativer Cache oder ein Direct-Mapped-Cache.
  • Der Speicher ist vorzugsweise ein SRAM (static dynamic access memory), ein SDRAM (synchronic dynamic random access memory), ein EPROM (erasable programmable read only memory) oder ein EEPROM (electrically erasable programmable read only memory).
  • In einer Ausführungsform ist der Speicher gegenüber den Systemkomponenten und dem Zwischenspeicher extern. Das heißt, die Systemkomponenten und der Zwischenspeicher (der somit intern ist) befinden sich in einem Gehäuse, das mit einem anderen Gehäuse gekoppelt ist, beispielsweise mittels einer Steckverbindung gemäß USB (Universal Serial Bus), das den Speicher enthält. Der Speicher ist somit anschaulich eine selbständige Speichereinheit.
  • Es ist ferner bevorzugt, dass der Zwischenspeicher an das Betriebssystem der Computereinrichtung angepasst ist.
  • Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Weiteren näher erläutert.
  • 1 zeigt eine bekannte Speicheranordnung.
  • 2 zeigt eine Speicheranordnung gemäß einem Ausführungsbeispiel der Erfindung.
  • 3 zeigt eine Speicheranordnung gemäß einem weiteren Ausführungsbeispiel der Erfindung.
  • 2 zeigt eine Speicheranordnung 200 gemäß einem Ausführungsbeispiel der Erfindung.
  • Eine mobile Vorrichtung 201 weist einen ersten Master 202, einen zweiten Master 203 und einen dritten Master 204 auf.
  • Die mobile Vorrichtung 201 ist gemäß diesem Ausführungsbeispiel der Erfindung ein PDA (personal digital assistant), ein tragbarer Computer (Laptop) oder ein Mobilfunk-Teilnehmergerät. Die Master 202, 203, 204 sind Systemkomponenten der mobilen Vorrichtung 201, gemäß diesem Ausführungsbeispiel der Erfindung eine zentrale Verarbeitungseinheit (central processing unit, CPU), ein digitaler Signalprozessor oder eine Einheit für direkten Speicherzugriff, d.h. eine DMR (direct memory access)-Einheit.
  • Die mobile Vorrichtung 201 weist ferner eine Speichersteuereinheit (memory controller) 205 auf. Die Speichersteuereinheit 205 ist mit einem gegenüber der mobilen Vorrichtung 201 externen Speicher 208 mittels eines Datenbusses 206 gekoppelt (ein entsprechender Steuerbus ist nicht gezeigt).
  • Die Speichersteuereinheit 205 weist einen Zwischenspeicher (Cache) 207 auf. Mittels der Speichersteuereinheit 205 können die Master 202, 203, 204 auf den Speicher 208 zugreifen, d.h. Daten in dem Speicher 208 speichern oder Daten aus dem Speicher 208 lesen.
  • Der externe Speicher 208 ist beispielsweise ein SRAM (static dynamic access memory), ein SDRAM (synchronic dynamic random access memory), ein EPROM (erasable programmable read only memory) oder ein EEPROM (electrically erasable programmable read only memory). Entsprechend der Ausgestaltung des Speichers 202 können die Master 202, 203, 204 gegebenenfalls nur Daten aus dem Speicher 208 lesen und nicht Daten in dem Speicher 208 speichern.
  • Die Speichersteuereinheit 205 ist entsprechend dem Speicher 208 ausgestaltet, und ist dementsprechend beispielsweise eine Zugriffseinheit für einen SDRAM-Speicher oder ein Flash-Controller.
  • Der externe Speicher 208 und die Speichersteuereinheit 205 sind entsprechend der jeweiligen Ausgestaltung miteinander gekoppelt, beispielsweise mittels eines Kabels, das die Datenübertragung von einem SDRAM und an ein SDRAM ermöglicht, gemäß USB (Universal Serial Bus) oder anderer Schnittstellen-Standards.
  • Mittels des Zwischenspeichers 207 werden die Zugriffszeiten für den Zugriff der Master 202, 203, 204 auf den Speicher 208 verringert. Beispielsweise werden Daten, die von den ersten Master 202 aus dem Speicher 208 gelesen werden, in dem Zwischenspeicher 207 abgelegt, sodass bei einem erneuten Lesen der Daten durch einen der Master 202, 203, 204 die Zugriffszeit auf die Daten erheblich verringert ist.
  • Der Schreibzugriff der Master 202, 203, 204 auf in dem Zwischenspeicher 207 gespeicherte Daten wird beispielsweise im Write-Back-Verfahren oder im Write-Through-Verfahren durchgeführt. Der Zwischenspeicher 207 ist ein vollassoziativer Cache, ein Direct-Mapped-Cache oder ein N-Set-assoziativer Cache.
  • Die Master 202, 203, 204 sind beispielsweise gemäß einer System-on-Chip (SoC)-Architektur ausgestaltet. In dem Speicher 208 können beliebige Daten und Programminstruktionen gespeichert werden. Beispielsweise enthält der Speicher 208 die Programminstruktionen einer Applikation und Daten, die im Rahmen der Applikation, die von einem der Master 202, 203, 204 ausgeführt wird, verarbeitet werden.
  • Der erste Master 202 greift mittels eines ersten Ports 209 des Zwischenspeichers 207 auf den Zwischenspeicher 207 zu. Der zweite Master 203 greift mittels eines zweiten Ports 210 auf den Zwischenspeicher 207 zu und der dritte Master 204 greift mittels eines dritten Ports 211 auf den Zwischenspeicher 207 zu. Der Zwischenspeicher 207 weist somit mehrere Ports 209, 210, 211 auf.
  • In einer anderen Ausführungsform greifen die Master 202, 203, 204 mittels eines gemeinsamen Computer-Busses auf den Zwischenspeicher 207 zu, der eine Schittstelle zu dem gemeinsamen Computer-Bus aufweist.
  • Der Zwischenspeicher 207 ist in Hinblick auf den Speicher 208 optimiert eingerichtet, das heißt an den Speicher 208 angepasst. Beispielsweise werden entsprechend der Ausgestaltung des Speichers 208 Speicherzeilen des Speichers 208 oder Speicherspalten des Speichers 208 in den Zwischenspeicher 207 zwischengespeichert. Außerdem ist die Größe der Datenblöcke, die in dem Zwischenspeicher 207 bei einem Lesezugriff eines der Master 202, 203, 204 auf den Speicher 208 in den Zwischenspeicher 207 gespeichert werden, an den Speicher 208 angepasst. Weist der Speicher 208 beispielsweise eine Speicherzellenbreite von 4 Datenwörtern auf, so könnte entsprechend bei einem Zugriff eines der Master 202, 203, 204 auf eine Speicherzeile in dem Speicher 208 die gesamte Speicherzeile, in der das (Daten-)Wort enthalten ist, in dem Zwischenspeicher 207 gespeichert werden.
  • Ferner kann der Zwischenspeicher 207 in Hinblick auf den Computerbus 206 optimiert sein, das heißt an den Computerbus 206 angepasst sein. Beträgt die Busbreite des Busses 206 beispielsweise zwei Datenworte, so können bei einem Lesezugriff eines der Master 202, 203, 204 auf ein Datenwort, dass im Speicher 208 gespeichert ist, genau zwei Datenworte, beispielsweise das Datenwort, auf das zugegriffen wird, und das in dem Speicher 208 benachbarte Datenwort mittels des Busses 206 in den Zwischenspeicher 207 übertragen werden.
  • Ferner kann der Zwischenspeicher 207 im Hinblick auf das Betriebssystem der mobilen Vorrichtung 201 optimiert eingerichtet sein und die Speichersteuereinheit 205 mit dem Betriebssystem abgestimmt sein, sodass beispielsweise Flush- Prozesse, d.h. Prozesse, bei denen der gesamte. Inhalt des Zwischenspeichers 207 in den Speicher 208 zurückgeschrieben wird, und Stall-Prozesse, d.h. Prozesse, bei denen eine gegenseitige Blockierung beispielsweise der Master 202, 203, 204 auftritt, vermieden werden. Die Speichersteuereinheit 205 und der Zwischenspeicher 207 können beispielsweise an die Besonderheiten eines offenen Betriebssystems, wie beispielsweise Linux, angepasst sein.
  • Beispielsweise könnte das Betriebssystem die Besonderheit aufweisen, dass es bei bestimmten Gelegenheiten veranlasst, dass der Inhalt des Zwischenspeichers oder ein Teil des Zwischenspeichers in den externen Speicher zurückgeschrieben wird und dass dieses Zurückschreiben nach einem bestimmten Muster, das heißt beispielsweise gemäß einer bestimmten Reihenfolge der Speicherzellen, erfolgt. Die Speichersteuereinheit 205 könnte dieses Zurückschreiben nach dem Muster, das spezifisch für das Betriebssystem ist, unterstützen, so dass das Zurückschreiben effizient durchgeführt werden kann.
  • Ferner ist die Speichersteuereinheit 205 eingerichtet, die Kohärenz des Zwischenspeichers 207 (Cache-Coherency) zu gewährleisten.
  • Die Speichersteuereinheit 205 kann ferner so eingerichtet sein bzw. so gesteuert werden, dass die Datendurchsatzrate im Rahmen einer Applikation, die auf der mobilen Vorrichtung 204 ausgeführt wird, optimiert wird. Ist das Betriebssystem der mobilen Vorrichtung 201 ein Echtzeit-Betriebssystem (real time operating system, RTOS) kann die Speichersteuereinheit 205 so eingerichtet sein, dass sie die Echtzeitfähigkeit des Betriebssystems auch bei Speicherzugriffen auf den Speicher 208 erhält. Ferner kann die Speichersteuereinheit 205 Treiberaufgaben übernehmen und beispielsweise Speicherzugriffsbefehle der Master 202, 203, 204 in entsprechende Instruktionen an den Speicher 208 umwandeln.
  • Anschaulich übernimmt die Speichersteuereinheit 205 eine Vielzahl der Aufgaben, die den Zugriff auf den Speicher 208 im Rahmen einer Applikation betreffen.
  • 3 zeigt eine Speicheranordnung 300 gemäß einem weiteren Ausführungsbeispiel der Erfindung.
  • Analog zu 2 ist eine Speichersteuereinheit 301, die beispielsweise in einer mobilen Vorrichtung (nicht gezeigt) angeordnet ist, mit einem gegenüber der mobilen Vorrichtung externen Speicher 302 gekoppelt.
  • Analog zu oben weist die Speichersteuereinrichtung einen Zwischenspeicher 303 auf. Der Zwischenspeicher 303 weist eine Mehrzahl von Ports 304 auf, mittels welcher der Zwischenspeicher mit einer Mehrzahl von Mastern 306, 307 gekoppelt werden kann. Im Unterschied zu der mit Bezug auf 2 beschriebenen Ausführungsform weist die Speichersteuereinheit einen weiteren Port 305 auf, der anschaulich gesprochen direkt mit dem Speicher 302 gekoppelt ist, d.h. nicht mittels des Zwischenspeichers 303 mit dem Speicher 302 gekoppelt ist.
  • Der weitere Port 305 kann beispielsweise verwendet werden, um einen der Master 307 mit dem Speicher 302 zu koppeln, ohne den Cache 303 zu verwenden. Dies kann beispielsweise gewünscht sein, wenn der Master 307 über einen internen Cache verfügt oder eine geringe Zugriffszeit des Masters 307 auf den Speicher 302 nicht erforderlich ist.
  • In einer anderen Ausführungsform verfügen die Master 306, 307, die mittels der Ports 304 mit der Speichersteuereinheit 301 gekoppelt sind, zusätzlich über eigene Zwischenspeicher. Beispielsweise könnte ein Master 306, 307 ein Mikroprozessor sein, der über einen Level 1-Cache verfügt.
  • Im Weiteren wird an einem Beispiels erläutert, wie die Zugriffszeit für einen Speicherzugriff auf einen Speicher durch Verwendung einer Speichersteuereinheit gemäß 2 oder 3 reduziert werden kann.
  • Ohne die Verwendung eines Zwischenspeichers gilt für die Zugriffszeit, ausgedrückt in Taktzyklen, für einen Speicherzugriff die einfache Formel per(ohne Cache) = ExternalMemoryCycleswobei ExternalMemoryCycles die Anzahl der Taktzyklen bezeichnet, die für einen Speicherzugriff auf den Speicher erforderlich sind.
  • Bei Verwendung einer Speichersteuereinheit, die wie beispielsweise in 2 dargestellt ist, einen Zwischenspeicher aufweist, gilt für die effektive Zugriffszeit bei einem Speicherzugriff auf den Speicher die Formel: per(mit Cache) = Hitrate·1 Taktzyklus + (1 – Hitrate)· ExternalMemoryCycleswobei ExternalMemoryCycles wie oben die für einen Speicherzugriff auf den Speicher erforderliche Anzahl von Taktzyklen bezeichnet und Hitrate die Wahrscheinlichkeit bezeichnet, mit der Daten, auf die zugegriffen wird, in dem Zwischenspeicher gespeichert sind. Dabei wird angenommen dass die Zugriffszeit für einen Zugriff auf den Zwischenspeicher einen Taktzyklus beträgt, was bei einem geeigneten Zwischenspeicher realistisch ist.
  • Wird beispielsweise eine realistische Hitrate von 90% angenommen und ExternalMemoryCycles = 50 Taktzyklen vorausgesetzt, so ergeben sich folgende Werte: per(ohne Cache) = 50 Taktzyklen per(mit Cache) = 0,9·1 Taktzyklen + (1 – 0,9)·50 Taktzyklen = 5,9 Taktzyklen
  • 100
    Speicheranordnung
    101
    mobile Vorrichtung
    102
    externer Speicher
    103–105
    Master
    106
    Speichersteuereinheit
    200
    Speicheranordnung
    201
    mobile Vorrichtung
    202–204
    Master
    205
    Speichersteuereinheit
    207
    Zwischenspeicher
    208
    externer Speicher
    209–211
    Ports
    300
    Speicheranordnung
    301
    Speichersteuereinheit
    302
    externer Speicher
    303
    Zwischenspeicher
    304, 305
    Ports
    306, 307
    Master

Claims (9)

  1. Computereinrichtung mit einer Mehrzahl von Systemkomponenten, einem Speicher und einem Zwischenspeicher, wobei – jede der Mehrzahl von Systemkomponenten mit dem Speicher gekoppelt ist und eingerichtet ist zum Lesezugriff und/oder Schreibzugriff auf den Speicher; – der Zwischenspeicher jeweils mindestens eine Schnittstelle zu jeder der Mehrzahl von Systemkomponenten aufweist; – jede der Mehrzahl von Systemkomponenten eingerichtet ist, mittels der Schnittstelle auf den Zwischenspeicher zuzugreifen; und – der Zwischenspeicher mit dem Speicher gekoppelt ist und eingerichtet ist zum Zwischenspeichern von in dem Speicher gespeicherten oder zu speichernden Daten im Rahmen von Datentransfers zwischen der Mehrzahl von Systemkomponenten und dem Speicher;
  2. Computereinrichtung gemäß Anspruch 1, ferner aufweisend eine Speicherzugriffseinheit, die zwischen die Mehrzahl von Systemkomponenten und den Speicher geschaltet ist und mittels welcher die Lesezugriffe und/oder Speicherzugriffe der Mehrzahl von Systemkomponenten durchgeführt werden.
  3. Computereinrichtung gemäß Anspruch 1 oder 2, wobei der Zwischenspeicher von der Speicherzugriffseinheit verwaltet wird.
  4. Computereinrichtung gemäß einem der Ansprüche 1 bis 3, wobei die Mehrzahl von Systemkomponenten jeweils mittels eines Computer-Busses mit dem Speicher gekoppelt sind und wobei der Zwischenspeicher an die Computer-Busse angepasst ist.
  5. Computereinrichtung gemäß einem der Ansprüche 1 bis 4, wobei der Zwischenspeicher an den Speicher angepasst ist.
  6. Computereinrichtung gemäß Anspruch 5, wobei der Zwischenspeicher an die Datenwortbreite des Speichers angepasst ist.
  7. Computereinrichtung gemäß einem der Ansprüche 1 bis 6, wobei der Zwischenspeicher ein n-Set-assoziativer Cache, ein vollassoziativer Cache oder ein Direct-Mapped-Cache ist.
  8. Computereinrichtung gemäß einem der Ansprüche 1 bis 7, wobei der Speicher ein SDRAM, ein SRAM, ein EPROM oder ein EEPROM ist.
  9. Computereinrichtung gemäß einem der Ansprüche 1 bis 8, wobei der Zwischenspeicher an das Betriebssystem der Computereinrichtung angepasst ist.
DE102004055013A 2004-11-15 2004-11-15 Computereinrichtung Withdrawn DE102004055013A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102004055013A DE102004055013A1 (de) 2004-11-15 2004-11-15 Computereinrichtung
GB0523071A GB2420199B (en) 2004-11-15 2005-11-11 Shared cache for a memory on a computing device
CNB2005101373202A CN100442251C (zh) 2004-11-15 2005-11-15 计算机设备
US11/280,937 US20060143391A1 (en) 2004-11-15 2005-11-15 Computer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004055013A DE102004055013A1 (de) 2004-11-15 2004-11-15 Computereinrichtung

Publications (1)

Publication Number Publication Date
DE102004055013A1 true DE102004055013A1 (de) 2006-05-24

Family

ID=35516805

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004055013A Withdrawn DE102004055013A1 (de) 2004-11-15 2004-11-15 Computereinrichtung

Country Status (4)

Country Link
US (1) US20060143391A1 (de)
CN (1) CN100442251C (de)
DE (1) DE102004055013A1 (de)
GB (1) GB2420199B (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130205089A1 (en) * 2012-02-08 2013-08-08 Mediatek Singapore Pte. Ltd. Cache Device and Methods Thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405322B1 (en) * 1999-04-13 2002-06-11 Hewlett-Packard Company System and method for recovery from address errors

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54128634A (en) * 1978-03-30 1979-10-05 Toshiba Corp Cash memory control system
US5490261A (en) * 1991-04-03 1996-02-06 International Business Machines Corporation Interlock for controlling processor ownership of pipelined data for a store in cache
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
US5590309A (en) * 1994-04-01 1996-12-31 International Business Machines Corporation Storage protection cache and backing storage having system control element data cache pipeline and storage protection bits in a stack array with a stack directory for the stack array
US5752264A (en) * 1995-03-31 1998-05-12 International Business Machines Corporation Computer architecture incorporating processor clusters and hierarchical cache memories
US5778422A (en) * 1996-04-04 1998-07-07 International Business Machines Corporation Data processing system memory controller that selectively caches data associated with write requests
US6006309A (en) * 1996-12-16 1999-12-21 Bull Hn Information Systems Inc. Information block transfer management in a multiprocessor computer system employing private caches for individual center processor units and a shared cache
US6055605A (en) * 1997-10-24 2000-04-25 Compaq Computer Corporation Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
US6651145B1 (en) * 2000-09-29 2003-11-18 Intel Corporation Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
US6691205B2 (en) * 2001-03-05 2004-02-10 M-Systems Flash Disk Pioneers Ltd. Method for using RAM buffers with simultaneous accesses in flash based storage systems
US6785774B2 (en) * 2001-10-16 2004-08-31 International Business Machines Corporation High performance symmetric multiprocessing systems via super-coherent data mechanisms
US6751129B1 (en) * 2002-05-21 2004-06-15 Sandisk Corporation Efficient read, write methods for multi-state memory
US20040111563A1 (en) * 2002-12-10 2004-06-10 Edirisooriya Samantha J. Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
US8176250B2 (en) * 2003-08-29 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for testing a memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405322B1 (en) * 1999-04-13 2002-06-11 Hewlett-Packard Company System and method for recovery from address errors

Also Published As

Publication number Publication date
GB2420199B (en) 2007-02-28
GB2420199A (en) 2006-05-17
CN100442251C (zh) 2008-12-10
US20060143391A1 (en) 2006-06-29
GB0523071D0 (en) 2005-12-21
CN1783036A (zh) 2006-06-07

Similar Documents

Publication Publication Date Title
DE102011076894B9 (de) Persistenter Speicher für einen Hauptspeicher eines Prozessors
DE102011076895B4 (de) Cachekohärenzprotokoll für persistente Speicher
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE102004009497B3 (de) Chipintegriertes Mehrprozessorsystem und Verfahren zur Kommunikation zwischen mehreren Prozessoren eines chipintegrierten Mehrprozessorsystems
DE102008062044B4 (de) 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE3587960T2 (de) Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät.
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE112011103433B4 (de) Verfahren, System und Programm zum Steuern von Cache-Kohärenz
DE102019105879A1 (de) Verwaltung von kohärenten Verknüpfungen und Mehr-Ebenen-Speicher
DE102007032307A1 (de) Dedizierter Mechanismus zur Seitenabbildung in einer GPU
DE112009000836T5 (de) Adaptive Cache-Organisation für Chip-Multiprozessoren
DE112009000373T5 (de) Technik, um Information zwischen unterschiedlichen Kohärenz-Domains von Caches zu nutzen
DE102007018033A1 (de) Kohärenzverzeichnisaktualisierung
DE102014103056A1 (de) Ein-Chip-System und Verfahren des Betreibens desselben
DE102007006190A1 (de) Techniken zur Verwendung von Speicher-Attributen
DE112012005210T5 (de) Bereitstellen eines gemeinsamen Caching-Agenten für ein Kern- und integriertes Ein-/Ausgabe-(IO)-Modul
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE102014100031A1 (de) Ein-Chip-System mit Speicherverwaltungseinheit und Speicheradressen-Übersetzungsverfahren hiervon
DE102006035870A1 (de) Halbleiterspeicher mit gemeinsam genutzter Schnittstelle
DE202010018020U1 (de) Opportunistische Verbesserung einer MMIO-Anfrageabwicklung aufgrund eines Zielberichts von Raumerfordernissen
DE102006035869A1 (de) Dualtor-Halbleiterspeicher
DE3888438T2 (de) Cachespeichersteuerungsvorrichtung für eine Datenverarbeitungsanordnung mit virtuellem Speicher.
DE102019111219A1 (de) Bereitstellen von Toter-Block-Vorhersage zur Bestimmung, ob Daten in Cache-Vorrichtungen zwischenzuspeichern sind.
DE102015112598A1 (de) Halbleitervorrichtung, Halbleitersystem und Ein-Chip-System

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee