TWI804021B - 記憶體系統及資訊處理系統 - Google Patents
記憶體系統及資訊處理系統 Download PDFInfo
- Publication number
- TWI804021B TWI804021B TW110139626A TW110139626A TWI804021B TW I804021 B TWI804021 B TW I804021B TW 110139626 A TW110139626 A TW 110139626A TW 110139626 A TW110139626 A TW 110139626A TW I804021 B TWI804021 B TW I804021B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- vdm
- fragment table
- lut
- fragment
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明之其中一個實施形態,係提供一種能夠將對於被寫入至非揮發性記憶體中之資料的有效性作管理之資料映射之處理成本降低的記憶體系統以及資訊處理系統。
若依據其中一個實施形態,則記憶體系統,係具備有非揮發性記憶體、和控制器。控制器,係因應於從主機而來之指令,來對於非揮發性記憶體進行控制。控制器,係使用資料映射來對於非揮發性記憶體上之資料的有效性作管理。資料映射,係包含複數之第1斷片表。複數之第1斷片表之各者,係保持第1資訊和第2資訊,該第1資訊,係代表被寫入至被分配至該第1斷片表處之非揮發性記憶體內之物理位址之範圍中的特定之容量之資料之各者的有效性,該第2資訊,係在預先所制定了的數量之各登錄中而代表複數之特定之容量之資料的有效性。控制器,係因應於從主機而來的寫入資料之容量,來選擇寫入目標之區塊。
Description
本發明之實施形態,係有關於記憶體系統及資訊處理系統。
[關連申請案]
本申請案,係享受以日本專利申請2021-100701號(申請日:2021年6月17日)作為基礎申請之優先權。本申請案,係藉由參照此基礎申請案,而包含基礎申請案之所有的內容。
近年來,具備有非揮發性記憶體之記憶體系統係廣泛普及。作為此種記憶體系統之其中一者,例如,具備有NAND型快閃記憶體之固態硬碟(SSD:Solid State Drive)係為周知。
另外,被寫入至上述非揮發性記憶體中之資料的有效性(亦即是,該資料是有效還是無效),係使用資料映射而被作管理,但是,係期望對於該資料之有效性有效率地作管理。又,係期望將資料映射之處理成本降低。
本發明之其中一個實施形態,係提供一種能夠將對於被寫入至非揮發性記憶體中之資料的有效性作管理之資料映射之處理成本降低的記憶體系統以及資訊處理系統。
若依據其中1個實施形態,則記憶體系統,係能夠與主機(host)作連接。記憶體系統,係具備有非揮發性記憶體、和控制器。非揮發性記憶體,係包含有複數之區塊。控制器,係因應於從主機而來的指令,而對於針對非揮發性記憶體之資料之寫入或者是從非揮發性記憶體而來之資料之讀出作控制。控制器,係使用資料映射來對於被寫入至非揮發性記憶體中之資料的有效性作管理。資料映射,係包含複數之第1斷片表。複數之第1斷片表之各者,係保持第1資訊和第2資訊,該第1資訊,係代表被寫入至被分配至該第1斷片表處之非揮發性記憶體內之物理位址之範圍中的特定之容量之資料之各者的有效性,該第2資訊,係在預先所制定了的數量之各登錄中而代表複數之特定之容量之資料的有效性。控制器,係因應於從主機而來的寫入指令所要求之進行對於非揮發性記憶體之寫入的寫入資料之容量,來選擇寫入目標之區塊。
以下,參考圖面,針對實施形態作說明。
圖1,係為對於包含有本實施形態的記憶體系統之資訊處理系統之構成的其中一例作展示之區塊圖。
在本實施形態中,記憶體系統,係身為以對於非揮發性記憶體而寫入資料(使用者資料)並從該非揮發性記憶體而將資料讀出的方式所構成之半導體儲存裝置。此記憶體系統,例如係可作為固態硬碟(SSD:Solid State Drive)而被實現,亦可作為記憶卡等之其他之儲存裝置而被實現。在本實施形態中,係針對使記憶體系統作為SSD而被實現的情況作考慮。
如同圖1中所示一般,資訊處理系統1,係包含有主機2以及記憶體系統3。主機2,係身為對於記憶體系統3而作為主機裝置來動作的資訊處理裝置,例如係可作為個人電腦、伺服器裝置、行動電話、攝像裝置、行動終端(平板電腦或智慧型手機等)、遊戲機或車載終端(車輛導航系統等)而被實現。
記憶體系統3,係被構成為能夠與主機2作連接,並包含有非揮發性記憶體4、和對於針對該非揮發性記憶體4之資料之寫入以及讀出作控制的控制器5(控制電路)。另外,非揮發性記憶體4,係亦可構成為能夠對於控制器5而作裝卸。若依據此,則係能夠對於記憶體系統3之記憶體容量自由地作擴張。
在如同上述一般地而將記憶體系統3作為SSD來實現的情況時,非揮發性記憶體4,例如係為NAND型快閃記憶體。於此情況,非揮發性記憶體4(NAND型快閃記憶體),係包含有被配置為矩陣狀之複數之記憶體胞(記憶體胞陣列)。另外,非揮發性記憶體4,係可為2維構造之NAND型快閃記憶體,亦可為3維構造之NAND型快閃記憶體。
又,非揮發性記憶體4之記憶體胞陣列,係包含有複數之區塊,該區塊之各者,係藉由多數之頁面而被作編成。在記憶體系統3(SSD)處,區塊之各者,係作為資料之刪除單位而起作用。又,頁面之各者,係身為資料寫入動作以及資料讀取動作之單位。
又,在非揮發性記憶體4處,係被寫入有各種資料,但是,非揮發性記憶體4,係更進而儲存被稱作LUT(查找表,Look Up Table)之位址轉換表(以下,單純標記為LUT)41。另外,LUT41,係亦被稱作L2P(Logical address to Physical address)。LUT41,係相當於用以針對「當主機2對於記憶體系統3進行存取(將資料寫入至非揮發性記憶體4中或者是從非揮發性記憶體4而將資料讀出)時所使用的邏輯位址」和「代表非揮發性記憶體4內之資料所被作寫入的物理性之位置之物理位址」之間的對應關係作管理之資料。換言之,在LUT41中,係與邏輯位址之各者相互附加對應地而被儲存有與該邏輯位址相對應之物理位址。
另外,當非揮發性記憶體4係身為NAND型快閃記憶體的情況時,在LUT41中所被管理之邏輯位址,係身為邏輯區塊位址(LBA:Logical Block Address),物理位址,係身為物理區塊位址(PBA:Physical Block Address)。在以下之說明中,係將邏輯位址作為LBA並將物理位址作為PBA來作說明。
又,非揮發性記憶體4,係更進而儲存有被稱作VDM(有效資料映射,Valid Data Map)之資料映射(以下,單純標記為VDM)42。VDM42,係相當於對於被寫入至非揮發性記憶體4內之物理位址處之資料的有效性(亦即是,該資料是有效還是無效)作管理之資料。
另外,LUT41以及VDM42之中之至少其中一方,例如係亦可被儲存在非揮發性記憶體4以外之非揮發性記憶體中。又,非揮發性記憶體4,係亦可構成為對於儲存資料、LUT41以及VDM42之記憶體(區域)作區分。
控制器5,係具備有通訊介面控制部51、寫入緩衝記憶體52、讀出緩衝記憶體53、非揮發性記憶體控制器54、記憶體55以及處理器56。另外,通訊介面控制部51、寫入緩衝記憶體52、讀出緩衝記憶體53、非揮發性記憶體控制器54、記憶體55以及處理器56,係藉由內部匯流排IB而被作電性連接。
通訊介面控制部51,係對於外部裝置(例如,主機2)與記憶體系統3之間之通訊作控制。具體而言,通訊介面控制部51,係收訊從主機2而來之各種指令。在從主機2而來之各種指令中,例如係包含有寫入指令(寫入要求)以及讀出指令(讀取要求)等。
另外,在藉由通訊介面控制部51所收訊的寫入指令中,係包含有基於該寫入指令所被寫入至非揮發性記憶體4中之資料、以及當主機對於該資料進行存取時所使用的LBA。又,在藉由通訊介面控制部51所收訊的讀出指令中,係包含有當主機2針對基於該讀出指令所被讀出之資料而進行存取時所使用的LBA(亦即是,與該資料相對應之LBA)。
於此,在藉由通訊介面控制部51而收訊了寫入指令的情況時,基於該寫入指令,資料係被寫入至非揮發性記憶體4中,但是,寫入緩衝記憶體52,係將被寫入至該非揮發性記憶體4中之資料暫時性地作儲存。另外,被儲存於寫入緩衝記憶體52中之資料,係經由非揮發性記憶體控制器54而被寫入至非揮發性記憶體4中。
另一方面,在藉由通訊介面控制部51而收訊了讀出指令的情況時,基於該讀出指令,資料係被從非揮發性記憶體4而讀出,但是,讀出緩衝記憶體53,係將藉由非揮發性記憶體控制器54而從該非揮發性記憶體4所讀出了的資料暫時性地作儲存。另外,被儲存於讀出緩衝記憶體53中之資料,係經由通訊介面控制部51而被送訊至主機2處。
非揮發性記憶體控制器54,係對於針對非揮發性記憶體4之資料之寫入以及從該非揮發性記憶體4而來之資料之讀出作控制。另外,雖係省略詳細之說明,但是,非揮發性記憶體控制器54,係亦能夠以包含有DMAC(Direct Memory Access Controller)、錯誤訂正部、隨機數發生器(或者是攪亂器)等的方式而被構成。
記憶體55,係身為作為處理器56之作業用記憶體而被使用的主記憶裝置。記憶體55,例如係為DRAM(Dynamic Random Access Memory),但是,係亦可為SRAM(Static Random Access Memory)等之其他的半導體記憶體。
另外,記憶體55,相較於非揮發性記憶體4,係能夠高速地進行寫入以及讀出,並包含有快取記憶體551(作為此而被利用之區域)。快取記憶體551,例如係儲存被儲存在非揮發性記憶體4中之LUT41以及VDM42等的快取資料。
處理器56,係經由內部匯流排IB而對於控制器5全體之動作進行控制。處理器56,例如係藉由實行被儲存於未圖示之ROM(Read Only Memory)等之中的控制程式(韌體),來實行各種之處理(例如針對從主機2所收訊的各種指令之處理等)。
在本實施形態中,控制器5,係藉由此種處理器56,而作為以實行非揮發性記憶體4(NAND型快閃記憶體)之資料管理以及區塊管理的方式所構成之快閃記憶體轉換層(Flash Translation Layer,FTL)而起作用。
另外,處理器56,例如係亦可為CPU(Central Processing Unit)、MPU(Micro Processing Unit)或者是DSP(Digital Signal Processor)等。
處理器56,係藉由實行上述之控制程式,而實現寫入控制部561、讀出控制部562、垃圾回收控制部563、位址轉換部564、管理部565以及快取記憶體控制部566等之功能部。
另外,此些之各部561~566,係如同上述一般地藉由控制程式(亦即是,軟體)而被實現,但是,係亦可藉由硬體來實現,亦可藉由軟體和硬體之組合來實現。
寫入控制部561,在藉由通訊介面控制部51而收訊了寫入指令的情況時,係對於通訊介面控制部51、寫入緩衝記憶體52以及非揮發性記憶體控制器54作控制,並實行將在該寫入指令中所包含之資料寫入至非揮發性記憶體4中之處理。
讀出控制部562,在藉由通訊介面控制部51而收訊了讀出指令的情況時,係對於通訊介面控制部51、讀出緩衝記憶體53以及非揮發性記憶體控制器54作控制,並實行將與在該讀出指令中所包含之LBA相對應的資料從非揮發性記憶體4而讀出之處理。
垃圾回收控制部563,例如係藉由與寫入控制部561、讀出控制部562以及非揮發性記憶體控制器54協同動作,來參照上述之VDM42而實行針對非揮發性記憶體4之垃圾回收(GC)。所謂垃圾回收,係為將非揮發性記憶體4之不需要的記憶區域(記憶體區域)釋放的處理。另外,係亦可將消除非揮發性記憶體4之記憶區域之斷片化的壓緊(compaction)與垃圾回收一同地來進行。
位址轉換部564,在藉由通訊介面控制部51而收訊了上述之讀出指令的情況時,係使用被儲存在非揮發性記憶體4中之LUT41,來實行將在該讀出指令中所包含之LBA轉換為相對應的PBA(物理位址)之處理。在記憶體系統3中,係成為能夠基於如此這般地而藉由位址轉換部564來從LBA所轉換了的PBA,而從非揮發性記憶體4來將資料(與該LBA相對應之資料)讀出。
管理部565,當藉由通訊介面控制部51而收訊上述之寫入指令,並基於該寫入指令而將資料寫入至了非揮發性記憶體4中的情況時,係實行更新LUT41以及VDM42之處理。
快取記憶體控制部566,例如係經由讀出控制部562,而實行從非揮發性記憶體4來將LUT41(之一部分)或者是VDM42(之一部分)讀出並將該LUT41或VDM42儲存於快取記憶體551中之處理。又,快取記憶體控制部566,係實行將被儲存於快取記憶體551中之LUT41(之一部分)或者是VDM42(之一部分)讀出並經由寫入控制部561來將該LUT41或VDM42寫入(回寫)至非揮發性記憶體4中之處理。
另外,在圖1中,雖係針對記憶體系統3為被設置在主機2之外部之例來作了說明,但是,作為該主機2與記憶體系統3之間之介面,例如係亦可使用MVMe over Fabrics等。又,記憶體系統3,係亦可內藏於主機2中。進而,記憶體系統3係亦能夠與複數之主機2作連接,亦可使複數之記憶體系統3被與1以上之主機2作連接。
於此,在上述之LUT41中,係對於LBA(邏輯位址)與PBA(物理位址)之間之對應關係作管理,但是,例如,當經由通訊介面控制部51而收訊從主機2而來之寫入指令,並基於該寫入指令而使資料被寫入至非揮發性記憶體4中的情況時,管理部565,係有必要在LUT41中,將被包含於該寫入指令中之LBA與該資料所被作了寫入的非揮發性記憶體4內之PBA之間之對應關係作更新(亦即是,將該對應關係登錄在LUT41中)。
然而,當在上述之寫入指令中而被指定有廣範圍之LBA的情況時,於「在LUT41中而將LBA與PBA之間之對應關係作更新」的處理中係會耗費時間。
因此,在本實施形態中之LUT41,係構成為具備有由複數之階層所構成之階層構造,並包含有與該複數之階層相對應之複數之表(以下,標記為LUT斷片表)。另外,此LUT41之階層構造,例如係基於包含有非揮發性記憶體4之容量等的記憶體系統3之設定資訊而被作決定。
在此種LUT41中,複數之LUT斷片表之各者,例如係設為具有相同之容量者。又,詳細內容雖係於後再述,但是,在與複數之階層相對應之複數之LUT斷片表之中的「與上位之階層相對應之LUT斷片表」中,係被儲存有LBA(之範圍)、和用以對於「與較該LUT斷片表而更下位之階層相對應的LUT斷片表」作參照的參照目標資訊(以下,標記為LUT指標)等。另外,LUT指標,例如係包含有「成為參照目標之LUT斷片表」所被作儲存的非揮發性記憶體4內之PBA。又,在與「LUT41所具有的階層構造中之最下位之階層」相對應之LUT斷片表中,係被儲存有與被分配至該LUT斷片表處之LBA之各者相對應的PBA。
亦即是,在本實施形態中,LUT41係具備有能夠從與上位之階層相對應之LUT斷片表起而至與下位之階層相對應之LUT斷片表地來依序作參照之階層構造,在該階層構造中,LBA以及PBA之對應關係係被作管理。
以下,參考圖2,針對具備有階層構造之LUT41作概念性說明。在圖2所示之例中,係針對「LUT41為具有由4個的階層所構成之階層構造」的情況作考慮。於此情況,LUT41,係包含有複數之第1LUT斷片表T411~第4LUT斷片表T414。
如同圖2中所示一般,第1LUT斷片表T411,係身為與在LUT41所具有的階層構造中之最下位之階層(以下,標示為第1階層)相對應之LUT斷片表。第2LUT斷片表T412,係身為與在LUT41所具有的階層構造中之第1LUT斷片表T411之上位之階層(以下,標示為第2階層)相對應之LUT斷片表。第3LUT斷片表T413,係身為與在LUT41所具有的階層構造中之第2LUT斷片表T412之上位之階層(以下,標示為第3階層)相對應之LUT斷片表。第4LUT斷片表T414,係身為與在LUT41所具有的階層構造中之第3LUT斷片表T413之上位之階層(以下,標示為第4階層)相對應之LUT斷片表。另外,在圖2所示之例中,第4階層係身為在LUT41所具有的階層構造中之最上位之階層。
以下,針對上述之第1LUT斷片表T411~第4LUT斷片表T414之各者詳細作說明。
首先,在複數之第1LUT斷片表T411之各者處,係被分配有連續之LBA之範圍,該第1LUT斷片表T411,係包含有複數之登錄C411。又,首先,在被包含於第1LUT斷片表T411中的複數之登錄C411之各者處,係被分配有被分配至該第1LUT斷片表T411處之LBA之範圍之中的互為相異之1個的LBA,並被儲存有與該LBA相對應之PBA(亦即是,與該LBA相對應之資料所被作寫入的PBA)。
另外,在本實施形態中,當主機2對於記憶體系統3進行存取時所使用的LBA之所有範圍係被作與第1LUT斷片表T411之數量相同數量之區分,該被作了區分的LBA之範圍係被分配至該第1LUT斷片表T411之各者處。藉由此,在複數之第1LUT斷片表T411中,係能夠針對與當主機2對於記憶體系統3進行存取時所使用的所有範圍之LBA之各者相對應的PBA進行管理。
接著,在複數之第2LUT斷片表T412之各者處,係被分配有較上述之第1LUT斷片表T411而更廣之LBA之範圍,該第2LUT斷片表T412,係包含有複數之登錄C412。又,在被包含於第2LUT斷片表T412中的複數之登錄C412之各者處,係被分配有「被分配至與該第2LUT斷片表T412之下位之階層相對應的第1LUT斷片表T411處之LBA之範圍」,並被儲存有代表該第1LUT斷片表T411(之位置)之LUT指標。於此情況,被分配至第2LUT斷片表T412之各者處的LBA之範圍,係相當於藉由「被儲存在被包含於該第2LUT斷片表T412中之複數之登錄C412之各者處的LUT指標」所展示之所有的被分配至第1LUT斷片表T411處之LBA之範圍。
又,在複數之第3LUT斷片表T413之各者處,係被分配有較上述之第2LUT斷片表T412而更廣之LBA之範圍,該第3LUT斷片表T413,係包含有複數之登錄C413。又,在被包含於第3LUT斷片表T413中的複數之登錄C413之各者處,係被分配有「被分配至與該第3LUT斷片表T413之下位之階層相對應的第2LUT斷片表T412處之LBA之範圍」,並被儲存有代表該第2LUT斷片表T412(之位置)之LUT指標。於此情況,被分配至第3LUT斷片表T413之各者處的LBA之範圍,係相當於藉由「被儲存在被包含於該第3LUT斷片表T413中之複數之登錄C413之各者處的LUT指標」所展示之所有的被分配至第2LUT斷片表T412處之LBA之範圍。
進而,在複數之第4LUT斷片表T414之各者處,係被分配有較上述之第3LUT斷片表T413而更廣之LBA之範圍,該第4LUT斷片表T414,係包含有複數之登錄C414。又,在被包含於第4LUT斷片表T414中的複數之登錄C414之各者處,係被分配有「被分配至與該第4LUT斷片表T414之下位之階層相對應的第3LUT斷片表T413處之LBA之範圍」,並被儲存有代表該第3LUT斷片表T413(之位置)之LUT指標。於此情況,被分配至第4LUT斷片表T414之各者處的LBA之範圍,係相當於藉由「被儲存在被包含於該第4LUT斷片表T414中之複數之登錄C414之各者處的LUT指標」所展示之所有的被分配至第3LUT斷片表T413處之LBA之範圍。
於此,與第4階層(亦即是,在階層構造中之最上位之階層)相對應的複數之第4LUT斷片表T414之各者,係分別與複數之名稱空間之各者相互對應。所謂名稱空間,係為藉由將非揮發性記憶體4所具備的記憶區域(複數之區塊)邏輯性地作區分所得到的區域。藉由對於各特定之範圍之記憶區域之每一者而分別分配名稱空間,例如就算是當在2以上之記憶區域處而LBA有所重複的情況時,亦成為能夠使用名稱空間ID(用以對於名稱空間作辨識之辨識資訊)以及LBA,來進行適當的對於資料之存取。若依據此,則係能夠將對於相異之名稱空間的存取,如同對於相異之裝置的存取一般地來進行。
在圖2中,複數之第4LUT斷片表T414,係對應於名稱空間NS1~NSn(n為2以上之自然數)。於此情況,複數之第4LUT斷片表T414之數量係為n。
另外,如同在圖2中所示一般,於LUT41中,係針對各名稱空間NS1~NSn(所相對應之第4LUT斷片表T414)之每一者而分別具備有階層構造,但是,該名稱空間NS1~NSn之各者的階層數,係因應於被分配至該名稱空間NS1~NSn處之記憶區域(之容量)而被決定。例如,當被分配至名稱空間處之記憶區域之容量為小的情況時,該名稱空間之階層數係變少。另一方面,例如當被分配至名稱空間處之記憶區域之容量為大的情況時,該名稱空間之階層數係變多。另外,在圖2所示之例中,係針對名稱空間NS1~NSn之各者的階層數為相同的情況作展示。
在具備有上述之圖2中所示之階層構造的LUT41中,係構成為:被儲存於「在與第4階層(最上位之階層)相對應之第4LUT斷片表T414中所包含的登錄C414」之各者處的LUT指標,係代表與第3階層相對應之第3LUT斷片表T413,被儲存於「在該第3LUT斷片表T413中所包含的登錄C413」之各者處的LUT指標,係代表與第2階層相對應之第2LUT斷片表T412,被儲存於「在該第2LUT斷片表T412中所包含的登錄C414」之各者處的LUT指標,係代表與第1階層(最下位之階層)相對應之第1LUT斷片表T411,在該第1LUT斷片表T411中所包含的登錄C411,係儲存與1個的LBA相對應之PBA。
若依據此種LUT41,則例如藉由基於在各種指令中所被指定的LBA(在各種指令中所包含之LBA)來對於第4LUT斷片表T414、第3LUT斷片表T413、第2LUT斷片表T412以及第1LUT斷片表T411依序作參照,係能夠特定出與該LBA相對應之PBA。
於此,在圖2所示之例中,第1LUT斷片表T411,係身為與「在LUT41所具有的階層構造中之最下位之階層」相對應之LUT斷片表,在被包含於該第1LUT斷片表T411中的登錄C411之各者處,係被儲存有與1個的LBA相對應之PBA。於此情況,若是假設被寫入至1個的PBA中之資料的容量係為4KiB,在1個的第1LUT斷片表T411中係包含有32個的登錄C411,則在對應於第1階層之1個的第1LUT斷片表T411中,係成為被分配有32個的LBA之範圍(亦即是,用以對於128KiB之資料進行存取的LBA)。
同樣的,若是假設在1個的第2LUT斷片表T412中,係包含有32個的登錄C412,在該登錄C412之各者中,係分別被儲存有代表「被分配有用以對於128KiB之資料進行存取之32個的LBA之第1LUT斷片表T411」之LUT指標(亦即是,在各登錄C412中,係被分配有被分配至該第1LUT斷片表T411處之32個的LBA之範圍),則在對應於第2階層之1個的第2LUT斷片表T412中,係成為被分配有32×32=1024個的LBA之範圍(亦即是,用以對於4MiB的資料進行存取之LBA)。
進而,若是假設在1個的第3LUT斷片表T413中,係包含有32個的登錄C413,在該登錄C413之各者中,係分別被儲存有代表「被分配有用以對於4MiB之資料進行存取之1024個的LBA之第2LUT斷片表T412」之LUT指標(亦即是,在各登錄C413中,係被分配有被分配至該第2LUT斷片表T412處之1024個的LBA之範圍),則在對應於第3階層之1個的第3LUT斷片表T413中,係成為被分配有1024×32=32768個的LBA之範圍(亦即是,用以對於128MiB的資料進行存取之LBA)。
又,若是假設在1個的第4LUT斷片表T414中,係包含有32個的登錄C414,在該登錄C414之各者中,係分別被儲存有代表「被分配有用以對於128MiB之資料進行存取之32768個的LBA之第3LUT斷片表T413」之LUT指標(亦即是,在各登錄C414中,係被分配有被分配至該第3LUT斷片表T413處之32768個的LBA之範圍),則在對應於第4階層之1個的第4LUT斷片表T414中,係成為被分配有32768×32=1048576個的LBA之範圍(亦即是,用以對於4GiB的資料進行存取之LBA)。
亦即是,在圖2所示之LUT41之例中,第1LUT斷片表T411之各者,係管理有用以對於128KiB之資料進行存取的LBA之範圍,第2LUT斷片表T412之各者,係管理有用以對於4MiB之資料進行存取的LBA之範圍,第3LUT斷片表T413之各者,係管理有用以對於128MiB之資料進行存取的LBA之範圍,第4LUT斷片表T414之各者,係管理有用以對於4GiB之資料進行存取的LBA之範圍。
另外,在圖2中,例如係針對「在第4LUT斷片表T414中所包含的複數之登錄C414之各者處被儲存有LUT指標」的情況來作了說明,但是,當藉由該LUT指標之各者所展示的複數之第3LUT斷片表T413係為在非揮發性記憶體4處而被連續地作配置的情況時,該第4LUT斷片表T414,係亦可構成為僅儲存「代表該些複數之第3LUT斷片表T413之中的開頭之第3LUT斷片表T413之LUT指標」(亦即是,將代表並非為開頭之第3LUT斷片表T413的LUT指標省略)。若依據此,則係能夠對於LUT41之容量作削減。於此,雖係針對第4LUT斷片表T414來作了說明,但是,關於其他之LUT斷片表,亦為相同。
又,例如當與被分配至1個的LUT斷片表中的LBA之範圍相對應之資料所被作寫入的非揮發性記憶體4內之PBA之連續性為有所保證的情況時,係亦可將與較該LUT斷片表之階層而更下位之階層相對應的(亦即是,藉由被儲存於在該LUT斷片表中所包含之登錄中之LUT指標所展示的)LUT斷片表省略。
具體而言,例如在「雖然第2LUT斷片表T412係管理用以對於4MiB之資料進行存取的LBA之範圍,但是藉由在該第2LUT斷片表T412中所管理的LBA而被存取之4MiB之資料乃是被寫入至相連續之PBA中」的情況時,在第3LUT斷片表T413中所包含之登錄C413,係亦可替代「代表該第2LUT斷片表T412之LUT指標」,而儲存「該4MiB之資料所被作寫入的開頭之PBA」。若依據此,則由於係成為不需要對於較此第3LUT斷片表T413而更下位之第2LUT斷片表T412以及第1LUT斷片表T411作參照,因此,係能夠有效率地對LUT41進行參照,而成為能夠使對於被寫入至非揮發性記憶體4中之資料的存取速度提升。
圖3,係對於在本實施形態中之LUT41中所包含的LUT斷片表之資料構造之其中一例作展示。於此,主要係針對第1LUT斷片表T411之資料構造作說明。
第1LUT斷片表T411,例如係包含有複數之PBA儲存部41a、LBA儲存部41b以及管理資料儲存部41c。
PBA儲存部41a,係相當於在圖2中所作了說明的被包含於第1LUT斷片表T411中之登錄C411。亦即是,PBA儲存部41a之數量,例如係為32個。PBA儲存部41a,係儲存「與被分配至該PBA儲存部41a(登錄C411)處之1個的LBA相對應之PBA(亦即是,與該LBA相對應之資料所被作寫入的PBA)」。另外,當與被分配至PBA儲存部41a處之1個的LBA相對應之資料乃是被儲存於快取記憶體551中的情況時,於該PBA儲存部41a中,係儲存有該快取記憶體551內之位址資訊(PBA)。被儲存在PBA儲存部41a中的PBA之容量,例如係為32位元。
又,在被儲存於PBA儲存部41a中之PBA處,例如係被附加有8位元之管理資料MD1,該管理資料MD1,係與該PBA一同地而被儲存在該PBA儲存部41a中。如此這般地而被對於PBA作附加之管理資料MD1,例如係包含有對於該PBA是身為非揮發性記憶體4內之PBA還是身為快取記憶體551內之位址資訊一事作管理之資料。
於此情況,PBA儲存部41a之各者的容量,係成為將PBA之容量(32位元)與管理資料MD1之容量(8位元)作了加算後的40位元,32個的PBA儲存部41a之合計容量係為160位元組。
LBA儲存部41b,係儲存「在被分配至第1LUT斷片表T411處的LBA之範圍中之開頭之LBA」。
在管理資料儲存部41c中,係被儲存有用以對於第1LUT斷片表T411所隸屬的名稱空間作辨識之名稱空間ID以及相當於被分配至該第1LUT斷片表T411處的LBA之範圍(該第1LUT斷片表T411所管理的LBA之範圍)之Grain(晶粒)。
另外,在管理資料儲存部41c中,係亦可被儲存有其他之資訊。具體而言,在管理資料儲存部41c中,係亦可被儲存有用以對於與第1LUT斷片表T411相對應的階層(第1階層)作辨識之辨識資訊(階層ID)等。
於此,在本實施形態中,例如當LUT41被作更新時,該LUT41之一部分(成為該更新之對象的LUT斷片表)係被儲存在快取記憶體551中。於此情況,LUT41之一部分係以快取列(cache line)單位而被作儲存。又,在快取記憶體551處而被作了更新的LUT41之一部分,係以快取列單位而被回寫至非揮發性記憶體4中。
針對以上述之快取列單位而將第1LUT斷片表T411儲存於快取記憶體551中的情況作考慮。若是將如此這般地而被儲存於快取記憶體551中之第1LUT斷片表T411設為LUT快取資料,則該LUT快取資料,係除了上述之PBA儲存部41a、LBA儲存部41b以及管理資料儲存部41c以外,例如更進而包含有代表應在快取記憶體551處而相互附加關連的LUT快取資料之指標。
具體而言,LUT快取資料,係包含有儲存代表「在該LUT快取資料之前而被作參照的LUT快取資料」之指標之上一指標儲存部41d、以及儲存代表「在該LUT快取資料之後而被作參照的其他之LUT快取資料」之指標之下一指標儲存部41e。
作為被儲存在上述之上一指標儲存部41d以及下一指標儲存部41e中的指標,例如係使用被儲存有其他之LUT快取資料的PBA,但是,係亦可使用其他之形式的位址。
藉由利用此種對於LUT快取資料所應作參照之前後的LUT快取資料之指標,係能夠使對於快取記憶體551之存取高速化,而能夠實現連續性之存取。另外,LUT快取資料,係亦可更進而包含有其他之管理資料。
在圖3中,雖係針對1個的第1LUT斷片表T411之資料構造而作了說明,但是,在LUT41中所包含的複數之第1LUT斷片表T411,係全部具有相同的資料構造。
又,關於第1LUT斷片表T411以外的其他之LUT斷片表(第2LUT斷片表T412~第4LUT斷片表T414)之資料構造,亦係與第1LUT斷片表T411相同。但是,在被包含於第2LUT斷片表T412~第4LUT斷片表T414中的PBA儲存部41a之各者處,係作為代表與下位之階層相對應的LUT斷片表之LUT指標,而被儲存有該LUT斷片表所被作儲存之非揮發性記憶體4內之PBA(32位元)。另外,當與下位之階層相對應的LUT斷片表乃是被儲存於快取記憶體551中的情況時,於該PBA儲存部41a中,係儲存有該快取記憶體551內之位址資訊。
又,就算是身為被包含於第2LUT斷片表T412~第4LUT斷片表T414處之PBA儲存部41a,也可能會有被儲存有「與被分配至該PBA儲存部41a(登錄C412、C413或C424)處的LBA之範圍相對應之資料所被作寫入的開頭之PBA」的情況。
另外,在圖3所示之例中,第1LUT斷片表T411~第4LUT斷片表T414之各者的容量,例如係為168位元組之固定長度,被儲存於快取記憶體551處的LUT快取資料之各者的容量,例如係為188位元組之固定長度,但是,在本實施形態中,第1LUT斷片表T411~第4LUT斷片表T414(亦即是,在LUT41中所包含的複數之LUT斷片表)係設為以具有相同之資料構造的方式所構成者。
於此,雖係針對「LUT41為具有由複數之階層所構成之階層構造」者,來作了說明,但是,在本實施形態中,VDM42亦係與LUT41相同的而具有階層構造。
以下,針對在本實施形態中之VDM42進行說明,但是,首先,係參照圖4,來針對在本實施形態之比較例中的VDM進行說明。在本實施形態之比較例中之VDM,假設係以在單一之階層中來對於被寫入至非揮發性記憶體4內之物理位址處之資料的有效性作管理的方式而被構成。
如同在圖4中所示一般,在本實施形態之比較例中之VDM42´,係包含有與單一之階層相對應的複數之VDM斷片表T421´。在複數之VDM斷片表T421´中,係分別被分配有互為相異之PBA(物理位址)之範圍,在該些VDM斷片表T421´之各者處,係對於「被儲存在被分配至該VDM斷片表T421´處之PBA之範圍中的資料之有效性(亦即是,該資料是有效還是無效)」作管理。
於此情況,例如能夠基於從主機2而來之寫入指令來將資料作寫入的非揮發性記憶體4內之PBA之全部範圍,係被作VDM斷片表T421´之數量之區分,該些被作了區分的PBA之範圍,係被分配至該些第1VDM斷片表T421´之各者處。藉由此,在複數之VDM斷片表T421´中,係可針對能夠基於從主機2而來之寫入指令而將資料作寫入的非揮發性記憶體4內之PBA之全部範圍中的資料之有效性作管理。另外,在複數之VDM斷片表T421´之各者中,被寫入至被分配至該VDM斷片表T421´處之PBA之範圍中的資料之有效性,係使用後述之位元映射(BMP)而被作管理。
於此,例如在基於從主機2而來之寫入指令而使資料被寫入至了非揮發性記憶體4內之PBA處的情況時,為了對於被寫入至了該PBA處之資料的有效性作更新,係需要參照該PBA所被作分配的VDM斷片表T421´,但是,為了參照該VDM斷片表T421´,係需要將代表上述之複數之VDM斷片表T421´之各者(的位置)之指標,預先保持(展開)於記憶體55上。如此這般地而被預先保持於記憶體55上之指標,例如係包含有「複數之VDM斷片表T421´之各者所被作儲存的非揮發性記憶體4內之PBA」。
例如若是假設「使資料之有效性被作管理的非揮發性記憶體4之記憶區域之容量係為2PiB,被寫入至1個的PBA處之資料之容量(亦即是,對於有效性作管理之資料的單位)係為4KiB」,則係成為2PiB÷4KiB=549755813888,在VDM42´處係需要對於大約512G個的4KiB之資料之有效性作管理。
又,若是假設以1個的VDM斷片表T421´來對於例如1280個的4KiB之資料作管理,則係成為512G÷1280=429496729.6,在VDM42´中所必要的VDM斷片表T421´之數量,係成為429496730。
進而,若是假設「代表複數之VDM斷片表T421´之各者」的指標之容量係為32位元(4Byte),則代表上述之429496730個的VDM斷片表T421´之全部的指標之容量的合計,係成為429496730×4Byte=1717986920Byte,而成為大約1.6GiB。
亦即是,在使用本實施形態之比較例之VDM42´來對於被寫入至非揮發性記憶體4內之PBA處的資料之有效性作管理的情況時,由於係需要恆常在記憶體55上而預先保持上述之1.6GiB之代表全部VDM斷片表T421´之指標(亦即是,在VDM42´之管理中所必要的資訊會成為持續佔據記憶體55),因此,係會有對於易用性(usability)造成損害的情況。具體而言,雖然若是在記憶體55(快取記憶體551)處預先保持有LUT41,則係能夠使針對從主機2而來之指令的回應速度(IO回應速度)提升,而為有用,但是,係會有起因於上述之VDM斷片表T421´之各者之指標而導致無法確保為了保持LUT41所需之充分之記憶區域的可能性。
又,非揮發性記憶體4雖係藉由複數之晶片所構成,但是,例如在使該晶片之數量或者是使該晶片自身之容量作了增加的情況時,非揮發性記憶體4(亦即是,記憶體系統3所管理的記憶區域)內之PBA之數量係會增加。
起因於此,由於上述之VDM斷片表T421´之數量也會增加,因此,代表VDM斷片表T421´之指標之數量也會同樣的增加,而需要為了該指標而在記憶體55處確保更大的記憶區域。
同樣的,當非揮發性記憶體4內之PBA之數量有所增加的情況時,由於VDM42´自身之容量也會變大,因此,因應於需要,係會有不得不將用以將該VDM42´作快取之記憶區域擴大的情況。
相對於此,雖然例如亦可考慮藉由增設記憶體(DRAM)來確保記憶區域,但是,此會導致成本之增加,而需要避免。亦即是,在本實施形態之比較例中的VDM42´的情況時,係難以進行針對非揮發性記憶體4的技術革新(也就是,記憶容量之增大)之對策。
進而,在啟動記憶體系統3時,如同上述一般,係需要將代表全部的VDM斷片表T421´之指標展開於記憶體55之上。
又,在使記憶體系統3結束(停止)時,係需要將被保持於記憶體55之上的指標全部非揮發化。具體而言,例如當在記憶體55(快取記憶體551)中被快取有1個的VDM斷片表T421´的情況時,被保持於記憶體55之上的代表該VDM斷片表T421´之指標,係會被變更為該快取記憶體551內之位址資訊。在使記憶體系統3結束時,係成為將此種VDM斷片表T421´回寫至非揮發性記憶體4中(亦即是,非揮發化),但是,於此情況,係需要將代表該VDM斷片表T421´之指標(快取記憶體551內之位址資訊)變更為該VDM斷片表T421´所被作了寫入的非揮發性記憶體4內之PBA,並將該被作了變更後的非揮發性記憶體4內之PBA(亦即是,指標)寫入至非揮發性記憶體4中。在使記憶體系統3結束的情況時,係對於被快取至快取記憶體551中之所有的VDM斷片表T421´而實行此種處理。
亦即是,在本實施形態之比較例中之VDM42´的情況時,在使記憶體系統3啟動以及結束時之內部處理(啟動處理以及結束處理)中係會耗費時間。
因此,在本實施形態中,係與上述之LUT41相同的,藉由採用具有階層構造之VDM42,來實現「對於被寫入至非揮發性記憶體4中之資料的有效性有效率地作管理」的目的。
具體而言,在本實施形態中之VDM42,係構成為具備有由複數之階層所構成之階層構造,並包含有與該複數之階層相對應之複數之VDM斷片表。
在此種VDM42中,複數之VDM斷片表之各者,例如係設為具有相同之容量者。又,詳細內容雖係於後再述,但是,在與複數之階層相對應之複數之VDM斷片表之中的「與上位之階層相對應之VDM斷片表」中,係被儲存有PBA(之範圍)、和用以對於「與較該VDM斷片表而更下位之階層相對應的VDM斷片表」作參照的參照目標資訊(以下,標記為VDM指標)等。另外,VDM指標,例如係包含有「成為參照目標之VDM斷片表」所被作儲存的非揮發性記憶體4內之PBA。又,與「VDM42所具有的階層構造中之最下位之階層」相對應之VDM斷片表,係對於被儲存在被分配至該VDM斷片表處之PBA之範圍中的特定之容量之資料(例如,4KiB之資料)之各者的有效性作管理。
以下,參考圖5,針對在本實施形態中之具備有階層構造之VDM42作概念性說明。在圖5所示之例中,為了方便說明,係針對「VDM42為具有由4個的階層所構成之階層構造」的情況作考慮。於此情況,VDM42,係包含有複數之第1VDM斷片表T421~第4VDM斷片表T424。
如同圖5中所示一般,第1VDM斷片表T421,係身為與在VDM42所具有的階層構造中之最下位之階層(以下,標示為第1階層)相對應之VDM斷片表。第2VDM斷片表T422,係身為與在VDM42所具有的階層構造中之第1VDM斷片表T421之上位之階層(以下,標示為第2階層)相對應之VDM斷片表。第3VDM斷片表T423,係身為與在VDM42所具有的階層構造中之第2VDM斷片表T422之上位之階層(以下,標示為第3階層)相對應之VDM斷片表。第4VDM斷片表T424,係身為與在VDM42所具有的階層構造中之第3VDM斷片表T423之上位之階層(以下,標示為第4階層)相對應之VDM斷片表。另外,在圖5所示之例中,第4階層係身為在VDM42所具有的階層構造中之最上位之階層,在VDM42中,與最上位之階層相對應之VDM斷片表(亦即是,第4VDM斷片表T424)之數量,例如係為1個。在本實施形態中,雖係針對第4VDM斷片表T424(與最上位之階層相對應之VDM斷片表)的數量係為1個的情況來作說明,但是,該第4VDM斷片表T424之數量,係亦可為複數。
以下,針對上述之第1VDM斷片表T421~第4VDM斷片表T424之各者詳細作說明。
首先,在複數之第1VDM斷片表T421之各者處,係被分配有連續之PBA之範圍,該第1VDM斷片表T421,係包含有複數之登錄C421。又,在被包含於第1VDM斷片表T421中之複數之登錄C421的各者處,係被儲存有由「對於被儲存在符合於被分配至該第1VDM斷片表T421處之PBA之範圍的複數之PBA之各者處之資料之有效性作管理的1位元之位元資訊」所構成的位元映射(BMP)。在此種位元映射中,於各PBA之每一者處,例如當位元資訊為「1」的情況時,係可代表被儲存於該PBA處之資料係為有效,當位元資訊為「0」的情況時,係可代表被儲存於該PBA處之資料係為無效。
另外,複數之第1VDM斷片表T421係相當於上述之圖4中所示之複數之VDM斷片表T421´,能夠基於從主機2而來之寫入指令而將資料作寫入的非揮發性記憶體4內之PBA之全部範圍,係被作VDM斷片表T421之數量的數量之區分,該被作了區分的PBA之範圍,係被分配至該第1VDM斷片表T421之各者處。藉由此,在複數之VDM斷片表T421中,係可針對能夠基於從主機2而來之寫入指令而將資料作寫入的非揮發性記憶體4內之PBA之全部範圍中的資料之有效性作管理。
接著,在複數之第2VDM斷片表T422之各者處,係被分配有較上述之第1VDM斷片表T421而更廣之PBA之範圍,該第2VDM斷片表T422,係包含有複數之登錄C422。又,在被包含於第2VDM斷片表T422中的複數之登錄C422之各者處,係被分配有「被分配至與該第2VDM斷片表T422之下位之階層相對應的第1VDM斷片表T421處之PBA之範圍」,並被儲存有代表該第1VDM斷片表T421(之位置)之VDM指標。於此情況,被分配至第2VDM斷片表T422之各者處的PBA之範圍,係相當於藉由「被儲存在被包含於該第2VDM斷片表T422中之複數之登錄C422之各者處的VDM指標」所展示之所有的被分配至第1VDM斷片表T421處之PBA之範圍。
又,在複數之第3VDM斷片表T423之各者處,係被分配有較上述之第2VDM斷片表T422而更廣之PBA之範圍,該第3VDM斷片表T423,係包含有複數之登錄C423。又,在被包含於第3VDM斷片表T423中的複數之登錄C423之各者處,係被分配有「被分配至與該第3VDM斷片表T423之下位之階層相對應的第2VDM斷片表T422處之PBA之範圍」,並被儲存有代表該第2VDM斷片表T422(之位置)之VDM指標。於此情況,被分配至第3VDM斷片表T423之各者處的PBA之範圍,係相當於藉由「被儲存在被包含於該第3VDM斷片表T423中之複數之登錄C423之各者處的VDM指標」所展示之所有的被分配至第2VDM斷片表T422處之PBA之範圍。
進而,在複數之第4VDM斷片表T424處,係被分配有較上述之第3VDM斷片表T423而更廣之PBA之範圍,該第4VDM斷片表T424,係包含有複數之登錄C424。又,在被包含於第4VDM斷片表T424中的複數之登錄C424之各者處,係被分配有「被分配至與該第4VDM斷片表T424之下位之階層相對應的第3VDM斷片表T423處之PBA之範圍」,並被儲存有代表該第3VDM斷片表T423(之位置)之VDM指標。於此情況,被分配至第4VDM斷片表T424處的LBA之範圍,係相當於藉由「被儲存在被包含於該第4VDM斷片表T424中之複數之登錄C424之各者處的VDM指標」所展示之所有的被分配至第3VDM斷片表T423處之PBA之範圍。
另外,在如同上述一般之「與在VDM42所具備的階層構造中之最上位之階層相對應的第4VDM斷片表T424之數量係為1」的情況時,被分配至該第4VDM斷片表T424處的PBA之範圍,係涵蓋使資料之有效性被作管理的非揮發性記憶體4內之PBA之全部範圍。
在具備有上述之圖5中所示之階層構造的VDM42中,係構成為:被儲存在「被包含於與第4階層(最上位之階層)相對應的第4VDM斷片表T424中之登錄C424之各者處」的VDM指標,係代表與第3階層相對應之第3VDM斷片表T423,被儲存在「被包含於該第3VDM斷片表T423中之登錄C423之各者處」的VDM指標,係代表與第2階層相對應之第2VDM斷片表T422,被儲存在「被包含於該第2VDM斷片表T422中之登錄C422之各者處」的VDM指標,係代表與第1階層(最下位之階層)相對應之第1VDM斷片表T421,在被包含於該第1VDM斷片表T421中之登錄C421之各者處,係儲存有代表被儲存在複數之PBA處的特定之容量之資料之各者的有效性之旗標資訊(位元映射)。
若依據此種VDM42,則例如藉由基於被儲存有應對於有效性作確認的資料之PBA來對於第4VDM斷片表T424、第3VDM斷片表T423、第2VDM斷片表T422以及第1VDM斷片表T421依序作參照,係能夠掌握到該資料之有效性。
亦即是,在圖5所示之VDM42中,由於係能夠根據與第4階層相對應之第4VDM斷片表T424,來掌握到被儲存於全部的PBA中之資料之有效性(亦即是,在第1VDM斷片表中而被作管理的資料之有效性),因此,與在上述之圖4中所作了說明的本實施形態之比較例中之VDM42´相異,在記憶體55處,係僅需要保持代表第4VDM斷片表T424之VDM指標(亦即是,1個的指標)即可。
於此,在圖5所示之例中,第1VDM斷片表T421,係身為與「在VDM42所具有的階層構造中之最下位之階層」相對應之VDM斷片表,在被包含於該第1VDM斷片表T421中的登錄C421之各者處,係被儲存有代表「被儲存於相連續之PBA之範圍中的特定之容量之資料之各者的有效性」之旗標資訊(位元映射)。於此情況,若是假設在1個的第1VDM斷片表T421中係包含有32個的登錄C421,進而,在1個的登錄C421中係被儲存有代表32個的資料的有效性之32位元之位元映射,則在對應於第1階層之1個的第1VDM斷片表T421中,係成為被分配有32×32=1024個的PBA之範圍。於此情況,如同上述一般地,若是假設被寫入至1個的PBA中之資料的容量係為4KiB,則在1個的第1VDM斷片表T421中,係能夠對於4KiB×1024=4MiB之資料的有效性作管理。
同樣的,若是假設在1個的第2VDM斷片表T422中,係包含有32個的登錄C422,在該登錄C422之各者中,係分別被儲存有代表「被分配有被儲存有4MiB之資料之1024個的PBA之第1VDM斷片表T421」之VDM指標(亦即是,在各登錄C422中,係被分配有被分配至該第1VDM斷片表T421處之1024個的PBA之範圍),則在對應於第2階層之1個的第2VDM斷片表T422中,係成為被分配有1024×32=32768個的PBA之範圍。於此情況,在1個的第2VDM斷片表T422中,係能夠對於4KiB×32768=128MiB之資料的有效性作管理。
進而,若是假設在1個的第3VDM斷片表T423中,係包含有32個的登錄C423,在該登錄C423之各者中,係分別被儲存有代表「被分配有被儲存有128MiB之資料之32768個的PBA之第2VDM斷片表T422」之指標(亦即是,在各登錄C423中,係被分配有被分配至該第2VDM斷片表T422處之32768個的PBA之範圍),則在對應於第3階層之1個的第3VDM斷片表T423中,係成為被分配有32768×32=1048576個的PBA之範圍。於此情況,在1個的第3VDM斷片表T423中,係能夠對於4KiB×1048576=4GiB之資料的有效性作管理。
又,若是假設在1個的第4VDM斷片表T424中,係包含有32個的登錄C424,在該登錄C424之各者中,係分別被儲存有代表「被分配有被儲存有4GiB之資料之1048576個的PBA之第3VDM斷片表T423」之指標(亦即是,在各登錄C424中,係被分配有被分配至該第3VDM斷片表T423處之1048576個的PBA之範圍),則在對應於第4階層之1個的第4VDM斷片表T424中,係成為被分配有1048576×32=33554432個的PBA之範圍。於此情況,在1個的第4VDM斷片表T424中,係能夠對於4KiB×33554432=128GiB之資料的有效性作管理。
亦即是,在圖5所示之VDM42之例中,第1VDM斷片表T421之各者,係分別對於被儲存有4MiB之資料的PBA之範圍作管理,第2VDM斷片表T422之各者,係分別對於被儲存有128MiB之資料的PBA之範圍作管理,第3VDM斷片表T423之各者,係分別對於被儲存有4GiB之資料的PBA之範圍作管理,第4VDM斷片表T424之各者,係分別對於被儲存有128GiB之資料的PBA之範圍作管理。
另外,在圖5中,例如係針對「在第4VDM斷片表T424中所包含的複數之登錄C424之各者處被儲存有VDM指標」的情況來作了說明,但是,當藉由該VDM指標之各者所展示的複數之第3VDM斷片表T423係為在非揮發性記憶體4處而被連續地作配置的情況時,該第4VDM斷片表T424,係亦可構成為僅儲存「代表該些複數之第3VDM斷片表T423之中的開頭之第3VDM斷片表T423之VDM指標」(亦即是,將代表並非為開頭之第3VDM斷片表T423的VDM指標省略)。若依據此,則係能夠對於VDM42之容量作削減。於此,雖係針對第4VDM斷片表T424來作了說明,但是,關於其他之VDM斷片表,亦為相同。
又,例如當被寫入至「被分配至1個的VDM斷片表中的PBA之範圍」處之4KiB之資料之各者的有效性(有效或無效)係為共通的情況時,係亦可在該VDM斷片表中而將被寫入至該PBA之範圍中的資料之有效性整批地作管理,並將與較該VDM斷片表之階層而更下位之階層相對應的(亦即是,藉由被儲存於在該VDM斷片表中所包含之登錄中之指標所展示的)VDM斷片表省略。
具體而言,例如,第2VDM斷片表T422,係對於128MiB之資料所被儲存的PBA之範圍作管理,但是,針對該128MiB之資料(構成該128MiB之資料之全部的4KiB之資料)的全部均為有效或者是無效的情況作考慮。於此情況,藉由將代表「被儲存在被分配至第2VDM斷片表T422處之PBA之範圍中的128MiB之資料係全部為有效或者是全部為無效」一事的管理資料,保持於與該第2VDM斷片表T422之上位之階層相對應(亦即是,包含有儲存代表該第2VDM斷片表T422之VDM指標的登錄)之第3VDM斷片表T423處,係亦可將第2VDM斷片表T422以及與該第2VDM斷片表T422之下位之階層相對應的第1VDM斷片表T421之各者廢棄。若依據此,則由於係成為不需要對於較第3VDM斷片表T423而更下位之第2VDM斷片表T422以及第1VDM斷片表T421作參照,因此,係成為能夠使對於VDM42之存取速度提升。
圖6,係對於在本實施形態中之VDM42中所包含的第1VDM斷片表T421之資料構造之其中一例作展示。
第1VDM斷片表T421,例如係包含有複數之映射儲存部42a、PBA儲存部42b以及管理資料儲存部42c。
映射儲存部42a,係相當於在圖5中所作了說明的被包含於第1VDM斷片表T421中之登錄C421。亦即是,映射儲存部42a之數量,例如係為32個。映射儲存部42a,係儲存由「對於被寫入至被分配至該映射儲存部42a(登錄C421)處之PBA之範圍中的4KiB之資料之各者之有效性(有效或無效)作管理的1位元之旗標資訊」所構成的位元映射。當在映射儲存部42a處係被分配有32個的PBA之範圍的情況時,被儲存在該映射儲存部42a中之位元映射之容量,係成為1位元×32=32位元。
又,在被儲存於映射儲存部42a中之位元映射處,例如係被附加有8位元之管理資料MD2,該管理資料MD2,係與該位元映射一同地而被儲存在該映射儲存部42a中。如此這般,作為被附加於位元映射處之管理資料MD2,例如係被設定有被稱作VDM模式之幻數(magic number)。在作為管理資料MD2而被作設定的幻數中,係包含有「0xff」以及「0x00」。
另外,如同上述一般,被儲存於映射儲存部42a中之位元映射,係由代表被儲存在被分配至該映射儲存部42a處之32個的PBA之各者處之4KiB之資料之有效性的1位元之映射資訊所構成,但是,在以下之說明中,為了方便說明,係將被儲存在該32個的PBA之各者處之4KiB之資料,稱作在該位元映射處而被作管理之資料。
幻數「0xff」,係代表在被附加有該幻數(管理資料MD2)之位元映射處所被作管理的資料之全部均為有效(亦即是,構成該位元映射之旗標資訊係全部為「1」)。亦即是,若依據此幻數「0xff」,則係能夠對於被寫入至一定之PBA之範圍中之資料的有效性整批地作管理,而能夠並不對於被附加有該幻數之位元映射作參照地便掌握到「在該位元映射處所被作管理的資料之全部均為有效」。
幻數「0x00」,係代表在被附加有該幻數(管理資料MD2)之位元映射處所被作管理的資料之全部均為無效(亦即是,構成該位元映射之旗標資訊係全部為「0」)。亦即是,若依據此幻數「0x00」,則與上述之幻數「0xff」相同的,係能夠對於被寫入至一定之PBA之範圍中之資料的有效性整批地作管理,而能夠並不對於被附加有該幻數之位元映射作參照地便掌握到「在該位元映射處所被作管理的資料之全部均為無效」。
另外,當作為管理資料MD2而並未被設定有幻數「0xff」以及「0x00」的情況時,係代表被附加有該管理資料MD2之位元映射乃是由代表有效之旗標資訊以及代表無效之旗標資訊所構成(亦即是,在該位元映射中,代表有效之旗標資訊與代表無效之旗標資訊係混合存在)。
當如同上述一般地而在位元儲存部42a中被儲存有位元映射以及管理資料MD2的情況時,映射儲存部42a之各者的容量,係成為將該位元映射之容量(32位元)與該管理資料MD2之容量(8位元)作了加算後的40位元,32個的映射儲存部42a之合計容量係為160位元組。
PBA儲存部42b,係儲存「在被分配至第1VDM斷片表T421處的PBA之範圍中之開頭之PBA」。
在管理資料儲存部42c中,係被儲存有代表「被儲存於被分配至第1VDM斷片表T421處之PBA之範圍中的複數之4KiB之資料之中的有效之資料之數量」的Valid ADU Count以及相當於被分配至該第1VDM斷片表T421處的PBA之範圍(該第1VDM斷片表T421所管理的PBA之範圍)之Grain。在第1VDM斷片表T421的情況時,Valid ADU Count之最大值係為1024。
另外,在管理資料儲存部42c中,係亦可被儲存有其他之資訊。具體而言,在管理資料儲存部42c中,係亦可被儲存有用以對於與第1VDM斷片表T421相對應的階層(第1階層)作辨識之辨識資訊(階層ID)等。
於此,在本實施形態中,例如當VDM42被作更新時,該VDM42之一部分(成為該更新之對象的VDM斷片表)係被儲存在快取記憶體551中。於此情況,VDM42之一部分係以快取列(cache line)單位而被作儲存。又,在快取記憶體551處而被作了更新的VDM42之一部分,係以快取列單位而被回寫至非揮發性記憶體4中。
針對以上述之快取列單位而將第1VDM斷片表T421儲存於快取記憶體551中的情況作考慮。若是將如此這般地而被儲存於快取記憶體551中之第1VDM斷片表T421設為VDM快取資料,則該VDM快取資料,係除了上述之映射儲存部42a、PBA儲存部42b以及管理資料儲存部42c以外,例如更進而包含有代表應在快取記憶體551處而相互附加關連的VDM快取資料之指標。
具體而言,VDM快取資料,係包含有儲存代表「在該VDM快取資料之前而被作參照的VDM快取資料」之指標之上一指標儲存部42d、以及儲存代表「在該VDM快取資料之後而被作參照的其他之VDM快取資料」之指標之下一指標儲存部42e。另外,在上一指標儲存部42d以及下一指標儲存部42e中,係亦可被儲存有代表上述之LUT快取資料的指標。
作為被儲存在上述之上一指標儲存部42d以及下一指標儲存部42e中的指標,例如係使用被儲存有其他之VDM快取資料的PBA,但是,係亦可使用其他之形式的位址。
藉由利用此種對於VDM快取資料所應作參照之前後的VDM快取資料之指標,係能夠使對於快取記憶體551之存取高速化,而能夠實現連續性之存取。另外,VDM快取資料,係亦可更進而包含有其他之管理資料。
在圖6中,雖係針對1個的第1VDM斷片表T421之資料構造而作了說明,但是,在VDM42中所包含的複數之第1VDM斷片表T421,係全部具有相同的資料構造。
接著,在圖7中,對於在本實施形態中之VDM42中所包含的第2VDM斷片表T422之資料構造之其中一例作展示。另外,於此,主要針對與上述之圖6中所示之第1VDM斷片表T421相異之處作說明。
在圖6中,雖係針對第1VDM斷片表T421為包含有映射儲存部42a來作了說明,但是,第2VDM斷片表T422,係替代該映射儲存部42a,而包含PBA儲存部42f。
PBA儲存部42f,係相當於在圖5中所作了說明的被包含於第2VDM斷片表T422中之登錄C422。亦即是,PBA儲存部42f之數量,例如係為32個。PBA儲存部42f,係作為代表與第2VDM斷片表T422之下位之階層相對應的第1VDM斷片表T421之指標,而儲存該第1VDM斷片表T421所被作儲存之非揮發性記憶體4內之PBA。另外,當與下位之階層相對應的第1VDM斷片表T421乃是被儲存於快取記憶體551中的情況時,於PBA儲存部42f中,係儲存有該快取記憶體551內之位址資訊。被儲存在PBA儲存部42f中的PBA之容量,例如係為32位元。
又,在被儲存於PBA儲存部42f中之PBA處,例如係被附加有8位元之管理資料MD3,該管理資料MD3,係與該位元映射一同地而被儲存在該PBA儲存部42f中。如此這般,作為被附加於位元映射處之管理資料MD3,係與在上述之圖6中所作了說明的管理資料MD2相同的,而被設定有被稱作VDM模式之幻數。
另外,作為管理資料MD2,雖係針對作為幻數而被設定有「0xff」以及「0x00」者來作了說明,但是,在作為管理資料MD3所被設定之幻數中,係除了該「0xff」以及「0x00」之外,更進而包含有「0xfc」以及「0xfd」。
幻數「0xfc」,係代表被附加有該幻數(管理資料MD3)之PBA乃身為非揮發性記憶體4內之PBA。若依據此幻數「0xfc」,則係能夠基於被附加有該幻數之PBA,來參照(取得)被儲存於非揮發性記憶體4中之第1VDM斷片表T421。
幻數「0xfd」,係代表被附加有該幻數(管理資料MD3)之PBA乃身為快取記憶體551內之位址資訊。若依據此幻數「0xfd」,則係能夠基於被附加有該幻數之PBA,來參照(取得)被儲存於快取記憶體551中之第1VDM斷片表T421。
另外,如同上述一般地基於被儲存在PBA儲存部42f中之PBA而被作參照的第1VDM斷片表T421,係身為與被分配有「被分配至該PBA儲存部42f(登錄C422)處之PBA之範圍」的第1階層相對應之VDM斷片表。
又,作為管理資料MD3,係亦可被設定有上述之幻數「0xff」或「0x00」。當作為管理資料MD3而被設定有幻數「0xff」的情況時,係代表被儲存在「被分配至儲存有被附加有該幻數之PBA的PBA儲存部42f處之PBA(例如,1024個的PBA)之範圍中」的4KiB之資料之全部均為有效。另一方面,當作為管理資料MD3而被設定有幻數「0x00」的情況時,係代表被儲存在「被分配至儲存有被附加有該幻數之PBA的PBA儲存部42f處之PBA(例如,1024個的PBA)之範圍中」的4KiB之資料之全部均為無效。
亦即是,當作為管理資料MD3而被設定有幻數「0xff」以及「0x00」之其中一方的情況時,係能夠掌握到,被儲存在「被分配至儲存有被附加有該幻數之PBA的PBA儲存部42f(登錄C422)處之PBA之範圍中」的全部之資料均為有效或者是無效。於此情況,係並不需要基於被附加有幻數「0xff」或「0x00」的PBA來參照與下位之階層相對應之第1VDM斷片表T421。
另一方面,當作為管理資料MD3而並未被設定有幻數「0xff」以及「0x00」(亦即是,係被設定有幻數「0xfc」或者是「0xfd」)的情況時,係能夠掌握到,在「被分配至儲存有被附加有該幻數之PBA的PBA儲存部42f(登錄C422)處之PBA之範圍中」,係有效之資料以及無效之資料為混合存在。於此情況,係有必要基於被附加有幻數「0xfc」或「0xfd」的PBA來參照與下位之階層相對應之第1VDM斷片表T421。
當如同上述一般地而在PBA儲存部42f中被儲存有PBA以及管理資料MD3的情況時,PBA儲存部42f之各者的容量,係成為將PBA之容量(32位元)與管理資料MD3之容量(8位元)作了加算後的40位元,32個的PBA儲存部42f之合計容量係為160位元組。
另外,第2VDM斷片表T422,係除了PBA儲存部42f以外,更進而包含有PBA儲存部42b以及管理資料儲存部42c,但是,關於該PBA儲存部42b以及管理資料儲存部42c,由於係如同在圖6中所作了說明一般,因此,於此係省略其之詳細說明。
又,在被儲存於快取記憶體551中之第2VDM斷片表T422(VDM快取資料)中,係包含有上一指標儲存部42d以及次一指標儲存部42e,但是,關於該上一指標儲存部42d以及次一指標儲存部42e,由於係亦如同在圖6中所作了說明一般,因此,於此係省略其之詳細說明。
在圖7中,雖係針對1個的第2VDM斷片表T422之資料構造而作了說明,但是,在VDM42中所包含的複數之第2VDM斷片表T422,係全部具有相同的資料構造。
又,關於第2VDM斷片表T422以外的其他之VDM斷片表(第3VDM斷片表T423以及第4VDM斷片表T424)之資料構造,亦係與第2VDM斷片表T422相同。亦即是,例如在第3VDM斷片表T423中,亦同樣的,當作為管理資料MD3而被設定有幻數「0xff」以及「0x00」之其中一方的情況時,係並不需要基於被附加有該幻數之PBA來參照與下位之階層相對應之第2VDM斷片表T422。在第4VDM斷片表T424的情況時,亦為相同。
另外,在上述之圖6以及圖7所示之例中,第1VDM斷片表T421~第4VDM斷片表T424之各者的容量,例如係為168位元組之固定長度,被儲存於快取記憶體551處的VDM快取資料之各者的容量,例如係為188位元組之固定長度,但是,在本實施形態中,第1VDM斷片表T421~第4VDM斷片表T424(亦即是,在VDM42中所包含的複數之VDM斷片表)係設為以具有相同之資料構造的方式所構成者。
又,如同在上述之圖3、圖6以及圖7中所作了說明一般,在本實施形態中之LUT41(被包含於該LUT41中之各LUT斷片表)以及VDM42(在該VDM42中所包含之各VDM斷片表),係以具有相同之資料構造的方式而被構成。以下,針對上述之LUT41與VDM42之間之關係性作說明。
首先,LUT41,係如同上述一般地而身為用以對於與LBA相對應之PBA作管理之資料,若是假設與最下位之階層(第1階層)相對應之1個的第1LUT斷片表T411為包含有32個的登錄C411(PBA儲存部41a),則在該第1LUT斷片表T411處,係能夠管理32個LBA(所對應之PBA)。又,若是假設與從最下位之階層起而上一位的階層(第2階層)相對應之1個的第2LUT斷片表T412為同樣的包含有32個的登錄C412,則在該第2LUT斷片表T412處,係能夠管理32×32=1024個LBA(所對應之PBA)。於此,雖係說明至第2階層,但是,關於較該第2階層而更上位之階層,亦為相同。
另一方面,VDM42係如同上述一般地而身為用以對於被儲存在各PBA中之資料的有效性作管理之資料,若是假設在與最下位之階層(第1階層)相對應之1個的第1VDM斷片表T421之1個的登錄C421(映射儲存部42a)中係被儲存有32位元之位元映射,則在該第1VDM斷片表T421中係能夠對於32位元×32=1024個的PBA(被儲存於該些PBA中之資料)作管理。又,若是假設與從最下位之階層起而上一位的階層(第2階層)相對應之1個的第2VDM斷片表T422為同樣的包含有32個的登錄C422,則在該第2VDM斷片表T422處,係能夠管理1024×32=32768個PBA(被儲存於該些PBA中之資料)。於此,雖係說明至第2階層,但是,關於較該第2階層而更上位之階層,亦為相同。
亦即是,在本實施形態中,LUT41以及VDM42係分別藉由1個的登錄來管理與下位之階層相對應之1個的斷片表,不論是在該LUT41以及VDM42之何者中,均能夠當階層成為更為上位之1個階層時而對於32倍的數量之PBA作管理。
於此,針對當「與相連續之1024個的LBA之範圍相對應之4MiB之資料被寫入(序列寫入)至了非揮發性記憶體4內之相連續之1024個的PBA處」的情況作考慮。另外,假設在1024個的PBA之各者處係分別被寫入有4KiB之資料。
於此情況,係需要在LUT41中,對於「與被寫入至了非揮發性記憶體4中之4MiB之資料相對應的LBA」和「該資料所被作了寫入的PBA」之間之對應關係作管理,但是,如同上述一般,第2LUT斷片表T412係能夠管理1024個的LBA(與該些LBA相對應之PBA)。
故而,當第2LUT斷片表T412所管理(亦即是,被分配至該第2LUT斷片表T412處)的1024個的LBA為與上述之「與4MiB之資料相對應之1024個的LBA」相互一致的情況時,在被儲存於「被包含於與該第2LUT斷片表T412之上位之階層相對應之第3LUT斷片表T413中的複數之登錄C413」中的LUT指標之中,係能夠將代表該第2LUT斷片表T412之LUT指標,更新為該4MiB之資料所被作了寫入之1024個的PBA之中之開頭之PBA。若依據此,則係能夠藉由被包含於第3LUT斷片表T413中之1個的登錄C413,來對於「與上述之4MiB之資料相對應的LBA」和「該資料所被作了寫入的PBA」之間之對應關係作管理。
另一方面,在如同上述一般地而於非揮發性記憶體4內之相連續之1024個的PBA中被寫入有4MiB之資料的情況時,係需要將該4MiB之資料作為有效之資料而在VDM42中作管理,但是,如同上述一般,第1VDM斷片表T421係能夠管理1024個的PBA。
故而,當第1VDM斷片表T421所管理(亦即是,被分配至該第1VDM斷片表T421處)的1024個的PBA為與上述之「4MiB之資料所被作了寫入的1024個的PBA」相互一致的情況時,在被儲存於「被包含於與該第1VDM斷片表T421之上位之階層相對應之第2VDM斷片表T422中的複數之登錄C422」中的VDM指標之中,係能夠將被附加於代表該第1VDM斷片表T421之VDM指標處的管理資料MD3(幻數),更新為「0xff」。若依據此,則係能夠藉由被包含於第2VDM斷片表T422中之1個的登錄C422,來對於「被儲存在上述之1024個的PBA中之4MiB之資料係為有效」一事作管理。
亦即是,當如同上述一般地而使與相連續之1024個的LBA之範圍相對應之4MiB之資料被寫入至了相連續之1024個的PBA中的情況時,該LBA以及PBA之對應關係,係可藉由將在與「從被包含於LUT41中之最下位之階層起而更上2個的上位階層」相對應之LUT斷片表中所包含之1個的登錄(PBA)作變更一事,來進行管理。又,如此這般地而被寫入至了非揮發性記憶體4中的4MiB之資料之有效性,係可藉由將在與「從被包含於VDM42中之最下位之階層起而更上1個的上位階層」相對應之VDM斷片表中所包含之1個的登錄(幻數)作變更一事,來進行管理。
如此這般,在本實施形態中,藉由將在LUT41以及VDM42中所包含的各斷片表設為相同之資料構造,並使在該LUT41以及VDM42中之管理單位相互一致,係能夠並不對於與最下位之階層相對應之斷片表進行更新地,而僅藉由將被包含於上位之階層之斷片表中的登錄作變更來完成LUT41以及VDM42之更新。
於此,為了如同上述一般地藉由將被包含於上位之階層之斷片表中的登錄作變更來完成LUT41以及VDM42之更新,具備有與在LUT41中所包含之LUT斷片表相同之資料構造的被包含於VDM42中之VDM斷片表,係需要滿足
M=y×N
^x(以下,標記為條件式)。
另外,在上述之條件式中,N係為在與最下位之階層相對應之第1VDM斷片表T421中所包含的登錄之數量,M係為在與最下位之階層相對應之第1VDM斷片表T421中所包含之1個的登錄中而使有效性被作管理的4KiB之資料(亦即是,該資料所被作儲存之PBA)之數量。又,在條件式中,x係為0以上之整數,y係為1以上且未滿N之整數,或者是1以上且未滿N之整數的倒數。
以下,針對上述之N與M之間之關係性具體性地作說明。於此,將「被分配至各LUT斷片表處的LBA(與該LBA相對應之PBA)」之數量,稱作該LUT斷片表之PBA管理數,並將「被分配至各VDM斷片表處的PBA」之數量,稱作該VDM斷片表之PBA管理數。
另外,被分配至「被包含於與第1階層(最下位之階層)相對應之LUT斷片表(第1LUT斷片表T411)中之1個的登錄」處之LBA(與該LBA相對應之PBA)之數量係為1,在以下之說明中,亦為相同。
圖8,係對於在N=32、M=32的情況時之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示。
於此,在N=32、M=32的情況時,與第1階層相對應的LUT斷片表之PBA管理數,係為32,與該第1階層相對應的VDM斷片表(第1VDM斷片表T421)之PBA管理數,係為1024。又,與第2階層相對應的LUT斷片表(第2LUT斷片表T412)之PBA管理數,係為1024,與該第2階層相對應的VDM斷片表(第2VDM斷片表T422)之PBA管理數,係為32768。
另外,針對與較第2階層而更上位之階層相對應的LUT斷片表之PBA管理數以及VDM斷片表之PBA管理數,係省略詳細之說明,但是,在N=32的情況時,LUT斷片表之PBA管理數以及VDM斷片表之PBA管理數,係均為若是階層成為1個的上位之階層,則會成為32倍。
若是如同上述一般地而對於與同一之階層相對應的LUT斷片表和VDM斷片表作比較,則VDM斷片表之PBA管理數係成為較LUT斷片表之管理數而更多。又,當作為LUT41全體之PBA管理數與作為VDM42全體之PBA管理數係為相同數量的情況時,在本實施形態中的「構成VDM42所具有的階層構造之階層之數量」係成為較「構成LUT41所具有的階層構造之階層之數量」而更少。
另外,當N=32、M=32的情況時,於x=1、y=1時,係滿足上述之條件式。在如此這般地而滿足條件式的情況時,x係相當於LUT斷片表與VDM斷片表之間之階層之差,y係相當於該LUT斷片表之PBA管理數與該VDM斷片表之PBA管理數之間之比(亦即是,「VDM斷片表之PBA管理數/LUT斷片表之PBA管理數」)。具體而言,在注目於階層之差為1(亦即是,x=1)之與第2階層相對應之LUT斷片表和與第1階層相對應之VDM斷片表的情況時,該LUT斷片表之PBA管理數係為1024,該VDM斷片表之PBA管理數係為1024,「VDM斷片表之PBA管理數/LUT斷片表之PBA管理數」係為1(亦即是,y=1)。
如此這般,若是身為滿足上述之條件式的N以及M,則例如當與「被分配至與第2階層相對應之LUT斷片表處之1024個的LBA之範圍」相對應的資料被寫入至了非揮發性記憶體4中的情況時,係能夠藉由將在與第3階層相對應之LUT斷片表中所包含之1個的登錄(被儲存於PBA儲存部41a中之PBA)作變更,來完成LUT41之更新。同樣的,當「與1024個的LBA之範圍相對應之資料」被寫入至了「被分配至與第1階層相對應之VDM斷片表處之1024個的PBA」中的情況時,係能夠藉由將在與第2階層相對應之VDM斷片表中所包含之1個的登錄(被儲存於映射儲存部42a中之幻數)作變更,來完成VDM42之更新。
亦即是,在N=32、M=32的情況時,「與第i(i為1以上之整數)階層相對應的LUT斷片表之PBA管理數」和「與第i-1階層相對應之VDM斷片表之PBA管理數」之比,係成為1:1,例如,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM42之1個的登錄之變更,來進行VDM42之更新。
另外,在圖8中所作了說明的「N=32、M=32」,係為能夠對於LUT41(LBA以及PBA之對應關係)和VDM42(資料之有效性)作最有效率的管理之例之其中一者,例如就算是在將N作了改變的情況時,也同樣的,只要是滿足上述之條件式,則係能夠實現LUT41以及VDM42之有效率的管理。
以下,針對使N作了變化的情況來進行說明,但是,針對與在上述之圖8中所作了說明的部分相同之部分,係省略其之詳細說明。
圖9,係對於在設為N=8、M=32的情況時之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之管理數之間之關係作展示。
於此,在N=8、M=32的情況時,與第1階層相對應的LUT斷片表之PBA管理數,係為8,與該第1階層相對應的VDM斷片表之PBA管理數,係為256。又,與第2階層相對應的LUT斷片表之PBA管理數,係為64,與該第2階層相對應的VDM斷片表之PBA管理數,係為2048。
另外,針對與較第2階層而更上位之階層相對應的LUT斷片表之PBA管理數以及VDM斷片表之PBA管理數,係省略詳細之說明,但是,在N=8的情況時,LUT斷片表之PBA管理數以及VDM斷片表之PBA管理數,係均為若是階層成為1個的上位之階層,則會成為8倍。
又,當N=8、M=32的情況時,於x=1、y=4時,係滿足上述之條件式。具體而言,在注目於階層之差為1(亦即是,x=1)之與第2階層相對應之LUT斷片表和與第1階層相對應之VDM斷片表的情況時,該LUT斷片表之PBA管理數係為64,該VDM斷片表之PBA管理數係為256,「VDM斷片表之PBA管理數/LUT斷片表之PBA管理數」係為4(亦即是,y=4)。
如此這般,若是身為滿足上述之條件式的N以及M,則例如當與「被分配至與第2階層相對應之4個的LUT斷片表處之256個的LBA之範圍」相對應的資料被寫入至了非揮發性記憶體4中的情況時,係能夠藉由將在與第3階層相對應之LUT斷片表中所包含之4個的登錄作變更,來完成LUT41之更新。同樣的,當「與256個的LBA之範圍相對應之資料」被寫入至了「被分配至與第1階層相對應之VDM斷片表處之256個的PBA」中的情況時,係能夠藉由將在與第2階層相對應之VDM斷片表中所包含之1個的登錄作變更,來完成VDM42之更新。
亦即是,在N=8、M=32的情況時,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-1階層相對應之VDM斷片表之PBA管理數」之比,係成為1:4,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之4個登錄的變更來進行LUT41之更新,並能夠藉由VDM42之1個的登錄之變更,來進行VDM42之更新。
另外,當N=8、M=32的情況時,於x=2、y=1/2時,亦係滿足上述之條件式。雖係省略詳細之說明,但是,於此情況,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-2階層相對應之VDM斷片表之PBA管理數」之比,係成為2:1,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之2個的登錄之變更,來進行VDM42之更新。
圖10,係對於在設為N=16、M=32的情況時之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示。
於此,在N=16、M=32的情況時,與第1階層相對應的LUT斷片表之PBA管理數,係為16,與該第1階層相對應的VDM斷片表之PBA管理數,係為512。又,與第2階層相對應的LUT斷片表之PBA管理數,係為256,與該第2階層相對應的VDM斷片表之PBA管理數,係為8192。
另外,針對與較第2階層而更上位之階層相對應的LUT斷片表之PBA管理數以及VDM斷片表之PBA管理數,係省略詳細之說明,但是,在N=16的情況時,LUT斷片表之PBA管理數以及VDM斷片表之PBA管理數,係均為若是階層成為1個的上位之階層,則會成為16倍。
又,當N=16、M=32的情況時,於x=1、y=2時,係滿足上述之條件式。具體而言,在注目於階層之差為1(亦即是,x=1)之與第2階層相對應之LUT斷片表和與第1階層相對應之VDM斷片表的情況時,該LUT斷片表之PBA管理數係為256,該VDM斷片表之PBA管理數係為512,「VDM斷片表之PBA管理數/LUT斷片表之PBA管理數」係為2(亦即是,y=2)。
如此這般,若是身為滿足上述之條件式的N以及M,則例如當與「被分配至與第2階層相對應之2個的LUT斷片表處之512個的LBA之範圍」相對應的資料被寫入至了非揮發性記憶體4中的情況時,係能夠藉由將在與第3階層相對應之LUT斷片表中所包含之2個的登錄作變更,來完成LUT41之更新。同樣的,當「與512個的LBA之範圍相對應之資料」被寫入至了「被分配至與第1階層相對應之VDM斷片表處之512個的PBA」中的情況時,係能夠藉由將在與第2階層相對應之VDM斷片表中所包含之1個的登錄作變更,來完成VDM42之更新。
亦即是,在N=16、M=32的情況時,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-1階層相對應之VDM斷片表之PBA管理數」之比,係成為1:2,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之2個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之1個的登錄之變更,來進行VDM42之更新。
另外,當N=16、M=32的情況時,於x=2、y=1/8時,亦係滿足上述之條件式。雖係省略詳細之說明,但是,於此情況,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-2階層相對應之VDM斷片表之PBA管理數」之比,係成為8:1,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之8個的登錄之變更,來進行VDM42之更新。
圖11,係對於在設為N=64、M=32的情況時之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示。
於此,在N=64、M=32的情況時,與第1階層相對應的LUT斷片表之PBA管理數,係為64,與該第1階層相對應的VDM斷片表之PBA管理數,係為2048。又,與第2階層相對應的LUT斷片表之PBA管理數,係為4096,與該第2階層相對應的VDM斷片表之PBA管理數,係為131072。
另外,針對與較第2階層而更上位之階層相對應的LUT斷片表之PBA管理數以及VDM斷片表之PBA管理數,係省略詳細之說明,但是,在N=64的情況時,LUT斷片表之PBA管理數以及VDM斷片表之PBA管理數,係均為若是階層成為1個的上位之階層,則會成為64倍。
又,當N=64、M=32的情況時,於x=0、y=32時,係滿足上述之條件式。具體而言,在注目於階層之差為0(亦即是,x=0)之與第1階層相對應之LUT斷片表和與第1階層相對應之VDM斷片表的情況時,該LUT斷片表之PBA管理數係為64,該VDM斷片表之PBA管理數係為2048,「VDM斷片表之PBA管理數/LUT斷片表之PBA管理數」係為32(亦即是,y=32)。
如此這般,若是身為滿足上述之條件式的N以及M,則例如當與「被分配至與第1階層相對應之32個的LUT斷片表處之2048個的LBA之範圍」相對應的資料被寫入至了非揮發性記憶體4中的情況時,係能夠藉由將在與第2階層相對應之LUT斷片表中所包含之32個的登錄作變更,來完成LUT41之更新。同樣的,當「與2048個的LBA之範圍相對應之資料」被寫入至了「被分配至與第1階層相對應之VDM斷片表處之2048個的PBA」中的情況時,係能夠藉由將在與第2階層相對應之VDM斷片表中所包含之1個的登錄作變更,來完成VDM42之更新。
亦即是,在N=64、M=32的情況時,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i階層相對應之VDM斷片表之PBA管理數」之比,係成為1:32,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之32個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之1個的登錄之變更,來進行VDM42之更新。
另外,當N=64、M=32的情況時,於x=1、y=1/2時,亦係滿足上述之條件式。雖係省略詳細之說明,但是,於此情況,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-1階層相對應之VDM斷片表之PBA管理數」之比,係成為2:1,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之2個的登錄之變更,來進行VDM42之更新。
圖12,係對於在設為N=128、M=32的情況時之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示。
於此,在N=128、M=32的情況時,與第1階層相對應的LUT斷片表之PBA管理數,係為128,與該第1階層相對應的VDM斷片表之PBA管理數,係為4096。又,與第2階層相對應的LUT斷片表之PBA管理數,係為16384,與該第2階層相對應的VDM斷片表之PBA管理數,係為524288。
另外,針對與較第2階層而更上位之階層相對應的LUT斷片表之PBA管理數以及VDM斷片表之PBA管理數,係省略詳細之說明,但是,在N=128的情況時,LUT斷片表之PBA管理數以及VDM斷片表之PBA管理數,係均為若是階層成為1個的上位之階層,則會成為128倍。
又,當N=128、M=32的情況時,於x=0、y=32時,係滿足上述之條件式。具體而言,在注目於階層之差為0(亦即是,x=0)之與第1階層相對應之LUT斷片表和與第1階層相對應之VDM斷片表的情況時,該LUT斷片表之PBA管理數係為128,該VDM斷片表之PBA管理數係為4096,「VDM斷片表之PBA管理數/LUT斷片表之PBA管理數」係為32(亦即是,y=32)。
如此這般,若是身為滿足上述之條件式的N以及M,則例如當與「被分配至與第1階層相對應之32個的LUT斷片表處之4096個的LBA之範圍」相對應的資料被寫入至了非揮發性記憶體4中的情況時,係能夠藉由將在與第2階層相對應之LUT斷片表中所包含之32個的登錄作變更,來完成LUT41之更新。同樣的,當「與4096個的LBA之範圍相對應之資料」被寫入至了「被分配至與第1階層相對應之VDM斷片表處之4096個的PBA」中的情況時,係能夠藉由將在與第2階層相對應之VDM斷片表中所包含之1個的登錄作變更,來完成VDM42之更新。
亦即是,在N=128、M=32的情況時,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i階層相對應之VDM斷片表之PBA管理數」之比,係成為1:32,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之32個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之1個的登錄之變更,來進行VDM42之更新。
另外,當N=128、M=32的情況時,於x=1、y=1/4時,亦係滿足上述之條件式。雖係省略詳細之說明,但是,於此情況,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-1階層相對應之VDM斷片表之PBA管理數」之比,係成為4:1,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之4個的登錄之變更,來進行VDM42之更新。
在上述之圖8~圖12中,雖係針對M=32的情況來作了說明,但是,以下,係參照圖13~圖17,而針對M=64的情況來作說明。另外,除了使M作了變更以外,由於係與上述之圖8~圖12相同,因此,針對圖13~圖17,係適宜簡略化地進行說明。
圖13,係對於在N=64、M=64的情況時之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示。
當N=64、M=64的情況時,於x=1、y=1時,係滿足上述之條件式。亦即是,在N=64、M=64的情況時,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-1階層相對應之VDM斷片表之PBA管理數」之比,係成為1:1,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM42之1個的登錄之變更,來進行VDM42之更新。
另外,如同在上述之圖8中所作了說明一般,在N=32、M=32的情況時,亦同樣的,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM42之1個的登錄之變更,來進行VDM42之更新。亦即是,在本實施形態中,可以說當N=M的情況時,係能夠實現LUT41以及VDM42之更有效率的管理。
圖14,係對於在N=8、M=64的情況時之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示。
當N=8、M=64的情況時,於x=2、y=1時,係滿足上述之條件式。亦即是,在N=8、M=64的情況時,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-2階層相對應之VDM斷片表之PBA管理數」之比,係成為1:1,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM42之1個的登錄之變更,來進行VDM42之更新。
如此這般,就算是在並非為N=M的情況時,也會有能夠將LUT41之更新以及VDM42之更新均藉由1個的登錄來進行的情況。若依據此,則可以說,例如在M=N
^x成立的情況時,也能夠實現LUT41以及VDM42之更有效率的管理。
圖15,係對於在N=16、M=64的情況時之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示。
當N=16、M=32的情況時,於x=1、y=4時,係滿足上述之條件式。亦即是,在N=16、M=64的情況時,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-1階層相對應之VDM斷片表之PBA管理數」之比,係成為1:4,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之4個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之1個的登錄之變更,來進行VDM42之更新。
另外,當N=16、M=64的情況時,於x=2、y=1/4時,亦係滿足上述之條件式。於此情況,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-2階層相對應之VDM斷片表之PBA管理數」之比,係成為4:1,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之4個的登錄之變更,來進行VDM42之更新。
圖16,係對於在N=32、M=64的情況時之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示。
當N=32、M=64的情況時,於x=1、y=2時,係滿足上述之條件式。亦即是,在N=32、M=64的情況時,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-1階層相對應之VDM斷片表之PBA管理數」之比,係成為1:2,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之2個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之1個的登錄之變更,來進行VDM42之更新。
另外,當N=32、M=64的情況時,於x=2、y=1/16時,亦係滿足上述之條件式。於此情況,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-2階層相對應之VDM斷片表之PBA管理數」之比,係成為16:1,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之16個的登錄之變更,來進行VDM42之更新。
圖17,係對於在N=128、M=64的情況時之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示。
當N=128、M=64的情況時,於x=0、y=64時,係滿足上述之條件式。亦即是,在N=128、M=64的情況時,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i階層相對應之VDM斷片表之PBA管理數」之比,係成為1:64,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之64個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之1個的登錄之變更,來進行VDM42之更新。
另外,當N=128、M=64的情況時,於x=1、y=1/2時,亦係滿足上述之條件式。於此情況,「與第i階層相對應的LUT斷片表之PBA管理數」和「與第i-1階層相對應之VDM斷片表之PBA管理數」之比,係成為2:1,如同上述一般地,在LBA以及PBA之連續性被有所確保情況時,係能夠藉由LUT斷片表之1個登錄的變更來進行LUT41之更新,並能夠藉由VDM斷片表之2個的登錄之變更,來進行VDM42之更新。
在本實施形態中,雖係針對M=32的情況和M=64的情況而作了說明,但是,該M,係能夠以與在記憶體系統3中之演算位元寬幅(例如,32位元或64位元等)相對應的方式來作決定。
接著,針對本實施形態之記憶體系統3之動作進行說明。首先,參照圖18之流程圖,針對在從主機2而送訊有寫入指令的情況時之記憶體系統3之處理程序的其中一例作說明。
在如同上述一般地從主機2而送訊有寫入指令的情況時,通訊介面控制部51,係收訊該寫入指令(步驟S1)。另外,於在步驟S1處所收訊的寫入指令中,係包含有基於該寫入指令所被寫入至非揮發性記憶體4中之資料(以下,標記為對象資料)、以及用以對於該資料進行存取之LBA(以下,標記為對象LBA)。另外,對象資料,係被暫時性地儲存於寫入緩衝記憶體52中。
接著,寫入控制部561,係將被儲存於寫入緩衝記憶體52中之對象資料,經由非揮發性記憶體控制器54而寫入至非揮發性記憶體4中(步驟S2)。在以下之說明中,為了方便,係將在步驟S2處而對象資料被作了寫入的非揮發性記憶體4內之PBA,稱作對象PBA。
若是步驟S2的處理被實行,則管理部565,例如係藉由與非揮發性記憶體控制器54以及快取記憶體控制部566協同動作,來基於對象PBA而將VDM42作更新(步驟S3)。在此步驟S3中,係以對於「對象資料係為有效(亦即是,被寫入至對象PBA處之資料係為有效)」一事作管理的方式,來使VDM42被更新。
於此,在本實施形態中,VDM42係具有階層構造,並包含有與各階層相對應之複數之VDM斷片表。於此情況,在步驟S3處,係藉由參照VDM42,而特定出對象PBA所被分配的1個或複數之VDM斷片表,並因應於需要而將該所特定出之VDM斷片表從非揮發性記憶體4而讀出。如此這般地而被從非揮發性記憶體4所讀出了的VDM斷片表,係被儲存在快取記憶體551處,並在該快取記憶體551上被作更新。另外,當如同上述一般地而被特定出來的VDM斷片表為已被儲存在快取記憶體551處的情況時,係並不需要將該VDM斷片表從非揮發性記憶體4而讀出。
接著,在如此這般地而被特定出來的VDM斷片表中所包含之登錄之中之「被分配有對象PBA」之登錄係被作變更。如此這般地而使登錄被作了變更的VDM斷片表,係被從快取記憶體551而讀出,並被回寫至非揮發性記憶體4處。
另外,使登錄被作變更的VDM斷片表,係可如同上述一般地而身為與在階層構造中之最下位之階層相對應的VDM斷片表,亦可身為與較該階層而更上位之階層相對應的VDM斷片表。
具體而言,如果對象PBA係為較為狹窄之範圍的PBA,而若是並不將被包含在與最下位之階層相對應的VDM斷片表中之登錄作變更便無法對於「被寫入至對象PBA中的對象資料係為有效」一事作管理,則被包含在與該最下位之階層相對應之VDM斷片表中的登錄係被作變更。於此情況,構成被儲存在「被包含在與最下位之階層相對應之VDM斷片表中的登錄之中之被分配有對象PBA之登錄(映射儲存部42a)」中的位元映射之旗標資訊(與對象PBA相對應之旗標資訊)係被作變更。又,當被分配至「被包含在與最下位之階層相對應之VDM斷片表中的登錄之中之至少一個的登錄」處之相連續之PBA之全部範圍係身為對象PBA的情況時,被儲存於該登錄中之幻數(管理資料MD2)係被變更為「0xff」。
另一方面,如果對象PBA係為較為廣範圍之相連續的PBA,而能夠藉由將被包含在與最下位之階層以外之階層相對應的VDM斷片表中之登錄作變更一事來對於「被寫入至對象PBA中的對象資料係為有效」一事作管理,則係只要將被包含在與該最下位之階層以外之階層相對應之VDM斷片表中的登錄作變更即可。於此情況,被儲存在被分配至「被包含在與最下位之階層以外之階層相對應之VDM斷片表中的登錄之中之PBA所被作分配之登錄(PBA儲存部42f)」處之幻數(管理資料MD3)係被變更為「0xff」。
另外,當如此這般地而在與最下位之階層以外之階層相對應的VDM斷片表中所包含之登錄被作了變更的情況時,由於係能夠僅藉由該VDM斷片表來對於對象資料之有效性作管理,因此,係能夠將與較該VDM斷片表之階層而更下位之階層相對應的VDM斷片表(亦即是,藉由被儲存於在該VDM斷片表中所包含之登錄中之指標所展示的VDM斷片表)廢棄。
另一方面,在需要對於「被包含在與最下位之階層相對應之VDM斷片表中的登錄」作變更的情況時,若是該VDM斷片表並不存在(已被廢棄),則係重新作成包含有對象PBA所被作了分配的登錄之VDM斷片表。
在步驟S3中,藉由實行此種處理,係能夠將被儲存在非揮發性記憶體4中的VDM42作更新。另外,VDM42之對於非揮發性記憶體4的回寫,係只要在步驟S3以後之任意之時序處而被實施即可。
若是步驟S3的處理被實行,則管理部565,例如係藉由與非揮發性記憶體控制器54以及快取記憶體控制部566協同動作,來基於寫入指令(對象LBA)以及對象PBA而將LUT41作更新(步驟S4)。在此步驟S4中,係以能夠對於對象LBA與對象PBA之間之對應關係作管理(亦即是,能夠將對象LBA轉換為對象PBA)的方式,來使LUT41被更新。
於此,在本實施形態中,LUT41係具有階層構造,並包含有與各階層相對應之複數之LUT斷片表。於此情況,在步驟S4處,係藉由參照LUT41,而特定出對象LBA所被分配的1個或複數之LUT斷片表,並因應於需要而將該所特定出之LUT斷片表從非揮發性記憶體4而讀出。如此這般地而被從非揮發性記憶體4所讀出了的LUT斷片表,係被儲存在快取記憶體551處,並在該快取記憶體551上被作更新。另外,當如同上述一般地而被特定出來的LUT斷片表為已被儲存在快取記憶體551處的情況時,係並不需要將該LUT斷片表從非揮發性記憶體4而讀出。
接著,在如此這般地而被特定出來的LUT斷片表中所包含之登錄之中之「被分配有對象LBA」之登錄係被作變更。於此情況,被儲存在「被分配有對象LBA之登錄(PBA儲存部41a)」處之PBA,係被變更為對象PBA。如此這般地而使登錄被作了變更的LUT斷片表,係被從快取記憶體551而讀出,並被回寫至非揮發性記憶體4處。
另外,使登錄被作變更的LUT斷片表,係可如同上述一般地而身為與在階層構造中之最下位之階層相對應的LUT斷片表,亦可身為與較該階層而更上位之階層相對應的LUT斷片表。
具體而言,如果對象LBA係為較為狹窄之範圍的LBA,而若是並不將被包含在與最下位之階層相對應的LUT斷片表中之登錄作變更便無法對於對象LBA以及對象PBA之對應關係作管理,則被包含在與該最下位之階層相對應之LUT斷片表中的登錄係被作變更。
另一方面,如果對象LBA例如係為較為廣範圍之相連續的LBA,並且對象資料係被寫入至相連續之PBA中,而能夠藉由將被包含在與最下位之階層以外之階層相對應的LUT斷片表中之登錄作變更一事來對於該對象LBA以及對象PBA之對應關係作管理,則係只要將被包含在與該最下位之階層以外之階層相對應之LUT斷片表中的登錄作變更即可。
在步驟S4中,藉由實行此種處理,係能夠將被儲存在非揮發性記憶體4中的LUT41作更新。另外,LUT41之對於非揮發性記憶體4的回寫,係只要在步驟S4以後之任意之時序處而被實施即可。
若是步驟S4之處理被實行,則管理部565,係將針對在步驟S1處所收訊了的寫入指令之回應(完成回應),經由通訊介面控制部51來對於主機2作送訊(步驟S5)。
於此,雖係針對基於從主機2而來之寫入指令來使LUT41以及VDM42被作更新的情況而作了說明,但是,關於在從該主機2而送訊有例如Trim指令的情況時,亦同樣的,LUT41以及VDM42係需要被作更新。
以下,參照圖19之流程圖,針對在從主機2而送訊有Trim指令的情況時之記憶體系統3之處理程序的其中一例作說明。
Trim指令,係身為例如當在主機2所使用的檔案系統中而特定之檔案被作了刪除的情況時,用以將相當於該檔案之資料無效化的指令。Trim指令,係因應於用以連接儲存裝置之介面規格,而例如亦被稱作Unmap指令等。另外,被寫入至非揮發性記憶體4中之資料係並不會藉由Trim指令而被刪除,該資料係藉由垃圾回收而被刪除。
在從主機2而送訊有上述之Trim指令的情況時,通訊介面控制部51,係收訊該Trim指令(步驟S11)。另外,於在步驟S11處所收訊的Trim指令中,係包含有用以對於應無效化之資料進行存取之LBA(之範圍)。在以下之說明中,係將被包含於Trim指令中之LBA,稱作對象LBA。
若是步驟S11之處理被實行,則位址轉換部564,係對於在LUT41中所包含之LUT斷片表,而從上位之階層起來依序作參照,並將對象LBA轉換為PBA(步驟S12)。藉由此,位址轉換部564係取得與對象LBA相對應之PBA。在以下之說明中,係將藉由位址轉換部564所取得的PBA,稱作對象PBA。
接著,管理部565,係以對於「被儲存在對象PBA處之資料(亦即是,與對象LBA相對應之資料)係為無效」一事作管理的方式,來使VDM42被更新(步驟S13)。另外,基於Trim指令所進行之VDM42之更新處理,除了係以對於「資料係為無效」一事作管理的方式來更新VDM42以外,由於係與在圖18中所示之步驟S3處所展示的處理相同,因此,於此係省略其之詳細說明。
另外,如果對象PBA係為較為廣範圍之相連續的PBA,而能夠藉由將被包含在與最下位之階層以外之階層相對應的VDM斷片表中之登錄作變更一事來對於「被寫入至對象PBA中的對象資料係為無效」一事作管理,則被包含在與該最下位之階層以外之階層相對應之VDM斷片表中的登錄之中之「被儲存在對象PBA所被作分配的登錄中之幻數」,係被變更為「0x00」。
又,當被分配至「被包含在與最下位之階層相對應之VDM斷片表中的登錄之中之至少一個的登錄」處之相連續之PBA之全部範圍係身為對象PBA的情況時,被儲存於該登錄中之幻數係被變更為「0x00」。
進而,管理部565,係以將對象LBA與對象PBA(被儲存有應無效化之資料之PBA)之間之對應關係無效化的方式,來更新LUT41(步驟S14)。當在LUT41中而將LBA與PBA之間之對應關係無效化的情況時,例如在被包含於「該LBA所被作分配的LUT斷片表」中之登錄(PBA儲存部41a)處,係被設定有幻數。另外,基於Trim指令所進行之LUT41之更新處理,除了係為將LBA與PBA之間之對應關係無效化以外,由於係與在上述之圖18中所示之步驟S4相同,因此,於此係省略其之詳細說明。
在如同上述一般地而使LUT41以及VDM42被作了更新的情況時,管理部565,係將針對Trim指令之回應(完成回應),經由通訊介面控制部51來對於主機2作送訊(步驟S15)。
在圖19所示之例中,雖係針對「在LUT41以及VDM42被作了更新之後,完成回應係被對於主機2作送訊」的情況來作了說明,但是,例如係亦可構成為「VDM42之更新係在完成回應之送訊後才被實行(亦即是,被作延遲實行)」。
於此,上述之VDM42,係為了有效率地實行垃圾回收而為必要,但是,在該垃圾回收被實行時,係需要參照該VDM42並對於被寫入至非揮發性記憶體4內之各PBA處之資料是有效還是無效一事作確認。
以下,參照圖20之流程圖,針對當針對被寫入至非揮發性記憶體4內之特定之PBA(以下,標記為對象PBA)處之資料係為有效還是無效一事進行確認時之記憶體系統3之處理程序的其中一例作說明。
首先,在本實施形態中,VDM42係構成為具備有由複數之階層所構成之階層構造,在記憶體55處,係被保持有代表「與該複數之階層之中之最上位之階層相對應之VDM斷片表」的VDM指標(該VDM斷片表所被儲存之PBA)。另外,當與最上位之階層相對應之VDM斷片表係被儲存於非揮發性記憶體4中的情況時,被保持於記憶體55處之VDM指標,係身為非揮發性記憶體4內之PBA。又,當與最上位之階層相對應之VDM斷片表係被儲存於快取記憶體551中的情況時,被保持於記憶體55處之VDM指標,係身為快取記憶體551內之位址資訊。
於此情況,管理部55,係基於被保持於記憶體55處之VDM指標,來從非揮發性記憶體4或快取記憶體551而將VDM斷片表讀出(步驟S21)。
接著,管理部565,係參照被儲存於「在步驟S21中所被讀出的VDM斷片表(與最上位之階層相對應之VDM斷片表)中所包含的複數之登錄之中之對象PBA所被作分配之登錄」處之幻數(以下,標記為對象幻數)(步驟S22)。
另外,當在步驟S21中所被讀出的VDM斷片表係並非為與最下位之階層相對應之VDM斷片表的情況時,作為被儲存於在該VDM斷片表中所包含的登錄之中之幻數(管理資料MD3),係被設定有上述之「0xff」、「0x00」、「0xfc」以及「0xfd」之中之一者。
管理部565,係判定如此這般地而被作了參照的對象幻數是否身為「0xff」或者是「0x00」(步驟S23)。
當判定對象幻數並非身為「0xff」以及「0x00」的情況時(步驟S23,NO),管理部565,係判定該對象幻數是否身為「0xfc」或者是「0xfd」(步驟S24)。
當判定對象幻數係身為「0xfc」或「0xfd」的情況時(步驟S24,YES),管理部565,係取得被附加有該對象幻數之VDM指標(步驟S25)。當步驟S25被作了實行的情況時,係回到步驟S21處,處理係被反覆進行。
於此,幻數「0xfc」,係如同上述一般地,代表被附加有該幻數之VDM指標(PBA)乃身為非揮發性記憶體4內之PBA。因此,當幻數係身為「0xfc」的情況時,於在步驟S25之後所被實行的步驟S21處,係基於在該步驟S24處所取得的VDM指標,來從非揮發性記憶體4而將與下一階層(下位之階層)相對應的VDM斷片表讀出。
另一方面,幻數「0xfd」,係如同上述一般地,代表被附加有該幻數之VDM指標(PBA)乃身為快取記憶體551內之位址資訊。因此,當幻數係身為「0xfd」的情況時,於在步驟S25之後所被實行的步驟S21處,係基於在該步驟S24處所取得的VDM指標,來從快取記憶體551而將與下一階層(下位之階層)相對應的VDM斷片表讀出。
在本實施形態中,藉由如此這般地而反覆進行步驟S21~S25之處理,係成為能夠對於與各階層相對應之VDM斷片表依序作參照。
另一方面,針對在步驟S23處而判定對象幻數係身為「0xff」或者是「0x00」的情況作考慮(步驟S23,YES)。
於此,幻數「0xff」,係代表被寫入至「被分配至被儲存有該幻數之登錄處的PBA之全部範圍」中的所有之資料均為有效。亦即是,當對象幻數係身為「0xff」的情況時,由於係能夠掌握到「被儲存在對象PBA處之資料係為有效」,因此,在圖20中所示之處理係結束。
又,幻數「0x00」,係代表被寫入至「被分配至被儲存有該幻數之登錄處的PBA之全部範圍」中的資料係為無效。亦即是,當對象幻數係身為「0x00」的情況時,由於係能夠掌握到「被儲存在對象PBA處之資料係為無效」,因此,在圖20中所示之處理係結束。
又,當在步驟S24處而判定對象幻數係並非為「0xfc」以及「0xfd」的情況時(步驟S24,NO),在對象PBA所被作分配的登錄處,係並未被設定有幻數「0xff」、「0x00」、「0xfc」以及「0xfd」。於此情況,可以得知,在步驟S21中所被讀出的VDM斷片表係身為與最下位之階層相對應之VDM斷片表,被儲存於包含有「在該VDM斷片表中所包含的對象PBA」之PBA之範圍中的資料之有效性係並非為共通(亦即是,有效之資料以及無效之資料係混合存在)。於此情況,管理部565,係取得被儲存於「在步驟S21中所被讀出的VDM斷片表(與最下位之階層相對應之VDM斷片表)中之對象PBA所被作分配之登錄」處之位元映射(步驟S26)。管理部565,係能夠基於在步驟S26處所取得的構成位元映射之複數之旗標資訊之中之代表「被儲存於對象PBA處之資料之有效性」之旗標資訊(亦即是,與對象PBA相對應之旗標資訊),來掌握到該資料係為有效還是無效。
如同上述一般,在本實施形態中,被儲存於非揮發性記憶體4中之VDM42(資料映射),係具備有由包含有至少第1階層(最下位之階層)以及第2階層(較最下位之階層而更上位之階層)所構成的階層構造,並更進而包含有該第1階層相對應之複數之第1VDM斷片表以及與第2階層相對應之第2VDM斷片表。又,在本實施形態中,複數之第1VDM斷片表之各者,係對於被寫入至被分配至該第1VDM斷片表處之非揮發性記憶體4內之PBA(物理位址)之範圍中的特定之容量(例如,4KiB)之資料之各者的有效性作管理。又,在本實施形態中,第2VDM斷片表,係針對各第1VDM斷片表之每一者,而對於代表該第1VDM斷片表之VDM指標(用以參照該第1VDM斷片表之參照目標資訊)作管理。
於此,當如同在上述之本實施形態之比較例中所作了說明一般地而將VDM42´構成為僅包含有與單一之階層相對應的複數之VDM斷片表T421´的情況時,係有需要將代表該些複數之VDM斷片表T421´之各者的指標(該VDM斷片表T421´所被儲存之PBA)之全部均預先保持於記憶體55處。相對於此,在本實施形態中,藉由上述之構成,由於係只要將代表「與最上位之階層相對應之VDM斷片表」之VDM指標保持於記憶體55中即可,因此,係能夠將在該記憶體55上而持續佔有一定之記憶區域的資料作削減(作為VDM42之管理資訊,係盡可能接近0),而成為能夠對於被寫入至非揮發性記憶體4中之資料的有效性有效率地作管理。
又,在本實施形態中,藉由如同上述一般地將被儲存於記憶體55(例如,DRAM)中之資料(代表VDM斷片表之VDM指標)作削減,由於係成為能夠將LUT41優先性地展開於記憶體55上(快取至快取記憶體551中),因此,係能夠將針對從主機2而來的指令之回應時間(I/O回應時間)縮短。另外,當針對從主機2而來之讀出指令之處理被實行的情況時,由於係並不需要將VDM42作更新,因此,係能夠更進一步縮短I/O回應時間。又,在針對上述之Trim指令之處理被實行時,雖然係亦可構成為將對於VDM42進行更新之處理作延遲實行,但是,在此種構成的情況時,係亦可構成為將被分配至LUT41以及VDM42處之記憶區域(亦即是,記憶體比例)作動態變更。
進而,在本實施形態之比較例中,如同上述一般地,在使記憶體系統3啟動以及結束時之內部處理(啟動處理以及結束處理)中係會耗費時間,但是,在本實施形態中,由於在啟動處理時,係只需要將代表與最上位之階層相對應之VDM斷片表的VDM指標展開於記憶體55上即可,在結束處理時,係只需要使該VDM指標非揮發化即可,因此,係能夠將在內部處理中所需要的時間縮短。
又,在本實施形態中,第2VDM斷片表,當被寫入至被分配至第1VDM斷片表處之PBA之範圍中的特定之容量之資料之各者的有效性係並非為共通(亦即是,作為被寫入至該PBA之範圍中的資料,有效之資料以及無效之資料係混合存在)的情況時,係對於代表與下位之階層相對應之第1VDM斷片表的VDM指標作管理。又,第2VDM斷片表,當被寫入至被分配至第1VDM斷片表處之PBA之範圍中的特定之容量之資料之各者的有效性係為共通(亦即是,被寫入至該PBA之範圍中的特定之容量之資料的全部係均為有效或者是均為無效)的情況時,係對於該資料之有效性整批地作管理。
在本實施形態中,藉由此種構成,例如在對於被寫入連續之廣範圍之PBA中的資料之有效性作更新的情況時,由於係僅需要將被包含於第2VDM斷片表中之登錄(幻數)作變更,便可將VDM42作更新,因此,係能夠將用以對於資料之有效性進行管理的處理簡略化。具體而言,例如若是身為能夠將數PiB之資料作儲存一般之記憶體系統3(非揮發性記憶體4)的情況,則例如係僅需要將被儲存於「在與最上位之階層相對應的VDM斷片表中所包含之1個的登錄處」之幻數(8位元)作變更,便能夠對於數G個的PBA之範圍而整批地進行操作(更新)。
亦即是,在本實施形態中,例如係能夠抑制像是「將在第1VDM斷片表中所包含的位元映射個別地作更新」一般之位元操作,而能夠削減處理成本。
進而,在本實施形態中,由於因應於階層,被分配至VDM斷片表處的PBA之範圍(粒度)係為相異,因此,係能夠有彈性地來對於VDM42作更新。
又,例如當在第2VDM斷片表處,對於被寫入至被分配至第1VDM斷片表處之PBA之範圍中的特定之容量之資料之各者的有效性整批地作管理的情況時,係能夠將該第1VDM斷片表廢棄,並將該第1VDM斷片表所被作儲存的記憶區域釋放。若依據此,則在本實施形態中,係成為能夠將為了儲存VDM42所需要的記憶區域作削減。
進而,在本實施形態中,與第1階層相對應之第1VDM斷片表以及與第2階層相對應之第2VDM斷片表,係具有相同之資料構造。具體而言,第1VDM斷片表,係在預先所制定了的數量(例如,32個)之各登錄中,對於複數之特定之容量(4KiB)之資料的有效性作管理。又,第2VDM斷片表,係在預先所制定了的數量(例如,32個)之各登錄中,對於代表第1VDM斷片表之各者之VDM指標作管理。
在本實施形態中,藉由此種構成,VDM42所具備的階層構造係變得簡單,而能夠將在對於該VDM42(各VDM斷片表)作參照時之計算成本作削減。又,例如為了對於對象PBA所被作分配之VDM斷片表作參照,係需要經過複數之階層,但是,由於係能夠將此種情況時之處理無關於階層地而均一化(亦即是,係能夠使用同一之軟體碼),因此係成為能夠有效率地對於VDM42進行參照。
另外,在本實施形態中之VDM42,係只要至少具備有包含第1以及第2階層之階層構造即可,但是,構成該VDM42所具有的階層構造之階層之數量係亦可為3以上。另外,構成VDM42所具有的階層構造之階層之數量,例如係亦可基於非揮發性記憶體4之記憶容量(PBA之數量)等,來適宜作變更。
進而,在本實施形態中,與VDM42相同的,LUT41(位址轉換表)亦係具備有階層構造,但是,在LUT41中所包含的複數之LUT斷片表之各者,係具備有與在VDM42中所包含之VDM斷片表相同之資料構造。
若依據此種構成,則例如在為了對於LUT41作參照而需要經過複數之階層時,亦由於係能夠使用與VDM42相同之軟體碼,因此係能夠實現有效率的處理。又,例如在快取記憶體551上而被作了更新的LUT41(LUT斷片表)以及VDM42(VDM斷片表),係有需要回寫至非揮發性記憶體4處(亦即是,非揮發化),但是,由於該LUT斷片表以及VDM斷片表係以會成為相同容量的方式而被構成,因此,係能夠並不對該LUT斷片表以及VDM斷片表作區分地而整批地非揮發化。若依據此,則LUT斷片表以及VDM斷片表之對於非揮發性記憶體4的寫入效率係提升,而能夠將非揮發化之成本降低。
另外,在本實施形態中,與最下位之階層相對應之LUT斷片表之PBA管理數,由於係較與該階層相對應之VDM斷片表之PBA管理數而更少,因此,構成VDM42所具有的階層構造之階層之數量(第1數)係成為較構成LUT41所具有的階層構造之階層之數量(第2數)而更少。
又,在本實施形態中,係以會滿足上述之條件式(M=y×N
^x)的方式,來決定「VDM斷片表之登錄之數量N」以及「在與最下位之階層相對應之VDM斷片表之1個的登錄中而使有效性被作管理的特定之容量之資料(亦即是,在該登錄中而被作管理之PBA)之數量M」,並以會使LUT斷片表與VDM斷片表成為相同之資料構造的方式來構成之。
在本實施形態中,藉由此種構成,僅需要對於在與上位之階層相對應之LUT斷片表中所包含的登錄(PBA)作變更,便能夠將LUT41作更新,並且,係能夠並不變更位元映射(並不進行位元操作)地來僅藉由將在VDM斷片表中所包含之登錄(幻數)作變更而將VDM42作更新。因此,在本實施形態中,係成為能夠同時達成「在LUT41處之LBA以及PBA之對應關係之有效率的管理」和「在VDM42處之資料之有效性之有效率的管理」。
另外,為了實現在LUT41以及VDM42中的更有效率之管理,係可採用在上述之圖14中所作了說明的如同N=8、M=64一般地而滿足條件式M=N
^x(亦即是,M係為N之冪乘)之N以及M,亦可採用在上述之圖8中所作了說明的如同N=32、M=32以及在圖13中所作了說明的如同N=64、M=64一般地而滿足條件式M=N(亦即是,M為與N相等)之N以及M。又,N以及M(之值),係亦可構成為會藉由記憶體系統3之管理者等而被適宜作設定或者是變更。
於此,例如在C語言中之指標容量,係與演算位元寬幅相同。於此情況,例如若是將M設為較演算位元寬幅而更小,則係並無法將指標(快取記憶體551內之位址資訊)直接儲存在斷片表之登錄中。針對此,雖然亦可考慮將指標作分割並作儲存,但是如此一來處理成本係為高。
另一方面,若是將M設為較演算位元寬幅而更大,則雖然係能夠將指標直接儲存在斷片表之登錄中,但是,由於係會存在有未使用之位元,因此效率並不佳(會無謂地使用快取)。進而,於此情況,由於斷片表之容量係變大,因此非揮發化之成本係增加。針對此,雖然亦可考慮在將斷片表非揮發化之前而實行像是將不必要之部分去除的處理等,但是如此一來處理成本係為高。
因此,在本實施形態中,例如係亦能夠以與在記憶體系統3中之演算位元寬幅(例如,32位元或64位元)相對應(例如,相互一致)的方式,來決定M。若依據此種構成,則由於係能夠將演算位元寬幅與容量為相同之指標(快取記憶體551內之位址資訊)並不進行加工地而直接儲存在斷片表之登錄中,因此係能夠對於LUT41以及VDM42有效率地作管理。又,若依據此種構成,則亦並不需要無謂地將斷片表之容量增大。
另外,在本實施形態中,雖係針對使在記憶體系統3中所包含之控制器5作為以實行非揮發性記憶體4(NAND型快閃記憶體)之資料管理以及區塊管理的方式所構成之快閃記憶體轉換層(Flash Translation Layer,FTL)而起作用的情況,來作了說明,但是,係亦可使被與記憶體系統3作連接之主機2側具備有此一作為FTL之功能。在此種構成的情況時,在本實施形態中所作了說明的LUT41以及VDM42,係藉由主機2而被作管理,關於該LUT41以及VDM42之更新處理等,係在主機2側而被實行。又,在此種構成的情況時,從LBA而至PBA之位址轉換係亦會有在主機2側而被實行的情況,於此種情況下,在從主機2而來之指令(例如,讀出指令)中係亦可並不包含有PBA。
接著,針對具備有上述一般之構成之VDM42、亦即是具備有資料映射之本實施形態之記憶體系統3的為了將該資料映射之處理成本降低所進行的控制進行說明。
如同前述一般,非揮發性記憶體4之記憶體胞陣列,係包含有複數之區塊,該區塊之各者,係藉由多數之頁面而被作編成。在記憶體系統3(SSD)處,區塊之各者,係作為資料之刪除單位而起作用。又,頁面之各者,係身為資料寫入動作以及資料讀取動作之單位。區塊之容量,例如係身為能夠使第2VDM斷片表T422之管理資料MD3將有效性整批地作管理的資料之容量(於此,係為4KiB×32×32=4MiB)之整數倍。
於此,針對使複數之區塊之各者被循環性地作利用之態樣,首先,參照圖21,將一般性之態樣作為其中一個比較例來作說明。另外,於此,係使用本實施形態之記憶體系統3之構成(寫入控制部561、垃圾回收控制部563),來針對該其中一個比較例作說明。
複數之區塊,係概略被分類為隸屬於空閒區塊群a1之區塊(空閒區塊a11)、和隸屬於已分配區塊群a2之區塊(寫入中區塊a21、已寫入區塊a22)。
空閒區塊a11,係為並未被進行有資料之寫入之區塊。寫入控制部561,係接收空閒區塊a11之供給,而將從主機2而來的寫入指令所要求進行對於非揮發性記憶體4之寫入的寫入資料作寫入。若是寫入資料被作寫入,則該區塊,係從空閒區塊a11而變遷至寫入中區塊a21。亦即是,寫入中區塊a21,係為寫入控制部561所設為資料之寫入目標的區塊。
寫入控制部561,於在寫入中區塊a21內仍存在有空閒頁面的期間中,係對於該寫入中區塊a21而實行寫入資料之寫入。若是在寫入中區塊a21內之所有的頁面中均被寫入有寫入資料,則該區塊,係從寫入中區塊a21而變遷至已寫入區塊a22。亦即是,已寫入區塊a22,係為由寫入控制部561所致之資料之寫入已完成的區塊。寫入控制部561,係若是完成對於某一寫入中區塊a21之資料之寫入,則接收新的空閒區塊a11之供給,並實行寫入資料之寫入。
若是上述之工程繼續進行,則空閒區塊a11之數量係減少,另一方面,已寫入區塊a22之數量係逐漸增加。又,在無法進行資料之覆寫的SSD中,係藉由將被儲存在某一頁面中之更新前之資料無效化並在其他之某一頁面中將更新後之資料作寫入,來實行資料之更新。因此,在某一已寫入區塊a22中,係可能會產生被無效之資料佔據大部分的容量之狀況。
垃圾回收控制部563,係將存在有多數的無效之資料之N個的已寫入區塊a22內之有效之資料,移動至M(M<N)個的區塊處,並作出N-M個的空閒區塊a11。亦即是,藉由垃圾回收控制部563之垃圾回收(GC),一部分的已寫入區塊a22係變遷至空閒區塊a11。
如此這般,複數之區塊之各者,係如同空閒區塊a11→寫入中區塊a21→已寫入區塊a22→空閒區塊a11一般地而被循環性地作利用。
於此,參照圖22,針對本實施形態之記憶體系統3所具有的資料映射(VDM42)之旗標資訊以及各種管理資料(MD2、MD3)所對於有效性作管理之資料之容量作確認。於圖22中,元件符號b1,係代表第1VDM斷片表T421之旗標資訊所對於有效性作管理之資料之容量。旗標資訊,係將被寫入至1個的PBA中之資料(於此,係為4KiB)之有效性以1個位元來作表現。
如同前述一般,第1VDM斷片表T421,例如係具備有32個的登錄。在各登錄中,例如係包含有32個的旗標資訊。各登錄之該32個的旗標資訊,係針對被寫入至32個的PBA中之資料(4kiB×32=128kiB之資料),而形成使各位元分別代表4kiB之量的資料之有效性的32位元之位元映射。
元件符號b2,係代表第1VDM斷片表T421之管理資訊MD2所對於有效性作管理之資料之容量。管理資訊MD2,係在第1VDM斷片表T421之各登錄處而各被設置有1個。管理資料MD2,係能夠被設定有將「藉由以32個的旗標資訊所形成之32位元之位元映射而展示的128kiB之資料之有效性」整批地作表現的幻數(magic number)。亦即是,管理資料MD2,係能夠將128kiB之資料之有效性整批地作表現。
元件符號b3,係代表第2VDM斷片表T422之管理資訊MD3所對於有效性作管理之資料之容量。管理資訊MD3,係針對1個的第1VDM斷片表T421而各被設置有1個。管理資料MD3,係能夠被設定有將「藉由第1VDM斷片表T421之32個的管理資料MD2而被展示的128kiB×32=4MiB之資料之有效性(被寫入至藉由32×32=1024個的旗標資訊所被展示之1024個的PBA中之資料之有效性)」整批地作表現的幻數(magic number)。亦即是,管理資料MD3,係能夠將4MiB之資料之有效性整批地作表現。
在具備有「包含上述之旗標資訊以及管理資料(MD2、MD3)之資料映射(VDM42)」的本實施形態之記憶體系統3中,當被寫入至1個的區塊中之資料的全部例如係身為能夠使管理資料MD2將有效性整批地作管理之資料之容量(128kiB)之整數倍的情況時,係成為不需要進行旗標資訊之操作(位元操作)。又,例如,在係身為能夠使管理資料MD3將有效性整批地作管理的資料之容量(4MiB)之整數倍的情況時,進而,亦成為不需要進行管理資料MD2之操作。
換言之,在身為較能夠使管理資料MD2將有效性整批地作管理之資料之容量(128kiB)而更小之容量的資料或者是身為「該容量之整數倍+未滿該容量」之容量之資料(包含有未滿該容量之尾數之資料)的情況時,係成為需要進行旗標資訊之操作。故而,主機2之寫入資料,較理想,係一致成為能夠使管理資料MD2將有效性整批地作管理的資料之容量(128kiB)之整數倍,並且進而一致成為能夠使管理資料MD3將有效性整批地作管理的資料之容量(4MiB)之整數倍。
但是,主機2,例如關連於作業系統(OS)為了對於檔案和資料夾等作管理所使用的檔案系統,係會對於記憶體系統3而高頻率地產生例如未滿4kiB一般之極小之容量下的資料存取。又,主機2,例如係可能會因應於在OS之控制下而動作的應用程式之處理而使對於記憶體系統3之資料存取的單位有所變動。
針對例如寫入控制部561接收空閒區塊a11之供給並首先將較能夠使管理資料MD2將有效性整批地作管理之資料之容量(128kiB)而更小之容量的資料作寫入的情況作考慮。於此情況,就算是接下來能夠使管理資料MD2將有效性整批地作管理之資料之容量(128kiB)的整數倍之資料被作為寫入資料而送來,針對接續於緊接於前之資料而對於(從上述之空閒區塊a11所變遷而來之)寫入中區塊a21作寫入的該寫入資料,之後也會針對其之一部分(前後之尾數部分)而成為需要進行旗標資訊之操作。
考慮到此事,接著,參照圖23,針對在本實施形態的記憶體系統3中之區塊之其中一個利用態樣例作說明。
在本實施形態之記憶體系統3中,亦同樣的,寫入控制部561,係對於空閒區塊a11而將寫入資料作寫入。與前述之其中一個比較例之間之差異,係在於:在本實施形態中之寫入控制部561,係將作為資料之寫入目標的寫入中區塊a21,因應於寫入資料之容量來作複數種類之確保(例如,第1區塊a21-1、第2區塊a21-2、第3區塊a21-3)。更詳細而言,寫入控制部561,係以不會使「較能夠使管理資料MD2將有效性整批地作管理之資料之容量(128kiB)而更小之容量的資料或者是身為「該容量之整數倍+未滿該容量」之容量之資料」和「該容量之整數倍的容量之資料(包含未滿該容量之尾數之資料)」混合存在於1個的區塊之中的方式,來對於資料之寫入作控制。換言之,寫入控制部561,係將成為需要進行旗標資訊之操作的資料,集中在同一種的區塊中。
另外,如同在前述之其中一個比較例中亦作了說明一般,複數之區塊之各者,係如同空閒區塊a11→寫入中區塊a21→已寫入區塊a22→空閒區塊a11一般地而被循環性地作利用。故而,例如,當作為第1區塊a21-1而於寫入中被作了使用的區塊,以已寫入區塊a22→空閒區塊a11的方式來作了變遷的情況時,於下一次時,係並不被限定於作為第1區塊a21-1,而可作為第1區塊a21-1、第2區塊a21-2或者是第3區塊a21-3之任一者來對於寫入控制部561作供給。亦即是,各區塊,係並非為預先被與第1區塊a21-1、第2區塊a21-2或第3區塊a21-3之其中一者相互附加有關連者。
或者是,各區塊,例如,係亦可在從隸屬於空閒區塊群a1之狀態起而變遷至隸屬於已分配區塊群a2之狀態的時序處,使編成該區塊之多數的頁面被作決定。亦即是,係亦可適宜進行變成複數之區塊之各者的多數之頁面之組合替換。
圖24,係為用以對於在本實施形態中的由寫入控制部561所致之寫入目標區塊之其中一個選擇例作說明之圖。
首先,寫入控制部561,係判定主機2之寫入資料的容量是否身為能夠使管理資料MD2將有效性整批地作管理之資料之容量(128kiB)的整數倍。在並非為128kiB之整數倍的情況時,寫入控制部561,係在此時間點處,作為該寫入資料之寫入目標,而選擇第2區塊a21-2。亦即是,第2區塊a21-2,係身為將成為需要進行旗標資訊之操作的資料作集中之區塊。
在身為128kiB之整數倍的情況時,寫入控制部561,接下來,係判定主機2之寫入資料的容量是否身為能夠使管理資料MD3將有效性整批地作管理之資料之容量(4MiB)的整數倍。另外,於此,雖係針對資料映射(VDM42)為具備有包含第1VDM斷片表T421(第1階層[最下位層])與第2VDM斷片表T422(第2階層[第1階層之上位層])之階層構造的情況作考慮,但是,例如在像是僅存在有第1VDM斷片表T421一般之並不具備階層構造的情況時,寫入控制部561,係亦可在判定主機2之寫入資料之容量乃身為128kiB之整數倍的時間點處,作為該寫入資料之寫入目標,而選擇第1區塊a21-1。
在並非為4MiB之整數倍的情況時,寫入控制部561,係作為該寫入資料之寫入目標,而選擇第1區塊a21-1。第1區塊a21-1,係身為雖然不需要進行旗標資訊之操作但是係成為需要進行管理資料MD2之操作的資料用之區塊。另一方面,在身為4MiB之整數倍的情況時,寫入控制部561,係作為該寫入資料之寫入目標,而選擇第3區塊a21-3。第3區塊a21-3,係身為「不需要進行旗標資訊以及管理資料MD2之操作,而僅需要進行管理資料MD3之操作」的資料用之區塊。
寫入控制部561,例如在對於第1區塊a21-1而將資料作寫入時,當該區塊成為了全滿的情況時,就算是在第2區塊a21-2或第3區塊a21-3處係存在有空閒,也不會有將此些選擇為資料之寫入目標的情形,而是接收新的空閒區塊a11之供給,並設為第1區塊a21-1,而實行剩餘的寫入資料之寫入。
如此這般,藉由因應於主機2之寫入資料之容量來對於寫入目標之區塊作切換,在本實施形態之記憶體系統3中,針對第2區塊a21-2以外的第1區塊a21-1以及第3區塊a21-3,於資料之寫入時以及資料之更新時(更新前資料之無效化時),係能夠成為不需要進行旗標資訊之操作(位元操作)。針對第3區塊a21-3,係進而亦能夠成為不需要進行管理資料MD2之操作。
又,在垃圾回收(GC)中,亦同樣的,針對從身為寫入中區塊a21之其中一者的第1區塊a21-1而變遷至了已寫入區塊a22之區塊,於使該區塊內之有效之資料作移動時,係成為不需要進行旗標資訊之參照(位元掃描)。針對從第3區塊a21-3而變遷至了已寫入區塊a22之區塊,係進而亦成為不需要進行管理資料MD2之參照。不僅是移動源頭之區塊,在移動目標之區塊處,亦同樣的,係不需要進行旗標資訊之操作,而成為僅需要進行管理資料MD2以及管理資料MD3之操作或者是僅需要進行管理資料MD3之操作。
進而,在垃圾回收(GC)中,當「從第1區塊a21-1或第3區塊a21-3而變遷至了已寫入區塊a22之區塊」被作為對象而作了選擇的情況時,係亦能夠期待有間接成本(overhead)之削減的效果。例如,當頁面容量係為16kiB時,若是僅有16kiB之中之4kiB為有效,則會發生像是「將16kiB讀出並將4kiB寫入」一般的12kiB之量的無謂之讀出。在從第1區塊a21-1或第3區塊a21-3而變遷至了已寫入區塊a22之區塊中,由於係僅可能存在有128kiB單位或4MiB單位之大的資料,因此係並不會有發生此種無謂之讀出的情形。並且,係能夠將有效之資料的讀出或對於移動目標之該有效之資料之寫入,以複數頁面之量的統整後之容量來實行。
又,當資料映射(VDM42)為具備有階層構造的情況時,藉由以寫入資料之容量所導致的寫入目標區塊之切換,位址連續性係被保持,藉由此,例如表壓縮之壓縮率係為高,而亦能夠將為了該資料映射而需要在記憶體55上所確保的記憶體容量作削減。係能夠將起因於此記憶體容量之削減所產生的量之容量使用在記憶體系統3之性能改善中,或者是,亦能夠將記憶體55自身之容量縮小。
圖25,係為對於在參照圖18所作了說明的本實施形態之記憶體系統3之資料寫入動作中所包含的「對應於資料容量所進行的寫入目標區塊之選擇處理程序」之其中一例作展示之流程圖。此處理程序,係身為在圖18之步驟S2處而寫入控制部561所實行之處理程序。
寫入控制部561,係判定資料的容量是否身為(能夠使管理資料MD2將有效性整批地作管理之)128kiB的整數倍(步驟S31)。在並非為128kiB之整數倍的情況時(步驟S31,NO),寫入控制部561,係作為資料之寫入目標,而選擇第2區塊a21-2(步驟S32)。
在身為128kiB之整數倍的情況時(步驟S31,YES),寫入控制部561,接下來,係判定資料之量是否身為(能夠使管理資料MD3將有效性整批地作管理之)4MiB之整數倍(步驟S33)。在身為4MiB之整數倍的情況時(步驟S33,YES),寫入控制部561,係作為資料之寫入目標,而選擇第3區塊a21-3(步驟S34)。另一方面,在並非為4MiB之整數倍的情況時(步驟S33,NO),寫入控制部561,係作為資料之寫入目標,而選擇第1區塊a21-1(步驟S35)。
如同上述一般,本實施形態之記憶體系統3,係藉由因應於資料之容量來對於寫入目標之區塊作切換,而能夠降低資料映射(VDM42)之處理成本。
另外,如同前述一般,係亦可使主機2具備有作為FLT之功能,並使LUT41以及VDM42藉由主機2而被作管理,並且關於該LUT41以及VDM42之更新處理等係在主機2側而被實行。於此情況,用以降低資料映射之處理成本的寫入目標區塊之選擇,係亦可在主機2側而被實行。又,於此情況,身為「在與最下位層之階層相對應之第1VDM斷片表T421中所包含之1個的登錄中而使有效性被作管理之資料(該資料所被作儲存之PBA)之數量」之M,係亦能夠以與在主機2處之演算位元寬幅相對應的方式而被作決定。
雖係針對本發明之數種實施形態作了說明,但是,該些實施形態,係僅為作為例子所提示者,而並非為對於本發明之範圍作限定者。此些之新穎的實施形態,係可藉由其他之各種形態來實施,在不脫離發明之要旨的範圍內,係可進行各種之省略、置換、變更。此些之實施形態或其變形,係亦被包含於發明之範圍或要旨中,並且亦被包含在申請專利範圍中所記載的發明及其均等範圍內。
1:資訊處理系統
2:主機
3:記憶體系統
4:非揮發性記憶體
5:控制器
41:LUT(位址轉換表)
41a:PBA儲存(登錄)
41b:LBA儲存部
41c:管理資料儲存部
41d:前指標儲存部
41e:次指標儲存部
42:VDM(資料映射)
42a:映射儲存部
42b:PBA儲存部
42c:管理資料儲存部
42d:前指標儲存部
42e:次指標儲存部
42f:PBA儲存部
51:通訊介面控制部
52:寫入緩衝記憶體
53:讀出緩衝記憶體
54:非揮發性記憶體控制器
55:記憶體
56:處理器
551:快取記憶體
561:寫入控制部
562:讀出控制部
563:垃圾回收控制部
564:位址轉換部
565:管理部
566:快閃記憶體控制部
[圖1]係為對於包含有實施形態的記憶體系統之資訊處理系統之構成的其中一例作展示之區塊圖。
[圖2]係為用以對於在實施形態中之LUT作概念性說明的圖。
[圖3]係為對於在實施形態中之LUT斷片表的資料構造之其中一例作展示之圖。
[圖4]係為用以對於在實施形態之比較例中之VDM作說明的圖。
[圖5]係為用以對於在實施形態中之VDM作概念性說明的圖。
[圖6]係為對於在實施形態中之第1VDM斷片表的資料構造之其中一例作展示之圖。
[圖7]係為對於在實施形態中之第2VDM斷片表的資料構造之其中一例作展示之圖。
[圖8]係為對於在實施形態中之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示之圖。
[圖9]係為對於在實施形態中之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示之圖。
[圖10]係為對於在實施形態中之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示之圖。
[圖11]係為對於在實施形態中之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示之圖。
[圖12]係為對於在實施形態中之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示之圖。
[圖13]係為對於在實施形態中之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示之圖。
[圖14]係為對於在實施形態中之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示之圖。
[圖15]係為對於在實施形態中之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示之圖。
[圖16]係為對於在實施形態中之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示之圖。
[圖17]係為對於在實施形態中之與各階層相對應的LUT斷片表之PBA管理數和VDM斷片表之PBA管理數之間之關係作展示之圖。
[圖18]係為對於在從主機而送訊有寫入指令的情況時之實施形態之記憶體系統之處理程序的其中一例作展示之流程圖。
[圖19]係為對於在從主機而送訊有Trim指令的情況時之實施形態之記憶體系統之處理程序的其中一例作展示之流程圖。
[圖20]係為對於當針對被寫入至非揮發性記憶體內之特定之PBA處之資料係為有效還是無效一事進行確認時之實施形態之記憶體系統之處理程序的其中一例作展示之流程圖。
[圖21]係為將在非揮發性記憶體中所包含之複數之區塊之各者被循環性地作利用之一般性的態樣作為比較例來作展示之圖。
[圖22]係為對於實施形態之記憶體系統所具有的資料映射之各種管理資料所對於有效性作管理之資料之容量作展示之圖。
[圖23]係為對於在實施形態的記憶體系統中之區塊之其中一個利用態樣例作展示之圖。
[圖24]係為用以對於在實施形態的記憶體系統中之寫入目標區塊之其中一個選擇例作說明之圖。
[圖25]係為對於在實施形態之記憶體系統之資料寫入動作中所包含的「對應於資料容量所進行的寫入目標區塊之選擇處理程序」之其中一例作展示之流程圖。
1:資訊處理系統
2:主機
3:記憶體系統
4:非揮發性記憶體
5:控制器
41:LUT(位址轉換表)
42:VDM(資料映射)
51:通訊介面控制部
52:寫入緩衝記憶體
53:讀出緩衝記憶體
54:非揮發性記憶體控制器
55:記憶體
56:處理器
551:快取記憶體
561:寫入控制部
562:讀出控制部
563:垃圾回收控制部
564:位址轉換部
565:管理部
566:快閃記憶體控制部
IB:內部匯流排
Claims (8)
- 一種記憶體系統,係為能夠與主機作連接之記憶體系統,並具備有: 非揮發性記憶體,係包含有複數之區塊;和 控制器,係因應於從主機而來的指令,而對於針對前述非揮發性記憶體之資料之寫入或者是從前述非揮發性記憶體而來之資料之讀出作控制, 前述控制器,係使用資料映射來對於被寫入至前述非揮發性記憶體中之資料的有效性作管理, 前述資料映射,係包含複數之第1斷片表, 前述複數之第1斷片表之各者,係保持第1資訊和第2資訊,該第1資訊,係代表被寫入至被分配至該第1斷片表處之前述非揮發性記憶體內之物理位址之範圍中的特定之容量之資料之各者的有效性,該第2資訊,係在預先所制定了的數量之各登錄中而代表複數之特定之容量之資料的有效性, 前述控制器,係因應於從前述主機而來的寫入指令所要求之進行對於前述非揮發性記憶體之寫入的寫入資料之容量,來選擇寫入目標之區塊。
- 如請求項1所記載之記憶體系統,其中, 前述控制器,當前述寫入資料之容量乃身為藉由前述第2資訊而被展現有效性之資料總量之整數倍的情況時,係將第1區塊選擇為前述寫入目標之區塊,當並非為整數倍的情況時,係將第2區塊選擇為前述寫入目標之區塊。
- 如請求項2中所記載之記憶體系統,其中, 在前述複數之第1斷片表之各者的前述預先所制定了的數量之各登錄中,係被形成有將代表藉由前述第2資訊而被展現有效性的前述複數之特定之容量之資料之各者的有效性之前述第1資訊作了配列的位元映射, 前述位元映射之容量,係與在前述控制器處的演算位元寬幅相對應。
- 如請求項1~3中之任一項所記載之記憶體系統,其中, 前述資料映射,係至少具備有由前述複數之第1斷片表所對應的第1階層以及較前述第1階層而更上位之第2階層所構成的階層構造,並更進而包含有與前述第2階層相對應之第2斷片表, 前述第2斷片表,係保持第3資訊和第4資訊,該第3資訊,係針對前述各第1斷片表之每一者而分別用以對該第1斷片表進行參照,該第4資訊,係當被寫入至被分配至該第1斷片表處的物理位址之範圍中之前述特定之容量之資料的各者之有效性係為共通的情況時,整批性地展示該特定之容量之資料的有效性, 前述控制器,當前述寫入資料之容量乃身為藉由前述第4資訊而被整批性地展現有效性之資料總量之整數倍的情況時,係將第3區塊選擇為前述寫入目標之區塊。
- 一種資訊處理系統,係具備有主機、和被與前述主機可通訊地作連接之記憶體系統, 前述記憶體系統,係具備有包含複數之區塊之非揮發性記憶體, 前述主機,係使用資料映射來對於被寫入至前述非揮發性記憶體中之資料的有效性作管理, 前述資料映射,係包含複數之第1斷片表, 前述複數之第1斷片表之各者,係保持第1資訊和第2資訊,該第1資訊,係代表被寫入至被分配至該第1斷片表處之前述非揮發性記憶體內之物理位址之範圍中的特定之容量之資料之各者的有效性,該第2資訊,係在預先所制定了的數量之各登錄中而代表複數之特定之容量之資料的有效性, 前述主機,係因應於對於前述記憶體系統而要求進行對於前述非揮發性記憶體之寫入的寫入資料之容量,來選擇寫入目標之區塊。
- 如請求項5所記載之資訊處理系統,其中, 前述主機,當前述寫入資料之容量乃身為藉由前述第2資訊而被展現有效性之資料總量之整數倍的情況時,係將第1區塊選擇為前述寫入目標之區塊,當並非為整數倍的情況時,係將第2區塊選擇為前述寫入目標之區塊。
- 如請求項6中所記載之資訊處理系統,其中, 在前述複數之第1斷片表之各者的前述預先所制定了的數量之各登錄中,係被形成有將代表藉由前述第2資訊而被展現有效性的前述複數之特定之容量之資料之各者的有效性之前述第1資訊作了配列的位元映射, 前述位元映射之容量,係與在前述主機處的演算位元寬幅相對應。
- 如請求項5~7中之任一項所記載之資訊處理系統,其中, 前述資料映射,係至少具備有由前述複數之第1斷片表所對應的第1階層以及較前述第1階層而更上位之第2階層所構成的階層構造,並更進而包含有與前述第2階層相對應之第2斷片表, 前述第2斷片表,係保持第3資訊和第4資訊,該第3資訊,係針對前述各第1斷片表之每一者而分別用以對該第1斷片表進行參照,該第4資訊,係當被寫入至被分配至該第1斷片表處的物理位址之範圍中之前述特定之容量之資料的各者之有效性係為共通的情況時,整批性地展示該特定之容量之資料的有效性, 前述主機,當前述寫入資料之容量乃身為藉由前述第4資訊而被整批性地展現有效性之資料總量之整數倍的情況時,係將第3區塊選擇為前述寫入目標之區塊。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021-100701 | 2021-06-17 | ||
| JP2021100701A JP7717504B2 (ja) | 2021-06-17 | 2021-06-17 | メモリシステム及び情報処理システム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202301127A TW202301127A (zh) | 2023-01-01 |
| TWI804021B true TWI804021B (zh) | 2023-06-01 |
Family
ID=84465193
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110139626A TWI804021B (zh) | 2021-06-17 | 2021-10-26 | 記憶體系統及資訊處理系統 |
Country Status (4)
| Country | Link |
|---|---|
| US (3) | US11861197B2 (zh) |
| JP (1) | JP7717504B2 (zh) |
| CN (1) | CN115495011A (zh) |
| TW (1) | TWI804021B (zh) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020093006A (ja) * | 2018-12-15 | 2020-06-18 | 株式会社三洋物産 | 遊技機 |
| JP2020093008A (ja) * | 2018-12-15 | 2020-06-18 | 株式会社三洋物産 | 遊技機 |
| JP2020093011A (ja) * | 2018-12-15 | 2020-06-18 | 株式会社三洋物産 | 遊技機 |
| JP2020093013A (ja) * | 2018-12-15 | 2020-06-18 | 株式会社三洋物産 | 遊技機 |
| JP2020093009A (ja) * | 2018-12-15 | 2020-06-18 | 株式会社三洋物産 | 遊技機 |
| JP2020093007A (ja) * | 2018-12-15 | 2020-06-18 | 株式会社三洋物産 | 遊技機 |
| JP2020093010A (ja) * | 2018-12-15 | 2020-06-18 | 株式会社三洋物産 | 遊技機 |
| JP2020146312A (ja) * | 2019-03-14 | 2020-09-17 | 株式会社三洋物産 | 遊技機 |
| JP2020146311A (ja) * | 2019-03-14 | 2020-09-17 | 株式会社三洋物産 | 遊技機 |
| TWI864600B (zh) * | 2023-02-17 | 2024-12-01 | 大陸商星宸科技股份有限公司 | 應用於智慧型處理器的記憶體管理裝置與方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120173832A1 (en) * | 2011-01-03 | 2012-07-05 | Apple Inc. | Handling dynamic and static data for a system having non-volatile memory |
| TW201305818A (zh) * | 2011-07-21 | 2013-02-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
| TW201510725A (zh) * | 2009-01-23 | 2015-03-16 | Infortrend Technology Inc | 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法 |
| TW201729105A (zh) * | 2015-10-16 | 2017-08-16 | 希耐克斯實驗室公司 | 混合模式存取固態硬碟驅動器之方法及裝置 |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61253530A (ja) * | 1985-05-07 | 1986-11-11 | Hitachi Ltd | 外部記憶の空領域の管理方式 |
| US9396103B2 (en) * | 2007-06-08 | 2016-07-19 | Sandisk Technologies Llc | Method and system for storage address re-mapping for a memory device |
| US9304906B2 (en) * | 2013-09-10 | 2016-04-05 | Kabushiki Kaisha Toshiba | Memory system, controller and control method of memory |
| US10747449B2 (en) * | 2014-07-31 | 2020-08-18 | Toshiba Memory Corporation | Reduction of power use during address translation via selective refresh operations |
| US10482012B1 (en) * | 2014-12-31 | 2019-11-19 | Storone Ltd. | Storage system and method of operating thereof |
| US9696935B2 (en) * | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
| US9910773B2 (en) * | 2016-03-29 | 2018-03-06 | Sandisk Technologies Llc | Method and system for compacting data in non-volatile memory |
| US10268385B2 (en) * | 2016-05-03 | 2019-04-23 | SK Hynix Inc. | Grouped trim bitmap |
| CN106293521B (zh) * | 2016-08-02 | 2019-04-12 | 华中科技大学 | 一种映射粒度自适应的闪存转换层管理方法 |
| JP2018041204A (ja) * | 2016-09-06 | 2018-03-15 | 東芝メモリ株式会社 | メモリ装置及び情報処理システム |
| CN109154917B (zh) * | 2016-12-29 | 2020-09-29 | 华为技术有限公司 | 存储系统和固态硬盘 |
| US10402096B2 (en) * | 2018-01-31 | 2019-09-03 | EMC IP Holding Company LLC | Unaligned IO cache for inline compression optimization |
| JP2019148913A (ja) * | 2018-02-26 | 2019-09-05 | 東芝メモリ株式会社 | メモリシステム |
| US10628063B2 (en) | 2018-08-24 | 2020-04-21 | Advanced Micro Devices, Inc. | Implementing scalable memory allocation using identifiers that return a succinct pointer representation |
| US11221955B2 (en) | 2018-09-06 | 2022-01-11 | International Business Machines Corporation | Metadata track selection switching in a data storage system |
| JP2021033945A (ja) | 2019-08-29 | 2021-03-01 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| CN110716699B (zh) * | 2019-10-17 | 2025-12-30 | 北京百度网讯科技有限公司 | 用于写入数据的方法和装置 |
| JP7558745B2 (ja) | 2020-10-12 | 2024-10-01 | キオクシア株式会社 | メモリシステム及び情報処理システム |
-
2021
- 2021-06-17 JP JP2021100701A patent/JP7717504B2/ja active Active
- 2021-10-26 TW TW110139626A patent/TWI804021B/zh active
- 2021-12-03 CN CN202111464722.9A patent/CN115495011A/zh active Pending
- 2021-12-10 US US17/643,611 patent/US11861197B2/en active Active
-
2023
- 2023-11-15 US US18/509,572 patent/US12175110B2/en active Active
-
2024
- 2024-11-20 US US18/954,097 patent/US20250077101A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201510725A (zh) * | 2009-01-23 | 2015-03-16 | Infortrend Technology Inc | 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法 |
| US20120173832A1 (en) * | 2011-01-03 | 2012-07-05 | Apple Inc. | Handling dynamic and static data for a system having non-volatile memory |
| TW201305818A (zh) * | 2011-07-21 | 2013-02-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
| TW201729105A (zh) * | 2015-10-16 | 2017-08-16 | 希耐克斯實驗室公司 | 混合模式存取固態硬碟驅動器之方法及裝置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250077101A1 (en) | 2025-03-06 |
| US20220404965A1 (en) | 2022-12-22 |
| US20240086096A1 (en) | 2024-03-14 |
| CN115495011A (zh) | 2022-12-20 |
| JP7717504B2 (ja) | 2025-08-04 |
| TW202301127A (zh) | 2023-01-01 |
| JP2023000085A (ja) | 2023-01-04 |
| US11861197B2 (en) | 2024-01-02 |
| US12175110B2 (en) | 2024-12-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI804021B (zh) | 記憶體系統及資訊處理系統 | |
| US12045515B2 (en) | Memory system and control method | |
| US11669444B2 (en) | Computing system and method for controlling storage device | |
| US12038834B2 (en) | Memory system and method for controlling nonvolatile memory during command processing without replacing defective blocks | |
| US10545862B2 (en) | Memory system and method for controlling nonvolatile memory | |
| JP7500311B2 (ja) | メモリシステム及び情報処理システム | |
| JP2013137770A (ja) | Lbaビットマップの使用 | |
| US20140075097A1 (en) | Semiconductor storage device and method for controlling nonvolatile semiconductor memory | |
| US12222857B2 (en) | Memory system and information processing system | |
| US11321243B2 (en) | Data storage device including a semiconductor device managing address mapping of a semiconductor memory device | |
| JP6640940B2 (ja) | メモリシステムの制御方法 |