TW201516680A - 可儲存除錯資料的處理器、其快取及控制方法 - Google Patents

可儲存除錯資料的處理器、其快取及控制方法 Download PDF

Info

Publication number
TW201516680A
TW201516680A TW102137922A TW102137922A TW201516680A TW 201516680 A TW201516680 A TW 201516680A TW 102137922 A TW102137922 A TW 102137922A TW 102137922 A TW102137922 A TW 102137922A TW 201516680 A TW201516680 A TW 201516680A
Authority
TW
Taiwan
Prior art keywords
debug
data
address
channel
core
Prior art date
Application number
TW102137922A
Other languages
English (en)
Other versions
TWI514145B (zh
Inventor
Ing-Jer Huang
Chun-Hung Lai
Original Assignee
Univ Nat Sun Yat Sen
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 Univ Nat Sun Yat Sen filed Critical Univ Nat Sun Yat Sen
Priority to TW102137922A priority Critical patent/TWI514145B/zh
Priority to US14/256,565 priority patent/US9436611B2/en
Publication of TW201516680A publication Critical patent/TW201516680A/zh
Application granted granted Critical
Publication of TWI514145B publication Critical patent/TWI514145B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本發明揭示一種可儲存除錯資料的處理器,用於解決習知處理器無法儲存除錯時所產生的資料及該資料須儲存於專用記憶體所衍生的問題,該處理器包含:一核心,用以執行程式;一快取,電性連接該核心,該快取含有至少一核心通道及至少一除錯通道,該核心通道用以儲存該核心執行程式所需的資料,該除錯通道用以儲存該核心除錯時所產生的資料。另,本發明亦揭示該處理器之控制方法。藉此,可確實解決上述問題。

Description

可儲存除錯資料的處理器、其快取及控制方法
本發明係關於一種處理器、其快取及控制方法;特別是關於一種可儲存除錯資料的處理器、其快取及控制方法。
習知處理器(Processor)通常包含一核心(Core)及一快取(Cache),該核心用以執行程式(Program),該快取具有一快取控制器(Cache Controller)及數個快取通道(Cache Wayi),各快取通道含有一資料儲體(Data RAMi)、一標籤儲體(Tag RAMi)及一寫回位址儲體(WB Address RAMi),以儲存該核心常用的資料。
其中,若該核心輸出的位址(含Tag,Set Index,Bytes Offset)中的標籤(Tag)與任一快取通道之標籤儲體輸出的值相同,則稱快取命中(Cache Hit),依據該位址索引(Set Index)使該快取通道之資料儲體輸出一快取列(Cache Line)的資料至該核心;否則,稱為快取遺失或誤失(Cache Miss),依據一快取替換策略(Cache Replacement Policy)擇一快取通道騰出空間存放由一外部記憶體(如:主記憶體)取回的資料,並將該快取通道之資料儲體的資料複製到一寫回緩衝存儲器(Write Buffer),以待空閒時再將資料寫回該外部記憶體對應的位址。
習知處理器在設計(design)、驗證(verification)、量產(mass production)等過程中,通常需由一除錯電路(Trace Generation Unit)對該核心進行除錯(debug),以盡量排除程式執行異常的情況。習知除錯電路 係如:Infineon公司之TC1766ED、TC1796ED、Tensilica公司之Xtensa、Freescale公司之MPC565、NEC公司之V850、ARM公司之ETM或MIPS公司之PDTrace等產品,以產生訊號測試該核心執行程式時的結果,並於測試過程中將測試結果暫存於該除錯電路內的一專用記憶體中。
習知除錯電路雖已著重於訊號的擷取及壓縮技術改良,期能縮小該專用記憶體的使用面積,但該專用記憶體佔該除錯專用電路最多面積成本的缺點仍無法克服。在此情況下,習知處理器通常在設計、驗證階段納入該除錯電路進行測試,而在量產階段將該除錯電路移除,以符合低成本考量,致使該處理器在實際執行程式異常時,難以進行除錯。
有鑑於此,習知處理器進行除錯時,除有「除錯電路需額外設置專用記憶體,致使晶片成本無法降低」問題外,還會造成「量產的處理器需移除除錯電路,導致程式執行異常時難以除錯」疑慮,在實際使用時更衍生諸多限制與缺點,確有不便之處,亟需進一步改良,以提升其實用性。
本發明之主要目的係提供一種可儲存除錯資料的處理器,在不增設除錯電路專用記憶體的情況下,即可利用處理器原有儲存空間儲存除錯資料。
本發明之次一目的係提供一種可儲存除錯資料的處理器之快取,供處理器在執行程式時可同時儲存除錯資料。
本發明之另一目的係提供一種具有除錯功能的處理器之控制方法,使處理器在執行程式同時儲存除錯資料。
本發明之可儲存除錯資料的處理器,包含:一核心,用以執行程式;一快取,電性連接該核心,該快取含有至少一核心通道及至少一除錯通道,該核心通道用以儲存該核心執行程式所需的資料,該除錯通道 用以儲存該核心除錯時所產生的資料。
本發明之可儲存除錯資料的處理器之快取,包含:至少一核心通道及至少一除錯通道,分別設有一資料儲體、一標籤儲體及一位址儲體,各資料儲體用以儲存資料,各標籤儲體依據一核心輸出之一位址選出一列狀態及一標籤,各位址儲體用以儲存數個列位址;該快取另設有:一暫存模組,用以暫存一除錯預定位址及數個通道控制位元,各通道控制位元對應控制各資料儲體之寫入資料來源,並具有二狀態值;一除錯資源產生器,依據該通道控制位元、一除錯有效位元及該核心除錯時所生資料產生一除錯位址、一待存除錯資料及一除錯致能位元;一快取控制器,依據該核心執行程式所需的資料及該位址產生一待存核心資料、一核心致能位元及一通道清空位元,該位址含有一位址索引及一位址標籤;數個來源資料寫入器,分別令各資料儲體依其對應之通道控制位元的其中一狀態值、該位址索引及該核心致能位元寫入該待存核心資料,或依另一狀態值、該除錯位址及該除錯致能位元寫入該待存除錯資料;數個比較器,分別用以比較該位址標籤與各標籤儲體選出之標籤,並產生一標籤命中位元;數個除錯資料保護器,分別依據各通道控制位元、各標籤儲體輸出之列狀態及各標籤命中位元產生一栓鎖位元及一命中位元;及數個除錯資料寫回器,分別依據各通道控制位元、各列位址、該除錯預定位址及該列狀態產生一除錯寫回位址。
較佳地,該核心通道及該除錯通道分別設有一資料儲體、一標籤儲體及一位址儲體,各資料儲體用以儲存上述資料,各標籤儲體依據該核心輸出之一位址選出一列狀態及一標籤,各位址儲體用以儲存數個列位址;該快取另設有:一暫存模組,用以暫存一除錯預定位址及數個通道控制位元,各通道控制位元對應控制各資料儲體之寫入資料來源,並具有二狀態值;一除錯資源產生器,依據該通道控制位元、一除錯有效位元及 該核心除錯時所生資料產生一除錯位址、一待存除錯資料及一除錯致能位元;一快取控制器,依據該核心執行程式所需的資料及該輸入位址產生一待存核心資料、一核心致能位元及一通道清空位元,該輸入位址含有一位址索引及一位址標籤;數個來源資料寫入器,分別令各資料儲體依其對應之通道控制位元的其中一狀態值、該位址索引及該核心致能位元寫入該待存核心資料,或依另一狀態值、該除錯位址及該除錯致能位元寫入該待存除錯資料;數個比較器,分別用以比較該位址標籤與各標籤儲體選出之標籤,並產生一標籤命中位元;數個除錯資料保護器,分別依據各通道控制位元、各標籤儲體輸出之列狀態及各標籤命中位元產生一栓鎖位元及一命中位元;及數個除錯資料寫回器,分別依據各通道控制位元、各列位址、該除錯預定位址及該列狀態產生一除錯寫回位址。
較佳地,該暫存模組電性連接該除錯資源產生器、該來源資料寫入器、該除錯資料保護器及該除錯資料寫回器,該來源資料寫入器電性連接該除錯資源產生器、該快取控制器及該資料儲體,該比較器電性連接該除錯資料保護器與該標籤儲體,該標籤儲體電性連接該除錯資料保護器及該除錯資料寫回器,該除錯資料寫回器電性連接該位址儲體。
較佳地,該快取另設有一通道選擇器、一第一多工器及一第二多工器,該通道選擇器依據該命中位元產生一除錯選擇位元,該第一多工器依據該除錯選擇位元選擇由該核心通道之資料儲體或該除錯通道之資料儲體輸出資料,該第二多工器依據該通道清空位元選擇由該核心通道之資料儲體或該除錯通道之資料儲體輸出資料。
較佳地,該暫存模組包含:一位址暫存器及一控制暫存器,該位址暫存器儲存該除錯預定位址,並連接該除錯資料寫回器,該控制暫存器儲存該通道控制位元,並連接該除錯資源產生器、各來源資料寫入器、各除錯資料保護器及各除錯資料寫回器。
較佳地,該除錯資源產生器包含一第三多工器、一暫存器、一加法器、一第四多工器、一位址解碼器、一相較器、一暫停寫入器、一第五多工器及一排線,該第三多工器連接該暫存器、該加法器及一除錯有效輸入埠,該第四多工器連接該第三多工器、該暫存器、該加法器、該位址解碼器、該相較器及上述暫存模組,該暫停寫入器連接該位址解碼器、該相較器及該第五多工器,該第五多工器連接該除錯有效輸入埠,該排線連接一除錯資料輸入埠。
較佳地,各來源資料寫入器包含一第一及閘、一第六多工器、一第七多工器及一第八多工器,該第一及閘連接該暫存模組及該除錯資源產生器,該第六多工器連接該第一及閘、該除錯資源產生器及一核心位址輸入埠,該第七多工器連接該第一及閘、該除錯資源產生器及該快取控制器,該第八多工器連接該第一及閘、該除錯資源產生器及該快取控制器。
較佳地,各除錯資料保護器包含一第一或閘、一反閘及一第二及閘,該第一或閘電性連接該暫存模組及該標籤儲體,該反閘電性連接該暫存模組,該第二及閘電性連接該反閘及該比較器。
較佳地,各除錯資料寫回器包含一第九多工器、一第二或閘及一第三或閘,該第九多工器電性連接該暫存模組及各位址儲體,該第二或閘及該第三或閘電性連接該各標籤儲體。
較佳地,該快取另包含一管線化暫存器電性連接於該除錯資源產生器與各來源資料寫入器之間。
較佳地,該處理器另包含一除錯單元電性連接該快取之除錯資源產生器。
本發明之可儲存除錯資料的處理器之控制方法,該處理器包含一核心及一快取,該快取具有一暫存模組、一除錯資源產生器、數個來 源資料寫入器、一快取控制器、數個比較器、數個除錯資料保護器、數個除錯資料寫回器、數個資料儲體、數個標籤儲體及數個位址儲體,該暫存模組電性連接該除錯資源產生器、該來源資料寫入器、該除錯資料保護器及該除錯資料寫回器,該來源資料寫入器電性連接該除錯資源產生器、該快取控制器及該資料儲體,該比較器電性連接該除錯資料保護器與該標籤儲體,該標籤儲體電性連接該除錯資料保護器及該除錯資料寫回器,該除錯資料寫回器電性連接該位址儲體,該控制方法包含下列步驟:由該核心設定該暫存模組,使至少一資料儲體、標籤儲體及位址儲體合為至少一除錯通道;由一除錯單元測試一核心,並擷取該核心的輸出訊號作為一除錯資料;由該除錯資源產生器產生該除錯資料的一儲存位址;由該來源資料寫入器依據該儲存位址將該除錯資料寫入該除錯通道之資料儲體;及由該除錯資源產生器判斷該除錯通道之資料儲體是否未存滿,若判斷為是,該除錯資源產生器產生更新該儲存位址,供該除錯通道之資料儲體儲存另一除錯資料,若判斷為否,該來源資料寫入器禁止該除錯資料寫入該除錯通道之資料儲體,待該除錯單元測試結束後,該除錯通道之資料儲體輸出所儲存的除錯資料,再由該核心清空該除錯通道之資料儲體。
較佳地,該除錯單元測試結束後,進行下列步驟:該核心執行一指令,用以清空該資料儲體的任一列位址中的資料;及該快取控制器判斷該列位址是否位於該除錯通道之資料儲體,若判斷為是,將該列位址中的資料寫至一晶片輸入輸出介面對應於該列位址的記憶體位址,該除錯通道之資料儲體中的資料尚未完全寫至該晶片輸入輸出介面對應於該列位址的記憶體位址前,重新進行上述列位址是否位於該除錯通道之資料儲體之判斷,若判斷為否,將該列位址中的資料寫至該列位址對應於一外部記憶體的位址。
〔本發明〕
1‧‧‧核心
2‧‧‧快取
21‧‧‧快取通道
21a‧‧‧核心通道
21b‧‧‧除錯通道
211‧‧‧資料儲體
212‧‧‧標籤儲體
213‧‧‧位址儲體
22‧‧‧暫存模組
221‧‧‧位址暫存器
222‧‧‧控制暫存器
23‧‧‧除錯資源產生器
231‧‧‧第三多工器
232‧‧‧暫存器
233‧‧‧加法器
234‧‧‧第四多工器
235‧‧‧位址解碼器
236‧‧‧相較器
237‧‧‧暫停寫入器
238‧‧‧第五多工器
239‧‧‧排線
23a‧‧‧除錯資源位址
23d‧‧‧除錯資源資料
23e‧‧‧除錯資源致能
23v‧‧‧除錯資源有效
24‧‧‧快取控制器
25‧‧‧來源資料寫入器
251‧‧‧第一及閘
252‧‧‧第六多工器
253‧‧‧第七多工器
254‧‧‧第八多工器
25a‧‧‧來源寫入位址
25d‧‧‧來源寫入資料
25e‧‧‧來源寫入致能
26‧‧‧比較器
27‧‧‧除錯資料保護器
271‧‧‧第一或閘
272‧‧‧反閘
273‧‧‧第二及閘
28‧‧‧除錯資料寫回器
281‧‧‧第九多工器
282‧‧‧第二或閘
283‧‧‧第三或閘
29a‧‧‧通道選擇器
29b‧‧‧第一多工器
29c‧‧‧第二多工器
29d‧‧‧管線化暫存器
3‧‧‧除錯單元
4‧‧‧晶片輸入輸出介面
A‧‧‧位址
Ai‧‧‧位址索引
As‧‧‧列偏移值
At‧‧‧位址標籤
B‧‧‧匯流排
D‧‧‧除錯資料輸入埠
R‧‧‧核心位址輸入埠
V‧‧‧除錯有效輸入埠
DC‧‧‧除錯時所產生的資料
DP‧‧‧執行程式所需的資料
S1~S5‧‧‧步驟
S51‧‧‧步驟
S52‧‧‧步驟
a‧‧‧除錯預定位址
c‧‧‧通道控制位元
d‧‧‧除錯有效位元
g‧‧‧修改位元
u‧‧‧有效位元
r‧‧‧列位址
s‧‧‧列狀態
t‧‧‧標籤
ac‧‧‧除錯位址
dc‧‧‧待存除錯資料
vc‧‧‧除錯致能位元
dp‧‧‧待存核心資料
vp‧‧‧核心致能位元
ce‧‧‧通道清空位元
dm‧‧‧外部記憶體資料
rw‧‧‧讀寫控制訊號
wb‧‧‧寫回位址
ht‧‧‧標籤命中位元
ab‧‧‧栓鎖位元
hb‧‧‧命中位元
aw‧‧‧除錯寫回位址
wm‧‧‧修改位元
wv‧‧‧有效位元
cs‧‧‧除錯選擇位元
dr‧‧‧讀取資料
dw‧‧‧寫回資料
第1圖係本發明可儲存除錯資料的處理器較佳實施例之系統架構圖。
第2圖係本發明可儲存除錯資料的處理器較佳實施例之快取的架構示意圖。
第3圖係本發明可儲存除錯資料的處理器較佳實施例之除錯資源產生器的架構示意圖。
第4圖係本發明可儲存除錯資料的處理器較佳實施例之來源資料寫入器的架構示意圖。
第5圖係本發明可儲存除錯資料的處理器較佳實施例之除錯資料保護器的架構示意圖。
第6圖係本發明可儲存除錯資料的處理器較佳實施例之除錯資料寫回器的架構示意圖。
第7圖係本發明可儲存除錯資料的處理器較佳實施例之控制方法的流程圖。
第8圖係本發明可儲存除錯資料的處理器較佳實施例之除錯資料長度的關係曲線圖。
第9圖係本發明可儲存除錯資料的處理器較佳實施例之通道數量變化與遺失率的關係曲線圖。
為讓本發明之上述及其他目的、特徵及優點能更明顯易懂,下文特舉本發明之較佳實施例,並配合所附圖式,作詳細說明如下:本發明全文所述之「核心」(Core),係指一處理器(Processor)中用來執行程式指令(Program Instruction)的功能組塊,係本發明所屬技 術領域中具有通常知識者可以理解。
本發明全文所述之「快取」(Cache),係指一處理器中用來暫存程式執行過程中所需或所生資料的功能組塊,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「儲體」(Memory),係指習知快取中用來儲存資料的硬體,如:隨機存取記憶體(RAM)等,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「快取控制器」(Cache Memory Controller),係指習知快取中用來控制資料存取的功能組塊,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「積體電路」(Integrated Circuit),係指可將主動元件(active device)、被動元件(passive device)、邏輯閘(logical gate)或其組成的電路(circuit)整合為一的硬體,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「矽智財」(Silicon Intelligent Property),係指一種事先定義且經過驗證後可以重複使用的功能組塊,如:系統層次(System Level)、功能層次(Functional Level)、邏輯閘層次(Gate Level)等,使積體電路設計業者可以運用具有不同功能的矽智財,經過適當組合而成為一個積體電路,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「暫存器」(Register),係指一種暫存電訊號之數位邏輯狀態值(如:0或1)的功能組塊,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「加法器」(Adder),係指一種可將二個數位邏輯狀態值相加後輸出的功能組塊,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「多工器」(Multiplexer),係指一種可由多個數位邏輯狀態值中擇一輸出的功能組塊,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「比較器」、「相較器」(Comparator),係指一種可將二個數位邏輯狀態值相較後輸出的功能組塊,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「排線」(Bus),係指一種可傳輸多個數位邏輯狀態值的電導體,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「及閘」(AND logical gate),係指一種可將多個數位邏輯狀態值進行「及(AND)」邏輯運算後輸出的功能組塊,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「或閘」(OR logical gate),係指一種可將多個數位邏輯狀態值進行「或(OR)」邏輯運算後輸出的功能組塊,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「反閘」(NOT logical gate),係指一種可將一個數位邏輯狀態值進行「反相(NOT)」邏輯運算後輸出的功能組塊,係本發明所屬技術領域中具有通常知識者可以理解。
請參閱第1圖所示,其係本發明可儲存除錯資料的處理器較佳實施例之系統架構圖。其中,該處理器包含一核心(Core)1及一快取(Cache)2,該核心1用以執行程式(如:執行各種指令),且該核心1可由一除錯單元3進行除錯,該除錯單元3可設於該處理器內(On-chip)或處理器外(Off-chip);該快取2電性連接該核心1,該快取2包含數個快取通道(Cache Way)21,並分為至少一核心通道21a及至少一除錯通道21b,該核心通道21a用以儲存該核心1執行程式所需的資料,如:取自一 主記憶體(main memory)的常用資料,該除錯通道21b可經由一除錯資源產生器22儲存該核心1除錯時所產生的資料,該快取2還可經由匯流排(Bus)B連接一晶片輸入輸出介面(Chip I/O Interface)4,供該快取2中的資料儲存至一外部記憶體(如:該主記憶體)。其中,該處理器、核心1、快取2可為矽智財(Silicon Intelligent Property,SIP)形式,該處理器亦可為積體電路(Integrated Circuit,IC)形式。在此實施例中,該核心通道21a與除錯通道21b的數量分別以一個(即共有二個快取通道21)作為實施態樣說明;該除錯單元3設於該處理器內(圖未繪示),該除錯單元3包含數個除錯訊號產生器31,較佳另設一訊號壓縮器32,該訊號壓縮器32電性連接該除錯訊號產生器31及該快取2之除錯資源產生器22,用以壓縮該除錯訊號產生器31輸出至該除錯資源產生器22的訊號,惟不以此為限。
請參閱第2圖所示,其係本發明可儲存除錯資料的處理器較佳實施例之快取的架構示意圖。其中,該核心通道21a及該除錯通道21b分別設有一資料儲體(Data Memory)211、一標籤儲體(Tag Memory)212及一位址儲體(WB Address Memory)213,各資料儲體211用以儲存上述資料,各標籤儲體212用以儲存數個列狀態s及數個標籤t,並依據該核心1輸出之一位址A從數個列狀態s及數個標籤t中選出一列狀態s及一標籤t,各位址儲體213用以儲存數個列位址r。
請再參閱第2圖所示,其中,該快取2另設有一暫存模組22、一除錯資源產生器23、一快取控制器24、數個來源資料寫入器25、數個比較器26、數個除錯資料保護器27及數個除錯資料寫回器28。該暫存模組22用以暫存一除錯預定位址a及數個通道控制位元c,各通道控制位元c對應控制各資料儲體之寫入資料來源(如:執行程式所需的資料、除錯時所產生的資料等),並具有二狀態值(如:0、1)。該除錯資源產生器23依據該數個通道控制位元c、一除錯有效位元d及該核心1除錯時所 產生的資料DC產生一除錯位址ac、一待存除錯資料dc及一除錯致能位元vc。該快取控制器24依據該核心1執行程式所需的資料DP及該位址A產生一待存核心資料dp、一核心致能位元vp及一通道清空位元ce,該位址A含有一位址索引(Set Index)Ai、一列偏移值(Byte Offset)As及一位址標籤(Tag)At;該快取控制器24還可輸入一外部記憶體資料dm、一讀寫控制訊號rw,及輸出一寫回位址wb至一寫入緩衝區(Write Back Buffer,圖未繪示)。該數個來源資料寫入器25分別令各資料儲體211依其對應之通道控制位元c的其中一狀態值、該位址索引Ai及該核心致能位元vp寫入該待存核心資料dp,或依另一狀態值、該除錯位址ac及該除錯致能位元vc寫入該待存除錯資料,例如:若該通道控制位元c共2位元c[1:2],當c[1]=0,表示該待存核心資料dp可依該核心致能位元vp寫入該位址索引Ai對應於該核心通道21a之資料儲體211的位址,當c[1]=1,表示該待存核心資料dp不可寫入;當c[2]=1,表示該待存除錯資料dc可依該核心致能位元vc寫入該除錯位址ac對應於該除錯通道21b之資料儲體211的位址,當c[2]=0,表示該除錯核心資料dc不可寫入。該數個比較器26分別用以比較該位址標籤At與各標籤儲體212選出之標籤t,並產生一標籤命中位元ht。該數個除錯資料保護器27分別依據各通道控制位元c、各標籤儲體212輸出之列狀態s及各標籤命中位元ht產生一栓鎖位元ab及一命中位元hb。該數個除錯資料寫回器28分別依據各通道控制位元c、各列位址r、該除錯預定位址a及該列狀態s產生一除錯寫回位址aw、一修改位元wm及一有效位元wv。此外,該快取2還可以設有一通道選擇器29a、一第一多工器29b及一第二多工器29c,該通道選擇器29a依據該命中位元hb產生一除錯選擇位元cs,該第一多工器29b依據該除錯選擇位元cs選擇由該核心通道21a之資料儲體211或該除錯通道21b之資料儲體211輸出資料,並輸出一讀取資料dr至該核心1;該第二多工器29c依據該通 道清空位元ce選擇由該核心通道21a之資料儲體211或該除錯通道21b之資料儲體211輸出資料,並輸出一寫回資料dw至該寫入緩衝區。又,該快取2還可設有一管線化暫存器29d電性連接於該除錯資源產生器23與各來源資料寫入器25之間,使該除錯資源產生器23送至各來源資料寫入器25的資料具有管線化(pipeline)資料傳輸功能,以提升資料處理效率,其中該管線化暫存器的結構係所屬技術領域中具有通常知識者可以理解,在此容不贅述。在此實施例中,該暫存模組22電性連接該除錯資源產生器23、該來源資料寫入器25、該除錯資料保護器27及該除錯資料寫回器28,該來源資料寫入器25電性連接該除錯資源產生器23、該快取控制器24及該資料儲體211,該比較器26電性連接該除錯資料保護器27與該標籤儲體212,該標籤儲體212電性連接該除錯資料保護器27及該除錯資料寫回器28,該除錯資料寫回器28電性連接該位址儲體213,惟不以此為限。
本發明可儲存除錯資料的處理器較佳實施例實際運作情形舉例說明如下,為了存取該快取2中的記憶體,該核心1送至該快取2的位址A較佳分為該位址索引Ai、列偏移值As及位址標籤At等欄位,該位址索引Ai會同時被送往各資料儲體211、各標籤儲體212及各位址儲體213,用以讀出各快取通道21(即該核心通道21a或除錯通道21b)之位址索引Ai所對應的快取列資料、快取列標籤、快取列狀態及快取列寫回位址。其中各快取通道21所輸出的快取列標籤及該核心1輸出的位址標籤At會送至各比較器26進行比較,而各快取通道21的標籤比較結果會先送往該快取控制器24及該通道選擇器29a,以判斷是否有任一快取通道21的標籤比較結果相等,如果有相等的情況,則表示該核心1所需的資料存在於該快取2中,此即〝快取命中(Cache Hit)〞,而資料的來源為各資料陣列212所輸出的快取列資料中其標籤比較結果相等的快取通道。因此該通道選擇器29a會產生該第一多工器29b的控制訊號,使該第一多工器29b 選擇標籤比較結果相等的快取通道所輸出之快取列資料,並將其當成讀取資料dr送往該核心1。反之,若無任一快取通道的標籤比較結果相等,則表示該核心1所需的資料尚未被載入至該快取2中,此即〝快取遺失(Cache Miss)〞,此時該快取控制器24會開始至外部記憶體中讀取資料並載入至該快取2中,而為了騰出空間來存放由外部記憶體讀取回來的資料,該快取控制器24中的置換策略會根據各快取通道21所輸出的快取列狀態中之栓鎖位元,選定該位址索引Ai中可被犧牲掉的快取通道為何,此外,若該被選定犧牲的快取通道21之快取列狀態中的已修改位元標明為〝被修改過(如:位元值為1)〞,則此被修改過的快取列資料必須被寫回外部記憶體中,因此該快取控制器24會產生該通道清空位元ce,並送至該第二多工器29c,使該第二多工器29c選擇被犧牲掉的快取通道所輸出之快取列資料,並將其當成寫回資料送往寫入緩衝區中,同時,該快取控制器24會根據被犧牲掉的快取通道21選擇其快取列寫回位址,並將其當成寫回位址送往寫入緩衝區中。此後,由外部記憶體取回的資料就可被更新至此被犧牲掉的快取通道之資料儲體211中對應該位址索引的快取列,同時,此快取列資料所對應的位址標籤以及寫回位址會分別被更新至此被犧牲掉的快取通道之標籤儲體212中對應該位址索引的位址。最後,該寫入緩衝區中的資料會等該核心1空閒時,再批次將快取列資料寫回其於外部記憶體中的相對應位址。
請再參閱第2圖所示,其中,該暫存模組22較佳實施例包含一位址暫存器(Register)221及一控制暫存器(Register)222,該位址暫存器221儲存該除錯預定位址a,並連接該除錯資料寫回器28,該暫存模組儲存該通道控制位元c,並連接該除錯資源產生器23、各來源資料寫入器25、各除錯資料保護器27及各除錯資料寫回器28。詳言之,該位址暫存器(register)221係用來設定該晶片輸入輸出介面4的記憶體對應位 址,使儲存在該快取2中的除錯資料,可透過習知快取記憶體的寫回動作,而被重新導向至晶片外運行除錯軟體的主機端,以利進行進一步分析。此外,為了使該快取2中的儲存空間可被重組態成該除錯資料DC的儲存空間,該控制暫存器222用以設定各快取通道21的屬性,使各快取通道21均有一相對應的位元。舉例而言,當任一位元的狀態值被設定為1時,表示其對應的快取通道21被設定(或重組態)成該除錯資料DC的儲存空間,故僅該除錯單元3可對該快取通道21進行寫入動作;當此位元的狀態值被設定為0時,表示其對應的快取通道21保持原來的資料存取功能,僅有該核心1執行程式所需的資料可被寫入。
請參閱第3圖所示,其係本發明可儲存除錯資料的處理器較佳實施例之除錯資源產生器的架構示意圖。請一併參閱第2圖所示,其中,該除錯資源產生器23係用以產生該除錯資料DC寫入該快取2中的除錯通道21b之資料儲體211的相對應位址(即該位址索引Ai所對應的快取列)。在此實施例中,該除錯資源產生器23包含一第三多工器(Multiplexer)231、一暫存器(Register)232、一加法器(Adder)233、一第四多工器(Multiplexer)234、一位址解碼器(Address Decoder)235、一相較器(Comparator)236、一暫停寫入器(Data Writing Controller)237、一第五多工器(Multiplexer)238及一排線(Bus)239,該第三多工器231連接該暫存器232、該加法器233及一除錯有效輸入埠V(用以輸入該除錯致能位元vc),該第四多工器234連接該第三多工器231、該暫存器232、該加法器233、該位址解碼器235、該相較器236及上述暫存模組22之控制暫存器222,該暫停寫入器237連接該位址解碼器235、該相較器236及該第五多工器238,該第五多工器238連接該除錯有效輸入埠V,該排線239連接一除錯資料輸入埠D(用以輸入該待存除錯資料dc),該除錯資源產生器23另具有四輸出埠,用以輸出一除錯資源位址23a、一除錯資源致能23e、一除錯資源有效23v 及一除錯資源資料23d。詳言之,在該除錯致能位元vc(如:vc=1)到達時,該加法器233可將原存於該暫存器232之除錯位址ac加1作為新的除錯位址ac,並更新該暫存器232中所存的除錯位址ac。該第四多工器234可依該除錯位址ac的最高位元(MSB)從該控制暫存器222中選出對應的通道控制位元c。該位址解碼器235可依該除錯位址ac產生該資料儲體211寫入資料時所需的致能訊號,使同一時間內僅有一資料儲體211可被寫入資料,如:以9位元表示位址則其最高位元可表示該致能訊號,該致能訊號為1或0分別表示該除錯通道21b之資料儲體211仍可寫入資料或已被寫滿。該相較器236用來比較由該第四多工器234所選出的控制暫存器222相對應的位元值是否為偽(如:0),若比較結果與零值相同,則表示目前的除錯資料DC儲存空間寫入位址已不再位於該除錯通道21b之資料儲體211(即一除錯資訊儲存區)的範圍內,該相較器236輸出〝除錯資訊儲存區已滿〞的控制訊號予以暫停寫入器237及第五多工器238。該暫停寫入器237之二輸入分別為該位址解碼器235所產生的各快取通路21之資料陣列的寫入致能訊號及該相較器236所產生的〝除錯資訊儲存區已滿〞訊號,當〝除錯資訊儲存區已滿訊號〞為真(如:1)時,就會強制將該位址解碼器235所產生的各快取通路21之資料陣列的寫入致能訊號皆設定為偽,再將其輸出至各來源資料寫入器25,以禁止後續任何除錯資料的寫入動作。該第五多工器238用以產生該除錯資源有效23v之訊號,再輸出至各來源資料寫入器25。
請參閱第4圖所示,其係本發明可儲存除錯資料的處理器較佳實施例之來源資料寫入器的架構示意圖。其中,各來源資料寫入器25較佳實施例包含一第一及閘(AND logical gate)251、一第六多工器(Multiplexer)252、一第七多工器(Multiplexer)253及一第八多工器(Multiplexer)254,該第一及閘251連接該暫存模組22之控制暫存器222 (用以輸入該通道控制位元c)及該除錯資源產生器23(用以輸入該除錯資源位址23a、除錯資源致能23e、除錯資源有效23v及除錯資源資料23d),以及,該第六多工器252連接該第一及閘251、該除錯資源產生器23及一核心位址輸入埠R(用以輸入該位址索引Ai),該第七多工器253連接該第一及閘251、該除錯資源產生器23及該快取控制器24(用以輸入該待存核心資料dp),該第八多工器254連接該第一及閘251、該除錯資源產生器23及該快取控制器24(用以輸入該核心致能位元vp),各來源資料寫入器25另具有三輸出埠,用以輸出一來源寫入位址25a、一來源寫入資料25d及一來源寫入致能25e。詳言之,各來源資料寫入器25係用來判別各資料儲體211的資料來源是該除錯單元3或該核心1。其中,將資料寫入該資料儲體211需指定位址、寫入資料、寫入致能等訊號,因此,各來源資料寫入器25會根據該控制暫存器222的設定,來選擇各快取通道21之資料儲體211的位址、寫入資料、寫入致能等訊號是來自該除錯資源產生器23或該快取控制器24。
請參閱第5圖所示,其係本發明可儲存除錯資料的處理器較佳實施例之除錯資料保護器的架構示意圖。其中,各除錯資料保護器27係用來保護該快取2中的除錯資料,使該除錯資料不因該核心1對該快取2存取資料時觸發的資料更新動作而被覆寫。在該核心1讀取資料時,該除錯資料保護器27可透過各快取通道21所輸出的快取列狀態中之栓鎖位元,當〝快取遺失〞發生時,快取控制器24中的置換策略不會將該除錯通道21b選為要犧牲的快取通道21;且在寫入資料時,該除錯資料保護器27透過各快取通道21所輸出的標籤比較結果,使得〝快取命中〞不會發生在該除錯通道21b,以免該除錯通道21b中的資料被該核心1所寫入的資料覆寫。在此實施例中,各除錯資料保護器27包含一第一或閘(OR logical gate)271、一反閘(NOT logical gate)272及一第二及閘(AND logical gate) 273,該第一或閘271電性連接該暫存模組22之控制暫存器222(用以輸入該通道控制位元c)及該標籤儲體212(用以輸入對應通路之列狀態s中的一栓鎖位元f),該反閘272電性連接該暫存模組22之控制暫存器222(用以輸入該通道控制位元c),該第二及閘273電性連接該反閘272及該比較器26(用以輸入該標籤命中位元ht),各除錯資料保護器27另設有二輸出埠,用以輸出該栓鎖位元ab及命中位元hb。
請參閱第6圖所示,其係本發明可儲存除錯資料的處理器較佳實施例之除錯資料寫回器的架構示意圖。其中,各除錯資料寫回器28係用來將該除錯通道21b中的資料透過習知快取寫回動作而重導向至晶片外運行除錯軟體的主機端。在該核心1執行清空快取列之指令時,各除錯資料寫回器28可透過各快取通道21所輸出的快取列寫回位址及快取列狀態中之已修改位元、有效位元,在清空快取列指令下達時,使該除錯通道21b將資料寫回一預先設定好寫回位址,而非傳統快取區所寫回的外部記憶體。在此實施例中,各除錯資料寫回器28包含一第九多工器(Multiplexer)281、一第二或閘(OR logical gate)282及一第三或閘(OR logical gate)283,該第九多工器281連接該暫存模組22之控制暫存器222(用以輸入該通道控制位元c及該除錯預定位址a)及各位址儲體213(用以輸入該列位址r),該第二或閘282及該第三或閘283電性連接各標籤儲體212(用以輸入該列狀態s所含之一修改位元g及一有效位元u),各除錯資料寫回器28另具有三輸出埠,用以輸出該除錯寫回位址aw、修改位元wm及有效位元wv。
請參閱第7圖所示,其係本發明可儲存除錯資料的處理器較佳實施例之控制方法的流程圖。其中,該控制方法包含下列步驟:步驟S1,由該核心1設定該暫存模組22,使至少一資料儲體211、標籤儲體212及位址儲體213合為至少一除錯通道21b;步驟S2,由該除錯單元3測試該 核心1,並擷取該核心1的輸出訊號作為一除錯資料(即該核心1除錯時所產生的資料DC);步驟S3,由該除錯資源產生器23產生該除錯資料DC的一儲存位址(即該除錯位址ac);步驟S4,由該來源資料寫入器25依據該儲存位址將該除錯資料寫入該除錯通道21b之資料儲體211;及步驟S5,該除錯資源產生器23判斷該除錯通道21b之資料儲體211是否未存滿,若判斷為是,該除錯資源產生器23更新該儲存位址,供該除錯通道21b之資料儲體211儲存另一除錯資料,若判斷為否,該來源資料寫入器23禁止該除錯資料寫入該除錯通道21b之資料儲體211,待該除錯單元3測試結束後,該除錯通道21b之資料儲體211輸出所儲存的除錯資料,再由該核心1清空該除錯通道21b之資料儲體211。其中,該除錯單元3測試結束後,可進行下列步驟:步驟S51,該核心1執行一指令(如:一清空指令),用以清空該資料儲體211的任一位址中的資料;及步驟S52,該快取控制器24判斷該位址是否位於該除錯通道之資料儲體,若判斷為是,將該位址中的資料寫至該晶片輸入輸出介面4對應於該位址的記憶體位址,該除錯通道21b之資料儲體211中的資料尚未完全寫至該晶片輸入輸出介面4對應於該位址的記憶體位址前,重新進行上述位址是否位於該除錯通道21b之資料儲體211之判斷,若判斷為否,將該位址中的資料寫至該位址對應於該外部記憶體的位址。
請參閱第8圖所示,其係本發明可儲存除錯資料的處理器較佳實施例之通道數量變化與可儲存之除錯資料長度的關係曲線圖。其中,以該核心通道與除錯通道共有8個為例,橫軸表示除錯通道數量/核心通道數量,縱軸表示除錯資料長度,P1~P15分別表示採用djpeg、cjpeg、typeset、stringsearch、basicmath、ispell、qsort、FFT、patricia、bitcount、sha、ADPCM enc.、dijkstra、susan、ADPCM dec.等測試方案的曲線圖,P16為P1~P15的平均值,由圖可知,可儲存的除錯資料長度會隨著目前可用來當成除錯 通道的數量而増加,甚至當可用來當除錯通道的數量有限時,如只有一個除錯通道可用時,其平均也可儲存12771個時脈週期之除錯資料,這個除錯資料長度已足以用來檢測晶片內部的運作狀況以及簡易的狀況排除。
請參閱第9圖所示,其係本發明可儲存除錯資料的處理器較佳實施例之通道數量變化與遺失率的關係曲線圖。其中,以該核心通道與除錯通道共有8個為例,橫軸表示除錯通道數量/核心通道數量,縱軸表示遺失率(Miss Rate),K1~K15分別表示採用djpeg、cjpeg、typeset、stringsearch、basicmath、ispell、qsort、FFT、patricia、bitcount、sha、ADPCM enc.、dijkstra、susan、ADPCM dec.等測試方案的曲線圖,K16為K 1~K 15的平均值,由圖可知,當該除錯通道數量越少時,對整體的遺失率影響越低,然而即使隨著除錯通道的數量増加,如總容量的一半被當成除錯通道來使用時,其遺失率平均也僅有1.53%的増加,因此運用本方法可提供使用者對快取記憶體的使用彈性,在只需付出些微増加的遺失率成本下,就可儲存不錯的除錯資料長度以用來進行晶片內部的運作情況分析。
藉由前揭之技術手段,本發明可儲存除錯資料的處理器、其快取及控制方法較佳實施例的主要特點列舉如下:藉由該處理器中原有快取之資料儲體及快取控制器等元件及其動作,可儲存除錯時的相關資訊,只需對習知快取記憶體架構作些微修改,即可使該處理器之核心及該除錯單元共享該快取之儲存空間。藉此,即便在該處理器之核心對快取需求不高的情況下,也能靈活的應用到該些多餘的快取儲存空間,達到快取儲存資源的有效利用,而不是耗費掉這些原先就存在於晶片內部但卻沒有被有效使用的有限儲存資源。
此外,該快取之儲存空間是被共享於該處理器之核心與其它有儲存需求的元件(如:該除錯單元)之間,而非只能被該處理器之核心專用。且,本發明可儲存除錯資料的處理器、其快取及控制方法與習知處理 器、其快取及控制方法相較,不需於存取前判斷位址是否落於原先的快取記憶體區段,或是落於被重組態成快速儲存區的區段,故不需額外的判斷電路,不會因而増加快取記憶體的存取時間。
當該除錯單元將其擷取並壓縮後的除錯資料寫入該快取中的資料儲體時,該處理器之核心仍可正常對該快取存取資料,不影響該處理器之核心原有的行為;再且,已儲存的除錯資料可利用習知快取控制器中的栓鎖機制(Lock-Down)作為保護機制,在不需大幅更動硬體架構的情況下,使該除錯資料不會被該快取的處理器之核心覆寫。又,本發明之快取中的儲存空間一部分被重組態成〝除錯通道的資料儲體(即除錯資訊儲存區)〞後便可直接使用,而不需任何的初始化或是前處理的動作。
另外,本發明可儲存除錯資料的處理器、其快取及控制方法可去除習知除錯專用電路中面積成本耗費最大的除錯資訊專用記憶體,使習知除錯專用電路的面積成本可大幅減少,因此在量產晶片的低成本、低耗電的需求限制下,仍可將不具專用記憶體的除錯專用電路(即本發明所述之除錯單元)包含於量產的晶片中,使得在客戶端運行的量產晶片仍然保有對內部元件運作的可視能力。進一步利用原先就存在於習知快取控制器中的寫回機制(Write Back Circuitry),即可將儲存在快取中除錯資訊儲存區的資料送往晶片外部運行除錯軟體的主機,而不需習知除錯專用電路採用的額外輔助電路,更可進一步減少面積成本。
本發明可儲存除錯資料的處理器、其快取及控制方法較佳實施例,在不增設除錯電路專用記憶體的情況下,即可利用處理器原有儲存空間儲存除錯資料,在處理器執行程式同時儲存除錯資料,達成「減少成本」及「量產晶片具備除錯功能」等功效。
雖然本發明已利用上述較佳實施例揭示,然其並非用以限定本發明,任何熟習此技藝者在不脫離本發明之精神和範圍之內,相對上述 實施例進行各種更動與修改仍屬本發明所保護之技術範疇,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1‧‧‧核心
2‧‧‧快取
21‧‧‧快取通道
21a‧‧‧核心通道
21b‧‧‧除錯通道
3‧‧‧除錯單元
31‧‧‧除錯訊號產生器
32‧‧‧訊號壓縮器
4‧‧‧晶片輸入輸出介面
A‧‧‧位址
B‧‧‧匯流排
DC‧‧‧除錯時所產生的資料
DP‧‧‧執行程式所需的資料
d‧‧‧除錯有效位元

Claims (22)

  1. 一種可儲存除錯資料的處理器,包含:一核心,用以執行程式;一快取,電性連接該核心,該快取含有至少一核心通道及至少一除錯通道,該核心通道用以儲存該核心執行程式所需的資料,該除錯通道用以儲存該核心除錯時所產生的資料。
  2. 根據申請專利範圍第1項所述之可儲存除錯資料的處理器,其中該核心通道及該除錯通道分別設有一資料儲體、一標籤儲體及一位址儲體,各資料儲體用以儲存資料,各標籤儲體依據該核心輸出之一位址選出一列狀態及一標籤,各位址儲體用以儲存數個列位址;該快取另設有:一暫存模組,用以暫存一除錯預定位址及數個通道控制位元,各通道控制位元對應控制各資料儲體之寫入資料來源,並具有二狀態值;一除錯資源產生器,依據該通道控制位元、一除錯有效位元及該核心除錯時所生資料產生一除錯位址、一待存除錯資料及一除錯致能位元;一快取控制器,依據該核心執行程式所需的資料及該輸入位址產生一待存核心資料、一核心致能位元及一通道清空位元,該輸入位址含有一位址索引及一位址標籤;數個來源資料寫入器,分別令各資料儲體依其對應之通道控制位元的其中一狀態值、該位址索引及該核心致能位元寫入該待存核心資料,或依另一狀態值、該除錯位址及該除錯致能位元寫入該待存除錯資料;數個比較器,分別用以比較該位址標籤與各標籤儲體選出之標 籤,並產生一標籤命中位元;數個除錯資料保護器,分別依據各通道控制位元、各標籤儲體輸出之列狀態及各標籤命中位元產生一栓鎖位元及一命中位元;及數個除錯資料寫回器,分別依據各通道控制位元、各列位址、該除錯預定位址及該列狀態產生一除錯寫回位址。
  3. 根據申請專利範圍第2項所述之可儲存除錯資料的處理器,其中該暫存模組電性連接該除錯資源產生器、該來源資料寫入器、該除錯資料保護器及該除錯資料寫回器,該來源資料寫入器電性連接該除錯資源產生器、該快取控制器及該資料儲體,該比較器電性連接該除錯資料保護器與該標籤儲體,該標籤儲體電性連接該除錯資料保護器及該除錯資料寫回器,該除錯資料寫回器電性連接該位址儲體。
  4. 根據申請專利範圍第2項所述之可儲存除錯資料的處理器,其中該快取另設有一通道選擇器、一第一多工器及一第二多工器,該通道選擇器依據該命中位元產生一除錯選擇位元,該第一多工器依據該除錯選擇位元選擇由該核心通道之資料儲體或該除錯通道之資料儲體輸出資料,該第二多工器依據該通道清空位元選擇由該核心通道之資料儲體或該除錯通道之資料儲體輸出資料。
  5. 根據申請專利範圍第2項所述之可儲存除錯資料的處理器,其中該暫存模組包含:一位址暫存器及一控制暫存器,該位址暫存器儲存該除錯預定位址,並連接該除錯資料寫回器,該控制暫存器儲存該通道控制位元,並連接該除錯資源產生器、各來源資料寫入器、各除錯資料保護器及各除錯資料寫回器。
  6. 根據申請專利範圍第2項所述之可儲存除錯資料的處理器,其中該除錯資源產生器包含一第三多工器、一暫存器、一加法器、一 第四多工器、一位址解碼器、一相較器、一暫停寫入器、一第五多工器及一排線,該第三多工器連接該暫存器、該加法器及一除錯有效輸入埠,該第四多工器連接該第三多工器、該暫存器、該加法器、該位址解碼器、該相較器及上述暫存模組,該暫停寫入器連接該位址解碼器、該相較器及該第五多工器,該第五多工器連接該除錯有效輸入埠,該排線連接一除錯資料輸入埠。
  7. 根據申請專利範圍第2項所述之可儲存除錯資料的處理器,其中各來源資料寫入器包含一第一及閘、一第六多工器、一第七多工器及一第八多工器,該第一及閘連接該暫存模組及該除錯資源產生器,該第六多工器連接該第一及閘、該除錯資源產生器及一核心位址輸入埠,該第七多工器連接該第一及閘、該除錯資源產生器及該快取控制器,該第八多工器連接該第一及閘、該除錯資源產生器及該快取控制器。
  8. 根據申請專利範圍第2項所述之可儲存除錯資料的處理器,其中各除錯資料保護器包含一第一或閘、一反閘及一第二及閘,該第一或閘電性連接該暫存模組及該標籤儲體,該反閘電性連接該暫存模組,該第二及閘電性連接該反閘及該比較器。
  9. 根據申請專利範圍第2項所述之可儲存除錯資料的處理器,其中各除錯資料寫回器包含一第九多工器、一第二或閘及一第三或閘,該第九多工器電性連接該暫存模組及各位址儲體,該第二或閘及該第三或閘電性連接該各標籤儲體。
  10. 根據申請專利範圍第2項所述之可儲存除錯資料的處理器,其中該快取另包含一管線化暫存器電性連接於該除錯資源產生器與各來源資料寫入器之間。
  11. 根據申請專利範圍第2項所述之可儲存除錯資料的處理器,另包 含一除錯單元電性連接該快取之除錯資源產生器。
  12. 一種可儲存除錯資料的處理器之快取,包含:至少一核心通道及至少一除錯通道,分別設有一資料儲體、一標籤儲體及一位址儲體,各資料儲體用以儲存資料,各標籤儲體依據一核心輸出之一位址選出一列狀態及一標籤,各位址儲體用以儲存數個列位址;該快取另設有:一暫存模組,用以暫存一除錯預定位址及數個通道控制位元,各通道控制位元對應控制各資料儲體之寫入資料來源,並具有二狀態值;一除錯資源產生器,依據該通道控制位元、一除錯有效位元及該核心除錯時所生資料產生一除錯位址、一待存除錯資料及一除錯致能位元;一快取控制器,依據該核心執行程式所需的資料及該位址產生一待存核心資料、一核心致能位元及一通道清空位元,該位址含有一位址索引及一位址標籤;數個來源資料寫入器,分別令各資料儲體依其對應之通道控制位元的其中一狀態值、該位址索引及該核心致能位元寫入該待存核心資料,或依另一狀態值、該除錯位址及該除錯致能位元寫入該待存除錯資料;數個比較器,分別用以比較該位址標籤與各標籤儲體選出之標籤,並產生一標籤命中位元;數個除錯資料保護器,分別依據各通道控制位元、各標籤儲體輸出之列狀態及各標籤命中位元產生一栓鎖位元及一命中位元;及數個除錯資料寫回器,分別依據各通道控制位元、各列位址、該除錯預定位址及該列狀態產生一除錯寫回位址。
  13. 根據申請專利範圍第12項所述之可儲存除錯資料的處理器之快取,其中該暫存模組電性連接該除錯資源產生器、該來源資料寫入器、該除錯資料保護器及該除錯資料寫回器,該來源資料寫入器電性連接該除錯資源產生器、該快取控制器及該資料儲體,該比較器電性連接該除錯資料保護器與該標籤儲體,該標籤儲體電性連接該除錯資料保護器及該除錯資料寫回器,該除錯資料寫回器電性連接該位址儲體。
  14. 根據申請專利範圍第12項所述之可儲存除錯資料的處理器之快取,另設有一通道選擇器、一第一多工器及一第二多工器,該通道選擇器依據該命中位元產生一除錯選擇位元,該第一多工器依據該除錯選擇位元選擇由該核心通道之資料儲體或該除錯通道之資料儲體輸出資料,該第二多工器依據該通道清空位元選擇由該核心通道之資料儲體或該除錯通道之資料儲體輸出資料。
  15. 根據申請專利範圍第12項所述之可儲存除錯資料的處理器之快取,其中該暫存模組包含:一位址暫存器及一控制暫存器,該位址暫存器儲存該除錯預定位址,並連接該除錯資料寫回器,該控制暫存器儲存該通道控制位元,並連接該除錯資源產生器、各來源資料寫入器、各除錯資料保護器及各除錯資料寫回器。
  16. 根據申請專利範圍第12項所述之可儲存除錯資料的處理器之快取,其中該除錯資源產生器包含一第三多工器、一暫存器、一加法器、一第四多工器、一位址解碼器、一相較器、一暫停寫入器、一第五多工器及一排線,該第三多工器連接該暫存器、該加法器及一除錯有效輸入埠,該第四多工器連接該第三多工器、該暫存器、該加法器、該位址解碼器、該相較器及上述暫存模組,該暫停寫入器連接該位址解碼器、該相較器及該第五多工器,該第五 多工器連接該除錯有效輸入埠,該排線連接一除錯資料輸入埠。
  17. 根據申請專利範圍第12項所述之可儲存除錯資料的處理器之快取,其中各來源資料寫入器包含一第一及閘、一第六多工器、一第七多工器及一第八多工器,該第一及閘連接該暫存模組及該除錯資源產生器,該第六多工器連接該第一及閘、該除錯資源產生器及一核心位址輸入埠,該第七多工器連接該第一及閘、該除錯資源產生器及該快取控制器,該第八多工器連接該第一及閘、該除錯資源產生器及該快取控制器。
  18. 根據申請專利範圍第12項所述之可儲存除錯資料的處理器之快取,其中各除錯資料保護器包含一第一或閘、一反閘及一第二及閘,該第一或閘電性連接該暫存模組及該標籤儲體,該反閘電性連接該暫存模組,該第二及閘電性連接該反閘及該比較器。
  19. 根據申請專利範圍第12項所述之可儲存除錯資料的處理器之快取,其中各除錯資料寫回器包含一第九多工器、一第二或閘及一第三或閘,該第九多工器電性連接該暫存模組及各位址儲體,該第二或閘及該第三或閘電性連接該各標籤儲體。
  20. 根據申請專利範圍第12項所述之可儲存除錯資料的處理器之快取,其中該快取另包含一管線化暫存器電性連接於該除錯資源產生器與各來源資料寫入器之間。
  21. 一種可儲存除錯資料的處理器之控制方法,該處理器包含一核心及一快取,該快取具有一暫存模組、一除錯資源產生器、數個來源資料寫入器、一快取控制器、數個比較器、數個除錯資料保護器、數個除錯資料寫回器、數個資料儲體、數個標籤儲體及數個位址儲體,該暫存模組電性連接該除錯資源產生器、該來源資料寫入器、該除錯資料保護器及該除錯資料寫回器,該來源資料寫 入器電性連接該除錯資源產生器、該快取控制器及該資料儲體,該比較器電性連接該除錯資料保護器與該標籤儲體,該標籤儲體電性連接該除錯資料保護器及該除錯資料寫回器,該除錯資料寫回器電性連接該位址儲體,該控制方法包含下列步驟:由該核心設定該暫存模組,使至少一資料儲體、標籤儲體及位址儲體合為至少一除錯通道;由一除錯單元測試一核心,並擷取該核心的輸出訊號作為一除錯資料;由該除錯資源產生器產生該除錯資料的一儲存位址;由該來源資料寫入器依據該儲存位址將該除錯資料寫入該除錯通道之資料儲體;及由該除錯資源產生器判斷該除錯通道之資料儲體是否未存滿,若判斷為是,該除錯資源產生器產生更新該儲存位址,供該除錯通道之資料儲體儲存另一除錯資料,若判斷為否,該來源資料寫入器禁止該除錯資料寫入該除錯通道之資料儲體,待該除錯單元測試結束後,該除錯通道之資料儲體輸出所儲存的除錯資料,再由該核心清空該除錯通道之資料儲體。
  22. 根據申請專利範圍第21項所述之可儲存除錯資料的處理器之控制方法,其中該除錯單元測試結束後,進行下列步驟:該核心執行一指令,用以清空該資料儲體的任一列位址中的資料;及該快取控制器判斷該列位址是否位於該除錯通道之資料儲體,若判斷為是,將該列位址中的資料寫至一晶片輸入輸出介面對應於該列位址的記憶體位址,該除錯通道之資料儲體中的資料尚未完全寫至該晶片輸入輸出介面對應於該列位址的記憶體位址前,重 新進行上述列位址是否位於該除錯通道之資料儲體之判斷,若判斷為否,將該列位址中的資料寫至該列位址對應於一外部記憶體的位址。
TW102137922A 2013-10-21 2013-10-21 可儲存除錯資料的處理器、其快取及控制方法 TWI514145B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW102137922A TWI514145B (zh) 2013-10-21 2013-10-21 可儲存除錯資料的處理器、其快取及控制方法
US14/256,565 US9436611B2 (en) 2013-10-21 2014-04-18 Processor, cache memory of the processor and control method of the processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW102137922A TWI514145B (zh) 2013-10-21 2013-10-21 可儲存除錯資料的處理器、其快取及控制方法

Publications (2)

Publication Number Publication Date
TW201516680A true TW201516680A (zh) 2015-05-01
TWI514145B TWI514145B (zh) 2015-12-21

Family

ID=52827231

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102137922A TWI514145B (zh) 2013-10-21 2013-10-21 可儲存除錯資料的處理器、其快取及控制方法

Country Status (2)

Country Link
US (1) US9436611B2 (zh)
TW (1) TWI514145B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI681293B (zh) * 2018-01-10 2020-01-01 瑞昱半導體股份有限公司 暫存記憶體處理方法、暫存記憶體程式與記憶裝置
TWI698745B (zh) * 2015-05-20 2020-07-11 美商高通公司 快取記憶體、用於操作快取記憶體之方法及其之非暫時性電腦可讀媒體
TWI741271B (zh) * 2018-10-02 2021-10-01 智微科技股份有限公司 資料保護方法以及相關儲存裝置
US11144217B2 (en) 2018-10-02 2021-10-12 Jmicron Technology Corp. Data protection method and associated storage device
US11636048B2 (en) 2018-07-31 2023-04-25 Arm Limited Handling guard tag loss

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI514148B (zh) * 2015-03-16 2015-12-21 Univ Nat Sun Yat Sen 快取記憶體
US10606599B2 (en) * 2016-12-09 2020-03-31 Advanced Micro Devices, Inc. Operation cache
US9875167B1 (en) * 2017-03-29 2018-01-23 Google Inc. Distributed hardware tracing
US10365987B2 (en) 2017-03-29 2019-07-30 Google Llc Synchronous hardware event collection
US10534687B2 (en) * 2017-06-30 2020-01-14 Intel Corporation Method and system for cache agent trace and capture
US10445211B2 (en) * 2017-08-28 2019-10-15 Microsoft Technology Licensing, Llc Logging trace data for program code execution at an instruction level
TWI802792B (zh) * 2020-04-17 2023-05-21 新唐科技股份有限公司 偵錯裝置及其操作方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117690A1 (en) * 2002-12-13 2004-06-17 Andersson Anders J. Method and apparatus for using a hardware disk controller for storing processor execution trace information on a storage device
TWI270769B (en) * 2004-11-15 2007-01-11 Sunplus Technology Co Ltd Trace, debug method and system for a processor
US7472218B2 (en) * 2006-09-08 2008-12-30 International Business Machines Corporation Assisted trace facility to improve CPU cache performance
US7689868B2 (en) * 2007-06-22 2010-03-30 Sony Computer Entertainment Inc. Memory handling techniques to facilitate debugging
US7827356B2 (en) * 2007-09-10 2010-11-02 Qualcomm Incorporated System and method of using an N-way cache
JP5202130B2 (ja) 2008-06-24 2013-06-05 株式会社東芝 キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
US8464032B2 (en) * 2009-07-10 2013-06-11 Via Technologies, Inc. Microprocessor integrated circuit with first processor that outputs debug information in response to reset by second processor of the integrated circuit
TW201145016A (en) * 2010-06-15 2011-12-16 Nat Univ Chung Cheng Non-intrusive debugging framework for parallel software based on super multi-core framework
US8966319B2 (en) * 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
CN103597545B (zh) 2011-06-09 2016-10-19 株式会社半导体能源研究所 高速缓冲存储器及其驱动方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI698745B (zh) * 2015-05-20 2020-07-11 美商高通公司 快取記憶體、用於操作快取記憶體之方法及其之非暫時性電腦可讀媒體
TWI681293B (zh) * 2018-01-10 2020-01-01 瑞昱半導體股份有限公司 暫存記憶體處理方法、暫存記憶體程式與記憶裝置
US11636048B2 (en) 2018-07-31 2023-04-25 Arm Limited Handling guard tag loss
TWI801622B (zh) * 2018-07-31 2023-05-11 英商Arm股份有限公司 用於處理保護標籤損失的裝置、方法、電腦程式、與儲存媒體
TWI741271B (zh) * 2018-10-02 2021-10-01 智微科技股份有限公司 資料保護方法以及相關儲存裝置
US11144217B2 (en) 2018-10-02 2021-10-12 Jmicron Technology Corp. Data protection method and associated storage device

Also Published As

Publication number Publication date
US9436611B2 (en) 2016-09-06
US20150113228A1 (en) 2015-04-23
TWI514145B (zh) 2015-12-21

Similar Documents

Publication Publication Date Title
TWI514145B (zh) 可儲存除錯資料的處理器、其快取及控制方法
KR101221512B1 (ko) 실행 유닛 내의 데이터 전달을 위한 시스템 및 방법
US20240020134A1 (en) Overflow detection and correction in state machine engines
CN103221995B (zh) 显示管中的流翻译
CN104252425A (zh) 一种指令缓存的管理方法和处理器
US6802036B2 (en) High-speed first-in-first-out buffer
CN104238957A (zh) 串行外围接口控制器、串行外围接口快闪存储器及其存取方法和存取控制方法
US20120047311A1 (en) Method and system of handling non-aligned memory accesses
JP4833586B2 (ja) データキャッシュが内蔵された半導体集積回路およびそれの実速度テスト方法
US10606756B2 (en) Impeding malicious observation of CPU cache operations
KR20040073167A (ko) 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법
US7859937B2 (en) Apparatus and method for controlling write access to a group of storage elements
CN114185837A (zh) 片上系统和调节电压和频率的方法
US20150154124A1 (en) Secure data partition in nonvolatile memory systems
US7028129B2 (en) Method and apparatus for converting an external memory access into a local memory access in a processor core
US10180907B2 (en) Processor and method
CN105453062A (zh) 实现硬件自动设备操作启动器
US9274794B2 (en) Processor and instruction processing method in processor
JP6049564B2 (ja) データトレース回路、集積回路およびデータトレース方法
KR101538425B1 (ko) 프로세서 및 프로세서에서의 명령 처리방법
JP2002091795A (ja) キャッシュ制御装置
JPH0981458A (ja) データ処理システムにおけるキャッシュのアクセス方法
JPH02143348A (ja) 情報処理装置

Legal Events

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