TW494361B - Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture - Google Patents

Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture Download PDF

Info

Publication number
TW494361B
TW494361B TW089121467A TW89121467A TW494361B TW 494361 B TW494361 B TW 494361B TW 089121467 A TW089121467 A TW 089121467A TW 89121467 A TW89121467 A TW 89121467A TW 494361 B TW494361 B TW 494361B
Authority
TW
Taiwan
Prior art keywords
bit
instruction
operand
conversion
architecture
Prior art date
Application number
TW089121467A
Other languages
English (en)
Inventor
Andrea Ontko Jackson
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Application granted granted Critical
Publication of TW494361B publication Critical patent/TW494361B/zh

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Description

五、發明說明(1) 五、發明說明(1) 螢明背景 1. 較佳實施例提供 換為-第二位元架::3:來將-第-位元架構的指令轉 結構。 構的指令之方法、系統、程式、及資: 2. Uli術說明· ---------
許多應用程式係& W L . '、十對使用3 2位元架構的電腦而拖 而,大型處理奉結招 包細而撰寫。麸 管加ϋ Γ 現正開始採用64位元架構,Μ π _ ^/、、 异架構大幅增加了可At j m d 一 舟b4位兀的運 及貧料結構大小。,从 p, , Μ 曰存為容量、 . 匕外,64位元的運异提供了比3? 一 吕午夕的處理及資料韓敕 lrn a A 1 位凡快 、丁十得移。例如,一個6 4位元指人张忐 ,等於數個32位元指令再加上"清除"程式码所 异。一個6^位元的系統可在不使用複雜的指標或暫存器定 址下直接定址到更多的記憶體。現有的64位元電腦包括
Sun Microsystems Corporati〇r^々s〇laris 7 叶”以土叫 E n v i r ο n m e n t、C o m p a q C o m p u t e r C o r p o r a t i 〇 η 的 A 1 p h a Station 200 及使用Digital Equipment Corporation 開發 的Alpha 64位元處理器之其他Compaq產品、以及基於 Intel Corporation所推展的64位元架構的IA-64架構之 Intel Merced 及 Itanium處理器。(Solaris 是Sun Microsystems Corporation 的一商標;Itanium 是 Intel Corporation 的一商標,而Merced 及 ΙΑ-64是 Intel C 〇 r ρ 〇 r a t i ο η的產品代碼名稱。) 雖然6 4位元運算有其效益,但是目前仍然利用3 2位元指
第5頁 494361 五、發明說明(2) 令撰寫了許多程式。因此,縱然電腦業正朝向6 4位元架構 發展,但是編譯器開發者可能仍然必須支援32位元的程 式。為了保持與現有架構及編譯杰的相容性(亦即^使程 式設計人員不必面對錯綜複雜架構問題),編譯器開發者 必須在何時及何處使用6 4位元能力上加入有效的智慧。因 此,本門技術中目前需要開發出可處理3 2位元及6 4位元運 算以便支援32位元架構與64位元架構間的轉變之編譯器。 較佳實施例概述: 為了克服上述習用技術上的限制,較佳實施例揭示了一 種用來將一第一位元架構的指令轉換為一第二位元架構的 指令之方法、系統、程式、及資料結構。自具有一運算碼 及至少一個運算元的該第一位元架構之一指令轉換指令 碼。存取一轉換表,該轉換表包含用來將該第一位元架構 的指令轉換為该弟二位元架構的指令之貢訊。如果該轉換 表包含用來指示修改該第一位元架構的指令之資訊,則將 該第一位元架構的指令轉換為該第二位元架構的一對應指 令。該轉換係基於用來修改該第一位元架構的指令以便產 生該第二位元架構的指令之轉換作業。 該第一位元架構可以是3 2位元架構,且該第二位元架構 可以是6 4位元架構。 在進一步的實施例中,該轉換表包含每一運算碼的一資 料項。如果要執行一轉換,則每一運算碼的該資料項可包 含一運算元表之一指標。如果該運算碼的該資料項並未包 含一運算元表之一指標,則不執行任何轉換。
^4361
4運异元表包含運算元位元架構 之-資料項。料算元表中的每—資》的每-種可能組合 換作業。纟此種情形中,指令的轉換;項指不至少-個轉 表中其運算元位元架構類型符合該if及:決定該運算元 每一運算元的位元架構類型之一資位兀架構的指令中 個轉換作業,以便將該第一位元架槿沾。然後執行至少一 位元架構。 、焉的指令轉換為該第二 較佳實施例提供了一種將指令自—
架構(例如自32位元轉換為64位元)架構轉換為另一種 例的技術時,無須修改將諸如中間術。利用較佳實施 為3 2位元指令之編譯器。相反地,^ π碼等的指令碼轉換 給每一運算碼類型的各種表來處理:=用將轉換作業提供 對於想要支援32位元及64位元架構而,到的32位元指令。 資料撰寫的原始程式仍然可在機器上=利用3 2位元指令及 佳實施例尤其有用。 業的機器而言,較 附圖 請參閱各圖示,而在所有的圖示中, 應的部分,這些圖示有: ’相同的代號代表對 圖1示出一^編譯為的各元件; 器部分之各元件; 、4 §學器的指令碼產生 圖3示出在該指令碼產生器中用來根 例而將32位元指令轉換為64位元指令 / ♦明較佳實施 圖4示出用來根據本發明較佳實竑^斤声、知之邏輯;以及 …丨而將—儲存命令自
第7頁 494361 、發明說明(4) 32位元格式轉換為64位元格式的資料項實例。 施例之 的說明中,請參閱形成本發明 明個”例的各附圖。我們當了解,亦可採用其他:實 =二ί不脫離本發明的範圍T,亦可作出結構上及:
圖1示出一編譯器(2 )之一私Μ - AL ^ J之為又性兀件。編譯器(2)接收以 ^階f始語言撰寫的―原始程式⑷。—前端程序(6)掃 :Γ: 原始程式⑷,並將該原始程式⑷轉換成-詳 二1表示法⑻,而將該原始程式⑷轉換成中間指令 =古,因而可以諸如位元、整數、實數、指標等目標機 :I直接操作的數量來代表中間指令碼(8)中出現的名稱 =值、。,一指令碼產生器(1〇)接收該中間指令碼(8)作為輸 亚產生一目標程式(1 2 )作為輸出,該目標程式(丨2 )可 匕,決定機器語言、可重新安置的機器語言或組合語言。 邊目標程式(1 2 )打算要在一目標電腦(丨4 )上執行。在較 乜實施例中,目標電腦(14)可處理32位元及64位元指令。 例如,該目標電腦可實施用來支援32位元及64位元指令集 的Intel IA-64架構。Intel IA - 64處理器可在一支援32位 凡應用程式執行的64位元作業系統上執行32位元的應用程 $ ° I n t e 1 I A - 6 4架構亦可執行混合式3 2位元及6 4位元指 /石馬。Intel IA-64架構的進一步細節係述於Intei出版品 64 Application Developer’s Architecture Guide" (Order No· 245188-011)(著作權屬於Intel Corporation, 494361 五、發明說明(5)
May,l 9 9 9 ),本發明特此引用該出版品之全文以供參照。 i匕人用來祀^^發明而將32位元指令轉換為64位元 指令的指令碼產生器(10)之各元件。一陳述處理模組(2〇) 接收中間指令碼(8)J乍為輸入,並產生一個32位元指令 (22)。將該32位兀指令輸入轉換器(24),轉換器(24)然後 利用-編譯器字典(28)、指令轉換表(3〇)、轉換運算'元表 ⑶)、及替換表(34)將該32位元指令轉換為固: 令(26)。這些表(28)、(30)、(32)、4位兀才曰 (24)於執行32位元至64位元的轉換士 ,、了轉換器 。。一 的轉換時所需的資訊。伤剎田 32位兀指令彙編成該編譯器字典( 字 ⑽包含與指令相關的資訊,其中包括運算;典 指令的,料攔位。例如,-典型的指式及 0P運算元1,運算元2 彳幻化式· 其二,"op”是用來指示運算類型的運算碼,且 運异兀2是與該運算(op)相關的資料。例如 : 是與該運算相關的來源資料,而運 ,兀1可以 該運算結果的目的地。運算元^^2;1:以是其中包括 如記憶體中之暫存區。編譯器字典(2二二二=的位置,例 (4)中界定的且用於原始程式(4)的)二=έ與原始程式 資訊,其中包括在一特定暫存哭=!貢料的性質相關之 元或64位元、以及資料欄位的;以料(運算元)⑽位 - ΐ;Γ奐=包ΪΓ;算類型二每-運算碼)之 指令轉換表(30)中的一資料項。在較^患.:碼對映到 平乂1 土貝鈀例中,指令轉
發明說明(6) 換表(3 Ο )包含一障列的指標,而每一指標則包含零或一位 址。如果亚不要轉換該指令,則將把指令轉換表(3 0 )中之 對應資料項設定為零。否則,如果要轉換該指令,則指令 轉換表(3 0 )中^該資料項將包含一個轉換運算元表(3 2 )之 ,址。在較佳貫施例中,指令轉換表(3 〇 )中有一非零值的 每一資料項(亦即要進行轉換的每一運算)都有一轉換 元表(32)。 、 ^ 轉換運异元表(3 2 )包含該指令類型的運算元值的每一種 =同的可能組合之一資料項。例如,用來將資料自一暫存 器轉移到記憶體的一儲存命令之轉換運算元 (亦即運算元1及2)為32位*或64位元。在此二 月形中,忒儲存命令的轉換運算元表(32)針對該運算元的 杀構類型之每一種可能組合將有四個資料項: 1·運异元1 = 32位元值 運算元2 = 32位元值 2·運算元1 = 64位元值 運鼻元2 = 64位元值 3·運异元1 = 32位元值 運算元2 = 64位元值 4·運鼻元1 = 64位元值 運鼻元2 = 32位元值 轉換運算元表(32)中之每_眘斗止^儿丨 6Α # ^ At , . _ ^ 貝枓項(亦即對於運算元僅 母 種了月b組3 )都有一替振本,Q /1、,田、 針對該特定運管元芊構表Ο0用以提供與如词 吁疋連^凡木構組合而執行該轉換有關之資訊。
494361 五、發明說明(7) 如,前文所述儲存命令的運算元架構類型 .β如入可热分一 丁门 J四種可能組合 之母一種組口執仃不同的轉換。每一替 含用來指系轉換器(2 4 )如何執行鲭拖彳 、、 ^ 干欄位。在杈仏貫施例中,替換表(34)將包含、H ^方 用以指示用來取代目前進行轉換的的2輋 算碼或指t;以及用來指示是否要f斩;^的—轉換運 一旗標,p咖該暫存器:=;;6暫4,器狀態表之 “丄 名ό z位兀或6 4位元資料、成 者不改變該曰#器的狀態。該暫存器狀態表可以是編嗶哭 控制結構的一部分,或者可在編譯器字典(28)中 ς 存器狀態表。亦可設有其他的旗標,帛以指示所要執;;二 進-步轉換,以便完成所輸入32位元指令(22)的32位 元至6 4位元轉換。 該轉換之一部分可包含運算碼名稱的改變。例如,32位 元指令可具有一助憶碼格式,例如wST代表st〇re(儲 存)、以L代表load(載入)等,且64位元指令的助憶碼可稍 微改變,例如以STG代表儲存,且以LG代表載入。該"G,,的 助憶碼指示該指令具有至少一個64位元的運算元。在替代 實施例中’亦可利用其他的助憶碼來區分32位元及64位元 指令。 八圖3不出利用表(28)、(3〇)、(32)、及(34)將32位元指 令轉換為6 4位兀指令的在指令碼產生器〇 〇 )的轉換器(2 4 ) 凡件中執行的邏輯步驟。控制開始於步驟〇 〇 〇 ),此時轉 =器(24)接收由陳述處理模組(2〇)產生的一個32位元指 令。轉換器(2 4 )在步驟(1 〇 2 )中查詢指令轉換表(3 〇 )的資
第11頁 494361 五、發明說明(8) 料項中是否有 作業可能涉及 料項。如果在 則該轉換程序 該特定的運算 一轉換運算元 中存取該資料 (3 2 )。轉換器 (2 8 )接收的指 3 2位元或6 4位 轉換器(24) 中所有的資料 的運算元性質 分別是3 2位元 定給這些運算 存指令的資料 三資料項。轉 元表(3 2 )中找 (2 4 )然後在步 個替換運算碼 指令轉換為6 4 (2 4 )更新該暫 的轉換而有一 的所接收32位 所接收指令的運算碼。如前文所述,該查詢 利用一指標來找出對應於該特定運算碼之資 步驟(104)中決定所查詢資料項的值為焚,' 終止於步驟(106),並以一零指示無須針對 碼執行一轉換程序。否則,該資料項的值是 表(32)之一指標。轉換器(24)在步驟(1〇8) 項中的该指標所定址到的轉換運算元表 (24)也在步驟(11〇)中決定自編譯器字典 令的運算元之性質,例如決定每一運算元 元資料。 然後在步驟(1 12)中檢查轉換運算元表(32) 項,以便找出運算元的性質符合所接收指令 之資料項。例如,如果所接收指令的運算元 及64位兀,則將選擇轉換運算元表(32)中指 元位元架構值之資料項,而在前文所述的儲 項=子中,該資料項將包含前文中列出的第 換為(2 4 )然後在步驟(丨丨4)中存取轉換運曾 到的資料項中所列出之替換表(34)。轉換%哭 驟(116)中以替換表(34)中列出的一個或多 取代所接收指令之運算碼,目而將該32位元 位f指ί(26)。在步驟(118)中,轉換器 存杰狀怨表,以便指示因替換表(34 )中指示 新=32位元或64位元狀態。例如,要被轉換 70指令在經過轉換後的任何運算元將有一 6 4 494361 五、發明說明(9) 位元值。在此種情形中,將更新先前32位元運算元 器狀態’以便反映該運异元現在是一個6 4位元的運管元。 圖4示出一表(150) ’該表(150)示出如何在儲存指"令&的 作業中發生取,。表(150)中之每一資料項將形成該儲存 指令的轉換運算元表(3 2 )中之一資料項。在找到其運营— 1及2的運异元值符合32位元指令(22)的運算元值之_ ;^料 項時’表(150)列出取代作業,其中包括新"的指令、_及胃/ 存器狀態表是否已被更新之資訊。表(15〇)因而結合每二 種可能的運算元值組合之替換表轉換運算元表資料項: (150)中之第二及第四資料項示出:由於在轉換之前 ',運 算元1是一個32位元值,所以更新暫存器】的狀態旗桿。新 指令中之” G"助憶碼指示該等指令是64位元的指令。此 外,在表(150)中,係將具有32位元運算元}的一\固32位元 儲存指令轉換為兩個6 4位元的指令。 同樣地,每一其他的32位元指令都有一轉換運算元表及 替換資料項或表。在較佳實施例中,對於諸如ADD、 SUBTRACT 'MULTIPLY 'DIVIDE 'COMPARE 、AND 、OR 、及 EXCLUSIVE OR等的許多指令而言,當其中一個運算元是“ 位元時,替換表(34)將包含一轉換作業,以便指示轉$器 (2 4 )執行將另一個運算元轉換為6 4位元。然而,如果使用 者將一暫存器宣告為32位元,則轉換器(24)將不指示將該 暫存器的内容轉換為64位元。將把與轉換器(24)如何將32 位7C指令轉換為6 4位元有關的進一步指令編碼 (34)。 表
第13頁 494361 五、發明說明(ίο) 較佳實施例提供了一種用來將3 2位元指令轉換為6 4位元 的方法、系統、及程式。該較佳實施技術的一個優點在 於··無須改變用來自中間指令碼產生3 2位元指令的陳述處 理模組(2 0 )’即可完成該轉換。相反地,加入了各別的表 (28)、(30)、(32)、及(34)、以及一轉換器(24)元件,以 便執行將3 2位元指令轉換為6 4位元指令的額外步驟。在此 種方式下,無須修改陳述處理模組(2〇)之編譯器指令碼, 且係利用現有的編譯器產生原始32位元指令β ς ^二開笋 者無須增加該等表及轉換器(24)邏輯,即可在不須修改一^ 干擾用來將中間指令碼轉換為32位元指令的指令碼 部分之情形下執行最後的轉換。較佳實施例因而二 種用來針對只能操作64位元指令的目標理 元及64位元指令的諸如使用Intel ! Α_ ϋ處理32位 腦而將32位元指令轉換為64位元之技術。、糸統之電 替代實施例及纟士给 本節總結對本發明較佳實施例之^明。 來完成本發明的某些替代實施例。 文中將說明用 可利用標準程式設計及(或)工程技 體、硬體、或以上三者的任何組合=軟體、動 ,-種方法1置、或製品。在本文的二:實施例實施 。口 (或替代的術語"電腦程式產品' / ,術語"製 儲存媒體、"軟碟,,、CD_R〇M、光碟、可自諸如磁性 :或非揮發性電子記憶體、可經由網:值=相單元、揮發 ’之標案飼服器、無線傳輸媒體:線路而存取程 、,二由二中傳播的信號等 494361 五、發明說明(11) -個或多個電腦可讀取的裝置、載體、或媒體存取 或多個電腦程式及(或)資料槽案。當然,熟悉本:
Hi:修脫離本發明的及範圍下,尚可對此種:ί 係爹照執行將32位元轉換為64位元指令而說明較佳本 例。然而,較佳實施例的轉換表及轉換器方法亦可應二 =如8到16位元、16到32位元等非32位元及64位元之^何 指令袼式及位兀架才冓,或可應用於尚未開發出的架構之轉 換。這是可能的’因為較佳實施例的技術利; ”將原始的指令編譯為—第一位元格式架構, 表及轉換益將該第-位元架構的指令轉換 式架構。此外,可執行自諸如64位元等的一較 到諸如32位元等的一較小位元架構之轉換。 =佳實施例說明了作為獨立式表的編譯器字纟、指令轉 f表、轉換運算元表、及替換表。然而,在替代實施例 將在前文所述該等獨立式表内的資料結合成一個或 夕個表。 /:=1發:提!^一種用來將-第-位元架構的 才曰令轉換為一弟二位凡架構的指令之方法、李统 及資:斗結構。自具有-運算碼及至少一個運算元的該第— ::力木構之一 t令轉換指令碼。存取-轉換表,該轉換表 =來將該第-:元架構的指令轉換 的1;:之資訊。!:果該轉換表包含用來指示修改該第-位 兀木構的指令之貧说,則將該第一位元架構的指令轉換為 494361 五、發明說明(12) '^----- 該第二位元架構的一對應指令。該轉換係基於用 第一位元架構的指令以便產生該第二位元架 Z修改該 換作業。 的私令之轉 係針對例示及解說之目的而提供對本發明較佳徐> 前述說明。若參照前文的揭示事項,將可作出^ =例之 變化。本發明之範圍將不受限於該詳細說明,^ : f改及 本文最後的申請專利範圍。上述的說明書、每疋又限於 曰貝、f列、菸杳粗 提供了對本發明成分的製造及使用之說明。因 脫離本發明的精神及範圍下,作出本發明的許:I f在不 所以本發明存在於本文最後的申請專利範圍。。夕貫施例’

Claims (1)

  1. 494361 六、申請專利範圍 1. 一種用來將一第一位元架構的指令轉換為一第二位元 架構的指令之方法,該方法包含下列步驟: 將指令碼轉換為具有一運算碼及至少一個運算元的該第 一位元架構之一指令; 存取一轉換表,該轉換表包含用來將該第一位元架構的 指令轉換為该苐^一位元架構的指令之貧訊,以及 如果該轉換表包含用來指示修改該第一位元架構的指令 之資訊,則將該第一位元架構的指令轉換為該第二位元架 構的一對應指令,其中該轉換係基於用來修改該第一位元 架構的指令以便產生該第二位元架構的指令之轉換作業。 2. 如申請專利範圍第1項之方法,其中該轉換表包含每 一運算碼的一資料項,其中如果要執行一轉換,則每一運 算碼的該資料項可包含一運算元表之一指標,其中如果該 運算碼的該資料項並未包含一運算元表之一指標,則不執 行任何轉換。 3. 如申請專利範圍第2項之方法,其中該運算元表包含 運算元位元架構類型的每一種可能組合之一資料項,其中 該運算元表中的每一資料項指示至少一個轉換作業,其中 指令的轉換包含下列步驟: 決定該運算元表中其運算元位元架構類型符合該第一位 元架構的指令中每一運算元的位元架構類型之一資料項; 以及 執行至少一個轉換作業,以便將該第一位元架構的指令 轉換為該第二位元架構。
    第17頁 494361 六、申請專利範圍 4.如申請專利範圍第3項之方法,其中決定該第一位元 架構的指令中每一運算元的位元架構類型之該步驟包含下 列步驟處理一字典,該字典包含與該第一位元架構的每一 指令的性質有關之資訊。 5 ·如申請專利範圍第3項之方法,其中執行至少一個轉 換作業之該步驟包含下列步驟改變該運算碼的一名稱,以 便指示該運算碼是屬於該第二位元架構。 6 ·如申請專利範圍第3項之方法,其中執行至少一個轉 換作業之該步驟包含下列步驟更新一包含與包括一運算元 的每一暫存器有關的資訊之暫存器狀態表,以便指示包含 經過轉換的指令中的一運算元之該暫存器係屬於該第二位 元架構。 7.如申請專利範圍第6項之方法,其中當經過轉換的指 令中之一運算元係屬於該第一位元架構,且該經過轉換的 指令中之另一運算元係屬於該第二位元架構時,更新該暫 存器狀態表,以便指示包含經過轉換的指令中的該運算元 之該暫存器係屬於該第二位元架構。 8 ·如申請專利範圍第3項之方法,其中該運算元表中之 每一資料項包含一替換表之一指標,而該替換表包含用來 將該第一位元架構的指令轉換為該第二位元架構之至少一 個轉換作業。 9.如申請專利範圍第1項之方法,其中該第一位元架構 的指令可具有該第一位元架構及該第二位元架構之運算 元0
    第18頁 494361 六、申請專利範圍 1 0.如申請專利範圍第1項之方法,其中該第一位元架構 是3 2位元架構,且該第二位元架構是6 4位元架構。 1 1 · 一種用來將一第一位元架構的指令轉換為一第二位 元架構的指令之系統,包含: 將指令碼轉換為具有一運算碼及至少一個運算元的該第 一位元架構之一指令之裝置; 存取一轉換表之裝置,該轉換表包含用來將該第一位元 架構的指令轉換為該弟二位元架構的指令之貧訊,以及 轉換裝置,其中如果該轉換表包含用來指示修改該第一 位元架構的指令之資訊,則該轉換裝置將該第一位元架構〇 的指令轉換為該第二位元架構的一對應指令,其中該轉換 係基於用來修改該第一位元架構的指令以便產生該第二位 元架構的指令之轉換作業。 1 2.如申請專利範圍第1 1項之系統,其中該轉換表包含 每一運算碼的一資料項,其中如果要執行一轉換,則每一 運算碼的該資料項可包含一運算元表之一指標,其中如果 該運算碼的該資料項並未包含一運算元表之一指標,則不 執行任何轉換。 1 3.如申請專利範圍第1 2項之系統,其中該運算元表包 含運算元位元架構類型的每一種可能組合之一資料項,其 中該運算元表中的每一資料項指示至少一個轉換作業,其 中用來轉換指令的該裝置包含: 決定裝置,用以決定該運算元表中其運算元位元架構類 型符合該第一位元架構的指令中每一運算元的位元架構類
    第19頁 六、申請專利範圍 型之一資料項;以及 位ϊίί置,用以執行至少一個轉換作業,以便將該第一 π木構的指令轉換為該第二位元架構。 -1:如加申請專利範圍第13項之系、统’其中用來決定該第 包含的指令中每一運算元的位元架構類型之該裝置 構的每ίίϊ一字典之裝置’該字典包含與該第一位元架 母一‘令的性質有關之資訊。 -1 個5’轉如::案專利範圍第13項之系統,其中用來執行至少 的U作業之該裝置包含改變裝置’用以改變該運算碼 ! 6 .如V :專便利指= —個轉換作5月举專之利^圍番第13項之系統,其中用來執行至少 包括一運S = U包含更新裝置’用以更新-包含與 以便指示:含妹:韓:1器有關的貧訊之暫存器狀態表, 屬於該第二位:架2 令中的一運算元之該暫存器係 指令中2 # s胃16項m其中當經過轉換的 的如I 運鼻元係屬於該第一位元架構,且兮\ 、扣7中之另一算 〜!過轉換 暫存哭妝能本 係屬於δ亥弟一位凡架構時,#轫兮 疋之该暫存器係屬於該第二位元架構。7巾&該運算 ,如申請專利範圍第13項之系,统,其中該 之母一資料項包含-替換表之—指標,而該=表中 來將該第一位元架構的指令轉換為該第二位二=表包含用 一個轉換作業。 采構之至少 494361 六、申請專利範圍 -2么申5月專利範圍第13項之系統,其中該第-位元架 構々扣々可具有該第一位元架構及該第二位元架構之運 7L ° 冓疋 兀木構,且該第二位元架構是64位元架構。 - j · #一種用來將一第一位元架構的指令轉換為一第二位 才的扣令之製品,該製品包含一電腦可使用的媒體, 该電^可使用的媒體包含至少一個嵌入其中的電腦程式, 该電腦程式可使該電腦執行下列步驟: 將指令碼轉換為具有一運算碼及至少一個運算元的該第 一位元架構之一指令; 存取一轉換表,該轉換表包含用來將該第一位元架構的 指令轉換為該第二位元架構的指令之資訊;以及 如果該轉換表包含用來指示修改該第一位元架構的指令 之資訊’則將該第一位元架構的指令轉換為該第二位元架 構的一對應指令,其中該轉換係基於用來修改該第一位元 架構的指令以便產生該第二位元架構的指令之轉換作業。 ^ 2 2 ·如申請專利範圍第2 1項之製品,其中該轉換表包含 每一運算碼的一資料項,其中如果要執行一轉換,則每一 運算碼的該資料項可包含一運算元表之一指標,其中如果 該運算碼的該資料項並未包含一運算元表之一指標,則不 執行任何轉換。 2 3 ·如申請專利範圍第2 2項之製品,其中該運算元表包 含運算元位元架構類型的每一種可能組合之一資料項,其 494361 六、申請專利範圍 中該運算元表中的每一資料項指示至少一個轉換作業,其 中指令的轉換包含下列步驟: 決定該運算元表中其運算元位元架構類型符合該第一位 元架構的指令中每一運算元的位元架構類型之一資料項; 以及 執行至少一個轉換作業,以便將該第一位元架構的指令 轉換為該第二位元架構。 24.如申請專利範圍第23項之製品,其中決定該第一位 元架構的指令中每一運算元的位元架構類型之該步驟包含 下列步驟處理一字典,該字典包含與該第一位元架構的每 一指令的性質有關之資訊。 2 5.如申請專利範圍第2 3項之製品,其中執行至少一個 轉換作業之該步驟包含下列步驟改變該運算碼的一名稱, 以便指示該運算碼是屬於該第二位元架構。 2 6.如申請專利範圍第2 3項之製品,其中執行至少一個 轉換作業之該步驟包含下列步驟更新一包含與包括一運算 元的每一暫存器有關的資訊之暫存器狀態表,以便指示包 含經過轉換的指令中的一運算元之該暫存器係屬於該第二 位元架構。 2 7.如申請專利範圍第26項之製品,其中當經過轉換的 指令中之一運算元係屬於該第一位元架構,且該經過轉換 的指令中之另一運算元係屬於該第二位元架構時,更新該 暫存器狀態表,以便指示包含經過轉換的指令中的該運算 元之該暫存器係屬於該第二位元架構。
    第22頁 494361 六、申請專利範圍 2 8.如申請專利範圍第2 3項之製品,其中該運算元表中 之每一資料項包含一替換表之一指標,而該替換表包含用 來將該第一位元架構的指令轉換為該第二位元架構之至少 一個轉換作業。 2 9.如申請專利範圍第2 1項之製品,其中該第一位元架 構的指令可具有該第一位元架構及該第二位元架構之運算 元。 3 0 ·如申請專利範圍第2 1項之製品,其中該第一位元架 構是32位元架構,且該第二位元架構是64位元架構。 3 1 · —種用來將一第一位元架構的指令轉換為一第二位 礓. 元架構的指令的包含至少一個資料結構之電腦可讀取的資 料傳輸媒體,包含: 至少一個轉換表,該轉換表包含用來將該第一位元架構 的指令轉換為第二位元架構的指令之資訊,其中如果該轉 換表包含用來指示修改該第一位元架構的指令之資訊,則 將該第一位元架構的指令轉換為該第二位元架構的一對應 指令;以及 若干轉換作業,該等轉換作業指示用來執行修改該第一 位元架構的指令以便產生該第二位元架構的指令之作業。 3 2.如申請專利範圍第3 1項之電腦可讀取的資料傳輸媒 體,進一步包含: 至少一個運算元表,其中該轉換表包含每一運算碼的一 資料項,其中如果要執行一轉換,則每一運算碼的該資料 項可包含一運算元表之一指標,其中如果該運算碼的該資
    第23頁 494361 申請專利範圍 料項並未包含一運算元表之一指標’則不執行任何轉換。 粬.使°士申/青專利_範圍第32項之電腦可讀取的資料傳榦媒 拉,八中s亥運算元表包含運算元位元架、 ^ 台匕细人夕 次丨丨 木傅犬貝坦的母一種可 月匕組口之一貧料項,其中該運算元表中的了 至少一個轉換作業,其中該運算^包含 構類型符合該第一位元架構的指令中;::位4 ^之一資料項,其中係執行至少一個轉;J掌位= 將泫第一位元架構的指令轉換為該第二位元 ” 乂便 3 4.如申凊專利範圍第3 3項之電腦可讀取的、次 體,進一步包含-字典,該字典包含與;取第的—貝/斗傳輸媒 母一指令的性質有關之f訊,其中 立凡架構的 指令中每-運算元的位元架構類型之該;1;:元架構的 驟:處理該字典,以便決定每一指令以包含下列步 3 5 ·如申睛專利範圍第μ項之電腦綠、— 體,進-步包含一暫存器狀態表,該:取的賢料傳輸媒 包括-運算元的每一暫存器有關之資m”包含與 ,轉換的指令中的一運算 存二】二指示包含經 構,其中當執行該等至少一個轉換子;於:亥第二位元 存器狀態表。 作業日才,即更新該暫 麵36.如申請專利範圍第33項之電腦可 :’其中該運算元表中之每一資料項包含@貪料傳輸媒 ^Γτττ ’ 令介ϋ 丨a 丄
TW089121467A 2000-01-14 2000-10-13 Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture TW494361B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/483,203 US6662361B1 (en) 2000-01-14 2000-01-14 Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture

Publications (1)

Publication Number Publication Date
TW494361B true TW494361B (en) 2002-07-11

Family

ID=23919104

Family Applications (1)

Application Number Title Priority Date Filing Date
TW089121467A TW494361B (en) 2000-01-14 2000-10-13 Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture

Country Status (7)

Country Link
US (1) US6662361B1 (zh)
EP (1) EP1118933A3 (zh)
JP (1) JP3606561B2 (zh)
KR (1) KR20010086328A (zh)
CN (1) CN1127688C (zh)
SG (1) SG99328A1 (zh)
TW (1) TW494361B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024666B1 (en) * 2002-01-28 2006-04-04 Roy-G-Biv Corporation Motion control systems and methods
US20010032278A1 (en) 1997-10-07 2001-10-18 Brown Stephen J. Remote generation and distribution of command programs for programmable devices
US8032605B2 (en) 1999-10-27 2011-10-04 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US6880069B1 (en) * 2000-06-30 2005-04-12 Intel Corporation Replay instruction morphing
US7904194B2 (en) 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
US6819270B1 (en) * 2003-06-30 2004-11-16 American Express Travel Related Services Company, Inc. Method and system for universal conversion of MCC, SIC or other codes
US8027349B2 (en) 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US20060064503A1 (en) 2003-09-25 2006-03-23 Brown David W Data routing systems and methods
CN100345136C (zh) * 2004-06-30 2007-10-24 中国科学院计算技术研究所 使64位处理器兼容32位桥接芯片的系统及转换装置
US7437541B2 (en) * 2004-07-08 2008-10-14 International Business Machiens Corporation Atomically updating 64 bit fields in the 32 bit AIX kernel
CN100388195C (zh) * 2006-02-22 2008-05-14 北京金山软件有限公司 一种64位视窗操作系统下获取函数参数的方法及系统
US9652210B2 (en) * 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US8832679B2 (en) * 2007-08-28 2014-09-09 Red Hat, Inc. Registration process for determining compatibility with 32-bit or 64-bit software
US10120663B2 (en) 2014-03-28 2018-11-06 Intel Corporation Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture
WO2017153815A1 (en) * 2016-03-11 2017-09-14 Lzlabs Gmbh Load module compiler
CN107423084B (zh) * 2017-04-24 2021-02-02 武汉斗鱼网络科技有限公司 程序修改方法及装置
CN109491659B (zh) * 2017-09-11 2022-06-21 龙芯中科技术股份有限公司 指令转换方法和装置
JP2019095952A (ja) * 2017-11-21 2019-06-20 ソニーセミコンダクタソリューションズ株式会社 プロセッサ、情報処理装置および処理方法
US20220374236A1 (en) * 2021-05-20 2022-11-24 Huawei Technologies Co., Ltd. Method and system for optimizing address calculations
WO2024036517A1 (zh) * 2022-08-17 2024-02-22 芯原微电子(上海)股份有限公司 一种交叉链接方法、装置,电子设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0428560A4 (en) * 1988-07-29 1992-04-01 Hunter Systems Software, Inc. Machine process for translating programs in binary machine language into another binary machine language
EP0871108B1 (en) 1991-03-11 2000-09-13 MIPS Technologies, Inc. Backward-compatible computer architecture with extended word size and address space
DE69429061T2 (de) 1993-10-29 2002-07-18 Advanced Micro Devices Inc Superskalarmikroprozessoren
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
US5577231A (en) * 1994-12-06 1996-11-19 International Business Machines Corporation Storage access authorization controls in a computer system using dynamic translation of large addresses
US5826089A (en) 1996-01-04 1998-10-20 Advanced Micro Devices, Inc. Instruction translation unit configured to translate from a first instruction set to a second instruction set
US5842017A (en) * 1996-01-29 1998-11-24 Digital Equipment Corporation Method and apparatus for forming a translation unit
US5819067A (en) 1996-02-23 1998-10-06 Advanced Micro Devices, Inc. Computer system configured to translate a computer program into a second computer program prior to executing the computer program
US5875318A (en) 1996-04-12 1999-02-23 International Business Machines Corporation Apparatus and method of minimizing performance degradation of an instruction set translator due to self-modifying code
US5710731A (en) * 1996-05-07 1998-01-20 International Business Machines Corporation Combined adder and decoder digital circuit
US5774694A (en) * 1996-09-25 1998-06-30 Intel Corporation Method and apparatus for emulating status flag
US5875336A (en) 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
US6009261A (en) * 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6199202B1 (en) * 1998-01-06 2001-03-06 Hewlett-Packard Company Method and apparatus for the inter-operation of differing architectural and run time conventions
US6018799A (en) * 1998-07-22 2000-01-25 Sun Microsystems, Inc. Method, apparatus and computer program product for optimizing registers in a stack using a register allocator

Also Published As

Publication number Publication date
JP3606561B2 (ja) 2005-01-05
EP1118933A2 (en) 2001-07-25
US6662361B1 (en) 2003-12-09
CN1127688C (zh) 2003-11-12
KR20010086328A (ko) 2001-09-10
CN1306245A (zh) 2001-08-01
EP1118933A3 (en) 2004-04-07
JP2001216169A (ja) 2001-08-10
SG99328A1 (en) 2003-10-27

Similar Documents

Publication Publication Date Title
TW494361B (en) Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture
Reinert et al. The SeqAn C++ template library for efficient sequence analysis: A resource for programmers
TWI463332B (zh) 在單一指令多資料之資料處理器中提供擴充尋址模式
JP5500652B2 (ja) 並列比較選択演算装置、プロセッサ及び並列比較選択演算方法
TW200403583A (en) Controlling compatibility levels of binary translations between instruction set architectures
JP2007234011A (ja) マップに基づくレジスタ・ファイルへの間接アクセスのためにレジスタ・マップをsimd指向管理するための方法、システム、およびプログラム
TW200903328A (en) Improvements in and relating to floating point operations
US7624237B2 (en) Compare, swap and store facility with no external serialization
US9880821B2 (en) Compiler optimizations for vector operations that are reformatting-resistant
US9594668B1 (en) Debugger display of vector register contents after compiler optimizations for vector instructions
Perera et al. Advanced concepts in electronic structure (ACES) software programs
EP1857926A1 (en) Move data facility with user selectable storage access keys
JP5147626B2 (ja) Cobolコードから変換されたjava(登録商標)コードを含むプログラムを実行するコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
Steinbiss et al. A new efficient data structure for storage and retrieval of multiple biosequences
US20100058283A1 (en) Flexible base class library
JP3575496B2 (ja) メモリアドレス指定論理回路およびメモリアドレス指定方法
GB2461849A (en) Push immediate instruction with several operands
KR20210066843A (ko) 마스킹된 벡터 명령어 구현 시스템 및 방법
Roach et al. Koverage: read-coverage analysis for massive (meta) genomics datasets
Tarnoff Using early instruction sets to introduce computer architecture
Kusswurm et al. X86-32 Core Architecture
Wardak Practical Guidelines and Examples for the Users of the TMS320C6713 DSK
JP4418509B2 (ja) Javaアクセラレータを備えたプロセッサシステム
Bryant et al. x86-64 Machine-Level Programming
Leupers Genetic Algorithm Based DSP Code Optimization

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees