DE19841893A1 - Datenverarbeitungseinheit - Google Patents

Datenverarbeitungseinheit

Info

Publication number
DE19841893A1
DE19841893A1 DE19841893A DE19841893A DE19841893A1 DE 19841893 A1 DE19841893 A1 DE 19841893A1 DE 19841893 A DE19841893 A DE 19841893A DE 19841893 A DE19841893 A DE 19841893A DE 19841893 A1 DE19841893 A1 DE 19841893A1
Authority
DE
Germany
Prior art keywords
register
logic
unit
boolean
bit
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.)
Granted
Application number
DE19841893A
Other languages
English (en)
Other versions
DE19841893B4 (de
Inventor
Rod G Fleck
Karl-Heinz Mattheis
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.)
Infineon Technologies AG
Original Assignee
Siemens Microelectronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Microelectronics Inc filed Critical Siemens Microelectronics Inc
Publication of DE19841893A1 publication Critical patent/DE19841893A1/de
Application granted granted Critical
Publication of DE19841893B4 publication Critical patent/DE19841893B4/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
    • 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

Description

Die Erfindung betrifft eine Datenverarbeitungseinheit zum Ausführen von Instruktionen, die in einem Speicher gespei­ chert sind, der mehrere Register umfaßt, die mit einer Aus­ führungseinheit verbunden sind, welche eine Logikeinheit zum Ausführen von logischen Operationen aufweist. Datenverarbei­ tungseinheiten, wie etwa Mikroprozessoren oder Mikrokontrol­ ler, werden in verschiedenen Anwendungen eingesetzt. Um das Programmieren dieser Datenverarbeitungseinheiten zu erleich­ tern, können Nutzer Programmiersprachen hohen Niveaus nutzen, wie etwa "C" oder "Pascal", oder Programmiersprachen auf niedrigerem Niveau, wie etwa Assembler. Zum rascheren Pro­ grammieren und für die Unabhängigkeit von dem tatsächlichen Ziel-Mikroprozessor oder -Mikrokontroller ist es bevorzugt, die jeweiligen Maschinen in einer der Programmiersprachen hohen Niveaus zu programmieren. Zahlreiche Befehle in einer Programmiersprache hohen Niveaus, wie etwa "C", können in einzelne Maschinensprachen-Instruktionen übersetzt werden. Zahlreiche Befehle, wie etwa bedingte Verzweigungsinstruktio­ nen, erfordern jedoch mehrere Maschinen-Code-Instruktionen, die in Abfolge bzw. Sequenz die Ausführung eines Programms verzögern können.
Eine Aufgabe der vorliegenden Erfindung besteht deshalb darin, eine Datenverarbeitungseinheit mit der Fähigkeit, logische Instruktionen parallel auszuführen, zu schaffen.
Gelöst wird diese Aufgabe durch eine Datenverarbeitungsein­ heit zum Ausführen von Instruktionen, die in einem Speicher gespeichert sind, der mehrere Register aufweist, die mit einer Ausführungseinheit verbunden sind, welche eine Logik­ einheit zum Ausführen von logischen Operationen aufweist. Die Logikeinheit weist einen ersten Logikoperator auf, welcher mit ersten und zweiten Registern als Eingaberegister verbun­ den werden kann, und der ein Ausgangs-Bit als Ergebnis einer logischen Operation erzeugt. Sie umfaßt außerdem einen Bool'schen Operator, welcher das Ausgangs-Bit des ersten Logikoperators als erstes Eingangssignal und ein zweites Ein­ gangs-Bit von einem dritten Register empfängt, welches ein Ausgangs-Bit als Ergebnis einer Bool'schen Operation erzeugt.
Gemäß einer zweiten Ausführungsform weist die Logikeinheit eine Schiebeeinrichtung bzw. ein Schieberegister auf, das mit einem ersten Register verbunden ist, welches einen Schiebe­ vorgang auf dem Register durchführt, und einen Logikoperator, der mit einem zweiten und einem dritten Register als Eingabe­ register verbunden werden kann und der ein Ausgangs-Bit als Ergebnis einer logischen Operation erzeugt. Das Ausgangs-Bit wird in dem ersten Register gespeichert.
Die Ausführungsformen gemäß der vorliegenden Erfindung erlau­ ben eine parallele Ausführung von zwei Instruktionen, wodurch die Ausführung von logischen Instruktionen beschleunigt wird, und wodurch es einfach und effizient ist, eine Programmier­ sprache hohen Niveaus in Maschineninstruktionen zu überset­ zen.
Nachfolgend wird die Erfindung anhand der Zeichnungen bei­ spielhaft näher erläutert; es zeigen
Fig. 1 ein Blockdiagramm einer ersten Ausführungsform gemäß der vorliegenden Erfindung,
Fig. 2 eine zweite Ausführungsform gemäß der vorliegenden Erfindung,
Fig. 3 eine dritte Ausführungsform gemäß der vorliegenden Erfindung,
Fig. 4 eine vierte Ausführungsform gemäß der vorliegenden Erfindung,
Fig. 5 eine erste Ausführungsform eines Bool'schen Logikope­ rators gemäß Fig. 1, 2 bzw. 4, und
Fig. 6 eine zweite Ausführungsform eines Bool'schen Logikope­ rators.
Fig. 1 bis 4 zeigen Beispiele, wie die Register einer Regi­ sterdatei mit den jeweiligen Elementen, beispielsweise einer Ganzzahlenausführungseinheit, verbunden sind, um die jeweili­ gen Instruktionen auszuführen.
Instruktionen werden üblicherweise in einem Speicher gespei­ chert, der mit einem Mikrokontroller oder Mikroprozessor ver­ bunden ist. Der Mikrokontroller oder Mikroprozessor weist eine Ausführungseinheit auf, die beispielsweise eine Logik- und eine arithmetische Ausführungseinheit aufweist. Diese Ausführungseinheit steuert sämtliche Verbindungen zwischen jeweiligen Registern und Logik- und/oder arithmetischen Ope­ ratoren.
In Fig. 1 bezeichnet die Bezugsziffer 1 ein erstes Register A und die Bezugsziffer 2 bezeichnet ein zweites Register B. Beide Register 1, 2 gehören zu einer Registerdatei für bei­ spielsweise mehreren 32-Bit-Registern. Die Bezugsziffer 5 bezeichnet ein drittes Register C, welches ebenfalls Teil der Registerdatei bildet. Die 32 Bits eines jeden Registers 1 und 2 sind mit den jeweiligen Eingängen einer Komparatoreinheit 3 verbunden. Die Komparatoreinheit 3 ist in der Lage, beide 32-Bit-Wörter jedes Registers 1 und 2 in unterschiedlichen Wei­ sen zu vergleichen. Beispielsweise vermag die Vergleichs­ instruktion zu prüfen, ob der Inhalt des Registers A größer, gleich, kleiner und dergleichen als der Inhalt des Registers B ist. Die Komparatoreinheit 3 erzeugt ein Ausgangssignal mit einem einzigen Bit, welches anzeigt, ob das Vergleichs­ instruktionsergebnis wahr oder falsch bzw. unwahr ist. Dieses Ausgangssignal wird in den ersten Eingang eines Bool'schen Logikoperators 4 eingegeben. Ein einzelnes Bit, beispiels­ weise das niedrigstwertige Bit des Registers C ist mit dem zweiten Eingang des Bool'schen Logikoperators 4 verbunden bzw. gekoppelt. Der Bool'sche Logikoperator 4 kann einzelne oder mehrfache Logikoperatoren, wie etwa AND- (UND-), OR- (ODER-), NAND-, NOR- und dergleichen Operatoren umfassen. Der Bool'sche Logikoperator 4 erzeugt ein einzelnes Ausgangs-Bit, welches in einem Register 6 gespeichert wird. Das Register 6 kann gleich dem Register 5 sein, wie in Fig. 1 durch den Registernamen C' gezeigt. Die Register 1, 2, 5 und 6 können aus der Registerdatei frei gewählt sein, wodurch es sogar möglich ist, ein einzelnes Register für die Register 1, 2, 5 und 6 zuzuordnen. Die Instruktion führt einen Vergleich zwi­ schen Register 1 und Register 2 korrekt aus. Das Ergebnis wird mit einem vorausgehenden Vergleichsergebnis kombiniert, das im Register 5 gespeichert ist. Die Bool'sche Kombination erfolgt bevorzugt entweder als logische AND-, OR- oder XOR-Ope­ ration.
Eine derartige Maschinen-Code-Instruktion kann in einem Zyklus ausgeführt werden, weil auf das Ergebnis des Bool'schen Logikoperators nahezu verzögerungsfrei zugegriffen werden kann. Die Vergleichsinstruktion, bei der es sich ent­ weder um =, ≠, <, < und dergleichen handeln kann, ist vorge­ sehen, eine Übersetzung des nachfolgenden "C" -Ausdrucks in lediglich zwei Maschinen-Code-Instruktionen zu ermöglichen. Ein Beispiel eines derartigen "C"-Ausdrucks lautet:
d5 = (d1 < d2)|(d3==d4).
Unter der Annahme, daß sämtliche Variablen in Register ver­ zeichnet wurden, berechnet die Zwei-Instruktionsabfolge d5:
lt: d5, d1, d2, berechne (d1 < d2)
or.eq.: d5, d3, d4, OR mit (d3==d4).
In Fig. 2 werden die 32 Bits des Registers 1 in die 32 Ein­ gangsanschlüsse eines Multiplexers 7 eingegeben. In derselben Weise werden die 32 Bits des Registers 2 mit den 32 Eingängen bzw. Eingangsanschlüssen eines Multiplexers 8 verbunden. Die Multiplexer 7 und 8 stellt ein Wahleingangssignal p1 bzw. p2 bereit. Mittels dieser Wahleingangssignale p1 und p2 kann ein einzelnes Bit 1a oder 2a der Register 1 und 2 gewählt werden. Der Multiplexer 7 verbindet bzw. koppelt deshalb eines der 32 Bits des Registers 1 mit einem ersten Eingang eines ersten Bool'schen Logikoperators 9 und ein Multiplexer 8 verbindet bzw. koppelt eines der 32 Bits des Registers 2 mit einem zweiten Eingang des Bool'schen Logikoperators 9. Der Bool'sche Logikoperator 9 erzeugt ein einzelnes Bit-Ausgangs­ signal, das in einen ersten Eingang eines zweiten Bool'schen Logikoperators eingespeist wird. Der zweite Eingang des Bool'schen Logikoperators 11 wird mit einem einzelnen Bit 10a des Registers 10 verbunden bzw. gekoppelt. Bei diesem einzel­ nen Bit kann es sich um das niedrigstwertige Bit oder ein beliebiges Bit handeln, das durch einen Multiplexer gewählt wird, wie für die Register 1 und 2 gezeigt. Bei dem Ausgang bzw. Ausgangssignal des Bool'schen Logikoperators handelt es sich ebenfalls um ein einzelnes Bit-Signal, das mit einem einzelnen Bit 12a eines vierten Registers 12 verbunden bzw. gekoppelt wird.
Zur Auswertung bzw. Berechnung der Bool'schen Logikausdrücke stellt die erfindungsgemäße Datenverarbeitungseinheit spezi­ elle Instruktionen bereit. Insbesondere zieht die Auswertung bzw. Berechnung komplexer Bool'scher Gleichungen Nutzen aus einer Bool'schen Funktion mit drei Eingängen ähnlich derjeni­ gen, die in Fig. 1 erläutert ist. Anstelle des Komparators 3 führt ein erster Bool'scher Logikoperator 9 eine Bool'sche Operation auf zwei einzelnen Bits aus, wodurch jedes Bit von einem der Register 1 und 2 gewählt wird. Das Ergebnis dieser Operation wird durch einen zweiten Bool'schen Logikoperator 11 mit einem einzigen Bit 10a eines dritten Registers kombi­ niert, bei dem es sich bevorzugt um das niedrigstwertige Bit des Registers 10 handelt. Das Ergebnis dieser Operation kann in einem einzelnen Bit eines Registers 12 gespeichert werden, bei dem es sich wiederum um dasselbe Register handeln kann, welches den zweiten Eingang bzw. das zweite Eingangssignal für den Bool'schen Logikoperator 11 bereitstellt. In diesem Fall bleiben die höchstwertigen Bits, d. h. sämtliche Bits mit Ausnahme des Bits 12a des Registers 12 ungeändert. Dessenun­ geachtet kann das Ergebnis auch beispielsweise erweitert wer­ den, um das gesamte Register zu füllen, oder um sämtliche anderen Bits auf "0" zu setzen.
Die möglichen Drei- oder Vier-Eingangs- bzw. -Eingangs- bzw. Eingabeoperationen können eine beliebige Kombination einer Bool'schen Logik sein, beispielsweise AND.AND, AND.NAND, AND.NOR, AND.OR, OR.AND, OR.NAND, OR.NOR, OR.OR und derglei­ chen. Da die Instruktionsgröße häufig begrenzt bzw. beschränkt ist, kann es sich bei den dritten und vierten Registern 10 und 12 um dieselben Register handeln, und das niedrigstwertige Bit wird stets als das Eingangs-Bit für den Bool'schen Logikoperator 11 und als das Ziel für das Aus­ gangs-Bit des Bool'schen Logikoperators 11 verwendet. Der Inhalt des Registers 10 wird demnach durch das Ergebnis der Operation überschrieben. Wenn der ursprüngliche Wert später benötigt wird, muß er deshalb in einer unterschiedlichen Stelle bevorratet bzw. gespeichert werden.
Fig. 3 zeigt eine dritte Ausführungsform der vorliegenden Erfindung. Das Register 1, das Register 2 und der Komparator 3 sind in derselben Weise wie in Fig. 1 verbunden. Beim Aus­ gang des Komparators 3 handelt es sich erneut um eine ein­ zelne Bit-Leitung, die mit einem einzelnen Bit 14a eines Registers 14 verbunden bzw. gekoppelt ist. Das Register 14 ist mit einer Schiebeeinrichtung bzw. einem Schieberegister 13 verbunden bzw. gekoppelt.
Bestimmte Steueranwendungen erfordern, daß mehrere Bool'sche (Logikoperatoren) in ein einzelnes Register gepackt werden. Dieser Satz von gepackten Bits kann daraufhin als Index in eine Konstanttabelle oder Sprungtabelle genutzt werden. Die Verwendung einer Tabelle ermöglicht es, daß komplexe Bool'sche Funktionen und/oder Zustandsmaschinen in wirksamer Weise ausgewertet bzw. berechnet werden können. Auch Sprachen hohen Niveaus, wie etwa "C" oder "Pascal", unterstützen soge­ nannte Schaltgehäuse-Instruktionen, die mehrere Vergleichs­ instruktionen erfordern, auf Grundlage von welchen eine von mehreren Instruktionsroutinen gewählt wird. Um das Packen Bool'scher Ergebnisse in ein Register zu erleichtern, stellt die erfindungsgemäße Ausführungsform eine sogenannte "Ver­ gleiche unter Verschieben"-Verbundinstruktion bereit. Das Ergebnis des Vergleichs, der durch eine Komparatoreinheit 3 ausgeführt wird, wird in dem niedrigstwertigen Bit des Ergeb­ nisregisters 14 plaziert, nachdem der Inhalt des Registers 14 um eine Stelle verschoben wurde. Wie angeführt, handelt es sich bei der Verschiebeoperation bevorzugt um eine Verschie­ bung um eine Stelle nach links; es kann sich jedoch auch um eine Verschiebung nach rechts oder eine Mehrfach-Bit-Ver­ schiebung nach links oder rechts handeln.
Fig. 4 zeigt eine vierte erfindungsgemäße Ausführungsform. Die Elemente 1, 2, 7, 8 und 9 sind in derselben Weise wie in Fig. 2 verbunden bzw. gekoppelt. Die einzelne Ausgangs-Bit-Lei­ tung des Bool'schen Logikoperators 9 ist mit einem einzi­ gen Bit 16a eines Registers 16 verbunden bzw. gekoppelt. Das Register 16 ist mit einer Schiebeeinrichtung bzw. einem Schieberegister 15 verbunden.
Wie vorstehend angeführt und in Fig. 3 gezeigt, müssen die Ergebnisse von Bit-Operationen häufig in ein einzelnes Regi­ ster für Kontrolleranwendungen gepackt werden. Aus diesem Grund können mehrere Instruktionen mit einem Schieberpräfix kombiniert werden. Diese Operationen führen zunächst eine Einzel-Bit-Verschiebung nach links auf dem Bestimmungsregi­ ster 16 durch und speichern daraufhin das Ergebnis der Zwei-Ein­ gangslogikfunktion, die durch den Bool'schen Logikoperator 9 ausgeführt wird, in sein niedrigstwertiges Bit 16a. Als Beispiel wie wirksam eine Programmiersprache hohen Niveaus in einen Maschinen-Code übersetzt werden kann, könnte ein Bei­ spiel des "C"-Codes lauten:
OUT0 = b∧d;
OUT1 = (a & b)|(c & d);
Es wird angenommen, daß die Eingänge bzw. Eingangssignale in den niedrigstwertigen Bits von D0 gespeichert sind, d. h.:
D0: 0 stellt a dar;
D0: 1 stellt b dar;
D0: 2 stellt c dar; und
D0: 3 stellt d dar,
und die zwei Ausgänge bzw. Ausgangssignale sollten in die zwei niedrigstwertigen Bits von D1 gepackt sein. Die geeig­ nete Instruktionssequenz, um dies zu berechnen, würde lauten:
and.t: D1, D0 : 0, D0 : 1
or.and.t: D1, D0 : 2, D0 : 3
sh.xor.t D1, D0 : 1, D0 : 3
Die erste Instruktion schreibt das Ergebnis von (a & b) in das Bit 0 des Registers D1. Die zweite Instruktion kombiniert (c & d) mit D1 : 0 und speichert den Ausgang bzw. das Ausgangs­ signal zurück in dieses. Sh.xor.t verschiebt schließlich D1 um ein Bit nach links, wodurch D1 : 0 zu D1 : 1 verschoben wird und es speichert das Ergebnis der XOR-Operation (b∧d) in D1 : 0. OUT1 und OUT0 werden damit in D1 : 1 und D1 : 0 gepackt.
Fig. 5 zeigt ein Beispiel eines wählbaren Bool'schen Logik­ operators 4, 9 oder 11. Ein erstes Eingangs-Bit kann in einen Anschluß 17 eingespeist werden, der mit einem Eingang eines Multiplexers 21 verbunden ist, der durch ein Steuersignal gesteuert wird, das in den Anschluß 19 eingespeist ist. Der Multiplexer 21 weist vier Ausgänge auf, die mit jeweiligen ersten Eingängen von vier Bool'schen Operatoren 23, 24, 25 und 26 verbunden bzw. gekoppelt sind. Ein zweiter Multiplexer 22 ist vorgesehen, dessen Eingang mit einem Anschluß 18 ver­ bunden ist, der mit dem zweiten Eingang verbunden sein kann. Ein Steuereingangsanschluß 30 ist mit dem Steuereingang des Multiplexers 22 verbunden. Zumindest zwei Leitungen sind erforderlich, um die Eingänge 19 und 20 zu steuern, um zwi­ schen vier verschiedenen Operatoren zu wählen. Der Multiple­ xer 22 umfaßt vier Ausgänge, die mit den zweiten Eingängen der vier Bool'schen Operatoren 23, 24, 25 bzw. 26 verbunden sind. Die vier Bool'schen Operatoren 23, 24, 25 und 26 stel­ len offene Kollektorausgänge bereit, die mit einem Ausgangs­ anschluß 27 verbunden sind.
Fig. 6 zeigt eine zweite Ausführungsform, welche lediglich einen Multiplexer 28 verwendet, der zwischen die Ausgänge der Bool'schen Operatoren 23, 24, 25 und 26 geschaltet ist. Die Anschlüsse 17 und 18 sind mit jedem ersten und zweiten Ein­ gang der Bool'schen Operatoren 23, 24, 25 und 26 verbunden. Der Anschluß 29 führt ein Wahlsignal dem Multiplexer 28 zu.
Mehrere unterschiedliche Bool'sche Operatoren können in einer derartigen Bool'schen Logikeinheit enthalten sein. Zusätzlich oder alternativ können NOR- und NAND-Elemente durch zusätz­ liche Inverter gebildet sein, die mit Eingängen oder Ausgän­ gen des jeweiligen Logikelements verbunden sein können. Eine weite Vielfalt von Logikoperationen können deshalb durch eine derartige Einheit ausgeführt werden.

Claims (11)

1. Datenverarbeitungseinheit zum Ausführen von Instruktio­ nen, die in einem Speicher gespeichert sind, der mehrere Register aufweist, die mit einer Ausführungseinheit verbunden sind, die eine Logikeinheit zum Ausführen einer Logikopera­ tion aufweist, wobei die Logikeinheit aufweist:
einen ersten Logikoperator, der mit einem ersten und zweiten Register als Eingaberegister verbunden sein kann und ein Aus­ gangs-Bit als Ergebnis einer Logikoperation erzeugt, und
einen Bool'schen Operator, der das Ausgangs-Bit des ersten Logikoperators als erstes Eingangssignal und ein zweites Ein­ gangs-Bit von einem dritten Register empfängt, und der ein Ausgangs-Bit als Ergebnis einer Bool'schen Operation erzeugt.
2. Einheit nach Anspruch 1, wobei der erste Logikoperator eine Vergleichsoperation durchführt.
3. Einheit nach Anspruch 1, wobei der erste Logikoperator eine Bool'sche Operation durchführt.
4. Einheit nach Anspruch 3, wobei die Bool'sche Operation des ersten Logikoperators auf einem definierbaren einzelnen Bit von sowohl dem ersten wie dem zweiten Register durchge­ führt wird.
5. Einheit nach Anspruch 1, wobei das Ergebnis der Bool'schen Operation in dem dritten Register als niedrigst­ wertiges Bit gespeichert ist.
6. Einheit nach Anspruch 1, wobei das Ergebnis der Bool'schen Operation in dem dritten Register als mehrere Bits gespeichert ist.
7. Datenverarbeitungseinheit zum Ausführen von Instruktio­ nen, die in einem Speicher gespeichert sind, der mehrere Register aufweist, die mit einer Ausführungseinheit verbunden sind, die eine Logikeinheit zum Ausführen einer Logikopera­ tion aufweist, wobei die Logikeinheit aufweist:
eine Schiebeeinrichtung, die mit einem ersten Register ver­ bunden ist, um eine Schiebeoperation auf dem Register durch­ zuführen, und
einen Logikoperator, der mit einem zweiten und dritten Regi­ ster als Eingaberegister verbunden werden kann und ein Aus­ gangs-Bit als Ergebnis einer Logikoperation erzeugt, wobei das Ausgangs-Bit in dem ersten Register gespeichert ist.
8. Einheit nach Anspruch 7, wobei das Ausgangs-Bit in dem niedrigstwertigen Bit des ersten Registers gespeichert ist.
9. Einheit nach Anspruch 7, wobei der Logikoperator eine Vergleichsoperation durchführt.
10. Einheit nach Anspruch 7, wobei der Logikoperator eine Bool'sche Operation durchführt.
11. Einheit nach Anspruch 10, wobei die Bool'sche Operation des ersten Logikoperators auf einem definierbaren einzelnen Bit von sowohl dem zweiten wie dem dritten Register durchge­ führt wird.
DE19841893A 1997-09-12 1998-09-11 Mikrokontroller Expired - Fee Related DE19841893B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/928,427 1997-09-12
US08/928,427 US6961846B1 (en) 1997-09-12 1997-09-12 Data processing unit, microprocessor, and method for performing an instruction

Publications (2)

Publication Number Publication Date
DE19841893A1 true DE19841893A1 (de) 1999-03-18
DE19841893B4 DE19841893B4 (de) 2005-06-30

Family

ID=25456219

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19841893A Expired - Fee Related DE19841893B4 (de) 1997-09-12 1998-09-11 Mikrokontroller

Country Status (2)

Country Link
US (1) US6961846B1 (de)
DE (1) DE19841893B4 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050077A (zh) * 2013-03-15 2014-09-17 英特尔公司 利用多个测试源来提供或(or)测试和与(and)测试功能的可融合指令和逻辑
US9886277B2 (en) 2013-03-15 2018-02-06 Intel Corporation Methods and apparatus for fusing instructions to provide OR-test and AND-test functionality on multiple test sources

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8526601B2 (en) * 2004-04-05 2013-09-03 Advanced Micro Devices, Inc. Method of improving operational speed of encryption engine
US20110138156A1 (en) * 2009-10-15 2011-06-09 Awad Tom Method and apparatus for evaluating a logical expression and processor making use of same
US20120030451A1 (en) * 2010-07-28 2012-02-02 Broadcom Corporation Parallel and long adaptive instruction set architecture
US9672037B2 (en) * 2013-01-23 2017-06-06 Apple Inc. Arithmetic branch fusion
JP2020144480A (ja) * 2019-03-04 2020-09-10 パナソニックIpマネジメント株式会社 プロセッサ及びプロセッサの制御方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3656109A (en) * 1970-03-13 1972-04-11 Sperry Rand Corp Hamming distance and magnitude detector and comparator
US3723710A (en) * 1971-06-28 1973-03-27 Ibm Method and device for reading and decoding a high density self-clocking bar code
US4061880A (en) * 1975-03-21 1977-12-06 Dicom Systems, Ltd. Time-multiplex programmable switching apparatus
US4003033A (en) * 1975-12-22 1977-01-11 Honeywell Information Systems, Inc. Architecture for a microprogrammed device controller
US4112490A (en) * 1976-11-24 1978-09-05 Intel Corporation Data transfer control apparatus and method
US4257110A (en) * 1977-04-19 1981-03-17 Semionics Associates, Inc. Recognition memory with multiwrite and masking
US4164025A (en) * 1977-12-13 1979-08-07 Bell Telephone Laboratories, Incorporated Spelled word input directory information retrieval system with input word error corrective searching
US4163211A (en) * 1978-04-17 1979-07-31 Fujitsu Limited Tree-type combinatorial logic circuit
JPS5569856A (en) * 1978-11-22 1980-05-26 Toshiba Corp Overlap system
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
US4533992A (en) * 1982-02-22 1985-08-06 Texas Instruments Incorporated Microcomputer having shifter in ALU input
US4728927A (en) * 1984-09-28 1988-03-01 Aman James A Apparatus and method for performing comparison of two signals
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5251203A (en) * 1991-12-23 1993-10-05 Xerox Corporation Hub privacy filter for active star CSMA/CD network
JPH06332664A (ja) * 1993-03-23 1994-12-02 Toshiba Corp 表示制御システム
US5442577A (en) * 1994-03-08 1995-08-15 Exponential Technology, Inc. Sign-extension of immediate constants in an alu
US5781457A (en) * 1994-03-08 1998-07-14 Exponential Technology, Inc. Merge/mask, rotate/shift, and boolean operations from two instruction sets executed in a vectored mux on a dual-ALU
US5751614A (en) * 1994-03-08 1998-05-12 Exponential Technology, Inc. Sign-extension merge/mask, rotate/shift, and boolean operations executed in a vectored mux on an ALU
US5692207A (en) * 1994-12-14 1997-11-25 International Business Machines Corporation Digital signal processing system with dual memory structures for performing simplex operations in parallel
US5764550A (en) * 1996-07-22 1998-06-09 Sun Microsystems, Inc. Arithmetic logic unit with improved critical path performance

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050077A (zh) * 2013-03-15 2014-09-17 英特尔公司 利用多个测试源来提供或(or)测试和与(and)测试功能的可融合指令和逻辑
CN104050077B (zh) * 2013-03-15 2017-07-28 英特尔公司 利用多个测试源来提供测试的处理器、处理系统和方法
US9886277B2 (en) 2013-03-15 2018-02-06 Intel Corporation Methods and apparatus for fusing instructions to provide OR-test and AND-test functionality on multiple test sources
US10296347B2 (en) 2013-03-15 2019-05-21 Intel Corporation Fusible instructions and logic to provide or-test and and-test functionality using multiple test sources

