CN113093997B - Method for separating data Based on Host-Based FTL (fiber to the Home) architecture - Google Patents

Method for separating data Based on Host-Based FTL (fiber to the Home) architecture Download PDF

Info

Publication number
CN113093997B
CN113093997B CN202110416564.3A CN202110416564A CN113093997B CN 113093997 B CN113093997 B CN 113093997B CN 202110416564 A CN202110416564 A CN 202110416564A CN 113093997 B CN113093997 B CN 113093997B
Authority
CN
China
Prior art keywords
data
ftl
host
architecture
ssd
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.)
Active
Application number
CN202110416564.3A
Other languages
Chinese (zh)
Other versions
CN113093997A (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.)
Axd Anxinda Memory Technology Co ltd
Original Assignee
Axd Anxinda Memory Technology Co ltd
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 Axd Anxinda Memory Technology Co ltd filed Critical Axd Anxinda Memory Technology Co ltd
Priority to CN202110416564.3A priority Critical patent/CN113093997B/en
Publication of CN113093997A publication Critical patent/CN113093997A/en
Application granted granted Critical
Publication of CN113093997B publication Critical patent/CN113093997B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • 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/0614Improving the reliability of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • 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/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
    • 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
    • G06F3/0656Data buffering arrangements

Abstract

The invention discloses a method for separating data Based on a Host-Based FTL (fiber to the next layer) framework, which is used for a linux system and comprises the following steps: s1, creating a mark in struct bio of the FTL through a Host end, wherein the mark is used for identifying whether submitted data is log data; s2, the file system submits data to the FTL, and the submitted data types are identified and distinguished through the marks created in S1; s3, writing the identified log data into a log data buffer area independently, and writing the identified system data into a system data buffer area independently; and S4, before the bio is used for creating the write request when the SSD works, the log data and the system data are distinguished according to the request.

Description

Method for separating data Based on Host-Based FTL (fiber to the Home) architecture
Technical Field
The invention relates to a storage device control method, in particular to a method for separating data Based on a Host-Based FTL framework.
Background
The Solid State Drives (Solid State Drives), referred to as fixed disks for short, are hard disks made of Solid State Drive (Solid State Drives) by using Solid electronic storage chip arrays, and are composed of a control unit and a storage unit (FLASH chip, DRAM chip). The work of the solid state disk cannot leave the FTL, the FTL refers to a Flash Translation Layer, and the work of the FTL is to complete the conversion from the logical address of Host to the physical address of Flash. When writing a piece of data into Flash, the control unit (controller) records the mapping relationship from the logical address to the physical address of the data, so that when Host wants to read the data, the Host reads the real data according to the mapping. The algorithm of the FTL varies, and the function implemented by the FTL may vary.
The characteristics of the flash memory are that the flash memory block can be written in only by erasing first and can not be overwritten; flash blocks are life-span. The lifetime is reduced a little for each erase; the number of reads of the flash block is limited; the reading interference problem can be caused by more times of reading; data retention in flash memory is time-limited. The data retention time at high temperature is shortened; the flash memory has bad blocks naturally, and new bad blocks can be generated in the using process; MLC and TLC suffer from the problem of lower page corruption.
Based on the above characteristics of the flash memory, the FTL also has the functions of Garbage Collection (Garbage Collection), wear Leveling (Ware Leveling), bad block management, read interference processing, data retention processing and the like while completing the conversion from the working logical address to the physical address, but the essence of the above functions of the FTL — mapping management. The mapping is block-based mapping, page-based mapping, and hybrid mapping.
The FTLs are classified into Host-Based (Host-Based) and device-Based (device-Based), in which the Host-Based FTLs are implemented at the Host side and use the CPU and memory resources of their own computers. The Device Based FTL is implemented on the Device side, and uses the controller and RAM resources on the SSD.
When a Linux system is adopted for a host, a device based FTL is adopted for an existing ordinary SSD, and a SSD product is a general FTL fixed to hardware, and in a using process, the following defects exist:
1. in a file system under the linux system, a NAND page (data page) in which ordinary file data is recorded and a NAND page (log page) in which log data is recorded are written together into one NAND block. At garbage collection, valid page updates may cause problems with increased write coverage factor (WAF), increased GC overhead and reduced SSD lifetime.
2. The inability to customize for a specific application (different data differentiation logic); the market needs high performance and large capacity, the maximum performance and capacity supported by a universal controller chip are limited, the market demands are various, some demands need the controller chip to provide characteristic function support, and some universal SSDs cannot provide corresponding functions on a main control chip.
3. The FTL is placed inside the SSD master control, because a controller chip is complex, the design difficulty is high, the research and development cost is high, the flash memory updating speed is high, common flash memory manufacturers can release new-generation products, new use characteristics exist, the controller chip needs to be modified, and the cost for modifying the controller chip is high.
4. Most of the existing controllers (controllers) in the SSD adopt a programmable device FPGA, the functions are relatively simple, ECC error correction and flash timing control are mainly implemented, and under the condition of a fixed FTL, fixed data processing overhead is required, so that the performance of the SSD cannot be really improved, and the performance of the SSD is optimized.
Disclosure of Invention
In view of the above situation, the present invention provides a method for separating data Based on a Host-Based FTL architecture, which satisfies a better usage effect, and the scheme is as follows:
a method for separating data Based on a Host-Based FTL architecture is used for a linux system and comprises the following steps:
s1, creating a mark in struct bio of the FTL through a Host end, wherein the mark is used for identifying whether submitted data is log data;
s2, the file system submits data to the FTL, and the submitted data types are identified and distinguished through the marks created in S1;
s3, writing the identified log data into a log data buffer area independently, and writing the identified system data into a system data buffer area independently;
and S4, before the write request is created by using the bio when the SSD works, distinguishing log data and system data according to the request, mapping the requested log data to a log block of the NAND Flash in the SSD from a log data buffer area, and mapping the requested system data to a data block of the NAND Flash in the SSD from a system data buffer area.
Further, after the step S4, the log data that is not requested is deleted as invalid data from the log data buffer.
Further, according to different application requirements, different marks are created in struct bio of the FTL at the host end to identify different data in the step S1 according to different criteria, so as to meet the application requirements.
Further, the file system is an Ext4 file system.
Further, data was submitted via the journal Block Device2 corresponding to the Ext4 file system.
Further, the file system is an Ext4 file system, and log data is submitted and deleted through journal Block Device2 corresponding to the Ext4 file system.
Furthermore, a read-write interface of the flash memory in the SSD is directly opened to a host end driver so that the host end driver directly manages the flash memory array, and then a controller of the SSD only plays a role in ECC error correction algorithm and physical protocol conversion.
Has the advantages that: the invention is novel in concept, reasonable in design and convenient to use, and is modified to be based on a host machine relative to the existing FTL architecture based on equipment, and correspondingly provides a method for distinguishing data at the host machine end on the FTL.
Drawings
FIG. 1 is a logic block diagram of the present invention.
Fig. 2 is a physical structure diagram of a corresponding specific scheme of the invention.
Fig. 3 is a block diagram of an embodiment of the present invention.
Fig. 4 is a schematic structural diagram of a corresponding method of the present invention.
Detailed Description
The invention is further described in the following detailed description with reference to the drawings and examples as preferred embodiments:
referring to fig. 1-4, a method for separating data Based on a Host-Based FTL architecture is used in a linux system, and includes the following steps:
s1, creating a mark in struct bio of the FTL through a Host end, wherein the mark is used for identifying whether submitted data is log data;
s2, the file system submits data to the FTL, and the submitted data types are identified and distinguished through the marks created in S1;
s3, writing the identified log data into a log data buffer area independently, and writing the identified system data into a system data buffer area independently;
and S4, before the write request is created by using the bio when the SSD works, distinguishing log data and system data according to the request, mapping the requested log data to a log block of the NAND Flash in the SSD from a log data buffer area, and mapping the requested system data to a data block of the NAND Flash in the SSD from a system data buffer area.
In practical implementation, the FTL itself generates invalid data during data extraction and identification, and deletes the invalid data, but the deleting operation is not in the SSD, so that after step S4, there are:
and S5, deleting the log data which are not requested as invalid data from the log data buffer area.
Based on FTL based on Host base, therefore, different application requirements can be met by modifying the data identification logic on FTL. Therefore, in the implementation process, different marks are created in struct bio of the FTL at the host end according to different application requirements, so as to identify different data in step S1 according to different criteria, thereby meeting the application requirements.
In a specific implementation, the linux system is typically provided with the Ext4 file system, and thus, the file system is the Ext4 file system.
In the implementation, the Ext4 is generally served by JBD2(journal Block Device2), and thus submits data through journal Block Device2 corresponding to the Ext4 file system.
In a specific implementation, the file system is an Ext4 file system, and log data is submitted and deleted through journal Block Device2 corresponding to the Ext4 file system.
In specific implementation, a read-write interface of a flash memory in the SSD is directly opened to a host end driver so that the host end driver directly manages the flash memory array, and then a controller of the SSD only plays a role in ECC error correction algorithm and physical protocol conversion.
In the specific implementation of the scheme of the invention, the SSD of the existing Device based FTL architecture is used as a comparison, the SSD writes the system program into the hardware of the SSD, and one product fixes one set of FTL program and cannot be modified, so that when the system is actually used, the whole product can only be replaced when different FTLs are needed and the product is updated and needs to be replaced when different FTLs are needed. Inside the SSD, when the FTL is used, data is written into the flash memory, and then invalid data is erased, so that the service life of the SSD is damaged based on the basic performance of SSD hardware and software. Meanwhile, the FTL occupies the FPGA computing capability in the SSD, and does not have more computing capability to carry out optimal configuration on hardware. According to the invention, the FTL is erected into the host, and the system data and the log data are distinguished at the host end, so that the effective data is written into the SSD flash memory, and thus, the damage caused by frequent erasing of the flash memory in the prior art is avoided. Meanwhile, the FTL can be modified through the host end, and the customized requirement is met. The FTL which is directly written in the SSD hardware is not available, the hardware is updated, the method is more economical, the operational capability of the FPGA is released, and the operational capability is vacated to help realize the optimal operational performance of the SSD.
The foregoing detailed description of the preferred embodiments of the invention has been presented. It should be understood that numerous modifications and variations could be devised by those skilled in the art in light of the present teachings without departing from the inventive concepts. Therefore, the technical solutions available to those skilled in the art through logic analysis, reasoning and limited experiments based on the prior art according to the concept of the present invention should be within the scope of protection defined by the claims.

Claims (7)

1. A method for separating data Based on a Host Based FTL architecture is used for a linux system and comprises the following steps:
s1, creating a mark in struct bio of the FTL through a Host end, wherein the mark is used for identifying whether submitted data is log data;
s2, the file system submits data to the FTL, and the submitted data types are identified and distinguished through the marks created in S1;
s3, writing the identified log data into a log data buffer area independently, and writing the identified system data into a system data buffer area independently;
and S4, before the write request is created by using the bio when the SSD works, distinguishing log data and system data according to the request, mapping the requested log data to a log block of the NAND Flash in the SSD from a log data buffer area, and mapping the requested system data to a data block of the NAND Flash in the SSD from a system data buffer area.
2. The method of separating data Based on a Host Based FTL architecture of claim 1, wherein: after the step S4, the log data that is not requested is deleted from the log data buffer as invalid data.
3. The method of splitting data Based on a Host Based FTL architecture of claim 1 or 2, wherein: according to different application requirements, different marks are created in struct bio of the FTL at the host end so as to identify different data in the step S1 according to different standards, and therefore the application requirements are met.
4. The method of separating data Based on a Host Based FTL architecture of claim 1, wherein: the file system is an Ext4 file system.
5. The method of separating data Based on a Host Based FTL architecture of claim 4, wherein: data was submitted via the journal Block Device2 corresponding to the Ext4 file system.
6. The method of separating data Based on a Host Based FTL architecture of claim 2, wherein: the file system is an Ext4 file system, and log data is submitted and deleted through journal Block Device2 corresponding to the Ext4 file system.
7. The method of separating data Based on a Host Based FTL architecture of claim 1, wherein: and directly opening a read-write interface of the flash memory in the SSD to a host end driver to enable the host end driver to directly manage the flash memory array, so that the controller of the SSD only plays a role in ECC error correction algorithm and physical protocol conversion.
CN202110416564.3A 2021-04-19 2021-04-19 Method for separating data Based on Host-Based FTL (fiber to the Home) architecture Active CN113093997B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110416564.3A CN113093997B (en) 2021-04-19 2021-04-19 Method for separating data Based on Host-Based FTL (fiber to the Home) architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110416564.3A CN113093997B (en) 2021-04-19 2021-04-19 Method for separating data Based on Host-Based FTL (fiber to the Home) architecture

Publications (2)

Publication Number Publication Date
CN113093997A CN113093997A (en) 2021-07-09
CN113093997B true CN113093997B (en) 2021-09-28

Family

ID=76678419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110416564.3A Active CN113093997B (en) 2021-04-19 2021-04-19 Method for separating data Based on Host-Based FTL (fiber to the Home) architecture

Country Status (1)

Country Link
CN (1) CN113093997B (en)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100806343B1 (en) * 2006-10-19 2008-02-27 삼성전자주식회사 Memory system including flash memory and mapping table management method thereof
KR101543431B1 (en) * 2008-11-20 2015-08-11 삼성전자주식회사 Non-volatile memroy system and access method thereof
KR101041837B1 (en) * 2010-04-09 2011-06-17 (주)다윈텍 Control aparatus and method for storing file
CN103034586B (en) * 2012-11-30 2016-03-23 记忆科技(深圳)有限公司 By method and the system thereof of flash translation layer (FTL) identification upper layer application
CN112765006A (en) * 2015-07-21 2021-05-07 北京忆恒创源科技有限公司 Storage device log generation method and storage device thereof
US20170139825A1 (en) * 2015-11-17 2017-05-18 HGST Netherlands B.V. Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach
KR20200086143A (en) * 2019-01-08 2020-07-16 삼성전자주식회사 Storage device and data processing method thereof
KR20210012085A (en) * 2019-07-23 2021-02-03 삼성전자주식회사 Storage device for improving journal replay, operating method thereof, and electronic device comprising storage device
CN111506458B (en) * 2020-04-23 2023-04-07 华中科技大学 Method, module and system for improving F2FS transaction performance
CN111597159A (en) * 2020-07-27 2020-08-28 成都智明达电子股份有限公司 Method for improving read-write speed of EXT4 file system
CN111984604B (en) * 2020-08-13 2024-03-19 华中科技大学 Method for reducing fragments of log-structured file system and flash memory storage system

Also Published As

Publication number Publication date
CN113093997A (en) 2021-07-09

Similar Documents

Publication Publication Date Title
US8166258B2 (en) Skip operations for solid state disks
US8166233B2 (en) Garbage collection for solid state disks
US8521949B2 (en) Data deleting method and apparatus
US8219776B2 (en) Logical-to-physical address translation for solid state disks
US8135901B2 (en) Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
US8316201B2 (en) Methods for executing a command to write data from a source location to a destination location in a memory device
US8392670B2 (en) Performance management of access to flash memory in a storage device
TWI515735B (en) Data erasing method, memory control circuit unit and memory storage apparatus
US10372619B2 (en) Data backup method, data recovery method and storage controller
US7373477B2 (en) Fragmentation executing method and storage device
US20050204187A1 (en) System and method for managing blocks in flash memory
KR100317691B1 (en) Efficient volume copy using pre-configuration of log structured target storage
WO2012050934A2 (en) Apparatus, system, and method for a direct interface between a memory controller and non-volatile memory using a command protocol
CN110347613B (en) Method for realizing RAID in multi-tenant solid-state disk, controller and multi-tenant solid-state disk
CN109240939B (en) Method for rapidly processing solid state disk TRIM
CN110362499B (en) Electronic machine and control method thereof, computer system and control method thereof, and control method of host
US20090172269A1 (en) Nonvolatile memory device and associated data merge method
CN113093997B (en) Method for separating data Based on Host-Based FTL (fiber to the Home) architecture
CN111737165A (en) Memory control method, memory storage device and memory control circuit unit
KR20110041843A (en) Hybrid storage device and operating method for the same
TWI805937B (en) Data processing method and memory controller utilizing the same
US20230176782A1 (en) Memory management method, memory storage device and memory control circuit unit
CN102023925A (en) A solid state disk and the application method thereof
CN113868149A (en) Data storage method, device and equipment and readable storage medium

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