一種數(shù)據(jù)處理方法、處理設備及存儲系統(tǒng)的制作方法
【專利摘要】本申請?zhí)峁┝艘环N數(shù)據(jù)處理方法、處理設備及存儲系統(tǒng),處理設備將需要寫入物理頁的第一數(shù)據(jù)先添加到第一鏈表中,并在第一鏈表中為物理頁中已存儲的需要保留的數(shù)據(jù)留出地址段,存儲控制器按照第一鏈表中為需要保留的數(shù)據(jù)留出的地址段依次讀取數(shù)據(jù),而無需保留的數(shù)據(jù)則不進行讀取,因此,通過向第一鏈表中填充數(shù)據(jù)的方式,能夠?qū)崿F(xiàn)數(shù)據(jù)的合并,在上述數(shù)據(jù)處理過程中,處理設備只需調(diào)用一次存儲控制器,并且,在存儲控制器進行數(shù)據(jù)讀寫的過程中,處理器無需參與,綜上所述,能夠縮短數(shù)據(jù)合并的過程。
【專利說明】
一種數(shù)據(jù)處理方法、處理設備及存儲系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,更具體的說是涉及一種數(shù)據(jù)處理方法、處理設備及存儲系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有的硬盤一般分為機械硬盤(Hard Disk Drive,HDD)和固態(tài)硬盤(Solid StateDrive,SSD),隨著趨勢的發(fā)展,越來越多的電子設備采用SSD。其中,SSD—般使用存儲器Flash來存儲數(shù)據(jù),在將數(shù)據(jù)寫入Flash過程中,經(jīng)常需要進行數(shù)據(jù)的合并。
[0003]具體的,F(xiàn)lash中所存儲的數(shù)據(jù)是以物理頁為單位,在進行數(shù)據(jù)的合并時,SSD的處理器先調(diào)用SSD的Flash控制器,F(xiàn)lash控制器將Flash中相關(guān)頁的數(shù)據(jù)取出,并保存到處理器的內(nèi)存中,然后處理器將待合并數(shù)據(jù)與從Flash中獲取的數(shù)據(jù)進行合并,合并完成后,處理器再次調(diào)用Flash控制器,由Flash控制器將合并后的數(shù)據(jù)寫入到Flash中。
[0004]由此可見,在數(shù)據(jù)的合并過程中,處理器需要多次調(diào)用Flash控制器,且在調(diào)用過程中,仍需要處理器的介入,使得整個數(shù)據(jù)合并過程冗長。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供了一種數(shù)據(jù)處理方法、處理設備及存儲系統(tǒng),目的在于解決現(xiàn)有的數(shù)據(jù)合并過程冗長的問題。
[0006]為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
[0007]一種數(shù)據(jù)處理方法,該方法包括:
[0008]接收到待合并的第一數(shù)據(jù)時,基于所述第一數(shù)據(jù)建立第一鏈表;其中,所述第一鏈表包括第一地址段和第二地址段,所述第二地址段為存儲在存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù);
[0009]將所述第一數(shù)據(jù)添加到所述第一地址段中;
[0010]向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令,以使得所述存儲控制器基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中,然后將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。
[0011 ]可選地,所述基于所述第一數(shù)據(jù)建立第一鏈表,具體為:
[0012]在預設的映射列表中查找與所述第一數(shù)據(jù)相關(guān)的屬性信息;其中,所述屬性信息用于表征所述物理頁上的數(shù)據(jù)的屬性;
[0013]基于所述屬性信息確定第一地址段和第二地址段;
[0014]為所述第一地址段添加第一標識,所述第一標識用于表征所述第一地址段不能被覆蓋;
[0015]為所述第二地址段添加第二標識,所述第二標識用于表征所述第二地址段能被覆蓋;
[0016]其中,所述第一地址段具有第一數(shù)據(jù)長度,所述第一數(shù)據(jù)長度為所述第一數(shù)據(jù)的大小;所述第二地址段具有第二數(shù)據(jù)長度,所述第二數(shù)據(jù)長度為所述第二數(shù)據(jù)的大小。
[0017]可選地,所述基于所述屬性信息確定第一地址段和第二地址段,具體為:
[0018]基于所述屬性信息確定所述第一數(shù)據(jù)長度、所述第二數(shù)據(jù)長度以及所述第一數(shù)據(jù)長度和所述第二數(shù)據(jù)長度的位置關(guān)系;
[0019]按照所述位置關(guān)系,劃分與所述第一數(shù)據(jù)長度對應的第一地址段和與所述第二數(shù)據(jù)長度對應的第二地址段。
[0020]可選地,所述向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令,以使得所述存儲控制器基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中,然后將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中,具體為:
[0021 ]基于所述映射列表確定包含所述第三數(shù)據(jù)的物理頁的頁碼;
[0022]確定存儲所述第一鏈表的鏈表存儲地址;
[0023]將攜帶所述頁碼和所述鏈表存儲地址的控制命令發(fā)送給所述存儲控制器,以使得存儲控制器查找與所述頁碼對應的物理頁,并基于所述鏈表存儲地址所指示的位置,將所述物理頁上的所述第二數(shù)據(jù)添加到具有所述第二標識的所述第二地址段中。
[0024]可選地,所述第一地址段指示有所述第一數(shù)據(jù)的第一存儲地址;
[0025]所述將所述第一數(shù)據(jù)添加到所述第一地址段中,具體為:
[0026]從所述第一存儲地址獲取所述第一數(shù)據(jù);
[0027]將所述第一數(shù)據(jù)添加到所述第一地址段中。
[0028]一種數(shù)據(jù)處理方法,包括:
[0029]接收指示第一鏈表的控制命令,所述第一鏈表包括第一地址段和第二地址段,所述第一地址段中添加有待合并的第一數(shù)據(jù),所述第二地址段為存儲在存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù);
[0030]基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù);
[0031 ]將所述第二數(shù)據(jù)添加到所述第二地址段中;
[0032]將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。
[0033]可選地,所述控制命令中攜帶所述第三數(shù)據(jù)的物理頁的頁碼和所述鏈表存儲地址;
[0034]所述將所述第二數(shù)據(jù)添加到所述第二地址段中包括:
[0035]查找與所述頁碼對應的物理頁;
[0036]基于所述鏈表存儲地址所指示的位置,將所述物理頁上的所述第二數(shù)據(jù)添加到具有所述第二標識的所述第二地址段中。
[0037]一種處理設備,包括:
[0038]接收器,用于接收待合并的第一數(shù)據(jù);
[0039]處理器,用于接收到待合并的第一數(shù)據(jù)時,基于所述第一數(shù)據(jù)建立第一鏈表并將所述第一數(shù)據(jù)添加到所述第一地址段中;其中,所述第一鏈表包括第一地址段和第二地址段,所述第二地址段為存儲在存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù);
[0040]發(fā)送器,用于向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令,以使得所述存儲控制器基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中,然后將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。
[0041]—種存儲控制器,包括:
[0042]接收器,用于接收指示第一鏈表的控制命令,所述第一鏈表包括第一地址段和第二地址段,所述第一地址段中添加有待合并的第一數(shù)據(jù),所述第二地址段為存儲在存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù);
[0043]處理器,用于基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中,并將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。
[0044]一種存儲系統(tǒng),包括:硬盤處理器、存儲控制器及存儲器;
[0045]其中,所述硬盤處理器用于接收到待合并的第一數(shù)據(jù)時,基于所述第一數(shù)據(jù)建立第一鏈表,其中,所述第一鏈表包括第一地址段和第二地址段,所述第二地址段為存儲在所述存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù);并將所述第一數(shù)據(jù)添加到所述第一地址段中;再向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令;
[0046]所述存儲控制器用于接收指示第一鏈表的控制命令,基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中并將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。
[0047]可選地,所述硬盤處理器用于基于所述第一數(shù)據(jù)建立第一鏈表,具體為:
[0048]所述硬盤處理器用于,在預設的映射列表中查找與所述第一數(shù)據(jù)相關(guān)的屬性信息;其中,所述屬性信息用于表征所述物理頁上的數(shù)據(jù)的屬性;基于所述屬性信息確定第一地址段和第二地址段;為所述第一地址段添加第一標識,所述第一標識用于表征所述第一地址段不能被覆蓋;為所述第二地址段添加第二標識,所述第二標識用于表征所述第二地址段能被覆蓋;
[0049]其中,所述第一地址段具有第一數(shù)據(jù)長度,所述第一數(shù)據(jù)長度為所述第一數(shù)據(jù)的大小;所述第二地址段具有第二數(shù)據(jù)長度,所述第二數(shù)據(jù)長度為所述第二數(shù)據(jù)的大小。
[0050]可選地,所述硬盤處理器用于基于所述屬性信息確定第一地址段和第二地址段,具體為:
[0051]所述硬盤處理器用于,基于所述屬性信息確定所述第一數(shù)據(jù)長度、所述第二數(shù)據(jù)長度以及所述第一數(shù)據(jù)長度和所述第二數(shù)據(jù)長度的位置關(guān)系;按照所述位置關(guān)系,劃分與所述第一數(shù)據(jù)長度對應的第一地址段和與所述第二數(shù)據(jù)長度對應的第二地址段。
[0052]可選地,所述硬盤處理器用于向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令,具體為:
[0053]所述硬盤處理器用于,基于所述映射列表確定包含所述第三數(shù)據(jù)的物理頁的頁碼;確定存儲所述第一鏈表的鏈表存儲地址;將攜帶所述頁碼和所述鏈表存儲地址的控制命令發(fā)送給所述存儲控制器。
[0054]可選地,所述存儲控制器用于將所述第二數(shù)據(jù)添加到所述第二地址段中,具體為:
[0055]所述存儲控制器用于,從所述控制命令中獲取所述第三數(shù)據(jù)的物理頁的頁碼和所述鏈表存儲地址,查找與所述頁碼對應的物理頁,基于所述鏈表存儲地址所指示的位置,將所述物理頁上的所述第二數(shù)據(jù)添加到具有所述第二標識的所述第二地址段中。
[0056]可選地,所述硬盤處理器用于將所述第一數(shù)據(jù)添加到所述第一地址段中,具體為:
[0057]所述硬盤處理器用于,從所述第一存儲地址獲取所述第一數(shù)據(jù)并將所述第一數(shù)據(jù)添加到所述第一地址段中。
[0058]本申請所述的技術(shù)方案,處理設備接收到待合并的第一數(shù)據(jù)時,基于第一數(shù)據(jù)建立第一鏈表,第一鏈表包括第一地址段和第二地址段,并將第一數(shù)據(jù)添加到第一地址段中,第二地址段為存儲在存儲器中不需要被第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,第二數(shù)據(jù)與會被第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上。處理設備向存儲控制器發(fā)送用于指示第一鏈表的控制命令,存儲控制器基于控制命令從存儲器中取出第二數(shù)據(jù),將第二數(shù)據(jù)添加到第二地址段中,然后將添加有第一數(shù)據(jù)和第二數(shù)據(jù)的第一鏈表寫入到存儲器中第三數(shù)據(jù)所在的物理頁中??梢?,處理設備將需要寫入物理頁的第一數(shù)據(jù)先添加到第一鏈表中,并在第一鏈表中為物理頁中已存儲的需要保留的數(shù)據(jù)留出地址段,存儲控制器按照第一鏈表中為需要保留的數(shù)據(jù)留出的地址段依次讀取數(shù)據(jù),而無需保留的數(shù)據(jù)則不進行讀取,因此,通過向第一鏈表中填充數(shù)據(jù)的方式,能夠?qū)崿F(xiàn)數(shù)據(jù)的合并,在上述數(shù)據(jù)處理過程中,處理設備只需調(diào)用一次存儲控制器,并且,在存儲控制器進行數(shù)據(jù)讀寫的過程中,處理器無需參與,綜上所述,能夠縮短數(shù)據(jù)合并的過程。
【附圖說明】
[0059]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0060]圖1為本申請的應用場景的不意圖;
[0061]圖2為本申請公開的存儲系統(tǒng)的結(jié)構(gòu)示意圖;
[0062]圖3為圖2所示的存儲系統(tǒng)進行數(shù)據(jù)處理的過程的流程圖;
[0063]圖4為圖2所示的存儲系統(tǒng)進行另一種數(shù)據(jù)處理過程的流程圖;
[0064]圖5為存儲系統(tǒng)進行數(shù)據(jù)處理中建立的鏈表的示意圖;
[0065]圖6為本申請實施例公開的一種處理設備的結(jié)構(gòu)示意圖;
[0066]圖7為本申請實施例公開的一種存儲控制器的結(jié)構(gòu)示意圖。
【具體實施方式】
[0067]本申請實施例公開了一種數(shù)據(jù)處理方法,應用在向存儲系統(tǒng)中(例如SSD)寫入數(shù)據(jù)的場景中。例如,如圖1所示,SSD中的一個物理頁中已經(jīng)存儲有第二數(shù)據(jù)和第三數(shù)據(jù),需要向SSD中寫入第一數(shù)據(jù)(第一數(shù)據(jù)的大小不足一個物理頁)。
[0068]如圖2所示,存儲系統(tǒng)包括存儲器、處理設備以及存儲控制器。本申請中公開的實施例的目的在于,通過處理設備以及存儲控制器之間的交互,簡化第一數(shù)據(jù)與物理頁中已有的數(shù)據(jù)的合并的過程。
[0069]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0070]圖3所示為圖2所示的存儲系統(tǒng)進行數(shù)據(jù)處理的過程,包括以下步驟:
[0071 ] S301:處理設備接收待合并的第一數(shù)據(jù)。
[0072]S302:處理設備基于第一數(shù)據(jù)建立第一鏈表。
[0073]其中,第一鏈表包括第一地址段和第二地址段。第一地址段是為第一數(shù)據(jù)預留的存儲空間,指示第一數(shù)據(jù)在將要存儲的物理頁中的存儲地址,第二地址段是為第二數(shù)據(jù)預留的存儲空間,指示第二數(shù)據(jù)在將要存儲的物理頁中的存儲地址。而第三數(shù)據(jù)則為可以與第一數(shù)據(jù)合并的數(shù)據(jù),即在物理頁中可以被覆蓋的數(shù)據(jù),所以,無需預留存儲空間。
[0074]具體地,物理頁中已有的數(shù)據(jù)中哪些是可以被覆蓋的數(shù)據(jù),可以通過對第一數(shù)據(jù)以及物理頁中已經(jīng)存儲的數(shù)據(jù)的內(nèi)容比較得出。例如,經(jīng)過對比,圖1中所示的物理頁中,第三數(shù)據(jù)與第一數(shù)據(jù)的部分內(nèi)容相同,所以,第一數(shù)據(jù)可以與第三數(shù)據(jù)合并,而第二數(shù)據(jù)與第一數(shù)據(jù)的內(nèi)容不同,所以,屬于不能被覆蓋的數(shù)據(jù)。
[0075]S303:處理設備將第一數(shù)據(jù)添加到第一地址段中。
[0076]S304:處理設備向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令。
[0077]S305:存儲控制器基于控制命令從存儲器中取出第二數(shù)據(jù)。
[0078]具體地,存儲控制器訪問第一鏈表,獲取沒有填充數(shù)據(jù)的地址段,即第二地址段,按照第二地址段,讀取物理頁中相應地址中的數(shù)據(jù),即第二數(shù)據(jù)。
[0079]S306:存儲控制器將第二數(shù)據(jù)添加到第二地址段中。
[0080]因為第一鏈表中沒有第三數(shù)據(jù)的地址段,所以,第三數(shù)據(jù)不被讀取。因此,從S305和S306可以看出,存儲控制器在基于第一鏈表從存儲器中讀取數(shù)據(jù)的過程,即實現(xiàn)了第三數(shù)據(jù)與第一數(shù)據(jù)的合并。
[0081 ] S307:存儲控制器將添加有第一數(shù)據(jù)和第二數(shù)據(jù)的第一鏈表寫入到存儲器中第三數(shù)據(jù)所在的物理頁中。
[0082]從圖3所示的過程可以看出,處理設備通過第一鏈表告知存儲控制器待存儲的第一數(shù)據(jù)的存儲位置以及物理頁中不能被覆蓋的數(shù)據(jù)的在物理頁中的當前存儲位置(也是將要被存儲的位置),因此,存儲控制器按照第一鏈表從物理頁中取出不能被覆蓋的數(shù)據(jù)填充到第一聯(lián)表中后,按照第一鏈表向物理頁中存儲數(shù)據(jù)??梢?,處理設備僅需要調(diào)用一次存儲控制器,并且,在存儲控制器的讀寫過程中,處理設備無需參與,所以,與現(xiàn)有的數(shù)據(jù)存儲過程相比,縮短了控制過程。
[0083]圖4為本申請公開的又一種數(shù)據(jù)處理方法,與圖3所示的過程相比,重點在于說明第一鏈表的建立過程。圖4所示的方法包括以下步驟:
[0084]S401:處理設備接收到待合并的第一數(shù)據(jù)。
[0085]S402:處理設備在預設的映射列表中查找與第一數(shù)據(jù)相關(guān)的屬性信息。
[0086]其中,屬性信息用于表征所述物理頁上的數(shù)據(jù)的屬性,以圖1所示的物理頁為例,屬性信息用于表征第二數(shù)據(jù)的屬性和第三數(shù)據(jù)的屬性。因為第一數(shù)據(jù)將要存儲到此物理頁中,所以,第二數(shù)據(jù)和第三數(shù)據(jù)的屬性與第一數(shù)據(jù)相關(guān)。
[0087]S403:處理設備基于屬性信息確定第一地址段和第二地址段。
[0088]具體地,處理設備可以基于屬性信息確定第一數(shù)據(jù)長度即第一數(shù)據(jù)的大小、第二數(shù)據(jù)長度即第二數(shù)據(jù)的大小、以及第一數(shù)據(jù)長度和第二數(shù)據(jù)長度的位置關(guān)系,并按照位置關(guān)系劃分與第一數(shù)據(jù)長度對應的第一地址段和與第二數(shù)據(jù)長度對應的第二地址段。
[0089]舉例說明,屬性信息可以內(nèi)容信息,通過比較第一數(shù)據(jù)、第二數(shù)據(jù)和第三數(shù)據(jù)的內(nèi)容,確定物理頁中已存儲的第三數(shù)據(jù)可以與第一數(shù)據(jù)合并,第二數(shù)據(jù)需要保留,并將需要保留的數(shù)據(jù)的存儲空間作為第二地址段。并且,依據(jù)第一數(shù)據(jù)的長度和第二數(shù)據(jù)的長度、及位置關(guān)系,劃分第一地址段和第二地址段。
[0090]S404:處理設備為第一地址段添加第一標識(例如mask=l),為第二地址段添加第二標識(例如mask = O)。
[0091]其中,第一標識用于表征第一地址段不能被覆蓋,第二標識用于表征第二地址段能被覆蓋。需要說明的是,這里的“覆蓋”是指在第一鏈表中是否能被覆蓋,因為第一地址段需要填充第一數(shù)據(jù),所以不能被從物理頁中取出的數(shù)據(jù)覆蓋。
[0092]S405:處理設備將第一數(shù)據(jù)添加到第一地址段中,形成第一鏈表,其中,第一鏈表中包括填充有第一數(shù)據(jù)的第一地址段、第二地址段,每個地址段均有指示是否可被覆蓋的標識O
[0093]具體地,第一地址段指示有第一數(shù)據(jù)的第一存儲地址,處理設備從第一存儲地址獲取第一數(shù)據(jù)并將第一數(shù)據(jù)添加到第一地址段中。
[0094]S406:處理設備將建立好的第一鏈表通過控制命令發(fā)給存儲控制器。
[0095]S407:存儲控制器基于控制命令從存儲器中取出第二數(shù)據(jù),并將第二數(shù)據(jù)添加到第二地址段中。
[0096]具體地,控制命令中攜帶物理頁的頁碼和鏈表存儲地址,存儲控制器查找與所述頁碼對應的物理頁,并基于鏈表存儲地址所指示的位置,將物理頁上的第二數(shù)據(jù)添加到具有第二標識的第二地址段中。
[0097]S408:存儲控制器依據(jù)第一鏈表將第一數(shù)據(jù)和第二數(shù)據(jù)寫入到存儲器中的物理頁中。
[0098]具體地,存儲控制器按照第一鏈表中第一數(shù)據(jù)和第二數(shù)據(jù)對應的地址段,將第一數(shù)據(jù)和第二數(shù)據(jù)分別寫入到所述頁碼對應的物理頁中的相應地址中。
[00"] 如圖5所示,處理設備先建立圖5中所示鏈表,其中,data_po inter表示指針,datalength表示地址段的長度,待合并的數(shù)據(jù)的地址段(圖5中以斜線表示)的長度為0.5KB,mask表示標識,待合并的數(shù)據(jù)的地址段的mask= I,其它數(shù)據(jù)的地址段的mask = 0。然后生成Nand Flash讀、寫指令,存儲控制器先讀出數(shù)據(jù)(圖5中未畫出),并填入鏈表中(‘mask = I’)的地址段會被跳過),從而完成數(shù)據(jù)的合并,再將合并后的數(shù)據(jù)寫回到Nand Flash0
[0100]本實施例所述的數(shù)據(jù)處理方法,處理設備與存儲控制器之間只有一次交互,并且,處理設備無需參與數(shù)據(jù)合并過程,所以,能夠縮短處理流程。
[0101]圖6所示為圖2、圖3或圖4中所示的處理設備的結(jié)構(gòu),具體包括接收器、處理器和發(fā)送器。
[0102]其中,接收器用于接收待合并的第一數(shù)據(jù)。
[0103]處理器,用于接收到待合并的第一數(shù)據(jù)時,基于所述第一數(shù)據(jù)建立第一鏈表并將所述第一數(shù)據(jù)添加到所述第一地址段中;其中,所述第一鏈表包括第一地址段和第二地址段,所述第二地址段為存儲在存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù)。
[0104]發(fā)送器用于向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令,以使得所述存儲控制器基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中,然后將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。
[0105]圖7所示為圖2、圖3或圖4中所示的存儲控制器的結(jié)構(gòu),具體包括接收器和處理器。
[0106]其中,接收器用于接收指示第一鏈表的控制命令,所述第一鏈表包括第一地址段和第二地址段,所述第一地址段中添加有待合并的第一數(shù)據(jù),所述第二地址段為存儲在存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù)。
[0107]處理器用于基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中,并將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。
[0108]圖6所示的處理設備、圖7所示的存儲控制器以及存儲器構(gòu)成圖2所示的存儲系統(tǒng),能夠簡化數(shù)據(jù)合并的流程,從而提高數(shù)據(jù)存儲的效率。
[0109]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0110]對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【主權(quán)項】
1.一種數(shù)據(jù)處理方法,其特征在于,該方法包括: 接收到待合并的第一數(shù)據(jù)時,基于所述第一數(shù)據(jù)建立第一鏈表;其中,所述第一鏈表包括第一地址段和第二地址段,所述第二地址段為存儲在存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù); 將所述第一數(shù)據(jù)添加到所述第一地址段中; 向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令,以使得所述存儲控制器基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中,然后將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述第一數(shù)據(jù)建立第一鏈表,具體為: 在預設的映射列表中查找與所述第一數(shù)據(jù)相關(guān)的屬性信息;其中,所述屬性信息用于表征所述物理頁上的數(shù)據(jù)的屬性; 基于所述屬性信息確定第一地址段和第二地址段; 為所述第一地址段添加第一標識,所述第一標識用于表征所述第一地址段不能被覆蓋; 為所述第二地址段添加第二標識,所述第二標識用于表征所述第二地址段能被覆蓋; 其中,所述第一地址段具有第一數(shù)據(jù)長度,所述第一數(shù)據(jù)長度為所述第一數(shù)據(jù)的大??;所述第二地址段具有第二數(shù)據(jù)長度,所述第二數(shù)據(jù)長度為所述第二數(shù)據(jù)的大小。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述屬性信息確定第一地址段和第二地址段,具體為: 基于所述屬性信息確定所述第一數(shù)據(jù)長度、所述第二數(shù)據(jù)長度以及所述第一數(shù)據(jù)長度和所述第二數(shù)據(jù)長度的位置關(guān)系; 按照所述位置關(guān)系,劃分與所述第一數(shù)據(jù)長度對應的第一地址段和與所述第二數(shù)據(jù)長度對應的第二地址段。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令,以使得所述存儲控制器基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中,然后將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中,具體為: 基于所述映射列表確定包含所述第三數(shù)據(jù)的物理頁的頁碼; 確定存儲所述第一鏈表的鏈表存儲地址; 將攜帶所述頁碼和所述鏈表存儲地址的控制命令發(fā)送給所述存儲控制器,以使得存儲控制器查找與所述頁碼對應的物理頁,并基于所述鏈表存儲地址所指示的位置,將所述物理頁上的所述第二數(shù)據(jù)添加到具有所述第二標識的所述第二地址段中。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一地址段指示有所述第一數(shù)據(jù)的第一存儲地址; 所述將所述第一數(shù)據(jù)添加到所述第一地址段中,具體為: 從所述第一存儲地址獲取所述第一數(shù)據(jù); 將所述第一數(shù)據(jù)添加到所述第一地址段中。6.一種數(shù)據(jù)處理方法,其特征在于,包括: 接收指示第一鏈表的控制命令,所述第一鏈表包括第一地址段和第二地址段,所述第一地址段中添加有待合并的第一數(shù)據(jù),所述第二地址段為存儲在存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù); 基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù); 將所述第二數(shù)據(jù)添加到所述第二地址段中; 將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述控制命令中攜帶所述第三數(shù)據(jù)的物理頁的頁碼和所述鏈表存儲地址; 所述將所述第二數(shù)據(jù)添加到所述第二地址段中包括: 查找與所述頁碼對應的物理頁; 基于所述鏈表存儲地址所指示的位置,將所述物理頁上的所述第二數(shù)據(jù)添加到具有所述第二標識的所述第二地址段中。8.一種處理設備,其特征在于,包括: 接收器,用于接收待合并的第一數(shù)據(jù); 處理器,用于接收到待合并的第一數(shù)據(jù)時,基于所述第一數(shù)據(jù)建立第一鏈表并將所述第一數(shù)據(jù)添加到所述第一地址段中;其中,所述第一鏈表包括第一地址段和第二地址段,所述第二地址段為存儲在存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù); 發(fā)送器,用于向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令,以使得所述存儲控制器基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中,然后將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。9.一種存儲控制器,其特征在于,包括: 接收器,用于接收指示第一鏈表的控制命令,所述第一鏈表包括第一地址段和第二地址段,所述第一地址段中添加有待合并的第一數(shù)據(jù),所述第二地址段為存儲在存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù); 處理器,用于基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中,并將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。10.一種存儲系統(tǒng),其特征在于,包括:處理設備、存儲控制器及存儲器; 其中,所述處理設備用于接收到待合并的第一數(shù)據(jù)時,基于所述第一數(shù)據(jù)建立第一鏈表,其中,所述第一鏈表包括第一地址段和第二地址段,所述第二地址段為存儲在所述存儲器中不需要被所述第一數(shù)據(jù)覆蓋的第二數(shù)據(jù)的預留空間,所述第二數(shù)據(jù)為與會被所述第一數(shù)據(jù)覆蓋的第三數(shù)據(jù)位于同一物理頁上的數(shù)據(jù);并將所述第一數(shù)據(jù)添加到所述第一地址段中;再向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令; 所述存儲控制器用于接收指示第一鏈表的控制命令,基于所述控制命令從所述存儲器中取出所述第二數(shù)據(jù),將所述第二數(shù)據(jù)添加到所述第二地址段中并將添加有所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的所述第一鏈表寫入到所述存儲器中所述第三數(shù)據(jù)所在的物理頁中。11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述硬盤處理器用于基于所述第一數(shù)據(jù)建立第一鏈表,具體為: 所述硬盤處理器用于,在預設的映射列表中查找與所述第一數(shù)據(jù)相關(guān)的屬性信息;其中,所述屬性信息用于表征所述物理頁上的數(shù)據(jù)的屬性;基于所述屬性信息確定第一地址段和第二地址段;為所述第一地址段添加第一標識,所述第一標識用于表征所述第一地址段不能被覆蓋;為所述第二地址段添加第二標識,所述第二標識用于表征所述第二地址段能被覆蓋; 其中,所述第一地址段具有第一數(shù)據(jù)長度,所述第一數(shù)據(jù)長度為所述第一數(shù)據(jù)的大小;所述第二地址段具有第二數(shù)據(jù)長度,所述第二數(shù)據(jù)長度為所述第二數(shù)據(jù)的大小。12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述硬盤處理器用于基于所述屬性信息確定第一地址段和第二地址段,具體為: 所述硬盤處理器用于,基于所述屬性信息確定所述第一數(shù)據(jù)長度、所述第二數(shù)據(jù)長度以及所述第一數(shù)據(jù)長度和所述第二數(shù)據(jù)長度的位置關(guān)系;按照所述位置關(guān)系,劃分與所述第一數(shù)據(jù)長度對應的第一地址段和與所述第二數(shù)據(jù)長度對應的第二地址段。13.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述硬盤處理器用于向存儲控制器發(fā)送用于指示所述第一鏈表的控制命令,具體為: 所述硬盤處理器用于,基于所述映射列表確定包含所述第三數(shù)據(jù)的物理頁的頁碼;確定存儲所述第一鏈表的鏈表存儲地址;將攜帶所述頁碼和所述鏈表存儲地址的控制命令發(fā)送給所述存儲控制器。14.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述存儲控制器用于將所述第二數(shù)據(jù)添加到所述第二地址段中,具體為: 所述存儲控制器用于,從所述控制命令中獲取所述第三數(shù)據(jù)的物理頁的頁碼和所述鏈表存儲地址,查找與所述頁碼對應的物理頁,基于所述鏈表存儲地址所指示的位置,將所述物理頁上的所述第二數(shù)據(jù)添加到具有所述第二標識的所述第二地址段中。15.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述硬盤處理器用于將所述第一數(shù)據(jù)添加到所述第一地址段中,具體為: 所述硬盤處理器用于,從所述第一存儲地址獲取所述第一數(shù)據(jù)并將所述第一數(shù)據(jù)添加到所述第一地址段中。
【文檔編號】G06F12/06GK105893272SQ201610170162
【公開日】2016年8月24日
【申請日】2016年3月23日
【發(fā)明人】王海洋, 謝巍, 楊碧波
【申請人】聯(lián)想(北京)有限公司