DE69130513T2 - Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern - Google Patents

Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern

Info

Publication number
DE69130513T2
DE69130513T2 DE69130513T DE69130513T DE69130513T2 DE 69130513 T2 DE69130513 T2 DE 69130513T2 DE 69130513 T DE69130513 T DE 69130513T DE 69130513 T DE69130513 T DE 69130513T DE 69130513 T2 DE69130513 T2 DE 69130513T2
Authority
DE
Germany
Prior art keywords
bit
register
logical
value
destination
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 - Fee Related
Application number
DE69130513T
Other languages
English (en)
Other versions
DE69130513D1 (de
Inventor
Flavio I-20041 Agrate Brianza Scarra'
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.)
STMicroelectronics SRL
Original Assignee
STMicroelectronics SRL
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 STMicroelectronics SRL filed Critical STMicroelectronics SRL
Application granted granted Critical
Publication of DE69130513D1 publication Critical patent/DE69130513D1/de
Publication of DE69130513T2 publication Critical patent/DE69130513T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf ein neuartiges Verfahren zum Durchführen von logischen (booleschen) Operationen zwischen zwei Bits, die jeweils in zwei beliebigen Registern gespeichert sind, die zu einem bestimmten Registersatz oder zu einer anderen physikalischen Datenspeichervorrichtung eines Mikroprozessors oder eines zugeordneten Peripheriegerätes gehören.
  • Das US-Patent Nr. 4.212.076 offenbart einen Digitalcomputer, der arithmetische und boolesche logische Operationen durchführen kann. Dieses grundlegende Digitalcomputersystem ist mit einem Logikprozessor ausgestattet, zu dem ein Operand übertragen wird, um damit eine boolesche Operation durchzuführen, bevor das Ergebnis an die Speicherstelle zurückgeschrieben wird, aus der der Operand ursprünglich geholt wurde.
  • Gewöhnlich können Mikroprozessoren logische Operationen mit den Bits durchführen, die zu einem bestimmten beschränkten Abschnitt der gesamten physikalischen Datenspeichervorrichtungen gehören, die dem Mikroprozessor zugeordnet sind, indem zu diesem Zweck ein festes Register verwendet wird, das allgemein als der "Akkumulator" bekannt ist, zu dem das Ergebnisbit zurückgebracht wird und in dem die Operandenbits vorübergehend übertragen werden, indem diese aus den entsprechenden Registern, in denen sie sich befinden (und permanent gespeichert sind) gelesen werden.
  • Ein Nachteil dieser Mikroprozessorsysteme besteht in der Notwendigkeit der Durchführung einer großen Anzahl von Datenübertragungen zu und von den physikalischen Datenspeicherbetriebsmitteln des Mikroprozessors, wobei diese Tatsache die Möglichkeit der Simulation komplexer logischer Netzwerke in einer effizienten und schnellen Weise stark einschränkt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es wurde nun ein neues Verfahren gefunden, das diese Schwierigkeiten beseitigt und ermöglicht, logische Operationen zwischen irgendwelchen zwei Bits durchzuführen, die in zwei beliebigen Registern des Mikroprozessors gespeichert sind, wobei das Verfahren ermöglicht, den gesamten Registeradressierungsraum zu nutzen und somit sowohl mit einer Registergruppe als auch mit verfügbaren Datenspeicherbetriebsmitteln der Peripherieeinheiten zu arbeiten, die dem Mikroprozessor zugeordnet sind, unabhängig davon, ob diese in dem Mikroprozessor-Chip physikalisch integriert sind, wie z. B. die Register der Eingang/Ausgang-(E/A)-Management-Makrozellen, die Register spezieller dedizierter Schaltungsblöcke für das Management externer Peripherieeinheiten und dergleichen, wie z. B. Register von externen Peripheriegeräten.
  • Das Verfahren der vorliegenden Erfindung erweitert die Flexibilität des Mikroprozessors, so daß er als wahrer boolescher Prozessor betrachtet werden kann, der komplexe logische Netzwerke in einer effizienten und schnellen Weise simulieren kann. Das Verfahren der Erfindung wird implementiert mittels einer definierten Anzahl von Schritten, die durch einen Satz von Standardbefehlen (in Assemblersprache) einer perfekten Orthogonalität im "Adressraum" aller physikalischen Datenspeicherbetriebsmittel, die zum Mikroprozessor gehören und/oder diesem zugeordnet sind, gesteuert werden können.
  • BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSFORM DER ERFINDUNG
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung ist dadurch gekennzeichnet, daß sie wenigstens einen der folgenden Schritte oder irgendeine Kombination hieraus umfaßt:
  • 1. Auswählen eines ersten Bits (j) in einem Quellregister (rs) sowie eines zweiten Bits (i) in einem zweiten Zielregister (rd); Plazieren des ersten Bits in einem logischen XOR (Exklusiv-ODER) mit dem zweiten Bit und Schreiben des resultierenden Bits in die Position, die vom zweiten Bit im zweiten Zielregister belegt ist, ohne die anderen im Zielregister vorhandenen Bits zu ändern. Dieser Schritt kann mit dem folgenden Befehl durchgeführt werden:
  • BXOR rd · i, rs · j
  • 2. Auswählen eines ersten Bits (j) in einem Quellregister (rs); Erzeugen des komplementären Bits des ersten Bits; Plazieren des komplementären Bits des ersten Bits in einem logischen XOR (Exklusiv-ODER) mit einem zweiten Bit (i), das aus den in einem zweiten Zielregister (rd) gespeicherten Bits ausgewählt worden ist, und Schreiben des resultierenden Bits in die Position, die vom zweiten Bit im zweiten Zielregister belegt wird, ohne die anderen im Zielregister gespeicherten Bits zu ändern. Dieser Schritt kann mit dem folgenden Befehl durchgeführt werden:
  • BXOR rd · i, rs · j
  • 3. Auswählen eines ersten Bits (j) in einem ersten Quellregister (rs) und eine zweiten Bits (i) in einem zweiten Zielregister (rd), Plazieren des ersten Bits in einem logischen AND (UND) mit dem zweiten Bit und Schreiben des resultierenden Bits in die Position, die vom zweiten Bit im zweiten Zielregister belegt ist, ohne die anderen im Zielregister gespeicherten Bits zu ändern. Dieser Schritt kann mit dem folgenden Befehl durchgeführt werden:
  • BAND rd · i, rs · j
  • 4. Auswählen eines ersten Bits (j) in einem ersten Quellregister (rs) und eines zweiten Bits (i) in einem zweiten Zielregister (rd), Erzeugen eines komplementären Bits des ersten Bits und Plazieren des komplementären Bits in einem logischen AND (UND) mit dem zweiten Bit und Schreiben des resultierenden Bits in eine Position, die vom zweiten Bit im zweiten Zielregister belegt wird, ohne die anderen im Zielregister gespeicherten Bits zu ändern. Dieser Schritt kann mit dem folgenden Befehl durchgeführt werden:
  • BAND rd · i, rs · j
  • 5. Auswählen eines ersten Bits (j) in einem ersten Quellregister (rs) und eine zweiten Bits (i) in einem zweiten Zielregister (rd), Plazieren des er sten Bits in einem logischen OR (ODER) mit dem zweiten Bit und Schreiben des resultierenden Bits in die Position, die vom zweiten Bit im zweiten Zielregister belegt ist, ohne die anderen im Zielregister gespeicherten Bits zu ändern. Dieser Schritt kann mit dem folgenden Befehl durchgeführt werden:
  • BOR rd · i, rs · j
  • 6. Auswählen eines ersten Bits (j) in einem ersten Quellregister (rs) und eines zweiten Bits (i) in einem zweiten Zielregister (rd), Erzeugen eines komplementären Bits des ersten Bits und Plazieren des komplementären Bits in einem logischen OR (ODER) mit dem zweiten Bit und Schreiben des resultierenden Bits in eine Position, die vom zweiten Bit im zweiten Zielregister belegt wird, ohne die anderen im Zielregister gespeicherten Bits zu ändern. Dieser Schritt kann mit dem folgenden Befehl durchgeführt werden:
  • BOR rd · i, !rs · j
  • 7. Auswählen eines ersten Bits (j) in einem ersten Quellenregister (rs) und Schreiben des ersten Bits in die Position, die von einem zweiten Bit (i) belegt ist, das in einem zweiten Zielregister (rd) ausgewählt worden ist, ohne die anderen im zweiten Zielregister gespeicherten Bits zu ändern. Diese Operation kann mit dem folgenden Befehl durchgeführt werden:
  • BLD rd · i, rs · j
  • 7. Auswählen eines ersten Bits (j) in einem ersten Quellenregister (rs), Erzeugen eines komplementären Bits des ersten ausgewählten Bits und Schreiben des komplementären Bits in die Position, die von einem zweiten Bit (i) in einem zweiten Zielregister (rd) belegt ist, ohne die anderen im zweiten Zielregister gespeicherten Bits zu ändern. Diese Operation kann mit dem folgenden Befehl durchgeführt werden:
  • BLD rd · i, !rs · j
  • Die erlaubten logischen Operationen der obigen Sammlung sind grundsätzlich folgende:
  • I XOR J; I XOR ;
  • I AND J; I AND ;
  • I OR J; I OR ;
  • I ← ; I ← .
  • Selbstverständlich können die Registerzeigetechniken, die für die Adressierung der Quell- und Zielregister verwendet werden, irgendwelche bekannten Techniken sein, die gewöhnlich für diesen Zweck in Mikroprozessoren des Standes der Technik verwendet werden.
  • Das Verfahren der Erfindung kann mit der Hardware ausgeführt werden, die in einem beliebigen Mikroprozessor des Standes der Technik vorhanden ist, der normalerweise mit der Hardware zum Ausführen von Setz/Rücksetz-Operationen irgendeines ausgewählten Bits (BSET und BRES) ausgestattet ist. In der Praxis wird das Verfahren der Erfindung implementiert durch Ausführen von Setz/Rücksetz-Operationen eines ausgewählten Bits eines Zielregisters als Funktion des Typs des logischen Operators (OR, AND oder XOR) und des Wertes eines ausgewählten Bits eines Quellenregisters. Mit anderen Worten, die obenbeschriebenen logischen Operationen zwischen irgendwelchen zwei Bits, die jeweils zu einem Quellenregister und zu einem Zielregister gehören, werden durchgeführt, indem das ausgewählte Bit im Zielregister als Funktion bestimmter Parameter manipuliert wird, die durch den Typ des logischen Operators und durch den Wert des ausgewählten Bits des Quellenregisters bestimmt werden.
  • BITOPERATION
  • Gemäß dem Verfahren der Erfindung werden die sechs grundlegenden Standardbefehle: BSET, BRES, BCPL, BOR, BAND und BXOR alle ausgeführt, indem ein ähnlicher Ablauf verfolgt wird, trotz der Tatsache, daß die letzten drei Befehle das Durchführen einer booleschen Operation zwischen zwei Operanden implizieren, im Vergleich zu den ersten drei Befehlen, die einen einzelnen Operanden betreffen. Die ersten drei Befehle: BSET, BRES und BCPL können von den anderen drei Befehlen unterschieden werden, da das vierte Bit des zweiten Bytes des relativen Opcodes gleich "0" ist. Diese ersten drei Operationen (BSET, BRES und BCPL) werden mittels einer gewöhnlich verwendeten parametrischen Technik durchgeführt, bei der eine logische OR-, AND- oder XOR-Operation zwischen dem Byte, das das zu modifizierende Bit enthält, und einer geeigneten Konstante ausgeführt wird. Die Konstante wird automatisch erzeugt, indem die Bits 5, 6 und 7 des zweiten Bytes des Befehls-Opcode decodiert werden. Die ausgewählte Konstante besteht immer aus sieben "1" und einer "0" und wird in einer direkten Form oder in einer komplementären Form geladen, in Abhängigkeit vom durchzuführenden Operationstyp, d. h. in ihrer direkten Form, wenn ein Rücksetzen durchgeführt wird, oder in ihrer komplementären Form, wenn ein Setzen durchgeführt wird.
  • Dieses Verfahren der Ausführung der ersten drei Befehle ist entspricht dem Stand der Technik und stellt keine besondere Schwierigkeit dar. Im Gegensatz hierzu haben die bekannten Verfahren zur Durchführung der anderen drei booleschen Operationen (BOR, BAND und BXOR) zwischen den ausgewählten Bits sowie die sogenannte Bitladeoperation (BLD) Nachteile, wie am Anfang dieser Beschreibung erwähnt worden ist.
  • Die Befehle zur Ausführung der obenerwähnten drei booleschen Operationen zwischen irgendwelchen zwei ausgewählten Bits (zwei Operanden) werden leicht erkannt, da das vierte Bit des zweiten Bytes dieser Befehle, ausgedrückt im gleichen Opcode, gleich "1" ist, während das der ersten drei Operationen gleich "0" ist.
  • Gemäß dem Verfahren der vorliegenden Erfindung zum Ausführen einer generischen Operation, die einen Operator verwendet, der unter OR, AND und XOR-Logikoperatoren gewählt wird, zwischen irgendwelchen ausgewählten Bits irgendwelcher Quellenregister und irgendwelchen ausgewählten Bits irgendwelcher Zielregister wird folgende Prozedur verwendet werden.
  • Zuerst wird durch Verfolgen eines Ablaufs, der dem für die Ausführung der obenerwähnte ersten drei Basisbefehle BSET, BRES, und BCPL entspricht, eine bestimmte Setz/Rücksetz-Operation mit dem Bit, das als Zielbit ausge wählt worden ist, durchgeführt, wobei die resultierenden modifizierten Daten in einem temporären Speicherregister gesichert werden, gemäß dem folgenden Schema:
  • - eine Setzoperation für eine OR-Operation;
  • - eine Rücksetzoperation für eine AND-Operation; und
  • - eine Komplementerzeugungsoperation für eine XOR-Operation.
  • Anschließend wird das Bit, das als Quellenbit im Quellenregister ausgewählt worden ist, mittels eines Paares von Standardbefehlen getestet: FORCE, TEST und SET ALU C, was der ALU erlaubt, eine AND-Operation mit einer Konstanten durchzuführen, die aus sieben "0" und einer "1" besteht, und ein ZERO TEST mit dem Ergebnis auszuführen.
  • Das Ergebnis dieses Tests wird von der parametrischen Auswertungsschaltung des Mikroprozessors erarbeitet und von der CPU verwendet, um einen von zwei möglichen Ablaufpfaden auszuwählen. Ein Pfad speichert die modifizierten Daten im Zielregister und der andere Pfad führt zu keiner Aktion.
  • Das Verfahren der Erfindung wird nun mittels einer Serie spezieller Beispiele erläutert.
  • BOR: zwischen dem dritten Bit und den Daten F0h (Zielbyte) und dem ersten Bit der Daten 0Fh (Quellenbyte);
  • - Ausführen einer Setzoperation mit dem dritten Bit der Zieldaten F0h und Speichern der resultierenden Daten in einem temporären Speicherregister, wie z. B. F8h;
  • - Durchführen eines ZERO TEST mit dem Quellenbit 1 der Quellendaten 0Fh;
  • - wenn das Ergebnis des ZERO TEST mit dem Quellenbit gleich "1" ist, werden die modifizierten Daten F8h in das Zielregister gesichert, womit die BOR-Operation abgeschlossen ist.
  • BAND: Zwischen dem dritten Bit der Daten FFh (Zielbyte) und dem ersten Bit der Daten 00h (Quellenbyte);
  • - Ausführen einer Rücksetzoperation mit dem dritten Bit der Zieldaten FFh und Speichern der resultierenden Daten in einem temporären Speicherregister, wie z. B. F7h;
  • - Durchführen eines ZERO TEST mit dem Quellenbit 1 der Quellendaten 00h;
  • - wenn das Ergebnis des ZERO TEST mit dem Quellenbit gleich "0" ist, werden die modifizierten Daten F7h in das Zielregister gesichert, womit die BOR-Operation abgeschlossen ist.
  • BXOR: zwischen dem dritten Bit und den Daten F0h (Zielbyte) und dem ersten Bit der Daten 0Fh (Quellenbyte);
  • - Erzeugen des Komplements des dritten Bits der Zieldaten F0h und Speichern der resultierenden Daten in einem temporären Speicherregister, wie z. B. F8h;
  • - Durchführen eines ZERO TEST mit dem Quellenbit 1 der Quellendaten 0Fh;
  • - wenn das Ergebnis des ZERO TEST mit dem Quellenbit gleich "1" ist, werden die vorübergehend gespeicherten modifizierten Daten F8h in das Zielregister gesichert, wodurch die BXOR- Operation abgeschlossen ist.
  • Aus den obigen Beispielen wird klar, daß das Sichern in das Zielregister der modifizierten Daten, die im temporären Speicherregister plaziert sind, in unterschiedlichen Instanzen stattfinden muß; nämlich für das Testbit 1 = "1" bei der Ausführung einer BOR-Operation und einer BXOR-Operation und für das Testbild 1 = "0" bei der Ausführung einer BAND-Operation.
  • Um eine Ablaufverdopplung, ein daraus folgende Verkomplizierung der Ausführung des Befehls und eine Erhöhung der Ausführungszeit zu vermeiden, kann das Ergebnis des ZERO TEST mit dem Quellenbit als Funktion des vierten Bits des dritten Bytes des Befehls-Opcode "umgekehrt" werden. Bei der Ausführung eines BOR- oder BXOR-Befehls besitzt daher das dritte Byte ein viertes Bit gleich "0", während bei der Ausführung eines BAND-Befehls das vierte Bit des dritten Bytes des Opcode gleich "1" ist.
  • Das vierte Bit des dritten Bytes des Opcode wird jedes mal dann abgetastet, wenn der Befehl SET ALU C gegeben ist. Die eigenartige Konstruktion dieses Standardbefehls erleichtert die Möglichkeit der Ausführung desselben mit komplementiertem Quellenbit erheblich, weil es tatsächlich ausreicht, das Komplement des vierten Bits des dritten Bytes des Codes zu erzeugen.
  • BIT LADEN
  • Gemäß dem Verfahren der Erfindung kann diese Operation zwischen einem Quellenbit und einem Zielbit vorteilhaft durch einen Lösungsansatz durchgeführt werden, der sich von dem für die anderen drei Operationen zwischen Bits verfolgten Lösungsansatz insofern unterscheidet, als der ZERO TEST mit dem Quellenbit zuerst ausgeführt wird, gefolgt von der Durchführung der Setz- und Rücksetzoperationen des Zielbits, bevor schließlich das Ergebnis als Funktion des Ergebnisses des ZERO TEST, der im voraus mit dem Quellenbit ausgeführt worden ist, gesichert wird.
  • Der Test wird mit dem Quellenbit mittels des üblichen Paares von Standardbefehlen ausgeführt: FORCE TEST und SET ALU C. Der Test wird zuerst ausgeführt, da zwei Mikrobefehle notwendig sind, bevor das Ergebnis für die Konditionierung des Ablaufs verwendet werden kann.
  • Diese modifizierte parametrische Technik erlaubt, direkt die Setzoperation mit dem Zielbit durchzuführen, was tatsächlich unmittelbar nach dem ZERO TEST durchgeführt wird. Das Ergebnis der Setzoperation wird in einem temporären Speicherregister gesichert.
  • In dem Fall, in dem der ZERO TEST mit dem Quellenbit ein Ergebnis gleich "1" ergeben hat, ist die Durchführung einer Rücksetzoperation mit dem Zielbit nicht erforderlich, weshalb die modifizierten Daten, die im temporären Speicherregister enthalten sind, in das Zielregister gesichert werden.
  • Im entgegengesetzten Fall muß eine Rücksetzoperation mit dem Zielbit durchgeführt werden, gefolgt von der Ausführung einer AND-Operation mit einer geeigneten Konstanten. Die Auswahl der Konstanten und die parametrische Voranordnung können bequem unter Verwendung zweier Befehle durchgeführt werden: FORCE TEST und SET ALU C, was den ZERO TEST durchführt, nämlich durch Ausführen einer AND-Operation mit einer zweckmäßig invertierten Konstante (sieben "0" und eine "1 "). Auf diese Weise reicht es aus, die Konstante zu invertieren, bevor das Rücksetzen des Zielbits durchgeführt wird, was mittels der zwei Standardbefehle FORCE TEST und FORCE ALU SUB bewirkt wird, die, wenn sie gleichzeitig gegeben werden, ermöglichen, die Konstante in ihrer einfachen Form (nicht invertiert) zu verwenden.
  • Die resultierenden Daten werden möglicherweise im Zielregister gesichert, um die Bitladeoperation abzuschließen.

Claims (4)

1. Verfahren zum Ausführen von Logikoperationen zwischen einem ersten Bit, das an einer ersten Zielregisterstelle gespeichert ist, und einem zweiten Bit, das an einer zweiten Quellregisterstelle gespeichert ist;
gekennzeichnet durch wenigstens eine der Logikoperationen ODER, UND oder XOR oder irgendeine Kombination hiervon;
und
a) im Fall einer logischen ODER-Operation durch die folgenden Schritte:
a1) Ausführen einer logischen ODER-Operation zwischen dem ersten Bit und einer logischen "1" für die gewählte Bitposition (Setz-Operation) und Schreiben des Ergebnisses an die entsprechende Bitstelle in einem temporären Register;
a2) Vergleichen des zweiten Bits mit der logischen "1"; und
a3) falls der Gehalt des zweiten Bits gleich "1" ist, Schreiben des Wertes der entsprechenden Bitstelle des temporären Registers in die erste Zielregisterstelle, andernfalls nicht Ändern des Inhalts der ersten Zielregisterstelle;
b) im Fall einer logischen UND-Operation durch die folgenden Schritte:
b1) Ausführen einer logischen UND-Operation zwischen dem ersten Bit und einer logischen "0" für die gewählte Bitposition (Rücksetz-Operation) und Schreiben des Ergebnisses in die entsprechende Bitstelle eines temporären Registers;
b2) Vergleichen des zweiten Bits mit der logischen "0"; und
b3) falls der Gehalt des zweiten Bits gleich "0" ist, Schreiben des Wertes der entsprechenden Bitstelle des temporären Registers in die erste Zielregisterstelle, andernfalls nicht Ändern des Inhalts der ersten Zielregisterstelle; und
c) im Fall einer logischen XOR-Operation durch die folgenden Schritte:
c1) Ausführen einer logischen XOR-Operation zwischen dem ersten Bit und einer logischen "1" für die gewählte Bitposition (Komplementerzeugung- Operation) und Schreiben des Ergebnisses in die entsprechende Bitstelle eines temporären Registers;
c2) Vergleichen des zweiten Bits mit einer logischen "1"; und
c3) falls der Inhalt des zweiten Bits gleich "1" ist, Schreiben des Wertes der entsprechenden Bitstelle des temporären Registers in die erste Zielregisterstelle, andernfalls nicht Ändern des Inhalts der ersten Zielregisterstelle.
2. Verfahren nach Anspruch 1, wobei wenigstens eine logische Bitoperation am Komplement des ersten Bits ausgeführt wird.
3. Verfahren zum Laden eines Bitwerts von einer ersten, gewählten Bitposition eines ersten Registers in eine zweite, gewählte Bitposition eines zweiten Registers, wobei sämtliche Stellen des ersten und des zweiten Registers eine bestimmte Anzahl von Bitpositionen besitzen und jede Bitposition entweder einen ersten logischen Wert oder einen zum ersten logischen Wert komplementären zweiten logischen Wert besitzt, wobei die logischen Zustände der Bitpositionen jedes Registers einen Stellen-Wert definieren, wobei das Verfahren gekennzeichnet ist durch die folgenden Schritte:
Vergleichen des Wertes der ersten gewählten Bitposition des ersten Registers mit null;
Speichern des Stellen-Wertes, der der Zielstelle entspricht, in einem temporären Register mit einer bestimmten Anzahl von Bitpositionen und gleichzeitig Setzen der zweiten Bitposition des temporären Registers auf den ersten logischen Wert;
falls das Ergebnis des Vergleichsschrittes "0" ist, Setzen des im temporären Register gespeicherten Wertes der zweiten Bitposition auf den zweiten logischen Wert; und
Schreiben des Stellen-Wertes im temporären Register in die adressierbare Zielstelle.
4. Verfahren zum Kopieren eines Bits von Daten von einer Zelle eines Quellregisters in eine Zelle eines Zielregisters, wobei die Quell- und Zielregister jeweils mehrere Zellen zum Speichern einer entsprechenden Mehrzahl von Datenbits enthalten, wobei das Verfahren gekennzeichnet ist durch die folgenden Schritte:
a) Wählen einer Zelle des Quellregisters als Quellzelle;
b) Wählen einer Zelle des Zielregisters als Zielzelle;
c) Vergleichen des Inhalts der Quellzelle mit null;
d) Laden der Inhalte des Zielregisters in ein temporäres Register mit der gleichen Anzahl von Zellen wie das Zielregister;
e) Setzen des Inhalts der Zelle im temporären Register, die der Zielzelle des Zielregisters entspricht, auf eins;
f) falls der Inhalt der Quellzelle gleich null ist, Zurücksetzen des Inhalts der Zelle des temporären Registers, die der Zielzelle des Zielregisters entspricht, auf null, andernfalls nicht Ändern des Inhalts des temporären Registers; und
g) Übertragen der Inhalte des temporären Registers in das Zielregister.
DE69130513T 1990-04-26 1991-04-24 Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern Expired - Fee Related DE69130513T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT08361790A IT1247640B (it) 1990-04-26 1990-04-26 Operazioni booleane tra due qualsiasi bit di due qualsiasi registri

Publications (2)

Publication Number Publication Date
DE69130513D1 DE69130513D1 (de) 1999-01-07
DE69130513T2 true DE69130513T2 (de) 1999-04-15

Family

ID=11323206

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69130513T Expired - Fee Related DE69130513T2 (de) 1990-04-26 1991-04-24 Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern

Country Status (5)

Country Link
US (1) US5657484A (de)
EP (1) EP0454636B1 (de)
JP (1) JPH04229322A (de)
DE (1) DE69130513T2 (de)
IT (1) IT1247640B (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
EP0636256B1 (de) 1992-03-31 1997-06-04 Seiko Epson Corporation Befehlsablauffolgeplanung von einem risc-superskalarprozessor
EP0638183B1 (de) 1992-05-01 1997-03-05 Seiko Epson Corporation Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US7003543B2 (en) 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US6985986B2 (en) 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US7467178B2 (en) 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US6976158B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US7007172B2 (en) 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US6937084B2 (en) 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US6952711B2 (en) 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US6975679B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US7020788B2 (en) 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
GB2425912A (en) * 2005-05-04 2006-11-08 Psytechnics Ltd Packet filtering
CN107145334B (zh) * 2017-04-26 2020-10-09 龙芯中科技术有限公司 常量获取方法、装置、处理器及计算机可读存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3611309A (en) * 1969-07-24 1971-10-05 Univ Iowa State Res Found Inc Logical processing system
JPS559742B2 (de) * 1974-06-20 1980-03-12
US4331893A (en) * 1976-09-24 1982-05-25 Giddings & Lewis, Inc. Boolean logic processor without accumulator output feedback
US4212076A (en) * 1976-09-24 1980-07-08 Giddings & Lewis, Inc. Digital computer structure providing arithmetic and boolean logic operations, the latter controlling the former
JPS5671154A (en) * 1979-11-15 1981-06-13 Nec Corp Information processing device
US4314349A (en) * 1979-12-31 1982-02-02 Goodyear Aerospace Corporation Processing element for parallel array processors
US4592005A (en) * 1982-07-06 1986-05-27 Sperry Corporation Masked arithmetic logic unit
US4621339A (en) * 1983-06-13 1986-11-04 Duke University SIMD machine using cube connected cycles network architecture for vector processing
US4716541A (en) * 1984-08-02 1987-12-29 Quatse Jesse T Boolean processor for a progammable controller
JPS62140137A (ja) * 1985-12-16 1987-06-23 Toshiba Corp Aluを用いたデータ保持方法
JPS63239700A (ja) * 1987-03-27 1988-10-05 Ando Electric Co Ltd Ramとpromのデ−タ比較・判定回路
US5083267A (en) * 1987-05-01 1992-01-21 Hewlett-Packard Company Horizontal computer having register multiconnect for execution of an instruction loop with recurrance
JPH0648461B2 (ja) * 1987-07-09 1994-06-22 日本電気株式会社 マイクロプログラムの転送レジスタ指定方式
JP2583525B2 (ja) * 1987-09-30 1997-02-19 健 坂村 データ処理装置
US5133054A (en) * 1987-10-20 1992-07-21 Sharp Kabushiki Kaisha Data transmission apparatus for autonomously and selectively transmitting data to a plurality of transfer path
DE68929258T2 (de) * 1988-01-27 2001-06-07 Oki Electric Industry Co., Ltd. Mikrorechner und Prüfverfahren
US5060143A (en) * 1988-08-10 1991-10-22 Bell Communications Research, Inc. System for string searching including parallel comparison of candidate data block-by-block
JP2633331B2 (ja) * 1988-10-24 1997-07-23 三菱電機株式会社 マイクロプロセッサ
US5060136A (en) * 1989-01-06 1991-10-22 International Business Machines Corp. Four-way associative cache with dlat and separately addressable arrays used for updating certain bits without reading them out first
US5068821A (en) * 1989-03-27 1991-11-26 Ge Fanuc Automation North America, Inc. Bit processor with powers flow register switches control a function block processor for execution of the current command
KR930009632B1 (ko) * 1989-07-13 1993-10-08 후찌쓰 가부시끼가이샤 비트 필드 논리동작 유니트
US5129065A (en) * 1989-10-27 1992-07-07 Sun Microsystems, Inc. Apparatus and methods for interface register handshake for controlling devices
US5167029A (en) * 1989-12-13 1992-11-24 International Business Machines Corporation Data processing system and associated process using memory cards having data modify functions utilizing a data mask and an internal register

Also Published As

Publication number Publication date
EP0454636A1 (de) 1991-10-30
DE69130513D1 (de) 1999-01-07
US5657484A (en) 1997-08-12
IT9083617A1 (it) 1991-10-26
IT9083617A0 (it) 1990-04-26
EP0454636B1 (de) 1998-11-25
JPH04229322A (ja) 1992-08-18
IT1247640B (it) 1994-12-28

Similar Documents

Publication Publication Date Title
DE69130513T2 (de) Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern
DE2714805C2 (de)
DE2755273C2 (de)
DE2542740C2 (de) Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE2357003C2 (de) Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE3685711T2 (de) Anordnung zur simulation von rechnerfunktionen von grossrechenanlagen.
DE3781794T2 (de) Vorrichtung und verfahren zum versehen eines cachespeichers mit einer schreiboperation mit zwei systemtaktzyklen.
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE2145709A1 (de) Datenverarbeitungsanlage
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE69616718T4 (de) Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2556617C2 (de) Schiebe- und Rotierschaltung
DE2054830B2 (de) Informationsverarbeitungsanlage mit mitteln zum zugriff zu speicher-datenfeldern variabler laenge
DE68924883T2 (de) Mikroprozessor mit Befehlspipeline.
DE69429492T2 (de) Mikroprozessor mit Registerbankarchitektur
DE2702722C2 (de) Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen
DE2349253C3 (de) Rechnersystem
DE3410497A1 (de) Rechneranordnung
CH632349A5 (de) Einrichtung zur mikrobefehlssteuerung.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee