TWI235949B - Watchpoint engine for a pipelined processor - Google Patents
Watchpoint engine for a pipelined processor Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing 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)
- 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公釐)
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)
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)
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 |
-
2000
- 2000-12-15 US US09/739,092 patent/US6829701B2/en not_active Expired - Lifetime
-
2001
- 2001-12-10 JP JP2002550532A patent/JP3708521B2/ja not_active Expired - Lifetime
- 2001-12-10 CN CNB018207065A patent/CN1306411C/zh not_active Expired - Fee Related
- 2001-12-10 KR KR1020037007896A patent/KR100571732B1/ko active IP Right Grant
- 2001-12-10 WO PCT/US2001/047621 patent/WO2002048888A2/en active IP Right Grant
- 2001-12-14 TW TW090131069A patent/TWI235949B/zh not_active IP Right Cessation
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 |