PatentDe  


Dokumentenidentifikation DE69715491T2 05.06.2003
EP-Veröffentlichungsnummer 0797148
Titel Cache-Struktur mit mehreren Modi
Anmelder Sharp K.K., Osaka, JP;
Sharp Microeletronics Technology, Inc., Camas, Wash., US
Erfinder Spaderna, Dieter, Portland, Oregon 97229, US
Vertreter Müller - Hoffmann & Partner Patentanwälte, 81667 München
DE-Aktenzeichen 69715491
Vertragsstaaten DE, FR, GB
Sprache des Dokument EN
EP-Anmeldetag 03.03.1997
EP-Aktenzeichen 973013808
EP-Offenlegungsdatum 24.09.1997
EP date of grant 18.09.2002
Veröffentlichungstag im Patentblatt 05.06.2003
IPC-Hauptklasse G06F 12/08

Beschreibung[de]
Gebiet der Erfindung

Die Erfindung betrifft integrierte Schaltungen, insbesondere eine integrierte Schaltung mit einer Risk-CPU (Reduced Instruction Set Computer Central Processing Unit), die zur Verwendung in tragbaren Vorrichtungen vorgesehen ist, mit einem auf einem Chip vorhandenen Speicherblock, der als Cache oder als RAM verwendet werden kann.

Hintergrund der Erfindung

Zu tragbaren Vorrichtungen gehören elektronische Geräte, wie Manager für persönliche Information, Zellentelefone, Digitalkameras, Taschenspiele, Strichcodescanner, medizinische Geräte, elektronische Geräte sowie Navigationssysteme, insbesondere Satellitennavigationssysteme mit globaler Positionierung.

Um kommerziell erfolgreich zu sein, benötigen tragbare Vorrichtungen integrierte Schaltungen, die billig sind, über niedrigen Energieverbrauch verfügen, um für lange Batterielebensdauer zu sorgen, und die hohen Funktionsstandards genügen, um zu gewährleisten, dass ihr Ausgangssignal genau und nutzbar ist. Außerdem muss die Schnittstelle zwischen der integrierten Schaltung und dem Rest der tragbaren Vorrichtung vom Plug-und-Play-Design sein, so dass ein einzelner Typ einer integrierten Schaltung bei einer Anzahl tragbarer Vorrichtungen verwendet werden kann. Ein Teil dieser Flexibilität besteht darin, dass der Designer einer tragbaren Vorrichtung dazu in der Lage sein muss, auf einfache Weise den IC als Standardkomponente, die keinerlei interne Modifizierung erfordert, um bei einer Anzahl von Anwendungen verwendet werden zu können, in die Vorrichtung einbauen kann.

Die "Rechenleistung", wie sie sich bei CPUs mit integrierter Schaltung, wie bei den Chips der Serien Intel 30·86 und Pentium(R) sowie den Chips der Serie Motorola 68000 findet, hat in den letzten wenigen Jahren beträchtlich zugenommen. Gleichzeitig hat die Größe derartiger Chips beträchtlich zugenommen, was auch für ihre Leistungserfordernisse gilt. Derartige Chips sind als CISCs (Conventional Instruction Set Computers) konzipiert, und es kam dazu, dass sie beträchtliche Blöcke an zugeordnetem Direktzugriffsspeicher (RAM) benötigen, während die Anwendungen, die dazu geschrieben wurden, auf diese Chips enthaltenden Computern zu laufen, zunehmen, und zwar anscheinend ohne Grenze, weswegen riesige Mengen an Festplattenplatz erforderlich sind. Derartige CISC-Bauteile können wegen ihrer Leistungserfordernisse und ihrer Größe nicht leicht bei tragbaren Vorrichtungen verwendet werden.

RISCs (Reduced Instruction Set Computers) wurden ursprünglich bei hochwertigen Grafikanwendungen und in CAE/CAD-Workstations verwendet. Die RISC- Architektur ermöglicht es jedoch einem IC, dass er über deutlich kleinere Chipgröße verfügt, da wegen des kleineren Befehlssatzes der RISC-Technologie nur wenige Transistoren ausgebildet werden müssen, was zu einfacheren Designs führt, die demgemäß weniger Zeit zur Fertigstellung und Fehlerbeseitigung benötigen. Außerdem verfügen kleinere Chips über kürzere Signalpfade, was bedeutet, dass jeder Befehlszyklus von kürzerer Dauer ist. Die relative Größe einer RISC-CPU ist deutlich kleiner als die einer CISC-CPU, und z. B. hat der Chip Intel 386 SL eine Größe von ungefähr 170 mm², während ein RISC-Chip mit ähnlichen Rechenfähigkeiten geringfügig größer als 5 mm² ist.

Die geringe Größe von CPUs auf RISC-Basis macht die RISC-Architektur für "System-on-Chip"(SOC = System auf dem Chip)-Anwendungen, bei denen sich die CPU und eine Anzahl anderer Strukturen auf einem einzelnen Chip befinden, ideal. Eine derartige SOC-Architektur kann zu einem Chip führen, der immer noch beträchtlich kleiner als eine CISC-CPU ist, jedoch alle Rechen- und Steuerstrukturen in einer einzelnen integrierten Schaltung enthält. Eine SOC-Architektur beinhaltet im Allgemeinen eine RISC-CPU und eine Art eines lokalen RAM und/oder eines Datencaches. Außerdem kann der Chip interne und externe Buscontroller, verschiedene Arten von Kommunikationsports, einen Interruptcontroller sowie einen Impulsbreitenmodulator, verschiedene Konfigurationsregister, verschiedene Timer/Zähler-Strukturen und eine Art von Ausgabecontroller, wie einen LCD-Controller, enthalten. Eine derartige Struktur kann als 32-Bit-Architektur konfiguriert sein, wobei zugehörige Peripherieeinrichtungen auf dem Chip integriert sind, wobei es die Integration dem Designer einer tragbaren Vorrichtung ermöglicht, den Chip einzubauen, um den Entwicklungszyklus zu verkürzen und die Einführung des Produkts am Markt zu beschleunigen. Die Chipstruktur kann einen externen 16- Bit-Datenbus mit integriertem, programmierbarem Buscontroller aufweisen, der einen 8- oder 16-Bit-SRAM, DRAM, EPROM und/oder Speicherbauteile unterstützen kann, die keine zusätzlichen Puffer benötigen, um mit der integrierten Schaltung arbeiten zu können. Der Chip kann entweder mit 3,3 V oder 5 V betrieben werden, was zwischen 100 mW bzw. 350 mW benötigt.

Durch Kombinieren einer Anzahl von Peripherieeinrichtungen auf dem Chip und durch Anbringen eines internen Busses zwischen der CPU und den Peripherieeinrichtungen ist es möglich, eine Anzahl von Operationen auf dem Chip aufzuführen, während gleichzeitig Operationen außerhalb des Chips, wie Vorgänge des Einspeicherns und Abrufens von Daten betreffend einen Speicher, gleichzeitig gesteuert werden.

Die integrierte Schaltung kann eine Speicherschnittstelle enthalten, die für mehrere programmierbare Chipaktivierungsmöglichkeiten sorgt, wodurch die Benutzer Wartezustände und Speicherbreiten, 8 oder 16 Bits breit, einstellen können. Die integrierte Schaltung sorgt für eine Adressendecodierung und eine DRAM-Steuerlogik, die es einem externen Busmaster erlaubt, Datenübertragungsvorgänge auszuführen, ohne dass eine Decodierung externer Adressen erforderlich wäre oder externe DRAM-Controller erforderlich wären. Wenn sequenzielle Zugriffsvorgänge verwendet werden, inkrementiert die integrierte Schaltung automatisch die vom externen Busmaster gelieferte anfängliche Speicheradresse, um dadurch Übertragungsvorgänge zu beschleunigen.

US-A-5 410 669 offenbart ein Datenverarbeitungssystem mit einem Doppelzweckspeicher mit mehreren Cachebanken. Jeder Cache kann individuell entweder als Cachebank oder als SRAM-Bank konfiguriert werden.

EP-A-0 529 217 offenbart einen integrierten Schaltungschip mit einem Speicherabschnitt und einer Schalteinrichtung zum Umschalten des Speichers zwischen einem ersten Standardbetriebsmodus und einem zweiten Cachemodus, wobei ein Benutzer zwischen den zwei Betriebsmodi hin und her schalten kann, wobei Daten erhalten bleiben oder sie bei Bedarf ausgeräumt werden. Diese kann den Benutzer in die Lage versetzen, in verschiedenen Betriebsmodi verschiedene Aufgaben auszuführen.

Die spezielle Aufgabe der vorliegenden Anmeldung ist eine Cache-Struktur mit mehreren Modi mit einem vordefinierten Speicherblock und Steuerungsmaßnahmen für diesen Speicherblock, die es ermöglichen, dass dieser mehrere Funktionen ausübt. Zu den auswählbaren mehreren Funktionen gehören ein Cachemodus, ein SRAM-Modus, ein Ausräummodus und ein Ungültigmachmodus. Es wird ein Steuerregister definiert und dem vordefinierten Speicherblock zugeordnet, wobei dieses Steuerregister mehrere Statusbits enthält. Jedes der Statusbits entspricht einer der mehreren Funktionen, und wenn ein spezielles Statusbit gesetzt ist, führt der vordefinierte Speicherblock eine dem gesetzten Statusbit entsprechende Funktion aus.

Es ist wünschenswert, eine integrierte Schaltung mit einer CPU zu schaffen, bei der ein Speicherblock dazu in der Lage ist, mehr als eine Funktion auszuüben.

Es ist auch wünschenswert, einen Speicherblock zu schaffen, der als Cache oder als SRAM arbeiten kann.

Es ist auch wünschenswert, eine integrierte Schaltung mit einer CPU zu schaffen, die es einem Benutzer erlaubt, die Funktionen von Speicherblöcken in der integrierten Schaltung auszuwählen.

Durch die Erfindung ist eine Cache-Struktur mit mehreren Modi geschaffen, wie sie im Anspruch 1 dargelegt ist.

Vorteile der Erfindung werden vollständig erkennbar, wenn die folgende Beschreibung in Verbindung mit den Zeichnungen gelesen wird.

Kurze Beschreibung der Zeichnungen

Fig. 1 ist ein Blockdiagramm der System-on-Chip-Struktur einer Ausführungsform der Erfindung:

Fig. 2 ist ein Blockdiagramm eines Speicherblocks in einem Cachemodus.

Fig. 3 ist eine Wiedergabe eines Steuerregisters einer Ausführungsform der Erfindung.

Fig. 4 ist eine Wiedergabe eines Segmentdeskriptorregisters einer Ausführungsform der Erfindung.

Beste Art zum Ausüben der Erfindung

Es wird zunächst auf die Fig. 1 Bezug genommen, in der eine System-auf- Chip(SOC)-Struktur einer Ausführungsform der Erfindung allgemein unter 10 dargestellt ist. Der IC 10 verfügt über eine RISC-CPU 12, die über einen zugehörigen Mikrocontroller 12a verfügen kann, der mit einem internen 32- Bit-Bus 14 verbunden ist. Die CPU 12 ist direkt mit einem internen Buscontroller 16 verbunden, der seinerseits mit dem Bus 14 und einer Busstrukturkarte 18 verbunden ist. Der IC 10 beinhaltet ferner einen lokalen RAM (SRAM) 20, einen kombinierten Befehls/Daten-Cache 22, der hier auch als vordefinierter Speicher bezeichnet wird, und einen Port 24 für externe Zugriffe. Bei der bevorzugten Ausführungsform soll der IC 10 mit einem Flüssigkristalldisplay (LCD) verbunden sein, und zu diesem Zweck verfügt er über einen LCD-Controller 26, der mit einer Schnittstelle 28 für eine LCD- Tafel verbunden ist. Es ist ein externer Buscontroller 30 vorhanden, der mit einer externen Speicherschnittstelle 32 und externen Chipselektoren 34 verbunden ist, die, bei der bevorzugten Ausführungsform, Teil des externen Buscontrollers 30 sind. Die Speicherschnittstelle 32 und die externen Chipselektoren 34 sind durch verschiedene Busse mit einem externen Speicher verbunden, der SRAM- und DRAM-Teile (nicht dargestellt) enthalten kann, sowie mit verschiedenen Peripherieeinrichtungen, wie I/O-Einrichtungen, Festplattenlaufwerken usw.

Es ist eine Anzahl von Konfigurationsregistern 36 vorhanden, die sich im internen Buscontroller 16 befinden können. Eine Anzahl auf dem. Chip vorhandener, interner "Peripherieeinrichtungen" ist mit dem internen Bus 14 verbünden, und sie beinhalten einen universellen, synchronen Empfänger/Sender (UART) 38, einen Parallelport 40, einen Timer/Zähler 42, einen Interruptcontroller 44 und einen Impulsbreitenmodulator (PWM) 46.

Es wird nun auf die Fig. 2 Bezug genommen, in der ein kombinierter Befehl/Daten-Cache detaillierter dargestellt ist. Wie bereits angegeben, ist der den Cache 22 bildende Speicherblock in zwei Teile unterteilt: der erste Teil ist ein Tag-RAM-Teil 48, und der zweite Teil ist ein Daten-RAM-Teil 50. Dem Speicherblock 22 ist ein Cachesteuerregister 54 zugeordnet, das sich bei der bevorzugten Ausführungsform im internen Buscontroller 16 befindet.

Der Cache 22 ist bei der bevorzugten Ausführungsform ein solcher von 2 kByte. Der Cache ist gruppenassoziativ mit 4 Bänken, mit 128 Gruppen, wie in der Fig. 2 durch die Gruppen 0-127 dargestellt. Bei der bevorzugten Ausführungsform beinhaltet jede Gruppe vier 1-Wort-Zeilen vqn im Cache gespeicherten Daten, wobei jede Zeile im Daten-RAM-Teil 50 des Speicherblocks 22 ein 32-Bit-Wort speichern kann. Jede Gruppe beinhaltet auch vier Zeilen eines 3-Bit-Status 48a und einer 23-Bit-Adresse 48b im Tag-RAM-Teil des Speicherblocks 22.

Statusbits 48a beinhalten ein Bit M, das anzeigt, ob die Daten in der Cachezeile modifiziert wurden oder nicht, das auf 0 gesetzt wird, wenn. Daten und die zugehörige Adresse in die Zeile geschrieben sind, und das auf 1 gesetzt wird, wenn die Daten modifiziert werden. Ein zweites Statusbit ist ein Bit V, das anzeigt, ob die Daten gültig sind oder nicht. Wenn das Bit V auf 1 gesetzt ist, zeigt es an, dass die zugehörigen Daten gültig sind, während dann, wenn es auf 0 gesetzt ist, die Daten als ungültig anzusehen sind. Das dritte. Bit ist ein LRU(least recently used = am längsten nicht genutzt)-Bit, das dazu verwendet wird, den Werdegang der Gruppen im Cache zu verfolgen.

Das Adressregister 52 ist ein 32-Bit-Register. Die Bits 1 und 0 werden nicht verwendet. Die Bits 2 bis 8 werden dazu verwendet, die Gruppennummer (0-127) zu kennzeichnen, während die Bits 9 bis 31 die Adresse im Tag-RAM 48a angeben.

Im Normalbetrieb wird eine Adresse von der RISC-CPU 12 an das Adressregister 52 übertragen. Die vier Zeilen im Tag-RAM 48 werden parallel abgefragt. Wenn eine der vier Zeilen mit der Adressmarke im Adressregister 52 übereinstimmt, werden die entsprechenden Daten aus dem Daten-RAM 50 ausgegeben. Der Speicherblock 22 verwendet ein Rückschreibprotokoll, wenn er als Cache arbeitet. Wenn ein Schreibvorgang in den Cache auftritt, wird der Eintrag durch das entsprechende Statusbit als modifiziert markiert. Wenn dieser Eintrag später ersetzt wird, wird der Hauptspeicher (außerhalb des Chips) aktualisiert. Das Rückschreibprotokoll verringert den Verkehr über den internen Bus 14 und über den externen Buscontroller 30, jedoch verbleiben im Hauptspeicher alte Daten, bis er durch den Cache aktualisiert wird.

Nun wird auf die Fig. 3 Bezug genommen, gemäß der ein Cachesteuerregister (CCR) 54, das sich bei der bevorzugten Ausführungsform im internen Buscontroller 16 befindet, ein 8-Bit-Register ist, das die Funktion des Speicherblocks 22 steuert. Es werden nur vier Bits des Registers verwendet, und diese vier Bits sind als E, S, F und I bezeichnet. Wenn das Bit E auf logisch 1 gesetzt ist, ist der Cachemodus des Speicherblocks 22 aktiviert. Wenn das Bit S des Registers 54 auf logisch 1 gesetzt ist, ist der SRAM- Modus aktiviert. Wenn das Bit F des Registers 54 auf 1 gesetzt ist, ist der Ausräummodus aktiviert. Wenn das Bit I des Registers 54 auf logisch 1 gesetzt ist, ist der Cache als ungültig erklärt. Die Bits E, F und S des Registers 54 sind wechselseitig ausschließend, d. h., es kann jeweils nur eines derselben auf logisch 1 gesetzt sein. Der Speicherblock 22 wird folgend auf einen Rücksetzvorgang in den Cachemodus versetzt.

Es wird erneut auf die Fig. 2 Bezug genommen, in der ein Segmentdeskriptorregister (SDR) als 56 gekennzeichnet ist. Das SDR 56 wird dann verwendet, wenn das Bit S im CCR 54 auf logisch 1 gesetzt ist und sich der Speicherblock 22 in seinem SRAM-Modus mit vereinheitlichtem Speicherbereich befindet. Erneut werden die Bits 0 und 1 des SDR 56 nicht verwendet. Die Bits 2-8 bestimmen, welche Gruppe zu adressieren ist, und die Bits 9 und 10 bestimmen, welche Zeile zu adressieren ist. Die Bits 11-31 geben die zu adressierenden Speicherorte im Speicherblock 22 an. Wenn sich der Speicherblock 22 im SRAM-Modus befindet, wird auf den Tag-RAM 48 und den Daten-RAM 50 als 1-k-Wort-SRAM zugegriffen. Dieses Merkmal erlaubt es einem Systemdesigner, den Speicherblock 22 als zusätzlichen auf dem Chip vorhandenen SRAM zu verwenden, und es erlaubt es dem Designer auch, die im Cache untergebrachten Daten, die Adressmarken und die Statusbis zu untersuchen. Wenn sich der Speicherblock 22 im SRAM-Modus befindet, wird der Daten-RAM, der bei der bevorzugten Ausführungsform 512 Wörter lang ist, an die anfänglichen Adressorte abgebildet, und der Tag-RAM, der ebenfalls 512 Wörter lang ist, wird auf die sequenziellen Adressorte abgebildet. Obwohl jede Zeile des Tag-RAM nur 26 Bit breit ist, wird auf seine Zeilen so zugegriffen, als würde es sich um ein 32-Bit-Wort handeln, wobei sechs Nullen links (rechtsbündig) an die 3-Bit-Statusmarke und die 23-Bit-Adressmarke angehängt sind. Alle Zugriffe auf den Speicherblock 22 im SRAM-Modus müssen von Wortlänge sein, da bei der bevorzugten Ausführungsform keine Bytezugriffe zulässig sind.

Die anderen Modi, d. h. der Ausräummodus und der Ungültigmachmodus, werden dazu verwendet, den Speicherblock 22 zu verwalten. Wenn sich der Block 22 im Aufraummodus befindet, führt jeder Zugriff auf eine Cachegruppe, in der eine der zugehörigen vier Zeilen modifiziert wurde, dazu, dass die mindestens eine modifizierte Zeile in den Hauptspeicher rückgeschrieben wird. Daher kann der Inhalt des Caches zwangsweise dadurch in den Hauptspeicher gebracht werden, dass sequenziell auf alle 128 Gruppen im Cache zugegriffen wird. Dieses Merkmal ist für Protokolle für direkten Speicherzugriff (DMA = Direct Memory Access) bei einem cachefähigen Speichersegment besonders gut geeignet.

Wenn sich der Cache im Ungültigmachmodus befindet, werden alle Zeilen im Cache ungültig gemacht. Jeder Speicherzugriff durch die CPU 12 geht zwangsläufig auf den Hauptspeicher (außerhalb des Chips).

So wurde ein Speicherblock zur Verwendung mit einer RISC-CPU offenbart, der als Cache oder als SRAM verwendet werden kann. Wenn der Speicherblock als Cache verwendet wird, ergibt sich bei jedem Cachetreffer ein Null-Wartezustand auf dem Chip, und bei Cache-Fehlschlägen werden Verzögerungen minimiert. Die Speicheraktualisierungen erfolgen in einem Rückschreibprotokoll, um den Verkehr auf dem externen Bus zu verringern. Der Cache verwendet für alle Ersetzungsprotokolle einen LRU-Algorithmus. Wenn sich der Speicherblock in einem SRAM-Modus befindet, bildet er einen zusätzlichen auf dem Chip vorhandenen RAM zur Verwendung bei geeigneten Anwendungen. Derartige Anwendungen können den Speicherblock 22 für RAM-Funktionen nutzen, wenn die laufende Anwendung keinen schnellen Zugriff auf im Cache vorhandene Daten erfordert. Derartige Anwendungen können bei tragbaren Vorrichtungen, wie Digitalkameras und Controllern für Peripherieeinrichtungen, verwendet werden, bei denen ein auf dem Chip vorhandener SRAM wichtiger als das Unterbringen von Programmierbefehlen in einem Cache ist.


Anspruch[de]

1. Cache-Struktur mit mehreren Modi für eine integrierte Schaltung mit einem Speicherblock (22), bei der zwischen mehreren Modi, einschließlich eines Cachemodus, in dem eine Anzahl von Cachegruppen mit jeweils mehreren Cachezeilen im Speicherblock abgespeichert wird, eines SRAM-Modus und eines Ungültigmachmodus, in dem alle Cachezeilen ungültig gemacht werden und alle Speicherzugriffe auf den Hauptspeicher gelenkt werden, umgeschaltet werden kann, und einem Steuerregister (54) mit einer Anzahl von Statusbits, das dem Speicherblock (22) zugeordnet ist, dadurch gekennzeichnet, dass zu den mehreren Modi auch ein Ausräummodus gehört, bei dem ein Zugriff auf, eine Cachegruppe, die seit einem vorigen Zugriff modifiziert wurde, dazu führt, dass die modifizierte Cachegruppe in den Hauptspeicher eingeschrieben wird, wobei der Cache-, der SRAM- und der Ausräummodus einander wechselseitig ausschließen, und dass die mehreren Statusbits im Steuerregister dem Cache-, dem SRAM-, dem Ausräum- und dem Ungültigmachmodus entsprechen, wobei, wenn ein Statusbit gesetzt ist, der Speicherblock (22) den dem gesetzten Statusbit entsprechenden Modus ausführt.

2. Cache nach Anspruch 1, bei dem im SRAM-Modus sowohl ein Tag-RAM-Teil als auch ein Daten-RAM-Teil auf Adressorte abgebildet sind.

3. Cache nach Anspruch 1 oder Anspruch 2, bei dem der Speicherblock (22) im Cache-Modus über einen Tag-RAM-Teil (48) und einen Daten-RAM-Teil (50) verfügt und er im SRAM-Modus über einen vereinheitlichten Speicherbereich verfügt.

4. Cache nach Anspruch 3, bei dem das Steuerregister (54) ein Segmentdeskriptorregister (56) ist, das verwendet wird, wenn sich der Speicherblock (22) im SRAM-Modus befindet.

5. Cache nach einem der vorstehenden Ansprüche, bei dem sich der Speicherblock (22) auf einen Rücksetzvorgang hin im Cachemodus befindet.

6. Cache nach einem der vorstehenden Ansprüche, bei dem Zugriffe mit der Einheit einer Wortlänge erfolgen, wenn sich der Speicherblock (22) im SRAM- Modus befindet.

7. Integrierte Schaltung mit einer Cache-Struktur mit mehreren Modi nach einem der vorstehenden Ansprüche.

8. Integrierte Schaltung nach Anspruch 7 mit einer CPU und einer Verbindung (32) zu einer Hauptspeichereinheit.







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

Anmelder
Datum

Patentrecherche

  Patente PDF

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