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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000001131 transforming effect Effects 0.000 title abstract description 4
- 238000006243 chemical reaction Methods 0.000 claims description 113
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 230000008901 benefit Effects 0.000 claims description 5
- 239000000463 material Substances 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 210000002784 stomach Anatomy 0.000 claims description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 claims 1
- 240000000393 Rubus buergeri Species 0.000 claims 1
- 238000010276 construction Methods 0.000 claims 1
- 230000004048 modification Effects 0.000 claims 1
- 238000012986 modification Methods 0.000 claims 1
- 230000009466 transformation Effects 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 239000002023 wood Substances 0.000 description 3
- KDLHZDBZIXYQEI-UHFFFAOYSA-N Palladium Chemical compound [Pd] KDLHZDBZIXYQEI-UHFFFAOYSA-N 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241000208125 Nicotiana Species 0.000 description 1
- 235000002637 Nicotiana tabacum Nutrition 0.000 description 1
- 241000269821 Scombridae Species 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 235000020640 mackerel Nutrition 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 229910052763 palladium Inorganic materials 0.000 description 1
- 235000015170 shellfish Nutrition 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary 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)
- 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 丄
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)
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)
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 |
-
2000
- 2000-01-14 US US09/483,203 patent/US6662361B1/en not_active Expired - Fee Related
- 2000-10-13 TW TW089121467A patent/TW494361B/zh not_active IP Right Cessation
- 2000-12-13 EP EP00311086A patent/EP1118933A3/en not_active Withdrawn
- 2000-12-29 CN CN00129488A patent/CN1127688C/zh not_active Expired - Fee Related
-
2001
- 2001-01-05 SG SG200100114A patent/SG99328A1/en unknown
- 2001-01-11 JP JP2001003173A patent/JP3606561B2/ja not_active Expired - Fee Related
- 2001-01-12 KR KR1020010001884A patent/KR20010086328A/ko not_active Application Discontinuation
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 |