TWI249129B - Trace buffer circuit, pipelined processor, method for assigning instruction addresses of a trace buffer and associated apparatus - Google Patents

Trace buffer circuit, pipelined processor, method for assigning instruction addresses of a trace buffer and associated apparatus Download PDF

Info

Publication number
TWI249129B
TWI249129B TW090124153A TW90124153A TWI249129B TW I249129 B TWI249129 B TW I249129B TW 090124153 A TW090124153 A TW 090124153A TW 90124153 A TW90124153 A TW 90124153A TW I249129 B TWI249129 B TW I249129B
Authority
TW
Taiwan
Prior art keywords
address
register
pair
new
bit
Prior art date
Application number
TW090124153A
Other languages
English (en)
Inventor
Ravi P Singh
Charles P Roth
Gregory A Overkamp
Original Assignee
Intel Corp
Analog Devices 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 Intel Corp, Analog Devices Inc filed Critical Intel Corp
Application granted granted Critical
Publication of TWI249129B publication Critical patent/TWI249129B/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
    • 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/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • 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/3802Instruction prefetching
    • 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/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Description

1249129 A7 _______B7 五、發明説明(2 ) MPEG標準系列不斷進展,以跟上持續增加的多媒體應用 及檔案頻寬需求。每個新版本的標準均提出更精密的演算 法’使MPEG相符視訊處理設備中使用的DSp需要更多的處理 需求。 視訊處理設備製造商通常依賴針對依據胛阢和Η· 263標 準之視訊編碼所自訂的專用積體電路(applicati〇n -specific integrated circuits ; ASICs)。 一 但疋,JrDSP相比,ASIC的設計更複雜,生產成本更高,1 並且應用彈性更低。 圖式簡單說明 ’- 只要詳讀下文中詳細說明並參考隨附的圖式,將可明白 本發明的這些及其他目的及優點。 圖1顯示利用根據一項具體實施例之處理器之行動視訊 裝置的方塊圖。 ' 圖2顯示根據一項具體實施例之信號處理系統的方塊圖。j 圖3顯示根據一項具體實施例之另一種信號處理系統的 方塊圖。 圖4顯示圖1所示之根據一項具體實施例之處理器之示範 性管線階的圖式。 圖5顯示根據一項具體實施例之追蹤緩衝器的方塊圖。 圖6顯^圖5所示之根據一項具體實施之追蹤緩衝器的壓1 縮作業流呈圖。 圖了顯示/圖5所示之根據一項具體實施之追縱緩衝器的有二 效位元緩衝器方塊圖。 -5- 本紙張尺度適用中國國家樣準(CNS) A4規格(210 X 297公釐) @090124153號專利申請案 中文說明書替換頁(94年3月) 3. 2 5
煩讀委1: .1: 所提之 洋細說明 圖1顯示包括根據一項具體實施之追蹤緩衝器15〇的行動 視訊裝置100。行動視訊裝置100可能是一種攜帶型裝置, 用以顯示從天線105或數位視訊儲存媒體12〇(例如數位視 訊光碟(digital video disc ; D VD)或記憶卡)接收到之已編輯 視彳„號所產生的視訊影像。處理器丨1 〇與快取記憶體u $ 通訊,其中快取記憶體可儲存供處理器作業使用的指令及 資料。處理器}…可能是微處理器、數位信號處理器(Dsp) 、控制受控DSP的微處理器或是具有混合微處理器/Dsp架 構的處理器。基於此份說明書目的,下文中將處理器ιι〇 稱為 DSP110。 DSP 11〇可執行關於已編碼視訊信號的各種作業,例如 ,包括類比轉數位轉換、解調變、濾波、資料復原及解碼 。DSP 11〇可依據各種數位祝訊壓縮標準(如MpEG標準系 列及H.263標準)的一種標準來解碼已壓縮數位視訊信號。 然後,可將已解碼視訊信號輸入至顯示器驅動器13〇,以在 顯示器125上產生視訊影像。 攜帶型裝置通常具有有限的電源供應。再者,視訊解碼 作業屬於計算密集型作業。因此,在此類裝置中使用之處 理器的優點為是一種相當高速且低功率裝置。 、DSP 110可能具有深層的管線化、載入/儲存架構。相對 於非言線化DSP,藉由採用管線化可增強Dsp的性能。管 線化DSP 110的作業方式不是擷取第一指令、執行第一指^ 並且接絲取第:彳旨令,而是可在執行第—指令時同時掏 -6 - 1249129 A7
1249129
理功能上文提及預先處理功能。這些裝置的任何適當組態 配置均可輪合至具有DSP 110的信號處理系統2〇〇。 圖3顯示根據另一項具體實施例的信號處理系統3〇〇。在 廷個具體實施例中,數位接收器302可被排列,以接收一個 或個以上數位信號,並將接收到的數位信號轉遞至Dsp 110。如同圖2所示的具體實施例,DSP110可對接收到的數 位信號執行所要的信號轉換,產生一個或一個以上輸出數〜 位信號。數—位信號發射器304可被耦合,以接收輸出數位信’ 唬。在一項示範性應用中,信號處理系統300是一種數位音 訊裝置,其中數位接收器302將信號轉遞至j^p丨,該信 號是儲存在數位儲存裝置12〇上之資料的數位指示。然後, DSP 110可處理數位信號,並將產生的輸出數位信號轉遞至 數位發射器204。然後,數位發射器204可使輸出數位信號 值傳輸至顯示器驅動器13〇,以在顯示器125上產生視訊影: 像。 - 圖4所示的管線可包括八階,每階均可包括指令擷取〜 402至403、解碼404、位址計算405、執行406至408及寫回 409階。可在一個時脈週期期間擷取指令丨,然後在後續時 脈週期期間運算並執行指令i,並且同時擷取新指令例如, i + Ι及 i+2。 責、、泉"itH會引出額外的協調問題,並且會影響處理器性 能。程式^流程中的跳躍點(Jumps)會在管線中產生空插槽一: (empty sLot)或「泡泡」。引發發生執行條件分支或產生,二 例外狀況或中斷的情況會改變指令的連續流程。發生此類 -8 -本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公董) 1249129
晴;兄之後,必須在連線程式流程外部擷取指令,使管線中 的其餘指令變成毫無關係。在管線中可採用如資料轉遞、 動態分支預測及組合有效位元與指令位址之類的方法,以 應付這些複雜度。 追蹤緩衝器可儲存處理器的程式計數器(程式流程)資訊 。追蹤緩衝器可當作除錯工具使用,以重新建立程式於執 行期間採取的路徑。當執行程式時,某些指令合產生非預 期事件。3C-類非預期事件會引發程式流程中斷。例如,此 類的事件包括依據系統中另一個裝置觸發的結果或中斷的 動怨分支。這些事件難以從靜態分析程式碼澦測。追蹤緩 衝器中的執行指令記錄(追蹤資料)可用來決定在執行程式 碼過程中於何時發生意外的事件,以及是什麼觸發這個事 件。 了 追縱緩衝器150(圖1)可經由寫入匯流排152連接至DSP 110。追蹤緩衝器15〇可在一連串互相連接的暫存器中儲存 已揭取之指令的位址。儲存的位址可從追縱緩衝器15 〇讀取 至璜取匯流排156上的追縱記憶體154。追蹤記憶體154可能 是DSP的内部或外部記憶體。 圖5顯示根據一項具體實施例之追蹤緩衝器5〇〇的結構。 追縱緩衝器500可在串聯的三十二個32位元追蹤緩衝器暫 存器(以timf. 0至tbuf. 31標示)中儲存32位元指令位址,每 個暫存器!均具有相關的輸入多工器(MUX) 505。根據一項具 體實施,追蹤緩衝器150可具有6 4位元窝入匯流排152(圖1) 及32位元讀取匯流排156。 -9- 本成張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1249129 A7 --------------B7 五、發明説明(7 ) 會連續執订心式碼,直到發生事件(如發生分支或中斷) 而成程式计數器(pC)跳躍至程式碼中的另一個位置。由 於此颏跳躍事件之間的程式碼是連續的,所以可從跳躍事 件口己錄重新建構孝王式流程。為了減少追縱緩衝器所需的記 憶體及其作業速度,追蹤緩衝器只能儲存使程式跳躍或中 斷的扣々位址,例如,分支指令、例外狀況、中斷及分支 目標位址。 分支可_處是程式流程中中的常見跳躍事件。每個分支均’ 可能以一對位址分支目標位址及分支來源位址)識別。分支 目標位址可能是分支指令集中的第一指令位址,而分支來 源位址是產生程式流程中斷之指令或最後完成之指令的位 址。 追蹤緩衝器150可當作寫入作業的先進先出(FIF〇)暫存 器。分支的分支目標位址及分支來源位址可當作一個Μ位 元孚組同時寫入至64位元寫入匯流排152上的追縱緩衝器 。分支目標位址可儲存在暫存器510(&pCc〇m標示,其連 接至tbuf.O)中’而分支來源位址可儲存在暫存器以 pc.hold標示’其連接至tbuf· 1)中。當將pc.c〇m暫存器 510中的分支目標位址寫入至tbuf · 0時,則可能會沿著窝入 路徑514將目前儲存在tbuf. 0中的分支目標位址(若有的 話)移位i-tbuf· 2。同時,當將pc· ho Id暫存器5 12中的分支、 來源位址^寫入至tbuf· 1時,則可能會沿著寫入路徑5 16將二: 目前儲存在tbuf. 1中的分支來源位址(若有的話)移位至二 tbuf · 3。在後續的寫入作業中,可將tbuf · 〇中的分支目標 -10-本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1249129 A7 t 一 ____B7 _' 五、發明説明(Q ) 〇 位址移位至tbuf, 2,並且將tbuf. 2中的分支目標位址移位 至tbuf· 4。類似的移位發生於將tbuf. 1中的分支來源位址 移位至tbuf· 3,並且將tbuf· 3中的分支來源位址移位至 tbuf · 5。類似的移位會發生於其他的追蹤緩衝器暫存器, 即,於每個寫入週期期間,可將追蹤緩衝器暫存器中的每 個指令位址順流移位兩個暫存器。 追蹤緩衝器可當作讀取作業的後進先出(LIF0)暫存器。 由於須取7麗流排15 6的寬度為3 2位元,因此可能會個別讀取^ 32位元分支目標位址及分支來源位址,而不是當作一對β 當讀取tbuf· 0中的位址時,可沿著讀取路徑520將tbuf. 1 . 中的位址向左(逆流)移位至tbuf· 0。同樣地,會將其他暫 存器中的位址逆流移位一個暫存器。類似的移位會發生於 其他的追縱緩衝器暫存器,即,於每個讀取週期期間,可 將追縱緩衝器暫存器中的每個指令位址逆流移位一個暫存 當追蹤緩衝器150全滿時(即,已填 ,則追縱緩衝器可觸發追縱緩衝器全滿例外狀況。可將例 外狀況傳輸至例外處理常式(ExCepti〇n Handler),由例外 處理常式決定當作追蹤緩衝器例外狀況的例外狀況,並且 起始讀取作業,使追蹤緩衝器15〇中的内容流入追蹤記憶體 154_。當議取追蹤緩衝器150時,例外處理常式還可中止程_ 式流程,一以防止遺失追蹤資訊。追蹤緩衝器可在記憶體對二 應讀取(memory map read ; MMR)作業中進行讀取,其中會: 將從tbuf· 0讀出的每個位址儲存至為追蹤緩衝器15〇内容 -11 - 本紙張尺度適用中國國家標準(CMS) A4規格(210 X 297公董) 1249129 A7
明確配置的記憶體區域中。 根據另—項具體實施例,當追蹤緩衝器150全滿時,追縱 緩衝器不會觸發追蹤緩衝器全滿例外狀況。而是,追縱緩 衝器150(當作FIFO暫存器運作)可丢棄位於追縱緩衝器底 端的位址’即,可將位址移離tbuf. 3〇及tbuf. 31。 為了進一步保存追蹤緩衝器資源,並且進而改良性能等 級及追蹤緩衝器150可運作的速度,可提供追蹤程式碼壓縮 結構。程式流程可包括軟體及硬體迴路,以迅速填滿追蹤, 緩衝器、增加讀取作業頻率,進而減緩追蹤蒐集性能。當 在η週期迴路時,會重複儲存分支目標/来源捡址對^次,因 此無法提供有關程式流程的重要資訊。因此,可能希望壓 縮重複的目標/來源位址對。 追縱緩衝器150可能具有處理第一級壓縮及第二級壓縮 的能力,其中第一級壓縮可能被任何迴路觸發,而第二級_ 壓縮可被包含巢狀内部迴路的迴路觸發。圖6顯示用以說明 包含第一級壓縮及第二級壓縮之作業6〇〇的流程圖。下列的 說明僅僅是實施作業600的一項具體實施例。在其他具體實 施例中,狀態可能被略過或以不同順序執行。 當新分支目標認可時,可將分支目標/來源位址對分別儲 存至pc· com和pc· hold暫存器中,並且作業600可返回狀態 602。如果?(:.(:〇111和1)^〇1(1暫存器中的位址對是新位址對一-,則於版態604,可使用第一級比較器500來比較新位址對 與tbuf · 0及tbuf · 1中儲存的位址對。 - 根據一項具體實施例,指令位址可具有16位元界限。因 ---- -12- 本泜張尺度適用中國國家漂準(CNS) Α4規格(210 X 297公董) 1249129 A7 _______B7____ , 五、發明説明( ) 10 ’ 此’指令位址的最低有效位元(LSB)可能是零(0),因此沒 有提供有用的資訊。因此,在比較新位址對與tbuf. 0及
tbuf · 1中儲存的位址對時,可能不會考慮指令位址的LSB 〇 根據一項具體實施例,tbuf. 0中之分支目標位址的LSB 可用來標示第一級壓縮。如果位址對相符,則可壓縮tbuf. 0 及tbuf· 1中儲存的位址對,其方式是在狀態6〇6中,將 — tbuf· 0中二分支目標位址的LSB(其通常是零(0))設定為壹, (1)。在此情況下,不會將新位址對寫入至追蹤緩衝器。 如果於狀態608中決定不啟動第二級壓’縮,-並且新位址對 與儲存的位址對不相符,則於狀態61 〇,可能會將新位址對 寫入至 tbuf. 0及 tbuf. 1 〇 如果於狀態6 0 8中決定啟動第二級壓:縮,並且新位址對與 儲存的位址對不相符,則於狀態612,可能會可使用第二級 比較器552來比較pc· com和pc· hold中的新位址對與tbuf. 2 及tbuf · 3中儲存的位址對。如果新位址對與tbuf. 2及 tbuf· 3中儲存的位址對相符,則於狀態614,將tbuf. 3中分 支來源位址的LSB設定為壹(1)。在此情況下,不會將新位 址對寫入至追縱緩衝器。 如果新位址對與tbuf · 2及tbuf · 3中儲存的位址對不相符 ’則於狀·態610,將新位址對寫入至追蹤緩衝器。 κ 實例1顳示示範性第一級壓縮作業。 指令位址 指令 0x2000 11 -13 - 本紙张尺度適用中國國家標準(CMS) A4規格(210 X 297公釐)
% π
1249129 A7 B7
五、發明説明(11
實例1^的程式流程包括循環迴路,其中包括位於指令 位址0x2Gla(分支來源位址)的分支,用以分支到位於指:= 位址0x2002 (分支目標位址)的指令12,直到迴路逾時:二 旦迴路逾時’則PC不再屬於迴路範圍内,,而跳至位於指令 位址0x200c的指令15。 在迴路第一次遞迴之後,tbuf.O包含指令谇址〇χ2〇〇2 (分支目標位址),而tbuf· 1包含指令位址〇x2〇〇a (分支來源 位址)。在迴路第二次遞迴時,第一級比較器55〇比較新目: 才承/來源位址對與tbuf. 0和tbuf· 1中儲存的位址對 (0x2002, 0x200a),而忽略位址的LSB。由於新位址對與儲 存的位址對相符,所以不會將新位址對寫入至· 〇及 tbuf· 1,並且將tbuf. 0中分支目標位址的LSB設定為壹(1) 。設定將分支目標位址LSB的值從0x2002變更為〇χ2〇〇3。 在迴路第三次遞迴時,第一級比較器550比較新位址對 (0x2002; —·0x200a)與 tbuf· 0 和 tbuf· 1 中儲存的位址對一 (0x2003厂0x200a),而忽略位址的LSB。由於位址對相符, 所以不會將pc· com和pc. ho Id暫存器中的新位址對寫入至一 tbuf. 0和tbuf· 1中,並且會維持tbuf. 0和tbuf· 1中的位址 -14 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 1249129 A7 —-B7 五、發明説明(12 ) 對(0x2003, 0x200a) 0 實例2顯示示範二紐厭給祚業。 . ~—----- --- ------- 指令位址 指令_ 0x2000 11 0x2002 12 0x2006 13 0x2008 如果迴路未逾時,則分支至12 0x200a 14 0x200c 15 0x2010 如果迴路未逾時,則分支至11 0x2014 16 實例2中的程式流程包括循環外部迴路,其中包括位於指 令位址0x2010的分支,用以分支到位於指令位址〇χ2〇〇〇的 指令II,以及包括内部迴路,其中包括位於指令位址 的分支’用以分支到位於指令位址〇 χ 2 〇 〇 2的指令I 2。 在迴路第一次内部遞迴之後,tbuf. 〇包含指令位址 0x2002 (分支目標位址),而tbuf·丨包含指令位址〇x2〇〇a (分支來源位址)。如上文參考實例1的說明,在迴路第二 次内部遞迴中發生第一級壓縮,並且將七以^ 〇中分支目標 位址(即i〇x2002)設定為壹0x2003。 零- 一旦t部迴路逾時,則PC不再屬於迴路範圍内,而跳至孑丄 位於指令位址0x200a的指令14,直到它遇到位於指令位址 一 0x2010的分支指令而返回指令II。在外部迴路第一次遞迴 -15- 本紙張尺度適用中國國家標準(CNS) A4规格(21〇 x 297公釐) 1249129 A7 B7
時,會將外部迴路的分支目標位址對(即,〇χ2〇〇〇)寫入至 tbuf.O,而將外部迴路的分支來源位址對(即,寫 入至tbuf· 1,並且將tbuf· 0和tbuf· 1中的位址對(0χ2〇〇3 0x2008)移位至tbuf· 2和tbuf· 3。在外部迴路第二次遞迴時 會遇到第二次内部迴路,發生第二級壓縮。於狀態6〇4(圖 6),第一級比較器550比較新位址對與tbuf· 〇和tbuf·丨中儲 存的位址對(0x2000, 0x20 1 0)。由於這些位址對不相符,所 以接著菸—狀態612,第二級比較器552比較新位址對,_ (0x2002, 0x2008)與tbuf· 2和tbuf. 3中儲存的位址對 (0x2003,0x2008),而忽略LSB。由於這座位—址對相符,所 以不會將新位址對寫入至tbuf· 0和tbuf· 1。第二級壓縮的 標示方式是將tbuf · 3中來源位址的LSB從零(〇)設定為壹 (1) ’將儲存的指令位址值從0x2008變更為〇χ2〇〇9β 在外部迴路第二次遞迴時,於外部迴路發生第一級壓縮 。第一級比較器550比較新位址對(〇χ2〇〇〇, 〇χ2〇ι〇)與 tbuf. 0和tbuf· 1中儲存的位址對(〇X2〇〇〇,ΟΧ2〇ι〇),而忽 略位址的LSB。由於新位址對與儲存的位址對相符,所以不 會將新位址對寫入至tbuf· 0及tbuf· 1,並且將tbuf. 0中分 支目標位址的LSB設定為壹(1),將儲存的指令位址值從 0x2000 變更為 0x2001。 當關機r後重新啟動DSP 110時(即,開機重置),追縱緩衝,-器15 0可舍有將DSP 110關機之細執行的程式流程留下的無士二 效指令位址。根據一項具體實施例,追縱緩衝器中的每個 一 指令位址均具有相關的1位元有效位元。有效位元分別使用 -16 - 本紙張尺度適用中國國家樣準(CNS) A4規格(210X297公釐) 1249129 A7 r___ B7 五、發明説明(14~) " ΗIGH或LOW值來標示追縱緩衝器15〇中的指令位址是否對目 前的程式流程有效。如果指令位址無效,則在讀取作業時 不會將無效指令位址窝入至追蹤記憶體154。 圖7顯示有效位元緩衝器7〇〇,可用來追蹤與追蹤緩衝器 15 0中的指令位址相關的有效位元。有效位元緩衝器7 〇 〇的 結構可與可追蹤緩衝器15〇的結構平行,其包括三十二個1 位元正反器(FF)(以vbuf· 0至vbuf. 31標示),每個有效位元 緩衝器均有相關的輸入MUX 70 5。每個有效位元緩衝器的, 輸入MUX 70 5均可包括重置閘極710。在開機重置時,可將 每個有效位元緩衝器FF中的有效位元重談為·零(〇),以標示 追縱緩衝器15 0中對應的指令位址無效。 有效位元緩衝器的作業也可平行於追縱緩衝器的作業。 關於寫入作業,可將對應於pC· com暫存器中分支目標位 址的有效位元從FF 712轉遞至vbuf· 0,並且將對應於 pc· ho Id暫存器5 12中分支來源位址的有效位元從jrjT 7 η轉 遞至vbuf· 1。和追蹤緩衝器150—樣,針對寫入作業,可沿 著寫入路徑714將有效位元移位兩個FF,以及針對讀取作業 ’可沿著讀取路徑716將有效位元移位一個f。針對從 vbuf. 0漬取的每個有效位元’可由有效位元產生器mo將具 有LOW值的1位元有效位元寫入至vbuf· 31 ,以取代移位至 vbuf. 30蛑有效位元。 ,· 一種根·據各種具體實施例之追蹤緩衝器的優點在於,當$ 在程式流程中捕捉所有變化時可產生精確的例外狀況。另 外,與只有FIFO或只有LIFO結構之追蹤緩衝器所需的多工 -17- 本紙紅度適财S g t料(CNS) A4規格(21GX 297公I) ---— 1249129 A7 B7 五、發明説明(μ ) I 〇 功能相比,追蹤緩衝器的FIFO/LIFO組結可需要較少的多工 功能,藉此減少晶片上追蹤緩衝器150的空間及功率需求。 已說明本發明的一些具體實施例。但是,應明白可進行 各種變更及修改,而不會脫離本發明廣大的精神及範疇。 例如,具有32位元以外(例如,16位元或64位元)寬度的指 令位址可使用具有適當按比例調整之追蹤緩衝器暫存器及 讀取和窝入匯流排的追蹤緩衝器來追蹤。因此,其他的具 體實施例^屬下列申請專利範圍的範疇内。
-18-
線 本泜張尺度適用中國國家樣準(CNS) Α4規洛(210 X 297公釐)

Claims (1)

  1. '6 1249129 ί.ΐτ 琢 '月 3 ϋ. 原説明書 $090124153號專利申請案L _ A8 文申清專利範圍替換本(94年i〇月、C8 、申請專利範園 L 一種追蹤緩衝器電路,包括·· 複數個互相連接的暫存器,其包括一用以輸入和輸出 ^追縱運算之擷取指令之位址的第一末端暫存器、一 第一末端暫存器,以及位於該第一末端暫存器與該第二 末‘暫存器之間的複數個中間暫存器,· 窝入路徑,用以在一窝入作業時,將該等複數個互 相連接之暫存器的一個暫存器中的指令位址往該第二 末‘暫存器方向移位兩個暫存器; 一第一保存暫存器; 一第二保存暫存器; 一第一比較器,用以比較該第一保存暫存器中與一迴 路有關的一新分支目標位址與該第一末端暫存器中儲 存的分支目標位址; 一第二比較器,用以比較該第二保存暫存器中與該迴 路有關的一新分支來源位址與一第一鄰接暫存器中儲 存的分支來源位址,該第一鄰接暫存器係連接至位於該 讀取路徑上的該第一末端暫存器;以及 -比較指示電路,用以產生一比較指示器,以響應該 新分支目標位址符合該儲存分支目標位址,以及該新分 支來源位址符合該儲存分支來源位址。 2. 如申請專利範圍第1項之電路,該電路進一步包括· 一讀取路徑’用以在一讀取作業時,將該指=位址往 該第一末端暫存器方向移位一個暫存器。 3. 如申請專利範圍第i項之電路’其中該追蹤緩衝器電路 小 73993-941012.doc 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 124912^ 年月 、^止替換頁; A8 B8 C8 mo
    系^作寫入作業的先進先出(first-in first-out ; FIFO) 暫存器及一讀取作業的後進先出(last-in first-out ; LIFO)暫存器運作。 4·如申請專利範圍第1項之電路,其中該指令位址包括32 位元字組。 5·如申請專利範圍第4項之電路,其中該第一末端暫存器 、孩第二末端暫存器及該等複數個互相連接之暫存器都 包含一 32位元暫存器。 6.如申請專利範圍第5項之電路,其中該等複數個互相連 接之暫存器都包含三十二個暫存器。 7_如申請專利範圍第5項之電路,該電路進一步包括: 一 64位70窝入匯流排,用以在寫入作業時,將一 64 位το位址對寫入該第一末端暫存器與一鄰接暫存器中 ;以及 一 3 2位元讀取匯流排,用以在讀取作業時,從該第一 末端暫存器讀取一 32位元指令位址。 8·如申請專利範圍第丨項之電路,其中該比較指示電路運 作以設足該儲存分支目標位址的一最低有效位元,以響 應該新分支目標位址符合該儲存分支目標位址,以及該 新分支來源位址符合該儲存分支來源位址。 9.如申請專利範圍第1項之電路,該電路進一步包括: 一第二鄰接暫存器,其在該等複數個暫存器之中,該 第二鄰接暫存器係連接至位於該讀取路徑上的該第一 鄰接暫存器; 73993-941012.doc 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1249 3 θ修_正替換買 、申請專利範圍 _ —第三鄰接暫存器,其在該等複數㈣存器之中,_ 乐二鄰接暫存器係連接至位於該讀取路徑上二 鄰接暫存器; 、μ昂一 、-第三比較器,用以比較該第一保存暫存器中 为支目標位址與該第二鄰接暫存器中儲存的分支目芦 位址;以及 不 -第四比較H,用以比較該第二保存暫存器中的—新 2來源位址與該第三鄰接暫存器中儲存的分支來源 ,中該比較指.示電路運作以產生一比較指示器,以響 t該新分支目標位址符合該第二鄰接暫存器中儲存二 分支目標位址’以及該新分支來源位址符合該第三鄰接 暫存器中儲存的分支來源位址。 10·如申請專利範園第9項之電路,其中該比較指示電路運 設定該第三鄰接暫存器中儲存的分支來源位址的 :最低有效位元,以響應該新分支目標位址符合該第二 鄰接暫存器中儲存的儲存分支目標位址,以及該新分支 來源位址符合該第三鄰接暫存器中儲存的儲存分支來 源址。 11 ·如申請專利範圍第i項之電路,該電路進一步包括一有 效位元緩衝器,該有效位元緩衝器包括: 第一末端正反器,用以從該有效位元緩衝器輸入及 輸出有效位元; 一第二末端正反器; 73993-9410i2.doc 本紙張尺^?iii^(CNS) (靡297公楚)_ 1249129 9i L; :,. . / A8 B8 1 』C8 _ D8 穴、申清專利範園 複數個互相連接的第二正反器,其連接在該第一末端 正反器與該第二末端正反器之間; —窝入路徑,用以在一窝入作業時,將該等複數個互 相連接之正反器的一個正反器中的一有效位元往—順 流正反移位兩個正反器;以及 ,一讀取路徑,用以在一讀取作業時,將該有效位元往 逆流正反器方向移位一個正反器。 12· —種管線化處理器,包括·· 一追蹤緩衝器電路,包含: 複數個互相連接的暫存器,其包括一用以輸入和輸 出在一追縱運算之擷取指令之位址的第一末端暫存 器、一第一末端暫存器,以及位於該第一末端暫存器 與忒第二末端暫存器之間的複數個中間暫存器; 一寫入路徑,用以在一寫入作業時,將該等複數個 互相連接之暫存器的一個暫存器中的指令位址往該 第二末端暫存器方向移位兩個暫存器;以及 乂 一讀取路徑,用以在一讀取作業時,將該指令位址 往该第一末端暫存器方向移位一個暫存器。 13·如申請專利範圍第12項之處理器,其中該追蹤緩衝器電 路係當作一寫入作業的先進先出(first_in first_〇ut ; FIFO)暫存器及一讀取作業的後進先出(iast_in ;LIFO)暫存器運作。 14·如申請專利範圍第12項之處理器,其中該指令位址包括 32位元字組。 73993-941012.doc , -4 - 張尺度適用中國國家標準(^NS) Μ規格^_χ 29ϋ-----
    ' 專利範圍第14項之處理器,其中該第一末端暫存 詻、孩第二末端暫存器及該等複數個互相連 都包含-32位元暫存器。 $存益 6·如申清專利範圍第15項之處理器,該處理器進一步包括 、64位兀窝入匯流排,用以在寫入作業時,將一 64 位7L位址對窝入該第一末端暫存器與一鄰接暫存 ;以及 肀 一 32位元讀取匯流排,用以在讀取作業時,從該第— 末端暫存器讀取一 32位元指令位址。 17··^對於n緩衝器指定指令位址之方法,該追縱緩 衝崧係用於在一程式流程中致能硬體與軟體迴路之: 壓縮,該方法包含: 人執行一追蹤運算,包括在一追蹤緩衝器中儲存擷取指 令,孩儲存步驟包括儲存對應於該追蹤緩衝器中一迴路 之一位址對;以及 執行一壓縮運算,包括: 比較儲存於該追蹤緩衝器中之該位址對與_新位址 對;以及 設定存於該追蹤緩衝器之該位址對中之一位址的最 低有效位元,以響應該新位址對符合存於該追蹤緩衝器 之該儲存位址對。 18·如申請專利範圍第17項之方法,該方法進一步包括: 丟棄忒新位址對,以響應該新位址對符合該儲存位址 73993-941012.doc . 5 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210X297公釐).-- 1249129 μ队 i 7 * ·:^ -Α8 、s:—… ( B8 · 斯〜------- > η~:~— 、———〜—S 穴、申請專利範圍 ~ ----- 對。 19·如申請專利範園第17項之方法,該方法進一步包括: 在一第一對暫存器中儲存該儲存位址對;以及 比較該新位址對與該儲存位址對。 如申叫專利範圍第19項之方法,該方法進一步包括·· 將居新位址對寫入至該第一對暫存器,以響應該新位 址對不符合該儲存位址對。 21·如申請專利範圍第19項之方法,該方法進一步包括: 比較該新位址對與一鄰接該第一對暫存器之第二對 暫存器中的一第二儲存位址對; 汉定遠第二儲存位址對中之一分支目標位址的最低 有效位元,以響應該新位址對符合該第二儲存位址對; 以及 將忒新位址對寫入至該第一對暫存器,以響應該新位 址對不符合該第二儲存位址對。 22·如申巧專利範圍第2 1項之方法,該方法進一步包括: 丟棄孩新位址對,以響應該新位址對符合該第二儲存 位址對。 23·如申凊專利範圍第2 1項之方法,其中該第二儲存位址對 之孩位址包含一分支來源位址。 24·如申凊專利範圍第17項之方法,其中該位址對之該位址 包含一分支目標位址。 25 · —種包含駐存在一機器可讀取媒體上之指令的裝置,用 來在一追縱緩衝器中使用,該等指令會引發該機器執行 73993-941012.doc 本紙張尺度適财_家料(CNS)从麟⑽χ撕公幻
    、申請專利範園 1249129 下列動作: 人執行—追蹤運算,包括在 一追縱緩衝為中儲存擴取指 7邊儲存步驟包含儲存對應於該追蹤緩衝器中一迴路 之一位址對·,以及 執行一壓縮運算,包括: 比較儲存於該追蹤緩衝器中之該位址隊與一新位址 對;以及 可址 響 設定該儲存位址對中之一位址的最低有效位元,以 應一新位址對符合一儲存位址對。 發 26·如申叫專利範圍第25項之裝置,該裝置進一步包括引 孩機器執行下列動作的指令: 址 對丟棄该新位址對’以響應該新位址對符合該儲存位 發 27·==Γ範圍第25項之裝置,該裝置進一步包括引 孩機奋執行下列動作的指令·· 在-第-對暫存器中儲存該儲存位址對;以及 新位址對與第一對暫存器中儲存的。 认如申請專利第27項之裝置’該装置進—步 孩機器執行下列動作的指令: W發 將該新位址對寫入至該第一對 址對不符合該錯存位址對。以☆,以響應該新位 A如_請專利範圍第27項之裝置,Μ 該機器執行下列動作的指令·· 7㈣ 比較該新位址對與一鄰接該第一 對暫存器之第二對 73993-941012.doc 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐). 1249129f 月日修ϋΰ止替換頁I A BCD 申請專利範園 暫存器中的一第二儲存位址對; 設定該第二儲存位址對中之一分支目標位址的最低 有效位元,以響應該新位址對符合該第二儲存位址對; 以及 將該新位址對寫入至該第一對暫存器,以響應該新位 址對不符合該第二儲存位址對。 30·如申請專利範圍第29項之裝置,該裝置進一步包括引發 該機器執行下列動作的指令: 丟棄該新位址對,以響應該新位址對符合該第二儲存 位址對。 • 8 73993-941012.doc 本紙張尺度適用中國國家標準(CNS) A4規格(21〇x 297公釐)·
TW090124153A 2000-09-29 2001-09-28 Trace buffer circuit, pipelined processor, method for assigning instruction addresses of a trace buffer and associated apparatus TWI249129B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/675,569 US7155570B1 (en) 2000-09-29 2000-09-29 FIFO write/LIFO read trace buffer with software and hardware loop compression

Publications (1)

Publication Number Publication Date
TWI249129B true TWI249129B (en) 2006-02-11

Family

ID=24711058

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090124153A TWI249129B (en) 2000-09-29 2001-09-28 Trace buffer circuit, pipelined processor, method for assigning instruction addresses of a trace buffer and associated apparatus

Country Status (6)

Country Link
US (1) US7155570B1 (zh)
JP (1) JP3818965B2 (zh)
KR (1) KR100509009B1 (zh)
CN (1) CN100346293C (zh)
TW (1) TWI249129B (zh)
WO (1) WO2002027483A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE0403128D0 (sv) * 2004-12-22 2004-12-22 Xelerated Ab A method for a processor, and a processor
FR2882832A1 (fr) * 2005-03-04 2006-09-08 St Microelectronics Sa Dispositif de generation de suivi de branchement pour microprocesseur et microprocesseur dote d'un tel dispositif
US7475231B2 (en) * 2005-11-14 2009-01-06 Texas Instruments Incorporated Loop detection and capture in the instruction queue
KR100847727B1 (ko) 2007-01-22 2008-07-23 삼성전자주식회사 실시간 패킷 수신을 위한 장치 및 방법
US8473946B2 (en) 2008-07-03 2013-06-25 Vmware, Inc. Efficient recording and replaying of non-deterministic instructions in a virtual machine and CPU therefor
US9524227B2 (en) * 2014-07-09 2016-12-20 Intel Corporation Apparatuses and methods for generating a suppressed address trace
US10175912B1 (en) 2017-07-05 2019-01-08 Google Llc Hardware double buffering using a special purpose computational unit

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50120529A (zh) 1974-03-08 1975-09-20
US3975717A (en) 1974-09-09 1976-08-17 Burroughs Corporation Charge coupled device stack memory organization and refresh method
JPS58103047A (ja) 1981-12-16 1983-06-18 Hitachi Ltd 命令トレ−ス装置
US5161217A (en) 1986-10-14 1992-11-03 Bull Hn Information Systems Inc. Buffered address stack register with parallel input registers and overflow protection
JPH0272440A (ja) 1988-09-07 1990-03-12 Nec Corp プログラム実行ステップ観測方式
JPH0748183B2 (ja) 1989-09-28 1995-05-24 横河電機株式会社 トレース回路
JPH05134848A (ja) * 1991-03-06 1993-06-01 Fujitsu Ltd 中央処理装置のデータシフト回路
JPH05100900A (ja) 1991-10-09 1993-04-23 Nec Corp 情報処理装置
JPH05324396A (ja) 1992-05-19 1993-12-07 Fujitsu Ltd プログラム走行履歴記録方式
US6094729A (en) * 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
US6460119B1 (en) * 1997-12-29 2002-10-01 Intel Corporation Snoop blocking for cache coherency
JPH11306044A (ja) 1998-04-22 1999-11-05 Hitachi Ltd データプロセッサ
EP1039386A1 (en) 1999-03-19 2000-09-27 Motorola, Inc. Computer system with trace unit, and method therefor

Also Published As

Publication number Publication date
JP2004510248A (ja) 2004-04-02
CN100346293C (zh) 2007-10-31
JP3818965B2 (ja) 2006-09-06
US7155570B1 (en) 2006-12-26
WO2002027483A2 (en) 2002-04-04
WO2002027483A3 (en) 2003-09-25
KR100509009B1 (ko) 2005-08-18
CN1541356A (zh) 2004-10-27
KR20030036856A (ko) 2003-05-09

Similar Documents

Publication Publication Date Title
TWI489779B (zh) 狀態機晶格中之布林邏輯
TWI486810B (zh) 在狀態機晶格中之計數器操作
JP4225851B2 (ja) データ処理装置用トレース要素生成システム
WO2001022216A1 (en) Selective writing of data elements from packed data based upon a mask using predication
TW201729074A (zh) 在處理器中致能旗標操作之移除及重建技術
US8281111B2 (en) System and method to execute a linear feedback-shift instruction
JP2004071012A5 (zh)
TWI249129B (en) Trace buffer circuit, pipelined processor, method for assigning instruction addresses of a trace buffer and associated apparatus
JPH05204709A (ja) プロセッサ
US20080082801A1 (en) Apparatus and method for tracing instructions with simplified instruction state descriptors
JP4748918B2 (ja) 復号された情報を格納し且つ供給するキャッシュを有する装置及びそのように行う方法
TWI285322B (en) Data processing using a coprocessor
TWI242122B (en) Method and apparatus for generating addresses for variable-width instructions in a pipeline and signal processing system
JP2748957B2 (ja) データ処理装置
CN113286140B (zh) 一种视频编解码测试方法、装置及存储介质
US20050262375A1 (en) System and method for efficient CABAC clock
JP4479370B2 (ja) プロセッサ
JP2010086321A (ja) メモリ制御システム
TW200417917A (en) Processor and method using parity check to proceed command mode switch
JPH10161873A (ja) プロセッサ
CN117176174A (zh) 一种数据压缩方法、装置、设备及存储介质
JP2009193466A (ja) 半導体装置
JPH03233733A (ja) 誤り訂正機能付きマイクロコンピュータ
JPS63216150A (ja) 記憶装置
JP2004246678A (ja) データ記憶処理装置およびこれを備えたデータ記憶装置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees