資訊二 B85506042 姚侑廷 期末組語作業 Pentium Probe Mode 概觀 (Overview of Pentium Probe Mode By Robert R. Collins) Pentium處理器設計有除錯模式,稱為偵測模式(Probe Mode)。偵測模式是用來 診斷的目的,針對一些較新的主機板,還有競爭電路的供給。偵測模式並不是使用者可存取用的啟動作法,而透過軟體來開啟或關閉。偵測模式僅可透過範圍掃瞄暫存器的組合與接腳才能進而存取。偵測模式的記錄在於測試存取埠(TAP)的界線掃瞄暫存器,而且只有透過JTAG的支援才可進而存取。 當進入偵測模式下時,Pentium會測試並更正系統內外部的狀態。記憶體與輸入輸 出埠也被測試與更正。所有CPU內部的暫存器都會做同樣的動作,包括控制暫存器(CRn)、除錯暫存器(DRn)、還有MSR's。 當在偵測模式下時,一般正常的指令都會中斷,而Pentium會進入冬眠狀態。當早 期支援ICE的X86處理器在未知系統的ICE模式下,還是會繼續執行X86 ICE指令。在這些處理器中,ICE是CPU的另一種交互啟動模式,伴隨著自身使用的程式與記憶體空間(就像是System Management Mode(SMM) 之於Pentium)。但不像早期的X86處理器,Pentium的偵測模式的確是一個靜態的狀態描述,因此預先取出並解碼並沒有任何的標準與目的。偵測模式指令測試或更正暫存器、記憶體、或是I/O埠,直接都供給給Pentium的執行單元,因此略過取碼與解碼的步驟。 【偵錯模式的描述】 偵測模式經由附加的邊界掃瞄指令集與兩個端點(接腳)還有三個(或更多)偵測模式暫存器驅使而動作。邊界掃瞄指令擴充支援的偵測模式指令有啟動偵測模式,結束偵測模式,建立偵測指令,執行偵測指令,存取偵測暫存器,而且有可能(極高的可能性)指示更新資料快取,更新碼,更新所有快取。偵測模式邊界掃瞄指令被標示成Pentium 邊界掃瞄指令集的私有指令的集總。R/S# 與 PRDY是被定義為支援偵測模式的兩端。這些端點被記錄(多少有點不完整的)在Pentium的資料面。被用來支援偵測模式的暫存器稱為偵測指令暫 存器(PIR),偵測資料暫存器(PDR),偵測模式控制暫存器(PMCR),還有偵測狀態暫存器(PSR)。 當處於偵測模式下,處理器會處在冬眠的狀態下。預取並解碼的動作不會發生。任何例外、NMI、未解決的外部中斷將不會動作,直到偵測模式結束終了。檢查、快取資料線壅塞、回 寫有可能會發生在偵測模式下,因為偵測模式可在快取啟動下執行記憶體操作。 【進入與離開Probe Mode】 有三個可能性的方法可以進入偵測模式。第一,處理器可能會接收自邊界掃瞄指令集發出的命令開啟偵測模式。以此方法,處理器會立即停止下一個指令的執行並發出PRDY訊息。一旦發出PRDY訊息後,處理器便準備經由邊界掃瞄結構接受偵測模式指令。若要離開偵測模式,則執行邊界掃瞄指令「EXIT PROBE MODE」,或者外部硬體必須由高速到低速地強制R/S#, 再回到高速。這是高到低的轉變,用來強制Pentium離開偵測模式。 第二,當外部硬體發出R/S#訊息時,也會進入偵測模式。而處理器會發出PRDY訊息當作回應,當它準備接受偵測模式指令時。若要離開偵測模式,外部硬體需強制R/S#回到高速。在這方法中,邊界掃瞄指令「END PROBE MODE」將不會動作,以離開偵測模式。因為發出R/S# 訊息以進入偵測模式,所以強制回到高速不但足夠,而且也是唯一離開的方法。 第三,Pentium本身也可能進入偵測模式,每當除錯例外發生時。因為發生時,偵測模式暫 存器必須設定成允許除錯例外以進入偵測模式。當PMCR被設定成這樣的方法時,任何除錯例外發生都會進入偵測模式。以下的狀況是除錯例外發生的情形,因為除錯暫存器的中斷點被偵測到。像是,單步執行、工作切換發生在TSS的T-bit被設定後、DR7.GD=1、任何欲存取除錯暫存器的動作發生。或是除錯例外指令執行 -- ICEBP. When PMCR[0]=1。這些情況的發 生都會導致Pentium進入偵測模式。一旦其中的一項情況發生,Pentium會立即進入偵測模式,發出PRDY訊息並準備接收偵測模式指令。若要離開偵測模式,執行邊界掃瞄程式「結束偵測模式」或外部硬體有可能強制R/S# 由高速到低速,再回到高速。 【PROBE MODE指令】 偵測模式指令構成偵測指令暫存器。PIR對於Pentium的所有執行單元都能夠完整的控制。(u-pipe, and v-pipe and FPU)。PIR的格式必然是自u-pipe和v-pipe或FPU和v-pipe之間劃開。因此,可以允許兩個微密碼指令同時使用PIR。組成偵測模式指令可能會需要寫入PIR很多次。既然如此,PIR將會在每次建立偵測模式指令執行後被更新。一旦每個pipe的微指令 都被完全的組成後,「Execute Probe Instruction」訊息的發出,將會導致偵測模式的執 行。 【結論】 Pentium 的偵測模式是決定在Pentium本身的雙埠結構,提供一個非強制性的讀寫法,可以 針對微處理器的狀況、記憶體空間、I/O埠的任何狀況。當處於偵測模式時,Pentium處於冬眠狀態以等待接受偵測模式指令,直到被命令離開偵測模式。從偵測模式回復也是同樣地非強制性的 - 只要處理器的狀態沒有被改變到;除非由偵測模式指令下達這麼做。偵測模式 指令被組成而且直接提供來回饋給U-pipe,V-pipe,還有浮點運算器(FPU)。其指令存在 於用來檢查並更改內部暫存器,包括MSR's。針對預防偵測模式指令運算子,並沒有任何的 保護檢測,且准許執行錯誤運算子的結果也不確定。由於它的非強制特性,偵測模式才能提供一個理想的方法執行以硬體為基礎的除錯器。