CN115129238A - 存储系统 - Google Patents

存储系统 Download PDF

Info

Publication number
CN115129238A
CN115129238A CN202110969544.9A CN202110969544A CN115129238A CN 115129238 A CN115129238 A CN 115129238A CN 202110969544 A CN202110969544 A CN 202110969544A CN 115129238 A CN115129238 A CN 115129238A
Authority
CN
China
Prior art keywords
data
file system
partition
erasure
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110969544.9A
Other languages
English (en)
Inventor
长原祯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Publication of CN115129238A publication Critical patent/CN115129238A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, 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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Soundproofing, Sound Blocking, And Sound Damping (AREA)
  • Vehicle Body Suspensions (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)

Abstract

本发明涉及存储系统。本发明的一实施方式所要解决的课题是提供能够提高性能的存储系统。一实施方式的存储系统具备非易失性存储器和控制器。控制器具有如下的数据擦除处理功能:基于保存于非易失性存储器的主引导记录信息来确定非易失性存储器中包含的预定的分区的分区形式,基于确定出的分区形式来确定预定的分区的最初的扇区和第2个扇区,基于最初的扇区中包含的第1信息和第2个扇区中包含的第2信息来确定管理预定的分区的文件系统,在通过按照确定出的文件系统的方法而检测到预定的分区中的数据的逻辑性的擦除的情况下,确定被逻辑性地擦除的第1数据,执行第1数据的物理性的擦除。

Description

