TWI307463B - Method, apparatus, and computer readable medium for recording interrupt events using pre and post handlers - Google Patents
Method, apparatus, and computer readable medium for recording interrupt events using pre and post handlers Download PDFInfo
- Publication number
- TWI307463B TWI307463B TW094100038A TW94100038A TWI307463B TW I307463 B TWI307463 B TW I307463B TW 094100038 A TW094100038 A TW 094100038A TW 94100038 A TW94100038 A TW 94100038A TW I307463 B TWI307463 B TW I307463B
- Authority
- TW
- Taiwan
- Prior art keywords
- routine
- interrupt
- post
- event
- record
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
1307463 九、發明說明: 本發明係於下列申請案相關:「用於計算指令執行與資料存取 的方法與裝置(Method and Apparatus for Counting Instruction Execution and Data Accesses)」’申請案號 _’律師案號AUS920030477US1 ’申請日期為2003年9 月30日;「用於選擇性計算指令與資料存取的方法與裝置 (Method and Apparatus for Selectively Counting
Instructions and Data Accesses)」’申請案號^__,律 師案號AUS920030478US1,申請日期為2003年9 ϋ〇Τ;「用 於在執行標記的指令與存取標記的記憶體位置時產生中斷的 方法與裝置(Method and Apparatus for Generating Interrupts Upon Execution of Marked Instructions and Upon Access to Marked Memory Locations)」,申請案號 -,律師案號AUS920030479US1,申請日期為2003年9 月30日;「用於計算超過門檻值的資料存取與指令執行的方法 與裝置(Method and Apparatus for Counting Data Accesses and Instruction Executions that Exceed a Threshold)」, 申請案號-,律師案號AUS920030480US1,申請日期為 2003年9月30日;「用於計算特定指令執行與特定資料位置 存取的方法與裝置(Method and Apparatus for Counting Execution of Specific Instructions and Accesses to Specific Data Locations)」,申請案號_,律師案號 AUS920030481US1 ’申請日期為2003年9月30日;「用於個別 才曰令與3己憶體位置之除錯支援的方法與裝置(Meth〇d and Apparatus for Debug Support for Individual Instructions and Memory Locations)」,申請案號_,律師案號 AUS920030482US1,申請日期為2003年9月30日;「自主地選 擇指令以選擇性計數的方法與裝置(Meth〇d and Apparatus t〇 Autonomically Select Instructions for Selective
4KM/04145TW 6 1307463
Counting)」,申請案號_,律師案號AUS920030483US1, 申請曰期為2003年9月30日;「自主地計算應用程式之指令 執行的方法與裝置(Method and Apparatus to Autonomically Count Instruction Execution for Applications)」,申請案 號-’律師案號AUS920030484US1,申請日期為2003年 9月30日;「自主地於辨識之指令進行例外的方法與裝置 (Method and Apparatus to Autonomically Take an Exception on Specified Instrucitons)」,申請案號^__,律師案號 AUS920030485US1,申請日期為2003年9月30日;「自主地概 要化應用程式的方法與裝置(Method and ApparatuS to
Autonomically Prof ile Applications)」,申請案號 , 律師案號AUS920030486US1,申請日期為2003年9月3〇日; 「用於計算指令與記憶體位置範圍的方法與裝置(Meth〇d and Apparatus for Counting Instruction and Memory Location
Ranges)」,申請案號 -—,律師案號 AUS920030487US1, 申请曰期為2003年9月30日;「用於在中斷發生時藉由中斷 種類來證明效能監視推件之收集的方法與裝置(Meth〇d and Apparatus for Qualifying Collection of Performance Monitoring Events by Types of Interrupt When Interrupt
Oc^irs)」,申請案號-,律師案號AUS920030540USi, 申請日期為-;以及「藉由類類來計算中斷的方法與裴 置(Method and Apparatus f0r Counting Interrupts by
Tp)e)」’申請案號--,律師案號AUS920030541US1,申 ,曰期為-。上述所有相關的申請案皆被讓渡給本發明 相同的申請人,於此提出以做為參考。 【發明所屬之技術領域】 本發明基本上侧於—觀良的㈣處理线,尤其是關
4IBM/04145TW 7 1307463 【先前技術】 記憶體的存取效率: 顯得十分^ 純最佳化的卫程_來說,便 運作的資訊’以及在f料被儲存時,其與主記 = 訊。這獅分析也可柳來確定顧程式的程 式,疋否改變’例如記憶體存取以及分支指令的重定位 iT,m〇n) ^便能更進-步地最佳n賴需的效能。此 ’月“視器可以提供在處理系'统中,事件之間所經過的時 效f監視11會計算可被絲分析系紐能的事件。 再者’、有關處理器如何存取資料處理系統的層級i與層級2快 取’以及主記憶體的資料’會被監視系統所收集,以便能確認 效能的瓶頸是在特定的硬體或是軟體環境。 处古除了上述的效能監視11之外’亦可使用情處理單元來記 、彔事件’例如中斷發生時的指令執行、分支事件、或系統事件。 4IBM/04145TW 8 1307463 ΐ斷是在裝置(例如滑鼠、鍵盤)發出一中斷信 時'處理*事,件發生。當處理器接受中斷請求 塞==11會執行與此帽事射_情服務常式。 中斷事牛=,,也可能起因於特定的機器語言操 如 M〇tor〇la 6_〇的猜,奴MQt_a公㈣產品。在這種 it - L預期,的軟體狀況(例如除數為零(dividedbyzer〇)) :使件處理n儲存目前的狀態、儲存有關特定情的識別資 料、並將㈣敎給處觀職外軟錄⑽帽處置器。 然而,上述的效能監視器必需在執行時修改應用程式,以 便能精確的記錄效能軌跡資料(performance trace data),例 如才曰令在中斷處理時所執行的數量。因此,若能提供一種改良 式的方法、裝置、與電腦指令,以於進入中斷前所發生的事件, 以及剛剛離開中斷時所發生的事件,提供前及後處置器來記錄 精確的效能資料,而不需修改底層的應用减,將會有所助益。 【發明内容】 本發明提供一種方法、裝置、與電腦指令,以於中斷發生 時^提供前及後處置器來記錄事件。前及後處置器允許記錄軌 跡資料(trace records)以及與被記錄事件有關的時間標記, 以提供使用者更精細的效能資料。 在一較佳實施例中’本發明的機制提供前及後處置器,以 於分支指令被執行時,記錄效能監視事件的發生。在分支指令 被執行時’前及後處置器係與一「分支上陷阱(trap 〇n branch)」(例如陷阱程序或中斷)一併使用,以產生一指令軌 跡(instruction trace) ’其包括「來源(from)」位址以表示 分支的發生處,以及可包括「目標(t〇)」位址以表示分支所要 4IBM/04145TW 9 1307463 進行的目標。可以理解的是,資訊可以用各種方式來進行壓 縮,以便能減少被^>錄的資訊量。前及後處置器會記錄在發生 分支之前和剛剛發生分支之後的效能監視事件。 在另一個實施例中,當中斷發生時而處理器從中斷處置器 擷取(fetch)指令之前,本發明的機制允許前處置器記 中斷處置器之前的軌跡資料。所記錄的事件提供 中 置器時的系統狀態。 r’地 當中斷處置H完成帽服務常式時,本發_機制允許後 f置器在回復至正常,行之前’記錄事件與低階 _ level informat1〇n) ’例如中斷所執行的指 可提供離開中斷時的系統狀態。 m 上述以及其它的特徵與優點將會在接 針對本發明較佳實施例的詳細說明 【實施方式】 本發明之機^供前及後處置器來記錄軌跡資料,包括 來源」位址,用來表示中斷發生的地 視事件之值。适些_可以協助工程師 j件’與中斷被處置或分支進行時系統所發生== 本發明可以實祕-電職統巾。電腦祕可以是獨立的 4IBM/04145TW 10 1307463 方棟的資料處理系統之 照本發明的程序。用戶端⑽使用= 2列,但其它的匯流排架構亦可以被使用,例如 透過PCI㈣ f ί )。處理器1G2與主記憶體购系 ΐ 來連接至PCI區域匯流排⑽。PCI橋接 ί理器10°2 2括J^fp的記憶體控制器與快取記憶體,以供 σ 。其匕對pci區域匯流排的連接可以藉由直接 70件互連,或是透過附加卡的方式。 ㈣區域網路αΑΝ)配接11 iig、小型電腦 ϋϊϋ)機匯流排配接器、以及擴充匯流排介面114 直接連接的方絲連接至ρ㈣域匯流排⑽。相較之 曰ί!己接11116、圖形配接器118、以及音訊/視訊配接器 n藉由將附加卡插入擴充槽的方式來連接至pci區域匯流 排介® 114提供連接至健與滑鼠配接器 =0:數據機122、以及附加記憶體124。SCSI主機匯流排配 器112提供it接至硬碟機126、磁帶機128、以及光碟機13〇。 ==區域匯流排的實施會支援三或四個PCI擴充插’或 +作業系統在處理器102上執行,並且用來協調並提供圖J 的貧料處理系統1 〇〇之中各種元件的控制。商用作業系統的範
4IBM/04145TW 11 1307463 程式或應用程式^執/ ’以提供用戶錢〇上Java 碟細,:載 施例 可以附加或取代圖1所示的麻聛T 4尤螺機等等’ 施於多處理器的資料處理系=。另外,本發明的程序亦可實 不句戶ί 1〇0若選用地設定為網路電腦,則可以 f:,排配接器112、硬碟機126、磁帶機128、 ΐίίϊϋΐ·絲⑽灯,此電腦(適當的稱呼為用 ^電⑹)包料些麵的鱗通齡面,例如配接器 110、數據機122、或其它類似的元件。在其它的範例中,用 戶端,100可以是獨立的系統,可以被言免定為,不論是否具有網 路通訊介面’亦可在不依賴網路通訊介面的情況下開機。又另 一個範例中,用戶端1〇〇可以是個人數位助理(pDA),具配置 有ROM以及/或快閃ROM ’以提供非揮發記憶體來儲存作業系 統的檔案以及/或使用者所產生的資料。圖丨所示以及上述的 範例皆非用於限制本發明的架構。 本發明的程序係由處理器102利用電腦實施的指令來執 行’這些指令可以位於記憶體中,例如主記憶體1〇4、記憶體 124、或一個以上的週邊裝置126-130。 4IBM/04145TW 12 1307463 現在參照圖 系統的示意圖, 示的處理器102 12 ’顯示了依照本發明較佳實施例之資料處理 用於處理資訊。處理器210可以用做圖i中所 〇 處理施例中’處理器21G *單—的積體電路超純量 暫广L I此’在下面的討論當巾,處理器210包括各種單元、 ίϊΐ成體、以及其它的部份’其全部由積體電 指八“H k佳實施例中’處理器_ s依據精簡 tl tl ΐ instruction set computer, RISC)^^ f來運作。如圖2所不’系統匯流排211是連接至處理器21〇 Ϊ單元(_ 212。咖212控制資訊在處理器210 系、,先匯流排211之間的傳遞。 BIU 212連接至處理器21 〇的指令快取2Η以及資料快取 216。指令快取214輸出指令至序列單元218。因應來自指令 ,取214的這些指令’序列單元218選擇性地輸出指令至其它 處理器210的執行電路。
在較佳實施例中的序列單元218之外,處理器21〇的執行 電路還包括多個執行單元,也就是分支單元22〇、定點單元A (FXUA) 222、定點單元b (FXUB) 224、複雜定點單元(cfxu) 226、載入/儲存單元(lsu) 228、以及浮點單元(卿)230。 FX? 222、FXUB 224、CFXU 226、以及 LSU 228 從泛用架構暫 存,(GPR) 232以及定點重新命名緩衝器234處輸入其來源 運算元資訊(source operand information)。再者,FXUA 222 與FXUB 224從進位位元(CA)暫存器239處輪入一進位位元 (carry bit)。FXUA 222、FXUB 224、CFXU 226、以及 LSU 228 輪出其運算結果(目標運算元資訊),以儲存在定點重新命名緩 衝器234中的選定項目(selected entry)。而且,CFXU 226 4IBM/04145TW 13 1307463 ,來源運算元資訊以及目標運算元資 處理單細單元)237’或從SPR單元=㈣暫存器 FPU 230從浮點架構暫存器⑽)236以及浮點 - 产斋238處輸入其來源運算元資訊。卿23〇輸出A it運算元f訊),以儲存於浮點重新命名緩衝器哪 並複資料快取216處輸入資訊, ί 選疋的重新命名緩衝器辦及238 1中之
ί系統嶋211的系統記憶體239處,、S 些資訊(藉由BIU212以及系蛴藤户mt 入以 LSU 228 GPR ? 些資料至資料快取216。中之處輸入纽’並複製這
232 資!1輪入至OT 232及™ 236,或從GPR 令ϋ Ϊ ^單元22G從序列單元218處輸入指 輸出信號(至序列單元218),以指示出合適 位存處理器210戶斤執行的指令序列。因應來 ίΐ = 這些信號’序列單元218從指令快取214處 Γ令序列。如果一個以上的指令序歹,J沒被儲存在 ΐ二快Ϊ守’指令快取214會從連接至系統匯流排211的 239處,輸入這些指令(藉由则212與系統匯流 排 Ζ11)。 因應仗私令快取214處所輸入的指令,序列單元gig選擇 性地分派(dispatch)指令至選定的執行單元22〇、222、224、
4IBM/04145TW 14 1307463 226、228、以及 230 其 _之. 類別的-伽上触令。*母錄行單元概行特定指令 來源運算元執行,-種類^的定二③224對 減法運算、AM)運算、〇R谨曾”,數予運斤’例如加法運算、 來源運算元執行第二種‘定=〇R $二㈣226對 法。刑230對來源運算元浮H =疋點乘法及除 與除法運算。 丁净2運异,例如洋點乘法運算 當資訊被儲存在選定的重新命名緩衝哭一
時’這些資訊會被關聯至—儲存 =234 元(CA)暫存器242其中之一),其孫上二Zf2或進位位 所Ϊπ # + / $其係由選疋的重新命名暫存器 所配置的b所&明。儲存在選定的重新命名緩衝㈣4 之-的資訊會被複製至所關聯的GPR 232 (或α暫存器^ 其中士-,以因應來自序列單元218的錄。序列單元°218指) 揮此資訊的複製(儲存在選定的重新命名暫存器2 ^ tm) > ^^(c〇fflpleting), 這種複製被稱之為「寫回(writeback) _j。 當資訊被儲存在選定的重新命名緩衝器238其中之一 時,這此資訊會被關聯至FPR 236其中之一。儲存在/選定的重 新命名缓衝器238其中之一的資訊會被複製至其所關聯的ρρρ 236其中之一’以因應來自序列單元218的信號。序列單元218 指揮此資訊的複製(儲存在選定的重新命名暫存器238其中之 一的資訊),以因應「完成(completing)」此指令所產生的資 訊。 處理器210藉由同時在各個執行單元220、222、224、226、 228以及230之一處理多重指令’以達成高效能的結果。因此, 每個指令都被以一序列的階段來處理’每個指令都和其它指令
4IBM/04145TW 15 1307463 ,階段平行地執行。這樣的技術被稱之為「管線(pipel ine)」。 就本實施例的一個重要方面而言,指令通常以六個階段來處 ,’亦即擷取(fetch)、解碼(dec〇de)、分派(dispatch)、執 行(execute)、完成(compieti〇n)、以及寫回(writeback)。 在擷取的階段,序列單元2丨8選擇性地輸入(從指令快取 214)—個以上的指令,其係由儲存指令序列之一個以上的記憶 f位址’會在下面與分支單元220及序列單元218 —併詳細言^ 在解碼階段’相單元218對娜觸四織令進行解 果(at分^H純重騎名緩衝11項目供分派的指令結 ^ 218 7至>疋的執仃早兀220、222、224、226、228、及230豆中 之二U因應名解着段所做的解碼)。在分派階段,運算^ 出其目到的指令’並且輸 討論。依此方式,處理器21〇 下面再詳細 (out-of-order)的方式執行指令^ 程式序列而用亂序
4IBM/04145TW 16 1307463 缓衝ϊίΓίΓ序列單^218指揮資訊的複製,由重新命名
命名__訊_複製。J 指令的「窵θ畔防7 +處态21〇以其轾式序列來處理各別 」卩自奴。在特定有利的情況下,處理器210會將 才曰令的完成階段與寫回階段合併。 會將 中’每個指令需要一個機器週期(眺hine -相)來^成指令階段的處理。然而,某些指令可能需要 因此C™ 226戶斤執行的複雜定點指令。 ㈣私令要㈣_化,使得在特定指令 的執仃與元成階段之間,可能會發生各種不同的延遲。 2成緩衝H 248係提供於序列單元幻8巾,以追縱在執 =中所執行料重指令的完成。在指示出—指令或 器:順縣絲,完成“ 轉魏较成齡的絲至相關的泛 此外,處理器210也包括效能監視單元24〇,連接至 [=214以及處理n 21〇中的其它單元。處理器·的作業 效能監視單元240來監視,在此實施财,是採用;^皮 取的機Wsoftware一謙ssible脈―),來提供 行資源與贿㈣在個上的詳細資織述。雖然在圖 It复有顯示,然而效能監視單元240是搞合至處理器則 、母固功此性單元(functi〇nal unit),以允許對處理器Μ。 ^斤有方面的作業上進行監視,例如:事件之_關係重建、 辨識錯誤啟動(false triggering)、辨識效能瓶頸、監視管線 延遲(pipeline stall)、監視閒置的處理器週期、決定分派效
4IBM/04145TW 17 1307463 率(dispatch efficiency)、決定分支效率(branch efficiency)、決定錯序資料存取(misaiigned data access) 的效能損失(performance penalty)、辨識序列指令 (serialization instruction)的執行頻率、辨識禁止的中斷 (inhibited interrupt)、以及決定效能效率(perf〇rmance efficiency)。其它的事件還可以包括,例如:指令解碼的時 間、指令的執行、分支事件、快取未命中、以及快取命中。 效能監視單元240包括數量視實際情形而定的計數器 241-242(例如2個至8個),標示為pmci以及pmc2,用來計 數選定事件的發生次數。效能監視單元24〇更包括至少一個^ 視模式控制暫存器(腿⑻。在此實施例中,有兩健 ς ί J=R、243與244以指定計數器241 一242的功能。計數 _ 243_244在較佳實施例中為可被存取的 ΜΤ 藉由咖226執行MFSPR(I職卿)以及 it re tQ SPR)的指令來進行讀取或寫人。飾在另一個 ΪΪΙL ϊ數器241—242以及MMCR 243—244可以被簡單地 貫施為I/O空間中的位址。在又—個實_中 (index register) 取本貫施例中疋實施為Intel公司的處理器的.Μ架構。 快取元250 ’用來連接至指令 其它功能性料·號,並啟始—行 _程序。在這些範例中,中斷單始錯誤處置或 例外(~,其可在執行:二:|生生,斷以及 本發明提供-種方法、裝置、以及電腦指令,用於提供前
4IBM/04145TW 18 1307463 件。前及後處置11可以實施不㈣操作, 用電月ϋ式執行矩陣資訊’供效能分析工具來使 料导中斷^ € 執行期_效能分析。祕置11是用於 i器則3 ;於:行之前物1程式執行矩陣資料。後處 斷處置ΐ式的^^辦__所發生賴訊,亦即在中 料被稱為陷牌或中斷服務常式,即特定情況 χ,订的程式碼片段,例如在特定中斷或例外發生時。 理=\處置此_程序的—部份,本發明的處 :於在賴中 杆日车類#崎程序發生,並且_或帽處置常式被執 情處置常式概行之後,可被執行 ί 處置f式執軸間所發蝴晴訊。舉例 ,次數’以累積其總值’而可輸出至效能分析工具 置器:m的效能分析。為了執行不同的操作,前及後處 效能監視轉的_敎,來處理 此外 ,别及後處置器可記錄下執跡資料(trace record)
4IBM/04145TW 19 1307463 ,跡資料可包括—指令的「來源(fn3m)」位址,代表事件發生 'L並對選定的事件進行計數;以及一時間標記,以辨識此軌 ,資=於何時被寫人。事件記錄可包括發生於進人巾斷服務常 ^之巧1以及離開中斷服務常式之後的效能監視事件。前及後 器疋Γ*些指令常式,用於記錄軌跡資料,或處理與機器狀 關的資訊。軌跡資料也可包括從效能監視計數器所讀取的 貧訊(例如從圖2所示的計數器241_242),以及與每個事件相 關的時間標記。效能監視事件的例子如:指令所執行的次數、 中的次數、表格後備緩衝器(table lookasidebuffer, TLB)未命中的次數、等等。 μ 處置器累積軌跡資料’以記錄發生在中斷服務常式 斷處置常式)之前’以及中斷服務常式(或_/t 式)細'細的事件’其鋪由在執行處置11之前記 計ί器之值’並且在剛執行*置器之後即記錄效能 Γίίΐ: 此效能監視器可以被程式化,使得在前及後 處置益被執行的期間停止計數。 前及後處置器可以被開啟(enabled)或是被關閉 f此’錢侧魏監視資财触蚊前及後 去;或卿來達行。依此方式,使用者可獲 本相、為是重要問題的特定效能資訊。這使得前及後 處置器可以·極挪㈣方絲編额分析效能監視資訊。 branch? r^i^^W(trap on branch)」拍令一起用來產生軌跡資料。如上所 中的—鋪定片段的程式碼,在程式執射的特定情況
4IBM/04145TW 20 Ι3Ό7463 也 分支上陷阱 會被iir月的一較佳實施例中,電腦程式内一個以上的八支 ===行分支時’處理_送^#= 擷取指令^早70會通知處理器從前處置器 軌跡資料,而不3"行^^處置常式以及進行分支之前,記錄 貝抖而不疋從正常的陷阱處置常式擷取指令。 支指「來源」記憶體位址,是分支進行時,分 ill 此外’細姻也可包括「目標」記憶 以是效能:視資„减、體位址。與這些位址相關連的可 獲「1效紐視f⑽其中—個範例,即可被 數。選疋的效食匕監視事件的計數,例如快取未命中發生的次 常式執行之後’正常的陷務常式(或是陷 則會被執行。後處置器常式也可關聯至程式内 心·^序。在正常的⑽服務常式結束執行之後,後處置器 二工呼叫’並且嘗試將電腦程式的控制權回傳給電腦程式 的正吊程式碼。在完成正常的陷牌服務常式,而在回到正常執 行處王里=會傳送信號至中斷單元,以指示出正常的陷阱 ,務吊'式已經完成。因此,如果後處置器是開啟的,中斷單元 就會通知,理n從後處置雜取指令,以便能夠在分支進行後 έ己錄軌跡貧料。因此’前及後處置器允許使用者記錄低階的效
4IBM/04145TW 21 1307463 能資料(low-level performance data) ’在其之前和剛剛執行 陷阱/中斷處置常式之後。此項功能其中的一個較佳應用程 式,是用於上述「分支上陷阱」的情況。 _正常來說,當中斷發生時,例如在程式執行時發生分頁錯 誤,則處理器會停止目前的執行,並且開始從中斷處置器的進 入,位址擷取指令。中斷處置器包括中斷服務常式,其係由處 理器所擷取,以用於處置中斷。進入點的位址是儲存在中斷描 述表(interrupt descriptor table, IDT)中,其是與每個 中斷有關的一個系統表,並且有一個相對應的中斷處置器,其 具有相對應的中斷服務常式。 、 然而,在本發明的一個示範性實施例中,為了因應中斷事 件巧發生(使得中斷被產生),本發明的中斷單元會接收來自處 理器的中斷信號,以及相關的元資料(metadata)。此元資料可 、包括處置器旗標(handler flag),例如非零值,以用於辨識下 述中斷處置器其中之—:正常的中斷處置器、前處置器 後處置器。 如果,處置器是被設定於元資料中,而不是從上述的正常 中斷處置器擷取指令’則中斷單元會通知處理器從前處置器常 式擷取指令’其記錄有「正常」巾斷處置碰執行之前所發生 的,跡資料(在特定的時間點)。「正常」中斷處置器一詞在此 處是指,若前及/或後旗標沒有被設定時,會依照所產生的中 斷而執行的中斷處置常式。 由則處置器常式所產生的執跡資料可包括發生中斷之指 令的「來源」以及/或r目標」地址,以及選定的效能監視資 訊。軌跡資料也可以包括時間標記。 、
4DBM/04145TW 22 1307463 火士 Γ ί前處置器常式被執行後,前處置器會通知虚理哭ή ΐ器操取指令。當正常情處置器的執行完成 2 ϋ情況記錄下來。使用前及後處置器,執跡ΐ料^ί=式 ,處置器所 回至 被執行以及分支被進行的這段期間, ^ 正常執行岐段_,財絲行上所發;支= 仃象及 此外’效能軌跡資料可被在正常陷解程序或中斷處 以便能辨識介於特定巾斷發生至陷味ί
辨識介於_或情處置常式結束至情回 H 發生的改變。這錄訊提供給工程師—歡具,能將 事件’與系統情或分支進行時所發生的事ί 在又另-個較佳實施例中,前及後處置器常式可 的功ff,f如使用計數事件的效能監視單元來處理 /益位隋?i(°verflGw)的找。效能監視單元則可依關2的效 能監視單元240來實施。計數的結果可以被儲存在服中 是位於IDT α外的專屬記憶體中。因為溢位的情形可能事
4IBM/04145TW 23 1307463 件計數中發生,因此前及後處置器常式可以查看計數值,以定 期地檢查溢位的情形。在一個實施例中,如果計數值將要重覆 (wrap),則前及後處置器常式可發出信號,以通知處理器有溢 位情況將要發生。在其它的實施例中,前及後處置器可包括用 來處理溢位情形的常式,舉例來說,可以藉由讀取並重設計數 現在參照圖3,顯示了依照本發明較佳具體實施例的元 件’其利用前及後處置器來記錄中斷事件。在此示範性的實施 例中’中央處理單元(CPU) 302可以依照圖2中所示的處理器 210來實施。在一較佳實施例中,當分支指令被執行時,陷阱 程序則被應用程式所執行。此陷阱程序會通知cpu 3〇2,產生 並傳送信號至情單元綱,以指示出有例外情況發生,即音 指有分支指令被執行。中斷單元304通知CPU 3G2從前處置^ ίίϊί ’以在分支進行之前記錄獅f料。前處置器常式記 Ϊ轨^貝料,其可包括表示分支指令所執行處的「來源」位址、 所將進行處的「目標」位址、以及效㈣訊,例如在 進仃分支之前所發生選定效能事件的計數值。 處置常式之後,贿處置常式已完成的指示會 後虛iil斷早70 304。此中斷單元304則會通知cpu 302從 後處置_取指令,以在回至正常執行之前記錄軌跡資料。 生快ίί:ί實f例中’#中斷發生時,例如在程式執行時發 單命 302會傳送信號以及相關的元資料至中斷 置中贿料聽辨識巾斷_類,可以辨識出用於處 位址,、:寺疋中斷處置常式。中斷單元304則可辨識肌中的 ΤίΤΓπ’亚且通知處理器依據元資料中所指示的中斷種類,從 肪所辨識出中斷處置常式的位址處擷取指令。=到二
4IBM/04145TW 24 1307463 元資料中所辨識的處置器所相關之前及/或後處置器的位址處 擷取指令,如下所詳述。 現在參照圖4,顯示一種依照本發明具體實施例的示範性 中斷描述表(IDT)。在此示範性的實施例中,中斷描述表(idt) 402包括記憶體位址404、中斷種類406、前處置器位址4〇8、 以及後處置器位址410。IDT 402的中斷種類406僅是列舉做 為說明之用。 在此範例中,當中斷發生時,例如虛擬雜湊分頁表 (Virtual Hash Page Table’ VHFT)的資料錯誤中斷,其是 一種與虛擬雜湊分頁表有關的中斷’則處理器會傳送信號至中 斷單元’例如圖3中所示的中斷單元3〇4,以辨識中斷的發生。 中斷單元會檢查與此信號有關的元資料4〇〇,以確定用於處理 此辨別中斷的前或後處置器是否開啟。在此範例中,元資料是 01 ,其表示刖處置器是開啟的。如果元資料是〇〇,則乂示正 常中斷處置器狀啟的。若元資料是1Q,則表示後處置’器是 舉例來說’元資料是被設定為01、〇〇、i η 細來監視電腦程式的執行)所相關 ΐ : ϊ ί疋。亦即,使用者可藉由使用者輸入至效能監 程式,來設定特定種類的事件或特定種 則處置n、後處置n、或是兩者都使 不 此資訊可被儲存在盘效能龄㈣"疋兩者白不使用’ rb , ^ 皿視應用程式所相關的資料結構 是否要開啟前處置器、減¥哭、^、存③以和不出 也。 ♦直时魏置益、或開啟兩
4IBM/04145TW 25 1307463 ,於每次有陷阱程序
的陷阱程序有一個前處置器及一個後處置器’。 义百珂或後處置器, 。這樣的方法允許所有 右前處置n被開啟’價單元賊域理騎接收到的信 =ΐ指示的中斷種類,從與此中斷種類相關的IDT402的前 二ΐ置器紐欄中’辨識前處置时式位址,在此範 ,中為Οχ棚〇 412 ’並且執行位於記憶體位址〇χ·〇极處 相對應的前處器置常式422,以記錄事件。 一旦前處置器常式422被執行,中斷單元從IDT4〇2的記 憶體位址攔404中,辨識VHPT資料錯誤中斷服務常式的開始 =記憶體位址404,在此範例中為0x0000 426,並且通知處理 器執行中斷處置器的正常中斷服務常式。一旦正常中斷服務常 式元成之後,處理器傳送信號給圖3中所示的中斷單元304。 中斷單元檢查元資料400 ’其與處理器所傳送的信號相關,因 應中斷的發生以決定是否後處置器也為開啟。 若後處置器是開啟,則中斷單元3〇4從IDT 402的後處置 益位址攔410處,辨識後處置器常式的開始位址,在此範例中 為0x5000 442。一旦後處置器常式44〇被執行,中斷單元則 通知處理器回至電腦程式中產生此中斷的原始指令處。 4IBM/04145TW 26 1307463 現在參照圖5,說明-種依照本發明具體實施例的 圖’以中斷單元峨絲綱_前及後處置器記錄中斷事件 的程序。此程序開始於因應陷胖指令的執行或中斷的產生 理器傳送信號與相關的元資料至中斷單元(步驟5〇 基於與信號有關的元資料,確定處置器是啟 器沒有開啟^斷單元則辨識IDT當中(例 的=
402),對應其情種類(例如圖4所示的 ^ =DT 中斷處置常式的記她紐(例如圖 步驟510),並且通知處理器執行中斷處置“(步驟 位址為元則辨綱處置器常式的開始 =二二=¾,置器常式(步驟 類的中斷處置常式的位址,通^對應至其中斷種 執行中斷處置常式(步驟512) /σ處理#步驟_ ’以便能 一旦處理器執行中斷處置赍令 中斷種類或IDT當中的IDT項/ ’中斷單元則依據相對應的 514)。接著基於元資料來確識後處置11的位址(步驟 516)。若後處置器未開啟,則中1^處置器是否為開啟(步驟 行(步驟522)。然後此程序便結2早7°通知處置器回至原始執 若後處置器是開啟的,則中齡_ 址(步驟518)。中斷單元接著通头^元辨識後處置器的開始位 驟520),以在回至原始執行之,'處理器執行後處置器常式(步 程序便結束。 °己錄事件(步驟522)。然後此 接著參照圖 說月種依照本發明具體實 施例的流程
4IBM/04145TW 27 J307463 來ΐ::ΐ及後處置器,在分支指令 ,指令的執:^2以:此程序開始於 刀支指令已執行(步:至尹斷早7G ’以指示出 斷單元304)接著通知處 ^(例如圖3所示的中 604)。接著,分支H域_處置器常式的指令(步驟 f著,t斷單搞知;序(步驟606)。 序便結束。如至正常執行之前(步驟⑽),然後此程 執行科需要在 發生的次數值以例=藉由累積事件 的狀況。前錢處置H也可絲記騎準醉」 f入中斷處置器之前,以及__中斷處^發 件。所5己錄的數值提供給工程師—種I具,〗^ # 常執行時轉件,與祕情時所發 離'、以 能將系統最佳化。 讚ΤΜπ離以便 在此必需注的是’雖然本發明在文中被描述於一個 的資料處理祕,然減賴者當知本發明可以發 令的電腦可讀媒體的形式,以及其它各種的形式。並且^發^ 亦可實施於各種的信號承載媒體。電腦可讀媒體的範例包括可 §己錄式的媒體,例如軟碟片、硬碟機、隨機存取記憶體(RAM)、 光碟(CD-ROM)、數位多功能光碟(DVD_R0M),以及傳輸式的媒 體,例如數位與類比的通訊鏈結、使用傳輸形式的有線或益線 的通訊鏈結’例如無線電頻率以及光波傳輸。電腦可讀媒&亦 28
4IBM/04145TW 1307463 ^=編碼的格式來實施,而後在特定的資料處理系統再解瑪來 上述之實施例係用以描述本發明,而並非用以列舉限制本 發明的實施形式。熟此技藝者可就本發明技術進行許多之修改 與變化。以上特定實施例的描述係用來幫助暸解與說明本^明 的f理與實際的應用,並且可使熟此技藝者暸解本發明在符合 特定應用時的各種實施例,以及各種修改與變化。 口 【圖式簡單說明】 本發明的特性與其新穎特徵係界定於後附的申請專利範 圍。然而,本發明以及其較佳的實施方式,以及進一步的目的 與優點’將會藉由詳細說明中所敘述的實施例,以及 圖式,能夠被更清楚地暸解。其中: 、 =1為-依照本發明具體實補之資料處理系統的方塊 不葸圖; —m一依照本發明具體實施例之處理系、統進行資訊處 ΐϊ·的万塊y|%意圖, 置器==意圖’依照本發明具體實施例之前及後處 音圖圖4 ^依照本發明具體實施例之巾斷說明表(册)的示 來記程:依照本發明具體實施例之前及後處置器 哭,本發體實施例之前及後處置 為,於刀幻日令與分支上陷_執辦記錄祕資料。 102處理器 【主要元件符號說明】 100用戶端
4IBM/04145TW 29 1307463 104主記憶體 108橋接器 112 SCSI主機匯流排配接器 116音效配接器 119音訊/視訊配接器 122數據機 126硬碟機 130光碟機 211系統匯流排 214指令快取 218序列單元 222定點單元a 226複雜定點單元 230浮點單元 234定點重新命名緩衝器 237特用型暫存器處理單元 239系統記憶體 241計數器 243監視模式控制暫存器 248完成緩衝器 260記憶體 304中斷單元 402中斷描述表 406中斷種類 410後處置器位址 424記憶體位置 442記憶體位置 106匯流排 110區域網路配接器 Π4擴充匯流排介面 118圖形配接器 120鍵盤與滑鼠配接器 124附加記憶體 128磁帶機 210處理器 * 212匯流排介面單元 216資料快取 220分支單元 224定點單元B 228載入/儲存單元 232泛用架構暫存器 236浮點架構暫存器 238浮點重新命名緩衝器 240效能監視單元 242計數器 244監視模式控制暫存 250中斷單元 ° 302中央處理單元 400元資料 404記憶體位址 408前處置器位址 422前處器置常式 440後處器置常式
4IBM/04145TW 30
Claims (1)
- ·. .:u 1307463 案號:94100038 97年1月17日修正-替換頁 十、申請專利範圍: 1. -種儀情前及帽後處置H以 下列步驟: 卞肀斷事件的方法,包含 接收一中斷信號於該資料處理系統 元; 凡甲之—處理器的一中斷單 判斷是否-前處置常式與-後處置常式 以用於一中斷(interrupt); 、王夕其中之一被致能 若該前處置常式被致能,職_前處置常式 刻(first instant)記錄事件(record ev t v 弟呀 啟動一中斷處置常式;以及 ’ 若該後處置常式被致能’則啟動該後處置常式 刻記錄事件。 币一守 ^請求項1所述之方法,其巾該記錄事件之步驟包括記錄複數 個計數。 3·如請求項1所述之方法,其中該記錄事件之步 間標記(timestamp)。 4.如請求項2所述之方法,其中該計數表示該事件發生的次數。 ^ .如5求項4所述之方法’其巾該事件係選自下晴組成之群 組·快取未命中以及指令執行數。 Λ» 求項1所述之方法,其中該第一與第二時刻係分別與該第 一,、第二時間標記相關。 ^ 求項1所述之方法,更包含複數個前處置常式與複數個後 处式,其中每個該前處置常式與每個該後處置常式各自記錚 一中斷發生時的一相異事件。 31 ^ i, IT 1307463 計數值 案號:94100038 97年1月17日有 '驟包括累計一總 =求項1所述之方法,其中該記錄事件之步〗…丨97年1月π日修正侧 算已記錄的 ^如清求項8所述之方法,其中 事件來妨㈣。 m十數值係猎由計 I!工Ϊ請求項8所述之方法,其中該總計數值係顯示於-效能分之方法,其中當該前或後處置常式被 啟動時 Ϊ法了==斷前及中斷後處置器以記錄中斷事件指令的 元;接收-中斷信號於該資料處理系統中之_處理器的_中斷單 判斷是否-前處置常式與-後處置常式至少其巾之 以用於一中斷; 饭双月fc·若該前處置常式被致能,則啟動該前處置常式以在一第— 刻記錄一執跡資料(trace record); 啟動一中斷處置常式;以及 若該後處置常式被致能,則啟動該後處置常式以在一第二時 刻記錄一執跡資料。 13. 如請求項12所述之方法,其中該執跡資料包括一指令的—來 源位址(from address),以指示出該中斷發生之所在。 14. 如請求項12所述之方法,其中該軌跡資料包括複數個計數。 32 l Lil ·- r;l Γ- ....r 1307463 η 案號:94100038 97年i月17曰修正·替換頁 法’奸該¥疏:▲生的次數。 組:t其中該事件係選自下列所組成之群 17.如請求項12所述之方法,其中該軌跡f料包括一時間標記。 項更包含複數個前處置常式與複數個 生與每個該後處置常式各自記 1 第9·一 枝,其中鱗-料二_齡別與該 2〇. ^請求項I2所述之方法,其中該^^處置常式或 監視“已記錄事件的-計數,以判斷是科生—驗(。㈣㈣式 二後處置常式 Ϊ統,ΪΪ用中斷前及中斷後處置器以記錄中斷事件的資料處理 一=斷單元,用於接收中斷信號; 一則處置常式與一後處置常式; 其中因應接收到一中斷的一中 置常式於1-_記錄—執跡^該帽早兀,該前處 記錄ΐ::ί:收到該中斷的完成,該後處置常式於-第二時刻 資料包括一指令的一來 23.如請求項22所述之系統,其中錄跡 33 1307463 年月 a如替换頁丨案號:94_〇38 、ir / v 97年1月17日修正·替振百 源位址,以指示出該中斷發生一一、 如明求項22所述之系統,其中該軌跡資料包括複數個計數。 25·如凊求項24所述之系統’其中該計數表示一事件發生的次數。 t 其巾該事件係選自下酬組成之群 27.如μ求項22所述之系統,其中該執崎料包括—時間標記。 後處ϊΐϊ項更包含複數财處s常式與複數個 錄—中斷發生置常式與每個該後處置常式各自記 第統,其中該第-與第二時刻係分別與該 系統,其中當該前或後處置常式被啟動 置常式 以發生-溢流(overflow)。 藉由讀取與重設該計數處置常式或該後處置常式 事件指令的電腦^讀別及中斷後處置器以記錄t斷 34 1307463 案號:94100038 97年1月17日修正_替換頁 理器單ί於接收—中斷信號於—資料處理系二 其中膽㈣—魏置常式至少 式以ί:ί:時’則用於啟動該前處置常 ίϋϊί ’用於啟動—中斷處置常式;以及 指人述^電腦可讀取媒體,其中該轨跡資料包括一 才"的來源位址,以指示出該中斷發生之所在。 數個求項33所述之電财讀取舰,其中該_資料包括複 件 ϊ生項35所述之電腦可讀取顧,其中該計數表示一事 37.如請求項36所述之電腦可讀 、^ ^ 所組成之群組:快取未命中以及其㈣事件係選自下列 其中該軌跡資料包括一 S間=求項33所述之_可讀取媒體, 35 雜.1·月 1307463 An - 一.…ϋΐ : 94100038 .如請求項33所述之電腦可讀取媒 ^〜--.·麟μ "a修正姻頁 系为別與該軌跡資料中的該第一二:、令該第-與第二時刻 /、 一 τ間標記相關。 後處置常式監視該所已事前處置常式或該 旧以顺是錄生-溢流。 42.如請求項35所述之電腦可讀取 式破啟動時,該計數不會被更新。、〃中备該前或後處置常 重 输常式或該 Ϊ下;用中斷前及中斷後處置器以執行分支指令的方法,包 ,行-程式的—分支指令; 統中之器信號於該資料處理系 程式之該分支指令的執4牌程序的執行是因應該 -軌;:收sr號,啟動-前處置常式以在-第-時刻記錄 一第執狀麟,啟__常式以在 45. 以指 其中該執跡資料包括-來源位 址 二料包括-目標位址“。 36 1307463 97年1·妙 Η %^^..二/;|-换_號:94100038 4.7 士〇社书i首44妬'+,丄 L_—--------—2}年1月17曰修正-替換頁 月求頁所34之方法,其中該軌跡資料包括複數個計數。 ^如請求項47所述之方法,其中該計數表示-事件發生的-欠數。 49.如請求項44所述之方法,其中該軌跡資料包括一時^ t 其中該事件係選自下列所纽成之群 H·如請求項44所述之方法,更包含複數個前處置常式與複數個 後處置常式,其中每個該前處置常式與每個該後處置常式各自記 錄一中斷發生時的一相異事件。 除祕分別與該 5以S會方法’其中當該前或後處置常式被啟動37
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/757,192 US7197586B2 (en) | 2004-01-14 | 2004-01-14 | Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200534089A TW200534089A (en) | 2005-10-16 |
TWI307463B true TWI307463B (en) | 2009-03-11 |
Family
ID=34740004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094100038A TWI307463B (en) | 2004-01-14 | 2005-01-03 | Method, apparatus, and computer readable medium for recording interrupt events using pre and post handlers |
Country Status (3)
Country | Link |
---|---|
US (1) | US7197586B2 (zh) |
CN (1) | CN100407147C (zh) |
TW (1) | TWI307463B (zh) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7395527B2 (en) | 2003-09-30 | 2008-07-01 | International Business Machines Corporation | Method and apparatus for counting instruction execution and data accesses |
US7373637B2 (en) | 2003-09-30 | 2008-05-13 | International Business Machines Corporation | Method and apparatus for counting instruction and memory location ranges |
US8381037B2 (en) | 2003-10-09 | 2013-02-19 | International Business Machines Corporation | Method and system for autonomic execution path selection in an application |
US7421681B2 (en) | 2003-10-09 | 2008-09-02 | International Business Machines Corporation | Method and system for autonomic monitoring of semaphore operation in an application |
US7415705B2 (en) | 2004-01-14 | 2008-08-19 | International Business Machines Corporation | Autonomic method and apparatus for hardware assist for patching code |
US7526757B2 (en) | 2004-01-14 | 2009-04-28 | International Business Machines Corporation | Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program |
US7895382B2 (en) | 2004-01-14 | 2011-02-22 | International Business Machines Corporation | Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs |
US7421684B2 (en) | 2004-03-22 | 2008-09-02 | International Business Machines Corporation | Method and apparatus for autonomic test case feedback using hardware assistance for data coverage |
US7480899B2 (en) * | 2004-03-22 | 2009-01-20 | International Business Machines Corporation | Method and apparatus for autonomic test case feedback using hardware assistance for code coverage |
US7454666B1 (en) * | 2005-04-07 | 2008-11-18 | Sun Microsystems, Inc. | Real-time address trace generation |
US7581148B2 (en) * | 2006-01-31 | 2009-08-25 | Verigy (Singapore) Pte. Ltd. | System, method and apparatus for completing the generation of test records after an abort event |
US7707394B2 (en) * | 2006-05-30 | 2010-04-27 | Arm Limited | Reducing the size of a data stream produced during instruction tracing |
US20080114690A1 (en) * | 2006-10-26 | 2008-05-15 | International Business Machines Corporation | System and method for performing partner settlement for managed services in an ip multimedia subsystem (ims) network |
JP5119994B2 (ja) * | 2008-03-14 | 2013-01-16 | 富士通株式会社 | 性能モニタリングプログラム、性能モニタリング方法、性能モニタリング装置 |
JP4691153B2 (ja) * | 2008-12-10 | 2011-06-01 | 富士通株式会社 | マルチコアプロセッサ,制御方法および情報処理装置 |
US9195487B2 (en) * | 2009-05-19 | 2015-11-24 | Vmware, Inc. | Interposition method suitable for hardware-assisted virtual machine |
US8635415B2 (en) * | 2009-09-30 | 2014-01-21 | Intel Corporation | Managing and implementing metadata in central processing unit using register extensions |
EP2333830B1 (en) | 2009-12-07 | 2014-09-03 | STMicroelectronics (Research & Development) Limited | a package comprising a first and a second die coupled by a multiplexed bus |
EP2339475A1 (en) * | 2009-12-07 | 2011-06-29 | STMicroelectronics (Research & Development) Limited | Inter-chip communication interface for a multi-chip package |
EP2333673B1 (en) * | 2009-12-07 | 2014-04-16 | STMicroelectronics (Research & Development) Limited | Signal sampling and transfer |
EP2339476B1 (en) * | 2009-12-07 | 2012-08-15 | STMicroelectronics (Research & Development) Limited | Interface connecting dies in an IC package |
EP2339795B1 (en) * | 2009-12-07 | 2013-08-14 | STMicroelectronics (Research & Development) Limited | Inter-chip communication interface for a multi-chip package |
EP2330514B1 (en) | 2009-12-07 | 2018-12-05 | STMicroelectronics (Research & Development) Limited | An integrated circuit package |
US8516229B2 (en) * | 2010-02-05 | 2013-08-20 | International Business Machines Corporation | Two pass test case generation using self-modifying instruction replacement |
CN101944041B (zh) * | 2010-09-26 | 2012-10-10 | 中国科学院计算技术研究所 | 一种使用陷阱指令优化条件转移代码性能的方法及其系统 |
US20120144367A1 (en) * | 2010-12-06 | 2012-06-07 | Microsoft Corporation | Events fired pre- and post-method execution |
US8793706B2 (en) | 2010-12-16 | 2014-07-29 | Microsoft Corporation | Metadata-based eventing supporting operations on data |
US8521937B2 (en) | 2011-02-16 | 2013-08-27 | Stmicroelectronics (Grenoble 2) Sas | Method and apparatus for interfacing multiple dies with mapping to modify source identity |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
US9317460B2 (en) * | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US9201821B2 (en) | 2012-09-27 | 2015-12-01 | Apple Inc. | Interrupt timestamping |
US9298651B2 (en) | 2013-06-24 | 2016-03-29 | International Business Machines Corporation | Continuous in-memory accumulation of hardware performance counter data |
US10282326B1 (en) * | 2014-10-29 | 2019-05-07 | Xilinx, Inc. | Active interrupt handler performance monitoring in microprocessors |
US9600336B1 (en) | 2015-08-28 | 2017-03-21 | International Business Machines Corporation | Storing service level agreement compliance data |
US10002063B2 (en) | 2015-10-20 | 2018-06-19 | International Business Machines Corporation | Monitoring performance of multithreaded workloads |
US20170168832A1 (en) * | 2015-12-11 | 2017-06-15 | International Business Machines Corporation | Instruction weighting for performance profiling in a group dispatch processor |
JP2019096243A (ja) * | 2017-11-28 | 2019-06-20 | ルネサスエレクトロニクス株式会社 | 半導体装置及びその故障検出方法 |
Family Cites Families (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3707725A (en) * | 1970-06-19 | 1972-12-26 | Ibm | Program execution tracing system improvements |
US4034353A (en) * | 1975-09-15 | 1977-07-05 | Burroughs Corporation | Computer system performance indicator |
US4145735A (en) * | 1977-02-02 | 1979-03-20 | Nippon Steel Corporation | Monitor for priority level of task in information processing system |
US4291371A (en) * | 1979-01-02 | 1981-09-22 | Honeywell Information Systems Inc. | I/O Request interrupt mechanism |
JPS59132070A (ja) * | 1983-01-18 | 1984-07-30 | Mitsubishi Electric Corp | アレイ演算用デ−タ処理装置 |
US5103394A (en) * | 1984-04-30 | 1992-04-07 | Hewlett-Packard Company | Software performance analyzer |
US4794472A (en) * | 1985-07-30 | 1988-12-27 | Matsushita Electric Industrial Co., Ltd. | Video tape reproducing apparatus with a processor that time-shares different operations |
US4821178A (en) * | 1986-08-15 | 1989-04-11 | International Business Machines Corporation | Internal performance monitoring by event sampling |
US5822578A (en) * | 1987-12-22 | 1998-10-13 | Sun Microsystems, Inc. | System for inserting instructions into processor instruction stream in order to perform interrupt processing |
US5151981A (en) * | 1990-07-13 | 1992-09-29 | International Business Machines Corporation | Instruction sampling instrumentation |
JPH0774984B2 (ja) * | 1991-06-10 | 1995-08-09 | インターナショナル・ビジネス・マシーンズ・コーポレイション | システム資源利用率測定方法とデータ処理システム |
US5193180A (en) * | 1991-06-21 | 1993-03-09 | Pure Software Inc. | System for modifying relocatable object code files to monitor accesses to dynamically allocated memory |
US5548762A (en) * | 1992-01-30 | 1996-08-20 | Digital Equipment Corporation | Implementation efficient interrupt select mechanism |
JP3544214B2 (ja) * | 1992-04-29 | 2004-07-21 | サン・マイクロシステムズ・インコーポレイテッド | プロセッサの状態を監視する方法及び監視システム |
US5404500A (en) * | 1992-12-17 | 1995-04-04 | International Business Machines Corporation | Storage control system with improved system and technique for destaging data from nonvolatile memory |
JP3242508B2 (ja) * | 1993-11-05 | 2001-12-25 | 松下電器産業株式会社 | マイクロコンピュータ |
DE4423559A1 (de) * | 1993-11-09 | 1995-05-11 | Hewlett Packard Co | Datenverbindungsverfahren und Vorrichtung für Multiprozessor-Computersysteme mit gemeinsamem Speicher |
US5745770A (en) * | 1993-12-27 | 1998-04-28 | Intel Corporation | Method and apparatus for servicing simultaneous I/O trap and debug traps in a microprocessor |
US5581482A (en) * | 1994-04-26 | 1996-12-03 | Unisys Corporation | Performance monitor for digital computer system |
US5652858A (en) * | 1994-06-06 | 1997-07-29 | Hitachi, Ltd. | Method for prefetching pointer-type data structure and information processing apparatus therefor |
EP0689141A3 (en) * | 1994-06-20 | 1997-10-15 | At & T Corp | Disruption-based hardware support for system performance profiling |
US5761103A (en) * | 1995-03-08 | 1998-06-02 | Texas Instruments Incorporated | Left and right justification of single precision mantissa in a double precision rounding unit |
US6148321A (en) * | 1995-05-05 | 2000-11-14 | Intel Corporation | Processor event recognition |
US6408386B1 (en) * | 1995-06-07 | 2002-06-18 | Intel Corporation | Method and apparatus for providing event handling functionality in a computer system |
JP3290567B2 (ja) * | 1995-08-24 | 2002-06-10 | 富士通株式会社 | プロファイル計装方法 |
US5754839A (en) * | 1995-08-28 | 1998-05-19 | Motorola, Inc. | Apparatus and method for implementing watchpoints and breakpoints in a data processing system |
US5691920A (en) * | 1995-10-02 | 1997-11-25 | International Business Machines Corporation | Method and system for performance monitoring of dispatch unit efficiency in a processing system |
JP3717212B2 (ja) * | 1995-10-27 | 2005-11-16 | 株式会社日立製作所 | 情報処理装置及び情報処理ユニット |
US5774724A (en) * | 1995-11-20 | 1998-06-30 | International Business Machines Coporation | System and method for acquiring high granularity performance data in a computer system |
US5805879A (en) * | 1996-02-23 | 1998-09-08 | Cyrix Corporation | In a pipelined processor, setting a segment access indicator during execution stage using exception handling |
US5758168A (en) * | 1996-04-18 | 1998-05-26 | International Business Machines Corporation | Interrupt vectoring for optionally architected facilities in computer systems |
US5822763A (en) * | 1996-04-19 | 1998-10-13 | Ibm Corporation | Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors |
US5937437A (en) * | 1996-10-28 | 1999-08-10 | International Business Machines Corporation | Method and apparatus for monitoring address translation performance |
US5926640A (en) * | 1996-11-01 | 1999-07-20 | Digital Equipment Corporation | Skipping clock interrupts during system inactivity to reduce power consumption |
US5870576A (en) * | 1996-12-16 | 1999-02-09 | Hewlett-Packard Company | Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures |
US5822790A (en) * | 1997-02-07 | 1998-10-13 | Sun Microsystems, Inc. | Voting data prefetch engine |
US5857097A (en) * | 1997-03-10 | 1999-01-05 | Digital Equipment Corporation | Method for identifying reasons for dynamic stall cycles during the execution of a program |
US5928334A (en) * | 1997-03-28 | 1999-07-27 | International Business Machines Corporation | Hardware verification tool for multiprocessors |
US6149318A (en) * | 1997-04-15 | 2000-11-21 | Samuel C. Kendall | Link-time and run-time error detection, and program instrumentation |
US6026235A (en) | 1997-05-20 | 2000-02-15 | Inprise Corporation | System and methods for monitoring functions in natively compiled software programs |
US5966537A (en) * | 1997-05-28 | 1999-10-12 | Sun Microsystems, Inc. | Method and apparatus for dynamically optimizing an executable computer program using input data |
US6094709A (en) * | 1997-07-01 | 2000-07-25 | International Business Machines Corporation | Cache coherence for lazy entry consistency in lockup-free caches |
US5987250A (en) * | 1997-08-21 | 1999-11-16 | Hewlett-Packard Company | Transparent instrumentation for computer program behavior analysis |
US5940618A (en) * | 1997-09-22 | 1999-08-17 | International Business Machines Corporation | Code instrumentation system with non intrusive means and cache memory optimization for dynamic monitoring of code segments |
US6101524A (en) * | 1997-10-23 | 2000-08-08 | International Business Machines Corporation | Deterministic replay of multithreaded applications |
US5966538A (en) | 1997-10-31 | 1999-10-12 | Hewlett-Packard Company | Method and apparatus for automatically determining which compiler options should be used when compiling a computer program |
US5987495A (en) * | 1997-11-07 | 1999-11-16 | International Business Machines Corporation | Method and apparatus for fully restoring a program context following an interrupt |
US5938778A (en) * | 1997-11-10 | 1999-08-17 | International Business Machines Corporation | System and method for tracing instructions in an information handling system without changing the system source code |
US6442585B1 (en) * | 1997-11-26 | 2002-08-27 | Compaq Computer Corporation | Method for scheduling contexts based on statistics of memory system interactions in a computer system |
US6163840A (en) * | 1997-11-26 | 2000-12-19 | Compaq Computer Corporation | Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline |
US6070009A (en) * | 1997-11-26 | 2000-05-30 | Digital Equipment Corporation | Method for estimating execution rates of program execution paths |
US6256775B1 (en) * | 1997-12-11 | 2001-07-03 | International Business Machines Corporation | Facilities for detailed software performance analysis in a multithreaded processor |
JPH11194957A (ja) * | 1998-01-07 | 1999-07-21 | Matsushita Electric Ind Co Ltd | デバッグ支援装置、並列実行情報生成装置、及びこれらに適用されるプログラムを記録した記録媒体 |
US6374364B1 (en) * | 1998-01-20 | 2002-04-16 | Honeywell International, Inc. | Fault tolerant computing system using instruction counting |
GB9805485D0 (en) * | 1998-03-13 | 1998-05-13 | Sgs Thomson Microelectronics | Microcomputer |
US6185671B1 (en) * | 1998-03-31 | 2001-02-06 | Intel Corporation | Checking data type of operands specified by an instruction using attributes in a tagged array architecture |
US6134676A (en) * | 1998-04-30 | 2000-10-17 | International Business Machines Corporation | Programmable hardware event monitoring method |
US6189141B1 (en) * | 1998-05-04 | 2001-02-13 | Hewlett-Packard Company | Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control |
US6247113B1 (en) * | 1998-05-27 | 2001-06-12 | Arm Limited | Coprocessor opcode division by data type |
US6317820B1 (en) | 1998-06-05 | 2001-11-13 | Texas Instruments Incorporated | Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism |
US6243804B1 (en) * | 1998-07-22 | 2001-06-05 | Scenix Semiconductor, Inc. | Single cycle transition pipeline processing using shadow registers |
US6275893B1 (en) * | 1998-09-14 | 2001-08-14 | Compaq Computer Corporation | Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system |
US6189142B1 (en) | 1998-09-16 | 2001-02-13 | International Business Machines Corporation | Visual program runtime performance analysis |
US6223338B1 (en) * | 1998-09-30 | 2001-04-24 | International Business Machines Corporation | Method and system for software instruction level tracing in a data processing system |
US6324689B1 (en) * | 1998-09-30 | 2001-11-27 | Compaq Computer Corporation | Mechanism for re-writing an executable having mixed code and data |
JP3123047B2 (ja) * | 1998-10-02 | 2001-01-09 | 日本電気株式会社 | マイクロプロセッサ |
US6192513B1 (en) * | 1998-11-02 | 2001-02-20 | Hewlett-Packard Company | Mechanism for finding spare registers in binary code |
US6185652B1 (en) * | 1998-11-03 | 2001-02-06 | International Business Machin Es Corporation | Interrupt mechanism on NorthBay |
US6351844B1 (en) * | 1998-11-05 | 2002-02-26 | Hewlett-Packard Company | Method for selecting active code traces for translation in a caching dynamic translator |
US6826749B2 (en) * | 1998-12-08 | 2004-11-30 | Nazomi Communications, Inc. | Java hardware accelerator using thread manager |
US6636950B1 (en) * | 1998-12-17 | 2003-10-21 | Massachusetts Institute Of Technology | Computer architecture for shared memory access |
US6330662B1 (en) * | 1999-02-23 | 2001-12-11 | Sun Microsystems, Inc. | Apparatus including a fetch unit to include branch history information to increase performance of multi-cylce pipelined branch prediction structures |
US6430741B1 (en) * | 1999-02-26 | 2002-08-06 | Hewlett-Packard Company | System and method for data coverage analysis of a computer program |
US6647301B1 (en) * | 1999-04-22 | 2003-11-11 | Dow Global Technologies Inc. | Process control system with integrated safety control system |
US7086035B1 (en) | 1999-05-13 | 2006-08-01 | International Business Machines Corporation | Method and system for counting non-speculative events in a speculative processor |
US6446029B1 (en) * | 1999-06-30 | 2002-09-03 | International Business Machines Corporation | Method and system for providing temporal threshold support during performance monitoring of a pipelined processor |
US6594820B1 (en) | 1999-09-28 | 2003-07-15 | Sun Microsystems, Inc. | Method and apparatus for testing a process in a computer system |
US6557096B1 (en) * | 1999-10-25 | 2003-04-29 | Intel Corporation | Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types |
US6574727B1 (en) * | 1999-11-04 | 2003-06-03 | International Business Machines Corporation | Method and apparatus for instruction sampling for performance monitoring and debug |
US6973417B1 (en) | 1999-11-05 | 2005-12-06 | Metrowerks Corporation | Method and system for simulating execution of a target program in a simulated target system |
JP3600095B2 (ja) * | 1999-12-07 | 2004-12-08 | 松下電器産業株式会社 | 割り込み管理装置及び割り込み管理方法 |
US6480966B1 (en) * | 1999-12-07 | 2002-11-12 | International Business Machines Corporation | Performance monitor synchronization in a multiprocessor system |
US6848029B2 (en) * | 2000-01-03 | 2005-01-25 | Dirk Coldewey | Method and apparatus for prefetching recursive data structures |
US6721875B1 (en) | 2000-02-22 | 2004-04-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for implementing a single-syllable IP-relative branch instruction and a long IP-relative branch instruction in a processor which fetches instructions in bundle form |
US6735666B1 (en) * | 2000-02-22 | 2004-05-11 | Wind River Systems, Inc. | Method of providing direct user task access to operating system data structures |
US6865663B2 (en) * | 2000-02-24 | 2005-03-08 | Pts Corporation | Control processor dynamically loading shadow instruction register associated with memory entry of coprocessor in flexible coupling mode |
EP1150213B1 (en) * | 2000-04-28 | 2012-01-25 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Data processing system and method |
US6557083B1 (en) * | 2000-06-30 | 2003-04-29 | Intel Corporation | Memory system for multiple data types |
US6973542B1 (en) * | 2000-07-18 | 2005-12-06 | International Business Machines Corporation | Detecting when to prefetch inodes and then prefetching inodes in parallel |
US6757771B2 (en) * | 2000-08-09 | 2004-06-29 | Advanced Micro Devices, Inc. | Stack switching mechanism in a computer system |
US6782454B1 (en) * | 2000-09-29 | 2004-08-24 | Sun Microsystems, Inc. | System and method for pre-fetching for pointer linked data structures |
US20020073406A1 (en) | 2000-12-12 | 2002-06-13 | Darryl Gove | Using performance counter profiling to drive compiler optimization |
US6480938B2 (en) * | 2000-12-15 | 2002-11-12 | Hewlett-Packard Company | Efficient I-cache structure to support instructions crossing line boundaries |
US6857083B2 (en) * | 2000-12-18 | 2005-02-15 | International Business Machines Corporation | Method and system for triggering a debugging unit |
US7448025B2 (en) * | 2000-12-29 | 2008-11-04 | Intel Corporation | Qualification of event detection by thread ID and thread privilege level |
US7093236B2 (en) * | 2001-02-01 | 2006-08-15 | Arm Limited | Tracing out-of-order data |
US20030066055A1 (en) | 2001-04-26 | 2003-04-03 | Spivey John Michael | Profiling computer programs |
JP2004520658A (ja) * | 2001-05-22 | 2004-07-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | メモリへのアクセス速度を向上させる方法とシステム |
US20020199179A1 (en) * | 2001-06-21 | 2002-12-26 | Lavery Daniel M. | Method and apparatus for compiler-generated triggering of auxiliary codes |
US6687794B2 (en) * | 2001-10-18 | 2004-02-03 | International Business Machines Corporation | Prefetching mechanism for data caches |
US20030131343A1 (en) | 2001-10-19 | 2003-07-10 | French Ronan J. | Framework for system monitoring |
US6775728B2 (en) * | 2001-11-15 | 2004-08-10 | Intel Corporation | Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework |
US20030126590A1 (en) * | 2001-12-28 | 2003-07-03 | Michael Burrows | System and method for dynamic data-type checking |
US20030135720A1 (en) * | 2002-01-14 | 2003-07-17 | International Business Machines Corporation | Method and system using hardware assistance for instruction tracing with secondary set of interruption resources |
US7035996B2 (en) * | 2002-01-17 | 2006-04-25 | Raytheon Company | Generating data type token value error in stream computer |
US7168067B2 (en) * | 2002-02-08 | 2007-01-23 | Agere Systems Inc. | Multiprocessor system with cache-based software breakpoints |
US9003376B2 (en) | 2002-08-09 | 2015-04-07 | Texas Instruments Incorporated | Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems |
US6944722B2 (en) * | 2003-04-14 | 2005-09-13 | Sun Microsystems, Inc. | Method and system for postmortem identification of falsely shared memory objects |
US7194732B2 (en) | 2003-06-26 | 2007-03-20 | Hewlett-Packard Development Company, L.P. | System and method for facilitating profiling an application |
US20050091456A1 (en) * | 2003-10-23 | 2005-04-28 | Huck Jerome C. | Determining an arrangement of data in a memory for cache efficiency |
US7162594B2 (en) * | 2003-11-19 | 2007-01-09 | Buffalo Inc. | Memory module indicator device |
-
2004
- 2004-01-14 US US10/757,192 patent/US7197586B2/en not_active Expired - Lifetime
-
2005
- 2005-01-03 TW TW094100038A patent/TWI307463B/zh not_active IP Right Cessation
- 2005-01-14 CN CN2005100046326A patent/CN100407147C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN1648865A (zh) | 2005-08-03 |
TW200534089A (en) | 2005-10-16 |
US20050154812A1 (en) | 2005-07-14 |
US7197586B2 (en) | 2007-03-27 |
CN100407147C (zh) | 2008-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI307463B (en) | Method, apparatus, and computer readable medium for recording interrupt events using pre and post handlers | |
CN100383754C (zh) | 发生中断时按其类型限定性能监视事件收集的方法与装置 | |
TWI353526B (en) | Method, system and computer program product for pr | |
CN100382061C (zh) | 按照类型对中断计数的方法和装置 | |
TWI338218B (en) | Method and apparatus for prefetching data from a data structure | |
Peir et al. | Bloom filtering cache misses for accurate data speculation and prefetching | |
JP5148680B2 (ja) | 複数のデータ・エレメントの収集及び分散 | |
EP1296229B1 (en) | Scoreboarding mechanism in a pipeline that includes replays and redirects | |
CN104267928B (zh) | 微处理器及用于微处理器的动态重设方法 | |
US9405548B2 (en) | Prioritizing instructions based on the number of delay cycles | |
TW200422948A (en) | Data speculation based on addressing patterns identifying dual-purpose register | |
TW201232393A (en) | Tracing of a data processing apparatus | |
TW200912739A (en) | Method and apparatus for length decoding variable length instructions | |
Sheikh et al. | Load value prediction via path-based address prediction: Avoiding mispredictions due to conflicting stores | |
TW200421178A (en) | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states | |
CN104199636A (zh) | 微处理器和用于一微处理器的检测方法 | |
US7047398B2 (en) | Analyzing instruction completion delays in a processor | |
US8347066B2 (en) | Replay instruction morphing | |
TW200527198A (en) | Method and apparatus to autonomically profile applications | |
US7269714B2 (en) | Inhibiting of a co-issuing instruction in a processor having different pipeline lengths | |
Zhou et al. | Fast branch misprediction recovery in out-of-order superscalar processors | |
US7844859B2 (en) | Method and apparatus for instruction trace registers | |
JP3715057B2 (ja) | パニック・トラップ・システム | |
Bekerman et al. | Early Load Address Resolution Through Register Tracking | |
Mao et al. | Distributed replay protocol for distributed uniprocessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |