CN113868148A - 一种数据写入的方法及装置 - Google Patents
一种数据写入的方法及装置 Download PDFInfo
- Publication number
- CN113868148A CN113868148A CN202010614233.6A CN202010614233A CN113868148A CN 113868148 A CN113868148 A CN 113868148A CN 202010614233 A CN202010614233 A CN 202010614233A CN 113868148 A CN113868148 A CN 113868148A
- Authority
- CN
- China
- Prior art keywords
- logical
- block
- physical
- processor
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 149
- 230000008569 process Effects 0.000 claims abstract description 55
- 239000010410 layer Substances 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 5
- 239000002356 single layer Substances 0.000 claims description 2
- 238000004817 gas chromatography Methods 0.000 claims 3
- 239000013307 optical fiber Substances 0.000 claims 1
- 230000015654 memory Effects 0.000 abstract description 26
- 238000013467 fragmentation Methods 0.000 abstract description 13
- 238000006062 fragmentation reaction Methods 0.000 abstract description 13
- 238000011084 recovery Methods 0.000 abstract 1
- 238000013507 mapping Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 22
- 230000005012 migration Effects 0.000 description 15
- 238000013508 migration Methods 0.000 description 15
- 239000008187 granular material Substances 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 101150053844 APP1 gene Proteins 0.000 description 1
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 1
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 1
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 1
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 1
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 1
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000008188 pellet Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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
- 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
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- 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/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- 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/0608—Saving storage space on storage systems
-
- 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/064—Management of blocks
-
- 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
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
-
- 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/7206—Reconfiguration of flash memory system
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)
Abstract
本申请公开了一种数据写入的方法,该方法应用于计算机系统,该计算机系统包括文件系统、基于闪存的存储系统,该方法包括:获取目标逻辑地址,该目标逻辑地址是为要写入存储系统的目标数据从第一逻辑块上分配的地址,确定目标逻辑地址属于第一逻辑块,根据第一逻辑块和第一物理块的对应关系,将目标数据写入第一物理块。本申请提供的方案用于保证只执行文件系统的垃圾回收GC,就可以得到文件系统中连续的逻辑地址,以及得到存储系统中干净的物理块,同时避免了因执行文件系统的GC过程而造成存储系统的碎片化。
Description
技术领域
本申请涉及存储管理技术领域,具体涉及一种数据写入的方法及装置。
背景技术
基于闪存(flash)颗粒的存储设备,如:固态硬盘(solid state disk,SSD)、通用闪存(universal flash storage,UFS)和嵌入式多媒体卡(embedded multi-media card,eMMC)等已广泛应用于信息通信技术(information and communication technology,ICT)的各个领域。上述这些基于闪存颗粒的存储设备在内部有闪存转换层(flash translationlayer,FTL),FTL屏蔽了闪存顺序写入的特性,因此这些存储设备可以以普通块设备呈现给主机侧,从而基于块设备的文件系统都可以在这些存储设备上使用。
闪存友好文件系统(flash-friendly file system,F2FS)是一种基于块设备的文件系统。该F2FS会为要写入存储设备的数据从逻辑块(logic block,LB)上分配逻辑地址(logic address,LA)。F2FS所分配逻辑地址的是随机的,但因为存储设备中flash颗粒顺序写入的特性,无论F2FS分配的逻辑地址位于哪个逻辑块,存储设备都会按顺序从物理块(physic block,PB)上分配物理地址(physic address,PA),并将该数据写入该物理地址所对应的物理页,建立该数据的物理地址与逻辑地址建立映射关系,在要读取该数据时就可以通过逻辑地址查找到所映射的物理地址,进而读取数据。
已写入物理块的数据中有些数据可能不会再被使用,这些数据就成了无效数据。为了回收存储空间,就需要通过垃圾回收(garbage collection,GC)机制删除这些无效数据,将有效数据整理到一起,以便于得到连续的存储空间。因为flash颗粒具有整个物理块都擦除才能再写入的特性,在GC时需要将所GC的物理块上的有效数据迁移到其他的物理块中,从而得到干净的物理块。因为F2FS分配的逻辑地址与物理地址是随机映射的,就会出现一个逻辑块中连续的两个逻辑地址所映射的数据分布在不同的物理块中,也会出现同一个物理块中连续两个物理地址所映射的逻辑地址分布在不同的逻辑块中。这样,在做GC时,就需要F2FS和存储设备各自通过自己的GC机制,整理出连续的逻辑地址,以及得到干净的物理块。但F2FS在做GC时会执行数据的写操作,会导致存储设备中可能已经整理到一个物理块中的多个数据又被分散到不同的物理块中,造成了存储设备的存储空间碎片化。
发明内容
本申请实施例提供一种数据写入的方法,用于保证只执行文件系统的垃圾回收(garbage collection,GC),就可以得到文件系统中连续的逻辑地址,以及得到存储系统中干净的物理块,同时一定程度上避免了因执行文件系统的GC过程而造成存储系统的碎片化。本申请实施例还提供了相应的装置及系统。
本申请第一方面提供一种数据写入的方法,该方法应用于计算机系统,该计算机系统包括文件系统和基于闪存的存储系统,该方法包括:获取目标逻辑地址,目标逻辑地址是为要写入存储系统的目标数据从第一逻辑块上分配的地址,第一逻辑块为文件系统包含的多个逻辑块中的一个,存储系统包括多个物理块;确定目标逻辑地址属于第一逻辑块;根据第一逻辑块和第一物理块的对应关系,将目标数据写入第一物理块,第一物理块为多个物理块中的一个。
上述第一方面中,计算机系统可以为服务器、终端设备或虚拟机(virtualmachine,VM)。文件系统可以为闪存友好文件系统(flash-friendly file system,F2FS)。基于闪存的存储系统可以为基于闪存(flash)颗粒的存储设备。本申请中,上述第一方面的过程可以是存储系统中的处理器来执行的,该计算机系统中还可以包括另一个处理器。若存储系统中不包括处理器,则上述过程可以是计算机系统中的处理器,例如中央处理器CPU,来执行的。
在本申请中,可以将一个flash颗粒理解为一个物理块(physic block,PB),每个物理块中包括多个物理页(physic page,PP)。逻辑块(logic block,LB)是逻辑上划分的与物理块对应的概念,每个逻辑块中包含多个逻辑页(logic page,LP),逻辑页的数量与物理块中物理页的数量是对应的,每个逻辑页都有一个逻辑地址(logic address,LA),每个物理页都有一个物理地址(physic address,PA)。因为闪存颗粒是要整个块都擦除后才能再写入的,所以逻辑块也可以称为逻辑擦除块(logic erase block,LEB),物理块也可以称为物理擦除块(physic erase block,PEB)。第一逻辑块与第一物理块是对应的,这样就可以保证从第一逻辑块上分配的逻辑地址的数据都可以写入到第一物理块上。这样,在对文件系统的第一逻辑块执行GC时,就会触发存储在第一物理块上的数据发生读出和写入另一物理块的操作,第一物理块上的数据都会随着文件系统上第一逻辑块的GC过程迁移到另一物理块中,在得到第一逻辑块中连续的逻辑空间时,也得到了干净的第一物理块。因此通过本申请提供的方法,只需要执行文件系统的GC就可以同时整理好逻辑块和物理块,省去了存储系统的GC过程,还避免了执行文件系统GC时导致存储系统的存储空间碎片化。
在第一方面的一种可能的实现方式中,在获取目标逻辑地址之前,该方法还包括:响应于对目标数据的读取请求,从第二物理块中读出目标数据,读取操作是文件系统的垃圾回收GC过程触发的。
该种可能的实现方式中,目标数据在写入第一物理块前存储在第二物理块中,第二逻辑块与第二物理块对应,在执行文件系统的GC时,执行到该目标数据,会先触发对该目标数据的读取操作,将该目标数据从第二物理块读取出来。这样,可以确保在对第二逻辑块进行GC时,第二物理块中的数据,可以随着第二逻辑块中的逻辑数据迁移到第一逻辑块的过程而迁移到第一物理块中,既省去了存储系统的GC过程,还避免了执行文件系统GC时导致存储系统的存储空间碎片化。
在第一方面的一种可能的实现方式中,上述步骤:确定目标逻辑地址属于第一逻辑块,包括:确定目标逻辑地址指向第一逻辑块的第一个逻辑页,申请或分配第一物理块,并建立第一逻辑块和第一物理块的对应关系;对应的,上述步骤:根据第一逻辑块和第一物理块的对应关系,将目标数据写入第一物理块,包括:根据对应关系将目标数据写入第一物理块上的第一个物理页。
该种可能的实现方式中,第一逻辑块和第一物理块之间的对应关系可以是在确定该目标逻辑地址是第一逻辑块的“第一个”(这里的“第一个”区别于权利要求常用术语“第一”“第二”等,这里的“第一个”是有先后顺序意义的)逻辑地址时建立的,然后就会维护该第一逻辑块和第一物理块之间的对应关系,在后续再有属于第一逻辑块的逻辑地址时,就将相应的数据写入到第一物理块中。通常,因为闪存颗粒顺序写入的特性,所以会将该目标数据写入到第一个物理页。该种在确定目标逻辑地址是第一逻辑块的第一个逻辑地址时,才建立第一逻辑块和第一物理块的对应关系,可以提高逻辑块和物理块之间对应关系的灵活性,有利于提高对物理块管理的灵活度。
在第一方面的一种可能的实现方式中,该方法还包括:建立第一逻辑块中第一逻辑段和第一物理块中第一物理段的对应关系,第一逻辑段包括至少两个逻辑页,第一物理段包括至少两个物理页,目标逻辑地址指向第一逻辑段中的一个逻辑页;对应的,根据第一逻辑块和第一物理块的对应关系,将目标数据写入第一物理块,包括:根据第一逻辑段和第一物理段的对应关系,将目标数据写入第一物理段中的一个物理页。
该种可能的实现方式中,提供了“段(segment)”的概念,“段”的长度位于“块(block)”和“页(page)”之间。物理块中的段称为物理段(physic segment),逻辑块中的段称为逻辑段(logic segment)。一个物理块通常包括多个物理段,一个物理段通常包括多个物理页,相对应的,一个逻辑块通常页包括多个逻辑段,一个逻辑段包括多个逻辑页。具有对应关系的逻辑块和物理块上,逻辑段的数量和物理段的数量时相等的。具有对应关系的逻辑段和物理段上,逻辑页和物理页的数量也是相等的。例如:第一逻辑块有6个逻辑段,每个逻辑段有10个逻辑页,则第一物理块有6个物理段,每个物理段有10个物理页。该种采用段映射的方式相比于采用页映射的方式,可以减少映射表的体积,有利于快速读取数据。
在第一方面的一种可能的实现方式中,上述步骤:根据第一逻辑段和第一物理段的对应关系,将目标数据写入第一物理段中的一个物理页,包括:根据目标逻辑地址在第一逻辑段的偏移量,确定偏移量在第一物理段所对应的目标物理页;将目标数据写入目标物理页。
该种可能的实现方式中,通过段映射的方式可以从较小体积的映射表中快速查找到所映射的物理段,然后只需要根据偏移量确定目标物理页即可,能快速确定出目标物理页,从而可以提高数据写入的速度。
在第一方面的一种可能的实现方式中,该方法还包括:获取模式信息,模式信息由目标数据的属性确定,若属性指示目标数据为关键数据,则模式信息指示第一逻辑块处于第一模式;若属性指示目标数据为非关键数据,则模式信息指示第一逻辑块处于第二模式;根据模式信息,将第一物理块设置为与第一逻辑块相同的模式;从处于第一模式的第一物理块读取数据的速度高于从处于第二模式的第一物理块读取数据的速度。
该种可能的实现方式中,因为第一物理块被设置为第一模式时,有一部分存储空间会被禁用,所以在第一物理块未写入任何数据时,处于第一模式的第一物理块的可用空间小于处于第二模式的第一物理块的可用空间。第一模式可以为单层单元(single levelcell,SLC),第二模式为双层单元(mutil level cell,MLC)、三层单元(triple levelcell,TLC)或四层单元(quadrilateral level cell,QLC)。也可以是第一模式为MLC,第二模式为TLC或QLC,或者,第一模式为TLC,第二模式为QLC。关键数据指的是符合预设属性的数据,如:被频繁使用的应用的数据,关键的库文件等。将关键数据写入处于第一模式的物理块,可以提升关键数据的读取速度,从而可以提高用户频繁使用的应用的流畅度。
在第一方面的一种可能的实现方式中,该方法还包括:若存储系统的总可用存储空间满足预设要求,且在处于第二模式的物理块中检测到关键数据,则将处于第二模式的物理块中的关键数据迁移到处于第一模式的物理块中。
该种可能的实现方式中,在剩余存储空间较少的情况下,可能会临时将关键数据写入到第二模式的物理块中。过一段时间后,可能是用户清空了一些历史数据,或者GC过程删除了一些无效数据,存储空间变得充足后,如:超过了预设阈值,这时可以检测第二模式的物理块中是否存储有关键数据,如果存储有关键数据,可以及时将这些关键数据迁移到第一模式的物理块中,从而可以提高这些关键数据的读取速度。
本申请第二方面提供一种数据写入的方法,该方法应用于计算机系统,该计算机系统包括文件系统、基于闪存的存储系统和第一处理器,该存储系统包括第二处理器,该方法包括:第一处理器从第一逻辑块中为要写入存储系统的目标数据分配目标逻辑地址,第一逻辑块为文件系统包含的多个逻辑块中的一个,存储系统包括多个物理块;第一处理器向第二处理器发送目标逻辑地址,目标逻辑地址用于第二处理器确定目标逻辑地址属于第一逻辑块,并根据第一逻辑块和第一物理块的对应关系,将目标数据写入第一物理块,第一物理块为多个物理块中的一个。
该第二方面中,与第一方面相关的内容可以参阅第一方面的描述进行理解,此处不再重复赘述。第一处理器接收到数据写入请求或者数据迁移请求时,会为该目标数据分配目标逻辑地址,然后将该目标逻辑地址通知给第二处理器,使得第二处理器可以将目标数据写入到与第一逻辑块对应的第一物理块中。因为第一逻辑块与第一物理块对应,这样就可以保证从第一逻辑块上分配的逻辑地址的数据都可以写入到第一物理块上。这样,在执行文件系统的GC时,会将该第一逻辑块上还有映射关系的逻辑地址所对应的逻辑数据迁移到另一逻辑块中,这样就会触发存储在第一物理块上的数据发生读出和写入另一物理块的操作,这样,第一物理块上的数据都会随着文件系统上第一逻辑块的GC过程迁移到另一物理块中,在得到第一逻辑块中连续的逻辑空间时,也得到了干净的第一物理块。从该第二方面可知,只需要执行文件系统的GC就可以同时整理好逻辑块和物理块,既省去了存储系统的GC过程,还避免了执行文件系统GC时导致存储系统的存储空间碎片化。
在第二方面的一种可能的实现方式中,在第一处理器向第二处理器发送目标逻辑地址之前,该方法还包括:第一处理器在执行文件系统的垃圾回收GC过程中触发对目标数据的读取请求,读取请求用于第二处理器从第二物理块中读出目标数据。
该种可能的实现方式中,目标数据在写入第一物理块前存储在第二物理块中,第二逻辑块与第二物理块对应,第一处理器执行文件系统的GC,在执行到该目标数据的GC时,第一处理器会从第一逻辑块中先为该目标数据分配目标逻辑地址,然后将原来的逻辑地址和目标逻辑地址都发送给第二处理器,第二处理器会根据原来的逻辑地址确定要迁移的是第二物理块中的目标数据,然后根据目标逻辑地址确认该目标数据在第一物理块中的存储位置,然后,第二处理器将该目标数据迁移到第一物理块中。该种可能的实现方式中,可以确保第一处理器在对第二逻辑块进行GC时,第二物理块中的数据,可以随着第二逻辑块中的逻辑数据迁移到第一逻辑块中,而迁移到第一物理块中,既省去了存储系统的GC过程,还避免了执行文件系统GC时导致存储系统的存储空间碎片化。
在第二方面的一种可能的实现方式中,该方法还包括:第一处理器确定目标数据的属性;第一处理器根据属性确定第一逻辑块;若属性指示目标数据为关键数据,则第一逻辑块处于第一模式;若属性指示目标数据为非关键数据,则第一逻辑块处于第二模式;对应的,第一物理块的模式与第一逻辑块的模式相同;其中,从处于第一模式的第一物理块读取数据的速度高于从处于第二模式的第一物理块读取数据的速度。
该种可能的实现方式中,第一处理器可以根据目标数据的属性,来决定从处于第一模式的逻辑块上来分配目标逻辑地址,还是处于第二模式的逻辑块上来分配目标逻辑地址。因为第一逻辑块和第一物理块是有对应关系的,若第一逻辑块处于第一模式,则第一物理块也处于第一模式,若第一逻辑块处于第二模式,则第一物理块也处于第二模式。第一模式和第二模式的含义可以参阅第一方面部分相关内容进行理解。
在第二方面的一种可能的实现方式中,该方法还包括:若目标逻辑地址为第一逻辑块的第一个逻辑地址,则第一处理器根据目标数据的属性,设置第一逻辑块的模式;第一处理器向第二处理器发送第一逻辑块的模式信息,模式信息用于指示第二处理器将第一物理块的模式设置为与第一逻辑块相同。
该种可能的实现方式中,在第一处理器分配第一逻辑块上的首个逻辑地址时,会根据目标数据的属性来设置该第一逻辑块的模式,然后再将所设置的模式信息通知给第二处理器,第二处理器参照第一逻辑块的模式来设置第一物理块的模式。
在第二方面的一种可能的实现方式中,上述步骤:第一处理器根据目标数据的属性,设置第一逻辑块的模式,包括:若属性指示目标数据为关键数据,则将第一逻辑块的模式设置为第一模式;若属性指示目标数据为非关键数据,则将第一逻辑块的模式设置为第二模式。
该种可能的实现方式中,若目标数据为关键数据,则将第一逻辑块的模式设置为第一模式,若目标数据为非关键数据,则将第一逻辑块的模式设置为第二模式,这样可以提高关键数据的读取速度,提高用户经常使用的应用的流畅度。
本申请第三方面提供一种数据写入的装置,该数据写入的装置具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:接收单元和处理单元。
本申请第四方面提供一种数据写入的装置,该数据写入的装置具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:发送单元和处理单元。
本申请第五方面提供一种计算机设备,该计算机设备包括至少一个处理器、存储系统、输入/输出(input/output,I/O)接口以及存储在存储系统中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第六方面提供一种计算机设备,该计算机设备包括至少一个处理器、存储器、输入/输出(input/output,I/O)接口以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第七方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第八方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第九方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第十方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行上述第二方面或第二方面任意一种可能实现方式的方法。
本申请第十一方面提供了一种芯片系统,该芯片系统包括至少一个处理器,至少一个处理器用于支持数据写入的装置实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存数据写入的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十二方面提供了一种芯片系统,该芯片系统包括处理器,用于支持数据写入的装置实现上述第二方面或第二方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存数据写入的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第三方面、第五方面、第七方面、第九方面和第十一方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面不同可能实现方式所带来的技术效果,此处不再赘述。
其中,第四方面、第六方面、第八方面、第十方面和第十二方面或者其中任一种可能实现方式所带来的技术效果可参见第二方面或第二方面不同可能实现方式所带来的技术效果,此处不再赘述。
本申请实施例提供的方案,在数据写入时从第一逻辑块分配目标逻辑地址,通过第一逻辑块与第一物理块的对应关系,将目标数据写入到第一物理块中。这样,在对第一逻辑块进行GC时,会触发存储在第一物理块上的数据发生读出和写入另一物理块的操作,第一物理块上的数据都会随着对第一逻辑块的GC过程迁移到另一物理块中,在得到第一逻辑块中连续的逻辑空间时,也得到了干净的第一物理块。可见,本申请提供的方案只需要执行文件系统的GC就可以同时整理好逻辑块和物理块,既省去了存储系统的GC过程,还避免了执行文件系统GC时导致存储系统的存储空间碎片化。
附图说明
图1是本申请实施例提供的计算机系统的一结构示意图;
图2是本申请实施例提供的数据写入的方法的一实施例示意图;
图3A是本申请实施例提供的逻辑块与物理块的一对应关系示意图;
图3B是本申请实施例提供的逻辑块与物理块的另一对应关系示意图;
图3C是本申请实施例提供的逻辑块与物理块的段映射的一示意图;
图4A是本申请实施例提供的数据写入的方法的一场景示例示意图;
图4B是本申请实施例提供的数据写入的方法的另一场景示例示意图;
图4C是本申请实施例提供的数据写入的方法的另一场景示例示意图;
图5A是本申请实施例提供垃圾回收过程中的数据写入的方法的一示例示意图;
图5B是本申请实施例提供垃圾回收过程中的数据写入的方法的另一示例示意图;
图6A是本申请实施例提供的数据写入过程中的模式选择的一实施例示意图;
图6B是本申请实施例提供的数据写入过程中的模式选择的另一实施例示意图;
图6C是本申请实施例提供的一模式示例的示意图;
图7是本申请实施例提供的数据写入的方法的另一实施例示意图;
图8是本申请实施例提供的数据写入的装置的一实施例示意图;
图9是本申请实施例提供的数据写入的装置的另一实施例示意图;
图10是本申请实施例提供的计算机设备的一实施例示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供本申请实施例提供一种数据写入的方法,用于保证只执行文件系统的垃圾回收(garbage collection,GC),就可以得到文件系统中连续的逻辑地址,以及得到存储系统中干净的物理块,同时避免了因执行文件系统的GC过程而造成存储系统的碎片化。本申请实施例还提供了相应的装置及系统。以下分别进行详细说明。
本申请实施例提供的数据写入的方法应用于计算机系统,该计算机系统可以为服务器、终端设备或虚拟机(virtual machine,VM)。该计算机系统的架构可以参阅图1进行理解。
图1为计算机系统的一架构示意图。
如图1所示,该计算机系统10的架构包括应用层101、内核层102和设备层103。
应用层101包括多个应用(application,APP),例如:图1中示例出的APP1、APP2和APP3。这些APP可以是各种类型的应用,例如:即时通信应用、地图应用以及购物应用等,需要说明的是,应用层101可以包括多个应用,不限于图1中示出的三个。
内核层102包括文件系统,该文件系统可以为闪存友好文件系统(flash-friendlyfile system,F2FS)。文件系统中可以包括多个逻辑块(logic block,LB),例如:逻辑块1、…,逻辑块n,每个逻辑块中可以包含多个逻辑页(logic page,LP),每个逻辑页有一个逻辑地址(logic address,LA),该文件系统还包括GC文件,该文件系统还可以包括关键数据识别文件和闪存模式控制(flash mode control)文件。
设备层103包括通信接口1031、第一处理器1032、存储系统1033和总线1034等。通信接口1031、第一处理器1032和存储系统1033通过总线1034连接。其中,第一处理器可以包括任何类型的通用计算电路或专用逻辑电路,例如:现场可编程门阵列(field-programmable gate array,FPGA)或专用集成电路(application specific integratedcircuit,ASIC)。也可以是耦合到一个或多个半导体基板的一个或多个处理器,例如中央处理器(central processing unit,CPU)。存储系统包括多个闪存(flash)颗粒。在数据写入时,第一处理器可以通过总线将数据写入到相应的闪存颗粒中。存储系统中的每个闪存颗粒可以理解为是一个物理块(physic erase block,PB),每个物理块中包括多个物理页(physic page,PP)。每个物理页都有一个物理地址(physic address,PA)。
因为闪存颗粒是要整个块都擦除后才能再写入的,所以逻辑块也可以称为逻辑擦除块(logic erase block,LEB),物理块也可以称为物理擦除块(physic erase block,PEB)。
第一处理器1032运行GC文件后可以对文件系统的逻辑块进行无效数据的清理以及有效数据的迁移。第一处理器1032可以在运行关键数据识别文件后,进行关键数据识别。第一处理器1032可以运行闪存模式控制(flash mode control)文件后,可以控制闪存颗粒的模式。
该存储系统中还可以包括第二处理器10331,若该存储系统中包括第二处理器10331,本申请实施例提供的数据写入的方法,可以由第一处理器和第二处理器配合来完成。若该存储系统不包括第二处理器,则本申请实施例提供的数据写入的方法由第一处理器独立来完成。下面结合附图分别对这两种情况的方案进行介绍。
一:由第一处理器和第二处理器配合来完成本申请实施例提供的数据写入的方案。
如图2所示,本申请实施例提供的数据写入的方法的一实施例包括:
201、第一处理器从第一逻辑块中为要写入存储系统的目标数据分配目标逻辑地址。
第一逻辑块为文件系统包含的多个逻辑块中的一个。
目标逻辑地址可以是第一逻辑块上某个逻辑页的逻辑地址。
202、第一处理器向第二处理器发送目标逻辑地址,对应的,第二处理器接收第一处理器发送的目标逻辑地址。
203、第二处理器确定目标逻辑地址属于第一逻辑块。
通常文件系统中的逻辑地址是连续的,每个逻辑块上所包含的逻辑页的数量也是固定的,例如:每个逻辑块上都包括M个逻辑页,若目标逻辑地址表示为X*M,则可以确定该目标地址位于块号为“X”的逻辑块上,则第一逻辑块为块号为“X”的逻辑块。当然,也不限于每个逻辑块所包含的逻辑页都是相等的,若是逻辑页不相等的情况,可以通过每个逻辑块上逻辑地址累加的方式来表示目标逻辑地址。
204、第二处理器根据第一逻辑块和第一物理块的对应关系,将目标数据写入第一物理块。
第一物理块为存储系统所包含的多个物理块中的一个。
第一逻辑块和第一物理块的对应关系可以是在系统初始化时预先建立好的,也可以是在第一次使用到第一逻辑块时建立的。
文件系统中的逻辑块与存储系统中物理块之间的对应关系,可以是如图3A所示的文件系统顺序分配逻辑块,存储系统顺序分配物理块,逻辑块和物理块按照顺序一一对应。因为文件系统中可能不是顺序分配的逻辑块,但存储系统会顺序分配物理块,所以如图3B所示,逻辑块和物理块也可以不是按照顺序对应,本申请实施例只要保证逻辑块和物理块一一对应即可,不限定对应顺序。
本申请实施例提供的数据写入的方案,因为第一逻辑块与第一物理块是对应的,这样就可以保证从第一逻辑块上分配的逻辑地址的数据都可以写入到第一物理块上。这样,在对文件系统的第一逻辑块执行GC时,就会触发存储在第一物理块上的数据发生读出和写入另一物理块的操作,第一物理块上的数据都会随着文件系统对第一逻辑块的GC过程迁移到另一物理块中,在得到第一逻辑块中连续的逻辑空间时,也得到了干净的第一物理块。从而可知,只需要执行文件系统的GC就可以同时整理好逻辑块和物理块,既省去了存储系统的GC过程,还避免了执行文件系统GC时导致存储系统的存储空间碎片化。
可选地,上述实施例中,目标数据可以为首次写入存储系统的数据,也可以是在执行文件系统的垃圾回收GC过程中从存储系统的第二物理块中迁移出的数据。
在执行到对目标数据的GC时,在步骤202之前,该过程包括:第一处理器在执行文件系统的垃圾回收GC过程中触发对目标数据的读取请求。第二处理器在获取目标逻辑地址之前,响应于对目标数据的读取请求,从第二物理块中读出目标数据。
该种可能的实施例中,目标数据在写入第一物理块前存储在第二物理块中,第二逻辑块与第二物理块对应。第一处理器执行文件系统的GC,在执行到该目标数据的GC时,第一处理器会从第一逻辑块中先为该目标数据分配目标逻辑地址,然后将原来的逻辑地址和目标逻辑地址都发送给第二处理器,第二处理器会根据原来的逻辑地址确定要迁移的是第二物理块中的目标数据,然后根据目标逻辑地址确认该目标数据在第一物理块中的存储位置,然后,第二处理器将该目标数据迁移到第一物理块中。这样可以确保第一处理器在对第二逻辑块进行GC时,第二物理块中的数据,可以随着第二逻辑块中的逻辑数据迁移到第一逻辑块中,而迁移到第一物理块中,既省去了存储系统的GC过程,还避免了执行文件系统GC时导致存储系统的存储空间碎片化。
可选地,上述步骤203包括:确定目标逻辑地址指向第一逻辑块的第一个逻辑页,申请或分配第一物理块,并建立第一逻辑块和第一物理块的对应关系;上述步骤204包括:根据对应关系将目标数据写入第一物理块上的第一个物理页。
本申请实施例中,第一逻辑块和第一物理块之间的对应关系可以是在第二处理器确定该目标逻辑地址是第一逻辑块的第一个逻辑地址时建立的。然后第二处理器就会维护该第一逻辑块和第一物理块之间的对应关系,后续再有属于第一逻辑块的逻辑地址时,就将相应的数据写入到第一物理块中。通常,因为闪存颗粒的特性就是顺序写入,所以,第二处理器会将该目标数据写入到第一个物理页。该种在第二处理器确定目标逻辑地址是第一逻辑块的第一个逻辑地址时,才建立第一逻辑块和第一物理块的对应关系,可以提高逻辑块和物理块之间对应关系的灵活性,有利于提高第二处理器对物理块管理的灵活度。
可选地,本申请实施例提供的数据写入的方法还包括:建立第一逻辑块中第一逻辑段和第一物理块中第一物理段的对应关系,第一逻辑段包括至少两个逻辑页,第一物理段包括至少两个物理页,目标逻辑地址指向第一逻辑段中的一个逻辑页。对应的,将目标数据写入第一物理块,包括:根据第一逻辑段和第一物理段的对应关系,将目标数据写入第一物理段中的一个物理页。
可选地,本申请实施例还提供了“段(segment)”的概念,“段”的长度位于“块(block)”和“页(page)”之间。物理块中的段称为物理段(physic segment),逻辑块中的段称为逻辑段(logic segment)。一个物理块通常包括多个物理段,一个物理段通常包括多个物理页,一个逻辑块通常页包括多个逻辑段,一个逻辑段包括通常多个逻辑页。本申请实施例提供的“块“、“段”和“页”之间的关系可以参阅图3C的示例进行理解。如图3C所示,逻辑块和物理块之间不是按照页进行映射的,而是按照段进行映射的,一个逻辑段与一个物理段映射,段映射的映射表可以通过逻辑段的逻辑地址和物理段的物理地址来维护,逻辑段的逻辑地址可以通过从逻辑块的第一个逻辑地址开始偏移一定量的方式来表示。物理段的物理地址可以通过从物理块的第一个物理地址开始偏移一定量的方式来表示。因为段中包括至少两个页,所以采用段映射的方式相比于采用页映射的方式,可以减少映射表的体积,有利于快速读取数据。
在采用“块“、“段”和“页”三级划分的基础上,本申请实施例的数据写入过程可以包括如下三种方案,下面分别进行介绍。
1、目标逻辑地址为第一逻辑块的第一个逻辑地址。
第一处理器为目标数据分配目标逻辑地址,并将该目标逻辑地址发送给第二处理器。
第二处理器确定目标逻辑地址为第一逻辑块的第一个逻辑地址,则第二处理器在第一物理块上分配第一物理段,并建立第一逻辑块中第一逻辑段和第一物理段的映射关系,第一物理段包括至少两个物理页;第二处理器将目标数据写入第一物理段的第一个物理页。
该过程可以参阅图4A进行理解。如图4A所示,第一处理器为目标数据所分配的目标逻辑地址为X*M。其中,X表示第一逻辑块的块号,M表示每个逻辑块都包括M个逻辑页。第一处理器将目标逻辑地址X*M发送给第二处理器,X为大于0的整数,M为大于1的整数。
第二处理器根据X*M确定该目标逻辑地址位于块号为X的第一逻辑块,且该目标逻辑地址为该第一逻辑块的第一个逻辑地址。则该第二处理器为该第一逻辑块分配第一物理块,并建立第一逻辑块和第一物理块之间的对应关系。并且,该第二处理器从第一物理块上分配第一物理段,并建立第一物理段与第一逻辑块上第一逻辑段的映射关系。将该目标数据写入到第一物理段上的第一个物理页。
2、目标逻辑地址为第一逻辑块上第二逻辑段的第一个逻辑地址。
第一处理器为目标数据分配目标逻辑地址,并将该目标逻辑地址发送给第二处理器。
第二处理器确定目标逻辑地址为第二逻辑段的第一个逻辑地址,则为第二逻辑段分配第二物理段,并建立第二逻辑段和第二物理段的映射关系,第二物理段为第一物理块中已分配的至少两个物理段中的最后一个,第二物理段包括至少两个物理页,第二逻辑段位于第一逻辑块;第二处理器将目标数据写入第二物理段的第一个物理页。
该过程可以参阅图4B进行理解。如图4B所示,第一处理器为目标数据所分配的目标逻辑地址为X*M+Y*N。其中,X表示第一逻辑块的块号,M表示每个逻辑块都包括M个逻辑页,Y表示该第二逻辑段在第一逻辑块上的段号,N表示每个逻辑块上包括N个逻辑页。第一处理器将目标逻辑地址X*M+Y*N发送给第二处理器,M>N。
第二处理器根据X*M+Y*N确定该目标逻辑地址位于块号为X的第一逻辑块,且段号为Y的第二逻辑段上,且该目标逻辑地址为该第二逻辑段的第一个逻辑地址。则该第二处理器为该第二逻辑段分配第二物理段,并建立第二逻辑段和第二物理段的映射关系。将该目标数据写入到第二物理段上的第一个物理页。
3、目标逻辑地址位于第一逻辑块的第三逻辑段,且不是第三逻辑段的第一个逻辑地址。
第一处理器为目标数据分配目标逻辑地址,并将该目标逻辑地址发送给第二处理器。
第二处理器确定目标逻辑地址位于第三逻辑段,且不是第一个逻辑地址,则根据第三逻辑段与第三物理段的映射关系,以及目标逻辑地址在第三逻辑段的偏移量,确定偏移量在第三物理段所对应的目标物理页,第三物理段包括至少两个物理页;第二处理器将目标数据写入第三物理段的目标物理页。
该过程可以参阅图4C进行理解。如图4C所示,第一处理器为目标数据所分配的目标逻辑地址为X*M+P*N+Z。其中,X表示第一逻辑块的块号,M表示每个逻辑块都包括M个逻辑页,P表示该第三逻辑段在第一逻辑块上的段号,N表示每个逻辑块上包括N个逻辑页,Z表示在段上的偏移量。第一处理器将目标逻辑地址X*M+P*N+Z发送给第二处理器,M>N。
第二处理器根据X*M+P*N+Z确定该目标逻辑地址位于块号为X的第一逻辑块,且段号为Y的第三逻辑段上,第三逻辑段与第三物理段之间已存在映射关系,则该第二处理器根据该已存在的映射关系,确定第三物理段,并根据在段上的偏移量Z在第三物理段上找到目标物理页,将目标数据写入该目标物理页。
需要说明的是,上述第一逻辑段、第二逻辑段和第三逻辑段也可以是同一个逻辑段,第一物理段、第二物理段和第三物理段也可以是同一个物理段,这里只是为了表达不同的场景,所以分别用了不同的名称。
以上三种方案,介绍了不同场景下采用段映射的方式实现数据写入的过程,无论是哪种场景,采用段映射的方式相比于采用页映射的方式,可以减少映射表的体积,有利于快速读取数据。
因本申请方案可以应用于文件系统执行GC过程中数据被迁移后的写入,为了便于理解该过程,下面结合图5A所示的数据迁移前的示意图和图5B所示的数据迁移后的示意图进行理解。
如图5A所示,第一处理器在执行文件系统的GC过程中,检测到逻辑块R和逻辑块S在清理掉无效数据后,剩余的有效数据较少,逻辑块R和物理块R对应,逻辑块S和物理块S对应,第一处理器确定将逻辑块R和逻辑块S上剩余的有效数据迁移到逻辑块T上。需要说明的是,逻辑块R和逻辑块S上的数据是逻辑上的数据。
如图5B所示,第一处理器在数据迁移时是逐个逻辑块进行的,通常在一个逻辑块中,也是按顺序迁移剩余的有效数据的。以迁移逻辑块中的逻辑数据R1为例来介绍数据迁移的过程。
第一处理器确定逻辑数据R1原来的逻辑地址为R*M,为该逻辑数据R1在逻辑块T上分配一个新的逻辑地址T*M,然后将原来的逻辑地址为R*M,以及新的逻辑地址T*M都发送给第二处理器,然后将逻辑数据R1从逻辑块R迁移到逻辑块T上的第一个逻辑段的第一个逻辑页上。
第二处理器根据原来的逻辑地址为R*M确定要迁移物理块R中的物理数据R1,并且根据新的逻辑地址T*M为逻辑块T分配一个新的物理块,如分配了物理块T,建立物理块T和逻辑块T之间的对应关系,并从物理块T上分配第一个物理段,建立该第一个物理段与逻辑块T上的第一个逻辑段的映射关系,第二处理器将该物理数据R1从物理块R迁移到物理块T的第一个物理段的第一个物理页上。
在迁移逻辑数据R1的过程类似于上述图4A场景的数据写入方案,其他的逻辑数据R13、R19、S3、S9、S18和S20中,逻辑数据S9的迁移过程可以参阅上述图4B场景的数据写入方案。其他逻辑数据R13、R19、S3、S18和S20的迁移过程可以参阅上述图4C场景的数据写入方案。此处不再描述每个逻辑数据以及对应的物理数据的迁移过程,都可以根据要迁移逻辑数据在逻辑块中的位置,结合图4B、图4C以及上述逻辑数据R1的迁移过程进行理解。
由上述图1所介绍的计算机系统可知,文件系统中还可以包括关键数据识别文件和闪存模式控制文件。第一处理器运行关键数据识别文件就可以对要写入存储系统的目标数据进行识别,确定该目标数据是否为关键数据。第一处理器运行闪存模式控制文件就可以对闪存颗粒的模式进行控制。闪存颗粒的模式可以包括单层单元(single level cell,SLC),双层单元(mutil level cell,MLC)、三层单元(triple level cell,TLC)或四层单元(quadrilateral level cell,QLC)。以后也可以是更多层单元的模式。
在上述数据写入过程中,第一处理器可以根据目标数据的属性来选择合适模式的第一逻辑块,该过程可以包括当前正在分配的逻辑块还有剩余空间,以及需要分配新的逻辑块的情况。
其中,当前正在分配的逻辑块还有剩余空间的情况可以参阅图6A进行理解。如图6A所示,该过程可以包括:
301、第一处理器确定目标数据的属性。
数据的属性可以是预先设置好的,可以划分为关键和普通两种。关键数据例如可以包括用户频繁使用的应用的数据,关键的库文件等。除关键数据之外的数据都可以划分为非关键数据或普通数据。
302、若该目标数据是关键数据,则选择处于第一模式的逻辑块。
303、若该目标数据是非关键数据,则选择处于第二模式的逻辑块。
因为逻辑块和物理块已建立对应关系,第一模式的逻辑块对应的物理块也处于第一模式,第二模式的逻辑块对应的物理块也处于第二模式。
针对第一物理块,因为第一物理块被设置为第一模式时,有一部分存储空间会被禁用,所以在第一物理块未写入任何数据时,处于第一模式的第一物理块的可用空间小于处于第二模式的第一物理块的可用空间。另外,从处于第一模式的第一物理块读取数据的速度高于从处于第二模式的第一物理块读取数据的速度。
第一模式可以为SLC,第二模式为MLC、三层单元TLC或四层单元QLC。也可以是第一模式为MLC,第二模式为TLC或QLC,或者,第一模式为TLC,第二模式为QLC。
需要分配新的逻辑块的情况可以参阅图6B进行理解。如图6B所示,该过程可以包括:
401、第一处理器确定目标数据的属性。
402、若该目标数据是关键数据,则第一处理器分配第一逻辑块,并将该第一逻辑块设置为第一模式。
403、若该目标数据是非关键数据,则第一处理器分配第一逻辑块,并将该第一逻辑块设置为第二模式。
404、第一处理器向第二处理器发送模式信息。
模式信息用于指示第二处理器将第一物理块的模式设置为与第一逻辑块相同。
405、第二处理器根据模式信息将第一物理块设置为与第一逻辑块相同的模式。
本申请实施例提供的方案,将关键数据写入第一模式的物理块,可以提升关键数据的读取速度,从而可以提高用户频繁使用的应用的流畅度。
下面图6C以第一模式是SLC,第二模式是TLC为例,对第一模式和第二模式进行介绍。如图6C所示,当逻辑块处于SLC时,相对于TLC有1/3空间可以使用,其对应的物理块相对于TLC也有1/3空间可以使用。当逻辑块处于TLC模式时,逻辑块和物理块的空间使用量是SLC时的三倍。从SLC模式的物理块中读取数据的速度远快于从TLC模式的物理块中读取数据的速度。
可选地,本申请实施例提供的数据写入的方法的另一实施例还包括,若存储系统的总可用存储空间满足预设要求,且第二处理器在处于第二模式的物理块中检测到关键数据,则将处于第二模式的物理块中的关键数据迁移到处于第一模式的物理块中。
本申请实施例中,在剩余存储空间较少的情况下,可能会临时将关键数据写入到处于第二模式的物理块中。过一段时间后,可能是用户清空了一些历史数据,或者GC过程删除了一些无效数据,存储空间变得充足后,如:超过了预设阈值,这时可以检测处于第二模式的物理块中是否存储有关键数据,如果存储有关键数据,可以及时将这些关键数据迁移到处于第一模式的物理块中,从而可以提高这些关键数据的读取速度。
以上多个实施例描述了第一处理器和第二处理器交互来实现本申请实施例提供的数据写入的方案,下面对第一处理器独立来完成本申请实施例提供的数据写入的方案进行介绍。
二:由第一处理器独立来完成本申请实施例提供的数据写入的方案。
如图7所示,本申请实施例提供的数据写入的方法的一实施例包括:
501、第一处理器从第一逻辑块中为要写入存储系统的目标数据分配目标逻辑地址。
第一逻辑块为文件系统包含的多个逻辑块中的一个。
502、第一处理器确定目标逻辑地址属于第一逻辑块。
503、第一处理器根据第一逻辑块和第一物理块的对应关系,将目标数据写入第一物理块。
第一物理块为多个物理块中的一个。
可选地,本申请实施例提供的数据写入的方法,在从第一逻辑块中为要写入存储系统的目标数据分配目标逻辑地址之前,该方法还包括响应于对目标数据的读取请求,从第二物理块中读出目标数据,读取操作是文件系统的垃圾回收GC过程触发的。
需要说明的是,该第一处理器独立完成的数据写入的过程,与上述第一处理器和第二处理器交互所完成的内容基本相同,只是在上述交互的方案中由第二处理器执行的动作也由第一处理器来执行,第一处理器不需要再发送目标逻辑地址、模式信息等给第二处理器。关于第一处理器独立完成的数据写入的过程可以参阅前述部分的相关内容进行理解,此处不再重复赘述。
以上描述了计算机系统的架构以及数据写入的方法,下面结合附图介绍本申请实施例中数据写入的装置。
图8为本申请实施例中数据写入的装置60的一实施例示意图。
如图8所示,本申请实施例提供的数据写入的装置60应用于计算机系统,该计算机系统包括文件系统、基于闪存的存储系统,该装置60包括:
获取单元601,用于获取目标逻辑地址,目标逻辑地址是为要写入存储系统的目标数据从第一逻辑块上分配的地址,第一逻辑块为文件系统包含的多个逻辑块中的一个,存储系统包括多个物理块。
第一处理单元602,用于确定目标逻辑地址属于第一逻辑块。
第二处理单元603,用于根据第一逻辑块和第一物理块的对应关系,将目标数据写入第一物理块,第一物理块为多个物理块中的一个。
本申请实施例提供的方案,在数据写入时从第一逻辑块分配目标逻辑地址,通过第一逻辑块与第一物理块的对应关系,将目标数据写入到第一物理块中。这样,在对第一逻辑块进行GC时,会触发存储在第一物理块上的数据发生读出和写入另一物理块的操作,第一物理块上的数据都会随着对第一逻辑块的GC过程迁移到另一物理块中,在得到第一逻辑块中连续的逻辑空间时,也得到了干净的第一物理块。可见,本申请提供的方案只需要执行文件系统的GC就可以同时整理好逻辑块和物理块,既省去了存储系统的GC过程,还避免了执行文件系统GC时导致存储系统的存储空间碎片化。
可选地,获取目标逻辑地址之前,第二处理单元603,还用于在获取单元601响应于对目标数据的读取请求,从第二物理块中读出目标数据,读取操作是文件系统的垃圾回收GC过程触发的。
可选地,第一处理单元602,还用于确定目标逻辑地址指向第一逻辑块的第一个逻辑页,申请或分配第一物理块,并建立第一逻辑块和第一物理块的对应关系。
第二处理单元603,用于根据对应关系将目标数据写入第一物理块上的第一个物理页。
可选地,第一处理单元602,还用于建立第一逻辑块中第一逻辑段和第一物理块中第一物理段的对应关系,第一逻辑段包括至少两个逻辑页,第一物理段包括至少两个物理页,目标逻辑地址指向第一逻辑段中的一个逻辑页。
第二处理单元603,用于根据第一逻辑段和第一物理段的对应关系,将目标数据写入第一物理段中的一个物理页。
可选地,第二处理单元603,用于根据目标逻辑地址在第一逻辑段的偏移量,确定偏移量在第一物理段所对应的目标物理页;将目标数据写入目标物理页。
可选地,获取单元601,用于获取模式信息,模式信息由目标数据的属性确定,若属性指示目标数据为关键数据,则模式信息指示第一逻辑块处于第一模式;若属性指示目标数据为非关键数据,则模式信息指示第一逻辑块处于第二模式;根据模式信息,将第一物理块设置为与第一逻辑块相同的模式;其中,从处于第一模式的第一物理块读取数据的速度高于从处于第二模式的第一物理块读取数据的速度。
可选地,第一处理单元602,还用于若存储系统的总可用存储空间满足预设要求,且在处于第二模式的物理块中检测到关键数据,则将处于第二模式的物理块中的关键数据迁移到处于第一模式的物理块中。
以上获取单元601、第一处理单元602和第二处理单元603可以是通过一个单元来实现的,也可以是通过两个或三个单元来实现的。
可选地,第一模式为单层单元SLC,第二模式为三层单元TLC或四层单元QLC。
以上所描述的数据写入的装置可以参阅前述方法实施例部分的相应内容进行理解,此处不做过多赘述。
图9为本申请实施例中数据写入的装置70的一实施例示意图。
如图9所示,本申请实施例提供的数据写入的装置70应用于计算机系统,计算机系统包括文件系统、基于闪存的存储系统和数据写入的装置,存储系统包括第二处理器,该装置70包括:
处理单元701,用于从第一逻辑块中为要写入存储系统的目标数据分配目标逻辑地址,第一逻辑块为文件系统包含的多个逻辑块中的一个,存储系统包括多个物理块。
发送单元702,用于向第二处理器发送目标逻辑地址,目标逻辑地址用于第二处理器确定目标逻辑地址属于第一逻辑块,并根据第一逻辑块和第一物理块的对应关系,将目标数据写入第一物理块,第一物理块为多个物理块中的一个。
本申请实施例提供的方案,在数据写入时从第一逻辑块分配目标逻辑地址,通过第一逻辑块与第一物理块的对应关系,将目标数据写入到第一物理块中。这样,在对第一逻辑块进行GC时,会触发存储在第一物理块上的数据发生读出和写入另一物理块的操作,第一物理块上的数据都会随着对第一逻辑块的GC过程迁移到另一物理块中,在得到第一逻辑块中连续的逻辑空间时,也得到了干净的第一物理块。可见,本申请提供的方案只需要执行文件系统的GC就可以同时整理好逻辑块和物理块,既省去了存储系统的GC过程,还避免了执行文件系统GC时导致存储系统的存储空间碎片化。
可选地,在发送目标逻辑地址之前,处理单元701,还用于在向第二处理器在执行文件系统的垃圾回收GC过程中触发对目标数据的读取请求,读取请求用于第二处理器从第二物理块中读出目标数据。
可选地,处理单元701,还用于确定目标数据的属性;根据属性选择第一逻辑块,若属性指示目标数据为关键数据,则第一逻辑块处于第一模式;若属性指示目标数据为非关键数据,则第一逻辑擦除处于第二模式;对应的,第一物理块的模式与第一逻辑块的模式相同;其中,从处于第一模式的第一物理块读取数据的速度高于从处于第二模式的第一物理块读取数据的速度。
可选地,处理单元701,还用于若目标逻辑地址为第一逻辑块的第一个逻辑地址,则根据目标数据的属性,设置第一逻辑块的模式。
发送单元,还用于向第二处理器发送第一逻辑块的模式信息,模式信息用于指示第二处理器将第一物理块的模式设置为与第一逻辑块相同。
可选地,处理单元701,用于若属性指示目标数据为关键数据,则将第一逻辑块的模式设置为第一模式;若属性指示目标数据为非关键数据,则将第一逻辑块的模式设置为第二模式。
图10所示,为本申请的实施例提供的计算机设备80的一种可能的逻辑结构示意图。计算机设备80包括:第一处理器801、通信接口802、存储系统803以及总线804。第一处理器801、通信接口802以及存储系统803通过总线804相互连接。该存储系统803中可以包括第二处理器8031,在本申请的实施例中,第一处理器801用于对计算机设备80的动作进行控制管理,例如,第一处理器801用于执行图1至图6C的方法实施例中第一处理器所执行的步骤,第二处理器8031用于执行图1至图6C的方法实施例中第二处理器所执行的步骤。通信接口802用于支持计算机设备80进行通信。存储系统803,用于存储计算机设备80的程序代码和数据。
其中,第一处理器801或第二处理器8031可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。第一处理器801或第二处理器8031也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线804可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述存储系统803中也可以不包括第二处理器8031,若不包括第二处理器8031,则第一处理器801用于执行图7的方法实施例中第一处理器所执行的步骤。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的第一处理器执行该计算机执行指令时,设备执行上述图1至图6C中第一处理器所执行的数据写入的方法的步骤,当设备的第二处理器执行该计算机执行指令时,设备执行上述图1至图6C中第二处理器所执行的数据写入的方法的步骤。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的第一处理器执行该计算机执行指令时,设备执行上述图7中第一处理器所执行的数据写入的方法。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当设备的第一处理器执行该计算机执行指令时,设备执行上述图1至图6C中第一处理器所执行的数据写入的方法的步骤,当设备的第二处理器执行该计算机执行指令时,设备执行上述图1至图6C中第二处理器所执行的数据写入的方法的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当设备的第一处理器执行该计算机执行指令时,设备执行上述图7中第一处理器所执行的数据写入的方法。
在本申请的另一实施例中,还提供一种芯片系统,该芯片系统包括第一处理器和第二处理器,第一处理器用于支持数据写入的装置实现上述图1至图6C中第一处理器所执行的数据写入的方法的步骤,第二处理器用于支持数据写入的装置实现上述图1至图6C中第二处理器所执行的数据写入的方法的步骤。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存数据写入的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
在本申请的另一实施例中,还提供一种芯片系统,该芯片系统包括第一处理器和第二处理器,第一处理器用于支持数据写入的装置实现上述图7中第一处理器所执行的数据写入的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以权利要求的保护范围为准。
Claims (19)
1.一种数据写入的方法,其特征在于,所述方法应用于计算机系统,所述计算机系统包括文件系统和基于闪存的存储系统,所述方法包括:
获取目标逻辑地址,所述目标逻辑地址是为要写入所述存储系统的目标数据从第一逻辑块上分配的地址,所述第一逻辑块为所述文件系统包含的多个逻辑块中的一个,所述存储系统包括多个物理块;
确定所述目标逻辑地址属于所述第一逻辑块;
根据所述第一逻辑块和第一物理块的对应关系,将所述目标数据写入所述第一物理块,所述第一物理块为所述多个物理块中的一个。
2.根据权利要求1所述的方法,其特征在于,在获取目标逻辑地址之前,所述方法还包括:
响应于对所述目标数据的读取请求,从第二物理块中读出所述目标数据,所述读取操作是所述文件系统的垃圾回收GC过程触发的。
3.根据权利要求1或2所述的方法,其特征在于,
所述确定所述目标逻辑地址属于所述第一逻辑块,包括:确定所述目标逻辑地址指向所述第一逻辑块的第一个逻辑页,申请或分配所述第一物理块,并建立所述第一逻辑块和所述第一物理块的对应关系;
对应的,所述根据所述第一逻辑块和第一物理块的对应关系,将所述目标数据写入所述第一物理块,包括:根据所述对应关系将所述目标数据写入所述第一物理块上的第一个物理页。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
建立所述第一逻辑块中第一逻辑段和所述第一物理块中第一物理段的对应关系,所述第一逻辑段包括至少两个逻辑页,所述第一物理段包括至少两个物理页,所述目标逻辑地址指向所述第一逻辑段中的一个逻辑页;
对应的,
将所述目标数据写入所述第一物理块,包括:
根据所述第一逻辑段和所述第一物理段的对应关系,将所述目标数据写入所述第一物理段中的一个物理页。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一逻辑段和所述第一物理段的对应关系,将所述目标数据写入所述第一物理段中的一个物理页,包括:
根据所述目标逻辑地址在所述第一逻辑段的偏移量,确定所述偏移量在所述第一物理段所对应的目标物理页;将所述目标数据写入所述目标物理页。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
获取模式信息,所述模式信息由所述目标数据的属性确定,若所述属性指示所述目标数据为关键数据,则所述模式信息指示所述第一逻辑块处于第一模式;若所述属性指示所述目标数据为非关键数据,则所述模式信息指示所述第一逻辑块处于第二模式;
根据所述模式信息,将所述第一物理块设置为与所述第一逻辑块相同的模式;
其中,从处于所述第一模式的第一物理块读取数据的速度高于从处于所述第二模式的第一物理块读取数据的速度。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述存储系统的总可用存储空间满足预设要求,且在处于所述第二模式的物理块中检测到所述关键数据,则将处于所述第二模式的物理块中的关键数据迁移到处于所述第一模式的物理块中。
8.根据权利要求6或7所述的方法,其特征在于,所述第一模式为单层单元SLC,所述第二模式为三层单元TLC或四层单元QLC。
9.一种数据写入的方法,其特征在于,所述方法应用于计算机系统,所述计算机系统包括文件系统、基于闪存的存储系统和第一处理器,所述存储系统包括第二处理器,所述方法包括:
所述第一处理器从第一逻辑块中为要写入所述存储系统的目标数据分配目标逻辑地址,所述第一逻辑块为所述文件系统包含的多个逻辑块中的一个,所述存储系统包括多个物理块;
所述第一处理器向所述第二处理器发送所述目标逻辑地址,所述目标逻辑地址用于所述第二处理器确定所述目标逻辑地址属于所述第一逻辑块,并根据所述第一逻辑块和第一物理块的对应关系,将所述目标数据写入所述第一物理块,所述第一物理块为所述多个物理块中的一个。
10.根据权利要求9所述的方法,其特征在于,在所述第一处理器向所述第二处理器发送所述目标逻辑地址之前,所述方法还包括:
第一处理器在执行所述文件系统的垃圾回收GC过程中触发对所述目标数据的读取请求,所述读取请求用于所述第二处理器从第二物理块中读出所述目标数据。
11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
所述第一处理器确定所述目标数据的属性;
所述第一处理器根据所述属性确定所述第一逻辑块,若所述属性指示所述目标数据为关键数据,则所述第一逻辑块处于第一模式;若所述属性指示所述目标数据为非关键数据,则所述第一逻辑块处于第二模式;
对应的,所述第一物理块的模式与所述第一逻辑块的模式相同;其中,从处于所述第一模式的第一物理块读取数据的速度高于从处于所述第二模式的第一物理块读取数据的速度。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
若所述目标逻辑地址为所述第一逻辑块的第一个逻辑地址,则所述第一处理器根据所述目标数据的属性,设置所述第一逻辑块的模式;
所述第一处理器向所述第二处理器发送所述第一逻辑块的模式信息,所述模式信息用于指示所述第二处理器将所述第一物理块的模式设置为与所述第一逻辑块相同。
13.根据权利要求12所述的方法,其特征在于,所述第一处理器根据所述目标数据的属性,设置所述第一逻辑块的模式,包括:
若所述属性指示所述目标数据为关键数据,则将所述第一逻辑块的模式设置为所述第一模式;
若所述属性指示所述目标数据为非关键数据,则将所述第一逻辑块的模式设置为所述第二模式。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求9-13任一项所述的方法。
16.一种计算设备,其特征在于,包括处理器和存储有计算机程序的计算机可读存储介质;
所述处理器与所述计算机可读存储介质耦合,所述计算机程序被所述处理器执行时实现如权利要求1-8任一项所述的方法。
17.一种计算设备,其特征在于,包括处理器和存储有计算机程序的计算机可读存储介质;
所述处理器与所述计算机可读存储介质耦合,所述计算机程序被所述处理器执行时实现如权利要求9-13任一项所述的方法。
18.一种芯片系统,其特征在于,包括处理器,所述处理器被调用用于执行如权利要求1-8任一项所述的方法。
19.一种芯片系统,其特征在于,包括处理器,所述处理器被调用用于执行如权利要求9-13任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010614233.6A CN113868148B (zh) | 2020-06-30 | 2020-06-30 | 一种数据写入的方法及装置 |
PCT/CN2021/082231 WO2022001215A1 (zh) | 2020-06-30 | 2021-03-23 | 一种数据写入的方法及装置 |
EP21833946.3A EP4170505A4 (en) | 2020-06-30 | 2021-03-23 | METHOD AND DEVICE FOR WRITING DATA |
US18/147,362 US20230153236A1 (en) | 2020-06-30 | 2022-12-28 | Data writing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010614233.6A CN113868148B (zh) | 2020-06-30 | 2020-06-30 | 一种数据写入的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113868148A true CN113868148A (zh) | 2021-12-31 |
CN113868148B CN113868148B (zh) | 2024-04-09 |
Family
ID=78981402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010614233.6A Active CN113868148B (zh) | 2020-06-30 | 2020-06-30 | 一种数据写入的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230153236A1 (zh) |
EP (1) | EP4170505A4 (zh) |
CN (1) | CN113868148B (zh) |
WO (1) | WO2022001215A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116049021B (zh) * | 2022-08-29 | 2023-10-20 | 荣耀终端有限公司 | 存储空间管理方法、电子设备及计算机可读存储介质 |
CN117112447B (zh) * | 2023-10-17 | 2023-12-22 | 北京开源芯片研究院 | 一种数据传输方法、装置、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
WO2009090692A1 (ja) * | 2008-01-16 | 2009-07-23 | Panasonic Corporation | 半導体記録装置及び半導体記録システム |
CN102819496A (zh) * | 2012-08-16 | 2012-12-12 | 无锡紫芯集成电路系统有限公司 | 闪存ftl的地址转换方法 |
CN106326132A (zh) * | 2015-06-29 | 2017-01-11 | 华为技术有限公司 | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 |
CN106326134A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | Ftl地址映射的方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8935459B2 (en) * | 2012-03-08 | 2015-01-13 | Apple Inc. | Heuristics for programming data in a non-volatile memory |
US10235079B2 (en) * | 2016-02-03 | 2019-03-19 | Toshiba Memory Corporation | Cooperative physical defragmentation by a file system and a storage device |
US10185658B2 (en) * | 2016-02-23 | 2019-01-22 | Sandisk Technologies Llc | Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes |
JP7030463B2 (ja) * | 2017-09-22 | 2022-03-07 | キオクシア株式会社 | メモリシステム |
KR20200057473A (ko) * | 2018-11-16 | 2020-05-26 | 삼성전자주식회사 | 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
-
2020
- 2020-06-30 CN CN202010614233.6A patent/CN113868148B/zh active Active
-
2021
- 2021-03-23 WO PCT/CN2021/082231 patent/WO2022001215A1/zh unknown
- 2021-03-23 EP EP21833946.3A patent/EP4170505A4/en active Pending
-
2022
- 2022-12-28 US US18/147,362 patent/US20230153236A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
WO2009090692A1 (ja) * | 2008-01-16 | 2009-07-23 | Panasonic Corporation | 半導体記録装置及び半導体記録システム |
CN102819496A (zh) * | 2012-08-16 | 2012-12-12 | 无锡紫芯集成电路系统有限公司 | 闪存ftl的地址转换方法 |
CN106326132A (zh) * | 2015-06-29 | 2017-01-11 | 华为技术有限公司 | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 |
CN106326134A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | Ftl地址映射的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4170505A4 (en) | 2024-01-03 |
US20230153236A1 (en) | 2023-05-18 |
EP4170505A1 (en) | 2023-04-26 |
WO2022001215A1 (zh) | 2022-01-06 |
CN113868148B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113138713B (zh) | 存储器系统 | |
CN108021510B (zh) | 操作对多重名称空间进行管理的存储装置的方法 | |
US10275162B2 (en) | Methods and systems for managing data migration in solid state non-volatile memory | |
US10007468B2 (en) | Method and apparatus for erasing data in data section in flash memory | |
JP6779838B2 (ja) | メモリシステムおよび制御方法 | |
CN106326133B (zh) | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 | |
KR100769402B1 (ko) | 메모리 카드 | |
JP2021128582A (ja) | メモリシステムおよび制御方法 | |
KR101301840B1 (ko) | 비휘발성 메모리 장치의 데이터 처리 방법 | |
US11301331B2 (en) | Storage device and operating method of storage device | |
US20230153236A1 (en) | Data writing method and apparatus | |
CN103761053A (zh) | 一种数据处理方法和装置 | |
CN106201659A (zh) | 一种虚拟机热迁移的方法及宿主机 | |
JP2008009527A (ja) | メモリシステム | |
KR20200121372A (ko) | 하이브리드 메모리 시스템 | |
TW202230110A (zh) | 記憶體系統及控制方法 | |
CN110389712A (zh) | 数据写入方法及其装置、固态硬盘和计算机可读存储介质 | |
WO2023116109A1 (zh) | 一种请求处理方法、装置、设备及非易失性可读存储介质 | |
CN106326132B (zh) | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 | |
CN115237820A (zh) | 以局部清理操作来进行垃圾回收的方法与相关控制器和储存系统 | |
CN111597066A (zh) | Ssd修复方法、装置、计算机设备及存储介质 | |
KR20090053487A (ko) | 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말 | |
CN110199265B (zh) | 存储装置和存储区域管理方法 | |
KR20130010731A (ko) | 메모리 장치 | |
CN116368472A (zh) | 数据处理方法及相关设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |