專利名稱:半導體存儲裝置的制作方法
技術領域:
本實施方式涉及半導體存儲裝置。
背景技術:
近年,使用了 NAND閃存的所謂SSD (Solid State Drive 固態(tài)硬盤)的存儲裝置出現,并在便攜設備、筆記本電腦、企業(yè)級服務器等廣泛的范圍內得到普及。NAND閃存作為半導體存儲器具有低成本、大容量的特點。但是,NAND閃存需要在寫入前進行擦除動作,存在有改寫(擦除)次數上有限制 (例如1萬次左右)的問題。另外,寫入必須以頁面為單位(例如I字節(jié)),擦除必須以塊為單位(例如IM字節(jié))來進行。為了解決上述問題,在以SSD為代表的使用了 NAND閃存的存儲裝置中采取了各種各樣的對策。SSD具有控制器、工作存儲器(work memory)和儲存存儲器(storagememory)??刂破鬟M行與來自主機(PC等)的指令的交互。儲存存儲器例如為NAND閃存,存儲來自主機的數據。工作存儲器例如為SRAM或DRAM。另外,在工作存儲器上,容納有數據緩沖區(qū)、頁面單位的邏輯/物理地址變換表、塊單位的邏輯/物理地址變換表、空閑塊列表等。在SSD中,主要的控制的起點為來自主機的存取指令的發(fā)出。首先,控制器將主機指令的地址(邏輯地址)變換為儲存存儲器的地址(物理地址)而實現數據存取。這是因為考慮到在NAND閃存中對相同的地址進行改寫時需要進行擦除,并且改寫次數有限制。在邏輯/物理地址變換中,若只以頁面單位(例如,I字節(jié))進行地址變換控制, 則存在邏輯/物理地址變換表非常巨大,工作存儲器不夠容納的情況。因此,在判斷為存在某種程度上大量的數據的情況下,將數據匯總成塊單位(例如,IM字節(jié))而寫入儲存存儲器,利用塊單位的邏輯/物理地址變換表進行管理。寫入控制或垃圾回收的過程中,將塊內的數據全部被無效化的塊的集合形成列表 (空閑塊列表)來進行管理。在頁面單位的寫入或塊單位的寫入中,在需要寫入區(qū)域的情況下,從空閑塊列表取出塊的信息,確保寫入區(qū)域。通過上述的控制,可以將改寫次數分散到各地址。但是,今后,隨著NAND閃存的細微化的發(fā)展,改寫次數有進一步減少的傾向。因此,需要更加高效的寫入控制。作為提高效率的方法,考慮到有對寫入NAND閃存的數據進行壓縮的方法。例如,作為現有技術的一例,控制器對來自主機的數據進行壓縮,收納在NAND閃存中。由此,減少來自從主機向NAND閃存的數據傳送量。但是,即使單純地以頁面單位、塊單位對數據進行壓縮而收納在NAND閃存中,由此而空出的區(qū)域被浪費。另外,若以壓縮后的尺寸為基準將數據裝入地進行配置,則必須以細小的單位對數據的位置進行管理。因此,變換表的1個條目的尺寸變得巨大,難以進行在工作存儲器上的管理。進而,如上所述,由于存在有只能以塊單位進行擦除的限制,必須考慮到數據跨塊的邊界的情況等,控制復雜。
發(fā)明內容
本發(fā)明的實施方式,提供提高了寫入效率的半導體存儲裝置。一種存儲裝置,其特征在于具有存儲來自主機的數據的第一存儲部;對管理所述第一存儲部的信息進行存儲的第二存儲部;和經由所述第二存儲部,在所述主機與所述第一存儲部之間進行數據的傳送的控制部,所述第一存儲部具有多個塊,所述多個塊的各個塊含有多個頁面,所述第二存儲部具有保持所述第一存儲部中的所述多個塊中、可寫入的塊的信息的空閑塊列表;和保持所述第一存儲部中的所述多個頁面中、可寫入的頁面的信息的空閑頁面列表,所述控制部,在向所述第一存儲部傳送來自主機的數據時,對塊單位的數據進行壓縮而生成壓縮塊數據,基于所述空閑塊列表所保持的信息,將所述壓縮塊數據寫入到可寫入的塊,將寫入了所述壓縮塊數據的所述塊內、沒有寫入所述壓縮塊數據的空閑區(qū)域中存在的頁面信息,保持于所述空閑頁面列表,基于所述空閑頁面列表所保持的信息,將頁面單位的數據寫入存在于所述空閑區(qū)域的頁面。通過本發(fā)明的實施方式,可以提供一種提高了寫入效率的半導體存儲裝置。
圖1是表示第一實施方式的存儲裝置的構成例的框圖。圖2是表示第一實施方式的工作存儲器的構成例的框圖。圖3是表示第一實施方式的存儲裝置的控制動作的圖。圖4是表示第一實施方式的存儲裝置中的塊數據寫入的流程圖。圖5是表示第一實施方式的存儲裝置中的頁面數據寫入的流程圖。圖6是表示第二實施方式的存儲裝置的控制動作的圖。
具體實施例方式下面參照附圖對本實施方式進行說明。在附圖中,對于相同的部分付與相同的參照標號。(第一實施方式)下面,對第一實施方式的存儲裝置進行說明,第一實施方式為在進行塊單位的數據(塊數據)的寫入時對數據進行壓縮,在由將該壓縮塊數據收納在塊中而空出的區(qū)域,寫入小單位(頁面單位)的非壓縮數據的例子。(構成例)下面,利用圖1 圖3,對第一實施方式的存儲裝置的構成例進行說明。圖1表示第一實施方式的存儲裝置100的構成例。如圖1所示,存儲裝置100具有控制器(控制電路)10、多個儲存存儲器11以及工作存儲器12。控制器10具有主機接口、儲存存儲器接口和工作存儲器接口。主機接口為例如串行ATA/并行ATA接口,與主機間進行指令的授受。儲存存儲器接口進行與儲存存儲器11之間的指令的授受。工作存儲器接口進行與工作存儲器12之間的指令的授受。這樣,控制器10經由工作存儲器12,與儲存存儲器11和和主機110之間進行數據傳送。儲存存儲器11,例如為NAND閃存,存儲來自主機的數據。另外,儲存存儲器11,按照來自控制器10的指令,進行被存儲的數據的讀出、擦除等處理。工作存儲器12,例如為SRAM (Static Random Access Memory 靜態(tài)隨機存取存儲器)或DRAM (Dynamic Random Access Memory :動態(tài)隨機存取存儲器),但是不限于此,也可以為寄存器文件或儲存存儲器11等?;蛘咭部梢圆⒂盟麄?。工作存儲器12暫時收納儲存存儲器11的管理所需的數據。本實施方式中的控制器10具有壓縮解壓縮器13。該壓縮解壓縮器13只有在對儲存存儲器11進行塊單位的數據的存取的情況下進行處理。更具體地講,壓縮解壓縮器13, 在將來自主機110的塊單位的數據寫入儲存存儲器11的情況下,對塊單位的數據進行壓縮,生成壓縮數據,在從儲存存儲器11讀出壓縮數據的情況下對壓縮數據進行解壓縮。另外,即使為塊單位的數據的存取,在壓縮后的數據尺寸比原數據大的情況下或判斷為該數據被隨機存取的可能性高的情況下,也能夠不進行壓縮解壓縮處理。這樣的壓縮解壓縮器13的壓縮解壓縮功能,可以通過硬件實現,也可以通過軟件實現。圖2表示了本實施方式的工作存儲器12的構成例。如圖2所示,工作存儲器12具有數據緩沖區(qū)21、頁面變換表22、塊變換表23、空閑頁面列表M和空閑塊列表25等。以下,利用圖3對這些工作存儲器12的各構成要素進行說明。圖3表示了工作存儲12和儲存存儲器11的構成例和控制動作。在此,將從主機 110給予的地址稱為邏輯地址,將儲存存儲器(NAND閃存)11內的實際地址稱為物理地址。在圖3中,存儲器映射圖30表示了儲存存儲器11的物理地址。另外,在該存儲器映射圖30中,反白區(qū)域表示有效數據存在的區(qū)域,網狀區(qū)域表示無效數據存在的區(qū)域。在此,有效數據和無效數據,不限于是否有數據正在被寫入,而是基于該數據邏輯上是有效還是無效。另外,在存儲器映射圖30中,斜線區(qū)域表示由于對塊單位的數據進行壓并收納而導致的在塊內空出的空閑區(qū)域。頁面變換表22中,1個條目由邏輯頁面地址和物理頁面地址的組構成。頁面變換表22中,保持有寫入了數據(存在有效數據)的頁面的邏輯地址和物理地址。該頁面變換表22,將從主機給予的邏輯頁面地址和儲存存儲器11內的物理頁面地址建立對應。塊變換表23中,1個條目由物理塊地址構成。塊變換表23中,保持有寫入了數據 (存在有效數據)的塊的物理地址。該塊變換表23,將從主機給予的邏輯塊地址和儲存存儲器11內的物理塊地址建立對應??臻e頁面列表M中,1個條目由物理頁面地址構成。在空閑頁面列表M中,保持有由于對塊單位的數據壓縮、收納而在塊內空出的空閑區(qū)域的前端頁面的物理地址。在此, 空閑區(qū)域的前端頁面以后的物理地址,可以從前端頁面物理地址計算出來。特別地,后端頁面的物理地址,由于為物理塊的邊界,因此可以容易地從前端頁面的物理地址計算出。空閑塊列表25中,1個條目由物理塊地址構成。在空閑塊列表25中,保持有塊內的數據全部被無效化的塊的物理地址。在本實施方式中,不僅僅是通過空閑塊列表25以塊單位管理塊內的數據全部被無效化的塊,可以通過空閑頁面列表M以頁面為單位管理由于將壓縮塊數據收納在某個塊中而空出(被無效化)的塊內的一部分(空閑區(qū)域)。[塊單位的數據(塊數據)寫入]下面,利用圖4對本實施方式的存儲裝置100中的塊數據寫入進行說明。圖4表示本實施方式的存儲裝置100中的塊數據寫入的流程圖。如圖4所示,首先,在步驟Sl中,與公知的方法相同地,從空閑塊列表25確保塊單位的寫入區(qū)域。此時,在確保的寫入區(qū)域中存在有無效數據的情況等時,若需要則進行擦除動作。然后,在步驟S2中,判斷是否壓縮塊數據。此時,通過調查寫入數據的傾向,判定壓縮后的數據尺寸是否變得比原來的數據尺寸小。即,在壓縮后的數據尺寸變得比原來的數據尺寸小的情況下,對塊數據進行壓縮,在比原來的數據尺寸大的情況下不對塊數據進行壓縮。在步驟S2中不對塊數據進行壓縮的情況下,然后在步驟S3中,進行塊數據寫入。 即,將通常的塊數據寫入儲存存儲器11。之后,在步驟S4中,在塊變換表23中,設置寫入了塊數據的物理塊地址。另外,在步驟S2中對塊數據壓縮的情況下,然后,在步驟S5中,進行塊數據的壓縮處理。即,減小塊數據的數據尺寸。然后,在步驟S6中,進行壓縮塊數據寫入。即,將在步驟S5中壓縮的的塊數據寫入儲存存儲器11。在此,壓縮塊數據收容在與沒被壓縮的塊數據寫入情況下相同的收容位置。例如,壓縮塊數據從在空閑塊列表25確保的塊內的前端頁面進行寫入。此時,壓縮塊數據由于數據尺寸小,因此在空閑塊列表25中確保的塊內的一部分上(例如,后半頁面) 存在沒有寫入數據的區(qū)域(空閑區(qū)域)。然后,在步驟S7中,在空閑頁面列表M中,設置由于寫入壓縮塊數據而空出的空閑區(qū)域的前端頁面的物理地址。之后,在步驟S4中,在塊變換表23中,設置寫入了壓縮塊數據的物理塊地址。這樣地,結束塊數據寫入。另外,在壓縮了塊數據的情況下,通過此前的處理,壓縮塊數據成為有效,成為在空閑區(qū)域能夠寫入頁面數據的狀態(tài)。[頁面單位的數據(頁面數據)寫入]下面,利用圖5,對本實施方式的存儲裝置100中的頁面數據寫入進行說明。圖5表示本實施方式的存儲裝置100中的頁面數據寫入的流程圖。如圖5所示,首先,在步驟S8中,判斷是否可以從空閑頁面列表M確保寫入區(qū)域。在步驟S8中不能從空閑頁面列表對確保寫入區(qū)域的情況下,然后,在步驟S9中, 從空閑塊列表25確保頁面單位的寫入區(qū)域。此時,在確保的寫入區(qū)域存在無效數據的情況下等,若需要則進行擦除動作。然后,在步驟SlO中,對從空閑塊列表25確保的寫入區(qū)域寫入頁面數據。之后,在步驟Sll中,在頁面變換表22中,設置寫入了頁面數據的物理頁面地址和變換信息。另外,在步驟S8中能夠從空閑頁面列表M確保寫入區(qū)域的情況下,在步驟S12 中,從空閑頁面列表M確保頁面單位的寫入區(qū)域。然后,在步驟SlO中,在從空閑頁面列表M確保的寫入區(qū)域進行頁面數據寫入。
6艮口,在空閑區(qū)域寫入頁面數據。由此,在塊內成為壓縮塊數據和其他的頁面數據混在一起的狀態(tài)。之后,在步驟S11中,在頁面變換表22中,設置寫入了頁面數據的物理頁面地址和
變換信息。這樣地,結束頁面數據寫入。[數據讀出]下面,對本實施方式的存儲裝置100中的數據讀出進行說明。另外,本實施方式中的數據的讀出方法不特別限定,可以使用公知的各種讀出方法。在頁面數據讀出的情況下,與公知的方法同樣地,使用頁面變換表22,從儲存存儲器11讀出對應的(讀出對象的)頁面數據。另外,塊數據讀出的情況下,與公知的方法相同,使用塊變換表23,從儲存存儲器 11讀出對應的(讀出對象的)塊數據。此時,在讀出對象的塊數據被壓縮的情況下,在進行了壓縮塊數據的解壓縮處理后,讀出數據。另外,讀出對象的塊數據沒有被壓縮的情況下, 原樣地讀出數據。另外,從儲存存儲器11的數據的讀出,可以只讀出需要的量就結束,也可以讀出1 塊的量。另外,為了進行塊數據是否壓縮的判定,對于1塊至少需要1位。在此,若儲存存儲器11中存在冗余位,可以加以利用,也可以在塊變換表23的各條目中追加1位。上述的塊數據寫入、頁面數據寫入和數據讀出通過圖1所示的控制器10加以控制。[效果]通過上述第一的實施方式,在寫入塊數據時對數據進行壓縮,將該壓縮塊數據存儲(寫入)到儲存存儲器11內的塊中。由該壓縮而削減(變少)的數據的量,在塊內作為空閑區(qū)域而產生。通過將該空閑區(qū)域利用在其他的頁面數據寫入中,可以提高對儲存存儲器11的寫入效率。另外,由于不會浪費地使用由于塊數據的壓縮而產生的空閑區(qū)域,在儲存存儲器 11整體的各塊中可以分散并且降低改寫次數。即,在使用如不斷地微細化的NAND閃存這樣的改寫次數存在局限的存儲器的存儲裝置100中,可以提高可靠性。進而,在本實施方式中,壓縮塊數據的收容位置與沒有壓縮的情況下的收容位置一致。由此,數據的管理、寫入和讀出動作的控制容易,可以抑制控制器10的額外負擔。(第二實施方式)下面,對第二實施方式的存儲裝置進行說明。第二實施方式為第一實施方式的變形例,適用于多值(MLC:multi level cell 多層單元)NAND閃存這樣的寫入順序有限制的存儲器,從下位頁面?zhèn)葘懭雺嚎s塊數據。另外,在第二實施方式中,對于與上述第一實施方式相同的點省略說明,對不同點進行說明。多值NAND閃存為在一個存儲單元寫入多位的信息的存儲器。另外,根據存儲器的不同,也存在對一個存儲單元含有的多個位分配其他的地址的情況,該情況下,有相對于這些地址,寫入順序確定的情況。根據存儲器的不同,對先寫入的地址的寫入動作可以比對后寫入的地址的寫入動作更高速地進行。在下面的說明中,作為一例,表示了對一個存儲單元能夠寫入2位的信息的情況。另外,將先寫入的地址區(qū)域稱為下位頁面(lower page),將后寫入的地址區(qū)域稱為上位頁面(upper page)0[塊數據和頁面數據的寫入]下面,利用圖6,對本實施方式中的存儲裝置100的塊數據及頁面數據的寫入進行說明。圖6表示了本實施方式的存儲裝置100的控制動作,表示了一個塊60內的下位頁面和上位頁面的地址的分配,和塊60內的數據的遷移。在此,與圖3相同,反白區(qū)域表示存在有效數據的區(qū)域,網狀區(qū)域表示存在無效數據的區(qū)域,斜線區(qū)域表示由于收納壓縮數據而空出的空閑區(qū)域。更具體地講,圖6的(a)表示塊60內全部為無效數據的狀態(tài),圖6的(b)表示在塊60內寫入壓縮塊數據的狀態(tài),圖6(c)表示在空閑區(qū)域寫入頁面數據的狀態(tài)。如圖6的(a)所示,在本實施方式中,塊60內的地址按照寫入順序的限制進行邏輯排列。更具體地講,如下地分配地址,即在含有具有下位頁面和上位頁面的多個存儲單元的塊60中,從各存儲單元的下位頁面?zhèn)仁紫葘懭牒?,在各存儲單元的上位側寫入。通過這樣地分配塊60內的地址,如圖6的(b)所示,在寫入壓縮塊數據時,壓縮塊數據從各存儲單元的下位頁面?zhèn)葘懭?。之后,如圖6的(c)所示,在由于寫入塊數據而生成的空閑區(qū)域(例如,上位頁面?zhèn)鹊囊徊糠?寫入其他的頁面數據。如圖4和圖5所示,通過第一實施方式所示的控制方式,在塊60寫入壓縮數據的情況下,可以總是保證按照圖6的(a)、(b)、(c)的順序寫入數據。即,由于壓縮塊數據的寫入在其他的頁面數據的寫入之前進行,壓縮塊數據從下位頁面?zhèn)葘懭搿效果]通過上述的第二實施方式,在具有多值NAND閃存的存儲裝置100中,如下地進行地址分配,即在從塊60內的全部存儲單元的下位側先寫入后,在各上位頁面?zhèn)葘懭?。由此?前寫入的壓縮塊數據從存儲單元的下位頁面?zhèn)葘懭搿T撓挛豁撁鎮(zhèn)鹊膶懭肟梢砸员壬衔豁撁鎮(zhèn)鹊膶懭肟斓母咚賵?zhí)行。即,可以高速地進行壓縮塊數據的寫入。特別地,在從主機110發(fā)出了大的數據尺寸的寫入指令的情況下,通過塊單位的寫入的執(zhí)行控制,可以進行高速的該寫入,可以提高突發(fā)寫入的執(zhí)行性能。另外,通常,數據的壓縮需要大量的時間。相對于此,如本實施方式所述,由于高速地進行壓縮塊數據的寫入,可以在總計上抵消壓縮引起的時間增加,可以抑制時間增加。這里說明了一些具體實施方式
,但是,這些具體實施方式
只是示例,并不限制發(fā)明的范圍。這里說明的新的方法和系統(tǒng)可以進行變更為各種形式;另外,在不脫離本發(fā)明的主旨的范圍內可以對這些方法和系統(tǒng)進行各種省略、替換和變更。在落入本發(fā)明的范圍和精神內時,從屬權利要求和它們的等價物用來覆蓋這些形式或修改。
權利要求
1.一種存儲裝置,其特征在于 具有存儲來自主機的數據的第一存儲部;對管理所述第一存儲部的信息進行存儲的第二存儲部;和經由所述第二存儲部,在所述主機與所述第一存儲部之間進行數據的傳送的控制部, 所述第一存儲部具有多個塊,所述多個塊的各個塊含有多個頁面, 所述第二存儲部具有保持所述第一存儲部中的所述多個塊中、可寫入的塊的信息的空閑塊列表;和保持所述第一存儲部中的所述多個頁面中、可寫入的頁面的信息的空閑頁面列表, 所述控制部,在向所述第一存儲部傳送來自主機的數據時, 對塊單位的數據進行壓縮而生成壓縮塊數據,基于所述空閑塊列表所保持的信息,將所述壓縮塊數據寫入到可寫入的塊, 將寫入了所述壓縮塊數據的所述塊內、沒有寫入所述壓縮塊數據的空閑區(qū)域中存在的頁面信息,保持于所述空閑頁面列表,基于所述空閑頁面列表所保持的信息,將頁面單位的數據寫入存在于所述空閑區(qū)域的頁面。
2.如權利要求1所述的存儲裝置,其特征在于在所述空閑塊列表保持有數據全部被無效化的塊的物理地址,在所述空閑頁面列表保持有所述空閑區(qū)域的前端頁面的物理地址。
3.如權利要求1所述的存儲裝置,其特征在于 所述第一存儲部為NAND閃存。
4.如權利要求1所述的存儲裝置,其特征在于 所述第二存儲部為SRAM或DRAM。
5.如權利要求1所述的存儲裝置,其特征在于所述控制電路,在寫入所述壓縮塊數據時,從塊內的前端頁面寫入所述壓縮塊數據。
6.如權利要求1所述的存儲裝置,其特征在于所述第一存儲部為具有多個存儲單元的NAND閃存,所述多個存儲單元存儲有η值不同的狀態(tài),η為大于2的整數,所述第一存儲部中的所述多個塊的各個塊含有多個下位頁面和多個上位頁面,所述控制電路,在寫入所述壓縮塊數據時,將所述壓縮塊數據從所述塊內的下位頁面?zhèn)葘懭搿?br>
全文摘要
存儲裝置具有存儲來自主機的數據的第一存儲部、對管理第一存儲部的信息存儲的第二存儲部和經第二存儲部在主機與第一存儲部之間數據傳送的控制部。第一存儲部具有多個塊,多個塊的每個含有多個頁面。第二存儲部具有保持第一存儲部中的多個塊中的可寫入的塊的信息的空閑塊列表和保持第一存儲部中的多個頁面中的可寫入的頁面的信息的空閑頁面列表??刂撇吭谙虻谝淮鎯Σ總魉蛠碜灾鳈C的數據時對塊單位的數據進行壓縮而生成壓縮塊數據,基于空閑塊列表保持的信息將壓縮塊數據寫入可寫入的塊,將寫入了壓縮塊數據的塊內沒有寫入壓縮塊數據的空閑區(qū)域中存在的頁面信息保持于空閑頁面列表,基于空閑頁面列表保持的信息將頁面單位的數據寫入可寫入的頁面。
文檔編號G11C16/08GK102479549SQ20111006696
公開日2012年5月30日 申請日期2011年3月18日 優(yōu)先權日2010年11月19日
發(fā)明者及川恒平 申請人:株式會社東芝