專利名稱:閃存陣列存儲(chǔ)器的限制性分區(qū)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對(duì)二級(jí)物理存儲(chǔ)設(shè)備的限制性分區(qū)方法,尤其涉及一種對(duì)閃 存陣列存儲(chǔ)器的限制性分區(qū)方法。
背景技術(shù):
超級(jí)操作系統(tǒng)允許計(jì)算機(jī)用戶從二級(jí)物理存儲(chǔ)設(shè)備中裝載一個(gè)或多個(gè)操作系 統(tǒng)到內(nèi)存中去。實(shí)際上這一選擇把用戶從必須購買只適用一個(gè)操作系統(tǒng)的軟件中解 放出來,而用戶可以享受多個(gè)操作系統(tǒng)所帶來的好處。而超級(jí)操作系統(tǒng)的基石是存儲(chǔ)設(shè)備的虛擬化,二級(jí)物理存儲(chǔ)設(shè)備被分割成若 干邏輯盤,每個(gè)邏輯盤均包含一個(gè)單獨(dú)的操作系統(tǒng)。然而這些邏輯盤必須是穩(wěn)定剛 性的以使操作系統(tǒng)不會(huì)同其它邏輯盤混淆或交換數(shù)據(jù),除非是用戶要求的數(shù)據(jù)交 換。若能提供一個(gè)允許的限制性分區(qū)和支持虛擬化存儲(chǔ)的機(jī)制,對(duì)現(xiàn)有技術(shù)來說是 非常有益的。通常情況下, 一個(gè)磁盤驅(qū)動(dòng)器接收不同來源(如BIOS或不同操作系統(tǒng)的特定 設(shè)備驅(qū)動(dòng)程序)的地址訪問請求。如果使用分區(qū)和存儲(chǔ)虛擬化支持,那么無論訪問 請求來源于何處,限制對(duì)所有的相關(guān)邏輯盤以外的二級(jí)存儲(chǔ)地址的訪問是非常重要 的。因此提供這樣一個(gè)無論其地址的訪問請求來源于何處,都支持限制性分區(qū)和支 持虛擬化存儲(chǔ)的機(jī)制對(duì)現(xiàn)有技術(shù)來說是非常有益的。當(dāng)一個(gè)計(jì)算機(jī)系統(tǒng)受病毒干擾,病毒通過系統(tǒng)自帶功能和地址請求侵入整個(gè)系統(tǒng)。通過限制訪問一個(gè)二級(jí)物理存儲(chǔ)設(shè)備的其中一段,用戶就可以把病毒限制在 設(shè)備的那個(gè)部份,而保護(hù)了其余的存儲(chǔ)設(shè)備數(shù)據(jù)。因此提供一個(gè)能把病毒限制在設(shè) 備中一個(gè)已定義的區(qū)域里的二級(jí)物理存儲(chǔ)設(shè)備也是有益的。同樣的,當(dāng)一些操作系統(tǒng),如Windows操作系統(tǒng)系列,是從二級(jí)存儲(chǔ)裝載到 主內(nèi)存,為了與它的特別需求相配,它重新配置并壟斷了整個(gè)系統(tǒng),包括二級(jí)物理 存儲(chǔ)設(shè)備。如果另有一個(gè)操作系統(tǒng)在相同的物理設(shè)備里與它共存,那么必須限制這些操作系統(tǒng)對(duì)包含了別的操作系統(tǒng)的二級(jí)物理存儲(chǔ)設(shè)備地址塊的任何區(qū)域的訪問。 因此對(duì)于現(xiàn)有技術(shù)來說,提供這樣的一個(gè)可以限制訪問一個(gè)預(yù)先設(shè)定的區(qū)域的二級(jí) 物理存儲(chǔ)設(shè)備是有益的。當(dāng)一個(gè)計(jì)算機(jī)系統(tǒng)被多個(gè)用戶在不同的時(shí)間使用時(shí),沒有一個(gè)獨(dú)立于操作系統(tǒng)外的方法可以保護(hù)一個(gè)用戶的數(shù)據(jù)不被其他用戶使用。例如,通常家長使用的商 務(wù)電腦,如果允許孩子在同一個(gè)系統(tǒng)里面玩游戲,他們的重要數(shù)據(jù)就無法得到不受 損的保證。對(duì)于現(xiàn)有技術(shù)來說,提供一個(gè)獨(dú)立于任何操作系統(tǒng)外的,可以限制訪問 一個(gè)預(yù)先設(shè)定的區(qū)域的二級(jí)存儲(chǔ)設(shè)備是很有益的。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種閃存陣列存儲(chǔ)器的限制性分區(qū)方法,能使閃存陣 列存儲(chǔ)器在固件水平上虛擬化,閃存陣列存儲(chǔ)器的控制器能根據(jù)最底層邊界的實(shí)際 位置而自動(dòng)調(diào)整所接收到的每個(gè)地址請求。本發(fā)明的技術(shù)方案為本發(fā)明揭示了一種閃存陣列存儲(chǔ)器的限制性分區(qū)方法,包括(1) 將閃存陣列存儲(chǔ)器分區(qū)成一個(gè)或多個(gè)邏輯盤;(2) 將該些邏輯盤中的地址邊界設(shè)置成該閃存陣列存儲(chǔ)器的地址邊界;(3) 對(duì)該閃存陣列存儲(chǔ)器接收到的地址請求中的目標(biāo)地址進(jìn)行調(diào)整校準(zhǔn);(4) 將調(diào)整校準(zhǔn)后的地址與當(dāng)前操作系統(tǒng)控制下的邏輯盤中的地址邊界進(jìn)行比較,以確保調(diào)整校準(zhǔn)后的地址位于地址邊界內(nèi)。上述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其中,步驟(3)的地址請求的調(diào) 整校準(zhǔn)是在閃存陣列存儲(chǔ)器的固件上實(shí)施的。上述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其中,步驟(3)進(jìn)一步包括從地址請求中提取目標(biāo)地址;提取邏輯盤的最底層邊界地址;在該最底層邊界地址之上加上該目標(biāo)地址,形成調(diào)整校準(zhǔn)后的翻譯地址。 上述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其中,步驟(4)進(jìn)一步包括 提取邏輯盤的最底層邊界地址和最上層邊界地址;將接收到的物理地址與提取的最底層邊界地址和最上層邊界地址作比較,對(duì)于處于最底層邊界地址和最上層邊界地址之外的物理地址,限制訪問閃存陣列存儲(chǔ) 器的該物理地址。上述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其中,步驟(2)進(jìn)一步包括發(fā)送至少一個(gè)接口命令到閃存陣列存儲(chǔ)器,該接口命令把該些邏輯盤的地址 邊界設(shè)置成該閃存陣列存儲(chǔ)器的地址邊界。上述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其中,該接口命令包括最底層邊 界命令和最上層邊界命令。上述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其中,該接口命令中嵌有永久位, 該永久位用以控制相關(guān)邏輯盤的地址邊界是否是可更改的。上述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其中,該接口命令中嵌有密碼位, 該密碼位用以控制相關(guān)邏輯盤的地址邊界是否是可更改的。上述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其中,該些邏輯盤的地址空間由 該閃存陣列存儲(chǔ)器中多個(gè)不連續(xù)的地址段組成。本發(fā)明對(duì)比現(xiàn)有技術(shù)有如下的有益效果本發(fā)明通過用戶在固件水平上確定 和更改閃存陣列存儲(chǔ)器的地址邊界使之成為位于該閃存陣列存儲(chǔ)器中的一個(gè)邏輯 盤的地址邊界。因?yàn)檫@樣的邊界定義是在物理設(shè)備的固件水平上實(shí)施的,每一個(gè)地 址訪問請求,不論其來源,也不管是哪一個(gè)軟件組件發(fā)出的請求,都是受固件規(guī)定 的界限限制的。本發(fā)明的邏輯盤能把其最底層的地址作為其零地址,盡管這個(gè)地址 可能不是真正位于物理設(shè)備的絕對(duì)零地址上。為了使固件水平的物理設(shè)備虛擬化, 物理設(shè)備的控制器根據(jù)最底層邊界的實(shí)際位置自動(dòng)調(diào)整所接收到的地址請求。相較 于現(xiàn)有技術(shù),本發(fā)明能限制訪問一個(gè)內(nèi)部預(yù)先設(shè)定的區(qū)域,因而也能保護(hù)所有其他 數(shù)據(jù)免遭災(zāi)害性的損害。本發(fā)明能支持限制性分區(qū)以及存儲(chǔ)虛擬化。無論地址請求 來源于何處,都能支持這些分區(qū)的存儲(chǔ)虛擬化并獨(dú)立于任何操作系統(tǒng)之外。本發(fā)明 可使閃存陣列存儲(chǔ)器包含多于一個(gè)的引導(dǎo)塊,每個(gè)引導(dǎo)塊有一個(gè)分開的獨(dú)立的設(shè)備 區(qū),使得主引導(dǎo)塊在受損的情況下也能正常工作。而且,本發(fā)明能將病毒限制于一 個(gè)預(yù)先設(shè)定的內(nèi)部區(qū)域內(nèi)。
圖1是閃存陣列存儲(chǔ)器的原理圖。6圖2是本發(fā)明的閃存陣列存儲(chǔ)器的限制性分區(qū)方法的較佳實(shí)施例的流程圖。圖3是圖2的限制性分區(qū)方法中的一個(gè)子流程圖。圖4是圖2的限制性分區(qū)方法中的另一個(gè)子流程圖。圖5是本發(fā)明的接口命令的一個(gè)較佳實(shí)施例的結(jié)構(gòu)圖。圖6A、 6B是本發(fā)明的接口命令的另一較佳實(shí)施例的結(jié)構(gòu)圖。圖7是本發(fā)明的接口命令的又一較佳實(shí)施例的結(jié)構(gòu)圖。圖8是本發(fā)明的接口命令的又一較佳實(shí)施例的結(jié)構(gòu)圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。閃存陣列存儲(chǔ)器的結(jié)構(gòu)請參見申請人的另一份申請文件中的描述(申請?zhí)枮?200710171787.8,申請日為2007年12月5日,發(fā)明名稱為"一種閃存陣列存儲(chǔ)器")。 圖1示出了閃存陣列存儲(chǔ)器的結(jié)構(gòu)。請參見圖1,閃存陣列存儲(chǔ)器1包括物理輸入 /輸出接口 10、閃存陣列控制器12、閃存陣列14。當(dāng)然,陣列存儲(chǔ)器還可以包括 容納閃存陣列控制器12的印刷電路板(未圖示)和外殼(未圖示)。閃存陣列控 制器12內(nèi)設(shè)置塊映射單元120。閃存陣列14由閃存模塊141、閃存模塊142…… 閃存模塊14N等多個(gè)閃存模塊組成,可以是如圖1所示的平行并列,也可以是其他 的排列方式。物理輸入/輸出接口 10與外界進(jìn)行數(shù)據(jù)傳輸,這種數(shù)據(jù)傳輸是基于邏輯地址 進(jìn)行的。外界包括存儲(chǔ)設(shè)備、讀寫設(shè)備、總線結(jié)構(gòu)等。物理輸入/輸出接口 10包括 USB接口、 SATA接口、 IDE接口、 eSATA接口、 ATA接口其中之一。例如當(dāng)閃存陣 列存儲(chǔ)器1同計(jì)算機(jī)連接時(shí),接口 IO與主機(jī)的物理存儲(chǔ)總線相互作用,并在運(yùn)行 期把主機(jī)的輸入/輸出請求轉(zhuǎn)換成邏輯的讀寫命令。接口 io也處理總線特定命令, 如那些發(fā)現(xiàn)和初始化設(shè)備的命令。 一旦收到存儲(chǔ)總線的讀寫命令,它們將被裝置的 接口 IO翻譯。從物理輸入/輸出接口 10以邏輯地址接收到的數(shù)據(jù),需要存儲(chǔ)在閃存陣列14 的其中一個(gè)閃存模塊中。由于接口 IO與內(nèi)部的各個(gè)閃存模塊是基于物理地址尋址 的,閃存陣列控制器12中的塊映射單元120負(fù)責(zé)將該邏輯地址映射到物理地址。 數(shù)據(jù)基于映射后的物理地址存儲(chǔ)在對(duì)應(yīng)的閃存模塊上。類似的,當(dāng)存儲(chǔ)在某一閃存模塊的數(shù)據(jù)通過接口 10向外傳輸時(shí),也需要通過塊映射單元120將內(nèi)部的物理地 址映射到外部的邏輯地址。塊映射單元120的映射方式有兩種。塊映射單元120可以把并列的閃存模塊 所組成的閃存陣列作為線性的可尋址塊的獨(dú)立陣列。例如,假設(shè)每個(gè)閃存模塊的容 量為256個(gè)物理塊,則第一個(gè)邏輯塊包括邏輯地址0 255,第二個(gè)邏輯塊包括邏 輯地址256 511,依此類推。但對(duì)于大批量線性數(shù)據(jù)轉(zhuǎn)移來說,其總體性能受到 其中任何一個(gè)獨(dú)立存儲(chǔ)模塊的吞吐量的限制。塊映射單元120可同時(shí)平行存儲(chǔ)閃存模塊。例如,假設(shè)裝置1使用4個(gè)平行 的閃存模塊(即N=4),把第一個(gè)邏輯塊放在第一個(gè)閃存模塊中,第二個(gè)邏輯塊 放在第二個(gè)閃存模塊中,第三個(gè)邏輯塊放在第三個(gè)閃存模塊中,第四個(gè)邏輯塊放在 第四個(gè)閃存模塊中。這樣存儲(chǔ)器能支持的有效吞吐量是每個(gè)單獨(dú)閃存模塊的4倍。 假設(shè)N是閃存模塊的數(shù)目,邏輯地址A對(duì)應(yīng)的物理塊位置是在閃存模塊(AmodN) 中。圖2示出了本發(fā)明的閃存陣列存儲(chǔ)器的限制性分區(qū)方法。請參見圖2,下面是 對(duì)該方法中各步驟的詳細(xì)描述。步驟S10:將閃存陣列存儲(chǔ)器l分區(qū)成一個(gè)或多個(gè)邏輯盤。其中每一個(gè)邏輯盤 是閃存陣列存儲(chǔ)器1的一部分。步驟S12:將這些邏輯盤中的地址邊界設(shè)置成閃存陣列存儲(chǔ)器1的地址邊界。這一步驟是將閃存陣列存儲(chǔ)器1的物理地址定義為某一邏輯盤的地址邊界。 具體的說,發(fā)送至少一個(gè)接口命令到閃存陣列存儲(chǔ)器l,接口命令將邏輯盤的地址 邊界設(shè)置成閃存陣列存儲(chǔ)器1的地址邊界。圖5示出了接口命令的一般結(jié)構(gòu)。如圖 5所示,相關(guān)邏輯盤的地址邊界200嵌入在接口命令52里并轉(zhuǎn)移到閃存陣列存儲(chǔ) 器1中。接口命令的約定包含在閃存陣列存儲(chǔ)器1的閃存陣列控制器12上,因而 閃存陣列存儲(chǔ)器1能存儲(chǔ)相關(guān)邏輯盤的邊界地址。為了識(shí)別該接口命令,這種識(shí)別 代碼和操作將需要加入到閃存陣列存儲(chǔ)器1的固件或控制器12上,加入這樣代碼 的方法是現(xiàn)有技術(shù)。在一個(gè)實(shí)施例中,接口命令52可以包括兩個(gè)命令圖6A所示的最底層邊界 命令54和圖6B所示的最上層邊界命令56。相關(guān)邏輯盤的最底層邊界地址202嵌 入在最底層邊界命令54里并轉(zhuǎn)移到閃存陣列存儲(chǔ)器1中,將閃存陣列存儲(chǔ)器1的一個(gè)物理地址設(shè)置成相關(guān)邏輯盤的最底層邊界。相關(guān)邏輯盤的最上層邊界地址204 嵌入在最上層邊界命令56里并轉(zhuǎn)移到閃存陣列存儲(chǔ)器1中,將閃存陣列存儲(chǔ)器1 的一個(gè)物理地址設(shè)置成相關(guān)邏輯盤的最上層邊界。較佳的,可以在接口命令中嵌入永久位以控制相關(guān)邏輯盤的地址邊界是否是 可更改的。如圖5所示, 一個(gè)永久位212被嵌入在接口命令52中,并被轉(zhuǎn)換到閃 存陣列存儲(chǔ)器1里。永久位212控制了相關(guān)邏輯盤的永久性地址邊界直到電腦系統(tǒng) 被硬復(fù)位。如果永久位212不被激活,那么相關(guān)邏輯盤的地址邊界隨后可以被任何 適當(dāng)命令所改變,如果永久位212被激活,那么相關(guān)邏輯盤的地址邊界是不可變的, 除非該電腦系統(tǒng)下次被硬復(fù)位。激活永久位212被閃存陣列存儲(chǔ)器1接收后,閃存 陣列存儲(chǔ)器1在舊的接口命令52完成之前停止實(shí)現(xiàn)新的接口命令52,除非相關(guān)的 電腦系統(tǒng)被硬復(fù)位。對(duì)于包含了最底層邊界命令54和最上層邊界命令56的接口命 令52,永久位214嵌入在最底層邊界命令54中,永久位216也嵌入在最上層邊界 命令56中。較佳的,可以在接口命令中嵌入密碼位以控制相關(guān)邏輯盤的地址邊界是否是 可更改的。如圖5所示,密碼位218被嵌入在接口命令52中并被轉(zhuǎn)換到閃存陣列 存儲(chǔ)器1里。在這一實(shí)施例中,閃存陣列存儲(chǔ)器1在它的控制器12上包括了一個(gè) 數(shù)據(jù)域。在閃存陣列存儲(chǔ)器1接收到密碼位218后,把密碼位218與存儲(chǔ)在數(shù)據(jù)域 中的數(shù)據(jù)加以比較。除非在數(shù)據(jù)域里沒有存儲(chǔ)數(shù)據(jù)(這種情況下密碼位218是通過 存儲(chǔ)來保存在數(shù)據(jù)域中的),或者除非密碼位218與存儲(chǔ)在數(shù)據(jù)域的數(shù)據(jù)相吻合, 閃存陣列存儲(chǔ)器1在接口命令52完成之前停止實(shí)現(xiàn)新的接口命令52。對(duì)于包含了 最底層邊界命令54和最上層邊界命令56的接口命令52,密碼位220嵌入在最底 層邊界命令54中,密碼位222也嵌入在最上層邊界命令56中。較佳的,可以結(jié)合永久位和密碼位對(duì)相關(guān)邏輯盤的地址邊界是否可更改進(jìn)行 控制。如果密碼位218與存儲(chǔ)在數(shù)據(jù)域的數(shù)據(jù)不吻合,接口命令52的實(shí)施在它完 成之前被中斷,訪問相關(guān)邏輯盤被禁止,改變相關(guān)邏輯盤的地址邊界也被禁止。如 果密碼位218與存儲(chǔ)在數(shù)據(jù)域的數(shù)據(jù)相吻合,或者如果在數(shù)據(jù)域中無數(shù)據(jù)保存,那 么永久位212將被檢查。如果在數(shù)據(jù)域中沒有數(shù)據(jù)保存,那么密碼位218就被保存 在數(shù)據(jù)域中。如果永久位212沒有被激活,當(dāng)密碼位218與存儲(chǔ)在數(shù)據(jù)域中的數(shù)據(jù) 吻合或在數(shù)據(jù)域中沒有數(shù)據(jù)時(shí),相關(guān)邏輯盤的地址邊界可能被任何隨后的適當(dāng)命令或該電腦系統(tǒng)的硬復(fù)位改變。如果永久位212被激活,當(dāng)密碼位218與數(shù)據(jù)域的數(shù) 據(jù)吻合或數(shù)據(jù)域中沒有數(shù)據(jù)時(shí),直到下次電腦系統(tǒng)被硬復(fù)位之前,相關(guān)邏輯盤的地 址邊界被設(shè)置成永久不可改變的。接口命令較佳的可包括一些預(yù)留區(qū)域,例如圖5所示的接口命令52的保留區(qū) 域224、圖6A所示的最底層邊界命令54的保留區(qū)域226以及圖6B所示的最上層 邊界命令56的保留區(qū)域228。相關(guān)邏輯盤的地址空間可以由閃存陣列存儲(chǔ)器l中多個(gè)不連讀的地址段組成。 可以由如下的幾個(gè)方式來實(shí)現(xiàn)。請參見圖7,這樣的指定是在接口命令內(nèi)提供的。接口命令52仍然包括一個(gè) 命令代碼206、 一個(gè)永久位212、 一個(gè)保留區(qū)域224和一個(gè)密碼位218。同時(shí),接 口命令52也包括了一系列范圍領(lǐng)域(范圍數(shù))230和一個(gè)在每個(gè)范圍領(lǐng)域230里 的最底層和最上層地址232。范圍數(shù)230提供物理地址的不同不連續(xù)地址段的數(shù)量, 在范圍領(lǐng)域230中標(biāo)明的是每個(gè)地址段里的最底層和最上層地址。請參見圖8,指定多個(gè)不連續(xù)的地址段由嵌入在接口命令52中的多位234提 供。接口命令52仍然包括一個(gè)命令代碼206、 一個(gè)永久位212、 一個(gè)保留區(qū)域224、 一個(gè)密碼位218和一個(gè)地址邊界領(lǐng)域200。此外,接口命令52也包括了一個(gè)多位 234,多位234的激活標(biāo)志了相關(guān)邏輯盤由閃存陣列存儲(chǔ)器1中的多個(gè)不連續(xù)的物 理地址段組成。當(dāng)多位234被激活,閃存陣列存儲(chǔ)器1中的控制器12就會(huì)明白 除了嵌入在當(dāng)前接口命令52里的地址段外,相關(guān)邏輯盤還包括最近一次電腦系統(tǒng) 的硬復(fù)位后或者上次在不激活的多位234時(shí)成功地執(zhí)行接口命令52后存儲(chǔ)在控制 器12中的多個(gè)地址段。在執(zhí)行一個(gè)包括多個(gè)不連續(xù)區(qū)域的接口命令52后,相關(guān)邏輯盤的邏輯大小等 于在相關(guān)邏輯盤里的所有不連續(xù)的地址段大小的總和,相關(guān)邏輯盤的邏輯地址空間 從邏輯地址0延伸到其邏輯地址終點(diǎn)。選定的物理地址段在邏輯地址中依起始地址 大小遞增順序出現(xiàn),重疊的物理地址段是不允許的。步驟S14:對(duì)閃存陣列存儲(chǔ)器接收到的地址請求中的目標(biāo)地址進(jìn)行調(diào)整校準(zhǔn), 這一步驟是在閃存陣列存儲(chǔ)器的控制器12上實(shí)施的,具有固件水平。這一步驟的細(xì)化請參見圖3,下面是對(duì)步驟S14的細(xì)化流程的描述。步驟S140:從地址請求中提取目標(biāo)地址。步驟S142:提取當(dāng)前邏輯盤的最底層邊界地址,這個(gè)地址通常存儲(chǔ)在閃存陣 列存儲(chǔ)器的控制器12上。步驟S144:在最底層邊界地址上加上目標(biāo)地址,形成調(diào)整校準(zhǔn)后的翻譯地址。亦即,翻譯地址=目標(biāo)地址+最底層邊界地址。通過把目標(biāo)地址加入到相關(guān) 邏輯盤的最底層邊界地址上,調(diào)整校準(zhǔn)步驟把一個(gè)虛擬地址(基于最底層邊界是位于閃存陣列存儲(chǔ)器的虛擬o地址)上的目標(biāo)地址翻譯到一個(gè)真實(shí)地址(基于閃存陣 列存儲(chǔ)器的真實(shí)絕對(duì)o物理地址)上去。這樣的翻譯使得閃存陣列存儲(chǔ)器1不用犧牲自身的地址精確度,把二級(jí)存儲(chǔ) 虛擬化,把相關(guān)邏輯盤的最底層和最上層之間的地址范圍當(dāng)做整個(gè)的二級(jí)存儲(chǔ)范 圍。閃存陣列存儲(chǔ)器1的二級(jí)存儲(chǔ)通過這個(gè)翻譯和虛擬化,把容量有效縮小到(最 上層地址邊界_最底層地址邊界+1)。步驟S16:將調(diào)整校準(zhǔn)后的地址與當(dāng)前操作系統(tǒng)控制下的邏輯盤中的地址邊界進(jìn)行比較,以確保調(diào)整校準(zhǔn)后的地址位于地址邊界內(nèi)。這一步驟的細(xì)化請參見圖4,下面結(jié)合圖4對(duì)步驟S16進(jìn)行更詳細(xì)的描述。步驟S160:提取當(dāng)前邏輯盤的最底層邊界地址和最上層邊界地址。這兩個(gè)邊界地址通常是從閃存陣列存儲(chǔ)器1的控制器12上獲得。步驟S162:判斷接收到的地址請求中的物理地址與提取到的最底層邊界地址和最上層邊界地址作比較,如果物理地址位于最底層邊界地址和最上層邊界地址之間,則進(jìn)入步驟S164,否則轉(zhuǎn)入步驟S166。步驟S164:對(duì)該地址請求不做限制,允許訪問目標(biāo)地址。 步驟S166:限制該地址請求對(duì)其中的物理地址的訪問。本發(fā)明的閃存陣列存儲(chǔ)器的限制性分區(qū)方法可以有如下方面的實(shí)際應(yīng)用。 和閃存虛擬操作系統(tǒng)以及其他操作系統(tǒng)的關(guān)系本發(fā)明可應(yīng)用于超級(jí)操作系統(tǒng),這種操作系統(tǒng)在美國專利申請?zhí)?0/080, 485 的美國專利申請被詳細(xì)描述,以下簡稱閃存虛擬操作系統(tǒng)(Flash VOS)。除此之 外,本發(fā)明也能應(yīng)用在典型的計(jì)算機(jī)系統(tǒng)中。邏輯盤都是由閃存陣列控制器12來設(shè)置的,每一個(gè)邏輯盤都是閃存陣列存儲(chǔ) 器1的一個(gè)子集。而操作系統(tǒng)借助閃存陣列控制器12,只對(duì)閃存陣列控制器12所提供的那個(gè)邏輯盤進(jìn)行數(shù)據(jù)存取。閃存陣列控制器12負(fù)責(zé)為操作系統(tǒng)設(shè)置起始/ 結(jié)束地址、塊大小以及總?cè)萘康?。?duì)于閃存超級(jí)操作系統(tǒng),在任何時(shí)候用戶設(shè)置或改變默認(rèn)的操作系統(tǒng)后,設(shè) 置的邊界命令將自動(dòng)被閃存超級(jí)操作系統(tǒng)激活。通過選擇一個(gè)特定的操作系統(tǒng)作為 計(jì)算機(jī)的默認(rèn)操作系統(tǒng),用戶事實(shí)上確定含有默認(rèn)操作系統(tǒng)的邏輯盤的相關(guān)最底層 和最上層邊界。在默認(rèn)操作系統(tǒng)被設(shè)置或改變并在整個(gè)電腦系統(tǒng)硬復(fù)位后,閃存超級(jí)操作系統(tǒng)的BIOS ROM激活一個(gè)設(shè)置邊界的命令。設(shè)置邊界命令的相關(guān)部份把包 含默認(rèn)操作系統(tǒng)的邏輯盤的最底層地址或把邊界設(shè)置為可以在相關(guān)物理設(shè)備中被 訪問的最底層地址。設(shè)置邊界命令的相關(guān)部份把包含默認(rèn)操作系統(tǒng)的邏輯盤的最上 層地址設(shè)置為可以訪問相關(guān)物理設(shè)備的最上層地址或邊界。默認(rèn)操作系統(tǒng)(和每一 個(gè)操作系統(tǒng))的最底層和最上層地址存儲(chǔ)在虛擬目錄表中的BIOS R0M水平上,這 樣,正確的最底層和最上層邊界的邏輯地址就能被訪問并發(fā)送到閃存陣列存儲(chǔ)器。永久位設(shè)置本發(fā)明的程序是嵌入在閃存陣列存儲(chǔ)器的控制器固件中的。用戶可以選擇當(dāng) 永久位是設(shè)置在每個(gè)接口命令上,在電腦系統(tǒng)的一個(gè)硬復(fù)位后即時(shí)被超級(jí)操作系統(tǒng) (如閃存虛擬操作系統(tǒng))激活。而且一旦永久位被設(shè)置,除了相關(guān)超級(jí)操作系統(tǒng)(硬 復(fù)位后),沒有軟件能通過這樣的命令控制或改變最底層和/或最上層地址的設(shè)置。 這樣,被最底層和最上層邊界定義的可訪問的邏輯盤僅能被超級(jí)操作系統(tǒng)(如閃存 虛擬操作系統(tǒng))及相關(guān)硬復(fù)位功能修改。永久位的功能提供了在一個(gè)物理設(shè)備的固 定的邏輯盤分區(qū)中,讓多個(gè)操作系統(tǒng)共存于一臺(tái)電腦是很重要的。密碼保護(hù)密碼保護(hù)允許用戶禁止訪問閃存陣列存儲(chǔ)器的特定區(qū)域,并禁止改變這個(gè)特 定區(qū)域的邊界。不像永久位功能在電腦系統(tǒng)一個(gè)硬復(fù)位后就無效了,密碼位的功能 即使在電腦有一個(gè)硬復(fù)位后還是有效的,這是因?yàn)槊艽a位存儲(chǔ)在數(shù)據(jù)域的控制器 中。多個(gè)不連續(xù)區(qū)域允許選擇多個(gè)不連續(xù)的物理段的選項(xiàng),可以支持操作系統(tǒng)訪問一個(gè)單一磁盤 的多個(gè)不連續(xù)的區(qū)域,能允許如閃存虛擬系統(tǒng)一樣的超級(jí)操作系統(tǒng)在一個(gè)特定的物 理磁盤上讓一個(gè)特定的操作系統(tǒng)訪問多個(gè)分區(qū)。和Partition Magic (磁盤分區(qū))軟件的比較(1) 本發(fā)明能在固件水平上讓用戶自行定義和改變二級(jí)存儲(chǔ)物理設(shè)備(如閃 存陣列存儲(chǔ)器)的地址邊界,Partition Magic軟件無法在固件水平上定義二級(jí)存 儲(chǔ)物理設(shè)備的地址邊界。(2) Partition Magic創(chuàng)建的分區(qū)不能限制其他操作系統(tǒng)對(duì)該分區(qū)的訪問, 從而無法保證用戶的數(shù)據(jù)不被其他用戶破壞。而本發(fā)明能使對(duì)閃存陣列存儲(chǔ)器的地 址訪問限制在特定的一段存儲(chǔ)空間內(nèi),禁止訪問該特定存儲(chǔ)空間以外的存儲(chǔ)空間, 因而能保護(hù)所有其他數(shù)據(jù)免遭災(zāi)害性的損害。(3) 此外利用Partition Magic進(jìn)行分區(qū)的二級(jí)物理存儲(chǔ)設(shè)備僅包含一個(gè)主 引導(dǎo)分區(qū),如果主引導(dǎo)分區(qū)受到損壞,通常整個(gè)物理設(shè)備就會(huì)因?yàn)闊o法被訪問而變 得無用。而本發(fā)明可以使一個(gè)物理設(shè)備包含多個(gè)引導(dǎo)塊,每個(gè)引導(dǎo)塊是獨(dú)立分開的 區(qū)域(邏輯盤)。這樣不管主引導(dǎo)塊是否受損,用戶都能通過啟動(dòng)多個(gè)引導(dǎo)塊中的 一個(gè)來使用設(shè)備。上述實(shí)施例是提供給本領(lǐng)域普通技術(shù)人員來實(shí)現(xiàn)或使用本發(fā)明的,本領(lǐng)域普 通技術(shù)人員可在不脫離本發(fā)明的發(fā)明思想的情況下,對(duì)上述實(shí)施例做出種種修改或 變化,因而本發(fā)明的保護(hù)范圍并不被上述實(shí)施例所限,而應(yīng)該是符合權(quán)利要求書提 到的創(chuàng)新性特征的最大范圍。
權(quán)利要求
1. 一種閃存陣列存儲(chǔ)器的限制性分區(qū)方法,包括(1)將閃存陣列存儲(chǔ)器分區(qū)成一個(gè)或多個(gè)邏輯盤;(2)將該些邏輯盤中的地址邊界設(shè)置成該閃存陣列存儲(chǔ)器的地址邊界;(3)對(duì)該閃存陣列存儲(chǔ)器接收到的地址請求中的目標(biāo)地址進(jìn)行調(diào)整校準(zhǔn);(4)將調(diào)整校準(zhǔn)后的地址與當(dāng)前操作系統(tǒng)控制下的邏輯盤中的地址邊界進(jìn)行比較,以確保調(diào)整校準(zhǔn)后的地址位于地址邊界內(nèi)。
2、 根據(jù)權(quán)利要求1所述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其特征在于, 步驟(3)的地址請求的調(diào)整校準(zhǔn)是在閃存陣列存儲(chǔ)器的固件上實(shí)施的。
3、 根據(jù)權(quán)利要求1所述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其特征在于, 步驟(3)進(jìn)一步包括從地址請求中提取目標(biāo)地址; 提取邏輯盤的最底層邊界地址;在該最底層邊界地址之上加上該目標(biāo)地址,形成調(diào)整校準(zhǔn)后的翻譯地址。
4、 根據(jù)權(quán)利要求l所述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其特征在于, 步驟(4)進(jìn)一步包括提取邏輯盤的最底層邊界地址和最上層邊界地址;將接收到的物理地址與提取的最底層邊界地址和最上層邊界地址作比較,對(duì) 于處于最底層邊界地址和最上層邊界地址之外的物理地址,限制訪問閃存陣列存儲(chǔ) 器的該物理地址。
5、 根據(jù)權(quán)利要求1所述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其特征在于, 步驟(2)進(jìn)一步包括發(fā)送至少一個(gè)接口命令到閃存陣列存儲(chǔ)器,該接口命令把該些邏輯盤的地址 邊界設(shè)置成該閃存陣列存儲(chǔ)器的地址邊界。
6、 根據(jù)權(quán)利要求5所述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其特征在于, 該接口命令包括最底層邊界命令和最上層邊界命令。
7、 根據(jù)權(quán)利要求5所述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其特征在于, 該接口命令中嵌有永久位,該永久位用以控制相關(guān)邏輯盤的地址邊界是否是可更改 的。
8、 根據(jù)權(quán)利要求5所述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其特征在于, 該接口命令中嵌有密碼位,該密碼位用以控制相關(guān)邏輯盤的地址邊界是否是可更改 的。
9、 根據(jù)權(quán)利要求l所述的閃存陣列存儲(chǔ)器的限制性分區(qū)方法,其特征在于, 該些邏輯盤的地址空間由該閃存陣列存儲(chǔ)器中多個(gè)不連續(xù)的地址段組成。
全文摘要
本發(fā)明公開了一種閃存陣列存儲(chǔ)器的限制性分區(qū)方法,能使閃存陣列存儲(chǔ)器在固件水平上虛擬化,閃存陣列存儲(chǔ)器的控制器能根據(jù)最底層邊界的實(shí)際位置而自動(dòng)調(diào)整所接收到的每個(gè)地址請求。其技術(shù)方案為方法包括將閃存陣列存儲(chǔ)器分區(qū)成一個(gè)或多個(gè)邏輯盤;將該些邏輯盤中的地址邊界設(shè)置成該閃存陣列存儲(chǔ)器的地址邊界;對(duì)該閃存陣列存儲(chǔ)器接收到的地址請求中的目標(biāo)地址進(jìn)行調(diào)整校準(zhǔn);將調(diào)整校準(zhǔn)后的地址與當(dāng)前操作系統(tǒng)控制下的邏輯盤中的地址邊界進(jìn)行比較,以確保調(diào)整校準(zhǔn)后的地址位于地址邊界內(nèi)。本發(fā)明應(yīng)用于存儲(chǔ)設(shè)備領(lǐng)域。
文檔編號(hào)G06F12/14GK101276311SQ20081003713
公開日2008年10月1日 申請日期2008年5月8日 優(yōu)先權(quán)日2008年5月8日
發(fā)明者林貽基, 英 胡, 舒曼·拉菲扎德 申請人:蘇州壹世通科技有限公司