專利名稱:增量歸并方法和使用該方法的存儲(chǔ)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)器,特別涉及能夠管理半導(dǎo)體存儲(chǔ)設(shè)備的方法和設(shè)備,所述半導(dǎo)體存儲(chǔ)設(shè)備包括非易失性可擦除半導(dǎo)體存儲(chǔ)器,諸如閃速存儲(chǔ)器。
背景技術(shù):
近些年來,開發(fā)并上市了各種類型的個(gè)人計(jì)算機(jī),諸如在辦公室中使用的臺(tái)式計(jì)算機(jī)和在移動(dòng)環(huán)境中使用的筆記本計(jì)算機(jī)。通常,這些計(jì)算機(jī)系統(tǒng)包括主存儲(chǔ)器和外部存儲(chǔ)設(shè)備。典型的外部存儲(chǔ)設(shè)備具有低存儲(chǔ)容量單位成本的大存儲(chǔ)容量。
外部存儲(chǔ)設(shè)備可以是常規(guī)的硬盤驅(qū)動(dòng)器(HDD)或使用磁盤存儲(chǔ)介質(zhì)的軟盤驅(qū)動(dòng)器(FDD)。這些磁盤存儲(chǔ)設(shè)備典型地以相對(duì)低的價(jià)格和操作成本提供較大的存儲(chǔ)容量,但是可能需要較高的精細(xì)機(jī)械技術(shù)以使用磁頭進(jìn)行各種操作,諸如磁盤搜尋操作。因此,磁盤存儲(chǔ)設(shè)備很容易被物理碰撞損壞,故被認(rèn)為不如其他類型的存儲(chǔ)設(shè)備可靠。
過去,使用半導(dǎo)體存儲(chǔ)器作為存儲(chǔ)介質(zhì)的外部存儲(chǔ)設(shè)備類型,諸如SRAM(靜態(tài)隨機(jī)存取存儲(chǔ)器)或DRAM(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)沒有提供對(duì)磁盤存儲(chǔ)設(shè)備的可行的替代。盡管半導(dǎo)體類型的外部存儲(chǔ)設(shè)備具有比磁盤存取時(shí)間快的處理速度,并且不太容易被物理碰撞損害,但是與SRAM和DRAM技術(shù)相關(guān)的固有缺陷妨礙了SRAM和DRAM技術(shù)用于大容量存貯器。
總的來說,每SRAM存儲(chǔ)容量的價(jià)格太高,因此不可能生產(chǎn)成本低廉的SRAM用于大容量存貯器中。再者,存儲(chǔ)DRAM中保持的數(shù)據(jù)所需的額外的功率通常也增加了外部存儲(chǔ)設(shè)備的操作成本,與DRAM刷新操作相關(guān)的功率消耗使得在移動(dòng)環(huán)境中實(shí)現(xiàn)DRAM很困難,因?yàn)橐苿?dòng)環(huán)境中通常要求較小的功率消耗。
另一方面,在一些應(yīng)用中,用諸如閃速EEPROM(電可擦除只讀存儲(chǔ)器)之類的閃速存儲(chǔ)器實(shí)現(xiàn)的外部半導(dǎo)體存儲(chǔ)設(shè)備提供了對(duì)磁盤存儲(chǔ)設(shè)備的可行的替代。閃速存儲(chǔ)設(shè)備是可以編程不止一次的非易失性存儲(chǔ)設(shè)備。另外,閃速存儲(chǔ)設(shè)備具有容易操作的簡(jiǎn)單的結(jié)構(gòu)。盡管存在與閃速存儲(chǔ)設(shè)備相關(guān)的折衷(trade-offs)問題,但由于閃速存儲(chǔ)設(shè)備典型地具有較低的功率消耗,并且緊湊輕便,還不易被物理碰撞所損害,因此很適宜用于移動(dòng)環(huán)境。這些折衷包括在編程(或重寫)操作之前執(zhí)行擦除操作的要求、對(duì)用以執(zhí)行擦除操作的高電壓(例如12V或20V)的要求,以及必須同時(shí)擦除可能包括幾KB到幾百KB的相對(duì)大的存儲(chǔ)單元的要求。
計(jì)算機(jī)系統(tǒng)(以下簡(jiǎn)稱為“主機(jī)”)通過指定一個(gè)邏輯地址來存取外部存儲(chǔ)設(shè)備。相比物理存儲(chǔ)位置,邏輯地址指的是主機(jī)軟件(即操作系統(tǒng)或應(yīng)用程序)識(shí)別的邏輯存儲(chǔ)空間中的存儲(chǔ)位置。因此,邏輯地址被轉(zhuǎn)化成相應(yīng)于外部存儲(chǔ)設(shè)備中的物理存儲(chǔ)空間的物理地址,以便存取所尋址的物理存儲(chǔ)空間。
典型地,使用閃速存儲(chǔ)器的外部存儲(chǔ)設(shè)備需要被稱為磁盤仿真軟件的附加軟件,以確保在存取操作期間與主機(jī)的兼容性。通過運(yùn)行諸如FTL(閃速翻譯層)之類的文件系統(tǒng),可以實(shí)現(xiàn)存取操作期間在主機(jī)與外部閃速存儲(chǔ)設(shè)備之間的兼容。換句話說,主機(jī)識(shí)別外部閃速存儲(chǔ)設(shè)備為HDD/SRAM,并以與HDD/SRAM相同的方式存取外部閃速存儲(chǔ)設(shè)備。FTL連接閃速存儲(chǔ)卡到PC上的操作系統(tǒng)使用的文件系統(tǒng),并且在重寫之前不擦除存儲(chǔ)單元的情況下,同一地址不允許超過一次的寫操作(即重寫)。
FTL的功能包括邏輯-物理地址映射信息管理、壞塊管理、由于意料不到的斷電情況下的數(shù)據(jù)保存管理、磨損管理(wearing management)等。FTL的主要功能是映射技術(shù)。在題目為“FLASH FILE SYSTEM(閃存文件系統(tǒng))”的美國(guó)專利號(hào)5,404,485、題目為“FLASH FILE SYSTEM OPTIMIZED FORPAGE-MODE FLASH TECHNOLOGIES(為頁(yè)模式閃速技術(shù)優(yōu)化的閃速文件系統(tǒng))”的美國(guó)專利5,937,425,和題目為“METHOD OF DRIVINGREMAPPING IN FLASH MEMORY AND FLASH MEMORYARCHITECTURE SUITABLE THEREOF(驅(qū)動(dòng)閃速存儲(chǔ)器中的重映射的方法和該方法適應(yīng)的閃速存儲(chǔ)器體系結(jié)構(gòu))”的美國(guó)專利6,381,176中公開了映射技術(shù),將其全部?jī)?nèi)容援引于此以供參考。
在閃速存儲(chǔ)器以塊為單元存取時(shí),它被劃分成多個(gè)塊。被順序分配給所劃分成的塊的號(hào)被稱為物理塊號(hào)。用戶可以識(shí)別的所劃分成的塊的虛擬號(hào)被稱為邏輯塊號(hào)。提供邏輯塊號(hào)和物理塊號(hào)之間的映射的方法包括塊映射技術(shù)、扇區(qū)映射技術(shù)和邏輯(log)映射技術(shù)。在使用映射技術(shù)的FTL中,可以在物理上不同的存儲(chǔ)單元存儲(chǔ)邏輯上連續(xù)的地址的數(shù)據(jù)。由于在擦除操作中的數(shù)據(jù)單位一般要大于用于寫(或編程)操作的數(shù)據(jù)單位,因此閃速存儲(chǔ)器典型地需要一個(gè)操作來使得分散在物理上不同的存儲(chǔ)單元的、不擦除的數(shù)據(jù)被收集(即復(fù)制)在同一地址空間中的空閑塊里,如果難以在任何塊中寫入數(shù)據(jù)的話。該操作被稱為歸并操作。
下面將詳細(xì)描述使用上述塊、扇區(qū)和邏輯映射技術(shù)的歸并操作。在描述歸并操作之前,假定將閃速存儲(chǔ)器劃分成多個(gè)存儲(chǔ)塊,并且每個(gè)存儲(chǔ)塊包括多個(gè)頁(yè)(或扇區(qū))?!癙BN”指示物理塊號(hào),“PPN”指示物理頁(yè)號(hào),而“LPN”指示邏輯頁(yè)號(hào)。
塊映射技術(shù)參考圖1A和1B更加完全的描述根據(jù)塊映射技術(shù)的歸并操作。利用塊映射技術(shù)在任何存儲(chǔ)塊中存儲(chǔ)數(shù)據(jù)的情況下,數(shù)據(jù)順序地被存儲(chǔ)在存儲(chǔ)塊的頁(yè)中。在其物理塊號(hào)是“0”的存儲(chǔ)塊(例如PBN2)的第i頁(yè)P(yáng)PNi中更新/重寫數(shù)據(jù)的情況下,首先,存儲(chǔ)在除第i頁(yè)P(yáng)PNi之外的其余頁(yè)中的數(shù)據(jù)被傳輸/復(fù)制到空閑存儲(chǔ)塊(例如PBN3)的相應(yīng)頁(yè)。然后,將存儲(chǔ)在存儲(chǔ)塊PBN2的頁(yè)P(yáng)PNi中的數(shù)據(jù)更新/重寫到存儲(chǔ)塊PBN3的第i頁(yè)。進(jìn)而擦除存儲(chǔ)塊PBN0,并標(biāo)記為空閑存儲(chǔ)塊。如圖1B所示,在完成該歸并操作之后,更新扇區(qū)映射表。換句話說,將相應(yīng)于邏輯存儲(chǔ)塊LBN0的物理存儲(chǔ)塊從PBN2改變成PBN3。按照塊映射技術(shù),無(wú)論存儲(chǔ)數(shù)據(jù)的頁(yè)什么時(shí)候以不同數(shù)據(jù)更新,都必須進(jìn)行上述歸并操作。
扇區(qū)(或頁(yè))映射技術(shù)參照?qǐng)D2A和圖2B更加全面地描述根據(jù)扇區(qū)映射技術(shù)的歸并操作。利用扇區(qū)(或頁(yè))映射技術(shù),將數(shù)據(jù)順序地存儲(chǔ)在存儲(chǔ)塊的頁(yè)中。這里,每一頁(yè)具有與扇區(qū)相同的大小,然而,一頁(yè)可以由多個(gè)扇區(qū)組成。例如,邏輯頁(yè)LPN0中的數(shù)據(jù)存儲(chǔ)在物理頁(yè)P(yáng)PN0中,邏輯頁(yè)LPN1中的數(shù)據(jù)存儲(chǔ)在物理頁(yè)P(yáng)PN1中,而邏輯頁(yè)LPN2中的數(shù)據(jù)存儲(chǔ)在物理頁(yè)P(yáng)PN2中。在更新邏輯頁(yè)LPN1中的數(shù)據(jù)的情況下,邏輯頁(yè)LPN1中的數(shù)據(jù)被存儲(chǔ)到物理頁(yè)P(yáng)PN3中,并且物理頁(yè)P(yáng)PN1被作為存儲(chǔ)無(wú)效數(shù)據(jù)的頁(yè)對(duì)待。另外,在更新邏輯頁(yè)LPN0中的數(shù)據(jù)的情況下,邏輯頁(yè)LPN0中的數(shù)據(jù)被存儲(chǔ)到物理頁(yè)P(yáng)PN4中,并且物理頁(yè)P(yáng)PN01被作為存儲(chǔ)無(wú)效數(shù)據(jù)的頁(yè)(在圖2A中標(biāo)記為“X”)對(duì)待。如果數(shù)據(jù)被存儲(chǔ)在所有頁(yè)中,即,當(dāng)存儲(chǔ)塊PBN0中不存在空閑頁(yè)時(shí),當(dāng)需要對(duì)存儲(chǔ)塊PBN0的寫操作時(shí)就執(zhí)行歸并操作。如圖2A所示,只有存儲(chǔ)塊PBN0(即物理頁(yè)P(yáng)PN2-PPN5)中的有效數(shù)據(jù)被復(fù)制到空閑存儲(chǔ)塊PBN1的相應(yīng)頁(yè)P(yáng)PN10-PPN13中,而需要對(duì)其寫操作的邏輯頁(yè)LPN0中的數(shù)據(jù)被存儲(chǔ)在存儲(chǔ)塊PBN1的物理頁(yè)P(yáng)PN14中。此時(shí),存儲(chǔ)塊PBN1的物理頁(yè)P(yáng)PN0被作為存儲(chǔ)無(wú)效數(shù)據(jù)的頁(yè)(圖2A中標(biāo)記為“X”)對(duì)待。然后,擦除存儲(chǔ)塊PBN0。改變的映射表由FTL管理,如圖2B所示進(jìn)行改變。
邏輯映射技術(shù)下面將參考圖3A到3D更全面地描述使用邏輯映射技術(shù)的歸并操作。利用如圖3A所示的邏輯映射技術(shù),將存儲(chǔ)塊劃分成數(shù)據(jù)域、邏輯(log)域和元域(meta field)。這種映射信息的表由FTL管理。按照邏輯映射技術(shù),將邏輯域的存儲(chǔ)塊分別分配給數(shù)據(jù)域的存儲(chǔ)塊。例如,假定閃速存儲(chǔ)器包括九個(gè)存儲(chǔ)塊PBN0-PBN8。在存儲(chǔ)塊沒有使用的狀態(tài)下,存儲(chǔ)塊PBN0-PBN4被定義為數(shù)據(jù)域,存儲(chǔ)塊PBN5-PBN7被定義為邏輯域,而PBN8被定義為元域。此時(shí),邏輯域的存儲(chǔ)塊PBN5和PBN6被分配給數(shù)據(jù)域的存儲(chǔ)塊PBN0和PBN2,而邏輯域的存儲(chǔ)塊PBN7被分配給空閑存儲(chǔ)塊。在圖3D中示出了上述映射信息表(塊映射表、邏輯塊映射表和邏輯映射表)。每個(gè)存儲(chǔ)塊由多個(gè)頁(yè)(或多個(gè)扇區(qū))構(gòu)成。
在存儲(chǔ)塊PBN0中寫入數(shù)據(jù)的情況下,數(shù)據(jù)被寫入邏輯域的相應(yīng)存儲(chǔ)塊PBN5然后到存儲(chǔ)塊PBN0,而不是直接到存儲(chǔ)塊PBN0。例如,在存儲(chǔ)塊PBN0中寫入相應(yīng)于物理頁(yè)LPN2的數(shù)據(jù)的情況下,數(shù)據(jù)被寫入邏輯域的存儲(chǔ)塊PBN5的物理頁(yè)P(yáng)BN0中。同樣,在存儲(chǔ)塊PBN0中寫入相應(yīng)于物理頁(yè)LPN0的數(shù)據(jù)的情況下,數(shù)據(jù)被寫入邏輯域的存儲(chǔ)塊PBN5中的物理頁(yè)P(yáng)BN1中。在存儲(chǔ)塊PBN1中寫入數(shù)據(jù)的情況下,由于沒有分配邏輯域的存儲(chǔ)塊來相應(yīng)于存儲(chǔ)塊PBN1,因此將執(zhí)行如下歸并操作。
首先,檢查在邏輯域(或數(shù)據(jù)域)中是否存在空閑存儲(chǔ)塊。如果在邏輯域中存在空閑存儲(chǔ)塊(如圖3B所示),則將邏輯域的存儲(chǔ)塊PBN5和PBN6之一中的有效數(shù)據(jù)復(fù)制/轉(zhuǎn)移到邏輯域中的空閑存儲(chǔ)塊PBN7。然后,將相應(yīng)于存儲(chǔ)塊PBN5的數(shù)據(jù)域的存儲(chǔ)塊PBN0中的有效數(shù)據(jù)復(fù)制/轉(zhuǎn)移到存儲(chǔ)塊PBN7。該轉(zhuǎn)移過程圖示在圖3B中。如圖3C所示,在擦除存儲(chǔ)塊PBN0和PBN5之后,將邏輯域的存儲(chǔ)塊PBN5分配給空閑存儲(chǔ)塊,將數(shù)據(jù)域的存儲(chǔ)塊PBN0分配給邏輯域的存儲(chǔ)塊,并將存儲(chǔ)塊PBN7分配給數(shù)據(jù)域的存儲(chǔ)塊。之后,將要寫入存儲(chǔ)塊PBN1的數(shù)據(jù)寫入邏輯域的存儲(chǔ)塊PBN0中。圖3D圖示了上述歸并操作之前和之后的映射表(塊映射、邏輯塊映射和邏輯映射表)。
根據(jù)上面的描述,需要三個(gè)表(即塊映射、邏輯塊映射和邏輯映射表)來依照邏輯映射技術(shù)管理歸并操作。各個(gè)表的映射信息由FTL管理,并存儲(chǔ)在元域的存儲(chǔ)塊PBN8中。
歸并操作之前和之后改變的映射信息的管理遵循FTL映射原則。上述歸并操作按FTL的需要自動(dòng)執(zhí)行,而主機(jī)不識(shí)別執(zhí)行了這種歸并操作。為此,在一個(gè)命令(諸如讀命令)之后,將寫命令或擦除命令輸出到包括閃速存儲(chǔ)器的外部存儲(chǔ)設(shè)備中,并且在經(jīng)過一段時(shí)間之后,當(dāng)沒有接收到對(duì)命令的應(yīng)答時(shí),主機(jī)重置外部存儲(chǔ)設(shè)備。這種操作被稱為“主機(jī)超時(shí)(host time-out)”。主機(jī)超時(shí)的原因之一就是上述歸并操作。隨著存儲(chǔ)塊的大小(或頁(yè)大小)增加,執(zhí)行所述歸并操作所需的時(shí)間也增加。這意味著更頻繁地造成超時(shí)。換句話說,由于在執(zhí)行歸并操作的同時(shí)重置外部存儲(chǔ)設(shè)備,因此可能很難保證外部存儲(chǔ)設(shè)備的可靠性。
發(fā)明內(nèi)容
本發(fā)明的一些實(shí)施例提供了存儲(chǔ)系統(tǒng)和控制閃速存儲(chǔ)器的方法,所述閃速存儲(chǔ)器響應(yīng)于接收針對(duì)閃速存儲(chǔ)器的命令來執(zhí)行增量歸并操作(incremental merge operation)的多個(gè)歸并階段之一。執(zhí)行多個(gè)歸并階段之一可以包括接收針對(duì)閃速存儲(chǔ)器的命令;確定閃速存儲(chǔ)器是否正在執(zhí)行增量歸并操作;以及如果該閃速存儲(chǔ)器正在執(zhí)行增量歸并操作則執(zhí)行增量歸并操作的下一歸并階段。
在本發(fā)明另一個(gè)實(shí)施例中,如果閃速存儲(chǔ)器不是正在執(zhí)行增量歸并操作或者如果接收到的命令是讀取命令,則執(zhí)行接收到的命令。如果閃速存儲(chǔ)器正在執(zhí)行增量歸并操作,則存儲(chǔ)將要后續(xù)寫入到閃速存儲(chǔ)器的數(shù)據(jù)。還給主處理器提供已經(jīng)完成命令的應(yīng)答。
在本發(fā)明的又一個(gè)實(shí)施例中,如果增量歸并操作已經(jīng)完成,則確定關(guān)于增量歸并操作是否已完成以及存儲(chǔ)的數(shù)據(jù)是否已經(jīng)寫入到閃速存儲(chǔ)器。
在本發(fā)明再一個(gè)實(shí)施例中,確定閃速存儲(chǔ)器是否正在執(zhí)行增量歸并操作包括評(píng)估歸并狀態(tài)信息。歸并狀態(tài)信息也響應(yīng)于執(zhí)行下一歸并階段而更新。
本發(fā)明的特定實(shí)施例包括確定是否需要增量歸并操作來執(zhí)行接收到的命令,如果需要增量歸并操作則執(zhí)行增量歸并操作的第一歸并階段??梢曰谑欠裨陂W速存儲(chǔ)器的至少一個(gè)存儲(chǔ)塊中存在空閑頁(yè)確定是否需要增量歸并操作來執(zhí)行接收到的命令。另外,確定閃速存儲(chǔ)器是否正在執(zhí)行增量歸并操作可以包括評(píng)估歸并狀態(tài)信息;并且該歸并狀態(tài)信息可以響應(yīng)于執(zhí)行第一歸并階段而更新。
本發(fā)明的再一個(gè)實(shí)施例包括確定增量歸并操作是否已經(jīng)完成,如果該增量歸并操作已經(jīng)完成則重置歸并狀態(tài)信息??赏ㄟ^確定有效數(shù)據(jù)的復(fù)制是否已經(jīng)完成來確定增量歸并操作是否已經(jīng)完成。還可以通過確定增量歸并操作的所有歸并階段是否都已經(jīng)完成來確定該增量歸并操作是否已經(jīng)完成。
本發(fā)明的一些實(shí)施例提供了通過將歸并操作劃分為多個(gè)歸并階段來控制閃速存儲(chǔ)器的方法和系統(tǒng)。每個(gè)歸并階段在主處理器的超時(shí)時(shí)間內(nèi)完成。響應(yīng)于從主處理器接收命令執(zhí)行相應(yīng)的一個(gè)歸并階段。根據(jù)歸并操作是否在進(jìn)行中來選擇性地執(zhí)行從主處理器接收到的命令,并且將已經(jīng)完成該接收到的命令的應(yīng)答提供給主處理器,從而在主處理器的超時(shí)時(shí)間內(nèi)向主處理器提供應(yīng)答。
如果接收到的命令是讀命令,則可以通過執(zhí)行讀操作來提供選擇性地執(zhí)行該接收到的命令,而如果接收到的命令是寫命令并且歸并操作正在進(jìn)行中,則存儲(chǔ)用于寫命令的數(shù)據(jù)。另外,如果該歸并操作已經(jīng)完成,則可以確定歸并操作已經(jīng)完成并且存儲(chǔ)的數(shù)據(jù)寫入閃速存儲(chǔ)器。
在本發(fā)明的再一個(gè)實(shí)施例中,執(zhí)行相應(yīng)的一個(gè)歸并階段包括確定是否接受到的命令導(dǎo)致歸并操作;并且如果接受到的命令導(dǎo)致歸并操作,則執(zhí)行多個(gè)歸并階段中的第一個(gè)。執(zhí)行各個(gè)歸并階段還可以包括根據(jù)歸并階段信息確定是否歸并操作在進(jìn)行中;確定多個(gè)歸并階段的下一歸并階段;執(zhí)行多個(gè)歸并階段的下一歸并階段;以及更新歸并階段信息以反映下一歸并階段的執(zhí)行。
圖1A到3D是描述常規(guī)歸并方法的視圖;圖4是圖示根據(jù)本發(fā)明的一些實(shí)施例的存儲(chǔ)系統(tǒng)的概略框圖;和圖5是用于描述根據(jù)本發(fā)明的一些實(shí)施例的增量歸并方法的流程圖。
具體實(shí)施例方式
現(xiàn)在參考伴隨的附圖更加全面地描述本發(fā)明,所述附示了本發(fā)明的實(shí)施例。然而,本發(fā)明可以以不同的形式實(shí)施而并不限于這里所示的實(shí)施例。再者,提供這些實(shí)施例使得本公開充分和完整,并且完全地將本發(fā)明的范圍轉(zhuǎn)達(dá)給本領(lǐng)域技術(shù)人員。在附圖中,為清楚起見,層和區(qū)域的大小或厚度被放大。相同的數(shù)字索引相同的元件。這里所用的術(shù)語(yǔ)“和/或”包括相關(guān)的所列術(shù)語(yǔ)的一個(gè)或多個(gè)中的任意一個(gè)和全部組合,也可以簡(jiǎn)寫為“/”。
應(yīng)當(dāng)理解,盡管這里使用術(shù)語(yǔ)“第一”和“第二”來描述各種元件、成份、區(qū)域、層和/或扇區(qū),但這些元件、成份、區(qū)域、層和/或扇區(qū)并不限于這些術(shù)語(yǔ)。這些術(shù)語(yǔ)僅僅是用來區(qū)分一個(gè)元件、成份、區(qū)域、層或扇區(qū)與另一個(gè)元件、成份、區(qū)域、層或扇區(qū)。因此,以下討論的第一元件、成份、區(qū)域、層或扇區(qū)可以稱為第二元件、成份、區(qū)域、層或扇區(qū),這同樣沒有背離本發(fā)明的教導(dǎo)。
這里所用的術(shù)語(yǔ)僅僅是為了描述特定實(shí)施例的目的,并不是對(duì)本發(fā)明的限制。如在本文所用的,單數(shù)形式的“一個(gè)”和“這個(gè)”也包括復(fù)數(shù)形式,除非本文中另外指出。還應(yīng)當(dāng)理解,在本文中使用的術(shù)語(yǔ)“包含”指的是所述特征、整數(shù)、步驟、操作、元件、和/或成分的存在,而不排除一種或多種另外的特征、整數(shù)、步驟、操作、元件、成分和/或其組合的存在或添加。
應(yīng)當(dāng)理解,如果這里使用特定的邏輯極性來描述本發(fā)明的實(shí)施例,則相反的邏輯極性也可以用來描述本發(fā)明。
除非另有限定,這里所用的所有術(shù)語(yǔ)(包括技術(shù)和科學(xué)術(shù)語(yǔ))具有本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員通常理解的含義。還應(yīng)當(dāng)理解一些術(shù)語(yǔ),諸如在常用詞典中限定的那些術(shù)語(yǔ)應(yīng)當(dāng)被翻譯成具有與它們?cè)谙嚓P(guān)領(lǐng)域中的含義一致的含義,而不應(yīng)但被翻譯成理想化的或過度的形式,除非這里另有限定。
在本發(fā)明的一些實(shí)施例中,當(dāng)從主機(jī)接收命令時(shí),確定歸并操作是否必須執(zhí)行,如果是,則增量地執(zhí)行歸并操作。換句話說,在輸入命令的周期中,歸并操作不結(jié)束,而是在后續(xù)接收到的命令的周期中部分地或增量地執(zhí)行。因此,在執(zhí)行了所接收到的命令之后的剩余時(shí)間段內(nèi)部分地執(zhí)行歸并操作,下面將更詳細(xì)地進(jìn)行描述。因此,盡管歸并操作所需的時(shí)間可以超過主機(jī)的超時(shí)時(shí)間,但通過本發(fā)明的增量/部分歸并操作,有可能逃避主機(jī)的超時(shí)時(shí)間。
圖4是圖示根據(jù)本發(fā)明的一些實(shí)施例的存儲(chǔ)系統(tǒng)的示意框圖。參考圖4,根據(jù)本發(fā)明的一些實(shí)施例的存儲(chǔ)系統(tǒng)1000包括主機(jī)100和外部存儲(chǔ)設(shè)備200。外部存儲(chǔ)設(shè)備200包括接口設(shè)備300和閃速存儲(chǔ)器400。當(dāng)主機(jī)100需要存取閃速存儲(chǔ)器400時(shí),接口設(shè)備300控制閃速存儲(chǔ)器400。例如,接口設(shè)備300控制閃速存儲(chǔ)器400的讀/寫/擦除操作。接口設(shè)備300管理閃速存儲(chǔ)器400的映射信息,以便主機(jī)100將閃速存儲(chǔ)器400用作像SRAM/HDD一樣自由地實(shí)現(xiàn)讀/寫/擦除操作的介質(zhì)。
接口設(shè)備300包括主機(jī)接口310、CPU 320、工作存儲(chǔ)器330、緩沖存儲(chǔ)器340和閃存控制器350。主機(jī)接口310提供外部存儲(chǔ)設(shè)備200和主機(jī)100之間的接口功能,CPU 320控制外部存儲(chǔ)設(shè)備200的全部操作。工作存儲(chǔ)器330用來存儲(chǔ)執(zhí)行FTL功能所需的軟件。工作存儲(chǔ)器330還用來存儲(chǔ)閃速存儲(chǔ)器400的映射信息。閃速存儲(chǔ)器400的映射信息存儲(chǔ)在閃速存儲(chǔ)器400的區(qū)域(例如元域)中,并在加電(power-up)時(shí)自動(dòng)裝載到工作存儲(chǔ)器330上。同樣,實(shí)現(xiàn)FTL功能所需的軟件存儲(chǔ)在閃速存儲(chǔ)器400的區(qū)域(例如引導(dǎo)碼區(qū)域)中,并在加電時(shí)自動(dòng)地裝載到工作存儲(chǔ)器330上。
在本發(fā)明的一些實(shí)施例中,指示增量歸并狀態(tài)的歸并狀態(tài)信息也存儲(chǔ)在工作存儲(chǔ)器330中。在從主機(jī)100發(fā)送諸如讀命令、寫命令或擦除命令之類的命令時(shí),CPU 320參考工作存儲(chǔ)器330中的歸并狀態(tài)信息,并控制如下所述的增量歸并方案。使用緩沖存儲(chǔ)器340來存儲(chǔ)用于在閃速存儲(chǔ)器400中存儲(chǔ)數(shù)據(jù)或從閃速存儲(chǔ)器400中讀取數(shù)據(jù)的數(shù)據(jù)。例如,緩沖存儲(chǔ)器340可以具有相應(yīng)于閃速存儲(chǔ)器400的頁(yè)大小的存儲(chǔ)容量。工作存儲(chǔ)器320和緩沖存儲(chǔ)器330都可以以易失性存儲(chǔ)器(諸如SRAM)來提供。閃存控制器350被構(gòu)造成可以在CPU 320的控制下,控制閃速存儲(chǔ)器400的存取操作,諸如讀、寫和擦除操作。
盡管在這里作為分離的存儲(chǔ)器進(jìn)行了描述,但可以以一個(gè)存儲(chǔ)器(諸如SRAM)提供工作存儲(chǔ)器330和緩沖存儲(chǔ)器340,以便執(zhí)行這里參照兩個(gè)存儲(chǔ)器所描述的相同的功能。
閃速存儲(chǔ)器400包括存儲(chǔ)單元陣列,所述存儲(chǔ)單元陣列包括多個(gè)存儲(chǔ)塊。每個(gè)存儲(chǔ)塊包括多個(gè)頁(yè)。每一頁(yè)相應(yīng)于一個(gè)或多個(gè)扇區(qū)。在本發(fā)明的一些實(shí)施例中,如上所述,存儲(chǔ)單元陣列的存儲(chǔ)塊被劃分成數(shù)據(jù)域、邏輯域和元域。同樣,存儲(chǔ)單元陣列還包括存儲(chǔ)引導(dǎo)代碼和/或FTL的存儲(chǔ)塊。然而,閃速存儲(chǔ)器400的陣列架構(gòu)不限于這里所描述的架構(gòu)。換句話說,存儲(chǔ)單元陣列的架構(gòu)可以依據(jù)FTL的映射技術(shù)進(jìn)行修改。
圖5是說明關(guān)于根據(jù)本發(fā)明的某些實(shí)施例的增量歸并的操作的流程圖。如圖1至3所述,可以使用諸如塊映射技術(shù)、扇區(qū)映射技術(shù)或邏輯映射技術(shù)之類的各種映射技術(shù)來執(zhí)行歸并操作。將根據(jù)本發(fā)明的某些實(shí)施例的歸并方法應(yīng)用到外部存儲(chǔ)設(shè)備,并可以與應(yīng)用到外部存儲(chǔ)設(shè)備的不同映射技術(shù)一起利用。下面將基于應(yīng)用邏輯映射技術(shù)的存儲(chǔ)系統(tǒng)更加完整地描述根據(jù)本發(fā)明的某些實(shí)施例的增量歸并方法。圖3A到圖3D描述了使用邏輯映射技術(shù)的傳統(tǒng)歸并方法,而根據(jù)本發(fā)明的某些實(shí)施例的總體歸并操作是以與傳統(tǒng)歸并操作相同的方式執(zhí)行的。
如圖5所示,讀、寫或擦除命令從主機(jī)100發(fā)送到外部存儲(chǔ)設(shè)備200(方框S100)。在接收到命令時(shí),由CPU 320基于工作存儲(chǔ)器330中的歸并狀態(tài)信息做出關(guān)于外部存儲(chǔ)設(shè)備200是否處于增量歸并狀態(tài)的判斷(方框S110)。如果外部存儲(chǔ)設(shè)備200不處于增量歸并狀態(tài)(方框S110),則做出所接收到的命令是否導(dǎo)致正在被執(zhí)行的、針對(duì)在邏輯域中的存儲(chǔ)塊的歸并操作的判斷(S120)。可以根據(jù)在邏輯域的存儲(chǔ)塊中存在空閑頁(yè)來確定是否將執(zhí)行歸并操作??梢岳糜成浔泶_定邏輯域的存儲(chǔ)塊中是否存在空閑頁(yè)。在其上實(shí)現(xiàn)歸并操作的空閑頁(yè)的閾值數(shù)可以依據(jù)具體的應(yīng)用改變。例如,歸并操作可以在存儲(chǔ)塊中存在一個(gè)空閑頁(yè)時(shí)執(zhí)行??臻e頁(yè)數(shù)可以根據(jù)閃速存儲(chǔ)容量和應(yīng)用本歸并模式的存儲(chǔ)系統(tǒng)進(jìn)行改變。
如果不需要?dú)w并操作(方框S120),則執(zhí)行相應(yīng)于所接收到的命令的操作(方框S130)。在執(zhí)行完相應(yīng)于所接收到的命令的操作之后,外部存儲(chǔ)設(shè)備200通知主機(jī)100,已經(jīng)完成相應(yīng)于所接收到的命令的操作。本領(lǐng)域普通技術(shù)人員也應(yīng)該理解,如果在諸如超時(shí)時(shí)間的給定時(shí)間內(nèi)執(zhí)行了相應(yīng)于所接收到的命令的操作,則主機(jī)不超時(shí)。如果在超時(shí)時(shí)間內(nèi)沒有執(zhí)行相應(yīng)于所接收到的命令的操作,則主機(jī)超時(shí)并重置外部存儲(chǔ)設(shè)備200。
返回到方框S120,如果所述命令導(dǎo)致正在執(zhí)行的針對(duì)存儲(chǔ)塊的歸并操作,則執(zhí)行增量歸并操作的第一階段(方框S150_1)。如上所述,歸并操作至少劃分成兩個(gè)階段。例如,根據(jù)邏輯映射技術(shù)的歸并方法一般包括準(zhǔn)備空閑存儲(chǔ)塊;將邏輯域的存儲(chǔ)塊中的有效數(shù)據(jù)復(fù)制到空閑存儲(chǔ)塊中;將數(shù)據(jù)域的存儲(chǔ)塊中的有效數(shù)據(jù)復(fù)制到空閑存儲(chǔ)塊中;以及更新映射信息。將有效數(shù)據(jù)復(fù)制到空閑存儲(chǔ)塊可以基于閃速存儲(chǔ)器的頁(yè)大小劃分成兩個(gè)或多個(gè)步驟。
在本發(fā)明的具體實(shí)施例中,第一個(gè)階段包括準(zhǔn)備空閑存儲(chǔ)塊;將邏輯域的存儲(chǔ)塊中的有效數(shù)據(jù)復(fù)制到空閑存儲(chǔ)塊,而第二階段包括將數(shù)據(jù)域的存儲(chǔ)塊中的有效數(shù)據(jù)復(fù)制到空閑存儲(chǔ)塊中;以及更新映射信息。考慮到歸并操作復(fù)制有效數(shù)據(jù)到空閑存儲(chǔ)塊,隨著存儲(chǔ)塊大小或容量增加,復(fù)制有效數(shù)據(jù)所需的時(shí)間也增加。在這種情況下,增量歸并操作的階段數(shù)也可能增加,以使得每個(gè)階段都在主機(jī)的超時(shí)時(shí)間內(nèi)完成。因此,根據(jù)本發(fā)明的實(shí)施例的增量歸并操作以兩個(gè)或多個(gè)階段實(shí)現(xiàn)。
在增量歸并操作的第一階段(方框S150_1)之后,在工作存儲(chǔ)器330中更新歸并狀態(tài)信息,以指示將要執(zhí)行的歸并操作的下一階段。在完成增量歸并操作的第一階段之后,確定增量歸并操作是否完成(方框S160)。例如,當(dāng)階段S150_1至階段S150_n全部執(zhí)行后,可以確定增量歸并操作已經(jīng)完成。如果歸并操作沒有完成(方框S160),操作以相應(yīng)于執(zhí)行所接收到的命令的操作繼續(xù)(方框S130),并且外部存儲(chǔ)器210通知主機(jī)100與所接收到的命令相應(yīng)的操作已經(jīng)完成。如果歸并操作已經(jīng)完成(方框S160),則重置工作存儲(chǔ)器330中的歸并狀態(tài)信息值,以指示增量歸并操作已經(jīng)完成或結(jié)束(方框S170)。換句話說,外部存儲(chǔ)設(shè)備200從增量歸并狀態(tài)中釋放出來。還執(zhí)行相應(yīng)于所接收到的命令的操作(方框S130),并且外部存儲(chǔ)設(shè)備200通知主機(jī)100相應(yīng)于所接收到的命令的操作已經(jīng)完成。
當(dāng)后續(xù)命令從主機(jī)100發(fā)送到外部存儲(chǔ)設(shè)備200時(shí),CPU 320根據(jù)在工作存儲(chǔ)器320中的歸并狀態(tài)信息判斷外部存儲(chǔ)設(shè)備200是否處在增量歸并狀態(tài)(方框S110)。由于增量歸并操作的第一階段已經(jīng)作為前面輸入的命令的結(jié)果被執(zhí)行,外部存儲(chǔ)設(shè)備200處于增量歸并狀態(tài),并且CPU 320根據(jù)工作存儲(chǔ)器330中的歸并狀態(tài)信息判斷將要執(zhí)行的增量歸并操作的下一階段(方框S140)。然后執(zhí)行增量歸并操作的下一階段(方框S150_2到方框S150_n之一)。在以上述相同的方式完成下一階段之后,更新工作存儲(chǔ)器330中的歸并狀態(tài)信息,以指示增量歸并操作的下一階段。然后判斷增量歸并操作是否已經(jīng)完成(方框S160)。如果增量操作沒有完成(方框S160),則操作以相應(yīng)于執(zhí)行所接收到的命令的操作繼續(xù)(方框S130),并且外部存儲(chǔ)設(shè)備200通知主機(jī)相應(yīng)于接收到的命令的操作被完成。如果歸并操作已經(jīng)完成(方框S160),則重置工作存儲(chǔ)器330中的歸并狀態(tài)信息值,以指明增量歸并操作已經(jīng)完成或結(jié)束(方框S170)。換句話說,外部存儲(chǔ)設(shè)備200從增量歸并狀態(tài)釋放。還執(zhí)行相應(yīng)于接收到的命令的操作(方框S130),并且外部存儲(chǔ)設(shè)備200通知主機(jī)100相應(yīng)于接收到的命令的操作已經(jīng)完成。對(duì)每個(gè)接收到的命令重復(fù)這些操作直到增量歸并操作完成。
一旦外部存儲(chǔ)設(shè)備200進(jìn)入增量歸并狀態(tài),它就保持在歸并狀態(tài)直到增量歸并操作的所有階段都被執(zhí)行??梢砸詭追N不同的方式判斷增量歸并操作是否已經(jīng)完成。例如,可以根據(jù)有效數(shù)據(jù)是否已經(jīng)被全部復(fù)制到空閑存儲(chǔ)塊中來判斷增量歸并操作是否已經(jīng)結(jié)束。在這種情況下,外部存儲(chǔ)設(shè)備200推出增量歸并狀態(tài)。也可以通過使用工作存儲(chǔ)器330中的歸并狀態(tài)信息判斷增量歸并操作是否已經(jīng)完成。也可以使用判斷增量歸并操作是否已經(jīng)完成的其他技術(shù)。
相應(yīng)于所接收到的、在方框S130執(zhí)行的命令的操作可以根據(jù)接收到的命令和外部存儲(chǔ)設(shè)備200是否處在歸并狀態(tài)而改變。當(dāng)接收到的命令是讀或擦除命令時(shí),則不論增量歸并操作是否正在被執(zhí)行都執(zhí)行相應(yīng)于接收到的命令的操作。CPU 320可以知道受歸并操作影響的地址,并且可以相應(yīng)地執(zhí)行讀或擦除操作。因此,例如,如果歸并操作處于進(jìn)行中(即外部存儲(chǔ)設(shè)備200處于歸并狀態(tài)),那么,CPU 320可以根據(jù)將要讀取的有效數(shù)據(jù)被存儲(chǔ)的地方,從工作存儲(chǔ)器330、緩沖存儲(chǔ)器340和閃速存儲(chǔ)器400中的適當(dāng)一個(gè)中讀取數(shù)據(jù)。
當(dāng)所接收到的命令是寫命令時(shí),如果增量歸并操作正在執(zhí)行,則延遲對(duì)閃速存儲(chǔ)器的相應(yīng)寫,直到所述歸并操作完成為止。然而,外部存儲(chǔ)設(shè)備200可以用信號(hào)通知主機(jī)100命令已經(jīng)完成。雖然對(duì)所接收到的命令寫的相應(yīng)操作不是立即執(zhí)行,但是與寫命令一起收到的數(shù)據(jù)臨時(shí)存儲(chǔ)在緩沖存儲(chǔ)器340中,以便當(dāng)歸并操作完成時(shí)被寫入,并且外部存儲(chǔ)設(shè)備200應(yīng)答主機(jī)100以便主機(jī)100不超時(shí)。執(zhí)行增量歸并操作的歸并階段,但延遲寫操作,直到歸并操作完成。如果接收到下一寫命令,則執(zhí)行增量歸并操作的下一階段。與后續(xù)寫命令一起接收到的數(shù)據(jù)也臨時(shí)存儲(chǔ)在緩沖存儲(chǔ)器340中,并且外部存儲(chǔ)設(shè)備200應(yīng)答主機(jī)100以便主機(jī)100不超時(shí)。這些操作可以重復(fù)兩次或多次,直到緩沖存儲(chǔ)器340填滿要被寫的數(shù)據(jù),或者,在所述增量歸并操作完成之后寫入所述數(shù)據(jù)。在增量歸并操作已經(jīng)完成之后,將存儲(chǔ)在緩沖存儲(chǔ)器340中的數(shù)據(jù)存儲(chǔ)到閃速存儲(chǔ)器400中。
因此,執(zhí)行圖5的操作時(shí)的接口設(shè)備300的各種元件可以提供用于將歸并操作劃分成多個(gè)歸并階段的裝置,其中每個(gè)歸并階段在主處理器的超時(shí)時(shí)間內(nèi)結(jié)束;用于響應(yīng)于從主處理器接收命令來執(zhí)行相應(yīng)的一個(gè)歸并階段的裝置;用于基于歸并操作是否處于進(jìn)行中來有選擇性地執(zhí)行從主處理器中接收到的命令的裝置;以及用于應(yīng)答主處理器所接收到的命令已經(jīng)完成,以便在主處理器的超時(shí)時(shí)間內(nèi),向主處理器提供應(yīng)答的裝置。
雖然根據(jù)本發(fā)明的某些實(shí)施例的操作已經(jīng)響應(yīng)于接收命令進(jìn)行了描述,但在本發(fā)明的某些實(shí)施例中還可以利用定時(shí)器,以使得如果在定時(shí)時(shí)間段內(nèi)沒有從主機(jī)100接收到命令,則執(zhí)行下一歸并階段。因此,即使沒有接收到命令,歸并操作也可以完成。定時(shí)器可以在接收到命令時(shí)復(fù)位。
雖然本發(fā)明已經(jīng)參考其特殊實(shí)施例進(jìn)行了特別的圖示和描述,但本發(fā)明領(lǐng)域普通技術(shù)人員應(yīng)該理解,形式和細(xì)節(jié)上的各種改變都可以從這里產(chǎn)生。
權(quán)利要求
1.一種控制閃速存儲(chǔ)器的方法,包括響應(yīng)于接收針對(duì)閃速存儲(chǔ)器的命令來執(zhí)行增量歸并操作的多個(gè)歸并階段之一。
2.如權(quán)利要求1的方法,其中執(zhí)行多個(gè)歸并階段之一包括接收針對(duì)閃速存儲(chǔ)器的命令;確定閃速存儲(chǔ)器是否正在執(zhí)行增量歸并操作;以及如果閃速存儲(chǔ)器正在執(zhí)行增量歸并操作,則執(zhí)行所述增量歸并操作的下一歸并階段。
3.如權(quán)利要求2的方法,還包括如果閃速存儲(chǔ)器不是正在執(zhí)行增量歸并操作,或者所接收到的命令是讀命令,則執(zhí)行所接收到的命令;如果閃速存儲(chǔ)器正在執(zhí)行增量歸并操作,則存儲(chǔ)將要后續(xù)寫入閃速存儲(chǔ)器的數(shù)據(jù);以及應(yīng)答主處理器所述命令已經(jīng)完成。
4.如權(quán)利要求3的方法,還包括確定所述增量歸并操作是否已經(jīng)完成;以及如果所述增量歸并操作已經(jīng)完成,則將所存儲(chǔ)的數(shù)據(jù)寫入閃速存儲(chǔ)器。
5.如權(quán)利要求2的方法,其中,確定閃速存儲(chǔ)器是否正在執(zhí)行增量歸并操作包括估算歸并狀態(tài)信息,所述方法還包括響應(yīng)于執(zhí)行所述下一歸并階段,更新所述歸并狀態(tài)信息。
6.如權(quán)利要求3的方法,還包括確定是否需要增量歸并操作來執(zhí)行所接收到的命令;以及如果需要增量歸并操作,則執(zhí)行所述增量歸并操作的第一歸并階段。
7.如權(quán)利要求6的方法,其中,確定閃速存儲(chǔ)器是否正在執(zhí)行增量歸并操作包括估算歸并狀態(tài)信息,所述方法還包括響應(yīng)于執(zhí)行所述第一歸并階段,更新所述歸并狀態(tài)信息。
8.如權(quán)利要求5的方法,還包括確定所述增量歸并操作是否已經(jīng)完成;以及如果所述增量歸并操作已經(jīng)完成,則重置所述歸并狀態(tài)信息。
9.如權(quán)利要求8的方法,其中,通過確定有效數(shù)據(jù)的復(fù)制是否已經(jīng)完成來確定所述增量歸并操作是否已經(jīng)完成。
10.如權(quán)利要求8的方法,其中,通過確定所述增量歸并操作的所有歸并階段是否已經(jīng)完成來確定所述增量歸并操作是否已經(jīng)完成。
11.如權(quán)利要求6的方法,其中,基于是否在閃速存儲(chǔ)器的至少一個(gè)存儲(chǔ)塊中存在空閑頁(yè)確定是否需要增量歸并操作來執(zhí)行所接收到的命令。
12.一種控制閃速存儲(chǔ)器的方法,包括將歸并操作劃分為多個(gè)歸并階段,其中每個(gè)歸并階段在主處理器的超時(shí)時(shí)間內(nèi)完成;響應(yīng)于從主處理器接收命令,執(zhí)行相應(yīng)的一個(gè)歸并階段;基于歸并操作是否處于進(jìn)行中,來選擇性地執(zhí)行從主處理器接收到的命令;以及應(yīng)答主處理器所收到的命令已經(jīng)完成,以便在主處理器的超時(shí)時(shí)間內(nèi)向主處理器提供應(yīng)答。
13.如權(quán)利要求12的方法,其中選擇性地執(zhí)行所接收到的命令包括如果所接收到的命令是讀命令,則執(zhí)行讀操作;以及如果所接收到的命令是寫命令并且歸并操作處于進(jìn)行中,則存儲(chǔ)用于寫命令的數(shù)據(jù)。
14.如權(quán)利要求13的方法,還包括確定歸并操作是否已經(jīng)完成;以及如果歸并操作已經(jīng)完成,則將所存儲(chǔ)的數(shù)據(jù)寫入閃速存儲(chǔ)器。
15.如權(quán)利要求12的方法,其中執(zhí)行相應(yīng)的一個(gè)歸并階段包括確定所接收到的命令是否導(dǎo)致歸并操作;以及如果所接收到的命令導(dǎo)致歸并操作,則執(zhí)行多個(gè)歸并階段的第一個(gè)。
16.如權(quán)利要求15的方法,其中執(zhí)行相應(yīng)的一個(gè)歸并階段還包括基于歸并階段信息確定歸并操作是否處于進(jìn)行中;確定多個(gè)歸并階段的下一歸并階段;執(zhí)行多個(gè)歸并階段的該下一歸并階段;以及更新歸并階段信息以反映下一歸并階段的執(zhí)行。
17.一種存儲(chǔ)系統(tǒng),包括閃速存儲(chǔ)器;以及接口設(shè)備,配置成響應(yīng)于從主處理器接收命令來執(zhí)行增量歸并操作的多個(gè)歸并階段之一。
18.權(quán)利要求17的系統(tǒng),其中接口設(shè)備還被配置成從主處理器接收命令;確定存儲(chǔ)系統(tǒng)是否正在執(zhí)行增量歸并操作;以及如果存儲(chǔ)系統(tǒng)正在執(zhí)行增量歸并操作,則執(zhí)行增量歸并操作的下一歸并階段。
19.如權(quán)利要求18的系統(tǒng),其中接口設(shè)備還被配置成如果存儲(chǔ)系統(tǒng)不是正在執(zhí)行增量歸并操作,或所接收到的命令是讀命令,則執(zhí)行所接收到的命令;如果存儲(chǔ)系統(tǒng)正在執(zhí)行增量歸并操作,則在緩沖存儲(chǔ)器中存儲(chǔ)用于以后寫入閃速存儲(chǔ)器的數(shù)據(jù);以及應(yīng)答主處理器所述命令已經(jīng)完成。
20.如權(quán)利要求19的系統(tǒng),其中接口設(shè)備還被配置成確定增量歸并操作是否已經(jīng)完成;并且如果增量歸并操作已經(jīng)完成,則將所存儲(chǔ)的數(shù)據(jù)寫入閃速存儲(chǔ)器。
21.如權(quán)利要求18的系統(tǒng),其中接口設(shè)備還被配置成通過估算存儲(chǔ)在工作存儲(chǔ)器中的歸并狀態(tài)信息來確定閃速存儲(chǔ)器是否正在執(zhí)行增量歸并操作;并響應(yīng)于執(zhí)行下一歸并階段來更新歸并狀態(tài)信息。
22.如權(quán)利要求19的系統(tǒng),其中接口設(shè)備還被配置成確定是否需要增量歸并操作來執(zhí)行所接收到的命令;并且如果需要增量歸并操作,則執(zhí)行增量歸并操作的第一歸并階段。
23.權(quán)利要求22的系統(tǒng),其中接口設(shè)備還被配置成通過估算工作存儲(chǔ)器中的歸并狀態(tài)信息來確定閃速存儲(chǔ)器是否正在執(zhí)行增量歸并操作;并且響應(yīng)于執(zhí)行第一歸并階段來更新歸并狀態(tài)信息。
24.如權(quán)利要求21的系統(tǒng),其中該接口裝置還被配置成確定增量歸并操作是否已經(jīng)完成;并且如果增量歸并操作已經(jīng)完成,則重置歸并狀態(tài)信息。
25.如權(quán)利要求24的系統(tǒng),其中,接口設(shè)備還被配置成通過確定有效數(shù)據(jù)的復(fù)制是否已經(jīng)完成來確定增量歸并操作是否已經(jīng)完成。
26.如權(quán)利要求24的系統(tǒng),其中,該接口設(shè)備還被配置成通過確定所述增量歸并操作的所有歸并階段是否已經(jīng)完成來確定所述增量歸并操作是否已經(jīng)完成。
27.如權(quán)利要求22的系統(tǒng),其中,該接口設(shè)備還被配置成基于是否在所述閃速存儲(chǔ)器的至少一個(gè)存儲(chǔ)塊中存在空閑頁(yè)來確定是否需要增量歸并操作來執(zhí)行接收到的命令。
28.一種控制閃速存儲(chǔ)器的系統(tǒng),包括用于將歸并操作劃分成多個(gè)歸并階段的裝置,其中每個(gè)歸并階段都在主處理器的超時(shí)時(shí)間內(nèi)完成;用于響應(yīng)于從主處理器接收命令來執(zhí)行相應(yīng)的一個(gè)歸并階段的裝置;用于基于歸并操作是否處于進(jìn)行中來選擇性地執(zhí)行從主處理器中接收到的命令的裝置;以及應(yīng)答主處理器所接收到的命令已經(jīng)完成以便在主處理器的超時(shí)時(shí)間內(nèi)向主處理器提供應(yīng)答的裝置。
全文摘要
本發(fā)明提供一種控制閃速存儲(chǔ)器的存儲(chǔ)系統(tǒng)和方法,其響應(yīng)于接收到針對(duì)閃速存儲(chǔ)器的命令來執(zhí)行增量歸并操作的多個(gè)歸并階段之一。執(zhí)行多個(gè)歸并階段之一可以包括接收針對(duì)閃速存儲(chǔ)器的命令;確定閃速存儲(chǔ)器是否正在執(zhí)行增量歸并操作;以及如果閃速存儲(chǔ)器正在執(zhí)行增量歸并操作,則執(zhí)行所述增量歸并操作的下一歸并階段。
文檔編號(hào)G11C16/02GK1722109SQ20051007942
公開日2006年1月18日 申請(qǐng)日期2005年6月21日 優(yōu)先權(quán)日2004年6月30日
發(fā)明者金辰赫, 樸贊益, 金榮坤, 金敬愛 申請(qǐng)人:三星電子株式會(huì)社