TWI788890B - 記憶體系統 - Google Patents
記憶體系統 Download PDFInfo
- Publication number
- TWI788890B TWI788890B TW110123160A TW110123160A TWI788890B TW I788890 B TWI788890 B TW I788890B TW 110123160 A TW110123160 A TW 110123160A TW 110123160 A TW110123160 A TW 110123160A TW I788890 B TWI788890 B TW I788890B
- Authority
- TW
- Taiwan
- Prior art keywords
- aforementioned
- data
- file system
- erasure
- division
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/1056—Simplification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Soundproofing, Sound Blocking, And Sound Damping (AREA)
- Vehicle Body Suspensions (AREA)
- Iron Core Of Rotating Electric Machines (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明之一實施形態所欲解決的課題是在於提供一種可提升性能的記憶體系統。
一實施形態的記憶體系統是具備非揮發性記憶體及控制器。
控制器,係根據被儲存於非揮發性記憶體的主啟動記錄資訊來特定非揮發性記憶體中所含的預定的分割的分割形式,
根據被特定的分割形式來特定預定的分割的最初的區段及第2個的區段,
根據最初的區段中所含的第1資訊及第2個的區段中所含的第2資訊來特定管理預定的分割的檔案系統,
依據按照被特定的檔案系統之方法來檢測出預定的分割的資料的邏輯性的消去時,具有特定邏輯性地被消去的第1資料,實行第1資料的物理性的消去之資料消去處理機能。
Description
本發明的實施形態是關於控制非揮發性記憶體的技術及記憶體系統。
[關聯申請案]
本案享有以日本專利申請案2021-49374號(申請日:2021年3月24日)作為基礎申請案的優先權。本案是藉由參照此基礎申請案而包含基礎申請案的全部的內容。
近年來,具備非揮發性記憶體的記憶體系統廣為普及。作為如此的記憶體系統之一,有使用NAND快閃記憶體的固態驅動器(SSD)為人所知。
SSD是作為資料中心的伺服器之類的主計算機系統的儲存裝置使用。
在主計算機系統的儲存裝置中,被要求其性能的提升。
本發明之一實施形態所欲解決的課題是在於提供一種可提升性能的記憶體系統。
若根據一實施形態,則為一種可連接至主機的記憶體系統,
記憶體系統係具備:
非揮發性記憶體;及
被電性連接至前述非揮發性記憶體,被構成為控制前述非揮發性記憶體之控制器,
前述控制器,係根據被儲存於前述非揮發性記憶體的主啟動記錄資訊來特定前述非揮發性記憶體中所含的預定的分割的分割形式,
根據前述被特定的分割形式來特定前述預定的分割的最初的區段及第2個的區段,
根據前述最初的區段中所含的第1資訊及前述第2個的區段中所含的第2資訊來特定管理前述預定的分割的檔案系統,
依據按照前述被特定的檔案系統之方法來檢測出前述預定的分割的資料的邏輯性的消去時,具有特定邏輯性地被消去的第1資料,實行前述第1資料的物理性的消去之資料消去處理機能。
以下,參照圖面,說明實施形態。
圖1是表示包含一實施形態的記憶體系統的資訊處理系統1的構成例的區塊圖。
此記憶體系統是被構成為將資料寫入至非揮發性記憶體,從非揮發性記憶體讀出資料之半導體儲存裝置。此記憶體系統是作為使用NAND快閃記憶體的固態驅動器(SSD)3實現。
資訊處理系統1是包含主機(主裝置)2及SSD3。主機2是藉由以SSD3作為儲存使用的資訊處理裝置來實現。此資訊處理裝置是亦可為個人電腦、伺服器電腦等的電腦,或亦可為平板電腦、智慧型手機等的攜帶型終端裝置,或亦可為汽車導航系統等的車載終端裝置。
SSD3是可作為主機2機能的資訊處理裝置的外部記憶裝置使用。SSD3是亦可被內藏於資訊處理裝置,或亦可經由電纜或網路等來連接至資訊處理裝置。
作為用以相互連接主機2與SSD3的介面是被限定此,可使用PCI Express(PCIe)(註冊商標)、NVM Express (NVMe) (註冊商標)、Ethernet(註冊商標)、NVMe over Fabrics (NVMeOF)等。
SSD3是具備控制器4及非揮發性記憶體(NAND型快閃記憶體)5。SSD3是亦可具備隨機存取記憶體,例如DRAM6。
NAND型快閃記憶體5是包含記憶格陣列,該記憶格陣列是包含被配置成矩陣狀的複數的記憶格。NAND型快閃記憶體5是亦可為2次元構造的NAND型快閃記憶體,或亦可為3次元構造的NAND型快閃記憶體。
NAND型快閃記憶體5的記憶格陣列是包含複數的區塊BLK0~BLKm-1。區塊BLK0~BLKm-1的各者是包含複數的頁(在此是頁P0~Pn-1)。區塊BLK0~BLKm-1的各者是消去(抹除)資料的單位。區塊是亦有被稱為「消去區塊」、「物理區塊」、或「物理消去區塊」的情形。頁P0~Pn-1的各者是資料的寫入及讀出的單位。頁是亦有被稱為「資料區塊」或「區段」的情形。
控制器4是經由ToggleNAND快閃介面、開放NAND快閃介面(ONFI)之類的NAND介面13來電性連接至非揮發性記憶體即NAND型快閃記憶體5。控制器4是作為被構成為控制NAND型快閃記憶體5的記憶體控制器動作。此控制器4是亦可藉由System-on-a-chip(SoC)之類的電路來實現。
NAND型快閃記憶體5是亦可包含複數的NAND型快閃記憶體晶片(NAND型快閃記憶體晶粒)。此情況,NAND介面13是經由複數的通道Ch來分別連接至複數的NAND型快閃記憶體晶片。
控制器4是可作為快閃記憶體轉移層(Flash Translation Layer)(FTL)機能,被構成為實行NAND型快閃記憶體5的資料管理及區塊管理。藉由此FTL來實行的資料管理是包含(1)表示邏輯位址各者與NAND型快閃記憶體5的物理位址各者之間的對應關係的映射(mapping)資訊的管理,(2)用以映射NAND型快閃記憶體5的制約(例如頁單位的讀取/寫入動作與區塊單位的消去動作)的處理等。邏輯位址是為了位址指定SSD3的邏輯位址空間內的位置而藉由主機2來使用的位址。一般可使用LBA(logical block address (addressing)),作為此邏輯位址。
為了存取於SSD3而藉由主機2使用的邏輯位址各者與NAND型快閃記憶體5的物理位址各者之間的映射的管理是利用位址變換表(邏輯物理位址變換表:L2P表)31來實行。控制器4是使用L2P表31,以預定的管理大小單位來管理邏輯位址各者與物理位址各者之間的映射。對應於某邏輯位址的物理位址是表示寫入對應於此邏輯位址的資料之NAND型快閃記憶體5內的最新的物理記憶位置。L2P表31是亦可在SSD3的電源接通時從NAND型快閃記憶體5載入至DRAM6。在DRAM6中,亦可L2P表31全部在SSD3的電源接通時被載入,或亦可L2P表31之中的必要的部分在SSD3的動作中每次被載入。
在NAND型快閃記憶體5中,往頁的資料寫入是可每1消去週期(cycle)僅1次。亦即,無法在已寫入資料的頁(資料區塊)直接覆蓋新的資料。因此,在更新(變更)已被寫入的資料時,控制器4是將新的資料(更新資料)寫入至包含該資料的區塊(或別的區塊)內的未使用區域(未寫入區域),然後將以前的資料作為無效資料處理。換言之,控制器4是對應於某邏輯位址的更新資料寫入至別的物理記憶位置,不儲存有對應於此邏輯位址的以前的資料的物理記憶位置。然後,控制器4更新L2P表31,將此邏輯位址與此別的物理記憶位置建立關聯,且使以前的資料無效化。
在區塊管理是例如含有垃圾回收(GC)等。GC是亦有被稱為「壓縮(Compaction)」的情形。GC是用以增加自由區塊的個數的動作。所謂自由區塊是意思不含有效資料及無效資料的區塊。在GC中,控制器4是將有效資料及無效資料混在的區塊內的有效資料移動至別的區塊(例如自由區塊)。然後,控制器4更新L2P表31,將移動去處的物理位址映射至使移動的有效資料的邏輯位址。控制器4是藉由有效資料被移動至別的區塊,對於只形成無效資料的區塊實行物理性的消去。藉此,被實行物理性的消去的區塊是作為自由區塊解放,可為了資料的寫入而再利用。
在此,所謂有效資料是意思與某邏輯位址建立關聯的資料。例如,從L2P表31參照的資料(亦即從邏輯位址作為最新的資料建立關聯的資料)是有效資料,之後有從主機2讀取的可能性。所謂無效資料是與哪個的邏輯位址皆未建立關聯的資料,意思被邏輯性地消去的資料。與哪個的邏輯位址皆未建立關聯的資料是已經沒有從主機2讀取的可能性的資料。
控制器4是包含主介面11、CPU12、NAND介面13、DRAM介面14、直接記憶體存取控制器(DMAC)15、內部緩衝器16、ECC編碼/解碼部17等。經由該等主介面11、CPU12、NAND介面13、DRAM介面14、直接記憶體存取控制器(DMAC)15、內部緩衝器16、ECC編碼/解碼部17是經由匯流排10來相互連接。
主介面11是被構成為實行與主機2的通訊的主介面電路。此主介面11是例如亦可為PCIe控制器(NVMe控制器)。或,在SSD3經由Ethernet(註冊商標)來連接至主機2的構成中,主介面11是亦可為NVMe over Fabrics (NVMeOF)控制器。
主介面11是從主機2接受各種的指令。該等指令是包含寫入指令(寫入要求、寫進要求)、讀取指令(讀取要求、讀出要求)等其他的各種的指令。
寫入指令是將應寫入的資料(寫入資料)寫入至SSD3的指令(寫入要求、寫進要求),包含寫入資料的邏輯位址(開始LBA)、此寫入資料的長度、表示儲存此寫入資料的主機2的記憶體內的寫入緩衝器內的位置之資料指標(緩衝器位址)等。
讀取指令是從SSD3讀出資料的指令(讀取要求、讀出要求),包含應讀出的資料的邏輯位址(開始LBA)、此資料的長度、表示應轉送此資料的主機2的記憶體內的讀取緩衝器內的位置之資料指標(緩衝器位址)等。
CPU12是被構成為控制主介面11、NAND介面13、DRAM介面14的處理器。CPU12是回應SSD3的電源接通來從NAND型快閃記憶體5或未圖示的ROM將控制程式(韌體)載入至DRAM6,然後藉由實行此韌體來進行各種的處理。另外,韌體是亦可被載入至控制器4內的未圖示的SRAM上。CPU12是可實行用以處理來自主機2的各種的指令之指令處理等。CPU12的動作是藉由上述的韌體來控制。另外,指令處理的一部分或全部是亦可藉由控制器4內的專用硬體來實行。
在控制器4中,存在寫入控制部21、讀取控制部22及抹除控制部23,作為用以實現FTL的構成要素。該等寫入控制部21、讀取控制部22及抹除控制部23是亦可利用藉由CPU12所實行的上述的韌體來實現。另外,該等寫入控制部21、讀取控制部22及抹除控制部23的各個的一部分或全部亦可利用控制器4內的專用硬體來實現。
寫入控制部21是按照從主機2接受的寫入指令(寫入要求),實行將關聯於寫入指令的寫入資料寫入至NAND型快閃記憶體5的處理。讀取控制部22是從主機2接受讀取指令,依據此接受的讀取指令,從NAND型快閃記憶體5讀出被指定的資料。另外,有關抹除控制部23後述,所以在此是省略其詳細說明。
NAND介面13是被構成為在CPU12的控制之下,控制NAND型快閃記憶體5之記憶體控制電路。
DRAM介面14是被構成為在CPU12的控制之下,控制DRAM6之DRAM控制電路。DRAM6的記憶區域的一部分是亦可作為L2P表31用的記憶區域利用。
DMAC15是CPU12的控制之下,實行主機2的記憶體與內部緩衝器16之間的資料轉送。應從主機2的記憶體內的寫入緩衝器將寫入資料轉送至內部緩衝器16時,CPU12是對於DMAC15指定表示主機2的記憶體內的寫入緩衝器上的位置的轉送來源位址、資料大小、表示內部緩衝器16上的位置的轉送去處位址。
ECC編碼/解碼部17是應將資料寫入至NAND型快閃記憶體5時,藉由將資料(應寫入的資料)編碼(ECC編碼)來對此資料附加錯誤訂正碼(ECC)作為冗餘碼。從NAND型快閃記憶體5讀取資料時,ECC編碼/解碼部17是使用在被讀取的資料所附加的ECC來進行此資料的錯誤訂正(ECC解碼)。
如上述般,僅某資料的邏輯性的消去被實行,該資料被無效化,包含該被無效化的資料的區塊並非作為自由區塊被解放。亦即,NAND型快閃記憶體5的記憶區域並非被解放,所以會發生該記憶區域因無效資料而徒勞使用的情形。此事態,雖可藉由上述的GC等來解消,但GC是當主要NAND型快閃記憶體5內的未使用區域比預定值更少時,或接受了來自主機2的指示時被實行,因此無法經常解消上述的事態。
本實施形態的抹除控制部23是監視NAND型快閃記憶體5的狀態,檢測出無效資料的增加時(亦即檢測出資料的邏輯性的消去時),進行該無效資料的物理性的消去,主動地實行以包含該無效資料的區塊作為自由區塊解放的資料消去處理。抹除控制部23的此機能(資料消去處理機能)的ON·OFF是藉由主機2或控制器4來控制,只要此機能形成開啟,抹除控制部23便主動地(例如每預定期間經過)實行資料消去處理。
以下,在說明有關NAND型快閃記憶體5的構造之後,詳細說明有關藉由上述的抹除控制部23來實行的資料消去處理。
圖2是表示NAND型快閃記憶體5的構造的圖。NAND型快閃記憶體5是被分割成複數的分割。在圖2中,顯示分割NAND型快閃記憶體5的分割的形式為MBR形式的情況。因此,在NAND型快閃記憶體5是含有最大4個的分割101(第1分割~第4分割)。
在NAND型快閃記憶體5的前頭區段是配置有主啟動記錄(MBR)100。MBR100是包含主啟動載入程式(master bootstrap loader)102。主啟動載入程式102是從NAND型快閃記憶體5中所含的分割之中找出活動的分割,下載該分割中所含的啟動載入程式,進行將控制交付於此的處理。MBR100是除了主啟動載入程式102以外,還進一步包含對應於NAND型快閃記憶體5中所含的分割之分割表103(第1分割表~第4分割表)及署名104。署名104是用以判斷包含該署名104的MBR100是否為有效的識別符,當MBR100為有效時設定「0xAA55」的值。
分割表103是分別包含對應的分割的構成資訊。具體而言,分割表103是分別包含啟動旗標105、分割開始位置106、分割類型107、分割結束位置108、分割開始位置109及分割總區段數110。
啟動旗標105是用以判斷對應的分割是否為活動的分割的識別符,活動的分割時是設定有「0x80」的值。分割開始位置106是以CHS方式來表示對應的分割的開始位置(亦即對應的分割的最初的區段)。分割類型107是表示利用對應的分割之OS的種類或檔案系統的種類。分割結束位置108是以CHS方式來表示對應的分割的結束位置(亦即對應的分割的最後的區段)。分割開始位置109是以LBA方式來表示對應的分割的開始位置(亦即對應的分割的最初的區段的區段號碼)。分割總區段數110是以LBA方式來表示對應的分割中所含的區段的總數。
圖3是表示NAND型快閃記憶體5的構造的圖。NAND型快閃記憶體5是被分割成複數的分割(partition)。在圖3中,顯示分割NAND型快閃記憶體5的分割的形式為GPT (GUID Partition Table)形式的情況。因此,在NAND型快閃記憶體5是含有最大128個的分割123(第1分割~第128分割)。
在NAND型快閃記憶體5的前頭區段是配置有保護主啟動記錄(Protective MBR;PMBR)120。PMBR120是包含用以保護GPT形式的分割之虛擬(dummy)的分割資訊,以和MBR100相同的形式記錄。NAND型快閃記憶體5是除了PMBR120及分割123以外,包含第1GPT標頭(header)121、第1GPT登錄配列122、第2GPT登錄配列124及第2GPT標頭125。
第1GPT標頭121是定義分割登錄的數量與大小。第1GPT標頭121是包含署名(signature)、磁碟的GUID、本身的大小與位置、第2GPT標頭125的大小與位置、CRC32核對和(CheckSum)等。
第1GPT登錄配列122是包含對應於NAND型快閃記憶體5中所含的分割之分割登錄(partition entry)(第1分割登錄~第128分割登錄)。
分割登錄是分別包含對應的分割的構成資訊。具體而言,分割登錄是分別包含分割類型GUID126、分割GUID127、最初的區段128、最後的區段129、旗標130及分割名131。
分割類型GUID126是表示利用對應的分割之OS的種類或檔案系統的種類之GUID。分割GUID127是表示對應的分割之GUID。最初的區段128是以LBA方式來表示對應的分割的最初的區段的區段號碼。最後的區段129是以LBA方式來表示對應的分割的最後的區段的區段號碼。旗標130是表示對應的分割的屬性。分割名131是表示被設定於對應的分割之名稱。
第2GPT登錄配列124是包含第1GPT登錄配列122的拷貝(備份(back up))。第2GPT標頭125是包含第1GPT標頭121的拷貝(備份)。
另外,亦有將圖2及圖3所示的MBR100及PMBR120中所含的資訊予以總稱為MBR資訊的情形。
以下,詳細說明有關藉由抹除控制部23來實行的資料消去處理。藉由抹除控制部23所實行的資料消去處理是包含:(1)特定NAND型快閃記憶體5中所含的分割的形式之處理、(2)特定管理分割的檔案系統的種類之處理、(3)檢測出資料的邏輯性的消去是否被實行,當資料的邏輯性的消去被檢測出時,實行該資料的物理性的消去之處理等。
首先,參照圖4~圖7的流程圖,詳細說明有關上述(1)特定NAND型快閃記憶體5中所含的分割的形式的處理。圖4~圖7皆是為了特定NAND型快閃記憶體5中所含的分割的形式,而藉由抹除控制部23來實行的處理程序之一例的流程圖。
在圖4中,主要說明有關判別分割的形式為MBR形式或GPT形式。
首先,抹除控制部23是為了取得MBR資訊,而讀出NAND型快閃記憶體5的前頭區段(步驟S1),參照被讀出的前頭區段中所含的構成MBR資訊之預定的分割表來確認分割類型(步驟S2)。
其次,抹除控制部23是判定被確認的分割類型的值是否為表示GPT PMBR的「0xEE」(步驟S3)。在步驟S3的處理中,當被判定成被確認的分割類型的值不是「0xEE」時(步驟S3的NO),抹除控制部23是判斷成NAND型快閃記憶體5中所含的分割的形式是MBR形式,實行後述的圖5所示的步驟S11的處理。
另一方面,在步驟S3的處理中,當被判定成被確認的分割類型的值為「0xEE」時(步驟S3的YES),抹除控制部23是再度參照在步驟S2中參照的分割表,確認以CHS方式所示的分割開始位置及結束位置、及以LBA方式所示的分割總區段數(步驟S4)。
抹除控制部23是根據以被確認的CHS方式所示的分割開始位置及結束位置來算出以LBA方式所示的分割總區段數(步驟S5),判定被算出的分割總區段數與在步驟S4的處理中被確認的分割總區段數是否一致(步驟S6)。
在步驟S6的處理中,當被判定成被算出的分割總區段數與被確認的分割總區段數為一致時(步驟S6的YES),抹除控制部23是判斷成NAND型快閃記憶體5中所含的分割的形式是GPT形式,實行後述的圖7所示的步驟S31的處理。
另一方面,在步驟S6的處理中,當被判定成被算出的分割總區段數與被確認的分割總區段數不一致時(步驟S6的NO),抹除控制部23是判斷成NAND型快閃記憶體5中所含的分割的形式是未知的形式,當作產生矛盾(亦即,判斷成分割形式不是MBR形式也不是GPT形式)(步驟S7),使在此的一連串的處理結束。
接著,說明有關圖5的流程圖。在圖5中,主要說明有關判別分割為基本區域還是擴充區域,在分割為基本區域時被實行的處理。
在圖4所示的步驟S3的處理中,當判定成被確認的分割類型的值不是「0xEE」時(步驟S3的NO),抹除控制部23是判定被確認的分割類型的值是否為表示擴充DOS區域的「0x05」(步驟S11)。在步驟S11的處理中,當被判定成被確認的分割類型的值為「0x05」時(步驟S11的YES),抹除控制部23是判斷成NAND型快閃記憶體5中所含的分割的形式為MBR形式,且形成此次處理對象的分割是擴充區域,實行圖6所示的後述的步驟S21的處理。
另一方面,在步驟S11的處理中,當判定成被確認的分割類型的值不是「0x05」時(步驟S11的NO),抹除控制部23是判斷成NAND型快閃記憶體5中所含的分割的形式是MBR形式,且形成此次處理對象的分割是基本區域。然後,抹除控制部23是再度參照對應於該處理對象的分割之分割表,確認以LBA方式表示的分割開始位置(最初的區段的區段號碼)(步驟S12),將該處理對象的分割與被確認的最初的區段號碼建立關聯而追加於表示NAND型快閃記憶體5中所含的分割的最初的區段之清單(步驟S13)。
然後,抹除控制部23是判定在NAND型快閃記憶體5內是否有尚未形成處理對象的分割(步驟S14),當被判定成有未形成處理對象的分割時(步驟S14的YES),抹除控制部23是以未形成處理對象的分割作為對象,實行圖4的步驟S2的處理。另一方面,在步驟S14的處理中,當被判定成沒有未形成處理對象的分割時(步驟S14的NO),抹除控制部23是使在此的一連串的處理結束。
其次,說明有關圖6的流程圖。在圖6中,主要說明有關在分割為擴充區域時被實行的處理。
在圖5所示的步驟S11的處理中,當被判定成被確認的分割類型的值為「0x05」時(步驟S11的YES),抹除控制部23是判斷成NAND型快閃記憶體5中所含的分割的形式是MBR形式,且形成此次處理對象的分割是擴充區域之後,讀出該處理對象的分割的最初的區段中所含的擴充啟動記錄(EBR)(步驟S21)。另外,EBR是具有與MBR100相同的資料構造,包含本身的邏輯區域及其次的擴充區域的資訊。在EBR所含的4個的分割表之中,2個的分割表是被使用,剩餘2個的分割表是不被使用。在被使用的分割表的一個中,顯示關於包含該EBR的分割的邏輯區域的資訊,在另一個的分割表中,顯示表示其次的EBR的位置的資訊。但,當無其次的EBR時,與上述的剩餘2個的分割表同樣,上述的另一個的分割表也還不被使用。
抹除控制部23是參照被讀出的EBR中所含的預定的分割表,確認以LBA方式所示的分割開始位置(邏輯區域的最初的區段的區段號碼)(步驟S22),將該處理對象的分割與被確認的邏輯區域的最初的區段號碼建立關聯而追加於表示NAND型快閃記憶體5中所含的分割的最初的區段之清單(步驟S23)。
接著,抹除控制部23是判定在被讀出的EBR是否含有顯示其次的EBR的資訊(步驟S24)。在步驟S24的處理中,當被判定成在被讀出的EBR含有顯示其次的EBR的資訊時(步驟S24的YES),抹除控制部23為了讀出該其次的EBR,而實行步驟S21的處理。
另一方面,在步驟S24的處理中,當被判定成在被讀出的EBR中未含顯示其次的EBR的資訊時(步驟S24的NO),判定是否在NAND型快閃記憶體5內有尚未形成處理對象的分割(步驟S25),當被判定成有未形成處理對象的分割時(步驟S25的YES),抹除控制部23是以未形成處理對象的分割作為對象,實行圖4的步驟S2的處理。另一方面,在步驟S25的處理中,當被判定成沒有未形成處理對象的分割時(步驟S25的NO),抹除控制部23是使在此的一連串的處理結束。
進一步,說明有關圖7的流程圖。在圖7中,主要說明有關在分割的形式為GPT形式時被實行的處理。
在圖4所示的步驟S6的處理中,當被判定成被算出的分割總區段數與被確認的分割總區段數一致時(步驟S6的YES),抹除控制部23是判斷成NAND型快閃記憶體5中所含的分割的形式為GPT形式之後,讀出第1GPT標頭,確認被讀出的第1GPT標頭中所含的署名(步驟S31)。
抹除控制部23是判定被確認的署名的值是否為表示GPT的「0x5452415020494645」(步驟S32)。在步驟S32的處理中,當被判定成被確認的署名的值不是「0x5452415020494645」時(步驟S32的NO),抹除控制部23是判斷成NAND型快閃記憶體5中所含的分割的形式是未知的形式,當作產生矛盾(步驟S33),使在此的一連串的處理結束。
另一方面,在步驟S32的處理中,當被判定成被確認的署名的值為「0x5452415020494645」時(步驟S32的YES),抹除控制部23是讀出第1GPT標頭的其次位置的預定的分割登錄(步驟S34)。抹除控制部23是參照被讀出的分割登錄,確認最初的區段號碼及最後的區段號碼(步驟S35),將該處理對象的分割與被確認的最初的區段號碼及最後的區段號碼建立關聯而追加於表示NAND型快閃記憶體5中所含的分割的最初的區段及最後的區段之清單(步驟S36)。
然後,抹除控制部23是判定是否在NAND型快閃記憶體5內尚有未形成處理對象的分割(步驟S37),當被判定成有未形成處理對象的分割時(步驟S37的YES),抹除控制部23是以形成處理對象的分割作為對象,實行步驟S34的處理。另一方面,在步驟S37的處理中,當被判定成沒有未形成處理對象的分割時(步驟S37的NO),抹除控制部23是使在此的一連串的處理結束。
其次,參照圖8~圖11的流程圖,詳細說明有關上述的(2)特定管理分割的檔案系統的種類的處理。圖8~圖11皆是為了特定管理分割的檔案系統的種類,而藉由抹除控制部23來實行的處理程序之一例的流程圖。
在圖8中,說明有關判別(特定)檔案系統是否為EXT4 (第1檔案系統)的處理。
首先,抹除控制部23是從清單讀出與預定的分割建立關聯的最初的區段號碼(步驟S41)。接著,抹除控制部23是參照被讀出的最初的區段號碼,特定該預定的分割的最初的區段的其次的區段的區段號碼(第2個的區段號碼),從該其次的區段讀出超級區塊(步驟S42),讀出在被讀出的超級區塊的偏移量(offset)0x38所設定的魔術數字(步驟S43)。
抹除控制部23是判定被讀出的魔術數字是否為表示EXT4的「0xEF53」(步驟S44)。在步驟S44的處理中,當被判定成被讀出的魔術數字不為「0xEF53」時(步驟S44的NO),抹除控制部23是實行後述的圖9所示的步驟S51的處理。
另一方面,在步驟S44的處理中,當被判定成被讀出的魔術數字為「0xEF53」時(步驟S44的YES),抹除控制部23是判斷成管理處理對象的分割的檔案系統為EXT4(步驟S45),實行後述的圖13所示的步驟S81的處理。
其次,說明有關圖9的流程圖。在圖9中,說明有關判別(特定)檔案系統是否為F2FS(第2檔案系統)的處理。
在圖8所示的步驟S44的處理中,當被判定成被讀出的魔術數字不是「0xEF53」時(步驟S44的NO),抹除控制部23是讀出在步驟S42的處理中在被讀出的超級區塊的偏移量0x00所設定的魔術數字(步驟S51)。
抹除控制部23是判定被讀出的魔術數字是否為表示F2FS的「0xF2F52010」(步驟S52)。在步驟S52的處理中,當被判定成被讀出的魔術數字不是「0xF2F52010」時(步驟S52的NO),抹除控制部23是實行後述的圖10所示的步驟S61的處理。
另一方面,在步驟S52的處理中,當被判定成被讀出的魔術數字為「0xF2F52010」時(步驟S52的YES),抹除控制部23是判斷成管理處理對象的分割之檔案系統為F2FS (步驟S53),實行後述的圖15所示的步驟S91的處理。
接著,說明有關圖10的流程圖。在圖10中,說明有關判別(特定)檔案系統是否為exFAT(第3檔案系統)的處理。
在圖9所示的步驟S52的處理中,當被判定成被讀出的魔術數字(magic number)不是「0xF2F52010」時(步驟S52的NO),抹除控制部23是在步驟S41的處理中參照被讀出的最初的區段號碼,讀出預定的分割的最初的區段(步驟S61)。抹除控制部23是讀出在被讀出的最初的區段的偏移量0x03所設定的檔案系統名(步驟S62)。
抹除控制部23是判定被讀出的檔案系統名是否為「exFAT」(步驟S63)。在步驟S63的處理中,當被判定成被讀出的檔案系統名不是「exFAT」時(步驟S63的NO),抹除控制部23是實行後述的圖11所示的步驟S71的處理。
另一方面,在步驟S63中被判定成被讀出的檔案系統名為「exFAT」時(步驟S63的YES),抹除控制部23是判斷成管理處理對象的分割的檔案系統為exFAT(步驟S64),實行後述的圖17所示的步驟S111的處理。
進一步,說明有關圖11的流程圖。在圖11中,說明有關判別(特定)檔案系統是否為FAT32(第4檔案系統)的處理。
在圖10所示的步驟S63的處理中,當被判定成被讀出的檔案系統名不是「exFAT」時(步驟S63的NO),抹除控制部23是在步驟S61的處理中讀出在被讀出的最初的區段中所含的擴充BPB(BIOS Parameter Block)(步驟S71)。抹除控制部23是讀出在被讀出的擴充BPB的偏移量0x52所設定的檔案系統類型(步驟S72)。
抹除控制部23是判定被讀出的檔案系統類型是否為「FAT32」(步驟S73)。在步驟S73的處理中,當被判定成被讀出的檔案系統類型為「FAT32」時(步驟S73的YES),抹除控制部23是判斷成管理處理對象的分割之檔案系統為FAT32(步驟S74),實行後述的圖19所示的步驟S121的處理。
另一方面,在步驟S73的處理中,當被判定成被讀出的檔案系統類型不是「FAT32」時(步驟S73的NO),抹除控制部23是判斷成管理處理對象的分割之檔案系統是未知的檔案系統(步驟S75)。
然後,抹除控制部23是判定是否特定了清單內的全部的分割的檔案系統(步驟S76),當被判定成尚未特定清單內的全部的分割的檔案系統時(步驟S76的NO),以清單內的別的分割作為處理對象,實行圖8的步驟S41的處理。另一方面,在步驟S76的處理中,當被判定成特定了清單內的全部的分割的檔案系統時(步驟S76的YES),抹除控制部23是使一連串的資料消去處理結束。
其次,參照圖12~圖19,詳細說明有關上述的(3)檢測出資料的邏輯性的消去是否被實行,當資料的邏輯性的消去被檢測出時,實行該資料的物理性的消去之處理。
圖12是表示檔案系統EXT4的佈局的圖。
如圖12所示般,檔案系統EXT4是包含:作為最初的區段配置的啟動區塊140、及複數的區塊群組141(第0區塊群組~第n區塊群組)。啟動區塊140是包含啟動載入器(boot loader)。區塊群組141是包含複數的區塊,區塊是包含複數的資料區塊148。
區塊群組141是分別包含超級區塊142、群組描述符表(GDT)143、預約完了GDT144、資料區塊位元地圖145、i節點位元地圖146、i節點表147及資料區塊148。
超級區塊142是顯示有關檔案系統的資訊(元資料(meta data))。具體而言,超級區塊142是顯示i節點的總數、空缺i節點數、空缺區塊數等。GDT143是顯示資料區塊位元地圖145的位址、i節點位元地圖146的位址、i節點表147的位址等,作為關於區塊群組141的資訊之群組描述符的集合體。預約完了GDT144是藉由檔案系統的擴充來增加區塊群組141時,用以擴充GDT143的預約區域。資料區塊位元地圖145是表示資料區塊的使用狀況。i節點位元地圖146是表示i節點的使用狀況。i節點表147是儲存檔案或目錄(directory)等的i節點的區域。資料區塊148是儲存資料的區域。
圖13是表示在管理分割的檔案系統為EXT4時被實行的處理程序之一例的流程圖。
在圖8所示的步驟S45的處理中,若判斷成管理處理對象的分割之檔案系統為EXT4,則抹除控制部23是讀出區塊群組141中所含的超級區塊142(步驟S81)。其次,抹除控制部23是從被讀出的超級區塊142讀出空缺i節點數及空缺區塊數(步驟S82),判定被讀出的空缺i節點數及空缺區塊數是否比前次的資料消去處理時(前次值)更增加(步驟S83)。另外,前次值是被儲存於控制器4的內部緩衝器16等任意的一時記憶區域者。
另外,從超級區塊142讀出的空缺i節點數及空缺區塊數是表示邏輯性的空缺,不是物理性的空缺。亦即,空缺i節點數是表示未使用的i節點數與被分配於無效資料的i節點數的和。空缺區塊數是表示未使用的資料區塊數與包含無效資料的資料區塊數的和。
在步驟S83的處理中,當被判定成被讀出的空缺i節點數及空缺區塊數比前次的資料消去處理時更增加時(步驟S83的YES),抹除控制部23是讀出區塊群組141中所含的GDT143,依序確認各區塊群組141的空缺區塊數是否比前次值更增加,特定在哪個區塊群組141中進行資料的邏輯性的消去(步驟S84)。
抹除控制部23是從對應於被特定的區塊群組141之群組描述符來讀出資料區塊位元地圖145的位址,參照該位址,讀出資料區塊位元地圖145(步驟S85)。抹除控制部23是參照被讀出的資料區塊位元地圖145,特定進行資料的邏輯性的消去之資料區塊148(亦即包含無效資料的資料區塊148)(步驟S86)。
抹除控制部23是使包含被特定的資料區塊148之區塊內的有效資料移動至別的區塊,更新L2P表31,將移動去處的物理位址映射至使移動的有效資料的邏輯位址之後,進行對於包含被特定的資料區塊148之區塊的資料的物理性的消去(步驟S87)。藉此,可在步驟S86的處理中解放包含被特定的資料區塊148之區塊作為自由區塊。
然後,抹除控制部23是判定是否特定了清單(list)內的全部的分割的檔案系統(步驟S88),當判定成尚未特定清單內的全部的分割的檔案系統時(步驟S88的NO),以清單內的別的分割作為對象,實行圖8的步驟S41的處理。
另一方面,當被判定成特定了清單內的全部的分割的檔案系統時(步驟S88的YES),抹除控制部23是使一連串的資料消去處理結束。
圖14是表示檔案系統F2FS的佈局的圖。
如圖14所示般,檔案系統F2FS是被分割成儲存有元資料(meta data)的元資料區域150、及儲存有資料區塊或節點區塊的主區域151的2個區域。元資料區域150是進一步被分割成超級區塊區域(SB區域)152、檢查點區域(CP區域) 153、部分(segment)資訊表區域(SIT區域)154、節點位址表區域(NAT區域)155、及部分概括(segment summary)區域(SSA區域)156的5個區域。
在SB區域152是儲存有啟動區塊或超級區塊。超級區塊是顯示用以管理分割的基本資訊。具體而言,超級區塊是顯示表示各區域151~156的開始位置的區塊位址等。在CP區域153是定期地儲存有效i節點數、有效節點數、有效區塊數等有關檔案系統的資訊。在SIT區域154是儲存有有效區塊數或顯示全部的有效區塊的位元地圖之SIT。在NAT區域155是儲存有表示節點區塊的位址之NAT。在SSA區域156是儲存有主區域與節點區塊的屬性資訊。
圖15是表示在管理分割的檔案系統為F2FS時被實行的處理程序之一例的流程圖。
在圖9所示的步驟S53的處理中,若判斷管理處理對象的分割的檔案系統為F2FS,則抹除控制部23是從SB區域152讀出超級區塊(步驟S91)。其次,抹除控制部23是讀出表示在被讀出的超級區塊的偏移量0x50所設定的CP區域153的開始位置之區塊位址(CP位址)(步驟S92)。抹除控制部23是讀出表示在被讀出的超級區塊的偏移量0x54所設定的SIT區域154的開始位置之區塊位址(SIT位址)(步驟S93)。
抹除控制部23是參照被讀出的CP位址來特定CP區域153,從CP區域153讀出有效i節點數、有效節點數、有效區塊數(步驟S94)。另外,有效i節點數、有效節點數、有效區塊數是表示使用可能的i節點的數、使用可能的節點的數、使用可能的區塊的數。
抹除控制部23是判定從CP區域153被讀出的有效i節點數是否比前次的資料消去處理時(前次值)更減少(步驟S95)。另外,前次值是被儲存於控制器4的內部緩衝器16等任意的一時記憶區域者。
在步驟S95的處理中,當被判定成被讀出的有效i節點數未比前次的資料消去處理時更減少時(步驟S95的NO),抹除控制部23是判斷成資料的邏輯性的消去未從前次的資料消去處理時進行,實行後述的步驟S102的處理。
另一方面,在步驟S95的處理中,當被判定成被讀出的有效i節點數比前次的資料消去處理時更減少時(步驟S95的YES),抹除控制部23是判定從CP區域153被讀出的有效節點數是否比前次的資料消去處理時更減少(步驟S96)。
在步驟S96的處理中,當被判定成被讀出的有效節點數未比前次的資料消去處理時更減少時(步驟S96的NO),抹除控制部23是判斷成資料的邏輯性的消去未從前次的資料消去處理時進行,實行後述的步驟S102的處理。
另一方面,在步驟S96的處理中,當判定成被讀出的有效節點數比前次的資料消去處理時更減少時(步驟S96的YES),抹除控制部23是判定從CP區域153被讀出的有效區塊數是否比前次的資料消去處理時更減少(步驟S97)。
在步驟S97的處理中,當被判定成被讀出的有效區塊數未比前次的資料消去處理時更減少時(步驟S97的NO),抹除控制部23是判斷成資料的邏輯性的消去未從前次的資料消去處理時進行,實行後述的步驟S102的處理。
另一方面,在步驟S97的處理中,當判定成被讀出的有效區塊數比前次的資料消去處理時更減少時(步驟S97的YES),抹除控制部23是參照被讀出的SIT位址來特定SIT區域154,從SIT區域154讀出有效區塊數(步驟S98)。
抹除控制部23是判定從SIT區域154被讀出的有效區塊數是否比前次的資料消去處理時更減少(步驟S99)。
在步驟S99的處理中,當被判定成被讀出的有效區塊數未比前次的資料消去處理時更減少時(步驟S99的NO),抹除控制部23是判斷成資料的邏輯性的消去未從前次的資料消去處理時進行,實行後述的步驟S102的處理。
另一方面,在步驟S99的處理中,當被判定成被讀出的有效區塊數比前次的資料消去處理時更減少時(步驟S99的YES),抹除控制部23是從SIT區域154讀出有效位元地圖,比較被讀出的有效位元地圖與前次的資料消去處理時的有效位元地圖,特定進行資料的邏輯性的消去之資料區塊(步驟S100)。
抹除控制部23是使包含被特定的資料區塊之區塊內的有效資料移動至別的區塊,更新L2P表31,將移動去處的物理位址映射至使移動的有效資料的邏輯位址之後,進行對於包含被特定的資料區塊之區塊的資料的物理性的消去(步驟S101)。若根據此,則可在步驟S100的處理中解放包含被特定的資料區塊之區塊作為自由區塊。
然後,抹除控制部23是判定是否特定了清單內的全部的分割的檔案系統(步驟S102),當被判定成尚未特定清單內的全部的分割的檔案系統時(步驟S102的NO),以清單內的別的分割作為對象,實行圖8的步驟S41的處理。
另一方面,當被判定成特定了清單內的全部的分割的檔案系統時(步驟S102的YES),抹除控制部23是使一連串的資料消去處理結束。
圖16是表示檔案系統exFAT的佈局的圖。
如圖16所示般,檔案系統exFAT是被分割成啟動區域160、檔案分配表區域(FAT區域)161及資料區域162的3個的區域。在啟動區域160是儲存有啟動區域等。啟動區域是例如顯示根源目錄的開始群集(cluster)號碼等。在FAT區域161是儲存有表示檔案的資料區域162的配置的FAT。在資料區域162中是以由複數的區段所組成的群集單位來管理資料。在資料區域162是儲存有表示群集的使用狀況的分配位元地圖。
圖17是表示在管理分割的檔案系統為exFAT時被實行的處理程序之一例的流程圖。
在圖10所示的步驟S64的處理中,若判斷成管理處理對象的分割的檔案系統為exFAT,則抹除控制部23是從啟動區域160讀出最初的區段(步驟S111)。其次,抹除控制部23是從被讀出的最初的區段讀出根源目錄的開始群集號碼,參照被讀出的開始群集號碼,從資料區域162讀出根源目錄(步驟S112)。
抹除控制部23是從被讀出的根源目錄讀出分配位元地圖目錄登錄,參照被讀出的分配位元地圖目錄登錄,從資料區域162讀出分配位元地圖(步驟S113)。
抹除控制部23是比較被讀出的分配位元地圖與前次的資料消去處理時的分配位元地圖,判定從前次到現在是否有對應於分配位元地圖的群集的位元從1變化至0的部分(步驟S114)。在步驟S114的處理中,當被判定成從前次到現在沒有變化的部分時(步驟S114的NO),抹除控制部23是判斷成資料的邏輯性的消去未從前次的資料消去處理時進行,實行後述的步驟S117的處理。
另一方面,在步驟S114的處理中,當被判定成從前次到現在有變化的部分時(步驟S114的YES),抹除控制部23是特定位元從1變化至0的群集作為進行資料的邏輯性的消去之無效群集(步驟S115)。另外,前次的資料消去處理時的分配位元地圖是被儲存於控制器4的內部緩衝器16等任意的一時記憶區域者。
抹除控制部23是使包含被特定的無效群集之區塊內的有效群集移動至別的區塊,更新L2P表31,將移動去處的物理位址映射至構成使移動的有效群集之複數的有效資料的邏輯位址之後,進行對於包含被特定的無效群集的區塊之資料的物理性的消去(步驟S116)。若根據此,則可在步驟S115的處理中解放包含被特定的無效群集的區塊作為自由區塊。
然後,抹除控制部23是判定是否特定了清單內的全部的分割的檔案系統(步驟S117),當被判定成尚未特定清單內的全部的分割的檔案系統時(步驟S117的NO),以清單內的別的分割作為對象,實行圖8的步驟S41的處理。
另一方面,當被判定成特定了清單內的全部的分割的檔案系統時(步驟S117的YES),抹除控制部23是使一連串的資料消去處理結束。
圖18是表示檔案系統FAT32的佈局的圖。
如圖18所示般,檔案系統FAT32是被分割成預約區域170、檔案分配表區域(FAT區域)171及資料區域172的3個的區域。在預約區域170是儲存有啟動區域或預約區段。預約區段是顯示預約區域170的區段的數量。在FAT區域171是儲存有表示檔案的資料區域172的配置的FAT。在資料區域172中是以由複數的區段所組成的群集單位來管理資料。
圖19是表示在管理分割的檔案系統為FAT32時被實行的處理程序之一例的流程圖。
在圖11所示的步驟S74的處理中,若判斷成管理處理對象的分割的檔案系統為FAT32,則抹除控制部23是從預約區域170讀出預約區段(步驟S121)。其次,抹除控制部23是根據藉由被讀出的預約區段所示的預約區域170的區段數來特定FAT區域171的開始位置,從FAT區域171讀出FAT(步驟S122)。
抹除控制部23是比較被讀出的FAT與前次的資料消去處理時的FAT,判定從前次到現在是否有變化的部分(步驟S123)。在步驟S123的處理中,當被判定成從前次到現在沒有變化的部分時(步驟S123的NO),抹除控制部23是判斷成資料的邏輯性的消去未從前次的資料消去處理時進行,實行後述的步驟S128的處理。另外,前次的資料消去處理時的FAT是被儲存於控制器4的內部緩衝器16等任意的一時記憶區域者。
另一方面,在步驟S123的處理中,當被判定成從前次到現在有變化的部分時(步驟S123的YES),抹除控制部23是從被讀出的FAT讀出群集鏈(步驟S124),比較被讀出的群集鏈與從前次的資料消去處理時的FAT讀出的群集鏈,判定從前次到現在是否有位元從1變化至0的部分,判定是否有無效群集(步驟S125)。在步驟S125的處理中,當被判定成沒有無效群集時(步驟S125的NO),抹除控制部23是判斷成資料的邏輯性的消去未從前次的資料消去處理時進行,實行後述的步驟S128的處理。
另一方面,在步驟S125的處理中,當被判定成有無效群集時(步驟S125的YES),抹除控制部23是使包含無效群集的區塊內的有效群集移動至別的區塊,更新L2P表31,將移動去處的物理位址映射至構成使移動的有效群集之複數的有效資料的邏輯位址之後,進行對於包含無效群集的區塊之資料的物理性的消去(步驟S126)。若根據此,則可在步驟S125的處理中解放包含被特定的無效群集的區塊作為自由區塊。
抹除控制部23是將隨著資料的物理性的消去而被更新的新的FAT儲存於FAT區域171(步驟S127)。
然後,抹除控制部23是判定是否特定了清單內的全部的分割的檔案系統(步驟S128),當被判定成尚未特定清單內的全部的分割的檔案系統時(步驟S128的NO),以清單內的別的分割作為對象,實行圖8的步驟S41的處理。
另一方面,當被判定成特定了清單內的全部的分割的檔案系統時(步驟S128的YES),抹除控制部23是使一連串的資料消去處理結束。
在此,參照圖20的流程圖,說明有關在接受來自主機2的消去要求時被實行的處理。來自主機2的消去要求是包含Discard指令、Trim指令、Erase指令的任一個。消去要求是至少包含表示消去要求的指令碼、及表示進行資料的物理性的消去的區塊的資訊(亦即,表示作為自由區塊解放的區塊的資訊)。
首先,SSD3的控制器4是若經由主介面11接受來自主機2的消去要求(步驟S131),則確認抹除控制部23的資料消去處理機能是否形成開啟(ON)(步驟S132)。
在步驟S132的處理中,當抹除控制部23的資料消去處理機能未形成開啟,亦即形成關閉(OFF)的情形被確認時(步驟S132的NO),控制器4是按照接受的消去要求,實行對於依據該消去要求中所含的資訊來表示的區塊之資料的物理性的消去(步驟S133),使在此的處理結束。
另一方面,在步驟S132的處理中,當抹除控制部23的資料消去處理機能形成開啟的情形被確認時(步驟S132的YES),控制器4是使用抹除控制部23的資料消去處理機能,特定NAND型快閃記憶體5中所含的分割的形式,且特定管理分割的檔案系統的種類之後,藉由按照被特定的檔案系統的方法,從前次的資料消去處理時到現在,確認邏輯性地被消去的資料的數量(步驟S134)。
控制器4是判定邏輯性被消去的資料的數量是否超過預先被設定的上限值(步驟S135)。在步驟S135的處理中,當被判定成邏輯性地被消去的資料的數量超過上限值時(步驟S135的YES),控制器4是將抹除控制部23的資料消去處理機能從開啟變更成關閉之後(步驟S136),實行步驟S133的處理。
另一方面,在步驟S135的處理中,當被判定成邏輯性地被消去的資料的數量未超過上限值時(步驟S135的NO),控制器4是不按照來自主機2的消去要求,在藉由抹除控制部23之其次的資料消去處理時,進行邏輯性地被消去的資料的物理性的消去(步驟S137),使在此的處理結束。
若根據圖20所示的處理,則當邏輯性地被消去的資料的數量超過上限值時,根據抹除控制部23的資料消去處理機能之資料的物理性的消去是需要時間,優先實行按照來自主機2的消去要求之資料的物理性的消去,另一方面,當邏輯性地被消去的資料的數量不超過上限值時,是不按照來自主機2的消去要求,可繼續實行根據抹除控制部23的資料消去處理機能之主動性的資料的物理的消去。
又,按照來自主機2的消去要求而進行資料的物理性的消去時,控制器4是關閉抹除控制部23的資料消去處理機能之後,實行按照來自主機2的消去要求之資料的物理性的消去,因此可不使來自主機2的消去要求與抹除控制部23的資料消去處理機能衝突,實行資料的物理性的消去。
若根據以上說明的一實施形態,則抹除控制部23是藉由特定NAND型快閃記憶體5中所含的分割的形式,且特定管理分割的檔案系統的種類,可依據按照各種檔案系統的方法來監視NAND型快閃記憶體5的狀態。又,抹除控制部23藉由監視NAND型快閃記憶體5的狀態來檢測出資料的邏輯性的消去時,可依據按照被特定的檔案系統的方法來特定邏輯性地被消去的資料(無效資料)被儲存於何處,而實行該資料的物理性的消去。
若根據此,則SSD3是即使無來自主機2的指示、及即使不是GC進行的時機,還是可主動地實行資料的物理性的消去,因此可經常抑制NAND型快閃記憶體5的記憶區域因無效資料而徒勞使用,記憶區域缺乏的事態的發生。亦即,可使SSD3的性能提升。
另外,在本實施形態中,舉NAND型快閃記憶體為例,作為非揮發性記憶體。但,本實施形態的機能是例如在MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM (Resistive Random Access Memory)、或、FeRAM (Ferroelectric Random Access Memory)之類的其他的各種的非揮發性記憶體也可適用。
說明了本發明的幾個的實施形態,但該等的實施形態是舉例提示者,未意圖限定發明的範圍。該等實施形態是可以其他各種的形態實施,可在不脫離發明的要旨的範圍進行各種的省略、置換、變更。該等實施形態或其變形是若含在發明的範圍或主旨中,則同樣含在申請專利範圍記載的發明及其均等的範圍中。
2:主機
3:SSD
4:控制器
5:NAND型快閃記憶體
6:DRAM
23:抹除控制部
31:L2P表
[圖1]是表示一實施形態的記憶體系統的構成例的區塊圖。
[圖2]是表示NAND型快閃記憶體的構造的圖。
[圖3]是表示NAND型快閃記憶體的構造的圖。
[圖4]是表示特定NAND型快閃記憶體中所含的分割的形式之處理的流程圖。
[圖5]是表示特定NAND型快閃記憶體中所含的分割的形式之處理的流程圖。
[圖6]是表示特定NAND型快閃記憶體中所含的分割的形式之處理的流程圖。
[圖7]是表示特定NAND型快閃記憶體中所含的分割的形式之處理的流程圖。
[圖8]是表示特定管理分割的檔案系統的種類之處理的流程圖。
[圖9]是表示特定管理分割的檔案系統的種類之處理的流程圖。
[圖10]是表示特定管理分割的檔案系統的種類之處理的流程圖。
[圖11]是表示特定管理分割的檔案系統的種類之處理的流程圖。
[圖12]是表示檔案系統EXT4的佈局的圖。
[圖13]是表示管理分割的檔案系統為EXT4時為了消去資料而被實行的處理的流程圖。
[圖14]是表示檔案系統F2FS的佈局的圖。
[圖15]是表示管理分割的檔案系統為F2FS時為了消去資料而被實行的處理的流程圖。
[圖16]是表示檔案系統exFAT的佈局的圖。
[圖17]是表示管理分割的檔案系統為exFAT時為了消去資料而被實行的處理的流程圖。
[圖18]是表示檔案系統FAT32的佈局的圖。
[圖19]是表示管理分割的檔案系統為FAT32時為了消去資料而被實行的處理的流程圖。
[圖20]是表示接受來自主機的消去要求時被實行的處理的流程圖。
1:資訊處理系統
2:主機
3:SSD
4:控制器
5:NAND型快閃記憶體
6:DRAM
10:匯流排
11:控制主介面
12:CPU
13:NAND介面
14:DRAM介面
15:DMAC
16:內部緩衝器
17:ECC編碼/解碼部
21:寫入控制部
22:讀取控制部
23:抹除控制部
31:L2P表
BLK0~BLKm-1:區塊
P0~Pn-1:頁
Claims (14)
- 一種記憶體系統,係可連接至主機的記憶體系統,其特徵係具備:非揮發性記憶體;及被電性連接至前述非揮發性記憶體,被構成為控制前述非揮發性記憶體之控制器,前述控制器,係取得被儲存於前述非揮發性記憶體的主啟動記錄資訊,根據前述取得的主啟動記錄資訊的分割表中所含的分割類型的值來特定分割形式,根據前述被特定的分割形式來特定前述預定的分割的最初的區段及第2個的區段,根據前述最初的區段中所含的第1資訊及前述第2個的區段中所含的第2資訊來特定管理前述預定的分割的檔案系統,依據按照前述被特定的檔案系統之方法來檢測出前述預定的分割的資料的邏輯性的消去時,具有特定邏輯性地被消去的第1資料,實行前述第1資料的物理性的消去之資料消去處理機能。
- 如請求項1記載的記憶體系統,其中,前述控制器,係讀出前述第2個的區段中所含的超級區塊,作為前述第2資訊,在前述超級區塊的第1偏移量所設定的魔術數字為顯示第1值時,將前述檔案系統特定成第1檔案系統。
- 如請求項2記載的記憶體系統,其中,前述第1偏移量為0x38,前述第1值為0xEF53。
- 如請求項2記載的記憶體系統,其中,前述控制器,係若特定前述檔案系統為前述第1檔案系統,則特定現在的空缺i節點數及空缺區塊數,當該等的值比前次值更增加時,檢測出前述預定的分割的資料的邏輯性的消去,實行前述第1資料的物理性的消去。
- 如請求項1~4中的任一項所記載的記憶體系統,其中,前述控制器,係讀出前述第2個的區段中所含的超級區塊,作為前述第2資訊,在前述超級區塊的第2偏移量所設定的魔術數字為顯示第2值時,將前述檔案系統特定成第2檔案系統。
- 如請求項5記載的記憶體系統,其中,前述第2偏移量為0x00,前述第2值為0xF2F52010。
- 如請求項5記載的記憶體系統,其中,前述控制器,係若特定前述檔案系統為前述第2檔案系統,則特定現在的有效i節點數、有效節點數及有效區塊數,當該等的值比前次值更減少時,檢測出前述預定的分割的資料的邏輯性的消去,實行前述第1資料的物理性的消去。
- 如請求項1~4中的任一項所記載的記憶體系統,其中,前述控制器,係讀出在前述最初的區段的第3偏移量所設定的檔案系統名,作為前述第1資訊,前述檔案系統名為顯示第3檔案系統時,將前述檔案系統特定成 前述第3檔案系統。
- 如請求項8記載的記憶體系統,其中,前述第3偏移量為0x03。
- 如請求項8記載的記憶體系統,其中,前述控制器,係若特定前述檔案系統為前述第3檔案系統,則比較現在的分配位元地圖與前次的分配位元地圖,當從前次到現在有對應於群集的位元從1變化至0的部分時,檢測出前述預定的分割的資料的邏輯性的消去,實行前述第1資料的物理性的消去。
- 如請求項1~4中的任一項所記載的記憶體系統,其中,前述控制器,係讀出前述最初的區段中所含的擴充BIOS參數區塊,作為前述第1資訊,在前述擴充BIOS參數區塊的第4偏移量所設定的檔案系統類型為顯示第4檔案系統時,將前述檔案系統特定成前述第4檔案系統。
- 如請求項11記載的記憶體系統,其中,前述第4偏移量為0x52。
- 如請求項11記載的記憶體系統,其中,前述控制器,係若特定前述檔案系統為前述第4檔案系統,則比較現在的檔案分配表與前次的檔案分配表,當從前次到現在有變化的部分時,檢測出前述預定的分割的資料的邏輯性的消去,實行前述第1資料的物理性的消去。
- 如請求項1~4中的任一項所記載的記憶體系統,其中,前述控制器,係可控制前述資料消去處理 機能的開啟、關閉,當接受來自前述主機的消去要求,且前述資料消去處理機能形成開啟時,依據按照藉由前述資料消去處理機能所特定的檔案系統之方法,從前次的資料消去處理時到現在,確認在前述預定的分割中邏輯性地被消去的前述第1資料的數量,當前述第1資料的數量超過預先被設定的上限值時,將前述資料消去處理機能從開啟控制成關閉之後,按照來自前述主機的消去要求,實行前述第1資料的物理性的消去,當前述第1資料的數量未超過前述上限值時,不按照來自前述主機的消去要求,在其次的資料消去處理時,實行根據前述資料消去處理機能之前述第1資料的物理性的消去。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021-049374 | 2021-03-24 | ||
JP2021049374A JP2022147909A (ja) | 2021-03-24 | 2021-03-24 | メモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202238572A TW202238572A (zh) | 2022-10-01 |
TWI788890B true TWI788890B (zh) | 2023-01-01 |
Family
ID=83364743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110123160A TWI788890B (zh) | 2021-03-24 | 2021-06-24 | 記憶體系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11907567B2 (zh) |
JP (1) | JP2022147909A (zh) |
CN (1) | CN115129238A (zh) |
TW (1) | TWI788890B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI420311B (zh) * | 2010-03-18 | 2013-12-21 | Univ Nat Sun Yat Sen | 基於集合分模組之快取記憶體之分割方法 |
TWI454915B (zh) * | 2011-09-30 | 2014-10-01 | Intel Corp | 實施具有不同操作模式之多階記憶體階層的設備與方法 |
US9489443B1 (en) * | 2013-05-24 | 2016-11-08 | Amazon Technologies, Inc. | Scheduling of splits and moves of database partitions |
TWI709073B (zh) * | 2015-11-13 | 2020-11-01 | 南韓商三星電子股份有限公司 | 分佈式儲存系統、分佈式儲存方法及分佈式設施 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006155461A (ja) | 2004-12-01 | 2006-06-15 | Sony Corp | 情報処理装置、情報処理方法、並びにプログラム |
KR100876084B1 (ko) | 2007-02-13 | 2008-12-26 | 삼성전자주식회사 | 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템 |
EP2798500A1 (en) * | 2011-12-29 | 2014-11-05 | Memory Technologies LLC | Method for erasing data entity in memory module |
JP2014206967A (ja) | 2013-03-18 | 2014-10-30 | 株式会社Genusion | 記憶装置 |
US9547655B1 (en) * | 2013-07-11 | 2017-01-17 | Ca, Inc. | Filesystem independent snapshot driver |
US9727456B2 (en) * | 2014-11-03 | 2017-08-08 | Pavilion Data Systems, Inc. | Scheduled garbage collection for solid state storage devices |
KR102051086B1 (ko) * | 2018-01-05 | 2019-12-02 | 주식회사 웨인 | 파일저장 기능을 지원하는 부팅 디스크 |
KR20200100955A (ko) * | 2019-02-19 | 2020-08-27 | 에스케이하이닉스 주식회사 | 메모리 시스템의 맵 데이터 관리 방법 및 장치 |
US11100008B2 (en) * | 2019-11-01 | 2021-08-24 | EMC IP Holding Company LLC | Efficient memory usage for snapshots |
-
2021
- 2021-03-24 JP JP2021049374A patent/JP2022147909A/ja active Pending
- 2021-06-24 TW TW110123160A patent/TWI788890B/zh active
- 2021-08-23 CN CN202110969544.9A patent/CN115129238A/zh active Pending
- 2021-09-13 US US17/473,294 patent/US11907567B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI420311B (zh) * | 2010-03-18 | 2013-12-21 | Univ Nat Sun Yat Sen | 基於集合分模組之快取記憶體之分割方法 |
TWI454915B (zh) * | 2011-09-30 | 2014-10-01 | Intel Corp | 實施具有不同操作模式之多階記憶體階層的設備與方法 |
US9489443B1 (en) * | 2013-05-24 | 2016-11-08 | Amazon Technologies, Inc. | Scheduling of splits and moves of database partitions |
TWI709073B (zh) * | 2015-11-13 | 2020-11-01 | 南韓商三星電子股份有限公司 | 分佈式儲存系統、分佈式儲存方法及分佈式設施 |
Also Published As
Publication number | Publication date |
---|---|
JP2022147909A (ja) | 2022-10-06 |
CN115129238A (zh) | 2022-09-30 |
TW202238572A (zh) | 2022-10-01 |
US20220308789A1 (en) | 2022-09-29 |
US11907567B2 (en) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10635310B2 (en) | Storage device that compresses data received from a host before writing therein | |
US8135901B2 (en) | Solid state memory (SSM), computer system including an SSM, and method of operating an SSM | |
US7949845B2 (en) | Indexing of file data in reprogrammable non-volatile memories that directly store data files | |
US7984233B2 (en) | Direct data file storage implementation techniques in flash memories | |
US7669003B2 (en) | Reprogrammable non-volatile memory systems with indexing of directly stored data files | |
US7877539B2 (en) | Direct data file storage in flash memories | |
US8572310B2 (en) | Invalidating storage area of non-volatile storage medium based on metadata | |
US8214583B2 (en) | Direct file data programming and deletion in flash memories | |
JP5178514B2 (ja) | 記憶装置用デュアルモードアクセスのための方法およびシステム | |
US10061710B2 (en) | Storage device | |
US7769978B2 (en) | Method and system for accessing non-volatile storage devices | |
EP2042995B1 (en) | Storage device and deduplication method | |
US9116622B2 (en) | Storage system having nonvolatile semiconductor storage device with nonvolatile semiconductor memory | |
TWI420305B (zh) | 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法 | |
TW200841174A (en) | Host device and memory system | |
US10120583B2 (en) | Performance penalty avoidance for solid state drive | |
TWI790628B (zh) | 記憶體系統及控制方法 | |
KR20080038368A (ko) | 데이터 파일을 직접 저장하는 재프로그램가능 비휘발성메모리에 파일 데이터의 인덱싱 | |
KR20210012085A (ko) | 저널 리플레이를 개선하기 위한 스토리지 장치, 그것의 동작 방법, 및 스토리지 장치를 포함하는 전자 장치 | |
JP7475989B2 (ja) | メモリシステムおよび制御方法 | |
TWI788890B (zh) | 記憶體系統 | |
JP6419662B2 (ja) | ストレージシステム及びデータ重複検出方法 | |
TWI713032B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US20220091772A1 (en) | Memory system | |
JP2009301491A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |