`
`0)
`
`Europdisches Patentamt
`
`EuropeanPatent Office
`
`Office européen des brevets
`
`(11)
`
`EP 0 843 256 A2
`
`(12)
`
`EUROPAISCHE PATENTANMELDUNG
`
`(51) Int. cl: GO6F 9/45, GOGF 9/455
`
`(43) Verdtffentlichungstag:
`20.05.1998 Patentblatt 1998/21
`
`(21) Anmeldenummer: 97117565.8
`
`(22) Anmeldetag: 10.10.1997
`
`(84) Benannte Vertragsstaaten:
`AT BE CH DE DK ES FI FRGB GR IEITLILUM
`NL PT SE
`
`Benannte Erstreckungsstaaten:
`ALLT LV RO SI
`
`(30) Prioritat: 18.11.1996 DE 19647628
`
`c (71) Anmelder:
`
`Siemens Nixdorf
`
`Informationssysteme AG
`33106 Paderborn (DE)
`
`(72) Erfinder: Loderer, Johann
`85250 Altominster (DE)
`
`(54)
`
`Nachbildung eines Bedingungscodesbei Codetransformationen
`
`(57)—Die Erfindung betritft ein Verfahren zur Nachbil-
`grammablauf
`einen
`Ergebniswert
`generierenden
`Befehls (B1, B2) und ohne Verwendung von Verzwei-
`dung eines Bedingungscodes (CC) bei der Portierung
`von hardwarespezifischem Programmcode (PCU) von
`gungsbefehlen im Programmcode (PCZ) nachgebildet
`wird. AuBerdem wird zusatzlicher Code (ZC,, ZC2, ZC3)
`einer Ursprungshardware (M1) auf eine Zielhardware
`(M2), bei der keine Hardware-Unterstitzung eines
`far die Zielhardware (M2) erzeugt, durch den zur Lauf-
`Bedingungscodes (CG) vorgesehenist.
`zeit das auf der Ursprungshardware (M1) dem Wert
`(CCW) nach Ausftihrung der Anweisung (A,)entspre-
`chende Bitmuster (BM) ermittelt wird, indem ein vorge-
`gebenes Ausgangsbitmuster einer Bitoperation unter-
`zogen wird, deren Wirkung von dem wenigstens einen
`im Zusammenhang mit der Anweisung (A,) generierten
`Ergebniswert abhangt. Von Vorteil
`ist bei diesem Ver-
`fahren, daB zu seiner Umsetzung auf der Zielhardware
`(M2) keine zeitintensiven Sprungbefehle bendtigt wer-
`den.
`
`Es wird eine Abbildung definiert, die jedem mégli-
`chen Wert (CCW) des Bedingungscodes (CC) auf der
`Ursprungshardware (M1) eindeutig ein Bitmuster (BM)
`auf der Zielhardware (M2) zuordnet. Zur Abspeicherung
`des dem jeweils aktuellen Wert (CCW) zugeordneten
`Bitmusters (BM) wird auf der Zielhardware (M2) ein
`Speicherbereich (REG) vorgesehen. Bei der Portierung
`des Programmcodes (PCU) wird jede potentiell den
`Wert (CCW) beeinflussende Anweisung (A,) transfor-
`miert, indem sie mit Hilfe wenigstens eines beim Pro-
`
`Codetransformation
`Pcu
`ed PCZ
`a =]
`I a]
`eT]
`pT
`pd|
`a
`
`Ja
`
`L—____{——_
`M1
`
`FIG 1
`
`-—_____—___I
`M2
`
`Printed by Xerox (UK) Business Services
`2.16.3/3.4
`
`LzLabs GmbH. Ex. 1006-1
`
`EP0843256A2
`
`CC-Umseteung|car||BM|ap
`
`LzLabs GmbH. Ex. 1006-1
`
`
`
`1
`
`EP 0 843 256 A2
`
`2
`
`Beschreibung
`
`Die Erfindungbetrifft ein Verfahren zur Nachbildung
`eines Bedingungscodes bei der Portierung von hard-
`warespezifischem Programmcode von einer Ursprungs-
`hardware
`auf
`eine Zielhardware,
`bei der keine
`Hardware-Unterstitzung eines Bedingungscodes vor-
`gesehenist.
`(z.B.
`auf GroBrechnersystemen
`Insbesondere
`VAX- oder IBM/390-Mainframes) ist in der Rechnerar-
`chitektur oft ein spezielles, als Bedingungscode oder
`Condition-Code bezeichnetes,
`in der Regel mehrere
`Bits umfassendes Hardware-Flag implementiert. Es
`stellt eine Hardware-Anzeige dar, die u.a. bei Ver-
`gleichsoperationen zum Tragen kommt und durch ent-
`sprechende Maschinenbefehle
`auf
`einen
`in
`Abhangigkeit vom Ergebnis der Operation spezifizierten
`Wert gesetzt wird. Auch arithmetische Uberlaufe (aver-
`flow) kénnen so angezeigt werden. Darauffolgende
`Befehle, insbesondere Anweisungen ftir bedingte Ver-
`zweigungen, kénnen dann den Bedingungscode aus-
`werten, um z.B. ein Sprungziel festzulegen.
`Neue Rechnergenerationen, insbesondere solche
`mit RISC-Architektur, weisen in der Regel keinen Bedin-
`gungscode auf. Folglich mu bei einer Transformation
`von hardwarespezifischem Programmcode von einer
`Ursprungshardware mit Bedingungscodein Programm-
`code fur eine solche Zielhardware ohne Bedingungs-
`code eine Nachbildung des Bedingungscodes auf
`Softwareebene erfolgen.
`Insbesondere wenn der Wertevorrat des Bedin-
`
`gungscodes mehrals zwei verschiedene Werte umfaBGt,
`mussen dabei auf der Zielhardware bei der Nachbil-
`
`dung einer Anweisung auch mehrere Einzelabfragen
`bzw.-vergleiche durchgefuhrt werden, um den Wert des
`Bedingungscodes nach einer bei der Transformation
`aus einer den Bedingungscodebeeinflussenden Anwei-
`sung hervorgegangenen Befehlssequenz zu ermitteln.
`Dazu mussen zur Gewinnung des Bedingungscodes
`die Ergebnisse der Einzelabfragen bzw.-vergleiche mit-
`einander verknupft werden. Eine naheliegende und
`gewohnlich benutzte Methode besteht darin, aus den
`Einzelabfragen bzw.
`-vergleichen eine _,if’-Kaskade,
`d.h. eine mehrstufige Verzweigung aufzubauen. Die
`Umsetzung einer solchen Verzweigung in Maschinen-
`codeerfolgt mit Hilfe von Sprungbefehlen. Bei einer der-
`artigen Lésung fuhren jedoch die bei vielen Rechnern
`relativ zu anderen Maschinenbefehlen ,zeitintensiven’,
`d.h. eine hohe Anzahl von Prozessor-Taktzyklen bendti-
`genden Sprungbefehle zu Geschwindigkeitseinbu Ben.
`Aufgabe der Erfindung ist es daher ein Verfahren
`zur Nachbildung eines Bedingungscodesbei der Portie-
`rung von hardwarespezifischem Programmcode von
`einer Ursprungshardware auf eine keinen Bedingungs-
`code vorsehende Zielhardware anzugeben, bei dem die
`oben genannten Nachteile vermieden werden.
`Die Aufgabe wird gelést durch ein Verfahren zur
`Nachbildung eines Bedingungscodes, das die im
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`Patentanspruch 1 angegebenen Merkmale aufweist.
`Die Nachbildung des Bedingungscodes auf der
`Zielhardware erfolgt erfindungsgemaB wiefolgt:
`Zunachstwird eine Abbildung definiert, die jedem még-
`lichen Wert des Bedingungscodes auf der Ursprungs-
`hardware eindeutig ein Bitmuster auf der Zielhardware
`zugeordnet. Zur Abspeicherung des dem jeweils aktuel-
`len Wert des Bedingungscodes zugeordneten Bitmu-
`sters wird auf der Zielhardware ein Speicherbereich
`oderein eigenes Register vorgesehen.
`Bei der Portierung des Programmcodes der Ursprungs-
`hardware wird jede potentiell den Wert des Bedin-
`gungscodesbeeinflussende Anweisung transformiert,
`indem sie mit Hilfe eines beim Programmablauf einen
`Ergebniswert generierenden Befehls und ohne Verwen-
`dung von Verzweigungsbefehlen im Programmcodefiir
`die Zielhardware nachgebildet wird.
`Der Befehl bewerkstelligt dabei sowohl die Feststel-
`lung des Ergebniswerts in Abhangigkeit vom Pro-
`grammlauf als auch das Setzen und Ausgeben dieses
`Ergebniswertes, z.B. in einem Register. Diese Zusam-
`menfassung zweier Teilfunktionen in einem einzigen
`Maschinenbefehl ist entscheidend fir die Vermeidung
`von Verzweigungen im ProgrammfluB. Zur Nachbildung
`einer Anweisung kann es auch erforderlich sein, meh-
`rere - auch verschiedene- solcher jeweils einen Ergeb-
`niswert generierender Befehle zu verknipfen.
`So kann etwaein Vergleichsanweisung, die auf der
`Ursprungshardware zwei Werte miteinander vergleicht
`und das Ergebnis des Vergleichs durch Setzen des
`Bedingungscodesauf einen entsprechenden Wert aus-
`gibt, mit Hilfe eines die elementare Vergleichsoperation
`>” (,gréBer als")
`implementierenden und einen das
`Vergleichsergebnis charakterisierenden Ergebniswert
`liefernden Befehls auf der Zielhardware nachgebildet
`werden. Eine Verknipfung mehrerer solcher Befehle
`wird erforderlich, wenn die ursprtingliche Vergleichsan-
`weisung mehr als zwei verschiedene, durch den Bedin-
`gungscode reprasentierte Ergebnisse (z.B.
`,gréBer’,
`ukleiner”, ,gleich") erzeugen kann.
`im
`Bei der Transformation wird noch zusaizlicher,
`folgenden als ,Zusatzcode" bezeichneter Code fur die
`Zielhardware erzeugt, durch den zur Laufzeit das auf
`der Ursprungshardware dem Wert des Bedingungsco-
`des nach Ausfiihrung der Anweisung entsprechende
`Bitmuster ermittelt wird. Dies geschieht, indem ein vor-
`gegebenes Ausgangsbitmuster
`einer Bitoperation
`unterzogen wird, deren Wirkung von dem wenigstens
`einen im Zusammenhang mit der Anweisung generier-
`ten Ergebniswert abhangt.
`Der Vorteil diese Verfahrens ergibt sich dadurch,
`daB bei seiner Umsetzung in maschinenlesbaren Pro-
`grammcode auf der Zielhardware, anders als etwa bei
`einer durch Einzelabfragen gesteuerten Verzweigungs-
`kaskade (,if-Kaskade") keine Sprungbefehle bendtigt
`werden:
`
`Die einzelnen Ergebniswerte der Befehle zur Nach-
`bildung einer Anweisung werden unabhangig voneinan-
`
`LzLabs GmbH. Ex. 1006-2
`
`LzLabs GmbH. Ex. 1006-2
`
`
`
`3
`
`EP 0 843 256 A2
`
`4
`
`der bestimmt und bei der Bitoperation auf dem
`Ausgangsmuster auf festgelegte Weise zur Bestim-
`mung des Bitmusters herangezogen. Verzweigungen
`des Programmflusses (und damit Spriinge) sind dabei
`also nicht erforderlich.
`
`Vorteilhafte Aus- und Weiterbildungen der Erfin-
`dung sind Gegenstand der Unteranspriiche.
`Nach einer ersten Ausgestaltung der Erfindung -
`Anspruch 2 - erfolgt bei der Portierung die Erzeugung
`des zusatzlichen Codes zur Ermittlung des dem Wert
`des Bedingungscodes entsprechenden Bitmusters ftir
`eine Anweisung nur dann, wenn die Maédglichkeit
`besteht, daB eine im ProgrammfluB vor der méglichen
`Beeinflussung des Bedingungscodes durch darauffol-
`15
`
`gende Anweisungenstatifindende Auswertung dieses FIG2~—die Wertzuweisung fiir den Bedingungscode
`Bitmusters erfolgt. Stent dagegen fest, daB unabhangig
`bei einem Vergleichsbefehl;
`von einem speziellen Programmlauf der bei der Ausfih-
`FIG3—die Struktur einer Verzweigungskaskadebei
`rung der betroffenen An-Weisung auf der Ursprungs-
`hardware generierte Bedingungscode in jedem Fall
`bisherigen L6ésungen;
`Uberschrieben wurde, bevor er im weiteren Programm-
`FIG4—ein konkretes Beispiel fur die Nachbildung
`ablauf genutzt werden k6nnte, so unterbleibt bei der
`Portierung die Erzeugung des Zusatzcodes fir diese
`einer Anweisungfur eine Ursprungshardware
`auf einer Zielhardware.
`Anweisung. Damit kénnen unnétiger Programmcode
`und daraus resultierend Laufzeit eingespart werden,
`ohne daB daraus Nachteile entstehen.
`
`10
`
`20
`
`26
`
`GemaB einer Ausbildung der Erfindung - Anspruch
`3 - ist wenigstens einer der Befehle, die zur Nachbil-
`dung von den Wert des Bedingungscodes beeinflus-
`senden Anweisungen
`verwendet werden,
`ein
`Vergleichsbefehl. Damit lassen sich vor allem die oft
`bendtigten Vergleichsoperationen der Ursprungshard-
`ware nachbilden.
`
`Eine weitere Ausgestaltung des erfindungsgema-
`Ben Verfahrens - Anspruch 4 - betrifft eine spezielle
`Darstellung des nachgebildeten Bedingungscodes auf
`der Zielhardware. Dabei wird jedem Wert
`i des
`urspriinglichen Bedingungscodesauf der Zielhardware
`ein Bitmuster zugeordnet, bei dem nur eine dem Werti
`eindeutig zugeordnete Bitposition auf ,,1” und alle ande-
`ren Bits des Bitmusters auf ,0” gesetzt sind. Diese spe-
`zielle Zuordnung von Bitmusternist vor allem dann von
`Vorteil, wenn diese Bitmuster den Sprungmasken der
`Anweisungen zur Programmverzweigung auf der
`Ursprungshardware entsprechen (z.B. bei
`IBM/390-
`Systemen). Damit
`ist dann eine sehr performante
`Abfrage des nachgebildeten Bedingungscodes durch
`darauffolgende, bei der Portierung aus dem Ursprungs-
`code hervorgegangene Verzweigungsbefehle méglich.
`GemaB einer weiteren Ausbildung der Erfindung -
`Anspruch 5 - wird die Bitoperation im Zusatzcode unter
`Zuhilfenahme wenigstens
`eines Verschiebebefehls
`implementiert.
`Bei einer speziellen Variante dieser Ausbildung -
`Anspruch6 - ist das Ausgangsbitmusterflr die Bitope-
`ration einem vorgegebenen Wert des Bedingungscodes
`zugeordnet, und die Bitoperation besteht darin, daB in
`Abhangigkeit von dem wenigstens einen zur Laufzeit im
`Zusammenhang mit der Nachbildung einer Anweisung
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`auftretenden Ergebniswert das Ausgangsbitmuster um
`eine vorgegebene Anzahlvon Bitpositionen verschoben
`wird. Dabei kénnen auch in Abhangigkeit des wenig-
`stens einen Ergebniswertes auch unterschiedliche Ver-
`schieberichtungen auftreten.
`Nachfolgend werden Einzelheiten der Erfindung
`anhand von Ausfihrungsbeispielen unter Bezugnahme
`auf die Zeichnung nahererlautert.
`Es zeigt
`
`FIG1
`
`erfin-
`schematisch das Grundprinzip des_
`dungsgemaBen Verfahrens zur Nachbildung
`eines Bedingungscodes;
`
`Das Grundprinzip des erfindungsgemaBen Verfah-
`rens zur Nachbildung eines Bedingungscodesist sche-
`matisch
`in
`FIG 1
`dargestellt.
`Ein
`von
`einer
`Ursprungshardware M1 auf eine Zielhardware M2 zu
`portierender Programmcode PCU ist aus einzelnen
`Anweisungen Aj, Ap,....Ay aufgebaut. Unter diesen
`Anweisungenist zumindest eine, z.B. A,, die den Wert
`CCW des in der Maschinenarchitektur der Ursprungs-
`hardware M1 vorgesehenen Bedingungscodes CC
`beeinfluBt. Bei Rechnern, bei denen ein Bedingungs-
`code verwendetwird, ist dies in der Praxis fast immer
`der Fall, da die meisten der Rechnerbefehle EinfluB auf
`den Wert CCW des Bedingungscodes CC nehmen und
`die haufig bendtigten bedingten Verzweigungen zumin-
`dest zum groBen Teil auf der Auswertung des Bedin-
`gungscodes CC beruhen.
`Bei einer Codetransformation, mit der der zu portie-
`rende Programmcode PCU in Programmcode PCZ fur
`eine Zielhardware M2 umgewandelt wird, wird jede der
`Anweisungen A,, Ao,...,Ay in einen Befehl (oder eine
`semantisch aquivalente Befehlsfolge)
`im Programm-
`code PCZ umgeseizt. Fur potentiell den Wert CCW des
`Bedingungscodes CC beeinflussende Anweisungen
`wird zusatzlicher Programmcode (Zusatzcode) fir die
`Nachbildung des Bedingungscodes CC auf der Ziel-
`hardware M2 generiert. Bei dem in FIG 1 dargestellten
`Beispiel wird auf diese Weise die Anweisung A, im Pro-
`grammcode PCU in eine Befehlsfolge im Programm-
`code PCGZ umgesetzt. Diese Befehlsfolge besteht aus
`Zwei zur semantischen Darstellung der Anweisung A,
`bendtigten Befehlen B, und Bs und einem ausdreiTeil-
`abschnitten ZC;, ZC2 und ZC3 bestehenden Zusatz-
`code.
`
`In der Maschinenarchitektur der Ursprungshardware
`
`LzLabs GmbH. Ex. 1006-3
`
`LzLabs GmbH. Ex. 1006-3
`
`
`
`5
`
`EP 0 843 256 A2
`
`6
`
`M1 ist der Bedingungscode CC in der Regel als spezi-
`elle Hardware-Anzeige implementiert. Auf der Zielhard-
`ware muB der Bedingungscode nachgebildet werden.
`Neben der oben genannten Generierung von Zusatz-
`code bei der Codetransformation ist dabei auch ein
`Speicherbereich vorzusehen - aus Performancegrtin-
`denist ein Prozessorregister REG vorteilhaft -,
`in dem
`der jeweils aktuelle Wert des durch den Zusatzcode
`nachgebildeten Bedingungscodes in Form eines zuge-
`ordneten Bitmusters BM gespeichertist.
`Die Figuren FIG 2, FIG 3 und FIG 4 beziehen sich
`auf ein konkretes AusfUhrungsbeispiel, bei dem ein
`IBM/390-Rechnersystem als Ursprungshardware M1
`gewahlt
`ist und ein vorzeichenbehatteter (,signed”)
`Zahlenwert a mit Null verglichen werdensoll.
`Auf dieser Ursprungshardware stehenfur derartige
`Vergleiche verschiedene Vergleichsanweisungen zur
`Verfiigung, die einen ersten Zahlenwert OP1 mit einem
`zweiten Zahlenwert OP2 vergleichen und - wie in FIG 2,
`Spalten eins und zwei dargestellt - in Abhangigkeit vom
`Ergebnis dieses Vergleichs den Wert CCW des Bedin-
`gungscodes CC seizen. Einer Ausgestaltung der Erfin-
`dung folgend, werden den so spezifizierten Werten
`CCW bei der Nachbildung des Bedingungscodes auf
`einer Zielhardware (z.B. einer Mips R4400-RISC-
`Maschine)jeweils Bitmuster BM eindeutig zugeordnet-
`FIG 2 dritte Spalte - bei denen eine Bitposition auf ,,1"
`und alle anderen Bitpositionen auf ,0” gesetzt sind. Im
`Beispiel sind das die Bitmuster ,1000" bei Gleichheit
`beider Zahlenwerte OP 1 und OP2, 0100" fiir den Fall
`OP1<OP2 und ,0010”fir den Fall OP1>OP2. Zusatz-
`lich ist der Wert CCW = 3 fur den Bedingungscode CC
`bzw. das zugeordnete Bitmuster ,0001” definiert, um
`einen numerischen Uberlauf anzuzeigen. Bei Ver-
`gleichsoperationen, bei denen beide Operanden (Zah-
`lenwerte) wohldefiniert sind, spielt ein Uberlaut jedoch
`keine Rolle, so daB im folgenden nicht mehr naherdar-
`auf eingegangenwird.
`In FIG 3 ist zunachst eine fur den Fachmann nahe-
`
`liegende Methode zur Generierung der dem Bedin-
`gungscodezugeordneten Bitmuster dargestellt. In einer
`Verzweigungskaskade wird der Vergleich des als ersten
`Operanden OP1 gewahlten Zahlenwertes a mit dem als
`zweiten Operanden OP2 gewahlten Zahlenwert ,0” in
`zwei Einzelabfragen unterteilt. Die erste Einzelabfrage
`uberpriift die Gleichheit beider Operanden und setzt
`das Bitmuster BM auf den in FIG 2 festgelegten Wert
`»1000", falls die Gleichheit erfullt ist. Andernfalls folgt
`die zweite Einzelabfrage, die Uberprift, ob der Zahlen-
`wert a gréBerals der zweite Zahlenwert ,0”ist. Entspre-
`chend dem Vergleichsergebnis wird dann das Bitmuster
`BM geseizt. Bei der Umsetzung der Verzweigungskas-
`kade in Programmcode tritt ein Sprungbefehl auf, mit
`dem im Falle OP1#OP2 (a0) die zweite Einzelabfrage
`angesprungen wird. Bei dieser Methode fiihrt jedoch
`der bei vielen Rechnern relativ zu anderen Maschinen-
`befehlen,zeitintensive”, d.h. eine hohe Anzahl von Pro-
`zessor-Takizykien
`bendtigende
`Sprungbefehl
`zu
`
`nennenswerten GeschwindigkeitseinbuBen.
`Demgegeniber kommt das erfindungsgemaBe Ver-
`fahren zur Nachbildung eines Bedingungscodes bei
`einer Codetransformation ohne Spriinge aus. In FIG 4
`ist fur das oben genannte Beispiel einer Vergleichsan-
`weisung die im Programmcode PCZ fur die Zielhard-
`ware M2 erzeugte und aus den Teilabschnitten ZC,,
`ZC», ZC3 des Zusatzcodes und den Befehlen B, und Bp
`bestehende Befehlsfolge dargestellt. Die drei
`letzten
`Spalten der in FIG 4 gezeigten Tabelle geben in jeder
`Zeile jeweils fur die Falle a=0, a>O und a<0 den nach
`Ausfuhrung desin der Zeile auftretenden Befehls aktu-
`ellen Wert des Bitmusters BM bzw. den Inhalt von zwei
`
`Registervariablen t, und ts an.
`Als erster Schritt wird im Teilabschnitt ZC, ein Aus-
`gangsbitmuster definiert, das dem Fall OP 1<OP2,(a<0)
`entspricht und damit einem zulassigen Wert (CCW=1)
`des Bedingungscodes GC zugeordnetist.
`Der Befehl B1 stellt einen ersten zur Nachbildung
`der im Programmcode PCUauftretenden Vergleichsan-
`weisung benotigten Befehle dar und dient der Uberprii-
`fung der Gleichheit beider Operanden (OPi=a,
`OP2=0). Das Ergebnis dieser ersten Einzelabfrage wird
`als Ergebniswert
`,1" (fir Gleichheit) bzw.
`,0"
`(fir
`Ungleichheit) in der Registervariable t; abgelegt. Im fol-
`genden Schritt, Teilabschnitt ZC>, erfolgt ein erster Teil
`einer zweiteiligen, auf das (Ausgangs-)Bitmuster BM
`wirkenden Bitoperation. Der Bitoperatorist im Beispiel
`der Verschiebeoperator ,<<", der ein Verschieben des
`Bitmusters BM um die in einer Registervariable t,
`gespeicherte Anzahl von Bitpositionen (0 oder 1) in eine
`erste Richtung (nach links) bewirkt.
`Dersich anschlieBende Befehl B2stellt den zweiten zur
`
`Nachbildung der im Programmcode PCU auftretenden
`Vergleichsanweisung benétigten Befehle dar. Er prtift,
`ob der erste Operand (OP i=a) gr6Berist, als der zweite
`(OP2=0). Das Ergebnis dieser zweiten Einzelabfrage
`wird als Ergebniswert ,,1" (far a>O) bzw. ,0” (fdr a<0) in
`der Registervariable tp abgelegt.
`Im abschlieBenden
`Schritt, Teilabschnitt ZC3, erfolgt der zweite Teil der
`zweiteiligen Bitoperation. Sie wirkt auf das bereits dem
`ersten Teil der Bitoperation unterworfene Bitmuster BM.
`DerBitoperatorist jetzt der zum ersten Bitoperator kom-
`plementare Verschiebeoperator ,,>>", der ein Verschie-
`ben des Bitmusters BM um die in der Registervariable tp
`gespeicherte Anzahl von Bitpositionen (0 oder 1) in die
`zur ersten Verschieberichtung entgegengesetzte Rich-
`tung (also nach rechts) bewirkt. Das sich bei diesem
`Schritt ergebende Bitmuster BM ist dem nach Ausfth-
`rung der ursprtinglichen Vergleichsanweisung auf der
`Ursprungshardware M1 auftretenden Wert CCW des
`Bedingungscodes CC eindeutig zugeordnet und kann
`von darauffolgenden Anweisungen im Programmcode
`PCZ anstelle des urspriinglichen Bedingungscodes CC
`der Ursprungshardware M1 ausgewertet werden.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`LzLabs GmbH. Ex. 1006-4
`
`LzLabs GmbH. Ex. 1006-4
`
`
`
`7
`
`EP 0 843 256 A2
`
`8
`
`4. Verfahren nach einem der vorhergehenden Anspri-
`che,
`dadurch gekennzeichnet,
`daB einem aktuellen Wert (CCW) des ursprtingli-
`chen Bedingungscodes auf der Zielhardware ein
`Bitmuster (BM)zugeordnet wird, bei dem nur eine
`dem Wert (CCW) eindeutig zugeordnete Bitposition
`auf 1" und alle anderen Bits des Bitmusters (BM)
`auf ,0” gesetzt werden.
`
`Verfahren nach einem der vorhergehenden Ansprti-
`che,
`dadurch gekennzeichnet,
`daB die Bitoperation unter Zuhilfenanme wenig-
`stens eines Verschiebebefehls implementiert wird.
`
`Verfahren nach Anspruch 5,
`dadurch gekennzeichnet,
`daB das Ausgangsbitmuster fir die Bitoperation
`einem vorgegebenen Wert
`(CCW) des Bedin-
`gungscodes (CC) zugeordnetist, und die Bitopera-
`tion darin besteht, daB in Abhangigkeit von dem
`wenigstens einen zur Laufzeit im Zusammenhang
`mit der Nachbildung einer Anweisung (A,) auftre-
`tenden Ergebniswert das Ausgangsbitmuster um
`eine vorgegebene Anzahl von Bitpositionen ver-
`schobenwird.
`
`Patentanspriiche
`
`Verfahren zur Nachbildung eines beim Ablauf von
`hardwarespezifischem Programmcode (PCU) fir
`eine Ursprungshardware (M1) genutzten Bedin-
`gungscodes (CC)
`in dem nach Transformation
`erhaltenen Programmcode (PCZ) fur eine abwei-
`chende Zielhardware (M2) mit einer ohne Bedin-
`gungscode(GC) arbeitenden Maschinenarchitektur
`wobei
`
`auf der Zielhardware (M2) ein den jeweils aktu-
`ellen Wert (CCW) des nachgebildeten Bedin-
`gungscodes (CC) in Form eines zugeordneten
`Bitmusters (BM) aufnehmender Speicherbe-
`reich (REG) vorgesehenwird, und
`jede im Programmcode (PCU) der Ursprungs-
`hardware (M1) den Wert (CCW) des Bedin-
`gungscodes (CC) beeinflussende Anweisung
`(A,)ohne Verwendung von Verzweigungsbe-
`fehlen und mit Hilfe wenigstens eines beim
`Programmablauf einen Ergebniswert generie-
`renden Befehls (B1, B2)
`im Programmcode
`(PCZ) fur die Zielhardware (M2) nachgebildet
`wird, und
`dabei zusatzlich Code (ZC,, ZC5, ZC3) erzeugt
`wird, durch den zur Laufzeit das auf der
`Ursprungshardware (M1) dem Wert
`(CCW)
`des Bedingungscodes (CC) nach Ausfiihrung
`der Anweisung (A,)entsprechende Bitmuster
`(BM) ermittelt wird, indem ein definiertes Aus-
`gangsbitmuster einer Bitoperation unterzogen
`wird, deren Wirkung von dem wenigstens
`einen im Zusammenhang mit der Anweisung
`generierten Ergebniswert abhangt.
`
`2. Verfahren nach einem der vorhergehenden Ansprii-
`che,
`dadurch gekennzeichnet,
`daB bei der Transformation die Erzeugung des
`zusatzlichen Codes (ZC, ZC2, ZC3) zur Ermittlung
`des dem Wert (CCW) des Bedingungscodes (CC)
`nach Ausfihrung einer Anweisung (A,) entspre-
`chenden Bitmusters (BM) nur dann erfolgt, wenn
`eine im ProgrammfluB vor der méglichen Beeinflus-
`sung des Bedingungscodes (CC) durch darauffol-
`gende Anweisungen stattfindende Auswertung
`dieses Bitmusters (BM) nicht ausgeschlossenist.
`
`Verfahren nach einem der vorhergehenden Anspril-
`che,
`dadurch gekennzeichnet,
`daB wenigstens einer der Befehle (B1, B2), die zur
`Nachbildung von den Wert
`(CCW) des Bedin-
`gungscodes (CC) beeinflussenden Anweisungen
`(Aj, Az,....Ay)verwendet werden, ein Vergleichsbe-
`fehlist.
`
`10
`
`15
`
`20
`
`26
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`LzLabs GmbH. Ex. 1006-5
`
`LzLabs GmbH. Ex. 1006-5
`
`
`
`EP 0 843 256 A2
`
`Codetransformation
`
`PCU — PCZ
`
`CC-Umsetzung oea
`
`M1
`
`M2
`
`FIG 1
`
`
`
`cerminomfe
`
`
`
`
`
`
`OP1 > OP2
`
`OP1 < OP2
`
`LzLabs GmbH. Ex. 1006-6
`
`LzLabs GmbH. Ex. 1006-6
`
`
`
`EP 0 843 256 A2
`
`auf ‘0100’
`
`a>Q?
`
`nein
`
`Setze BM
`
`a gleich 0 ?
`
`ja
`
`Setze BM
`auf ‘0010’
`
`FIG 3
`
`Setze BM
`auf ‘1000’
`
`Setze BM auf ‘0100’
`
`
`
`
`
`
`
`
`BM = 0100
`
`
`
`
`
`
`Falls a> 0, setze t,=1, sonsth=0 Feo|tet
`
`
`
`FIG 4
`
`LzLabs GmbH. Ex. 1006-7
`
`LzLabs GmbH. Ex. 1006-7
`
`