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

按照類型對中斷計數(shù)的方法和裝置的制作方法

文檔序號:6512783閱讀:252來源:國知局
專利名稱:按照類型對中斷計數(shù)的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及一種改進(jìn)的數(shù)據(jù)處理系統(tǒng),尤其涉及一種用于當(dāng)中斷發(fā)生時在數(shù)據(jù)處理系統(tǒng)中監(jiān)控處理器性能的方法和系統(tǒng)。更具體地講,本發(fā)明涉及一種用于按照類型對中斷計數(shù)的方法,裝置和計算機(jī)指令。
背景技術(shù)
典型的數(shù)據(jù)處理系統(tǒng)利用處理器來執(zhí)行一系列指令,以便執(zhí)行諸如從主存儲器讀取特定字符的某種任務(wù)。然而,隨著需要由處理器執(zhí)行的任務(wù)數(shù)量的增加,對于尋求優(yōu)化系統(tǒng)操作的工程師來說,處理器對存儲器的訪問模式的效率以及這種訪問的特性成為重要的因素。
目前的現(xiàn)有技術(shù)中存在能夠?qū)?shù)據(jù)處理系統(tǒng)中軟件可選事件的發(fā)生進(jìn)行計數(shù)的機(jī)制,諸如高速緩存故障(cache miss)、執(zhí)行的指令、I/O數(shù)據(jù)傳送請求、以及執(zhí)行給定進(jìn)程需要的時間。這樣的機(jī)制之一是性能監(jiān)控器。性能監(jiān)控器通過監(jiān)控所選的特性和確定系統(tǒng)在某個特定時間的狀態(tài)來輔助執(zhí)行對系統(tǒng)的分析。這種分析可以提供關(guān)于當(dāng)執(zhí)行指令時處理器怎樣被使用以及當(dāng)存儲數(shù)據(jù)時處理器和主存儲器的交互的信息。此外,該分析可以提供關(guān)于在系統(tǒng)中發(fā)生的事件之間經(jīng)過的時間量的詳細(xì)信息。于是,可以使用該性能監(jiān)控器來輔助分析系統(tǒng)性能。
然而,上述的性能監(jiān)控器不具有使用硬件來對特定類型的中斷計數(shù)的能力。例如,當(dāng)一個諸如鼠標(biāo)或鍵盤的設(shè)備發(fā)出中斷信號以通知處理器一個事件發(fā)生時,就發(fā)生了中斷。當(dāng)處理器接受中斷請求時,該處理器完成它當(dāng)前的指令,并且把控制傳遞給中斷處理程序。中斷處理程序執(zhí)行與該中斷相關(guān)的中斷服務(wù)例程。中斷也可以是由特定的機(jī)器語言操作代碼造成的,例如,來自摩托羅拉(Motorola)公司的產(chǎn)品摩托羅拉68000的軟中斷(TRAP)。在這種情況下,諸如除數(shù)為零這樣的非期望軟件狀況導(dǎo)致處理器存儲當(dāng)前的狀態(tài)、存儲關(guān)于特定中斷的識別信息,以及把控制傳遞給處理這種非期望軟件狀況的中斷處理程序。
中斷描述符表(IDT)是把每個中斷和包含相應(yīng)的中斷服務(wù)例程的相應(yīng)中斷處理程序相關(guān)的系統(tǒng)表。上述的性能監(jiān)控器也不提供用于按照類型計數(shù)中斷的硬件支持。具有用于按照類型計數(shù)中斷并且將該計數(shù)存儲IDT中或IDT以外的中斷計數(shù)表(ICT)表中的改進(jìn)的方法、裝置和計算機(jī)指令是有利的。此外,具有支持使用硬件可選性能監(jiān)控器而不是軟件可選性能監(jiān)控器來按照類型計數(shù)中斷的改進(jìn)的方法也是有利的。

發(fā)明內(nèi)容
本發(fā)明提供了一種用于按照類型計數(shù)中斷的方法、裝置和計算機(jī)指令。本發(fā)明的機(jī)制包括采用硬件計數(shù)器來按照類型計數(shù)中斷和識別中斷的中斷單元。中斷計數(shù)可以存儲在中斷描述符表(IDT)的一個位置中或存儲在IDT之外的中斷計數(shù)表(ICT)中。如果該計數(shù)存儲在IDT中,則所存儲的位置與中斷類型相關(guān),因此本發(fā)明的中斷單元和相關(guān)的支持軟件了解IDT中存儲該計數(shù)的位置。可替換地,如果該計數(shù)存儲在IDT之外,例如存儲在中斷計數(shù)表(ICT)中,則中斷單元使用存儲在寄存器中的ICT的地址以及使用中斷類型,來確定使計數(shù)遞增的位置。
本發(fā)明還提供了檢測是否發(fā)生了計數(shù)溢出所需的邏輯。如果發(fā)生了計數(shù)溢出,則本發(fā)明的機(jī)制允許支持軟件處理該溢出。一旦記錄了針對特定中斷類型的計數(shù),則支持軟件讀取和重置該計數(shù)值,以便用戶可以在其后的時間收集該結(jié)果,用于性能分析。


在所附的權(quán)利要求中闡述了本發(fā)明的被認(rèn)為是新穎性特征的特性。然而,結(jié)合附圖閱讀以下對說明性實施例的詳細(xì)說明,發(fā)明本身及其優(yōu)選使用模式、以及其目標(biāo)和優(yōu)點,將得到最好的理解,其中圖1是其中實施了本發(fā)明的數(shù)據(jù)處理系統(tǒng)的范例方框圖;圖2是根據(jù)本發(fā)明優(yōu)選實施例的用于處理信息的處理系統(tǒng)的范例方框圖;圖3是說明根據(jù)本發(fā)明優(yōu)選實施例的按照類型計數(shù)中斷的部件的范例方框圖;圖4是說明根據(jù)本發(fā)明優(yōu)選實施例的用于按照類型計數(shù)中斷并且把計數(shù)存儲在IDT之外的部件的范例方框圖;圖5是根據(jù)本發(fā)明優(yōu)選實施例的用于按照類型計數(shù)中斷并且把計數(shù)存儲在IDT之內(nèi)的部件的范例方框圖;和圖6是概括根據(jù)本發(fā)明優(yōu)選實施例的按照類型計數(shù)中斷的范例處理的流程圖。
具體實施例方式
本發(fā)明提供了一種用于按照類型計數(shù)中斷的一種方法、裝置和計算機(jī)指令。本發(fā)明的用于按照類型計數(shù)中斷的機(jī)制最好使用中斷單元來實現(xiàn)。當(dāng)一個特定類型的中斷發(fā)生時,使該中斷計數(shù)遞增。該中斷計數(shù)可以存儲在中斷描述符表(IDT)或存儲在IDT表外的中斷計數(shù)表(ICT)中。
現(xiàn)在參照圖1,示出其中實現(xiàn)了本發(fā)明的數(shù)據(jù)處理系統(tǒng)的范例方框圖??蛻魴C(jī)100是計算機(jī)例子,在其中可以定位實現(xiàn)本發(fā)明的處理的代碼或指令。客戶機(jī)100采用一個外設(shè)部件互聯(lián)(PCI)局域總線結(jié)構(gòu)。雖然所描述的范例采用了PCI總線,但是也可以采用諸如圖形加速端口(AGP)和工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)等其他總線結(jié)構(gòu)。處理器102和主存儲器104通過PCI橋接器108連接到PCI局域總線106。PCI橋接器108還可以包括用于處理器102的集成存儲器控制器和高速緩沖存儲器。此外,可以通過直接部件互聯(lián)或通過附加卡(add-in board)連接到PCI局域總線106。在所描述的例子中,局域網(wǎng)(LAN)適配器110、小型計算機(jī)系統(tǒng)接口SCSI主機(jī)總線適配器112以及擴(kuò)展總線接口114通過直接部件連接而被連接到PCI局域總線106。相反,音頻適配器116、圖形適配器118以及音頻/視頻適配器119通過插入到擴(kuò)展槽中的附加卡連接到PCI橋接器108。擴(kuò)展總線接口114為鍵盤和鼠標(biāo)適配器120、調(diào)制解調(diào)器122以及附加存儲器124提供連接。SCSI主機(jī)總線適配器112為磁盤驅(qū)動器126、磁帶驅(qū)動器128以及CD-ROM驅(qū)動器130提供連接。典型的PCI局域總線實現(xiàn)能支持3個或4個PCI擴(kuò)展槽或附加連接器。
操作系統(tǒng)運行于處理器102上,并被用來對圖1中的數(shù)據(jù)處理系統(tǒng)100的各個部件進(jìn)行調(diào)節(jié)和提供控制。該操作系統(tǒng)可以是商業(yè)上可用的操作系統(tǒng),諸如可從微軟公司獲得的Windows XP。諸如Java等的面向?qū)ο缶幊滔到y(tǒng)可以與操作系統(tǒng)一起運行,并提供從在客戶機(jī)100上執(zhí)行的Java程序或應(yīng)用程序到操作系統(tǒng)的調(diào)用?!癑ava”是太陽微系統(tǒng)(Sun Microsystems)公司的商標(biāo)。用于操作系統(tǒng)、面向?qū)ο缶幊滔到y(tǒng)以及應(yīng)用程序或程序的指令位于諸如硬盤驅(qū)動器126等的存儲設(shè)備上,并且可以被裝載到主存儲器104中以便由處理器102來執(zhí)行。
本領(lǐng)域的技術(shù)人員將可以理解,圖1中的硬件取決于如何被實現(xiàn)而變化。除圖1中描述的硬件以外或者代替圖1中描述的硬件,可以使用諸如閃存只讀存儲器(ROM)、等效的非易失性存儲器或光盤驅(qū)動器等其他內(nèi)部硬件或外部設(shè)備。并且,本發(fā)明的處理器可以被應(yīng)用到多處理器數(shù)據(jù)處理系統(tǒng)中。
例如,如果客戶機(jī)100被可選地配置成網(wǎng)絡(luò)計算機(jī),則它可能不包括SCSI主機(jī)總線適配器112、硬盤驅(qū)動器126、磁帶驅(qū)動器128以及CD-ROM 130。在這種情況下,該計算機(jī),正確來說應(yīng)稱為客戶端計算機(jī),包括某些類型的網(wǎng)絡(luò)通信接口,諸如LAN適配器110、調(diào)制解調(diào)器122等。作為另一個例子,不論客戶機(jī)100是否包括某些類型的網(wǎng)絡(luò)通信接口,客戶機(jī)100可以是被配置成可以不依賴于某些類型的網(wǎng)絡(luò)通信接口而啟動的單機(jī)系統(tǒng)。作為另一個例子,客戶機(jī)100可能是個人數(shù)字助理(PDA),它配置有ROM和/或閃存ROM以提供用于存儲操作系統(tǒng)文件和/或用戶生成數(shù)據(jù)的非易失性存儲器。圖1中所描述的例子和上述的例子并不意味著對結(jié)構(gòu)的限制。
本發(fā)明的處理是由處理器102使用計算機(jī)實現(xiàn)的指令來執(zhí)行的,例如,這些計算機(jī)所實現(xiàn)的指令可以位于存儲器中,諸如主存儲器104、存儲器124中或一個或多個外設(shè)126-130中。
現(xiàn)在轉(zhuǎn)到圖2,描述根據(jù)本發(fā)明優(yōu)選實施例的用于處理信息的處理器系統(tǒng)的一個范例方框圖。處理器210可以被實現(xiàn)為圖1中的處理器102。
在一個優(yōu)選實施例中,處理器210是一個單一集成電路超標(biāo)量微處理器。因此,如下面所述,處理器210包括各種單元、寄存器、緩沖器、存儲器以及其它部分,而所有這些部分都是由集成電路形成的。并且,在優(yōu)選實施例中,處理器210根據(jù)精簡指令集計算機(jī)(“RISC”)技術(shù)進(jìn)行操作。如圖2所示,系統(tǒng)總線211連接到處理器210的一個總線接口單元(“BIU”)212。BIU 212控制在處理器210和系統(tǒng)總線211之間的信息傳送。
BIU 212連接到處理器210的指令高速緩存214和數(shù)據(jù)高速緩存216。指令高速緩存214輸出指令到序列發(fā)生器單元218。響應(yīng)于這種來自指令高速緩存214的指令,序列發(fā)生器單元218選擇性地輸出指令到處理器210的其它執(zhí)行電路。
在優(yōu)選實施例中,除了序列發(fā)生器單元218,處理器210的執(zhí)行電路還包括多個執(zhí)行單元,即分支單元220、定點單元A(“FXUA”)222、定點單元B(“FXUB”)224、復(fù)數(shù)定點單元(“CFXU”)226、裝載/存儲單元(“LSU”)228以及浮點單元(“FPU”)230。FXUA 222、FXUB 224、CFXU 226以及LSU 228從通用結(jié)構(gòu)寄存器(“GPR”)232和定點更名緩沖器234輸入它們的源操作數(shù)信息。而且,F(xiàn)XUA 222和FXUB 224從進(jìn)位位(“CA”)寄存器239輸入一個“進(jìn)位位”。FXUA 222、FXUB 224、CFXU 226以及LSU 228輸出它們操作的結(jié)果(目的操作數(shù)信息)以便存儲在定點更名緩沖器234的所選條目中。而且,CFXU 226從專用寄存器處理單元(“SPR單元”)237輸入以及向?qū)S眉拇嫫魈幚韱卧?“SPR單元”)237輸出源操作數(shù)信息和目的操作數(shù)信息。
FPU 230從浮點架構(gòu)寄存器(“FPR”)236和浮點更名緩沖器238輸入其源操作數(shù)信息。FPU 230輸出其操作結(jié)果(目的操作數(shù)信息),以便存儲在浮點更名緩沖器238的所選條目中。
響應(yīng)于裝載指令,LSU 228從數(shù)據(jù)高速緩存216輸入信息并且把這種信息復(fù)制到所選的更名緩沖器234和238之一中。如果這種信息沒有存儲在數(shù)據(jù)高速緩存216中,則數(shù)據(jù)高速緩存216從連接到系統(tǒng)總線211的系統(tǒng)存儲器239中(通過BIU 212和系統(tǒng)總線211)輸入這種信息。而且,數(shù)據(jù)高速緩存216能夠從數(shù)據(jù)高速緩存216(通過BIU 212和系統(tǒng)總線211)將信息輸出到連接到系統(tǒng)總線211的系統(tǒng)存儲器239。響應(yīng)于存儲指令,LSU 228從所選的GPR 232和FPR 230之一中輸入信息,并且把這種信息復(fù)制到數(shù)據(jù)高速緩存216。
序列發(fā)生器單元218從GPR 232和FPR 236輸入信息以及向GPR 232和FPR 236輸出信息。從序列發(fā)生器單元218,分支單元220輸入指令和指示處理器210當(dāng)前狀態(tài)的信號。響應(yīng)于這種指令和信號,分支單元220(向序列發(fā)生器單元218)輸出信號,該信號指示存儲由處理器210執(zhí)行的指令序列的適當(dāng)存儲器地址。響應(yīng)于這種來自分支單元220的信號,序列發(fā)生器單元218從指令高速緩存214輸入所指示的指令序列。如果一個或多個指令序列沒有存儲在指令高速緩存214中,則指令高速緩存214從連接到系統(tǒng)總線211的系統(tǒng)存儲器239(通過BIU 212和系統(tǒng)總線211)輸入這種指令。
響應(yīng)于從指令高速緩存214輸入的指令,序列發(fā)生器單元218選擇性地分派(dispatch)指令到執(zhí)行單元220、222、224、226、228和230中的所選執(zhí)行單元。每個執(zhí)行單元執(zhí)行一或多個用于特定指令類別的指令。例如,F(xiàn)XUA222和FXUB 224對源操作數(shù)執(zhí)行第一類定點數(shù)學(xué)運算,諸如加、減、與操作、或操作以及異或操作。CFXU 226對源操作數(shù)執(zhí)行第二類定點運算,諸如定點乘法和除法。FPU 230對源操作數(shù)執(zhí)行浮點操作,諸如浮點乘法和除法。
由于該信息被存儲在所選擇的一個更名緩沖器234中,這種信息與由分配了所選更名緩沖器的指令所規(guī)定的存儲位置(例如,GPR 232或進(jìn)位位(CA)寄存器242之一)相關(guān)聯(lián)。響應(yīng)于來自序列發(fā)生器單元218的信號,存儲在所選的一個更名緩沖器234中的信息被復(fù)制到其相關(guān)聯(lián)的那個GPR 232(或CA寄存器242)中。序列發(fā)生器單元218響應(yīng)于產(chǎn)生該信息的指令的“完成”,命令對存儲在所選的一個更名緩沖器234中的信息進(jìn)行這種復(fù)制。這種復(fù)制被稱為“回寫”(writeback)。
由于信息被存儲在所選的一個更名緩沖器238中,這種信息與FPR 236之一相關(guān)聯(lián)。響應(yīng)于來自序列發(fā)生器單元218的信號,存儲在所選的一個更名緩沖器238中的信息被復(fù)制到其相關(guān)聯(lián)的那個FPR 236中。序列發(fā)生器單元218響應(yīng)于產(chǎn)生該信息的指令的“完成”,命令對存儲在所選的一個更名緩沖器238中的信息進(jìn)行這種復(fù)制。
處理器210通過在各個執(zhí)行單元220、222、224、226、228和230中同時處理多個指令來達(dá)到高性能。因此,每個指令被作為級的序列來處理,每一級可以與其他指令的級并行執(zhí)行。這種技術(shù)被稱為“流水線操作”。在說明性實施例的一個重要方面,指令通常被作為6級處理,即拾取、解碼、分派、執(zhí)行、完成和回寫。
在拾取級,序列發(fā)生器單元218選擇性地從上文結(jié)合分支單元220以及序列發(fā)生器單元218進(jìn)一步討論的存儲指令序列的一個或多個存儲器地址中輸入一個或多個指令。
在解碼級,序列發(fā)生器單元218至多解碼4個拾取的指令。
在分派級,序列發(fā)生器單元218在保留用于分配指令結(jié)果(目的操作數(shù)信息)的更名緩沖器條目后,(響應(yīng)于在解碼級中的解碼)選擇性地向執(zhí)行單元220、222、224、226、228和230中所選的那些執(zhí)行單元分派最多4個解碼的指令。在分派級,操作數(shù)信息被提供給所選的執(zhí)行單元,用于分派的指令。處理器210按指令的編程順序分派這些指令。
在執(zhí)行級,如上文所述,執(zhí)行單元執(zhí)行它們所分派的指令,并且輸出它們的操作的結(jié)果(目的操作數(shù)信息)以便存儲在更名緩沖器234和更名緩沖器238的所選條目中。通過這種方式,處理器210能夠不按照與它們的編程順序相關(guān)的次序,來執(zhí)行這些指令。
在完成級,序列發(fā)生器單元218指示一個指令已“完成”。處理器210以它們的編程順序,來“完成”這些指令。
在回寫級,序列發(fā)生器單元218命令將信息分別從更名緩沖器234和238復(fù)制到GPR 232和FPR 236。序列發(fā)生器單元218命令對存儲在所選的更名緩沖器中的信息進(jìn)行這種復(fù)制。同樣,在一個特定指令的回寫級,處理器210響應(yīng)于該特定指令更新其結(jié)構(gòu)狀態(tài)。處理器210以它們的編程順序來處理指令的各個“回寫級”。在特定的情況下,處理器210有利地把指令的完成級和回寫級合并。
在說明性的實施例中,每個指令需要一個機(jī)器周期來完成每級的指令處理。然而,某些指令(例如由CFXU 226執(zhí)行的復(fù)數(shù)定點指令)可能需要超過一個周期。因此,在一個特定指令的執(zhí)行級和完成級之間,可能響應(yīng)于用于完成前一指令所需時間的變化,產(chǎn)生可變延遲。
在序列發(fā)生器單元218中配備完成緩沖器248,以跟蹤正在執(zhí)行單元中被執(zhí)行的多個指令的完成。一旦指示一個指令或一組指令已成功完成,可以利用完成緩沖器248以應(yīng)用程序規(guī)定的序列順序,來啟動把那些已完成指令的結(jié)果傳送到相關(guān)的通用寄存器的操作。
此外,處理器210還包括中斷單元250,中斷單元250連接到指令高速緩存214。此外,雖然在圖2中沒有示出,中斷單元250連接到處理器210之中的其它功能單元。中斷單元250可以從其它功能單元接收信號并啟動一個動作,例如開始錯誤處理或軟中斷處理。在這些例子中,中斷單元250用來產(chǎn)生可能在程序執(zhí)行期間出現(xiàn)的中斷和異常。中斷單元250還可以用來按照類型對中斷的發(fā)生進(jìn)行計數(shù),并且相應(yīng)地使計數(shù)值遞增。
如上所述,本發(fā)明提供了一種用于按照類型計數(shù)中斷的方法、裝置和計算機(jī)指令。換句話說,本發(fā)明提供了一種用于對特定中斷類型的發(fā)生次數(shù)進(jìn)行計數(shù)的機(jī)制。一個中斷類型可以是例如與中斷相關(guān)的特定中斷向量,諸如虛擬哈希頁表(VHPT)指令錯誤或是翻譯后援緩沖器(TLB)數(shù)據(jù)錯誤。本發(fā)明允許對在一個定義的周期—例如數(shù)個時鐘周期—內(nèi)發(fā)生這些范例中斷類型的次數(shù)進(jìn)行計數(shù)。此外,本發(fā)明的中斷單元,諸如圖2中的中斷單元250,使用硬件計數(shù)器來使計數(shù)遞增,而不是像現(xiàn)有技術(shù)中那樣,采用支持軟件來執(zhí)行計數(shù)。
轉(zhuǎn)到圖3,描述了根據(jù)本發(fā)明優(yōu)選實施例的用于按照類型計數(shù)中斷的說明性部件的范例方框圖。在這個范例實施例中,中央處理單元(CPU)302可以被實現(xiàn)為圖2中的處理器210。當(dāng)中斷發(fā)生時,CPU 302發(fā)送信號給中斷單元304,來請求中斷單元304產(chǎn)生針對特定中斷類型的中斷信號。當(dāng)產(chǎn)生該信號時,中斷單元304使針對該中斷類型的計數(shù)遞增。所得的數(shù)據(jù)被存儲,并且可以由支持軟件在以后的時間進(jìn)行收集。
在本發(fā)明的一個實施例中,本發(fā)明的機(jī)制在中斷描述符表(IDT)中存儲該計數(shù)。中斷描述符表是一個把每個中斷和包含相應(yīng)中斷服務(wù)例程的相應(yīng)中斷處理程序相關(guān)的系統(tǒng)表。當(dāng)一個特定類型的中斷發(fā)生時,中斷單元使相關(guān)的計數(shù)遞增。每個IDT條目與一個計數(shù)存儲區(qū)域相關(guān)。存儲區(qū)域與中斷類型相關(guān),使得本發(fā)明的中斷單元以及相關(guān)的支持軟件了解在IDT中存儲該計數(shù)的位置。當(dāng)一個特定類型的中斷發(fā)生時,在中斷處理程序執(zhí)行中斷服務(wù)例程之前,本發(fā)明的中斷單元在IDT中定位該計數(shù)的存儲器地址,并且使該計數(shù)值遞增。
轉(zhuǎn)到圖4,描述了根據(jù)本發(fā)明實施例的用于按照類型計數(shù)中斷并且將該計數(shù)存儲在IDT中的說明性部件的范例圖。在這個范例實現(xiàn)中,中斷描述符表(IDT)402包括IDT的偏移地址404和內(nèi)容406。在這個例子中,針對每個中斷類型的計數(shù)或IDT條目VHPT數(shù)據(jù)錯誤計數(shù)408存儲在IDT 402中,并具有偏移地址例如0x0000 410。包含中斷服務(wù)例程的相應(yīng)代碼,例如VHPT數(shù)據(jù)錯誤代碼412,也存儲在IDT 402中,并具有代碼偏移地址0x0008 414。在這個例子中,存儲在IDT中的計數(shù)的大小是8個字節(jié),而針對每個中斷類型的代碼大小是400字節(jié)。然而,針對每個中斷類型的代碼大小可以改變。于是,中斷單元可以針對每個中斷類型在IDT中定位計數(shù)的地址,以便進(jìn)行遞增。
在本發(fā)明的另一個實施例中,計數(shù)被存儲在IDT之外的中斷計數(shù)表(ICT)中。ICT存儲由一個偏移地址定位(reference)的針對每個中斷類型的計數(shù)值。首先由支持軟件分配ICT,并且將該ICT的存儲器地址通知給處理器。ICT的存儲器地址可以通過使用寄存器來定位。當(dāng)一個特定類型的中斷發(fā)生時,中斷單元來到ICT的存儲器地址,并且針對該特定中斷類型來察看計數(shù)被存儲在ICT中的偏移地址。依次,中斷單元使該存儲區(qū)域中的計數(shù)遞增,并且該處理器繼續(xù)處理該類型的中斷服務(wù)例程。一旦計數(shù)被遞增,則支持軟件在需要時可以在以后讀取該計數(shù)值并重置該計數(shù)。
轉(zhuǎn)到圖5,描述了根據(jù)本發(fā)明優(yōu)選實施例的用于按照類型計數(shù)中斷并且該計數(shù)被存儲在IDT之外的說明性部件的范例圖。在這個范例實現(xiàn)中,中斷描述符表(IDT)502包括偏移地址504、中斷類型506以及計數(shù)偏移508。在IDT 502中表示的中斷類型506僅用于說明目的。
在IDT 502中,每個中斷類型506對應(yīng)于標(biāo)識相關(guān)中斷服務(wù)例程的起始地址的偏移地址,諸如偏移地址504??梢允褂弥T如方程510等方程來對支持軟件編程。方程510獲取諸如計數(shù)偏移508等計數(shù)偏移值,并且乘以8。例如,VHPT數(shù)據(jù)錯誤中斷具有一個為0的計數(shù)偏移值,方程510把0乘以8,其結(jié)果值為0。隨后,該結(jié)果被添加到該例子中的存儲器地址0x4000,以得出該計數(shù)的偏移地址。存儲器地址0x4000是由寄存器指示的ICT 512的存儲器地址。在這個例子中,0被添加到存儲器地址0x4000,這產(chǎn)生偏移地址0x4000 514。使用方程510和計數(shù)偏移508,每個中斷類型或IDT條目被與其中存儲了計數(shù)的不同偏移地址相關(guān)。于是,中斷單元可以針對每個中斷類型,使存儲在由方程510計算出的偏移地址中的計數(shù)遞增。
本發(fā)明還提供一種用于處理計數(shù)溢出的機(jī)制。當(dāng)用于存儲計數(shù)的位數(shù)量將要用盡(wrap)時,可能發(fā)生溢出。本發(fā)明的機(jī)制通過在處理器狀態(tài)寄存器(PSR)中設(shè)置溢出標(biāo)記,或者通過向處理器發(fā)送中斷信號以便通知該處理器可能發(fā)生溢出,來提供向軟件指示可能的溢出所需的機(jī)制。在可從英特爾公司獲得的英特爾64位處理器結(jié)構(gòu)中,處理器狀態(tài)寄存器(PSR)是維持當(dāng)前運行處理的控制信息的64位寄存器。結(jié)果,如果設(shè)置了溢出標(biāo)記或者發(fā)送了溢出中斷信號,支持軟件可以相應(yīng)地處理該溢出,諸如通過讀取該計數(shù)和重置該計數(shù)值。
轉(zhuǎn)到圖6,描述了根據(jù)本發(fā)明優(yōu)選實施例的概括按照類型計數(shù)中斷的范例處理的流程圖。當(dāng)發(fā)生中斷時該處理開始(步驟602),中斷單元針對特定中斷類型產(chǎn)生中斷信號(步驟604)。如果需要,支持軟件就分配計數(shù)存儲存儲器(步驟606),并且通知CPU該計數(shù)存儲存儲器的存儲器地址(步驟608)。該中斷單元定位該計數(shù)存儲偏移地址(步驟610),并確定該計數(shù)是否將要溢出(步驟612)。如果該計數(shù)將要溢出,可以調(diào)用溢出處理例程(步驟614)來處理溢出,以便讀取和重置該計數(shù),該處理隨后終止。然而,如果該計數(shù)并非將要溢出,則中斷單元使該計數(shù)遞增(步驟616),此后該處理終止。在計數(shù)被讀取后,支持軟件可重置該計數(shù)。
于是,本發(fā)明提供了一種用于對特定中斷類型的發(fā)生次數(shù)進(jìn)行計數(shù)的機(jī)制。該計數(shù)可以存儲在對應(yīng)于每個中斷類型的IDT中,或者存儲在IDT之外的中斷計數(shù)表中。支持軟件和中斷單元了解該計數(shù)被存儲的存儲器地址。該中斷單元可以在IDT內(nèi)或IDT外定位存儲在特定存儲器地址中的該計數(shù)。當(dāng)發(fā)生溢出時,可以調(diào)用溢出處理例程來相應(yīng)地處理溢出。
應(yīng)該注意到,雖然從充分運行的數(shù)據(jù)處理系統(tǒng)的角度來說明本發(fā)明,但是本領(lǐng)域的技術(shù)人員將能夠理解,本發(fā)明的處理能夠以指令的計算機(jī)可讀介質(zhì)的形式以及多種形式來分發(fā),并且不管事實上使用何種特定類型的信號承載介質(zhì)來執(zhí)行該分發(fā),本發(fā)明都同樣適用。計算機(jī)可讀介質(zhì)的例子包括,諸如軟盤、硬盤、RAM、CD-ROM、DVD-ROM等的可記錄類型的介質(zhì),以及諸如數(shù)字和模擬通信鏈路、使用諸如射頻和光波傳輸?shù)葌鬏斝问降挠芯€或無線通信鏈路等的傳輸類型的介質(zhì)。計算機(jī)可讀介質(zhì)可以采用編碼格式的形式,這種編碼格式是針對特定數(shù)據(jù)處理系統(tǒng)中的實際使用而被解碼的。
本發(fā)明的描述是出于說明和描述的目的而被提出的,并不意味著以所公開的形式窮盡或限制本發(fā)明。對于本領(lǐng)域的技術(shù)人員來說,很多修改和改變是顯而易見的。因為帶有各種修改的各種實施例適合于所構(gòu)思的特定用途,選擇和描述這些實施例,是為了最好地說明本發(fā)明的宗旨、實際應(yīng)用,以及為了使得本領(lǐng)域的其他技術(shù)人員能夠理解本發(fā)明。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括中斷單元;其中,所述中斷單元接收用于啟動中斷的信號;并且其中,所述中斷單元按照類型對中斷的發(fā)生進(jìn)行計數(shù)。
2.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,一個中斷類型的計數(shù)值被存儲在中斷描述符表的條目中。
3.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,一個中斷類型的計數(shù)值被存儲在中斷計數(shù)表的條目中。
4.如權(quán)利要求3所述的數(shù)據(jù)處理系統(tǒng),其中,在中斷描述符表中的計數(shù)偏移對應(yīng)于所述中斷類型。
5.如權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),其中,在所述中斷描述符表中的計數(shù)偏移被用于得出在所述中斷計數(shù)表中的對應(yīng)于所述中斷類型的計數(shù)值的偏移地址。
6.如權(quán)利要求3所述的數(shù)據(jù)處理系統(tǒng),還包括寄存器,具有指向所述中斷計數(shù)表的存儲器地址的指針。
7.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),還包括按照類型對所述中斷的發(fā)生進(jìn)行計數(shù)的硬件計數(shù)器。
8.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,所述中斷類型包括TLB(翻譯后援緩沖器)錯誤和VHPT(虛擬哈希頁表)指令錯誤。
9.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)計數(shù)將要溢出時,發(fā)送溢出信號。
10.一種用于在信息處理系統(tǒng)上執(zhí)行指令的方法,包括下列步驟在中斷單元接收中斷信號,其中,該中斷信號用于在處理器中啟動中斷;響應(yīng)于接收到所述中斷信號,基于與所述中斷信號相關(guān)聯(lián)的中斷類型,使第一計數(shù)器遞增;其中,所述第一計數(shù)器是多個計數(shù)器中的一個;以及其中,所述多個計數(shù)器按照類型對中斷的發(fā)生進(jìn)行計數(shù)。
11.如權(quán)利要求10所述的方法,其中,所述第一計數(shù)器的計數(shù)值被存儲在中斷描述符表的條目中。
12.如權(quán)利要求10所述的方法,其中,所述第一計數(shù)器的計數(shù)值被存儲在中斷計數(shù)表的條目中。
13.如權(quán)利要求12所述的方法,其中,在中斷描述符表中的計數(shù)偏移對應(yīng)于所述中斷類型。
14.如權(quán)利要求13所述的方法,其中,在所述中斷描述符表中的計數(shù)偏移用于得出在所述中斷計數(shù)表中的對應(yīng)于所述中斷類型的計數(shù)值的偏移地址。
15.如權(quán)利要求12所述的方法,還包括寄存器,具有指向所述中斷計數(shù)表的存儲器地址的指針。
16.如權(quán)利要求10所述的方法,其中,所述多個計數(shù)器是硬件計數(shù)器。
17.如權(quán)利要求10所述的方法,其中,所述中斷類型包括TLB(翻譯后援緩沖器)錯誤和VHPT(虛擬哈希頁表)指令錯誤。
18.如權(quán)利要求10所述的方法,其中,當(dāng)計數(shù)將要溢出時,發(fā)送溢出信號。
19.一種計算機(jī)及可讀介質(zhì)中的計算機(jī)程序產(chǎn)品,包括第一指令,用于從中斷單元接收用于在處理器中啟動中斷的中斷信號;第二指令,用于響應(yīng)于接收到所述中斷信號,使與所述中斷信號相關(guān)聯(lián)的第一計數(shù)器遞增;其中,所述第一計數(shù)器是多個計數(shù)器之一;并且其中,所述多個計數(shù)器按照類型對中斷的發(fā)生進(jìn)行計數(shù)。
20.如權(quán)利要求19所述的計算機(jī)程序產(chǎn)品,其中,中斷類型的計數(shù)值被存儲在中斷描述符表的條目中。
21.如權(quán)利要求19所述的計算機(jī)程序產(chǎn)品,其中,中斷類型的計數(shù)值被存儲在中斷計數(shù)表的條目中。
22.如權(quán)利要求21所述的計算機(jī)程序產(chǎn)品,其中,中斷描述符表中的計數(shù)偏移對應(yīng)于中斷類型。
23.如權(quán)利要求22所述的計算機(jī)程序產(chǎn)品,其中,在所述中斷描述符表中的計數(shù)偏移用于得出在所述中斷計數(shù)表中的對應(yīng)于所述中斷類型的計數(shù)值的偏移地址。
24.如權(quán)利要求21所述的計算機(jī)程序產(chǎn)品,還包括寄存器,具有指向所述中斷計數(shù)表的存儲器地址的指針。
25.如權(quán)利要求19所述的計算機(jī)程序產(chǎn)品,其中,所述多個計數(shù)器是硬件計數(shù)器。
26.如權(quán)利要求19所述的計算機(jī)程序產(chǎn)品,其中,所述中斷類型包括TLB(翻譯后援緩沖器)錯誤和VHPT(虛擬哈希頁表)指令錯誤。
27.如權(quán)利要求19所述的計算機(jī)程序產(chǎn)品,其中,當(dāng)計數(shù)將要溢出時,發(fā)送溢出信號。
全文摘要
本發(fā)明涉及一種用于按照類型計數(shù)中斷的方法、裝置和計算機(jī)指令。當(dāng)特定類型的中斷發(fā)生時,使中斷計數(shù)遞增。該計數(shù)可以被存儲在IDT中,或者被存儲在IDT外的中斷計數(shù)表中。每當(dāng)特定類型的中斷發(fā)生時,中斷單元使該計數(shù)遞增。當(dāng)可能出現(xiàn)計數(shù)溢出時,本發(fā)明的機(jī)制提供用于通知軟件以便處理該溢出所需的邏輯。
文檔編號G06F11/34GK1641612SQ200510004630
公開日2005年7月20日 申請日期2005年1月14日 優(yōu)先權(quán)日2004年1月14日
發(fā)明者小吉米·E·德威特, 弗蘭克·E·萊文, 克里斯托弗·M·理查森, 羅伯特·J·厄克特 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
东至县| 武安市| 河东区| 扎鲁特旗| 伊宁市| 晋中市| 上高县| 依兰县| 邵阳县| 三穗县| 威远县| 开阳县| 屏东县| 绥阳县| 建昌县| 泸水县| 怀宁县| 从江县| 孙吴县| 集安市| 元谋县| 长岭县| 寻乌县| 江阴市| 黄陵县| 河源市| 墨玉县| 綦江县| 景洪市| 临江市| 荔浦县| 凤阳县| 新泰市| 双牌县| 商南县| 长春市| 宜君县| 布尔津县| 汶川县| 新津县| 东安县|