欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

屏蔽固態(tài)硬盤存儲接口差異的方法及存儲系統(tǒng)的制作方法

文檔序號:6371235閱讀:404來源:國知局
專利名稱:屏蔽固態(tài)硬盤存儲接口差異的方法及存儲系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及固態(tài)硬盤技術(shù)領(lǐng)域,尤其涉及一種屏蔽固態(tài)硬盤存儲接口差異的方法及存儲系統(tǒng)。
背景技術(shù)
固態(tài)硬盤(Solid State Disk,簡稱SSD)是一種基于永久性存儲器,如閃存,或非永久性存儲器,SDRAM (同步動態(tài)隨機存取存儲器,Synchronous Dynamic Random AccessMemory )的計算機外部存儲設(shè)備。其具有讀寫速度快,低功耗,無噪音,抗震動,低熱量,體積小,工作范圍大,廣泛應(yīng)用于軍事、車載、工控、視頻監(jiān)控、網(wǎng)絡(luò)監(jiān)控、網(wǎng)絡(luò)終端、電力、醫(yī)療、航空等、導(dǎo)航設(shè)備等領(lǐng)域。如果能夠克服容價比低,和壽命限制,將會得到更廣泛的應(yīng)用。

在消費級領(lǐng)域,固態(tài)硬盤僅僅作為普通硬盤使用。在高端應(yīng)用領(lǐng)域,追求性能和環(huán)保的需要,固態(tài)硬盤將取代機械盤,作為存儲系統(tǒng)的一部分。固態(tài)硬盤接口種類多元,主要包括 PATA (Parallel Advanced Technology Attachment,并行 ATA 硬盤接口規(guī)格)、SATA(Serial Advanced Technology Attachment,串行硬件驅(qū)動器接口)、PCIe (PeripheralComponent Interface Express,新一代總線接口標準)與 USB (Universal Serial Bus,通用串行總線)。作為企業(yè)級應(yīng)用,需要在驅(qū)動程序之上建立RAID (Redundant Array ofIndependent Disk,磁盤陣列)和Cache (高速緩沖存儲器)的相關(guān)的應(yīng)用,以及實現(xiàn)跨Flash控制器之間的磨損均衡(Wear Leveling)和垃圾回收(Garbage Collection)。由于固態(tài)硬盤接口種類的多樣,造成了固態(tài)硬盤的驅(qū)動程序?qū)崿F(xiàn)方法和方式的不同,底層接口包括 IDE (Integrated Drive Electronics,電子集成驅(qū)動器),SATA, PATA,SCSI (Small Computer System Interface,小型計算機系統(tǒng)接口),等等,當前固態(tài)硬盤高端應(yīng)用需要實現(xiàn)存儲的RAID和Cache等相關(guān)功能。這樣會造成在底層固態(tài)硬盤存儲接口不同時,上層軟件會因為接口的不同,而造成上層軟件修改比較比較大。普通的固態(tài)硬盤存儲軟件架構(gòu)如圖IA和圖IB所示,在圖IA和圖IB中可以看到,在固態(tài)硬盤的驅(qū)動程序之間建立上RAID/Cache等應(yīng)用,上層軟件模塊包括一些應(yīng)用軟件讀取。綜上可知,現(xiàn)有的固態(tài)硬盤存儲技術(shù)在實際使用上,顯然存在不便與缺陷,所以有必要加以改進。

發(fā)明內(nèi)容
針對上述的缺陷,本發(fā)明的目的在于提供一種屏蔽固態(tài)硬盤存儲接口差異的方法及存儲系統(tǒng),降低了固態(tài)硬盤存儲系統(tǒng)中上層應(yīng)用模塊與底層驅(qū)動模塊的耦合性,提高了固態(tài)硬盤存儲系統(tǒng)的穩(wěn)定性和可擴展性。為了實現(xiàn)上述目的,本發(fā)明提供一種屏蔽固態(tài)硬盤存儲接口差異的方法,所述方法包括在固態(tài)硬盤的存儲系統(tǒng)中設(shè)置固態(tài)硬盤抽象層和驅(qū)動適配層;所述固態(tài)硬盤的訪問及存儲功能通過所述固態(tài)硬盤抽象層和驅(qū)動適配層與所述固態(tài)硬盤的驅(qū)動模塊和/或所述存儲系統(tǒng)的上層應(yīng)用模塊進行交互。根據(jù)所述的方法,在所述存儲系統(tǒng)檢測到所述固態(tài)硬盤連接到所述存儲系統(tǒng)時,將與所述固態(tài)硬盤對應(yīng)的功能函數(shù)注冊到所述固態(tài)硬盤抽象層,以及將所述固態(tài)硬盤的靜態(tài)信息存儲到所述固態(tài)硬盤抽象層。根據(jù)所述的方法,所述固態(tài)硬盤對應(yīng)的功能函數(shù)包括IO功能函數(shù)和/或IO返回函數(shù)和/或所述存儲系統(tǒng)上層應(yīng)用模塊的管理請求的相關(guān)管理函數(shù)。根據(jù)所述的方法,在所述存儲系統(tǒng)的上層應(yīng)用模塊下發(fā)IO請求時,在所述固態(tài)硬盤抽象層內(nèi)注冊的IO功能函數(shù)把所述IO請求的數(shù)據(jù)格式轉(zhuǎn)化成所述固態(tài)硬盤的驅(qū)動程序能夠識別的格式,并將轉(zhuǎn)化后的IO請求發(fā)送到所述固態(tài)硬盤的固件; 在所述固件將所述IO請求返回時,由在所述固態(tài)硬盤抽象層注冊的IO返回函數(shù),把所述固態(tài)硬盤的固件返回的IO請求的數(shù)據(jù)格式轉(zhuǎn)換成所述上層應(yīng)用模塊能夠識別的格式。根據(jù)所述的方法,所述固態(tài)硬盤為PCIE固態(tài)硬盤,所述固態(tài)硬盤抽象層設(shè)置于所述存儲系統(tǒng)中的Raid/Cache層與驅(qū)動適配層之間;所述驅(qū)動適配層設(shè)置于所述固態(tài)硬盤抽象層與所述固態(tài)硬盤的驅(qū)動程序?qū)又g;并且將處于所述存儲系統(tǒng)底層的PCIE卡和FD分別抽象成為所述固態(tài)硬盤抽象層中的Card對象和FD對象;所述靜態(tài)信息對應(yīng)存儲到所述Card對象和FD對象的相關(guān)成員中。根據(jù)所述的方法,在所述固態(tài)硬盤的上層應(yīng)用模塊下發(fā)管理請求時,若所述管理請求獲取的為所述固態(tài)硬盤的動態(tài)管理數(shù)據(jù),則由在所述固態(tài)硬盤抽象層所注冊的與所述管理請求相關(guān)的管理函數(shù)通過所述驅(qū)動模塊獲取相關(guān)信息并返回所述上層應(yīng)用模塊;若所述管理請求獲取的為所述固態(tài)硬盤的動態(tài)管理數(shù)據(jù),則由在所述固態(tài)硬盤抽象層中的Card對象或者FD對象的相關(guān)成員直接向所述上層應(yīng)用模塊返回所述動態(tài)管理數(shù)據(jù)。根據(jù)所述的方法,所述固態(tài)硬盤的存儲系統(tǒng)的底層接口包括IDE,SATA,PATA,SCSI接口。根據(jù)所述的方法,所述驅(qū)動適配層將所述固態(tài)硬盤抽象層與所述驅(qū)動模塊進行適配;在所述功能函數(shù)被調(diào)用時,所述功能函數(shù)在所述驅(qū)動適配層處理。為了實現(xiàn)本發(fā)明的另一發(fā)明目的,本發(fā)明還提供了一種用于實現(xiàn)上述任一項所述的屏蔽固態(tài)硬盤存儲接口差異的方法的存儲系統(tǒng),所述存儲系統(tǒng)包括固態(tài)硬盤抽象層和驅(qū)動適配層;所述固態(tài)硬盤的訪問及存儲功能通過所述固態(tài)硬盤抽象層和驅(qū)動適配層與所述固態(tài)硬盤的驅(qū)動模塊和/或所述存儲系統(tǒng)的上層應(yīng)用模塊進行交互。本發(fā)明通過在固態(tài)硬盤存儲軟件系統(tǒng)中增加了固態(tài)硬盤抽象層和驅(qū)動適配層所述固態(tài)硬盤的訪問及存儲功能通過所述固態(tài)硬盤抽象層和驅(qū)動適配層與所述固態(tài)硬盤的驅(qū)動模塊和/或所述存儲系統(tǒng)的上層應(yīng)用模塊進行交互。減少了固態(tài)硬盤存儲系統(tǒng)上層RAID/Cache層與底層驅(qū)動的耦合,屏蔽因為接口和驅(qū)動的不同造成上層軟件的修改。具體的,把底層硬件的PCIE卡和FD在固態(tài)硬盤抽象層中抽象成Card和FD(Flash Disk)對象,把上層軟件需要實現(xiàn)的功能在驅(qū)動適配層實現(xiàn),在PCIE卡和FD上線時,注冊到固態(tài)硬盤抽象層。在底層硬件接口和驅(qū)動程序發(fā)生變化時,固態(tài)硬盤抽象層起到了屏蔽這種變化的作用,只需要注冊新的實現(xiàn)函數(shù)到固態(tài)硬盤抽象層,就可以把上層存儲軟件移植到新的存儲接口和硬件上。該方法極大的降低了 PCIE固態(tài)硬盤存儲軟件和底層驅(qū)動的耦合性,提高了PCIE固態(tài)硬盤存儲軟件的穩(wěn)定性和可擴展性。


圖IA是現(xiàn)有技術(shù)中固態(tài)硬盤存儲系統(tǒng)結(jié)構(gòu)示意圖;圖IB是現(xiàn)有技術(shù)中固態(tài)硬盤存儲系統(tǒng)結(jié)構(gòu)示意圖;圖2是本發(fā)明第一實施例提供的固態(tài)硬盤的存儲系統(tǒng)結(jié)構(gòu)示意圖;圖3是本發(fā)明一個實施例提供的屏蔽固態(tài)硬盤存儲接口差異的方法流程圖;圖4是本發(fā)明一個實施例提供的固態(tài)硬盤的存儲系統(tǒng)結(jié)構(gòu)示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。參見圖2,本發(fā)明的第一實施例中,提供了一種用于實現(xiàn)屏蔽固態(tài)硬盤101存儲接口差異的方法的存儲系統(tǒng)100,存儲系統(tǒng)100包括固態(tài)硬盤抽象層10和驅(qū)動適配層20 ;所述固態(tài)硬盤101的訪問及存儲功能通過固態(tài)硬盤抽象層10和驅(qū)動適配層20與所述固態(tài)硬盤101的驅(qū)動模塊30和/或所述存儲系統(tǒng)100的上層應(yīng)用模塊40進行交互。在該實施例中,通過在固態(tài)硬盤101的存儲系統(tǒng)100中設(shè)置固態(tài)硬盤抽象層10和驅(qū)動適配層20,通過固態(tài)硬盤抽象層10和驅(qū)動適配層20與上層應(yīng)用模塊40、驅(qū)動模塊30進行訪問及存儲的交互。例如,接收上層應(yīng)用模塊40發(fā)送的數(shù)據(jù)請求;以及底層驅(qū)動模塊30上報的數(shù)據(jù)信息等。驅(qū)動模塊30還包括對于固態(tài)硬盤101的驅(qū)動程序。在存儲系統(tǒng)100檢測到有固態(tài)硬盤101上線連接時,將所述固態(tài)硬盤101對應(yīng)的功能函數(shù)注冊到固態(tài)硬盤抽象層10,以及將固態(tài)硬盤101的靜態(tài)信息存儲到固態(tài)硬盤抽象層10。并且驅(qū)動適配層20將固態(tài)硬盤抽象層10與驅(qū)動模塊30進行適配;在所述功能函數(shù)被調(diào)用時,所述功能函數(shù)在驅(qū)動適配層20實現(xiàn)。因此,通過設(shè)置固態(tài)硬盤抽象層10和驅(qū)動適配層20,可以與所述固態(tài)硬盤101的驅(qū)動模塊30和/或存儲系統(tǒng)100的上層應(yīng)用模塊40的交互,減少上層RAID和Cache層與底層驅(qū)動的耦合,屏蔽因為接口和驅(qū)動的不同造成上層軟件的修改,對上層軟件的穩(wěn)定性有很重大的意義。在本發(fā)明的第二實施例中,提供了一種屏蔽固態(tài)硬盤101存儲接口差異的方法,所述方法包括在固態(tài)硬盤101的存儲系統(tǒng)100中設(shè)置固態(tài)硬盤抽象層10和驅(qū)動適配層20 ;所述固態(tài)硬盤101的訪問及存儲功能通過所述固態(tài)硬盤抽象層10和驅(qū)動適配層20與所述固態(tài)硬盤101的驅(qū)動模塊30和/或存儲系統(tǒng)100的上層應(yīng)用模塊40進行交互。在該實施例中,在存儲系統(tǒng)100中加入固態(tài)硬盤抽象層10和驅(qū)動適配層20,使得存儲功能RAID/Cache不與固態(tài)硬盤101的驅(qū)動模塊30直接進行交互,例如不與SCSI驅(qū)動模塊30、SATA驅(qū)動模塊30等驅(qū)動直接交互。因此,減少上層RAID和Cache層與底層驅(qū)動的耦合,屏蔽因為固態(tài)硬盤101的接口和驅(qū)動的不同造成上層軟件的修改。在本發(fā)明的第三實施例中,所述固態(tài)硬盤101為PCIE固態(tài)硬盤101,所述固態(tài)硬盤抽象層10設(shè)置于存儲系統(tǒng)100中的Raid/Cache層50與驅(qū)動適配層20之間;所述驅(qū)動適配層20設(shè)置于所述固態(tài)硬盤抽象層10與所述固態(tài)硬盤101的驅(qū)動程序?qū)又g;并且將處于存儲系統(tǒng)100底層的PCIE卡和FD分別抽象成為所述固態(tài)硬盤抽象層10中的Card對象和FD對象;所述靜態(tài)信息對應(yīng)存儲到所述Card對象和FD對象的相關(guān)成員中。在該實施例中,固態(tài)硬盤抽象層10的主要功能是把底層硬件PCIE卡和FD分別抽象成FD (Flash Disk,閃存盤)對象和Card (板卡)對象兩個對象。驅(qū)動適配層20的主要功能是在盡量不修改原始驅(qū)動的情況下,做驅(qū)動和固態(tài)硬盤抽象層10的適配。因為Flash芯片控制器廠商一般會提供原始驅(qū)動程序,在廠商驅(qū)動版本升級的情況下,減少整個存儲 軟件系統(tǒng)的修改,保持存儲軟件系統(tǒng)的穩(wěn)定性和可擴展性。在本發(fā)明的第四實施例中,在存儲系統(tǒng)100檢測到所述固態(tài)硬盤101連接到存儲系統(tǒng)100時,將與所述固態(tài)硬盤101對應(yīng)的功能函數(shù)注冊到所述固態(tài)硬盤抽象層10,以及將所述固態(tài)硬盤101的靜態(tài)信息存儲到所述固態(tài)硬盤抽象層10。其中,所述固態(tài)硬盤101對應(yīng)的功能函數(shù)包括IO功能函數(shù)和/或IO返回函數(shù)和/或存儲系統(tǒng)100的上層應(yīng)用模塊40的管理請求的相關(guān)管理函數(shù)。當存儲系統(tǒng)100檢測到PCIE卡和FD時,在固態(tài)硬盤抽象層10注冊相關(guān)的對象。具體的,首先會在軟件初始化時,在內(nèi)存中分配相關(guān)的資源,隨著探測函數(shù)發(fā)現(xiàn)相關(guān)對象時,上報到固態(tài)硬盤抽象層10,并且進行注冊。當上層應(yīng)用模塊40需要訪問Card或者FD時,不需要直接和底層驅(qū)動交互,直接訪問固態(tài)硬盤抽象層10的Card或者FD。而底層的驅(qū)動模塊30需要向上層應(yīng)用模塊40提供信息時,直接訪問固態(tài)硬盤抽象層10中Card對象或者FD對象的相關(guān)成員,例如卡的溫度,F(xiàn)D的壞塊數(shù),不需要直接與上層應(yīng)用模塊40交互。減少上層應(yīng)用模塊40,如存儲軟件和底層驅(qū)動模塊30的耦合性,提高了存儲軟件的穩(wěn)定性和擴展性。固態(tài)硬盤101的存儲系統(tǒng)100的底層接口包括IDE,SATA’ PATA, SCSI接口等多種接口。對應(yīng)于不同的接口,可以驅(qū)動適配層20有相應(yīng)的變化。在本發(fā)明的第五實施例中,在存儲系統(tǒng)100的上層應(yīng)用模塊40下發(fā)IO請求時,在所述固態(tài)硬盤抽象層10內(nèi)注冊的IO功能函數(shù)把所述IO請求的數(shù)據(jù)格式轉(zhuǎn)化成所述固態(tài)硬盤101的驅(qū)動程序能夠識別的格式,例如BIO格式,并將轉(zhuǎn)化后的IO請求發(fā)送到所述固態(tài)硬盤101的固件;在所述固件將所述IO請求返回時,由在所述固態(tài)硬盤抽象層10注冊的IO返回函數(shù),把所述固態(tài)硬盤101的固件返回的IO請求的數(shù)據(jù)格式轉(zhuǎn)換成所述上層應(yīng)用模塊40能夠識別的格式。例如,把上層IO請求轉(zhuǎn)換成ata_queue_cmd的格式。在本發(fā)明的第六實施例中,在所述固態(tài)硬盤101的上層應(yīng)用模塊40下發(fā)管理請求時,若所述管理請求獲取的為所述固態(tài)硬盤101的動態(tài)管理數(shù)據(jù),則由在所述固態(tài)硬盤抽象層10所注冊的與所述管理請求相關(guān)的管理函數(shù)通過驅(qū)動模塊30獲取相關(guān)信息并返回上層應(yīng)用模塊40;若所述管理請求獲取的為所述固態(tài)硬盤101的動態(tài)管理數(shù)據(jù),則由在所述固態(tài)硬盤抽象層10中的Card對象或者FD對象的相關(guān)成員直接向上層應(yīng)用模塊40返回所述動態(tài)
管理數(shù)據(jù)。當上層應(yīng)用模塊40提供的管理請求為動態(tài)管理數(shù)據(jù)時,例如固態(tài)硬盤101的溫度,不走IO數(shù)據(jù)處理通道 ,而是調(diào)用之前注冊到固態(tài)硬盤抽象層10的處理函數(shù),這樣處理在于可以提高程序的健壯性和可擴展性,對于增加和刪除相關(guān)功能不會影響整個程序架構(gòu)和系統(tǒng)的穩(wěn)定性,由驅(qū)動適配層20實現(xiàn)的處理函數(shù)。由該函數(shù)與驅(qū)動模塊30或者直接與Firmware (固件)進行交互。上層應(yīng)用模塊40提供的管理請求為靜態(tài)管理數(shù)據(jù)時,例如固態(tài)硬盤101的物理容量,不用走IO處理函數(shù)通道,也不調(diào)用相關(guān)的處理函數(shù),而是直接從固態(tài)硬盤抽象層10內(nèi)相關(guān)的Card對象或者FD對象中獲取相關(guān)的值。這樣處理的目的可以避免多次獲取不變的信息,減少了程序處理,提高了效率。參見圖3,在本發(fā)明一個實施例中,提供的屏蔽固態(tài)硬盤101存儲接口差異的方法,描述如下步驟S301中,初始化固態(tài)硬盤抽象層10 ;步驟S302中,接收上層應(yīng)用模塊40發(fā)送的請求消息;步驟S303中,根據(jù)請求消息的類型轉(zhuǎn)入相應(yīng)的處理流程;若該請求消息的類型為動態(tài)數(shù)據(jù)請求,則執(zhí)行步驟S304 ;若該請求消息的類型為IO請求,則執(zhí)行步驟S307 ;若該請求是靜態(tài)數(shù)據(jù)請求,則執(zhí)行步驟S310 ;步驟S304中,在固態(tài)硬盤抽象層10中調(diào)用相關(guān)處理函數(shù);步驟S305中,驅(qū)動適配層20獲得所述調(diào)用的相關(guān)處理函數(shù);步驟S306中,驅(qū)動模塊30根據(jù)所述調(diào)用的相關(guān)處理函數(shù)執(zhí)行驅(qū)動處理;步驟S307中,固態(tài)硬盤抽象層10中調(diào)用IO處理函數(shù);步驟S308中,驅(qū)動適配層20根據(jù)所述調(diào)用IO處理函數(shù)執(zhí)行IO請求處理;步驟S309中,驅(qū)動模塊30根據(jù)所述調(diào)用的IO處理函數(shù)執(zhí)行驅(qū)動處理;步驟S310中,直接從固態(tài)硬盤抽象層10的Card對象或者FD對象中獲取靜態(tài)數(shù)據(jù)。對于IO讀寫請求,通過驅(qū)動適配層20注冊的IO處理函數(shù)下發(fā)。根據(jù)請求類型的不同,進行不同的操作。當軟件上層下發(fā)IO請求時,會提供相關(guān)的參數(shù)信息,主要包括SG表的數(shù)量,LBA (Logical Base Address,邏輯地址塊)和數(shù)據(jù)的長度。根據(jù)驅(qū)動適配層20注冊的處理函數(shù),會把相關(guān)的信息轉(zhuǎn)換成驅(qū)動程序能夠識別的結(jié)構(gòu)發(fā)下給Firmware,完成相關(guān)的IO操作。例如,當上層軟件需要一個寫請求時,調(diào)用IO處理請求,實質(zhì)是注冊到適配層的函數(shù)把相關(guān)參數(shù)轉(zhuǎn)換成標準的SCSI命令,然后寫到固態(tài)硬盤101。對于管理請求,分兩種情況,對于靜態(tài)的數(shù)據(jù),可以在Card或者FD對象中作為全局變量長期存儲;對于動態(tài)數(shù)據(jù),例如溫度等,可以通過和IO請求類似的方法,通過在驅(qū)動適配層20注冊的函數(shù)進行交互。例如當要獲取Card的生產(chǎn)日期時,可以直接通過Card對象的變量直接獲取。而動態(tài)信息溫度,則通過調(diào)用在驅(qū)動適配層20注冊的溫度獲取函數(shù),通過GPIO (General Purpose Input Output,通用輸入/輸出)口從溫度傳感器獲取溫度。從以上技術(shù)方案可以看出,在軟件架構(gòu)中加入固態(tài)硬盤抽象層10和驅(qū)動適配層20,可以有效的減少上層存儲軟件和驅(qū)動程序之間的耦合性,當?shù)讓域?qū)動因為下層存儲接口的不同,發(fā)生很大變化時,上層存儲軟件可以不必發(fā)生變化?;蛘呱蠈榆浖l(fā)生改變時,也不需要修改相關(guān)的驅(qū)動程序。本發(fā)明是一種屏蔽固態(tài)硬盤101存儲接口差異的方法,采取以下措施,可以使存儲系統(tǒng)100的軟件架構(gòu)更清晰,減少了上層存儲軟件和底層驅(qū)動程序和存儲接口的耦合性,在存儲接口和驅(qū)動程序發(fā)生變化的情況下,上層軟件可以保持不明,極大的提高了軟件的穩(wěn)定性和可擴展性。 參見圖4,在本發(fā)明的一個實施例中,固態(tài)硬盤101的接口為SCSI接口或者SATA接口,驅(qū)動適配層20為SCSI/SATA適配層20 ;驅(qū)動模塊30為SCSI/SATA驅(qū)動模塊30。其中,固態(tài)硬盤抽象層10 :屏蔽底層接口差異,功能和結(jié)構(gòu)不因為底層接口更改而改變。SCSI/SATA適配層20 :具體實現(xiàn)函數(shù),功能是把上層的請求轉(zhuǎn)換成SCSI命令或者SATA命令;SCSI/SATA驅(qū)動模塊30 :執(zhí)行具體的SCSI或者SATA命令;以Linux下基于PCIE的SCSI接口的固態(tài)磁盤為例子,在原有軟件架構(gòu)的基礎(chǔ)上,增加了固態(tài)硬盤抽象層10和SCSI驅(qū)動適配層20。在驅(qū)動程序初始化時,初始化固態(tài)硬盤抽象層10,分配內(nèi)存等相關(guān)資源,其中FD作為Card中的對象,每個FD自身由雙向鏈表組成。當驅(qū)動函數(shù)的Probe函數(shù)偵測到相關(guān)Card或者FD時,通過設(shè)備上線函數(shù)在固態(tài)硬盤抽象層10注冊,包括注冊相關(guān)的IO處理函數(shù),設(shè)備管理函數(shù)和上報部分靜態(tài)信息,其中靜態(tài)信息被保存到Card和FD對象的相關(guān)成員中。當上層有IO請求時,調(diào)用在固態(tài)硬盤抽象層10注冊的相關(guān)IO處理函數(shù),把來自上層的IO請求轉(zhuǎn)換成相關(guān)的SCSI命令,然后通過驅(qū)動函數(shù)的queuecommand函數(shù)下發(fā)到Firmware。IO請求返回時,通過SCSI命令的done函數(shù)把相關(guān)的IO數(shù)據(jù)返回,有上層軟件對相關(guān)的K)數(shù)據(jù)進行處理。當上層有管理類請求時,如果是動態(tài)信息,比如是獲取溫度,或者點亮面板上的燈,調(diào)用在固態(tài)硬盤抽象層10注冊的相關(guān)函數(shù)來進行具體執(zhí)行。當上層有管理類靜態(tài)信息請求時,比如獲取序列號,電子標簽等,可以直接在Card或者FD結(jié)構(gòu)里面獲取。如果希望擴充新的功能,只需要在固態(tài)硬盤抽象層10注冊新的函數(shù)即可,可擴展性極好如果底層存儲接口發(fā)生了變化,只需要注冊新的函數(shù)和驅(qū)動,上層RAID和Cache的相關(guān)內(nèi)容可以不變。綜上所述,本發(fā)明通過在固態(tài)硬盤存儲軟件系統(tǒng)中增加了固態(tài)硬盤抽象層和驅(qū)動適配層。所述固態(tài)硬盤的訪問及存儲功能通過所述固態(tài)硬盤抽象層和驅(qū)動適配層與所述固態(tài)硬盤的驅(qū)動模塊和/或所述存儲系統(tǒng)的上層應(yīng)用模塊進行交互。減少了固態(tài)硬盤存儲系統(tǒng)上層RAID/Cache層與底層驅(qū)動的耦合,屏蔽因為接口和驅(qū)動的不同造成上層軟件的修改。具體的,把底層硬件的PCIE卡和FD在固態(tài)硬盤抽象層中抽象成Card和FD對象,把上層軟件需要實現(xiàn)的功能在驅(qū)動適配層實現(xiàn),在PCIE卡和FD上線時,注冊到固態(tài)硬盤抽象層。在底層硬件接口和驅(qū)動程序發(fā)生變化時,固態(tài)硬盤抽象層起到了屏蔽這種變化的作用,只需要注冊新的實現(xiàn)函數(shù)到固態(tài)硬盤抽象層,就可以把上層存儲軟件移植到新的存儲接口和硬件上。該方法極大的降低了 PCIE固態(tài)硬盤存儲軟件和底層驅(qū)動的耦合性,提高了 PCIE固態(tài)硬盤存儲軟件的穩(wěn)定性和可擴展性。當然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
1.一種屏蔽固態(tài)硬盤存儲接口差異的方法,其特征在于,所述方法包括 在固態(tài)硬盤的存儲系統(tǒng)中設(shè)置固態(tài)硬盤抽象層和驅(qū)動適配層; 所述固態(tài)硬盤的訪問及存儲功能通過所述固態(tài)硬盤抽象層和驅(qū)動適配層與所述固態(tài)硬盤的驅(qū)動模塊和/或所述存儲系統(tǒng)的上層應(yīng)用模塊進行交互。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,在所述存儲系統(tǒng)檢測到所述固態(tài)硬盤連接到所述存儲系統(tǒng)時,將與所述固態(tài)硬盤對應(yīng)的功能函數(shù)注冊到所述固態(tài)硬盤抽象層,以及將所述固態(tài)硬盤的靜態(tài)信息存儲到所述固態(tài)硬盤抽象層。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述固態(tài)硬盤對應(yīng)的功能函數(shù)包括IO功 能函數(shù)和/或IO返回函數(shù)和/或所述存儲系統(tǒng)上層應(yīng)用模塊的管理請求的相關(guān)管理函數(shù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述存儲系統(tǒng)的上層應(yīng)用模塊下發(fā)IO請求時,在所述固態(tài)硬盤抽象層內(nèi)注冊的IO功能函數(shù)把所述IO請求的數(shù)據(jù)格式轉(zhuǎn)化成所述固態(tài)硬盤的驅(qū)動程序能夠識別的格式,并將轉(zhuǎn)化后的IO請求發(fā)送到所述固態(tài)硬盤的固件; 在所述固件將所述IO請求返回時,由在所述固態(tài)硬盤抽象層注冊的IO返回函數(shù),把所述固態(tài)硬盤的固件返回的IO請求的數(shù)據(jù)格式轉(zhuǎn)換成所述上層應(yīng)用模塊能夠識別的格式。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述固態(tài)硬盤為PCIE固態(tài)硬盤,所述固態(tài)硬盤抽象層設(shè)置于所述存儲系統(tǒng)中的Raid/Cache層與驅(qū)動適配層之間;所述驅(qū)動適配層設(shè)置于所述固態(tài)硬盤抽象層與所述固態(tài)硬盤的驅(qū)動程序?qū)又g; 并且將處于所述存儲系統(tǒng)底層的PCIE卡和FD分別抽象成為所述固態(tài)硬盤抽象層中的Card對象和FD對象;所述靜態(tài)信息對應(yīng)存儲到所述Card對象和FD對象的相關(guān)成員中。
6.根據(jù)權(quán)利要求5所述的方法,在所述固態(tài)硬盤的上層應(yīng)用模塊下發(fā)管理請求時,若所述管理請求獲取的為所述固態(tài)硬盤的動態(tài)管理數(shù)據(jù),則由在所述固態(tài)硬盤抽象層所注冊的與所述管理請求相關(guān)的管理函數(shù)通過所述驅(qū)動模塊獲取相關(guān)信息并返回所述上層應(yīng)用模塊; 若所述管理請求獲取的為所述固態(tài)硬盤的動態(tài)管理數(shù)據(jù),則由在所述固態(tài)硬盤抽象層中的Card對象或者FD對象的相關(guān)成員直接向所述上層應(yīng)用模塊返回所述動態(tài)管理數(shù)據(jù)。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述固態(tài)硬盤的存儲系統(tǒng)的底層接口包括 IDE, SATA, PATA, SCSI 接口。
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述驅(qū)動適配層將所述固態(tài)硬盤抽象層與所述驅(qū)動模塊進行適配;在所述功能函數(shù)被調(diào)用時,所述功能函數(shù)在所述驅(qū)動適配層處理。
9.一種用于實現(xiàn)權(quán)利要求廣8任一項所述的屏蔽固態(tài)硬盤存儲接口差異的方法的存儲系統(tǒng),其特征在于,所述存儲系統(tǒng)包括固態(tài)硬盤抽象層和驅(qū)動適配層; 所述固態(tài)硬盤的訪問及存儲功能通過所述固態(tài)硬盤抽象層和驅(qū)動適配層與所述固態(tài)硬盤的驅(qū)動模塊和/或所述存儲系統(tǒng)的上層應(yīng)用模塊進行交互。
全文摘要
本發(fā)明適用于固態(tài)硬盤技術(shù)領(lǐng)域,提供了一種屏蔽固態(tài)硬盤存儲接口差異的方法及存儲系統(tǒng),所述方法包括在固態(tài)硬盤的存儲系統(tǒng)中設(shè)置固態(tài)硬盤抽象層和驅(qū)動適配層;所述固態(tài)硬盤的訪問及存儲功能通過所述固態(tài)硬盤抽象層和驅(qū)動適配層與所述固態(tài)硬盤的驅(qū)動模塊和/或所述存儲系統(tǒng)的上層應(yīng)用模塊進行交互。借此,本發(fā)明降低了固態(tài)硬盤的存儲系統(tǒng)中上層應(yīng)用模塊與底層驅(qū)動模塊的耦合性,提高了固態(tài)硬盤存儲系統(tǒng)的穩(wěn)定性和可擴展性。
文檔編號G06F9/44GK102760061SQ20121019064
公開日2012年10月31日 申請日期2012年6月11日 優(yōu)先權(quán)日2012年6月11日
發(fā)明者馮旭剛 申請人:記憶科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
乌海市| 兴文县| 五家渠市| 天祝| 若尔盖县| 郎溪县| 洪洞县| 三江| 江都市| 德州市| 丰台区| 高台县| 武安市| 永宁县| 黄冈市| 沙田区| 霍城县| 曲麻莱县| 新民市| 芜湖县| 通道| 长治市| 堆龙德庆县| 当阳市| 南雄市| 德惠市| 云和县| 凤山市| 共和县| 盖州市| 西安市| 呼图壁县| 合作市| 宜兰市| 富源县| 海林市| 合阳县| 杭州市| 裕民县| 云霄县| 丹凤县|