TWI235949B - Watchpoint engine for a pipelined processor - Google Patents

Watchpoint engine for a pipelined processor Download PDF

Info

Publication number
TWI235949B
TWI235949B TW090131069A TW90131069A TWI235949B TW I235949 B TWI235949 B TW I235949B TW 090131069 A TW090131069 A TW 090131069A TW 90131069 A TW90131069 A TW 90131069A TW I235949 B TWI235949 B TW I235949B
Authority
TW
Taiwan
Prior art keywords
monitoring point
address
monitoring
patent application
count value
Prior art date
Application number
TW090131069A
Other languages
English (en)
Inventor
Charles P Roth
Ravi P Singh
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 TWI235949B publication Critical patent/TWI235949B/zh

Links

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

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

Description

1235949 A7 B7 五、發明説明(1 ) 發明背景 本發明是有關管線化處理器中監視點之產生。 為複合積體電路裝置,諸如管線化處理器所開發之程式 典型地需要大量的除錯。產生監視點有助於透過處理器管 線監控指令之傳送(propagation)。因為這樣,所以監視點引 擎可以從處理器管線中抽出狀態資訊且提供此狀態資訊給 事件處理之控制單元。在此方法中,應用程式開發者可以 驗證適合的程式操作且因此對為處理器所開發之程式進行 除錯。 圖式說明 圖1是說明具有管線化處理器及監視點之積體電路之方 塊圖。 圖2是說明適合實現監視點引擎之電路系統之電路圖。 圖3是說明適合實現監視點引擎之附加電路系統之電路 圖。 圖4是說明適合實現監視點引擎之附加電路系統之另一 電路圖。 圖5是說明適合實現監視點引擎之附加電路系統之另一 電路圖。 圖6是說明產生監視點吻合(match)之流程圖。 發明說明 圖1是說明積體電路裝置10之方塊圖。如圖1所顯示, 積體電路裝置10可以包含可程式化處理器12、處理器控 制單元14及監視點引擎16。處理器12可以執行隨機存取 -4 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1235949
記憶體(RAM)’諸如快閃記憶體裝置中之指令。處理器12 可以是具有多執行級之管線化處理器。監視點引擎i6即時 自處12中抽出狀態資訊且處理該資訊以通知事件給 控制單元14,諸如除去或插斷。 監視點引擎i6可以被用於吻合資料或指令位址,及位址 《包含或排除的範圍’即組合吻合。而且,監視點引擎Μ 可=用於經由管線化處理器12之連續執行階段㈣監視 點位址吻合。因此,監視點引擎16可以包含適當的暫存器 及為支援那些功能所目己置之邏輯電路。暫存器可以正反器 或检鎖器被實現。此外,監視點引擎16可以被安排用於即 時在處理器12高頻運作中產生監視點。 皿視點引擎16模組部分在不同功能中可以獨立地被打 ^關閉’以㈣電力的節省。監視點引擎16運用在嵌入 電力消耗要求嚴格之手持或其他可攜式電池供電裝置之積 體電路裝置是特別有用6勺。因此,在某些實施例中,監視 點引擎16可以結合即時回應、高頻運作及節省電力消耗等 優點。 精確產生指令或資料之監視點吻合有助於除錯且啟動程 式修補。經由處理器管線之指令傳送可以即時被監控以識 別仿真或例外事件且提供適當的仿真模式運作或例外處 理 |視點吻合在有關指令被撥出之前可以被多循環識 別。重要地,例外之處理可以快速且精準的發生,讓指令 到達回寫的階段時能夠被刪除,即被終止。此功能有助於 私式的修補。因此,提供高頻、即時監視點吻合的能力可 -5 - 本纸張尺度㈣轉準(CNS)就格(_挪公爱) 1235949
以提供顯著的優點給程式開發者。 圖2是說明適用於實現監视點引擎16之電路的方塊圖。 如圖j中所顯示,監視點引擎16可以包含一或多個監視點 暫存。。18 20。監視點暫存器丨8被稱為,而監視點 暫存器20被稱為“WPi,,。監視點暫存器^⑽可以是記 憶體映射暫存器’其是為了除錯而由程式開發者以要求監 視點位址被程式化。在圖2中’監视點暫存器Μ、2〇是以 正反器表示。在其中之一實施例中,監视點引擎16可以包 含6個監視點暫存器,讓複合指令及資料位址及複合位址 範圍上可以吻合。 監視點狀態暫存器(未顯示)記錄監視點吻合。監視點 令位址控制暫存器及監視點資料位址控制暫存器(未顯示) 詳細說明特殊監視點吻合是否應該產生仿真事件或例外事 件。程式修補或取代舊程式的完成可以藉由將舊程式開始 位址寫至其中之-監視點暫存器,且設定其中之—控制暫 存器中對應位元㈣㈣。在例外服務程 存器是讀取。通常,當指令被回寫時,它會被刪除。二1 點’例外程序會產生跳躍至另—位置之指令。在此位置之 3 = ΐ行°錢,程式目制好細寫巾被财指令之 :呈式。於是,新的程式替代被刪除指令被執行,提供 二::暫f器18、20可以載入直接嗓合監視點或範圍邊 |皿視2。直接吻合監視點是監視點引擎16在复 視點吻合之指令或資料之記憶體位址。範圍逢界監= -6 -
1235949 五、發明説明(4 二種指令及資料之記憶體位址,定義監視點引擎16在其上 提供監視點吻合之位址範圍其中之一邊界。 對f接吻合而言,監視點位址被載入各自獨立的監視點 曰存器18 20。對範圍吻合而言,兩監視點位址都被載入 監視點暫存器18及監視點暫存器2〇,共同定義吻合被使 用之位址範圍。直接及範圍邊界監視點位址依要求被程式 化進入監視點暫存器18、2〇。 監視點引擎16亦可以包含多工器22、24、%、以及 态3〇、、32、34、36。多工器22、24選擇現在指令或資料位 址-或〇 ,其通常將會是多位元值。位址如圖2中所顯示 指令位址(IA),由程式計數器為了舉例說明所提供。圖「中 的位址對執行階段例如EX1是本地的。多工器24、28選擇 分別被載入監視點暫存器18、2〇之監視點位址,或“丨,,或 其他不是0的值,其通常將會是多位元值。多工器22、μ 炙輸出被應用至比較器30、32。同樣地,多工器%、Μ 之輸出被應用至比較器34、36。在各事例中,比較器3〇、 =、34、36分別將其中之一多工器22、以輸出與另二多工 器24、28輸出作比較。 、才疋供多工詻22、24、26、28是為了在省電考量下關閉一 或兩個監視點暫存H 18、2〇的事件中將比較器電路穩定 化。例如,在只有單一直接吻合監視點被監視之事件中, 監視點暫存器18、20其中之一被關閉。從省電的觀點上看 來是非常好的優點,特別是對電池供電的裝置而言。詳今 又,部份或所有監視點引擎16當它不被需要時,避免=^ 本紙張尺度如巾® 8家標準(CNS) Α4規格(21G X 297公f) 1235949 A7 B7
的電力消耗可以選擇性地被關閉。如果監視點監視不被需 要時,整體啟動位元可以被重置以關閉所有與監視點電路 有關之正反器及检鎖器。 WPO啟動/失能控制線同時被連接至多工器22、24。 啟動/失能控制線同時被連接至多工器26、28。如果監視點 暫存器不被啟動,多工器22、24接收WPO失能信號,且 分別傳送多位元“0”及“1”至比較器3〇、32。否則,比較器 30、32接收指令位址(IA)與各自的監視點位址作比較。再 次說明,為了範例的目的指令位址被提及。在其他範例中, 位址可以是資料位址。多工器26、28以相同的方法工作, 在監視點暫存器20被失能的事件中回應wpi失能信號。 如果比較器30、32、34、36不開關,則連接比較器之下游 邏輯亦不會動作,結果在電力消耗上明顯地節省。 在正常運作中,比較器30、34分別監視監視點暫存器 18、20内監視點位址及經由多工器22、26所提供現時位址 之間的直接吻合。換言之,比較器3〇、34決定監視點位址 與指令位址是否彼此相等。如果來自暫存器18之監視點位 址等於指令位址,則比較器3〇傳送多位元“丨,,至形成部分 監視點吻合產生器之附加監視點邏輯電路。比較器34以相 同的方式運作。 比較器32決足暫存器丨8中監視點位址是否小於指令位 址。在此事例中,暫存器18中監視點位址可以被使用當 作範圍吻合之較低邊界位址。比較器36決定暫存器2〇 中監視點位址是否大於或等於指令位址。在此事例中,暫 -8 - 本紙張尺度適用中國國家標準(CNS) A4規格 1235949 A7 B7 五、發明説明(6 ) 存器20中監視點位址可以被使用當作範圍吻合之較高邊 界位址。如果在各比較器3 2、 3 6有監視點吻合,則指令 位址是在由暫存器18、20所指定的範圍中。在此事例中, 比較器32、36傳送“1”至附加的邏輯電路。 在圖例說明實施例中,比較器30之輸出被連接至AND 閘38,而比較器32之輸出被連接至AND閘40及OR閘42 的反向輸入。比較器34的輸出被連接至AND閘44,而比 較器36之輸出被連接至AND閘40及OR閘42之反向輸 入。AND閘38、44具有反向輸入,其接收RANGE啟動信 號。實際上,如果比較器30、34指示直接監視點位址吻合 且監視點引擎16不是在範圍模式中運作,AND閘38、44 傳送 “1”,即 AND 閘 38、44 接收 “NOT RANGE”。 AND閘40之輸出提供給另一個AND閘46,其決定指令 位址是否是在由被載入監視點暫存器18、20中範圍邊界監 視點所定義之包含範圍内。AND閘46接收以下信號當作 輸入:AND閘40之輸出、代表監視點引擎16是在範圍模式 之範圍啟動信號及指示範圍模式是包含之包含信號,即在 兩範圍邊界監視點之間位址上的監視點引擎吻合被載入監 視點暫存器18、20之中。 OR閘42運作定義排除的範圍,於反向輸入端接收比較 器32、36之輸出。OR閘42之“1”輸出代表監視點暫存器中 18的監視點位址不是小於指令位址或監視點暫存器中20的 監視點位址不是大於或等於指令位址。OR閘42之輸出被 提供給AND閘48,其亦在反向輸入端接收取消信號。取消 -9 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1235949
k號指7F排除的範圍模式是否被啟動或取消。因此,當取 消信號是低點且比較器32、36其中之一輸出是低點時田0R 閘42及AND閘48傳送‘‘丨”。 AND閘48之輸出被提供至另一個AND閘5〇。and閘% 接收範圍啟動信號及排除的範圍啟動信號當作附加的輸 入。範圍啟動信號代表監視點引擎16是在範圍模式,而排 除的範圍啟動信號代表範圍模式是排除的。換言之,監視 點引擎16是在-種模式中,它在此模式中吻合落在被載入 暫存器18、20之範圍邊界監視點所定義範圍外側位址。如 果排除的信號是高點、範圍信號是高點及AND閘补的輸 出疋南點,貝丨J AND閘50傳送“ 1 ”至閘52。 OR閘52接收包含範圍AND閘46、排除的範圍AND閘5〇 及直接吻合AND閘38之輸出當作輸入。如果〇R閘52的任 何一個輸入是高點,則它會輸出‘‘丨,,至AND閘54。圖2中 所顯示邏輯電路主要是在處理器管線第一執行階段内運 作。如圖例說明,此階段被標示為“Εχι,,階段。如果管線 中最前面的指令已經被刪除或停止,師件在傳送由圖2 邏輯電路所決定監視點吻合之前被處理。 為此目的,AND閘54將反向刪除信號、反向停止作號及 有效信號當作輸入。刪除信號代表在特定管線階段^之指 令已經被刪除。停止信號代表在特定管線階段中之指令已 經被停止。有效信號代表現在的指令是有效的。如果a:ND 閘54接收來自OR閘52吻合之指示,結合未被刪除、未 被停止及有效的指示,則它傳送“丨,,至監視點引擎Μ之下 -10 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公嫠f --—-- 1235949 A7 ______ Β7 五、發明説明(8 ) 一階段。否則’ AND閘54產生“〇,,。 AND問所輸出〈1”代表在此時根據無論哪一種監視 點模式可以實施於監視點引擎16,都有包含範圍吻合、排 除的範圍吻合或直接吻合其中一種。由and閘54所偵測 之a含及排除的範圍吻合與被載入監視點暫存器18、2〇中 之監視點位址有關。由AND閘54所偵測之直接吻合與被 載入監視點暫存器18中之監視點位址有關。 類似AND閘54之AND閘56被提供以偵測且指示被載入 血視點暫存器20中之監視點位址上之直接吻合。ΑΝ〇閘 56接收AND閘44之輸出、反向刪除信號、反向停止信號 及有效信號當作輸入。如果AND閘44之輸出是高點,且 AND閘54接收是未刪除、未被停止且有效的信號,則它 傳迗1至監視點引擎16之下一階段。在此方法中,and 閘54指示被載入監視點暫存器2〇中之監視點位址上的直 接吻合。 圖3是說明產生監視點之附加電路概要圖。圖3電路表 π緊接圖2所說明階段之後的監視點引擎16的下一階段, 且包含處理器管線之第二(ΕΧ2)、第三(Εχ3)及回寫(WB)階 段’如圖3中虛線範圍所指示。在圖3的例子中,暫存器 ’例如正反器,保持圖2 aNI)閘54之輸出。實質上類似 圖3中所顯示之電路可以被提供用於圖2八1^1)閘兄輸出之 處理。 圖3電路的一個重要觀點是動態計數器邏輯,其容許在 處理器管線執行階段内之例外的精準處理。例如,如果監 -11 - 本纸張尺纽財目时gNS)祕格(21() χ歷爱) 1235949
視點吻合被傳送至Εχ2 ’但是在E 被刪除’監视點引擎16重新調整計數心:二:先之指令 址上被吻合之被刪除的指令。為此目的 同時供給計數器電路及監視點邏 :存咨58之輸出 供給計數器邏輯電路6〇,其作 了 ’暫存器58 計數調整信號當作附加的輸心如參7編數;咖且接收 計數器邏輯電路60控制多工器6:= 2:指示的。 整總數供給加法器' 或计數益凋 -連串加法备66的作用是增加或減少由 二及計數暫存器72所產生之計數器值。 田冲數的特定事件被偵測時,〃 j遞減即加上],是 通=的操作。計數器被提供以在觸發仿真或例外事件處理 《則啟動特定監視點連續出現之計數。尤其,在m階段 中所偵測到監視點吻合出現在稍後的階段中,即在£幻階 段中被計數。 计數暫存器72之輸出被反饋至加法器66,如參考編號 74所扣不,且至多工器68之其中之一輸入。多工器μ接 收加法器66之輸出當作它的另一個輸入。多工器7〇被提 供用於載入想要的計數值。多工器7〇受計數啟動信號影 響,選擇由多工器68所產生之計數值或由應用程式開發者 選足被載入記憶體中之初始計數值。換言之,多工器7〇 容許代表在產生事件觸發矣前事件應該被偵測到次數之初 始計數值進入。在操作中,初始計數值被加法器66減少。 計數更新信號指示多工器68是否應該選擇加法器66之 輸出或暫存器72之輸出。因此,計數更新信號指示計數值 -12 - 本紙張尺度適用中國國家標準(CNS) Α4規格(21〇X 297公釐) 1235949 五、發明説明(1〇 ) 是否應該被更新或保留。如果多工器68選擇加法哭% 輸出,則現存的計數器值會減少或增加,/ ^ 法器之多工器料輸出而定。如果多工器68選擇 〈輸出’則現存的計數器值被#留,&不會增加或減少 計數器電路追料定事件,例如直接吻合或範圍吻Μ 生的想要數目。如果指令產生監視點位址吻合且導致計數 器之減少量,但在ΕΧ3階段中被刪除’計數器值以丨遞掸 =不是遞減,以補償吻合指令被計數但連續被刪除之^ κ。。如果指令產生監視點位址吻合且導致計數器之減少 量,但在回寫階段中被刪除,則計數器值以丨增加而不^ 減少。如果產生監視點位址吻合之指令在Εχ3及回寫階段 中被刪除,則計數器值以2遞增而不會減少。決定多少^ 數值應該被調整之總量邏輯是由暫存器76、、AND閑78、 暫存器80、邏輯電路82及暫存器84所提供。 暫存器76接收來自AND閘75之輸入,其指示在Εχ2階 段中是否已經偾測到有效的吻合。有效的吻合意指產生臣々 視點位址吻合之相關指令在現在的管線階段中是有效的, 不被刪除且不會被停止。暫存器76之輸出供給至AND問 78及邏輯電路82。AND閘78亦接收吻合指令在Εχ3階段 中是否不被刪除、不被停止且有效的指示當作輸入。夂管 線階段之不被刪除、不被停止且有效的信號邏輯上是不同 的信號。如果有吻合且吻合指令在EX3階段中不被刪除、 不被停止且是有效的,則AND閘7 8之輸出被供給暫存器 80,其在回寫(WB)階段輸出一值。 -13 本紙張尺度適用中國國家標準(CNS) A4规格(210X 297公釐) 1235949
暫存器8G之輸出與暫存器76之輸出-起被供給至邏輯 電:82:邏輯電路82依次產生計數器調整總量且驅動暫 ^ 之輸入。暫存姦76之輸出指示指令在EX3階段中 =否是被刪除、被停止或是無效的。暫存器80之輸出指示 才曰令在回寫階段中是否是被刪除、被停止或 據那些輸入,邏輯電路82違决,、f '奴M、… 、科見路82產生上述計數器碉整總量,即i f 2 且補償遞減操作。暫存器料提供計數器調整總量至 夕 64 S必須要計數器調整時,邏輯電路82亦產生 十數凋正仏號,其被應用至多工器64當作控制信號選擇暫 存器84所產生計數器調整總量,而不是_丨或〇輸入至多工 器64。計數調整信號可以簡易指示指令在或回寫階段 是否被刪除。 對在官線較後執行階段中吻合指令刪除之反應,邏輯電 路82產生計數器碉整總量。在此方法中,追蹤特定吻合發 生數目之計數器值可以被補償被計算但稍後被刪除之吻 合。邏輯電路82之輸出實質上追蹤兩種狀況及這兩種狀沉 之組合。 第一種狀況存在是當產生監視點位址吻合之指令已經在 ΕΧ3階段中被刪除的時候。第二種狀況存在是當產生監視 點位址吻合之指令已經在回寫階段中被刪除的時候。在某 些情況下’兩種狀況可以同時存在。邏輯電路82根據暫存 為76及暫存器80的輸出確認這些狀況。暫存器%之輸出 指示在ΕΧ3階段中一有效的吻合,而暫存器8〇之輸出指 示指令在回寫階段中是否已經被刪除或停止。 -14 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210X297公釐) 1235949
就第一種狀況但沒有第二種狀況存在而言,邏輯電路82 產生值“1”當作計數器調整總量。此方式中,加法器66將 現存的計數器值加“1”,補償被刪除指令在管線中領先一個 階段。如果在兩個階段(EX3及WB)同時有被刪除的指令, 但在那些階段中沒有監視點位址吻合,〇被加至計數器。 忒第二種狀況但沒有第一種狀況存在而言,邏輯電路82 產生值“ 1”當作計數器調整總量。此方式中,加法器66將 現存的計數器值加“1”,且增加計數器值而不會減少它,補 償在WB階段中被刪除的指令。 就第一及第二種狀況同時存在而言,邏輯電路82產生值 “2’’當作計數器調整總量。此方式中,加法器66將現存的 计數器值加“2”,且將計數器值增加“2”而不會減少它,補 償在EX3階段及接下來的WB階段中被刪除的指令,產生 監視點位址吻合之指令。 AND閘86接收暫存器58之輸出、加法器66的最重要的 位兀及,在反向輸入端,暫存器72最重要的位元輸出。 AND閘86追蹤計數器是否已經被啟動,如同EMU或exc 事件產生之狀況,且因此只需要暫存器72及加法器66最 重要位元之檢查。暫存器58之輸出及AND閘86之輸出被 多工器88接收。當暫存器58之輸出指示監視點吻合,現 在在暫存器72中的計數器值被減少至“ Γ,,且加法器%輸 出疋“1”(代表在現在週期中沒有計數調整),AND閘86輸 出“Γ,至多工器88。 汁數啟動仏號可以指示開發者是否已經詳細指明監視點 -15 - 本紙張尺度適用中國國家橾準(CNS) A4規格(210 X 297公釐Ϊ 1235949 A7 B7 五、發明説明(13 ) 發生的數目或是否單一事件發生對事件觸發是足夠的。在 此方法中,計數啟動信號可以指示多工器88是否應該選擇 暫存器58之輸出或AND閘86之輸出,且因此是否要分別 在第一事件發生或第η事件發生上觸發。因此多工器88可 以形成部份觸發電路,其詳細指明監視點事件發生之數目。 多工器88之輸出可以驅動仿真(EMU)事件產生電路90及 例外(EXC)事件產生電路92。EMU產生電路90驅動暫存器 94,其在管線產生EX3階段中產生仿真請求(EMU REQ)。 EXC產生電路92驅動暫存器96,其在管線產生EX3階段 中產生例外請求(EXC REQ)。EMU及EXC產生電路90、92 參照圖4作更詳細地說明。 仿真事件引發處理器12進入仿真模式。在仿真模式中, 可以從積體電路裝置10所提供之JTAG介面讀取指令。 JTAG 介面是被 IEEE 標準 1149·1(ΙΕΕΕ 標準 1149.1-1990, 1990 年出版,且標題為 “Test Access Port and Boundary-Scan Architecture”)所定義。當發生仿真事件時,仿真事件之形 式,例如監視點吻合,被紀錄於狀態暫存器中。或者,監 視點吻合可以引發處理器12發出例外而非仿真事件。對例 外事件而言,處理器12扮作例外操作裝置。組態位元可以 被設置於監視點指令位址控制暫存器及監視點資料位址控 制暫存器中,具體指明特定事件是否應該產生仿真事件或 例外事件。 圖4是另一個說明適用於實現監視點引擎之附加電路電 路圖。詳言之,圖4更詳細地說明EMU事件產生電路90 -16 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1235949 A7 B7 五、發明説明(14 ) 及EXC事件產生電路92。來自圖3之AND閘86及多工器 88亦在圖4中被說明。如圖4中所顯示,EMU事件產生電 路90可以包含AND閘9卜其接收EMU啟動信號及多工器 88之輸出當作輸入,其指示監視點事件之識別。EMU啟動 信號指示想要的事件形式是仿真。AND閘91之輸出驅動 OR 閘 93 及 95。 積體電路裝置10可以包含多對監視點比較器,諸如圖2 中所顯示。除了 AND閘91之輸出外,OR閘93還接收了 監視點引擎之所有輸出。除了 AND閘91之輸出外,OR閘 95還接收指令所有監視點位址吻合之指示,如同由不同監 視點引擎比較器對所產生。附加的OR閘97接收資料所有 監視點位址吻合之指示,如同由不同監視點引擎比較器對 所產生。如此,OR閘93、95、97監視積體電路裝置10中 所有監視點引擎之輸出是否有監視點位址吻合之跡象。通 常,資料吻合只導致EMU事件之產生。 AND閘98在其中之一輸入端接收閘93之輸出,在反向 輸入端,接收指令及資料吻合啟動信號,以參考編號102 表示。如果指令及資料吻合啟動信號是高點,則事實上 AND閘98是取消的,且產生低點輸出。然而,如果OR閘 95及OR閘97都是高點且因此代表在同一週期中同時有一 指令吻合及一資料吻合,則AND閘100產生高點輸出。如 此,指令及資料吻合啟動信號將裝置10被設定在只有當同 時有指令吻合及資料吻合時EMU事件才被產生之模式 中。如果指令及資料吻合啟動信號是低點,則任何監視點 -17 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1235949 A7 B7 五、發明説明(15 ) 位址吻合,如OR閘93輸出所指示的,足夠產生EMU事 件。事實上,EMU產生電路90決定(a)積體電路裝置是否 是在仿真模式中,且(b)是否有任何資料或指令吻合。 再者,如果指令及資料吻合啟動信號是高點,則OR閘 93之輸出被忽略,而OR閘95、97之輸出在它們同時是高 點的事件中驅動AND閘100至高點。,如果指令及資料吻 合啟動信號是低點,則只有OR閘93之輸出被考慮。在另 一事例中,如果若干輸出,即來自AND閘98或100,是高 點,則閘104會變高點以產生仿真請求。 就例外產生電路92而言,EMU啟動信號及多工器88之 輸出提供輸入至AND閘106。EMU啟動信號在AND閘106 的反向輸入端被接收。多工器88之輸出是表示其中之一監 視點比較器對之監視點吻合狀態,且是EXC事件產生電路 92眾多輸入的其中之一。AND閘106驅動OR閘108之其 中之一輸入。OR閘108之其他輸入是由積體電路裝置10 中所能提供之其他監視點比較器對所產生之各種指令及資 料監視點吻合。OR閘108之輸出被提供至暫存器96。如 果OR閘108之輸出指示一例外吻合,則暫存器96可以輸 出“1”,其驅動產生例外請求。 圖5是另一個說明適用於實現監視點引擎之附加電路之 電路圖。詳言之,圖5說明監視點狀態暫存器(“WP Stat”) 之維持。監視點狀態暫存器WP Stat監控監視點之狀態。 此暫存器在每個時脈週期上可以被更新。當一監視點或監 視點範圍吻合時,WP Stat暫存器鎖住監視點之來源。這樣 -18 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 1235949 A7 B7 五、發明説明(16 ) 允許識別哪一個監視點及來源被吻合。 如圖5中所顯示,AND閘114接收例外或仿真事件之指 示及事件在相關階段中是有效的且未被刪除且未被停止的 指示。AND閘114之輸出驅動兩個正反器116、11 8。中間 的AND閘117決定EX3中吻合指令是否不被刪除、不被停 止且有效的。正反器118之輸出驅動OR閘120之一個輸 入。在正反器118或WP Stat内容是高點之事件中,OR閘 120之輸出是高點。 多工器122接收OR閘120之輸出及AND閘124之輸出 當作輸入。AND閘124接收WP Stat内容及,在反向輸入 端,WP Stat清除信號當作輸入。WP Stat清除信號指示WP Stat值是否應該被設定為0。如果如此,AND閘124之輸出 為低點。多工器122被EXC選取/ EMU選取控制線控制。 如果EXC或EMU事件將被選取,則多工器122選擇OR閘 120之輸出。如果EXC或EMU事件未被選取,則多工器 122選擇AND閘124之輸出。多工器122驅動暫存器126, 其代表WP Stat暫存器之内容。 圖6是說明產生監視點吻合之流程圖。根據現在指令或 資料位址與第一及第二監視點位址WP0、WP1之比較結果 (128),處理決定包含範圍是否是啟動(130)。如果是這樣, 則程序決定位址是否大於第一監視點位址WP0且小於(或 小於或等於)第二監視點位址WP1 (132)。如果不是,則程 序決定相關指令在現在管線階段中是否是有效的、未被刪 除且未被停止(136)。如果是這樣,則一監視點吻合被產生 -19 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1235949 A7 B7 五、發明説明(17 ) (138) 〇 如果包含範圍未被啟動,則程序決定排除的範圍是否被 啟動(140)。如果是’則程序決定第一監視點wp〇是否是 大於該位址或該位址是否是大於(或大於或等於)第二監視 點WP1 (142)。如果其中之一為真,則程序決定相關指令是 否是有效的、未被刪除且未被停止(136)。如果是,監視點 吻合被指出(138)。如果兩種狀況中(142)有一種不為真,則 沒有監視點吻合(144)。 如果包含範圍(130)或排除的範圍(140)都未被啟動,則監 視點WP0及WP1之直接吻合被考慮(146、148)。如果都不 產生一直接監視點吻合,則作出那樣的指示(丨50)。如果監 視點WP0、WP1兩者之中任一個產生一直接吻合,則程序 決定相關指令是否是有效的、未被刪除且未被停止(136)。 如果此狀況是真,則程序識別監視點吻合(138)。 本發明的各種實施例已經被說明。這些及其他實施例是 包含在接下來申請專利範圍的範疇之内。 -20 - 本纸張尺度適用中國國家標準(CNS) A4規格(210X297公嫠)

Claims (1)

  1. A8 B8 C8 ? ΛΚ D8 1 I235^^0131_號專利申請案 中文申凊專利範圍替換本⑼年2月) 申請專利範圍 1. 一種用以產生監視點之裝置,包含: 適合用於儲存監視點位址之監視點暫存器; 對照監視點位址至處理器管線第一級中所提交指令有 關之程式位址之比較器; 當該程式位址等於該監視點位址時產生監視點吻合之 監視點產生器;及 在處理器管線第二級中產生計數值之計數器,計數值 代表監視點吻合的數目。 2. 如申請專利範圍第1項之裝置,尚包含: 當計數值超過正反器臨界值時觸發請求之正反器電 路;及 當與其中之一監視點吻合有關之其中之一指令在管線 較後級被刪除或停止時調整計數值之控制器。 3·如申請專利範圍第2項之裝置,其中管線之第二級是在管 線第一級之後。 4·如申請專利範圍第2項之裝置,其中程式位址是指令位址 或資料位址。 5·如申請專利範圍第2項之裝置,尚包含事件產生電路,其 選擇性地產生處理請求之仿真事件或依據與監視點吻合 有關預定事件形式處理請求之例外。 6.如申請專利範圍第2項之裝置,其中計數器藉由減少各監 視點吻合之初始計數值產生計數值,且當與其中之一於 視點吻合有關聯之其中之一指令在管線:後階段被刪= 或終止時,控制器藉由補償減少功能調整計數值。
    8 A BCD 1235949 申請專利範圍 7。如申請專利範圍第2項之裝置,其中監視點暫存器包含裝 有第一監視點位址之第一監視點暫存器及裝有第二監視 點位址之第二監視點暫存器,比較器將第一及第二監視 點位址與處理器管線所提出指令有關聯之程式位址作比 較,且當程式位址是在第一及第二監視點地址所定義範 圍内時,監視點產生器產生監視點吻合。 8·如申請專利範圍第7項之裝置,其中範圍是指擴展於第一 與第二監視點位址之間的包含範圍,或擴展於第一與第 二監視點位址之間外部範圍之排除的範圍。 9.如申請專利範圍第7項之裝置,尚包含用於選擇性關閉其 中之一監視點暫存器以節省電力之電路。 10·如申請專利範圍第7項之裝置,其中比較器包含比較第一 監視點與程式位址之第一比較器,及比較第二監視點與 程式位址之第二比較器,監視點引擎尚包含選擇性將第 一及第二比較器其中至少一個關閉且穩定被關閉比較器 輸出之電路。 11· 一種用以產生監視點之方法,包含: 將監視點位址和與處理器管線第一階段所提出指令有 關聯之程式位址作比較; 當程式位址等於監視點位址時產生監視點吻合;及 在處理器管線第二階段中產生代表監視點吻合數目之 計數值。 12 ·如申請專利範圍第11項之方法,尚包含: 當計數值超過觸發臨界點產生請求;且 • 2 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐). 1235949 A8 B8 C8
    當與其中之一監視點吻合有關聯之其中之一指令在管 線中較後階段被刪除或停止時調整計數值。 13·如申請專利範圍第12項之方法,其中計數值之產生包含 在比官線第一階段稍後之管線第二階段中產生計數值。 14.如申請專利範圍第12項之方法,其中請求之產生包含產 生處理請求之仿真事件及處理請求之例外。 15·如申請專利範圍第12項之方法,其中監視點位址與程式 位址之比較包含監視點位址與指令位址或資料位址之比 較。 16. 如申請專利範圍第12項之方法,尚包含依據先前決定與 監視點吻合有關聯的事件類型選擇性地產生仿真事件處 理請求之或例外處理請求。 17. 如申請專利範圍第12項之方法,尚包含: 指定第一及第二監視點暫存器中第一及第二監視點位 址; 將第一及第二監視點位址和與處理器管線所提出指令 有關聯之程式位址作比較;且 當程式位址是在第一及第二監視點位址所定義之範圍 内時產生監視點吻合。 18·如申請專利範圍第17項之方法,尚包含當程式位址是在 擴展於第一與第二監視點位址之間之包含範圍或在擴展 於第一與第二監視點位址之間排除範圍外側範圍之内時 產生監視點吻合。 19·如申請專利範圍第17項之方法,尚包含選擇性地關閉第 -3 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
    六、申請專利範園 及第二監視點暫存器以保存電力。 20·種用以產生監視點之系統,包含·· 快閃記憶體裝置,· 連接至快閃記憶體裝置之管線化處理器; 用於儲存第一監視點位址之第一監視點暫存器,· 用於儲存第二監視點位址之第二監視點暫存器; 將第一及第二監視點位址與提交給處理器管線指令有 關程式位址做比較之比較器; 當程式位址是在第一及第二監視點位址所定義之範圍 内時產生監視點吻合之監視點產生器; 產生代表監視點產生器所產生監視點吻合數目之計數 值的計數器; 當計數值超過觸發臨界點時觸發一請求之觸發電路; 及 當與其中之一監視點吻合有關聯之其中之一指令在管 線中較後階段被刪除或停止時調整計數值之控制器。 21.如申請專利範圍第20項之系統,其中請求是處理請求之 仿真事件或處理請求之例外。 22· —種用以產生監視點之裝置引擎,包含: 載有監視點位址之監視點暫存器; 在處理器管線第一階段中將監視點位址和與指令有關 聯之程式位址作比較之比較器; 當程式位址等於監視點位址時產生監視點吻合之監視 點產生器;及 -4 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公爱) 1235949 A8 B8 C8
    申請專利範園 在處理器管線第二階段產生計數值之計數器,計數值 代表監視點產生器所產生之監視點吻合數目。 23·如申請專利範圍第22項之裝置引擎,尚包含: 當計數值超過觸發臨界點時觸發一請求之觸發電路; 及 當與其中之一監視點吻合有關聯其中之一指令在管線 中較後階段被刪除或停止時調整計數值之控制器。 24.如申請專利範圍第22項之裝置引擎,其中請求是處理請 求之仿真事件或處理請求之例外。 25· —種用以產生監視點之方法,包含·· 指定監視點位址; 在處理器管線第一階段中將監視點位址和與指令有關 聯之程式位址做比較; 當私式位址等於監視點位址時,產生監視點吻合;且 在處理器官線第二階段中產生計數值,計數值代表監 視點吻合的數目。 26.如申請專利範圍第25項之方法,尚包含: 當計數值超過觸發臨界點時,產生一請求;且 當與其中之一監視點吻合有關聯之其中之一指令在管 線中較後階段被刪除或停止時,調整計數值。 27· —種用以產生監視點之裝置,包含: 具有第一監視點位址之第一監視點暫存器· 具有第二監視點位址之第二監視點暫存器· 比較器’將第-及第二監視點位址與提交給處理器管 -5 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) ""--—-— 1235949 as B8 C8 D8 六、申請專利範圍 線指令有關程式位址做比較; 監視點產生器,根據、比較結果產生監視點吻合;及 電路,選擇性地將第一、第二比較器至少其中之一關 閉且穩定被關閉比較器之輸出。 28·如申請專利範圍第27項之裝置,其中第一及第二監視點 位址定義一範圍,當程式位址是在第一及第二監視點位 址所定義之範圍中時,監視點產生器產生監視點吻合。 -6 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
