測試電腦硬碟驅動器型號的方法及裝置的製作方法
2023-05-26 02:47:36
專利名稱:測試電腦硬碟驅動器型號的方法及裝置的製作方法
技術領域:
本發明涉及一種測試電腦硬碟驅動器型號的方法及裝置。
目前市面上有各式各樣型式不同的硬碟驅動器,使用者在增添或更換硬碟驅動器時,必須查明硬碟驅動器的型號,重新設定該硬碟驅動器,以正確的型號對應於電腦的硬碟驅動器參數表後,方能使用。若使用者不知道硬碟驅動器的型號,即無法使用該硬碟驅動器,縱使目前有少數電腦提供自動測試硬碟驅動器型號的功能,其功能僅適用於少數新款式硬碟驅動器,卻不能全面測出現有的硬碟驅動器所有型號,譬如對類似(ST506/412或OLD AT-BUS)等大多數舊式的硬碟驅動器則無法測出,遇此情況時,使用者必須知道該硬碟驅動器的型號而重新設定,不僅是十分不便,也會出現無法使用該硬碟驅動器的情況。本發明人有鑑於此,特提出一種自動測試硬碟驅動器型號的方法,並利用此方法寫成電腦程式,儲存於存儲器或電腦輸入輸出系統的存儲器裝置中,每當電腦啟動時,即可自動測試出硬碟驅動器的型號。
本發明的主要目的在於提供一種可完全由電腦系統自動測出安裝於該電腦系統內的硬碟驅動器型號的方法。
本發明的另一目的在於提供一種自動測試裝置,於更動電腦系統內的硬碟驅動器時,無須重新設定該硬碟驅動器的型號便可自動測出及使用該硬碟驅動器。
本發明的測試電腦硬碟驅動器型號的方法,其特徵在於,包括下列步驟A、電腦系統讀取其一硬碟驅動器的一分隔表的數據;B、電腦系統藉所述分隔表的數據計算出硬碟驅動器的磁頭數、每磁軌的磁段數與柱面數,而得知所述硬碟驅動器的型號。
本發明的測試電腦硬碟驅動器型號的方法,其特徵在於,包括下列步驟A、電腦系統讀取其一硬式盤驅動器的分隔表的一籤名數據、至少一個分隔區的磁段起始地址與結束地址、磁頭的起始地址與結束地址、柱面的起始地址與結束地址、分隔區的起始地址及分隔區的磁段數;B、電腦系統藉籤名數據判定所述硬碟驅動器是否已設定分隔區,並藉硬碟驅動器設定分隔區時所設定的一參數表換算出硬碟驅動器的磁頭及每磁軌的磁段的數值。
本發明的自動測試電腦硬碟驅動器型號的方法,其特徵在於,該方法包括下列步驟A、電腦系統讀取其一硬碟驅動器的分隔表的一籤名數據、至少一個分隔區的磁段起始地址與結束地址、磁頭的起始地址與結束地址、柱面的起始地址與結束地址、分隔區的起始地址及分隔區的磁段數;B、電腦系統藉籤名數據判定所述硬碟驅動器是否設定分隔區,並藉硬碟驅動器設定分隔區時所設定的一參數表換算出硬碟驅動器的磁頭及每磁軌的磁段的數值;C、所述電腦系統向所述硬碟驅動器下達一鑑定磁碟驅動器指令,並藉硬碟驅動器傳回的一參數作為計算硬碟驅動器的柱面數的依據。
本發明的測試電腦硬碟驅動器型號的裝置,包括存儲器,用以儲存電腦軟體及供電腦系統執行儲存於存儲器的電腦軟體以執行以下步驟A、電腦系統讀取其一硬碟驅動的一分隔表的數據;B、電腦系統藉所述分隔表的數據計算出硬碟驅動器的磁頭數、每磁軌的磁段數與柱面數;而得到電腦系統中硬碟驅動器的型號。
本發明測試電腦硬碟驅動器型號的裝置,包括一存儲器,用以儲存一電腦軟體及供電腦系統執行儲存於存儲器的電腦軟體以執行以下步驟A、電腦系統讀取其一硬體的分隔表的籤名數據、至少一個分隔區的磁段起始址與結束地址、磁頭的起始地址與結束地址、柱面的起始地址與結束地址、分隔區的起始地址及分隔區的磁段數;B、所述電腦系統藉所述籤名數據判定硬碟驅動器是否設定分隔區,並藉硬碟驅動器設定分隔區時所設定的一參數表換算出硬碟驅動器的磁頭及每磁軌的磁段的數值;而得到電腦系統中的型號。
本發明的測試電腦硬碟驅動器型號的裝置,包括一存儲器,用以儲存一電腦軟體及供電腦系統執行儲存於存儲器的電腦軟體以執行以下步驟A、電腦系統讀取其一硬碟驅動器的分隔表的一籤名數據、至少一個分隔區的磁段起始址與結束地址、磁頭的起始地址與結束地址、柱面的起始地址與結束地址、分隔區的起始地址及分隔區的磁段數;B、所述電腦系統藉籤名數據判定硬碟驅動器是否設定分隔區,並藉硬碟驅動器設定分隔區時所設定的一參數表換算出該硬碟驅動器的磁頭及每磁軌的磁段的數值;C、電腦系統向所述硬碟驅動器下達一鑑定磁碟驅動器指令,並藉硬碟驅動器傳回一的參數作為計算該硬碟驅動器的柱面數值的依據;而得到該電腦系統中硬碟驅動器的型號。
結合附圖及實施例對本發明的技術特徵說明如下
圖1為本發明自動測試電腦硬碟驅動器型號方法的流程圖;圖2為本發明自動測試電腦硬碟驅動器參數方法的詳細流程圖;圖3A為一般硬碟驅動器分隔表(Partition Table)內容的範例一;圖3B為一般硬碟分隔表(PartitionTable)內容的範例二。
目前一般個人電腦使用者,必須設定磁碟驅動器的型號後,始能使用該磁碟驅動器,為方便使用者不必於每次使用電腦內同一磁碟驅動器時,都必須設定該磁碟驅動器起見,通常會提供使用者一使用程序,把磁碟驅動器型號的初始值輸入並儲存於一非易失性存儲器(Non-Vo1atile Random Access Memory,NVRAM)內,每當電腦系統開機時,便通過開機程序自動讀取及載入該非易失性存儲器內的設定值來初始化,這樣便可省卻使用者不少麻煩。但當使用者要增加或更換磁碟驅動器,還是須要重新設定所新換的磁碟驅動器,而無法由電腦自動測出磁碟驅動器的型號。
現今雖有某少數電腦廠商宣稱其製造的電腦具備自動測試硬碟驅動器磁碟驅動器的功能,並可自動初始化該硬磁碟驅動器,免除使用者必須牢記硬碟驅動器型號的麻煩,且於更換或增加硬碟驅動器後,亦無須重新設定,便可使用該硬碟驅動器,其方法由電腦的中央處理器向硬碟驅動器裝置下的一鑑定硬碟驅動器(Identify Drive,ID)指令,並以該ID指令傳回的值來判斷硬碟驅動器屬何種類型,最後依據該類型的預設值來初始化磁碟驅動器。此方法的適用範圍只限於某部分新式的硬碟驅動器,卻不能對其他硬碟驅動器作全面的測試,當電腦系統向硬碟裝置下指令時,只有少數新款硬碟驅動器回傳參數值,憑此參數值便可直接判斷該硬碟驅動器屬何類型號,但對大多數不能回傳參數值的硬碟驅動器而言,電腦系統即無法判斷該硬碟驅動器的型號。況且,即使是屬於可回傳參數值的硬碟驅動器而言,亦可能會發生問題,因為硬碟驅動器可用別種不同的參數值(含磁柱面、磁頭及每軌的磁區)來設定分隔區及格式化,換言之,該硬碟驅動器對電腦系統所下的ID指令回傳一數值,電腦系統只能判斷該硬碟驅動器的預設型號,但倘若該硬碟原本是由別的參數值來作設定分隔區及格式化,電腦系統還是認定其為預設的型號,進而產生初始化硬碟驅動器的錯誤。此種方法根本就不能全面自動測試出現存各類須要設定的硬碟型號。
按現有的硬碟驅動器經設定分隔區後,其第一磁段(FIRST PHYSI CAL SECTOR)即寫入及載有一分隔表(PARTITI ON TABLE),該分隔表具一籤名(SIGNATURE)數據,用以判斷該分隔表的存在,及分隔區(PARTITION)的數據。若籤名數據的值為55AAh(以h代表十六進位數字),代表該硬碟驅動器已經設定分隔區並存有分隔表。分隔表記載硬碟驅動器被劃分成多少個分隔區(PARTITION)來使用,一臺硬碟驅動器最多可劃分為四個分隔區,每一分隔區的範圍,大小及內容都被記載於分隔表中,並以16個位元組來定義,其定義如下
注h 代表十六進位BYTE代表位元組DOUBLE WORD 代表雙字組,即四個位元組;由於硬碟驅動器于格式化時會依當時設定的參數來換算其每個分隔區的起始及結束地址和分隔區的大小,記錄在分隔表內,其地址的換算公式如下Logical Block Address=((Cylinder X NO.ofHeads)+Heads)X(Sector/Track))+(Sector-1)LBA=(C×HP+HA)×SP+(SA-1)注LBA=Logical Block Address(邏輯區地址)C=Cylinder Aeeress(磁柱地址)HP=Head Prameter(磁頭參數)SP=Sector per Track Parameter(每磁軌的磁段參數)SA=Sector Address(磁段地址)LBAO代表(柱面0,磁頭0,磁段1)的地址根據地址換算公式,可得出二組二元一次方程式線性起始地址=(柱面起始地址)×(磁頭參數)+磁頭起始地址)×(每磁軌的磁段參數))+(磁段起始地址-1)線性結束地址=((柱面結束地址)×(磁頭參數)+磁頭結束地址)×(每磁軌的磁段參數))+(磁段結地址-1)其中線性起始地址即第一磁區地址,而線性結束地址即可以(第一磁段位地址)+(分隔區之大小-1)得知。
由於以上二方程式除磁頭及每磁軌的磁段參數為未知數外,其他各數皆可由分隔表內所記載的數據得知,因此該二個未知數可由以上二方程式求得。
至於正確的柱面參數,則需通過電腦系統向硬碟驅動器下一鑑定磁碟驅動器指令(Identify Drive,ID),若命令不被接受而無法執行,該硬碟驅動器即被判定為非AT-BUS的類型,柱面參數則等於分隔表中柱面結束地址的最大值。若該ID指令被接受及執行後,則以該ID指令傳回的值算出硬碟驅動器的容量(Total Sector),除以磁頭參數及每磁軌的磁段參數(以前述解方程式得出),則可正確得出柱面的參數值。
在完全得知柱面、磁頭及每磁軌的磁段的參數後,即能正確判斷出硬碟驅動器的型式。當然,在只得知磁頭及每磁軌的磁段參數的情況下,亦可初始化硬磁碟驅動器,但卻不能充分使用到硬碟驅動器的最大容量。
為進一步解釋二元一次方程的取得,茲以圖3A的所示的硬碟驅動器的分隔表內容表列為範例,配合圖2的流程圖,加以說明該分隔表的第一分隔區起始地址為125D05BE及結束地址為125D05CD(共十六位元組),第二分隔區起始地址為125005CE及結束地址為125D05DD,但其內容皆為0,表示該硬碟驅動器只劃分第一分隔區來使用。該分隔區的數據表列如下
第一磁段=00000033(h)=51(d)分隔區的磁段數=00074DAB(h)=478635(d)注h十六進位d十進位。
如上表所示,此硬碟驅動器劃分為一個分隔區來使用,第一分隔區的起始地址為柱面0,磁頭1,磁段1)結束地址(柱面721,磁頭12,磁段51)線性起始址=第一磁段參數=51線性結束地址=第一磁段參數+磁段參數-1=51+478635-1=478685
代入地址換算公式51=(O×H+1)×S+(1-1)478685=(721×H+12)×S+(51-1)以線性代數可求解此二方程式,得知H=13;S=51,其中H=Head=磁頭數;S=Sector/Track=磁軌的磁段數由於此硬碟驅動器為IDE(Integrated Drive Electronics)介面,即可接受ID命令,因此可從ID命令後傳回的一組參數值(共256 WORDS,其中包含柱面參數、磁頭參數、每磁軌的磁區參數)而得知此硬碟驅動器容量為479349磁段,將此值除以磁頭及每磁軌的磁段數可得到此硬碟驅動器的柱面值。
由於硬碟容量=(柱面參數)×(磁頭參數)×(每磁軌的磁區參數),因此磁柱參數=(479349)/(13×51)=723經由以上的硬碟型號參數運算,可求出柱面參數=723,磁頭參數=13,每磁軌的磁段參數=51從而判斷該硬碟驅動器的型號。
茲再以圖3B所示的硬碟驅動器的分隔表內容表列為另一範例,作進一步的說明。查該分隔表的內容第一分隔區的起始地址為145B05BE;結束址為145B05CD;第二分隔區的起始地址為145B05BE,結束址為145B05DD;其他為0,即代表該硬碟驅動器分劃為二個分隔區使用,而其分隔表內容如下
第一磁段=00000011(H)=17(D)分隔區的磁段數=0000FFEE(H)=65518(D)以上表所示,第一分隔區的起始地址為柱面0,磁頭1,磁段1)結束地址為(柱面770,磁頭4,磁段17)。
線性起始地址=第一磁段參數=17線性結束地址=第一磁段參數+分隔區的磁段數-1=17+65518-1=65534代入地址換算公式17=(O×H+1)×S+(1-1)65534=(770×H+4)×S+(17-1)求解後磁頭參數H=5,磁段參數S=17由於此為ST506的硬碟驅動器,該硬碟驅動器對電腦系統下達的ID指令是不能接受,亦無法執行,所以無法藉該ID指令的傳回值而得知硬碟驅動器的容量,再由硬碟驅動器容量求得型號的磁柱參數值,但可由分隔表內辨別出最大的柱面參數為該硬碟驅動器的柱面參數值。以上範例中,第一分隔區的柱面結束參數為770,第二分隔區的柱面結束參數為1021,取其最大值,MAX(1021,770)=1021,所以此硬碟驅動器的型號參數被判定為(磁柱=1021,磁頭=5,每磁軌的磁段=17)。
藉以上方法完成的電腦軟體可儲存於存儲器或電腦的基本輸入輸出系統(Basic Inprt Output System,BIOS)的硬體裝置內,於電腦啟動時,即可通過該軟體自動測試出硬碟驅動器的型號。
綜上所述,本發明可徹底自動測試出硬碟驅動器的型號,所採用的方法為前所未有,具有較強的實用性。
權利要求
1.一種測試電腦硬碟驅動器型號的方法,其特徵在於,包括下列步驟A、電腦系統讀取其一硬碟驅動器的一分隔表的數據;B、電腦系統藉所述分隔表的數據計算出硬碟驅動器的磁頭數、每磁軌的磁段數與柱面數,而得知所述硬碟驅動器的型號。
2.根據權利要求1所述的方法,其特徵在於,所述分隔表的數據主要包含一籤名數據;至少一分隔區的磁段起始地址與結束地址;至少一分隔區的磁頭起始地址與結束地址;至少一分隔區的柱面起始地址與結束地址;一分隔區的起始地址;及一分隔區的磁段數。
3.一種測試電腦硬碟驅動器型號的方法,其特徵在於,包括下列步驟A、電腦系統讀取其一硬式盤驅動器的分隔表的一籤名數據、至少一個分隔區的磁段起始地址與結束地址、磁頭的起始地址與結束地址、柱面的起始地址與結束地址、分隔區的起始地址及分隔區的磁段數;B、電腦系統藉籤名數據判定所述硬碟驅動器是否已設定分隔區,並藉硬碟驅動器設定分隔區時所設定的一參數表換算出硬碟驅動器的磁頭及每磁軌的磁段的數值。
4.根據權利要求3所述的方法,其特徵在於,藉所述硬碟驅動器設定分隔區時所設定的一參數表換算出所述硬碟驅動器的磁頭及每磁軌的磁段的數值是利用一邏輯區地址運算得出。
5.一種自動測試電腦硬碟驅動器型號的方法,其特徵在於,該方法包括下列步驟A、電腦系統讀取其一硬碟驅動器的分隔表的一籤名數據、至少一個分隔區的磁段起始地址與結束地址、磁頭的起始地址與結束地址、柱面的起始地址與結束地址、分隔區的起始地址及分隔區的磁段數;B、電腦系統藉籤名數據判定所述硬碟驅動器是否設定分隔區,並藉硬碟驅動器設定分隔區時所設定的一參數表換算出硬碟驅動器的磁頭及每磁軌的磁段的數值;C、所述電腦系統向所述硬碟驅動器下達一鑑定磁碟驅動器指令,並藉硬碟驅動器傳回的一參數作為計算硬碟驅動器的柱面數的依據。
6.根據權利要求5所述的方法,其特徵在於,所述電腦系統儲存於存儲器的電腦軟體執行的步驟進一步包括一計算硬碟驅動器總容量的步驟。
7.根據權利要求5所述的方法,其特徵在於,所述電腦系統儲存於存儲器的電腦軟體執行的步驟進一步包括一計算硬碟驅動器的柱面的數值的步驟。
8.如權利要求7所述的方法,其特徵在於,所述計算硬碟驅動器的柱面數值的步驟藉所述硬碟驅動器的總容量除以磁頭的數值及每磁軌的磁段的數值來完成。
9.根據權利要求7所述的方法,其特徵在於,所述計算硬碟驅動柱面數值的步驟藉比較硬碟驅動器各分隔區的柱面數值及選出其中最大數值來完成。
10.一種測試電腦硬碟驅動器型號的裝置,包括存儲器,用以儲存電腦軟體及供電腦系統執行儲存於存儲器的電腦軟體以執行以下步驟A、電腦系統讀取其一硬碟驅動的一分隔表的數據;B、電腦系統藉所述分隔表的數據計算出硬碟驅動器的磁頭數、每磁軌的磁段數與柱面數;而得到電腦系統中硬碟驅動器的型號。
11.一種測試電腦硬碟驅動器型號的裝置,包括一存儲器,用以儲存一電腦軟體及供電腦系統執行儲存於存儲器的電腦軟體以執行以下步驟A、電腦系統讀取其一硬體的分隔表的籤名數據、至少一個分隔區的磁段起始址與結束地址、磁頭的起始地址與結束地址、柱面的起始地址與結束地址、分隔區的起始地址及分隔區的磁段數;B、所述電腦系統藉所述籤名數據判定硬碟驅動器是否設定分隔區,並藉硬碟驅動器設定分隔區時所設定的一參數表換算出硬碟驅動器的磁頭及每磁軌的磁段的數值;而得到電腦系統中的型號。
12.一種測試電腦硬碟驅動器型號的裝置,包括一存儲器,用以儲存一電腦軟體及供電腦系統執行儲存於存儲器的電腦軟體以執行以下步驟A、電腦系統讀取其一硬碟驅動器的分隔表的一籤名數據、至少一個分隔區的磁段起始址與結束地址、磁頭的起始地址與結束地址、柱面的起始地址與結束地址、分隔區的起始地址及分隔區的磁段數;B、所述電腦系統藉籤名數據判定硬碟驅動器是否設定分隔區,並藉硬碟驅動器設定分隔區時所設定的一參數表換算出該硬碟驅動器的磁頭及每磁軌的磁段的數值;C、電腦系統向所述硬碟驅動器下達一鑑定磁碟驅動器指令,並藉硬碟驅動器傳回一的參數作為計算該硬碟驅動器的柱面數值的依據;而得到該電腦系統中硬碟驅動器的型號。
全文摘要
測試電腦硬碟驅動器型號的方法及裝置,尤指一種藉硬碟格式化時所設定的參數表換算出硬碟驅動器的磁頭及每磁軌的磁段的數值,並以電腦系統向硬碟驅動器下達一鑑定磁碟驅動器指令後,以該指令傳回的數值來判斷該硬碟驅動器的類型,並計算出柱面數,進而得知該硬碟驅動器型號的方法。藉此方法完成的電腦軟體可儲存於存儲器或電腦的基本輸入輸出系統的硬體裝置內,於電腦啟動時,即可通過該軟體自動測試出硬碟驅動器的型號。
文檔編號G06F17/00GK1136187SQ9610241
公開日1996年11月20日 申請日期1996年2月17日 優先權日1995年2月17日
發明者蔣方平, 陳德榮, 林俊賢 申請人:宏碁電腦股份有限公司