[go: up one dir, main page]

TW201009574A - Debug instruction for use in a multi-threaded data processing system - Google Patents

Debug instruction for use in a multi-threaded data processing system Download PDF

Info

Publication number
TW201009574A
TW201009574A TW098119969A TW98119969A TW201009574A TW 201009574 A TW201009574 A TW 201009574A TW 098119969 A TW098119969 A TW 098119969A TW 98119969 A TW98119969 A TW 98119969A TW 201009574 A TW201009574 A TW 201009574A
Authority
TW
Taiwan
Prior art keywords
thread
debug
processor
event
dnht
Prior art date
Application number
TW098119969A
Other languages
English (en)
Inventor
William C Moyer
Michael D Snyder
Gary L Whisenhunt
Original Assignee
Freescale Semiconductor 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 Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of TW201009574A publication Critical patent/TW201009574A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

201009574 六、發明說明: 【發明所屬之技術領域】 此揭示内容-般而言係關於資料處理系統,且更 言係關於供用於一多執行緒資料處理系統之一除錯於、人而 此申請案已於2_年8月20曰在美國申請為專二:。 第 12/195220 號。 τ 1 案 【先前技術】 多執行緒資料處理器允許同時執行多個執行緒 •㈣開發期間使用除錯指令來允許除錯作業發生。秋:在 多執行緒處理器之除錯提出非多執行绪處理器 =, 特定挑戰。舉例而言,當對多執行緒處理 子在之 當一除錯點到達一既定執行緒制 除錯時, 執行。 野需要控制選定執行緒之 【發明内容】 多執行緒資料處理器允許同時執行多 φ ί一多執行緒處理器中,可執行對應於—第::即’ 第-組指令及對應於__第二執行緒之 仃緒之- 其中該第-組指令及該第二組指第一組指令兩者, 出於除錯目的而需要經改良曰J仃可重疊。當前’ 中,-新除錯指令一在一良處個實施例 處理器上之指令執行與軟體除錯監視器或多執行绪 之間提供—橋。舉例而言,如 a '外部除錯設施 件發送至—處理器上之—個許軟體將-除錯事 上之-個或多個執行緒自 =緒、或使—處理器 運仃狀態轉變為一停止狀態, 140790.doc 201009574 二:部除錯器一傳遞至該外部除錯器之訊息及保留於 “自身中可用於傳遞額外資訊之位元兩 提供用信號通知一個或多個執行緒具有一除錯 事件之機制’且回應於此,對於彼等執行绪而言或被停止 (或可使整個處理器停止)或在針對執行緒啟用除錯事件之 情形下接收-除錯事件以作為一除錯中斷處理(處於内部 除錯模式)(亦即,可針對一多執行緒處理器之每-個別執 行绪啟用或停用除錯事件 在一個實施例中,dnht指令包含一嵌入執行緒說明棚 位’且在某些實施例中亦可包含一密瑜說明符。同樣,在 -個實施例中’使用一仙控制欄位來指定一特定停止作 業。可利用該指令之執行緒攔位或由該指令中之一密瑜說 明符所選擇之-密鎗之内容來指定將向哪一執行緒或哪些 執行緒發it除錯事件且導致由祕丈控制欄位指示之一停 止作業或發生於彼等所指定執行緒之基於軟體之除錯中 斷因此’ dnht指令允許在一個執行緒上運行之程式碼導 ❹ 致除錯活動與處理器上選定執行緒中油指令之執行接近 同步地發生在彼特定執行绪中。 【實施方式】 如本文中所使用’術語「匯流排」用於指代複數個作號 或導體’其可用於傳送—個或多個各種類型之資訊❹ 資料位it控制或狀態。如本文中所論述之導體可參照 作為-單個導體、複數個導體、單向導體或雙向導體來: 以圖解說明或描述。然而,不同實施例可使該等導體之實 140790.doc -4. 201009574 施方案變化。舉例而言,可使用若干單獨單向導體而非雙 向導體,且反之亦然。同樣,可以一以串列方式或以一時 間多工方式傳送多個信號之單個導體來替代複數個導體。 同樣地,可將載送多個信號之單個導體分出成載送若干子 組此等k號之各種不同導體》因此,存在諸多用於傳送信 號之選項。 當涉及分別將一信號、狀態位元或類似裝置再現為其邏 輯真或邏輯假狀態時’在本文中使用術語「確認」或「設 定」及「否定」(或「去確認」或「清除」)。若邏輯真狀 態係一邏輯位準1,則邏輯假狀態係一邏輯位準〇。且若邏 輯真狀態係一邏輯位準0,則邏輯假狀態係一邏輯位準1。 本文中所述之每一信號皆可設計為正或負邏輯,其中負 邏輯可由信號名稱上方之一橫號或名稱後之一星號指 示。在一負邏輯信號之情形下,該信號係低態有效,其中 邏輯真狀態對應於一邏輯位準0。在一正邏輯信號之情形 下,該信號係高態有效’其中邏輯真狀態對應於一邏輯位 準1。注意,本文中所述信號中之任一者皆可設計為負邏 輯信號或正邏輯信號。因此,在替代實施例中,描述為正 邏輯信號之彼等信號可實施為負邏輯信號,且描述為負邏 輯信號之彼等信號可實施為正邏輯信號。 在本文中使用括號來指示一匯流排之導體或一值之位元 位置。舉例而言’ 「匯流排60[7:0]」或「匯流排60之導體 [7:0]」指示匯流排60之八個低位導體,且「位址位元 [7:0]」或「位址[7:0]」指示一位址值之八個低位位元。在 I40790.doc 201009574 一數字前之符號「$」指示該數字係以其十六進製或基數 十六形式表示。在一數字前之符號「%」指示該數字係以 其二進制或基數二形式表示。 圖1圖解說明一與本發明之一實施例一致之資料處理系 統10。資料處理系統1 〇可係一晶片上系統。資料處理系統 10可於一單個積體電路上或複數個積體電路上實施。資料 處理系統10包含可經由匯流排20耦合之一處理器i 2、一外 部除錯電路14、一I/O模組16及一記憶體18。在替代實施 例中,記憶體18可係任一類型之記憶體且可位於與處理器 12相同之積體電路上或一與處理器12不同的積體電路上。 圮憶體18可係任一類型之記憶體,諸如(例如)一唯讀記憶 體(ROM)、一隨機存取記憶體(RAM)、非揮發性記憶體⑽ 如,快閃)等等。同樣,記憶體18可係位於另一週邊或從 動裝置内或一不同積體電路上之一記憶體或其他資料儲存 器。外部除錯電路14可含納於與處理器12相同之積體電路 上’或可實施為一獨立於含有處理器12之積體電路或晶片 上系統之單㈣統。㈣代實施射,S流排20可係任一 類型之適宜之互連’包含一交叉、點對點連接、一互連階 層或任一類型之適宜之互連機制。 圖2係與圖i之資料處理系統1〇相關聯之處理器^之一 ^ 塊圖。處理器12可包含一指令管22、執行單元24、指N 取單元26、控制電路28、通用暫存器3〇、載入/儲存^ 32、匯流排介面單元卿)34及内部除錯電路4〇。控制, 路28包含執行緒控制29及加吨㈣暫存器3卜處理器】 M0790.doc -6 - 201009574 可經由雜合至BIU 34之匯流排顺資料處理系統Μ之其他 組件進行通信。内部除錯電路4〇可經由圖2中所示之j除 錯埠耦合至外部除錯單元,例如一依從IEEE 18丁〇5〇〇1之
NeWM除錯單元。外部除錯單元可包含圖t之外部除錯電 、 $14之所有部分或-部分。NeXUS,系位於德克薩斯州、 奥斯灯市之Freescale Semic〇nductor,Inc•之一商標。除錯 埠可係一串列介面(例如JTAG)或可實施為一並行埠、串^ 4及並行琿之一組合、一乙太網路(Ethernet)埠或作為一組 響至’!達晶片上或晶片外電路之介面信號。内部除錯電路4〇可 包含除錯暫存器42及除錯控制電路44。除錯暫存器42可包 含按用於控制各種除錯相關事件之棚位分組之位元包含 指令斷點、資料斷點、觀察點及與除錯相關聯之其他傳訊 及事件。此等除錯資源可在處理器12與外部除錯電路& 間共享。 現在參照圖3 ’亦可提供除錯暫存器42内之暫存器以錯 鲁 翻於實施指令及/或資料存取斷點及觀察點事件之一個 或多個位址比較值、位址範圍及資料匹配值以及其他除錯 控制準則。此等位址及資料值連同各種控制準則一起用於 •衫處理器12何時出於產生—斷點或觀察點事件目的而存 取-個或多個預定指令位址或資料位址,此可導致處理器 12在内部除錯模式活動時開始對一除錯例外狀況之例外狀 況處理,導致處理器12在外部除錯模式活動時進入一其中 其對由外部除錯電路14透過内部除錯單元4〇之除錯璋提供 之命令做出回應之除錯停止模式,或可導致處理器12停止 140790.doc 201009574 ’除錯暫存器42
存指令位址。除錯暫存器42可進一 或中斷一個或多個選定執行緒。舉例而言,除s 可包含各種除錯控制暫存器,包含除錯控 κ於位址比較目的而儲 步包含資料位址比較暫 存器47(DAC 1及DAC2P資料位址比較暫存器47可出於位 址比較目的儲存而資料存取位址。除錯暫存器42可進一步 包含DNHT除錯事件暫存器52(DNHTDEVTR〇)、除錯狀態 暫存器49、除錯計數器51(DBcNT1及DBCNT2)及資料值比 較暫存器53(DVC1及DVC2)。除錯暫存器42可係使用者之 軟體程式化模型之一部分。當發生一個或多個計數啟用事 件時’除錯計數器5 1可經組態以倒計數。當一計數值達到 〇時,可用信號通知一除錯計數事件,且可產生一除錯中 斷(若啟用)。資料值比較暫存器53可出於資料比較目的而 儲存資料值。 在内部除錯模式中’可由軟體來管理此等暫存器資源, 且不需要外部除錯電路使用。軟體可透過使用移進移出係 軟體指令之專用暫存器指令之資料移動來組態該等暫存器 從而初始化用於實施基於軟體之除錯活動之個別除錯暫存 器,其中所啟用之除錯事件導致發生軟髏除錯中斷(若啟 用中斷)。然後,一軟體中斷處理器可實施由資料處理系 統10之軟體程式員所確定之各種所期望活動。 140790.doc 201009574 在外部除錯模式令,可指派 器42之所共享除錯暫存器 路14對除錯暫存 事件發生時,處理器12可進入僖1當一經組態之除錯 了進入—停止狀態且等待一將由外 部除錯電路Μ經由除錯埠提供 -V 0# , ^ a a 田啟用外部除錯模 式時,軟體不再具有所共享除錯資源之控制。同樣,如圖 4中所圖解說明,除錯暫存器42可包含各種外部除錯控制 暫存器5G,例如刪⑽及咖⑶。不同於圖3之暫存
器,可位於處理器12内之除錯暫存器42内或別處之圖化 暫存器並非使用者之軟體程式化模型之一部分。亦即,於 處理器12上執仃之軟體不具有對外部除錯控制暫存器之 可見性。外部除錯電路14可直接經由除錯埠(如圖2中所示) 來存取所共享除錯資源及任何專用外部除錯資源(例如外 4除錯控制暫存器5〇)。圖2之除錯埠可(例如)實施為一 JTAG TAP埠。在一個實施例中,除錯暫存器42及外部除 錯控制暫存器50可映射為具有含納於用於各種jtag指令 之一個或多個欄位内之暫存器選擇編碼之jTAG資料暫存 益,其藉助除錯器透過JTAG IR&DR作業達成對暫存器之 讀取及寫入存取。替代實施例可使用其他協定以供信號通 知及映射或選擇暫存器。 共享一組暫存器需要實施較少處理器12資源,且此可簡 化用於資料處理系統1〇之使用者之程式化模型。内部除錯 電路40監視處理器12内之活動,且回應於基於存在於處理 器12内之除錯暫存器42内或別處之所儲存除錯組態資訊偵 測一個或多個預定條件,可產生一個或多個資料斷點事 140790.doc 201009574 件、指令斷點事件、指令執行事件,例如一分支或陷阱發 生事件、一指令完成事件及類似事件。以此作業方式,處 理器12如熟習此項技術者可瞭解般起作用。 圖5係根據一個實施例之與圖1之資料處理系統相關聯之 一外部除錯控制暫存器EDBCR0之一圖表。EDBCR0可包 含為外部除錯控制暫存器50之一部分,其可係或可並非内 部除錯單元40内之除錯暫存器42之一部分,但其不可由於 處理器12上執行之軟體直接存取。EDBCR0可用於儲存供 藉助一外部除錯器(例如,外部除錯電路14)除錯時使用之 除錯組態資訊。儘管圖5圖解說明本發明之使用特定欄位 之一特定實施例,但本發明之替代實施例可使用每一欄位 中具有不同數目之位元之不同欄位。圖5中所繪示之特定 欄位僅係出於說明性目的而顯示。舉例而言,EDBCRO可 包含32個位元。EDBCR0可包含各種欄位,包含一EDM位 元欄位、一DNH—EN位元欄位、一 DNHT_EN位元欄位及一 DNHT—CTL·多位元欄位。此等欄位僅具例示性且EDBCR0 可包含較少或額外欄位。另外’此等欄位可以不同方式配 置且可視需要包含一不同數目之位元。EDBCR0亦可包含 所保留之位元欄位5至31,其可在將來使用或可用於提供 額外功能。舉例而言,EDBCR0可係一僅可由外部除錯電 路經由除錯埠寫入之暫存器,其中該外部除錯電路係位於 處理器12外部且可係位於與處理器12相同或不同的一積體 電路上。舉例而言,EDBCRO並非使用者之軟體程式化模 型中之一控制暫存器。可使用位於處理器12内部或外部之 140790.doc •10· 201009574 任一類型之儲存電路來實施EDBCR〇o另一選擇為,一個 或多個其他外料錯控制暫存器(例如位料部除錯控制 暫存器50内)可包含EDBCR〇之欄位而非edbcr〇中之一者 或多者。
圖6以一表格形式顯示根據一個實施例之圖5之EDBCR0 之一部分之功能。EDM係一用於指示是否啟用或停用外部 除錯模式之位元欄位(且因此可稱為一外部除錯模式啟用 攔位)。在一個實施例中,當停用外部除錯模式時,將内 部除錯模式視為啟用。(另一選擇為,可諸如(例如)在 DBCR0内使用一用於内部除錯模式之單獨啟用棚位。)在 一個實例t ’當設定EDM搁位(例如,具有二進制们) 時’處理器以外部除錯模式運作,且當清除麵棚位 (例如’具有二進制值〇)時’處理器12以内部除錯模式運 作舉例而5,當EDM位兀設定為1時,將控制暫存器(例 如DBCR0-4)連同其他除錯暫存器一起置於外部除錯電路 14之排他控制下且資料處理系統i ^軟體不能將資訊寫入至 此等控制暫存器。同樣,當EDM位元設定為㈣,一合格 除錯條件將藉由更新一外部除錯狀態暫存器(例如 EMSR0,未顯示)中之—對應位元來產生—外部除錯事件 且導致該處理器停止。在使用一用於内部除錯模式之單獨 啟用攔位之一個實施例中,將_位元設定為旧先於内 部除錯模式啟用欄位。 仍然參照圖6,DNH EN係一指示一除料、s ^产 — 相不除錯通知停止(dnh) 指令將如何運作之啟用攔位。舉例而言,當清除 140790.doc 201009574 DNH—EN(例如,具有二進制值0)時,一 dnh指令之執行將 導致一除錯例外狀況,若啟用中斷,則此將導致一除錯中 斷。當設定DNH_EN(例如,具有二進制值1)時’一dnh指 令之執行將導致該處理器停止(例如,此時外部除錯電路 14可經由除錯埠提供除錯命令)。注意,一 dnh指令不包含 任一執行緒資訊以使得一 dnh指令在任一執行緒中之執行 (當設定DNH_EN時)導致處理器12停止,從而所有活動執 行緒皆停止。亦即,一 dnh指令在除錯期間不提供任一用 於控制個別執行或執行緒群組之機制。 仍然參照圖6,DNHT_EN係一指示一 dnht指令將如何運 作之啟用攔位。舉例而言,當清除DNHT_EN(例如,具有 二進制值0)時,一 dnht指令在任一執行緒中之執行將導致 一除錯例外狀況,若啟用中斷,則此將在每一活動選定執 行緒中導致一除錯中斷且使其對應旗標位元在 DNHTEVTR0中設定,如下文將更詳細地描述)。當設定 DNHT_EN(例如,具有二進制值1)時,一 dnht指令之執行 將導致如由DNHT_CTL欄位指示之一停止作業。舉例而 言,該dnht指令之執行可基於DNHT_CTL之設定值來導致 處理器或選定執行緒停止。如下文將參照圖7描述,dnht 指令可直接或間接識別或選擇一特定子組之執行緒。 仍然參照圖6,DNHT_CTL係一在設定DNHT_EN(例如, 具有二進制值1)時指示將實施一停止作業(亦稱為一停止功 能或停止行動)之行動控制欄位。在所圖解說明之實施例 中,DNHT_CTL係一兩位元欄位。若該欄位之二進制值係 140790.doc 12 201009574 00,則DNHTDEVTR0中之任一設定位元將導致處理器停 止。若該攔位之二進制值係01,則DNHTDEVTR0中之一 設定位元將導致處理器僅在對應執行緒活動時或當對應執 行緒變得啟動時停止。若該欄位之二進制值係1〇,則dnht 指令將導致處理器使在DNHTDEVTRO中設定其旗標位元 之一執行緒之正常執行緒啟動暫停且將替代地在已啟動該 執行緒時通知外部除錯器該事件。若該執行緒當前活動’ 則其變得休眠,且向該外部除錯器發出通知。該處理器繼 續對所有不使其對應旗標位元在DNHTDEVTRO中設定之 執行緒保持活動。在所圖解說明之實施例中,保留用於該 攔位之二進制值11。注意,在替代實施例中,可由 DNHT—CTL界定不同的停止作業,且可使用不同的二進制 值來指示該等停止作業。同樣,在替代實施例中,可視需 要使用更多或更少位元來實施DNHT_CTL欄位。 在一個實施例中,如上所述,分別由DNH_EN及DNHT_EN 攔位界定一dnh或dnht指令之作業,而不管處理器12是否 正以内部或外部除錯模式運作(亦即,不管EDM之值為 何)。以此方式,該dnh及dnht甚至可在處於内部除錯模式 時導致一處理器停止(或如由DNHT_CTL欄位在一 dnht指令 之情形下所界定之其他停止作業),以便外部除錯電路可 在處理器12正按内部除錯模式運作時對處理器12進行除 錯。然而,在一替代實施例中,當不啟用外部除錯模式時 (當EDM清除為0時),一 dnh或dnht指令將始終產生一非法 指令例外狀況(且忽略DNH_EN及DNHT_EN)。在此替代實 140790.doc -13- 201009574 施例中,DNH_EN及DNHT—ΕΝ之值僅在内部除錯模式(當 EDM設定為1時)中分別確定dnh及dnht指令之作業。然 而,以下描述假定一 dnh或dnht指令之作業分別由DNH一EN 及DNHT_EN攔位加以界定而不管模式為何’從而使得 DNH_EN及DNHT—EN之值無需由EDM之值限制。 圖7圖解說明一除錯通知停止執行緒(dnht)指令’其中在 一個實施例中,dnht指令之執行導致處理器在外部除錯設 施已啟用此行動(例如,藉由將DNHT_EN設定為丨)時實施 一由DNHT_CTL攔位選擇之停止作業。當處理器12或處理 器12中之一個或多個選定執行緒停止時,將dui攔位之内 容發送至外部除錯設施(例如,外部除錯電路14)以識 停止之原因。可由dnht指令經由一 thread_select欄位直接 或間接指示該等選定執行緒。在一個實施例中’ ^ ^^姆設 thread_select攔位係一 8位元棚位,其中該攔位内之一、” A —-個 定位元識別處理器12之一對應執行緒。舉例而& ’社 實施例中,經由執行緒控制29處理器12可正執行多達8個 執行緒(執行緒0至執行緒7),其中該thread_select攔位中之 白 每一位元對應於該8個執行緒中之一者。舉例而言’ 至左,每一位元可分別對應於執行緒0至執行緒7 °以此方 式,當設定該thread_select欄位之一特定位元(例如’具有 二進制值1)時,則選擇或識別對應執行緒。舉例而言’ μ thread_select欄位之一值00000001可指示選擇執行緒〇 見 I?- 一值00001101可指示選擇執行緒0、2及3。因此’ ^ thread_select棚位可直接指示選擇哪些執行緒。在一個實 140790.doc • 14· 201009574 施例中,若dnht指令之該thread_select欄位具有一值 00000000,則可由thread_key暫存器31間接選擇該等執行 緒。亦即,thread_key暫存器31可包含8個位元,該8個位 元以一與該thread_select欄位類似之方式選擇一個或多個 執行緒。注意,在替代實施例中,該thread_select欄位及 該thread_key暫存器可使用不同格式(例如其他經編碼格 式)來選擇一個或多個執行緒或執行緒群組。同樣,注 意,thread_key暫存器31可包含於處理器12或系統10内任 一處。另一選擇為,thread__key暫存器3 1可不由dnht指令 使用且因此不存在於處理器12中。執行緒密鑰暫存器31之 使用允許該等選定執行緒將受一 dnht指令之一特定示例之 執行的影響而被確定或修改,而不改變該dnht指令之二進 制值,且如此可提供一更靈活的除錯機制,此乃因對於某 些實施例,不可容易地修改指令程式碼,例如當自一唯讀 記憶體(ROM、OTP、EPROM、EEROM等等)執行時。 注意,若DNHT_EN位元先前尚未由外部除錯設施(例 如,外部除錯電路14)設定,則執行dnht指令針對由 thread_select欄位或由thread_key暫存器31選擇之選定執行 緒產生一除錯事件例外狀況。除錯事件例外狀況將導致執 行緒軟體在啟用除錯中斷時中斷,且針對一對應活動執行 緒存在一除錯事件。 圖7中所圖解說明之dnht指令可使用任何種類之不同格 式且可包含除操作碼(例如,dnht指令之位元0至5)、子操 作碼(例如,dnht指令之位元21-30)及thread_select(例如, 140790.doc -15- 201009574 dnht指令之位元13-20)之外的其他欄位。舉例而言,如圖7 中所圖解說明,dnht指令亦包含一 dui攔位。舉例而言,若 處理器12回應於一 dnht指令而停止,則可將該dui欄位發送 至外部除錯電路以識別該停止之原因。 圖8係與圖1之資料處理系統相關聯之dnht除錯事件暫存 器(DNHTDEVTR0)52之一圖表。儘管圖8圖解說明本發明 ^ 之使用特定欄位之一特定實施例,但本發明之替代實施例 可使用每一欄位中具有不同數目之位元之不同攔位。圖8 中所繪示之特定襴位僅係出於說明性目的而顯示。舉例而 @ 言,DNHTDEVTR0可包含32個位元。DNHTDEVTR0可包 含各種欄位,包含位元事件控制爛位,例如event_thread 7、event thread 6、event thread 5、event_thread 4、 event_thread 3 、 event_thread 2 、 eventthread 1 及 event_thread 0。此等欄位僅具例示性且DNHTDEVTRO可 包含較少或額外欄位。另外,可以不同方式配置此等攔 位。DNHTDEVTRO亦可包含所保留位元欄位0至23,該等 癰 所保留位元欄位可在將來使用或用於其他功能。可使用任 V 一類型之儲存電路來實施DNHTDEVTRO。 DNHTDEVTRO可包含為除錯暫存器42之一部分,除錯 暫存器42可位於内部除錯單元40内。可使用DNHTDEVTRO 來控制除錯設施且特定而言使特定行動能夠在一 dnht指令 之執行期間發生。可使用DNHTDEVTRO來為個別執行緒 保存所記入之除錯事件。當在DNHTDEVTRO中設定一位 元時,與彼事件相關聯之執行緒可在DNHT—EN設定為1時 140790.doc -16· 201009574 進入一如由DNHT_CTL界定之除錯停止模式。否則,若 DNHT_EN清除為0,則DNHTDEVTR0中之經設定位元將導 致一除錯例外狀況發生於該執行緒(且若啟用中斷,則導 致一中斷)。硬體基於該dnht指令之執行來在DNHTDEVTR0 中設定選定位元。(注意,DNHTDEVTR0中之位元可稱為 旗標位元,其係基於該dnht指令之執行而設定。)舉例而 '言,當在一特定執行緒中執行一 dnht指令時,設定 DNHTDEVTR0中對應於由該dnht指令之thread_select欄位 參 (或由thread_key暫存器31)選擇之每一執行緒之一位元(亦 即,一旗標位元)以將事件記入於該等選定一個或多個執 行緒中。(注意,在某些情形中’ dnht指令不選擇執行緒。 在此情形中,一 dnht指令之執行不做什麼’亦即可運作為 如一不作業NOP指令。) 圖9以一表格形式顯示圖8之DNHTDEVTR0之一部分之 功能。Event thread 7係一用於日不疋否已§己入一執行緒7 事件之一位元攔位。舉例而言,二進制值0可指示尚未記 I 入執行緒7事件,且二進制值1可指示已記入一執行緒7事 件。Event thread 6係〆用於才日不疋否已5己入一執行緒6事 .件之一位元欄位。舉例而言’二進制值0可指示尚未記入 執行緒6事件,且二進制值1可指示已記入一執行緒6事 件。Event thread 5係一"用於^日不疋否已®己入'執们*緒5事 件之一位元攔位。舉例而言,二進制值〇可指示尚未記入 一執行緒5事件,且二進制值1可指示已記入一執行緒5事 件。Event thread 4係·一用於指不疋否已§己入·一執行緒4事 140790.doc -17- 201009574 件之一位元攔位。舉例而言’二進制值〇可指示尚未記入 一執行緒4事件,且二進制值1可指示已記入一執行緒4事 件。Event_thread 3係一用於才曰示疋否已B己入一執行緒3事 件之一位元攔位。舉例而言’二進制值〇可指示尚未記入 一執行緒3事件,且二進制值1可指示已記入一執行緒3事 件。Event_thread 2係一用於指示是否已記入一執行緒2事 件之一位元棚位。舉例而言,二進制值〇可指示尚未記入 一執行緒2事件,且二進制值1可指不已記入一執行緒2事 件。Event_thread 1係一用於指示是否已記入一執行緒1事 件之一位元欄位。舉例而言’二進制值〇可指示尚未記入 一執行緒1事件,且二進制值1可指示已記入一執行緒1事 件。Event_thread 0係一用於指示是否已記入一執行緒0事 件之一位元攔位。舉例而言,二進制值〇可指示尚未記入 一執行緒〇事件,且二進制值1可指示已記入一執行緒〇事 件。 在一個實施例中,當在一特定執行緒中執行一 dnht指令 時,則硬體設定DNHTDEVTRO之對應於每一執行緒(若存 在,則由dnht指令選擇)之event_thread欄位。在一個實施 例中,除錯控制電路44内之電路監視DNHTDEVTRO以知 曉何時已記入一事件或若干事件。(注意,可在每次執行 一 dnht指令時將一事件記入於DNHTDEVTRO中。)當已記 入一執行緒事件時,則該執行緒事件導致如由DNHT_CTL (若DNHT_EN係1)界定之一停止作業或可導致一除錯例外 狀況(若DNHT_EN係0)。此外,該除錯例外狀況在啟用除 140790.doc • 18 · 201009574 錯中斷時導致一除錯中斷。 在一個實施例中,當_ΗΤ_ΕΝ係0時,dnht指令允許任 一執行緒在-個或多個執行緒(包含其自身)中導致除錯例 外狀況,其中此等除錯例外狀況同時或幾乎同時發生。舉 门而〇 ^'任執仃緒執行一 dnht指令,則由dnht指令之 thread」eleet棚位(或由thread_key暫存器)選擇之任一執行 緒接收-除錯例外狀況,且若啟用除錯中斷,則當前活動 线定執行緒中之任_者將產生—除錯中n選定執 订緒在其接收-除錯例外狀況時不活動,則該選定執行緒 將在變得活動時發生-中斷。因此,在-個實施例中,當 執行(在任—執行緒中)-咖指令時,更新DNHTDEVTR〇 暫存器以將事件記入於一個或多個執行緒中(若存在,則 ^該㈣指令選擇)。注意,—個衫執行緒中之dnht指令 仃可選擇除其自身外之—個或多個執行緒或可包含其自 二為定執行緒。對於活動之每一選定執行緒,若在 彼“緒中啟用除錯中斷,則使彼執行緒之正常執行流程 從而可發生一除錯中斷。然後,一除錯中斷處理器 I在彼執㈣巾執行以服務於㈣錯中斷。因此,在發生 之每—活動執行緒中,該等中斷將同時或接近同時 虎亦即’發生一中斷之一執行緒在記入除錯例外狀 令之過程中),且因此等待直i達到在了執:;多循環指 逹到—可中斷狀態。然 ^在一個實施例中,此自記入該除錯例外狀況之時間起 發生於-小數目之循環内。舉例而言,在一個實施例中, 140790.doc -19· 201009574 接近同時可係指彼此發生於不多於ίο個循環内。 如上文所論述,當將DNHT_EN設定為1且執行一 dnht指 令時,實施一停止作業,如由DNHT_CTL所指示。當將 DNHT—CTL設定為10時,由dnht指令選擇之選定執行緒(其 可係包含其自身之執行緒0-7中之任一者或多者)「停 止」。亦即,在一個實施例中,在選定執行緒中仿真除錯 停止模式,以便自選定執行緒之觀點來看,處理器12看起 來像停止。外部除錯電路14然後可存取任一已停止執行 緒。未由dnht指令選擇之執行緒不停止。亦即,處理器12 繼續對未選擇之所有執行緒保持活動(亦即,不將一事件 記入於DNHTDEVTR0中)。在一個實施例中,藉由使選定 執行緒不由執行緒排程器29啟動(亦即,選定執行緒之啟 動暫停)來仿真一選定執行緒之除錯停止模式。亦即,執 行緒排程器29可以如此項技術中所習知之各種不同方式來 啟動執行緒0-7中之每一者。舉例而言,執行緒排程器29 可以一循環方式將一預定量之時間提供至每一執行緒。然 而,當將DNHT_CTL設定為10時,在執行一 dnht指令(假定 DNHT_EN=1)且為特定執行緒將一除錯事件記入於 DNHTEVNTR0中時,P方止執行緒排程器29啟動該等執行 緒中具有一記入於DNHTDEVTR0中之事件之任一執行 緒。此外,在一個實施例中,在使一執行緒停止時,將一 除錯事件或訊息或其他指示符發送至外部除錯電路14以通 知外部除錯電路14 一個或多個執行緒已停止。在一個實施 例中,一除錯事件至外部除錯電路14之此通知係在一個或 140790.doc -20- 201009574 多個執行緒已由執行緒排程器29啟動時發送。若一選定執 行緒當前活動,則其由執行緒排程器29藉由將其置於一休 眠狀態中而停止。在這樣做時,除錯事件之通知被發送至 外部除錯電路。透過一除錯事件之此等通知,外部除錯電 路14知曉一個或多個執行緒試圖進入除錯模式或被置於一 其中執行緒排程器29因該一個或多個執行緒「停止」而不 '再對其進行排程之休眠狀態中。注意,外部除錯電路14接 收此資訊,此乃因當僅一子組之所有執行緒停止時,處理 • 器12自身實際上並不停止,且因此不進入除錯模式,如同 當DNH—EN設定為1時回應於dnh指令之執行之情形。 當將DNHT_EN設定為1且在任一執行緒中執行一 dnht指 令且將DNHT_CTL設定為01時,處理器12在由dnht指令選 擇之執行緒中之至少一者活動或變得活動時停止且進入除 錯模式。亦即,在此情形中,不同於上述實施例,特定執 行緒不停止。而是,在任一活動執行緒具有一記入於 DNHTDEVTR0中之事件時或當一具有一記入於 DNHTDEVTRO中之事件之執行緒變得活動時,貝ij處理器 12自身停止且進入除錯模式,此時外部除錯電路取得控 -制,如當DNH_EN係1時回應於一 dnh指令之執行發生。 -當將DNHT—EN設定為1且在任一執行緒中執行一 dnht指 令且將DNHT_CTL設定為00時,處理器12停止且進入除錯 模式。亦即,在此實施例中,注意,在DNH_EN為1時, dnht指令與一 dnh指令類似地運作。 在一個上述實施例中,在一 dnht指令在DNHT_EN設定為 140790.doc -21- 201009574 1之情形下執行時實施的停止作業係由dnht_ctl界定或 選擇。然而,在一替代實施例中,可不使用DNHT_CTL, 以便每次在DNHT_EN設定為1之情形下執行一 dnht指令時 實施一相同停止作業。亦即’針對DNHT_CTL係00、01或 10之情形描述之任一停止作業可始終回應於一 dnht指令在 DNHT-EN設定為1之情形下之執行來實施。 注意,在thread_key暫存器31中指定選定執行緒之能力 (例如,在上述實施例中,藉由將一 dnht指令之 thread_select值設定為〇),可藉由將不同值寫入至 thread_key暫存器31中而在軟體執行期間動態地選擇不同 執行緒。此外,一旦軟體開發完成,即可清除thread_key 暫存器,從而不選擇執行緒。在此情形中,將不將除錯事 件記入於DNHTDEVTR0中,從而dnht指令不導致任何事件 發生(不導致一執行緒或處理器12停止且不導致一除錯例 外狀況。事實上,此將dnht指令自該軟體移除。 因此,現在應理解,出於除錯目的,可使用dnht指令來 提供增加之執行緒控制。舉例而言,一 dnht指令在任一執 行緒中之執行可將一除錯事件記入至包含其自身之任一執 行緒。此外,當DNHT_EN係0時,一 dnht指令之執行允許 將若干除錯例外狀況同時記入至DNHTDEVTR0。以此方 式,若啟用除錯中斷,則此等中斷可同時發生或彼此發生 於一預定數目之循環内。同樣,當DNHT_EN係1時,一 dnht指令之執行可基於DNHT_CTL之值來導致不同的停止 作業。在一個實施例中,dnht指令可選擇一事件將為其透 140790.doc -22- 201009574 過其thread_select攔位直接記入於DNHTDEVTR0中或透過 使用一 thread_key暫存器間接記入之執行緒。在一個實施 例中,一 dnht指令之thread_select欄位中提供之一預定值 將執行緒之選擇改向至thread_key暫存器。透過使用一 thread-key暫存器之能力,可提供允許修改一 dnht指令之 執行緒選擇之額外靈活性。 由於實施本發明之大部分裝置係由熟習此項技術者所習 知之電子組件及電路組成,因此為理解及瞭解本發明之基 礎概念且為不混淆或轉移本發明之教示,將不在比如上文 所圖解說明視為必要之範圍大的任一範圍内解釋電路細 即 。 本文所使用之術語「程式」係界定為一設計用於在一電 腦系統上執行之指令序列。一程式或電腦程式可包含一次 常式、一函式、一程序、一對象方法、一對象實施方案、 一可執行應用程式、—小應隸式、—小伺服程式、一源 • 程式碼、一對象程式碼、一共享程式庫/動態載入程式庫 及/或其他設計用於在一電腦系統上執行之指令序列。 如可應用,可使用各種不同資訊處理系統來實施某些以 上實施例中。舉例而言,儘管圖丨及圖2及其論述描述一例 不性資訊處理架構,但此例示性架構僅呈現以在論述本發 明之各種態樣時提供—有用參考。當然、,已出於論述目的 對該架構之描述進行了簡化,且其僅係可根據本發明使用 • 1多不同類型之適當架構中之一者。熟習此項技術者將 ⑽識到,邏輯塊之間的邊界僅具說明性且替代實施例可合 140790.doc -23- 201009574 併邏輯塊或電路元件或將一替代功能之分解強加於各種邏 輯塊或電路元件上。 因此,應理解’本文中所繪示之架構僅具例示性,且實 際上可實施達成相同功能之諸多其他架構。在一抽象但仍 明確之意義上’用於達成相同功能之任—組件配置經有效 地「關聯」以達成所期望之功能。因此,本文中經組合以 達成一特定功能之任何兩個組件可視為彼此「相關聯」以 達成所期望之功能,而不管架構或中間組件如何。同樣 地,任何兩個如此相關聯之組件亦可視為「可以運作方式 連接」或「可以運作方式耦合」至彼此以達成所期望之功 能。 亦舉例而言,在一個實施例中,系統1〇之所圖解說明之 元件係位於一單個積體電路上或一相同器件内之電路。另 一選擇為,系統10可包含任一數目之彼此互連之單獨積體 電路或單獨器件。亦舉例而言,系統10或其若干部分可係 實體電路或可轉換成實體電路之邏輯表示之軟體或程式碼 表示。如此,系統10可體現於任一適當類型之硬體描述語 言中。 此外,熟習此項技術者將認識到上文所述作業之功能之 間的邊界僅具說明性。可將多個作業之功能組合至一單個 作業中,及/或可將一單個作業之功能分佈於若干額外作 業中。此外,替代實施例可包含一特定作業之多個示例, 並可在各種其他實施例中變更作業次序。 本文中所描述之所有或某些軟體可係(例如)自電腦可讀 140790.dc -24- 201009574 媒體(例如記憶體18或其他電腦系統上之其他媒體)接收之 資料處理系統10之元件。此電腦可讀媒體可以永久、可移 除或遠端方式耦合至一例如資料處理系統10之資訊處理系 統。該電腦可讀媒體可包含(例如但不限於)任一數目之以 下媒體:例如,磁性健存媒體,&含磁碟及磁帶儲存媒 體;光學儲存媒體,例如光碟媒體(例如,CD_R〇M、cD_ R等)及數位影碟儲存媒體;非揮發性記憶體儲存媒體包 含基於半導體之記憶體單元,例如快閃記憶體、 EEPROM、EPROM、ROM ;鐵磁數位記憶體;MRAM ;揮 發性儲存媒體,包含暫存器.、緩衝器或快取、主記憶體、 RAM等,及資料傳輸媒體,包含電腦網路、點對點電信設 備及載波傳輸媒體。 儘管本文中已參照特定實施例描述了本發明,但可做出 各種修改及改變,而不背離如以下申請專利範圍中所陳述 之本發明範疇。因此,本說明書及圖將視為具有一說明性 而非一限制性意義,且所有此等修改皆意欲包含於本發明 之範疇内。本文中參照特定實施例描述之任何益處、優點 或問題之解決方案皆不意欲被視為任一或所有請求項之一 關鍵、所需或必須特徵或要素。 本文中所使用之術語「耦合」並不意欲限於一直接耦合 或一機械粞合。 此外,將如本文中所用之術語「一(a)」或「一(an)」界 定為一個或多於一個。同樣,申請專利範圍中介紹性短語 (例如,「至少一個」及「一個或多個」)之使用不應視為 I40790.doc -25· 201009574 暗指由不定冠詞「一(a)」或「一(an)」來介紹另一請求項 要素會將任一含有該所介紹請求項要素之特定請求項限於 僅含有一個此要素之發明,甚至當相同請求項包含介紹性 短語「一個或多個」或「至少一個」及例如「一(a)」或 「一(an)」等不定冠詞時亦係如此。此亦適用於定冠詞之 使用。 . 除非另有說明,否則使用諸如「第一」及「第二」等術 · 語來在此等詞語所描述之若干要素之間加以任意區分。因 此此等術浯未必意欲指示此等要素之時間優先順序或其響 他優先順序。 、 【圖式簡單說明】 本發明係以實例方式圖解說明且不受附圖的限制,在該 等附圖中相同參考編號指示類似元件。該等圖中之元件係 為簡單及清楚起見而圖解說明’且未必按比例繪製。 圖1係根據本發明之一個實施例之一資料處理系統之一 方塊圖; 圖2係根據本發明之一個實施例之與圖丨之資料處理系統參 相關聯之一多執行緒處理器之一方塊圖; 圖3係—圖解說明與圖1之資料處理系統相關聯之例示性 . 除錯暫存器之圖表; 圖4係—圖解說明與圖!之資料處理系統相關聯之例示性 ’ 外部除錯暫存器之圖表; 〇係根據本發明之一個實施例之與圖4之外部除錯暫存 器相關聯之一外部除錯控制暫存器之一圖表; 140790.doc -26 - 201009574 圖6以表格形式顯示根據本發明之 冰加认β < 一個實施例之圖5之 卜部除錯控制暫存器之一部分之功能; 圖7係一圖解說明能夠由圖2之處 錯指令之圖表; 以器“之-例示性除 圖8係根據本發明之一個實施例之與圖3之除錯暫存器相 關聯之一除錯狀態/控制暫存器之一圖表;及
圖9以一表格形式顯示根據本發明之一個實施例之圖7之 除錯狀態/控制暫存器之一部分之功能。 【主要元件符號說明】 10 資料處理器系統 12 處理器 14 外部除錯電路 16 I/O模組 18 記憶體 20 匯流排 22 指令管 24 執行單元 26 指令提取單元 28 控制電路 29 執行緒控制 30 通用暫存器 31 thread一key暫存器 32 載入/儲存單元 34 匯流排介面單元(BIU) I40790.doc -27- 201009574 40 42 43 44 45 47 49 50 51 52 53 内部除錯電路 除錯暫存器 除錯控制暫存器 除錯控制電路 指令位址比較暫存器 資料位址比較暫存器 除錯狀態暫存器 外部除錯控制暫存器 除錯計數器 DNHT除錯事件暫存器 資料值比較暫存器 140790.doc -28 ·

Claims (1)

  1. 201009574 七、申請專利範圍: L 一種用於—資料處理系統中之資料處理之方法,該資料 處理系統包括-經組態以執行對應於-第—執行緒之一 第-組指令及對應於—第二執行緒之—第二组指令之處 理器,該方法包括: 一在執仃該第一組指令時回應於一除錯指令由該第一執 之執,產生一除錯事件以供由該第二執行緒處 理’其中處㈣除錯事件包料致與職理器 停止作業。 :明求項1之方法’其中產生該除錯事件進一步包括將 除錯事件記入至一除錯事件暫存器。 3· 之方法,其中產生該除錯事件進-步包括解 作辈勺^攔位以確定是否導致與該處理器相關之該停止 動時^走⑴使該處理器停止,·(2)當該第二執行緒活 :時使該處理器停止;或(3)使該第二執行緒之啟動暫 定3否=之方法’其中產生該除錯事件進"步包括確 否啟用—外部除錯器。 5.如請求項4之方法,其 器時產生-指令例外:在不啟用該外部除錯 應於哕方法’其進-步包括在啟用中斷時處理對 〜^第一執行绪之一除錯中斷。 7.如請求項〗之方法, 執行緒組成之-心 “緒係選自由複數個 群'•且,且其中基於該除錯指令中之—執 140790.doc 201009574 行緒選擇欄位來選擇該第二執行緒。 8.:請求項7之方法,其中當該執行緒選擇欄位具有一預 疋值時’基於儲存於—執行緒鋒暫存器巾之一值來選 擇該第二執行緒。 长項2之方法’其中當將該除錯事件記人至該除錯 事件暫存器時’若該第:執行緒不活動,則該第二執行 緒在該第二執行緒變得活動時接收-除錯中斷。 〇 10.如请求項1之方法,其中該處理器進一步經組態以執行 ㈣於1三執行緒之-第三組指令,且其中該方法進 'I括在執行忒第一組指令時回應於該除錯指令由該 第-執行緒之該執行,產生一除錯事件以供由該第二執 仃緒及該第三執行緒中之每一者處理。 種用於-資料處理系統中之資料處理之方法,該資料 系統包括—經組態以使對應於-第-執行緒之一第 一組指令及對應於一第二執行緒 重疊之處理器,該方法包括: 令之執行 —在執行該第—組指令時回應於—除錯指令由該第一執 理緒:ΓΓ |生一除錯事件以供由該第二執行緒處 =,其中處理該除錯事件包括導致與該處理器相關之一 停止作業’其中該第二執行緒係選自由 :::群組一-—選 m請求項W方法,其中產生該除錯事件進—步包括將 除錯事件S己入至一除錯事件暫存器。 140790.doc -2- 201009574 13.如請求項12之方法,其中產生該除錯事件進一步包括解 碼一控制欄位以確定是否導致與該處理器相關之該停止 作業包含:⑴使該處理器停止;(2)當該第二執行緒活 動時使該處理器停止;或(3)使該第二執行緒之啟動暫 停。 14·如請求項"之方法,其中產生該除錯事件進—步包括確 疋是否啟用一外部除錯器。 Φ 15·如請求項14之方法,其進—步包括在不啟用該外部除錯 器時產生一指令例外狀況。 16.如請求項。之方法 i 止a,丄 在其進一步包括在啟用中斷時處理對 應於該第二執行緒之一除錯中斷。 17·如請求則之方法,其中該執行緒選_ 指令編碼之一部分且装φ除錯 —X 刀且其中當該執行緒選擇攔位具有一預 疋值時’基於儲存於—執行緒密鑰暫存器中之—值 擇該第二執行緒。 18. —種資料處理系統,其包括·· 一處理器’其經組態以執行對應於—第—執行緒之一 ::組指令及對應於一第二執行緒之一第二組指令,兮 處理器進一步經組態以在執 " ^ ^ , ^ 弟組才曰令時回應於一 除錯札令由該第一執行緒之執 由該第二執行緒處理^ 生—除錯事件以供 弟^緒處理,其中處理該除錯事件包括導致* 該處理器相關之一停止作業。 ,、 19·如請求項18之資料處理系統 m Λ„ β爽理器進一步句扭 ^組態以將-除錯事件記 匕括 除錯事件暫存器之執行 140790-doc 201009574 緒控制電路。 20. 如請求項18之資料處理系统,其中 ...^ 系既具中該第自 由複數個執行緒組成之—群組且其 於兮哈扭杜“ 这第—執行緒係基 a _之一執行緒選擇攔位來選擇。
    140790.doc
TW098119969A 2008-08-20 2009-06-15 Debug instruction for use in a multi-threaded data processing system TW201009574A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/195,220 US9395983B2 (en) 2008-08-20 2008-08-20 Debug instruction for execution by a first thread to generate a debug event in a second thread to cause a halting operation

Publications (1)

Publication Number Publication Date
TW201009574A true TW201009574A (en) 2010-03-01

Family

ID=41697405

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098119969A TW201009574A (en) 2008-08-20 2009-06-15 Debug instruction for use in a multi-threaded data processing system

Country Status (5)

Country Link
US (1) US9395983B2 (zh)
KR (1) KR101547163B1 (zh)
CN (1) CN102124442B (zh)
TW (1) TW201009574A (zh)
WO (1) WO2010021778A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI659361B (zh) * 2018-01-09 2019-05-11 國立中央大學 支援多執行緒/並行程式除錯之方法、電腦可讀取之記錄媒體及電腦程式產品

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8739133B2 (en) * 2007-12-21 2014-05-27 International Business Machines Corporation Multi-threaded debugger support
US7996722B2 (en) * 2009-01-02 2011-08-09 International Business Machines Corporation Method for debugging a hang condition in a process without affecting the process state
US8112677B2 (en) 2010-02-26 2012-02-07 UltraSoC Technologies Limited Method of debugging multiple processes
US8661413B2 (en) * 2011-04-13 2014-02-25 International Business Machines Corporation Impact indication of thread-specific events in a non-stop debugging environment
CN102508776B (zh) * 2011-11-03 2014-09-17 中国人民解放军国防科学技术大学 多线程交叉双精度短向量结构的评测激励自动构造方法
GB2537115B (en) * 2015-04-02 2021-08-25 Advanced Risc Mach Ltd Event monitoring in a multi-threaded data processing apparatus
JP2018128767A (ja) * 2017-02-07 2018-08-16 ルネサスエレクトロニクス株式会社 デバッグシステム及び半導体装置
CN113672554B (zh) * 2021-07-06 2023-12-29 平头哥(杭州)半导体有限公司 处理器核、处理器、片上系统和调试系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933627A (en) * 1996-07-01 1999-08-03 Sun Microsystems Thread switch on blocked load or store using instruction thread field
US6189140B1 (en) * 1997-04-08 2001-02-13 Advanced Micro Devices, Inc. Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US5892941A (en) * 1997-04-29 1999-04-06 Microsoft Corporation Multiple user software debugging system
US6480818B1 (en) 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US7320065B2 (en) * 2001-04-26 2008-01-15 Eleven Engineering Incorporated Multithread embedded processor with input/output capability
US6651158B2 (en) 2001-06-22 2003-11-18 Intel Corporation Determination of approaching instruction starvation of threads based on a plurality of conditions
US7770179B1 (en) * 2004-01-30 2010-08-03 Xilinx, Inc. Method and apparatus for multithreading on a programmable logic device
US7945900B2 (en) 2004-04-29 2011-05-17 Marvell International Ltd. Debugging tool for debugging multi-threaded programs
US20050289396A1 (en) * 2004-06-25 2005-12-29 Hooper Donald F Conditional breakpoint using breakpoint function and breakpoint command
US7543186B2 (en) 2004-09-13 2009-06-02 Sigmatel, Inc. System and method for implementing software breakpoints
JP2006185360A (ja) 2004-12-28 2006-07-13 Sony Computer Entertainment Inc プログラムデバッグ装置、プログラムデバッグ方法及びプログラム
CN100365590C (zh) * 2005-01-31 2008-01-30 浙江大学 在嵌入式系统模拟器上调试应用程序的方法
US7689867B2 (en) 2005-06-09 2010-03-30 Intel Corporation Multiprocessor breakpoint
JP4388518B2 (ja) * 2005-11-01 2009-12-24 株式会社ソニー・コンピュータエンタテインメント スレッドデバッグ装置、スレッドデバッグ方法及びプログラム
US7770155B2 (en) 2005-11-03 2010-08-03 International Business Machines Corporation Debugger apparatus and method for indicating time-correlated position of threads in a multi-threaded computer program
JP4222370B2 (ja) * 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
US7506205B2 (en) 2006-02-14 2009-03-17 Atmel Corporation Debugging system and method for use with software breakpoint
US8370806B2 (en) 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI659361B (zh) * 2018-01-09 2019-05-11 國立中央大學 支援多執行緒/並行程式除錯之方法、電腦可讀取之記錄媒體及電腦程式產品

Also Published As

Publication number Publication date
KR101547163B1 (ko) 2015-08-25
CN102124442B (zh) 2015-02-25
US20100049955A1 (en) 2010-02-25
CN102124442A (zh) 2011-07-13
KR20110044790A (ko) 2011-04-29
US9395983B2 (en) 2016-07-19
WO2010021778A1 (en) 2010-02-25

Similar Documents

Publication Publication Date Title
TW201009574A (en) Debug instruction for use in a multi-threaded data processing system
US20190129720A1 (en) Method, device and system for control signalling in a data path module of a data stream processing engine
JP6185487B2 (ja) ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持
JP5419103B2 (ja) デバッグイベントを監視するためのシステム及び方法
US7681078B2 (en) Debugging a processor through a reset event
US8966488B2 (en) Synchronising groups of threads with dedicated hardware logic
CN101599039B (zh) 嵌入式c语言环境下异常处理方法及装置
US9690603B2 (en) Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
TW200945022A (en) Qualification of conditional debug instructions based on address
US10778815B2 (en) Methods and systems for parsing and executing instructions to retrieve data using autonomous memory
US7689815B2 (en) Debug instruction for use in a data processing system
TW201117101A (en) Computing system and computing method
TW200837559A (en) Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
TWI270769B (en) Trace, debug method and system for a processor
WO2013100782A1 (en) Method and system for controlling execution of an instruction sequence in a accelerator.
WO2012054020A1 (en) Low power execution of a multithreaded program
US20100049956A1 (en) Debug instruction for use in a multi-threaded data processing system
US8042002B2 (en) Method and apparatus for handling shared hardware and software debug resource events in a data processing system
WO2003034225A2 (en) Debugging of processors
WO2003034226A2 (en) Debugging of processors
Peng et al. Towards A Unified Hardware Abstraction Layer Architecture for Embedded Systems
WO2013100784A1 (en) Method, apparatus and system for data stream processing with a programmable accelerator
JP2007213415A (ja) メモリ装置
GB2380827A (en) Debugging of processors using two separate event detectors
Stollon An On-Chip Debug System