TW090131069A 2000-12-15 2001-12-14 Watchpoint engine for a pipelined processor TWI235949B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/739,092 US6829701B2 (en) 2000-12-15 2000-12-15 Watchpoint engine for a pipelined processor

Publications (1)

Publication Number Publication Date
TWI235949B true TWI235949B (en) 2005-07-11

Family

ID=24970785

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090131069A TWI235949B (en) 2000-12-15 2001-12-14 Watchpoint engine for a pipelined processor

Country Status (6)

Country Link
US (1) US6829701B2 (zh)
JP (1) JP3708521B2 (zh)
KR (1) KR100571732B1 (zh)
CN (1) CN1306411C (zh)
TW (1) TWI235949B (zh)
WO (1) WO2002048888A2 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2362968B (en) * 1999-12-23 2003-12-10 St Microelectronics Sa Computer system with debug facility
TWI223138B (en) * 2001-07-11 2004-11-01 Faraday Tech Corp Device and method for detecting micro-processor execution performance
US7065691B2 (en) * 2003-05-19 2006-06-20 Hewlett-Packard Development Company, L.P. Apparatus and method for saving precise system state following exceptions
US7711914B2 (en) 2005-06-28 2010-05-04 Hewlett-Packard Development Company, L.P. Debugging using virtual watchpoints
CN101192193A (zh) * 2006-11-27 2008-06-04 国际商业机器公司 用于实现观察点的方法和系统
US7783867B2 (en) * 2007-02-01 2010-08-24 International Business Machines Corporation Controlling instruction execution in a processing environment
US7783865B2 (en) * 2007-08-01 2010-08-24 International Business Machines Corporation Conditional data watchpoint management
US8407457B2 (en) 2007-09-28 2013-03-26 Freescale Semiconductor, Inc. System and method for monitoring debug events
US8042002B2 (en) 2008-01-18 2011-10-18 Freescale Semiconductor, Inc. Method and apparatus for handling shared hardware and software debug resource events in a data processing system
CN116775417B (zh) * 2023-08-16 2023-11-07 无锡国芯微高新技术有限公司 Risc-v处理器运行监测和行为追踪系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US531894A (en) * 1895-01-01 Alfred ashby
JP2505950B2 (ja) 1991-05-13 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション ハ―ドウェア支援ブレ―クポイント・システム
US5659721A (en) * 1995-02-14 1997-08-19 Hal Computer Systems, Inc. Processor structure and method for checkpointing instructions to maintain precise state
EP0992905A3 (en) 1998-10-06 2002-11-27 Texas Instruments Inc. Cache miss benchmarking
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6349371B1 (en) * 1999-10-01 2002-02-19 Stmicroelectronics Ltd. Circuit for storing information
US6557119B1 (en) * 1999-10-01 2003-04-29 Stmicroelectronics Limited Microcomputer debug architecture and method

