TW525091B - Retargetable compiling system and method - Google Patents

Retargetable compiling system and method Download PDF

Info

Publication number
TW525091B
TW525091B TW090122105A TW90122105A TW525091B TW 525091 B TW525091 B TW 525091B TW 090122105 A TW090122105 A TW 090122105A TW 90122105 A TW90122105 A TW 90122105A TW 525091 B TW525091 B TW 525091B
Authority
TW
Taiwan
Prior art keywords
instruction
instruction set
statement
architecture
code
Prior art date
Application number
TW090122105A
Other languages
English (en)
Inventor
Gageldonk Johan Sebastiaan Van
Marco Jan Gerrit Bekooij
Adrianus Josephus Bink
Jan Hoogerbrugge
Jeroen Anton Johan Leijten
Original Assignee
Koninkl Philips Electronics Nv
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 Koninkl Philips Electronics Nv filed Critical Koninkl Philips Electronics Nv
Application granted granted Critical
Publication of TW525091B publication Critical patent/TW525091B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers

Landscapes

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

Description

525091 A7 B7 五、發明説明(彳) 本發明揭不一種於一具有架構資源執行指令之處理架構 中使用之用以自一對應指令集產生一程式指令序列的編譯 方法及系統’分別如申請專利範圍第1項及第12項中的 疋義。另外,本發明與一種如申請專利範圍第14項定義的 電月包程式產品有關。 问1±犯DSP的發展主要針對增加處理能力。這可藉由提 供較兩的處理器時序速度或藉由進一步算術單元(即,平行 ,置)實現。後項做法係以平行處理程式區段内的複數個局 部任務為基礎,並且可藉由使用所謂的「非常長-指令文 子」(Very Long Instruction Word ; VLIW)處理器實 j依據VUW觀;t ’在同-晶片上整合數個處理單元, 藉由實現*非常長指令文字控制的高功能處理機器。此類 的平行指令文字包括適用於個別處理單元的個別指令。此 類做”挑鼓將演算法劃分成可在這個架構上以平行方 式執行的局部任務。在處理時序的嚴格考量下,將這此局 部任務分散至個別的處理單元,藉由實現每個單元 =率。這可藉由可由智慧型編譯器形成的所謂排程動作 數位信號處理器(DSP)的程式竭分為兩種類別:規 性、計算密集及時間關鍵程式碼,以及非時間關鍵 則性管理程式碼。規則性程式碼通常必須利用處理P 路徑令可用的完整平行處理原則,以符合時序需长°°貝 ::求f理程式碼通常只需要資料路徑的子集就可符: -4-
525091 A7 B7 五、發明説明 VUW編譯器可湘資料路徑巾可用的平行處理原則, 其方式是以平行方式儘可能排程許多作業。然而,缺 VLIw指令的大型程式碼大小。尤其就建構指令總數量之
大部份(通常嶋)的管理程式瑪而言,其缺點是使 VLIW指令集。 H 文件US_A·5 93〇 642發表一種如申請專利範圍第i項 及第12項前言中定義的編譯系統及方法。具體而言,所描 述的-種可動態重設組態之處理單元具有可在複數個硬體 架構之間選擇性變更的内容硬體組織,其中每硬體架構執 灯來自於對應指令集的指令。硬體組織係專用於實施特殊 ,令集架構(instruetlGn Set Arehiteetum)並提供 最佳化。ISA係運用如對應組態資料集所指定的唯一内部 硬體組織實施。選擇給定的重設組態指示詞之後,隨即依 據對應的ISA,經由組態指示詞所參考之位元流指定的唯 一組態來執行程式指令。編譯器從磁碟儲存裝置或其他輸 入或儲存裝置讀取含有原始碼指令陳述式的來源檔案。然 後,編譯器識別適用於原始碼指令陳述式子集的isa,產 生用以指定已識別ISA的適當重設組態指令,並且編譯供 已識別ISA執行的指令子集,以建立組譯語言陳述式。然 而,此類的可動態重設組態硬體組織只適用於採用場可程 式規劃閘極陣列(field programmable gate array ; FPGA) 的架構’並且需要連續修改硬體架構。 口此’本發明目的是提供一種能夠增加程式碼效率的編 譯方法及系統,而不需要大幅修改硬體架構。 -5- 本紙張尺度適用中g國家標準(CNS) A4規格(別X挪公爱) 3 五、發明説明( 义闽日的係藉由 法,以及如申請專利範利範圍,1項之編譯方 這個目的係_由接 2項之編譯系統實現。另外, 品實現。料—種如Μ專利«第14項之電滕程式產
^ 1PG 取完整資:::關處理器資源的兩項觀點,即,用來只存 關鍵nt —部份的精簡指令集,以及提供存取時間 鍵,式碼所需之完整資料路徑的完 ’ 二係用來使用同-處理架構的不同: 任式碼。這兩種指令集的差異為,當使用 法。運糾’編譯器對架構資源的看 配置,同一可重設目標編譯器工具可用來使 用兩個不_指令集來編彻始碼指令。 σ程式碼料陳述式可能是e語謂述式。在此情況下, r有Λ邊吕需要的功能單元才需要可被控制。藉此,可節 省功此單元叢集的操作妈(GPMde)位元。另外,處理架構 可月匕疋VLIW DSP架構。由於VLIW指令格式係由複數 個核發位置(lssue sl〇t)串連所組成,所以可實現精簡指 令集與第一指令集之間的簡單轉換。 依據本發明的開發優勢,該第一種指令陳述式可能是不 需要使用全處理器平行處理原則的程式碼,而該第二種指 令凍述式可能是平行程式碼。因此,每當時間關鍵平行程 式碼與管理程式碼之間有變更時,可執行介於兩種指令集 之間的切換。編譯器處理這兩種指令集,以利用小型指令 集的程式碼大小優點,及大型指令集的性能優點。 -6 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 525091 A7
依據另一項開發優勢,架槿:欠、 、貝’原的子集相當於處理架構 之完整資料路徑的一部份。1㈣二 处里朱稱 具體而言,完整資料路徑的一 部份只I括處理架構的-個功能單元㈣。在此情況下, 藉由將精簡指令的指令位元直接複製到對應功能單元的核 發位置(issue slot),就可訾祖竹枚 s上 J汽現將第二或精簡指令集直線順 向解碼成VLIW格式。 依據另—項開發優勢,執行編譯步驟的方式為,使用該 第-種指令陳述式的第-機H說明檔,以及使用該第二種 指令陳述式的第二機H說日續。鑑於㈣簡指令集僅查看 該完整指令集所查看之資料路徑之_部份的事實,因而直 線順向在額外機器說明檔中陳述之。藉此,—個單一可重 設編譯器可用來使用兩個不同的機器說明檔,以產生兩種 架構檢視的組譯程式碼。 依據進-步開發優勢,在編譯步驟之後,會將藉由使用 精簡指令集所產生的程式指令解碼為第一指令集格式,其 方式是將精簡指令的指令位元複製到第一指令集格式之核 發位置(issue slot)的對應部份,並且將用來標示未使用 這些核發位置(1SSUe slot)的位元值填入其他的核發位置 (issue slot)。以此方式,可實現將解碼精簡指令的作業直 接解碼成第一指令集的格式。該第一指令集最好是vuw 指令集。 依據進一步開發優勢,應用該精簡指令集的方式為,將 一作業結果寫回至同一暫存器位置,以從該暫存器位置擷 取其中一個運算元。這項「刪除」暫存器運算元的用法具 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 訂
k 525091 A7 B7 五、發明説明(5 ) 有節省暫存器位址位元的優點,这是因為許多指令只需要 指定兩個運算元/結果位址,而不是三個運算元/結果位址。 裝 依據進一步開發優勢,採用該精簡指令集的方式為,只 使用一單一暫存器檔案的一暫存器子集。藉此,可減少該 精簡指令所需的暫存器位址位元數量,進而縮短該精簡指 令集的指令寬度。最好採用該精簡指令集,以包含短即時 格式(short immediate format)及至少數量有限的保護作 業。這些措施能夠進一步縮短該精簡指令集的指令寬度。 圖式簡單說明 下文中,將參考附圖來說明本發明的較佳具體實施例, 其中= 圖1顯示根據較佳具體實施例於雙指令集DSP架構中標 不貢料路控的基本圖式’
圖2顯示根據較佳具體實施例之可重設目標編譯器的方 塊圖, 圖3顯示根據較佳具體實施例將精簡指令解碼成VLIW 格式之實例的圖式,以及 圖4顯示根據較佳具體實施例之可重設目標編譯器編譯 方法的原理流程圖。 現在將以具有已分割暫存器檔案之雙指令集VLIW處理 器的資料路徑為基礎來說明較佳具體實施例。 較佳具體實施例詳細說明 圖1顯示DSP架構中資料路徑的基本方塊圖,其中標示 相同資料路徑即時的兩種不同機器檢視。在精簡觀點(實線) -8- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) A7
裝 訂
線 525091 A7 B7 五、發明説明(7 ) SHU1及第二分支單元BU2。另外,第三功能單元叢集 UC3包括三個功能單元,即,第三算術邏輯單元ALU3、 第二載入/儲存單元L/S2及第三分支單元BU3 ;第四功能 單元叢集UC4包括二個功能單元,即,第四算術邏輯單元 ALU4、第二移位單元SHU2 ;第五功能單元叢集UC5包 括一個單一功能單元,即,第一篩選區段FIL 1,用以執行 DSP演算法的篩選作業;第六功能單元叢集UC6包括二 個功能單元,即,第二篩選區段FIL2及另一分支單元 BUT ;以及第七功能單元叢集UC7包括一個單一功能單 元,即,雙四元單元(bi-quad)單元BiQ,用以支援當作 特種篩選器的雙四元單元(bi-quad)篩選器。 每個功能單元叢集相當於處理器核心的作業核發位置 (issue slot),並且均包含可參數規劃數量的功能單元。在 所有的週期中,至多一項作業可在叢集中的其中一個功能 單元上開始。當在一個功能單元上開始一項作業,功能單 元將從其輸入埠取樣該作業的運算元。為了降低硬體複雜 度,假設功能單元叢集中的所有功能單元均共用輸入埠。 只要輸入琿沒有發生任何衝突,就可在功能單元叢集上開 始新作業。如果共用功能單元的輸出埠,則編譯器必須防 止發生衝突,並且當決定作業開始時間時應考慮可能的衝 突。另一項解決方案是,作業能夠同時在叢集的輸出產生 結果。在此情況下,具有不同延遲的功能單元不可共用它 們的輸出埠,這表示必要的功能單元叢集輸出數量必須等 於叢集在單一週期中可產生的最大結果數量。視應用需求 -10- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 8 8525091 五、發明説明 而定,處理器架構中可應用共用或非共用。 依據圖1,第_功能單元叢集 UC2共用第-暫存器槽案RF1,第:功第叢集 五功能單元叢华共用第二暫存器槽案_,第 暫存器槽案=及及二六功能單元叢集⑽共用第三 至第四暫存_ 集rUC7係連接 =的每-暫存器檔案均包含可儲存變數值的Ί體:及 圍内,可將這些實體以^^ 索引位移量加入=轉暫存器(即,藉由將暫存器 (m〇dulG)的全域㈣大小為模 組織成為廣播(或多點廣播)暫土存器;;止的/复體他暫存;1)幹 案中=播暫, =、且織成為FIF0 (Fl叫n_Firs卜〇加; 即,針對*不同實體暫存器所組成的 4㈣—暫存器㈣切 取何組合。每個暫存器槽案均具有寫入蜂及讀 引輸入所寫入蜂可由寫入啟用輸入與寫入暫存器索 引輸入所組成’以選取檔案中的一個或—組暫存且 經由寫入資料輸入將結果資料寫入至暫存器檔案。 在依據圖!的雙指令集架構中,使用兩種田指令集。為了 -11 - 525091 五、發明説明( ) 9 不增加核心及編譯器的複雜度,這兩種指令集均共用資料 ,身源、使用同_基本指令解碼器,並且使用同一編譯 裔工具。這兩種指令集的差異為,當使用任一指令集產生 程式碼時,編制對架構資源的看法。運料個配置,同 -可重設目標編譯器卫具可用來使用兩個不同的指令集來 編譯程式碼。具體而言,精簡指令集適用於不需要使用全 處理器平行處理原則的程以,#,管理程式碼,豆中精 簡指令集係用來只存取實線方塊所標示之完整資料路徑的 一部份。也就是只有第一功能單元叢集UC1,特別是功能 單元aLU1、L/S1及BU1,並且精簡指令集可看見或使 用暫存器檔案的RF1,部份,即,管理程式碼。第二指令集 是時間關鍵平行程式碼的完整指令集,其中所有的功能單 疋及暫存鏍檔案係由時間關鍵平行程式碼檢視及使用。在 極端的情況下,每當發生時間關鍵程式碼與管理程式碼之 間的切換時,必須以清晰的層級執行介於兩種指令集之間 的切換。實際上,切換層級可能是功能層級(即,基底區塊) 或決策樹層級。基於重複使用、縮短上市時間及提高編譯 器的可維護性等原因,希望使用單一編譯器。此類的編譯 器係用來利用這兩種指令集,以利用小型或精簡指令集的 程式碼大小優點,及大型指令集的性能優點。因此,根據 較佳具體實施例,可重設目標之觀點係用來使用同一處理 架構的不同指令集來產生組譯程式碼。 圖2顯示根據較佳具體實施例之可重設目標編譯器的方 塊圖。處理器架構係用來當作具有可參數規劃數量的功能 __ - 12- 巧張尺度適家標準(CNS) Α4規格(210X297公£)- 525091 A7 B7 五、發明説明( :兀,集、每叢集功能單元數量、暫存器檔案、及暫存器 檔案、構的本。^ 了能夠有效處理這些參數,硬體說明 必須可參數規劃’且軟體開發環境必須可重設目標。作為 ”於硬體架構與軟體開發工具之間的橋接器(bHdge),提 供元整責料路徑的第一機器說明檔51及精簡資料路徑的第 一機器《兒明檔52。這些檔案均包含關於考慮之中的架構事 例(architecture instance)的資訊。第一機器說明檔51 及第二機器說明檔52藉由可用來將匯流排、連接埠等等模 型化的資源抽象概念來指定自訂作業的資源使用方式。 依據圖2,編譯器包括核心編譯器1,其用來將輸入高階 語言(例如,C/C++程式)轉譯成中間格式。核心編譯器 係由包含掃瞄器、剖析器(Parser)及語意(Semantic)檢 查程式的前端所組成。另外,核心編譯器1實施許多最佳 化/貝异法及程式碼選取器(c〇de selector)。核心編譯器中 的最佳化與目標架構無關。這些最佳化可包括迴圈展開、 函式内嵌(inline)、別名(alias)分析、常數摺疊 (folding)、常數傳用(constant-propagation)、通用子運 异式(common-subexpression)排除及全域程式碼移動。 核心編譯器1可能用來將管理、低規則性程式碼提供給全 域排程器3,並且將時間關鍵且規則性迴圈或平行程式碼 提供給迴圈排程器2。全域排程器3排程管理、低規則性 程式碼,這通常是非時間關鍵,並且包含有限或沒有平行 處理原則。管理程式碼通常是用來初始化或控制工作的程 式碼。迴圈排程器2係用來排程時間關鍵且規則性迴圈或 -13- 本紙張尺度適用中國國家標準(CNS) A4规格(210x 297公釐)
% 訂
k 525091
平行程^碼,通常會在DSP應用中遇到。這個程式瑪通常 包含大量的平行處理原則。核心編譯器丨、迴圈排程器2 及全域排程器3的作業均是以自第一機器說明檔51和第 二機器說明檔52獲得的各自資訊為基礎。然後,由選取器 4從迴®排程$ 2及全域排程器3的輸出選取最後的組譯 程式碼序列。 於編譯作業期間,核心編譯器1的選取方式為,當藉由 使用完整指令集來編譯迴圈或平行程式碼時,則會選取涵 蓋完整資料路徑的第一機器說明槽51,當藉由使用精簡指 令集來編譯管理程式碼時,則會選取涵蓋精簡資料路徑的 第二機器說明檔52。全域排程器3接收核心編譯器丨的 精簡輸出,並依據第二機器說明檔52及精簡指令集,將精 簡作業排入精簡指令中。初始化(包括剖析第二機器說明槽 52)之後,全域排程器3開始剖析來自於輸入檔案的決策 樹、進行排程,並將結果寫入至組譯碼輸出檔案。 因為DSP計算的週期字元(peri〇dic character),所以 通吊會在元成灵際仏號處理的DSP程式石馬中出現迴圈。這 些迴圈通常具有規則形狀,並且被認為是時間關鍵。Dsp 迴圈係由迴圈排程器2排程。一般而言,Dsp迴圈要求高 總處理能力。因此,迴圈排程器2嘗試藉由使用第一機器 道明檔51及完整指令集,以利用全部可用的平行處理原 則。迴圈排程器2的決策方式可與清除排程器的決策方式 相同,但是可能會原路返回錯誤決策。於排程之前及期 間,可使用限制條件分析當作關鍵字技術,以縮小排程器 -14- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公 525091 A7 B7 五、發明説明(12 的搜尋空間。用限制條件分析可有效縮小排程器的搜尋空 間,而不用排除任何可行的方案。它可排除將導致不可行 結果的排程決策。然而,限制條件分析不是應付產生最佳 排程DSP迴圈挑戰的唯一方法。可採用如反覆按模 (iterative modulo)排程、整數線性程式規劃(integer· linear programming ; ILP)或啟發法來應付排程DSp迴 圈的挑戰。 請注意,全域排程器3也可排程時間關鍵或非規則性或 低規則性程式碼。在此情況下,全域排程器3能夠藉由執 行編譯時間推測來顯露指令層級平行處理原則。藉此,可 產生平行排程。因此,一般而言,全域排程器3及迴圈排 程器2都能夠存取第一機器說明檔51和第二機器說明檔 52 ° 然後,選取器4從迴圈排程器2及全域排程器3的組譯 輸出檔案選取各自的組譯程式碼,以獲得正確的組譯程式 碼序列。 因此,所有的指令集均共用資料路徑資源及編譯器工 具。在完整或平行指令集中,編譯器可看到並使用所有的 硬體資源.。在精簡指令集中,只能看到第一功能單元叢集 ucn的功能單元ALU1、L/S1及BU1。另外,只能看到 第一暫存器檔案RF1的RF1,部份。藉由使用第一暫存器 檔案RF1中的堆疊緩衝器,並且使指令集相對於資料存取 至少部份以堆疊為主,可節省額外的指令位元。精簡指令 集的最低需求為,它支援用戶端高階語言(例如c/c++語 -15- 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 525091 A7
言)所需的所有作業。為 ALm、L/Sl及咖 滿足ie-項攻低需求,功能單元 丄及足以勝任。 鑑於只有使用—個德單元叢集uc 不需要心指令(可變二 的:二題+另外’由於只有使用第—功能單元叢集UC1 -17’所以可節省該功能單元叢集的操作碼位 只有第—暫存器槽案RF1的暫存器子集需要可定 :的事r所以可實現進一步減少指令 簡指令中所需的暫存器位址數量。 可進-步減少精簡指令的指令寬度,其方式是在指令中 使用”時格式或較短即時格式’並且不使用保護作業或 使用數里有限的保護作業,以節省定址保護運算元所需的 位兀。另夕卜,可藉由使用「刪除」暫存器運算元來節省暫 f器位址位元’這表示會將一項作業結果寫回至同一暫存 态位置,以從該暫存器位置耗用或擷取其中一個運算元。 藉此,只需要指定兩個運算元/結果位址,而不是三個運算 凡/結果位址。 精簡指令集可經過設計,以便能夠以簡單的方式,實現 解碼為功能單元叢集UC1至UC7適用的VLIW格式。 圖3顯示精簡指令格式以及解碼為VLIW格式的實例。精 簡指令格式不支援保護作業,且使用刪除運算元。具體而 言’精簡指令袼式由14位位元所組成,其中4位位元係 用來定址來源暫存器src、4位位元係用來定址r刪除」 暫存态srcdst,而6位位元係供操作碼〇pC使用。精簡指
裝 訂
-16- 525091
令格式是一種vuw格式,其包括c個核發位置(isSw slot),以供每個功能單元叢集使用;以及作業有效旗標的 起始攔位,用以標示指令使用的有效功能單元叢集。就圖 1所示的案例而言,vuw格式包括核發位置(issue sl〇t) 1至C。每個核發位置(issue slot)均是由下列欄位所組 成·常數TRUE值gsrc使用的5位元欄位;用來定址來 源暫存器的6位元攔位;用來定址另一個來源暫存器的6 位兀攔位;操作碼使用的7位元攔位;以及用來定址目的 暫存器的7位元欄位。依據圖3,可實現簡單的解碼作 業,其方式是將精簡指令格式的來源暫存器src位址位元 複製到VLIW格式的來源暫存器位址欄位,將精簡指令格 式的「刪除」暫存器srcdst位址位元複製到VLIW格式 的另一個來源暫存器位址欄位並複製到目的暫存器的位元 欄位,以及將精簡指令格式的操作碼opc複製到VLIW格 式的操作碼攔位。在其餘位元位址中填入〇位元。由於精 簡才曰π格式中不使用其他的核發位置(issue ,這些位 置被填寫以指示各自功能單元叢集的無作業函式 operation function ; N〇p)。這也會在vuw格式開始的 作業有效旗標中標示。 圖4顯示根據較佳具體實施例之可重設目標編譯器編譯 方法的原理流程圖。首先,於步驟S1⑻,核心編譯器丄讀 取高階語言的原始程式檔(s〇urce file)。於將高階語言轉 譯為中間格式期間,核心編譯器丨偵測原始碼的型別, 即,是管理程式碼或時間關鍵、平行程式碼(步驟sl〇1)。 -17- 本紙張尺度適财國國家標準(CNS) A4規格(21GX 297公董) 15 15525091 五、發明説明( 以福測的原始碼型別為基礎,核心編譯器選取第—制說 明檔51並使用完整精簡指令集’或第二機器說明檔μ並 使用精簡指令集(步驟Sl〇2)。依選取作業為基礎,然將中 間格式提供給迴圈排程器2或全域排程器3,以產生對應 ,組譯程式碼序列(步驟S1G3)。然後,從選取器4獲得 取後的組譯程式碼序列’其中選取器4會依據從迴圈排程 器2及全域排程器3獲取的組譯程式石馬的連續順列來組合 組澤程式瑪。 因此,只需要小幅修改架構或編譯器,就可支援雙指令 集觀念。然而,藉由使用精簡指今集,編譯器能夠產生小 型指令程式碼,這是只有較少數的位元需要編碼作業及暫 存益。藉此,產生最佳化的組譯程式碼。雖然已配合較佳 具體實施例來說明本發明,顯而易見,按照前述的說明 書,熟知技藝人士應明白有許多替代、修改及變化。具體 而言,本發明適用於包含複數個功能單元或功能單元叢集 的任何平行DSP架構。另外,本發明適用於可藉由定義特 定指令集來限制處理資源的任何處理架構。另外,本發明 預定涵蓋適合採用電腦來執行本發明所涵蓋之編譯步驟的 任何電腦程式產品(如用來儲存對應程式的記錄載體,或可 從通訊網路下載的軟體產品)。 因此’本文中說明的本發明預期包含屬於隨附申請專利 範圍之範疇内的所有此類替代 '修改、應用或變化。 18 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公爱)

Claims (1)

  1. 525091
    申請專利範圍 一種於一具有架構資源執行指令之處理架構中使用之用以 自一對應指令集產生一程式指令序列的編譯方法,該方法 包括下列步驟: 輸入一原始程式碼(S 1〇〇),其包括内含一第一種指令 陳述式及一第二種指令卩東述式的複數個原始碼指令陳述 式; 分別選取(S101,S102)該第一種指令陳述式及該第 二種指令陳述式的至少一第一指令集及一第二指令集; 以及 進行編譯(S103),使用該第一指令集(VLIW格式)編 譯該第一種指令陳述式,使用該第二指令集編譯該第二種 指令陳述式, 其特徵為,在該同一處理架構中使用所採用的該第一指 令集及該第二指令集,以及 該第二指令集(Compact Instruction Format ;精簡指 令格式)是一種精簡指令集,其被設計以只支援該第一指 令集所支援的一架構資源子集。 2·如申請專利範圍第1項之方法’其特徵為,該程式碼指 令陳述式是C語言陳述式。 3.如申請專利範圍第1或2項之方法,其特徵為,該處理 架構(圖1)是VLIW DSP架構。 4·如申請專利範圍第1項之方法,其特徵為,該第一種指令 陳述式是-不需要使用全處理器平行處理原則的程式石:: 而該第二種指令陳述式是一平行程式碼。 -19- 本紙張尺度適财^"5^標準(c A4規格⑽χ 297公釐) ---------- 525091
    申請專利範圍 =清專利地圍第1項之方法,其特徵為,該架構資源子 :=、ALU1、L/S1、則)相當於該處理 個資料路徑(RF1、ucl、UC2、RF2、uc3 uc4、 6. RF3、UC5、UC6、RF4、UC7)0^_ 部份。 如申請專利範圍第5項之方法,其特徵為,該完整資料路 二部份只包括該處理架構(圖卩的一功能單元叢集 利範圍第1項之方法,其特徵為,執行該編課步 =式為’使用該第:種指令陳述式的_第一機器說明 裝 二2、’ 3使用该苐二種指令陳述式的第二機器說明 擒(52),其中該第二機写 機态w兄月檔疋義该架構資源子集 8. 的可用作筆。 如I請專利範圍第1項之方法,其特徵為,在該編譯步驟 藉由使用該精簡指.令集所產生的程式指令解碼 :::卜.曰令集格式’其方式是將該精簡指令的指令位元 複製到該第-指令集格式之核發位置(issue s 二份’並且將用來標示未使用這些核發位置(i職㈣ 9. 讀填人其他的核發位置(issue slot)(圖3)。 第1項之方法,其特徵為,採用該精簡指 7集的方式為’將一作業4士里合 艺 業、,Ό果寫回至同一暫存器位置,以 從㈣存器位置擷取其中-個運算元。 1 〇·如申請專利範圍第1項 ^#^^ , 、方法,其特徵為,採用該精簡指 為’只使用—單—暫存器檔 益子集(RFli)。 3什 -20- 本紙張尺度適W國國冢標準(CNS)八4規^^^
    申請專利範
    .· t申請專利範㈣1項之方法,其特徵為,該精簡指令集 匕含短即時格式(sh°rt immediate f0rmat),以及沒有或 二有數量有限的保護作業(圖3:精簡指令格式)。 •種於-具有架構資源執行指令之處理架構_使用之用以 2 一對應指令集產生—程式指令序賴編料統,該系統 包括: 一輸入裝置’用以輸人—原始程心馬,其包括内含一第 —種指令陳述式及-第二種指令陳述式的複數個原始碼指 令陳述式;以及 、編澤裔G),其被耦合以從該輸入裝置接收該原始程 式碼,用以選取該第一種指令陳述式及該第二種指令陳述 式的至V第-U集及_第二指令集,·用以使用該第一 &令集編譯該第-種指令陳述式;以及用以使用該第二指 令集編譯該第二種指令陳述式;其特徵為,在該同一處理 架構中使用所採用的該第一指令集及該第二指令集;以及 該第二指令集是-種精簡指令集,其被採用以只支援該 第一指令集所支援的一架構資源子集。 13·如申請專利範圍第12項之系統,其特徵為,該編譯架構 係在一 VLIW DSP架構(圖中使用。 14· 一種可載入到一電腦記憶體中的電腦程式產品,其中當在 忒電腦上執行該電腦程式產品時,該電腦被採用以執行如 申請專利範圍第1項之方法。 -21 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
TW090122105A 2000-10-05 2001-09-06 Retargetable compiling system and method TW525091B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP00203467 2000-10-05

Publications (1)

Publication Number Publication Date
TW525091B true TW525091B (en) 2003-03-21

Family

ID=8172108

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090122105A TW525091B (en) 2000-10-05 2001-09-06 Retargetable compiling system and method

Country Status (6)

Country Link
US (1) US6948158B2 (zh)
EP (1) EP1417576A2 (zh)
JP (1) JP4979875B2 (zh)
CN (1) CN1296823C (zh)
TW (1) TW525091B (zh)
WO (1) WO2002029562A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877741B2 (en) 2005-04-29 2011-01-25 Industrial Technology Research Institute Method and corresponding apparatus for compiling high-level languages into specific processor architectures
TWI696948B (zh) * 2018-05-30 2020-06-21 臺灣發展軟體科技股份有限公司 編譯器最佳化方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2364579A (en) * 1999-11-30 2002-01-30 Sgs Thomson Microelectronics An assembler using a descriptor file that contains information descriptive of the instruction set of a target microprocessor
US6976249B1 (en) * 2001-11-12 2005-12-13 Apple Computer, Inc. Method for embedding object codes in source codes
US7100022B1 (en) * 2002-02-28 2006-08-29 Mindspeed Technologies, Inc. Area and power efficient VLIW processor with improved speed
US7120780B2 (en) * 2002-03-04 2006-10-10 International Business Machines Corporation Method of renaming registers in register file and microprocessor thereof
WO2004029796A2 (en) * 2002-09-24 2004-04-08 Koninklijke Philips Electronics N.V. Apparatus, method ,and compiler enabling processing of load immediate instructions in a very long instruction word processor
KR101044724B1 (ko) * 2003-03-12 2011-06-28 코닌클리케 필립스 일렉트로닉스 엔.브이. 대화식 텔레비전 프로그램을 저장하는 방법 및 장치
GB2401217B (en) * 2003-05-02 2005-11-09 Transitive Ltd Improved architecture for generating intermediate representations for program code conversion
GB0315165D0 (en) * 2003-05-02 2003-08-06 Transitive Ltd Improved architecture for generating intermediate representations for program code conversion
WO2005036384A2 (en) * 2003-10-14 2005-04-21 Koninklijke Philips Electronics N.V. Instruction encoding for vliw processors
US7966608B2 (en) * 2005-10-26 2011-06-21 Hewlett-Packard Development Company, L.P. Method and apparatus for providing a compiler interface
KR100662846B1 (ko) * 2005-11-09 2007-01-02 삼성전자주식회사 데이터 처리 시스템 및 데이터 처리방법
JP5388851B2 (ja) 2006-09-06 2014-01-15 シリコン ヒフェ ベー.フェー. 複数の命令モードを有するデータ処理回路、データ回路の処理方法、およびデータ回路のスケジューリング方法
US8209662B2 (en) 2006-12-04 2012-06-26 Microsoft Corporation Application retargeting
US20080162879A1 (en) * 2006-12-29 2008-07-03 Hong Jiang Methods and apparatuses for aligning and/or executing instructions
US20080162522A1 (en) * 2006-12-29 2008-07-03 Guei-Yuan Lueh Methods and apparatuses for compaction and/or decompaction
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8561037B2 (en) * 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US7941641B1 (en) 2007-10-01 2011-05-10 Yong-Kyu Jung Retargetable instruction decoder for a computer processor
CN102074331B (zh) * 2010-12-13 2012-07-04 山东大学 一种磁饱和电抗器
US20120185670A1 (en) * 2011-01-14 2012-07-19 Toll Bret L Scalar integer instructions capable of execution with three registers
CN102184765B (zh) * 2011-02-21 2012-11-21 山东大学 一种饱和电抗器
EP2523120A1 (en) * 2011-05-12 2012-11-14 Imec Microcomputer architecture for low power efficient baseband processing
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format
WO2013179085A1 (en) * 2012-05-29 2013-12-05 Freescale Semiconductor, Inc. Processing system and method of instruction set encoding space utilization
US8924927B2 (en) * 2012-06-01 2014-12-30 Google Inc. Representation and conversion of dynamically-typed arrays
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
KR20140122564A (ko) * 2013-04-10 2014-10-20 삼성전자주식회사 프로세서에서 레지스터의 물리 주소 산출 장치 및 방법
CN104424009B (zh) * 2013-09-06 2017-10-17 华为技术有限公司 OpenCL程序编译方法和编译器
US20150378698A1 (en) * 2014-06-27 2015-12-31 International Business Machines Corporation Integrated compilation modes for data flow code generation
US9715392B2 (en) * 2014-08-29 2017-07-25 Qualcomm Incorporated Multiple clustered very long instruction word processing core
KR102600283B1 (ko) 2017-12-05 2023-11-08 삼성전자주식회사 전자 장치 및 이를 이용한 명령어 처리 방법
JP7163697B2 (ja) * 2018-09-28 2022-11-01 富士通株式会社 生成プログラム,情報処理装置及び生成方法
WO2021000638A1 (zh) * 2019-07-03 2021-01-07 上海寒武纪信息科技有限公司 深度学习算法的编译方法、装置及相关产品
CN112307431B (zh) * 2020-11-09 2023-10-27 哲库科技(上海)有限公司 一种vdsp、数据处理方法及通讯设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0248770A (ja) * 1988-08-10 1990-02-19 Hitachi Ltd 情報処理装置
US5933642A (en) * 1995-04-17 1999-08-03 Ricoh Corporation Compiling system and method for reconfigurable computing
AU6905496A (en) * 1995-09-01 1997-03-27 Philips Electronics North America Corporation Method and apparatus for custom operations of a processor
JP3424430B2 (ja) * 1996-03-29 2003-07-07 株式会社日立製作所 プロセッサ
EP0833246B1 (en) * 1996-09-27 2014-11-26 Texas Instruments Incorporated A method of producing a computer program
EP0855648A3 (en) * 1997-01-24 1999-12-22 Texas Instruments Inc. Data processing with parallel or sequential execution of program instructions
JPH11119993A (ja) * 1997-10-13 1999-04-30 Matsushita Electric Ind Co Ltd 信号処理装置
US6101592A (en) * 1998-12-18 2000-08-08 Billions Of Operations Per Second, Inc. Methods and apparatus for scalable instruction set architecture with dynamic compact instructions
US5974537A (en) * 1997-12-29 1999-10-26 Philips Electronics North America Corporation Guard bits in a VLIW instruction control routing of operations to functional units allowing two issue slots to specify the same functional unit
US6076154A (en) * 1998-01-16 2000-06-13 U.S. Philips Corporation VLIW processor has different functional units operating on commands of different widths
JP3264901B2 (ja) * 1998-04-01 2002-03-11 松下電器産業株式会社 コンパイル装置及びコンパイル方法
US6026479A (en) * 1998-04-22 2000-02-15 Hewlett-Packard Company Apparatus and method for efficient switching of CPU mode between regions of high instruction level parallism and low instruction level parallism in computer programs
EP0997815A3 (en) * 1998-10-29 2004-05-26 Texas Instruments Incorporated Interactive translation system and method
JP2000207223A (ja) * 1999-01-12 2000-07-28 Matsushita Electric Ind Co Ltd 並列処理向けのプログラム処理方法および装置、並びに並列処理向けのプログラム処理を実行するプログラムを記録した記録媒体および並列処理向けの命令列を記録した記録媒体
JP2000322259A (ja) * 1999-05-11 2000-11-24 Hitachi Ltd データ処理装置
US6640315B1 (en) * 1999-06-26 2003-10-28 Board Of Trustees Of The University Of Illinois Method and apparatus for enhancing instruction level parallelism
US6691305B1 (en) * 1999-11-10 2004-02-10 Nec Corporation Object code compression using different schemes for different instruction types
US6718539B1 (en) * 2000-12-22 2004-04-06 Lsi Logic Corporation Interrupt handling mechanism in translator from one instruction set to another

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877741B2 (en) 2005-04-29 2011-01-25 Industrial Technology Research Institute Method and corresponding apparatus for compiling high-level languages into specific processor architectures
TWI696948B (zh) * 2018-05-30 2020-06-21 臺灣發展軟體科技股份有限公司 編譯器最佳化方法

Also Published As

Publication number Publication date
EP1417576A2 (en) 2004-05-12
US20020042909A1 (en) 2002-04-11
CN1296823C (zh) 2007-01-24
JP4979875B2 (ja) 2012-07-18
US6948158B2 (en) 2005-09-20
WO2002029562A3 (en) 2004-02-26
CN1518693A (zh) 2004-08-04
WO2002029562A2 (en) 2002-04-11
JP2004511043A (ja) 2004-04-08

Similar Documents

Publication Publication Date Title
TW525091B (en) Retargetable compiling system and method
Goossens et al. Embedded software in real-time signal processing systems: Design technologies
Theobald EARTH: an efficient architecture for running threads
US7181730B2 (en) Methods and apparatus for indirect VLIW memory allocation
Gross Code optimization of pipeline constraints
de Araujo Code generation algorithms for digital signal processors
JP5576605B2 (ja) プログラム変換装置およびプログラム変換方法
Gokhale et al. Co-synthesis to a hybrid RISC/FPGA architecture
Kessler Compiling for VLIW DSPs
She et al. OpenCL code generation for low energy wide SIMD architectures with explicit datapath
Nagpal et al. Integrated temporal and spatial scheduling for extended operand clustered VLIW processors
Palem et al. Adaptive explicitly parallel instruction computing
CN113721899B (zh) 面向gpdsp的轻量级高效汇编代码编程方法及系统
Balfour Efficient embedded computing
Kessler Compiling for VLIW DSPs
Smith Explicit data graph compilation
Schwarz et al. Engineering an optimized instruction set architecture for AMIDAR processors
Arslan Code Generation for Custom Architectures using Constraint Programming
Feuerhahn A data-flow driven resource allocation in a retargetable microcode compiler
Callahan et al. Improving register allocation for subscripted variables
Lin et al. Effective code generation for distributed and ping-pong register files: a case study on PAC VLIW DSP cores
Bernard et al. A microthreaded architecture and its compiler
Alam et al. A Custom Code Generation Technique for ASIPs from High-level Language
Javeri Demand-Driven Execution Using Future Gated Single Assignment Form
Shannon AC Compiler for Stack Machines

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