Also Published As

Publication number Publication date
US6961846B1 (en) 2005-11-01
DE19841893B4 (de) 2005-06-30

Similar Documents

Publication Publication Date Title
DE60018078T2 (de) Einstellung von bedingungswerten in einem rechner
DE2755273C2 (de)
DE2724125C2 (de)
DE19839627B4 (de) Digitaler Signalprozessor
DE2753062A1 (de) Einrichtung zur durchfuehrung programmierter befehle
EP2799983A1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE69634227T2 (de) Emulationssystem mit emulierten Mehrtaktzyklen pro Emulation-Taktzyklus und Signalweglenkung
DE19524402C2 (de) Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge
WO1995010803A1 (de) Prozessor für zeichenketten variabler länge
DE19841893A1 (de) Datenverarbeitungseinheit
DE4430195B4 (de) Verfahren zur Auswertung von Booleschen Ausdrücken
DE3507584C2 (de)
DE60110811T2 (de) Verfahren zur bereitstellung von bitweisen einschränkungen während einer test-generierung
WO2015086357A1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE19914695A1 (de) System und Verfahren zum Entwickeln eines Codes zur Ausführung durch einen digitalen Signalprozessor
EP1068580B1 (de) Verfahren zum vergleich elektrischer schaltungen
EP2963541A1 (de) Implementierung einer Konstanten in FPGA-Code
DE4001232C2 (de) Gleitkommaeinheit
DE10206830B4 (de) Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden
DE19730727A1 (de) System und Verfahren zum Abschneiden von Ganzzahlen
DE19710463C2 (de) Verfahren zur automatischen Differentiation auf einem Rechner insbesondere zur Simulation elektronischer Schaltungen
EP0560342B1 (de) Verfahren zum Untersuchen des Ablaufs eines in einer Hardware-Beschreibungssprache geschriebenen Programms
DE19647628C2 (de) Nachbildung eines Bedingungscodes bei Codetransformationen
WO1996033456A1 (de) Übertrag-auswahl-addierer mit einer vorermittlung der führenden nullstellen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 9/305

8127 New person/name/address of the applicant

Owner name: INFINEON TECHNOLOGIES NORTH AMERICA CORP., SAN JOS

8364 No opposition during term of opposition
R082 Change of representative

Representative=s name: PATENTANWAELTE WESTPHAL MUSSGNUG & PARTNER, DE

R081 Change of applicant/patentee

Owner name: INFINEON TECHNOLOGIES AG, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES NORTH AMERICA CORP., SAN JOSE, CALIF., US

Effective date: 20121128

Owner name: INFINEON TECHNOLOGIES AG, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES NORTH AMERICA CORP., SAN JOSE, US

Effective date: 20121128

R082 Change of representative

Representative=s name: WESTPHAL, MUSSGNUG & PARTNER PATENTANWAELTE MI, DE

Effective date: 20121128

Representative=s name: PATENTANWAELTE WESTPHAL MUSSGNUG & PARTNER, DE

Effective date: 20121128

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee