PatentDe  


Dokumentenidentifikation DE69717006T2 24.07.2003
EP-Veröffentlichungsnummer 0813152
Titel Speicherschutzmechanismus
Anmelder Sharp K.K., Osaka, JP;
Sharp Microeletronics Technology, Inc., Camas, Wash., US
Erfinder Spaderna, Dieter, Portland, Oregon 97229, US;
Lea, Earl Randy, Vancouver, US
Vertreter Müller - Hoffmann & Partner Patentanwälte, 81667 München
DE-Aktenzeichen 69717006
Vertragsstaaten DE, FR, GB
Sprache des Dokument EN
EP-Anmeldetag 03.03.1997
EP-Aktenzeichen 973013816
EP-Offenlegungsdatum 17.12.1997
EP date of grant 13.11.2002
Veröffentlichungstag im Patentblatt 24.07.2003
IPC-Hauptklasse G06F 12/14
IPC-Nebenklasse E05B 47/06   

Beschreibung[de]
Gebiet der Erfindung

Die Erfindung betrifft integrierte Schaltungen und insbesondere einen Speicherschutzmechanismus zur Verwendung in einer integrierten Schaltung in einem Computer mit vermindertem oder reduziertem Befehlssatz (RISC, reduced instruction set computer) und insbesondere eine CPU (central processing unit) für einen derartigen Computer, welche in tragbaren Geräten verwendet werden können.

Hintergrund der Erfindung

Tragbare Geräte sind zum Beispiel elektronische Instrumente, wie zum Beispiel persönliche Informationsverwalter, Telefone, Digitalkameras, Spielegeräte, welche in der Hand gehalten werden können, Barcode-Scanner, medizinisches Gerät, elektronische Instrumente und Navigationssysteme, insbesondere Navigationssysteme für die globale Satellitenpositionierung (global positioning satellite navigation systems).

Um kommerziell erfolgreich zu sein, benötigen tragbare Geräte integrierte Schaltkreise, welche besonders preisgünstig sind, eine niedrige Energiebedarfsanforderung besitzen, um eine hohe Batterielebensdauer zu gewährleisten, und die hohe Standards in Bezug auf die Performance erfüllen, damit ihre Ausgabe akkurat ist und verwendet werden kann. Zusätzlich ist es notwendig, dass eine Schnittstelle zwischen dem integrierten Schaltkreis und dem Rest des tragbaren Gerätes vom Typ einer Plug-and-Play-Einrichtung vorgesehen ist, so dass ein einziger Typ eines integrierten Schaltkreises mit einer Vielzahl tragbarer Geräte verwendet werden kann. Ein Teil dieser Flexibilität besteht darin, dass der Entwickler eines tragbaren Geräts in die Lage versetzt werden muss, ein IC auf einfache Art und Weise in ein Gerät als Off-the- Shelf-Komponente einzugliedern, wobei keine internen Abänderungen notwendig werden dürfen in Bezug auf eine Vielzahl von Anwendungen.

Die Rechenleistung bei integrierten Schaltkreis-CPUs, wie zum Beispiel Intels 80·86 und die Chips der Serie Pentium® sowie Motorolas 68000er Serie, konnte über die letzten Jahre merklich gesteigert werden. Gleichzeitig stieg aber auch die Grdße derartiger Chips merkbar an, weil die Leistungsanforderungen in Bezug auf die elektrische Leistung dieser Chips dies erforderlich machten. Derartige Chips sind als herkömmliche Befehlssatzcomputer (CISC, conventional instruction set computers) angelegt und benötigen signifikante Blöcke in Bezug auf den Schreib-Lese-Speicher (RAM, random access memory), während Anwendungen, die in Bezug auf derartige Computer mit solchen Chips geschrieben wurden, in ihrem Umfang angewachsen sind, ohne dass dabei eine Beschränkung im Umfang offenkundig wurde, wobei dadurch große Mengen an Festplattenspeicherplatz notwendig wurden. CISC- Einrichtungen können bei tragbaren Geräten nicht auf einfache Art und Weise aufgrund ihrer Leistungsanforderungen und aufgrund ihrer Größe eingesetzt werden.

Computer mit reduziertem Befehlssatz (RISC) wurden ursprünglich für High-End-Grafikanwendungen und für CAE/CAD- Workstations entwickelt. Jedoch ermöglicht die RISC- Architektur eine Reduzierung der Größe bei einem IC, weil ein kleinerer Befehlssatz oder Befehlsumfang bei der RISC- Technologie weniger implementierte Transistoren notwendig macht, wodurch eine einfachere Auslegung oder ein einfacheres Design ausreichen und sich folglich ein geringerer Zeitaufwand bei der Fertigstellung eines derartigen Chips und bei der Fehlerbehebung ergeben. Ferner haben kleiner Chips geringere Signalwege oder kürzere Signalwege, was bedeutet, dass jeder Befehlszyklus eine kürzere Zeitspanne benötigt. Die Größe einer RISC-CPU ist relativ deutlich kleiner als die einer CISC-CPU, zum Beispiel ist der Chip Intel 386 SL ungefähr 170 mm² groß, während ein RISC-Chip mit einer vergleichbaren Rechenleistung nur wenig größer ist als 5 mm².

Die geringe Größe RISC-basierter CPUs macht die RISC- Architektur für "System-on-Chip"-Anwendungen (SOC) besonders geeignet, bei welchen die CPU und eine Anzahl weiterer Strukturen auf einem einzelnen Chip vorgesehen und ausgebildet sind. Eine derartige SOC-Architektur kann im Ergebnis zu einem Chip führen, der immer noch merklich kleiner ist als eine CISC-CPU, jedoch sämtliche Rechen- und Steuerstrukturen auf einem einzelnen integrierten Schaltkreis aufweist. Eine SOC-Architektur enthält gewöhnlich eine RISC-CPU und bestimmte Typen lokalen RAM-Caches und/oder Daten-Caches. Zusätzlich kann der Chip interne und externe Bussteuereinrichtungen, verschiedene Typen Kommunikationsschnittstellen, Interruptsteuerungen, Pulsbreitenmodulatoren, verschiedenartig konfigurierte Register, verschiedene Timer/Counterstrukturen und bestimmte Typen Ausgabesteuereinrichtungen, wie zum Beispiel eine LCD-Steuerung, aufweisen. Ein derartiger Aufbau kann als 32-Bit-Architektur angelegt sein. Dabei sind die jeweilig zugeordneten Peripheriegeräte auf dem Chip integriert, wobei die Integration eine Ausgestaltung und ein Design eines tragbaren Geräts erlaubt, wobei das Einbauen und Vorsehen eines derartigen Chips den Entwicklungszyklus verkleinert und die Produkteinführung auf dem Markt beschleunigt. Der Chipaufbau kann einen externen 16-Bit -Datenbus mit einem integrierten, programmierbaren Buscontroller aufweisen, welcher in der Lage ist, 8- oder 16-Bit-SRAM, -DRAM, -EPROM und/oder andere Speichereinrichtungen zu unterstützen, welche keine zusätzlichen Puffer benötigen, um ein Funktionieren zusammen mit dem integrierten Schaltkreis sicherzustellen. Der Chip kann entweder bei 3,3 Volt oder bei 5 Volt betrieben werden, wobei eine Leistungsaufnahme von 100 mW bzw. 350 mW notwendig wird.

Durch Kombinieren der Anzahl von Peripheriegeräten auf einem Chip und durch Vorsehen eines internen Busses zwischen der CPU und den Peripheriegeräten, ist es möglich, eine Anzahl von Operationen und Vorgängen auf dem Chip auszuführen, während gleichzeitig Operationen außerhalb des Chips gesteuert werden, zum Beispiel das Speichern und Zugreifen auf einen Speicher.

Der integrierte Schaltkreis kann eine Speicherschnittstelle aufweisen, welche mehrfache Chipprogrammiermöglichkeiten bereitstellt, welche es dem Benutzer ermöglichen, Wartezustände und eine Speicherbreite von 8 oder 16 Bits einzustellen. Der integrierte Schaltkreis schafft die Adressdecodierung und die DRAM-Steuerlogik, welche es ermöglicht, einen externen Busmaster zu schaffen, welcher die Datenübertragungen ausführt, ohne dass eine externe Adressdecodierung oder externe DRAM-Steuerungen notwendig sind. In dem Fall, bei welchem aufeinander folgender oder sequenzielle Zugriffe verwendet werden, inkrementiert der integrierte Schaltkreis automatisch die Anfangsspeicheradresse durch den externen Busmaster, wodurch die Übertragung beschleunigt wird.

Die Druckschrift PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN: VL IN COMPUTERS AND PROCESSORS, CAMBRIDGE, OCT. 2-4, 1989, no.-, 2 October 1989, INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, Seiten 134-137, GROVES R D ET AL: 'An IBM SECOND GENERATION RISC PROCESSOR ARCHITECTURE' offenbart ein Verfahren und ein System zum emulierten Segmentieren für RISC-Prozessoren sowie Eigenschaften von Segmentdeskriptoren und deren Schutz.

Die US-PS 5 440 710 beschreibt einen RISC-Prozessor mit Segmentregistern, Schutzattributen, Cache- und Hauptspeicher.

Das Dokument IEEE INTERNATIONAL SOLID STATE CIRCUITS CONFERENCE, vol. 37, I February 1994, Seiten 212/213, 341 DAC PHAM ET AL: 'TP 12.6: A 3.0 W 75SPECINT92 85SPECFP92 SUPERSCALAR RISC MICROPROGESSOR' offenbart einen Power-PC- RISC-Prozessor von IBM (für tragbare Geräte), wobei Caches auf dem Chip vorgesehen sind, sowie eine Adresstranslation und Segmentregister.

Das Dokument COMPUTER, vol. 20, no. 3, March 1987, NEW YORK US, Seiten 48-67, FURHT B ET AL: 'A SURVEY OF MICROPROCESSOR ARCHITECTURES FOR MEMORY MANAGEMENT' betrifft die Speicherverwaltung, Segmentregister und Zugriffsrechte.

Erfindungsgemäß ist, wie in Patentanspruch 1 beschrieben ist, ein On-Ghip-Speicherschutzmechanismus für einen integrierten Schaltkreis vorgesehen, welcher an eine externe Off- Chip-Speicherstruktur angeschlossen ist, wobei der integrierte Schaltkreis eine RISC-CPU, ein Speichermanagementmodul und interne On-Chip-Speicherstrukturen aufweist, wobei der Mechanismus eine adressierbare Speicherung erweitert, während er unter Verwendung von Privilegintegratoren ein Überschreiben privilegierter Speicherinhalte verhindert. Des Weiteren weist er auf eine Speicherabbildungsstruktur zum Abbilden von Speicheradressen von Speicherinhalten in der internen und in der externen Speicherstruktur, Adresscharakteristika, welche mit den Speicheradressen assoziiert sind und welche umfassen die Adresschachebarkeit und Privilegien, ein Speicheradressregister zum Empfangen und Speichern einer Speicheradresse von der CPU, mehrere Speichersegmente zum Bereitstellen der Adressen von mehrfachen Speicherbereichen, welche auf denselben physikalischen Speicherstrukturort abzubilden sind, und zum Empfangen von Informationen im Hinblick auf die Speichercharakteristika, wobei die Information Cachebarkeitsindikatoren, welche auf die Cachebarkeit von Adressen hinweisen, und Privilegindikatoren aufweisen, und ein Standardspeichersegment, zum Aufspannen eines Gesamtspeicherbankraumes, wobei die mehrfachen Speicherbereiche unterschiedliche Speicherinhalte mit vorbestimmten Privilegien aufweisen, welche durch die Privilegindikatoren angezeigt werden, und wobei die mehrfachen Speichersegmente auf den Empfang einer Speicheradresse vom Adressregister die Speicheradresse mit den Adressen der mehrfachen Speicherbereiche vergleichen, um den physikalischen Speicherort zu lokalisieren.

Bevorzugte Merkmale sind in den Ansprüchen 2 bis 7 beschrieben.

Die vorliegende Erfindung betrifft somit das Segmentieren von Speicheradressen, welches einen größeren adressierbaren Speicherraum schafft, als sich anders aus dem 26-Bit-Externadressbus des integrierten Schaltkreises ergäbe. In der Ausführungsform können bis zu acht Segmente des Speichers definiert werden, von denen jedes für Start- und Stoppadressen programmiert werden kann, sowie für Zugriffsrechte, Cachebarkeit, Speicherwortlängenkriterien und Speicherbankzuordnung. Da mehrfache Segmente mit den Chipmöglichkeiten assoziiert werden, kann ein einziger physikalischer Speicherblock im Benutzer- und Überwacher- oder Supervisorsegmente sowohl für Daten als auch für Programmspeicher aufgeteilt werden. Eine derartige Anordnung schafft zusätzliche Speichersegmente über die herkömmlichen Möglichkeiten (enable structure) hinaus und erlauben eine Auftrennung oder Separation der Speicherblöcke ohne dass Steuermöglichkeiten aufgegeben oder geopfert werden müssen.

Diese und weitere Zielsetzungen und Vorteile der vorliegenden Erfindung werden weiter auf der Grundlage der nachfolgenden Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen erläutert.

Kurzbeschreibung der Figuren

Fig. 1 ist ein Blockdiagramm des Systems mit einer On- Chip-Struktur gemäß der vorliegenden Erfindung.

Fig. 2 ist ein detailliertes Blockdiagramm/Flussdiagramm eines Teils des Systems der On-Chip- Struktur aus Fig. 1.

Fig. 3 ist ein Blockdiagramm einer erfindungsgemäßen segmentierten Speicherstruktur.

Fig. 4 ist ein Blockdiagramm eines erfindungsgemäßen segmentierten Deskriptorregisters oder Beschreibungsregisters.

Beste Ausführungsform der Erfindung

Zunächst wird unter Bezugnahme auf Fig. 1 ein System mit On- Chip-Struktur (SOC) gemäß der Erfindung beschrieben, welches im Allgemeinen mit dem Bezugszeichen 10 bezeichnet wird. Das IC 10 weist eine RISC-CPU 12 auf, welche mit einem internen Bus 14 vom 32-Bit-Typ verbunden ist. Die CPU 12 beinhaltet einen eingebetteten Mikrocontroller 12a gemäß einer bevorzugten Ausführungsform. Die CPU 12 ist direkt mit dem internen Buscontroller 16 oder mit der internen Bussteuerung 16 verbunden, welche ihrerseits mit dem Bus 14 und mit einem Busabbildungsbereich oder Speicherabbildungsbereich 18 verbunden ist. Das IC 10 weist des Weiteren einen lokalen RAM 20 (SRAM), einen kombinierten Instruktions/Datencache 22 sowie einen externen Zugriffsport 24 auf. Bei der bevorzugten Ausführungsform ist das IC 10 dazu ausgelegt, eine Flüssigkristallanzeige (LCD) zu verbinden und weist deshalb eine LCD-Steuerung 26 auf, die ihrerseits mit einer LCD- Tafelschnittstelle 28 verbunden ist. Eine externe Bussteuerung oder ein externer Buscontroller 30 sind vorgesehen und mit einer externen Speicherschnittstelle 32 und externen Chipauswahlbereichen 34 verbunden, die ihrerseits als Teil der externen Bussteuerung des externen Buscontrollers ausgelegt sein können.

Es ist eine Mehrzahl Konfigurationsregister 36 vorgesehen, welche als Teil der internen Bussteuerung oder des internen Buscontrollers 16 ausgebildet sein können. Eine Anzahl interner Peripheriegeräte ("peripherals") sind mit dem internen Bus 14 verbunden und weisen auf einen universellen asynchronen Empfänger/Übertrager (universal asynchronous receiver/transmitter; UART) 38, einen parallelen Anschluss oder Parallelport 40, einen Timer/Zeitgeber/Zähler 42, eine Interruptsteuerung 44 oder einen Interruptcontroller 44 und einen Pulsbreitenmodulator 46 (PWM).

Unter Bezugnahme auf die Fig. 2 wird ein Bereich oder ein Teil eines ICs 10 dargestellt. Zu Erläuterungszwecken sind dort der interne Buscontroller 16 oder die interne Bussteuerung 16 stärker detailliert abgebildet und weisen auf einen Speicheradressregister 48, einen Sequenzer 50, sowie einen Arbitrator 52 oder eine Entscheidungseinrichtung. Der interne Bus ist mit zwei Segmenten 14 und 14a dargestellt.

Das Speicheradressregister 48 empfängt und speichert eine Speicheradresse von der CPU 12 und versucht diese Adresse in verschiedenen internen On-Chip-Speicherstrukturen aufzufinden oder zu lokalisieren, zum Beispiel als einen Cachebereich 22, welcher aufgeteilt ist in einen Cache- Markierungsbereich 22a (cache Tag portion) und einen Cache- Datenbereich 22 h, oder in einem lokalen SRAM 20, einen Speicherabbildungsbereich 18 oder Memorymap 18 oder in Speichersegmenten 54. Die Adresse wird auch an den Sequenzer 50 und an den Arbitrator 52 übergeben, welche ermitteln, ob die Adresse eine sequenzielle Adresse einer vorangehenden Speicheradressenanforderung (Sequenzer 50) darstellt oder ob andere Operationen oder Vorgänge existieren, welche die Priorität über die anstehende Suche oder aktuelle Suche in Bezug auf einen bestimmten Taktzyklus übernehmen (Arbitrator 52). In dem Fall, bei welchem die Speicheradresse sequenziell ist in Bezug auf einen unmittelbar vorangehenden Anfragevorgang, wird ein Signal an die Speicherabbildung 18 oder die Memorymap 18 übersandt, die ihrerseits ein Abbruchsignal 55 an die internen Speicherstrukturen übergibt, und zwar mit Ausnahme derjenigen Struktur, welche die nächste sequenzielle Adresse enthält. In dem Fall, dass die Adresse nicht in irgendeinem der internen Speicherstrukturen aufgefunden wird, initiiert der externe Buscontroller 30 oder die externe Bussteuerung 30 eine Suche nach der Adresse im externen Speicher 56.

Unter Bezugnahme auf Fig. 3 werden nunmehr mehrere Speichersegmente 54 in detaillierterer Form dargestellt, und zwar zusammen mit damit assoziierten oder im Zusammenhang stehenden Strukturen. Bei einer bevorzugten Ausführungsform sind acht Speichersegmente, nämlich Segmente 0-7 vorgesehen, die grundsätzlich mit dem Bezugszeichen 58 dargestellt sind. Jedes der Segmente weist drei Register auf, nämlich ein Segmentbeschreibungsregister 60 oder Segmentdeskriptorregister 60 (segment descriptor register; SDR), ein Startregister 62 sowie ein Stoppregister 64. Ein separates Standard-SDR 66 ist vorgesehen und wird nach einem Reset oder einem Rücksetzen verwendet oder dann und nur dann, wenn bei einer Suche in Bezug auf die Speicheradresse in den SDR 0- 7 kein Suchergebnis erzielt wird. Die Speichersegmente 54 beinhalten die Adressen für mehrfache Speicherbereiche, welche abzubilden sind auf denselben physikalischen Speicherstrukturbereich oder dieselben physikalischen Speicherstrukturorte, seien diese im lokalen RAM 20 oder im externen Speicher 56 gelegen. Der RAM 20 und der externe Speicher 56 beinhalten beide mehrfache Speicherbereiche oder Speicherregionen, welche an einem einzigen physikalischen Ort lokalisiert sind. Ein Speicherbereich oder eine Speicherregion oder eine Speicherbank können definiert werden in einem physikalischen Speicherbereich oder einer physikalischen Speicherstruktur durch Einstellen oder Setzen einer Speicherstartadresse in einem der Startregister 62 und durch Einstellen oder Setzen einer Speicherendadresse in einem der Stoppregister 64.

Das SDR enthält Informationen in Bezug auf die Adressencharakteristika und umfasst dabei Systemrechte oder Systemprivilegien, Benutzerrechte oder Benutzerprivilegien, Cachebarkeit, Wortlängencharakteristika und die Speicherbankauswahl. Jedes Segment kann auf nur eine einzige Speicherbank abbilden, welche im Allgemeinen durch einen Block 68 bezeichnet wird und welche im externen Speicher 56 angeordnet oder lokalisiert sind. Das Startregister 62 und das Stoppregister 64 bestimmen die Grenzen innerhalb des Speichers jedes Segments. Jedes Start- und Stoppregister ist ein 32- Bitregister und enthält eine Start- oder Stoppadresse mit 22 Bits, und zwar an den Bitstellen 10-31. Die Bits 0-9 sind auf Null gesetzt oder mit Nullen gefüllt und werden verwendet, um eine 22-Bitadresse in eine 32-Bitadresse zu wandeln. Das Standard-SDR 66 besitzt keine dazu assoziierten Start-/Stoppregister, weil das Standard SDR den gesamten Speicherbankraum aufspannt. Sämtliche Start-/Stoppregister werden bei einem Reset oder bei einem Rücksetzen auf Null gesetzt initialisiert oder mit Nullen gefüllt initialisiert, so dass sämtliche externen Speicherzugriffe auf das Standardsegment gezwungen oder gerichtet werden.

Der eingebundene oder eingebettete Mikrocontroller 12a unterstützt acht Speicherbänke, von denen sechs SRAM-Funktionen und von denen zwei DRAM-Funktionen zugeordnet sind. Eine SRAM-Bank spiegelt die Eigenschaften eines externen SRAMs wider, zum Beispiel die Chipauswahl oder das Chip Select, Wartezähler oder Wait-Counts sowie die Busbreite. Eine DRAM-Bank spiegelt die Eigenschaften eines externen DRAMs wider, zum Beispiel nCAS (not Column Address Select), nRAS (not Row Address Select), die Speicherbankgröße oder Memory-Bank-Size, den Page Mode, den Wartezähler oder Wait- Count und die Busbreite.

Wenn die externe Bussteuerung 30 oder der externe Buscontroller 30 eine interne Adresse für einen Speicherzugriff aus dem Speicheradressregister 48 empfängt, bildet er diese Adresse auf ein geeignetes Segment ab oder auf das Standardsegment und führt sämtliche notwendigen Checks oder Prüfungen im Hinblick auf die Zugriffsrechte, Privilegien, den Block 70, die Cachebarkeit, Block 72 und zwar gemäß den Charakteristika, die im jeweils geeigneten SDR gefunden werden, aus. Sind alle Checks oder Überprüfungen durchgeführt, greift die externe Bussteuerung 30 oder der externe Buscontroller 30 auf die geeignete Speicherbank 68 zu, wie dies durch den SDR angezeigt ist. Die Speicherbank zeigt dem externen Buscontroller 30 oder der externen Bussteuerung 30 an, welche externen Geräte auszuwählen sind und prüft die Eigenschaften des externen Geräts. Die unteren 26 Bits der Adresse werden zum Ansprechen der externen Geräte verwendet.

Durch das Vorsehen mehrfacher Speichersegmente kann der Benutzer zwei oder mehr Speicherbereiche oder Speicherregionen desselben physikalischen externen Speichers abbilden, solang der Speicherbereich unterschiedliche Rechte oder Privilegien aufweist, die verhindern, dass ausgewählte und privilegierte Information überschrieben wird. Die Rechte oder Privilegien, die in diesem Zusammenhang verwendet werden, können eingeteilt werden in die Bereiche Benutzer lesend oder User-Read, Benutzer schreibend oder User-Write, System lesend oder System-Read und System schreibend oder System-Write.

Unter Bezug auf Fig. 4 wird ein repräsentatives SDR 60 dargestellt. Das SDR 60 ist ein 16-Bitregister, welches eine Mehrzahl charakteristischer Blöcke mit einer jeweils vorbestimmten Länge aufweist. Die Blocke im SDR 60 sind in den Bits 0-7 Speicherbankauswahlindikatoren, in Bit 8 ein Wortlängenmodusindikator, in Bit 10 ein Cachebarkeitsindikator, in den Bits 11 und 12 Benutzerrechts- oder Benutzerprivilegindikatoren und in den Bits 13 und 14 Systemrechts- oder Systemprivilegindikatoren. Der Speicherbankauswahlblock in den Bits 0-7 enthält eine binäre 1 für die Bank 0, eine binäre 2 für die Bank 1 usw. und eine binäre 8 für die Bank 7. Diese Indikatoren sind jeweils exklusiv, und jede andere Eingabe ist ungültig. Die Wortlängenmodusanzeige kann eine 0 oder eine 1 enthalten, wobei dadurch jeweils ein 32-Bitmodus bzw. ein 16-Bitmodus angezeigt werden. Der Cachebarkeitsindikator kann eine 0 oder eine 1 aufweisen, wodurch angezeigt wird, dass das jeweilige Segment nicht cachebar bzw. cachebar ist. Rechte oder Privilegien für das System oder die Benutzer werden auf ähnliche Art und Weise angezeigt: Eine logische 0 zeigt keine Privilegien oder Rechte an, eine logische (binäre 1) zeigt ein ausschließliches Leserecht (read-only privileges) an, eine logische 2 zeigt ein ausschließliches Schreibrecht (write only privileges) an, und eine logische 3 zeigt Lese-/Schreibrechte (read/write privileges) an.

Jedes Segment kann individuell programmiert werden, um den Benutzer und dem System Lese- und/oder Schreibzugriffsmöglichkeit in Bezug auf den Speicherraum im Zusammenhang mit dem Segment zu geben. Dies ermöglicht eine Speicherverwaltung und einen Speicherschutz. Zum Beispiel können sowohl der Code als auch die Daten im selben externen SRAM enthalten sein, wobei auf den Code ausschließlich durch das System zugegriffen werden kann und wobei auf die Daten durch das System und den Benutzer zugegriffen werden kann. Jegliche Verletzung der Programmrechte oder Programmprivilegien bewirkt einen Abbruch 74. Anfragen oder Anforderungen durch den LCD-Controller 26 oder die LCD-Steuerung 26 wird gemäß dem bevorzugten Ausführungsbeispiel der Erfindung als Anfrage oder Anforderung auf dem Systemniveau oder auf der Systemebene behandelt, und zwar insbesondere als Systemleserecht.

Ein Segment kann cachebar sein, in welchem Fall jeglicher Zugriff auf das Segment über dem Cache 22 geregelt wird. Das Segment kann auch nicht cachebar sein, in welchem Fall der Zugriff durch den externen Buscontroller 30 oder die externe Bussteuerung 30 geregelt wird. Wegen des Framepuffers oder des Bildspeichers für die LCD und deren Anordnung oder Lokalisation im Hauptspeicher oder Main-Memory (off-chip oder außerhalb des Chips) kann dasjenige Segment, welches den Framepuffer oder den Bildspeicher enthält, nicht gecacht werden. Die externe Bussteuerung oder der externe Buscontroller wird in diesem Fall das Cachebarkeitsbit ignorieren oder übergehen, wenn er eine Anfrage oder Anforderung vom LCD-Controller oder der LCD-Steuerung erhält.

Die CPU 12 kann ausgebildet sein, so dass sie eine Vielzahl Speicherzugriffsanforderungen unterstützt, seien diese in Form eines Bytes (8 Bit) oder eines Worts (32 Bit). Gemäß einer Konfiguration oder Ausgestaltung der CPU 12 besitzt der eingebettete Mikrocontroller 12a einen 16-Bit-Datenbus, welcher ein Wortzugriff für zwei Taktzyklen benötigt. Ein Halbwortmodus ermöglicht es dem eingebetteten Mikrocontroller Halbwortzugriffe auf den externen Speicher zu realisieren. Der eingebettete Mikrocontroller behandelt die Wortzugriffe, seien diese lesend oder schreibend, als Halbwortzugriffe, und zwar ebenfalls lesend oder schreibend, und realisiert einen Speicherzugriff oder einen Taktzyklus, um auf die angeforderte Information zuzugreifen. Im Fall eines gelesenen Wortes werden die 16 Bitdaten im externen Buscontroller 30 oder der externen Bussteuerung 30 um ein Vorzeichen erweitert und dann an die CPU 12 als 32-Bitwort übersandt. In dem Fall eines geschriebenen Wortes schreibt der externe Buscontroller 30 oder die externe Bussteuerung 30 die 16 Bits niedrigerer Ordnung des Worts aus der CPU 12 zum externen Speicher 56. Dieses Protokoll ist insbesondere dann beachtenswert, wenn das IC 10 mit einer Einrichtung außerhalb des Chips verbunden ist, zum Beispiel einem Flash- Memory oder einem Flashspeicher.

Der Bankauswahlblock weist im Wesentlichen acht exklusive Bits auf. Eine logische 1 in irgendeiner der Bitpositionen wählt die mit dieser Position im Zusammenhang stehende Speicherbank aus.

Weil die meisten Adressanfragen der CPU 12 sich auf interne Speicherorte oder Lokalisationen beziehen, ist die Notwendigkeit für zusätzliche Taktzyklen zum Lokalisieren der Off- Chipadressen dadurch stark reduziert, dass die jeweiligen Speichersegmente 54 vorgesehen sind. Insbesondere in dem Fall, bei welchem sequenzielle Adressen vorliegen, kann auf die Speicherinhalte innerhalb eines einzigen Taktzyklus' zugegriffen werden.

Obwohl der Speicherschutzmechanismus anhand einer bevorzugten Ausführungsform der Erfindung beschrieben wurde, kann die Erfindung verschiedene Abwandlungen und Modifikationen aufweisen.


Anspruch[de]

1. On-Chip-Speicherschutzmechanismus für einen integrierten Schaltkreis (10), welcher an eine externe Off- Chip-Speicherstruktur (56) angeschlossen ist, wobei der integrierte Schaltkreis eine RISC-CPU (12), ein Speichermanagementmodul (16) und interne On-Chip- Speicherstrukturen (22, 20, 18) aufweist, wobei der Mechanismus einen adressierbaren Speicherraum erweitert, während er unter Verwendung von Privilegintegratoren (60) ein Überschreiben privilegierter Speicherinhalte verhindert, und welcher des Weiteren aufweist:

- eine Speicherabbildungsstruktur (18, 54) zum Abbilden von Speicheradressen von Speicherinhalten in den inneren Speicherstrukturen und in der externen Speicherstruktur,

- Adresscharakteristika (60), welche mit den Speicheradressen assoziiert sind und welche umfassen die Adresscachebarkeit und Privilegien,

- ein Speicheradressregister (48) zum Empfangen und Speichern einer Speicheradresse von der CPU,

- mehrere Speichersegmente (54) zum Bereitstellen der Adressen von mehrfachen Speicherbereichen, welche auf denselben physikalischen Speicherstrukturort abzubilden sind, und zum Empfangen von Informationen im Hinblick auf die Speichercharakteristika, wobei die Information Cachebarkeitsindikatoren, welche auf die Cachebarkeit von Adressen hinweisen, und Privilegindikatoren aufweisen, und

- ein Standardspeichersegment (66), zum Aufspannen eines Gesamtspeicherbankraums,

- wobei die mehrfachen Speicherbereiche unterschiedliche Speicherinhalte mit vorbestimmten Privilegien aufweisen, welche durch die Privilegindikatoren angezeigt werden, und

- wobei die mehrfachen Speichersegmente auf den Empfang einer Speicheradresse vom Adressregister die Speicheradresse mit den Adressen der mehrfachen Speicherbereiche vergleichen, um den physikalischen Speicherort zu lokalisieren.

2. Speicherschutzmechanismus nach Anspruch 1, bei welchem die mehrfachen Speichersegmente (54) jeweils ein Segmentdeskriptorregister (60) zum Einstellen der Adresscharakteristika, ein Startregister (62) zum Empfangen der Startadresse eines physikalischen Speicherblocks, welcher den Speicherbereich bildet, und ein Stoppregister (64) aufweisen zum Einstellen der Endadresse des physikalischen Speicherblocks.

3. Speicherschutzmechanismus nach Anspruch 2, bei welchem das Segmentdeskriptorregister (60) mehrfache charakteristische Blöcke aufweist, welche mit den Adresscharakteristika assoziiert sind und welche mit einen Systemprivilegblock, einen Benutzerprivilegblock, einen Cachebarkeitsblock, einen Wortlängenblock und einen Speicherbankzuordnungsblock aufweisen.

4. Speicherschutzmechanismus nach Anspruch 2, bei welchem das Standardspeichersegment (66) ein Standardsegmentdeskriptorregister aufweist, welches nach einem Rücksetzen oder Reset des Systems verwendet wird und nur dann, falls eine Speicheradresse nicht zu einer Adresse in irgendeinem anderen Segmentdeskriptorregister passt.

5. Speicherschutzmechanismus nach Anspruch 1, bei welchem die mehreren Speichersegmente (54) jeweils aufweisen:

- ein Segmentdeskriptorregister (60) zum Empfangen der Adresscharakteristika,

- ein Startregister (62) zum Einstellen der Startadresse eines physikalischen Speicherblocks, welcher den Speicherbereich bildet, und

- ein Stoppregister (64) zum Einstellen der Endadresse des physikalischen Speicherblocks.

6. Speicherschutzmechanismus nach Anspruch 5, bei welchem das Segmentdeskriptorregister mehrfache charakteristische Blöcke aufweist, welche mit den Speichercharakteristika assoziiert sind und welche einen Systemprivilegblock, einen Benutzerprivilegblock, einen Cachebarkeitsblock, einen Wortlängenblock, einen Speicherbankzuordnungsblock aufweisen.

7. Speicherschutzmechanismus nach Anspruch 5, bei welchem das Standardspeichersegment (66) ein Standardsegmentdeskriptorregister aufweist, welches nach einem Rücksetzen des Systems oder einem Systemreset verwendet wird und nur dann, wenn eine Speicheradresse nicht zu einer Adresse in irgendeinem Segmentdeskriptorregister passt.







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