欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

支持非正規(guī)輸入處理機制的動態(tài)二進制翻譯的設備、系統(tǒng)和方法

文檔序號:6567946閱讀:266來源:國知局
專利名稱:支持非正規(guī)輸入處理機制的動態(tài)二進制翻譯的設備、系統(tǒng)和方法
支持非正規(guī)輸入處理機制的動態(tài)二進制翻譯的設備、系統(tǒng)和方法
背景技術
一些符合例如Intd⑧體系結構-32(IA-32)的計算機平臺可以支持 稱為反常值為零(Denormals-Are-Zeroes)(DAZ)的、用于在程序代碼執(zhí) 行期間處理非正規(guī)(denormal)輸入或操作數的特征。這些平臺可以包 括控制位,本文中稱為DAZ位,它控制對浮點(FP)非正規(guī)異常狀態(tài) 下的單指令多數據(SIMD)指令的響應。程序代碼可以具有控制平臺 中的DAZ位的一個或多個控制指令。這些控制指令可以將DAZ位 設置為兩個值(例如"1"和"0")的其中之一。例如,當DAZ位被 設置為"1"時,運行在支持DAZ特征的平臺上的處理器可以檢測 在代碼執(zhí)行期間產生非正規(guī)異常狀況的指令,并以預定值(例如帶初 始操作數的符號的零)對該指令(發(fā)生異常的指令)的非正規(guī)操作數賦 值。然后,處理器就可以利用l喿作數的這些新值來執(zhí)行該發(fā)生異常 的指令。在本文中,可以將上述的對非正規(guī)操作數的處理稱為非正 規(guī)輸入處理機制或DAZ機制。
動態(tài)二進制翻譯器可以將源代碼(如符合支持DAZ特征的源體 系結構的IA-32代碼)翻譯成將在目標平臺上執(zhí)行的目標代碼。目標 平臺可以具有浮點模型,因此能夠產生諸如非正規(guī)異常的流SIMD 擴展(SSE)異常。但是,在處理非正規(guī)異常的非正規(guī)輸入時,目標平 臺可能不支持DAZ特征。 一種這樣的目標平臺可以是,例如,符合 Intel ItaniumTM處理器族的體系結構的平臺。


并明確地要求了該主題的權利。然而,通過結合附圖閱讀以下的詳細說明,可以最好地理解有關本發(fā)明的組織方式和操作方法,以及
本發(fā)明的目標、特征和優(yōu)點。在這些附圖中
圖1是根據本發(fā)明的某些說明性實施例的、能夠執(zhí)行支持DAZ 機制的動態(tài)二進制翻譯的裝置的框圖2是根據本發(fā)明的說明性實施例的、支持DAZ機制的動態(tài)二 進制翻譯方法的流程圖3是根據本發(fā)明的說明性實施例的、用于在所有不屬于非正 規(guī)異常的異常均被屏蔽時在程序代碼執(zhí)行期間處理非正規(guī)異常的方 法的流程圖4是根據本發(fā)明的說明性實施例的、用于在一個或多個不屬 于非正規(guī)異常的異常被取消屏蔽時在程序代碼執(zhí)行期間處理非正規(guī) 異常的方法的示意圖5是根據本發(fā)明的說明性實施例的、用于處理從對應的故障 目標指令恢復的異常源指令的方法的示意圖6是^f艮據本發(fā)明的說明性實施例的、用于構建具有大量非正 規(guī)異常的翻譯后目標代碼塊的方法的示意圖7是根據本發(fā)明的說明性實施例的、用于執(zhí)行目標指令塊的 方法的示意圖。
可以懂得,為了使圖示變得簡單和清楚,不必按比例繪制圖中 示出的各要素。例如,為清楚起見,可能將某些要素的尺寸相對于 其他要素進行放大。
具體實施例方式
在以下的詳細描述中,闡述了許多具體細節(jié),以便使讀者透徹 地理解本發(fā)明的實施例。但是,本領域的技術人員將懂得,即便沒 有這些具體細節(jié),也可以實施本發(fā)明的實施例。在其他實例中,未 詳細描述眾所周知的方法和流程,以避免干擾對本發(fā)明實施例的描述。
通過利用算法和與計算機存儲器中的數據位或二進制數字信號 的操作有關的符號表現(xiàn)形式,給出了以下的詳細說明中的一些部分。 這些算法描述和表現(xiàn)形式可以是數據處理技術領域的技術人員用以 將他們的工作內容傳達給其他同行的表示方式。
在本文中和一般情況下,將算法視為產生期望結果的自相容的 動作或操作序列。它們包括對物理量的物理處理。通常(雖然并非必 要),這些量呈現(xiàn)為電信號或磁信號的形式,這些電信號或磁信號能 夠被存儲、傳輸、組合、比較和進行其他處理。已經證明,將這些 信號稱為位、值、元素、符號、字符、項、數字等等時常被證明是 方便的,主要是因為這些稱呼常用。然而,應當懂得,所有這些和 類似術語均與合適的物理量相關聯(lián),它們僅僅是應用于這些量的便 捷標記。
除非另外進行具體說明,否則從以下討論中明顯可以看到,在 整個說明書中,采用諸如"處理"、"計算"、"計算"、"確定"等術 語的討論是指計算機或計算系統(tǒng)或類似的電子計算設備的動作和/或 過程,這些動作和/或過程處理計算系統(tǒng)的寄存器和/或存儲器內的表 示為物理(如電子的)量的數據,和/或將這些數據變換為計算系統(tǒng)的存 儲器、寄存器或其他這類信息存儲裝置、傳輸或顯示設備內的被類 似地表示為物理量的其他數據。.f、'、
可以采用存儲指令或指令集的機器可讀介質或制品來實施本發(fā) 明的某些實施例,當所述指令或指令集被機器執(zhí)行時,會引起所述 機器執(zhí)行依照本發(fā)明的實施例的方法和/或操作。這類機器可以包括, 例如,任何合適的處理平臺、計算平臺、計算設備、處理設備、計 算系統(tǒng)、處理系統(tǒng)、計算機、處理器,等等,并可以用硬件和/或軟 件的任何合適的組合來實施。所述機器可讀介質或制品可以包括, 例如,任何適合類型的存儲器單元、存儲器設備、存儲器制品、存 儲器介質、存儲裝置、存儲制品、存儲介質和/或存儲單元(如存儲器、 可拆卸或不可拆卸介質、可擦除或不可擦除介質、可寫或可重寫介 質、數字或模擬介質、硬盤、軟盤、只讀致密盤(CD-ROM)、可記錄 致密盤(CD-R)、可重寫致密盤(CD-RW)、光盤、磁介質、各種類型 的數字多功能光盤(DVD)、磁帶、盒式磁帶,等等)。所述指令可以 包括任何類型的代碼,例如源-代碼、經過編譯的代碼、經過解釋的 代碼、可執(zhí)行代碼、靜態(tài)代碼、動態(tài)代碼,等等,并可以用任何適 合的高級、低級、面向對象的、可視的、編譯和/或解釋型編程語言(如 C、 C++、 Java、 BASIC、 Pascal、 Fortran、 Cobol、匯編語言、機器 碼等等)來實現(xiàn)。
本發(fā)明的實施例可包括用于執(zhí)行本文中的操作的裝置。這些裝 置可以是專為期望的目的而特意制造的,或者,它們可以包括由計 算機程序有選擇地進行激活或重新配置的通用計算機,所述計算機 程序存儲在該計算機中。這類計算機程序可以存儲在計算機可讀存
盤,包括軟盤、光盤、CD-ROM、磁光盤、只讀存儲器(ROM)、隨機 存取存儲器(RAM)、電可編程只讀存儲器(EPROM)、電可擦除可編 程只讀存儲器(EEPROM)、磁或光卡或適于存儲電子指令并且能夠耦 合到計算機系統(tǒng)總線的任何其他類型的介質。
本文闡述的過程和顯示本質上并不與任何特定計算機或其他裝 置相關??梢詫⒏鶕疚慕虒У某绦蚺c各種通用系統(tǒng)一起使用,或 者,制造更專門的裝置來執(zhí)行期望的方法可能比較方便。從以下的 描述中可以看出用于多種這類系統(tǒng)的期望結構。此外,并沒有結合
任何特定的編程語言來描述本發(fā)明的實施例。將會懂得,可以使用 多種編程語言來實現(xiàn)本文描述的發(fā)明原理。
在以下的描述中,提供了作為不同手段的多種附圖、圖表、流 程圖、模型和描述來有效地表達實質內容以及示出本申請中建議的 本發(fā)明的不同實施例。本領域才支術人員應當懂得,它們僅作為示范 樣本而提供,且不應被理解為對本發(fā)明的限制。
圖1是根據本發(fā)明的某些說明性實施例的、能夠執(zhí)行支持DAZ
機制的動態(tài)二進制翻譯的裝置100的框圖。裝置100可以是計算平 臺,本文稱為目標平臺,并且,裝置100可以包括操作地連接到存 儲器106的處理器102。
根據本發(fā)明的實施例,存儲器106適于存儲源指令100(本文中 也稱為"源代碼")的集合和目標指令120(本文中也稱為"目標代碼") 的集合。存儲器106也可以存儲動態(tài)二進制翻譯器108的指令。處 理器102可以執(zhí)行動態(tài)二進制翻譯器108,以將源指令集110翻譯成 目標指令集120。然后,處理器102可以通過應用輸入103來執(zhí)行目 標指令集120,并且可以在目標代碼執(zhí)行期間應用算法104來取消目 標平臺上的非正規(guī)輸入控制位的屏蔽,以下將結合圖2對此進行詳 細描述。動態(tài)二進制翻譯器108可以包括異常處理程序109,以處理 諸如非正規(guī)異常的異常,以下將結合自3-7對此進行詳細描述。
源指令集110可以符合例々。IA-32的源體系結構,該源體系結 構能夠支持非正規(guī)輸入處理機制(本文中也稱為DAZ機制)。源指令 集IIO可以包括一個或多個控制指令,當在源平臺上執(zhí)行時,這些控 制指令決定源代碼是否應使用由源平臺支持的DAZ機制。如果源代 碼使用DAZ機制,則該源體系結構可以通過將非正規(guī)操作數轉換成 帶初始操作數的符號的零來響應發(fā)生異常的指令的SIMD浮點非正 規(guī)操作數狀況,然后使用非正^L操作數的新值來執(zhí)行上述發(fā)生異常 的指令。
處理器120可以與目標體舉結構(如Intel ItaniumTM處理器系列的 體系結構)相符。根據本發(fā)明的溪施例,處理器102可以不需要源體 系結構中所需的硬件來支持DAZ機剁。相反,根據本發(fā)明的說明性 實施例,可以在目標指令集120的執(zhí)行期間通過動態(tài)二進制翻譯來 模擬DAZ機制,如以下的詳細i兌明所述。
關于裝置100的非窮盡例子的列表可包括臺式個人計算機、工 作站、服務器計算機、膝上型計算機、筆記本計算機、手持式計算 機、個人數字助理(PDA)、移動電話、游戲控制臺等等。
關于處理器102的非窮盡例子的列表可包括中央處理單元 (CPU)、數字信號處理器(DSP)、精簡指令集計算機(RISC)、復雜指 令集計算機(CISC)等等。而且,處理器102可以是專用集成電路(ASIC) 的一部分,或者,可以是專用標準產品(ASSP)的一部分。
存儲器106可以固定在裝置100內或可以從設備100上卸下。 關于存儲器106的非窮盡例子的列表可包括以下器件的其中一種或 任何組合半導體器件,同步動態(tài)隨機存取存儲器(SDRAM)器件、 RAMBUS動態(tài)隨機存取存儲器(RDRAM)器件、雙數據速率(DDR)存 儲器器件、靜態(tài)隨機存取存儲器(SRAM)器件、閃速存儲器(FM)器件、 電可擦除可編程只讀存儲器(EEPROM)器件、非易失性隨機存取存儲 器(NVRAM)器件、通用串行總線(USB)可拆卸存儲器等等;光器件, 如致密盤只讀存儲器(CD-ROM)等等;以及磁器件,如硬盤、軟盤、 磁帶等等。
在源代碼執(zhí)行期間,源代碼中的指令可能產生各種異常。例如, 符合Inte胸IA-32體系結構的源指令可支持二進制浮點算法的 ANSI/IEEE標準754-1985中定義和要求的如下特定異常"無效操 作"、"除以零"、"溢出"、"下溢"和"不精確計算"浮點異常。以 上異常一般稱為SSE異常。目標平臺可包括一個或多個控制位,這 些控制位包括非正規(guī)輸入控制位,可以對非正規(guī)輸入控制位設置或 取消屏蔽來控制對SSE異常的處理。如以下結合圖2的詳細說明所 述,可以由處理器102通過算法104來控制這些控制位。此外,源 代碼可以包括一個或多個控制指令,這些控制指令用于控制源平臺 中的DAZ位的設置,以確定源代碼是否使用DAZ機制。
根據本發(fā)明的說明性實施例,可以由動態(tài)二進制翻譯器108通 過在目標平臺上執(zhí)行,目標代碼.120來模擬源平臺支持的和源代碼110 使用的DAZ機制。處理器102適于運行動態(tài)二進制翻譯器108,以 將包括例如源指令112和/或113的源指令集110翻譯成包括例如目 標指令122和/或123的目標指令集120。在目標代碼執(zhí)行期間,處
理器102可以執(zhí)行算法104,以對目標平臺上的非正規(guī)輸入控制位取 消屏蔽,這樣,通過執(zhí)行一個或多個對應的故障目標指令(如目標指 令122),可以檢測一個或多個發(fā)i異常的源指令(如源指令112)。
根據本發(fā)明的說明性實施例,當^r測到非正規(guī)異常時,可以由 動態(tài)二進制翻譯器108來模擬DAZ機制。可以通過動態(tài)二進制翻譯 器108以預定值(例如帶初始操作數的符號的零)對目標指令的非正規(guī) 操作數賦值來執(zhí)行這種模擬,該目標指令是對應于非正規(guī)異常的故 障目標指令。然后,處理器120可以用非正規(guī)4喿作數的新賦的值來
執(zhí)行上述故障目標指令。
根據本發(fā)明的某些說明性實施例,當在故障目標指令122處檢 測到非正規(guī)異常時,可以重新翻譯對應的發(fā)生異常的源指令112來生 成新的目標指令122。此外,可以生成前綴代碼121,并將其附于新 生成的目標指令122。前綴代碼121可以識別源指令112的所有非正 規(guī)操作數,以及識別源代碼110,申的控制指令執(zhí)行的控制,以確定源 代碼是否使用DAZ機制。如果源代碼使用DAZ機制,則如以上的 詳細說明所述,前綴代碼121可以模擬DAZ機制。
根據本發(fā)明的說明性實施例,處理器102可以包括計數器,例 如基于高速緩存的計數器105,該計數器用于對目標指令塊中的非正 規(guī)異常的數目計數。如果非正規(guī)異常的數目超過預定閾值,則動態(tài) 二進制翻譯器108可以如以下結合圖6詳細說明的那樣模擬DAZ機制。
圖2是根據本發(fā)明的說明性實施例的、支持DAZ機制的動態(tài)二 進制翻譯方法的流程圖。
根據本發(fā)明的說明性實施例,動態(tài)二進制翻譯器108可以接收 源代碼(例如源代碼110),如框202所示。然后,動態(tài)二進制翻譯器 108可以翻譯源代碼110,以生成對應的目標代碼120,如框204所 示,并執(zhí)行目標代碼120,如框206所示。源代碼110可以包括一個 或多個控制指令,這些控制指令可以更改源平臺中的DAZ位的設置 來決定源代碼是否使用DAZ機制。在執(zhí)行期間,如框208所示,如 果確定源代碼中的控制指令執(zhí)4亍的控制指示源代碼中使用DAZ機 制,則處理器102可以對目標平臺中的非正規(guī)輸入控制位取消屏蔽, 如框212所示,以便可以在DAZ處理的代碼執(zhí)行期間4全測非正規(guī)異 常??梢杂商幚砥?02執(zhí)行取消屏蔽算法(如算法104(圖l))來對非正 規(guī)輸入控制位取消屏蔽。
根據本發(fā)明的說明性實施例,可能有兩種需要單獨處理目標代 碼執(zhí)行期間檢測到的非正規(guī)異常的情況。如框214所示,第一種情 況是在源代碼中屏蔽了不包括非正規(guī)異常的所有SSE異常,并因此 在對應的目標代碼中屏蔽了相同的不屬于非正規(guī)異常的異常。在這 種情況下,處理器102可以執(zhí)4于目標代碼、檢測非正規(guī)異常,并應 用DAZ機制,如框216所示,以下將結合圖3對此進行詳細說明。
第二種情況是在源代碼中對一個或多個不屬于非正規(guī)異常的異
常取消屏蔽,并因此在對應的目標代碼中對上述異常取消屏蔽。在 這種情況下,處理器102可以:執(zhí)行目標代碼、檢測非正規(guī)異常,并 應用狀態(tài)恢復機制來處理該異常,如框218所示,以下將結合圖4 對此進行詳細說明。
如框208所示,如果確定源代碼中的控制指令執(zhí)行的控制未指 示源代碼使用DAZ機制,則處理器102可以如框210所示繼續(xù)執(zhí)行 目標代碼。
圖3是根據本發(fā)明的說明性實施例的、用于在所有不屬于非正 規(guī)異常的異常均被屏蔽時在程序代碼執(zhí)行期間處理非正規(guī)異常的方 法的流程圖。對目標平臺中的非正規(guī)輸入控制位取消屏蔽,這樣處 理器102可以在目標代碼執(zhí)行期間檢測非正規(guī)異常。
根據本發(fā)明的說明性實施例,處理器102可以開始執(zhí)行目標指 令的集合(如目標指令集120),如框302所示。目標指令的該集合可 以對應于使用DAZ機制的源指令的集合(如源指令集110)。在執(zhí)行期 間,處理器102可以檢測產生非正規(guī)異常的故障目標指令(如目標指
令122),如框304所示。該異常是非正規(guī)異常,因為所有不屬于非 正規(guī)異常的異常,即不同于非正規(guī)異常的SSE異常均已被屏蔽從而 無法被檢測到。如框306所示,當檢測到該非正規(guī)異常時,處理器102 可以將非正規(guī)操作數識別為非正規(guī)異常,并且可以用預定值(例如帶 初始搡作數的符號的零)對非正失見操作數賦值。然后,處理器102可 以利用非正規(guī)操作數的新值來執(zhí)行目標指令122,如框308所示???以從目標指令122的執(zhí)行得到結果,如框310所示,并將其保存在 例如與上述處理器相關的指令高速緩存中,以在隨后將其應用于后 續(xù)目標指令的執(zhí)行。在框312處,可以移動目標代碼執(zhí)行中使用的 指令指針,或將其遞增,以指向新的目標指令,例如指向故障目標 指令122之后的指令。可以在該指令指針所指的新目標指令處恢復 對剩余的目標指令的執(zhí)行,如框314所示,并且,如框310所示, 可以將從故障目標指令122的執(zhí)行獲得的結果應用于該執(zhí)行。
圖4是根據本發(fā)明的說明性實施例的、用于在一個或多個不屬
異常的方法的示意圖。對目標平臺中的非正規(guī)輸入控制位取消屏蔽, 這樣處理器102可以在目標代碼執(zhí)行期間檢測非正規(guī)異常。
根據本發(fā)明的說明性實施例,處理器102可以如框402所示執(zhí) 行目標指令,并且可以如框404所示檢測產生非正規(guī)異常的故障目 標指令。但是,在這種情況下,故障目標指令也可能產生其他不屬 于非正規(guī)異常的異常,因為一個或多個不屬于非正規(guī)控制位的控制 位未被屏蔽。例如,故障目標指令可能產生另一種SSE異常(如"溢 出,,或"下溢"異常)。在不知道故障目標指令可能產生的所有其他 異常的情況下,處理器102可能需要使用狀態(tài)恢復機制來處理非正
規(guī)異常,以下將對此進行詳細描述。
根據本發(fā)明的說明性實施例,二進弗;l翻譯器108的異常處理程 序109可以恢復源指令.,該源指令是從其中翻譯出上述故障目標指 令的發(fā)生故障的源指令,如框406所示。然而,本發(fā)明不限于此,
可以通過其他方式或異常處理程序來恢復該源指令。可以重新翻譯
和重新執(zhí)行該恢復的源指令,如框408所示,且以下將結合圖5對 此進行詳細說明。在執(zhí)行該恢復的源指令之后,處理器102可以恢 復剩余的目標指令的執(zhí)行,如框410所示。
圖5是根據本發(fā)明的說明性實施例的、用于處理從故障目標指 令恢復的發(fā)生異常的源指令的方法的示意圖。
根據本發(fā)明的說明性實施例,可以將恢復的源指令重新翻譯成 重新生成的目標指令,如框502所示。可以將該翻譯與其他指令的 翻譯分開執(zhí)行,以避免由于其他異常所導致的潛在影響。在框504 處,可以將前綴代碼(如前綴代石馬121)附于重新生成的目標指令(如目 標指令122)。隨后,處理器102可以執(zhí)行前綴代碼,如框506所示, 以確定源代碼是否使用DAZ機制。如果源代碼中的控制指令將DAZ 位設置為'T,(這指示源代碼使用DAZ機制),則該前綴代碼可以繼 續(xù)將一個或多個輸入識別為非正規(guī)異常,并將屬于非正規(guī)操作數的 那些輸入更改為零,如框508所示。然后,處理器102可以繼續(xù)執(zhí) 行重新生成的目標指令(如目標指令122),如框510所示。
圖6是根據本發(fā)明的說明性實施例的、用于構建具有大量非正 規(guī)異常的翻譯后的代碼塊的方法的示意圖。
根據本發(fā)明的說明性實施例,可以將目標指令集(如目標指令集 120)分成多個指令塊,可以按這些指令塊中的第 一個指令的地址來區(qū)
分這些指令塊。通過確定在可能的故障目標指令的每一輪執(zhí)行期間 是否存在非正規(guī)操作數情形,可以進一步改進對在執(zhí)行期間產生大
量非正規(guī)異常的目標指令塊的執(zhí)行。
根據本發(fā)明的說明性實施例,可以創(chuàng)建用于對目標指令塊的非 正規(guī)異常計數的計數器(如計數器105(圖l)),如框602所示。計數器 105可以是基于高速緩存的計數器和/或可以是任何其他計數機制。 計數器105可以在每次產生非正規(guī)異常時對目標指令塊(如目標代碼 120的目標指令122和123)的非正規(guī)異常的數目進行計數,如框604
所示??梢詫⒂缮鲜瞿繕酥噶顗K產生的非正規(guī)異常的數目與預定的
閾值進行比較,如框606所示。如果該數目達到該閾值,則可以重 寫該目標指令塊以包括一個或多個內置指令(如內置指令124(圖l)), 如框608所示。在執(zhí)行時,這些內置指令可能識別塊中的每個SIMD 指令的內嵌的(in-line)非正規(guī)狀況,并在檢測到非正規(guī)異常時將非正 規(guī)異常的非正規(guī)操作數設置為零,以下將結合圖7對此進行詳細說 明。然后,可以執(zhí)行重寫的目標指令塊,如框610所示。
圖7是根據本發(fā)明的某些說明性實施例的、用于執(zhí)行目標指令 塊的方法的示意圖。
根據本發(fā)明的說明性實施例,在執(zhí)行目標指令(如指令123)之前, 處理器102可以執(zhí)行內置指令(例如指令124)來確定指令123是否產 生非正規(guī)異常,如框702所示。如果未4企測到或未產生非正規(guī)異常, 如框704所示,便可以像任何其他指令一樣執(zhí)行目標指令123,如框 706所示。但是,如果檢測到非正規(guī)異常狀況,則處理器102可以識 別屬于非正規(guī)操作數的目標指令123的輸入,并將零值賦予這些非 正規(guī)操作數,如框708所示。隨后,可以利用非正規(guī)操作數的該新 賦值來執(zhí)行目標指令123,如框710所示。
雖然本文已經示出并描述了本發(fā)明的某些特征,但是,本領域 技術人員現(xiàn)在仍可以得到有關這些特征的許多修改、替換、變更和 等同物。因此,應當懂得,期望附錄的權利要求涵蓋落在本發(fā)明的 要旨之內的所有此類修改和變更。
權利要求
1.一種方法,包括將源指令的集合翻譯成目標指令的集合;執(zhí)行目標指令的所述集合;以及如果源指令的所述集合使用非正規(guī)(denormal)輸入處理機制,則對非正規(guī)輸入控制位取消屏蔽。
2. 如權利要求l所述的方法,其特征在于,包括 通過執(zhí)行目標指令的所述集合來檢測故障目標指令的至少一個非正規(guī)異常;如果屏蔽了對應于一個或多個不屬于非正規(guī)異常的異常的一個 或多個控制位,則將預定值賦予所述故障目標指令的一個或多個非 正規(guī)操作數;以及利用所述一個或多個非正規(guī)操作數的所述預定值來執(zhí)行所述故 障目標指令。
3. 如權利要求2所述的方法,其特征在于,包括述故障目標指令之后的目'標指令的執(zhí)行。
4. 如權利要求3所述的方法,其特征在于,恢復所述故障目標 指令之后的目標指令的執(zhí)行包括將指令指針從指向所述故障目標指令移到指向要執(zhí)行的后續(xù)目 標指令;以及執(zhí)行所述后續(xù)目標指令。
5. 如權利要求2所述的方法,其特征在于,所述預定值是零。
6. 如權利要求l所述的方法,其特征在于,包括 通過執(zhí)行目標指令的所述集合來檢測故障目標指令的至少一個非正規(guī)異常;如果對對應于一個或多個不屬于非正規(guī)異常的異常的一個或多 個控制位取消屏蔽,則恢復從其中翻譯出所述故障目標指令的源指令;以及將所述源指令重新翻譯成重新生成的目標指令。
7. 如權利要求6所述的方法,其特征在于,包括 確定源指令的所述集合是否使用所述非正規(guī)輸入處理機制; 如果使用所述非正規(guī)輸入處理機制,則識別作為所述非正規(guī)異常的輸入的一個或多個非正規(guī)#:作數;以及將預定值賦予所述一個或多個非正規(guī)操作數。
8. 如權利要求7所述的方法,其特征在于,所述預定值是零。
9. 如權利要求l所述的方法,其特征在于,還包括 對執(zhí)行目標指令塊期間的非正規(guī)異常的數目計數;以及 如果非正規(guī)異常的所述數目達到預定的閾值,則重寫所述目標指令塊以包括一個或多個內置指令。
10. 如權利要求9所述的方法,其特征在于,還包括 執(zhí)行所述一個或多個內置指令的至少其中之一 ,以確定目標指令是否產生非正規(guī)異常;如果所述目標指令產生非正規(guī)異常,則識別所述目標指令的一個或多個非正規(guī)操作數;將零值賦予所述卄個或多,今非正規(guī)操作數;以及 利用非正規(guī)操作數的所賦零值執(zhí)行所述目標指令。
11. 如權利要求1所述的方法,其特征在于,所述非正規(guī)輸入處 理機制是DAZ機制。
12. —種i殳備,包括動態(tài)二進制翻譯器,所述動態(tài)二進制翻譯器將源指令的集合翻 譯成目標指令的集合,并且如果源指令的所述集合使用非正規(guī)輸入 處理機制,則對非正規(guī)輸入控制位取消屏蔽;以及處理器,所述處理器用于執(zhí)行目標指令的所述集合,以檢測故障目標指令的至少一個非正規(guī)異常。
13. 如權利要求12所述的設備,其特征在于,所述動態(tài)二進制 翻譯器包括異常處理程序,所述異常處理程序用于將預定值賦予所 述故障目標指令的一個或多個非正規(guī)操作數,以及所述處理器用于 利用所述一個或多個非正規(guī)操作數的所述預定值來執(zhí)行所述故障目 標指令。
14. 如權利要求13所述的設備,其特征在于,所述處理器通過 應用從所述故障目標指令的所述執(zhí)行獲得的結果來恢復所述故障目 標指令之后的目標指令的執(zhí)行。
15. 如權利要求14所述的設備,其特征在于,所述處理器通過 將指令指針從指向所述故障目標指令移到指向要執(zhí)行的后續(xù)目標指 令來恢復所述故障目標指令之后的目標指令的執(zhí)行。
16. 如權利要求12所述的設備,其特征在于,所述動態(tài)二進制 翻譯器包括異常處理'程序,所述異常處理程序恢復從其中翻譯出所 述故障目標指令的源指令,并將所述源指令重新翻譯成重新生成的 目標指令。
17. 如權利要求16所述的設備,其特征在于,所述處理器確定 源指令的所述集合是否使用所述非正規(guī)輸入處理機制;識別作為所 述非正規(guī)異常的輸入的一個或多個非正規(guī)操作數;以及如果使用了 所述非正規(guī)輸入處理機制,則將預定值賦予所述一個或多個非正規(guī) 操作數。 .,
18. 如權利要求12,所述的設備,其特征在于,所述處理器對執(zhí)行目標指令塊期間的非正規(guī)異常的數目計數;以及如果非正規(guī)異常 的所述數目達到預定閾值,則重寫所述目標指令塊以包括一個或多 個內置指令。
19. 如權利要求18所述的設備,其特征在于,所述處理器執(zhí)行 所述內置指令的至少其中之一以確定目標指令是否產生非正規(guī)異 常;識別所述故障目標指令的一個或多個非正規(guī)操作數;以及如果所述目標指令產生非正規(guī)異常,則將預定值賦予所述一個或多個非 正規(guī)操作數。
20. —種系統(tǒng),包括存儲器,所述存儲器存儲源指令的集合、目標指令的集合以及 動態(tài)二進制翻譯器,其中所述動態(tài)二進制翻譯器適于將源指令的所 述集合翻譯成目標指令的所述集合,并且如果源指令的所述集合使 用非正規(guī)輸入處理機制,則對非正規(guī)輸入控制位取消屏蔽;以及處理器,所述處理器用于執(zhí)行目標指令的所述集合,以檢測故 障目標指令的至少一個非正規(guī)異常。
21. 如權利要求20所述的系統(tǒng),其特征在于,所述動態(tài)二進制 翻譯器包括異常處理程序,所述異常處理程序將預定值賦予所述故 障目標指令的一個或多介非j^規(guī)攝作數;以及所述處理器利用所述一個或多個非正規(guī)操作數的所述預定值來執(zhí)行所述故障目標指令。
22. 如權利要求;21所述的系統(tǒng),其特征在于,所述處理器通過 應用從所述故障目標指令的所述執(zhí)行獲得的結果來恢復所述故障目 標指令之后的目標指令的執(zhí)行。
23. 如權利要求20所述的系統(tǒng),其特征在于,所述動態(tài)二進制 翻譯器包括異常處理程序,所述異常處理程序恢復從其中翻譯出所 述故障目標指令的源指令,并將所述源指令重新翻譯成重新生成的 目標指令。
24. 如權利要求23所述的系統(tǒng),其特征在于,所述處理器確定 源指令的所述集合是否使用所述非正規(guī)輸入處理機制;識別作為所 述非正規(guī)異常的輸入的十個或炎個非正規(guī)操作數;以及如果使用了 所述非正規(guī)輸入處理機制,則將預定值賦予所述一個或多個非正規(guī) 操作數。
25. 如權利要求20所述的系統(tǒng),其特征在于,所述處理器對執(zhí) 行目標指令塊期間的非正規(guī)異常的數目計數,以及如果非正規(guī)異常的 所述數目達到預定闊值,則重寫所述目標指令塊以包括一個或多個內置指令。
26. 如權利要求25所述的系統(tǒng),其特征在于,所述處理器執(zhí)行 所述內置指令的至少其中之一以確定目標指令是否產生非正規(guī)異 常;識別所述故障目標指令的一個或多個非正規(guī)操作數;以及如果 所述目標指令產生非正規(guī)異常,則將預定值賦予所述一個或多個非 正規(guī)操作數。
27. —種其上存儲了指令集的機器可讀介質,所述指令集被機器 執(zhí)行時,導致將源指令的集合翻譯成目標指令的集合,并且如果源 指令的所述集合使用非正規(guī)輸入處理機制,則對非正規(guī)輸入控制位 取消屏蔽。
28. 如權利要求27所述的機器可讀介質,其特征在于,所述指 令導致通過執(zhí)行目標指令的所述集合來檢測故障目標指令的至少一 個非正規(guī)異常;如果屏蔽了對應.于一個或多個不屬于非正規(guī)異常的 異常的 一個或多個控制我,購蔣預定值賦予所述故障目標指令的一 個或多個非正規(guī)操作數;以及利用所'k一個或多個非正規(guī)操作數的 所述預定值來執(zhí)行所述故障目標指令。
29. 如權利要求27所述的機器可讀介質,其特征在于,所述指 令導致通過執(zhí)行目標指令的所述集合來檢測故障目標指令的至少一 個非正規(guī)異常;如果未屏蔽對應于一個或多個不屬于非正規(guī)異常的 異常的一個或多個控制位,則恢復從其中翻譯出所述故障目標指令 的源指令;以及將所述源指令重新翻譯成重新生成的目標指令。
全文摘要
本發(fā)明的一個實施例提供一種方法,該方法用于將源指令的集合翻譯成目標指令的集合,執(zhí)行該目標指令的集合,并且如果源指令的集合使用非正規(guī)(denormal)輸入處理機制,則對非正規(guī)輸入控制位取消屏蔽。本發(fā)明的另一個實施例提供一種方法,該方法通過執(zhí)行目標指令的集合來檢測故障目標指令的至少一個非正規(guī)異常;將預定值賦予故障目標指令的一個或多個非正規(guī)操作數;以及利用一個或多個非正規(guī)操作數的預定值來執(zhí)行故障目標指令。本發(fā)明的實施例也提供了其設備、系統(tǒng)和機器可讀介質。
文檔編號G06F9/455GK101208661SQ200680022982
公開日2008年6月25日 申請日期2006年6月27日 優(yōu)先權日2005年6月27日
發(fā)明者J·李, O·埃茨昂, S·伯科維茨 申請人:英特爾公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
旌德县| 元氏县| 读书| 镇坪县| 定南县| 陇西县| 东宁县| 顺昌县| 沭阳县| 清原| 白水县| 银川市| 永清县| 张家川| 淮南市| 西青区| 南汇区| 澄江县| 密云县| 永顺县| 丘北县| 晴隆县| 垫江县| 乌苏市| 灵武市| 商水县| 东明县| 聊城市| 瓦房店市| 法库县| 瑞丽市| 邵东县| 峨山| 成武县| 封丘县| 长泰县| 安远县| 青冈县| 柳林县| 曲水县| 平原县|