專(zhuān)利名稱(chēng):存取存儲(chǔ)器信息的方法、存儲(chǔ)器存取控制裝置暨電腦可存取的記錄媒體的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種存儲(chǔ)器存取方法,特別是指一種精簡(jiǎn)存取存儲(chǔ)器信息的方法。背錄技術(shù)電可擦除只讀存儲(chǔ)器(Electrically Erasable Programmable Read-Only Memory, EEPROM)常被使用在電腦系統(tǒng)中,用以記錄電腦系統(tǒng)信息,例如基本輸入 輸出系統(tǒng)(Basic I叩ut Output System, BIOS)偵錯(cuò)信息,或者記錄電腦輔助設(shè)備 的使用狀態(tài)等,因此,電腦系統(tǒng)往往會(huì)使用多個(gè)EEPROM來(lái)記錄這些信息。以往為了能夠方便存取EEPROM的數(shù)據(jù),都會(huì)使用許多的變數(shù)來(lái)表示EEPROM 的信息,例如中間集成電路(Inter-Integrated Circuit, IIC)地址、EEPROM容 量和REEPROM位移值等。但是,這些變數(shù)是暫時(shí)記錄在隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM)中,當(dāng)電腦關(guān)機(jī)后,這些變數(shù)就會(huì)消失,以致于下次開(kāi)機(jī)時(shí), 就必需再重新檢測(cè)這些EEPROM以取得這些變數(shù)值。所以,為了能夠在下次幵機(jī)后,能夠直接取得這些變數(shù)值,就必需把這些變數(shù)值記錄下來(lái)。如
圖1及圖2所示,是目前記錄上述變數(shù)值的作法,以四個(gè)EEPROM為例, 每個(gè)EEPROM容量為2000h,每個(gè)EEPROM都有自己的IIC地址、位移值以及存取 順位,這些信息被儲(chǔ)存在第一個(gè)被存取的EEPROM中,而IIC地址需占用1位組 (00h),位移值要占用2位組(01h及02h) , EEPROM的序號(hào)(存取順位)要占用1位 組(03h),所以,當(dāng)電腦系統(tǒng)要存取這些EEPROM的地址時(shí),先通過(guò)IIC控制器讀 取第一個(gè)EEPROM中關(guān)于位組(00h 03h)的數(shù)據(jù),即可得知實(shí)際要被存取的EEPROM 的地址以進(jìn)行存取。然而,上述做法雖然可以完整記錄EEPROM的信息,卻浪費(fèi)了 EEPROM的存儲(chǔ)空間,而且IIC控制器需要執(zhí)行四次寫(xiě)入動(dòng)作,才能將EEPROM信息全部記錄在 EEPR0M中,而且要執(zhí)行四次讀取動(dòng)作,才能得到四個(gè)地址(00h 03h)中的EEPROM 的全部信息,尤其是當(dāng)電腦系統(tǒng)使用更多個(gè)EEPROM時(shí),則需要使用更多的EEPROM 地址來(lái)記錄EEPR0M的信息,除了更浪費(fèi)EEPR0M的空間外,而且浪費(fèi)電腦系統(tǒng)的 作業(yè)時(shí)間。發(fā)明內(nèi)容因此,本發(fā)明的目的,主要是提供一種能簡(jiǎn)化存儲(chǔ)器信息存取步驟的存 取存儲(chǔ)器信息的方法。于是,本發(fā)明存取存儲(chǔ)器信息的方法,用以由多個(gè)存儲(chǔ)裝置中取得實(shí)際要存取的地址信息,該方法包括(A)記錄這些存儲(chǔ)裝置的一總存取位移值;(B) 在對(duì)這些存儲(chǔ)裝置進(jìn)行存取前,讀取該總存取位移值;(C)根據(jù)該總存取位移 值及這些存儲(chǔ)裝置的容量,求得實(shí)際要存取的該存儲(chǔ)裝置及其一存取位移值; 及(D)在對(duì)這些存儲(chǔ)裝置結(jié)束存取前,根據(jù)最后被存取的該存儲(chǔ)裝置及其存取 位移值,計(jì)算該總存取位移值并回存。較佳地,在步驟(A)中,該總存取位移值被記錄在第一個(gè)被存取的存儲(chǔ)裝 置中。較佳地,步驟(C)包括(Cl)判斷該總存取位移值是否大于第一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去第一個(gè)被存取的存儲(chǔ)裝置的容量, 并進(jìn)入步驟(C2),否則,判定該第一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存 儲(chǔ)裝置,并以該總存取位移值做為該第一個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C2)判斷該總存取位移值是否大于下一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去該下一個(gè)被存取的存儲(chǔ)裝置的容 量,并進(jìn)入步驟(C3),否則,判定該下一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取 的存儲(chǔ)裝置,并以該總存取位移值做為該下一個(gè)被存取的存儲(chǔ)裝置的存取位 移值;及(C3)重復(fù)步驟(C2)。較佳地,在步驟(D)中,總存取位移值為最后被存取的存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容量相加總后,再加上最后被存取的存儲(chǔ)裝置的存取位移值。較佳地,在步驟(A)中還記錄一表示這些存儲(chǔ)裝置是否曾經(jīng)被存滿(mǎn)并且覆 蓋原數(shù)據(jù)的覆蓋值,在步驟(B)中還讀取該覆蓋次數(shù),并且步驟(C)包括(CO)判斷覆蓋值是否等于零,若是,進(jìn)行步驟(C1),否則,進(jìn)行步驟(C2); (Cl)判斷該總存取位移值是否大于第一個(gè)被存取的存儲(chǔ)裝置的容量,若是,令總存取位移值等于總存取位移值減去第一個(gè)被存取的存儲(chǔ)裝置的容量,并進(jìn)入步驟(C3),否則,判定該第一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存 儲(chǔ)裝置,并以該總存取位移值做為該第一個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C2)判斷該總存取位移值是否大于第二個(gè)被存取的存儲(chǔ)置的容量,若是, 令總存取位移值等于總存取位移值減去第二個(gè)被存取的存儲(chǔ)裝置的容量,并 進(jìn)入步驟(C3),否則,判定該第二個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存儲(chǔ) 裝置,并以該總存取位移值做為該第二個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C3)判斷該總存取位移值是否大于下一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去該下一個(gè)被存取的存儲(chǔ)裝置的容 量,并進(jìn)入步驟(C4),否則,判定該下一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取 的存儲(chǔ)裝置,并以該總存取位移值做為該下一個(gè)被存取的存儲(chǔ)裝置的存取位 移值;及(C4)重復(fù)步驟(C3)。較佳地,在步驟(C)與步驟(D)之間還包括步驟(E):在這些存儲(chǔ)裝置被存 取過(guò)程中,判斷是否存取最后一個(gè)存儲(chǔ)裝置且該存取位移值大于或等于最后 一個(gè)存儲(chǔ)裝置的容量,若是,判斷是否要繼續(xù)存取,若是,則由第二個(gè)存儲(chǔ) 裝置開(kāi)始存取,并記錄覆蓋值,否則,停止存取這些存儲(chǔ)裝置。如上述,較佳地,步驟(D)還包括(Dl)判斷覆蓋值是否大于零,若是,進(jìn)行步驟(D2),否則,進(jìn)行步驟(D3);(D2)令總存取位移值等于總存儲(chǔ)裝置容量乘以覆蓋次數(shù)加上最后被存取的 存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容量再加上最后被存取的存儲(chǔ)裝置的存取位 移值;(D3)令總存取位移值等于最后被存取的存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容 量再加上最后被存取的存儲(chǔ)裝置的存取位移值;及(D4)回存該總存取位移值及覆蓋次數(shù)。此外,本發(fā)明實(shí)現(xiàn)上述方法的電腦可存取的記錄媒體,其中記錄有一存 取存儲(chǔ)器信息的程序,用以存取多個(gè)存儲(chǔ)裝置,該程序包括(A)記錄這些存 儲(chǔ)裝置的一總存取位移值;(B)在對(duì)這些存儲(chǔ)裝置進(jìn)行存取前,讀取該總存取 位移值;(C)根據(jù)該總存取位移值及這些存儲(chǔ)裝置的容量求得實(shí)際要存取的該 存儲(chǔ)裝置及其一存取位移值;及(D)在對(duì)這些存儲(chǔ)裝置結(jié)束存取前,根據(jù)最后 被存取的該存儲(chǔ)裝置及其存取位移值,計(jì)算該總存取位移值并回存。再者,本發(fā)明實(shí)現(xiàn)上述方法的存儲(chǔ)器存取控制裝置,載置有一存取存儲(chǔ) 器信息的程序,用以存取多個(gè)存儲(chǔ)裝置,并執(zhí)行步驟包括(A)記錄這些存儲(chǔ) 裝置的一總存取位移值;(B)在對(duì)這些存儲(chǔ)裝置進(jìn)行存取前,讀取該總存取位 移值;(C)根據(jù)該總存取位移值及這些存儲(chǔ)裝置的容量求得實(shí)際要存取的該存 儲(chǔ)裝置及其一存取位移值;及(D)在對(duì)這些存儲(chǔ)裝置結(jié)束存取前,根據(jù)最后被 存取的該存儲(chǔ)裝置及其存取位移值,計(jì)算該總存取位移值并回存。較佳地,該總存取位移值記錄在該存儲(chǔ)器存取控制裝置中。較佳地,該總存取位移值記錄在第一個(gè)被存取的存儲(chǔ)裝置中。其中,這些存儲(chǔ)裝置是EEPROM,且該存儲(chǔ)器存取控制裝置是一微處理 器,該微處理器中包含有一用以存取這些EEPROM的IIC控制器。其中,這些存儲(chǔ)裝置是硬盤(pán),且該存儲(chǔ)器存取控制裝置是一用以存取這 些硬盤(pán)的硬盤(pán)控制器。其中,這些存儲(chǔ)裝置是一種電腦關(guān)機(jī)后,仍有電源持續(xù)供應(yīng)的RAM存儲(chǔ) 器,且該存儲(chǔ)器存取控制裝置是用以存取這些RAM存儲(chǔ)器的北橋芯片。本發(fā)明由于只需記錄這些存儲(chǔ)裝置的總存取位移值,并通過(guò)存儲(chǔ)器存取 控制裝置中程序的運(yùn)算,根據(jù)總存取位移值及存儲(chǔ)裝置的容量,即可找到實(shí) 際要存取的存儲(chǔ)裝置地址,不但可以節(jié)省存儲(chǔ)裝置的存儲(chǔ)空間,而且可以減 少存取存儲(chǔ)裝置的步驟,加快存儲(chǔ)裝置的存取速度。圖1是EEPR0M的容量示意圖;圖2是在EEPR0M中記錄EEPR0M的地址信息示意圖;圖3是本發(fā)明存取存儲(chǔ)裝置的方法的第一較佳實(shí)施例,其中顯示本實(shí)施例在 第一個(gè)被存取的EEPR0M中記錄總存取位移值的示意圖;圖4是本實(shí)施例的方法應(yīng)用在一用以存取多個(gè)EEPR0M的微處理器中的示意 圖,其中顯示微處理器存取四個(gè)EEPROM的硬件配置;圖5是本實(shí)施例存取EEPR0M的地址信息的流程圖;圖6是本實(shí)施例在存取EEPR0M之前,求得實(shí)際要被存取的EEPR0M的存取位 移值的流程圖;圖7是本實(shí)施例在EEPROM被存取過(guò)程中,判斷EEPR0M是否有存滿(mǎn)而覆蓋數(shù)據(jù)的情況并記錄覆蓋次數(shù)的流程圖;圖8是本實(shí)施例在結(jié)束存取EEPR0M之前,求得總存取位移值的流程圖;圖9是本發(fā)明存取存儲(chǔ)裝置的方法的第二較佳實(shí)施例,其顯示本方法應(yīng)用在一用以存取多個(gè)硬盤(pán)的硬盤(pán)控制器的示意圖,其中顯示硬盤(pán)控制器存取兩個(gè)硬盤(pán)的硬件配置;及圖10是本發(fā)明存取存儲(chǔ)裝置的方法的第三較佳實(shí)施例,其顯示本方法應(yīng)用 在一用以存取多個(gè)RAM的北橋芯片的示意圖,其中顯示北橋芯片存取兩個(gè)RAM的 硬件配置。
具體實(shí)施方式
有關(guān)本發(fā)明的前述及其他技術(shù)內(nèi)容、特點(diǎn)與功效,在以下配合參考附圖 的三個(gè)較佳實(shí)施例的詳細(xì)說(shuō)明中,將可清楚的呈現(xiàn)。參閱圖3 圖5所示,是本發(fā)明存取存儲(chǔ)器信息的方法的第一較佳實(shí)施例, 本方法是以一載置在電腦可存取的記錄媒體中的電腦程序來(lái)實(shí)現(xiàn),且如圖4 所示,該電腦程序(或記錄媒體本身)是已預(yù)設(shè)在一微處理器41(其中包含存取 EEPR0M的IIC控制器)中,使該微處理器41可對(duì)多個(gè)(本實(shí)施例以四個(gè)為 例)EEPR0M存儲(chǔ)裝置(下稱(chēng)EEPR0M1、 EEPR0M2、 EEPR0M3、 EEPR0M4)進(jìn)行地址 信息的存取,以讓電腦可以獲得實(shí)際要存取的EEPR0M的地址以進(jìn)行數(shù)據(jù)存取。如圖3所示,本實(shí)施例的EEPR0M1 4具有相同的容量2000h,因此,四 個(gè)EEPR0M全部的容量為8000h。所以,如圖5的步驟51,本實(shí)施例只要記錄 這四個(gè)EEPR0M的總存取位移值(EEPR0M offset)即可,在本實(shí)施例中,由于總存取位移值需要占用兩個(gè)位組,所以總存取位移值被記錄在第一個(gè)被存取的EEPROM(EEPR0M1)的第0個(gè)和第1個(gè)地址00h、 Olh中,當(dāng)然,要使用幾個(gè) 位置來(lái)記錄EEPROM的總存取位移值,主要是看使用多少個(gè)EEPROM以及EEPROM 的存儲(chǔ)容量而定,EEPROM越多容量越大,例如80000000h則需使用更多空間, 例如4個(gè)地址(00h 03h)來(lái)記錄總存取位移值。再者,總存取位移值除了記錄在EEPR0M1外,其實(shí)也可以被記錄在微處 理器41中,以進(jìn)一步節(jié)省EEPROM的空間。此外,為了得知EEPROM是否曾經(jīng)存滿(mǎn)數(shù)據(jù)而且有被覆蓋的記錄,本實(shí)施 例還可在EEPR0M1的第三地址02h記錄一覆蓋(re-cover)值。因此,如圖5步驟52,當(dāng)微處理器41收到存取EEPROM存儲(chǔ)裝置的指令 時(shí),微處理器41進(jìn)行步驟53,讀取記錄在第一個(gè)EEPROM (EEPROM 1)的地址00h、 Olh的總存取位移值及地址02h的覆蓋值,然后,進(jìn)行步驟54,根據(jù)該總存 取位移值、覆蓋值及這些存儲(chǔ)裝置的容量,求得實(shí)際要存取的該存儲(chǔ)裝置及 其一存取位移值。關(guān)于步驟54的詳細(xì)步驟,參見(jiàn)圖6所示:,首先,步驟601,微處理器41 判斷覆蓋值是否為零?若是,表示這些EEPROM未曾存滿(mǎn)且數(shù)據(jù)未曾被覆蓋, 故進(jìn)入步驟602,判斷總存取位移值是否大于第一個(gè)被存取的EEPROM(EEPR0M1) 的存儲(chǔ)容量(2000h) 若是,則如步驟603,令總存取位移值=總存取位移值_第 一個(gè)被存取的EEPROM的存儲(chǔ)容量,然后,進(jìn)入步驟604,判斷總存取位移值 是否大于下一個(gè)被存取的EEPROM(EEPR0M2)的存儲(chǔ)容量?若是,執(zhí)行步驟605, 令總存取位移值=總存取位移值-下一個(gè)被存取的EEPROM的存儲(chǔ)容量,然后, 再重復(fù)步驟604,直到總存取位移值小于下一個(gè)被存取的EEPROM,即表示該 EEPROM就是要被存取的存儲(chǔ)裝置,則如步驟606,判定該下一個(gè)被存取的存 儲(chǔ)裝置為實(shí)際要被存取的存儲(chǔ)裝置,并以該總存取位移值做為該下一個(gè)被存 取的存儲(chǔ)裝置的存取位移值。再回到步驟602,當(dāng)總存取位移值小于第一個(gè)被存取的EEPROM時(shí),表示 第一個(gè)EEPROM就是實(shí)際要被存取的存儲(chǔ)裝置,所以,執(zhí)行步驟607,判定第 一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存儲(chǔ)裝置,并以該總存取位移值做 為第一個(gè)被存取的存儲(chǔ)裝置的存取位移值。反之,回到步驟601,當(dāng)覆蓋值不為零,也即大于零時(shí),表示這些EEPROM 曾經(jīng)被存滿(mǎn)且數(shù)據(jù)被覆蓋,所以,為了讓記錄在第一個(gè)EEPROM的總存取位移 值及覆蓋值不致被覆蓋,當(dāng)這些EEPROM已經(jīng)被存滿(mǎn)而仍然要被重復(fù)存取時(shí), 本實(shí)施例會(huì)令存取動(dòng)作由這些EEPROM的第二個(gè)EEPROM開(kāi)始覆蓋數(shù)據(jù)。所以, 在此情況下,如步驟608,微處理器41會(huì)判斷總存取位移值是否大于第二個(gè) 被存取的EEPR0M(EEPR0M2)的容量,若是,則如步驟609,令總存取位移值= 總存取位移值-第二個(gè)被存取的EEPR0M的容量,然后,進(jìn)行如上所述的604 606步驟。否則,進(jìn)到步驟607,以該總存取位移值做為第二個(gè)被存取的存儲(chǔ)裝置的存取位移值。所以,回到圖5的步驟54,當(dāng)微處理器41找到實(shí)際要被存取的EEPR0M 及其存取位移值(即存取地址)后,即可進(jìn)行步驟55,根據(jù)電腦指令,由該EEPROM 的存取位移值所指到的地址開(kāi)始,對(duì)這些EEPROM存儲(chǔ)裝置進(jìn)行數(shù)據(jù)存取。而在數(shù)據(jù)存取過(guò)程中,可能由目前EEPROM存取到下一個(gè)EEPROM,因此, 被存取的EEPROM及存取位移值會(huì)一直改變,而這個(gè)存取信息(即那一個(gè)EEPROM 被存取以及其存取位移值)會(huì)被暫存在微處理器41中,且為了得知這些EEPROM 是否已經(jīng)存滿(mǎn)(overflow),以便記錄下來(lái),如圖7所示,在EEPROM被存取的 過(guò)程中,微處理器41進(jìn)行步驟701,隨時(shí)判斷是否己存取到最后一個(gè) EEPR0M(EEPR0M4)且其存取位移值已大于或等于最后一個(gè)EEPROM的存儲(chǔ)容量? 若是,則如步驟702,發(fā)出訊息(例如閃燈或通過(guò)應(yīng)用程序顯示訊息)通知使用 者,以詢(xún)問(wèn)使用者是否繼續(xù)存取并覆蓋數(shù)據(jù)。所以,在步驟702中,若使用者不想EEPROM原存數(shù)據(jù)被覆蓋而下指令停 止存取時(shí),微處理器41將執(zhí)行步驟703,停止對(duì)EEPROM進(jìn)行存取動(dòng)作。而當(dāng)使用者下指令繼續(xù)存取時(shí),微處理器41會(huì)進(jìn)行步驟704,重新將存 取位移值設(shè)為零,并從第二個(gè)EEPROM開(kāi)始進(jìn)行數(shù)據(jù)存取動(dòng)作,同時(shí)記錄(暫 存)覆蓋值=1,并如步驟705,在EEPROM被持續(xù)存取的過(guò)程中,重復(fù)步驟701 704,以隨時(shí)監(jiān)看EEPROM是否已存滿(mǎn)而對(duì)應(yīng)更新覆蓋值。因此,如步驟56,當(dāng)微處理器41對(duì)EEPROM的存取動(dòng)作已結(jié)束時(shí),微處 理器41會(huì)進(jìn)行步驟57,根據(jù)最后被存取的EEPROM及其存取位移值,計(jì)算總 存取位移值,其計(jì)算方式如圖8所示,首先,如步驟81判斷覆蓋值是否大于零?若是,則執(zhí)行步驟82,令總存取位移值-總存儲(chǔ)裝置(EEPR0Ml EEPR0M4) 的容量X覆蓋值+最后被存取的存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容量+最后被存取的存儲(chǔ)裝置的存取位移值。否則,執(zhí)行步驟83,令總存取位移值=最后被 存取的存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容量+最后被存取的存儲(chǔ)裝置的存取位 移值。然后,進(jìn)行圖5的步驟58,將計(jì)算得到的總存取位移值以及覆蓋值回 存至第一個(gè)EEPROM的00h 02h地址(或回存至微處理器41),結(jié)束存取EEPR0M 的動(dòng)作才算完成。當(dāng)然,若不考慮EEPROM是否存滿(mǎn)的情況,也即若原先即預(yù)設(shè)當(dāng)EEPROM 存滿(mǎn)即不能再被存取時(shí),就不需另外再記錄上述的覆蓋值,在此情形下,在 求取實(shí)際要存取的EEPROM及其存取位移值時(shí),上述的步驟601、 608及609 可以省略,且在EEPROM被存取過(guò)程中,可以省去圖7的判斷流程步驟,而當(dāng) 要結(jié)束存取EEPROM而計(jì)算總存取位移值時(shí),圖8的步驟81、 82即可省去。由上述說(shuō)明可知,本實(shí)施例只需記錄這些EEPROM的總存取位移值,即可 通過(guò)微處理器41中程序的運(yùn)算,找到實(shí)際要存取的EEPROM地址,如此,不 但可以節(jié)省EEPR0M的存儲(chǔ)空間,而且可以減少存取EEPROM的步驟,加快EEPROM 的存取速度。此外,雖然本實(shí)施例的EEPROM的容量相同,不過(guò),即使EEPR0M的容量 不同,上述方法也同樣適用,于此不再贅述。再參見(jiàn)圖9,是本發(fā)明存取存儲(chǔ)器信息的方法的第二較佳實(shí)施例,與第一 實(shí)施例不同的是,第一實(shí)施例是應(yīng)用在存取多個(gè)EEPR0M的微處理器41上, 而本實(shí)施例則是應(yīng)用在存取多個(gè)硬盤(pán)(以HDD 0、 HDD l表示)的硬盤(pán)控制器上, 讓硬盤(pán)控制器可以簡(jiǎn)化對(duì)硬盤(pán)地址信息的存取步驟。且由于硬盤(pán)是以區(qū)段 (sector,每一 sector512 Bytes)做為存取單位,因此,硬盤(pán)的總存取位移值 會(huì)被記錄在第一個(gè)硬盤(pán)(HDD O)的第一個(gè)Sector,當(dāng)然,總存取位移值也可記 錄在硬盤(pán)控制器中。至于本實(shí)施例的存取硬盤(pán)的地址信息的流程與第一實(shí)施 例并無(wú)二致,因此不再詳述。另參見(jiàn)圖10,是本發(fā)明存取存儲(chǔ)器信息的方法的第三較佳實(shí)施例,與第 一實(shí)施例不同的是,本實(shí)施例是應(yīng)用在電腦的北橋(芯片)上,讓北橋可以簡(jiǎn) 化存取RAM存儲(chǔ)器(以RAM 0、 RAM 1兩個(gè)RAM為例)地址信息的步驟。而在此所謂的RAM存儲(chǔ)器是指一種電腦關(guān)機(jī)后,仍有電源持續(xù)供應(yīng)的RAM存儲(chǔ)器, 因此,其中記錄的數(shù)據(jù)在電腦關(guān)機(jī)后并不會(huì)消失。且如同第一實(shí)施例,RAM的 總存取位移值會(huì)被記錄在第一個(gè)被存取的RAM (RAM O)之前幾個(gè)位置(地址), 例如總RAM的容量為512M Bytes=512xl06=512000000=lE848000h,則需要占 用前6個(gè)Bytes。此外,RAM的總存取地址也可被記錄在北橋中,以節(jié)省RAM 的存儲(chǔ)空間。而本實(shí)施例的存取RAM的地址信息的流程與第一實(shí)施例相同, 故不再重述。但以上所述的僅為本發(fā)明的較佳實(shí)施例,當(dāng)不能以此限定本發(fā)明實(shí)施的 范圍,即凡根據(jù)本發(fā)明申請(qǐng)權(quán)利要求范圍及發(fā)明說(shuō)明內(nèi)容所作的簡(jiǎn)單的等效 變化與修飾,皆仍屬本發(fā)明專(zhuān)利涵蓋的范圍內(nèi)。
權(quán)利要求
1. 一種存取存儲(chǔ)器信息的方法,用以由多個(gè)存儲(chǔ)裝置中取得實(shí)際要存取的地址信息,該方法包括(A)記錄這些存儲(chǔ)裝置的一總存取位移值;(B)在對(duì)這些存儲(chǔ)裝置進(jìn)行存取前,讀取該總存取位移值;(C)根據(jù)該總存取位移值及這些存儲(chǔ)裝置的容量,求得實(shí)際要存取的該存儲(chǔ)裝置及其一存取位移值;及(D)在對(duì)這些存儲(chǔ)裝置結(jié)束存取前,根據(jù)最后被存取的該存儲(chǔ)裝置及其存取位移值,計(jì)算該總存取位移值并回存。
2. 根據(jù)權(quán)利要求1所述的存取存儲(chǔ)器信息的方法,其特征在于在步驟(A) 中,該總存取位移值被記錄在第一個(gè)被存取的存儲(chǔ)裝置中。
3. 根據(jù)權(quán)利要求1所述的存取存儲(chǔ)器信息的方法,其特征在于步驟(C)包括(Cl)判斷該總存取位移值是否大于第一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去第一個(gè)被存取的存儲(chǔ)裝置的容量, 并進(jìn)入步驟(C2),否則,判定該第一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存 儲(chǔ)裝置,并以該總存取位移值做為該第一個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C2)判斷該總存取位移值是否大于下一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去該下一個(gè)被存取的存儲(chǔ)裝置的容 量,并進(jìn)入步驟(C3),否則,判定該下一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取 的存儲(chǔ)裝置,并以該總存取位移值做為該下--個(gè)被存取的存儲(chǔ)裝置的存取位 移值;及(C3)重復(fù)步驟(C2)。
4. 根據(jù)權(quán)利要求1所述的存取存儲(chǔ)器信息的方法,其特征在于步驟(D)的 總存取位移值為最后被存取的存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容量相加總 后,再加上最后被存取的存儲(chǔ)裝置的存取位移值。
5. 根據(jù)權(quán)利要求2所述的存取存儲(chǔ)器信息的方法,其特征在于,在步驟(A) 中還記錄一表示這些存儲(chǔ)裝置是否曾經(jīng)被存滿(mǎn)并且覆蓋原數(shù)據(jù)的覆蓋值,在步驟(B)中還讀取該覆蓋次數(shù),并且步驟(C)包括(CO)判斷覆蓋值是否等于零,若是,進(jìn)行步驟(C1),否則,進(jìn)行步驟(C2);(Cl)判斷該總存取位移值是否大于第一個(gè)被存取的存儲(chǔ)裝置的容量,若是,令總存取位移值等于總存取位移值減去第一個(gè)被存取的存儲(chǔ)裝置的容量,并進(jìn)入步驟(C3),否則,判定該第一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存 儲(chǔ)裝置,并以該總存取位移值做為該第一個(gè)被存取的存儲(chǔ)裝置的存取位移值; (C2)判斷該總存取位移值是否大于第二個(gè)被存取的存儲(chǔ)置的容量,若是,令總存取位移值等于總存取位移值減去第二個(gè)被存取的存儲(chǔ)裝置的容量,并進(jìn)入步驟(C3),否則,判定該第二個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存儲(chǔ)裝置,并以該總存取位移值做為該第二個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C3)判斷該總存取位移值是否大于下一個(gè)被存取的存儲(chǔ)裝置的容量,若是,令總存取位移值等于總存取位移值減去該下一個(gè)被存取的存儲(chǔ)裝置的容量,并進(jìn)入步驟(C4),否則,判定該下一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取 的存儲(chǔ)裝置,并以該總存取位移值做為該下一個(gè)被存取的存儲(chǔ)裝置的存取位 移值;及(C4)重復(fù)步驟(C3)。
6. 根據(jù)權(quán)利要求5所述的存取存儲(chǔ)器信息的方法,其特征在于在步驟(C) 與步驟(D)之間還包括步驟(E):在這些存儲(chǔ)裝置被存取過(guò)程中,判斷是否存取 最后一個(gè)存儲(chǔ)裝置且該存取位移值大于或等于最后一個(gè)存儲(chǔ)裝置的容量,若 是,判斷是否要繼續(xù)存取,若是,則由第二個(gè)存儲(chǔ)裝置開(kāi)始存取,并記錄覆 蓋值,否則,停止存取這些存儲(chǔ)裝置。
7. 根據(jù)權(quán)利要求6所述的存取存儲(chǔ)器信息的方法,其特征在于步驟(D)還 包括(Dl)判斷覆蓋值是否大于零,若是,進(jìn)行步驟(D2),否則,進(jìn)行步驟(D3);(D2)令總存取位移值等于總存儲(chǔ)裝置容量乘以覆蓋次數(shù)加上最后被存取的 存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容量再加上最后被存取的存儲(chǔ)裝置的存取位 移值;(D3)令總存取位移值等于最后被存取的存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容 量再加上最后被存取的存儲(chǔ)裝置的存取位移值;及(D4)回存該總存取位移值及覆蓋次數(shù)。
8. —種電腦可存取的記錄媒體,其中記錄有一存取存儲(chǔ)器信息的程序,用 以存取多個(gè)存儲(chǔ)裝置,該程序包括(A) 記錄這些存儲(chǔ)裝置的一總存取位移值;(B) 在對(duì)這些存儲(chǔ)裝置進(jìn)行存取前,讀取該總存取位移值;(C) 根據(jù)該總存取位移值及這些存儲(chǔ)裝置的容量,求得實(shí)際要存取的該存 儲(chǔ)裝置及其一存取位移值;及(D) 在對(duì)這些存儲(chǔ)裝置結(jié)束存取前,根據(jù)最后被存取的該存儲(chǔ)裝置及其 存取位移值,計(jì)算該總存取位移值并回存。
9. 根據(jù)權(quán)利要求8所述電腦可存取的記錄媒體,其特征在于在步驟(A)中, 該總存取位移值記錄在第一個(gè)被存取的存儲(chǔ)裝置中。
10. 根據(jù)權(quán)利要求8所述電腦可存取的記錄媒體,其特征在于步驟(C)包括 下列步驟(Cl)判斷該總存取位移值是否大于第一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去第一個(gè)被存取的存儲(chǔ)裝置的容量, 并進(jìn)入步驟(C2),否則,判定該第一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存 儲(chǔ)裝置,并以該總存取位移值做為該第一個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C2)判斷該總存取位移值是否大于下一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去該下一個(gè)被存取的存儲(chǔ)裝置的容 量,并進(jìn)入步驟(C3),否則,判定該下一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取 的存儲(chǔ)裝置,并以該總存取位移值做為該下一個(gè)被存取的存儲(chǔ)裝置的存取位 移值;及(C3)重復(fù)步驟(C2)。
11. 根據(jù)權(quán)利要求8所述電腦可存取的記錄媒體,其特征在于步驟(D)的總 存取位移值為最后被存取的存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容量加總后,再 加上最后被存取的存儲(chǔ)裝置的存取位移值。
12. 根據(jù)權(quán)利要求9所述電腦可存取的記錄媒體,其特征在于,在步驟(A) 中還記錄一表示這些存儲(chǔ)裝置是否曾經(jīng)被存滿(mǎn)并且覆蓋原數(shù)據(jù)的覆蓋值,在 步驟(B)中還讀取該覆蓋次數(shù),并且步驟(C)包括(CO)判斷覆蓋值是否等于零,若是,進(jìn)行步驟(C1),否則,進(jìn)行步驟(C2);(Cl)判斷該總存取位移值是否大于第一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去第一個(gè)被存取的存儲(chǔ)裝置的容量, 并進(jìn)入步驟(C3),否則,判定該第一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存 儲(chǔ)裝置,并以該總存取位移值做為該第一個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C2)判斷該總存取位移值是否大于第二個(gè)被存取的存儲(chǔ)置的容量,若是, 令總存取位移值等于總存取位移值減去第二個(gè)被存取的存儲(chǔ)裝置的容量,并 進(jìn)入步驟(C3),否則,判定該第二個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存儲(chǔ) 裝置,并以該總存取位移值做為該第二個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C3)判斷該總存取位移值是否大于下一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去該下一個(gè)被存取的存儲(chǔ)裝置的容 量,并進(jìn)入步驟(C4),否則,判定該下一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取 的存儲(chǔ)裝置,并以該總存取位移值做為該下一個(gè)被存取的存儲(chǔ)裝置的存取位 移值;及(C4)重復(fù)步驟(C3)。
13. 根據(jù)權(quán)利要求12所述電腦可存取的記錄媒體,其特征在于在步驟(C) 與步驟(D)之間還包括步驟(E):在這些存儲(chǔ)裝置被存取過(guò)程中,判斷是否存取 最后一個(gè)存儲(chǔ)裝置且該存取位移值大于或等于最后一個(gè)存儲(chǔ)裝置的容量,若 是,判斷是否要繼續(xù)存取,若是,則由第二個(gè)存儲(chǔ)裝置開(kāi)始存取,并記錄覆 蓋值,否則,停止存取這些存儲(chǔ)裝置。
14. 根據(jù)權(quán)利要求13所述電腦可存取的記錄媒體,其特征在于步驟(D)還 包括(Dl)判斷覆蓋值是否大于零,若是,進(jìn)行步驟(D2),否則,進(jìn)行步驟(D3);(D2)令總存取位移值等于總存儲(chǔ)裝置容量乘以覆蓋次數(shù)加上最后被存取的 存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容量再加上最后被存取的存儲(chǔ)裝置的存取位 移值;(D3)令總存取位移值等于最后被存取的存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容 量再加上最后被存取的存儲(chǔ)裝置的存取位移值;及 (D4)回存該總存取位移值及覆蓋次數(shù)。
15. —種存儲(chǔ)器存取控制裝置,載置有一存取存儲(chǔ)器信息的程序,用以存 取多個(gè)存儲(chǔ)裝置,并執(zhí)行步驟包括(A) 記錄這些存儲(chǔ)裝置的一總存取位移值;(B) 在對(duì)這些存儲(chǔ)裝置進(jìn)行存取前,讀取該總存取位移值;(C) 根據(jù)該總存取位移值及這些存儲(chǔ)裝置的容量,求得實(shí)際要存取的該存 儲(chǔ)裝置及其一存取位移值;及(D) 在對(duì)這些存儲(chǔ)裝置結(jié)束存取前,根據(jù)最后被存取的該存儲(chǔ)裝置及其存 取位移值,計(jì)算該總存取位移值并回存。
16. 根據(jù)權(quán)利要求15所述的存儲(chǔ)器存取控制裝置,其特征在于該總存取位移值記錄在該存儲(chǔ)器存取控制裝置中。
17. 根據(jù)權(quán)利要求15所述的存儲(chǔ)器存取控制裝置,其特征在于該總存取位 移值記錄在第一個(gè)被存取的存儲(chǔ)裝置中。
18. 根據(jù)權(quán)利要求15所述的存儲(chǔ)器存取控制裝置,其特征在于步驟(C)包 括下列步驟(Cl)判斷該總存取位移值是否大于第一個(gè)被存取的存儲(chǔ)裝置的容量,若是,令總存取位移值等于總存取位移值減去第一個(gè)被存取的存儲(chǔ)裝置的容量,并進(jìn)入步驟(C2),否則,判定該第一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存 儲(chǔ)裝置,并以該總存取位移值做為該第一個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C2)判斷該總存取位移值是否大于下一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去該下一個(gè)被存取的存儲(chǔ)裝置的容 量,并進(jìn)入步驟(C3),否則,判定該下一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取 的存儲(chǔ)裝置,并以該總存取位移值做為該下一個(gè)被存取的存儲(chǔ)裝置的存取位 移值;及(C3)重復(fù)步驟(C2)。
19. 根據(jù)權(quán)利要求15所述的存儲(chǔ)器存取控制裝置,其特征在于步驟(D)的 總存取位移值為最后被存取的存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容量加總后, 再加上最后被存取的存儲(chǔ)裝置的存取位移值。
20. 根據(jù)權(quán)利要求17所述的存儲(chǔ)器存取控制裝置,其特征在于,在步驟(A) 中還記錄一表示這些存儲(chǔ)裝置是否曾經(jīng)被存滿(mǎn)并且覆蓋原數(shù)據(jù)的覆蓋值,在步驟(B)中還讀取該覆蓋次數(shù),并且步驟(C)包括(CO)判斷覆蓋值是否等于零,若是,進(jìn)行步驟(C1),否則,進(jìn)行步驟(C2); (Cl)判斷該總存取位移值是否大于第一個(gè)被存取的存儲(chǔ)裝置的容量,若是,令總存取位移值等于總存取位移值減去第一個(gè)被存取的存儲(chǔ)裝置的容量,并進(jìn)入步驟(C3),否則,判定該第一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存 儲(chǔ)裝置,并以該總存取位移值做為該第一個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C2)判斷該總存取位移值是否大于第二個(gè)被存取的存儲(chǔ)置的容量,若是, 令總存取位移值等于總存取位移值減去第二個(gè)被存取的存儲(chǔ)裝置的容量,并 進(jìn)入步驟(C3),否則,判定該第二個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取的存儲(chǔ) 裝置,并以該總存取位移值做為該第二個(gè)被存取的存儲(chǔ)裝置的存取位移值;(C3)判斷該總存取位移值是否大于下一個(gè)被存取的存儲(chǔ)裝置的容量,若 是,令總存取位移值等于總存取位移值減去該下一個(gè)被存取的存儲(chǔ)裝置的容 量,并進(jìn)入步驟(C4),否則,判定該下一個(gè)被存取的存儲(chǔ)裝置為實(shí)際要被存取 的存儲(chǔ)裝置,并以該總存取位移值做為該下一個(gè)被存取的存儲(chǔ)裝置的存取位 移值;及(C4)重復(fù)步驟(C3)。
21. 根據(jù)權(quán)利要求20所述的存儲(chǔ)器存取控制裝置,其特征在于在步驟(C) 與步驟(D)之間還包括步驟(E):在這些存儲(chǔ)裝置被存取過(guò)程中,判斷是否存取 最后一個(gè)存儲(chǔ)裝置且該存取位移值大于或等于最后一個(gè)存儲(chǔ)裝置的容量,若 是,判斷是否要繼續(xù)存取,若是,則由第二個(gè)存儲(chǔ)裝置開(kāi)始存取,并記錄覆 蓋值,否則,停止存取這些存儲(chǔ)裝置。
22. 根據(jù)權(quán)利要求21所述的存儲(chǔ)器存取控制裝置,其特征在于步驟(D)還 包括-(Dl)判斷覆蓋值是否大于零,若是,進(jìn)行步驟(D2),否則,進(jìn)行步驟(D3);(D2)令總存取位移值等于總存儲(chǔ)裝置容量乘以覆蓋次數(shù)加上最后被存取的 存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容量再加上最后被存取的存儲(chǔ)裝置的存取位 移值;(D3)令總存取位移值等于最后被存取的存儲(chǔ)裝置之前的所有存儲(chǔ)裝置的容 量再加上最后被存取的存儲(chǔ)裝置的存取位移值;及(D4)回存該總存取位移值及覆蓋次數(shù)。
23. 根據(jù)權(quán)利要求15所述的存儲(chǔ)器存取控制裝置,其特征在于這些存儲(chǔ)裝 置是EEPROM,且該存儲(chǔ)器存取控制裝置是一微處理器,該微處理器中包含 有一用以存取這些EEPROM的IIC控制器。
24. 根據(jù)權(quán)利要求15所述的存儲(chǔ)器存取控制裝置,其特征在于這些存儲(chǔ)裝 置是硬盤(pán),且該存儲(chǔ)器存取控制裝置是一用以存取這些硬盤(pán)的硬盤(pán)控制器。
25. 根據(jù)權(quán)利要求15所述的存儲(chǔ)器存取控制裝置,其特征在于這些存儲(chǔ)裝 置是一種電腦關(guān)機(jī)后,仍有電源持續(xù)供應(yīng)的RAM存儲(chǔ)器,且該存儲(chǔ)器存取控 制裝置是用以存取這些RAM存儲(chǔ)器的北橋芯片。
全文摘要
一種存取存儲(chǔ)器信息的方法,用以由多個(gè)存儲(chǔ)裝置中取得實(shí)際要存取的地址信息,該方法記錄這些存儲(chǔ)裝置的一總存取位移值,并在對(duì)這些存儲(chǔ)裝置進(jìn)行存取前,讀取該總存取位移值,以根據(jù)該總存取位移值及這些存儲(chǔ)裝置的容量,求得實(shí)際要存取的該存儲(chǔ)裝置及其一存取位移值,并在對(duì)這些存儲(chǔ)裝置結(jié)束存取前,根據(jù)最后被存取的該存儲(chǔ)裝置及其存取位移值,計(jì)算該總存取位移值并回存。借此,節(jié)省存儲(chǔ)裝置的存儲(chǔ)空間,減少存取存儲(chǔ)裝置的步驟,因而加快存儲(chǔ)裝置的存取速度。
文檔編號(hào)G06F12/02GK101241470SQ20071000188
公開(kāi)日2008年8月13日 申請(qǐng)日期2007年2月5日 優(yōu)先權(quán)日2007年2月5日
發(fā)明者呂俊琳 申請(qǐng)人:緯創(chuàng)資通股份有限公司