專利名稱:用于調整跟蹤數據粒度的設備、系統及方法
技術領域:
本發明涉及跟蹤數據粒度,更具體地說,涉及自動和動態地調整跟蹤數據的粒度。
背景技術:
數據處理系統,例如主計算機、服務器、數據存儲系統等等,典型地記錄跟蹤數據。跟蹤數據可以包括諸如錯誤代碼的錯誤數據、用于跟蹤諸如寄存器值、軟件指令值、存儲器地址等的系統狀態的診斷數據以及諸如組件間通信、軟件裝載等的系統事件的記錄。
數據處理系統通常包括一個或多個組件。每個組件可在本地存儲器中記錄專用于組件的跟蹤數據。例如,存儲器設備可以在該存儲器設備的本地存儲器中記錄專用于該存儲器設備的跟蹤數據。在可選的實施例中,組件在諸如控制單元的存儲器的中央存儲器中記錄專用于該組件的跟蹤數據。
跟蹤數據通常以固定大小存儲于緩存器中。例如,諸如存儲器設備的組件可為跟蹤數據緩存器分配一百兆字節(100MB)。組件將最近的跟蹤數據記錄到緩存器。在一個實施例中,組件可以刪除緩存器中最早的跟蹤數據,以防止跟蹤數據溢出緩存器。于是,組件保存最近的跟蹤數據。在某些實施例中,組件周期性地從緩存器中下載跟蹤數據。例如,組件可以將跟蹤數據保存到磁帶,或者將跟蹤數據發送到服務中心。
在軟件的開發或新的硬件和軟件的集成期間,管理員可以控制數據處理系統和系統的組件記錄大量的提供系統操作的高粒度視圖的跟蹤數據。管理員、集成者或開發者可以使用高粒度跟蹤數據以發現和糾正系統問題或者驗證系統是否按照設計執行。高粒度跟蹤數據可以快速填充跟蹤數據緩存器,但是也可以提供識別和糾正問題所需要的詳細信息。
不幸的是,如果在正常操作期間,諸如嚴重的錯誤的重要事件發生并被作為高粒度跟蹤數據記錄到緩存器中,則隨后的高粒度跟蹤數據可以在管理員訪問緩存器中的跟蹤數據之前覆蓋該事件。因此,在正常操作期間,管理員可以控制數據處理系統記錄具有較少細節的提供系統操作的低粒度視圖的跟蹤數據。盡管低粒度跟蹤數據對于識別和糾正問題的作用較小,但是跟蹤數據的低粒度允許跟蹤數據保留在跟蹤緩存器中較長的時間間隔。另外,記錄低粒度跟蹤數據減少記錄跟蹤數據的開銷和必須下載到諸如磁帶的數據量。
不幸的是,當數據處理系統在記錄低粒度跟蹤數據時,重要事件可在正常操作期間發生。而管理員或服務工程師可能需要高粒度跟蹤數據以識別和糾正問題。高粒度跟蹤數據在捕獲和識別偶然或瞬時事件方面特別有用,如果記錄高粒度跟蹤數據用于特定情況,則高粒度跟蹤數據可以非常有用。
根據上述討論,明顯地,存在對自動和動態地調整跟蹤數據粒度的設備、系統和方法的需要。有利的是,這樣的設備、系統和方法允許系統在特定條件下記錄高粒度跟蹤數據,而在不需要高粒度跟蹤數據時記錄低粒度跟蹤數據。
發明內容
已開發本發明以響應當前的技術狀況,具體地,響應現有技術中還沒有被目前可用的記錄跟蹤數據的方法完全解決的問題和需要。因此,已開發本發明以提供用于調整跟蹤數據粒度的設備、系統和方法,其克服了現有技術中的許多或全部的上述缺陷。
調整跟蹤數據粒度的設備具有包含多個模塊的邏輯單元,這些模塊被配置為在功能上執行登記條件計數器、設置計數閾值、對條件集合實例進行計數以及調整粒度的必要步驟。在所描述的實施例中,這些模塊包括條件計數器、登記模塊、閾值模塊、增量模塊以及調整模塊。
系統計數器對諸如錯誤、組件之間的事務處理等的系統事件進行計數。例如,第一系統計數器可以對訪問存儲器設備的控制單元的每個故障進行計數。條件集合被配置為至少一個系統計數器的至少一個實例。例如,條件集合可以被指定為組件訪問錯誤計數的十(10)個實例以及寫錯誤計數的一(1)個實例。條件計數器對組件的條件集合的每次發生進行計數。
登記模塊登記條件計數器。在一個實施例中,登記模塊登記組件的標識和條件計數器的條件集合。閾值模塊設置條件計數器的計數閾值。計數閾值是在設備調整跟蹤數據粒度之前可發生的條件集合的實例的最大數量。在一個實施例中,配置文件指定計數閾值。例如,配置文件可以指導閾值模塊將計數閾值設置為五(5)個實例。
增量模塊對條件集合的每個實例進行計數。因此,在上面的例子中,如果組件訪問錯誤系統計數器計數了組件訪問錯誤的十(10)個實例和寫錯誤的一(1)個實例,則增量模塊對條件計數器進行增量。
如果條件計數超過計數閾值,則調整模塊將對組件記錄的跟蹤數據的粒度調整至修正粒度。在一個實施例中,調整模塊將跟蹤數據粒度從低粒度增加至指定的高粒度。在可選的實施例中,調整模塊將跟蹤數據粒度減小至指定的低粒度。
在上述例子中,如果增量模塊對條件計數器進行六(6)次增量以響應條件集合的六(6)個實例的發生,則調整模塊可以將跟蹤數據粒度從低粒度調整至高粒度。所述設備自動和動態地調整跟蹤數據粒度以提供諸如用于診斷數據處理系統錯誤和異常的附加信息。
本發明還提出用于調整跟蹤數據粒度的系統。該系統可以體現為數據處理系統。具體地,在一個實施例中,該系統包括數據存儲系統。該系統包括包含錯誤模塊的控制單元以及包含調整模塊和跟蹤數據模塊的第一組件。另外,錯誤模塊還可包括條件計數器、登記模塊、閾值模塊以及增量模塊。錯誤模塊還可以包括通信模塊、管理模塊、輸入模塊、初始化模塊以及定時器模塊。
控制單元與第一組件進行通信。另外,控制單元和第一組件各自和協同地執行數據處理功能。在一個實施例中,控制單元是存儲器控制器。第一組件可以是數據緩存器、存儲器設備、主機接口等等。在一個實施例中,控制單元與多個組件進行通信。
錯誤模塊維持多個被配置為對系統事件進行計數的系統計數器。系統計數器對涉及控制單元、第一組件以及第一組件和控制單元之間的事務處理的系統事件進行計數。在一個實施例中,系統計數器對涉及多個組件中的一個或多個組件的事件進行計數。
跟蹤數據模塊記錄第一組件的跟蹤數據。在一個實施例中,初始化模塊設置對第一組件記錄的跟蹤數據的基礎粒度。登記模塊登記條件計數器。條件計數器對條件集合的每次發生進行計數。閾值模塊設置條件計數器的計數閾值。增量模塊對條件集合的每個實例進行計數。如果條件計數超過計數閾值,則調整模塊將對第一組件記錄的跟蹤數據的粒度調整至修正粒度。
在一個實施例中,管理模塊控制調整模塊將跟蹤數據的粒度調整至修正粒度。在某個實施例中,輸入模塊接收管理員命令,管理模塊控制調整模塊調整跟蹤數據的粒度以響應管理員命令。如果第一組件的條件計數超過計數閾值,則管理模塊還可以控制調整模塊調整第二組件的跟蹤數據的粒度。系統調整由組件記錄的跟蹤數據粒度以響應一個或多個系統事件或管理員命令。
本發明還提出一種用于調整跟蹤數據粒度的方法。在公開的實施例中,該方法主要包括執行以上提出的與所描述的設備和系統的操作有關的功能所需要的步驟。在一個實施例中,該方法包括登記條件計數器,設置計數閾值,對條件集合實例進行計數,以及調整跟蹤數據粒度。該方法還可以包括指定時間間隔,對所調整的跟蹤數據粒度時間間隔進行計時,以及當所調整的跟蹤數據粒度時間間隔超過指定的時間間隔時,將跟蹤數據的粒度設置為基礎粒度。
在一個實施例中,初始化模塊設置對組件記錄的跟蹤數據的基礎粒度。登記模塊登記包括條件集合的條件計數器。閾值模塊設置條件計數器的計數閾值。增量模塊對條件集合的每個實例進行計數。如果條件計數超過計數閾值,則調整模塊將對組件存儲的跟蹤數據的粒度調整至修正粒度。在一個實施例中,定時器模塊對所調整的跟蹤數據粒度時間間隔進行計時。當所調整的跟蹤數據粒度時間間隔超過指定的時間間隔時,調整模塊可以將跟蹤數據的粒度設置為基礎粒度。
在整個說明書中提到的特征、優點或類似的用語并不意味著可以用本發明實現的所有特征和優點都應該或就在本發明的任何單個的實施例中。相反,關于特征和優點的用語被理解為結合實施例所描述的特定特征、優點或特性包含在本發明的至少一個實施例中。因此,在整個說明書中,有關特征、優點和類似用語的討論,可以但是不必專指同一個實施例。
另外,所描述的本發明的特征、優點和特性可以用適當的方式結合在一個或更多的實施例中。相關領域的技術人員將認識到本發明可以在不具備特定實施例的一個或多個特定特征或優點的情況下實施。在其它的實例中,附加的特征和優點可以在沒有出現在本發明的所有實施例中的某些實施例中發現。
本發明自動和動態地調整跟蹤數據粒度,允許系統在指定條件下記錄高粒度跟蹤數據,而在不需要高粒度跟蹤數據時記錄較低粒度跟蹤數據。根據下面的描述和附加的權利要求,本發明的這些特征和優點將變得十分明顯,或者可以通過下文中陳述的本發明的實踐被認識。
為了使本發明的優點易于理解,將通過參考附圖中所說明的特定實施例給出上文中簡單描述的本發明的更具體的描述。理解這些附圖僅僅描述本發明的典型實施例,因此不被認為是其范圍的限制,本發明將通過使用附圖描述和說明附加的特性和細節,其中圖1是說明根據本發明的粒度調整系統的一個實施例的示意性方框圖;
圖2是說明本發明的粒度調整設備的一個實施例的示意性方框圖;圖3是說明本發明的粒度調整存儲系統的一個實施例的示意性方框圖;圖4是說明本發明的控制單元的一個實施例的示意性方框圖;圖5是說明本發明的組件的一個實施例的示意性方框圖;圖6是說明根據本發明的粒度調整方法的一個實施例的示意性流程圖;圖7是說明本發明的粒度重新設置方法的一個實施例的示意性流程圖;圖8是說明本發明的基于組件的粒度調整設備的一個實施例的示意性方框圖;圖9是說明本發明的條件集合陣列的一個實施例的示意性方框圖;具體實施方式
本說明書所描述的許多功能單元已經被標注為模塊,以更具體地強調其實現的獨立性。例如,模塊可以被實現為硬件電路,其包括常規的特大規模集成(“VLSI”)電路或門陣列、現有的諸如邏輯芯片、晶體管的半導體或其它離散組件。模塊還可以在諸如現場可編程門陣列、可編程陣列邏輯、可編程邏輯設備等的可編程硬件設備中實現。
模塊還可以在由各種類型的處理器執行的軟件中實現。例如,可執行代碼的識別模塊可以包括一個或多個計算機指令的物理或邏輯塊,其可以例如被組織成對象、程序或函數。然而,識別模塊的可執行并不需要在物理上設置在一起,而是可以包括存儲在不同位置的不同指令,這些指令當邏輯上連接在一起時,包括模塊并實現模塊的規定用途。
實際上,可執行代碼的模塊可以是單一的指令或許多指令,甚至可以分布在幾個不同的代碼段上、在不同的程序中以及在幾個存儲器設備上。類似地,操作數據可以在模塊內被識別和說明,可以被體現為任何適當的形式,并且可以在任何合適類型的數據結構中組織。操作數據可以集中為單一的數據集合,或者可以分布在不同的位置上,包括在不同的存儲器設備上,并且可以在系統或網絡上僅僅,至少部分地,作為電子信號存在。
在整個說明中提到的“一個實施例”、“實施例”或類似的用語是指結合實施例描述的特定特征、結構或特性包括在本發明的至少一個實施例中。因此,在整個說明文中,短語“在一個實施例中”、“在實施例中”以及類似用語的出現可以但是并不必須都指同一個實施例。
另外,本發明所描述的特征、結構或特性可以以任何適當的方式結合在一個或多個實施例中。在以下的描述中,提供了大量特定的細節,例如編程、軟件模塊、用戶選擇、網絡事務處理、數據庫查詢、數據庫結構、硬件模塊、硬件電路、硬件芯片等例子,以提供對本發明的實施例的全面理解。然而,相關領域的技術人員將認識到,在不具備一個或多個特定細節或者采用其它方法、組件、材料等的情況下,也可以實施本發明。在其它的實例中,公知的結構、材料或操作不再詳細地顯示或描述,以避免使本發明的特征不明顯。
圖1是說明根據本發明的粒度調整系統100的一個實施例的示意性方框圖。系統100包括控制單元155和一個或多個組件170,其中控制單元155包括錯誤模塊105,單元170每一個都包括調整模塊160和跟蹤數據模塊165。另外,錯誤模塊105包括條件計數器110、登記模塊115、閾值模塊120、增量模塊125、通信模塊130、管理模塊135、輸入模塊140、初始化模塊145以及定時器模塊150。
控制單元155與每個組件170進行通信。另外,控制單元155和組件170單獨地和協作地執行數據處理功能。在一個實施例中,控制單元155是存儲器控制器。組件170可以是數據緩存器、存儲器設備、主機等等。雖然用一個控制單元155和兩個組件170描述系統100,但是可以使用任何數量的控制單元155和組件170。
錯誤模塊105維持多個被配置為對系統事件進行計數的系統計數器。系統事件可以涉及控制單元155操作。另外,系統計數器可以對涉及組件170之間的事務處理的事件以及控制單元155與組件170之間的事件進行計數。例如,第一系統計數器可以對寫到第一組件170a的寫錯誤的實例進行計數,其中第一組件被配置為存儲器設備。
每個跟蹤數據模塊165記錄組件170的跟蹤數據。跟蹤數據可以包括諸如錯誤代碼的錯誤數據,包括寄存器值、軟件指令值、存儲器地址等等的診斷數據以及諸如組件間的事務處理的系統事件的記錄。跟蹤數據可以用可變的粒度記錄。例如,高粒度跟蹤數據可以包括有關系統100狀態的詳細信息,其包括諸如控制單元155或組件170的每個設備的一個或多個處理器的寄存器值、軟件指令、設備之間的通信等等。另外,高粒度跟蹤數據可以包括系統100狀態的頻繁取樣值。
與此相反,低粒度跟蹤數據可以包括不詳細的信息,并且可以不頻繁地獲取。例如,低粒度跟蹤數據可以包括系統100錯誤消息。對于診斷目的,低粒度跟蹤數據不如高粒度跟蹤數據有用。然而,低粒度跟蹤數據需要較少的系統100開銷以記錄。另外,低粒度跟蹤數據可以記錄在跟蹤數據緩存器中,其占用的時間間隔明顯地比由記錄在同一緩存器中的高粒度跟蹤數據占用的時間間隔長。于是,當跟蹤數據模塊165在記錄低粒度跟蹤數據時與當跟蹤數據模塊165在記錄高粒度跟蹤數據時相比,隨后的跟蹤數據將事件信息從跟蹤數據緩存器中擠出的可能性較小。
在一個實施例中,高粒度跟蹤數據可以比不包括任何或所有低粒度跟蹤數據狀態信息的低粒度跟蹤數據包括更多的狀態信息。例如,高粒度跟蹤數據狀態信息可以使低粒度跟蹤數據狀態信息冗余,而無需重復低粒度跟蹤數據狀態信息。另外,低粒度跟蹤數據狀態信息可以從較豐富的高粒度跟蹤數據的狀態信息中推斷出。
過去,數據處理系統一直被局限于記錄低粒度跟蹤數據或高粒度跟蹤數據。低粒度跟蹤數據典型地在正常操作期間使用,而高粒度跟蹤數據用于發現和糾正問題。不幸的是,低粒度跟蹤數據通常不提供充足的信息以識別和糾正在正常操作期間出現的問題。本發明自動和動態地調整跟蹤數據粒度,允許系統100在指定條件下記錄高粒度跟蹤數據,而在不需要高粒度跟蹤數據時記錄低粒度跟蹤數據。
在一個實施例中,初始化模塊145設置對每個組件170記錄的跟蹤數據的基礎粒度。基礎粒度可以是正常操作所期望的粒度。例如,初始化模塊145可以將基礎粒度設置為第一和第二組件170a、170b的正常操作的低粒度。
登記模塊115登記指定組件170,如第一組件170a或第二組件170b,的條件計數器110。條件計數器110包括條件集合,并對條件集合的每次發生進行計數。條件集合被配置為至少一個系統計數器的至少一個實例。在一個實施例中,登記模塊115將條件計數器110設置為初始值。例如,登記模塊115可以將條件集合登記為包括讀錯誤系統計數器和寫錯誤系統計數器。另外,登記模塊115可以將條件集合登記為讀錯誤的三(3)個實例和寫錯誤的一(1)個實例。這樣,條件集合的一個實例包括讀錯誤的三(3)個實例和寫錯誤的一(1)個實例。登記模塊115還可以將條件計數器110設置為零(0)。條件計數器110對條件集合的每次發生進行計數。
閾值模塊120設置條件計數器110的計數閾值。增量模塊125對條件集合的每個實例進行計數。如果條件計數超過計數閾值,則指定組件170的調整模塊160將對指定組件170記錄的跟蹤數據的粒度調整為修正粒度。例如,如果登記模塊115登記第一組件170a的條件計數器110,則第一調整模塊160a調整由第一跟蹤數據模塊165a記錄的跟蹤數據的粒度。
在一個實施例中,管理模塊135控制調整模塊160將跟蹤數據的粒度調整至修正粒度。在某個實施例中,輸入模塊140接收管理員命令,管理模塊135控制調整模塊160調整跟蹤數據的粒度以響應管理員命令。輸入模塊140可以包括與控制單元155通信的計算機工作站。如果登記到第一組件170a的條件計數器110的條件計數超過計數閾值,則管理模塊135還可以控制第二調整模塊160b調整第二組件170b的跟蹤數據的粒度。系統100調整由組件170記錄的跟蹤數據粒度以響應一個或多個系統事件或管理員命令。
圖2是說明本發明的粒度調整設備200的一個實施例的示意性方框圖。登記模塊115登記條件計數器110。在一個實施例中,登記包括組件的標識和條件計數器的條件集合。例如,登記模塊115可以登記第一組件170a的條件計數器110,還將條件集合登記為第一系統計數器的一(1)個實例和第二系統計數器的兩(2)個實例。
在一個實施例中,登記模塊115生成數據字段的陣列,其包括組件170的標識符、每個系統計數器的標識符以及每個系統計數器的計數器增量值,該計數器增量值代表條件集合的一個實例所需要的系統計數器的實例的數量。另外,陣列可包括數據字段,其包括指向函數調用的指針,函數調用被配置為控制調整模塊160調整對組件170記錄的跟蹤數據的粒度。
陣列還可以包括一個或多個包含用函數調用傳遞到調整模塊160的參數的數據字段,其中函數調用被配置為控制由調整模塊160進行的跟蹤數據粒度的調整。例如,第一個數據字可以被配置為規定跟蹤數據的粒度。在一個實施例中,第一個數據字規定高粒度。在可選的實施例中,第一個數據字規定低粒度。
閾值模塊120設置條件計數器110的計數閾值。計數閾值是在調整模塊160調整跟蹤數據粒度之前可發生的條件集合實例的最大數量。在一個實施例中,管理員通過輸入模塊140指定計數閾值。例如,管理員可以控制閾值模塊將計數閾值設置為一(1)個實例。在可選的實施例中,閾值模塊120從配置文件中取回組件170的計數閾值。
增量模塊125對條件集合的每個實例進行計數。在一個實施例中,增量模塊125輪詢列在由登記模塊115登記的陣列中的每個系統計數器。增量模塊125還可以存儲每個系統計數器的起始值和下一個增量值。起始值可以是在增量模塊125第一次輪詢時的系統計數器的值。下一個增量值可以是起始值加上存儲在陣列中的計數器增量值。
當每個系統計數器超過系統計數器的對應下一個增量值時,增量模塊125可以對條件計數器110進行增量。于是在上面的例子中,如果增量模塊125觀察到第一系統計數器的一(1)個實例和第二系統計數器的兩(2)個實例,則增量模塊125對條件計數器110進行增量。增量模塊125可以通過指定的增量值例如一(1)對條件計數器進行增量。
在一個實施例中,通信模塊130將條件計數器110的條件計數傳送到調整模塊160。例如,如果系統計數器設置在與指定組件170通信的控制單元155的錯誤模塊105內,則通信模塊130可以周期性地將條件計數發送到指定組件170的調整模塊160。在可選的實施例中,調整模塊160向通信模塊130請求條件計數。通信模塊130可以從條件計數器110中取回條件計數,并將該條件計數發送到調整模塊160。
如果條件計數超過計數閾值,則調整模塊160將對指定組件記錄的跟蹤數據的粒度調整至修正粒度。在一個實施例中,調整模塊160將跟蹤數據粒度從低粒度增加至指定的高粒度。在可選的實施例中,調整模塊160將跟蹤數據粒度減小至指定的低粒度。在上面的例子中,如果增量模塊125對條件計數器進行兩(2)次增量以響應條件集合的兩(2)個實例的發生,則調整模塊160可以將跟蹤數據粒度從低粒度調整至高粒度。
在一個實施例中,定時器模塊150對所調整的跟蹤數據粒度時間間隔進行計時。當所調整的跟蹤數據粒度時間間隔超過指定的時間間隔時,調整模塊160可以將跟蹤數據的粒度設置為基礎粒度。例如,當調整模塊160將跟蹤數據粒度從低粒度調整至高粒度時,定時器模塊150可以開始計時。當時間超過指定的時間間隔時,例如五秒(5s),調整模塊160可以將跟蹤數據粒度設置為低粒度。
在可選的實施例中,定時器模塊150對未調整的跟蹤數據粒度時間間隔進行計時。如果條件計數在指定的時間間隔內沒有超過計數閾值,則調整模塊160可以將由指定組件存儲的跟蹤數據的粒度調整至修正粒度。例如,當跟蹤數據模塊165記錄基礎粒度跟蹤數據時,定時器模塊150可以開始計時。如果條件計數在十五秒(15s)內沒有超過計數閾值,則調整模塊160可以將跟蹤數據粒度調整至修正粒度,例如高粒度。設備200自動和動態地調整跟蹤數據粒度以提供例如用于診斷數據處理系統錯誤和異常的附加信息。
圖3是說明本發明的粒度調整存儲系統300的一個實施例的示意性方框圖。控制單元155和三個組件通信主機系統305、存儲器設備310以及緩存器模塊315。控制單元155通過主機接口模塊320與主機系統305進行通信,通過存儲器接口模塊325與存儲器設備310進行通信,通過緩存器接口模塊330與緩存器模塊315進行通信。
控制單元155包括錯誤模塊105。錯誤模塊105可以維持多個系統計數器,系統計數器被配置為對在控制單元155、主機系統305、主機接口模塊320、主機系統305與主機接口模塊320之間的通信、存儲器設備310、存儲器接口模塊325、存儲器設備310與存儲器接口模塊325之間的通信、緩存器模塊315、緩存器接口模塊330以及緩存器模塊315與緩存器接口模塊330之間的通信中發生的系統事件進行計數。
在一個實施例中,第一組件170a可以登記第二組件170b的條件計數器110,其中,如果條件計數器110的條件計數超過計數閾值,則管理模塊135被配置為控制第三組件170c的調整模塊160調整所記錄的第三組件170c的跟蹤數據粒度。例如,登記模塊115可以登記主機系統305的條件計數器110,條件計數器110包括包含一個或多個存儲器設備310系統事件計數器的條件集合。如果條件計數器110的條件計數超過計數閾值,則管理模塊135可以控制緩存器模塊315的調整模塊160將由緩存器模塊315的跟蹤數據模塊165記錄的跟蹤數據粒度調整至高粒度。系統300允許每個組件170,例如主機系統305、存儲器設備310以及緩存器模塊315,基于任何組件170的錯誤模塊105系統計數器調整任何組件170的跟蹤數據粒度。
圖4是說明本發明的控制單元400的一個實施例的示意性方框圖。控制單元400包括處理器模塊405、存儲器模塊410、橋接器模塊415、主機接口模塊320、存儲器接口模塊325以及緩存器接口模塊330。
處理器模塊405、存儲器模塊410、橋接器模塊415、主機接口模塊320、存儲器接口模塊325以及緩存器接口模塊330可以用一個或多個半導體襯底上的半導體門電路制造。每個半導體襯底可以包裝在一個或多個安裝在電路板上的半導體設備中。在處理器模塊405、存儲器模塊410、橋接器模塊415、主機接口模塊320、存儲器接口模塊325和緩存器接口模塊330之間的連接可以穿過半導體金屬層、到襯底布線的襯底或者連接半導體設備的電路板跡線或導線。
存儲模塊410存儲軟件指令和數據。處理器模塊405執行軟件指令并處理數據,如本領域的技術人員所熟知的。另外,處理器模塊405通過橋接器模塊415與主機接口模塊320、存儲器接口模塊325以及緩存器接口模塊330進行通信。在一個實施例中,處理器模塊405執行包括條件計數器110、登記模塊115、閾值模塊120、增量模塊125、通信模塊130、管理模塊135、輸入模塊140、初始化模塊145以及定時器模塊150的一個或多個元件的軟件程序。
圖5是說明本發明的組件500的一個實施例的示意性方框圖。處理器模塊405、存儲器模塊410、橋接器模塊415以及控制接口模塊505可以用一個或多個半導體襯底上的半導體門電路制造。每個半導體襯底可以包裝在一個或多個安裝在電路板上的半導體設備中。在處理器模塊405、存儲器模塊410、橋接器模塊415與控制接口模塊505之間的連接可以穿過半導體金屬層、到襯底布線的襯底或者連接半導體設備的電路板跡線或導線。
在一個實施例中,處理器模塊405執行包括調整模塊160和跟蹤數據模塊165的軟件程序,如本領域的技術人員所熟知的。存儲器模塊410還可以存儲所記錄的組件500的跟蹤數據。例如,處理器模塊405可以通過控制接口模塊505和橋接器模塊415從控制單元155的通信模塊130接收條件計數。另外,執行調整模塊160的處理器模塊405可以調整記錄到存儲器模塊410的跟蹤數據的粒度以響應條件計數。
下面的示意性流程圖通常作為邏輯流程圖描述。同樣地,所描述的順序和標注的步驟表明所提出方法的一個實施例。其它步驟和方法可以被設想為在功能、邏輯或效果方面與所說明的方法的一個或多個步驟或部分等效。另外,提供所使用的格式和符號以說明所述方法的邏輯步驟,并且不應被理解為限制所述方法的范圍。雖然在流程圖中可使用各種箭頭類型和線條類型,但不應將它們理解成限制相應方法的范圍。實際上,某些箭頭或其它連接符可以用于僅僅指示所述方法的邏輯流程。例如,箭頭可以指示在所描述的方法的所列舉步驟之間的未指定的持續時間的等待或監控時期。另外,特定方法發生的順序可以或可以不嚴格地遵守所示出的相應步驟的順序。
圖6是說明本發明的粒度調整方法600的一個實施例的示意性流程圖。在一個實施例中,初始化模塊145設置605對組件170記錄的跟蹤數據的基礎粒度。在一個實施例中,基礎粒度可以是相對低的粒度。在可選的實施例中,基礎粒度是相對高的粒度。在某個實施例中,初始化模塊145使用來自配置文件的參數設置605基礎粒度。例如,配置文件可以指定所記錄的每個單元為跟蹤數據。
登記模塊115登記610條件計數器110。在一個實施例中,登記模塊115通過生成本領域的技術人員熟知的鏈接數組(linked array)的陣列登記610條件計數器110,其中每個鏈接數組包括被配置為識別系統計數器和計數器增量值的數據字段,以及識別陣列為包括系統計數器數據的數據字段。另外,每個系統計數器鏈接數組可以包括被配置為存儲下一個增量值的數據字段,以及被配置為實例計數器的數據字段,其中實例計數器被配置為存儲用由計數器增量值指定的實例的數量進行增量的系統計數器的實例的數量。
系統計數器和集合增量值的一個或多個鏈接數組可以包括條件集合。至少一個鏈接數組還可以包括被配置為條件計數器110的數據字段。登記模塊115可以將條件計數器的數字值設置為指定值,例如零(0)。另外,至少一個鏈接數組可以包括與條件計數器110相關聯的調整模塊160的函數調用。在某個實施例中,至少一個鏈接數組被配置為存儲集合增量值。
在一個實施例中,陣列的一個或多個鏈接數組是被配置為指定跟蹤數據粒度參數的粒度陣列。例如,第一個粒度參數可以指定一個或多個系統事件被記錄為跟蹤數據。另外,第二個粒度參數可以指定一個或多個值被記錄為跟蹤數據,例如處理器模塊405寄存器值等。
閾值模塊120設置615條件計數器110的計數閾值。在某個實施例中,閾值模塊120通過將計數閾值的值寫入鏈接數組數據字段設置615計數閾值,其中鏈接數組還包括將鏈接數組識別為包含計數閾值的數據字段。在一個實施例中,管理員可以通過輸入模塊140調整計數閾值。例如,管理員可以通過輸入模塊140控制閾值模塊120降低條件計數器110的計數閾值以潛在地增加跟蹤數據粒度的調整。
增量模塊125對條件集合的每個實例進行計數620。在一個實施例中,增量模塊125將鏈接數組的下一個增量值與指定的系統計數器的計數進行比較。如果系統計數器的計數超過下一個增量值,則增量模塊125可對鏈接數組的實例計數器進行增量。在一個實施例中,當每個鏈接數組中的每個實例計數器超過相應的集合增量值時,增量模塊125對條件計數器110進行增量。
在一個實施例中,通信模塊130將條件計數器110的條件計數傳送625到調整模塊160。在一個實施例中,通信模塊130執行調整模塊160函數調用,并且將條件計數傳遞到調整模塊160。另外,通信模塊130可以將計數閾值傳遞到調整模塊160。
調整模塊160確定630條件計數是否超過計數閾值。如果條件計數超過計數閾值,則調整模塊160將跟蹤數據的粒度調整635至修正粒度。在一個實施例中,調整模塊160從鏈接數組的陣列中取回修正粒度數據參數。如果條件計數未超過計數閾值,則增量模塊125繼續對條件集合的每個實例進行計數620。
圖7是說明本發明的粒度重新設置方法700的一個實施例的示意性流程圖。在一個實施例中,初始化模塊145指定705時間間隔。在某個實施例中,初始化模塊145根據配置文件指定時間間隔。在可選的實施例中,管理員通過輸入模塊140控制初始化模塊145指定705時間間隔。
定時器模塊150對粒度間隔進行計時710。在一個實施例中,粒度間隔開始于調整模塊160調整635跟蹤數據粒度時。在可選的實施例中,粒度間隔開始于記錄跟蹤數據的基礎粒度時。例如,當初始化模塊145設置605基礎跟蹤數據粒度時,定時器模塊150可以開始對粒度間隔進行計時。
調整模塊160可以從定時器模塊150讀取715粒度間隔時間,并且確定720粒度間隔時間是否超過指定的時間間隔。如果粒度間隔時間超過時間間隔,則調整模塊160可以將跟蹤數據的粒度調整725至基礎粒度。在一個實施例中,調整模塊160將條件計數器110重新設置730為最初的初始值。如果粒度間隔時間未超過時間間隔,則調整模塊160繼續讀取715粒度間隔時間。方法700可以在時間間隔之后將跟蹤數據粒度重新設置為基礎粒度。因此,在一個實施例中,方法700可以緊隨由條件集合和計數閾值定義的一個或多個系統事件只記錄高粒度跟蹤數據。
圖8是說明本發明的基于組件的粒度調整設備800的一個實施例的示意性框圖。設備800包括條件計數器110、閾值模塊120、取回模塊805、增量模塊125以及調整模塊160。
登記模塊115登記包括設備800的組件170的條件計數器110。條件計數器110包括指定一個或多個系統計數器的條件集合,并且對條件集合的每次發生進行計數。系統計數器可以位于與設備800通信的錯誤模塊105內。閾值模塊120設置條件計數器110的計數閾值。取回模塊805從錯誤模塊105中取回系統計數器的計數。增量模塊125對條件集合的每個實例進行計數。如果條件計數超過計數閾值,則調整模塊160將對組件170所記錄的跟蹤數據的粒度調整至修正粒度。
圖9是說明本發明的條件計數器陣列900的一個實施例的示意性方框圖。圖1和2的條件計數器110可以包括條件計數器陣列900。在一個實施例中,登記模塊115生成陣列900。陣列900包括一個或多個鏈接數組950。每個鏈接數組950包括一個或多個數據字段905、910、915、920、925、930、935、940、945。在一個實施例中,每個鏈接數組950包括識別鏈接數組950的數據字段905、910、915、920、925、930、935、940、945的功能的標識符905。
在所描述的實施例中,第一和第二鏈接數組950a、950b包括條件集合。第一和第二鏈接數組950a、950b每個都包括系統計數器標識符910、計數器增量值915、下一個增量值920以及實例計數器925。
陣列900還可以包括包含條件計數器945、集合增量值930以及函數調用935的鏈接數組950。在一個實施例中,鏈接數組950,例如第六鏈接數組950f,包括一個或多個粒度參數940。粒度參數940可以指定修正粒度。
本發明自動和動態地調整跟蹤數據粒度,允許系統100或系統100的組件170在指定的條件下記錄高粒度跟蹤數據,而在其它條件下記錄低粒度跟蹤數據。本發明可以在不偏離其精神或本質特性的情況下體現為其它的特定形式。在任何一方面,所描述的實施例都應被認為僅僅是說明性的而非限制性的。因此,本發明的范圍由附加的權利要求而不是前面的說明書表明。在與權利要求等效的意義和范圍內的所有變化都被包含在其范圍內。
權利要求
1.一種調整跟蹤數據粒度的設備,所述設備包括第一組件的條件計數器,所述條件計數器包括條件集合,并且被配置為對所述條件集合的每次發生進行計數,其中所述條件集合指定至少一個對系統事件的實例進行計數的系統計數器的至少一個實例;登記模塊,被配置為登記所述條件計數器和所述條件集合;閾值模塊,被配置為設置所述條件計數器的計數閾值;增量模塊,被配置為對所述條件集合的每個實例進行計數;以及調整模塊,被配置為如果條件計數超過所述計數閾值,則將由所述第一組件記錄的跟蹤數據的粒度調整至修正粒度。
2.如權利要求1所述的設備,還包括初始化模塊,被配置為將跟蹤數據的粒度初始化為基礎粒度。
3.如權利要求2所述的設備,還包括定時器模塊,被配置為對所調整的跟蹤數據粒度時間間隔進行計時;其中所述調整模塊還被配置為在所調整的跟蹤數據粒度時間間隔超過指定的時間間隔時,將跟蹤數據的粒度設置為基礎粒度。
4.如權利要求3所述的設備,其中,所述定時器模塊還被配置為對未調整的跟蹤數據粒度時間間隔進行計時;所述調整模塊還被配置為如果條件計數在所述指定的時間間隔內未超過所述計數閾值,則將由所述第一組件記錄的跟蹤數據的粒度調整至所述修正粒度。
5.如權利要求1所述的設備,還包括通信模塊,被配置為將條件計數傳送到所述第一組件。
6.如權利要求1所述的設備,還包括管理模塊,被配置為控制所述調整模塊將跟蹤數據的粒度調整至所述修正粒度。
7.如權利要求6所述的設備,還包括輸入模塊,被配置為接收管理員命令;所述管理模塊還被配置為控制所述調整模塊調整跟蹤數據的粒度,以響應所述管理員命令。
8.如權利要求6所述的設備,其中,所述管理模塊還被配置為如果所述第一組件的條件計數超過所述計數閾值,則控制所述調整模塊調整第二組件的跟蹤數據的粒度。
9.一種調整跟蹤數據粒度的設備,所述設備包括條件計數器,其包括條件集合,并被配置為對所述條件集合的每次發生進行計數,其中所述條件集合指定至少一個對系統事件的實例進行計數的系統計數器的至少一個實例;閾值模塊,被配置為設置所述條件計數器的計數閾值;取回模塊,被配置為從錯誤模塊取回至少一個系統計數器的計數;增量模塊,被配置為根據所述至少一個系統計數器的計數計算所述條件集合的每個實例;以及調整模塊,被配置為如果條件計數超過所述計數閾值,則將跟蹤數據的粒度調整至修正粒度。
10.一種調整跟蹤數據粒度的系統,所述系統包括控制單元,包括錯誤模塊,被配置為維持多個對多個系統事件的實例進行計數的系統計數器,并且包括條件計數器,包括條件集合,并且被配置為對所述條件集合的每次發生進行計數,其中所述條件集合指定至少一個系統計數器的至少一個實例;登記模塊,被配置為登記所述條件計數器和所述條件集合;閾值模塊,被配置為設置所述條件計數器的計數閾值;增量模塊,被配置為對所述條件集合的每個實例進行計數;通信模塊,被配置為傳送條件計數;與所述控制單元進行通信的第一組件,被配置為接收條件計數,并且包括跟蹤數據模塊,被配置為記錄跟蹤數據;以及調整模塊,被配置為如果條件計數超過所述計數閾值,則將由所述第一組件記錄的跟蹤數據的粒度調整至修正粒度。
11.如權利要求10所述的系統,其中,所述第一組件被配置為主機接口模塊,并且還包括通過所述主機接口模塊與所述控制單元通信的主機系統。
12.如權利要求10所述的系統,其中,所述第一組件被配置為存儲器接口模塊,并且還包括通過所述存儲器接口模塊與所述控制單元通信的存儲器設備。
13.如權利要求10所述的系統,其中,所述第一組件被配置為緩存器接口模塊,并且還包括通過所述緩存器接口模塊與所述控制單元通信的緩存器模塊。
14.如權利要求10所述的系統,還包括初始化模塊,被配置為將跟蹤數據的粒度初始化為基礎粒度。
15.如權利要求14所述的系統,還包括定時器模塊,被配置為對所調整的跟蹤數據粒度時間間隔進行計時;所述調整模塊還被配置為當所調整的跟蹤數據粒度時間間隔超過指定的時間間隔時,將跟蹤數據的粒度設置為基礎粒度。
16.如權利要求15所述的系統,其中,所述定時器模塊還被配置為對未調整的跟蹤數據粒度時間間隔進行計時;所述調整模塊還被配置為如果條件計數在所述指定的時間間隔內未超過所述計數閾值,則將由所述第一組件記錄的跟蹤數據的粒度調整至修正粒度。
17.如權利要求10所述的系統,還包括管理模塊,被配置為控制所述調整模塊將跟蹤數據的粒度調整至所述修正粒度。
18.如權利要求17所述的系統,還包括輸入模塊,被配置為接收管理員命令;所述管理模塊還被配置為控制所述調整模塊調整跟蹤數據的粒度以響應所述管理員命令。
19.如權利要求17所述的系統,其中,所述管理模塊還被配置為如果所述第一組件的條件計數超過所述計數閾值,則控制所述調整模塊調整第二組件的跟蹤數據的粒度。
20.一種信號承載介質,有形地包含可由數字處理設備執行的機器可讀指令的程序,以執行調整跟蹤數據粒度的操作,所述操作包括登記第一組件的包括條件集合的條件計數器,所述條件計數器被配置為對所述條件集合的每次發生進行計數,其中所述條件集合指定至少一個對系統事件的實例進行計數的系統計數器的至少一個實例;設置所述條件計數器的計數閾值;對所述條件集合的每個實例進行計數;將條件計數傳送到所述第一組件;以及如果條件計數超過所述計數閾值,則將由所述第一組件記錄的跟蹤數據的粒度調整至修正粒度。
21.如權利要求20所述的信號承載介質,其中,所述指令還包括調整跟蹤數據的粒度以響應管理員命令的操作。
22.如權利要求20所述的信號承載介質,其中,所述指令還包括如果所述第一組件的條件計數超過所述計數閾值,則調整第二組件的跟蹤數據的粒度的操作。
23.如權利要求20所述的信號承載介質,其中,所述指令還包括將跟蹤數據的粒度初始化為基礎粒度的操作。
24.如權利要求23所述的信號承載介質,其中,所述指令還包括對所調整的跟蹤數據粒度時間間隔進行計時的操作。
25.如權利要求24所述的信號承載介質,其中,所述指令還包括當所調整的跟蹤數據粒度時間間隔超過指定的時間間隔時,將跟蹤數據的粒度調整至所述基礎粒度的操作。
26.如權利要求20所述的信號承載介質,其中,所述指令還包括對未調整的跟蹤數據粒度時間間隔進行計時,如果條件計數在所述指定的時間間隔內未超過所述計數閾值,則將由所述第一組件記錄的跟蹤數據的粒度調整至修正粒度。
27.一種配置計算機基礎結構的方法,包括將計算機可讀代碼集成到計算系統中,其中與所述計算系統結合的代碼能夠執行以下操作登記第一組件的包括條件集合的條件計數器,所述條件計數器被配置為對所述條件集合的每次發生進行計數,其中所述條件集合指定至少一個對系統事件的實例進行計數的系統計數器的至少一個實例;設置所述條件計數器的計數閾值;對所述條件集合的每個實例進行計數;將條件計數傳送到所述第一組件;以及如果條件計數超過所述計數閾值,則將由所述第一組件記錄的跟蹤數據的粒度調整至修正粒度。
28.如權利要求27所述的方法,其中,所述方法還包括如果所述第一組件的條件計數超過所述計數閾值,則調整第二組件的跟蹤數據的粒度。
29.如權利要求27所述的方法,所述方法還包括對所調整的跟蹤數據粒度時間間隔進行計時,當所調整的跟蹤數據粒度時間間隔超過指定的間隔時,將跟蹤數據的粒度設置為基礎粒度。
30.一種調整跟蹤數據粒度的設備,所述設備包括用于登記第一組件的包括條件集合的條件計數器的裝置,所述條件計數器被配置為對所述條件集合的每次發生進行計數,其中所述條件集合指定至少一個對系統事件的實例進行計數的系統計數器的至少一個實例;用于設置所述條件計數器的計數閾值的裝置;用于對所述條件集合的每個實例進行計數的裝置;用于將條件計數傳送到所述第一組件的裝置;以及用于如果條件計數超過所述計數閾值則將由所述第一組件記錄的跟蹤數據的粒度調整至修正粒度的裝置。
全文摘要
公開一種用于調整跟蹤數據粒度的設備、系統和方法。初始化模塊設置對組件記錄的跟蹤數據的基礎粒度。登記模塊登記包括條件集合的條件計數器。閾值模塊設置條件計數器的計數閾值。增量模塊對條件集合的每個實例進行計數。如果條件計數超過計數閾值,則調整模塊將對組件存儲的跟蹤數據的粒度調整至修正粒度。在一個實施例中,定時器模塊對所調整的跟蹤數據粒度時間間隔進行計時。當所調整的跟蹤數據粒度時間間隔超過指定的時間間隔時,調整模塊可以將跟蹤數據的粒度設置為基礎粒度。
文檔編號G06F11/00GK1776631SQ200510114980
公開日2006年5月24日 申請日期2005年11月16日 優先權日2004年11月18日
發明者G·I·迪肯森, T·C·賈維斯, P·M·理查茲 申請人:國際商業機器公司