專(zhuān)利名稱(chēng):一種對(duì)存儲(chǔ)設(shè)備進(jìn)行多通道數(shù)據(jù)處理的方法、系統(tǒng)和裝置的制作方法
一種對(duì)存儲(chǔ)設(shè)備進(jìn)行多通道數(shù)據(jù)處理的方法、系統(tǒng)和裝置
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種對(duì)存儲(chǔ)設(shè)備進(jìn)行多通道數(shù)據(jù)處理的方法、系統(tǒng)和裝置。
背景技術(shù):
隨著半導(dǎo)體介質(zhì)存儲(chǔ)裝置的廣泛使用,出現(xiàn)了各種各樣的存儲(chǔ)設(shè)備以及多種存儲(chǔ)介質(zhì),例如固態(tài)硬盤(pán)(SSD,Solid State Disk)、閃存(flash)卡。SSD或者flash卡都是由多片flash芯片組成,每個(gè)flash芯片或者一組flash芯片可以構(gòu)成一個(gè)存儲(chǔ)通道,存儲(chǔ)控制器通過(guò)在存儲(chǔ)通道(以下簡(jiǎn)稱(chēng)通道)之間的并發(fā)讀寫(xiě)來(lái)提高總體性能,如圖1所示,軟件驅(qū)動(dòng)層僅為上層軟件提供統(tǒng)一訪(fǎng)問(wèn)的接口,數(shù)據(jù)在多通道之間的調(diào)度由存儲(chǔ)控制器統(tǒng)一決定。但對(duì)于上層軟件來(lái)說(shuō),看不到各通道,也就是說(shuō),各通道對(duì)于上層軟件是不可見(jiàn)的,需要存儲(chǔ)控制器控制多通道之間的調(diào)度和并發(fā)讀寫(xiě)。這就可能造成如下缺陷如果存儲(chǔ)控制器的并發(fā)粒度太小,則需要存儲(chǔ)控制器維護(hù)一張非常巨大的邏輯地址到物理地址的映射表,而且還容易造成寫(xiě)放大;如果存儲(chǔ)控制器的并發(fā)粒度太大,則不能充分利用硬件提供的資源。也就是說(shuō),存儲(chǔ)控制器并不知道如何在多通道之間進(jìn)行調(diào)度更適合應(yīng)用層的需求,來(lái)達(dá)到最佳的讀寫(xiě)性能。
發(fā)明內(nèi)容本發(fā)明提供了一種對(duì)存儲(chǔ)設(shè)備進(jìn)行多通道數(shù)據(jù)處理的方法和系統(tǒng),從而使多通道之間的并發(fā)調(diào)度更適合應(yīng)用層的需求,達(dá)到最佳的讀寫(xiě)性能。具體技術(shù)方案如下一種對(duì)存儲(chǔ)設(shè)備進(jìn)行多通道數(shù)據(jù)處理的系統(tǒng),該系統(tǒng)包括驅(qū)動(dòng)及讀寫(xiě)管理裝置、 以及一個(gè)以上的存儲(chǔ)控制器;其中每個(gè)存儲(chǔ)通道存在一個(gè)獨(dú)立的存儲(chǔ)控制器;所述驅(qū)動(dòng)及讀寫(xiě)管理裝置,用于接收各線(xiàn)程提供的訪(fǎng)問(wèn)請(qǐng)求,對(duì)接收到的訪(fǎng)問(wèn)請(qǐng)求進(jìn)行調(diào)度并發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器,其中,每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)或者多個(gè)存儲(chǔ)通道;所述存儲(chǔ)控制器,用于根據(jù)所在存儲(chǔ)通道中邏輯地址與物理地址的映射關(guān)系,執(zhí)行所接收到訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)處理。其中,所述存儲(chǔ)通道包含一個(gè)或一組閃存flash芯片。所述存儲(chǔ)控制器與所述驅(qū)動(dòng)及讀寫(xiě)管理裝置通過(guò)外設(shè)總線(xiàn)互連標(biāo)準(zhǔn)PCI連接。具體地,所述驅(qū)動(dòng)及讀寫(xiě)管理裝置根據(jù)預(yù)先保存的線(xiàn)程與存儲(chǔ)通道的綁定關(guān)系將所述訪(fǎng)問(wèn)請(qǐng)求發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器,或者,根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求中攜帶的通道號(hào)將所述訪(fǎng)問(wèn)請(qǐng)求發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器。其中,所述驅(qū)動(dòng)及讀寫(xiě)管理裝置具體包括塊設(shè)備操作單元、一個(gè)以上的請(qǐng)求子隊(duì)列、請(qǐng)求調(diào)度單元、總請(qǐng)求隊(duì)列以及請(qǐng)求處理單元;所述塊設(shè)備操作單元,用于接收各線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求送入所述一個(gè)以上的請(qǐng)求子隊(duì)列;所述請(qǐng)求調(diào)度單元,用于調(diào)度各請(qǐng)求子隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求并送入所述總請(qǐng)求隊(duì)列;所述請(qǐng)求處理單元,用于從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。所述一個(gè)以上的請(qǐng)求子隊(duì)列為各存儲(chǔ)通道的請(qǐng)求子隊(duì)列,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)存儲(chǔ)通道的請(qǐng)求子隊(duì)列;或者,所述一個(gè)以上的請(qǐng)求子隊(duì)列為各訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列。所述請(qǐng)求處理單元采用批處理的方式從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。其中,所述存儲(chǔ)控制器包括存儲(chǔ)器文件RF、閃存翻譯層FTL、先入先出存儲(chǔ)器 FIFO以及閃存控制模塊;所述RF,用于記錄接收到的訪(fǎng)問(wèn)請(qǐng)求;所述FTL與所述RF、所述FIFO以及緩存處理數(shù)據(jù)的DRAM連接,用于進(jìn)行地址管理,所述地址管理包括維護(hù)所在存儲(chǔ)通道中邏輯地址到物理地址的地址映射表,完成所述 RF所記錄訪(fǎng)問(wèn)請(qǐng)求的邏輯地址到物理地址的映射;所述閃存控制模塊,與所述FTL通過(guò)所述FIFO連接,用于根據(jù)所述FTL的地址映射結(jié)果,按照所述訪(fǎng)問(wèn)請(qǐng)求對(duì)flash芯片進(jìn)行數(shù)據(jù)處理。更進(jìn)一步地,所述RF還用于保存數(shù)據(jù)處理的狀態(tài)信息;所述閃存控制模塊,還用于在數(shù)據(jù)處理后,將處理狀態(tài)通過(guò)所述FIFO傳回所述 FTL,由所述FTL將所述處理狀態(tài)寫(xiě)入所述RF。一種驅(qū)動(dòng)及讀寫(xiě)管理裝置,該驅(qū)動(dòng)及讀寫(xiě)管理裝置包括塊設(shè)備操作單元、一個(gè)以上的請(qǐng)求子隊(duì)列、請(qǐng)求調(diào)度單元、總請(qǐng)求隊(duì)列以及請(qǐng)求處理單元;所述塊設(shè)備操作單元,用于接收各線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求送入所述一個(gè)以上的請(qǐng)求子隊(duì)列;所述請(qǐng)求調(diào)度單元,用于調(diào)度各請(qǐng)求子隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求并送入所述總請(qǐng)求隊(duì)列;所述請(qǐng)求處理單元,用于從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器;其中每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)或多個(gè)存儲(chǔ)通道,每個(gè)存儲(chǔ)通道存在一個(gè)獨(dú)立的存儲(chǔ)控制
ο具體地,所述一個(gè)以上的請(qǐng)求子隊(duì)列為各存儲(chǔ)通道的請(qǐng)求子隊(duì)列,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)存儲(chǔ)通道的請(qǐng)求子隊(duì)列;或者,所述一個(gè)以上的請(qǐng)求子隊(duì)列為各訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列。優(yōu)選地,所述請(qǐng)求處理單元采用批處理的方式從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。一種對(duì)存儲(chǔ)設(shè)備進(jìn)行多通道數(shù)據(jù)處理的方法,該方法應(yīng)用于包括驅(qū)動(dòng)及讀寫(xiě)管理裝置、以及一個(gè)以上的存儲(chǔ)控制器的系統(tǒng),其中每個(gè)存儲(chǔ)通道存在一個(gè)獨(dú)立的存儲(chǔ)控制器; 該方法包括Si、所述驅(qū)動(dòng)及讀寫(xiě)管理裝置接收各線(xiàn)程提供的訪(fǎng)問(wèn)請(qǐng)求,對(duì)接收到的訪(fǎng)問(wèn)請(qǐng)求進(jìn)行調(diào)度并發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器,其中,每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)或者多個(gè)存儲(chǔ)通道;S2、所述存儲(chǔ)控制器根據(jù)所在存儲(chǔ)通道中邏輯地址與物理地址的映射關(guān)系,執(zhí)行所接收到訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)處理。其中,所述存儲(chǔ)通道包含一個(gè)或一組閃存flash芯片。具體地,在所述步驟Sl中,所述驅(qū)動(dòng)及讀寫(xiě)管理裝置通過(guò)外設(shè)總線(xiàn)互連標(biāo)準(zhǔn)PCI 將訪(fǎng)問(wèn)請(qǐng)求發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器。在所述步驟Sl中,所述驅(qū)動(dòng)及讀寫(xiě)管理裝置根據(jù)預(yù)先保存的線(xiàn)程與存儲(chǔ)通道的綁定關(guān)系將所述訪(fǎng)問(wèn)請(qǐng)求發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器,或者,根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求中攜帶的通道號(hào)將所述訪(fǎng)問(wèn)請(qǐng)求發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器。具體地,所述步驟Sl包括S11、在所述驅(qū)動(dòng)及讀寫(xiě)管理裝置中,塊設(shè)備操作單元接收各線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求送入一個(gè)以上的請(qǐng)求子隊(duì)列;S12、請(qǐng)求調(diào)度單元調(diào)度各請(qǐng)求子隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求并送入總請(qǐng)求隊(duì)列;S13、請(qǐng)求處理單元從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。步驟Sll中所述將訪(fǎng)問(wèn)請(qǐng)求送入一個(gè)以上的請(qǐng)求子隊(duì)列為所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)存儲(chǔ)通道的請(qǐng)求子隊(duì)列;或者,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列。優(yōu)選地,所述步驟S13為所述請(qǐng)求處理單元采用批處理的方式從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。其中,所述步驟S2具體包括S21、在所述存儲(chǔ)控制器中,存儲(chǔ)器文件記錄接收到的訪(fǎng)問(wèn)請(qǐng)求;S22、閃存翻譯層FTL根據(jù)維護(hù)的所在存儲(chǔ)通道中邏輯地址到物理地址的地址映射表,完成所述RF所記錄訪(fǎng)問(wèn)請(qǐng)求的邏輯地址到物理地址的映射;S23、所述閃存控制模塊根據(jù)所述FTL的地址映射結(jié)果,按照所述訪(fǎng)問(wèn)請(qǐng)求對(duì) flash芯片進(jìn)行數(shù)據(jù)處理。更進(jìn)一步地,所述步驟S2還包括所述閃存控制模塊在數(shù)據(jù)處理后,將處理狀態(tài)通過(guò)所述FIFO傳回所述FTL,由所述FTL將所述處理狀態(tài)寫(xiě)入所述RF。一種驅(qū)動(dòng)及讀寫(xiě)管理方法,應(yīng)用于包括塊設(shè)備操作單元、一個(gè)以上的請(qǐng)求子隊(duì)列、 請(qǐng)求調(diào)度單元、總請(qǐng)求隊(duì)列以及請(qǐng)求處理單元的裝置;該方法包括A、所述塊設(shè)備操作單元接收各線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求送入一個(gè)以上的請(qǐng)求子隊(duì)列;B、所述請(qǐng)求調(diào)度單元調(diào)度各請(qǐng)求子隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求并送入總請(qǐng)求隊(duì)列;
C、所述請(qǐng)求處理單元從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器;其中每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)或多個(gè)存儲(chǔ)通道,每個(gè)存儲(chǔ)通道存在一個(gè)獨(dú)立的存儲(chǔ)控制
ο具體地,步驟A中所述將訪(fǎng)問(wèn)請(qǐng)求送入一個(gè)以上的請(qǐng)求子隊(duì)列為所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)存儲(chǔ)通道的請(qǐng)求子隊(duì)列;或者,
所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列。優(yōu)選地,所述步驟C為所述請(qǐng)求處理單元采用批處理的方式從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。由以上技術(shù)方案可以看出,在本發(fā)明中各線(xiàn)程分別負(fù)責(zé)不同的通道,使得上層軟件根據(jù)應(yīng)用層的需求將處理任務(wù)分發(fā)給多個(gè)線(xiàn)程進(jìn)行處理時(shí),粒度可直接由上層軟件決定并體現(xiàn)在不同的通道上,而不是由存儲(chǔ)控制器實(shí)現(xiàn)多通道的并發(fā)調(diào)度,從而滿(mǎn)足應(yīng)用層的需求;并且,由于各通道分別具有獨(dú)立的存儲(chǔ)控制器,存儲(chǔ)控制器僅需要維護(hù)所在通道的地址映射表,避免了并發(fā)粒度太小造成的存儲(chǔ)壓力,更方便達(dá)到最佳的讀寫(xiě)性能。
圖1為現(xiàn)有技術(shù)中對(duì)存儲(chǔ)設(shè)備進(jìn)行多通道數(shù)據(jù)處理的系統(tǒng)示意圖;圖2為本發(fā)明實(shí)施例所提供系統(tǒng)的硬件架構(gòu)圖;圖3為本發(fā)明實(shí)施例提供的主要方法流程圖;圖4為本發(fā)明實(shí)施例提供的并發(fā)數(shù)據(jù)處理的效果圖;圖fe為本發(fā)明實(shí)施例提供的驅(qū)動(dòng)及讀寫(xiě)管理裝置的一種結(jié)構(gòu)圖;圖恥為本發(fā)明實(shí)施例提供的驅(qū)動(dòng)及讀寫(xiě)管理裝置的另一種結(jié)構(gòu)圖;圖6為本發(fā)明實(shí)施例提供的驅(qū)動(dòng)及讀寫(xiě)管理方法的流程圖;圖7為本發(fā)明實(shí)施例提供的各通道的存儲(chǔ)控制器的硬件控制架構(gòu)示意圖;圖8為本發(fā)明實(shí)施例提供的通道引擎的硬件架構(gòu)圖。
具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。圖2為本發(fā)明實(shí)施例所提供系統(tǒng)的硬件架構(gòu)圖,如圖1所示,在該系統(tǒng)的硬件架構(gòu)中,每個(gè)通道對(duì)存在一個(gè)獨(dú)立的存儲(chǔ)控制器,負(fù)責(zé)所在通道中flash芯片的數(shù)據(jù)分布和數(shù)據(jù)處理,其中數(shù)據(jù)處理包括數(shù)據(jù)的讀、寫(xiě)或擦除等。各通道之間的調(diào)度由CPU中驅(qū)動(dòng)及讀寫(xiě)管理裝置通過(guò)軟件的方式控制,也就是說(shuō),驅(qū)動(dòng)及讀寫(xiě)管理裝置為各通道的數(shù)據(jù)讀寫(xiě)、擦除等處理提供應(yīng)用管理程序接口(API),多通道之間的調(diào)度交由上層軟件控制。本發(fā)明實(shí)施例提供的架構(gòu)中,各通道對(duì)上層軟件是可見(jiàn)的,整個(gè)存儲(chǔ)設(shè)備可以看成由多個(gè)相互獨(dú)立的子設(shè)備構(gòu)成,每個(gè)子設(shè)備包括一個(gè)通道的存儲(chǔ)控制器和flash芯片。 每個(gè)線(xiàn)程可以負(fù)責(zé)一個(gè)或者多個(gè)通道的訪(fǎng)問(wèn),不同線(xiàn)程可以對(duì)不同通道進(jìn)行并發(fā)訪(fǎng)問(wèn)。一種優(yōu)選的實(shí)施方式為一個(gè)線(xiàn)程負(fù)責(zé)一個(gè)通道。
各通道的存儲(chǔ)控制器與CPU的驅(qū)動(dòng)及讀寫(xiě)管理裝置可以通過(guò)諸如PCIE等外設(shè)總線(xiàn)互連標(biāo)準(zhǔn)(PCI)進(jìn)行連接。其中,驅(qū)動(dòng)及讀寫(xiě)管理裝置,用于接收各線(xiàn)程提供的訪(fǎng)問(wèn)請(qǐng)求,對(duì)接收到的訪(fǎng)問(wèn)請(qǐng)求進(jìn)行調(diào)度并發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器,其中每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)或多個(gè)存儲(chǔ)通道。存儲(chǔ)控制器,用于根據(jù)所在存儲(chǔ)通道中邏輯地址與物理地址的映射關(guān)系,執(zhí)行所接收到訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)處理。該硬件架構(gòu)下的數(shù)據(jù)處理流程可以參見(jiàn)圖3所示,主要包括以下步驟步驟301 驅(qū)動(dòng)及讀寫(xiě)管理裝置接收線(xiàn)程提供的訪(fǎng)問(wèn)請(qǐng)求。該訪(fǎng)問(wèn)請(qǐng)求可以包括但不限于讀請(qǐng)求、寫(xiě)請(qǐng)求或者擦除請(qǐng)求。步驟302 驅(qū)動(dòng)及讀寫(xiě)管理裝置根據(jù)預(yù)設(shè)的通道調(diào)度策略,對(duì)接收到的訪(fǎng)問(wèn)請(qǐng)求進(jìn)行調(diào)度并發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)通道的存儲(chǔ)控制器。由于在本發(fā)明實(shí)施例中,線(xiàn)程與通道可以存在一定綁定關(guān)系,因此,驅(qū)動(dòng)及讀寫(xiě)管理裝置可以預(yù)先保存該綁定關(guān)系,接收到來(lái)自線(xiàn)程的訪(fǎng)問(wèn)請(qǐng)求時(shí),根據(jù)該綁定關(guān)系確定該線(xiàn)程所負(fù)責(zé)的通道,并發(fā)送訪(fǎng)問(wèn)請(qǐng)求;或者,線(xiàn)程在發(fā)送訪(fǎng)問(wèn)請(qǐng)求時(shí),在該訪(fǎng)問(wèn)請(qǐng)求中指定通道號(hào),該通道號(hào)為該線(xiàn)程所負(fù)責(zé)通道的通道號(hào),驅(qū)動(dòng)及讀寫(xiě)管理裝置根據(jù)訪(fǎng)問(wèn)請(qǐng)求中指定的通道號(hào)確定該線(xiàn)程所負(fù)責(zé)的通道,并發(fā)送訪(fǎng)問(wèn)請(qǐng)求。在進(jìn)行數(shù)據(jù)處理時(shí),上層軟件根據(jù)應(yīng)用層的需求即數(shù)據(jù)量的大小,會(huì)將處理任務(wù)分發(fā)給多個(gè)線(xiàn)程進(jìn)行處理,本發(fā)明實(shí)施例中各線(xiàn)程分別負(fù)責(zé)不同的通道,并發(fā)粒度直接由上層軟件決定并體現(xiàn)在不同的通道上,因此,本發(fā)明實(shí)施例提供的這種方式能夠直接滿(mǎn)足上層軟件的并發(fā)需求。而現(xiàn)有技術(shù)中,各線(xiàn)程并不存在負(fù)責(zé)的通道,雖然上層軟件根據(jù)數(shù)據(jù)量的大小會(huì)將處理任務(wù)分發(fā)給多個(gè)線(xiàn)程進(jìn)行處理,但存儲(chǔ)控制器會(huì)將多個(gè)線(xiàn)程發(fā)送來(lái)的請(qǐng)求進(jìn)行并發(fā)調(diào)度,并發(fā)粒度由存儲(chǔ)控制器控制,顯然無(wú)法滿(mǎn)足應(yīng)用層的并發(fā)需求。步驟303 存儲(chǔ)控制器根據(jù)其所在通道中邏輯地址與物理地址的映射關(guān)系,執(zhí)行所接收到訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)處理。由于通常存儲(chǔ)空間的物理地址對(duì)于軟件是屏蔽的,而采用邏輯地址,也就是說(shuō),線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求中攜帶的是邏輯地址,即目的地址是邏輯地址,存儲(chǔ)控制器執(zhí)行具體的數(shù)據(jù)處理操作時(shí),需要查找地址映射表確定邏輯地址對(duì)應(yīng)的物理地址,到對(duì)應(yīng)的物理地址執(zhí)行數(shù)據(jù)處理。在本發(fā)明實(shí)施例中,各存儲(chǔ)控制器存儲(chǔ)和維護(hù)的地址映射表僅是其所在通道的邏輯地址與物理地址的映射關(guān)系即可。各通道的地址映射表可以預(yù)先設(shè)置在各存儲(chǔ)控制器中,也可以在讀寫(xiě)過(guò)程中動(dòng)態(tài)生成,該部分為現(xiàn)有技術(shù),在此不再贅述。通過(guò)上述流程實(shí)現(xiàn)的數(shù)據(jù)處理從整體上看,能夠?qū)崿F(xiàn)各線(xiàn)程對(duì)其所負(fù)責(zé)通道的并發(fā)訪(fǎng)問(wèn),以每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)通道為例,效果如圖4所示。下面對(duì)驅(qū)動(dòng)及讀寫(xiě)管理裝置的具體實(shí)現(xiàn)進(jìn)行詳細(xì)描述,如圖fe所示,該驅(qū)動(dòng)及讀寫(xiě)管理裝置可以具體包括塊設(shè)備操作單元、一個(gè)以上的請(qǐng)求子隊(duì)列、請(qǐng)求調(diào)度單元、總請(qǐng)求隊(duì)列以及請(qǐng)求處理單元。其中,塊設(shè)備操作單元,用于接收各線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求送入一個(gè)以上的請(qǐng)求子隊(duì)列。
請(qǐng)求調(diào)度單元,用于調(diào)度各請(qǐng)求子隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求并送入總請(qǐng)求隊(duì)列。請(qǐng)求處理單元,用于從總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。在該驅(qū)動(dòng)及讀寫(xiě)管理裝置的結(jié)構(gòu)下,具體實(shí)現(xiàn)的驅(qū)動(dòng)及讀寫(xiě)管理方法可以如圖6 所示,包括以下步驟步驟601 各線(xiàn)程均將訪(fǎng)問(wèn)請(qǐng)求發(fā)送給塊設(shè)備操作單元。步驟602 塊設(shè)備操作單元接收各線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求送入一個(gè)以上的請(qǐng)求子隊(duì)列。上述的請(qǐng)求子隊(duì)列用于存儲(chǔ)訪(fǎng)問(wèn)請(qǐng)求,可以采用如下兩種方式第一種方式以通道劃分請(qǐng)求子隊(duì)列,塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求放入對(duì)應(yīng)的通道的請(qǐng)求子隊(duì)列。如圖如所示,如果線(xiàn)程1負(fù)責(zé)通道1,線(xiàn)程2負(fù)責(zé)通道2,則塊設(shè)備操作單元接收到線(xiàn)程1發(fā)送的訪(fǎng)問(wèn)請(qǐng)求后,將該訪(fǎng)問(wèn)請(qǐng)求發(fā)送給通道1的請(qǐng)求子隊(duì)列,接收到線(xiàn)程2發(fā)送的訪(fǎng)問(wèn)請(qǐng)求后,將該訪(fǎng)問(wèn)請(qǐng)求發(fā)送給通道2的請(qǐng)求子隊(duì)列。第二種方式以訪(fǎng)問(wèn)類(lèi)型劃分請(qǐng)求子隊(duì)列,塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求放入對(duì)應(yīng)訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列。如圖恥所示,可以劃分為讀請(qǐng)求子隊(duì)列、寫(xiě)請(qǐng)求子隊(duì)列和擦除請(qǐng)求子隊(duì)列,塊設(shè)備操作單元接收到來(lái)自各線(xiàn)程的訪(fǎng)問(wèn)請(qǐng)求后,如果該訪(fǎng)問(wèn)請(qǐng)求的訪(fǎng)問(wèn)類(lèi)型是讀數(shù)據(jù),則將該訪(fǎng)問(wèn)請(qǐng)求發(fā)送給讀請(qǐng)求子隊(duì)列;如果該訪(fǎng)問(wèn)請(qǐng)求的訪(fǎng)問(wèn)類(lèi)型是寫(xiě)數(shù)據(jù),則將該訪(fǎng)問(wèn)請(qǐng)求發(fā)送給寫(xiě)請(qǐng)求子隊(duì)列;如果該訪(fǎng)問(wèn)請(qǐng)求的訪(fǎng)問(wèn)類(lèi)型是擦除請(qǐng)求子隊(duì)列,則將該訪(fǎng)問(wèn)請(qǐng)求發(fā)送給擦除請(qǐng)求子隊(duì)列。步驟603 請(qǐng)求調(diào)度單元調(diào)度各請(qǐng)求子隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求并送入總請(qǐng)求隊(duì)列。其中,請(qǐng)求調(diào)度單元調(diào)度各請(qǐng)求子隊(duì)列的方式可以包括但不限于輪詢(xún)調(diào)度、隨機(jī)調(diào)度等。另外,可以根據(jù)總請(qǐng)求隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求數(shù)量狀況,決定調(diào)度的速度,從而防止擁
O步驟604 請(qǐng)求處理單元從總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)通道的存儲(chǔ)控制器。在此可以預(yù)設(shè)請(qǐng)求處理函數(shù),請(qǐng)求處理單元調(diào)用請(qǐng)求處理函數(shù)從總請(qǐng)求隊(duì)列中讀取訪(fǎng)問(wèn)請(qǐng)求,最終發(fā)起硬件操作。一種優(yōu)選的實(shí)施方式,請(qǐng)求處理單元可以采用批處理的方式處理總請(qǐng)求隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求,從而提高訪(fǎng)問(wèn)請(qǐng)求的分發(fā)效率。上述各線(xiàn)程在發(fā)送訪(fǎng)問(wèn)請(qǐng)求后可以進(jìn)入睡眠狀態(tài),等待操作完成,待硬件完成數(shù)據(jù)處理后,會(huì)通過(guò)中斷處理函數(shù)喚醒對(duì)應(yīng)線(xiàn)程。此處的硬件完成數(shù)據(jù)處理為通道的存儲(chǔ)控制器按照接收到的訪(fǎng)問(wèn)請(qǐng)求完成flash芯片的數(shù)據(jù)處理。下面對(duì)各通道的存儲(chǔ)控制器的硬件控制架構(gòu)進(jìn)行詳細(xì)描述,圖7為本發(fā)明實(shí)施例提供的各通道的存儲(chǔ)控制器的硬件控制架構(gòu)示意圖,如圖7所示,該硬件控制架構(gòu)可以包括總線(xiàn)控制模塊、動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)、DRAM控制器以及各通道的通道引擎(Channel engine),該通道引擎就相當(dāng)于上述系統(tǒng)中的存儲(chǔ)控制器。其中,每個(gè)通道都有一個(gè)單獨(dú)的通道引擎,該通道引擎負(fù)責(zé)所在通道的數(shù)據(jù)處理, 包括讀數(shù)據(jù)、寫(xiě)數(shù)據(jù)或者擦除數(shù)據(jù)等,很容易地實(shí)現(xiàn)數(shù)據(jù)處理的并發(fā)性。各通道的通道引擎通過(guò)總線(xiàn)控制單元接收訪(fǎng)問(wèn)請(qǐng)求,并根據(jù)其所在通道中邏輯地址與物理地址的映射關(guān)系,執(zhí)行所接收到訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)處理。在本發(fā)明實(shí)施例中,每個(gè)通道由一個(gè)通道引擎控制,這個(gè)通道引擎比現(xiàn)有的通道引擎更簡(jiǎn)單,因?yàn)椴恍枰芾硭型ǖ赖牟l(fā)性,無(wú)需維護(hù)所有通道的地址映射表,僅需要維護(hù)其所在通道的地址映射表。其中,總線(xiàn)控制單元可以采用PCIE DMA。DRAM用于緩存處理的數(shù)據(jù),DRAM控制器用于對(duì)DRAM的讀寫(xiě)狀態(tài)進(jìn)行控制。另外,該硬件控制架構(gòu)中還可以包括BCH校驗(yàn)?zāi)K,用于對(duì)隨機(jī)錯(cuò)誤模式進(jìn)行校正。上述多個(gè)通道的通道引擎、總線(xiàn)控制模塊、DRAM控制器、BCH校驗(yàn)?zāi)K可以在一個(gè)現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)芯片中實(shí)現(xiàn),該FPGA、DRAM和flash芯片可以設(shè)置在一個(gè)PCB電路板上??偩€(xiàn)控制模塊、DRAM控制器、BCH校驗(yàn)?zāi)K的用法與現(xiàn)有技術(shù)相同,不同的是,為了節(jié)省FPGA電路資源和結(jié)構(gòu)上的簡(jiǎn)化,多個(gè)通道引擎可以公用一個(gè)DRAM控制器、總線(xiàn)控制模塊和BCH校驗(yàn)?zāi)K。DRAM控制器、總線(xiàn)控制模塊和BCH校驗(yàn)?zāi)K的數(shù)據(jù)處理帶寬都足夠大,能保證多個(gè)通道同時(shí)讀寫(xiě)時(shí),數(shù)據(jù)傳輸帶寬能夠達(dá)到理論值上限。下面對(duì)上述的通道引擎的硬件架構(gòu)進(jìn)行詳細(xì)描述,如圖8所示,存儲(chǔ)器文件(RF, Register File)用于記錄接收到的訪(fǎng)問(wèn)請(qǐng)求,包括訪(fǎng)問(wèn)請(qǐng)求的源地址和目的地址、訪(fǎng)問(wèn)類(lèi)型、數(shù)據(jù)長(zhǎng)度等,還可以保存數(shù)據(jù)處理的狀態(tài)信息和異常信息等。閃存翻譯層(FTL,F(xiàn)lash Translation Layer)與 RF、DRAM 以及 FIFO 連接,用于進(jìn)行地址管理,該地址管理包括維護(hù)邏輯地址到物理地址的地址映射表,完成訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的邏輯地址到物理地址的映射。即將訪(fǎng)問(wèn)請(qǐng)求中目的地址映射為具體的flash芯片上存儲(chǔ)空間的物理地址。上述地址管理還可以包括flash芯片的壞塊管理、均衡磨損(wear leveling)控制等,這部分與現(xiàn)有技術(shù)相同,不再贅述。閃存控制模塊用于根據(jù)FTL進(jìn)行地址映射結(jié)果,對(duì)flash芯片進(jìn)行數(shù)據(jù)處理。如果接收到的訪(fǎng)問(wèn)請(qǐng)求為寫(xiě)數(shù)據(jù),則數(shù)據(jù)經(jīng)總線(xiàn)控制模塊傳到DRAM,RF記錄該訪(fǎng)問(wèn)請(qǐng)求,F(xiàn)TL根據(jù)該訪(fǎng)問(wèn)請(qǐng)求進(jìn)行地址映射后,將數(shù)據(jù)從DRAM通過(guò)FIFO傳給閃存控制模塊,閃存控制模塊根據(jù)地址映射的結(jié)果,將該數(shù)據(jù)寫(xiě)入相應(yīng)的flash芯片,并將處理狀態(tài)通過(guò)FIFO傳回FTL,由FTL將處理狀態(tài)寫(xiě)入RF。如果接收到的訪(fǎng)問(wèn)請(qǐng)求為讀數(shù)據(jù),則RF記錄該訪(fǎng)問(wèn)請(qǐng)求,F(xiàn)TL根據(jù)該訪(fǎng)問(wèn)請(qǐng)求進(jìn)行地址映射,閃存控制模塊根據(jù)地址映射的結(jié)果,從相應(yīng)的flash芯片中讀取數(shù)據(jù),將讀取的數(shù)據(jù)經(jīng)由FIFO傳給FTL,F(xiàn)TL將數(shù)據(jù)送入DRAM,再經(jīng)由總線(xiàn)控制模塊傳給CPU的驅(qū)動(dòng)及讀寫(xiě)管理裝置。并且,閃存控制模塊在處理完成后,會(huì)將處理狀態(tài)通過(guò)FIFO傳回FTL,由FTL 將處理狀態(tài)寫(xiě)入RF。如果接收到的訪(fǎng)問(wèn)請(qǐng)求為擦除數(shù)據(jù),則RF記錄該訪(fǎng)問(wèn)請(qǐng)求,F(xiàn)TL根據(jù)該訪(fǎng)問(wèn)請(qǐng)求進(jìn)行地址映射,閃存控制模塊根據(jù)地址映射的結(jié)果,從相應(yīng)的flash芯片中擦除數(shù)據(jù),并將處理狀態(tài)通過(guò)FIFO傳回FTL,由FTL將處理狀態(tài)寫(xiě)入RF。上述FIFO的作用是作時(shí)鐘隔離,因?yàn)镕TL和DRAM運(yùn)行在較高的時(shí)鐘域,而閃存控制模塊運(yùn)行在較低的時(shí)鐘域。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種對(duì)存儲(chǔ)設(shè)備進(jìn)行多通道數(shù)據(jù)處理的系統(tǒng),其特征在于,該系統(tǒng)包括驅(qū)動(dòng)及讀寫(xiě)管理裝置、以及一個(gè)以上的存儲(chǔ)控制器;其中每個(gè)存儲(chǔ)通道存在一個(gè)獨(dú)立的存儲(chǔ)控制器;所述驅(qū)動(dòng)及讀寫(xiě)管理裝置,用于接收各線(xiàn)程提供的訪(fǎng)問(wèn)請(qǐng)求,對(duì)接收到的訪(fǎng)問(wèn)請(qǐng)求進(jìn)行調(diào)度并發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器,其中,每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)或者多個(gè)存儲(chǔ)通道;所述存儲(chǔ)控制器,用于根據(jù)所在存儲(chǔ)通道中邏輯地址與物理地址的映射關(guān)系,執(zhí)行所接收到訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)處理。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述存儲(chǔ)通道包含一個(gè)或一組閃存flash芯片。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述存儲(chǔ)控制器與所述驅(qū)動(dòng)及讀寫(xiě)管理裝置通過(guò)外設(shè)總線(xiàn)互連標(biāo)準(zhǔn)PCI連接。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述驅(qū)動(dòng)及讀寫(xiě)管理裝置根據(jù)預(yù)先保存的線(xiàn)程與存儲(chǔ)通道的綁定關(guān)系將所述訪(fǎng)問(wèn)請(qǐng)求發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器,或者,根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求中攜帶的通道號(hào)將所述訪(fǎng)問(wèn)請(qǐng)求發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述驅(qū)動(dòng)及讀寫(xiě)管理裝置具體包括塊設(shè)備操作單元、一個(gè)以上的請(qǐng)求子隊(duì)列、請(qǐng)求調(diào)度單元、總請(qǐng)求隊(duì)列以及請(qǐng)求處理單元;所述塊設(shè)備操作單元,用于接收各線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求送入所述一個(gè)以上的請(qǐng)求子隊(duì)列;所述請(qǐng)求調(diào)度單元,用于調(diào)度各請(qǐng)求子隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求并送入所述總請(qǐng)求隊(duì)列; 所述請(qǐng)求處理單元,用于從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述一個(gè)以上的請(qǐng)求子隊(duì)列為各存儲(chǔ)通道的請(qǐng)求子隊(duì)列,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)存儲(chǔ)通道的請(qǐng)求子隊(duì)列;或者,所述一個(gè)以上的請(qǐng)求子隊(duì)列為各訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列。
7.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述請(qǐng)求處理單元采用批處理的方式從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。
8.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述存儲(chǔ)控制器包括存儲(chǔ)器文件RF、閃存翻譯層FTL、先入先出存儲(chǔ)器FIFO以及閃存控制模塊;所述RF,用于記錄接收到的訪(fǎng)問(wèn)請(qǐng)求;所述FTL與所述RF、所述FIFO以及緩存處理數(shù)據(jù)的DRAM連接,用于進(jìn)行地址管理,所述地址管理包括維護(hù)所在存儲(chǔ)通道中邏輯地址到物理地址的地址映射表,完成所述RF所記錄訪(fǎng)問(wèn)請(qǐng)求的邏輯地址到物理地址的映射;所述閃存控制模塊,與所述FTL通過(guò)所述FIFO連接,用于根據(jù)所述FTL的地址映射結(jié)果,按照所述訪(fǎng)問(wèn)請(qǐng)求進(jìn)行數(shù)據(jù)處理。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述RF還用于保存數(shù)據(jù)處理的狀態(tài)信息;所述閃存控制模塊,還用于在數(shù)據(jù)處理后,將處理狀態(tài)通過(guò)所述FIFO傳回所述FTL,由所述FTL將所述處理狀態(tài)寫(xiě)入所述RF。
10.一種驅(qū)動(dòng)及讀寫(xiě)管理裝置,其特征在于,該驅(qū)動(dòng)及讀寫(xiě)管理裝置包括塊設(shè)備操作單元、一個(gè)以上的請(qǐng)求子隊(duì)列、請(qǐng)求調(diào)度單元、總請(qǐng)求隊(duì)列以及請(qǐng)求處理單元;所述塊設(shè)備操作單元,用于接收各線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求送入所述一個(gè)以上的請(qǐng)求子隊(duì)列;所述請(qǐng)求調(diào)度單元,用于調(diào)度各請(qǐng)求子隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求并送入所述總請(qǐng)求隊(duì)列;所述請(qǐng)求處理單元,用于從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器;其中每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)或多個(gè)存儲(chǔ)通道,每個(gè)存儲(chǔ)通道存在一個(gè)獨(dú)立的存儲(chǔ)控制器。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述一個(gè)以上的請(qǐng)求子隊(duì)列為各存儲(chǔ)通道的請(qǐng)求子隊(duì)列,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)存儲(chǔ)通道的請(qǐng)求子隊(duì)列;或者,所述一個(gè)以上的請(qǐng)求子隊(duì)列為各訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列。
12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述請(qǐng)求處理單元采用批處理的方式從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。
13.一種對(duì)存儲(chǔ)設(shè)備進(jìn)行多通道數(shù)據(jù)處理的方法,其特征在于,該方法應(yīng)用于包括驅(qū)動(dòng)及讀寫(xiě)管理裝置、以及一個(gè)以上的存儲(chǔ)控制器的系統(tǒng);其中每個(gè)存儲(chǔ)通道存在一個(gè)獨(dú)立的存儲(chǔ)控制器;該方法包括.51、所述驅(qū)動(dòng)及讀寫(xiě)管理裝置接收各線(xiàn)程提供的訪(fǎng)問(wèn)請(qǐng)求,對(duì)接收到的訪(fǎng)問(wèn)請(qǐng)求進(jìn)行調(diào)度并發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器,其中,每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)或者多個(gè)存儲(chǔ)通道;.52、所述存儲(chǔ)控制器根據(jù)所在存儲(chǔ)通道中邏輯地址與物理地址的映射關(guān)系,執(zhí)行所接收到訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)處理。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述存儲(chǔ)通道包含一個(gè)或一組閃存 flash芯片。
15.根據(jù)權(quán)利要求13所述的方法,其特征在于,在所述步驟Sl中,所述驅(qū)動(dòng)及讀寫(xiě)管理裝置通過(guò)外設(shè)總線(xiàn)互連標(biāo)準(zhǔn)PCI將訪(fǎng)問(wèn)請(qǐng)求發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制ο
16.根據(jù)權(quán)利要求13所述的方法,其特征在于,在所述步驟Sl中,所述驅(qū)動(dòng)及讀寫(xiě)管理裝置根據(jù)預(yù)先保存的線(xiàn)程與存儲(chǔ)通道的綁定關(guān)系將所述訪(fǎng)問(wèn)請(qǐng)求發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器,或者,根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求中攜帶的通道號(hào)將所述訪(fǎng)問(wèn)請(qǐng)求發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器。
17.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟Sl具體包括.511、在所述驅(qū)動(dòng)及讀寫(xiě)管理裝置中,塊設(shè)備操作單元接收各線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求送入一個(gè)以上的請(qǐng)求子隊(duì)列;.512、請(qǐng)求調(diào)度單元調(diào)度各請(qǐng)求子隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求并送入總請(qǐng)求隊(duì)列;.513、請(qǐng)求處理單元從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。
18.根據(jù)權(quán)利要求17所述的方法,其特征在于,步驟Sll中所述將訪(fǎng)問(wèn)請(qǐng)求送入一個(gè)以上的請(qǐng)求子隊(duì)列為所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)存儲(chǔ)通道的請(qǐng)求子隊(duì)列;或者,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列。
19.根據(jù)權(quán)利要求17所述的方法,其特征在于,所述步驟S13為所述請(qǐng)求處理單元采用批處理的方式從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。
20.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟S2具體包括521、在所述存儲(chǔ)控制器中,存儲(chǔ)器文件記錄接收到的訪(fǎng)問(wèn)請(qǐng)求;522、閃存翻譯層FTL根據(jù)維護(hù)的所在存儲(chǔ)通道中邏輯地址到物理地址的地址映射表, 完成所述RF所記錄訪(fǎng)問(wèn)請(qǐng)求的邏輯地址到物理地址的映射;523、所述閃存控制模塊根據(jù)所述FTL的地址映射結(jié)果,按照所述訪(fǎng)問(wèn)請(qǐng)求對(duì)flash芯片進(jìn)行數(shù)據(jù)處理。
21.根據(jù)權(quán)利要求20所述的方法,其特征在于,所述步驟S2還包括所述閃存控制模塊在數(shù)據(jù)處理后,將處理狀態(tài)通過(guò)先入先出存儲(chǔ)器FIFO傳回所述 FTL,由所述FTL將所述處理狀態(tài)寫(xiě)入所述RF。
22.—種驅(qū)動(dòng)及讀寫(xiě)管理方法,其特征在于,應(yīng)用于包括塊設(shè)備操作單元、一個(gè)以上的請(qǐng)求子隊(duì)列、請(qǐng)求調(diào)度單元、總請(qǐng)求隊(duì)列以及請(qǐng)求處理單元的裝置;該方法包括A、所述塊設(shè)備操作單元接收各線(xiàn)程發(fā)送的訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求送入一個(gè)以上的請(qǐng)求子隊(duì)列;B、所述請(qǐng)求調(diào)度單元調(diào)度各請(qǐng)求子隊(duì)列中的訪(fǎng)問(wèn)請(qǐng)求并送入總請(qǐng)求隊(duì)列;C、所述請(qǐng)求處理單元從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器;其中每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)或多個(gè)存儲(chǔ)通道,每個(gè)存儲(chǔ)通道存在一個(gè)獨(dú)立的存儲(chǔ)控制器。
23.根據(jù)權(quán)利要求22所述的方法,其特征在于,步驟A中所述將訪(fǎng)問(wèn)請(qǐng)求送入一個(gè)以上的請(qǐng)求子隊(duì)列為所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)存儲(chǔ)通道的請(qǐng)求子隊(duì)列;或者,所述塊設(shè)備操作單元將訪(fǎng)問(wèn)請(qǐng)求送入對(duì)應(yīng)訪(fǎng)問(wèn)類(lèi)型的請(qǐng)求子隊(duì)列。
24.根據(jù)權(quán)利要求22所述的方法,其特征在于,所述步驟C為所述請(qǐng)求處理單元采用批處理的方式從所述總請(qǐng)求隊(duì)列讀取訪(fǎng)問(wèn)請(qǐng)求并分發(fā)給對(duì)應(yīng)存儲(chǔ)通道的存儲(chǔ)控制器。
全文摘要
本發(fā)明提供了一種對(duì)存儲(chǔ)設(shè)備進(jìn)行多通道數(shù)據(jù)處理的方法、系統(tǒng)和裝置,其中系統(tǒng)包括驅(qū)動(dòng)及讀寫(xiě)管理裝置、以及一個(gè)以上的存儲(chǔ)控制器,其中每個(gè)存儲(chǔ)通道存在一個(gè)獨(dú)立的存儲(chǔ)控制器;所述驅(qū)動(dòng)及讀寫(xiě)管理裝置,用于接收各線(xiàn)程提供的訪(fǎng)問(wèn)請(qǐng)求,對(duì)接收到的訪(fǎng)問(wèn)請(qǐng)求進(jìn)行調(diào)度并發(fā)送給對(duì)應(yīng)線(xiàn)程所負(fù)責(zé)存儲(chǔ)通道的存儲(chǔ)控制器,其中,每個(gè)線(xiàn)程負(fù)責(zé)一個(gè)或者多個(gè)存儲(chǔ)通道;所述存儲(chǔ)控制器,用于根據(jù)所在存儲(chǔ)通道中邏輯地址與物理地址的映射關(guān)系,執(zhí)行所接收到訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)處理。本發(fā)明能夠使多通道之間的并發(fā)調(diào)度由上層軟件決定,更適合應(yīng)用層的需求,達(dá)到最佳的讀寫(xiě)性能。
文檔編號(hào)G06F13/12GK102298561SQ201110228780
公開(kāi)日2011年12月28日 申請(qǐng)日期2011年8月10日 優(yōu)先權(quán)日2011年8月10日
發(fā)明者劉斌, 林仕鼎, 歐陽(yáng)劍, 王勇 申請(qǐng)人:北京百度網(wǎng)訊科技有限公司