throbber
(19)
`
`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
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket