DE69732793T2 - Acht-bit-mikrokontroller mit risc-architektur - Google Patents

Acht-bit-mikrokontroller mit risc-architektur Download PDF

Info

Publication number
DE69732793T2
DE69732793T2 DE69732793T DE69732793T DE69732793T2 DE 69732793 T2 DE69732793 T2 DE 69732793T2 DE 69732793 T DE69732793 T DE 69732793T DE 69732793 T DE69732793 T DE 69732793T DE 69732793 T2 DE69732793 T2 DE 69732793T2
Authority
DE
Germany
Prior art keywords
bit
register
alu
registers
bus
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
DE69732793T
Other languages
English (en)
Other versions
DE69732793D1 (de
Inventor
Vegard Wollan
Alf-Egil Bogen
Gaute Myklebust
D. John BRYANT
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.)
Atmel Corp
Original Assignee
Atmel Corp
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 Atmel Corp filed Critical Atmel Corp
Application granted granted Critical
Publication of DE69732793D1 publication Critical patent/DE69732793D1/de
Publication of DE69732793T2 publication Critical patent/DE69732793T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7814Specially adapted for real time processing, e.g. comprising hardware timers
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Communication Control (AREA)
  • Image Processing (AREA)

Description

  • TECHNISCHES GEBIET
  • Die Erfindung bezieht sich auf Mikrocontroller im Allgemeinen, und insbesondere auf einen Mikrocontroller, der einen reduzierten Befehlssatz ausführt.
  • ALLGEMEINER STAND DER TECHNIK
  • Die vorliegende Submikron-CMOS-Technologie berücksichtigt die Integration komplexer Mikrocontroller-Architekturen auf einem Chip und lässt dabei genug Siliziumbereich zum Implementieren komplexer Speicher und peripherer Logik übrig. Designarchitekturen und -methoden, die am häufigsten bei im oberen Bereich liegenden 32- und 64-Bit-RISC-Maschinen verwendet werden, können effizient in preiswerten 8-Bit-Mikrocontrollersystemen verwendet und übernommen werden. Mit derartigen leistungsfähigen, jedoch kostengünstiger Mikrocontrollern nimmt der Gesamtintegrationsgrad von Systemen weiterhin zu.
  • Effizientere Programme können in der Hardware-Architektur ausgeführt werden, und mehr Hardware-Funktionen können integriert werden.
  • Die RISC-Architektur hat während der letzten Jahre an Popularität zugenommen. Das gilt vor allem für den durch Apple Computer, IBM und Motorola gemeinsam entwickelten Power PC®. Obwohl es keine Festlegung über näher bestimmende Merkmale der RISC-Prozessoren gibt, gibt es allgemeine Eigenschaften unter den verschiedenen Arten von RISC-Architekturen: (1) die meisten Befehle laufen in einem Zyklus ab; (2) separate und einfache Lade-/Speicherbefehle laufen oft in zwei Zyklen ab; (3) Befehlsdecodierung ist üblicherweise eher festverdrahtet als mikrocodiert, was schnellere Ausführungszeiten zur Folge hat; (4) die meisten Befehle weisen ein festgelegtes Format auf und vereinfachen daher die Befehlsdecodierung; (5) kleinere Befehlssätze und weniger Adressierungsarten; (6) Datenwege unterliegen einem starken Pipelining (Daten werden im Pipeline-Verfahren verarbeitet), was einen hohen Grad an gleichzeitiger Verarbeitung vorsieht; und (7) große Hochgeschwindigkeits-Registersätze bzw. Registersätze mit schnellen Zugriffszeiten (auch als Registerdateien bekannt), um übermäßige Datenübertragungen in und aus dem langsameren System-RAM zu vermeiden.
  • Mehrere Halbleiterhersteller stellen Mikrocontroller her. Beispielsweise bietet Texas Instruments die 8-Bit-Mikrocontroller-Serie TMS370Cx1x an. Obwohl diese Mikrocontroller keine RISC-Architektur verwenden, sehen sie ein RAM (128 oder 256 Byte) vor, das entweder als RAM oder als Universalregistersatz verwendet werden kann. Motorola bietet die 8-Bit-Mikrocontroller-Familie MC6805 an, die ein den Geräten von Texas Instruments ähnliches, zweifach verwendbares RAM verwenden. Microchip Technology bietet die Mikrocontroller-Familie PIC16C5X an. Diese Mikrocontroller verwenden die Harvard-Dualbus-Architektur, bei der Daten- und Programmbefehle separate Speicher und Busse aufweisen. Die PIC16C5X verwendet eine Registerdatei, die gemeinsam mit dem System-RAM genutzt wird. Die PIC16C5X verwendet ein einstufiges Befehls-Pipelining; während ein Befehl ausgeführt wird, wird der nächste Befehl vorab aus dem Programmspeicher abgerufen. Da das RAM gleichzeitig als Register dient, gibt es keinen wirklichen Satz interner Register. Da sämtlicher Speicher als ein statisches RAM vorliegt, gibt es dort, wo Registeroperationen enthalten sind, eine Leistungsreduktion.
  • Wie oben erwähnt, sind schnelle Entwicklungszyklen ein wichtiger Gesichtspunkt beim Entwerfen von Mikrocontrollern. Die Wichtigkeit von Software bei rechnergestützten Systemen steht außer Frage. Daher bezieht sich der Nutzen eines Mikrocontrollerentwurfs direkt auf die Spezifikationsschnittstelle zwischen Programmierern und Hardwaredesignern, nämlich auf den Befehlssatz des Mikrocontrollers. Der Befehlssatz sollte insofern vollständig sein, dass jede berechenbare Funktion in angemessenen Umfang an Programmraum implementierbar sein sollte. Der Befehlssatz sollte insofern effizient sein, dass häufig verwendete Funktionen mit relativ wenigen Befehlen ausführbar sein sollten.
  • US 5,666,210 (veröffentlicht am 9. September 1997 nach dem Prioritätsdatum der vorliegenden Erfindung) offenbart zumindest teilweise eine Datenverarbeitungsvorrichtung mit einem aus JP 04 333 153 (veröffentlicht am 20. November 1992) bekannten, erweiterbarem Adressraum. Die Verarbeitungsvorrichtung umfasst drei Universal-ALUs, die alle für die Daten- und Adressverarbeitung verwendet werden. Zwei ALUs haben Zugriff auf Wortlängenregister, eines für die Wortverarbeitung höherer Ordnung und eine für diejenige niedriger Ordnung. Die dritte ALU hat Zugriff auf ein erweitertes Wortlängenregister. Die Adressierung des erweiterten Adressraums erfolgt durch Festlegen eines vorbestimmten Bits in einem Register während der Adressbearbeitung oder unter Verwendung eines spezifischen Bearbeitungscodes.
  • Es ist daher erstrebenswert, ein Mikrocontrollerdesign vorzusehen, das einen vollständigen und effizienten Befehlssatz für den Anwendungssoftware-Entwickler vorsieht.
  • Die Erfindung ist in Anspruch 1 definiert. Die jeweiligen Ausführungsbeispiele sind in den abhängigen Ansprüchen dargelegt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung stellt einen Mikrocontroller mit einer 8-Bit-RISC-Architektur dar. Ein 8-Bit-Datenbus sieht einen Datenweg zwischen einem RAM-Speicher, einer Registerdatei, einer Universal-8-Bit-Arithmetik-Logik-Einheit (ALU) und einem Statusregister vor. Der Mikrocontroller implementiert die Harvard-Architektur und sieht dabei einen vom RAM-Speicher separaten Programmspeicher und einen vom Datenbus separaten Programmdatenbus vor.
  • Die Registerdatei umfasst eine Vielzahl von 8-Bit-Registern. Bestimmte Register in der Registerdatei können kombiniert werden, um logische 16-Bit-Register vorzusehen. Ein logisches 16-Bit-Register sieht eine effiziente Adressberechnung vor und wird als ein indirekter Adresszeiger in den Daten- und Programmspeicher verwendet. Ob für Daten- oder Programmspeicher, ein 16-Bit-Adressraum steigert durch Erweitern des Programmadressraums sowie des Datenadressraums die Flexibilität und den Nutzen des Mikrocontrollers erheblich. Bei einem bevorzugten Ausführungsbeispiel der Erfindung sieht die Registerdatei drei 8-Bit-Registerpaare vor, auf die als drei unabhängige logische 16-Bit-Register zugegriffen werden kann (d.h. Lese/Schreibzugriff).
  • Um weiterhin die Vorteile der 16-Bit-Adressierung zur Geltung zu bringen, wird eine spezielle, zweite, der Registerdatei zugeordnete Arithmetik-Logik-Einheit verwendet. Die zweite ALU enthält einen 16-Bit-Addierer und sieht 16-Bit-Arithmetik-Operationen für das logische 16-Bit-Register vor. Die zweite ALU kann das 16-Bit-Ergebnis in das logische 16-Bit-Register zurückspeichern. Das 16-Bit-Ergebnis kann außerdem als Adresse dienen. Daher sieht das Vorhandensein der zweiten ALU effiziente 16-Bit-Adressberechnungen ohne Belastung der Universal-8-Bit-ALU vor, was die Betriebsgeschwindigkeit der Vorrichtung verringern würde.
  • Eine weitere Erweiterung des logischen, in der Registerdatei vorgesehenen 16-Bit-Registers ist die Verwendung eines 8-Bit-RAM-Paging- bzw. Seitenadressierungs-Registers. Die 8 Bit des RAM-Paging-Registers sind mit den 16 Bit des logischen 16-Bit- Registers verkettet, um eine logische 24-Bit-Adresse vorzusehen. Diese Eigenschaft bietet einen noch nie da gewesenen Adressbereich für einen Mikrocontroller, dessen grundlegende Architektur im Wesentlichen ein 8-Bit-Design ist. Insbesondere gliedert das Paging-Register den Speicher in 256 Seiten mit 64 KByte (64·1024) des RAMs, wobei jede 64 K-Seite mit Verweisen durch das Paging-Register versehen ist. In einem bevorzugten Ausführungsbeispiel der Erfindung gibt es drei Paging-Register, wobei durch die Registerdatei jeweils eines für jedes der drei logischen 16-Bit-Register vorgesehen ist.
  • Ein Bitspeicher berücksichtigt den Transfer eines 1-Bit-Datenelements zu und von einer beliebigen Bitposition zwischen den Registern der Registerdatei. Bei einem bevorzugten Ausführungsbeispiel befindet sich der Bitspeicher im Statusregister. Diese Bittransfereigenschaft berücksichtigt die direkte Bearbeitung von Registerbitpositionen, ohne zahlreiche und ansonsten zeitaufwendige Registerverschiebeoperationen durchführen zu müssen. Wie es bei vielen Mikrocontroller-Anwendungen typisch ist, weisen die einzelnen Bits mit einem 1-Byte-Datenelement einen von anderen Bits unabhängigen Stellenwert auf. Der Befehlssatz eines herkömmlichen Mikrocontrollers umfasst typischerweise Verschiebebefehle zum Vorsehen von Links- und Rechtsverschiebung eines Registers. Daher wird Zugriff auf ein Bit bei einer vorgegebenen Bitposition eines Registers durch Verschieben des Bits entweder nach links oder nach rechts erreicht. Dies ist eine destruktive Operation, die voraussetzt, dass die Registerinhalte gespeichert werden, wenn die Originaldaten erhalten werden sollen. Außerdem ist die Operation zeitaufwendig und erfordert die Ausführung einer Reihe von Programmbefehlen. Die Bittransferoperationen der vorliegenden Erfindung bieten ein zeiteffizienteres und weniger raumaufwendiges Mittel für den Zugriff auf beliebige Bitpositionen.
  • Ein „Vergleich-mit-Übertrag"-Befehl (compare-with-carry, CPC) sieht eine 16-Bit-Erweiterung des die Registerdatei aufweisenden 8-Bit-Registers vor. Diese Eigenschaft des Befehlssatzes sieht ein effizientes Verfahren zum Ausführen von Vergleichen von 16-Bit-Mengen in einer 8-Bit-Umgebung vor und erhöht damit weiterhin den Nutzen des 8-Bit-Mikrocontrollers der vorliegenden Erfindung.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt einen schematischen Aufbau des Mikrocontrollers der vorliegenden Erfindung.
  • 2A2C veranschaulichen eine Innendarstellung der im Mikrocontroller von 1 verwendeten Registerdatei.
  • 3A und 3B stellen die Organisation der Register der in den 2A bis 2C gezeigten Registerdatei dar.
  • 4A und 4B zeigen den Datenspeichermechanismus der vorliegenden Erfindung.
  • 5 stellt die Ausbildung einer logischen 24-Bit-Adresse unter Verwendung von Paging- Registern gemäß der vorliegenden Erfindung dar.
  • 6 veranschaulicht ein Diagramm des Mikrocontrollers aus 1, wobei die in 5 gezeigten Paging-Register berücksichtigt sind.
  • BESTE ART UND WEISE DER DURCHFÜHRUNG DER ERFINDUNG
  • Bezug nehmend auf 1 ist der Mikrokontroller 10 der vorliegenden Erfindung um eine 8-Bit-Datenbus-Struktur herum ausgebildet. Der Datenbus 12 sieht einen Datenweg für die verschiedenen, den Mikrokontroller aufweisenden Komponenten vor. Ein integriertes SRAM dient als allgemeiner Datenspeicher. Eine vom SRAM separate 8-Bit-REGISTERDATEI sieht einen Satz von 8-Bit-Hochgeschwindigkeits-Speichern für den Mikrocontroller vor.
  • Eine Universal-Arithmetik- und Logikeinheit ALU-1 ist mit der REGISTERDATEI gekoppelt, um arithmetische Berechnungen für die in den Registern gespeicherten Daten vorzusehen. Der Ausgang der ALU-1 ist sowohl mit dem 8-Bit-Datenbus 12 als auch mit einem STATUSREGISTER gekoppelt. Mehrere Statusbits, die das STATUSREGISTER aufweist, werden gemäß den Ergebnissen der ALU-1 gesetzt. Typische, im STATUSREGISTER enthaltene Bits umfassen, sind jedoch nicht beschränkt auf: ein Übertragflag; ein Nullflag; ein Negativflag; einen Zweierkomplement-Überlaufindikator; ein Vorzeichenbit, das gleich dem exklusiven ODER zwischen dem Negativflag und dem Zweierkomplement-Überlaufflag ist; und ein Interruptfreigabebit. Das STATUSREGISTER ist an den Datenbus 12 gekoppelt, um Lese/Schreib-Zugriff auf die Statusbits zu ermöglichen. Zusätzliche, an den Datenbus 12 gekoppelte Komponenten umfassen: einen für Unterprogramm-Aufrufe/Rücksprünge und für Interruptbearbeitung verwendeten STAPELZEIGER; einen Zeitgeber; eine Interruptsschaltung; eine Zeitgeber- und Steuerschaltung; ein EEPROM; und einen UART. Die durch PORTTREIBER angesteuerten EIN-/AUSGABE-DATENREGISTER sehen einen Eingabe-/Ausgabeweg 18 für den Mikrocontroller vor.
  • Ein Bus 16 für direkte Adressierung sieht während der Programmausführung direkten Zugriff auf die SRAM-Speicherzellen und auf die REGISTERDATEI vor. Ein Bus 14 für indirekte Adressierung sieht indirekte Adressierung vor. Der Bus 14 für indirekte Adressierung umfasst ein Mittel zum Empfangen einer Adresse aus der REGISTERDATEI, nämlich die Busschnittstelle 14', die die REGISTERDATEI mit dem Bus 14 für indirekte Adressierung koppelt, um eine Adresse entweder zum SRAM oder zum PROGRAMMZÄHLER zu übertragen.
  • Die Befehlsausführungs-Komponenten des Mikrocontrollers 10 umfassen einen PROGRAMMZÄHLER, der an einen PROGRAMMSPEICHER gekoppelt ist. Ein durch den PROGRAMMZÄHLER spezifizierter Programmbefehl wird vom PROGRAMMSPEICHER abgerufen und in ein BEFEHLSREGISTER eingegeben. Vom BEFEHLSSREGISTER wird der Programmbefehl durch einen mehrere Steuersignale erzeugenden BEFEHLSDECODIERER decodiert. Die Steuersignale werden durch STEUERLEITUNGEN zu anderen Komponenten des Mikrocontrollers 10 übertragen, um den decodierten Programmbefehlen entsprechende Operationen durchzuführen. Die die Befehlsausführungs-Komponenten koppelnden Busse werden kollektiv als Programmbus bezeichnet. Die Anordnung eines vom Datenspeicher separaten Programmspeichers und die Verwendung eines vom Datenbus 12 separaten Programmbusses bezeichnet man allgemein als Harvard-Architektur.
  • Wie oben erwähnt, besteht die REGISTERDATEI aus einer Vielzahl von 8-Bit-Registern. Bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung gibt es 32 8-Bit-Register. Jedoch wird darauf hingewiesen, dass der Mikrocontroller ebenso gut mit mehr oder weniger Registern in der REGISTERDATEI arbeitet. Die Universal-Arithmetik- und -Logik-Einheit ALU-1 ist ein 8-Bit-Operator und sieht 8-Bit-Arithmetik-Operationen zwischen den aus der REGISTERDATEI ausgewählten Registern vor. Die Ausgangsinformation der ALU-1 kann über den Datenbus 12 in ein Register der REGISTERDATEI zurückgeführt werden. Wie nachstehend detaillierter behandelt, können einige der 8-Bit-Register paarweise kombiniert werden, um logische 16-Bit-Register vorzusehen. Beim bevorzugten Ausführungsbeispiel sehen drei 8-Bit-Register-Paare drei logische 16-Bit-Register X, Y, Z vor, wie in 1 dargestellt.
  • Sich 2A zuwendend umfasst die REGISTERDATEI der vorliegenden Erfindung eine Registerschaltung 100, die 32 8-Bit-Register R0–R31 vorsieht. Wie nachstehend beschrieben, ist die Registerschaltung 100 in der Lage, die letzten sechs Register R26–R31 als drei Paare logischer 16-Bit-Register R27/R26 (X), R29/R28 (Y), R31/R30 (Z) vorzusehen. Eine gewöhnliche, aus zwei 16er-Leitungsdatenbussen 102, 104 bestehende Busschnittstelle sieht jeweils einen Dateneingabebus und einen Datenausgabebus für die Register vor.
  • Die durch die REGISTERDATEI vorgesehenen 16-Bit-Register werden als für indirekte Adressierung vorgesehene Registerzeiger für SRAM und Programmraum-Adressierung verwendet. Als solche werden bestimmte 16-Bit-Arithmetik-Operationen, wie z.B. Postinkrement und Prädekrement, für Adressenberechnung benötigt. Obwohl es mögliche ist, die ALU-1 zu verwenden, um 16-Bit-Arithmetik für 16-Bit-Register vorzusehen, wären derartige Operationen aufgrund des 8-Bit-Designs der ALU-1 ziemlich ineffizient.
  • Die in 2A gezeigte REGISTERDATEI umfasst deshalb eine zweite, der REGISTERDATEI zugeordnete Arithmetik- und Logik-Einheit ALU-2, um 16-Bit-Berechnungen, die die logischen 16-Bit-Register betreffen, zu unterstützen. Die Arithmetik- und Logik-Einheit ALU-2 ist ein angepasstes 16-Bit-Design zum Vorsehen spezifischer Operationen, die typischerweise von Zeigern für indirekte Adressierung benötigt werden. Die ALU-2 weist einen ersten Eingang auf, der durch den Datenausgabebus 104 der REGISTERDATEI gespeist wird. Die ALU-2 weist einen zweiten Eingang auf, der durch einen Selektor 110 gespeist wird. Der Selektor 110 wählt einen von drei möglichen, numerischen Werten: einen numerischen Wert von –1, einen numerischen Wert von +1 und eine Konstante V. Der Ausgang der ALU-2 ist zu den X-, Y-, Z-Registern am Dateneingabebus 102 zurückgeführt und ermöglicht, dass die Inhalte der Register aktualisiert werden. Ein Multiplexer (Mux) 114 ist mit der Busschnittstelle 14' der REGISTERDATEI verbunden. Ein Eingang des Mux 114 ist mit dem Ausgang der ALU-2 gekoppelt, während ein zweiter Eingang des Mux mit dem Datenausgabebus 104 gekoppelt ist. Diese Anordnung ermöglicht, dass der Mux 114 selektiv Daten entweder aus der ALU-2 oder aus der Registerschaltung ausgeben kann.
  • Die folgenden Steuersignale beziehen sich auf die erörterten Funktionseigenschaften der REGISTERDATEI und umfassen: ADD ENABLE, SUB ENABLE, MUX SELECT, V SELECT, V5–V0, INCR SELECT und DECR SELECT. Diese Signale werden durch mehrere, vom BEFEHLSDECODIERER ausgehenden STEUERLEITUNGEN übertragen. Die Funktion der REGISTERDATEI im Sinne dieser Steuersignale wird im Folgenden mit Bezug auf die Programmanweisungen des Mikrocontrollers der vorliegenden Erfindung behandelt.
  • Die interne Organisation der in 2A dargestellten Registerschaltung 100 ist im Blockdiagramm von 3A gezeigt. Bei einem Ausführungsbeispiel der Erfindung sind 32 Register R0–R31 vorgesehen, wobei jedes einen Satz von 8-Bit-Ausgangsleitungen 121 und einen Satz von 8-Bit-Eingangsleitungen 123 aufweist. Die tatsächliche Anzahl der vorgesehenen Register ist für die Erfindung nicht entscheidend. Ein Satz von Signalspeichern 120126 ist gekoppelt, um Daten selektiv in die Register einzuspeichern und aus den Registern freizugeben. Diese Signalspeicher sehen die Eingangs- und Ausgangsdatenbits bi15...b10, bo15...bo0 der gewöhnlichen, in 2A gezeigten Busschnittstelle vor. Datentransfer zwischen den 8-Bit-Registern R0–R31 wird durch den Dateneingangssignalspeicher 122 und den Datenausgangssignalspeicher 126 als Bits bi7–bi0 bzw. bo7–bo0 vorgesehen.
  • Für die logischen 16-Bit-Register X, Y, Z sind zusätzliche Dateneingangs- und Datenausgangssignalspeicher 120, 124 vorgesehen. Die X-Register bestehen aus dem Registerpaar R27:R26, das Y-Register besteht aus dem Registerpaar R29:R28 und das Z-Register besteht aus dem Registerpaar R31:R30. Die Datenausgangssignalspeicher 120, 122 speichern die Inhalte von einem der 16-Bit-Register auf die Ausgangsbits bo15–bo0 der gewöhnlichen Busschnittstelle 102, 104, während die Dateneingangssignalspeicher 124, 126 die auf den Eingangsbits bi15–bi0 erscheinenden Eingangsdaten speichern. Der Datenausgangssignalspeicher 120 ist an die Ausgabeleitungen 121 der höherwertigen Byte-Register R27, R29 und R31 gekoppelt. Gleichermaßen ist der Datenausgangssignalspeicher 122 an die Datenausgangsleitungen 121 der niederwertigen Byte-Register R26, R28 und R30 gekoppelt. Die Dateneingangsignalspeicher 124, 126 sind auf die gleiche Weise gekoppelt, nämlich der Dateneingangssignalspeicher 124 ist an die Eingangsleitungen 123 der H-Byte-Register R27, R29 und R31 gekoppelt, während der Dateneingangssignalspeicher 126 and die Eingangsleitungen 123 der L-Byte-Register R26, R28 und R30 gekoppelt ist.
  • Die folgenden Steuersignale beziehen sich auf die behandelten Funktionseigenschaften der Registerschaltung 100 und umfassen: DATA16_IN, DATA16_OUT, DATA8_IN, DATA8_OUT, R0 SELECT – R31 SELECT, X SELECT, Y SELECT und Z SELECT. Die Funktion der Registerschaltung 100 hinsichtlich dieser Steuersignale wird nachstehend mit Bezug auf die Programmanweisungen des Mikrocontrollers der vorliegenden Erfindung behandelt.
  • Die Erörterung wendet sich nun an eine weitere Eigenschaft des 8-Bit-Mikrocontrollers der vorliegenden Erfindung. Man erinnere sich dabei an obige Abhandlung, dass herkömmliche Techniken zum Laden und Speichern einer beliebigen Bitposition eines Register Registerschiebe- und/oder Registermaskierungsoperationen erfordert, was in weniger effizientem Code und erhöhter Codegröße resultiert. Außerdem ist dies eine destruktive Operation, die erfordert, dass die Registerinhalte gespeichert werden, wenn die Originaldaten erhalten werden sollen.
  • Für eine weitere Ansicht des internen Organisation der REGISTERDATEI der vorliegenden Erfindung und eine genaue Schilderung von zusätzlichen Komponenten in der REGISTERDATEI, die beliebigen Zugriff auf ein Bit aus den Registern R0–R31 untereinander vorsehen, nehme man Bezug auf 4A. Natürlich weist jedes Register einen 1:8-Multiplexer 130 auf, wobei jeder der acht Ausgänge des Multiplexers an ein Bit im Register gekoppelt ist. Daher kann ein Bit durch Speichern des Bits im 1-Bit-Eingang des Mux 130 und durch Übertragen der Muxeingabe auf einen seiner acht Ausgänge in jede Bitposition im Register geladen werden. Jedes Register weist weiterhin einen 8:1-Mux 132 auf, wobei jeder seiner acht Eingänge an ein Bit im Register gekoppelt ist. Jede Bitposition im Register kann daher durch Ansteuern des Muxeingangs entsprechend des im Interesse liegenden Bits herauskopiert werden.
  • Weiterhin umfasst die REGISTERDATEI natürlich einen 1:32-Mux 134 und einen 32:1-Mux 136. Man betrachte zunächst den 1:32-Mux 134. Dieser Mux weist einen mit dem 8-Bit-Datenbus 12 gekoppelten 1-Bit-Eingang auf. Die Eingangsinformation kann auf jeden seiner 32 Ausgänge übertragen werden. Jeder der 32 Ausgänge wiederum ist an den Eingang von einem der 1:8-Muxe 130 gekoppelt und sieht daher einen Weg aus dem Datenbus 12 zur jeder Bitposition in jedem der Register R0–R31 in der REGISTERDATEI vor. Man betrachte als nächstes den 1:32-Mux 136. Der Ausgang jedes 8:1-Mux 132 ist an einen der 32 Eingänge des Mux 136 gekoppelt. Der 1-Bit- Ausgang des Mux 136 wiederum ist an den Datenbus 12 gekoppelt und sieht daher einen Datenweg von jeder Bitposition in jedes der Register R0–R31 zum Datenbus vor.
  • Das in 4A gezeigte STATUSREGISTER umfasst eine Bitposition zum Empfangen und Halten eines 1-Bit-Datenelements, das als das T-Bit für Transfer-Bit bekannt ist. Das STATUSREGISTER ist an den 8-Bit-Datenbus 12 gekoppelt, um Lese/Schreibzugriff auf dessen verschiedene Bits vorzusehen. Die T-Bit-Position wird insbesondere in Verbindung mit dem 1:32-Mux 134 und dem 32:1-Mux 136 gesteuert, um entweder ein 1-Bit-Datenelement vom 32:1-Mux 136 über den Datenbus zu empfangen oder um ein 1-Bit-Datenelement über den Datenbus zum 1:32-Mux 134 zu übertragen.
  • Die folgenden Steuersignale beziehen sich auf die Funktionseigenschaften der in 4A gezeigten REGISTERDATEI und umfassen: BST REGISTER SELECT, BST BIT SELECT, BLD REGISTER SELECT und BLD BIT SELECT. Die Funktion der REGISTERDATEI hinsichtlich dieser Steuersignale wird nachstehend mit Bezug auf die Programmanweisungen des Mikrocontrollers der vorliegenden Erfindung behandelt.
  • Eine weitere Eigenschaft des 8-Bit-Mikrocontrollers der vorliegenden Erfindung ist eine verbesserte Adressierungsfähigkeit, wie in 5 gezeigt. Drei zusätzliche, zur REGISTERDATEI externe Register sind gezeigt, nämlich die RAM-Paging-Register RAMPX, RAMPY, RAMPZ. Die RAM-Paging-Register arbeiten in Verbindung mit ihren entsprechend logischen 16-Bit-Registern X, Y, Z, um einen weitgehend erhöhten Adressbereich im Vergleich zu herkömmlichen 8-Bit-Mikrocontrollern vorzusehen. Beim offenbarten Ausführungsbeispiel sind die RAM-Paging-Register 8-Bit-Register. Jedoch ist das nicht entscheidend und es wird klar, dass die Erfindung mit Registern, die eine unterschiedliche Bit-Länge aufweisen, ohne Umstände arbeiten kann.
  • Bezugnehmend auf 5 ist eine schematische Darstellung bezüglich des Adressaufbaus dargestellt. Jedes der RAM-Paging-Register ist mit seinem entsprechenden 16-Bit-Register verkettet. Beispielsweise sind die 8 Bits des RAM-Paging-Registers RAMPX mit den 16 Bits des X-Registers verkettet, um eine 24-Bit-Adresse auszubilden. Im bevorzugten Ausführungsbeispiel dienen die 8 Bits des RAMPX als höherwertige Bits X[23...16] der 24-Bit-Logik-Adresse, während die 16 Bits des X-Registers die niederwertigen Bits [15...0] der 24-Bit-Logik-Adresse vorsehen. Das durch diese Anordnung erzeugte Speichermodell ist eine Satz von 64 KByte-(64·1024)-Seiten, wobei auf jede 64 K-Seite durch ein 8-Bit-RRM-Paging-Register für insgesamt 256 Seiten zugreifbar ist.
  • Man wende sich nun 6 für eine Beschreibung eines Ausführungsbeispiels des RAM-Paging-Registers im Zusammenhang mit den offenbarten Ausführungsbeispielen der Erfindung zu. Jedes der RAM-Paging-Register RAMPX, RAMPY, RAMPZ ist an einen 8-Bit-Datenbus 12 gekoppelt, um einen 8-Bit-Seitenverweis während der Programmausführung zu empfangen. Ein Selektor 11 (beispielsweise ein 3:1-Multiplexer) empfängt die 8 Bits von jedem RAM-Paging-Register und überträgt die 8 Bits des angesteuerten RAM-Paging-Registers auf den Ausgang des Selektors. Die 16 Bit der Busschnittstelle 14' der REGISTERDATEI sind mit den 8 Bits aus dem Selektor 11 verkettet, um eine 24-Bit-Adresse auszubilden, die durch den Bus 14 für indirekte Adressierung übertragen wird.
  • Die erweiterte 24-Bit-Adressierung der Erfindung ermöglicht die Verwendung von extern vorgesehenem RAM (nicht gezeigt), da eine 24-Bit-Adresse zur Adressierung von 16 M (16·1024·1024) des RAM in der Lage ist. Ein externer 24-Bit-Adress-Bus 20 und ein 8-Bit-Datenbus 22 sind für den Datenzugriff zwischen dem Mikrocontroller und einem externen RAM (nicht gezeigt) eingefügt. Gemäß der vorliegenden Erfindung, belegen die REGISTERDATEI, das integrierte SRAM und das externe RAM den gleichen Datenadressraum. Die REGISTERDATEI belegt die ersten 32 Adressspeicherpositionen und das integrierte SRAM belegt die nächsten Adressspeicherpositionen N, wobei N die Größe des SRAMs ist. Der restliche Adressraum wird durch externes RAM vorgesehen. Der Adressbereich 00 bis (N–1) bildet daher auf die Speicherplätze des integrierten Speichers ab (REGISTERDATEI und SRAM), während der restliche Adressbereich N bis (16 M–1) auf Speicherplätze im externen RAM abbildet. wenn beispielsweise der integrierte Speicher insgesamt 64 KByte aufweist, dann liegt der integrierte Adressbereich zwischen $00 und $FFFF ("$" kennzeichnet hexadezimale Bezeichnungen), während der Adressbereich des externen RAMs zwischen $1000 und $FFFFFF liegt. Es ist bekannt, dass der integrierte Speicherumfang variiert werden kann, ohne den Nutzen oder die Funktionsfähigkeit der vorliegenden Erfindung zu beeinträchtigen, wobei der tatsächliche Speicherumfang von Ausgestaltungskriterien, wie z.B. verfügbarem Siliziumbereich, Vorrichtungsgeometrien und Ausgestaltungsregeln, abhängt.
  • Um sicherzustellen, dass für eine vorgegebene Adresse korrekt auf den integrierten Speicher und das externe RAM zugegriffen werden kann, wird ein zweiter Selektor 13 verwendet, um die Adresse entweder auf den internen Adressbus 14 oder auf den externen Adressbus 20 zu übertragen. Bei einem bevorzugten Ausführungsbeispiel ist der Selektor 13 ein 1:2-Mux, wobei die einzelne MUX-Eingangsinformation auf einen seiner zwei Ausgänge übertragen wird. Hier ist der Einzeleingang die aus dem Selektor 11 kommende 24-Bit-Adress-Leitung. Einer der Ausgänge des Selektors 13 ist an den Adressbus 14 gekoppelt, während der andere Ausgang an den externen Adressbus 20 gekoppelt ist. Auf das Erfassen einer Adresse innerhalb des Adressbereichs des integrierten Speichers wird der Selektor 13 dazu gebracht, seine Eingangsinformation auf den Adressbus 14 zu übertragen. Man beachte, dass nur die 16 niederwertigen Bits [15...0] der 24-Bit-Adresse auf den Adressbus 14 übertragen werden. Umgekehrt wird der Selektor 13 seine Eingangsinformation auf den externen Adressbus 20 übertragen, nachdem eine Adresse innerhalb des Adressbereiches des externen Speichers erfasst wurde. Jedes aus einer Reihe von Erfassungsschemata ist möglich, wobei alle innerhalb des durchschnittlich fachmännischen Könnens eines Designers liegen. Beispielsweise kann man die 8 höherwertigen Bits (Bits [23...0]) der 24-Bit-Adresse durch logisches ODER verbinden und das Ergebnis zum Steuern des Selektors 13 verwenden. Wenn die ODER-Operation FALSCH ergibt, wobei damit gemeint ist, dass die Adresse in den Adressbereich des integrierten Speichers fällt, dann sollte der Selektor 13 seine Eingangsinformation auf den internen Adressbus 14 übertragen. Wenn die ODER-Operation WAHR ergibt, wobei damit gemeint ist, dass die Adresse eine komplette 24-Bit- Adresse ist, dann sollte der Selektor 13 seine Eingangsinformation auf den externen Adressbus 20 übertragen.
  • Nach Beschreibung der den Eigenschaften des 8-Bit-Mikrocontrollers der vorliegenden Erfindung entsprechenden Hardware-Details, wendet sich die Diskussion nun dem Befehlssatz des Mikrocontrollers zu. Erstens unterstützt der vorliegende Mikrocontroller die für alle Mikrocontroller typischen Programmbefehle einschließlich Arithmetik- und Logikbefehlen, Sprungbefehle, Datenübertragungsbefehle sowie Bittest- und Bitsatzbefehle. Außerdem sieht der vorliegende Mikrocontroller Befehle vor, die durch die oben beschriebene und in den Figuren dargestellte Schaltung ermöglicht werden. Nachstehend ist eine Zusammenfassung dieser Befehle dargestellt:
  • Figure 00190001
  • Figure 00200001
  • Figure 00210001
  • Figure 00220001
  • Figure 00230001
  • Figure 00240001
  • Figure 00250001
  • Man erinnere sich bezüglich 1 daran, dass der BEFEHLSDECODIERER Steuersignale erzeugt, die über die STEUERLEITUNGEN zu den verschiedenen Komponenten des Mikrocontrollers übertragen werden, um die nötigen Operationen zur Durchführung der decodierten Befehle zu bewirken. Die Erörterung wird sich nun auf die mit den oben beschriebenen Befehlen in Zusammenhang stehenden Steuersignale hinsichtlich ihrer Wirkung auf die in den obigen Figuren beschriebene Schaltung konzentrieren.
  • Man betrachte zunächst die in 4B graphisch dargestellten Bitübertragungsbefehle (BST, BLD). Jeder der Befehle BST und BLD umfasst ein OP_CODE-Feld, das den spezifischen Befehl und zwei Operanden kennzeichnet: einen Registeroperand Rd und einen Bitpositionsoperand b. Wenn diese Befehle durch den BEFEHLSDECODIERER (1) decodiert werden, werden ein Steuersignal zur Registeransteuerung und ein Steuersignal zur Bitansteuerung erzeugt. Diese Steuersignale steuern die Muxe 132136, um auf das gewünschte Bit zuzugreifen. Ein Steuersignal BST REGISTER SELECT wird für den auf dem Registeroperanden Rd basierenden Befehl BST erzeugt. Gleichermaßen wird ein auf dem Bitpositionsoperanden b basierendes Steuersignal BST BIT SELECT erzeugt. Ähnliche Steuersignale werden für den Befehl BLD erzeugt.
  • Wie in 4B gezeigt, steuert das Steuersignal BST BIT SELECT den 8:1-Mux 132 von jedem Register R0–R31 derart, dass das spezifizierte Bit vom jedem Register zum 32:1-Mux 136 übertragen wird. Das Steuersignal BST REGISTER SELECT steuert den 32:1-Mux derart, dass das spezifizierte Bit der 32 Bits ausgewählt wird und demgemäß das ausgewählte Bit des ausgewählten Registers auf den 8-Bit-Datenbus 12 zu übertragen, welches dann in der T-Bit-Position des STATUSREGISTERS gespeichert wird.
  • Die dem Befehl BLD entsprechenden Steuersignale steuern die Muxe 130 und 134 auf eine ähnliche Weise. Ein im T-Bit gespeichertes Bit wird über den Datenbus 12 zum 32:1-Mux 134 übertragen. Das Bit wird dann zu einem der 1:8-Muxe 132 unter der Steuerung des Steuersignals BLD REGISTER SELECT übertragen, der das Bit zum spezifizierten Register sendet. Das BLD BIT SELECT gibt dann das Bit in die korrekte Bitposition des spezifizierten Registers aus.
  • Man betrachte weiter die 16-Bit-Arithmetik-Befehle ADIW und SBIW, d.h. die Addition bzw. Subtraktion eines konstanten Wertes mit einem der logischen 16-Bit-Register X, Y, Z. Nimmt man zunächst Bezug auf 2B, zeigt ein Diagramm der Befehle ADIW und SBIW, dass das OP_CODE-Feld und der konstante Operand K Steuersigale nach dem Decodieren durch den BEFEHLSDECODIERER (1) erzeugen. Das OP_CODE-Feld erzeugt entweder ein Steuersignal ADD ENABLE oder SUB ENABLE, was dazu führt, dass die ALU-2 die geeignete arithmetischen Operation an ihren beiden Eingängen durchführt. Der konstante Operand K erzeugt Steuersignale V5–V0, die in den Eingang V des Selektors 110 führen. Die Steuersignale V5–V0 stellen die im Operanden der Befehle ADIW und SBIW spezifierte Konstante K in Binärform dar. Im offenbarten Ausführungsbeispiel der Erfindung ist die Konstante K ein 6-Bit-Datenelement. Außerdem erzeugt der konstante Operand K ein Steuersignal V SELECT, was dazu führt, dass der Selektor 110 die Konstante V an einen Eingang der ALU-2 ausgibt. Die andere Eingangsinformation an der ALU-2 kommt über den Datenausgabebus 104 von einem der angesteuerten 16-Bit-Register X, Y, Z in der REGISTERDATEI, wie im Folgenden erläutert wird. Die Ausgangsinformation der ALU-2 wird über den Dateneingabebus 102 zurück in die REGISTERDATEI geführt, wird im ausgewählten 16-Bit-Register gespeichert und vervollständigt demgemäß die Operation.
  • Bezugnehmend auf 3A und 3B betrachte man nun die durch den BEFEHLSDECODIERER für die Befehle ADIW und SBIW erzeugten Steuersignale. Der Registeroperand L erzeugt ein Steuersignal X-, Y- oder Z SELECT, welches das entsprechende Registerpaar freigibt, um Lese/Schreibzugriff auf das spezifizierte, logische 16-Bit-Register vorzusehen. Das Signal X SELECT gibt die Register R26 und R27 frei, das Signal Y SELECT gibt die Register R28 und R29 frei und das Signal Z SELECT gibt die Register R30 und R31 frei. Das OP_CODE-Feld erzeugt die Steuersignale DATA16_IN ENABLE und DATA16_OUT ENABLE. Das Steuersignal DATA16_OUT ENABLE führt dazu, dass die Datenausgangssignalspeicher 120, 122 die Daten ausgeben, die im ausgewählten, logischen 16-Bit-Register auf dem Datenausgabebus 104 enthalten sind, der, wie oben beschrieben, in die ALU-2 führt. Umgekehrt führt das Steuersignal DATA16_IN ENABLE dazu, dass die Dateneingangssignalspeicher 124, 126 die am Ausgang der ALU-2 erzeugte resultierende Summe oder Differenz eingeben.
  • Als nächstes folgen die Lade- und Speicherbefehle (LD, ST), die die logischen 16-Bit-Register X, Y, Z betreffen. Man betrachte zunächst die Form der Operationen LD und ST, bei denen es entweder Prädekrement oder Postinkrement der 16-Bit-Register gibt. Bezugnehmend auf 2C kann man sehen, dass das OP_CODE-Feld für eine Lade-/Speicher-Operation mit Update entweder ein Steuersignal DECR SELECT oder INCR SELECT erzeugt, abhängig davon, ob das Update ein Prädekrement oder Postinkrement ist. Die Steuersignale DECR SELECT und INCR SELECT steuern den Selektor 110, um den entsprechenden Wert "–1" oder "+1" auszugeben, der einem Eingang der ALU-2 zugeführt wird. Die andere Eingangsinformation zur ALU-2 kommt über den Datenausgabebus 104 von einem ausgewählten Register der 16-Bit Register X, Y, Z in der REGISTERDATEI. Das Signal ADD ENABLE wird so erzeugt, dass die ALU-2 den Wert "–1" oder "+1" zu den Inhalten des ausgewählten 16-Bit-Registers hinzufügt. Das Steuersignal MUX SELECT steuert den Mux 114, um eine Adresse an die Busschnittstelle 14' der REGISTERDATEI auszugeben. Die Zeitgebung des Steuersignals MUX SELECT variiert, abhängig davon, ob der Befehl ein Prädekrement oder Postinkrement ist. Wenn ein Prädekrement gewünscht ist, wird das Steuersignal MUX SELECT nach Operationsdurchführung der ALU-2 erzeugt, so dass der Mux 114 die Ausgangsinformation der ALU-2 auf die Busschnittstelle 14' noch vor der Operation durch die ALU-2 übertragen kann. Andererseits, wenn ein Postinkrement gewünscht ist, führt das Signal MUX SELECT dazu, dass der Mux 114 den Datenausgabebus 104 auf die Busschnittstelle 14' überträgt. In beiden Fällen wird die Ausgangsinformation der ALU-2 über den Dateneingabebus 102 zurück in die REGISTERDATEI geführt, so dass das ausgewählte 16-Bit-Register aktualisiert werden kann.
  • Nimmt man nun Bezug auf 3A und 3B, so kann man sehen, dass die Befehle LD und ST mit Update die Steuersignale X-, Y-, Z SELECT und die Steuersignale DATA16IN_ENABLE und DATA16OUT_ENABLE zur Folge haben. Diese Signale arbeiten auf dieselbe Weise wie für die Befehle ADIW und SBIW, da in allen Fällen die Inhalte eines 16-Bit-Registers aktualisiert werden. Zusätzlich zu diesen Steuersignalen werden die Steuersignale R0–R31 SELECT und DATA8_IN und DATA8_OUT als Ergebnis des Decodierens des Registeroperanden Rd der Befehle LD und ST erzeugt. Für den Ladebefehl steuert das Steuersignal DATA8_IN den L-Byte-Dateneingangssignalspeicher 126, um die Daten, auf die durch das 16-Bit-Register verwiesen wird, einzuspeichern, welche dann in das vom Steuersignal R0–R31 SELECT ausgewählte 8-Bit-Register geladen werden. Für den Speicherbefehl steuert das Steuersignal DATA8_OUT den L-Byte-Datenausgangssignalspeicher 122, um den Inhalt des durch das Steuersignal R0–R31 SELECT ausgewählten 8-Bit-Registers auszugeben, welcher dann an dem Speicherplatz, auf den durch das 16-Bit-Register gezeigt wird, gespeichert wird.
  • Man betrachte als nächstes die Form der Befehle LD und ST ohne Update, d.h. ohne eine Prädekrement- oder Postinkrement-Operation. Mit Bezug auf 2C, da es kein Aktualisieren bzw. Updaten des ausgewählten 16-Bit-Registers gibt, wird nur das Steuersignal MUX SELECT benötigt, um das 16-Bit-Register (über den Datenausgabebus 104) auf den Bus 14 für indirekte Adressierung zu übertragen. Mit Bezug auf 3B werden die gleichen Steuersignale erzeugt wie für die Befehle LD und ST mit Update, außer dass das Signal DATA16_IN ENABLE nicht benötigt wird, da kein Update des 16-Bit-Registers auftritt.
  • Eine dritte Form der Lade- und Speicheroperationen verwendet eine Verschiebung q, welche zum ausgewählten 16-Bit-Register hinzugefügt wird. Diese sind die Befehle LDD und STD. Wie man in 2B sehen kann, arbeiten die Befehle LDD und STD auf ein Weise, die der den Befehle ADIW und SBIW sehr ähnlich ist. Der Verschiebewert q ist durch die Steuersignal V5–V0 dargestellt. Das Steuersignal ADD ENABLE führt dazu, dass die ALU-2 die Verschiebung zum ausgwählten 16-Bit-Register hinzufügt. Im Gegensatz zu ADIW und SBIW jedoch, erzeugen die Befehle LDD und STD das Signal MUX SELECT, welches ermöglicht, dass der errechnete Wert als eine Adresse an den Bus 14 für indirekte Adressierung ausgegeben wird. Wendet man sich den 3A und 3B zu, so erzeugen die Befehle LDD und STD im Wesentlichen dieselben Steuersignale wie die Befehle LD und ST, mit zwei Ausnahmen: DATA16_IN ENABLE wird nicht erzeugt, da kein Update des 16-Bit-Registers auftritt; und die Befehle LDD und STD sind auf die Y- und Z-Register beschränkt.
  • Die wie in 3B gezeigten Sprungbefehle IJMP, ICALL betreffen lediglich die Ansteuerung des Z-Registers und das Erzeugen des Steuersignals DATA16_OUT ENABLE, um die Inhalte des Z-Registers an den Bus 14 für indirekte Adressierung auszugeben. In 2B erzeugen die Befehle IJMP und ICALL das Steuersignal MUX_SELECT, um den Mux 114 so zu steuern, dass die Inhalte des Z-Registers vom Datenausgabebus 104 der REGISTERDATEI auf den Adressbus 14 übertragen werden können. Die Adresse wird dann in den PC-ZÄHLER geladen, um den Fluss der Ausführungssteuerung zu ändern.
  • Der in 3B gezeigte „Vergleich-mit-Übertrag"-Befehl CPC betrifft lediglich die Erzeugung eines der Steuersignale R0–R31 SELECT für jeden der Registeroperanden Rd, Rr des Befehls. Das Steuersignal DATA8_OUT gibt die Inhalte des angesteuerten 8-Bit-Registers aus.
  • Zusätzliche Steuersignale (nicht gezeigt) werden erzeugt, die dazu führen, dass die 8-Bit-ALU-1 die Summe der Inhalte der Rr-Register und das übertragbit von den Inhalten des Rd-Registers subtrahiert. Das Ergebnis der Operation wird nicht gespeichert; jedoch werden die Bits im Statusregister gemäß dem Ergebnis der Operation gesetzt.
  • Der Befehl CPC verbessert die 8-Bit-Architektur des Mikroprozessors durch Vorsehen von 16-Bit-Fähigkeit in einer 8-Bit-Umgebung. Das Übertragsergebnis aus einer 8-Bit-Operation kann in einer anschließenden 8-Bit-CPC-Operation verwendet werden, um einen 16-Bit-Effekt zu erzeugen. Beispielsweise kann ein 16-Bit-Vergleich wie folgt implementiert sein:
  • Figure 00320001
  • Der Befehl "cp" beeinflusst das Übertrag-Bit, welches dann im anschließenden Befehl "cpc" verwendet wird. Die Registerpaare R3/R2 und R1/R0 dienen gewissermaßen als Halter für zwei 16-Bit-Werte.
  • Dies schließt die Diskussion der für die Befehle relevanten Steuersignale und der hinsichtlich des Mikrocontrollers der vorliegenden Erfindung offenbarten Logikschaltungen ab. Es ist selbstverständlich, dass diese Signale nicht die einzigen bei der Ausführung der obigen Befehle beteiligten Steuersignale sind. Zusätzliche Signale werden erzeugt, um weitere Elemente des Mikrocontrollers zu steuern. Beispielsweise werden Adress- und Lese/Schreib-Freigabesignale für die oben genannten, Speicherzugriff umfassenden Befehle erzeugt. Außerdem ist eine Steuerung für die Ausführungszeitgebung erforderlich, um die Ausgabe der Steuersignale richtig zu synchronisieren. Ein Fachmann von integrierten Computerschaltungen ist jedoch in der Lage, ohne unzulässiges Experimentieren die erforderlichen, zusätzlichen Steuersignale und die notwendige Zeitgebung solcher Signale für die Ausübung der Erfindung festzulegen.

Claims (15)

  1. Mikrocontroller mit: einem Programmbus; einem Programmspeicher, der zum Speichern von Programmen ausgelegt ist; einer Programmausführungseinheit, die über den Programmbus mit dem Programmspeicher gekoppelt ist; einem vom Programmbus separaten Acht-Bit-Datenbus (12); einem vom Programmspeicher separaten Datenspeicher (SRAM), der mit dem Acht-Bit-Datenbus (12) gekoppelt ist; einer Registerdatei, die mit dem Acht-Bit-Datenbus (12) gekoppelt ist, wobei die Registerdatei eine Vielzahl von Acht-Bit-Registern (R0–R30) aufweist, wobei die Registerdatei ferner ein Mittel aufweist, das dazu ausgelegt ist, zwei der Acht-Bit-Register zu kombinieren, damit auf diese als einzelnes logisches Sechzehn-Bit-Register (R27/R26) zugegriffen wird; einer Universal-ALU (ALU-1), die zum Empfangen des Inhalts von zwei der Acht-Bit-Register (R0–R30) gekoppelt ist, wobei die Universal-ALU einen Ausgang aufweist, der mit dem Acht-Bit-Datenbus (12) gekoppelt ist; einem Bus (16) zur direkten Adressierung, der mit der Programmausführungseinheit gekoppelt ist, um auf den Datenspeicher (SRAM) und die Registerdatei während der Programmausführung direkt zuzugreifen; gekennzeichnet durch einen Bus (14) zur indirekten Adressierung, der für die Registerdatei einen indirekten Datenzugriff auf den Datenspeicher (SRAM) während der Programmausführung bereitstellt; wobei die Registerdatei ferner eine zweckorientierte ALU (ALU-2) umfasst, die mit dem Kombinationsmittel gekoppelt ist, um Rechenfunktionen an einem logischen Sechzehn-Bit-Register (R27/R26), auf das durch das Kombinationsmittel zugegriffen wird, durchzuführen; wobei der Bus (14) zur indirekten Adressierung ein Adressenempfangsmittel aufweist, das dazu ausgelegt ist, einen Sechzehn-Bit-Wert vom Kombinationsmittel zu empfangen, wodurch eine indirekte Sechzehn-Bit-Adressierung vorgesehen wird.
  2. Mikrocontroller nach Anspruch 1, wobei die Registerdatei ferner ein Auswahlmittel (110) umfasst, das dazu ausgelegt ist, eine Zahlenkonstante von –1, eine Zahlenkonstante von +1 oder einen vom Programm erzeugten Wert auszugeben, wobei die zweckorientierte ALU (ALU-2) zum Empfangen der Ausgabe aus dem Auswahlmittel (110) gekoppelt ist, um eine Arithmetik mit einem logischen Sechzehn-Bit-Register (R27/R26), auf das durch das Kombinationsmittel zugegriffen wird, durchzuführen.
  3. Mikrocontroller nach Anspruch 2, wobei eines der zwei Acht-Bit-Register das niedrige Byte des logischen Sechzehn-Bit-Registers (R27/R26) ist und das andere der zwei Acht-Bit-Register das hohe Byte des logischen Sechzehn-Bit-Registers ist.
  4. Mikrocontroller nach Anspruch 1, welcher ferner ein Paging-Register (RAMPx-z) und ein Adressenerzeugungsmittel umfasst, das mit dem Adressenempfangsmittel gekoppelt ist und dazu ausgelegt ist, aus dem Inhalt des Paging-Registers und einer vom Kombinationsmittel gelieferten Sechzehn-Bit-Adresse eine Adresse zu erzeugen.
  5. Mikrocontroller nach Anspruch 4, wobei das Paging-Register (RAMPx-z) ein Acht-Bit-Register ist, wobei das Paging-Register mit dem Acht-Bit-Datenbus (12) gekoppelt ist, wodurch das Laden eines Werts in das Paging-Register eine von 256 Seiten mit jeweils 64 K Bytes festlegt.
  6. Mikrocontroller nach Anspruch 1, welcher ferner einen Bitspeicher (T) zum Halten eines einzelnen Bits und ein Mittel, das dazu ausgelegt ist, ein Bit zwischen dem Bitspeicher und einer Bitstelle in einem aus der Registerdatei ausgewählten Register zu übertragen, umfasst.
  7. Mikrocontroller nach Anspruch 6, welcher ferner ein Zustandsregister umfasst, das mit dem Acht-Bit-Datenbus (12) gekoppelt ist, wobei das Zustandsregister eine Vielzahl von Bitpositionen aufweist, von denen eine als Bitspeicher (T) dient.
  8. Mikrocontroller nach Anspruch 2, wobei die Registerdatei ein Mittel umfasst, das dazu ausgelegt ist, entweder das Ergebnis der Berechnung der zweckorientierten ALU (ALU-2) oder ein Sechzehn-Bit-Datenelement vom Kombinationsmittel zum Bus (14) zur indirekten Adressierung zu übertragen.
  9. Mikrocontroller nach Anspruch 4, 5 oder 6, welcher ferner einen externen Adressenbus und ein Mittel umfasst, das dazu ausgelegt ist, selektiv die erweiterte Adresse mit dem externen Adressenbus und mit dem Bus (14) zur indirekten Adressierung zu koppeln.
  10. Mikrocontroller nach Anspruch 9, wobei das Paging-Register (RAMPx-z) ein Acht-Bit-Register ist.
  11. Mikrocontroller nach Anspruch 2 mit einer Architektur auf Harvard-Basis, welcher ferner umfasst: einen Programmbefehlsdecodierer in der Programmausführungseinheit, der dazu ausgelegt ist, Programmbefehle zu decodieren, wodurch Steuersignale erzeugt werden; wobei die zweckorientierte ALU (ALU-2) ein Sechzehn-Bit-Addierer ist, der dazu ausgelegt ist, die Ausgabe des Auswahlmittels (110) zum logischen einzelnen Sechzehn-Bit-Register zu addieren; ein Zustandsregister mit einem Übertragungsbit, das dazu ausgelegt ist, ein Bit von einem der Acht-Bit-Register zu empfangen und ein Bit in eines der Acht-Bit-Register zu kopieren; ein Bitübertragungsmittel, das dazu ausgelegt ist, ein Bit zwischen einem der Acht-Bit-Register und dem Übertragungsbit des Zustandsregisters zu übertragen; und Steuerleitungen, die dazu ausgelegt sind, die Steuersignale zur Registerdatei, zum Acht-Bit-ALU (ALU-1), zum Zustandsregister und zum Bitübertragungsmittel zu übertragen.
  12. Mikrocontroller nach Anspruch 11 mit einer ersten Teilmenge von Programmbefehlen jeweils mit einem numerischen Operationscode, der einen Inkrement- oder einen Dekrementcode festlegt, und einem Registerpaar-Operationscode, der eines von einem Paar der Acht-Bit-Register festlegt, wobei der Befehlsdecodierer durch Erzeugen von ersten Steuersignalen als Reaktion auf den Registerpaar-Operationscode und den numerischen Operationscode gekennzeichnet ist, welche veranlassen: dass das Kombinationsmittel auf das Paar von Registern als Sechzehn-Bit-Register zugreift; das Auswahlmittel eine "+1" oder eine "–1" ausgibt; und der Sechzehn-Bit-Addierer die Ausgabe des Auswahlmittels zum Sechzehn-Bit-Register addiert.
  13. Mikrocontroller nach Anspruch 12, wobei das Auswahlmittel ein Mittel umfasst, das dazu ausgelegt ist, eine Zahlenkonstante zu empfangen und die Zahlenkonstante auszugeben, wobei einige der ersten Teilmenge von Programmbefehlen numerische Operationscodes aufweisen, die einen Zahlenwert festlegen, wobei der Befehlsdecodierer ferner durch Erzeugen von zweiten Steuersignalen als Reaktion auf diejenigen der numerischen Operationscodes, die einen Zahlenwert festlegen, gekennzeichnet ist, wobei die zweiten Steuersignale eine binäre Darstellung des Zahlenwerts sind, welche vom Zahlenwertauswahlmittel empfangen werden.
  14. Mikrocontroller nach Anspruch 13, welcher ferner eine zweite Teilmenge von Programmbefehlen jeweils mit einem Registeroperationscode, der ein Register in der Registerdatei identifiziert, und einem Bitoperationscode, der eine Bitposition des durch den Registeroperationscode identifizierten Registers festlegt, umfasst, wobei der Befehlsdecodierer ferner durch Erzeugen von dritten Steuersignalen als Reaktion auf den Registeroperationscode und den Bitoperationscode gekennzeichnet ist, welche veranlassen, dass das Bitübertragungsmittel ein Bit zwischen dem Übertragungsbit des Zustandsregisters und der durch den Registeroperationscode und durch den Bitoperationscode festgelegten Bitposition überträgt.
  15. Mikrocontroller nach Anspruch 14, welcher ferner einen Programmbefehl mit einem Zielregister-Operationscode und einem Quellenregister-Operationscode umfasst, die jeweils eines der Acht-Bit-Register festlegen, wobei das Zustandsregister ferner ein Übertragbit umfasst, wobei die Acht-Bit-ALU (ALU-1) zum Empfangen des Übertragbits gekoppelt ist, wobei der Befehlsdecodierer ferner durch Erzeugen eines vierten Satzes von Steuersignalen als Reaktion auf den Ziel- und den Quellenregister-Operationscode gekennzeichnet ist, welche veranlassen, dass die Acht-Bit-ALU die folgende arithmetische Berechnung durchführt: Rd – Rr – C wobei Rd bzw. Rr der Inhalt von Registern sind, die durch den Zielregister-Operationscode und den Quellenregister-Operationscode identifiziert werden, und C der Inhalt des Übertragbits ist.
DE69732793T 1996-11-07 1997-10-30 Acht-bit-mikrokontroller mit risc-architektur Expired - Lifetime DE69732793T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US745098 1996-11-07
US08/745,098 US5854939A (en) 1996-11-07 1996-11-07 Eight-bit microcontroller having a risc architecture
PCT/US1997/019626 WO1998020422A1 (en) 1996-11-07 1997-10-30 Eight-bit microcontroller having a risc architecture

Publications (2)

Publication Number Publication Date
DE69732793D1 DE69732793D1 (de) 2005-04-21
DE69732793T2 true DE69732793T2 (de) 2006-04-06

Family

ID=24995260

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69732793T Expired - Lifetime DE69732793T2 (de) 1996-11-07 1997-10-30 Acht-bit-mikrokontroller mit risc-architektur

Country Status (10)

Country Link
US (1) US5854939A (de)
EP (2) EP0954791B1 (de)
JP (1) JP3694531B2 (de)
KR (1) KR100465388B1 (de)
CN (1) CN1115631C (de)
AT (1) ATE291256T1 (de)
DE (1) DE69732793T2 (de)
HK (1) HK1022358A1 (de)
TW (1) TW355772B (de)
WO (1) WO1998020422A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2766937B1 (fr) * 1997-07-31 2001-04-27 Sqware T Protocole et systeme de liaison par bus entre elements d'un microcontroleur
JPH1165840A (ja) * 1997-08-11 1999-03-09 Sony Corp 演算処理装置およびその方法
WO2000004484A2 (en) * 1998-07-17 2000-01-27 Intergraph Corporation Wide instruction word graphics processor
US6367000B1 (en) * 1998-09-30 2002-04-02 Intel Corporation Fast conversion of encoded tag bits
US6850990B1 (en) * 1999-07-14 2005-02-01 Landesk Software Limited Transfer of synchronized data from 16-bit code to a 32-bit process
US20050166031A1 (en) * 2002-04-26 2005-07-28 Holmberg Anders P. Memory access register file
US7600161B2 (en) 2004-08-13 2009-10-06 Gm Global Technology Operations, Inc. Method of verifying integrity of control module arithmetic logic unit (ALU)
CN100430890C (zh) * 2005-08-31 2008-11-05 上海海尔集成电路有限公司 一种8位risc微控制器
US8533439B2 (en) * 2005-11-07 2013-09-10 Atmel Corporation Elastic shared RAM array including contiguous instruction and data portions distinct from each other
US8417922B2 (en) * 2006-08-02 2013-04-09 Qualcomm Incorporated Method and system to combine multiple register units within a microprocessor
US8443168B2 (en) * 2007-08-17 2013-05-14 O2Micro Inc. Microcontroller comprising a plurality of registers and instruction modes
US20090187735A1 (en) * 2008-01-22 2009-07-23 Sonix Technology Co., Ltd. Microcontroller having dual-core architecture
CN101539849B (zh) * 2009-04-21 2013-10-16 北京红旗胜利科技发展有限责任公司 一种处理器以及一种寄存器选通方法
JP5625903B2 (ja) 2010-12-29 2014-11-19 富士通株式会社 演算処理装置および演算処理方法
CN102033733B (zh) * 2011-01-14 2012-12-19 北方工业大学 新型mcu结构
US10514911B2 (en) 2014-11-26 2019-12-24 International Business Machines Corporation Structure for microprocessor including arithmetic logic units and an efficiency logic unit
CN107621949A (zh) * 2016-07-15 2018-01-23 龙芯中科技术有限公司 内存拷贝方法及装置
US20230098724A1 (en) * 2021-09-25 2023-03-30 Intel Corporation Copy a subset of status flags from a control and status register to a flags register

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US566651A (en) * 1896-08-25 Combined saw stretcher and shears
JPS5779551A (en) * 1980-11-06 1982-05-18 Nec Corp Information transfer device
JPS58142464A (ja) * 1982-02-19 1983-08-24 Hitachi Ltd マイクロプロセツサ
US4649511A (en) * 1983-07-25 1987-03-10 General Electric Company Dynamic memory controller for single-chip microprocessor
JPS623333A (ja) * 1985-06-28 1987-01-09 Yokogawa Hewlett Packard Ltd ビツト群置数方式
JPS6226561A (ja) * 1985-07-26 1987-02-04 Toshiba Corp パ−ソナルコンピユ−タ
US4831514A (en) * 1986-02-14 1989-05-16 Dso "Izot" Method and device for connecting a 16-bit microprocessor to 8-bit modules
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
KR0163179B1 (ko) * 1989-03-31 1999-01-15 미다 가쓰시게 데이타 프로세서
JP2995752B2 (ja) * 1989-07-21 1999-12-27 日本電気株式会社 バスアーキテクチャ変換回路
US5333284A (en) * 1990-09-10 1994-07-26 Honeywell, Inc. Repeated ALU in pipelined processor design
EP0483967A3 (en) * 1990-10-29 1993-07-21 Sun Microsystems, Inc. Apparatus for increasing the number of registers available in a computer processor
US5301340A (en) * 1990-10-31 1994-04-05 International Business Machines Corporation IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle
KR100272622B1 (ko) * 1991-05-08 2000-11-15 가나이 쓰도무 데이타 처리장치
JP3486630B2 (ja) * 1991-05-08 2004-01-13 株式会社ルネサステクノロジ データ処理装置
JP2718292B2 (ja) * 1991-07-24 1998-02-25 日本電気株式会社 マイクロプロセッサ
DE69228975T2 (de) * 1991-10-28 1999-11-18 Eastman Kodak Co Steuerungsschaltung zur Datenübertragung von einem VME-Bus zu einer SCSI-Platteneinheit
US5465332A (en) * 1992-09-21 1995-11-07 International Business Machines Corporation Selectable 8/16 bit DMA channels for "ISA" bus
CA2093451C (en) * 1993-04-06 2000-03-14 David M. Mooney Method and mechanism for calling 32-bit functions from 16-bit functions
JP2932963B2 (ja) * 1994-01-21 1999-08-09 モトローラ・インコーポレイテッド 効率的なビット移動能力を有するデータ・プロセッサとその方法
JPH0844665A (ja) * 1994-07-14 1996-02-16 Fujitsu Ltd 複数のデータ転送サイズ及びプロトコルをサポートするバス

