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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of 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/0629—Configuration or reconfiguration of 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/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
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
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
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.
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)
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 |
CN106354615B (en) * | 2015-07-21 | 2021-06-01 | 北京忆恒创源科技有限公司 | Solid state disk log generation method and device |
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 |
-
2021
- 2021-04-19 CN CN202110416564.3A patent/CN113093997B/en active Active
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 | |
US10372619B2 (en) | Data backup method, data recovery method and storage controller | |
TWI515735B (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
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 | |
US20170060448A1 (en) | Systems, solid-state mass storage devices, and methods for host-assisted garbage collection | |
WO2012050934A2 (en) | Apparatus, system, and method for a direct interface between a memory controller and non-volatile memory using a command protocol | |
CN110362499B (en) | Electronic machine and control method thereof, computer system and control method thereof, and control method of host | |
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 | |
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 |