專利名稱:外存儲器的虛擬分隔方法及其裝置的制作方法
技術(shù)領域:
本發(fā)明涉及計算機系統(tǒng)中的外存儲器的管理技術(shù),具體的說涉及一種將外存儲器分隔成多個虛擬子存儲器的方法和裝置。
背景技術(shù):
存儲器的虛擬分隔,指在一個存儲器上邏輯上劃分出多個子存儲器存儲空間,并根據(jù)用途構(gòu)成多個虛擬子存儲器,使得任何時刻多個虛擬子存儲器中只有一個可存取,以達到與物理上的多個存儲器的相同的功能和效果。
將一個存儲器劃分出多個虛擬子存儲器的意義,在于數(shù)據(jù)安全性的提高,即將不同用途的程序和數(shù)據(jù)分別限定在與物理上等價的多個子存儲器中,使不同用途的虛擬子存儲器在任何時候都不能被主機共同使用。這種虛擬分隔與磁盤操作系統(tǒng)中所述的分區(qū)(FDISK)是不同的,分區(qū)技術(shù)構(gòu)造的多個子磁盤(存儲器)對主機系統(tǒng)來講,可以被主機同時訪問,存在的危險是各個分區(qū)之間的安全隱患可被相互傳遞,比如,任何一個分區(qū)感染了病毒,都可能傳染給其他所有分區(qū)。所謂的分區(qū)隱藏技術(shù),只是對操作系統(tǒng)進行欺騙的一種手段,黑客程序和病毒對分區(qū)的訪問并不受操作系統(tǒng)的限制。
另一個好處,可以提供存儲器的讀寫負載平衡和壞的扇區(qū)/磁道屏蔽。通常,外存儲器的絕對0扇區(qū)(第一個扇區(qū))一旦損壞,整個存儲器將無法使用。虛擬分隔技術(shù)使子存儲器的絕對0扇區(qū)可以變動,從而極大提提高了存儲器的可用性。對于頻繁使用的子存儲器,可以調(diào)整其在外存儲器中的物理位置,從而使整個外存儲器能比較平均的被使用,提高使用壽命。
外存儲器的與主機間的并行接口主要是EIDE(增強的IDE)接口和SCSI接口,外存儲器的與主機間的串行接口主要有三種,分別是IEEE 1394,USB和SATA,隨著存儲器的多樣化、高速化、移動化,和小型化,越來越多的開始使用串行接口與主機相連接。外存儲器及裝置現(xiàn)階段主要有硬盤、各種電子盤,各種閃存盤以及各種存儲卡轉(zhuǎn)化而來的等價盤和各種接口的硬盤盒、讀卡器等。
中國專利00114264曾提出了“將一硬盤虛擬成多個彼此隔離獨立子盤的裝置和方法”,該發(fā)明所述的方法通過改寫主機的BIOS系統(tǒng)來實現(xiàn),但現(xiàn)在的操作系統(tǒng),對于硬盤的使用,越來越不依賴BIOS系統(tǒng),這就使得中國專利00114264的方法不再具有比較廣泛的實際意義。
中國專利00114264所述的發(fā)明裝置實施在硬盤與主機硬盤接口之間(參見中國專利00114264說明書圖1,權(quán)利要求1),與主機硬盤接口和硬盤接口高度相關,既要仿真硬盤接口,又要仿真主機硬盤接口,還要在主機硬盤接口和硬盤接口之間接收、轉(zhuǎn)發(fā)數(shù)據(jù),非常復雜,而且接收、轉(zhuǎn)發(fā)數(shù)據(jù)降低了硬盤的性能。另外,該發(fā)明的裝置只針對IDE硬盤,未見其對SCSI硬盤,各種串口(USB、IEEE1394、SATA)硬盤以及所有接口的非硬盤的外存儲器裝置適用性的說明,事實上,SCSI接口,各種串口(USB、IEEE1394、SATA)硬盤和外存儲器裝置的工作方式與IDE硬盤在接口通道處理上有較大甚至本質(zhì)的不同,中國專利00114264所述的發(fā)明裝置缺乏對這些的支持說明。
中國專利00114264所述的發(fā)明裝置所虛擬出來的多個子盤,與實際的應用并不完全一致,現(xiàn)實中,如果用戶愿意,多個物理硬盤是可以同時掛在同一計算機上的,例如不同硬盤間相互數(shù)據(jù)轉(zhuǎn)移的情況。而中國專利00114264不能做到。
發(fā)明內(nèi)容
本發(fā)明提供一種方法和裝置,用于在外存儲器上邏輯劃分出多個連續(xù)或非連續(xù)的子存儲器存儲空間,并根據(jù)用途構(gòu)成多個虛擬子存儲器,每個虛擬子存儲器可以包括一個或多個子存儲器,且任何時刻多個虛擬子存儲器中只有一個可存取,以達到隔離不同應用的目的;虛擬子存儲器具有寫保護功能,且子存儲器之間可以安全共享,該方法支持存儲器內(nèi)存儲單元的更換;另包括系統(tǒng)配置子存儲器,用于提供虛擬分隔配置。所述方法及其裝置實施在外存儲器裝置內(nèi),對外接口內(nèi)側(cè),與接口種類無關。
方法和技術(shù)方案外存儲裝置通過對外接口控制器(110)接受主機系統(tǒng)(100)的命令,并把命令結(jié)果通過對外接口控制器(110)返回給主機系統(tǒng)(100),也就是說,在外存儲裝置對外接口控制器(110)的內(nèi)測,如控制單元(180)的命令解釋器(182)和接口控制模塊(181)之間,我們看到的就是命令和命令結(jié)果,我們只要在這里對命令中的地址信息進行邏輯映射,對命令結(jié)果中關于外存儲裝置物理參數(shù)的信息進行模擬替換,就可以“欺騙”主機系統(tǒng)(100),構(gòu)造一個主機系統(tǒng)(100)認為實際存在的“外存儲裝置”,而實際上只是原來外存儲器上的某一部分存儲空間,通過對外存儲器存儲空間的劃分和管理,就可以將物理的外存儲器虛擬成多個子存儲器。由于在該環(huán)節(jié)避免了直接與主機系統(tǒng)(100)的接口處理,所以不用關心具體的接口類型,同時,由于“映射”和“模擬替換”只是對地址信息和外存儲裝置的物理參數(shù)信息,而這兩部分在外存儲裝置和主機的數(shù)據(jù)傳輸中所占比例非常小,所以對原外存儲裝置性能影響非常小,可以忽略不計。
這里,我們將外存儲器內(nèi)的一塊存儲空間所對應的存儲體部分稱為子存儲器。
外存儲器的存儲空間可以被邏輯劃分為多個連續(xù)或非連續(xù)的空間,也就是說可以被分為多個連續(xù)或非連續(xù)子存儲器;而虛擬子存儲器指主機系統(tǒng)(100)在某一時刻看到的被虛擬分隔的外存儲器,它包括此刻被選擇的子存儲器及其它它可訪問的子存儲器,也就是說,在本發(fā)明中,至少存在兩種情況,虛擬子存儲器可以包括不止一個子存儲器第一種情況是,多個子存儲器被同時選擇,這在本發(fā)明中是通過對多個子存儲指定相同的選擇序號來實現(xiàn);第二種情況是,某個子存儲器并沒被“直接”選擇,但也可能被當前的虛擬子存儲器所使用,在本發(fā)明中,這通過子存儲器之間的共享來實現(xiàn),當一個子存儲器被選擇時,被其共享的子存儲器也將被”間接”選擇。
本發(fā)明所述的方法,用于在外存儲器的存儲空間劃分出多個子存儲器存儲空間,并根據(jù)用途構(gòu)成多個虛擬子存儲器,使得任何時刻多個虛擬子存儲器中只有一個可存取。
所述外存儲器存儲空間的劃分可以是連續(xù)的,也可以是非連續(xù)的,但不重疊;所述任何一個虛擬子存儲器可由一個或多個相臨或不相臨的子存儲器存儲空間構(gòu)成;所述外存儲器的虛擬分隔方法包含以下步驟a.在外存儲器的存儲空間劃分出多個子存儲器存儲空間并把劃分參數(shù)存儲在存儲裝置中的步驟;b.通過子存儲器選擇裝置選擇當前使用的虛擬子存儲器的步驟;c.將數(shù)據(jù)輸入/輸出方法中的相對于當前使用的虛擬子存儲器的地址值轉(zhuǎn)換為外存儲器的絕對物理地址的步驟;d.將數(shù)據(jù)輸出方法中的存儲器的物理參數(shù)用與當前使用的虛擬子存儲器等價的物理參數(shù)替換的步驟;所述外存儲器的虛擬分隔方法,還包括系統(tǒng)配置子存儲器區(qū)的建立方法,該方法用于提供一個安全和“干凈”的系統(tǒng)配置和維護手段,包括如下步驟a.將系統(tǒng)配置子存儲器與子存儲器選擇裝置的一選擇位置建立對應的步驟;b.建立系統(tǒng)配置子存儲器存儲區(qū)空間的步驟;c.建立存儲區(qū)空間分區(qū)結(jié)構(gòu)(DPT)并存儲在存儲區(qū)空間的步驟;d.將系統(tǒng)主引導記錄(MBR)存儲在存儲區(qū)空間的步驟;e.將操作系統(tǒng)或操作系統(tǒng)及工具存儲在存儲區(qū)空間的步驟;f.將配置工具或配置工具及自身升級系統(tǒng)工具存儲在存儲區(qū)空間的步驟;所述外存儲器的虛擬分隔方法,使用如下步驟將一個或多個相臨或不相臨子存儲器的存儲空間形成一個虛擬子存儲器存儲空間a.設置子存儲器共享屬性及子存儲器間共享關系并存儲在存儲裝置中的步驟;b.對所述虛擬子存儲器中的子存儲器空間和被共享的子存儲器空間統(tǒng)一編址的步驟;c.建立共享狀態(tài)下所述虛擬子存儲器的分區(qū)/擴展分區(qū)結(jié)構(gòu)并存儲在存儲裝置中的步驟;d.對共享狀態(tài)下數(shù)據(jù)輸出(讀)方法中的有關虛擬子存儲器的分區(qū)/擴展分區(qū)結(jié)構(gòu)的內(nèi)容進行替換或?qū)蚕頎顟B(tài)下數(shù)據(jù)輸入(寫)方法中的有關虛擬子存儲器的分區(qū)/擴展分區(qū)結(jié)構(gòu)的內(nèi)容進行保護的步驟;為安全考慮,對于被共享的子存儲器,缺省狀態(tài)下為寫保護;所述外存儲器劃分為子存儲器的方法(可同時指定共享關系),包括以下步驟a.在外存儲器的存儲空間上劃分出多個不重疊的子存儲器空間,并把子存儲器空間在外存儲器中的絕對開始位置,絕對結(jié)束位置存儲在存儲裝置中的步驟,該步驟根據(jù)存儲器的容量和用戶的用途,在外存儲器空間上劃分出N個子存儲器空間,N>=1,N個子存儲空間可以是相臨的,也可以是不相臨的,但不能重疊;b.設置子存儲器共享屬性及子存儲器間共享關系并存儲在存儲裝置中的步驟;被劃分的子存儲器可以被定義成共享屬性,并可以指定被哪個或哪幾個子存儲器所共享,具有共享屬性的子存儲器在被共享時,缺省具有只讀屬性,在不被共享時,其讀寫屬性由寫保護狀態(tài)位決定;如果不設置,則缺省為無任何共享屬性和共享關系;c.根據(jù)存儲空間的劃分和共享的設置建立虛擬子存儲器參數(shù)表并存儲在非失記憶體裝置的步驟,所述虛擬子存儲器參數(shù)表包括本存儲器或其存儲單元的特征(序列號或標記),被劃分成的子存儲器個數(shù),每個子存儲器區(qū)的絕對開始位置,絕對結(jié)束位置,該子存儲器可共享的虛擬子存儲器序號等;所述建立當前虛擬子存儲器的方法,包括以下步驟a.讀取子存儲器選擇裝置獲得當前使用的虛擬子存儲器序號并存儲在存儲裝置中;b.讀取對虛擬子存儲器寫保護狀態(tài)并存儲在存儲裝置中;c.讀取共享狀態(tài)并存儲在存儲裝置中的步驟;d.根據(jù)當前使用的虛擬子存儲器區(qū)序號和共享狀態(tài)建立當前虛擬子存儲器參數(shù)表并存儲在存儲裝置的步驟,所述當前虛擬子存儲器參數(shù)表一般包括如下參數(shù)當前使用的子存儲器的絕對開始位置、絕對結(jié)束位置,該子存儲器可共享的虛擬子存儲器的絕對開始位置、絕對結(jié)束位置,總扇區(qū)數(shù),等價的柱面數(shù)、磁頭數(shù)、每磁道扇區(qū)數(shù),可用扇區(qū)數(shù),以及用于加快計算所需要的其他中間數(shù)據(jù),如每個子存儲器或共享的子存儲器的邏輯地址范圍,容量或哈希表等;e.建立與當前虛擬子存儲器等價的虛擬物理參數(shù)表并存儲在存儲裝置中的步驟,虛擬物理參數(shù)表是將原外存儲器的物理參數(shù)表中的總?cè)萘坑卯斍暗奶摂M子存儲器容量(子存儲器與被其共享的子存儲器容量之和)替換,然后以此計算出等價的柱面數(shù)目、磁頭數(shù)目、以及每磁道扇區(qū)數(shù)目及總的可用扇區(qū)數(shù)目等,并用這些參數(shù)替換原外存儲器的物理參數(shù)表中相應的參數(shù)而來;主機系統(tǒng)在查詢外存儲器(虛擬子存儲器)物理參數(shù)時,固件將構(gòu)造的與當前虛擬子存儲器等價的虛擬物理參數(shù)傳遞給主機系統(tǒng);f.建立當前虛擬子存儲器邏輯地址空間的步驟,將當前虛擬子存儲器內(nèi)的子存儲器和被共享的子存儲器的存儲空間邏輯相連,從0開始連續(xù)編址,結(jié)束地址為子存儲器和被共享的子存儲器容量之和減1;當前虛擬子存儲器包括當前使用的子存儲器以及被其共享的子存儲器,后者缺省是只讀的;子存儲器間共享的方法,包括以下步驟a.建立子存儲器在非共享狀態(tài)下分區(qū)/擴展分區(qū)結(jié)構(gòu)并存儲在子存儲器的分區(qū)表/擴展分區(qū)表中;b.讀取共享狀態(tài)并存儲在存儲裝置中;
c.建立共享狀態(tài)下分區(qū)/擴展分區(qū)結(jié)構(gòu)并存儲在存儲裝置中,所述步驟可以是c1.將被共享的子存儲器的分區(qū)中的非擴展分區(qū)依次添加到子存儲器的主引導扇區(qū)里的磁盤分區(qū)表(DPT)中的空閑分區(qū)記錄中;c2.將被共享的子存儲器的分區(qū)中的擴展分區(qū)依次添加到DPT中的擴展分區(qū)鏈中的最后一個,如果DPT中無擴展分區(qū)記錄,則創(chuàng)建一個;c3.如果DPT中空閑的分區(qū)記錄不能滿足被共享的子存儲器中的分區(qū)所需,則將被共享的子存儲器中的獨立分區(qū)也依次添加在DPT的擴展分區(qū)鏈上;c4.如果DPT中的分區(qū)記錄空間已經(jīng)被占用完,而且沒有擴展分區(qū),則選擇一個合適的分區(qū)記錄,把其中的分區(qū)改造為擴展分區(qū),并把被共享的子存儲器中的所有分區(qū)添加在擴展分區(qū)鏈上;將分區(qū)改造為擴展分區(qū)所需要的額外的一個扇區(qū)使用系統(tǒng)扇區(qū)、隱藏扇區(qū)或其他空閑扇區(qū)或512字節(jié)的存儲區(qū)虛擬擴展而來的扇區(qū),選擇合適的分區(qū)記錄的策略可以由用戶在系統(tǒng)配置時指定,缺省為最后一個合適的分區(qū),其他的策略有最先合適、最大合適、最小合適、操作系統(tǒng)合適等策略;d.對共享狀態(tài)下分區(qū)/擴展分區(qū)結(jié)構(gòu)與非共享狀態(tài)下分區(qū)/擴展分區(qū)結(jié)構(gòu)不同的地方建立扇區(qū)內(nèi)容區(qū)別表并存儲在存儲裝置中的步驟,扇區(qū)內(nèi)容區(qū)別表可以這樣來建立,其中每一項為一個扇區(qū)的區(qū)別內(nèi)容,至少包括扇區(qū)邏輯地址,不同內(nèi)容最小覆蓋的偏移、長度,新的扇區(qū)內(nèi)容,扇區(qū)內(nèi)容區(qū)別表總項數(shù)為所述不同扇區(qū)的總對數(shù),存儲在扇區(qū)內(nèi)容區(qū)別表的最開始部分;不同內(nèi)容最小覆蓋指內(nèi)容不同的兩個扇區(qū)內(nèi),第一處不同到最后一處不同的之間的全部內(nèi)容;e.對實際讀命令中位于扇區(qū)內(nèi)容區(qū)別表中的扇區(qū)結(jié)果替換的步驟,指共享狀態(tài)下如果讀命令中的扇區(qū)包括扇區(qū)內(nèi)容區(qū)別表中的扇區(qū),表示實際讀出的是非共享狀態(tài)下相應扇區(qū)的內(nèi)容,使用扇區(qū)內(nèi)容區(qū)別表中的新的扇區(qū)內(nèi)容替換后,才是共享狀態(tài)下相應扇區(qū)的內(nèi)容,如此處理的好處是保持共享和非共享時虛擬存儲器的分區(qū)/擴展分區(qū)結(jié)構(gòu);f.對實際寫命令中位于扇區(qū)內(nèi)容區(qū)別表中的扇區(qū)寫保護的步驟,共享時不允許修改虛擬存儲器的分區(qū)/擴展分區(qū)結(jié)構(gòu);外存儲器裝置內(nèi)可更換存儲單元虛擬分隔數(shù)據(jù)一致性建立的方法,如果外存儲器劃分為子存儲器的方法所述的虛擬子存儲器參數(shù)表存儲在可更換存儲單元內(nèi),則直接讀出虛擬子存儲器參數(shù)表即可得到所有的關于該可更換存儲單元的虛擬分隔數(shù)據(jù),否則,使用如下的步驟a.建立使用過的可更換存儲單元的“虛擬分隔參數(shù)”列表并存儲在非失記憶體裝置的步驟,該步驟將本存儲裝置使用過的所有可更換存儲單元的“虛擬分隔參數(shù)”保存在一個列表中,該列表的每一項是一個可更換存儲單元的“虛擬分隔參數(shù)”及用于識別該可更換存儲單元的特征,該特征可以是可更換存儲單元的序列號或特殊的標記,列表位于非失存儲體內(nèi),當最大列表項用完后,采用特定的算法進行淘汰,如最近使用,最少使用,F(xiàn)IFO…等等;
b.可更換存儲單元虛擬分隔數(shù)據(jù)一致性檢查的步驟,通過檢查虛擬子存儲器參數(shù)表中的序列號或標記與當前可更換存儲單元的序列號和標記是否一致,來決定存儲單元是否更換,如果更換,則轉(zhuǎn)步驟c;c.可更換存儲單元虛擬分隔參數(shù)匹配的步驟,通過掃描“虛擬分隔參數(shù)”列表,從中尋找與當前可更換存儲單元特征匹配的“虛擬分隔參數(shù)”,如果找到,則數(shù)據(jù)一致性建立完成,否則需要重建;當前虛擬存儲器讀寫地址轉(zhuǎn)換為外存儲器絕對讀寫地址的方法,包括以下步驟;a.設當前虛擬子存儲器的邏輯讀寫地址為addr,讀寫的長度為len,從當前虛擬子存儲器參數(shù)表中獲得如下參數(shù)當前虛擬子存儲器總?cè)萘繛镃s,其中子存儲器容量為C1,其在外存儲器中的絕對開始地址為S1,被共享的子存儲器容量分別為C2,…,Cm,被共享的子存儲器在外存儲器中的絕對開始地址分別為S2,…,Sm,將上述地址addr、長度len、容量C1-Cm,Cs、絕對開始地址S1-Sm分別存儲在存儲裝置中,定義Sum(0)=0,Sum(n)=C1+...+Cn(其中,0<n<=m),分別計算Sum(1),Sum(2),…,Sum(m),Cs=Sum(m),將Sum(0),Sum(1),…,Sum(m)分別存儲在存儲裝置中;b.如果存儲裝置中的addr值小于0或大于等于存儲裝置中的Cs值,表示讀寫地址錯;c.設置變量k在整數(shù)1-m之間依次循環(huán),找到滿足存儲裝置中的addr值大于等于存儲裝置中的Sum(k-1)值且小于存儲裝置中的Sum(k),停止循環(huán),此時獲得的絕對讀寫地址為存儲裝置中的addr值減去Sum(k-1)值加上Sk值,如果存儲裝置中的addr值加上len值大于Sum(k)值,則讀寫長度為存儲裝置中的Sum(k)值減去addr值,否則為存儲裝置中的原讀寫長度len值;當前虛擬子存儲器數(shù)據(jù)輸出(讀)的方法,包括以下步驟;a.外存儲器接收上層主機系統(tǒng)的讀命令;b.外存儲器從讀命令中獲得讀的相對于當前虛擬存儲器的開始扇區(qū)和扇區(qū)長度;c.將開始扇區(qū)地址轉(zhuǎn)換為外存儲器的絕對扇區(qū)地址作為讀命令實際的開始地址;d.檢查轉(zhuǎn)換后地址是否合法;e.讀取實際的扇區(qū)數(shù)據(jù)f.如果共享開關裝置處于共享狀態(tài),且讀取的扇區(qū)包含“扇區(qū)區(qū)別表”中的扇區(qū),則根據(jù)“扇區(qū)區(qū)別表”替換相應扇區(qū)的內(nèi)容;對于系統(tǒng)配置子存儲器的讀,如果系統(tǒng)配置子存儲器的存儲區(qū)不是外存儲器存儲單元上的一部分,則無須將開始扇區(qū)地址轉(zhuǎn)換為外存儲器的絕對扇區(qū)地址,直接讀取相應非失記憶體裝置即可。
當前虛擬子存儲器數(shù)據(jù)輸入(寫)的方法,包括以下步驟;a.外存儲器接收上層主機系統(tǒng)的寫命令以及欲寫入的數(shù)據(jù);b.外存儲器檢查當前虛擬子存儲器的寫保護狀態(tài)位;
c.外存儲器從寫命令中獲得寫的相對于當前虛擬子存儲器的開始扇區(qū)和扇區(qū)長度;d.如果共享開關裝置處于共享狀態(tài),且寫入的扇區(qū)包含“扇區(qū)區(qū)別表”中的扇區(qū),或?qū)懭氲纳葏^(qū)包含非分區(qū)內(nèi)扇區(qū),則寫保護;d.將開始扇區(qū)地址轉(zhuǎn)換為外存儲器的絕對扇區(qū)地址作為寫命令實際的開始地址;e.檢查轉(zhuǎn)換后地址是否合法,并對共享子存儲器存儲區(qū)扇區(qū)缺省寫保護;f.寫入實際的扇區(qū)數(shù)據(jù);對于系統(tǒng)配置子存儲器的寫,如果系統(tǒng)配置子存儲器的存儲區(qū)不是外存儲器存儲介質(zhì)上的一部分,則無須將開始扇區(qū)地址轉(zhuǎn)換為外存儲器的絕對扇區(qū)地址,直接寫入相應非失記憶體裝置的相應位置即可。
外存儲器配置的方法,包括以下步驟a.設置當前使用的子存儲器序號為系統(tǒng)配置序號;b.從系統(tǒng)配置子存儲器啟動主機系統(tǒng),并在主機上運行系統(tǒng)配置程序,或直接在主機上運行系統(tǒng)配置程序;c.主機上的配置程序提醒用戶對外存儲器進行虛擬分割對現(xiàn)有數(shù)據(jù)的影響并詢問用戶是否繼續(xù)操作,如果用戶停止虛擬分割,則配置終止退出,否則進行下一步;d.用戶根據(jù)需要在主機上建立新的外存儲器虛擬分割的方案,或讀出外存儲器上現(xiàn)有的虛擬分割的方案并進行修改;e.主機上的配置程序檢查提交的分割方案是否合法;f.主機上的配置程序再次提請用戶確認操作,并將用戶的分割方案轉(zhuǎn)換為外存儲器控制單元認識的格式,并傳輸給控制單元,配置程序通過對系統(tǒng)配置子存儲區(qū)的特定扇區(qū)進行特定的讀寫與控制單元交換系統(tǒng)配置信息和方案;g.外存儲器控制單元將再次檢查分割方案的參數(shù),如果沒有錯誤,則保存在”虛擬子存儲器參數(shù)表”中,否則返回主機系統(tǒng)參數(shù)表錯誤信息;如果沒有建立系統(tǒng)配置子存儲器區(qū),控制單元通過虛擬一個最小容量的虛擬”系統(tǒng)配置子存儲器”來支持與主機的通訊,例如虛擬一個僅具有最小容量的物理參數(shù)表給主機系統(tǒng),然后對非特定扇區(qū)的主機系統(tǒng)的讀操作,固定返回全0的扇區(qū)、寫操作返回寫保護。
子存儲器選擇裝置設定一個系統(tǒng)配置序號的目的在于將存儲器的使用與設置隔離開,安全性更好。
子存儲器序號(該序號用于被子存儲器選擇裝置所選擇)建立方法,包括如下步驟a.設定劃分出的子存儲器與子存儲器選擇裝置的對應關系,并保存在非失記憶體裝置;該步驟如果缺省,則自動按子存儲器空間地址從小到大依次與子存儲器選擇裝置的選擇序號從小到大分別對應;b.與子存儲器選擇裝置具有相同對應關系的子存儲器將被虛擬到同一虛擬子存儲器空間,并依據(jù)設定的先后次序或其他的規(guī)則(如地址大小順排、逆排等)建立邏輯地址空間,設有m個子存儲與子存儲器選擇裝置具有相同對應關系,它們的容量分別為C1,C2,...,Cm,在外存儲器里的絕對開始地址為S1,S2...,Sm,定義Sum(0)=0,Sum(n)=C1+C2+…+Cn(其中,0<n<=m),則該虛擬子存儲器邏輯空間范圍為0-Sum(m)-1,第i個子存儲器邏輯空間范圍為Sum(i-1)-Sum(i-1)+Ci-1,對于邏輯地址addr,如果addr小于0或者大于等于Sum(m),表示地址非法,否則,依次在1-m之間尋找k,使得addr大于等于Sum(k-1)且小于Sum(k),此時,地址addr在外存儲器里的絕對地址為Sk+addr-Sum(k-1),最大可讀長度為Sum(k)-addr定義m個與子存儲器選擇裝置具有相同對應關系的子存儲器存儲空間構(gòu)成的新的存儲空間所對應的等價子存儲器這里稱之為組合子存儲器。
子存儲器序號建立與子存儲器間共享的有關考慮當組合子存儲器與子存儲器間共享方法作用到同一個子存儲器時,子存儲器間的關系理論上會變得復雜,而實際的應用并不象理論上那么復雜,可以這樣處理,將組合子存儲器作為一個整體(子存儲器)參與子存儲器間的共享,地址空間變換的時候,對于共享或被共享的組合子存儲器要進行兩次,第一次是虛擬子存儲器地址到組合子存儲器地址(參見“當前虛擬存儲器讀寫地址轉(zhuǎn)換為外存儲器絕對讀寫地址的方法”,步驟c中的addr值減去Sum(k-1)即為相對于組合子存儲器的地址),第二次是組合子存儲器地址到子存儲器的在外存儲器里的物理地址(見子存儲器序號建立方法步驟b)。
所述的外存儲器的虛擬分隔方法,其特征在于,虛擬劃分的子存儲器與子存儲器選擇裝置的對應關系可以被任意設定,與子存儲器選擇裝置具有相同對應關系的子存儲器將被虛擬到同一虛擬子存儲器空間所述的外存儲器的虛擬分隔方法,其特征在于所述非失記憶體裝置可以是由快閃存儲器(FLASH MEMORY)、EEPROM、FRAM、MRAM或其它的具有數(shù)據(jù)保持(在外存儲器不加電情況下)功能的存儲體裝置構(gòu)成,或者使用外存儲中存儲單元上的一塊存儲空間構(gòu)成,或者它們的任意組合構(gòu)成;所述的外存儲器的虛擬分隔方法,其特征在于適用于具有IDE/EIDE(增強的IDE)、SCSI、USB(通用串行接口),SATA(串行ATA)、IEEE1394、PCMCIA或其他的任意接口的硬盤、電子硬盤、各種電子盤、閃存盤、存儲卡、讀卡器、各種硬盤盒、ZIP盤、CF卡或任意掉電非失記憶體裝置構(gòu)成的存儲體;所述的外存儲器的虛擬分隔方法,其特征在于所述劃分的子存儲器物理空間之間可以是相臨的,也可以是不相臨的,但不重疊,子存儲器和被其共享的子存儲器物理空間地址可以是不連續(xù)的,子存儲器和被其共享的子存儲器的存儲空間邏輯相連,從0開始連續(xù)編址,結(jié)束地址為子存儲器和被共享的子存儲器容量之和減1;所述的外存儲器的虛擬分隔方法,其特征在于具有寫保護功能,可對子存儲器區(qū)數(shù)據(jù)寫入寫保護;所述的外存儲器的虛擬分隔方法,其特征在于所述系統(tǒng)配置子存儲器是可引導的虛擬子存儲器區(qū),其中至少包括運行于主機上的操作系統(tǒng)及工具,運行于主機系統(tǒng)上的系統(tǒng)配置工具程序,運行于主機上的配置程序通過對系統(tǒng)配置子存儲區(qū)的特定扇區(qū)進行特定的讀寫存取系統(tǒng)配置信息和方案;所述的外存儲器的虛擬分隔方法,其特征在于具有全局允許/禁止子存儲器間的共享的功能,子存儲器區(qū)和被其共享的子存儲器通過分區(qū)/擴展分區(qū)的組織形式被主機系統(tǒng)使用,子存儲器間共享時的分區(qū)/擴展分區(qū)結(jié)構(gòu)由控制單元自動建立,無需用戶干預,而且不影響非共享時的子存儲器的分區(qū)/擴展分區(qū)結(jié)構(gòu),共享時自動對被共享的子存儲器區(qū)進行寫保護,并對分區(qū)/擴展分區(qū)結(jié)構(gòu)寫保護,一個分區(qū)或擴展分區(qū)只存在于一個子存儲器(或共享的子存儲器)區(qū)內(nèi),一個子存儲器可以共享多個具有共享屬性的子存儲器,一個具有共享屬性的子存儲器可被多個子存儲器共享;所述的外存儲器的虛擬分隔方法,其特征在于使用子存儲器選擇裝置選擇當前使用的子存儲器;所述的外存儲器的虛擬分隔方法,其特征在于支持外存儲器內(nèi)存儲單元的更換,可識別已經(jīng)虛擬分割過的存儲單元并自動建立或?qū)脶槍υ摯鎯卧摂M分割的“虛擬子存儲器參數(shù)表”。
所述的外存儲器的虛擬分隔方法,通過設置一控制單元,來控制外存儲器的虛擬分隔,包括外存儲器內(nèi)部的劃分與虛擬子存儲器建立、控制虛擬子存儲器地址轉(zhuǎn)換與存取、控制子存儲器間共享、控制可更換存儲單元虛擬分隔數(shù)據(jù)一致性建立、控制系統(tǒng)配置子存儲器的建立、以及控制外存儲器系統(tǒng)配置;所述控制單元可以通過固件(Fireware)實現(xiàn),可共用原外存儲器的固件裝置或擴大原外存儲器的固件裝置的容量;發(fā)明的目的,還可以通過以下技術(shù)方案進一步的實現(xiàn),一種外存儲器裝置,包括對外接口控制器(110),控制單元(180),含接口控制模塊(181)、命令解釋器(182)和虛擬控制模塊(183),存儲單元(120)或含有可更換存儲單元(120)的接口,寫保護開關裝置(140),子存儲器選擇裝置(150),虛擬分隔參數(shù)存儲裝置(160),含虛擬劃分參數(shù)存儲裝置(161)和虛擬共享參數(shù)存儲裝置(162),虛擬分隔參數(shù)列表存儲裝置(190),共享開關裝置(170),系統(tǒng)配置子存儲器裝置(130)其中虛擬分隔參數(shù)存儲裝置(160),用于存儲對外存儲器的虛擬分隔參數(shù);虛擬劃分參數(shù)存儲裝置(161),用于存儲對外存儲器的虛擬劃分參數(shù);虛擬共享參數(shù)存儲裝置(162),用于存儲子存儲器共享屬性及共享關系參數(shù);虛擬參數(shù)列表存儲裝置(190),用于存儲使用過的可更換存儲單元的虛擬劃分參數(shù)列表;子存儲器選擇裝置(150),用于選擇當前使用的虛擬子存儲器;共享開關裝置(170),用于設置全局的允許/禁止子存儲器間共享狀態(tài);寫保護開關裝置(140),用于對虛擬子儲器寫保護;系統(tǒng)配置子存儲器裝置(130),是可引導的虛擬子存儲器區(qū),其中至少包括運行于主機上的操作系統(tǒng),運行于主機系統(tǒng)上的系統(tǒng)配置工具;虛擬控制模塊(183),用于控制外存儲器內(nèi)部的劃分與虛擬子存儲器建立、控制虛擬子存儲器地址轉(zhuǎn)換與存取、控制子存儲器間共享、控制可更換存儲單元虛擬分隔數(shù)據(jù)一致性建立、控制系統(tǒng)配置子存儲器的建立、以及控制外存儲器系統(tǒng)配置;所述外存儲器裝置中的虛擬控制模塊(183),可由固件和微控制器實現(xiàn),或者使用邏輯電路實現(xiàn)。
所述外存儲器裝置中的子存儲器選擇裝置(150)、寫保護開關裝置(140)、共享開關裝置(170)可以是由機械的或電子的,選擇的或編碼的,有線的或無線的,或者是通過接口選擇或設定,它們可以是分別的裝置,也可是合并在同一裝置內(nèi)的子裝置;所述外存儲器裝置中的虛擬分隔參數(shù)存儲裝置(160),虛擬參數(shù)列表存儲裝置(190),系統(tǒng)配置子存儲器裝置(130)中的存儲體可以是由快閃存儲器(FLASH MEMORY)、EEPROM、FRAM、MRAM或其他的非失記憶體或外存儲器存儲單元(120)上的一塊存儲空間或它們的任意組合構(gòu)成,它們可以是分別的存儲裝置,也可以是一個存儲裝置中的子存儲裝置;所述外存儲器裝置,可以是具有IDE/EIDE(增強的IDE)、SCSI、USB(通用串行接口),SATA(串行ATA)、IEEE1394、PCMCIA或其他的任意接口的硬盤、電子硬盤、各種電子盤、閃存盤、存儲卡、讀卡器(包含或不包含存儲卡)、各種硬盤盒(包含或不包含硬盤)、ZIP盤、CF卡或任意掉電非失記憶體裝置構(gòu)成的存儲體;所述外存儲器裝置,其支持存儲單元的更換,即存儲裝置和存儲空間可以分離,如磁光驅(qū)(MO Driver),以及讀卡器(card reader),以及硬盤盒(harddisk box)等,在該種情況下外存儲器裝置的實際存儲空間存在于另外的存儲介質(zhì)或存儲器上,外存儲器裝置通過特定的接口去訪問它們。
技術(shù)效果本發(fā)明的方法和裝置,可將一個外存儲器變成多個虛擬子存儲器,供不同需要的使用,具有較好的安全性。由于與外存儲器的接口類型無關,不需要在主機和外存儲設備之間增加仿真接口,可適用于任意接口外存儲器,且對外存儲設備的性能基本沒有影響。
本發(fā)明對外存儲器的劃分是可以是連續(xù)的,也可以是非連續(xù)的,一個虛擬子存儲器的物理存儲空間可由多個子存儲器存儲空間組成,多個子存儲器存儲空間可以是不連續(xù)的,能有效地跳過壞道,增加外存儲器的可用性。
通過本發(fā)明得到的虛擬子存儲器具有寫保護功能,而且子存儲器之間可以安全共享,減少了共用/公用數(shù)據(jù)和程序在各虛擬子存儲器內(nèi)的重復存儲。由于被共享的子存儲器缺省有寫保護,而且這種寫保護除非用戶自己改變,否則主機系統(tǒng)是無法自行改變的,所以很安全。
應用本發(fā)明的外存儲器,其虛擬分隔支持存儲器內(nèi)存儲單元(存儲介質(zhì))的更換,支持讀卡器類存儲器和移動類存儲器存儲單元的更換。可用多種方式可用來選擇子存儲器,通過遙控開關或編碼開關,可以對箱體里的外存儲器做到不開箱控制,簡單方便。
由于具有系統(tǒng)設置子存儲器,可以直接引導,自帶操作系統(tǒng)和工具、系統(tǒng)設置工具,升級工具,無需其他任何系統(tǒng)和額外的接口即可完成系統(tǒng)配置和虛擬劃分功能,避免了其他系統(tǒng)可能的安全隱患的傳播。
圖1為普通外存儲器的內(nèi)部結(jié)構(gòu)原理框圖以及與主機系統(tǒng)的連接關系,其中(80)外存儲器,(90)總線,(100)主機系統(tǒng),(110)接口控制器,(180)控制單元包括(181)接口控制模塊,(182)命令解釋器,(120)存儲單元;圖2為本發(fā)明的外存儲器裝置的最小實現(xiàn)方案內(nèi)部結(jié)構(gòu)原理框圖以及與主機系統(tǒng)的連接關系,其中(80)外存儲器,(90)總線,(100)主機系統(tǒng),(110)接口控制器,(180)控制單元包括(181)接口控制模塊、(182)命令解釋器和(183)虛擬控制模塊,(120)存儲單元,(150)子存儲器選擇裝置,(160)虛擬分隔參數(shù)存儲裝置包括(161)虛擬劃分參數(shù)存儲裝置;圖3為本發(fā)明的外存儲器裝置的較大實現(xiàn)方案內(nèi)部結(jié)構(gòu)原理框圖以及與主機系統(tǒng)的連接關系,其中(80)外存儲器,(90)總線,(100)主機系統(tǒng),(110)接口控制器,(180)控制單元包括(181)接口控制模塊、(182)命令解釋器、(183)虛擬控制模塊,(120)存儲單元,(140)寫保護開關裝置,(150)子存儲器選擇裝置,(160)虛擬分隔參數(shù)存儲裝置,包括(161)虛擬劃分參數(shù)存儲裝置和(162)共享參數(shù)存儲裝置,(190)虛擬參數(shù)列表存儲裝置,(170)共享開關裝置,(130)系統(tǒng)配置子存儲器裝置;圖4為本發(fā)明的實施例一具有虛擬分隔功能的USB接口閃存盤/硬盤/硬盤盒的結(jié)構(gòu)原理框圖,該實施例的外存儲器裝置中的存儲單元(120)與外存儲器裝置即可以是一體的,如USB硬盤,也可以是可分離/更換的,如USB接口的硬盤盒(Harddisk Box),該實施例是最佳實施例;圖5為本發(fā)明的實施例二具有虛擬分隔功能的SATA接口硬盤的結(jié)構(gòu)原理框圖,該實施例是另一個最佳實施例;圖6為本發(fā)明的實施例三具有虛擬分隔功能的SCSI接口的硬盤的結(jié)構(gòu)原理框圖;圖7為本發(fā)明的實施例四具有虛擬分隔功能的1394接口的硬盤/硬盤盒的結(jié)構(gòu)原理框圖;圖8為本發(fā)明的實施例五具有虛擬分隔功能的EIDE接口的ZIP盤的結(jié)構(gòu)原理框圖;圖9為本發(fā)明的方法和裝置的地址變換和虛擬子存儲器構(gòu)成示意圖,圖中(200)外存儲器,(240)一個子存儲器,(300)虛擬子存儲器,(20)命令中的扇區(qū)地址,該圖顯示了單個子存儲器構(gòu)成虛擬子存儲器的情況;圖10為本發(fā)明的方法和裝置的另一地址變換和虛擬子存儲器構(gòu)成示意圖,圖中(200)外存儲器,(210)、(220)、(230)三個子存儲器,(310)虛擬子存儲器,(400)虛擬子存儲器中的一個分區(qū),(20)命令中的扇區(qū)地址,該圖顯示了三個單個子存儲器構(gòu)成虛擬子存儲器以及分區(qū)地址轉(zhuǎn)換的情況;圖11為本發(fā)明的主流程圖;圖12為本發(fā)明的“扇區(qū)內(nèi)容區(qū)別表”的使用流程圖;下面,結(jié)合附圖和實施例進一步說明。
具體實施例本發(fā)明所述的方法可用圖4所示的實施例一予以說明,實施例是在USB存儲器內(nèi)的USB接口內(nèi)側(cè)的控制單元(180)中虛擬控制模塊(183)處實施本發(fā)明所述的方法的。
假定本實施例的硬盤容量為30G,欲做如下各部分之用部分1工作,10G,分為兩個區(qū),C盤6G,D盤4G;部分2上網(wǎng),5G, 分為一個區(qū),C盤5G;部分3游戲,12G,分為4個區(qū),C盤5G,D盤3G,E盤3G,F(xiàn)盤1G;部分4存儲系統(tǒng)軟件、工具軟件、各種驅(qū)動,2G空間,分為一個區(qū),C盤2G;下面,結(jié)合本實施例,更進一步的說明本發(fā)明所述的方法1.將硬盤空間劃分為四個部分,每個部分的起始位置如下部分1 0.1G-10.1G部分210.5G-15.5G部分315.5G-27.5G部分428.0G-30.0G注意,部分1和部分2以及部分3和部分4之間是不連續(xù)的,而且部分1也不在硬盤空間的開始處。
2.設定部分4為共享屬性,并指定部分4可被部分1和部分2以及部分3共享;3.在非共享狀態(tài)下對部分1-4按要求進行分區(qū)(FDISK),各部分的DPT項分別為2,1,2,1;4.共享狀態(tài)下,對虛擬子存儲器進行統(tǒng)一邏輯編址,如下部分10-12G,其中C0-6G,D6-10G,E10-12G(共享)部分20-7G, 其中C0-5G,D5-7G(共享)部分30-14G,其中C0-5G,D5-8G,E8-11G,F(xiàn)11-12G,G12-14G(共享)部分40-2G, 其中C0-2G5.建立共享狀態(tài)下新的分區(qū)/擴展分區(qū)結(jié)構(gòu),即將共享部分分區(qū)將直接加入部分1和3的DPT的第3項;將共享部分分區(qū)直接加入部分2的DPT的第二項;將如此得到的分區(qū)/擴展分區(qū)結(jié)構(gòu)與不共享時候的分區(qū)/擴展分區(qū)結(jié)構(gòu)比較,得到扇區(qū)區(qū)別表,這里應該是部分1-3的DPT所在的扇區(qū);6.共享狀態(tài)下構(gòu)造的虛擬物理參數(shù)表中的部分主要參數(shù)如下
7.共享狀態(tài)下對接收到的主機的讀寫地址進行轉(zhuǎn)換,見圖9和圖10,具體例子如下表
8.對虛擬子盤1-3,共享盤缺省是寫保護的,所以不會在子盤1-3之間傳遞不安全因素;共享時,禁止寫DPT,讀DPT時,自動用共享時候的DPT替換(使用扇區(qū)區(qū)別表);9.對于本發(fā)明方法中的涉及的其它的步驟的進一步說明如下1.系統(tǒng)配置子存儲器區(qū),如果實現(xiàn)時,設計了系統(tǒng)配置子存儲器,可在其中裝有操作系統(tǒng)(如免費的DOS 7.00或Linux操作系統(tǒng))以及運行于相應操作系統(tǒng)下的系統(tǒng)配置工具,還可以包括一些其他的磁盤工具或殺毒軟件等;如果實現(xiàn)時,沒有設計系統(tǒng)配置子存儲器,則需要通過控制單元(180)中的虛擬控制模塊(183)在子存儲器選擇裝置位于系統(tǒng)配置(子存儲器)位置時,自動構(gòu)造一個最小容量的系統(tǒng)配置子存儲器虛擬空間,此時系統(tǒng)配置子存儲器并沒有實際的物理存儲空間,僅用來支持與主機系統(tǒng)(100)之間的通信??刂茊卧?180)與主機系統(tǒng)(100)之間關于虛擬分隔的管理和維護的通信通過對系統(tǒng)配置子存儲器的特定扇區(qū)的特定讀寫來進行,特定扇區(qū)可以是扇區(qū)地址為-1,0,n-1,n,n+1,m,或其它的某個特別值,其中m位于保留扇區(qū)內(nèi),n為系統(tǒng)配置子存儲器可用扇區(qū)數(shù),讀寫的數(shù)據(jù)以扇區(qū)為單位,在扇區(qū)內(nèi)定義專門的結(jié)構(gòu)和校驗,進一步區(qū)別與正常的扇區(qū)讀寫。
2.虛擬分隔參數(shù)存儲體(160)、系統(tǒng)配置子存儲器存儲體(130)的構(gòu)成,可以使用單獨的掉電非失記憶體或在外存儲器上保留一塊空間作為它們的存儲體,保留的空間可以是外存儲器的最開始或最后面的一塊區(qū)域,也可以是其他地方的保留區(qū)域。
3.對于可更換存儲單元(120)的虛擬分隔數(shù)據(jù)一致性的考慮,如果虛擬分隔參數(shù)存儲體(160)存儲在存儲單元(120)上,虛擬分隔數(shù)據(jù)一致性沒有任何問題,否則需要通過特征對比來搜索對該可更換存儲單元(120)的虛擬分隔參數(shù),此時,對有序列號的可更換存儲單元(120),序列號即為特征,沒有序列號的,控制單元(180)將產(chǎn)生一個唯一的序列號(如操作時的時間+足夠大的隨機數(shù)),保存在可更換存儲單元(120)的特定位置(特定扇區(qū)的特定位置),為增加可靠性,可保存在多個不同地方。
圖9和圖10為本發(fā)明所述的虛擬子存儲器的構(gòu)成以及地址轉(zhuǎn)換示意圖,其中圖九為單個子存儲器構(gòu)成虛擬子存儲器的情況,圖10為三個單個子存儲器構(gòu)成虛擬子存儲器的情況。
圖11和圖12為本發(fā)明的流程圖。
本發(fā)明的目的,還可以通過以下技術(shù)方案進一步的實現(xiàn),一種具有虛擬分隔功能的USB接口的閃存盤/硬盤/硬盤盒,如圖4所示,除包括一般USB接口的閃存盤/硬盤/硬盤盒所具有的USB接口控制器(110),控制單元(180)含接口控制模塊(181)、命令解釋器(182),存儲單元(120)外,還包括控制單元(180)含虛擬控制模塊(183),寫保護開關裝置(140),子存儲器選擇裝置(150),共享開關裝置(170),虛擬分隔參數(shù)存儲裝置(160),含虛擬劃分參數(shù)存儲裝置(161)和虛擬共享參數(shù)存儲裝置(162),虛擬參數(shù)列表存儲裝置(190),系統(tǒng)配置子存儲器裝置(130)電路的連接關系為USB接口控制器(110)一端與USB總線相連,另一端與控制單元(180)和存儲單元(120)相連,控制單元(180)與USB接口控制器(110)和存儲單元(120)均連接(在某些情況下,為減少數(shù)據(jù)的傳輸環(huán)節(jié),控制單元與存儲單元的連接是通過USB接口控制器實現(xiàn)的,這依賴USB接口控制器的功能),存儲單元(120)與控制單元(180)和USB接口控制器(110)均相連,這些連接均是雙向連接,支持信號和數(shù)據(jù)的雙向流動??刂茊卧?180)內(nèi)的接口控制模塊(181)、命令解釋器(182)互相配合,完成存儲器的基本的讀寫。
寫保護開關裝置(140),共享開關裝置(170),子存儲器選擇裝置(150)通過控制單元(180)接入虛擬控制模塊(183),它們是單向輸入信號;虛擬分隔參數(shù)存儲裝置(160)和虛擬參數(shù)列表存儲裝置(190)通過I2C總線接入控制單元(180)中的虛擬控制模塊(183),I2C總線支持數(shù)據(jù)和信號的雙向流動;系統(tǒng)配置子存儲器裝置(130)通過數(shù)據(jù)總線、地址總線和控制總線接入控制單元(180)中的虛擬控制模塊(183),該連接支持數(shù)據(jù)和信號的雙向流動;寫保護開關裝置(140)、共享開關裝置(170)、子存儲器選擇裝置(150)、虛擬分隔參數(shù)存儲裝置(160)、虛擬參數(shù)列表存儲裝置(190)、系統(tǒng)配置子存儲器裝置(130)與虛擬控制模塊(183)一起用于存儲器的虛擬分隔功能。
主機系統(tǒng)(100)通過USB總線(90)與具有虛擬分隔功能的USB接口的閃存盤/硬盤/硬盤盒(80)的USB接口控制器(110)相連接,傳輸數(shù)據(jù)和命令,具有虛擬分隔功能的USB接口的閃存盤/硬盤/硬盤盒(80)的控制單元(180)中的接口控制模塊(181)用于處理與接口有關的操作,并把USB接口控制器(110)收到的命令傳遞給控制單元(180)中虛擬控制模塊(183),虛擬控制模塊(183)根據(jù)命令的性質(zhì)決定是否需要進行地址變換或構(gòu)造虛擬物理參數(shù),或進入設置,然后根據(jù)處理的結(jié)果,決定是否調(diào)用命令解釋器(182),如果調(diào)用命令解釋器(182),命令解釋器(182)執(zhí)行實際的存儲體的存取,并返回虛擬控制模塊(183),虛擬控制模塊(183)根據(jù)需要決定是否對命令結(jié)果進行處理,最后虛擬控制模塊(183)通過USB接口控制模塊(181)模塊將結(jié)果返回給主機系統(tǒng)(100)。整個過程的主要流程圖如圖11和圖12所示,圖11是命令處理流程和配置處理流程,圖12為共享狀態(tài)下的使用“扇區(qū)內(nèi)容區(qū)別表”進行內(nèi)容替換的流程。
存儲單元(120)可以是閃存存儲單元或硬盤存儲單元或硬盤,分別對應USB接口的閃存盤、USB接口的硬盤、USB接口的硬盤盒三種USB外存儲器,閃存存儲單元或硬盤存儲單元均為公示成熟技術(shù)或部件,硬盤更是現(xiàn)成的商品。
USB接口控制器(110),控制單元(180),包括接口控制模塊(181)和命令解釋器(182)是其技術(shù)領域成熟的現(xiàn)有技術(shù)。
寫保護開關裝置(140),共享開關裝置(170),子存儲器選擇裝置(150),由于USB接口的存儲器一般是外置使用,它們均可以使用機械開關完成,其中寫保護開關裝置(140)和共享開關裝置(170)使用撥動開關,子存儲器選擇裝置(150)使用旋轉(zhuǎn)式8選1開關,所有開關都位于用戶方便觸及的地方且不影響存儲器的放置。對于其他位于箱體內(nèi)的如SCSI接口或EIDE接口的外存儲器,可以考慮使用遙控開關或通過接口引出到箱體外部設定。旋轉(zhuǎn)式8選1開關可提供最多7個用戶定義的虛擬子存儲器的選擇,另一個為系統(tǒng)配置用。
寫保護開關裝置(140),共享開關裝置(170),子存儲器選擇裝置(150)可以直接通過控制單元(180)的I/O口接入,或者在控制單元(180)的I/O比較緊張的時候,對子存儲器選擇裝置(150)進行編碼,以減少I/O口數(shù)量,甚至可以通過鎖存器來擴展I/O。它們與控制單元的連接是單向的,即輸入到控制單元(180)。
虛擬分隔參數(shù)存儲裝置(160)和虛擬參數(shù)列表存儲裝置(190)使用串行的EEPROM構(gòu)成,如24C16A、24C32等,與控制單元(180)之間使用I2C接口,或者使用軟件模擬I2C接口。需要占用兩個I/O口線。對于具有虛擬分隔功能的USB接口的硬盤盒,其中的硬盤是可更換的,虛擬參數(shù)列表存儲裝置(190)中可將硬盤的序列號作為特征予以保存和做為檢索、匹配之使用。
系統(tǒng)配置子存儲器裝置(130),本實施例的系統(tǒng)配置子存儲器容量設定為1M,由通用的并行FLASH芯片構(gòu)成,其中裝有可引導的免費DOS系統(tǒng)、系統(tǒng)配置工具和磁盤工具等。FLASH芯片直接連接于控制單元(180)的總線上,對于地址線比較少的控制單元(180),可以考慮通過增加鎖存器來擴展地址線的高位。FLASH芯片的位寬及電壓與控制單元(180)一致即可。
對于系統(tǒng)配置子存儲器裝置(130)和虛擬分隔參數(shù)存儲裝置(160)使用存儲單元(120)上的存儲空間時,可以這樣處理保留一塊存儲單元(120)上的存儲空間,可以在最前或最后,容量要大于虛擬分隔參數(shù)存儲裝置(160)和系統(tǒng)配置子存儲器裝置(130)容量之和,系統(tǒng)配置子存儲器裝置(130)容量可由系統(tǒng)或用戶設定,剩余部分為用戶可劃分區(qū)域。另外,還可以采用另外一種方法,即僅保留虛擬分隔參數(shù)存儲裝置(160)的存儲空間,由用戶將劃分的某個子存儲器區(qū)指定為系統(tǒng)配置子存儲器區(qū)。
圖5為本發(fā)明的實施例二具有虛擬分隔功能的SATA接口硬盤的結(jié)構(gòu)原理框圖,其中,除包括一般SATA接口的硬盤所具有的SATA接口控制器(110),控制單元(180)含接口控制模塊(181)、命令解釋器(182),硬盤存儲單元(120)外,還包括控制單元(180)含虛擬控制模塊(183),寫保護開關裝置(140),子存儲器選擇裝置(150),共享開關裝置(170),虛擬分隔參數(shù)存儲裝置(160),含虛擬劃分參數(shù)存儲裝置(161)和虛擬共享參數(shù)存儲裝置(162),虛擬參數(shù)列表存儲裝置(190),系統(tǒng)配置子存儲器裝置(130)系統(tǒng)配置子存儲器裝置(130)是硬盤存儲單元(120)上的一塊存儲空間;圖6為本發(fā)明的實施例三具有虛擬分隔功能的SCSI接口的硬盤的結(jié)構(gòu)原理框圖,其中,除包括一般SCSI接口的硬盤所具有的SCSI接口控制器(110),控制單元(180)含接口控制模塊(181)、命令解釋器(182),硬盤存儲單元(120)外,還包括控制單元(180)含虛擬控制模塊(183),寫保護開關裝置(140),子存儲器選擇裝置(150),共享開關裝置(170),虛擬分隔參數(shù)存儲裝置(160),含虛擬劃分參數(shù)存儲裝置(161)和虛擬共享參數(shù)存儲裝置(162),虛擬參數(shù)列表存儲裝置(190),系統(tǒng)配置子存儲器裝置(130)虛擬分隔參數(shù)存儲裝置(160)包括虛擬劃分參數(shù)存儲裝置(161)和共享參數(shù)存儲裝置(162),是硬盤存儲單元(120)上的一塊存儲空間;圖7為本發(fā)明的實施例四具有虛擬分隔功能的1394接口的硬盤/硬盤盒的結(jié)構(gòu)原理框圖,其中,除包括一般1394接口的硬盤/硬盤盒所具有的SATA接口控制器(110),控制單元(180)含接口控制模塊(181)、命令解釋器(182),硬盤存儲單元/硬盤(120)外,還包括控制單元(180)含虛擬控制模塊(183),寫保護開關裝置(140),子存儲器選擇裝置(150),共享開關裝置(170),虛擬分隔參數(shù)存儲裝置(160),含虛擬劃分參數(shù)存儲裝置(161)和虛擬共享參數(shù)存儲裝置(162),系統(tǒng)配置子存儲器裝置(130)系統(tǒng)配置子存儲器裝置(130),虛擬分隔參數(shù)存儲裝置(160)是硬盤存儲單元/硬盤(120)上的一塊存儲空間,虛擬分隔參數(shù)列表(190)是可選項,不再是必須的;圖8為本發(fā)明的實施例五具有虛擬分隔功能的EIDE接口的ZIP盤的結(jié)構(gòu)原理框圖,其中,除包括一般EIDE接口的ZIP所具有的EIDE接口控制器(110),控制單元(180)含接口控制模塊(181)、命令解釋器(182),ZIP盤片(120)外,還包括控制單元(180)含虛擬控制模塊(183),寫保護開關裝置(140),子存儲器選擇裝置(150),虛擬分隔參數(shù)存儲裝置(160),含虛擬劃分參數(shù)存儲裝置(161)存儲單元(120)是可更換的ZIP盤片;上述所有實施例中的虛擬控制模塊(183)用于控制與虛擬分隔相關的操作和步驟,可由控制單元(180)中的微控制器和固件實現(xiàn),或者使用邏輯電路實現(xiàn)。虛擬控制模塊(183)完成和需要由其配合完成的有關方法和步驟如下(不同的實施例可能只需要其中的一部分)外存儲器劃分為子存儲器的方法;建立當前虛擬子存儲器的方法;系統(tǒng)配置子存儲器區(qū)的建立方法;子存儲器間共享的方法;外存儲器裝置內(nèi)可更換存儲單元虛擬分隔數(shù)據(jù)一致性建立的方法;當前虛擬存儲器讀寫地址轉(zhuǎn)換為外存儲器絕對讀寫地址的方法;當前虛擬子存儲器數(shù)據(jù)輸出(讀)的方法;當前虛擬子存儲器數(shù)據(jù)輸入(寫)的方法;外存儲器配置的方法;子存儲器序號建立方法;上述方法和步驟在本發(fā)明所述的外存儲器的虛擬分隔方法中已有描述,這里不再重復。
權(quán)利要求
1.一種外存儲器的虛擬分隔方法,用于在外存儲器的存儲空間劃分出多個子存儲器存儲空間,并根據(jù)用途構(gòu)成多個虛擬子存儲器,使得任何時刻多個虛擬子存儲器中只有一個可存取,其特征在于,還包括所述外存儲器存儲空間的劃分可以是連續(xù)的,也可以是非連續(xù)的,但不重疊;所述每個虛擬子存儲器可由一個或多個相臨或不相臨的子存儲器存儲空間構(gòu)成;所述外存儲器的虛擬分隔方法實施在外存儲器裝置內(nèi),對外接口內(nèi)側(cè),適用于所有接口類型的外存儲器裝置,并包含以下步驟a.在外存儲器的存儲空間劃分出多個子存儲器存儲空間并把劃分參數(shù)存儲在存儲裝置中的步驟;b.通過子存儲器選擇裝置選擇當前使用的虛擬子存儲器的步驟;c.將數(shù)據(jù)輸入/輸出方法中的相對于當前使用的虛擬子存儲器的地址值轉(zhuǎn)換為外存儲器的絕對地址的步驟;d.將數(shù)據(jù)輸出方法中的存儲器的物理參數(shù)用與當前使用的虛擬子存儲器等價的物理參數(shù)替換的步驟。
2.按照權(quán)利要求1所述的方法,其特征在于,還包括系統(tǒng)配置子存儲器區(qū)的建立方法,該方法包括a.將系統(tǒng)配置子存儲器與子存儲器選擇裝置的一選擇位置建立對應的步驟;b.建立系統(tǒng)配置子存儲器存儲區(qū)空間的步驟;c.建立存儲區(qū)空間分區(qū)結(jié)構(gòu)(DPT)并存儲在存儲區(qū)空間的步驟;d.將系統(tǒng)主引導記錄(MBR)存儲在存儲區(qū)空間的步驟;e.將操作系統(tǒng)或操作系統(tǒng)及工具存儲在存儲區(qū)空間的步驟;f.將配置工具或配置工具及自身升級系統(tǒng)工具存儲在存儲區(qū)空間的步驟。
3.一種被虛擬分隔的子存儲器的存儲空間的組織方法,用于將一個或多個相臨或不相臨子存儲器的存儲空間形成一個虛擬子存儲器存儲空間,其特征在于,包括a.設置子存儲器共享屬性及子存儲器間共享關系并存儲在存儲裝置中的步驟;b.對所述虛擬子存儲器中的子存儲器空間和被共享的子存儲器空間統(tǒng)一編址的步驟;c.建立共享狀態(tài)下所述虛擬子存儲器的分區(qū)/擴展分區(qū)結(jié)構(gòu)并存儲在存儲裝置中的步驟;d.對共享狀態(tài)下數(shù)據(jù)輸出方法中的有關虛擬子存儲器的分區(qū)/擴展分區(qū)結(jié)構(gòu)的內(nèi)容進行替換或?qū)蚕頎顟B(tài)下數(shù)據(jù)輸入方法中的有關虛擬子存儲器的分區(qū)/擴展分區(qū)結(jié)構(gòu)的內(nèi)容進行寫保護的步驟。
4.一種外存儲器裝置,包括對外接口控制器(110),控制單元(180),存儲單元(120)或具有一個可更換的存儲單元(120)的接口,其特征是,還包括一虛擬分隔參數(shù)存儲裝置(160),用于存儲對外存儲器的虛擬分隔參數(shù);一子存儲器選擇裝置(150),用于選擇當前使用的虛擬子存儲器;一虛擬控制模塊(183),用于控制接受對外存儲器的劃分并將劃分參數(shù)保存在虛擬分隔參數(shù)存儲裝置(160)中;通過子存儲器選擇裝置選擇當前使用的虛擬子存儲器;將數(shù)據(jù)輸入/輸出方法中的相對于當前使用的虛擬子存儲器的地址值轉(zhuǎn)換為外存儲器的絕對物理地址;將數(shù)據(jù)輸出方法中的存儲器的物理參數(shù)用與當前使用的虛擬子存儲器等價的物理參數(shù)替換。
5.按照權(quán)利要求4所述的裝置,其特征在于,還包括虛擬共享參數(shù)存儲裝置(162),用于存儲子存儲器共享屬性及共享關系;虛擬控制模塊(183)還用于控制將子存儲器和其被其共享的子存儲器構(gòu)成一個虛擬子存儲器。
6.按照權(quán)利要求5所述的裝置,其特征是在于,還包括共享開關裝置(170),用于設置全局的允許/禁止子存儲器間共享狀態(tài)。
7.按照權(quán)利要求4所述的裝置,其特征是在于,還包括系統(tǒng)配置子存儲器裝置,所述系統(tǒng)配置子存儲器是可引導的虛擬子存儲器區(qū),其中至少包括運行于主機上的操作系統(tǒng),運行于主機系統(tǒng)上的系統(tǒng)配置工具。
8.按照權(quán)利要求4所述的裝置,其特征是在于,還包括寫保護開關裝置,用于對虛擬子儲器寫保護。
9.按照權(quán)利要求4,6,8任何一項所述的裝置,其特征在于,所述子存儲器選擇裝置(150)、寫保護開關裝置(140)、共享開關裝置(170)可以是機械的或電子的,選擇的或編碼的,有線的或無線的,或者是可以通過接口選擇或設定的裝置,它們可以是分別的裝置,也可是合并在同一裝置內(nèi)的子裝置。
10.按照權(quán)利要求4,5,7任何一項所述的裝置,其特征是在于,所述虛擬分隔參數(shù)存儲裝置(160),系統(tǒng)配置子存儲器裝置(130)中的存儲體可以是由快閃存儲器(FLASH MEMORY)、EEPROM、FRAM、MRAM或其他的掉電非失記憶體或外存儲器存儲單元(120)上的一塊存儲空間或它們的任意組合構(gòu)成,它們可以是分別的存儲裝置,也可以是一個存儲裝置中的子存儲裝置。
全文摘要
外存儲器的虛擬分隔方法及其裝置,用于在外存儲器上邏輯劃分出多個連續(xù)或非連續(xù)的子存儲器存儲空間,并根據(jù)用途構(gòu)成多個虛擬子存儲器,每個虛擬子存儲器可以包括一個或多個子存儲器,且任何時刻多個虛擬子存儲器中只有一個可存取,以達到隔離不同應用的目的;虛擬子存儲器具有寫保護功能,且子存儲器之間可以安全共享,該方法支持存儲器內(nèi)存儲單元的更換;另包括系統(tǒng)配置子存儲器,用于提供虛擬分隔配置。所述方法及其裝置實施在外存儲器裝置內(nèi),對外接口內(nèi)側(cè),與接口種類無關。
文檔編號G06F12/08GK1690984SQ20051005396
公開日2005年11月2日 申請日期2005年3月15日 優(yōu)先權(quán)日2004年3月16日
發(fā)明者鐘巨航 申請人:鐘巨航