Also Published As

Publication number Publication date
EP0954791A4 (de) 2003-06-11
CN1115631C (zh) 2003-07-23
EP1596279A2 (de) 2005-11-16
EP0954791B1 (de) 2005-03-16
CN1236455A (zh) 1999-11-24
KR100465388B1 (ko) 2005-01-13
KR20000053047A (ko) 2000-08-25
HK1022358A1 (en) 2000-08-04
TW355772B (en) 1999-04-11
DE69732793D1 (de) 2005-04-21
JP2001504959A (ja) 2001-04-10
JP3694531B2 (ja) 2005-09-14
ATE291256T1 (de) 2005-04-15
US5854939A (en) 1998-12-29
EP1596279A3 (de) 2010-03-10
EP0954791A1 (de) 1999-11-10
WO1998020422A1 (en) 1998-05-14

Similar Documents

Publication Publication Date Title
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE2755273C2 (de)
DE69907955T2 (de) Globale und locale registersegmentierung in einem vliw prozessor
DE19914210B4 (de) Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung
DE69433339T2 (de) Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren
DE2714805C2 (de)
DE60018078T2 (de) Einstellung von bedingungswerten in einem rechner
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE2907181C2 (de) Prozessor mit einem Befehlssatz-Modifizierregister
DE4035405C2 (de)
DE69723286T2 (de) Echtzeitprogramm-sprachbeschleuniger
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE60316151T2 (de) Zugriff zum breiten speicher
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE3508640A1 (de) Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus
DE2718110A1 (de) Datenverarbeitungseinheit
DE60216210T2 (de) Binärer Grösse-Vergleicher
DE69922238T2 (de) Mechanismus zur blockierung von ladeoperationen auf adressengeneration von speicherbefehlen und universeller abhängigkeitsvektor
DE102014002510A1 (de) Präzise Ausnahmesignalisierung für Mehrfachdatenarchitektur
DE60115609T2 (de) Datenverarbeitungsarchitektur mit bereichsprüfung für matrix

Legal Events

Date Code Title Description
8364 No opposition during term of opposition