多適應性內存探測方法
2023-04-28 02:27:46 2
專利名稱:多適應性內存探測方法
技術領域:
本發明涉及一種探測方法,特別涉及一種計算機等電子設備中的內存的探測方法。
背景技術:
在現有技術中,對於內存測試技術,其測試環境大多只能局限於DOS環境下,而且測試項目也只包括探測內存的實際容量等有限信息。
對於批量的計算機生產線上的內存測試,目前也大多是針對具體情況和具體測試要求,分別具體定製測試方法,因此往往談不到廣泛的適用性與擴展性,一旦產品換型,或有了新的要求,或者測試系統升級,則只能重新安排並制定測試方法。
顯然,這樣做所耗費的人力和時間都是不容忽視的,更無法應對現今的電子產業的發展速度。而且,在對內存的測試內容上,只是探測到內存的容量是不夠的,隨著市場需求的變化和發展,越來越需要對內存信息進行全方位的探測,包括對內存的有效大小、物理組成、各物理單位的容量、物理位置及內存面(Bank)信息(內存條在面(Bank)的插放順序)等的探測。
然而,現有的內存探測方法根本無法滿足上述要求。因此,面對這種狀況,非常需要一個簡易、便利的方法來解決此一問題。
發明內容
有鑑於此,本發明為解決上述問題而提出一種多適應性內存探測方法,其可適用於多種主流作業系統(如可適用於DOS、windows、及Windows NT等),並且可全面的探測內存信息,包括對內存的有效大小、物理組成、各物理單位的容量、物理位置及內存面(Bank)信息等。
本發明提供一種多適應性內存探測方法,應用於一支持Plug and Play的系統中,該方法至少包括如下步驟
探測並記錄PnP BIOS串的頭部信息;獲取SM BIOS的版本號;輪巡DMI結構體,根據該版本號探測到記載有內存設備信息的特定結構體;及從該特定結構體中,導出有關的內存信息。
所述的多適應性內存探測方法,其中該探測PnP BI0S串的頭部信息的步驟,是通過段值和偏移量建立遠指針而實現的,如果找到PnP頭部信息,則記錄該信息,否則,將段地址加1,繼續探測。
所述的多適應性內存探測方法,其中該獲取SMBIOS的版本號的步驟,是通過調用DMI BIOS功能函數50h而實現的。
所述的多適應性內存探測方法,其中該輪巡DMI結構體的步驟是通過調用DMI BIOS功能函數51h而實現的。
所述的多適應性內存探測方法,其中所述根據該版本號探測到記載有內存設備信息的特定結構體的步驟,如果版本號低於2.3,則DMI第6結構體記載有內存設備信息;而在版本號2.3之後,則第17結構體中記載有內存設備的信息。
本發明提供了一種多適應性內存探測方法,其不僅突破了以往測試內存環境只適用於保護模式的瓶頸,使內存測試技術可延伸至多種主流作業系統(可適用於DOS、WINDOWS以及WINDOWS NT等);而且,更進一步擴展了內存測試的項目,使其不僅可以探測到內存的實際容量,還可以探測出機器中內存總共的條數、每條內存的容量以及BANK信息等數據。總之,本發明完善了內存測試的內容,規範了測試的流程,使其滿足各種各樣的測試要求,並具有普遍的適用性,適合於大規模的生產線上測試。
有關本發明的特徵與技術,配合附圖及最佳實施例詳細說明如下。
圖1為本發明的多適應性內存探測方法的接口示意圖;及圖2為本發明的多適應性內存探測方法的流程圖。
附圖標記說明步驟201探測並記錄PnP BIOS串的頭部信息步驟202獲取SMBIOS的版本號步驟203輪巡DMI結構體,根據該版本號探測到記載有內存設備信息的特定結構體步驟204從該特定結構體中,導出有關的內存信息具體實施方式
本發明提供一種多適應性內存探測方法,其是通過調用一管理接口(Desktop Management Interface,DMI)基本輸入輸出系統(BasicInput/Output System,BIOS)中的功能函數,在內存模塊指定的文件中進行指定,然後通過公用的總控接口和控制模塊解析該功能,然後在公用的總控接口可顯示其結構信息,利用功能模塊對其實現控制瀏覽。
眾所周知,DMI是管理計算機系統資源的一種有效方法,通過DMI可以獲知系統的類型、執行能力、工作狀態、安裝數據和其它一些系統信息。DMI可以在支持它的機器上定義出便於管理的系統資源存儲信息,可是由於它們並沒有統一的接口,所以一般情況下很難訪問到這些記錄的數據,只用通過系統的BIOS功能函數提供的接口進行訪問。系統管理(System Management)BIOS提供了訪問這些數據的接口,並可以把信息存儲在特定的結構體中。而PnP(Plug and Play)則提供了訪問System Management BIOS的數據接口。因此待測系統必須支持Plug and Play。為了防止在與SMBIOS進行數據交換時產生分支,SMBIOS支持PnP適用的系統設備節點的架構,並且適用PnP BIOS功能函數訪問SMBIOS的接口,如圖1所示。
在系統支持PnP的基礎上,可以利用此表中的功能函數51h,把每個類型結構體中特定的信息寫入到緩衝區。每個結構體都包括一個指向SMBIOS公用體的句柄(handle)。如果結構體的大小為零,則可以得到SMBIOS的首個結構體信息。如果結構體返回完成標誌DMI_SUCCESS或DMI無效句柄(handle)時,在列表指針還沒到OFFFFh時,更新下一個連續的結構體。此功能函數既可以在實模式下運行,也可在16位保護模式下實現。
隨著SMBIOS版本的提升和功能的不斷增強,一些新的數據結構定義也陸續出現,其所包括的系統架構資源信息也更加豐富。所以,判定當前系統的BIOS版本就有著十分重要的意義,它是系統特定資源的判定條件。
通過BIOS51號功能調用可以訪問第6結構體一Memory ModuleInformation。在系統中每一個內存模塊都用一個與其對應的Memory ModuleInformation Structure。通過結構體可以反映出內存模塊的大小,訪問速度、類型等特徵。
第6結構體(Memory Module Information)
在SMBIOS 2.3版本之後,可以支持調用BIOS51號功能去訪問17號結構體(Memory Device)。不管當前系統插槽中是否已經安裝了內存,每個功能模塊中的系統信息都要在結構體中體現出來。
第17結構體(Type 17)
從memory Device埠12h可以得到每條內存的類型,這條信息可探測內存的實際容量,校驗內存在插槽中的排放順序以及內存條的組合信息提供了必要的依據,可以根據不同的Type值,來判斷在不同機器插槽中內存的類型。
從以上兩組結構體中可以看出,Type6和Type17包括的信息十分廣泛,不僅能測出內存的容量及面(bank)信息,還能探明內存的類型、組成因素、運行速度等內存的重要屬性,功能十分強大。另外,通過此方法進行測試,突破了先前測試程序只局限在Dos環境下的束縛,內存測試程序同樣可以運行在windows95、Windows98、Windows2000、Windows Me等眾多作業系統中,這樣就大大提高了測試內存的方法適應環境,擴展了其自身的通用性和延伸性。
請參閱圖2,此圖為本發明所提出的多適應性內存探測方法的流程圖,其說明如下首先,探測並記錄PnP BIOS串的頭部信息(步驟201);獲取SMBIOS的版本號(步驟202);輪巡DMI結構體,根據該版本號探測到記載有內存設備信息的特定結構體(步驟203);最後,從該特定結構體中,導出有關的內存信息(步驟204)。
其中,所述探測PnP BIOS串的頭部信息的步驟,是通過段值和偏移量建立遠指針而實現的,如果找到PnP頭部信息,則記錄該信息,否則,將段地址加1,繼續探測。
所述獲取SMBIOS的版本號的步驟,是通過調用DMI BIOS功能函數50h而實現的。
所述根據該版本號,探測到記載有內存設備信息的特定結構體的步驟,是通過調用DMI BIOS功能函數51h,輪巡DMI類型結構體而實現的。如果版本號低於2.3,則DMI第6結構體記載有內存設備信息;而在版本號2.3之後,則第17結構體中記載有內存設備的信息。
如上所述,通過特定結構體,可以從中導出有關的內存設備信息,例如,可以從第6結構體中的Type06_Size中取出當前DIMM中內存的容量;或從第17結構體中的Type17_Size中取出當前DIMM中內存的容量。可以輪巡結構體中內存設備的數據地址,直至將所有所需數據全部取出。
雖然本發明以前述的較佳實施例公開,然其並非用以限定本發明,任何本領域普通技術人員,在不脫離本發明精神和範圍內,當可作一些更動與潤飾,因此本發明的專利保護範圍以權利要求為準。
權利要求
1.一種多適應性內存探測方法,應用於一支持Plug and Play的系統中,其特徵在於,該方法至少包括如下步驟探測並記錄PnP BIOS串的頭部信息;獲取SMBIOS的版本號;輪巡DMI結構體,根據該版本號探測到記載有內存設備信息的特定結構體;及從該特定結構體中,導出有關的內存信息。
2.如權利要求1所述的多適應性內存探測方法,其特徵在於,該探測PnP BIOS串的頭部信息的步驟,是通過段值和偏移量建立遠指針而實現的,如果找到PnP頭部信息,則記錄該信息,否則,將段地址加1,繼續探測。
3.如權利要求1所述的多適應性內存探測方法,其特徵在於,該獲取SMBIOS的版本號的步驟,是通過調用DMI BIOS功能函數50h而實現的。
4.如權利要求1所述的多適應性內存探測方法,其特徵在於,該輪巡DMI結構體的步驟是通過調用DMI BIOS功能函數51h而實現的。
5.如權利要求1所述的多適應性內存探測方法,其特徵在於,所述根據該版本號探測到記載有內存設備信息的特定結構體的步驟,如果版本號低於2.3,則DMI第6結構體記載有內存設備信息;而在版本號2.3之後,則第17結構體中記載有內存設備的信息。
全文摘要
本發明涉及一種多適應性內存探測方法,應用於一支持Plug and Play的系統中,其首先探測並記錄PnP BIOS串的頭部信息,並獲取SMBIOS的版本號,然後,輪巡DMI結構體,根據該版本號探測到記載有內存設備信息的特定結構體,最後,從該特定結構體中,導出有關的內存信息。本發明可適用於多種主流作業系統,如DOS、Windows、及WindowsNT等,並且可全面的探測內存信息,包括對內存的有效大小、物理組成、各物理單位的容量、物理位置及內存面(Bank)信息等。
文檔編號G06F11/26GK1508688SQ02157129
公開日2004年6月30日 申請日期2002年12月17日 優先權日2002年12月17日
發明者劉文涵, 宋建福, 陳鎮 申請人:英業達股份有限公司