存储系统
关联申请
本申请享受以日本专利申请2021-49374号(申请日:2021年3月24日)为基础申请的优先权。本申请通过参照该基础申请而包括基础申请的全部内容。
技术领域
本发明的实施方式涉及控制非易失性存储器的技术及存储系统。
背景技术
近年来,具备非易失性存储器的存储系统正在广泛地普及。作为这样的存储系统之一,已知有使用了NAND快闪存储器的固态驱动器(SSD)。
SSD作为数据中心的服务器这样的各种各样的主机计算机系统的存储器件来使用。
在主机计算机系统的存储器件中,追求其性能的提高。
发明内容
本发明的一实施方式所要解决的课题是提供能够提高性能的存储系统。
根据一实施方式,是一种能够与主机连接的存储系统,其中,存储系统具备非易失性存储器和与所述非易失性存储器电连接且构成为控制所述非易失性存储器的控制器。所述控制器具有如下的数据擦除处理功能:基于保存于所述非易失性存储器的主引导记录信息来确定所述非易失性存储器中包含的预定的分区的分区形式,基于所述确定出的分区形式来确定所述预定的分区的最初的扇区和第2个扇区,基于所述最初的扇区中包含的第1信息和所述第2个扇区中包含的第2信息来确定管理所述预定的分区的文件系统,在通过按照所述确定出的文件系统的方法而检测到所述预定的分区中的数据的逻辑性的擦除的情况下,确定被逻辑性地擦除的第1数据,执行所述第1数据的物理性的擦除。
附图说明
图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是示出在接收到来自主机的擦除要求的情况下执行的处理的流程图。
标号说明
2…主机,3…SSD,4…控制器,5…NAND型快闪存储器,6…DRAM,23…抹除控制部,31…L2P表。
具体实施方式
以下,参照附图来说明实施方式。
图1是示出包括一实施方式的存储系统的信息处理系统1的构成例的框图。
该存储系统是构成为向非易失性存储器写入数据、从非易失性存储器读出数据的半导体存储器件。该存储系统作为使用了NAND快闪存储器的固态驱动器(SSD)3而实现。
信息处理系统1包括主机(主机器件)2和SSD3。主机2由构成为将SSD3作为存储装置来使用的信息处理装置实现。该信息处理装置可以是个人计算机、服务器计算机等计算机,也可以是平板、智能手机等便携终端,还可以是汽车导航系统等车载终端。
SSD3能够用作作为主机2发挥功能的信息处理装置的外部存储装置。SSD3可以内置于信息处理装置,也可以与信息处理装置经由电缆、网络等而连接。
作为用于将主机2和SSD3相互连接的接口,虽然不限定于此,但能够使用PCIExpress(PCIe)(注册商标)、NVM Express(NVMe)(注册商标)、Ethernet(注册商标)、NVMeover Fabrics(NVMeOF)等。
SSD3具备控制器4及非易失性存储器(NAND型快闪存储器)5。SSD3也可以具备随机存取存储器,例如DRAM6。
NAND型快闪存储器5包括包含呈矩阵状地配置的多个存储单元的存储单元阵列。NAND型快闪存储器5可以是二维构造的NAND型快闪存储器,也可以是三维构造的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能够作为构成为执行NAND型快闪存储器5的数据管理及块管理的闪存转换层(FTL)发挥功能。在由该FTL执行的数据管理中,包括(1)表示逻辑地址的各自与NAND型快闪存储器5的物理地址的各自之间的对应关系的映射信息的管理、(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擦除循环仅能够进行1次。也就是说,无法向已经写入有数据的页(数据块)直接覆写新的数据。因而,在更新(变更)已经写入的数据的情况下,控制器4向包含该数据的块(或别的块)内的未使用区域(未写入区域)写入新的数据(更新数据),并且将以前的数据作为无效数据来处理。换言之,控制器4将与某逻辑地址对应的更新数据不是向保存有与该逻辑地址对应的以前的数据的物理存储位置写入,而是向别的物理存储位置写入。然后,控制器4更新L2P表31而将该逻辑地址与该别的物理存储位置建立关联,并且将以前的数据无效化。
在块管理中,例如包括垃圾收集(GC)等。GC有时被称作“压缩”。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中,作为用于实现FTL的构成要素,存在写控制部21、读控制部22及抹除控制部23。这些写控制部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将表示主机2的存储器内的写缓冲器上的位置的传送源地址、数据尺寸、表示内部缓冲器16上的位置的传送目的地地址对DMAC15指定。
ECC编码/解码部17在应该向NAND型快闪存储器5写入数据时,通过将数据(应该写入的数据)编码(ECC编码)而将错误订正码(ECC)作为冗长码向该数据附加。在从NAND型快闪存储器5读出了数据时,ECC编码/解码部17使用附加于被读出的数据的ECC来进行该数据的错误订正(ECC解码)。
若只是如上述那样执行某数据的逻辑性的擦除而该数据被无效化,则包含该无效化的数据的块并不作为自由块而释放。也就是说,由于NAND型快闪存储器5的存储区域不被释放,所以可能出现该存储区域会被无效数据浪费地使用之类的情况。该事态能够通过上述的GC等而消除,但GC主要在NAND型快闪存储器5内的未使用区域变得比预定值少时或接受了来自主机2的指示时执行,因此无法始终消除上述的事态。
本实施方式的抹除控制部23主动地执行以下的数据擦除处理:监视NAND型快闪存储器5的状态,在检测到无效数据的增加的情况下(也就是说,在检测到数据的逻辑性的擦除的情况下),进行该无效数据的物理性的擦除,将包含该无效数据的块作为自由块而释放。抹除控制部23的该功能(数据擦除处理功能)的开启/关闭由主机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被分割成多个分区。在图3中,示出了分割NAND型快闪存储器5的分区的形式是GPT(GUID Partition Table)形式的情况。因而,在NAND型快闪存储器5中包含最大128个分区123(第1分区~第128分区)。
在NAND型快闪存储器5的开头扇区配置保护性主引导记录(PMBR)120。PMBR120包含用于保护GPT形式的分区的虚设的分区信息,以与MBR100相同的形式记录。NAND型快闪存储器5除了PMBR120及分区123之外,还包含第1GPT头121、第1GPT条目排列122、第2GPT条目排列124及第2GPT头125。
第1GPT头121定义分区条目的数量和尺寸。第1GPT头121包含签名、盘的GUID、自身的尺寸和位置、第2GPT头125的尺寸和位置、CRC32校验和等。
第1GPT条目排列122包含与NAND型快闪存储器5中包含的分区对应的分区条目(第1分区条目~第128分区条目)。
分区条目分别包含对应的分区的构成信息。具体而言,分区条目分别包含分区类型GUID126、分区GUID127、最初的扇区128、最后的扇区129、标志130及分区名131。
分区类型GUID126是表示正在利用对应的分区的OS的种类或文件系统的种类的GUID。分区GUID127是表示对应的分区的GUID。最初的扇区128以LBA方式表示对应的分区的最初的扇区的扇区编号。最后的扇区129以LBA方式表示对应的分区的最后的扇区的扇区编号。标志130表示对应的分区的属性。分区名131表示对对应的分区设定的名称。
第2GPT条目排列124包含第1GPT条目排列122的副本(备份)。第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的否),抹除控制部23判断为NAND型快闪存储器5中包含的分区的形式是MBR形式,执行后述的图5所示的步骤S11的处理。
另一方面,在步骤S3的处理中判定为确认出的分区类型的值是“0xEE”的情况下(步骤S3的是),抹除控制部23再次参照在步骤S2中参照的分区表来确认以CHS方式表示的分区开始位置及结束位置和以LBA方式表示的分区总扇区数(步骤S4)。
抹除控制部23基于确认出的以CHS方式表示的分区开始位置及结束位置来算出以LBA方式表示的分区总扇区数(步骤S5),判定算出的分区总扇区数和在步骤S4的处理中确认出的分区总扇区数是否一致(步骤S6)。
在步骤S6的处理中判定为算出的分区总扇区数和确认出的分区总扇区数一致的情况下(步骤S6的是),抹除控制部23判断为NAND型快闪存储器5中包含的分区的形式是GPT形式,执行后述的图7所示的步骤S31的处理。
另一方面,在步骤S6的处理中判定为算出的分区总扇区数和确认出的分区总扇区数不一致的情况下(步骤S6的否),抹除控制部23认为产生了矛盾,判断为NAND型快闪存储器5中包含的分区的形式是未知的形式(也就是说,判断为分区形式既不是MBR形式也不是GPT形式)(步骤S7),使这里的一系列的处理结束。
接着,对图5的流程图进行说明。在图5中,主要对判别分区是基本区域还是扩展区域且在分区是基本区域的情况下执行的处理进行说明。
在图4所示的步骤S3的处理中判定为确认出的分区类型的值不是“0xEE”的情况下(步骤S3的否),抹除控制部23判定确认出的分区类型的值是否是表示扩展DOS区域的“0x05”(步骤S11)。在步骤S11的处理中判定为确认出的分区类型的值是“0x05”的情况下(步骤S11的是),抹除控制部23判断为NAND型快闪存储器5中包含的分区的形式是MBR形式且成为了本次处理对象的分区是扩展区域,执行图6所示的后述的步骤S21的处理。
另一方面,在步骤S11的处理中判定为确认出的分区类型的值不是“0x05”的情况下(步骤S11的否),抹除控制部23判断为NAND型快闪存储器5中包含的分区的形式是MBR形式且成为了本次处理对象的分区是基本区域。然后,抹除控制部23再次参照与该处理对象的分区对应的分区表来确认以LBA方式表示的分区开始位置(最初的扇区的扇区编号)(步骤S12),将该处理对象的分区和确认出的最初的扇区编号建立关联并追加到表示NAND型快闪存储器5中包含的分区的最初的扇区的列表(步骤S13)。
之后,抹除控制部23判定在NAND型快闪存储器5内是否存在还未成为处理对象的分区(步骤S14),在判定为存在未成为处理对象的分区的情况下(步骤S14的是),抹除控制部23将未成为处理对象的分区设为对象来执行图4的步骤S2的处理。另一方面,在步骤S14的处理中判定为不存在未成为处理对象的分区的情况下(步骤S14的否),抹除控制部23使这里的一系列的处理结束。
接着,对图6的流程图进行说明。在图6中,主要对在分区是扩展区域的情况下执行的处理进行说明。
在图5所示的步骤S11的处理中判定为确认出的分区类型的值是“0x05”的情况下(步骤S11的是),抹除控制部23在判断为NAND型快闪存储器5中包含的分区的形式是MBR形式且成为了本次处理对象的分区是扩展区域的基础上,读出该处理对象的分区的最初的扇区中包含的扩展引导记录(EBR)(步骤S21)。此外,EBR具有与MBR100相同的数据构造,包含自身的逻辑区域和下一扩展区域的信息。EBR中包含的4个分区表中的2个分区表被使用,剩余2个分区表不被使用。在被使用的分区表的1个中,示出与包含该EBR的分区的逻辑区域相关的信息,在另1个分区表中,示出表示下一EBR的位置的信息。不过,在不存在下一EBR的情况下,与上述的剩余2个分区表同样,上述的另1个分区表也不被使用。
抹除控制部23参照读出的EBR中包含的预定的分区表来确认以LBA方式表示的分区开始位置(逻辑区域中的最初的扇区的扇区编号)(步骤S22),将该处理对象的分区和确认出的逻辑区域中的最初的扇区编号建立关联并向表示NAND型快闪存储器5中包含的分区的最初的扇区的列表追加(步骤S23)。
接着,抹除控制部23判定在读出的EBR中是否包含表示下一EBR的信息(步骤S24)。在步骤S24的处理中判定为在读出的EBR中包含表示下一EBR的信息的情况下(步骤S24的是),抹除控制部23为了读出该下一EBR而执行步骤S21的处理。
另一方面,在步骤S24的处理中判定为在读出的EBR中不包含表示下一EBR的信息的情况下(步骤S24的否),判定在NAND型快闪存储器5内是否存在还未成为处理对象的分区(步骤S25),在判定为存在未成为处理对象的分区的情况下(步骤S25的是),抹除控制部23将未成为处理对象的分区设为对象来执行图4的步骤S2的处理。另一方面,在步骤S25的处理中判定为不存在未成为处理对象的分区的情况下(步骤S25的否),抹除控制部23使这里的一系列的处理结束。
进一步对图7的流程图进行说明。在图7中,主要对在分区的形式是GPT形式的情况下执行的处理进行说明。
在图4所示的步骤S6的处理中判定为算出的分区总扇区数和确认出的分区总扇区数一致的情况下(步骤S6的是),抹除控制部23在判断为NAND型快闪存储器5中包含的分区的形式是GPT形式的基础上,读出第1GPT头,确认读出的第1GPT头中包含的签名(步骤S31)。
抹除控制部23判定确认出的签名的值是否是表示GPT的“0x5452415020494645”(步骤S32)。在步骤S32的处理中判定为确认出的签名的值不是“0x5452415020494645”的情况下(步骤S32的否),抹除控制部23认为产生了矛盾,判断为NAND型快闪存储器5中包含的分区的形式是未知的形式(步骤S33),使这里的一系列的处理结束。
另一方面,在步骤S32的处理中判定为确认出的签名的值是“0x5452415020494645”的情况下(步骤S32的是),抹除控制部23读出接在接着第1GPT头之后的预定的分区条目(步骤S34)。抹除控制部23参照读出的分区条目来确认最初的扇区编号及最后的扇区编号(步骤S35),将该处理对象的分区和确认出的最初的扇区编号及最后的扇区编号建立关联并向表示NAND型快闪存储器5中包含的分区的最初的扇区及最后的扇区的列表追加(步骤S36)。
之后,抹除控制部23判定在NAND型快闪存储器5内是否存在还未成为处理对象的分区(步骤S37),在判定为存在未成为处理对象的分区的情况下(步骤S37的是),抹除控制部23将未成为处理对象的分区设为对象来执行步骤S34的处理。另一方面,在步骤S37的处理中判定为不存在未成为处理对象的分区的情况下(步骤S37的否),抹除控制部23使这里的一系列的处理结束。
接着,参照图8~图11的流程图对上述的(2)确定管理分区的文件系统的种类的处理进行详细说明。图8~图11都是示出为了确定管理分区的文件系统的种类而由抹除控制部23执行的处理顺序的一例的流程图。
在图8中,对判别(确定)文件系统是否是EXT4(第1文件系统)的处理进行说明。
首先,抹除控制部23将与预定的分区建立了关联的最初的扇区编号从列表读出(步骤S41)。接着,抹除控制部23参照读出的最初的扇区编号来确认该预定的分区的最初的扇区的下一扇区的扇区编号(第2个扇区编号),从该下一扇区读出超级块(步骤S42),读出在读出的超级块的偏移(offset)0x38设定的幻数(magic number)(步骤S43)。
抹除控制部23判定读出的幻数是否是表示EXT4的“0xEF53”(步骤S44)。在步骤S44的处理中判定为读出的幻数不是“0xEF53”的情况下(步骤S44的否),抹除控制部23执行后述的图9所示的步骤S51的处理。
另一方面,在步骤S44的处理中判定为读出的幻数是“0xEF53”的情况下(步骤S44的是),抹除控制部23判断为管理处理对象的分区的文件系统是EXT4(步骤S45),执行后述的图13所示的步骤S81的处理。
接着,对图9的流程图进行说明。在图9中,对判别(确定)文件系统是否是F2FS(第2文件系统)的处理进行说明。
在图8所示的步骤S44的处理中判定为读出的幻数不是“0xEF53”的情况下(步骤S44的否),抹除控制部23读出设定于在步骤S42的处理中读出的超级块的偏移0x00的幻数(步骤S51)。
抹除控制部23判定读出的幻数是否是表示F2FS的“0xF2F52010”(步骤S52)。在步骤S52的处理中判定为读出的幻数不是“0xF2F52010”的情况下(步骤S52的否),抹除控制部23执行后述的图10所示的步骤S61的处理。
另一方面,在步骤S52的处理中判定为读出的幻数是“0xF2F52010”的情况下(步骤S52的是),抹除控制部23判断为管理处理对象的分区的文件系统是F2FS(步骤S53),执行后述的图15所示的步骤S91的处理。
接着,对图10的流程图进行说明。在图10中,对判别(确定)文件系统是否是exFAT(第3文件系统)的处理进行说明。
在图9所示的步骤S52的处理中判定为读出的幻数不是“0xF2F52010”的情况下(步骤S52的否),抹除控制部23参照在步骤S41的处理中读出的最初的扇区编号来读出预定的分区的最初的扇区(步骤S61)。抹除控制部23读出对读出的最初的扇区的偏移0x03设定的文件系统名(步骤S62)。
抹除控制部23判定读出的文件系统名是否是“exFAT”(步骤S63)。在步骤S63的处理中判定为读出的文件系统名不是“exFAT”的情况下(步骤S63的否),抹除控制部23执行后述的图11所示的步骤S71的处理。
另一方面,在步骤S63中判定为读出的文件系统名是“exFAT”的情况下(步骤S63的是),抹除控制部23判断为管理处理对象的分区的文件系统是exFAT(步骤S64),执行后述的图17所示的步骤S111的处理。
进一步对图11的流程图进行说明。在图11中,对判别(确定)文件系统是否是FAT32(第4文件系统)的处理进行说明。
在图10所示的步骤S63的处理中判定为读出的文件系统名不是“exFAT”的情况下(步骤S63的否),抹除控制部23读出在步骤S61的处理中读出的最初的扇区中包含的扩展BPB(BIOS Parameter Block:BIOS参数块)(步骤S71)。抹除控制部23读出对读出的扩展BPB的偏移0x52设定的文件系统类型(步骤S72)。
抹除控制部23判定读出的文件系统类型是否是“FAT32”(步骤S73)。在步骤S73的处理中判定为读出的文件系统类型是“FAT32”的情况下(步骤S73的是),抹除控制部23判断为管理处理对象的分区的文件系统是FAT32(步骤S74),执行后述的图19所示的步骤S121的处理。
另一方面,在步骤S73的处理中判定为读出的文件系统类型不是“FAT32”的情况下(步骤S73的否),抹除控制部23判断为管理处理对象的分区的文件系统是未知的文件系统(步骤S75)。
之后,抹除控制部23判定是否确定了列表内的全部的分区的文件系统(步骤S76),在判定为还未确定列表内的全部的分区的文件系统的情况下(步骤S76的否),将列表内的别的分区设为处理对象来执行图8的步骤S41的处理。另一方面,在步骤S76的处理中判定为确定了列表内的全部的分区的文件系统的情况下(步骤S76的是),抹除控制部23使一系列的数据擦除处理结束。
接着,参照图12~图19对上述的(3)检测是否执行了数据的逻辑性的擦除且在检测到数据的逻辑性的擦除的情况下执行该数据的物理性的擦除的处理进行详细说明。
图12是示出文件系统EXT4的布局的图。
如图12所示,文件系统EXT4包含作为最初的扇区配置的引导块140和多个块组141(第0块组~第n块组)。引导块140包含引导加载程序。块组141包含多个块,块包含多个数据块148。
块组141分别包含超级块142、组描述符表(GDT)143、已预约GDT144、数据块位图145、i节点位图146、i节点表147及数据块148。
超级块142表示与文件系统相关的信息(元数据)。具体而言,超级块142表示i节点的总数、空闲i节点数、空闲块数等。GDT143是作为与块组141相关的信息而表示数据块位图145的地址、i节点位图146的地址、i节点表147的地址等的组描述符的集合体。已预约GDT144是在通过文件系统的扩展而块组141增加时用于扩展GDT143的预约区域。数据块位图145表示数据块的使用状况。i节点位图146表示i节点的使用状况。i节点表147是文件、目录等保存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的是),抹除控制部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判定是否确定了列表内的全部的分区的文件系统(步骤S88),在判定为还未确定列表内的全部的分区的文件系统的情况下(步骤S88的否),将列表内的别的分区设为对象来执行图8的步骤S41的处理。
另一方面,在判定为确定了列表内的全部的分区的文件系统的情况下(步骤S88的是),抹除控制部23使一系列的数据擦除处理结束。
图14是示出文件系统F2FS的布局的图。
如图14所示,文件系统F2FS被分割成保存元数据的元数据区150和保存数据块、节点块的主区151这2个区。元数据区150进一步被分割成超级块区(SB区)152、检查点区(CP区)153、段信息表区(SIT区)154、节点地址表区(NAT区)155及段汇总区(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的否),抹除控制部23判断为从上次的数据擦除处理时起未进行数据的逻辑性的擦除,执行后述的步骤S102的处理。
另一方面,在步骤S95的处理中判定为读出的有效i节点数比上次的数据擦除处理时减少的情况下(步骤S95的是),抹除控制部23判定从CP区153读出的有效节点数是否比上次的数据擦除处理时减少(步骤S96)。
在步骤S96的处理中判定为读出的有效节点数未比上次的数据擦除处理时减少的情况下(步骤S96的否),抹除控制部23判断为从上次的数据擦除处理时起未进行数据的逻辑性的擦除,执行后述的步骤S102的处理。
另一方面,在步骤S96的处理中判定为读出的有效节点数比上次的数据擦除处理时减少的情况下(步骤S96的是),抹除控制部23判定从CP区153读出的有效块数是否比上次的数据擦除处理时减少(步骤S97)。
在步骤S97的处理中判定为读出的有效块数未比上次的数据擦除处理时减少的情况下(步骤S97的否),抹除控制部23判断为从上次的数据擦除处理时起未进行数据的逻辑性的擦除,执行后述的步骤S102的处理。
另一方面,在步骤S97的处理中判定为读出的有效块数比上次的数据擦除处理时减少的情况下(步骤S97的是),抹除控制部23参照读出的SIT地址来确定SIT区154,从SIT区154读出有效块数(步骤S98)。
抹除控制部23判定从SIT区154读出的有效块数是否比上次的数据擦除处理时减少(步骤S99)。
在步骤S99的处理中判定为读出的有效块数未比上次的数据擦除处理时减少的情况下(步骤S99的否),抹除控制部23判断为从上次的数据擦除处理时起未进行数据的逻辑性的擦除,执行后述的步骤S102的处理。
另一方面,在步骤S99的处理中判定为读出的有效块数比上次的数据擦除处理时减少的情况下(步骤S99的是),抹除控制部23从SIT区154读出有效位图,将读出的有效位图与上次的数据擦除处理时的有效位图进行比较,确定被进行了数据的逻辑性的擦除的数据块(步骤S100)。
抹除控制部23使包含确定出的数据块的块内的有效数据向别的块移动,更新L2P表31而将移动目的地的物理地址与移动后的有效数据的逻辑地址建立映射后,进行对于包含确定出的数据块的块的数据的物理性的擦除(步骤S101)。由此,能够将包含在步骤S100的处理中确定出的数据块的块作为自由块而释放。
之后,抹除控制部23判定是否确定了列表内的全部的分区的文件系统(步骤S102),在判定为还未确定列表内的全部的分区的文件系统的情况下(步骤S102的否),将列表内的别的分区设为对象来执行图8的步骤S41的处理。
另一方面,在判定为确定了列表内的全部的分区的文件系统的情况下(步骤S102的是),抹除控制部23使一系列的数据擦除处理结束。
图16是示出文件系统exFAT的布局的图。
如图16所示,文件系统exFAT被分割成引导区160、文件分配表区(FAT区)161及数据区162这3个区。在引导区160保存引导扇区等。引导扇区例如表示根目录的开始簇编号等。在FAT区161保存表示文件的数据区162中的配置的FAT。在数据区162中,以由多个扇区构成的簇(clust)单位管理数据。在数据区162保存表示簇的使用状况的分配位图。
图17是示出在管理分区的文件系统是exFAT的情况下执行的处理顺序的一例的流程图。
若在图10所示的步骤S64的处理中判断为管理处理对象的分区的文件系统是exFAT,则抹除控制部23从引导区160读出最初的扇区(步骤S111)。接着,抹除控制部23从读出的最初的扇区读出根目录的开始簇编号,参照读出的开始簇编号来从数据区162读出根目录(步骤S112)。
抹除控制部23从读出的根目录读出分配位图目录条目,参照读出的分配位图目录条目来从数据区162读出分配位图(步骤S113)。
抹除控制部23将读出的分配位图与上次的数据擦除处理时的分配位图进行比较,判定是否存在从上次到现在分配位图的与簇对应的位从1变化成0的部分(步骤S114)。在步骤S114的处理中判定为不存在从上次到当前发生了变化的部分的情况下(步骤S114的否),抹除控制部23判断为从上次的数据擦除处理时起未进行数据的逻辑性的擦除,执行后述的步骤S117的处理。
另一方面,在步骤S114的处理中判定为存在从上次到当前发生了变化的部分的情况下(步骤S114的是),抹除控制部23将位从1变化成0的簇确定为被进行了数据的逻辑性的擦除的无效簇(步骤S115)。此外,上次的数据擦除处理时的分配位图保存于控制器4的内部缓冲器16等任意的暂时存储区域。
抹除控制部23使包含确定出的无效簇的块内的有效簇向别的块移动,更新L2P表31而将移动目的地的物理地址与构成移动后的有效簇的多个有效数据的逻辑地址建立映射后,进行对于包含确定出的无效簇的块的数据的物理性的擦除(步骤S116)。由此,能够将包含在步骤S115的处理中确定出的无效簇的块作为自由块而释放。
之后,抹除控制部23判定是否确定了列表内的全部的分区的文件系统(步骤S117),在判定为还未确定列表内的全部的分区的文件系统的情况下(步骤S117的否),将列表内的别的分区设为对象来执行图8的步骤S41的处理。
另一方面,在判定为确定了列表内的全部的分区的文件系统的情况下(步骤S117的是),抹除控制部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的否),抹除控制部23判断为从上次的数据擦除处理时起未进行数据的逻辑性的擦除,执行后述的步骤S128的处理。此外,上次的数据擦除处理时的FAT保存于控制器4的内部缓冲器16等任意的暂时存储区域。
另一方面,在步骤S123的处理中判断为存在从上次到当前发生了变化的部分的情况下(步骤S123的是),抹除控制部23从读出的FAT读出簇链(步骤S124),将读出的簇链与上次的数据擦除处理时的从FAT读出的簇链进行比较,判定是否存在从上次到当前位从1变化成0的部分,判定是否存在无效簇(步骤S125)。在步骤S125的处理中判定为不存在无效簇的情况下(步骤S125的否),抹除控制部23判断为从上次的数据擦除处理时起未进行数据的逻辑性的擦除,执行后述的步骤S128的处理。
另一方面,在步骤S125的处理中判定为存在无效簇的情况下(步骤S125的是),抹除控制部23使包含无效簇的块内的有效簇向别的块移动,更新L2P表31而将移动目的地的物理地址与构成移动后的有效簇的多个有效数据的逻辑地址建立映射后,进行对于包含无效簇的块的数据的物理性的擦除(步骤S126)。由此,能够将包含在步骤S125的处理中确定出的无效簇的块作为自由块而释放。
抹除控制部23将伴随于数据的物理性的擦除而更新后的新的FAT向FAT区171保存(步骤S127)。
之后,抹除控制部23判定是否确定了列表内的全部的分区的文件系统(步骤S128),在判定为还未确定列表内的全部的分区的文件系统的情况下(步骤S128的否),将列表内的别的分区设为对象来执行图8的步骤S41的处理。
另一方面,在判定为确定了列表内的全部的分区的文件系统的情况下(步骤S128的是),抹除控制部23使一系列的数据擦除处理结束。
在此,参照图20的流程图对在接收到来自主机2的擦除要求的情况下执行的处理进行说明。来自主机2的擦除要求是包含Discard命令、Trim命令、Erase命令中的任一者的要求。擦除要求至少包含表示是擦除要求的命令码和表示进行数据的物理性的擦除的块的信息(也就是说,表示作为自由块而释放的块的信息)。
首先,SSD3的控制器4若经由主机接口11而接收到来自主机2的擦除要求(步骤S131),则确认抹除控制部23的数据擦除处理功能是否为开启(步骤S132)。
在步骤S132的处理中确认了抹除控制部23的数据擦除处理功能不为开启(也就是说,为关闭)的情况下(步骤S132的否),控制器4按照接收到的擦除要求来执行对于由该擦除要求中包含的信息表示的块的数据的物理性的擦除(步骤S133),使这里的处理结束。
另一方面,在步骤S132的处理中确认了抹除控制部23的数据擦除处理功能为开启的情况下(步骤S132的是),控制器4使用抹除控制部23的数据擦除处理功能来确定NAND型快闪存储器5中包含的分区的形式且确定管理分区的文件系统的种类后,通过按照确定出的文件系统的方法来确认从上次的数据擦除处理时到当前被逻辑性地擦除的数据的数量(步骤S134)。
控制器4判定被逻辑性地擦除的数据的数量是否超过了预先设定的上限值(步骤S135)。在步骤S135的处理中判定为被逻辑性地擦除的数据的数量超过了上限值的情况下(步骤S135的是),控制器4将抹除控制部23的数据擦除处理功能从开启变更为关闭后(步骤S136),执行步骤S133的处理。
另一方面,在步骤S135的处理中判定为被逻辑性地擦除的数据的数量未超过上限值的情况下(步骤S135的否),控制器4不按照来自主机2的擦除要求,设为在抹除控制部23的下一数据擦除处理时进行被逻辑性地擦除的数据的物理性的擦除(步骤S137),使这里的处理结束。
根据图20所示的处理,能够在被逻辑性地擦除的数据的数量超过上限值的情况下,认为基于抹除控制部23的数据擦除处理功能的数据的物理性的擦除需要时间,优先执行按照来自主机2的擦除要求的数据的物理性的擦除,另一方面,在被逻辑性地擦除的数据的数量不超过上限值的情况下,不按照来自主机2的擦除要求,继续执行基于抹除控制部23的数据擦除处理功能的主动的数据的物理性擦除。
另外,在按照来自主机2的擦除要求来进行数据的物理性的擦除的情况下,控制器4将抹除控制部23的数据擦除处理功能关闭后,按照来自主机2的擦除要求来执行数据的物理性的擦除,因此能够不使来自主机2的擦除要求和抹除控制部23的数据擦除处理功能冲突地执行数据的物理性的擦除。
根据以上说明的一实施方式,抹除控制部23通过确定NAND型快闪存储器5中包含的分区的形式且确定管理分区的文件系统的种类,能够通过按照各种文件系统的方法来监视NAND型快闪存储器5的状态。另外,抹除控制部23在通过监视NAND型快闪存储器5的状态而检测到数据的逻辑性的擦除的情况下,能够通过按照确定出的文件系统的方法来确定被逻辑性地擦除的数据(无效数据)保存于何处,执行该数据的物理性的擦除。
由此,即使没有来自主机2的指示,且即使不是进行GC的定时,SSD3也能够主动地执行数据的物理性的擦除,因此能够始终抑制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:铁电随机存取存储器)这样的其他的各种各样的非易失性存储器。
虽然说明了本发明的一些实施方式,但这些实施方式作为例子而展示,未意图限定发明的范围。这些新的实施方式能够以其他各种各样的方式来实施,能够在不脱离发明的主旨的范围内进行各种省略、置换、变更。这些实施方式及其变形包含于发明的范围、主旨,并且包含于权利要求书所记载的发明及其等同的范围。

Claims (14)

1.一种存储系统,能够与主机连接,其中,具备:
非易失性存储器;及
控制器,与所述非易失性存储器电连接,构成为控制所述非易失性存储器,
所述控制器具有如下的数据擦除处理功能:
基于保存于所述非易失性存储器的主引导记录信息来确定所述非易失性存储器中包含的预定的分区的分区形式,
基于所述确定出的分区形式来确定所述预定的分区的最初的扇区和第2个扇区,
基于所述最初的扇区中包含的第1信息和所述第2个扇区中包含的第2信息来确定管理所述预定的分区的文件系统,
在通过按照所述确定出的文件系统的方法而检测到所述预定的分区中的数据的逻辑性的擦除的情况下,确定被逻辑性地擦除的第1数据,执行所述第1数据的物理性的擦除。
2.根据权利要求1所述的存储系统,
所述控制器读出所述第2个扇区中包含的超级块作为所述第2信息,在设定于所述超级块的第1偏移的幻数表示第1值的情况下,将所述文件系统确定为第1文件系统。
3.根据权利要求2所述的存储系统,
所述第1偏移是0x38,
所述第1值是0xEF53。
4.根据权利要求2所述的存储系统,
所述控制器若确定为所述文件系统是所述第1文件系统,则确定当前的空闲i节点数及空闲块数,在它们的值比上次值增加的情况下,检测出所述预定的分区中的数据的逻辑性的擦除,执行所述第1数据的物理性的擦除。
5.根据权利要求1~4中任一项所述的存储系统,
所述控制器读出所述第2个扇区中包含的超级块作为所述第2信息,在设定于所述超级块的第2偏移的幻数表示第2值的情况下,将所述文件系统确定为第2文件系统。
6.根据权利要求5所述的存储系统,
所述第2偏移是0x00,
所述第2值是0xF2F52010。
7.根据权利要求5所述的存储系统,
所述控制器若确定为所述文件系统是所述第2文件系统,则确定当前的有效i节点数、有效节点数及有效块数,在它们的值比上次值减少的情况下,检测出所述预定的分区中的数据的逻辑性的擦除,执行所述第1数据的物理性的擦除。
8.根据权利要求1~4中任一项所述的存储系统,
所述控制器读出对所述最初的扇区的第3偏移设定的文件系统名作为所述第1信息,在所述文件系统名表示第3文件系统的情况下,将所述文件系统确定为所述第3文件系统。
9.根据权利要求8所述的存储系统,
所述第3偏移是0x03。
10.根据权利要求8所述的存储系统,
所述控制器若确定为所述文件系统是所述第3文件系统,则将当前的分配位图与上次的分配位图进行比较,在存在从上次到当前与簇对应的位从1变化成0的部分的情况下,检测出所述预定的分区中的数据的逻辑性的擦除,执行所述第1数据的物理性的擦除。
11.根据权利要求1~4中任一项所述的存储系统,
所述控制器读出所述最初的扇区中包含的扩展BIOS参数块作为所述第1信息,在对所述扩展BIOS参数块的第4偏移设定的文件系统类型表示第4文件系统的情况下,将所述文件系统确定为所述第4文件系统。
12.根据权利要求11所述的存储系统,
所述第4偏移是0x52。
13.根据权利要求11所述的存储系统,
所述控制器若确定为所述文件系统是所述第4文件系统,则将当前的文件分配表与上次的文件分配表进行比较,在存在从上次到当前发生了变化的部分的情况下,检测出所述预定的分区中的数据的逻辑性的擦除,执行所述第1数据的物理性的擦除。
14.根据权利要求1~4中任一项所述的存储系统,
所述控制器能够控制所述数据擦除处理功能的开启、关闭,
所述控制器在接收到来自所述主机的擦除要求且所述数据擦除处理功能为开启的情况下,通过按照由所述数据擦除处理功能确定的文件系统的方法,确认从上次的数据擦除处理时到当前在所述预定的分区中被逻辑性地擦除的所述第1数据的数量,
所述控制器在所述第1数据的数量超过了预先设定的上限值的情况下,将所述数据擦除处理功能从开启控制成关闭后,按照来自所述主机的擦除要求来执行所述第1数据的物理性的擦除,
所述控制器在所述第1数据的数量未超过所述上限值的情况下,不按照来自所述主机的擦除要求,而在下一数据擦除处理时,执行基于所述数据擦除处理功能的所述第1数据的物理性的擦除。
CN202110969544.9A 2021-03-24 2021-08-23 存储系统 Pending CN115129238A (zh)

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 (1)

Publication Number Publication Date
CN115129238A true CN115129238A (zh) 2022-09-30

Family

ID=83364743

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110969544.9A Pending CN115129238A (zh) 2021-03-24 2021-08-23 存储系统

Country Status (4)

Country Link
US (1) US11907567B2 (zh)
JP (1) JP2022147909A (zh)
CN (1) CN115129238A (zh)
TW (1) TWI788890B (zh)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
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 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
TWI420311B (zh) * 2010-03-18 2013-12-21 Univ Nat Sun Yat Sen 基於集合分模組之快取記憶體之分割方法
EP3451176B1 (en) * 2011-09-30 2023-05-24 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
JP2015507798A (ja) * 2011-12-29 2015-03-12 メモリー テクノロジーズ リミティド ライアビリティ カンパニー メモリ・モジュールにおいてデータ・エンティティを消去するための方法
JP2014206967A (ja) 2013-03-18 2014-10-30 株式会社Genusion 記憶装置
US9489443B1 (en) * 2013-05-24 2016-11-08 Amazon Technologies, Inc. Scheduling of splits and moves of database partitions
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
US9946642B2 (en) * 2015-11-13 2018-04-17 Samsung Electronics Co., Ltd Distributed multimode storage management
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

Also Published As

Publication number Publication date
TWI788890B (zh) 2023-01-01
US20220308789A1 (en) 2022-09-29
JP2022147909A (ja) 2022-10-06
TW202238572A (zh) 2022-10-01
US11907567B2 (en) 2024-02-20

Similar Documents

Publication Publication Date Title
US10126959B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7793068B2 (en) Dual mode access for non-volatile storage devices
US7769978B2 (en) Method and system for accessing non-volatile storage devices
US7747837B2 (en) Method and system for accessing non-volatile storage devices
CN106874211B (zh) 存储器系统及非易失性存储器的控制方法
USRE45222E1 (en) Method of writing of writing to a flash memory including data blocks and log blocks, using a logical address having a block address portion and page identifying portion, a block address table and a page table
KR101404083B1 (ko) 반도체 디스크 및 그것의 동작 방법
TW201915742A (zh) 記憶體系統及控制非揮發性記憶體之控制方法
US20070033373A1 (en) Method and system for dual mode access for storage devices
US20140281172A1 (en) Nonvolatile memory device, electronic device and computing system including the same
US10268400B2 (en) System and method for file detection and usage during compaction
US11269771B2 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
JP7475989B2 (ja) メモリシステムおよび制御方法
JP6817340B2 (ja) 計算機
JP5204265B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
CN115129238A (zh) 存储系统
CN115576859A (zh) 存储系统以及控制方法
US20220091772A1 (en) Memory system
TWI788860B (zh) 記憶體系統
US20240202113A1 (en) Memory system
CN110597454B (zh) 数据储存装置以及非挥发式存储器控制方法
JP2024043063A (ja) メモリシステムおよび制御方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination