早期開機自我測試階段正常運行的方法
2023-05-07 23:02:11 1
專利名稱:早期開機自我測試階段正常運行的方法
技術領域:
本發明是關於一種計算機裝置開機正常運行的方法,特別是關於一種使計算機裝置在系統早期開機自我測試階段正常運行的方法。
背景技術:
由於電子信息相關科技的研發日新月異,許多功能強大且價格合理的信息相關產品紛紛問世,就以計算機設備為例,不論是大型的超級計算機、伺服器主機乃至於個人計算機以及筆記本型計算機等,都早已成為人們工作、生活中所不可或缺的重要工具。
在計算機系統的結構中,基本輸入輸出系統(basic input outputsystem;以下簡稱BIOS)是計算機系統開機後第一個執行的軟體。BIOS主要是由一些低端的指令集(程序)組成,供計算機開機過程中的硬體測試、檢測與管理基本的外圍裝置如硬碟、鍵盤及與連接埠間的資料傳遞等。因此計算機系統開機後是依照BIOS的設定運行的。倘若BIOS出現問題,計算機開機後無法完成硬體測試,則便無法順利完成開機程序。一般計算機的系統開機主要的流程是由使用者打開電源(PowerOn)後,計算機依次進行早期開機自我測試(Early Power-On SelfTest)及後期開機自我測試(Later Power-On SelfTest),最後令作業系統激活(OSBoot)。
但在計算機的開發過程中,常會因新型號的晶片組(Chipset)或SIO(Super IO晶片組)與目前硬體(H/W)的設計無法相互配合,或是晶片組(Chipset)本身有問題(Bug),導致系統在早期開機自我測試階段(視頻尚未傳送到計算機屏幕時)即發生問題,使得整個計算機系統掛掉(Hang),無法繼續進行整個系統的開機作業;上述問題如死鎖(DeadLock)或活鎖(LiveLock)皆有可能發生在早期開機自我測試階段,其中死鎖(DeadLock)是指系統直接掛掉(Hang),中央處理單元(CPU)無法抓取指令執行程序,活鎖(LiveLock)是指中央處理單元(CPU)可抓取指令執行程序,但永遠執行某一程序的片段,也就是在執行該程序中的某一片段,一直循環,無法繼續進行後續的程序。這二種狀況都會使系統掛掉(Hang)。一直以來,計算機業者皆存在上述困擾,因而衍生出下列問題在業者進行系統開機測試時,死鎖(DeadLock)或活鎖(LiveLock)的問題在測試時出現(如某程序的某一片段),經由業者將此問題加以排除後,再重新進行測試,但仍然會在其它程序的某一片段出現,因而再經由業者加以排除,如此周而復始,問題一再產生,導致一直無法通過測試,造成產品無法出貨的問題。再有,死鎖(DeadLock)或活鎖(LiveLock)的問題產生並無法預知,若在進行產品測試時,經幾次問題排除後沒有再次出現這些問題,將產品出貨到客戶後,系統開啟時發生問題,因而造成客戶信賴度降低,且一般消費者也會對此產品的品質大打折扣。
由上述可知,如何使該計算機系統在測試階段中正常運行,實現順利出貨,確保客戶使用滿意,是亟需解決的問題。
發明內容
為解決上述現有技術的問題,本發明的主要目的在於提供一種令計算機系統在早期開機自我測試階段正常運行的方法,能夠順利進入計算機系統的後期開機自我測試階段。
為達成上述及其它目的,本發明是一種早期開機自我測試階段正常運行的方法,應用在計算機裝置中,可在該計算機裝置早期開機自我測試階段避免死鎖(DeadLock)指令或活鎖(LiveLock)問題造成的該計算機裝置的系統掛掉(Hang),能夠令該計算機裝置順利進入後期開機自我測試階段,該計算機裝置具有至少一開機自我測試程序,該方法主要包括下列步驟(1)令該計算機裝置預設該開機自我測試程序最大執行時間;(2)令該計算機裝置的系統激活,並執行該開機自我測試程序;(3)令該計算機裝置根據所執行的開機自我測試程序進行計時處理,產生對應的執行計時時間,若該開機自我測試程序所對應的執行計時時間大於該預設的最大執行時間,即進到步驟(4);若該開機自我測試程序所對應的執行計時時間小於或等於該預設的最大執行時間,則進到步驟(5);(4)令該計算機裝置重新激活,並重新執行該開機自我測試程序,且返回該步驟(3);以及(5)停止該計算機裝置的計時處理,並進入該計算機裝置的後期開機自我測試階段。
本發明的早期開機自我測試階段正常運行的方法利用具有計時功能的計算機裝置,並相對該計算機裝置的多個開機自我測試程序設定其最大執行時間,在計算機裝置激活及開機自我測試程序執行時進行計時處理,若任一開機自我測試程序的執行時間(即執行計時時間)大於上述所設定的最大執行時間,會使計算機裝置重新激活,並重新執行所有開機自我測試程序,再重新對於所有開機自我測試程序進行計時處理,直到所有開機自我測試程序的執行時間小於或等於上述所設定的最大執行時間,即停止計時處理,並進入計算機裝置的後期開機自我測試階段,進行正常系統開機的流程,不僅可快速通過系統測試順利出貨外,更可確保產品售出後的品質,提高客戶的信賴度;本發明是利用現有硬體中的定時器,不需額外增加硬體費用,即可實現讓計算機裝置在早期開機自我測試階段正常運行。
圖1是流程示意圖,顯示本發明的早期開機自我測試階段正常運行的方法的基本流程示意圖;以及圖2(A)、圖2(B)、圖2(C)及圖2(D)是流程示意圖,顯示本發明的早期開機自我測試階段正常運行的方法各種實施形態。
具體實施例方式
實施例圖1是本發明的早期開機自我測試階段正常運行的方法的流程示意圖,以此流程圖配合詳細說明,敘述本發明所述的方法的較佳實施例。其中,須注意的是,該附圖均為簡化的示意圖,僅以示意方式說明本發明的基本流程。因此,在該附圖中僅顯示與本發明相關的文字。
本發明的早期開機自我測試階段正常運行的方法是應用在計算機裝置,可在該計算機裝置早期開機自我測試階段避免死鎖(DeadLock)指令或活鎖(LiveLock)問題造成的該計算機裝置的系統掛掉(Hang),能夠令該計算機裝置順利進入後期開機自我測試階段。其中該計算機裝置具有至少一開機自我測試程序,例如用於對各系統元件查錯(例如主存儲器、磁碟驅動器及鍵盤)的測試程序等,且該開機自我測試程序可安裝在BIOS ROM等存儲器中。
本實施例的早期開機自我測試階段正常運行的方法,如圖1所示,首先需進行步驟S1,令該計算機裝置設定開機自我測試程序的最大執行時間。此時間設定步驟可通過例如具計時功能的晶片組(Chipset)實現,也就是該晶片組具有定時器(Timer),通過該晶片組對計算機裝置內的開機自我程序設定其最大執行時間;一般而言,該時間設定步驟是針對容易產生死鎖(DeadLock)指令或活鎖(LiveLock)的程序設定其所需的最大執行時間,也就是該開機自我測試程序執行完畢所需的時間(如用於檢測主存儲器狀況的開機自我測試程序執行完畢所需執行的時間為10秒),並將此最大執行時間設定在上述定時器內,接著進到步驟S2。
在該步驟S2中,令該計算機裝置激活系統。此激活步驟是令該計算機裝置激活執行早期開機自我測試階段的程序,接著進到步驟S3。
在該步驟S3中,令該計算機裝置進行計時處理,並判斷該步驟S2執行程序所的時間是否大於步驟S1所預設的最大執行時間。該步驟是令該計算機裝置對該步驟S2所執行的開機自我測試程序進行計時處理,也就是該計算機裝置根據執行的開機自我測試程序進行計時處理,產生相對應的執行計時時間,若在多個開機自我測試程序中的任一程序的執行計時時間大於該步驟S1所設定的最大執行時間(如用於檢測主存儲器狀況的開機自我測試程序執行完畢所需執行的時間已超過10秒),即進到步驟S4,若多個程序所有的執行計時時間皆小於或等於該步驟S1所設定的最大執行時間(如用於檢測主存儲器狀況的開機自我測試程序執行完畢所需執行的時間於10秒內完成),則進到步驟S5。
在該步驟S4中,令該計算機裝置重新激活系統。該重啟步驟是因多個開機自我測試程序中的任一程序的執行計時時間大於該步驟S1所設定的最大執行時間(也就是定時器產生Timeout現象),則令該計算機裝置重新激活(Full System Reset),並重新執行所有開機自我測試程序,且返回上述步驟S3。一般而言,該狀況的發生是因死鎖(DeadLock)指令或活鎖(LiveLock)已產生在此開機自我測試程序中(如用於檢測主存儲器狀況的開機自我測試程序),使計算機裝置的系統掛掉(Hang),從而導致程序的執行時間(也就是執行計時時間)大於該程序的最大執行時間。故本發明是利用上述定時器主動發出重啟信號,令計算機裝置重新激活系統,讓使用者(User)完全感受不到該計算機裝置的系統曾經掛掉(Hang)。
在該步驟S5中,令該計算機裝置進入後期系統開機作業。此步驟是因多個開機自我測試程序所有的執行計時時間皆小於或等於該步驟S1所設定的最大執行時間(如主存儲器狀況的開機自我測試程序執行完畢所需執行的時間於10秒內完成),則停止計算機裝置的計時處理(也就是停止定時器的運行),並進入該計算機裝置的後期開機自我測試階段(Later POST)。此步驟是因所有程序皆在正常時間內執行完成(小於或等於所設定的最大執行時間),故屬於正常狀態,令計算機裝置順利進行後續的開機流程,由於後續的開機流程不是本發明的內容,在此不再說明。上述計算機裝置可以是超級計算機、伺服器主機、桌上型計算機或筆記本型計算機。
為更清楚表示本發明方法在計算機裝置的實際運行流程的各種實施形態,特以圖2(A)、圖2(B)、圖2(C)及圖2(D)表示,這些附圖中的方塊、文字及數目,僅以示意方式作說明。
如圖2(A)所示,它是本發明的第一種實施形態,它只針對計算機裝置系統激活後的BIOS早期開機自我測試階段S10中的一種開機自我測試程序100(此測試程序100是測試階段S10中的唯一程序)配合本發明的方法的應用,又如圖2(B)所示,它是本發明的第二種實施形態,是針對計算機裝置系統激活後的BIOS早期開機自我測試階段S10′中所有開機自我測試程序100、101、…、109(測試程序100、101、…、109是測試階段S10中所有的程序)配合本發明的方法,再如圖2(C)所示,它是本發明的第三種實施形態,是針對計算機裝置系統激活後的BIOS早期開機自我測試階段S10″中的部分開機自我測試程序102、105(測試程序102及105是包括在測試階段S10)配合本發明的方法的應用。圖2(D)所示是本發明的第四種實施形態,是針對計算機裝置系統激活後的BIOS早期開機自我測試階段S10中的一開機自我測試程序100及部分開機自我測試程序102、105(此測試程序100是測試階段S10中的唯一程序,且測試程序102及105是包括在測試程序100中)配合本發明的方法的應用,因此,本發明的方法可供使用者依其需求作不同的變化。
由上可知,本發明的早期開機自我測試階段正常運行的方法利用具有計時功能的計算機裝置,並相對該計算機裝置的多個開機自我測試程序設定其最大執行時間,在計算機裝置激活及開機自我測試程序執行時進行計時處理,若任一開機自我測試程序的執行時間(即執行計時時間)大於上述所設定的最大執行時間,會使計算機裝置重新激活,並重新執行所有開機自我測試程序,再重新對於所有開機自我測試程序進行計時處理,直到所有開機自我測試程序的執行時間小於或等於上述所設定的最大執行時間,即停止計時處理,並進入計算機裝置的後期開機自我測試階段,進行正常系統開機的流程,不僅可快速通過系統測試順利出貨外,更可確保產品售出後的品質,提高客戶的信賴度;且現今市面上的晶片組(例如Intel ICH系列)或SIO(Super IO晶片組)均具有定時器(Timer),因此不需額外增加硬體費用,利用現有的晶片組即可實現本發明的目的,就是讓計算機裝置在早期開機自我測試階段正常運行。
權利要求
1.一種早期開機自我測試階段正常運行的方法,應用在計算機裝置,使該計算機裝置早期開機自我測試階段避免死鎖指令及活鎖其中造成的系統掛掉,令該計算機裝置順利進入後期開機自我測試階段,該計算機裝置具有至少一開機自我測試程序,其特徵在於,該方法至少包括以下步驟(1)令該計算機裝置預設該開機自我測試程序最大執行時間;(2)令該計算機裝置的系統激活,並執行該開機自我測試程序;(3)令該計算機裝置根據所執行的開機自我測試程序進行計時處理,產生對應的執行計時時間,若該開機自我測試程序所對應的執行計時時間大於該預設的最大執行時間,即進到步驟(4);若該開機自我測試程序所對應的執行計時時間小於或等於該預設的最大執行時間,則進到步驟(5);(4)令該計算機裝置重新激活,並重新執行該開機自我測試程序,且返回該步驟(3);以及(5)停止該計算機裝置的計時處理,並進入該計算機裝置的後期開機自我測試階段。
2.如權利要求1所述的早期開機自我測試階段正常運行的方法,其特徵在於,該計時處理是由定時器達成的。
3.如權利要求2所述的早期開機自我測試階段正常運行的方法,其特徵在於,該定時器是設在晶片組內。
4.如權利要求2所述的早期開機自我測試階段正常運行的方法,其特徵在於,該預設的開機自我測試程序的最大執行時間是設定在該定時器內。
5.如權利要求2所述的早期開機自我測試階段正常運行的方法,其特徵在於,若該開機自我測試程序所對應的執行計時時間大於該預設的最大執行時間是藉由該定時器主動發出重啟信號,令該計算機裝置重新激活。
6.如權利要求1所述的早期開機自我測試階段正常運行的方法,其特徵在於,該計算機裝置是超級計算機、伺服器主機、桌上型計算機及筆記本型計算機中的一種。
全文摘要
一種早期開機自我測試階段正常運行的方法,供計算機裝置在早期開機自我測試階段順利執行以進入後期開機自我測試階段的方法;它是應用在具有計時功能的計算機裝置,並相對具有至少一開機自我測試程序設定最大執行時間,在計算機裝置開機後進行計時處理,若開機自我測試程序的執行時間大於上述所設定的最大執行時間,令該計算機裝置重新激活,重新執行該開機自我測試程序,再重新進行計時處理,直到程序的執行時間小於或等於設定的最大執行時間為止,令該計算機裝置進入後期開機自我測試階段;本發明不僅可快速通過系統測試,更可確保客產品品質,提高客戶的信賴度。
文檔編號G06F9/445GK1797341SQ20041010413
公開日2006年7月5日 申請日期2004年12月30日 優先權日2004年12月30日
發明者盧盈志, 餘亮宏, 李家興, 張啟聰, 鄭孟華, 李浚溢 申請人:英業達股份有限公司