TW201015431A - Loop control system and method - Google Patents

Loop control system and method Download PDF

Info

Publication number
TW201015431A
TW201015431A TW098121712A TW98121712A TW201015431A TW 201015431 A TW201015431 A TW 201015431A TW 098121712 A TW098121712 A TW 098121712A TW 98121712 A TW98121712 A TW 98121712A TW 201015431 A TW201015431 A TW 201015431A
Authority
TW
Taiwan
Prior art keywords
loop
predicate
value
instruction
instructions
Prior art date
Application number
TW098121712A
Other languages
English (en)
Inventor
Lucian Codrescu
Erich Plondke
Lin Wang
Suresh K Venkumahanti
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201015431A publication Critical patent/TW201015431A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • G06F8/4452Software pipelining
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • 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
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

201015431 _ · · 六、發明說明: • 【發明所屬之技術領域】 本揭示案大體而言係關於迴路控制系統及方法。 【先前技術】 ❿ 技術之進展已產生更小且更強大之計算器件。舉例而 言,當前存在多種攜帶型個人計算器件,包括無線計算器 件,諸如攜帶型無線電話、個人數位助理(PDA)及呼叫器 件,其係小型、輕質且易於由使用者攜帶的。更具體言 之,攜帶型計算器件(諸如,蜂巢式電話及让電話)可經由 無線網路傳遞語音及資料封包。另外,許多該等攜帶型無 線器件亦併有其他類型之器件。舉例而言,無 包括數位靜態相機、數位視訊相機、數位記錄器^音訊擋 案播放器。又,該等無線電話可處理可執行指令,包括軟 體應用程式,諸如可用於存取網際網路之網 人 程式。因而,此等無線電話可包括顯著計算能力覽"應用 在軟體應用程式内重複之可執行指令可 體管線式迴路而執杆。弘胁& ^ 盗彳乍為軟 κ路而執仃。軟體管線操作為用於將來自程式迴 路之不同邏輯反覆之非相依八 知7排程為並行地執行的方 法。來自迴路之不同邏輯反覆之重叠 = 理之並行性之量。舉例而‘ 用於有效處 行動器件)中之處理器之單V::計算器件(諸如,無線 -迴路指令及第二迴路指:獨的第執=^ 覆而第二指令對應於第…-於第-迴路反 迴路可-管線式叫 141257.doc 201015431 線時歸因於指令之間沾:欠 . ]的身料相依性之資料危障(data hazard)的額外指令(例如,導言指令)及用於防止排空管線 時之記憶艘存取危障的額外指令(例如,結尾指令)可增加 執行應用程式所需之記愔私^且 , 隐體之量。該額外記憶體可能不易 於在無線計算器件處可用。 【發明内容】 在特疋實施例中’揭示—種包括一硬體迴路控制邏輯電 路之系統。該硬體迫路控制邏輯電路包括用於偵測程式迴 路之迴路結束^符之_單元、詩使迴料數遞減且 使述詞觸發計數器(predicate tdgger e〇unter)遞減之遞減單 70,及用於比較述詞觸發計數器與一參考以判定何時設定 述詞值(predicate Value)之比較單元。該系統亦包括執行觸 發硬體迴路控制邏輯電路之執行之特殊指令的處理器。具 有硬體迴路控制邏輯電路之系統之使用使得能夠在無導言 指令之情況下執行軟體管線迴路,藉此使用減少之記憶 體0 在另一特定實施例中,揭示一種包括用於儲存述詞觸發 计數之述詞計數暫存器的裝置。該裝置亦包括用於初始化 程式迴路之迴路參數之初始化邏輯電路。該裝置包括用於 執行程式迴路之迴路指令且執行包括迴路結束指示符之封 包的處理器。該裝置亦包括用於修改述詞觸發計數且修改 程式迴路之迴路計數之邏輯電路。該裝置亦包括用於比較 述詞觸發計數與一參考值之比較邏輯電路。該裝置進一步 包括用於基於該比較之結果而改變影響程式迴路中之至少 141257.doc 201015431 才曰令的述柯之值之邏輯電路。 在另一特定實施例中,揭示一種處理迴路指令之方法。 該方法包括在特殊暫存器中初始化迴路參數其中該等特 殊暫存器包括述詞觸發計數。該方法亦包括執行迴路指令 且執仃具有迴路結束指示符之封包。該方法進—步包括修 改述詞觸發計數且修改迴路計數4述簡發計數等於參 考值時,該方法包括改變影響迴路指令中之至少一者的述 詞之值。
在另一特定實施例中’揭示一種處理迴路中之指令集合 之方法。該方法包括在執行特定類型之迴路指令之後即自 動地初始化述詞觸發計數器以指示在設定述詞值之前待執 作的k路之反覆之數目。該方法亦包括在迴路反覆期間執 仃《玄指令集合,且在偵測到迴路之迴路結束指示符之後即 自動地觸發迴路控制硬體以修改述詞觸發計數器且比較述 詞觸發計數器與-參考㈣定何時設定述詞值^基於該述 兩值而有條件地執行該指令集合中之該等指令中之一 者。 由所揭示之實施例中之至少__者提供的_特定優點儀作 為管線式軟體迴路執行之指令的減小之程式碼大小、較低 功率操作及較高速處理。本揭示案之其他態樣、優點及特 徵將在審閱包括以下章節之整個申請案之後變得顯而易 見·[圖式簡早說明]、[實施方式]及[申請專利範圍]。 【實施方式】 參看圖i,描緣迴路控制系統之第—說明性實施例且大 141257.doc 201015431 體將其指定為100。系統100可為電腦、 揭帶型無線器件、 無線電話或執行軟體指令之任何其他器件之—部分。系统 100包括具有硬體迴路控制邏輯電路1〇4之處理器=2。 處理器102經組態以執行迴路指今丨)、 7 120。迴路指令12〇包 括使用述詞邏輯電路11G的至少—有條件地執行之迴路指 令m。舉例而言,#述詞邏輯電路㈣儲存評估為真之^ 詞值時,可由處理㈣2執行有條件地執行之迴路指令 122,且當述詞邏輯電路11〇儲存評估為假之述詞值時,不 可執行有條件地執行之迴路指令122。舉心言,執行迴 路指令120使得處理器1G2能夠有效地執行重複操作,諸如 針對多媒體軟體應用程式或數位信號處理操作。 迴路控制值106可由硬體迴路控制邏輯電路1〇4及述詞設 定邏輯電路1G8來存取述詞設定邏輯電路⑽搞接至述= 邏輯電路110。在特定實施例中,述詞邏輯電路㈣可包括 經調適以儲存具有假值(例如,邏輯「〇」值)或真值(例 如,邏輯「1」值)之資料位元的鎖存器或其他儲存器件。 藉由使用硬體迴路控制邏輯電路1〇4及述詞設定邏輯電路 ,可以緊密形式對軟體管線式迴路進行編碼,其中用 於初始化軟體管線之管線式迴路級可用結合系統ι〇〇之硬 體迴路控制邏輯電路104工作之一或多個有條件地執行之 迴路指令替代,如下文將描述。 在特定實施例中,硬體迴路控制邏輯電路104包括經調 適以辨識對應於迴路指令12〇之軟體迴路之開始的電路。 硬體迴路控制邏輯電路1〇4可經調適以最初設定且修改迴 141257.doc 201015431 路控制值106以初始化並控制由處理器ι〇2進行的迴路指令 120之執行。詳言之,硬體迴路控制邏輯電路1〇4經調適以 初始化迴路控制值106之述詞計數器丨24。除述詞計數器 124之外,迴路控制值可包括用於控制迴路之操作之其 他值,諸如迴路開始位址及迴路反覆之數目,此作為說明 性實例。 可由硬體迴路控制邏輯電路104將述詞計數器124初始化 為對應於處理循環之數目之值,該等處理循環係用以在處 理器102處填充包括迴路指令12〇之軟體管線式迴路。大體 而言,處理器102可以管線式方式將每一迴路反覆作為可 在多個執行單元(未展示)處並行地執行之多個連續管線級 來執行。舉例而言,當處理器1〇2執行具有三個管線級之 冰度之軟體管線式迴路中的迴路指令丨2〇時,可將述詞計 數器124初始化至為三之值,具有三個管線級之深度之軟 體管線式迴路的實例描繪於圖3中。 硬體迴路控制邏輯電路104可進一步經調適以偵測處理 器102處之迴路反覆條件且針對迴路之每一反覆修改述詞 計數器124。舉例而言,述詞計數器124可保有—回應於硬 體迴路控制邏輯電路104而連續遞減之初始化值直至述詞 计數器124之值達到參考值為止。當軟體管線式迴路經完 全管線操作時,參考值可對應於述詞計數器124之值其 中軟體迴路之所有指令處理並未因f線相依性而無效之資 料。舉例而言,在稍後操作使用由迴路反覆内之較早操作 產生之資料且迴路經管線操作以使得較早操作係在第一管 141257.doc 201015431 線級處執行且稍後操作係在與第一管線級並行地執行之稍 後管線級處執行的情況下,稍後管線級對第一管線級處所 產生之資料之相依性將使得稍後管線級處理無效資料直至 於稍後管線級處接收到第一管線級處所產生之資料為止。 為了說明,處理器可在單獨執行單元處執行迴路指令 「A=A+1」及「將A儲存至記憶體」,但「將a儲存至記憶 體」指令將儲存無效結果直至接收到來自第一 r A=A+1」 指令之資料為止。 述詞設定邏輯電路1 08可經調適以回應於偵測到述詞計 數器124之值而設定述詞邏輯電路ι10處所儲存之述詞值。 在特定實施例中,述詞設定邏輯電路1 〇8包括用於執行述 詞計數器124處之值與參考值之間的比較之比較邏輯電路 (未展示)。當偵測到述詞計數器124處之值具有等於參考值 之值時,述詞設定邏輯電路108可經組態以自動地設定述 詞邏輯電路110處所儲存之述詞值。舉例而言,述詞邏輯 電路110可經初始化成儲存假條件,述詞計數器124可經初 始化為軟體管線式迴路之管線級之數目,且參考值可為 零。當將述詞計數器124遞減至零時,述詞設定邏輯電路 108可自動地將述詞邏輯電路11〇處之述詞值改變成真條 件。可將述詞邏輯電路110處所儲存之述詞值之真條件提 供至有條件地執行之迴路指令122以影響處理器102處之迴 路指令120之處理。作為另一實例,可將述詞計數器124設 定至零且可將參考值設定至軟體管線式迴路之管線級之數 目,且可回應於每一迴路反覆而使述詞計數器124遞增。 141257.doc 201015431 因此’處理器102處之迴路初始化及迴路控制可由包括 硬體迴路控制邏輯電路104、用於儲存迴路控制值106之鎖 存器或其他器件之硬體元件來執行,以實施述詞設定邏輯 電路108。藉由使用硬體來實施用於軟體管線式迴路之迴 路控制邏輯,可以緊密形式對軟體迴路進行編碼,其中用 於初始化軟體管線之管線式迴路級(稱作導言)可用結合系 統100之硬體而工作之一或多個有條件地執行之迴路指令 122替代。 參看圖2,描繪迴路控制系統之第二說明性實施例且大 體將其指定為200。系統200包括處理器2〇2、硬體迴路控 制邏輯電路204,及迴路參數控制暫存器2〇6。硬體迴路控 制邏輯電路204可對應於圖所描繪之硬體迴路控制邏輯 電路104。迴路參數控制暫存器2〇6處所儲存之資料可對應 於圖1中所描繪之迴路控制值106,且處理器2〇2可對應於 圖1中所描繪之處理器102。 在特定實施例中,迴路參數控制暫存器2〇6包括儲存表 示待於處理器202處執行之軟體管線式迴路之開始位址的 資料之開始位址暫#器212。料參數控制暫存器2〇6亦包 括儲存對應於軟體管線式迴路之迴路計數值之迴路計數暫 存器214。迴路參數控制暫存器2〇6進一步包括储存與待於 處理器202處執行之軟體管線式迴路相關聯之述詞觸發計 數值的述詞觸發計數暫#器216。Λ體而t,迴路參數控 制暫存器206回應於自硬體控制邏輯電路2〇4所接收之控= 輸入0 141257.doc 201015431 在特定實施例中,硬體迴路控制邏輯電路204包括初始 化單元220、遞減單元222、比較單元230、偵測單元228, 及述詞改變單元234。初始化單元220可回應於在處理器 202處執行之特殊指令240。初始化單元220可經調適以判 定開始位址且設定開始位址暫存器212處之值。初始化單 元220可進一步經調適以設定遞減單元222之迴路計數器 224之初始值。初始化單元220亦可經調適以設定遞減單元 222之述詞觸發計數器226之初始值。 在特定實施例中,遞減單元222回應於偵測單元228,以 回應於來自偵測單元228之指示處理器202處之迴路反覆之 完成的控制輸入而使迴路計數器224及述詞觸發計數器226 之值遞減。詳言之,可將迴路計數器224初始化為待於處 理器202處執行之迴路指令250之反覆的總數目,且可回應 於在偵測單元228處所偵測之每一迴路反覆而使迴路計數 器224遞減。另外,可將述詞觸發計數器226初始化為對應 於完全填充軟體管線式迴路之管線以便使用來自先前級之 有效資料執行順序管線級所需的執行循環之數目的值。可 回應於由偵測單元228偵測到的迴路反覆而使述詞觸發計 數器226遞減。迴路計數器224及述詞觸發計數器226可分 別將值寫入至迴路計數暫存器214及述詞觸發計數暫存器 216,且可回應於遞減單元222之操作而更新該等各別值。 在特定實施例中,偵測單元228經組態以偵測處理器202 處之迴路結束條件。舉例而言,偵測單元228可包括用於 在處理器202處剖析具有迴路結束指示符之極長指令字 141257.doc -10· 201015431 (VLIW)封包254的剖析邏輯電路。在特定實施例中,迴路 結束指示符包括VLIW封包254内具有指定值之預定位元攔 位。當偵測到迴路結束指示符時,偵測單元228將控制輪 入提供至遞減單元222以使計數器224及226中之一者或兩 者遞減。 在特疋實施例中,比較單元230回應於述詞觸發計數暫 存器216處所儲存之值。比較單元230可包括經調適以比較 述詞觸發計數暫存器216之值與參考值且將該比較之輸出 提供至述詞改變單元234的比較器232。舉例而言,在特定 實施例中’參考值可為零,且比較單元23〇可經組態以將 零值輸出提供至述詞改變單元234直至述詞觸發計數暫存 器216具有零值或負值之前為止。在特定實施例中,比較 器232經調適以自動地識別述詞觸發計數器226自一值至零 值之轉變(諸如,經由述詞觸發計數暫存器216)。 在特定實施例中’述詞改變單元234回應於自比較單元 230所接收之控制信號,以設定或重設述詞邏輯電路處 所儲存之述詞值。舉例而言’述詞改變單元234可經組態 以將述詞邏輯電路21〇處所儲存之述詞值初始化為假條 件。當述詞改變單元234接收到來自比較單元23〇之指示述 詞觸發計數暫存器216之值等於參考值的控制輸入時,述 詞改變單元234可將述詞邏輯電路210處之述詞值設定為真 值。述詞改變單元234亦可回應於初始化單元22〇,以在執 行迴路指令之前清除述詞邏輯電路21〇處所儲存之述詞 值。 。 141257.doc 201015431 在特定實施例中,述詞邏輯電路21 〇可包括經組態以儲 存邏輯真值或邏輯假值之一或多個硬體組件。述詞邏輯電 路210可由處理器202存取以結合執行迴路指令250而使 用。 在特定實施例中,處理器202經組態以接收並執行與軟 體管線式迴路相關聯之指令。詳言之,處理器2〇2經組態 以執行可指定與後續軟體管線式迴路相關聯之初始化值及 控制值之特殊指令240。特殊指令240之初始化值及控制值 可由硬體迴路控制邏輯電路2〇4來偵測或經提供至硬體迴 路控制邏輯電路204。 乃外,處理器202經組態以接收迴路指令25〇並將其作為 軟體管線式迴路來執行❶舉例而言,處理器2〇2可經調適 以並行地(諸如,在處理器2()2之多個並列執行單元處)執行 迴路指令250中之-或多者。另外,處理器202可將迴路指 令250作為軟體管線式指令來執行,讀可在處理器2〇2處 之各種順序管線級中執行迴路指令25()之單次反覆。 ❹ 在特定實施例中,迴路指人t ^ . 、路扎7 250包括至少一有條件 仃之迴路指令252。該至少一古攸从L 轨 有條件地執行之迴路指令252 D應於述詞邏輯電路21〇處 條件。在特;6 存 詞值以判定執行之
^ & ^ ,有條件地執行之迴路指令252A 於述岡邏輯電路210處之述 基 便不儲存在將述詞值設定/「值直而有條件地儲存資料,以 而言’有條件地執行之迴路所計算之值。舉例 路指令250之當前反覆中:252可包括歸基於在迴 執仃之計算而將資料寫入至
⑷257A •12. 201015431 ❿ 記憶體(諸如,寫入至輸出暫存器(未展示))的寫入命令。 當在接收到由較早計算產生之資料之前執行寫入時,在迴 路經完全管線操作之前執行有條件地執行之迴路指令252 將會將無效資料寫入至記憶體。因此,有條件地執行之迴 路指令252之執行可取決於述詞邏輯電路21〇處所餘存之述 詞值,其中述詞邏輯電路21〇處所儲存之述詞值指示軟趙 管線式迴路之對應於迴路指令25〇之條件。為了說明,處 理器202可執行迴路指令「A=A+1」*「將a儲存至記憶 體」’但「將A儲存至記憶體」指令將儲存無效結果直至接 收到來自苐-「A=A+1」指令之資料為止。因此,可基於 最初經設定為「假,且力办士、铱 「a '「 勹作又」且在凡成第-「A=A+1」指令時改變 成「真」之述詞值而有條件地執行「將續存至記 指令。 參看圖3,描綠處理軟體管線式迴路之特定說明性實施 例且大體將其指定為3〇〇。代表性指令管線級3〇2、则、 ❿则及⑽表示軟體管線式迴路之管線級。述詞值31〇指示 經指定為「P3」且可藉由在指令管線級3〇2至扇處執行之 該等指令中之-或多者存取的述詞處之值。硬體述詞迴路 #數器3U指示對應於軟體管線式迴路之遞減計數值。針 對連續時脈循環描♦與指令管線級302至3G8中之每一者、 述詞值則及硬體述詞迴路計數器3丨2相關聯之值,連續時 脈循環在迴路開始時間週期以時脈循環i開始,且在稍接 時間週期進行至時脈循環23。在特定實施例中,每 循環對應於管線式處理器處之一執行循環。 " 141257.doc •13- 201015431 在說明性實施例中,系統·表示圖1中所描繪之處理器 1喊之迴路指令12G的執行’其中述詞值3iQ反映述詞邏 輯電路110處所儲存之述詞值’且硬體述詞迴路計數器312 對應於述㈣數器124。在另一說明性實施例中,系統则 表示圖2中所描纷之處理器202處之迴路指+ 250的執行, 其中述詞值310對應於述詞邏輯電路21〇處所儲存之述詞 值,且硬體述詞迴路計數器312對應於述詞觸發計數暫存 器216處所儲存的述詞觸發計數器226之輸出。 在特定實施例中,經由分解圖中作為迴路初始化指令 330說明之特殊指令起始軟體管線式迴路。迴路初始化指 令330包括具有形式spNL〇〇p之指令名稱334,其中「n」 具有為三之值。迴路初始化指令33〇包括包括程式迴路設 置資訊之-貝料棚位。舉例而言,迴路初始化指令3 3 〇包括 對應於軟體迴路之開始位址之第一資料搁位336。迴路初 始化扎々330亦具有對應於指示待執行之迴路之反覆的數 目之迴路a十數的第二資料欄位338。當由處理器執行迴路 初始化才曰7 330時,迴路初始化指令33〇可傳回對應於述詞 之初始化之初始值(諸如,述詞p3 332之值),其對應於述 詞值3 10。 因此,迴路初始化指令33〇可指示迴路之指令之開始位 址、迴路之反覆之數目,且可進一步藉由名稱334中之 「N」之值指示硬體述詞迴路計數器312之初始值。在所說 明之實施例中,名稱sp31〇op指示硬體述詞迴路計數器312 處為二之初始值。「N」之其他值可用於指示硬體述詞迴路 I41257.doc _ 201015431 計數器312之其他初始值。作為說明性實例,「splL〇〇p」 可指示為一之初始值,且rsp2L〇〇p」可指示為二之初始 值。可設定硬體述詞迴路計數器312之初始值以防止執行 有條件操作直至對迴路進行足夠管線操作為止。在特定實 施例中’「N」可為小於四之正整數且可指示導言計數或待 在改變述祠值310之前執行的程式迴路之迴路之數目。
在處理軟體管線式迴路初始化指令33〇之後,軟體管線 式迴路開始,將其說明為包括具有經標記為A、B、匸及〇 私7之VLIW封包。指令A、B、C&D可各自在處理器處 (諸如,在單—處理器之多個執行單元處)經並行執行。此 ^ ’指令A、B、C&D可為順序的,因為指令B可使用由 扣v A產生之資料。類似地,指令c可使用由指令a、指令 :或其任何組合產生之資料。此外#令D可使用由指令 C中之任一者或其任何組合產生之資料。指令D可 將指:每-特定迴路反覆之輸出之資料寫入至記憶體。舉 1而Q才曰令D可使用來自操作A、B及C中之每一者之結 ^執算,且可將所得值儲存至輸出暫存器。因此,在 線式迴路經完全管線操作之前不應執行指令〇,以 更在指令D之前順序地執行指令A、Eg中之每_者以確 保至指令; 輸入由有效值組成。可在完全填充軟體管線 迴二m序地執行之指令大體經指定為導言32。。軟體管線 322執行之部分(在該部分中管線係滿的)經指定為核心 執行敕^管線迴路之部分(在該部分中,第一指令之最終 '疋成但其他管線指令尚未執行)大體被稱作結尾 ^1257^00 -15- 201015431 324 〇 如所說明,在時脈循環一,冑為「三」之初始值儲存於 硬體述闺迴路計數器312處。類似地,將述詞值初 始化為假值。軟體迴路自針對迴路之第—反覆的指令Α之 執行開始。指令B、C及D亦可與A並行執行,如將在核心 部分322中執行;然而’因為指令B、C及D可視自先前指 令輸出之資料而定,所以在時脈循環-中指令B、€及〇之 结果可係無效的。另外,當指令d包括用於將資料儲存於 記,體處之寫入指令時,在待寫入之資料為指示第一循環 之指令A、8及(:之輪出的有效資料之前不應執行指令d。 因此·可基於述值3 i 〇而有條件地執行指令D,將其說明 為指示特定時脈循環中的指令之不執行的管線級之陰影 化。因為述詞值31〇為假,所以不執行第四指令管線級则 中之有條件寫入指令D。 繼續至時脈循環=,指令B接收來自指令A之輸出且針 對:路之第-反覆而執行,其經指示為B⑴。類似地,使 I 路之'二反覆相關聯之資料執行指令A,其經指示 :眘料;I:可執仃“。及〇,然而,可能歸因於對先前指令 性而未界定輸入值及因此指令⑽中之每- ,數「所說明,在時脈循環2中,將硬體述詞迴路 什數器自為「三」之值遞減至為「二」之值,且述詞值 3管1mr因為述詞值31G為假,所以不執行第四指令 管線級308中之有條件寫入指令D。 繼續至時脈循環三,對應於迴路之第—反覆執行第三指 141257.doc -16 - 201015431 令管線級306處之指令C »對應於迴路之第二反覆在第二指 令管線級304處執行指令B,且對應於迴路之 一指令管線級302處執行指令將硬體述詞迴路計數器 312自為「二」之值遞減至為「一」之值,且述詞值31〇保 持為假。因為述詞值310為假,戶斤以不執行有條件寫入指 令D 〇 ❿ 在時脈循環四,軟體迴路之導言部分32〇已結束且核心 部分322已開始。大體而言,在核心部分322中,軟體管線 已經填充且指令管線級302至则中之每—者對有效資料進 仃操作。將硬體述詞迴路計數器312遞減至值「零」,其指 示管線係滿的且導言級302結束。回應於等於「零」之^ 計數器312,將述詞㈣。設定為真條件。在特 財,由録“崎㈣料特之值與 來設定述詞值⑽。 圖2中所料之比較器232) 部四至時脈循環二十,迴路保持在執行之核心 以順序次序執行:持為滿的且所有管線級302至3°8 0 Λ ^ a 7 u適應該等指令之間的資料相依性。 因為述同值310評估為真, 脈循環二十期纟$脈#環四且繼續至時 二十一,1^執行包括指令D之所有指令。在時脈播環 對所有二it:24開始:其…管線級3°2己完成針 3〇6及3〇8繼續處執:令A,但剩餘管線級烟、 舉例而t^與軟體迴路之先前反覆相關聯之指令。 時脈循環二十-,指令B之執行對應於反覆 141257.doc 17- 201015431 20,指令C之執行對應於反覆19,且指令D之執行對應於 反覆1 8。因此,在時脈循環二十一,執行指令B、C及D但 不執行指令A。在時脈循環二十二,執行指令C及D,但不 執行指令A及B。在時脈循環二十三,執行指令D以完成迴 路之最後反覆。 如所說明,可使用包括指令A、B ' C及D之單一 VLIW封 包執行導言部分320及核心部分322,其中指令D之執行基 於述詞值P3 310而為有條件的,且包括迴路結束指示符(其 經表示為「{A, B, C, if (P3) D} :endloop」)。因此,在導 言部分320與核心部分322兩者中執行核心程式碼(亦即, 包括指令A、B ' C及D之VLIW封包)。當在結尾部分324期 間排空管線時,可使用結尾VLIW封包,諸如:{NOP, B, C,D}、{NOP, NOP, C,D}及{NOP, NOP, NOP, D},其中 NOP指示特定執行單元處無操作。該等結尾指令確保當超 出最後迴路反覆而執行時較早管線指令不會存取記憶體之 未經授權之部分。然而,在另一實施例中,當可在迴路邊 界外部安全地存取一或多個輸入資料源時(諸如,可在時 脈循環21、22及23藉由指令A安全地執行之額外記憶體讀 取操作),結尾部分322可替代地執行核心指令。 針對導言部分320及核心部分322使用單一 VLIW封包使 得能夠使用比執行特殊導言指令以填充管線之情況下少之 記憶體來執行軟體迴路。藉由初始化硬體述詞迴路計數器 並使其遞減以對應於導言部分320期間之非零值及核心部 分322處之零值(當迴路經完全管線操作時),可設定述詞值 141257.doc •18· 201015431 .3舰將有條件地執行之資料相依指令(諸如’指令D)的執 .行限制至核心(當管線滿時)。可結合心之處理器1〇2使用 述詞邏輯電路no及述詞計數器124來執行該軟體管線式迴 路處理’或猎由結合圖2中所料之處理器加使用述詞邏 輯電路2Π)、述詞觸發計數器以及述詞觸發計數暫存器 216來執行該軟體管線式迴路處理。 參看圖4,騎迴路控制方法之第—說明性實施例之流 程圖且大體將其指^為侧。在特定實施例中,可使用圖i 及圖2中所描繪之系統中之一或多者來執行處理迴路中之 指令集合之方法400。在4()2處’在執行特㈣型之迴路指 令之後即自動地初始化述詞觸發計數器以指示在設定述詞 值之前的迴路之反覆之數目。可將該指令集合作為軟體管 線式迴路來執行,且述詞觸發計數器可基於軟體管線式迴 路之管線級之數目。在說明性實施例中,特定類型之迴路 指令為圖3中所描繪之迴路初始化指令33〇。 • 移至404,在迴路反覆期間執行該指令集合。基於該述 詞值而有條件地執行該指令集合中之該等指令中之至少一 者。舉例而言,有條件地執行之該指令集合中之該等指令 中的至少一者可基於述詞值而將資料有條件地寫入至輸出 暫存器。 繼續至406,在偵測到迴路之迴路結束指示符之後,即 自動地觸發修改述詞觸發計數器之迴路控制硬體。舉例而 言,迴路控制硬體可回應於偵測到迴路結束指示符而使述 詞觸發計數器遞減。前進至408,在偵測到迴路之迴路結 141257.doc -19- 201015431 束指示符之後,即將述詞觸發計數器與一參考相比較以判 定何時設定述詞值。在特定實施例中,該參考為零值。 在決策410處,針對述詞觸發計數器是否等於該參考作 出判定》在述詞觸發計數器不等於該參考之情況下,處理 在404處繼續,在404處,在下一個迴路反覆期間執行該指 令集合。在述詞觸發計數器等於該參考之情況下,在412 處設定述詞值,且處理返回至4〇4,在4〇4處,在下—個迴 路反覆期間執行該指令集合。 因此,可藉由初始化述詞觸發計數器且回應於述詞觸發 計數器與該參考之時而設定料來控制有條件地執行之 指令之執行。因此致能不具有單獨導言指令及核心指令之 軟體管線式迴路的執行(諸如’圖3中所描繪)且可使用圖! 及圖2中所描繪之系統來執行該軟體管線式迴路。 參看圖5,描繪迴路控制方法之第二說明性實施例之流 程圖且大體將其指定為5⑽。在特定實施例中,可使用圖丄 及圖2中所描繪之“中之—或多者來執行處理迴路指令 之方法5GG。在5G2處’在包括述詞觸發計數之特殊暫存器 中初始化迴路參數。在特定實施财,將述触初始化為 假條件4述詞觸發計數對應於軟體管線式迴路之管線深 進行至504,執行料指令。在特定實施例巾,迴路指 令包括核心程式碼但不包括導言指令。核心程式碼可包括 軟體管線式迴路之指令隹人 集合别進至5〇6,執行具有迴路 結束指不符之指令。孩s < Λ。 多至508,修改述詞觸發計數且修改 141257.doc 201015431 Ϊ = 繼續至51Q’當述詞觸發計數等於參考值時, 變影^迴路指令中之至少一者之述詞的值。
言’迴路指令可包括基於述詞而有條件地執行之 至》一指令。當將述詞觸發計數器初始化為軟體管線深 將述簡發計數遞減至等於參考值「零」可指示軟: '線式迴路之導言部分之結束及迴路之核心部分之開始 (當管線填滿時)。可因此在管線填滿之前不執行基於= :執行之有條件地執行之指令。因此,當述詞用於防止: 官線經;1夠填充之前可產生有害結果之指令之執行時,亦 可在導言中執行核心指令。 圖及圖2中所描繪之系統提供可加以執行方法⑽之系 統之實例。舉例而言’可在圖2之迴路參數控制暫存器 ^初始化迴路參數,可由遞減單元222來使迴路計數及述 巧觸發计數遞減,且可由圖2之述詞改變單元234來改變述 舌司210之值。 >看圖6為纷包括具有述詞計數器之軟體管線式迴路 硬體控制邏輯電路664之無線處理器件的特定說明性實施 例之方塊圖且大體將其指定為6〇〇。器件_包括耦接至記 體632之處理器,諸如數位信號處理器(Dsp)6i〇。具有 述巧计數益之軟體管線式迴路硬體控制邏輯電路664可包 括圖1及圖2中所描繪之系統中之一或多者且可根據圖$至 圖5中之一或多者或其任何組合而操作。在說明性實施例 中’系統600為無線電話。 圖6亦展不輕接至數位信號處理器61〇及至顯示器628之 141257.doc •21· 201015431 顯不器控制器626。寫碼器/解碼器(CODEC)634亦可耦接 至數位信號處理器6〗〇。揚聲器636及麥克風638可耦接至 CODEC 634 ^數據機mo可耦接至數位信號處理器61〇且進 一步耦接至無線天線642。 在特定實施例中,DSP 610、顯示器控制器626、記憶體 632、CODEC 634及數據機64〇包括於系統級封裝或晶片上 系統器件622中。在特定實施例中,輸入器件63〇及電源 644耦接至晶片上系統622。此外,在特定實施例中,如圖 6中所說明,顯示器628、輸入器件63〇、揚聲器636、麥克 風638、無線天線642及電源644在晶片上系統器件622之外 部。然而’每一者可耦接至晶片上系統器件622之一組件 (諸如’介面或控制器)。 在操作期間,具有述詞計數器之軟體管線式迴路硬體控 制邏輯664可用於致能數位信號處理器61〇處之有效軟體管 線式迴路處理。舉例而言,具有述詞計數器之軟體管線式 迴路硬體控制邏輯電路664可包括用於在數位信號處理器 610處偵測迴路初始化指令、迴路結束指令或迴路初始化 指令與迴路結束指令兩者之電路或器件,且可操作以藉由 控制一或多個迴路計數器(諸如,導言計數器)、一或多個 述詞或其任何組合之值來控制數位信號處理器61〇處之迴 路操作。儘管經描繪為包括於數位信號處理器61〇中,但 具有述詞計數器之軟體管線式迴路硬體控制邏輯電路664 可與一或多個處理器分離(諸如,在晶片上系統器件622之 控制部分處)。大體而言’可在具有一或多個並列管線之 141257.doc -22- 201015431 任一處理器中實施軟體管線式迴路,該一或多個並列管線 使得相同軟體迴路中之指令能夠跨越該一或多個並列管線 而執行。另外,應理解,器件600可為任何無線處理器 件,諸如,個人數位助理(PDA)、音訊播放器、網際網路 協定(ip)電話、蜂巢式電話、行動電話、膝上型電腦、筆 。己型電腦、模板電腦(template computer)、可處理軟體管 線式迴路之任何其他系統,或其任何組合。 彼等熟習此項技術者應進一步瞭解,結合本文中所揭示 之實施例所描述之各種說明性邏輯區塊、組態、模組、電 路及演算法步驟可經實施為電子硬體、電腦軟體或兩者之 組合。為了清楚地說明硬體與軟體之此互換性,上文已大 體在功能性方面描述了各種說明性組件、區塊、組態、模 組、電路及步驟。將該功能性實施為硬體還是軟體視特定 應用及強加於整個系統之設計約束而定。熟習此項技術者 可針對每一特定應用以變化之方式實施所描述之功能性, 但該等實施決策不應被解釋為會引起偏離本揭示案之範 結合本文中所揭示之實施例所描述之方法或演算法的步 驟可直接體現於硬體中、由處理器執行之軟體模組中,或 兩者之組合中。軟體模組可駐留於隨機存取記憶體 (RAM) '快閃記憶體、唯讀記憶體(R〇M)、可程式化唯讀 s己憶體(PROM)、可抹除可程式化唯讀記憶體(EpR〇M)、 電子可抹除可程式化唯讀記憶體(EEPROM)、暫存器、硬 碟、抽取式磁碟、緊密光碟唯讀記憶體((:〇劣〇^1)或此項 I41257.doc -23· 201015431 =ΓΓ何其他形式之儲存媒趙令。將例示性儲存 至處理器,以使得該處理器可自該错存媒體讀取 貝-"Γ將資訊寫入至該儲存媒體。在替代例中,儲存 :體可與處理器成一體式。處理器及储存媒體可駐留於特 殊應用積趙電路(ASIC)hASIC可駐留於計算器件或使用 者終端機巾。在替仙巾,處㈣及料㈣ 組件駐留於計算ϋ件或㈣者終端射。 ,提供所揭示之實施例之U描述以使得任何熟習此項技 術者能夠製造或使用所揭示之實施例。彼等熟習此項技術 者將顯而易見對此等實施例之各種修改,且可在不偏離本 揭不案之料之情況下將本文中所界定之原理應用於其他 實施例。因此,本揭示案不意欲限於本文中所展示之實施 例,而是應符合與如藉由以下申請專利範圍界定之原理及 新賴特徵一致的最寬可能範疇。 【圖式簡單說明】 圖1為迴路控制系統之第一說明性實施例之方塊圖; 圖2為迴路控制系統之第二說明性實施例之方塊圖; 圖3為說明軟體管線式迴路之處理的總圖; 圖4為可由圖1或圖2之迴路控制系統執行的迴路控制方 法之第一說明性實施例的流程圖; 圖5為可由圖1或圖2之迴路控制系統執行的迴路控制方 法之第二說明性實施例的流程圖;及 圖6為包括具有述詞計數器之軟體管線式迴路硬體控制 邏輯電路之無線處理器件的特定說明性實施例之方塊圖。 141257.d〇c -24- 201015431 【主要元件符號說明】 100 迴路控制系統/系統 102 處理器 104 硬體迴路控制邏輯電路 106 迴路控制值 108 述詞設定邏輯電路 110 述詞邏輯電路 120 迴路指令 122 有條件地執行之迴路指令 124 述詞計數器 200 迴路控制系統/系統 202 處理器 204 硬體迴路控制邏輯電路 206 迴路參數控制暫存器 210 述詞邏輯電路 212 開始位址暫存器 214 迴路計數暫存器 216 述詞觸發計數暫存器 220 初始化單元 222 遞減單元 224 迴路計數器 226 述詞觸發計數器 228 偵測單元 230 比較單元 141257.doc •25- 比較器 述詞改變單元 特殊指令 迴路指令 有條件地執行之迴路指令 具有迴路結束指示符之極長指令字(VLIW) 封包 糸統 指令管線級/第一指令管線級/導言級 指令管線級/第二指令管線級 指令管線級/第三指令管線級 指令管線級/第四指令管線級 述詞值 硬體述詞迴路計數器 導言/導言部分 核心/核心部分 結尾/結尾部分 迴路初始化指令 述詞P3 指令名稱 第一資料攔位 第二資料欄位 無線處理器件/器件/系統 數位信號處理器(DSP) -26- 201015431 622 626 628 630 632 634 636 638 ❿ 640 642 644 664 系統級封裝或晶片上系統器件/晶片上系統 顯示器控制器 顯示器 輸入器件 記憶體 寫碼器/解碼器(CODEC) 揚聲器 麥克風 數據機 無線天線 電源 具有述詞計數器之軟體管線式迴路硬體控 制邏輯電路/具有述詞計數器之軟體管線式 迴路硬體控制邏輯
141257.doc -27-

Claims (1)

  1. 201015431 七、申請專利範圍: 1· 一種處理一迴路中之一指令集合之方法,該方法包含: 在執行一特定類型之迴路指令之後即自動地初始化一 述詞觸發計數器以指示在設定一述詞值之前的該迴路之 反覆之一數目; 在一迴路反覆期間執行該指令集合;及 •在彳貞測到該迴路之一迴路結束指示符之後,即自動地 觸發迴路控制硬體以修改該述詞觸發計數器且比較該述 ❹ 詞觸發計數器與一參考以判定何時設定該述詞值且其中 基於》亥述值而有條件地執行該指令集合中之該等指令 中之至少一者。 2.如請求項丨之方法,其中該參考為一零值且其中該迴路 控制硬體回應於該迴路結束指#符而使該述詞觸發計數 器遞減。 /求項1之方法,其中有條件地執行之該指令集合中 •=:亥等心令中的該至少一者將資料寫入至-輸出暫存 如味求項3之方法,其中胳寸并 才曰令集合作為-軟體管線 路來執行,且其中該述詞觸發 管線式迴路之管線級之一數目。"係基於該軟體 一種處理避路指令之方法,該方法包含: 在包括一述詞觸發計數之特 數; 个节仔器中初始化迴路參 4. 5. 執行該等迴路指令; 141257.doc 201015431 執行一具有一迴路結束指示符之指令; 修改該述詞觸發計數且修改一迴路計數;及 备該述詞觸發計數等於一參考值時,改變影響該等迴 路才曰令中之至少一者之執行的一述詞之一值。 6. 如明求項5之方法,其中該等迴路指令包括核心程式碼 但該等迴路指令不包括導言指令。 7. 如請求項6之方法’其中該核心程式碼包含一軟體管線 式迴路之一指令集合。 8·如请求項5之方法
    ▼… 六蚤哼值等於零,且其中回, ;執行具有忒迴路結束指示符之該指令而使該述詞觸 計數及該迴路計數遞減。 9 ·如請求項 5 > 、、t , / ’八中該等迴路指令包括基於該述 而有條件地執行之至少一指令。 10. 如請求項9夕士、+ 之方法’其中該等迴路指令包括核心程式 但該等迴路指令不包括導言指令。 11. 一種裝置,其包含: 一述詞計數暫存器, 一初始化邏輯電路, 參數; 其用於儲存一述詞觸發計數; 其用於初始化一程式迴路之迴路
    器其用於執行該程式迴路之迴路指令且執 匕括迴路結束指示符之封包; is 物 路,其用於修改該述詞觸發計數且 式迴路之一迴路計數; 乂邏輯電路,其用於比較該述詞觸發計數與一 141257.doc -2- 201015431 考值;及 . 一邏輯電路,其用於基於該比較之一結果而改變影響 該程式迴路中之至少一指令的一述詞之—值。 12. 如請求項11之裝置,其中該初始化邏輯電路在執行該等 迴路指令之前清除該述詞。 13. —種硬體迴路控制邏輯電路,其包含: 一偵測單元,其用於偵測一程式迴路之一迴路钟束於 不符; 籲 一遞減單元,其用於使一迴路計數遞減且使—述詞觸 發計數器遞減;及 一比較單元’其用於比較該述詞觸發計數器與—參考 以判定何時設定一述詞值。 14. 如請求項13之硬體迴路控制邏輯電路,其中該程式迴路 包括基於該述詞值而有條件地執行之至少一指令。 15 · —種系統,其包含: 鲁 一硬體迴路控制邏輯電路,其包含: 债測單元’其用於债測一程式迴路之一迴路择 指示符; 、'、Q t 一遞減單元,其用於使一迴路計數遞減且使一述4 觸發計數器遞減;及 ^ 一比較單元,其用於比較該述詞觸發計數器與一參 考以判定何時設定一述詞值;及 處理器’其執行一觸發該硬體迴路控制邏輯電路 執行之特殊指令。 之 141257.doc 201015431 16. 17. 18. 19. 20. 21. 22. 23. 如清求項15之系統,其中兮拉破 、甲该特殊扣令包含一 spNloop類型 曰令’其中N為一小於四之fp粒私η廿丄 … J %四之正整數且其中Ν指示待在改變 該述詞值之前執行的該程式迴路之迴路之數目。 如請求項16之系統,其中在執行該—loop類型指令之 後’即在設定該述詞值之前計算值且殘存該等所計算 之值。 如-月求項16之系統,其中mspN1〇〇p類型指令包括一包括 程式迴路設置資訊之資料攔位。 如清求項18之系統’其中該偵測單元經組態以剖析-極 長扣令子(VLIW)封包以偵測該迴路結束指示符其中該 遞減單7L包括—用於在偵測到該迴路結束指示符時自動 地使該述詞觸發計數器遞減之計數器,且其中該比較單 儿包括一用於自動地識別該述詞觸發計數器之自一一值 至一零值之一轉變的比較器。 如明求項16之系統’其中該spN1〇〇p類型指令係結合一軟 體官線迴路應用程式來使用。 如請求項17之系統,其中該處理器為一極長指令字 (w)類型處理器’該處理器包括該硬體迴路控制邏輯 電路且其中該程式迴路中之多個指令係由該處理器並 行地執行。 如請求項18之系統,其中N識別一導言計數。 如咐求項16之系統,其中該程式迴路之至少一指令基於 該it»司值而有條件地儲存資料。 141257.doc
TW098121712A 2008-06-27 2009-06-26 Loop control system and method TW201015431A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/147,893 US20090327674A1 (en) 2008-06-27 2008-06-27 Loop Control System and Method

Publications (1)

Publication Number Publication Date
TW201015431A true TW201015431A (en) 2010-04-16

Family

ID=41306021

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098121712A TW201015431A (en) 2008-06-27 2009-06-26 Loop control system and method

Country Status (7)

Country Link
US (1) US20090327674A1 (zh)
EP (1) EP2304557A2 (zh)
JP (3) JP5536052B2 (zh)
KR (1) KR101334863B1 (zh)
CN (1) CN102067087B (zh)
TW (1) TW201015431A (zh)
WO (1) WO2009158370A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI738744B (zh) * 2016-03-23 2021-09-11 英商Arm股份有限公司 用於程式迴圈控制的設備、方法及電腦程式產品

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991985B2 (en) * 2006-12-22 2011-08-02 Broadcom Corporation System and method for implementing and utilizing a zero overhead loop
US7987347B2 (en) * 2006-12-22 2011-07-26 Broadcom Corporation System and method for implementing a zero overhead loop
JP5300294B2 (ja) * 2008-03-25 2013-09-25 パナソニック株式会社 処理装置、難読化装置、プログラムおよび集積回路
KR101645001B1 (ko) * 2009-02-18 2016-08-02 삼성전자주식회사 Vliw 명령어 생성 장치 및 그 방법과 vliw 명령어를 처리하는 vliw 프로세서 및 그 방법
EP2367102B1 (en) * 2010-02-11 2013-04-10 Nxp B.V. Computer processor and method with increased security properties
WO2013089707A1 (en) * 2011-12-14 2013-06-20 Intel Corporation System, apparatus and method for loop remainder mask instruction
WO2013089709A1 (en) * 2011-12-14 2013-06-20 Intel Corporation System, apparatus and method for generating a loop alignment count or a loop alignment mask
US9632779B2 (en) * 2011-12-19 2017-04-25 International Business Machines Corporation Instruction predication using instruction filtering
KR101991680B1 (ko) * 2012-01-25 2019-06-21 삼성전자 주식회사 소프트웨어 파이프라인된 프로그램의 하드웨어 디버깅 장치 및 방법
US9038042B2 (en) * 2012-06-29 2015-05-19 Analog Devices, Inc. Staged loop instructions
US9280344B2 (en) * 2012-09-27 2016-03-08 Texas Instruments Incorporated Repeated execution of instruction with field indicating trigger event, additional instruction, or trigger signal destination
CN103777922B (zh) * 2012-10-23 2018-05-22 亚德诺半导体集团 预测计数器
US9201828B2 (en) 2012-10-23 2015-12-01 Analog Devices, Inc. Memory interconnect network architecture for vector processor
EP2725483A3 (en) * 2012-10-23 2015-06-17 Analog Devices Global Predicate counter
US9342306B2 (en) 2012-10-23 2016-05-17 Analog Devices Global Predicate counter
US9830164B2 (en) * 2013-01-29 2017-11-28 Advanced Micro Devices, Inc. Hardware and software solutions to divergent branches in a parallel pipeline
US9633409B2 (en) * 2013-08-26 2017-04-25 Apple Inc. GPU predication
US20160019061A1 (en) * 2014-07-21 2016-01-21 Qualcomm Incorporated MANAGING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA
US9348595B1 (en) 2014-12-22 2016-05-24 Centipede Semi Ltd. Run-time code parallelization with continuous monitoring of repetitive instruction sequences
US9135015B1 (en) 2014-12-25 2015-09-15 Centipede Semi Ltd. Run-time code parallelization with monitoring of repetitive instruction sequences during branch mis-prediction
US9208066B1 (en) 2015-03-04 2015-12-08 Centipede Semi Ltd. Run-time code parallelization with approximate monitoring of instruction sequences
US10296346B2 (en) 2015-03-31 2019-05-21 Centipede Semi Ltd. Parallelized execution of instruction sequences based on pre-monitoring
US10296350B2 (en) 2015-03-31 2019-05-21 Centipede Semi Ltd. Parallelized execution of instruction sequences
US9715390B2 (en) 2015-04-19 2017-07-25 Centipede Semi Ltd. Run-time parallelization of code execution based on an approximate register-access specification
US20180060221A1 (en) * 2016-08-24 2018-03-01 Google Inc. Multi-layer test suite generation
US10248908B2 (en) * 2017-06-19 2019-04-02 Google Llc Alternative loop limits for accessing data in multi-dimensional tensors
US11614941B2 (en) * 2018-03-30 2023-03-28 Qualcomm Incorporated System and method for decoupling operations to accelerate processing of loop structures
US11520570B1 (en) * 2021-06-10 2022-12-06 Xilinx, Inc. Application-specific hardware pipeline implemented in an integrated circuit
US11954496B2 (en) * 2021-08-02 2024-04-09 Nvidia Corporation Reduced memory write requirements in a system on a chip using automatic store predication
US11693666B2 (en) * 2021-10-20 2023-07-04 Arm Limited Responding to branch misprediction for predicated-loop-terminating branch instruction
CN117250480B (zh) * 2023-11-08 2024-02-23 英诺达(成都)电子科技有限公司 组合逻辑电路的环路检测方法、装置、设备及存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452425A (en) * 1989-10-13 1995-09-19 Texas Instruments Incorporated Sequential constant generator system for indicating the last data word by using the end of loop bit having opposite digital state than other data words
JPH0863355A (ja) * 1994-08-18 1996-03-08 Mitsubishi Electric Corp プログラム制御装置及びプログラム制御方法
US5958048A (en) * 1996-08-07 1999-09-28 Elbrus International Ltd. Architectural support for software pipelining of nested loops
WO1998006038A1 (en) * 1996-08-07 1998-02-12 Sun Microsystems, Inc. Architectural support for software pipelining of loops
DE69936952T2 (de) * 1998-01-28 2008-05-21 Texas Instruments Inc., Dallas Verfahren und Vorrichtung zur Verarbeitung von Programmschleifen
US6192515B1 (en) * 1998-07-17 2001-02-20 Intel Corporation Method for software pipelining nested loops
US6598155B1 (en) * 2000-01-31 2003-07-22 Intel Corporation Method and apparatus for loop buffering digital signal processing instructions
US7302557B1 (en) * 1999-12-27 2007-11-27 Impact Technologies, Inc. Method and apparatus for modulo scheduled loop execution in a processor architecture
US6629238B1 (en) * 1999-12-29 2003-09-30 Intel Corporation Predicate controlled software pipelined loop processing with prediction of predicate writing and value prediction for use in subsequent iteration
US6754893B2 (en) * 1999-12-29 2004-06-22 Texas Instruments Incorporated Method for collapsing the prolog and epilog of software pipelined loops
US6892380B2 (en) * 1999-12-30 2005-05-10 Texas Instruments Incorporated Method for software pipelining of irregular conditional control loops
US6567895B2 (en) * 2000-05-31 2003-05-20 Texas Instruments Incorporated Loop cache memory and cache controller for pipelined microprocessors
GB2363480B (en) * 2000-06-13 2002-05-08 Siroyan Ltd Predicated execution of instructions in processors
US6615403B1 (en) * 2000-06-30 2003-09-02 Intel Corporation Compare speculation in software-pipelined loops
US6912709B2 (en) * 2000-12-29 2005-06-28 Intel Corporation Mechanism to avoid explicit prologs in software pipelined do-while loops
US6986131B2 (en) * 2002-06-18 2006-01-10 Hewlett-Packard Development Company, L.P. Method and apparatus for efficient code generation for modulo scheduled uncounted loops
US7269719B2 (en) * 2002-10-30 2007-09-11 Stmicroelectronics, Inc. Predicated execution using operand predicates
US20040221283A1 (en) * 2003-04-30 2004-11-04 Worley Christopher S. Enhanced, modulo-scheduled-loop extensions
US7020769B2 (en) * 2003-09-30 2006-03-28 Starcore, Llc Method and system for processing a loop of instructions
US7406590B2 (en) * 2004-02-25 2008-07-29 Analog Devices, Inc. Methods and apparatus for early loop bottom detection in digital signal processors
US7673294B2 (en) * 2005-01-18 2010-03-02 Texas Instruments Incorporated Mechanism for pipelining loops with irregular loop control
US7991984B2 (en) * 2005-02-17 2011-08-02 Samsung Electronics Co., Ltd. System and method for executing loops in a processor
US20060190710A1 (en) * 2005-02-24 2006-08-24 Bohuslav Rychlik Suppressing update of a branch history register by loop-ending branches
US7526633B2 (en) * 2005-03-23 2009-04-28 Qualcomm Incorporated Method and system for encoding variable length packets with variable instruction sizes
GB0524720D0 (en) * 2005-12-05 2006-01-11 Imec Inter Uni Micro Electr Ultra low power ASIP architecture II
US20070266229A1 (en) * 2006-05-10 2007-11-15 Erich Plondke Encoding hardware end loop information onto an instruction
US20080040591A1 (en) * 2006-08-11 2008-02-14 Moyer William C Method for determining branch target buffer (btb) allocation for branch instructions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI738744B (zh) * 2016-03-23 2021-09-11 英商Arm股份有限公司 用於程式迴圈控制的設備、方法及電腦程式產品

Also Published As

Publication number Publication date
US20090327674A1 (en) 2009-12-31
WO2009158370A2 (en) 2009-12-30
CN102067087A (zh) 2011-05-18
WO2009158370A3 (en) 2010-02-25
EP2304557A2 (en) 2011-04-06
JP5536052B2 (ja) 2014-07-02
KR20110034656A (ko) 2011-04-05
JP5917592B2 (ja) 2016-05-18
JP2011526045A (ja) 2011-09-29
CN102067087B (zh) 2014-04-23
JP2014170571A (ja) 2014-09-18
KR101334863B1 (ko) 2013-12-02
JP2016157463A (ja) 2016-09-01

Similar Documents

Publication Publication Date Title
TW201015431A (en) Loop control system and method
JP2011526045A5 (zh)
JP6345623B2 (ja) 条件付き非ブランチング命令の非実行を予測するための方法および機器
KR101267911B1 (ko) 인스트럭션 성능 최적화 방법 및 시스템
KR101290493B1 (ko) 선형 피드백-쉬프트 명령을 실행하기 위한 시스템 및 방법
JP5107892B2 (ja) 間接レジスタ読み取り及び書込み動作
US8843730B2 (en) Executing instruction packet with multiple instructions with same destination by performing logical operation on results of instructions and storing the result to the destination
KR100580851B1 (ko) 하드웨어 루프
KR100551544B1 (ko) 하드웨어 루프
EP3646171A1 (en) Branch prediction for fixed direction branch instructions
KR100536018B1 (ko) 하드웨어 루프
US9678754B2 (en) System and method of processing hierarchical very long instruction packets
KR100576560B1 (ko) 추측 레지스터 조정 방법 및 장치