DE60222406T2 - Geänderter harvard-architektur prozessor, mit program-speicher eingemapptem daten-speicher und schutz vor der fehlerhaften durchführung - Google Patents

Geänderter harvard-architektur prozessor, mit program-speicher eingemapptem daten-speicher und schutz vor der fehlerhaften durchführung Download PDF

Info

Publication number
DE60222406T2
DE60222406T2 DE60222406T DE60222406T DE60222406T2 DE 60222406 T2 DE60222406 T2 DE 60222406T2 DE 60222406 T DE60222406 T DE 60222406T DE 60222406 T DE60222406 T DE 60222406T DE 60222406 T2 DE60222406 T2 DE 60222406T2
Authority
DE
Germany
Prior art keywords
data
processor
program
memory space
memory
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.)
Expired - Lifetime
Application number
DE60222406T
Other languages
English (en)
Other versions
DE60222406D1 (de
Inventor
Michael Pepperell CATHERWOOD
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE60222406D1 publication Critical patent/DE60222406D1/de
Application granted granted Critical
Publication of DE60222406T2 publication Critical patent/DE60222406T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf einen Prozessor mit geänderter Harvard-Architektur, der Programmspeicherbereich eingemappten Datenspeicherbereich aufweist und Schutz vor fehlerhafter Durchführung von Dateneinträgen im Programmspeicherbereich aufweist.
  • Hintergrund der Erfindung
  • Prozessoren, umfassend Mikroprozessoren, digitale Signalprozessoren und Mikrocontroller werden durch das Ausführen von Anwendungsprogrammen wirksam, die in einer oder mehreren Reihen von in einem Speicher abgelegten Programmanweisungen verkörpert sind. Die Prozessoren führen die Software aus durch das Abrufen der Programmanweisungen aus der Reihe von Programmanweisungen, das Dekodieren der Programmanweisungen und das Ausführen von diesen. Zusätzlich zu Programmanweisungen werden auch Daten in den Speicher abgespeichert, auf den durchden Prozessor zugegriffen werden kann. Im Allgemeinen verarbeiten die Programmanweisungen Daten durch Zugreifen auf Daten im Speicher, Modifizieren der Daten und Abspeichern der modifizierten Daten im Speicher.
  • Eine gut bekannte Architektur für Prozessoren ist als die Harvard-Architektur bekannt. Bei dieser Architektur werden Daten und Programmanweisungen in getrennten Speichern abgelegt, auf die gleichzeitig zugegriffen werden kann. Auf Grund dieses gleichzeitigen Zugriffs stellt die Harvard-Architektur gegenüber anderen Architekturen wesentliche Vorteile in der Verarbeitungsgeschwindigkeit zur Verfügung. Ein typischer Prozessor in Harvard-Architektur, der internen Speicher aufweist, weist zwei getrennte Speicher auf, einen für Daten und einen für Programmanweisungen. Um die Speicherkapazität solch eines Prozessors zu erweitern, muss Speicher außerhalb des Prozessors hinzugefügt werden. Da jedoch ein Prozessor in Harvard-Architektur zwei getrennte Speicher aufweist, müssen, um sowohl den Datenspeicher als auch den Programmanweisungsspeicher zu erweitern, zwei getrennte externe Speicher hinzugefügt werden. Dies ist ein wesentlicher Nachteil, wenn kostengünstige Anordnungen gebaut werden.
  • US 5,034,887 offenbart einen Mikroprozessor, der eine Harvard-Architektur mit einem Datenspeicher, einem Anweisungsspeicher einem gemeinsamen Bereich an Speicher aufweist, um Daten und/oder Anweisungen zu speichern. US 5,706,466 offenbart eine hybride Harvard/von Neumann Datenverarbeitungsanordnung, die ebenfalls einen kombinierten Daten-/Anweisungsspeicher umfasst. WO 96/11443 offenbart ein erweitertes Harvard-Architektur Speichersystem, das einen Adressspeicherbereich zum Vorhalten einer geordneten Reihenfolge von Programmspeicheradressen und einen Wertespeicherbereich zum Vorhalten einer Reihe von damit in Beziehung stehenden Datenwertsätzen aufweist. US 5,040,178 offenbart im Allgemeinen ein Verfahren zum Fehlerschutz für eine Mikroprozessoranordnung.
  • Es ergibt sich ein Bedarf für einen Prozessor, der eine Architektur aufweist, die die Vorteile der Verarbeitungsgeschwindigkeit der Harvard-Architektur zur Verfügung stellt, aber keine zwei getrennten externen Speicher erfordert, um sowohl den Datenspeicher als auch den Programmanweisungsspeicher zu erweitern. Eine Lösung für dieses Problem ist in dem US Patent 6,728,856 beschrieben, das nach dem Anmeldetag dieser Anmeldung veröffentlicht wurde. Der beschriebene Prozessor weist getrennten Programmspeicherbereich und Datenspeicherbereich auf, stellt aber die Fähigkeit zur Verfügung, mindestens einen Teilbereich des Programmspeicherbereiches in den Datenspeicherbereich einzumappen. Dies ermöglicht, dass die meisten Programmanweisungen, die verarbeitet werden, die Geschwindigkeitsvorteile von gleichzeitigem Zugriff auf Pro grammanweisungen und Daten erlangen. Es ermöglicht auch, dass der Programmspeicherbereich und der Datenspeicherbereich unter Verwendung von nur einer externen Speichervorrichtung, die sowohl Programmanweisungen wie auch Daten umfasst, außerhalb des Prozessors erweitert werden.
  • Bei dieser Lösung ergibt sich jedoch ein Problem. Unter gewissen Umständen kann der Prozessor einen Eintrag in dem Programmspeicherbereich abrufen und versuchen diesen auszuführen, der in den Datenspeicherbereich eingemappt worden ist und der Daten und keine Programmanweisung enthält. Solch eine Situation kann zum Beispiel in Folge eines Fehlers in der Software auftreten, die ausgeführt wird. Eine versuchte Ausführung von Daten, die keine Programmanweisung sind, kann unvorhersehbare Ergebnisse bewirken. Es ergibt sich ein Bedarf für ein Verfahren, durch das eine versuchte Ausführung von Daten, die keine Programmanweisung sind, festgestellt wird und ausgeglichen werden kann.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung ist ein Verfahren nach Anspruch 1 und ein Prozessor, der das Verfahren nach Anspruch 8 durchführt, der die Fähigkeit bietet, die versuchte Ausführung von Daten festzustellen und auszugleichen, die keine Programmanweisung in einem Prozessor sind, in dem mindestens ein Teilbereich eines Programmspeicherbereiches in einen Datenspeicherbereich eingemappt ist. Dies ermöglicht es dem Prozessor, die Geschwindigkeitsvorteile und die Erweiterungsvorteile ohne das Risiko von unvorhersehbarem Programmausführungsverhalten zur Verfügung zu stellen.
  • Gemäß der vorliegenden Erfindung weist ein Verfahren zum Betrieb eines Prozessors die nachfolgenden Schritte auf: Mappen von mindestens einem Teilbereich eines Programmspeicherbereiches in einen Datenspeicherbereich; Speichern eines Eintrags in den Programmspeicherbereich, der in den Datenspeicherbereich eingemappt ist, wobei der Eintrag Daten und einen Schutzbefehlscode aufweist; Abrufen des Eintrags aus dem Programmspeicherbereich; Versuchen, den abgerufenen Eintrag auszuführen; Abfangen des Schutzbefehlscodes; Verzweigen zu einem Trap Handler; und Ausführen des Trap Handlers.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist der Trap Handler ein Trap Handler für unzulässige Anweisungen, und der Schritt, den Trap Handler auszuführen, weist die Schritte auf, festzustellen, dass der Befehlscode ein Schutzbefehlscode ist, und eine Softwareroutine auszuführen, um den Trap zu verarbeiten. Der Programmspeicherbereich kann im Inneren des Prozessors angeordnet sein. Der Prozessor kann betriebsfähig mit einer externen Speichervorrichtung verbunden sein, die betriebsfähig ist, um Programmanweisungen und Daten abzuspeichern, wobei die externe Speichervorrichtung Programmspeicherbereich aufweist.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist der Trap Handler ein Schutztrap Handler. Der Programmspeicherbereich kann innerhalb des Prozessors angeordnet sein. Der Prozessor kann betriebsfähig mit einer externen Speichervorrichtung verbunden sein, die betriebsfähig ist, um Programmanweisungen und Daten abzuspeichern, wobei die externe Speichervorrichtung Programmspeicherbereich aufweist.
  • Kurze Beschreibung der Figuren
  • Die oben beschriebenen Merkmale und Vorteile der vorliegenden Erfindung werden vollständiger verstanden werden unter Bezugnahme auf die detaillierte Beschreibung und die beigefügten Figuren, in denen:
  • 1 ein funktionales Blockdiagramm einer Ausführungsform eines Prozessorchips darstellt, innerhalb dessen die vorliegende Erfindung Anwendung finden kann.
  • 2 ein funktionales Blockdiagramm eines Datenbusplans zu Verwendung in einem Prozessor 100, wie zum Beispiel dem in 1 gezeigten, darstellt.
  • 3 ein beispielhaftes Speicherabbild eines Datenspeicherbereichs zeigt, der in dem in 2 gezeigten Prozessor ausgeführt werden kann.
  • 4 ein beispielhaftes Blockdiagramm des Einmappens von Programmspeicherbereich in den Datenspeicherbereich darstellt, das gemäß der vorliegenden Erfindung in dem in 2 gezeigten Prozessor ausgeführt werden kann.
  • 5 ein Blockdiagramm eines Datenausführungsschutzschemas darstellt, das gemäß der vorliegenden Erfindung in dem in 2 gezeigten Prozessor ausgeführt werden kann.
  • 6 ein Verarbeitungsflussdiagramm eines Prozesses zur Feststellung und Handhabung der fehlerhaften Ausführung eines Dateneintrags darstellt, das entsprechend der vorliegenden Erfindung in dem in 2 gezeigten Prozessor ausgeführt werden kann.
  • Detaillierte Beschreibung
  • Überblick über die Prozessorelemente
  • 1 stellt ein funktionales Blockdiagramm einer Ausführungsform eines Prozessorchips dar, innerhalb dessen die vorliegende Erfindung Anwendung finden kann. Mit Bezug auf 1 ist ein Prozessor 100 mit externen Vorrichtungen/Anordnungen 140 verbunden. Der Prozessor 100 kann eine beliebige Art von Prozessor sein, zum Beispiel umfassend einen digitalen Signalprozessor (DSP), einen Mikroprozessor, einen Mikrocontroller oder Kombinationen davon. Die externen Vorrichtungen 140 können beliebige Arten von Anordnungen oder Vorrichtungen sein, umfassend Ein-/Ausgabevorrichtungen wie Tastaturen, Anzeigeeinheiten, Lautsprecher, Mikrophone, Speicher oder andere Anordnungen, die Prozessoren umfassen können oder nicht. Außerdem können der Prozessor 100 und die externen Vorrichtungen 140 zusammen eine alleinstehende Anordnung aufweisen.
  • Der Prozessor 100 weist einen Programmdatenspeicher 105 auf, eine Einheit 110 zum Abruf/zur Dekodierung einer Anweisung, Anweisungsausführungseinheiten 115, Datenspeicher und Register 120, Peripheriegeräte 125, Daten I/O 130, und eine Programmzähler- und Schleifensteuereinheit 135. Der Bus 150, der einen oder mehrere gemeinsame Busse umfassen kann, kommuniziert, wie dargestellt, Daten zwischen den Einheiten.
  • Der Programmdatenspeicher 105 speichert in Programmanweisungen verkörperte Software zur Ausführung durch den Prozessor 100 ab. Der Programmdatenspeicher 105 kann jede Art von nichtflüchtigem Speicher, wie zum Beispiel einen Lesespeicher (Read Only Memory – ROM), einen programmierbaren Lesespeicher (Programmable Read Only Memory – PROM), einen elektrisch programmierbaren oder einen elektrisch programmierbaren und löschbaren Lesespeicher (Electrically Programmable Read Only Memory – EPROM oder Electrically Programmable and Erasable Read Only Memory – EEPROM) oder Flash-Datenspeicher umfassen. Außerdem kann der Programmdatenspeicher 105, wie gezeigt, mit externem nichtflüchtigem Speicher 145 ergänzt werden, um die Komplexität der für den Prozessor 100 verfügbaren Software zu erhöhen. Alternativ dazu kann der Programmdatenspeicher flüchtiger Speicher sein, der Programmanweisungen zum Beispiel von einem externen nichtflüchtigen Datenspeicher 145 erhält. Wenn der Programmdatenspeicher 105 ein nichtflüchtiger Speicher ist, kann der Programmdatenspeicher zum Zeitpunkt der Herstellung des Prozessors 100 programmiert werden oder vor oder während der Einrichtung des Prozessors 100 innerhalb einer Anordnung. Im letzteren Szenario kann der Prozessor 100 durch ein Verfahren programmiert werden, das als sogenanntes „In-line Serial Programming" bezeichnet wird.
  • Die Einheit 110 zum Abruf/zur Dekodierung der Anweisung ist mit dem Programmdatenspeicher 105, den Anweisungsausführungseinheiten 115 und dem Datenspeicher 120 verbunden. Die Programmzähler- und Schleifensteuereinheit 135 ist mit dem Programmdatenspeicher 105 und dem Bus 150 verbunden. Die Einheit 110 zum Abruf/zur Dekodierung der Anweisung ruft die Anweisungen aus dem Programmdatenspeicher 105 ab, der durch den im Programmzähler 135 enthaltenen Adresswert angegeben wird. Die Einheit 110 zum Abruf/zur Dekodierung der Anweisung dekodiert die abgerufenen Anweisungen und sendet die dekodierten Anweisungen dann an die entsprechende Ausführungseinheit 115. Die Einheit 110 zum Abruf/zur Dekodierung der Anweisung kann auch Operandeninformation umfassende Adressen von Daten an den Datenspeicher 120 und an funktionelle Elemente senden, die auf die Register zugreifen.
  • Die Programmzähler- und Schleifensteuereinheit 135 weist ein (nicht gezeigtes) Programmzählerregister auf, das eine Adresse der nächsten Anweisung speichert, die abgerufen werden soll. Während der normalen Verarbeitung der Anweisungen kann das Programmzählerregister erhöht werden, um zu bewirken, dass sequentielle Anweisungen abgerufen werden. Alternativ dazu kann der Programmzählerwert, durch Laden eines neuen Werts in diesen über den Bus 150, geändert werden. Der neue Wert kann abgeleitet werden auf der Basis des Dekodierens und Ausführens einer Flusssteuerungsanweisung, wie zum Beispiel einer Verzweigungsanweisung. Außerdem kann der Schleifensteuerungsteilbereich der Programmzähler- und Schleifensteuereinheit 135 verwendet werden, um die Verarbeitung von Wiederholungsanweisungen und eine Schleifenwiederholungssteuerung zur Verfügung zu stellen, wie sie nachstehend näher beschrieben wird.
  • Die Anweisungsausführungseinheiten 115 erhalten die dekodierten Anweisungen von der Einheit 110 zum Abruf/zur Dekodierung der Anweisungen und führen die dekodierten Anweisungen danach aus. Als Teil dieses Verfahrens können die Ausführungseinheiten einen oder zwei Operanden über den Bus 150 abrufen und das Ergebnis in einen Register- oder Speicherort innerhalb des Datenspeichers 120 abspeichern. Die Ausführungseinheiten können eine arithmetische Logikeinheit (Arithmetic Logic Unit – ALU) wie zum Beispiel jene umfassen, die typischerweise in einem Mikrocontroller vorgefunden werden. Die Ausführungseinheiten können auch eine digitale Sig nalverarbeitungseinheit, einen Fließkommaprozessor, einen Ganzzahlenprozessor oder jede andere zweckmäßige Ausführungseinheit umfassen. Eine bevorzugte Ausführungsform der Ausführungseinheiten und ihrer Interaktion mit dem Bus 150, der einen oder mehrere Busse umfassen kann, wird nachstehend detaillierter unter Bezugnahme auf 2 dargestellt.
  • Der Datenspeicher und die Register 120 sind flüchtige Speicher und werden verwendet, um von den Ausführungseinheiten verwendete und erzeugte Daten abzuspeichern. Der Datenspeicher 120 und der Programmdatenspeicher 105 sind vorzugsweise getrennte Speicher zum Abspeichern von Daten beziehungsweise Programmanweisungen. Dieses Format ist im Allgemeinen als eine Harvard-Architektur bekannt. Es wird jedoch angemerkt, dass die Architektur gemäß der vorliegenden Erfindung eine von-Neuman-Architektur oder eine modifizierte Harvard-Architektur sein kann, die die Verwendung von Programmbereich als Datenbereich zulässt. Eine punktierte Linie ist gezeigt, die zum Beispiel den Programmdatenspeicher 105 mit dem Bus 150 verbindet. Dieser Pfad kann Logik für den Abgleich von Datenlesevorgängen aus dem Programmbereich umfassen, wie zum Beispiel während Tabellenlesevorgängen aus dem Programmbereich in den Datenspeicher 120.
  • Unter erneuter Bezugnahme auf 1 kann eine Vielzahl von Peripheriegeräten 125 auf dem Prozessor mit dem Bus 125 verbunden sein. Die Peripheriegeräte können zum Beispiel Analog-Digital-Wandler, Taktgeber, Busschnittstellen und Protokolle umfassen, wie zum Beispiel das Controller Area Network (CAN) Protokoll oder das Universal Serial Bus (USB) Protokoll und anderen Peripheriegeräte. Die Peripheriegeräte tauschen über den Bus 150 Daten mit den anderen Einheiten aus.
  • Die Daten-Ein-/Ausgabe-Einheit 130 kann Sender/Empfänger und andere Logik umfassen, um Schnittstellen zu den externen Vorrichtungen/Anordnungen 140 zu bilden. Die Daten-Ein-/Ausgabe-Einheit 130 kann weiterhin Funktionalität umfassen, um die schaltungsinterne serielle Programmierung des Programmdatenspeichers durch die Daten-Ein-/Ausgabe-Einheit 130 zu ermöglichen.
  • 2 veranschaulicht ein funktionales Blockdiagramm eines Datenbusschemas zur Verwendung in einem Prozessor 100, wie zum Beispiel das in 1 gezeigte, das eine integrierte Mikrocontroller Arithmetic Logic Unit (ALU) 270 und eine digitale Signalverarbeitungs-(DSP)Einheit 230 aufweist. Diese Anordnung kann verwendet werden, um DSP Funktionalität in einen vorhandenen Mikrocontrollerkern zu integrieren. Unter Bezugnahme auf 2 ist der Datenspeicher 120 gemäß 1 als zwei getrennte Speicher ausgeführt; ein X Datenspeicher 210 und ein Y Datenspeicher 220, die jeder durch einen X Adressgenerator 250 beziehungsweise einen Y Adressgenerator 260 adressierbar sind. Der X Adressgenerator kann auch die Adressierung des Y Datenspeicherbereichs ermöglichen, wodurch auf diese Weise erreicht wird, dass der Datenbereich wie ein einzelner zusammenhängender Datenspeicherbereich erscheint, wenn er durch den X Adressgenerator angesprochen wird. Der Bus 150 kann in der Form von zwei Bussen ausgeführt werden, einem für jeden von den X und Y Datenspeichern, um das gleichzeitige Abrufen von Daten aus dem X und Y Datenspeicher zu ermöglichen.
  • Die W Register 240 sind Adress- und/oder Datenregister für allgemeine Zwecke. Die DSP Einheit 230 ist sowohl mit den X als auch den Y Datenspeicherbussen und mit den W Registern 240 verbunden. Die DSP Einheit 230 kann innerhalb eines einzelnen Prozessortakts gleichzeitig Daten aus dem X und dem Y Datenspeicher abrufen, Anweisungen ausführen, die mit den gleichzeitig abgerufenen Daten arbeiten, und das Ergebnis in einen (nicht gezeigten) Sammelspeicher schreiben und ein vorheriges Ergebnis in den X oder Y Datenspeicher oder das W Register 240 schreiben.
  • In einer Ausführungsform kann die ALU 270 nur mit dem X Datenspeicherbus verbunden sein und kann nur Daten vom X Bus abrufen. Die X und Y Datenspeicher 210 und 220 können vom X Adressgenerator jedoch als ein einzelner Datenspeicherbereich angesprochen werden, um die Datenspeichertrennung für die ALU 270 transparent zu machen. Die Datenspeicherorte innerhalb der X und Y Datenspeicher können durch in den W Registern 240 gespeicherte Werte adressiert werden.
  • Jedes beliebige Prozessortaktschema kann zum Abrufen und Ausführen von Anweisungen ausgeführt werden. Es folgt jedoch ein bestimmtes Beispiel, um eine Ausführungsform der vorliegenden Erfindung zu veranschaulichen. Jeder Anweisungstakt setzt sich aus vier Q Taktzyklen Q1 bis Q4 zusammen. Die vierphasigen Q Zyklen stellen Taktsignale zur Verfügung, um die Teilbereiche zum Dekodieren, Lesen, Verarbeiten der Daten und Schreiben der Daten in jedem Anweisungszyklus zu koordinieren.
  • Gemäß einer Ausführungsform des Prozessors 100 führt der Prozessor 100 gleichzeitig zwei Operationen aus – er ruft die nächste Anweisung ab und führt die vorliegende Anweisung aus. Dementsprechend treten die zwei Prozesse gleichzeitig auf. Die nachfolgende Reihenfolge von Ereignissen kann zum Beispiel den nachfolgenden Anweisungsabrufzyklus umfassen:
    • Q1: Anweisung abrufen
    • Q2: Anweisung abrufen
    • Q3: Anweisung abrufen
    • Q4: Anweisung in Prefetchregister auffangen, PC (Program Counter) erhöhen
  • Die nachfolgende Reihenfolge von Ereignissen kann zum Beispiel den Anweisungsausführungszyklus für eine einzelne Operandenanweisung umfassen:
    • Q1: Anweisung in IR auffangen, dekodieren, und Adressen von Operandendaten feststellen
    • Q2: Operanden abrufen
    • Q3: durch Anweisung festgelegte Funktion ausführen und Zieladresse für die Daten berechnen
    • Q4: Ergebnis in Zieladresse schreiben
  • Die nachfolgende Reihenfolge von Ereignissen kann zum Beispiel unter Verwendung eines Prefetchmechanismus für Daten den Anweisungsausführungszyklus für eine zweifache Operandenanweisung umfassen. Diese Anweisungen rufen vorab die zweifachen Operanden gleichzeitig aus den X und Y Datenspeichern ab und speichern sie in die in der Anweisung angegebenen Register. Sie ermöglichen gleichzeitig die Ausführung von Anweisungen auf die während des vorherigen Zyklus abgerufenen Operanden.
    • Q1: Anweisung in IR auffangen, Dekodieren, und Adressen von Operandendaten feststellen
    • Q2: Operanden vorab in angegebene Register abrufen, Operation in der Anweisung ausführen
    • Q3: Operation in der Anweisung ausführen, Zieladresse für Daten berechnen
    • Q4: Ausführung abschließen, Ergebnis in Zieladresse schreiben
  • Ein beispielhaftes Speicherabbild des Datenbereichsspeichers 300 ist in 3 gezeigt. Der Datenbereichsspeicher 300 weist eine Vielzahl von Speicherblöcken auf, die in X Adressdatenspeicher und Y Adressdatenspeicher unterteilt sind. Typischerweise ist der Datenbereichsspeicher 300 als Schreib- und Lesespeicher mit Direktzugriff (Random Access Read-Write Memory – RAM), ausgeführt, um auf diese Weise zu ermöglichen, dass Daten wie erforderlich gelesen und geschrieben werden können. Jedoch kann auch Festwertspeicher (Read-Only Memory – ROM) vorteilhaft für mindestens einen Teilbereich des Datenbereichsspeichers 300 verwendet werden. Zum Beispiel können konstante Datenwerte, Nachschlagetabel len, usw. zweckmäßig in ROM gespeichert werden. In dem in 3 gezeigten Beispiel weist der X Adressdatenspeicher die Speicherblöcke 302, 304, 306 und 308 auf, während der Y Adressdatenspeicher den Speicherblock 310 aufweist. Der Datenbereichsspeicher 300 ist in zwei Blöcke, den X Adressdatenspeicher und den Y Adressdatenspeicher aufgeteilt. Ein Schlüsselelement dieser Architektur ist, dass der Y Adressdatenspeicherbereich eine Teilmenge des X Adressdatenspeicherbereichs ist und vollständig innerhalb des X Adressdatenspeicherbereichs enthalten ist. Um einen scheinbar linearen Adressierungsbereich zur Verfügung zu stellen, würden die X und Y Adressdatenspeicherbereiche typischerweise zusammenhängende Adressen aufweisen, obwohl dies keine architektonische Notwendigkeit ist.
  • In dem in 3 gezeigten Beispiel weist der Speicherblock 302 einen Block aus zusammenhängendem Speicher auf, der bei der Datenspeicheradresse 0x0000 beginnt. Der Speicherblock 302 ist in dem X Adressdatenspeicherbereich reserviert und ist unter Verwendung von direkt den Speicher adressierenden Anweisungen direkt adressierbarer. Der verbleibende X Adressdatenspeicher und die Y Adressdatenspeicherbereiche sind unter Verwendung von anderen Anweisungen indirekt adressierbar. In dem in 3 gezeigten Beispiel befindet sich der Y Adressdatenspeicherbereich 310 zwischen zwei Blöcken des X Adressdatenspeicherbereichs, Block 304 und 306. Dies ist jedoch nur ein Beispiel, da sich der Y Adressdatenspeicherbereich 310 irgendwo innerhalb des nicht reservierten X Adressdatenspeicherbereichs befinden kann. Die Teilung zwischen den X und Y Adressbereichen ist beliebig und wird durch die Speicherdekodierung festgelegt, die in 2 gezeigt wird. Sowohl der X als auch der Y Adressgenerator können innerhalb des Bereichs des Datenspeicherbereichs 300 beliebige effektive Adressen (EA) erzeugen. Zugriffe auf Speicheradressen, die sich in dem anderen Adressbereich befinden, oder auf Speicheradressen, die nicht durch physischen Speicher ausgeführt sind, geben jedoch Daten mit 0x0000 (alles Nullen) zurück.
  • Der Speicherblock 308 wird in 3 als ein X Adressdatenspeicherblock gezeigt. Der Speicherblock 308, der mindestens einen Teilbereich des Datenspeicherbereichs 300 aufweist, kann als X Adressdatenspeicher, Y Adressdatenspeicher oder eine Mischung aus X Adressdatenspeicher und Y Adressdatenspeicher verwendet werden. Wenn er als X Adressdatenspeicher verwendet wird, kann der Speicherblock 308 in den Programmspeicherbereich eingemappt werden. Dies stellt den transparenten Zugriff auf konstante Daten, wie zum Beispiel abgespeicherte Konstanten, Nachschlagetabellen, usw. vom X Adressdatenspeicherplatz zur Verfügung ohne die Notwendigkeit, spezielle Anweisungen zu verwenden. Dieses Merkmal lässt das Einmappen eines Teilbereichs des Datenspeicherbereiches in einen ungenutzten Bereich des Programmdatenspeichers zu, und, da alle ungenutzten internen Adressen extern eingemappt werden, auf den externen Speicherbus. Dies wird in der 4 gezeigt, die ein beispielhaftes Blockdiagramm des Mappings des Programmspeicherbereichs in den Datenspeicherbereich ist. Der Datenspeicherbereichsblock 308, der ein Teilbereich des Datenspeicherbereiches 300 ist, wird auf eine Datenspeicherbereichsseite 402 im internen Programmspeicherbereich 404 eingemappt. Der Ort der Datenspeicherbereichsseite 402 im internen Programmspeicherbereich 404 wird durch das Seitenregister 406 angegeben. Der interne Programmspeicherbereich 404 wird immer noch für den Zugriff auf Programmanweisungen verwendet, wie durch den Programmzähler (Program Counter – PC) 408 angegeben.
  • Die externe Speichervorrichtung 410 ist mit dem externen Speicherbus 412 des Prozessors verbunden. Die externe Speichervorrichtung 410 weist den externen Programm-/Datenspeicherbereich 414 auf. Da alle ungenutzten internen Adressen extern in den externen Speicherbus eingemappt sind, ist die eingemappte Datenspeicherbereichsseite 402 auch auf die externe eingemappte Datenspeicherbereichsseite 416 eingemappt, die sich in dem externen Programm-/Datenspeicherbereich 412 befindet. Wenn die externe Speichervorrichtung 410 ein RAM ist, dann können Daten aus der eingemapptem externen Datenspeicherbereichsseite 416 gelesen und auf diese geschrieben werden. Der externe Programm-/Datenbereich 414 kann auch externen Programmspeicherbereich 418 umfassen, der getrennt von der eingemappten externen Datenspeicherbereichsseite 416 sein kann, oder der mit der eingemappten externen Datenspeicherbereichsseite 416 überlappen kann.
  • Da der Programmspeicherbereich Daten umfassen kann, die verwendet werden, wenn ein Teilbereich des Programmspeicherbereiches in den Datenspeicherbereich eingemappt ist, besteht eine Gefahr, dass der Prozessor diese Daten fälschlicherweise abruft und versucht, diese auszuführen. Dies kann zum Beispiel geschehen, wenn ein Fehler in einem Anwendungsprogramm vorliegt, das auf dem Prozessor abläuft, der den Programmzähler (PC) auf eine Speicheradresse im Programmspeicherbereich setzt, in der Daten abgespeichert sind. Dieses Problem kann sich ergeben, wenn Daten im internen Programmspeicherbereich gespeichert werden und tritt noch wahrscheinlicher auf, wenn Daten in einer externen Speichervorrichtung gespeichert werden. Die vorliegende Erfindung weist einen Mechanismus zum Feststellen von solchen fehlerhaften Zugriffen auf und stellt die Fähigkeit zur Verfügung, mit solchen Fehlern umzugehen.
  • Ein Blockdiagramm des Datenausführungsschutzschemas der vorliegenden Erfindung ist in 5 gezeigt. Der Datenspeicherbereich 502, einschließlich einer Vielzahl von Dateneinträgen 504, wird in einen Datenspeicherblockteilbereich 506 des Programmspeicherbereichs 508 eingemappt. Der Programmspeicherbereich 508 weist auch einen oder mehrere Blöcke von Programmanweisungen auf, wie zum Beispiel die Programmanweisungsblöcke 510 und 512. Wie gezeigt, weist jeder Dateneintrag im Datenspeicherbereich 502, wie zum Beispiel der Dateneintrag 514, 16 Bits an Daten auf. Jeder Programmanweisungseintrag, wie zum Beispiel der Programmanweisungseintrag 516 im Programmspeicherbereich 508, weist 24 Bits der Programmanweisung auf. Die Einträge im Datenspeicherblock 506 des Programmspeicherbereichs 508, wie zum Beispiel der Eintrag 518, bestehen ebenso aus 24 Bits. Da ein Dateneintrag nur 16 Bits erfordert, wie zum Beispiel der Datenteilbereich 520 des Eintrags 518, werden 8 Bits jedes Eintrags im Datenspeicherblock 506 nicht von Daten verwendet und können für andere Funktionen verwendet werden. In der vorliegenden Erfindung wird dieser andere Teilbereich verwendet, um einen Schutzbefehlscode 522 zu halten, der es ermöglicht, dass die fehlerhafte Ausführung eines Dateneintrags festgestellt wird.
  • Ein Verfahren 600 zur Feststellung und Handhabung der fehlerhaften Ausführung eines Dateneintrags ist in 6 gezeigt. Das Verfahren beginnt mit Schritt 602, in dem Daten in den Datenspeicherbereich gespeichert werden, der von Programmspeicherbereich gemappt wurde. Diese Daten werden in die unteren 16 Bits jedes Eintrags abgespeichert, der verwendet wird. Zusätzlich zu den Daten, die abgespeichert werden, wird ein Schutzbefehlscode in die oberen 8 Bits (Byte) jedes Dateneintrags abgespeichert, der verwendet wird. Typischerweise wird der Schutzbefehlscode abgespeichert, wenn der Dateneintrag abgespeichert wird. Da Programmdatenspeicher typischerweise unter Verwendung von nichtflüchtigem Speicher ausgeführt wird, werden die im Programmdatenspeicher abgelegten Programmanweisungen zum Beispiel während des Produktionsprozesses in den Programmdatenspeicher abgespeichert. Die Schutzbefehlscodes können in diesem Schritt im Produktionsprozess leicht in den Programmdatenspeicher gespeichert werden. Dies gilt sowohl für den internen Programmdatenspeicher als auch für nichtflüchtigen externen Datenspeicher.
  • In Schritt 604 wird durch Ausführen der geeigneten Programmanweisungen Programmspeicherbereich in den Datenspeicherbereich eingemappt. In Schritt 606 ruft der Prozessor fälschlicherweise Daten ab und versucht diese auszuführen, die in einem Eintrag in dem Datenspeicherbereich gespeichert wurden, der von Programmspeicherbereich gemappt wurde. Da der Prozessor eine Programmanweisung abruft, behandelt der Prozessor den Eintrag als einen Programmanweisungseintrag und ruft die gesamten 24 Bits des Eintrags ab. Die oberen 8 Bits des Eintrags sind der Schutzbefehlscode, während die unteren 16 Bits die Daten im Eintrag sind. Der Prozessor versucht, den abgerufenen Eintrag auszuführen, und versucht insbesondere den Schutzbefehlscode zu dekodieren. In Schritt 608 bewirkt das versuchte Dekodieren des Schutzbefehlscodes das Auftreten eines Prozessortraps. Ein Trap kann als ein nicht maskierbarer, stapelfähiger Interrupt angesehen werden. Sie stellen ein Mittel zur Verfügung, durch das fehlerhafter Betrieb während der Softwarefehlerprüfung und während des Betriebs der Software korrigiert werden kann. Bei Auftreten eines Traps wird der Ausführungsfluss des Prozessors in Schritt 610 zu einem Trap Handler gerichtet. Das heißt, der Programmzähler des Prozessors wird mit einem Wert geladen, der auf den Trap Handler zeigt. Der Trap Handler ist eine Softwareroutine, die bei Auftreten der abgefangenen Bedingung die entsprechende korrigierende Aktion ergreift. Der Wert wird in einer Ausnahmevektortabelle gespeichert, die Vektoren für eine Vielfalt von Ausnahmebedingungen, wie zum Beispiel Rücksetzen, Stapelüberlauf, Adressfehler, unzulässige Anweisungstraps, arithmetische Fehler, usw. aufweist. Jeder Eintrag in der Ausnahmevektortabelle zeigt auf einen Ausnahmehandler, der bei Auftreten der entsprechenden Ausnahme die entsprechende Aktion ergreift. In Schritt 612 behandelt der Trap Handler den Fehler. Typischerweise erzwingt der Trap Handler einfach ein Rücksetzen des Prozessors. Dies würde zum Beispiel in einer Ausführung erfolgen, in der eine eigenständige Anwendung im Prozessor ausgeführt wird. Da ein Versuch, einen Dateneintrag auszuführen, wahrscheinlich ein Ergebnis eines ernsten Programmfehlers ist, ist das Ausführen eines Rücksetzens des Prozessors oft die beste Art, sich von solch einem Fehler zu erholen. In einer Ausführungsform, in der ein Betriebssystem den Prozessor steuert, kann es möglich sein, einfach das Anwendungsprogramm zu beenden, das den Fehler bewirkt hat, und zu ermöglichen, dass sich das Betriebssystem vom Fehler erholt.
  • In einer bevorzugten Ausführungsform wird der Trapvektor für unzulässige Anweisungen verwendet, um den Prozessor zu einer Routine zu verzweigen, die die beabsichtigte Ausführung eines Schutzbefehlscodes handhabt. Der Schutzbefehlscode muss einer der möglichen 8 Bit Befehlscodes sein, der nicht von irgendeiner Anweisung des Prozessors verwendet wird. Die versuchte Ausführung dieses Befehlscodes führt zu einem unzulässigen Anweisungstrap. Der Trap Handler für unzulässige Anweisungen muss dann den Befehlscode prüfen, der den unzulässigen Anweisungstrap bewirkt hat, feststellen, dass der Befehlscode der Schutzbefehlscode ist, und die angemessenen Softwareroutinen ausführen, um den Trap zu bearbeiten, was typischerweise das Korrigieren des Fehlerzustands einschließt. Alternativ dazu kann es einen definierten Schutztrap geben, der getrennt von dem unzulässigen Anweisungstrap besteht. Die versuchte Ausführung des Schutzbefehlscodes bewirkt, dass ein Schutztrap anstatt eines allgemeinen unzulässigen Anweisungstraps auftritt. Da der Prozessor bereits festgestellt haben wird, dass der Befehlscode, dessen Ausführung versucht wurde, der Schutzbefehlscode war, muss der Schutztrap dann nur die entsprechenden Softwareroutinen ausführen, um den Fehlerzustand zu behandeln.
  • In der oben beschriebenen Ausführungsform ist der interne Programmdatenspeicher als eine Vielzahl von Einträgen mit 24 Bits organisiert, von denen jeder einen 16 Bit Dateneintrag und einen 8 Bit Schutzbefehlscode enthalten kann. Die vorliegende Erfindung erstreckt sich auch auf eine Anzahl von zusätzlichen und alternativen Ausführungsformen. Zum Beispiel kann ein externer Datenspeicher verwendet werden, in dem Einträge mit 24 Bits gespeichert sind. In dieser Ausführungsform kann ein Eintrag mit 24 Bit einen Dateneintrag mit 16 Bit und einen Schutzbefehlscode mit 8 Bit enthalten. Wenn der externe Speicher ein nichtflüchtiger Datenspeicher ist, dann können die Dateneinträge und Schutzbefehlscodes, zusammen mit beliebigen Programmanweisungen, während des Produktionsprozesses im externen Speicher abgelegt werden. Wenn der externe Speicher ein flüchtiger Datenspeicher ist, dann müssen die Dateneinträge und die Schutzbefehlscodes vom Prozessor in den externen Datenspeicher abgespeichert werden.
  • Dateneinträge können alternativ dazu ohne Schutzbefehlscodes im externen Speicher als 16 Bit Dateneinträge abgelegt werden, und folglich ist dies keine Ausführungsform der Erfindung. Der externe Speicher kann an den Prozessor angeschlossen werden unter Verwendung einer Speicherbusanordnung, der bekannt ist, dass die Dateneinträge 16 Bits lang sind. Der an den externen Speicher angeschlossene Speicherbus kann zum Beispiel eine Breite von 16 Bits aufweisen anstelle der 24 Bits, die für Programmanweisungen erforderlich wären. Als ein anderes Beispiel kann der Adressbereich des externen Speichers, der in den Datenspeicher des Prozessors eingemappt ist, verwendet werden, um einen Teilbereich des externen Speichers zu kennzeichnen, der Dateneinträge anstelle von Programmeinträgen abspeichert. In jedem der Beispiele kann der Prozessor einen versuchten Zugriff auf Programmanweisungen durch den externen Speicher oder den Teilbereich des externen Speichers feststellen, der Dateneinträge abspeichert. Bei der Feststellung von einem solchen versuchten Zugriff kann der Prozessor direkt einen Schutztrap ausführen. Alternativ dazu kann der Prozessor einfach einen Schutzbefehlscode auf die obersten 8 Bits des Programmanweisungsbusses erzwingen, der ebenfalls bewirkt, dass ein Schutztrap ausgeführt wird.
  • Während bestimmte Ausführungsformen der vorliegenden Erfindung veranschaulicht und beschrieben worden sind, wird es von jenen, die gewöhnliche Kenntnisse in der Technik aufweisen, verstanden werden, dass Abänderungen an diesen Ausführungsformen ausgeführt werden können, ohne vom Geist und Schutzumfang der Erfindung abzuweichen. Zum Beispiel ist die vorliegende Erfindung in Bezug auf Dateneinträge mit 16 Bit, Programmanweisungseinträge mit 24 Bit und Befehlscodes mit 8 Bit beschrieben worden. Eine Person mit Kenntnissen in der Technik erkennt jedoch, dass solche spezifischen Werte nur Beispiele sind und dass andere Anordnungen und Anzahlen von Bits verwendet werden können, ohne vom Schutzumfang der Erfindung abzuweichen. Die vorliegende Erfindung erstreckt sich auf jegliche und alle solchen alternativen Anordnungen und Anzahlen von Bits.

Claims (14)

  1. Verfahren, einen Prozessor (100) zu betreiben, das die Schritte umfasst: Abbilden von mindestens einem Teilbereich eines Programmspeicherplatzes (105; 404; 508) auf einen Datenspeicherplatz (300; 502); Abspeichern eines Eintrags in den Programmspeicherplatz (105; 404; 508), der auf den Datenspeicherplatz (300; 502) abgebildet ist, wobei der Eintrag Daten (DATA) und einen Schutzbefehlscode (POC) umfasst; Abrufen des Eintrags vom Programmspeicherplatz (105; 404; 508); Versuchen, den abgerufenen Eintrag auszuführen; Abfangen des Schutzbefehlscodes; Verzweigen auf einen Trap Handler; und Ausführen des Trap Handlers.
  2. Verfahren gemäß Anspruch 1, wobei der Trap Handler ein Trap Handler für unzulässige Anweisungen ist, und der Schritt, den Trap Handler auszuführen, die Schritte umfasst: Ermitteln, dass der Befehlscode ein Schutzbefehlscode (POC) ist; und Ausführen einer Softwareroutine, um den Trap zu handhaben.
  3. Verfahren gemäß Anspruch 2, wobei der Programmspeicherplatz (105; 404; 508) intern im Prozessor (100) angeordnet ist.
  4. Verfahren gemäß Anspruch 3, wobei der Prozessor (100) betriebsfähig mit einer externen Speichervorrichtung (410) verbunden ist, die betriebsfähig ist, um Programmanweisungen und Daten abzuspeichern, wobei die externe Speichervorrichtung (410) Programmspeicherplatz (105; 404; 508) umfasst.
  5. Verfahren gemäß Anspruch 1, wobei der Trap Handler ein Schutz-Trap Handler ist.
  6. Verfahren gemäß Anspruch 5, wobei der Programmspeicherplatz (105; 404; 508) intern im Prozessor (100) angeordnet ist.
  7. Verfahren gemäß Anspruch 6, wobei der Prozessor betriebsfähig mit einer externen Speichervorrichtung verbunden ist, die betriebsfähig ist, um Programmanweisungen und Daten abzuspeichern, wobei die externe Speichervorrichtung Programmspeicherplatz umfasst.
  8. Prozessor, umfassend Mittel zum Abbilden von mindestens einem Teilbereich (402; 504) von einem Programmspeicherplatz (105; 404; 508) auf einen Datenspeicherplatz (300; 502); Mittel zum Abspeichern eines Eintrags in den Programmspeicherplatz (402; 504), der auf den Datenspeicherplatz abgebildet (300; 502) ist, wobei der Eintrag Daten (DATA) und einen Schutzbefehlscode (POC) umfasst; Mittel zum Abrufen eines Eintrags vom Programmspeicherplatz; Mittel zum Versuchen, den abgerufenen Eintrag auszuführen; Mittel zum Abfangen des Schutzbefehlscodes; Mittel zum Verzweigen auf einen Trap Handler; und Mittel zum Ausführen des Trap Handlers.
  9. Prozessor gemäß Anspruch 8, wobei der Trap Handler ein Trap Handler für unzulässige Anweisungen ist und die Ausführung des Trap Handlers umfasst: Ermitteln, dass der Befehlscode ein Schutzbefehlscode (POC) ist; und Ausführen einer Softwareroutine, um den Trap zu handhaben.
  10. Prozessor gemäß Anspruch 9, wobei der Programmspeicherplatz (105; 404; 508) intern im Prozessor angeordnet ist.
  11. Prozessor gemäß Anspruch 10, wobei der Prozessor betriebsfähig mit einer externen Speichervorrichtung (410) verbunden ist, die betriebsfähig ist, um Programmanweisungen und Daten abzuspeichern, wobei die externe Speichervorrichtung (410) Programmspeicherplatz (414) umfasst.
  12. Prozessor gemäß Anspruch 8, wobei der Trap Handler ein Schutz-Trap Handler ist.
  13. Prozessor gemäß Anspruch 12, wobei der Programmspeicherplatz (105; 404; 508) intern im Prozessor angeordnet ist.
  14. Prozessor gemäß Anspruch 13, wobei der Prozessor betriebsfähig mit einer externen Speichervorrichtung verbunden ist, die betriebsfähig ist, um Programmanweisungen und Daten abzuspeichern, wobei die externe Speichervorrichtung (410) Programmspeicherplatz (414) umfasst.
DE60222406T 2001-06-01 2002-05-29 Geänderter harvard-architektur prozessor, mit program-speicher eingemapptem daten-speicher und schutz vor der fehlerhaften durchführung Expired - Lifetime DE60222406T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/870,460 US7007172B2 (en) 2001-06-01 2001-06-01 Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US870460 2001-06-01
PCT/US2002/016705 WO2002099647A1 (en) 2001-06-01 2002-05-29 Modified harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection

Publications (2)

Publication Number Publication Date
DE60222406D1 DE60222406D1 (de) 2007-10-25
DE60222406T2 true DE60222406T2 (de) 2008-06-05

Family

ID=25355423

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60222406T Expired - Lifetime DE60222406T2 (de) 2001-06-01 2002-05-29 Geänderter harvard-architektur prozessor, mit program-speicher eingemapptem daten-speicher und schutz vor der fehlerhaften durchführung

Country Status (6)

Country Link
US (2) US7007172B2 (de)
EP (1) EP1393183B1 (de)
AT (1) ATE373267T1 (de)
DE (1) DE60222406T2 (de)
TW (1) TW556081B (de)
WO (1) WO2002099647A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981079B2 (en) * 2002-03-21 2005-12-27 International Business Machines Corporation Critical datapath error handling in a multiprocessor architecture
GB2409543B (en) * 2003-12-23 2006-11-01 Advanced Risc Mach Ltd Interrupt masking control
US7480828B2 (en) 2004-06-10 2009-01-20 International Business Machines Corporation Method, apparatus and program storage device for extending dispersion frame technique behavior using dynamic rule sets
US20060136679A1 (en) * 2004-12-21 2006-06-22 O'connor Dennis M Protected processing apparatus, systems, and methods
FR2898704B1 (fr) * 2006-03-14 2008-06-06 Proton World Internatinal Nv Protection d'un programme contre un deroutement
US7925923B1 (en) 2008-01-31 2011-04-12 Hewlett-Packard Development Company, L.P. Migrating a virtual machine in response to failure of an instruction to execute
CH699208B1 (fr) * 2008-07-25 2019-03-29 Em Microelectronic Marin Sa Circuit processeur à mémoire partagée et système tampon.
FR2974919B1 (fr) 2011-05-04 2013-12-13 St Microelectronics Rousset Protection d'une memoire volatile contre des virus par changement d'instructions
FR2974920B1 (fr) * 2011-05-04 2013-11-29 St Microelectronics Rousset Protection d'une memoire volatile contre des virus par modification du contenu d'une instruction
WO2013145133A1 (ja) * 2012-03-27 2013-10-03 富士通株式会社 データ処理装置およびデータ処理方法
EP3289442B1 (de) 2015-04-30 2023-04-19 Microchip Technology Incorporated Zentrale prozessoreinheit mit verbessertem befehlssatz

Family Cites Families (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US474279A (en) * 1892-05-03 arnold
GB1410631A (en) 1972-01-26 1975-10-22 Plessey Co Ltd Data processing system interrupt arrangements
US3781810A (en) 1972-04-26 1973-12-25 Bell Telephone Labor Inc Scheme for saving and restoring register contents in a data processor
JPS5241098B2 (de) 1973-02-01 1977-10-17
US3886524A (en) * 1973-10-18 1975-05-27 Texas Instruments Inc Asynchronous communication bus
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US4074353A (en) * 1976-05-24 1978-02-14 Honeywell Information Systems Inc. Trap mechanism for a data processing system
US4090250A (en) * 1976-09-30 1978-05-16 Raytheon Company Digital signal processor
JPS5833572B2 (ja) * 1977-10-21 1983-07-20 株式会社東芝 情報処理方式
GB2059652B (en) 1979-09-29 1983-08-24 Plessey Co Ltd Memory protection system using capability registers
JPS5674774A (en) * 1979-11-22 1981-06-20 Nec Corp Arithmetic circuit with overflow detector
US4398244A (en) 1980-05-07 1983-08-09 Fairchild Camera & Instrument Corporation Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
JPS5750049A (en) 1980-09-09 1982-03-24 Toshiba Corp Shifting circuit
JPS5775335A (en) 1980-10-27 1982-05-11 Hitachi Ltd Data processor
JPS5776634A (en) * 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
GB2095441A (en) 1981-03-25 1982-09-29 Philips Electronic Associated A method of storing data and a store therefor
US4488252A (en) 1982-02-22 1984-12-11 Raytheon Company Floating point addition architecture
US4556938A (en) 1982-02-22 1985-12-03 International Business Machines Corp. Microcode control mechanism utilizing programmable microcode repeat counter
US4451885A (en) * 1982-03-01 1984-05-29 Mostek Corporation Bit operation method and circuit for microcomputer
DE3300699C2 (de) * 1983-01-11 1985-12-19 Nixdorf Computer Ag, 4790 Paderborn Schaltungsanordnung zum Adressieren der jeweils ein Adreßvolumen aufweisenden Speicher mehrerer datenverarbeitender Einrichtungen in einem Mehrprozessorsystem mit Systembus
US4626988A (en) 1983-03-07 1986-12-02 International Business Machines Corporation Instruction fetch look-aside buffer with loop mode control
JPS6054049A (ja) * 1983-09-02 1985-03-28 Hitachi Ltd デ−タ処理装置におけるサブル−チンリンク制御方式
US4943940A (en) 1984-09-27 1990-07-24 Advanced Micro Devices, Inc. Floating point add/subtract and multiplying assemblies sharing common normalization, rounding and exponential apparatus
JPS61213927A (ja) * 1985-03-18 1986-09-22 Hitachi Ltd 浮動小数点演算処理装置
US4742479A (en) 1985-03-25 1988-05-03 Motorola, Inc. Modulo arithmetic unit having arbitrary offset and modulo values
US4779191A (en) 1985-04-12 1988-10-18 Gigamos Systems, Inc. Method and apparatus for expanding the address space of computers
JPS6341932A (ja) 1985-08-22 1988-02-23 Nec Corp 分岐命令処理装置
US4768149A (en) 1985-08-29 1988-08-30 International Business Machines Corporation System for managing a plurality of shared interrupt handlers in a linked-list data structure
US4709324A (en) 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
US4800524A (en) * 1985-12-20 1989-01-24 Analog Devices, Inc. Modulo address generator
JPS62180427A (ja) 1986-02-03 1987-08-07 Nec Corp プログラム制御回路
JPH0650462B2 (ja) * 1986-02-18 1994-06-29 日本電気株式会社 シフト数制御回路
US4782457A (en) 1986-08-18 1988-11-01 Texas Instruments Incorporated Barrel shifter using bit reversers and having automatic normalization
JPS6398729A (ja) * 1986-10-15 1988-04-30 Fujitsu Ltd バレルシフタ
US5012441A (en) * 1986-11-24 1991-04-30 Zoran Corporation Apparatus for addressing memory with data word and data block reversal capability
US5007020A (en) * 1987-03-18 1991-04-09 Hayes Microcomputer Products, Inc. Method for memory addressing and control with reversal of higher and lower address
US4841468A (en) * 1987-03-20 1989-06-20 Bipolar Integrated Technology, Inc. High-speed digital multiplier architecture
DE3709836C1 (de) * 1987-03-25 1988-09-29 Eastman Christensen Co Gleitlager fuer Tiefbohrwerkzeuge
US5206940A (en) * 1987-06-05 1993-04-27 Mitsubishi Denki Kabushiki Kaisha Address control and generating system for digital signal-processor
CA1309665C (en) 1987-06-27 1992-11-03 Kenzo Akagiri Amplitude compressing/expanding circuit
JPS648438A (en) 1987-06-30 1989-01-12 Mitsubishi Electric Corp Data processor
JPS6414648A (en) 1987-07-08 1989-01-18 Mitsubishi Electric Corp Arithmetic processor
US5032986A (en) 1987-07-28 1991-07-16 Texas Instruments Incorporated Data processing device with parallel circular addressing hardware
JP2613223B2 (ja) 1987-09-10 1997-05-21 株式会社日立製作所 演算装置
US4959776A (en) 1987-12-21 1990-09-25 Raytheon Company Method and apparatus for addressing a memory by array transformations
JPH01226066A (ja) * 1988-03-04 1989-09-08 Hitachi Ltd ディジタル信号処理プロセッサ
JPH0776911B2 (ja) * 1988-03-23 1995-08-16 松下電器産業株式会社 浮動小数点演算装置
JPH01265347A (ja) 1988-04-18 1989-10-23 Matsushita Electric Ind Co Ltd アドレス生成装置
JP2600293B2 (ja) 1988-06-10 1997-04-16 日本電気株式会社 オーバーフロー補正回路
US5117498A (en) * 1988-08-19 1992-05-26 Motorola, Inc. Processer with flexible return from subroutine
JPH0795320B2 (ja) 1988-10-11 1995-10-11 日本電子株式会社 大容量高速フーリエ変換装置
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
US4926371A (en) * 1988-12-28 1990-05-15 International Business Machines Corporation Two's complement multiplication with a sign magnitude multiplier
US5212662A (en) * 1989-01-13 1993-05-18 International Business Machines Corporation Floating point arithmetic two cycle data flow
US5101484A (en) * 1989-02-14 1992-03-31 Intel Corporation Method and apparatus for implementing an iterative program loop by comparing the loop decrement with the loop value
US4984213A (en) * 1989-02-21 1991-01-08 Compaq Computer Corporation Memory block address determination circuit
US4941120A (en) 1989-04-17 1990-07-10 International Business Machines Corporation Floating point normalization and rounding prediction circuit
US5040178A (en) 1989-05-12 1991-08-13 Chrysler Corporation Method of fault protection for a microcomputer system
JPH03100827A (ja) * 1989-09-14 1991-04-25 Mitsubishi Electric Corp オーバフロー検出回路
US5239654A (en) 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US5197140A (en) * 1989-11-17 1993-03-23 Texas Instruments Incorporated Sliced addressing multi-processor and method of operation
US5099445A (en) * 1989-12-26 1992-03-24 Motorola, Inc. Variable length shifter for performing multiple shift and select functions
IT1247640B (it) 1990-04-26 1994-12-28 St Microelectronics Srl Operazioni booleane tra due qualsiasi bit di due qualsiasi registri
JPH0437927A (ja) * 1990-06-01 1992-02-07 Sony Corp プロセッサの処理方法
US5121431A (en) * 1990-07-02 1992-06-09 Northern Telecom Limited Processor method of multiplying large numbers
FR2664917B1 (fr) * 1990-07-23 1996-07-12 Vaneecke Solaronics Systeme de prevention d'incendie pour batterie de bruleurs radiants
EP0472148B1 (de) * 1990-08-24 2001-05-09 Matsushita Electric Industrial Co., Ltd. Verfahren und Gerät zur Berechnung von Gleitkommadaten
JP3028841B2 (ja) * 1990-09-28 2000-04-04 株式会社東芝 Pwm発生回路
JP2508912B2 (ja) * 1990-10-31 1996-06-19 日本電気株式会社 浮動小数点加算装置
JP2507833B2 (ja) * 1990-12-25 1996-06-19 三菱電機株式会社 マイクロコンピュ−タ
JP2692384B2 (ja) 1990-12-29 1997-12-17 日本電気株式会社 アドレス生成回路
US5706460A (en) * 1991-03-19 1998-01-06 The United States Of America As Represented By The Secretary Of The Navy Variable architecture computer with vector parallel processor and using instructions with variable length fields
US5327566A (en) 1991-07-12 1994-07-05 Hewlett Packard Company Stage saving and restoring hardware mechanism
DE4127579A1 (de) * 1991-08-21 1993-02-25 Standard Elektrik Lorenz Ag Speichereinheit mit einem adressgenerator
US5218239A (en) * 1991-10-03 1993-06-08 National Semiconductor Corporation Selectable edge rate cmos output buffer circuit
EP0540150B1 (de) * 1991-10-29 1999-06-02 Advanced Micro Devices, Inc. Arithmetik-Logik-Einheit
JP2943464B2 (ja) * 1991-12-09 1999-08-30 松下電器産業株式会社 プログラム制御方法及びプログラム制御装置
JPH05284362A (ja) * 1992-04-03 1993-10-29 Mitsubishi Electric Corp ジグザグアドレスの発生方法及びその発生回路
JP3171925B2 (ja) 1992-04-30 2001-06-04 株式会社日立製作所 データ処理装置
US5448706A (en) 1992-05-13 1995-09-05 Sharp Microelectronics Technology, Inc. Address generator for multi-channel circular-buffer style processing
US5469377A (en) 1992-08-18 1995-11-21 Nec Corporation Floating point computing device for simplifying procedures accompanying addition or subtraction by detecting whether all of the bits of the digits of the mantissa are 0 or 1
US5715470A (en) * 1992-09-29 1998-02-03 Matsushita Electric Industrial Co., Ltd. Arithmetic apparatus for carrying out viterbi decoding at a high speed
US5386563A (en) * 1992-10-13 1995-01-31 Advanced Risc Machines Limited Register substitution during exception processing
US5422805A (en) * 1992-10-21 1995-06-06 Motorola, Inc. Method and apparatus for multiplying two numbers using signed arithmetic
US5375080A (en) 1992-12-18 1994-12-20 Xerox Corporation Performing arithmetic on composite operands to obtain a binary outcome for each multi-bit component
US5651121A (en) 1992-12-18 1997-07-22 Xerox Corporation Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand
US5463749A (en) 1993-01-13 1995-10-31 Dsp Semiconductors Ltd Simplified cyclical buffer
US5379240A (en) * 1993-03-08 1995-01-03 Cyrix Corporation Shifter/rotator with preconditioned data
JPH06332792A (ja) * 1993-05-21 1994-12-02 Mitsubishi Electric Corp データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路
US5448703A (en) 1993-05-28 1995-09-05 International Business Machines Corporation Method and apparatus for providing back-to-back data transfers in an information handling system having a multiplexed bus
US5568380A (en) 1993-08-30 1996-10-22 International Business Machines Corporation Shadow register file for instruction rollback
JP3532975B2 (ja) * 1993-09-27 2004-05-31 株式会社ルネサステクノロジ マイクロコンピュータおよびそれを用いて命令を実行する方法
JPH07191831A (ja) 1993-12-27 1995-07-28 Fujitsu Ltd 演算装置
US5564028A (en) 1994-01-11 1996-10-08 Texas Instruments Incorporated Pipelined data processing including instruction trace
JP3325697B2 (ja) * 1994-01-20 2002-09-17 三菱電機株式会社 パワーデバイスの制御装置およびモータの駆動制御装置
JP2932963B2 (ja) * 1994-01-21 1999-08-09 モトローラ・インコーポレイテッド 効率的なビット移動能力を有するデータ・プロセッサとその方法
JPH07253922A (ja) * 1994-03-14 1995-10-03 Texas Instr Japan Ltd アドレス生成回路
FR2718262B1 (fr) 1994-03-31 1996-05-24 Sgs Thomson Microelectronics Mémoire tampon à adressage modulo.
US5450027A (en) 1994-04-08 1995-09-12 At&T Corp. Low-power-dissipation CMOS circuits
JP3208990B2 (ja) * 1994-04-27 2001-09-17 ヤマハ株式会社 信号処理装置
KR0139733B1 (ko) 1994-04-29 1998-07-01 구자홍 부동 소수점 덧셈/뺄셈 연산기의 반올림 방법 및 장치
US5517436A (en) * 1994-06-07 1996-05-14 Andreas; David C. Digital signal processor for audio applications
US5506484A (en) * 1994-06-10 1996-04-09 Westinghouse Electric Corp. Digital pulse width modulator with integrated test and control
US5619711A (en) * 1994-06-29 1997-04-08 Motorola, Inc. Method and data processing system for arbitrary precision on numbers
FR2722590B1 (fr) * 1994-07-15 1996-09-06 Sgs Thomson Microelectronics Circuit logique de multiplication parallele
US5555424A (en) * 1994-10-06 1996-09-10 The Dow Chemical Company Extended Harvard architecture computer memory system with programmable variable address increment
US5642516A (en) * 1994-10-14 1997-06-24 Cirrus Logic, Inc. Selective shadowing of registers for interrupt processing
US5548544A (en) 1994-10-14 1996-08-20 Ibm Corporation Method and apparatus for rounding the result of an arithmetic operation
US5706466A (en) * 1995-01-13 1998-01-06 Vlsi Technology, Inc. Von Neumann system with harvard processor and instruction buffer
US5525874A (en) * 1995-01-30 1996-06-11 Delco Electronics Corp. Digital slope compensation in a current controller
US5659700A (en) 1995-02-14 1997-08-19 Winbond Electronis Corporation Apparatus and method for generating a modulo address
US5867726A (en) * 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
GB2301202B (en) * 1995-05-19 1999-09-22 Advanced Risc Mach Ltd Controlling processing clock signals
JPH08305585A (ja) * 1995-05-11 1996-11-22 Matsushita Electric Ind Co Ltd 割込制御装置
US5748516A (en) * 1995-09-26 1998-05-05 Advanced Micro Devices, Inc. Floating point processing unit with forced arithmetic results
US6025840A (en) * 1995-09-27 2000-02-15 Cirrus Logic, Inc. Circuits, systems and methods for memory mapping and display control systems using the same
US5561384A (en) 1995-11-08 1996-10-01 Advanced Micro Devices, Inc. Input/output driver circuit for isolating with minimal power consumption a peripheral component from a core section
US6205467B1 (en) * 1995-11-14 2001-03-20 Advanced Micro Devices, Inc. Microprocessor having a context save unit for saving context independent from interrupt requests
US5892697A (en) * 1995-12-19 1999-04-06 Brakefield; James Charles Method and apparatus for handling overflow and underflow in processing floating-point numbers
WO1997027544A1 (en) * 1996-01-24 1997-07-31 Sun Microsystems, Inc. Processor with accelerated array access bounds checking
US5764555A (en) * 1996-03-13 1998-06-09 International Business Machines Corporation Method and system of rounding for division or square root: eliminating remainder calculation
US5774711A (en) * 1996-03-29 1998-06-30 Integrated Device Technology, Inc. Apparatus and method for processing exceptions during execution of string instructions
JPH09269891A (ja) * 1996-04-01 1997-10-14 Hitachi Ltd 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置
JPH09305412A (ja) * 1996-05-16 1997-11-28 Mitsubishi Electric Corp 最大割り込み禁止期間測定機能を有するマイクロコンピュータ
US5740419A (en) * 1996-07-22 1998-04-14 International Business Machines Corporation Processor and method for speculatively executing an instruction loop
JP3821316B2 (ja) * 1996-08-06 2006-09-13 ソニー株式会社 演算装置および方法
US6018757A (en) * 1996-08-08 2000-01-25 Samsung Electronics Company, Ltd. Zero detect for binary difference
US6061711A (en) * 1996-08-19 2000-05-09 Samsung Electronics, Inc. Efficient context saving and restoring in a multi-tasking computing system environment
US5917741A (en) * 1996-08-29 1999-06-29 Intel Corporation Method and apparatus for performing floating-point rounding operations for multiple precisions using incrementers
US6061783A (en) * 1996-11-13 2000-05-09 Nortel Networks Corporation Method and apparatus for manipulation of bit fields directly in a memory source
US6058410A (en) * 1996-12-02 2000-05-02 Intel Corporation Method and apparatus for selecting a rounding mode for a numeric operation
US5880984A (en) * 1997-01-13 1999-03-09 International Business Machines Corporation Method and apparatus for performing high-precision multiply-add calculations using independent multiply and add instruments
US6061780A (en) * 1997-01-24 2000-05-09 Texas Instruments Incorporated Execution unit chaining for single cycle extract instruction having one serial shift left and one serial shift right execution units
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US5862065A (en) * 1997-02-13 1999-01-19 Advanced Micro Devices, Inc. Method and circuit for fast generation of zero flag condition code in a microprocessor-based computer
JPH10233652A (ja) * 1997-02-20 1998-09-02 Mitsubishi Electric Corp 巡回形ディジタルフィルタ
GB2323188B (en) * 1997-03-14 2002-02-06 Nokia Mobile Phones Ltd Enabling and disabling clocking signals to elements
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US5875342A (en) * 1997-06-03 1999-02-23 International Business Machines Corporation User programmable interrupt mask with timeout
US6044392A (en) * 1997-08-04 2000-03-28 Motorola, Inc. Method and apparatus for performing rounding in a data processor
US6049858A (en) * 1997-08-27 2000-04-11 Lucent Technologies Inc. Modulo address generator with precomputed comparison and correction terms
US5892699A (en) * 1997-09-16 1999-04-06 Integrated Device Technology, Inc. Method and apparatus for optimizing dependent operand flow within a multiplier using recoding logic
US6044434A (en) * 1997-09-24 2000-03-28 Sony Corporation Circular buffer for processing audio samples
US6377619B1 (en) * 1997-09-26 2002-04-23 Agere Systems Guardian Corp. Filter structure and method
US5900683A (en) * 1997-12-23 1999-05-04 Ford Global Technologies, Inc. Isolated gate driver for power switching device and method for carrying out same
US6397318B1 (en) * 1998-04-02 2002-05-28 Cirrus Logic, Inc. Address generator for a circular buffer
TW436693B (en) * 1998-08-18 2001-05-28 Ind Tech Res Inst Interrupt control device and method for pipeline processor
US6990570B2 (en) * 1998-10-06 2006-01-24 Texas Instruments Incorporated Processor with a computer repeat instruction
US6181151B1 (en) * 1998-10-28 2001-01-30 Credence Systems Corporation Integrated circuit tester with disk-based data streaming
US6681280B1 (en) * 1998-10-29 2004-01-20 Fujitsu Limited Interrupt control apparatus and method separately holding respective operation information of a processor preceding a normal or a break interrupt
US6282637B1 (en) * 1998-12-02 2001-08-28 Sun Microsystems, Inc. Partially executing a pending atomic instruction to unlock resources when cancellation of the instruction occurs
US6356970B1 (en) * 1999-05-28 2002-03-12 3Com Corporation Interrupt request control module with a DSP interrupt vector generator
KR100325430B1 (ko) * 1999-10-11 2002-02-25 윤종용 상이한 워드 길이의 산술연산을 수행하는 데이터 처리장치 및 그 방법
US6523108B1 (en) * 1999-11-23 2003-02-18 Sony Corporation Method of and apparatus for extracting a string of bits from a binary bit string and depositing a string of bits onto a binary bit string
US6694398B1 (en) * 2001-04-30 2004-02-17 Nokia Corporation Circuit for selecting interrupt requests in RISC microprocessors
US6728856B2 (en) * 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
US6552625B2 (en) * 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
CA2383832A1 (en) * 2002-04-24 2003-10-24 Ibm Canada Limited-Ibm Canada Limitee System and method for intelligent trap analysis

Also Published As

Publication number Publication date
US7007172B2 (en) 2006-02-28
ATE373267T1 (de) 2007-09-15
US20030005245A1 (en) 2003-01-02
DE60222406D1 (de) 2007-10-25
WO2002099647A1 (en) 2002-12-12
TW556081B (en) 2003-10-01
US7243372B2 (en) 2007-07-10
EP1393183B1 (de) 2007-09-12
EP1393183A1 (de) 2004-03-03
US20050210284A1 (en) 2005-09-22

Similar Documents

Publication Publication Date Title
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE69723286T2 (de) Echtzeitprogramm-sprachbeschleuniger
DE69631778T2 (de) Flexible implementierung eines systemverwaltungsmodus in einem prozessor
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE60222406T2 (de) Geänderter harvard-architektur prozessor, mit program-speicher eingemapptem daten-speicher und schutz vor der fehlerhaften durchführung
DE112009000344B4 (de) Zugriffsrechte auf eine Speicher-Map
DE60203612T2 (de) Datenverarbeitung mit mehrfachbefehlssätzen
DE60131864T2 (de) Speichern von stapeloperanden in registern
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE2756762A1 (de) Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage
DE102014003690A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE102014003705A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE1274825B (de) Speicherprogrammiertes Datenverarbeitungssystem zur Verarbeitung von Programmen anderer Datenverarbeitungssysteme
CH623947A5 (de)
DE4026912A1 (de) Computersystem
US20070136565A1 (en) Stack underflow debug with sticky base
DE1931966B2 (de) Datenverarbeitungsanlage mit Assoziativspeichern
US6728856B2 (en) Modified Harvard architecture processor having program memory space mapped to data memory space
DE102015222096A1 (de) Schaltung, System und Verfahren zum Speicher-Patchen
DE112016005909T5 (de) Einrichtung und verfahren zum beschleunigen von graphenanalyse
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE102018126036A1 (de) Systeme und verfahren zum setzen eines kachelregisterpaars auf null
DE202019005683U1 (de) Prozessorkern mit Unterstützung einer Befehlssatzarchitektur für heterogene Systeme
EP2215544B1 (de) Verstärkter mikroprozessor oder mikrocontroller
DE60210613T2 (de) Behandlung von unbehandelten operationen in systemen mit mehreren befehlssätzen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition