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 RegisternInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 25
- 230000000295 complement effect Effects 0.000 claims description 16
- 238000012360 testing method Methods 0.000 description 22
- 238000013500 data storage Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical 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
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1990
- 1990-04-26 IT IT08361790A patent/IT1247640B/it active IP Right Grant
-
1991
- 1991-04-24 EP EP91830167A patent/EP0454636B1/de not_active Expired - Lifetime
- 1991-04-24 DE DE69130513T patent/DE69130513T2/de not_active Expired - Fee Related
- 1991-04-26 JP JP3125538A patent/JPH04229322A/ja active Pending
-
1994
- 1994-12-27 US US08/364,505 patent/US5657484A/en not_active Expired - Lifetime
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 |