Also Published As

Publication number Publication date
CN1555526A (zh) 2004-12-15
US6829701B2 (en) 2004-12-07
JP2004516550A (ja) 2004-06-03
JP3708521B2 (ja) 2005-10-19
US20020078329A1 (en) 2002-06-20
KR20030090613A (ko) 2003-11-28
KR100571732B1 (ko) 2006-04-18
WO2002048888A9 (en) 2003-04-17
WO2002048888A2 (en) 2002-06-20
CN1306411C (zh) 2007-03-21
WO2002048888A3 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
US6976178B1 (en) Method and apparatus for disassociating power consumed within a processing system with instructions it is executing
US7620832B2 (en) Method and apparatus for masking a microprocessor execution signature
CN108776619B (zh) 微处理器、管理微处理器的电力消耗的方法及存储介质
TWI235949B (en) Watchpoint engine for a pipelined processor
US20230205656A1 (en) Processor with debug pipeline
TW201508635A (zh) 多核心微處理器動態重新配置
JP2002182807A (ja) プロセッサの電力制御装置
JPH06139097A (ja) インサーキットエミュレータ
JP4996654B2 (ja) プロセッサ
US20110202796A1 (en) Microprocessor with system-robust self-reset capability
JP4689087B2 (ja) 情報処理装置及び省電力移行制御方法
KR20080104177A (ko) 마이크로컨트롤러 기반의 플래시 메모리 디지털 제어기를 위한 펌웨어 확장가능 명령
JP2581018B2 (ja) データ処理装置
CN114610519A (zh) 一种处理器寄存器组的异常错误的实时恢复方法及系统
JP2003271267A (ja) プロセッサの電力制御方法
JP2504191B2 (ja) マイクロプロセッサ
JP3278843B2 (ja) マイクロコンピュータ
JPS5913060B2 (ja) 主記憶装置の記憶容量検出方式
TW476876B (en) Method for testing CPU performance
TWI463401B (zh) 作業系統開機的方法
JP6015294B2 (ja) 半導体集積回路及び電力消費抑制方法
JP3410023B2 (ja) インサーキットエミュレータ
JP2994642B2 (ja) データ処理装置
JPH1011290A (ja) マイクロプロセッサ
JPH0438533A (ja) マイクロコントローラ

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent