本技術(shù)涉及存儲(chǔ),尤其涉及一種應(yīng)對(duì)存儲(chǔ)介質(zhì)一致性的影響提升存儲(chǔ)設(shè)備qos的方法。
背景技術(shù):
1、圖1a展示了存儲(chǔ)設(shè)備的框圖。存儲(chǔ)設(shè)備102同主機(jī)相耦合,用于為主機(jī)提供存儲(chǔ)能力。主機(jī)同存儲(chǔ)設(shè)備102之間可通過多種方式相耦合,耦合方式包括但不限于通過例如sata(serial?advanced?technology?attachment,串行高級(jí)技術(shù)附件)、scsi(small?computersystem?interface,小型計(jì)算機(jī)系統(tǒng)接口)、sas(serial?attached?scsi,串行連接scsi)、ide(integrated?drive?electronics,集成驅(qū)動(dòng)器電子)、usb(universal?serial?bus,通用串行總線)、pcie(peripheral?component?interconnect?express,pcie,高速外圍組件互聯(lián))、nvme(nvm?express,高速非易失存儲(chǔ))、以太網(wǎng)、光纖通道、無線通信網(wǎng)絡(luò)等多種存儲(chǔ)協(xié)議連接主機(jī)與存儲(chǔ)設(shè)備102。主機(jī)可以是能夠通過上述方式同存儲(chǔ)設(shè)備相通信的信息處理設(shè)備,例如,個(gè)人計(jì)算機(jī)、平板電腦、服務(wù)器、便攜式計(jì)算機(jī)、網(wǎng)絡(luò)交換機(jī)、路由器、蜂窩電話、個(gè)人數(shù)字助理等。存儲(chǔ)設(shè)備102包括接口103、控制部件104、一個(gè)或多個(gè)nvm芯片105以及dram(dynamic?random?access?memory,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)110。
2、nand閃存、相變存儲(chǔ)器、feram(ferroelectric?ram,鐵電存儲(chǔ)器)、mram(magneticrandom?access?memory,磁阻存儲(chǔ)器)、rram(resistive?random?access?memory,阻變存儲(chǔ)器)、xpoint存儲(chǔ)器等是常見的nvm。
3、接口103可適配于通過例如sata、ide、usb、pcie、nvme、sas、以太網(wǎng)、光纖通道等方式與主機(jī)交換數(shù)據(jù)。
4、控制部件104用于控制在接口103、nvm芯片105以及dram?110之間的數(shù)據(jù)傳輸,還用于存儲(chǔ)管理、主機(jī)邏輯地址到閃存物理地址映射、擦除均衡、壞塊管理等??刂撇考?04可通過軟件、硬件、固件或其組合的多種方式實(shí)現(xiàn),例如,控制部件104可以是fpga(field-programmable?gate?array,現(xiàn)場(chǎng)可編程門陣列)、asic(application?specificintegrated?circuit,應(yīng)用專用集成電路)或者其組合的形式。控制部件104也可以包括處理器或者控制器,在處理器或控制器中執(zhí)行軟件來操縱控制部件104的硬件來處理io(input/output)命令??刂撇考?04還可以耦合到dram?110,并可訪問dram?110的數(shù)據(jù)。在dram可存儲(chǔ)ftl表和/或緩存的io命令的數(shù)據(jù)。
5、控制部件104包括閃存接口控制器(或稱為介質(zhì)接口控制器、閃存通道控制器),閃存接口控制器耦合到nvm芯片105,并以遵循nvm芯片105的接口協(xié)議的方式向nvm芯片105發(fā)出命令,以操作nvm芯片105,并接收從nvm芯片105輸出的命令執(zhí)行結(jié)果。已知的nvm芯片接口協(xié)議包括“toggle”、“onfi”等。
6、圖1b展示了存儲(chǔ)設(shè)備的控制部件的詳細(xì)的框圖。
7、主機(jī)以遵循存儲(chǔ)協(xié)議的io命令訪問存儲(chǔ)設(shè)備。控制部件根據(jù)來自主機(jī)的io命令,生成一個(gè)或多個(gè)介質(zhì)接口命令并提供給介質(zhì)接口控制器。介質(zhì)接口控制器根據(jù)介質(zhì)接口命令生遵循nvm芯片的接口協(xié)議的存儲(chǔ)介質(zhì)訪問命令(例如,編程命令、讀命令、擦除命令)??刂撇考€跟蹤從一個(gè)io命令生成的所有介質(zhì)接口命令都被執(zhí)行完成,并向主機(jī)指示io命令的處理結(jié)果。
8、參看圖1b,控制部件包括例如主機(jī)接口、主機(jī)命令處理單元、存儲(chǔ)命令處理單元、介質(zhì)接口控制器與存儲(chǔ)介質(zhì)管理單元。主機(jī)接口獲取主機(jī)提供的io命令,并生成存儲(chǔ)命令提供給存儲(chǔ)命令處理單元。存儲(chǔ)命令例如訪問相同大小的存儲(chǔ)空間,例如4kb。將nvm芯片中記錄的對(duì)應(yīng)一個(gè)存儲(chǔ)命令所訪問數(shù)據(jù)的數(shù)據(jù)單元稱為數(shù)據(jù)幀。物理頁(yè)記錄一個(gè)或多個(gè)數(shù)據(jù)幀。例如,物理頁(yè)的大小17664字節(jié),而數(shù)據(jù)幀大小為4kb,則一個(gè)物理頁(yè)能存儲(chǔ)4個(gè)數(shù)據(jù)幀。
9、存儲(chǔ)介質(zhì)管理單元為每個(gè)存儲(chǔ)命令維護(hù)邏輯地址到物理地址的轉(zhuǎn)換。例如,存儲(chǔ)介質(zhì)管理單元包括ftl表。對(duì)于讀命令,存儲(chǔ)介質(zhì)管理單元輸出存儲(chǔ)命令所訪問的邏輯地址對(duì)應(yīng)的物理地址,對(duì)于寫命令,存儲(chǔ)介質(zhì)管理單元為其分配可用的物理地址,并記錄其訪問的邏輯地址與分配的物理地址的映射關(guān)系。存儲(chǔ)介質(zhì)管理單元還維護(hù)諸如垃圾回收、磨損均衡等管理nvm芯片所需的功能。
10、存儲(chǔ)命令處理單元根據(jù)存儲(chǔ)介質(zhì)管理單元提供的物理地址,操作介質(zhì)接口控制器向nvm芯片發(fā)出存儲(chǔ)介質(zhì)訪問命令。為了清楚的目的,將主機(jī)發(fā)送給存儲(chǔ)設(shè)備的命令稱為io命令,將主機(jī)命令處理單元發(fā)送給存儲(chǔ)命令處理單元的命令稱為存儲(chǔ)命令,將存儲(chǔ)命令處理單元發(fā)送給介質(zhì)接口控制器的命令稱為介質(zhì)接口命令,而將介質(zhì)接口控制器發(fā)送給nvm芯片的命令稱為存儲(chǔ)介質(zhì)訪問命令。存儲(chǔ)介質(zhì)訪問命令遵循nvm芯片的接口協(xié)議。ssd(solid?state?drives,固態(tài)硬盤)中包括多個(gè)nvm芯片。每個(gè)nvm芯片包括一個(gè)或多個(gè)lun(logical?unit,邏輯單元),每個(gè)邏輯單元包括多個(gè)物理塊(block)。隨著存儲(chǔ)容量的增加,nvm芯片/lun/block數(shù)量的增加,存儲(chǔ)介質(zhì)出現(xiàn)故障的幾率也增加。為了確保向用戶交付所存儲(chǔ)數(shù)據(jù)的可靠性,在企業(yè)級(jí)ssd中使用類似raid(redundant?arrays?of?independentdisks,磁盤陣列)的技術(shù)(簡(jiǎn)稱為raid技術(shù))來構(gòu)造跨nvm芯片/邏輯單元的數(shù)據(jù)保護(hù)單元,從而即使單個(gè)nvm芯片/邏輯單元出現(xiàn)故障,仍能確保數(shù)據(jù)不丟失。這樣也能應(yīng)對(duì)ssd工作中出現(xiàn)的偶發(fā)性數(shù)據(jù)錯(cuò)誤。
11、頁(yè)條帶是ssd內(nèi)的、基于raid技術(shù)構(gòu)造的數(shù)據(jù)保護(hù)單元,頁(yè)條帶在大塊中構(gòu)造。大塊包括來自多個(gè)邏輯單元的物理塊,為大塊提供物理塊的多個(gè)邏輯單元被稱為邏輯單元組。邏輯單元組中的每個(gè)邏輯單元可以為大塊提供一個(gè)物理塊。例如,在圖2a所示出的大塊的示意圖中,在n+1個(gè)邏輯單元上構(gòu)造大塊。每個(gè)大塊包括n+1個(gè)分別來自n+1個(gè)邏輯單元的物理塊。大塊存儲(chǔ)用戶數(shù)據(jù)與校驗(yàn)數(shù)據(jù)。根據(jù)大塊存儲(chǔ)的用戶數(shù)據(jù)計(jì)算得到大塊的校驗(yàn)數(shù)據(jù)。作為舉例,在大塊的最后一個(gè)物理塊中存儲(chǔ)校驗(yàn)數(shù)據(jù)。也可以選擇大塊的其他物理塊來存儲(chǔ)校驗(yàn)數(shù)據(jù)。還可以采用其他構(gòu)造方式構(gòu)造大塊,如參見圖2b所示,為在多平面的邏輯單元中構(gòu)造大塊的實(shí)現(xiàn)方式。
12、大塊,作為ssd對(duì)存儲(chǔ)介質(zhì)資源的分配和回收單元。在分配存儲(chǔ)介質(zhì)資源來承載寫入數(shù)據(jù)時(shí),選擇空閑大塊。在所選擇的大塊內(nèi)部,按順序?qū)懭霐?shù)據(jù)。在回收存儲(chǔ)介質(zhì)資源時(shí),對(duì)大塊整體回收,并在回收了有效數(shù)據(jù)后,對(duì)大塊的所有物理塊都進(jìn)行擦除(erase)。從而,在ssd內(nèi),大塊內(nèi)的所有物理塊,通??偸蔷哂邢嗤牟翆懘螖?shù)。
13、參見圖3a以及圖3b所示,大塊包括多個(gè)頁(yè)條帶,頁(yè)條帶包括多個(gè)物理頁(yè),這些物理頁(yè)來自相同大塊的例如不同物理塊。例如,頁(yè)條帶的多個(gè)物理頁(yè)中有p個(gè)頁(yè)用來存放用戶數(shù)據(jù),而q個(gè)頁(yè)用來存放校驗(yàn)數(shù)據(jù)(圖3a和圖3b中,q=1)。將寫入頁(yè)i的數(shù)據(jù)記為d(i)。校驗(yàn)數(shù)據(jù)d(q)由p頁(yè)用戶數(shù)據(jù)根據(jù)指定的錯(cuò)誤校正算法生成。例如,基于異或運(yùn)算確定校驗(yàn)數(shù)據(jù),則d(q)=d(0)xor?d(1)xor…xor?d(p-1)。從而在向頁(yè)條帶寫入數(shù)據(jù)中,只有知道了d(0)到d(p-1)才能計(jì)算出d(q)。d(i)的大小典型是例如2kb、4kb、16kb等。
14、在tlc(triple-level?cell,三層式儲(chǔ)存)閃存中,通常使用one-shot(一次性)編程模式,要求對(duì)相同字線上的3個(gè)物理頁(yè)在一次onfi命令中編程,這使得單一編程命令要操作3個(gè)物理頁(yè)。相應(yīng)地,為提高寫性能,按3個(gè)物理頁(yè)為1組構(gòu)造頁(yè)條帶,使得d(q)的大小典型地為48kb。在多平面的tlb(translation?lookaside?buffer,轉(zhuǎn)換檢測(cè)緩沖區(qū))閃存中,為提高寫性能可使用多平面編程模式。這使得單一編程命令要操作例如12個(gè)物理頁(yè)(每邏輯單元包括4平面)。相應(yīng)地,d(q)的大小典型地為192kb。
15、為了使用raid技術(shù),需要為寫入頁(yè)條帶的數(shù)據(jù)計(jì)算校驗(yàn)數(shù)據(jù)d(q)。計(jì)算校驗(yàn)數(shù)據(jù)涉及大量的xor操作,為了加速這一過程,通常使用專用的硬件單元(稱為xor計(jì)算單元)來完成d(q)=d(0)xor?d(1)xor…xor?d(p-1)的計(jì)算。xor計(jì)算單元還包括xor緩存,用來緩存數(shù)據(jù)d(i),以及每次xor計(jì)算的中間結(jié)果,例如d(0)xor?d(1)的結(jié)果,d(0)xor?d(1)xor?d(2)的結(jié)果,直到得到最終的d(q),然后將d(q)寫入頁(yè)條帶。從而xor緩存的大小需要能容納整個(gè)d(i),并且在分配了一個(gè)頁(yè)條帶,從開始向這個(gè)頁(yè)條帶寫入數(shù)據(jù)到這個(gè)頁(yè)條帶被寫滿之前,需要占用整個(gè)xor緩存來服務(wù)于向該頁(yè)條帶寫入數(shù)據(jù)的操作。
16、為了提高ssd的性能,可以同時(shí)向多個(gè)大塊的多個(gè)頁(yè)條帶寫入數(shù)據(jù),相應(yīng)地需要為并發(fā)寫入的每個(gè)頁(yè)條帶分配其獨(dú)占的xor緩存。前文提到,d(q)的尺寸可達(dá)192kb(還包括一些帶外數(shù)據(jù)),從而單個(gè)xor緩存需要200kb左右的容量。而芯片內(nèi)部緩存資源是十分昂貴的,從而xor計(jì)算單元的xor緩存數(shù)量通常很少(例如1-4個(gè))。
17、在諸如201610861793.5、2016108365313、201720947480.1、2020106151782、2020106130343的中國(guó)專利申請(qǐng),提供了介質(zhì)接口控制器?,F(xiàn)有技術(shù)中,xor計(jì)算單元位于介質(zhì)接口控制器中,參見圖4a和圖4b所示。通過操作xor計(jì)算單元,來適配具有不同數(shù)據(jù)保護(hù)能力的頁(yè)條帶。頁(yè)條帶的數(shù)據(jù)保護(hù)級(jí)別由校驗(yàn)數(shù)據(jù)與用戶數(shù)據(jù)的大小關(guān)系來確定,即p與q的取值代表了頁(yè)條帶的數(shù)據(jù)保護(hù)能力。并且,在介質(zhì)接口控制器通過(program)編程命令將數(shù)據(jù)(例如d(0))提供給nvm芯片(例如物理頁(yè)p0-0)的過程中,完成xor計(jì)算。例如,假設(shè)為頁(yè)條帶0分配了xor緩存0(初始化為全0),在搬移d(0)到頁(yè)條帶0的物理頁(yè)p0-0的過程中,計(jì)算0xor?d(0),結(jié)果為d(0)并且保存在xor緩存0中;接下來,將d(1)搬移到頁(yè)條帶0的物理頁(yè)p0-1,計(jì)算d(0)xor?d(1),其中d(0)在xor緩存0內(nèi)部,d(1)在數(shù)據(jù)搬移中得到,隨后xor緩存0中記錄的是d(0)xor?d(1)的結(jié)果;接下來,將d(2)搬移到頁(yè)條帶0的物理頁(yè)p0-2,對(duì)xor緩存0中記錄的d(0)xor?d(1)的結(jié)果,與搬移的d(2)做xor,結(jié)果依然保存在xor緩存0中。以此類推,在將d(p-1)搬移到頁(yè)條帶0的物理頁(yè)p0-(p-1)后,xor緩存0中得到了d(q),從而接下來將d(q)搬移到頁(yè)條帶0的物理頁(yè)p0-p。至此,頁(yè)條帶0被寫滿,xor緩存0被釋放。
18、作為一種優(yōu)化方式,介質(zhì)接口控制器收到的介質(zhì)接口命令中,可以僅包括將d(0)到d(p-1)寫入頁(yè)條帶的各頁(yè)的物理地址的指示,而不包括將d(q)寫入頁(yè)條帶的指示。由介質(zhì)接口控制器自動(dòng)地計(jì)算d(q)并寫入頁(yè)條帶。
19、針對(duì)介質(zhì)接口控制器而言,其需要管理多個(gè)邏輯單元(lun),參見圖5。并為了例如性能的目的,需要充分發(fā)揮多個(gè)邏輯單元之間并行處理命令的能力,以及控制介質(zhì)接口控制器的成本,減少其電路規(guī)模?,F(xiàn)有技術(shù)中(如中國(guó)專利申請(qǐng)201610861793.5),提供了包括多個(gè)線程的介質(zhì)接口控制器。線程作為可被調(diào)度的任務(wù)處理單元,可以同邏輯單元?jiǎng)討B(tài)綁定,通過線程來處理對(duì)與其綁定的邏輯單元的命令。申請(qǐng)?zhí)枮椤?022117373066”的中國(guó)專利申請(qǐng)中,將協(xié)程作為同邏輯單元對(duì)應(yīng)的任務(wù)處理單元,通過協(xié)程來執(zhí)行微指令序列以操作對(duì)邏輯單元的訪問,如,參見圖5。圖5中,主機(jī)接口獲取主機(jī)提供的io命令,并生成存儲(chǔ)命令提供給存儲(chǔ)命令處理單元。存儲(chǔ)命令例如訪問相同大小的存儲(chǔ)空間,例如4kb。現(xiàn)有技術(shù)中也存在為每個(gè)閃存通道或邏輯單元提供對(duì)應(yīng)的閃存控制器(flash?controller),通過向閃存控制器提供命令來操作與其綁定的邏輯單元。
20、無論是基于軟件或固件的線程、協(xié)程,還是基于硬件的閃存控制器,均作為可操作訪問同其綁定的邏輯單元的任務(wù)處理單元。多個(gè)任務(wù)處理單元能夠并行工作,從而同時(shí)操作多個(gè)邏輯單元。為了清楚的目的,將其稱為lun控制器。其實(shí)現(xiàn)方式,包括現(xiàn)有技術(shù)的介質(zhì)接口控制器的線程、協(xié)程、閃存控制器以及其他具有類似功能的實(shí)施方式,也包括將來出現(xiàn)的介質(zhì)接口控制器中同邏輯單元綁定的用于操作對(duì)邏輯單元的訪問的實(shí)施方式。從而,在提供給介質(zhì)接口控制器的介質(zhì)接口命令中,通過描述要訪問的邏輯單元,來指定lun控制器處理介質(zhì)接口命令并訪問邏輯單元。
21、現(xiàn)有的方案中,除了在介質(zhì)接口控制器通過編程命令將數(shù)據(jù)(例如d(0))提供給nvm芯片的過程中,完成xor計(jì)算,還為介質(zhì)接口控制器增加了一項(xiàng)功能,如,申請(qǐng)?zhí)枮?01911367405.8的中國(guó)專利申請(qǐng)中所提供的介質(zhì)接口控制器,能夠?qū)ram中的指定數(shù)據(jù)執(zhí)行xor操作,但不必然將該指定數(shù)據(jù)寫入nvm芯片。從而,在操作p取值較大的頁(yè)條帶時(shí),將d(q)的計(jì)算分為多段。例如在第1段中計(jì)算d(0)xor?d(1)xor(d2)...xor?d(m)(其結(jié)果為temp),而在第2段中計(jì)算temp?xor?d(m+1)xor...xor?d(p-1)得到d(q)。其中,在第2段中向xor計(jì)算單元傳輸?shù)膖emp不被寫入nvm芯片中。
22、將xor計(jì)算單元對(duì)dram中的指定數(shù)據(jù)執(zhí)行xor計(jì)算,但不將該指定數(shù)據(jù)寫入nvm芯片的操作稱為校驗(yàn)數(shù)據(jù)計(jì)算操作(簡(jiǎn)記為r操作)。r操作中參與xor計(jì)算的兩個(gè)操作,一個(gè)來自xor緩存,一個(gè)來自dram,從而指示介質(zhì)接口控制器執(zhí)行r操作的介質(zhì)接口命令中需要描述dram地址,以及還需要在操作中指定使用的xor緩存。r操作中,xor計(jì)算的結(jié)果保留在xor緩存中。
23、而指示介質(zhì)接口控制器執(zhí)行編程操作的介質(zhì)接口命令,其含義在于,將dram中的指定數(shù)據(jù)通過program命令寫入nvm芯片的指定物理地址,以及附帶地將該指定數(shù)據(jù)與xor緩存中的數(shù)據(jù)執(zhí)行xor計(jì)算,計(jì)算結(jié)果保留在xor緩存中,將該操作簡(jiǎn)稱為p操作。
24、通常采用p操作和將xor緩存中的數(shù)據(jù)寫入nvm芯片中的操作相配合的方式,利用dram中的指定數(shù)據(jù)生成校驗(yàn)數(shù)據(jù)并寫入頁(yè)條帶。
技術(shù)實(shí)現(xiàn)思路
1、由于在對(duì)大塊內(nèi)的物理塊進(jìn)行擦除時(shí),在前的擦除操作需要長(zhǎng)期占用nvm芯片,進(jìn)而導(dǎo)致該nvm芯片上在后的編程(program)命令被延遲處理,進(jìn)而導(dǎo)致與該編程命令所操作的物理頁(yè)所屬頁(yè)條帶對(duì)應(yīng)的xor緩存無法被及時(shí)釋放,使得xor緩存占用時(shí)間變大,xor緩存的利用率降低。
2、而且,由于在回收存儲(chǔ)介質(zhì)資源時(shí),對(duì)大塊整體回收,并在回收了有效數(shù)據(jù)后,對(duì)大塊的所有物理塊都進(jìn)行擦除。nvm芯片執(zhí)行擦除操作時(shí)所需的功耗較大,對(duì)大塊的所有物理塊同時(shí)擦除進(jìn)一步使得存儲(chǔ)設(shè)備的瞬時(shí)功耗增加,甚至可能超出容納存儲(chǔ)設(shè)備的供電能力。功耗的波動(dòng)對(duì)數(shù)據(jù)中心的供電能力也構(gòu)成挑戰(zhàn)。因此希望能夠抑制存儲(chǔ)設(shè)備工作期間的功耗波動(dòng)。
3、另一方面,存儲(chǔ)設(shè)備內(nèi)的xor緩存資源有限,希望盡快完成利用xor緩存資源所進(jìn)行的處理來盡早釋放xor緩存以提高資源利用率。然而當(dāng)存在擦除操作時(shí),執(zhí)行擦除操作的lun控制器也被占用,使得該lun控制器后續(xù)的編程操作和/或使用xor緩存的操作的處理被推遲。通過對(duì)lun控制器的調(diào)度能一定程度緩解該問題,然而當(dāng)大塊被回收,大塊的所有物理塊被擦除時(shí),所有的lun控制器都被擦除操作占用,導(dǎo)致無法找到空閑的lun控制器來處理使用xor緩存的操作,進(jìn)而導(dǎo)致xor緩存的占用時(shí)間增加,利用效率降低,并導(dǎo)致存儲(chǔ)設(shè)備的讀/寫性能降低或波動(dòng)。
4、通過盡力將來自主機(jī)的io命令均勻分發(fā)到存儲(chǔ)設(shè)備的各nvm芯片或邏輯單元(lun),以充分利用存儲(chǔ)設(shè)備的并行io命令處理能力,有助于提升存儲(chǔ)設(shè)備的性能。但是,隨著存儲(chǔ)設(shè)備上的nvm芯片的增加,也發(fā)現(xiàn)各nvm芯片、各lun和/或各物理塊存在一致性問題。除了由誤碼率所代表的數(shù)據(jù)可靠性指標(biāo),對(duì)一些物理塊的訪問具有比其他物理塊更快或更慢的響應(yīng)速度。這種存儲(chǔ)介質(zhì)的性能不一致會(huì)被進(jìn)一步累積,從而導(dǎo)致某個(gè)或某些lun控制器的被堵塞或其處理的任務(wù)(介質(zhì)接口命令)被堆積,進(jìn)而導(dǎo)致主機(jī)可察覺到的io命令處理的qos問題(例如,不同io命令的處理延遲存在波動(dòng)),也會(huì)導(dǎo)致控制部件的一些內(nèi)部資源(例如xor緩存)被長(zhǎng)期占用而影響控制部件的性能(例如帶寬)。
5、本技術(shù)希望提供一種方法來解決上述技術(shù)問題的一個(gè)或多個(gè)。
6、第一方面,本技術(shù)實(shí)施例提供一種命令分配方法,包括:響應(yīng)于接收到的介質(zhì)接口命令,獲取所述介質(zhì)接口命令指示的操作類型;確定與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器,將所述介質(zhì)接口命令分配至所述lun控制器,由所述lun控制器處理所述介質(zhì)接口命令;其中,所述操作類型包括p1操作或者r操作,所述p1操作指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片,所述r操作指示對(duì)所述存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算、在xor緩存中保留計(jì)算結(jié)果。
7、可選地,所述操作類型還包括p2操作,所述p2操作指示將所述xor緩存中的數(shù)據(jù)搬移到所述nvm芯片。
8、可選地,所述獲取所述介質(zhì)接口命令指示的操作類型,包括:基于所述介質(zhì)接口命令所包括的操作類型字段,確定所述介質(zhì)接口命令對(duì)應(yīng)的操作類型。
9、可選地,在所述操作類型為p1操作或者p2操作的情況下,所述介質(zhì)接口命令包括指示要訪問的nvm芯片的物理地址的字段以及指示要被搬移的數(shù)據(jù)的字段;所述確定與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器,包括:基于所述介質(zhì)接口命令指示的物理地址確定所訪問的邏輯單元;基于邏輯單元與lun控制器之間的映射關(guān)系,確定與所訪問的邏輯單元對(duì)應(yīng)的lun控制器。
10、可選地,在所述操作類型為p1操作的情況下,響應(yīng)于所訪問的物理頁(yè)和所述存儲(chǔ)器中的指定數(shù)據(jù),所述lun控制器生成存儲(chǔ)介質(zhì)訪問命令并發(fā)送至對(duì)應(yīng)的邏輯單元,以向?qū)?yīng)的物理頁(yè)寫入所述指定數(shù)據(jù)來執(zhí)行p1操作;其中,所訪問的物理頁(yè)基于所述介質(zhì)接口命令指示的物理地址確定,所述指定數(shù)據(jù)為所述介質(zhì)接口命令指示的、所述存儲(chǔ)器中要被搬移的數(shù)據(jù)。
11、可選地,在所述操作類型為p2操作的情況下,響應(yīng)于所訪問的物理頁(yè)和所述xor緩存中的校驗(yàn)數(shù)據(jù),所述lun控制器生成存儲(chǔ)介質(zhì)訪問命令并發(fā)送至對(duì)應(yīng)的邏輯單元,以向?qū)?yīng)的物理頁(yè)寫入所述校驗(yàn)數(shù)據(jù)來執(zhí)行p2操作;其中,所訪問的物理頁(yè)基于所述介質(zhì)接口命令指示的物理地址確定,所述校驗(yàn)數(shù)據(jù)為所述介質(zhì)接口命令指示的、所述xor緩存中要被搬移的數(shù)據(jù),且所述校驗(yàn)數(shù)據(jù)基于所述存儲(chǔ)器中要被搬移的多個(gè)指定數(shù)據(jù)確定,所述多個(gè)指定數(shù)據(jù)被寫入同一頁(yè)條帶。
12、可選地,在所述操作類型為r操作的情況下,所述確定與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器,包括:將從多個(gè)lun控制器中確定出的不存在未處理完成的擦除操作的lun控制器確定為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器。
13、可選地,在所述介質(zhì)接口命令包括指示lun控制器的字段的情況下,將不存在未處理完成的擦除操作的lun控制器確定為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器,包括:基于所述介質(zhì)接口命令指示的lun控制器,確定第一lun控制器;若所述第一lun控制器不存在未處理完成的擦除操作,將所述第一lun控制器確定為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器;以及若所述第一lun控制器存在未處理完成的擦除操作,將從多個(gè)lun控制器中確定出的不存在未處理完成的擦除操作的第二lun控制器確定為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器。
14、可選地,所述指示lun控制器的字段為指示要訪問的邏輯單元的字段。
15、可選地,所述介質(zhì)接口命令包括指示要被操作的數(shù)據(jù)的源地址字段以及目的地址字段;所述方法還包括:基于所述介質(zhì)接口命令指示的目的地址申請(qǐng)xor緩存;在申請(qǐng)成功的情況下,所確定的lun控制器、將所述源地址字段所指示的將要被操作的數(shù)據(jù)與所申請(qǐng)的xor緩存中的數(shù)據(jù)進(jìn)行xor運(yùn)算,在所述所申請(qǐng)的xor緩存中保留計(jì)算結(jié)果。
16、可選地,所述方法還包括:在申請(qǐng)失敗的情況下,重復(fù)基于所述介質(zhì)接口命令指示的目的地址申請(qǐng)xor緩存,直到申請(qǐng)成功。
17、可選地,所述方法還包括:響應(yīng)于所確定的lun控制器完成了所述r操作,釋放所述所申請(qǐng)的xor緩存。
18、可選地,若所述lun控制器存在未處理完成的擦除操作,所述lun控制器處理完所述擦除操作之后,再處理所述操作類型為p1操作或p2操作的所述介質(zhì)接口命令。
19、可選地,若所述操作類型指示擦除操作,獲取一個(gè)或多個(gè)lun控制器正在處理的擦除操作的數(shù)量;若一個(gè)或多個(gè)lun控制器正在處理的擦除操作的數(shù)量大于閾值,暫停處理所述操作類型為擦除操作的所述介質(zhì)接口命令;以及若所有l(wèi)un控制器正在處理的擦除操作的數(shù)量不大于閾值,基于所述介質(zhì)接口命令指示的物理地址確定所訪問的邏輯單元;基于邏輯單元與lun控制器之間的映射關(guān)系,確定與所訪問的邏輯單元對(duì)應(yīng)的lun控制器。
20、第二方面,本技術(shù)實(shí)施例提供一種介質(zhì)接口控制器,包括:命令分配單元和多個(gè)lun控制器;所述命令分配單元響應(yīng)于接收到的介質(zhì)接口命令,獲取所述介質(zhì)接口命令指示的操作類型,在所述多個(gè)lun控制器中確定與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器,將所述介質(zhì)接口命令分配至所述lun控制器,由所述lun控制器處理所述介質(zhì)接口命令;其中,所述操作類型為p1操作或者r操作,所述p1操作指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片,所述r操作指示對(duì)所述存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算、在xor緩存中保留計(jì)算結(jié)果。
21、可選地,所述操作類型還包括p2操作,所述p2操作指示將所述xor緩存中的數(shù)據(jù)搬移到所述nvm芯片。
22、可選地,所述命令分配單元基于所述介質(zhì)接口命令所包括的操作類型字段,確定所述介質(zhì)接口命令對(duì)應(yīng)的操作類型。
23、可選地,在所述操作類型為p1操作或者p2操作的情況下,所述介質(zhì)接口命令包括指示要訪問的nvm芯片的物理地址的字段以及指示要被搬移的數(shù)據(jù)的字段;所述命令分配單元基于所述介質(zhì)接口命令指示的物理地址確定所訪問的邏輯單元;基于邏輯單元與lun控制器之間的映射關(guān)系,確定與所訪問的邏輯單元對(duì)應(yīng)的lun控制器。
24、可選地,在所述操作類型為p1操作的情況下,響應(yīng)于所訪問的物理頁(yè)和所述存儲(chǔ)器中的指定數(shù)據(jù),所述lun控制器生成存儲(chǔ)介質(zhì)訪問命令并發(fā)送至對(duì)應(yīng)的邏輯單元,以向?qū)?yīng)的物理頁(yè)寫入所述指定數(shù)據(jù)來執(zhí)行p1操作;其中,所訪問的物理頁(yè)基于所述介質(zhì)接口命令指示的物理地址確定,所述指定數(shù)據(jù)為所述介質(zhì)接口命令指示的、所述存儲(chǔ)器中要被搬移的數(shù)據(jù)。
25、可選地,在所述操作類型為p2操作的情況下,響應(yīng)于所訪問的物理頁(yè)和所述xor緩存中的校驗(yàn)數(shù)據(jù),所述lun控制器生成存儲(chǔ)介質(zhì)訪問命令并發(fā)送至對(duì)應(yīng)的邏輯單元,以向?qū)?yīng)的物理頁(yè)寫入所述校驗(yàn)數(shù)據(jù)來執(zhí)行p2操作;其中,所訪問的物理頁(yè)基于所述介質(zhì)接口命令指示的物理地址確定,所述校驗(yàn)數(shù)據(jù)為所述介質(zhì)接口命令指示的、所述xor緩存中要被搬移的數(shù)據(jù),且所述校驗(yàn)數(shù)據(jù)基于所述存儲(chǔ)器中要被搬移的多個(gè)指定數(shù)據(jù)確定,所述多個(gè)指定數(shù)據(jù)被寫入同一頁(yè)條帶。
26、可選地,在所述操作類型為r操作的情況下,所述命令分配單元將從多個(gè)lun控制器中確定出的不存在未處理完成的擦除操作的lun控制器確定為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器。
27、可選地,在所述介質(zhì)接口命令包括指示lun控制器的字段的情況下,所述命令分配單元基于所述介質(zhì)接口命令指示的lun控制器,確定第一lun控制器;若所述第一lun控制器不存在未處理完成的擦除操作,所述命令分配單元將所述第一lun控制器確定為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器;以及
28、若所述第一lun控制器存在未處理完成的擦除操作,所述命令分配單元將從多個(gè)lun控制器中確定出的不存在未處理完成的擦除操作的第二lun控制器確定為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器。
29、可選地,所述指示lun控制器的字段為指示要訪問的邏輯單元的字段。
30、可選地,所述介質(zhì)接口命令包括指示要被操作的數(shù)據(jù)的源地址字段以及目的地址字段;所確定的lun控制器基于所述介質(zhì)接口命令指示的目的地址申請(qǐng)xor緩存;在申請(qǐng)成功的情況下,所確定的lun控制器、將所述源地址字段所指示的將要被操作的數(shù)據(jù)與所申請(qǐng)的xor緩存中的數(shù)據(jù)進(jìn)行xor運(yùn)算,在所述所申請(qǐng)的xor緩存中保留計(jì)算結(jié)果。
31、可選地,在申請(qǐng)失敗的情況下,重復(fù)基于所述介質(zhì)接口命令指示的目的地址申請(qǐng)xor緩存,直到申請(qǐng)成功。
32、可選地,響應(yīng)于所確定的lun控制器完成了所述r操作,釋放所述所申請(qǐng)的xor緩存。
33、可選地,若所述lun控制器存在未處理完成的擦除操作,所述lun控制器處理完所述擦除操作之后,再處理所述操作類型為p1操作或p2操作的所述介質(zhì)接口命令。
34、可選地,若所述操作類型指示擦除操作,所述命令分配單元獲取一個(gè)或多個(gè)lun控制器正在處理的擦除操作的數(shù)量;若一個(gè)或多個(gè)lun控制器正在處理的擦除操作的數(shù)量大于閾值,所述命令分配單元暫停處理所述操作類型為擦除操作的所述介質(zhì)接口命令;以及若所有l(wèi)un控制器正在處理的擦除操作的數(shù)量不大于閾值,所述命令分配單元基于所述介質(zhì)接口命令指示的物理地址確定所訪問的邏輯單元;基于邏輯單元與lun控制器之間的映射關(guān)系,確定與所訪問的邏輯單元對(duì)應(yīng)的lun控制器。
35、第三方面,本技術(shù)實(shí)施例提供一種數(shù)據(jù)訪問方法,包括:響應(yīng)于要向第一頁(yè)條帶的每個(gè)第一物理頁(yè)寫入指定數(shù)據(jù),生成成對(duì)的p1操作和r操作,所述p1操作指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片,所述r操作指示對(duì)所述存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算,并在所述第一頁(yè)條帶對(duì)應(yīng)的第一xor緩存中保留計(jì)算結(jié)果;其中所述第一頁(yè)條帶包括第二物理頁(yè)與多個(gè)第一物理頁(yè);響應(yīng)于要向所述第一頁(yè)條帶的第二物理頁(yè)寫入數(shù)據(jù),生成p2操作,所述p2操作指示將所述第一xor緩存中的校驗(yàn)數(shù)據(jù)寫入所述第一頁(yè)條帶的第二物理頁(yè)。
36、可選地,在根據(jù)所述多個(gè)第一物理頁(yè)分別對(duì)應(yīng)的r操作確定所述第一頁(yè)條帶對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)后,處理所述p2操作。
37、可選地,所述方法還包括:為待寫入所述存儲(chǔ)器中的指定數(shù)據(jù)的所述第一頁(yè)條帶分配所述第一xor緩存。
38、可選地,在處理所生成的所述p1操作和所述r操作時(shí),包括:在處理每個(gè)所述p1操作時(shí),根據(jù)所述p1操作所指示的第一物理頁(yè)歸屬的邏輯單元,確定對(duì)應(yīng)的第一lun控制器,通過所述第一lun控制器處理所述p1操作,以將所述p1操作指示的所述存儲(chǔ)器中的指定數(shù)據(jù)寫入所述p1操作所指示的第一物理頁(yè);在處理每個(gè)所述r操作時(shí),確定處理所述r操作的第二lun控制器,通過所述第二lun控制器處理所述r操作,以對(duì)所述r操作指示的指定數(shù)據(jù)進(jìn)行xor運(yùn)算、并將運(yùn)算結(jié)果存儲(chǔ)于所述第一xor緩存中。
39、可選地,所述確定處理所述r操作的第二lun控制器,包括:從多個(gè)lun控制器中將不存在未處理完成的擦除操作的lun控制器確定為所述第二lun控制器。
40、可選地,若所述第一lun控制器存在未處理完成的擦除操作,從多個(gè)lun控制器中確定出不存在未處理完成的擦除操作的lun控制器,將該lun控制器確定為所述第二lun控制器;若所述第一lun控制器不存在未處理完成的擦除操作,將所述第一lun控制器確定為所述第二lun控制器。
41、可選地,在通過所述第二lun控制器處理所述r操作之前,申請(qǐng)所述第一xor緩存;若申請(qǐng)到所述第一xor緩存,所述第二lun控制器將要被操作的指定數(shù)據(jù)搬移到所述第一xor緩存,以及與所述第一xor緩存中的數(shù)據(jù)進(jìn)行xor操作。
42、可選地,所述方法還包括:若未申請(qǐng)到所述第一xor緩存,重復(fù)申請(qǐng)所述第一xor緩存,直到申請(qǐng)成功。
43、可選地,所述方法還包括:在完成所述r操作的情況下,釋放所述第一xor緩存。
44、可選地,若所述第一lun控制器存在未處理完成的擦除操作,在所述第一lun控制器完成所述擦除操作之后,所述第一lun控制器處理所述p1操作。
45、可選地,若在所述第二lun控制器處理所述r操作的過程中、為所述第二lun控制器分配了所述p1操作,則在所述第二lun控制器在處理完成所述r操作之后、所述第二lun控制器再處理所述p1操作。
46、可選地,所述第一lun控制器和所述第二lun控制器的關(guān)系為以下情況之一:所述第一lun控制器和所述第二lun控制器對(duì)應(yīng)的邏輯單元?dú)w屬于同一邏輯單元組;所述第一lun控制器和所述第二lun控制器對(duì)應(yīng)的邏輯單元?dú)w屬于不同的邏輯單元組;其中,每個(gè)邏輯單元組包括多個(gè)邏輯單元,每個(gè)邏輯單元對(duì)應(yīng)于一lun控制器,歸屬于同一邏輯單元組的邏輯單元對(duì)應(yīng)于同一大塊。
47、可選地,在生成成對(duì)的所述p1操作與所述r操作時(shí),所述方法還包括:獲取與所述p1操作對(duì)應(yīng)的第一lun控制器是否有未處理完的擦除操作;若所述第一lun控制器沒有未處理完的擦除操作,在生成的所述r操作中指示所述第一lun控制器;若所述第一lun控制器存在未處理完的擦除操作,在生成的所述r操作中指示區(qū)別于所述第一lun控制器的、沒有未處理完的擦除操作的lun控制器。
48、可選地,在生成所述p2操作之后,所述方法還包括:根據(jù)所述第二物理頁(yè)歸屬的邏輯單元,確定對(duì)應(yīng)的第三lun控制器,所述第三lun控制器處理所述p2操作,以將所述校驗(yàn)數(shù)據(jù)寫入所述第二物理頁(yè)。
49、可選地,在所述第三lun控制器存在正在被處理的擦除操作的情況下,所述方法還包括:將所述p2操作所指示的所述第一xor緩存中的校驗(yàn)數(shù)據(jù)搬移至外部存儲(chǔ)器,并釋放所述第一xor緩存;在所述第三lun控制器完成擦除操作的處理后,申請(qǐng)所述第一xor緩存,將所述校驗(yàn)數(shù)據(jù)搬移至所述第一xor緩存、并將所述第一xor緩存中的校驗(yàn)數(shù)據(jù)寫入所述第二物理頁(yè)。
50、可選地,多個(gè)lun控制器并行處理多個(gè)成對(duì)的p1操作、r操作以及1個(gè)p2操作。
51、可選地,在為所述p1操作分配lun控制器時(shí),在基于所述p1操作對(duì)應(yīng)的邏輯單元確定第一lun控制器且所述第一lun控制器存在至少一個(gè)待處理的操作的情況下,繼續(xù)將所述p1操作分配至所述第一lun控制器;在為所述p2操作分配lun控制器時(shí),在基于所述p2操作對(duì)應(yīng)的邏輯單元確定第三lun控制器且所述第三lun控制器存在至少一個(gè)待處理的操作的情況下,繼續(xù)將所述p2操作分配至所述第三lun控制器。
52、可選地,在為所述r操作分配lun控制器時(shí),從多個(gè)lun控制器中確定不存在未處理完成的擦除操作的lun控制器為所述第二lun控制器,且所述第二lun控制器存在至少一個(gè)待處理的操作的情況下,繼續(xù)將所述r操作分配至所述第二lun控制器。
53、可選地,在向所述第一頁(yè)條帶的多個(gè)第一物理頁(yè)寫入指定數(shù)據(jù)時(shí),多對(duì)p1操作與r操作均被生成并分配至對(duì)應(yīng)的lun控制器;其中,并行為多對(duì)p1操作與r操作分配lun控制器。
54、可選地,多個(gè)lun控制器各自獨(dú)立處理被分配的p1操作,而不論其他lun控制器的工作狀態(tài);所述多個(gè)lun控制器各自在申請(qǐng)到所述第一xor緩存的情況下獨(dú)立處理被分配的r操作,而不論其他lun控制器的工作狀態(tài)。
55、可選地,若所述第一頁(yè)條帶未分配到所述第一xor緩存,暫停生成p1操作與r操作;在分配到所述第一xor緩存后,繼續(xù)生成p1操作與r操作。
56、可選地,在完成所述p2操作之后,將所述第一xor緩存設(shè)置為可分配狀態(tài)。
57、可選地,在向多個(gè)頁(yè)條帶寫入數(shù)據(jù)的情況下,多個(gè)頁(yè)條帶對(duì)應(yīng)的p1操作與r操作均被生成并分配,且被多個(gè)lun控制器并行處理;其中,所述lun控制器每次僅處理一個(gè)操作,多條頁(yè)條帶對(duì)應(yīng)于多個(gè)xor緩存,同一頁(yè)條帶對(duì)應(yīng)的r操作使用同一xor緩存。
58、第四方面,本技術(shù)實(shí)施例提供一種控制部件,包括存儲(chǔ)命令處理單元與介質(zhì)接口控制器;所述存儲(chǔ)命令處理單元響應(yīng)于要向第一頁(yè)條帶的每個(gè)第一物理頁(yè)寫入指定數(shù)據(jù),生成指示成對(duì)的p1操作和r操作的介質(zhì)接口命令并提供給所述介質(zhì)接口控制器,所述p1操作指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片,所述r操作指示對(duì)所述存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算,并在所述第一頁(yè)條帶對(duì)應(yīng)的第一xor緩存中保留計(jì)算結(jié)果;其中所述第一頁(yè)條帶包括第二物理頁(yè)與多個(gè)第一物理頁(yè);所述存儲(chǔ)命令處理單元響應(yīng)于要向所述第一頁(yè)條帶的第二物理頁(yè)寫入數(shù)據(jù),生成指示p2操作的介質(zhì)接口命令并給提供給所述介質(zhì)接口控制器,所述p2操作指示將所述第一xor緩存中的校驗(yàn)數(shù)據(jù)寫入所述第一頁(yè)條帶的第二物理頁(yè)。
59、可選地,所述介質(zhì)接口控制器在根據(jù)所述多個(gè)第一物理頁(yè)分別對(duì)應(yīng)的r操作確定所述第一頁(yè)條帶對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)后,處理所述p2操作。
60、可選地,所述存儲(chǔ)命令處理單元為待寫入所述存儲(chǔ)器中的指定數(shù)據(jù)的所述第一頁(yè)條帶分配所述第一xor緩存。
61、可選地,所述介質(zhì)接口控制器在處理所生成的所述p1操作和所述r操作時(shí),包括:在處理每個(gè)所述p1操作時(shí),所述介質(zhì)接口控制器根據(jù)所述p1操作所指示的第一物理頁(yè)歸屬的邏輯單元,確定對(duì)應(yīng)的第一lun控制器,通過所述第一lun控制器處理所述p1操作,以將所述p1操作指示的所述存儲(chǔ)器中的指定數(shù)據(jù)寫入所述p1操作所指示的第一物理頁(yè);在處理每個(gè)所述r操作時(shí),所述介質(zhì)接口控制器確定處理所述r操作的第二lun控制器,通過所述第二lun控制器處理所述r操作,以對(duì)所述r操作指示的指定數(shù)據(jù)進(jìn)行xor運(yùn)算、并將運(yùn)算結(jié)果存儲(chǔ)于所述第一xor緩存中。
62、可選地,所述介質(zhì)接口控制器從多個(gè)lun控制器中將不存在未處理完成的擦除操作的lun控制器確定為所述第二lun控制器。
63、可選地,若所述第一lun控制器存在未處理完成的擦除操作,所述介質(zhì)接口控制器從多個(gè)lun控制器中確定出不存在未處理完成的擦除操作的lun控制器,將該lun控制器確定為所述第二lun控制器;若所述第一lun控制器不存在未處理完成的擦除操作,所述介質(zhì)接口控制器將所述第一lun控制器確定為所述第二lun控制器。
64、可選地,在通過所述第二lun控制器處理所述r操作之前,所述介質(zhì)接口控制器申請(qǐng)所述第一xor緩存;若申請(qǐng)到所述第一xor緩存,所述第二lun控制器將要被操作的指定數(shù)據(jù)搬移到所述第一xor緩存,以及與所述第一xor緩存中的數(shù)據(jù)進(jìn)行xor操作。
65、可選地,若未申請(qǐng)到所述第一xor緩存,所述介質(zhì)接口控制器重復(fù)申請(qǐng)所述第一xor緩存,直到申請(qǐng)成功。
66、可選地,所述介質(zhì)接口控制器在完成所述r操作的情況下,釋放所述第一xor緩存。
67、可選地,若所述第一lun控制器存在未處理完成的擦除操作,在所述第一lun控制器完成所述擦除操作之后,所述第一lun控制器處理所述p1操作。
68、可選地,若在所述第二lun控制器處理所述r操作的過程中、所述介質(zhì)接口控制器為所述第二lun控制器分配了所述p1操作,則在所述第二lun控制器在處理完成所述r操作之后、所述第二lun控制器再處理所述p1操作。
69、可選地,所述第一lun控制器和所述第二lun控制器的關(guān)系為以下情況之一:所述第一lun控制器和所述第二lun控制器對(duì)應(yīng)的邏輯單元?dú)w屬于同一邏輯單元組;所述第一lun控制器和所述第二lun控制器對(duì)應(yīng)的邏輯單元?dú)w屬于不同的邏輯單元組;其中,每個(gè)邏輯單元組包括多個(gè)邏輯單元,每個(gè)邏輯單元對(duì)應(yīng)于一lun控制器,歸屬于同一邏輯單元組的邏輯單元對(duì)應(yīng)于同一大塊。
70、可選地,所述存儲(chǔ)命令處理單元在生成成對(duì)的所述p1操作與所述r操作時(shí),獲取與所述p1操作對(duì)應(yīng)的第一lun控制器是否有未處理完的擦除操作;若所述第一lun控制器沒有未處理完的擦除操作,在生成的所述r操作中指示所述第一lun控制器;若所述第一lun控制器存在未處理完的擦除操作,在生成的所述r操作中指示區(qū)別于所述第一lun控制器的、沒有未處理完的擦除操作的lun控制器。
71、可選地,所述介質(zhì)接口控制器根據(jù)所述第二物理頁(yè)歸屬的邏輯單元,確定對(duì)應(yīng)的第三lun控制器,所述第三lun控制器處理所述p2操作,以將所述校驗(yàn)數(shù)據(jù)寫入所述第二物理頁(yè)。
72、可選地,在所述第三lun控制器存在正在被處理的擦除操作的情況下,所述介質(zhì)接口控制器將所述p2操作所指示的所述第一xor緩存中的校驗(yàn)數(shù)據(jù)搬移至外部存儲(chǔ)器,并釋放所述第一xor緩存;在所述第三lun控制器完成擦除操作的處理后,所述介質(zhì)接口控制器申請(qǐng)所述第一xor緩存,將所述校驗(yàn)數(shù)據(jù)搬移至所述第一xor緩存、并將所述第一xor緩存中的校驗(yàn)數(shù)據(jù)寫入所述第二物理頁(yè)。
73、可選地,多個(gè)lun控制器并行處理多個(gè)成對(duì)的p1操作、r操作以及1個(gè)p2操作。
74、可選地,所述介質(zhì)接口控制器在為所述p1操作分配lun控制器時(shí),在基于所述p1操作對(duì)應(yīng)的邏輯單元確定第一lun控制器且所述第一lun控制器存在至少一個(gè)待處理的操作的情況下,繼續(xù)將所述p1操作分配至所述第一lun控制器;所述介質(zhì)接口控制器在為所述p2操作分配lun控制器時(shí),在基于所述p2操作對(duì)應(yīng)的邏輯單元確定第三lun控制器且所述第三lun控制器存在至少一個(gè)待處理的操作的情況下,繼續(xù)將所述p2操作分配至所述第三lun控制器。
75、可選地,所述介質(zhì)接口控制器在為所述r操作分配lun控制器時(shí),從多個(gè)lun控制器中確定不存在未處理完成的擦除操作的lun控制器為所述第二lun控制器,且所述第二lun控制器存在至少一個(gè)待處理的操作的情況下,繼續(xù)將所述r操作分配至所述第二lun控制器。
76、可選地,所述存儲(chǔ)命令處理單元在向所述第一頁(yè)條帶的多個(gè)第一物理頁(yè)寫入指定數(shù)據(jù)時(shí),多對(duì)p1操作與r操作均被生成并分配至對(duì)應(yīng)的lun控制器;其中,并行為多對(duì)p1操作與r操作分配lun控制器。
77、可選地,多個(gè)lun控制器各自獨(dú)立處理被分配的p1操作,而不論其他lun控制器的工作狀態(tài);所述多個(gè)lun控制器各自在申請(qǐng)到所述第一xor緩存的情況下獨(dú)立處理被分配的r操作,而不論其他lun控制器的工作狀態(tài)。
78、可選地,若所述第一頁(yè)條帶未分配到所述第一xor緩存,所述存儲(chǔ)命令處理單元暫停生成p1操作與r操作;在分配到所述第一xor緩存后,所述存儲(chǔ)命令處理單元繼續(xù)生成p1操作與r操作。
79、可選地,在完成所述p2操作之后,所述介質(zhì)接口控制器將所述第一xor緩存設(shè)置為可分配狀態(tài)。
80、可選地,在向多個(gè)頁(yè)條帶寫入數(shù)據(jù)的情況下,多個(gè)頁(yè)條帶對(duì)應(yīng)的p1操作與r操作均被生成并分配,且被多個(gè)lun控制器并行處理;其中,所述lun控制器每次僅處理一個(gè)操作,多條頁(yè)條帶對(duì)應(yīng)于多個(gè)xor緩存,同一頁(yè)條帶對(duì)應(yīng)的r操作使用同一xor緩存。
81、第五方面,本技術(shù)實(shí)施例提供一種擦除控制方法,包括:響應(yīng)于接收到的介質(zhì)接口命令,確定所述介質(zhì)接口命令指示擦除操作;確定與所述介質(zhì)接口命令以及所述擦除操作關(guān)聯(lián)的第一lun控制器;在未處理完成的擦除操作的數(shù)量滿足第一預(yù)設(shè)條件且所述第一lun控制器不存在未處理完成的擦除操作的情況下,向所述第一lun控制器分配所述介質(zhì)接口命令,由所述第一lun控制器基于所述介質(zhì)接口命令處理擦除操作。
82、可選地,所述響應(yīng)于接收到的介質(zhì)接口命令,確定所述介質(zhì)接口命令指示擦除操作,包括:基于所述介質(zhì)接口命令所包括的操作類型字段,確定所述介質(zhì)接口命令指示擦除操作。
83、可選地,所述介質(zhì)接口命令包括指示被擦除的物理塊地址的字段,所述確定與所述介質(zhì)接口命令以及所述擦除操作關(guān)聯(lián)的第一lun控制器,包括:基于所述介質(zhì)接口命令指示的物理塊地址,確定所述擦除操作對(duì)應(yīng)的邏輯單元;基于邏輯單元與lun控制器之間的映射關(guān)系,確定與所述擦除操作對(duì)應(yīng)的邏輯單元匹配的第一lun控制器。
84、可選地,所述方法還包括:在未處理完成的擦除操作的數(shù)量滿足第二預(yù)設(shè)條件的情況下,接收所述介質(zhì)接口命令。
85、可選地,所述在未處理完成的擦除操作的數(shù)量滿足第二預(yù)設(shè)條件的情況下,接收所述介質(zhì)接口命令,包括以下步驟其中之一:在不存在未處理完成的擦除操作的情況下,接收所述介質(zhì)接口命令;在未處理完成的擦除操作的數(shù)量小于或者等于第二閾值的情況下,接收所述介質(zhì)接口命令。
86、可選地,在確定所述第一lun控制器之前或者之后,所述方法還包括:獲取未處理完成的擦除操作的數(shù)量;若所獲取的未處理完成的擦除操作的數(shù)量不滿足所述第一預(yù)設(shè)條件,暫停處理所述介質(zhì)接口命令;若所獲取的未處理完成的擦除操作的數(shù)量滿足所述第一預(yù)設(shè)條件,繼續(xù)處理所述介質(zhì)接口命令。
87、可選地,所述若所獲取的未處理完成的擦除操作的數(shù)量不滿足所述第一預(yù)設(shè)條件,暫停處理所述介質(zhì)接口命令,包括:在所獲取的未處理完成的擦除操作的數(shù)量大于第一閾值的情況下,暫停處理所述介質(zhì)接口命令。
88、可選地,在暫停處理所述介質(zhì)接口命令之后,還包括:在監(jiān)測(cè)到未處理完成的擦除操作的數(shù)量小于或者等于第一閾值時(shí),恢復(fù)處理所述介質(zhì)接口命令。
89、可選地,所述若所獲取的擦除操作的數(shù)量滿足所述第一預(yù)設(shè)條件,繼續(xù)處理所述介質(zhì)接口命令,包括以下步驟其中之一:在不存在未處理完成的擦除操作的情況下,繼續(xù)處理所述介質(zhì)接口命令;在所獲取的未處理完成的擦除操作的數(shù)量小于或者等于第一閾值的情況下,繼續(xù)處理所述介質(zhì)接口命令。
90、可選地,若在確定所述第一lun控制器之前、確定所獲取的擦除操作的數(shù)量滿足所述第一預(yù)設(shè)條件,則確定所述第一lun控制器,并在所述第一lun控制器不存在未處理完成的擦除操作的情況下,所述第一lun控制器處理所述介質(zhì)接口命令以完成擦除操作。
91、可選地,若在確定所述第一lun控制器之后、確定所獲取的擦除操作的數(shù)量滿足所述第一預(yù)設(shè)條件,則所述第一lun控制器在不存在未處理完成的擦除操作的情況下處理所述介質(zhì)接口命令以完成擦除操作。
92、可選地,在接收到多個(gè)指示擦除操作的介質(zhì)接口命令的情況下,所述方法還包括:確定多個(gè)介質(zhì)接口命令對(duì)應(yīng)的多個(gè)lun控制器所對(duì)應(yīng)的n個(gè)邏輯單元組,每個(gè)邏輯單元組對(duì)應(yīng)于一大塊,n為大于或者等于2的整數(shù);控制同一時(shí)刻n個(gè)邏輯單元組對(duì)應(yīng)的擦除命令的數(shù)量滿足第三預(yù)設(shè)條件。
93、可選地,所述控制同一時(shí)刻n個(gè)邏輯單元組對(duì)應(yīng)的擦除命令的數(shù)量滿足第三預(yù)設(shè)條件,包括以下步驟至少之一:控制同一時(shí)刻n個(gè)邏輯單元組對(duì)應(yīng)的擦除命令的總數(shù)量小于或者等于第三閾值;控制同一時(shí)刻每個(gè)邏輯單元組對(duì)應(yīng)的擦除命令的數(shù)量小于或者等于第四閾值。
94、可選地,所述方法還包括:響應(yīng)于接收到指示p1操作的介質(zhì)接口命令,確定與所述p1操作關(guān)聯(lián)的第五lun控制器,將所述指示p1操作的介質(zhì)接口命令分配至所述第五lun控制器,由所述第五lun控制器處理所述指示p1操作的介質(zhì)接口命令;響應(yīng)于接收到指示r操作的介質(zhì)接口命令,獲取不存在未處理完成的擦除操作的第六lun控制器,將所述指示r操作的介質(zhì)接口命令分配至所述第六lun控制器,由所述第六lun控制器處理所述指示r操作的介質(zhì)接口命令;其中,所述p1操作指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片,所述r操作指示對(duì)所述存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算、在xor緩存中保留計(jì)算結(jié)果。
95、第六方面,本技術(shù)實(shí)施例還提供一種介質(zhì)接口控制器,包括命令分配單元和多個(gè)lun控制器;所述命令分配單元響應(yīng)于接收到的介質(zhì)接口命令,確定所述介質(zhì)接口命令指示擦除操作,在多個(gè)lun控制器中確定與所述介質(zhì)接口命令以及所述擦除操作關(guān)聯(lián)的第一lun控制器;在未處理完成的擦除操作的數(shù)量滿足第一預(yù)設(shè)條件且所述第一lun控制器不存在未處理完成的擦除操作的情況下,所述命令分配單元向所述第一lun控制器分配所述介質(zhì)接口命令,由所述第一lun控制器基于所述介質(zhì)接口命令處理擦除操作。
96、可選地,所述命令分配單元基于所述介質(zhì)接口命令所包括的操作類型字段,確定所述介質(zhì)接口命令指示擦除操作。
97、可選地,所述介質(zhì)接口命令包括指示被擦除的物理塊地址的字段,所述命令分配單元基于所述介質(zhì)接口命令指示的物理塊地址,確定所述擦除操作對(duì)應(yīng)的邏輯單元;基于邏輯單元與lun控制器之間的映射關(guān)系,確定與所述擦除操作對(duì)應(yīng)的邏輯單元匹配的第一lun控制器。
98、可選地,在未處理完成的擦除操作的數(shù)量滿足第二預(yù)設(shè)條件的情況下,所述命令分配單元接收存儲(chǔ)命令處理單元發(fā)送的所述介質(zhì)接口命令。
99、可選地,在不存在未處理完成的擦除操作的情況下,所述命令分配單元接收所述介質(zhì)接口命令;或者在未處理完成的擦除操作的數(shù)量小于或者等于第二閾值的情況下,所述命令分配單元接收所述介質(zhì)接口命令。
100、可選地,在確定所述第一lun控制器之前或者之后,所述命令分配單元獲取未處理完成的擦除操作的數(shù)量;若所獲取的未處理完成的擦除操作的數(shù)量不滿足所述第一預(yù)設(shè)條件,所述命令分配單元暫停處理所述介質(zhì)接口命令;若所獲取的未處理完成的擦除操作的數(shù)量滿足所述第一預(yù)設(shè)條件,所述命令分配單元繼續(xù)處理所述介質(zhì)接口命令。
101、可選地,在所獲取的未處理完成的擦除操作的數(shù)量大于第一閾值的情況下,所述命令分配單元暫停處理所述介質(zhì)接口命令。
102、可選地,在暫停處理所述介質(zhì)接口命令之后,還包括:在監(jiān)測(cè)到未處理完成的擦除操作的數(shù)量小于或者等于第一閾值時(shí),所述命令分配單元恢復(fù)處理所述介質(zhì)接口命令。
103、可選地,在不存在未處理完成的擦除操作的情況下,所述命令分配單元繼續(xù)處理所述介質(zhì)接口命令;或者在所獲取的未處理完成的擦除操作的數(shù)量小于或者等于第一閾值的情況下,所述命令分配單元繼續(xù)處理所述介質(zhì)接口命令。
104、可選地,若在確定所述第一lun控制器之前、確定所獲取的擦除操作的數(shù)量滿足所述第一預(yù)設(shè)條件,則所述命令分配單元確定所述第一lun控制器,并在所述第一lun控制器不存在未處理完成的擦除操作的情況下,所述第一lun控制器處理所述介質(zhì)接口命令以完成擦除操作。
105、可選地,若在確定所述第一lun控制器之后、確定所獲取的擦除操作的數(shù)量滿足所述第一預(yù)設(shè)條件,則所述第一lun控制器在不存在未處理完成的擦除操作的情況下處理所述介質(zhì)接口命令以完成擦除操作。
106、可選地,在接收到多個(gè)指示擦除操作的介質(zhì)接口命令的情況下,所述命令分配單元確定多個(gè)介質(zhì)接口命令對(duì)應(yīng)的多個(gè)lun控制器所對(duì)應(yīng)的n個(gè)邏輯單元組,每個(gè)邏輯單元組對(duì)應(yīng)于一大塊,n為大于或者等于2的整數(shù);所述命令分配單元控制同一時(shí)刻n個(gè)邏輯單元組對(duì)應(yīng)的擦除命令的數(shù)量滿足第三預(yù)設(shè)條件。
107、可選地,所述命令分配單元控制同一時(shí)刻n個(gè)邏輯單元組對(duì)應(yīng)的擦除命令的總數(shù)量小于或者等于第三閾值;或者所述命令分配單元控制同一時(shí)刻每個(gè)邏輯單元組對(duì)應(yīng)的擦除命令的數(shù)量小于或者等于第四閾值。
108、可選地,所述命令分配單元響應(yīng)于接收到指示p1操作的介質(zhì)接口命令,確定與所述p1操作關(guān)聯(lián)的第五lun控制器,將所述指示p1操作的介質(zhì)接口命令分配至所述第五lun控制器,由所述第五lun控制器處理所述指示p1操作的介質(zhì)接口命令;所述命令分配單元響應(yīng)于接收到指示r操作的介質(zhì)接口命令,獲取不存在未處理完成的擦除操作的第六lun控制器,將所述指示r操作的介質(zhì)接口命令分配至所述第六lun控制器,由所述第六lun控制器處理所述指示r操作的介質(zhì)接口命令;其中,所述p1操作指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片,所述r操作指示對(duì)所述存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算、在xor緩存中保留計(jì)算結(jié)果。
109、第七方面,本技術(shù)實(shí)施例提供一種存儲(chǔ)設(shè)備執(zhí)行的方法,包括:響應(yīng)于要擦除大塊,所述大塊包括來自多個(gè)邏輯單元的多個(gè)物理塊;若多個(gè)lun控制器對(duì)應(yīng)的未處理完成的擦除操作的數(shù)量小于指定閾值,向介質(zhì)接口控制器提供一個(gè)指示擦除操作的介質(zhì)接口命令;重復(fù)執(zhí)行所述若多個(gè)lun控制器對(duì)應(yīng)的未處理完成的擦除操作的數(shù)量小于指定閾值,向介質(zhì)接口控制器提供一個(gè)指示擦除操作的介質(zhì)接口命令的步驟,直到所述大塊的所有物理塊都被擦除。
110、可選地,所述方法還包括:響應(yīng)于要向第一頁(yè)條帶的每個(gè)第一物理頁(yè)寫入指定數(shù)據(jù),生成成對(duì)的p1操作和r操作,所述p1操作指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片,所述r操作指示對(duì)所述存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算,并在所述第一頁(yè)條帶對(duì)應(yīng)的第一xor緩存中保留計(jì)算結(jié)果;其中所述第一頁(yè)條帶包括第二物理頁(yè)與多個(gè)第一物理頁(yè);響應(yīng)于要向所述第一頁(yè)條帶的第二物理頁(yè)寫入數(shù)據(jù),生成p2操作,所述p2操作指示將所述第一xor緩存中的校驗(yàn)數(shù)據(jù)寫入所述第一頁(yè)條帶的第二物理頁(yè)。
111、可選地,所述方法還包括:為處理所述p1操作,根據(jù)所述p1操作指示的邏輯單元確定第二lun控制器,通過所述第二lun控制器處理所述p1操作;為處理所述r操作,獲取不存在未處理完成的擦除操作的第三lun控制器,通過所述第三lun控制器處理所述r操作;為處理所述p2操作,根據(jù)所述p2操作指示的邏輯單元確定第四lun控制器,通過所述第四lun控制器處理所述p2操作。
112、可選地,所述方法還包括:為生成所述r操作,獲取不存在未處理完成的擦除操作的第三lun控制器,在所述r操作中指示使用所述第三lun控制器來處理所述r操作。
113、可選地,所述方法還包括:為生成所述成對(duì)的p1操作與r操作,根據(jù)所述p1操作要訪問的第一物理頁(yè)所屬的邏輯單元確定第二lun控制器;若所述第二lun控制器不存在未處理完成的擦除操作,在所述r操作中指示使用所述第二lun控制器來處理所述r操作;若所述第二lun控制器存在未處理完成的擦除操作,獲取不存在未處理完成的擦除操作的第三lun控制器,在所述r操作中指示使用所述第三lun控制器來處理所述r操作。
114、第八方面,本技術(shù)實(shí)施例還提供一種控制部件,包括存儲(chǔ)命令處理單元與介質(zhì)接口控制器;所述存儲(chǔ)命令處理單元響應(yīng)于要擦除大塊,所述大塊包括來自多個(gè)邏輯單元的多個(gè)物理塊;若多個(gè)lun控制器對(duì)應(yīng)的未處理完成的擦除操作的數(shù)量小于指定閾值,所述存儲(chǔ)命令處理單元向所述介質(zhì)接口控制器提供一個(gè)指示擦除操作的介質(zhì)接口命令;重復(fù)執(zhí)行所述若多個(gè)lun控制器對(duì)應(yīng)的未處理完成的擦除操作的數(shù)量小于指定閾值,所述存儲(chǔ)命令處理單元向所述介質(zhì)接口控制器提供一個(gè)指示擦除操作的介質(zhì)接口命令的步驟,直到所述大塊的所有物理塊都被擦除。
115、可選地,所述存儲(chǔ)命令處理單元響應(yīng)于要向第一頁(yè)條帶的每個(gè)第一物理頁(yè)寫入指定數(shù)據(jù),生成成對(duì)的p1操作和r操作,所述p1操作指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片,所述r操作指示對(duì)所述存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算,并在所述第一頁(yè)條帶對(duì)應(yīng)的第一xor緩存中保留計(jì)算結(jié)果;其中所述第一頁(yè)條帶包括第二物理頁(yè)與多個(gè)第一物理頁(yè);所述存儲(chǔ)命令處理單元響應(yīng)于要向所述第一頁(yè)條帶的第二物理頁(yè)寫入數(shù)據(jù),生成p2操作,所述p2操作指示將所述第一xor緩存中的校驗(yàn)數(shù)據(jù)寫入所述第一頁(yè)條帶的第二物理頁(yè)。
116、可選地,為處理所述p1操作,所述介質(zhì)接口控制器根據(jù)所述p1操作指示的邏輯單元確定第二lun控制器,通過所述第二lun控制器處理所述p1操作;為處理所述r操作,所述介質(zhì)接口控制器獲取不存在未處理完成的擦除操作的第三lun控制器,通過所述第三lun控制器處理所述r操作;為處理所述p2操作,所述介質(zhì)接口控制器根據(jù)所述p2操作指示的邏輯單元確定第四lun控制器,通過所述第四lun控制器處理所述p2操作。
117、可選地,為生成所述r操作,所述存儲(chǔ)命令處理單元獲取不存在未處理完成的擦除操作的第三lun控制器,在所述r操作中指示使用所述第三lun控制器來處理所述r操作。
118、可選地,為生成所述成對(duì)的p1操作與r操作,所述存儲(chǔ)命令處理單元根據(jù)所述p1操作要訪問的第一物理頁(yè)所屬的邏輯單元確定第二lun控制器;若所述第二lun控制器不存在未處理完成的擦除操作,所述存儲(chǔ)命令處理單元在所述r操作中指示使用所述第二lun控制器來處理所述r操作;若所述第二lun控制器存在未處理完成的擦除操作,所述存儲(chǔ)命令處理單元獲取不存在未處理完成的擦除操作的第三lun控制器,在所述r操作中指示使用所述第三lun控制器來處理所述r操作。
119、第九方面,本技術(shù)實(shí)施例還提供一種命令分配方法,包括:響應(yīng)于接收到的介質(zhì)接口命令,獲取所述介質(zhì)接口命令指示的操作類型;確定與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器,將所述介質(zhì)接口命令分配至所述lun控制器,由所述lun控制器處理所述介質(zhì)接口命令;響應(yīng)于將所述介質(zhì)接口命令分配至所述lun控制器,在所述lun控制器的命令隊(duì)列中記錄所述介質(zhì)接口命令;其中,所述操作類型包括p1操作或者r操作,所述p1操作指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片,所述r操作指示對(duì)所述存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算、在xor緩存中保留計(jì)算結(jié)果。
120、可選地,響應(yīng)于所述操作類型為r操作,確定所述介質(zhì)接口命令要訪問的邏輯單元對(duì)應(yīng)的第一lun控制器或者介質(zhì)接口控制器的負(fù)載情況;基于所述第一lun控制器或所述介質(zhì)接口控制器的負(fù)載情況來為所述介質(zhì)接口命令分配lun控制器。
121、可選地,所述第一lun控制器或所述介質(zhì)接口控制器的負(fù)載情況,包括:lun控制器中命令隊(duì)列所存儲(chǔ)的未處理完成的介質(zhì)接口命令數(shù)量;或xor計(jì)算單元中被占用的xor緩存的比例。
122、可選地,基于所述第一lun控制器或所述介質(zhì)接口控制器的負(fù)載情況來確定第一lun控制器所處的狀態(tài);或基于所述第一lun控制器或所述介質(zhì)接口控制器的負(fù)載情況來確定所述介質(zhì)接口控制器所處的狀態(tài),其中,所述狀態(tài)包括第一狀態(tài)和第二狀態(tài);響應(yīng)于所述第一lun控制器或所述介質(zhì)接口控制器處于所述第二狀態(tài),將所述第一lun控制器作為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器。
123、可選地,響應(yīng)于所述第一lun控制器或所述介質(zhì)接口控制器處于第一狀態(tài),從多個(gè)lun控制器中選擇出第二lun控制器,將所述第二lun控制器作為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器;其中,所述第二lun控制器處于所述第二狀態(tài)。
124、可選地,還包括:識(shí)別所述第一lun控制器是否存在未處理完成的擦除操作;若存在未處理完成的擦除操作,則從多個(gè)lun控制器中選擇出所述第二lun控制器,以及將所述第二lun控制器作為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器。
125、可選地,若所述第一lun控制器不存在未處理完成的擦除操作,則確定所述介質(zhì)接口命令要訪問的邏輯單元對(duì)應(yīng)的第一lun控制器所處的狀態(tài);以及基于所述第一lun控制器所處的狀態(tài)來為所述介質(zhì)接口命令分配lun控制器。
126、可選地,確定所述第一lun控制器的命令隊(duì)列中所記錄的一個(gè)或多個(gè)介質(zhì)接口命令的類型;基于所述介質(zhì)接口命令的類型來識(shí)別所述第一lun控制器是否存在未處理完成的擦除操作。
127、可選地,從多個(gè)lun控制器中選擇出不存在未處理完成的擦除操作的lun控制器,將該lun控制器作為所述第二lun控制器;或從多個(gè)lun控制器中選擇出狀態(tài)為第二狀態(tài)的lun控制器,將該lun控制器作為所述第二lun控制器。
128、可選地,處于所述第一狀態(tài)至少包括如下一種情況:lun控制器中命令隊(duì)列的深度大于第一閾值,其中,命令隊(duì)列的深度表征存在命令隊(duì)列中介質(zhì)接口命令的數(shù)量;lun控制器的命令隊(duì)列中所存儲(chǔ)的指定類型介質(zhì)接口命令的數(shù)目大于第二閾值;xor計(jì)算單元中被占用的xor緩存比例大于第三閾值。
129、可選地,響應(yīng)于收到指示p1操作的多個(gè)第一介質(zhì)接口命令,確定每個(gè)第一介質(zhì)接口命令要訪問的邏輯單元,其中每個(gè)第一介質(zhì)接口命令要訪問相同的邏輯單元;,將所述多個(gè)第一介質(zhì)接口命令都分配給該邏輯單元對(duì)應(yīng)的第三lun控制器;其中,所述多個(gè)第一介質(zhì)接口命令所指示的物理地址對(duì)應(yīng)的物理頁(yè)屬于不同頁(yè)條帶。
130、可選地,還包括:響應(yīng)于收到指示r操作的多個(gè)第二介質(zhì)接口命令,確定每個(gè)第二介質(zhì)接口命令要訪問的邏輯單元;其中,第二介質(zhì)接口命令與第一介質(zhì)接口命令一一對(duì)應(yīng);基于所述第三lun控制器或所述介質(zhì)接口控制器的負(fù)載情況來為各個(gè)第二介質(zhì)接口命令分配lun控制器。
131、第十方面,本技術(shù)實(shí)施例還提供一種介質(zhì)接口控制器,包括:命令分配單元和多個(gè)lun控制器;所述命令分配單元響應(yīng)于接收到的介質(zhì)接口命令,獲取所述介質(zhì)接口命令指示的操作類型,在所述多個(gè)lun控制器中確定與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器,將所述介質(zhì)接口命令分配至所述lun控制器,由所述lun控制器處理所述介質(zhì)接口命令;lun控制器響應(yīng)于將所述介質(zhì)接口命令分配至所述lun控制器,在所述lun控制器的命令隊(duì)列中記錄所述介質(zhì)接口命令;其中,所述操作類型為p1操作或者r操作,所述p1操作指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片,所述r操作指示對(duì)所述存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算、在xor緩存中保留計(jì)算結(jié)果。
132、可選地,所述命令分配單元響應(yīng)于所述操作類型為r操作,確定所述介質(zhì)接口命令要訪問的邏輯單元對(duì)應(yīng)的第一lun控制器或者介質(zhì)接口控制器的負(fù)載情況;以及基于所述第一lun控制器或所述介質(zhì)接口控制器的負(fù)載情況來為所述介質(zhì)接口命令分配lun控制器。
133、可選地,所述命令分配單元響應(yīng)于所述操作類型為r操作,確定所述介質(zhì)接口命令要訪問的邏輯單元對(duì)應(yīng)的第一lun控制器或者介質(zhì)接口控制器的負(fù)載情況;以及基于所述第一lun控制器或所述介質(zhì)接口控制器的負(fù)載情況來為所述介質(zhì)接口命令分配lun控制器。
134、可選地,所述第一lun控制器或所述介質(zhì)接口控制器的負(fù)載情況,包括:lun控制器中命令隊(duì)列所存儲(chǔ)的未處理完成的介質(zhì)接口命令數(shù)量;或xor計(jì)算單元中被占用的xor緩存的比例。
135、可選地,所述命令分配單元基于所述第一lun控制器或所述介質(zhì)接口控制器的負(fù)載情況來確定第一lun控制器所處的狀態(tài);或基于所述第一lun控制器或所述介質(zhì)接口控制器的負(fù)載情況來確定所述介質(zhì)接口控制器所處的狀態(tài),其中,所述狀態(tài)包括第一狀態(tài)和第二狀態(tài);以及響應(yīng)于所述第一lun控制器或所述介質(zhì)接口控制器處于所述第二狀態(tài),將所述第一lun控制器作為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器。
136、可選地,所述命令分配單元響應(yīng)于所述第一lun控制器或所述介質(zhì)接口控制器處于第一狀態(tài),從多個(gè)lun控制器中選擇出第二lun控制器,將所述第二lun控制器作為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器;其中,所述第二lun控制器處于所述第二狀態(tài)。
137、可選地,還包括:所述命令分配單元識(shí)別所述第一lun控制器是否存在未處理完成的擦除操作;以及若存在未處理完成的擦除操作,則從多個(gè)lun控制器中選擇出所述第二lun控制器,以及將所述第二lun控制器作為與所述介質(zhì)接口命令以及所述操作類型關(guān)聯(lián)的lun控制器。
138、可選地,若所述第一lun控制器不存在未處理完成的擦除操作,則所述命令分配單元確定所述介質(zhì)接口命令要訪問的邏輯單元對(duì)應(yīng)的第一lun控制器所處的狀態(tài);以及基于所述第一lun控制器所處的狀態(tài)來為所述介質(zhì)接口命令分配lun控制器。
139、可選地,所述命令分配單元確定所述第一lun控制器的命令隊(duì)列中所記錄的一個(gè)或多個(gè)介質(zhì)接口命令的類型;以及基于所述介質(zhì)接口命令的類型來識(shí)別所述第一lun控制器是否存在未處理完成的擦除操作。
140、可選地,所述命令分配單元從多個(gè)lun控制器中選擇出不存在未處理完成的擦除操作的lun控制器,將該lun控制器作為所述第二lun控制器;或所述命令分配單元從多個(gè)lun控制器中選擇出狀態(tài)為第二狀態(tài)的lun控制器,將該lun控制器作為所述第二lun控制器。
141、可選地,處于所述第一狀態(tài)至少包括如下一種情況:lun控制器中命令隊(duì)列的深度大于第一閾值,其中,命令隊(duì)列的深度表征存在命令隊(duì)列中介質(zhì)接口命令的數(shù)量;lun控制器的命令隊(duì)列中所存儲(chǔ)的指定類型介質(zhì)接口命令的數(shù)目大于第二閾值;xor計(jì)算單元中被占用的xor緩存比例大于第三閾值。
142、根據(jù)本技術(shù)的實(shí)施例,引入了指示將存儲(chǔ)器中的指定數(shù)據(jù)搬移到nvm芯片但不進(jìn)行xor操作的p1操作、指示將xor緩存中的數(shù)據(jù)搬移到nvm芯片的p2操作,在支持對(duì)存儲(chǔ)器中的指定數(shù)據(jù)執(zhí)行xor計(jì)算并將結(jié)果保留在xor緩存中的r操作的同時(shí),可以基于p1操作、p2操作與r操作的配合,通過三個(gè)階段完成將存儲(chǔ)器中的指定數(shù)據(jù)和對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)寫入nvm芯片,三個(gè)階段的操作相互獨(dú)立,互不影響,在完成xor計(jì)算、將xor緩存中的數(shù)據(jù)搬移之后,即可及時(shí)釋放xor緩存,實(shí)現(xiàn)減少對(duì)xor緩存的占用時(shí)間,提高xor緩存的利用效率。且本技術(shù)可限制同時(shí)被處理的擦除操作的數(shù)量,避免了大塊回收產(chǎn)生的擦除操作所引起的存儲(chǔ)設(shè)備功耗波動(dòng),和/或,擦除操作占用多個(gè)或全部lun控制器而導(dǎo)致r操作無法被及時(shí)調(diào)度所導(dǎo)致的xor緩存不能被及時(shí)釋放的問題。