亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

系統(tǒng)管理中斷處理程序的自我診斷方法

文檔序號(hào):6583174閱讀:216來(lái)源:國(guó)知局
專利名稱:系統(tǒng)管理中斷處理程序的自我診斷方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種系統(tǒng)管理中斷機(jī)制,且特別涉及一種系統(tǒng)管理中斷處理程序的自 我診斷方法。
背景技術(shù)
系統(tǒng)管理模式(System Management Mode, SMM)為現(xiàn)今一般個(gè)人計(jì)算機(jī)系統(tǒng)所用 的中央處理單元的一種特別功能。當(dāng)系統(tǒng)管理中斷(System Management Interrupt, SMI) 被觸發(fā)到中央處理單元(CentraProcessing Unit, CPU)時(shí),所有的中央處理單元都會(huì)接 收到這一信號(hào),而進(jìn)入系統(tǒng)管理模式?;据斎胼敵鱿到y(tǒng)(Basic Input Output System, BIOS)可以在系統(tǒng)管理模式下執(zhí)行系統(tǒng)管理中斷處理程序(SMI handler,以下簡(jiǎn)稱SMI處 理程序),以服務(wù)系統(tǒng)管理中斷。一般而言,如果計(jì)算機(jī)系統(tǒng)設(shè)置有多個(gè)中央處理單元,則僅會(huì)有一個(gè)中央處理單 元會(huì)來(lái)執(zhí)行SMI處理程序,其余的中央處理單元?jiǎng)t是處于等待狀態(tài),其等待執(zhí)行上述SMI處 理程序完成。因此,系統(tǒng)管理中斷對(duì)于系統(tǒng)的運(yùn)作(operation)與效能(performance)影 響很大。然而,計(jì)算機(jī)系統(tǒng)的運(yùn)作僅會(huì)注重SMI處理程序功能的正確性。也就是當(dāng)系統(tǒng)管 理中斷發(fā)生時(shí),SMI處理程序會(huì)依據(jù)此系統(tǒng)管理中斷來(lái)進(jìn)行相對(duì)應(yīng)的功能。據(jù)此,往往會(huì)忽 略了 SMI處理程序的執(zhí)行過(guò)程中是否合理或符合規(guī)定。例如,SMI處理程序是否逾時(shí)、中央 處理單元的使用率是否過(guò)高等情形。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種SMI處理程序的自我診斷方法,使得SMI處理程序能夠 自我診斷其處理過(guò)程是否合理或符合規(guī)定。具體而言,本發(fā)明提出一種SMI處理程序的自我診斷方法,其適于一計(jì)算機(jī)系統(tǒng)。 在此,當(dāng)系統(tǒng)管理中斷被觸發(fā)至中央處理單元時(shí),由中央處理單元執(zhí)行SMI處理程序。接 著,自先進(jìn)組態(tài)與電源接口(AdvancedConfiguration and Power hterface,ACPI)定時(shí)器 取得執(zhí)行SMI處理程序的第一時(shí)間值。并且,取得系統(tǒng)管理中斷的來(lái)源路徑。而在SMI處 理程序執(zhí)行結(jié)束之后,自ACPI定時(shí)器取得SMI處理程序執(zhí)行結(jié)束時(shí)的第二時(shí)間值。然后, 比較SMI處理程序的執(zhí)行時(shí)間與逾時(shí)時(shí)間。上述執(zhí)行時(shí)間為第二時(shí)間值與第一時(shí)間值的差 值。若執(zhí)行時(shí)間大于或等于逾時(shí)時(shí)間,則將執(zhí)行時(shí)間、來(lái)源路徑及逾時(shí)時(shí)間記錄至一內(nèi)存。在本發(fā)明一實(shí)施例中,在上述系統(tǒng)管理中斷被觸發(fā)至中央處理單元之前,可通 過(guò)基本輸入輸出系統(tǒng)(Basic Input Output System, BIOS)執(zhí)行開(kāi)機(jī)自我測(cè)試(Power On Self Test,POST),以初始化系統(tǒng)管理中斷機(jī)制。并且,在初始化系統(tǒng)管理中斷機(jī)制 時(shí),通過(guò)基本輸入輸出系統(tǒng)自實(shí)時(shí)時(shí)鐘(Real Time Clock, RTC)芯片讀取第一時(shí)間戳記 (timestamp),并記錄至上述內(nèi)存。在本發(fā)明一實(shí)施例中,當(dāng)上述中央處理單元執(zhí)行SMI處理程序時(shí),更可自實(shí)時(shí)時(shí)鐘芯片取得第二時(shí)間戳記,以依據(jù)第一時(shí)間戳記與第二時(shí)間戳記來(lái)計(jì)算中央處理單元的使 用率。上述計(jì)算中央處理單元的使用率的步驟如下所述。在SMI處理程序執(zhí)行結(jié)束之后, 將第二時(shí)間戳記與第一時(shí)間戳記之間的差值加上執(zhí)行時(shí)間,藉以取得計(jì)算機(jī)系統(tǒng)自啟動(dòng)至 今所經(jīng)過(guò)的總時(shí)間。接著,累加上述執(zhí)行時(shí)間與一累計(jì)時(shí)間區(qū)位的值,藉以取得SMI處理程 序自計(jì)算機(jī)系統(tǒng)啟動(dòng)至今所累計(jì)執(zhí)行的一累計(jì)時(shí)間。據(jù)此,便可依據(jù)累計(jì)時(shí)間與總時(shí)間來(lái) 計(jì)算中央處理單元的使用率。在本發(fā)明一實(shí)施例中,在上述SMI處理程序執(zhí)行結(jié)束之后,還可進(jìn)一步比較中央 處理單元的使用率與上限值。倘若中央處理單元的使用率大于或等于上限值,則將SMI來(lái) 源路徑、第二時(shí)間戳記、中央處理單元的使用率及上限值記錄至內(nèi)存。在本發(fā)明一實(shí)施例中,上述在SMI處理程序執(zhí)行結(jié)束之后,更可將累計(jì)時(shí)間寫入 至累計(jì)時(shí)間區(qū)位,以供下一次執(zhí)行SMI處理程序時(shí)來(lái)計(jì)算累計(jì)時(shí)間。在本發(fā)明一實(shí)施例中,若上述執(zhí)行時(shí)間大于或等于逾時(shí)時(shí)間,更可將第二時(shí)間戳 記記錄至內(nèi)存。在本發(fā)明一實(shí)施例中,上述執(zhí)行SMI處理程序之后,倘若SMI處理程序當(dāng)?shù)?(hang),則記錄一默認(rèn)值至當(dāng)機(jī)狀態(tài)區(qū)位中,并將第二時(shí)間戳記及SMI來(lái)源路徑記錄至內(nèi)存。在本發(fā)明一實(shí)施例中,上述內(nèi)存為非揮發(fā)性隨機(jī)存取內(nèi)存(Non-Volatile Random Access Memory, NVRAM)?;谏鲜?,本發(fā)明可于執(zhí)行SMI處理程序的時(shí)候,將異樣的系統(tǒng)管理中斷的相關(guān) 信息記錄下來(lái),以供使用者日后檢查NVRAM中的記錄來(lái)得知SMI處理程序是否發(fā)生異樣狀 況。例如,SMI處理程序是否曾經(jīng)逾時(shí),或是中央處理單元使用率是否曾經(jīng)超過(guò)上限值,甚 至能夠得知計(jì)算機(jī)系統(tǒng)是否曾在SMI處理程序中當(dāng)?shù)?。?jù)此,使用者便能夠進(jìn)一步去找出 并修復(fù)異常所在,確保計(jì)算機(jī)系統(tǒng)在執(zhí)行SMI處理程序的合理性與計(jì)算機(jī)系統(tǒng)的穩(wěn)定性與 效率性。為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合所附圖式 作詳細(xì)說(shuō)明如下。




圖1是依照本發(fā)明第一實(shí)施例的SMI處理程序的自我診斷方法的流程圖 圖2是依據(jù)本發(fā)明一實(shí)施例的系統(tǒng)管理中斷的來(lái)源路徑的示意圖; 圖3是依照本發(fā)明第二實(shí)施例的計(jì)算機(jī)系統(tǒng)的示意圖; 圖4是依照本發(fā)明第二實(shí)施例的SMI處理程序的自我診斷方法的流程圖< 主要附圖標(biāo)記 300 計(jì)算機(jī)系統(tǒng); 320 芯片; 323 實(shí)時(shí)時(shí)鐘芯片 331 =SMI處理程序; S105 S135 本發(fā)明第 S405 S450 本發(fā)明第310 中央處理單元; 321 =ACPI定時(shí)器; 330 =SMM RAM ; 340 NVRAM ;實(shí)施例的SMI處理程序的自我診斷方法各步驟; 實(shí)施例的SMI處理程序的自我診斷方法各步驟。
具體實(shí)施例方式—般而言,計(jì)算機(jī)系統(tǒng)的運(yùn)作僅會(huì)注重SMI處理程序功能的正確性,往往忽略了 SMI處理程序的執(zhí)行過(guò)程中是否合理或符合規(guī)定。例如,SMI處理程序是否逾時(shí)、中央處理 單元的使用率是否過(guò)高等情形。為此,本發(fā)明提出一種SMI處理程序的自我診斷方法,使得 SMI處理程序能夠自我診斷其在執(zhí)行過(guò)程中是否合理或符合規(guī)定。為了使本發(fā)明的內(nèi)容更 為明了,以下特舉實(shí)施例作為本發(fā)明確實(shí)能夠據(jù)以實(shí)施的范例。第一實(shí)施例圖1是依照本發(fā)明第一實(shí)施例的SMI處理程序的自我診斷方法的流程圖。請(qǐng)參照 圖1,步驟S105中,當(dāng)系統(tǒng)管理中斷(System Management Interrupt, SMI)被觸發(fā)至中央處 理單元(Central Processing Unit, CPU)時(shí),由中央處理單元執(zhí)行系統(tǒng)管理中斷處理程序 (SMI handler,以下簡(jiǎn)稱SMI處理程序)。在此,例如可于SMI處理程序中加入一程序代碼, 使得SMI處理程序能夠進(jìn)行自我診斷。具體而言,系統(tǒng)管理中斷為優(yōu)先權(quán)(priority)最高的中斷,其包括軟件系統(tǒng)管理 中斷、硬件系統(tǒng)管理中斷及周期性系統(tǒng)管理中斷。軟件SMI是由軟件對(duì)輸入輸出端口做寫 入而觸發(fā)的SMI。硬件系統(tǒng)管理中斷是由硬件對(duì)其所偵測(cè)到的某一個(gè)事件所觸發(fā)的SMI。周 期性系統(tǒng)管理中斷則由芯片每隔一段固定時(shí)間對(duì)中央處理單元所觸發(fā)的系統(tǒng)管理中斷。一旦系統(tǒng)管理中斷被觸發(fā)到中央處理單元,中央處理單元將會(huì)立刻進(jìn)入系統(tǒng)管理 模式(System Management Mode,SMM)。而當(dāng)中央處理單元于系統(tǒng)管理模式時(shí),會(huì)立刻將其 環(huán)境(context),也就是中央處理單元所有緩存器的值,寫入至系統(tǒng)管理模式隨機(jī)存取內(nèi)存 (Random AccessMemory, RAM)內(nèi),之后中央處理單元?jiǎng)t跳至SMI處理程序的進(jìn)入點(diǎn)(entry) 來(lái)執(zhí)行SMI處理程序。接著,在步驟SllO中,自先進(jìn)組態(tài)與電源接口(AdvancedConfiguration and Power Interface, ACPI)定時(shí)器取得執(zhí)行SMI處理程序的第一時(shí)間值,也就是開(kāi)始執(zhí)行SMI 處理程序的時(shí)間點(diǎn)。在此,由于ACPI定時(shí)器的時(shí)間分辨率(resolution)較高,能夠更精確 地計(jì)算時(shí)間,因而用此作為時(shí)間單位的基準(zhǔn),藉此來(lái)記錄每次SMI處理程序所花費(fèi)的時(shí)間。之后,在步驟S115中,取得系統(tǒng)管理中斷的來(lái)源路徑。來(lái)源路徑所指為觸發(fā)此系 統(tǒng)管理中斷所經(jīng)過(guò)的路徑,也就是從發(fā)出系統(tǒng)管理中斷的來(lái)源裝置到中央處理單元所經(jīng)過(guò) 的所有控制點(diǎn)的路徑。舉例來(lái)說(shuō),圖2是依據(jù)本發(fā)明一實(shí)施例的系統(tǒng)管理中斷的來(lái)源路徑 的示意圖。請(qǐng)參照?qǐng)D2,硬件1的系統(tǒng)管理中斷的來(lái)源路徑為控制點(diǎn)1。硬件2的系統(tǒng)管理 中斷的來(lái)源路徑為控制點(diǎn)2、控制點(diǎn)3。芯片的系統(tǒng)管理中斷的來(lái)源路徑為控制點(diǎn)4、控制點(diǎn) 3。硬件3的系統(tǒng)管理中斷的來(lái)源路徑為控制點(diǎn)5、控制點(diǎn)6、控制點(diǎn)7。硬件4的系統(tǒng)管理 中斷的來(lái)源路徑為控制點(diǎn)8、控制點(diǎn)7。在此,系統(tǒng)管理中斷自來(lái)源裝置(例如,硬件1 4 及芯片)傳送至中央處理單元所經(jīng)過(guò)的控制點(diǎn)要全部致能(enable),才能觸發(fā)到中央處理 單元。在本實(shí)施例中,來(lái)源路徑的表示法例如為{控制點(diǎn)1,控制點(diǎn)2,...}。而每個(gè) 控制點(diǎn)則以(狀態(tài)位,致能位)來(lái)表示。另外,狀態(tài)位與致能位則是以輸入輸出地址(10 address)與其位所在的位置(bit offset)來(lái)表示。例如,{((狀態(tài)位的10 address,狀態(tài) 位的offset),(致能位的10 address,致能位的offset))}。
接著,在步驟S120中,在SMI處理程序執(zhí)行結(jié)束之后,自ACPI定時(shí)器取得SMI處 理程序執(zhí)行結(jié)束時(shí)的第二時(shí)間值,也就是SMI處理程序執(zhí)行結(jié)束的時(shí)間點(diǎn)。之后,在步驟S125中,比較SMI處理程序的執(zhí)行時(shí)間與逾時(shí)時(shí)間。在此,執(zhí)行時(shí)間 即是第二時(shí)間值與第一時(shí)間值的差值。值得注意的是,逾時(shí)時(shí)間可由使用者輸入,或是由操作系統(tǒng)取得,亦或動(dòng)態(tài)得知 (例如,可讀取實(shí)時(shí)時(shí)鐘(Real Time Clock, RTC)芯片的周期性中斷所設(shè)定的周期,例如 1/18. 2秒的周期)。在此,使用者可于基本輸入輸出系統(tǒng)的設(shè)定選項(xiàng)中來(lái)設(shè)定SMI處理程 序的逾時(shí)時(shí)間,但其它情況可類推。若執(zhí)行時(shí)間大于或等于逾時(shí)時(shí)間,如步驟S130所示,記錄執(zhí)行時(shí)間、來(lái)源路徑及 逾時(shí)時(shí)間至內(nèi)存。在此,內(nèi)存例如為非揮發(fā)性隨機(jī)存取內(nèi)存(Non-Volatile Random Access Memory,NVRAM)。在其它實(shí)施例中,SMI處理程序更可透過(guò)基板管理控制器(BMC)將上述執(zhí) 行時(shí)間、來(lái)源路徑及逾時(shí)時(shí)間記錄在其系統(tǒng)事件日志(System Event Log, SEL)中,再將此 系統(tǒng)事件日志儲(chǔ)存至NVRAM中。最后,在步驟S135中,中央處理單元會(huì)執(zhí)行回復(fù)(Resume,RSM)指令,使得中央處 理單元離開(kāi)系統(tǒng)管理模式。并且,從SMM RAM中取出先前的中央處理單元的環(huán)境(context) 內(nèi)容,以將上述內(nèi)容寫入至中央處理單元的各個(gè)緩存器中。然后,再回到系統(tǒng)管理中斷發(fā)生 時(shí)被中斷的程序點(diǎn)。由于SMI處理程序每一次的執(zhí)行時(shí)間有其一定的限制,不能因?yàn)閳?zhí)行SMI處理 程序而漏掉其它的重要中斷,因此便要判斷SMI處理程序是否逾時(shí)。舉例來(lái)說(shuō),假設(shè)周期 性系統(tǒng)定時(shí)器,其每秒將產(chǎn)生18. 2次的中斷,其中部分是用來(lái)作為系統(tǒng)時(shí)間的計(jì)時(shí)單位 (tick),部分是用來(lái)作為操作系統(tǒng)處理排程(process schedule)的定時(shí)器基準(zhǔn)(timer base)。倘若其中一次的SMI處理程序執(zhí)行超過(guò)1/18. 2秒,則將會(huì)失去一次計(jì)時(shí)單位的更 新,而造成系統(tǒng)時(shí)間錯(cuò)誤。據(jù)此,通過(guò)上述步驟S105 步驟S135,可將逾時(shí)的系統(tǒng)管理中斷 的相關(guān)信息記錄下來(lái),以供使用者查詢。除了上述SMI處理程序的執(zhí)行時(shí)間是否逾時(shí)之外,中央處理單元的使用率、是否 在執(zhí)行SMI處理程序時(shí)發(fā)生當(dāng)機(jī)(hang)等情形也會(huì)影響計(jì)算機(jī)系統(tǒng)的運(yùn)作與效能。以下 再舉另一實(shí)施例來(lái)說(shuō)明。第二實(shí)施例圖3是依照本發(fā)明第二實(shí)施例的計(jì)算機(jī)系統(tǒng)的示意圖。圖4是依照本發(fā)明第二實(shí) 施例的SMI處理程序的自我診斷方法的流程圖。請(qǐng)參照?qǐng)D3,在本實(shí)施例中,計(jì)算機(jī)系統(tǒng)300包括中央處理單元310、芯片320、SMM RAM 330及NVRAM 340 其中,芯片320包括ACPI定時(shí)器321與實(shí)時(shí)時(shí)鐘芯片323。并且, SMM RAM 330儲(chǔ)存有SMI處理程序331。在此,芯片320會(huì)發(fā)送系統(tǒng)管理中斷至中央處理單 元310,使得中央處理單元310執(zhí)行SMM RAM 330中的SMI處理程序331。倘若SMI處理程 序331在執(zhí)行自我診斷過(guò)程中發(fā)生異樣,其會(huì)將發(fā)生異樣的系統(tǒng)管理中斷的相關(guān)信息儲(chǔ)存 至NVRAM 340。在其它實(shí)施例中,更可透過(guò)基板管理控制器(未繪示)將發(fā)生異樣的系統(tǒng)管 理中斷的相關(guān)信息記錄在其系統(tǒng)事件日志中,再將此系統(tǒng)事件日志儲(chǔ)存至NVRAM 340中。以下即詳細(xì)描述SMI處理程序331的自我診斷各步驟。請(qǐng)同時(shí)參照?qǐng)D3及圖4。首先,在步驟S405中,通過(guò)基本輸入輸出系統(tǒng)(BasicInput Output System,BIOQ (在此未繪示)執(zhí)行開(kāi)機(jī)自我測(cè)試(Power On Self Test, POST),以進(jìn)行系統(tǒng)管理中斷機(jī)制的初始化。值得一提的是,在POST過(guò)程中,使用者可依據(jù)需求來(lái)決定是否進(jìn)入BIOS設(shè)定選單 中來(lái)進(jìn)行設(shè)定。例如,是否要致能SMI處理程序331的自我診斷功能、設(shè)定SMI處理程序 331的逾時(shí)時(shí)間、中央處理單元310使用率的上限值...等。接著,在步驟S410中,通過(guò)BIOS自實(shí)時(shí)時(shí)鐘芯片323讀取第一時(shí)間戳記 (timestamp),并將第一時(shí)間戳記儲(chǔ)存至NVRAM 340中的起始時(shí)間區(qū)位中。并且,將NVRAM 340中的SMI處理程序331的一累計(jì)時(shí)間區(qū)位歸零。在此,起始時(shí)間區(qū)位是為了計(jì)算中央處 理單元310的使用率。之后,在步驟S415中,當(dāng)系統(tǒng)管理中斷透過(guò)芯片320被觸發(fā)至中央處理單元310 時(shí),中央處理單元310會(huì)去執(zhí)行SMM RAM 330中的SMI處理程序331。例如,可于SMI處理 程序331中加入一程序代碼,使得SMI處理程序331能夠進(jìn)行自我診斷。在此,步驟S415 與第一實(shí)施例的步驟S105相似,故不再詳述。然后,在步驟S420中,自ACPI定時(shí)器321取得第一時(shí)間值,并且自實(shí)時(shí)時(shí)鐘芯片 323取得進(jìn)入SMI處理程序331的第二時(shí)間戳記,藉以依據(jù)第一時(shí)間戳記與第二時(shí)間戳記來(lái) 計(jì)算中央處理單元310的使用率。在此,可自BIOS設(shè)定選單所儲(chǔ)存的值中,取出逾時(shí)時(shí)間 以及中央處理單元使用率的上限值。并且,自NVRAM 340的起始時(shí)間區(qū)位及累計(jì)時(shí)間區(qū)位 分別取得第一時(shí)間戳記及累計(jì)時(shí)間(初始值為0,之后會(huì)隨著SMI處理程序每次的執(zhí)行時(shí)間 來(lái)進(jìn)行累加)。接著,在步驟S425中,取得系統(tǒng)管理中斷的來(lái)源路徑。此步驟與第一實(shí)施例的步 驟S115相同,在此不再詳述。另外,取得系統(tǒng)管理中斷的來(lái)源路徑也可于步驟S415之后即 執(zhí)行,在此并不限制。而在SMI處理程序331執(zhí)行時(shí),如步驟S430所示,當(dāng)SMI處理程序331當(dāng)?shù)?hang) 時(shí),寫入1至NVRAM 340的當(dāng)機(jī)狀態(tài)區(qū)位中,并且記錄SMI來(lái)源路徑與第二時(shí)間戳記。也就 是說(shuō),當(dāng)機(jī)狀態(tài)區(qū)位的值為1時(shí),表示SMI處理程序331當(dāng)?shù)簟L热鬘VRAM 340中的多個(gè)當(dāng) 機(jī)狀態(tài)區(qū)位的值皆為1,或是NVRAM 340中并無(wú)當(dāng)機(jī)狀態(tài)區(qū)位,則當(dāng)SMI處理程序331當(dāng)?shù)?時(shí),其會(huì)于NVRAM 340中建立一個(gè)新的當(dāng)機(jī)狀態(tài)區(qū)位,并將1寫入至此當(dāng)機(jī)狀態(tài)區(qū)位,同時(shí) 將SMI來(lái)源路徑與第二時(shí)間戳記寫入。另外,倘若NVRAM 340中僅有一個(gè)當(dāng)機(jī)狀態(tài)區(qū)位且 其值為0,則當(dāng)SMI處理程序331當(dāng)?shù)魰r(shí),直接將1寫入至此當(dāng)機(jī)狀態(tài)區(qū)位,同時(shí)將SMI來(lái)源 路徑與第二時(shí)間戳記寫入。接著,當(dāng)SMI處理程序331執(zhí)行結(jié)束之后,如步驟S435所示,自ACPI定時(shí)器321 取得第二時(shí)間值。之后,執(zhí)行步驟S440與步驟S445。步驟S440與第一實(shí)施例的步驟S125及步驟S130相同,故在此不再詳述。在步驟 S440中,比較SMI處理程序331的執(zhí)行時(shí)間(第二時(shí)間值減去第一時(shí)間值)與逾時(shí)時(shí)間。 當(dāng)執(zhí)行時(shí)間大于或等于逾時(shí)時(shí)間,便將此系統(tǒng)管理中斷的來(lái)源路徑記錄下來(lái),同時(shí)也將執(zhí) 行時(shí)間、逾時(shí)時(shí)間、第二時(shí)間戳記記錄下來(lái)。而在步驟S445中,比較中央處理單元的使用率與一上限值。當(dāng)使用率大于或等于 上限值時(shí),將此系統(tǒng)管理中斷的來(lái)源路徑、第二時(shí)間戳記、中央處理單元的使用率及上限值 記錄下來(lái)。上述中央處理單元的使用率的計(jì)算是依據(jù)第一時(shí)間值、第二時(shí)間值、第一時(shí)間戳記及第二時(shí)間戳記而獲得。在此假設(shè)第一時(shí)間值為tl,第二時(shí)間值為t2,第一時(shí)間戳記為 tsl,第二時(shí)間戳記為ts2。詳細(xì)地說(shuō),在SMI處理程序331執(zhí)行結(jié)束之后,計(jì)算第二時(shí)間戳記與第一時(shí)間戳記 之間的差值(tt),并轉(zhuǎn)換為以ACPI定時(shí)器321為單位的值(ttt)。接著,將ttt加上SMI 處理程序331的執(zhí)行時(shí)間,藉以取得計(jì)算機(jī)系統(tǒng)300自啟動(dòng)至今所經(jīng)過(guò)的一總時(shí)間,也就是 ttt+t2-tl。再來(lái),累加執(zhí)行時(shí)間與累計(jì)時(shí)間區(qū)位的值A(chǔ)CT,藉以取得SMI處理程序331自計(jì) 算機(jī)系統(tǒng)300啟動(dòng)至今所累計(jì)執(zhí)行的累計(jì)時(shí)間t,即t= (t2-tl)+ACT。之后,依據(jù)累計(jì)時(shí) 間與總時(shí)間,計(jì)算中央處理單元的使用率CU,即CU = (t/(ttt+t2-tl))*100。值得一提得是,在SMI處理程序331執(zhí)行結(jié)束之后,其會(huì)寫入0至上述當(dāng)機(jī)狀態(tài)區(qū) 位中,藉此表示目前SMI處理程序331并未當(dāng)?shù)?。另外,SMI處理程序331也會(huì)將累計(jì)時(shí)間 t記錄至累計(jì)時(shí)間區(qū)位中。最后,在步驟S450中,由中央處理單元310執(zhí)行回復(fù)(RSM)指令,使得中央處理單 元310離開(kāi)系統(tǒng)管理模式。在此,步驟S450與第一實(shí)施例的步驟135相同,在此不再贅述。綜上所述,通過(guò)上述實(shí)施例的方法,可于執(zhí)行SMI處理程序的時(shí)候,將異樣的系統(tǒng) 管理中斷的相關(guān)信息記錄下來(lái)。之后,使用者便可通過(guò)檢查NVRAM中的記錄來(lái)取得SMI處 理程序逾時(shí)的系統(tǒng)管理中斷,或是取得中央處理單元使用率是否曾經(jīng)超過(guò)上限值的當(dāng)時(shí)系 統(tǒng)管理中斷,甚至能夠得知計(jì)算機(jī)系統(tǒng)是否曾在SMI處理程序中當(dāng)?shù)簟?jù)此,使用者便能夠 進(jìn)一步去找出異常所在,確保計(jì)算機(jī)系統(tǒng)在執(zhí)行SMI處理程序的合理性與計(jì)算機(jī)系統(tǒng)的穩(wěn) 定性與效率性。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡 管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然 可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替 換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精 神和范圍。
權(quán)利要求
1.一種系統(tǒng)管理中斷處理程序的自我診斷方法,適于計(jì)算機(jī)系統(tǒng),所述自我診斷方法 包括當(dāng)系統(tǒng)管理中斷被觸發(fā)至中央處理單元時(shí),由所述中央處理單元執(zhí)行所述系統(tǒng)管理中 斷處理程序;自先進(jìn)組態(tài)與電源接口定時(shí)器取得執(zhí)行所述系統(tǒng)管理中斷處理程序的第一時(shí)間值;取得所述系統(tǒng)管理中斷的來(lái)源路徑;在所述系統(tǒng)管理中斷處理程序執(zhí)行結(jié)束之后,自所述先進(jìn)組態(tài)與電源接口定時(shí)器取得 所述系統(tǒng)管理中斷處理程序執(zhí)行結(jié)束時(shí)的第二時(shí)間值;比較所述系統(tǒng)管理中斷處理程序的執(zhí)行時(shí)間與逾時(shí)時(shí)間,其中所述執(zhí)行時(shí)間為所述第 二時(shí)間值與所述第一時(shí)間值的差值;以及若所述執(zhí)行時(shí)間大于或等于所述逾時(shí)時(shí)間,則記錄所述執(zhí)行時(shí)間、所述來(lái)源路徑及所 述逾時(shí)時(shí)間至內(nèi)存。
2.根據(jù)權(quán)利要求1所述的系統(tǒng)管理中斷處理程序的自我診斷方法,其中在所述系統(tǒng)管 理中斷被觸發(fā)至所述中央處理單元的步驟之前,還包括通過(guò)基本輸入輸出系統(tǒng)執(zhí)行開(kāi)機(jī)自我測(cè)試,以初始化系統(tǒng)管理中斷機(jī)制;以及通過(guò)所述基本輸入輸出系統(tǒng)自實(shí)時(shí)時(shí)鐘芯片讀取第一時(shí)間戳記,并記錄至所述內(nèi)存。
3.根據(jù)權(quán)利要求2所述的系統(tǒng)管理中斷處理程序的自我診斷方法,其中當(dāng)所述中央處 理單元執(zhí)行所述系統(tǒng)管理中斷處理程序時(shí),還包括自所述實(shí)時(shí)時(shí)鐘芯片取得第二時(shí)間戳記,以依據(jù)所述第一時(shí)間戳記與所述第二時(shí)間戳 記來(lái)計(jì)算所述中央處理單元的使用率。
4.根據(jù)權(quán)利要求3所述的系統(tǒng)管理中斷處理程序的自我診斷方法,其中計(jì)算所述中央 處理單元的使用率的步驟,包括在所述系統(tǒng)管理中斷處理程序執(zhí)行結(jié)束之后,將所述第二時(shí)間戳記與所述第一時(shí)間戳 記之間的差值加上所述執(zhí)行時(shí)間,藉以取得所述計(jì)算機(jī)系統(tǒng)自啟動(dòng)至今所經(jīng)過(guò)的總時(shí)間;累加所述執(zhí)行時(shí)間與累計(jì)時(shí)間區(qū)位的值,藉以取得所述系統(tǒng)管理中斷處理程序自所述 計(jì)算機(jī)系統(tǒng)啟動(dòng)至今所累計(jì)執(zhí)行的累計(jì)時(shí)間;以及依據(jù)所述累計(jì)時(shí)間與所述總時(shí)間,計(jì)算所述中央處理單元的使用率。
5.根據(jù)權(quán)利要求4所述的系統(tǒng)管理中斷處理程序的自我診斷方法,其中在所述系統(tǒng)管 理中斷處理程序執(zhí)行結(jié)束之后,還包括將所述累計(jì)時(shí)間寫入至所述累計(jì)時(shí)間區(qū)位。
6.根據(jù)權(quán)利要求3所述的系統(tǒng)管理中斷處理程序的自我診斷方法,其中在所述系統(tǒng)管 理中斷處理程序執(zhí)行結(jié)束之后,還包括比較所述中央處理單元的使用率與上限值;以及若所述中央處理單元的使用率大于或等于所述上限值,則記錄所述來(lái)源路徑、所述第 二時(shí)間戳記、所述中央處理單元的使用率及所述上限值至所述內(nèi)存。
7.根據(jù)權(quán)利要求3所述的系統(tǒng)管理中斷處理程序的自我診斷方法,其中如果所述執(zhí)行 時(shí)間大于或等于所述逾時(shí)時(shí)間,還包括記錄所述第二時(shí)間戳記至所述內(nèi)存。
8.根據(jù)權(quán)利要求1所述的系統(tǒng)管理中斷處理程序的自我診斷方法,其中在所述中央處理單元執(zhí)行所述系統(tǒng)管理中斷處理程序之后,還包括如果所述系統(tǒng)管理中斷處理程序當(dāng)?shù)?,則記錄默認(rèn)值至當(dāng)機(jī)狀態(tài)區(qū)位中。
9.根據(jù)權(quán)利要求1所述的系統(tǒng)管理中斷處理程序的自我診斷方法,其中所述內(nèi)存為非 揮發(fā)性隨機(jī)存取內(nèi)存。
全文摘要
本發(fā)明提供一種系統(tǒng)管理中斷處理程序的自我診斷方法。于執(zhí)行系統(tǒng)管理中斷處理程序時(shí),自先進(jìn)組態(tài)與電源接口定時(shí)器取得第一時(shí)間值。并且,取得系統(tǒng)管理中斷的來(lái)源路徑。而在系統(tǒng)管理中斷處理程序執(zhí)行結(jié)束時(shí),再自先進(jìn)組態(tài)與電源接口定時(shí)器取得第二時(shí)間值。依據(jù)第一時(shí)間值與第二時(shí)間值獲得系統(tǒng)管理中斷處理程序的執(zhí)行時(shí)間。倘若執(zhí)行時(shí)間大于或等于一逾時(shí)時(shí)間,則將此系統(tǒng)管理中斷的相關(guān)信息記錄下來(lái)。
文檔編號(hào)G06F11/36GK102053907SQ20091021187
公開(kāi)日2011年5月11日 申請(qǐng)日期2009年11月9日 優(yōu)先權(quán)日2009年11月9日
發(fā)明者盧盈志, 楊博欽 申請(qǐng)人:英業(yè)達(dá)股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1