WO2020192343A1 - 基于硬件的端对端数据保护方法、装置及计算机设备 - Google Patents

基于硬件的端对端数据保护方法、装置及计算机设备 Download PDF

Info

Publication number
WO2020192343A1
WO2020192343A1 PCT/CN2020/076774 CN2020076774W WO2020192343A1 WO 2020192343 A1 WO2020192343 A1 WO 2020192343A1 CN 2020076774 W CN2020076774 W CN 2020076774W WO 2020192343 A1 WO2020192343 A1 WO 2020192343A1
Authority
WO
WIPO (PCT)
Prior art keywords
user data
protection information
protection
error detection
correction
Prior art date
Application number
PCT/CN2020/076774
Other languages
English (en)
French (fr)
Inventor
汪汉国
冯元元
冷志源
Original Assignee
深圳忆联信息系统有限公司
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 深圳忆联信息系统有限公司 filed Critical 深圳忆联信息系统有限公司
Publication of WO2020192343A1 publication Critical patent/WO2020192343A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes

Definitions

  • This application relates to the technical field of solid-state hard drives, and in particular to a hardware-based end-to-end data protection method, device, and computer equipment.
  • the host side delivers user data; the host side generates error correction protection information (DIF); the NVMe controller detects user data; If the detection passes, the user data and protection information are loaded into the DDR; the NFC module detects the DIF information, and if the detection passes, the data is written into the Nand flash-flash.
  • DIF error correction protection information
  • the end-to-end data protection method based on the NVMe protocol only supports the DIF (error detection data protection method) type, that is, only error detection is performed on the data.
  • DIF error detection data protection method
  • some important data is not only Error detection is needed, and the SSD has error correction capabilities to ensure the reliability and security of data transmission.
  • One of the objectives of the embodiments of the present application is to provide a hardware-based end-to-end data protection method, device, and computer equipment, aiming to solve the problem of low data reliability and security when using SSD for data transmission.
  • a hardware-based end-to-end data protection method includes:
  • NVMe controller hardware generates protection information for error detection and correction
  • the protection information of error detection and correction performs cyclic redundancy check on user data
  • a hardware-based end-to-end data protection device includes a receiving unit, a first generating unit, a first storage unit, a first checking unit, a first judgment unit, an error correction unit, The second judgment unit, the stripping unit and the error reporting unit;
  • the receiving unit is configured to receive user data issued by the host
  • the first generating unit is used for NVMe controller hardware to generate error detection and correction protection information
  • the first storage unit is configured to store the protection information for error detection and correction together with user data
  • the first check unit is used to perform cyclic redundancy check on user data with protection information for error detection and correction;
  • the first judgment unit is used to judge whether the verification is passed
  • the error correction unit is configured to perform error correction on erroneous user data according to the parity data carried in the protection information
  • the second judgment unit is used to judge whether the error correction is successful
  • the stripping unit is used to strip the protection information carried in the user data and write the user data into the memory
  • the error reporting unit is used to report error information to the host.
  • a computer device including a memory, a processor, and a computer program that is stored in the memory and can run on the processor.
  • the processor executes the computer program, it implements the hardware-based The steps of an end-to-end data protection method.
  • a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the steps of the hardware-based end-to-end data protection method described in the first aspect are implemented.
  • the beneficial effects of the hardware-based end-to-end data protection method, device, and computer equipment provided by the embodiments of the present application are: the hardware-based end-to-end data protection method provided by the present application is selected in the end-to-end transport process. Error detection and correction protection mode, NVMe controller hardware can generate error detection and error correction protection information, and the hardware protection information that user data passes through can correct user data based on parity data. If it exceeds the error correction capability range Will be reported to the host side. Through this method, not only can the reliability and security of user data in the end-to-end transmission process be greatly improved, but also the integrity of the user data is guaranteed, and the end-to-end user data protection capability is enhanced.
  • Figure 1 is a flow chart of the prior art
  • FIG. 2 is a flowchart of a specific embodiment of a hardware-based end-to-end data protection method according to this application;
  • FIG. 3 is a schematic structural diagram of a specific embodiment of a hardware-based end-to-end data protection device according to this application;
  • FIG. 4 is a schematic block diagram of a specific embodiment of a computer device according to this application.
  • this application provides a hardware-based end-to-end data protection method, which includes:
  • the NVMe controller selects the protection mode according to the initialization parameters
  • step S30 Judge whether the protection mode of error detection and correction is selected, if yes, go to step S301; if not, go to step S302;
  • NVMe controller hardware generates protection information for error detection and correction
  • S3011 storing the protection information for error detection and correction together with the user data, where the protection information and the user data are stored together in the DDR or a separate cache area;
  • step S3013 Determine whether the verification is passed; if yes, go to step S30151, if not, go to step S3014;
  • S3014 Perform error correction on the erroneous user data according to the parity data carried in the protection information;
  • step S3015 Determine whether the error correction is successful; if yes, go to step S30151, if not, go to step S30152;
  • S30151 Strip the protection information carried in the user data, and write the user data into the memory, where the memory is Nand flash;
  • NVMe controller hardware generates protection information for error detection
  • the protection information of error detection performs cyclic redundancy check on user data
  • step S3024 Judge whether the verification is passed, if yes, go to step S30151, if not, go to step S30152.
  • the user data on the host side is transferred to the solid-state hard disk through the PCIe interface, and the user data is cyclically checked for redundancy. If the check passes, step S20 is entered, and if the check fails, step S30152 is entered.
  • the type of user data can be known. If it is important data that needs error detection and correction, select the error detection and correction protection mode (DECC), that is, not only to detect user data, but also to detect Correct the error information to ensure the reliability and security of user data. If data that cannot be corrected is encountered, it will be reported to the host. Because the protection information of DECC contains: LBA_ID, cyclic redundancy check (CRC) error detection data, and parity data (parity data) for error correction. The protection information in the process of user transmission will perform error detection and correction on user data. Compared with the error detection mode (DIF) of the protocol, an error correction mechanism is added, which ensures the integrity of user data and enhances the end-to-end user data protection capability.
  • DECC error detection and
  • the present application provides a hardware-based end-to-end data protection device.
  • the device includes a receiving unit 1, a first generating unit 2, a first storage unit 3, a first checking unit 4, a first judging unit 5, an error correction unit 6, a second judging unit 7, a stripping unit Unit 8, error reporting unit 9, selection unit 10, third judgment unit 11, second generation unit 12, second storage unit 13, second check unit 14, fourth judgment unit 15;
  • the receiving unit 1 is used to receive user data sent by the host;
  • the first generating unit 2 is used for the NVMe controller hardware to generate protection information for error detection and correction;
  • the first storage unit 3 is used to store the protection information for error detection and correction together with user data
  • the first check unit 4 is used to perform cyclic redundancy check on user data with protection information for error detection and correction;
  • the first judging unit 5 is used to judge whether the verification is passed
  • the error correction unit 6 is configured to correct the erroneous user data according to the parity data carried in the protection information
  • the second judging unit 7 is used to judge whether the error correction is successful
  • the stripping unit 8 is used to strip the protection information carried by the user data and write the user data into the memory;
  • the error reporting unit 9 is used to report error information to the host.
  • the selection unit 10 is used for the NVMe controller to select a protection mode according to the initialization parameters
  • the third judgment unit 11 is used to judge whether the protection mode of error detection and correction is selected
  • the second generating unit 12 is used for generating protection information for error detection by the NVMe controller hardware
  • the second storage unit 13 is configured to store the protection information for error detection together with user data
  • the second check unit 14 the protection information used for error detection, performs cyclic redundancy check on user data
  • the fourth judging unit 15 is used to judge whether the verification passes.
  • the user data on the host side is transferred to the solid state drive through the PCIe interface, and the user data is cyclic redundancy check. If the check passes, the NVMe controller selects the protection mode according to the initialization parameters. If the check fails, then Report error information to the host. According to the initialization parameters, the type of user data can be known. If it is important data that needs error detection and correction, select the error detection and correction protection mode (DECC), that is, not only to detect user data, but also to detect Correct the error information to ensure the reliability and security of user data. If data that cannot be corrected is encountered, it will be reported to the host.
  • DECC error detection and correction protection mode
  • the protection information of DECC contains: LBA_ID, cyclic redundancy check (CRC) error detection data, and parity data (parity data) for error correction.
  • the protection information in the process of user transmission will perform error detection and correction on user data.
  • an error correction mechanism is added, which ensures the integrity of user data and enhances the end-to-end user data protection capability.
  • the present application also provides a computer device, including a memory, a processor, and a computer program stored in the memory and capable of running on the processor.
  • a computer program stored in the memory and capable of running on the processor.
  • the processor executes the computer program, the hardware-based End-to-end data protection method steps.
  • the computer device 700 may be a terminal or a server.
  • the computer device 700 includes a processor 720, a memory, and a network interface 750 connected through a system bus 710, where the memory may include a non-volatile storage medium 730 and an internal memory 740.
  • the non-volatile storage medium 730 can store an operating system 731 and a computer program 732.
  • the processor 720 can execute any hardware-based end-to-end data protection method.
  • the processor 720 is used to provide computing and control capabilities, and support the operation of the entire computer device 700.
  • the internal memory 740 provides an environment for the operation of the computer program 732 in the non-volatile storage medium 730.
  • the processor 720 can perform any hardware-based end-to-end data protection. method.
  • the network interface 750 is used for network communication, such as sending assigned tasks.
  • the structure shown in FIG. 4 is only a block diagram of part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device 700 to which the solution of the present application is applied.
  • the specific computer device 700 may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement.
  • the processor 720 is configured to run the program code stored in the memory to implement the following steps:
  • NVMe controller hardware generates protection information for error detection and correction
  • the protection information of error detection and correction performs cyclic redundancy check on user data
  • the NVMe controller selects the protection mode according to the initialization parameters
  • NVMe controller hardware generates protection information for error detection
  • Error detection protection information performs cyclic redundancy check on user data
  • the protection information and the user data are stored together in the DDR or a separate cache area.
  • the step of stripping the protection information carried in user data and writing the user data into the memory the memory is NAND flash.
  • the processor 720 may be a central processing unit (Central Processing Unit, CPU), and the processor 720 may also be other general-purpose processors, digital signal processors (Digital Signal Processors, DSPs), Application Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor.
  • the structure of the computer device 700 shown in FIG. 4 does not constitute a limitation on the computer device 700, and may include more or less components than shown, or a combination of certain components, or different components Layout.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • a computer readable storage medium includes several instructions to enable a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program code .
  • the disclosed device and method may be implemented in other ways.
  • the device embodiments described above are merely illustrative.
  • the division of the modules or units is only a logical function division.
  • there may be other division methods for example, multiple units or components may be It can be combined or integrated into another device, or some features can be omitted or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • each unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一种基于硬件的端对端数据保护方法、装置、计算机设备及存储介质,其中方法包括接收主机端下发的用户数据(S10);NVMe控制器根据初始化参数选择保护模式(S20);判断是否选择的是检错纠错的保护模式(S30);若是,NVMe控制器硬件产生检错纠错的保护信息(S301);将将检错纠错的保护信息同用户数据一同存储(S3011);检错纠错的保护信息对用户数据进行循环冗余校验(S3012);判断校验是否通过(S3013);若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤(S30151);若否,则根据保护信息携带的奇偶校验数据对出错的用户数据进行纠错(S3014);判断纠错是否成功;若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤(S30151);若否,进入所述的向主机端上报错误信息步骤(S30152);若选择的不是检错纠错的保护模式,则进入检错保护模式(S302);NVMe控制器硬件产生检错的保护信息(S3021);将检错的保护信息同用户数据一同存储(S3022);检错的保护信息对用户数据进行循环冗余校验(S3023);判断校验是否通过(S3024);若通过,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤(S30151);若不通过,进入所述的向主机端上报错误信息步骤(S30152)。该方法提高了数据传输的可靠性和安全性,而且增强了端对端的用户数据保护能力。

Description

基于硬件的端对端数据保护方法、装置及计算机设备
本申请要求于2019年3月25日在中国专利局提交的、申请号为201910229570.0、发明名称为“一种基于硬件的端对端数据保护方法、装置、计算机设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及固态硬盘技术领域,具体涉及一种基于硬件的端对端数据保护方法、装置及计算机设备。
背景技术
SSD(Solid-State Hard Disk,固态硬盘),其最重要的功能就是数据存储。因此,在数据传输过程中对于用户的数据保护也就极为重要。目前,基于NVMe协议的端对端数据保护的流程步骤如图1所示,主机端(HOST)下发用户数据;主机端生成纠错保护信息(DIF);NVMe控制器对用户数据进行检测;若检测通过,则将用户数据和保护信息搬入DDR;NFC模块检测DIF信息,若检测通过,则将数据写入Nand flash-flash中。由上述步骤流程可知,基于NVMe协议的端对端数据保护方法只支持DIF(检错的数据保护方式)类型,即只对数据进行检错,然而在数据传输过程中,一些重要的数据不仅仅需要检错,还需要SSD具备纠错能力,才能保证数据传输的可靠性和安全性。
发明概述
技术问题
本申请实施例的目的之一在于:提供一种基于硬件的端对端数据保护方法、装置及计算机设备,旨在解决使用SSD进行数据传输时,数据的可靠性和安全性较低的问题。
问题的解决方案
技术解决方案
为解决上述技术问题,本申请实施例采用的技术方案是:
第一方面,提供了一种基于硬件的端对端数据保护方法,所述方法包括:
接收主机端下发的用户数据;
NVMe控制器硬件产生检错纠错的保护信息;
将检错纠错的保护信息同用户数据一同存储;
检错纠错的保护信息对用户数据进行循环冗余校验;
判断校验是否通过;
若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
若否,则根据保护信息携带的奇偶校验数据对出错的用户数据进行纠错;
判断纠错是否成功;
若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
若否,进入所述的向主机端上报错误信息步骤;
剥离用户数据携带的保护信息,并将用户数据写入存储器中;
向主机端上报错误信息。
第二方面,提供了一种基于硬件的端对端数据保护装置,所述装置包括接收单元、第一生成单元、第一存储单元、第一校验单元、第一判断单元、纠错单元、第二判断单元、剥离单元以及报错单元;
所述接收单元,用于接收主机端下发的用户数据;
所述第一生成单元,用于NVMe控制器硬件产生检错纠错的保护信息;
所述第一存储单元,用于将检错纠错的保护信息同用户数据一同存储;
所述第一校验单元,用于检错纠错的保护信息对用户数据进行循环冗余校验;
所述第一判断单元,用于判断校验是否通过;
所述纠错单元,用于根据保护信息携带的奇偶校验数据对出错的用户数据进行纠错;
所述第二判断单元,用于判断纠错是否成功;
所述剥离单元,用于剥离用户数据携带的保护信息,并将用户数据写入存储器中;
所述报错单元,用于向主机端上报错误信息。
第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的基于硬件的端对端数据保护方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的基于硬件的端对端数据保护方法的步骤。
本申请实施例提供的基于硬件的端对端数据保护方法、装置及计算机设备的有益效果在于:本申请提供的一种基于硬件的端对端数据保护方法,通过在端对端搬运过程中选择检错纠错的保护模式,NVMe控制器硬件可以生成检错纠错的保护信息,用户数据经过的硬件保护信息都可以根据奇偶校验数据对用户数据进行纠错,若超出纠错能力范围则会上报主机端。通过这种方法,不但可以极大的提高用户数据在端对端传输过程中的可靠性和安全性,而且还使得用户数据的完整性得到了保证,增强了端对端的用户数据保护能力。
发明的有益效果
对附图的简要说明
附图说明
图1为现有技术的流程图;
图2为本申请一种基于硬件的端对端数据保护方法具体实施例的流程图;
图3为本申请一种基于硬件的端对端数据保护装置具体实施例的结构示意图;
图4为本申请一种计算机设备具体实施例的示意性框图。
发明实施例
本发明的实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
如图2所示,本申请提供了一种基于硬件的端对端数据保护方法,该方法包括:
S10、接收主机端下发的用户数据;
S20、NVMe控制器根据初始化参数选择保护模式;
S30、判断是否选择的是检错纠错的保护模式,若是,则进入步骤S301;若否则进入步骤S302;
S301、NVMe控制器硬件产生检错纠错的保护信息;
S3011、将检错纠错的保护信息同用户数据一同存储,其中,保护信息和用户数据一同存储于DDR或者独立的缓存区域中;
S3012、检错纠错的保护信息对用户数据进行循环冗余校验;
S3013、判断校验是否通过;若是,则进入步骤S30151,若否,则进入步骤S3014;
S3014、根据保护信息携带的奇偶校验数据对出错的用户数据进行纠错;
S3015、判断纠错是否成功;若是,则进入步骤S30151,若否,则进入步骤S30152;
S30151、剥离用户数据携带的保护信息,并将用户数据写入存储器中,其中存储器为Nand flash;
S30152、向主机端上报错误信息;
S302、进入检错保护模式;
S3021、NVMe控制器硬件产生检错的保护信息;
S3022、将检错的保护信息同用户数据一同存储,其中,保护信息和用户数据一同存储于DDR或者独立的缓存区域中;
S3023、检错的保护信息对用户数据进行循环冗余校验;
S3024、判断校验是否通过,若是,则进入所述步骤S30151,若否,则进入步骤S30152。
具体的,主机端的用户数据通过PCIe接口搬运至固态硬盘,并且会对用户数据进行循环冗余校验,若校验通过,则进入步骤S20,若校验不通过,则进入步骤S30152。根据初始化参数可知用户的数据的类型,若是需要进行检错纠错的重要数据,则选择检错纠错的保护模式(DECC),即是不仅要对用户数据进行检测,还要对检测中发现的错误信息进行纠正,以保证用户数据可靠性和安全性 ,若遇到无法纠错的数据,则上报给主机端。由于DECC的保护信息中包含:LBA_ID,循环冗余校验(CRC)检错数据以及用于纠错的奇偶校验数据(parity数据)。用户传输过程中的保护信息都会对用户数据进行检错纠错。相比较协议的检错模式(DIF)多了纠错机制,使得用户数据的完整性得到了保证,增强了端对端的用户数据保护能力。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上述实施例所述的一种基于硬件的端对端数据保护方法,本申请提供了一种基于硬件的端对端数据保护装置。如图3所示,该装置包括接收单元1、第一生成单元2、第一存储单元3、第一校验单元4、第一判断单元5、纠错单元6、第二判断单元7、剥离单元8、报错单元9、选择单元10、第三判断单元11、第二生成单元12、第二存储单元13、第二校验单元14、第四判断单元15;
接收单元1,用于接收主机端下发的用户数据;
第一生成单元2,用于NVMe控制器硬件产生检错纠错的保护信息;
第一存储单元3,用于将检错纠错的保护信息同用户数据一同存储;
第一校验单元4,用于检错纠错的保护信息对用户数据进行循环冗余校验;
第一判断单元5,用于判断校验是否通过;
纠错单元6,用于根据保护信息携带的奇偶校验数据对出错的用户数据进行纠错;
第二判断单元7,用于判断纠错是否成功;
剥离单元8,用于剥离用户数据携带的保护信息,并将用户数据写入存储器中;
报错单元9,用于向主机端上报错误信息。
选择单元10,用于NVMe控制器根据初始化参数选择保护模式;
第三判断单元11,用于判断是否选择的是检错纠错的保护模式;
第二生成单元12,用于NVMe控制器硬件产生检错的保护信息;
第二存储单元13、用于将检错的保护信息同用户数据一同存储;
第二校验单元14、用于检错的保护信息对用户数据进行循环冗余校验;
第四判断单元15、用于判断校验是否通过。
具体的,主机端的用户数据通过PCIe接口搬运至固态硬盘,并且会对用户数据进行循环冗余校验,若校验通过,则NVMe控制器根据初始化参数选择保护模式,若校验不通过,则向主机端上报错误信息。根据初始化参数可知用户的数据的类型,若是需要进行检错纠错的重要数据,则选择检错纠错的保护模式(DECC),即是不仅要对用户数据进行检测,还要对检测中发现的错误信息进行纠正,以保证用户数据可靠性和安全性,若遇到无法纠错的数据,则上报给主机端。由于DECC的保护信息中包含:LBA_ID,循环冗余校验(CRC)检错数据以及用于纠错的奇偶校验数据(parity数据)。用户传输过程中的保护信息都会对用户数据进行检错纠错。相比较协议的检错模式(DIF)多了纠错机制,使得用户数据的完整性得到了保证,增强了端对端的用户数据保护能力。
如图4所示,本申请还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的基于硬件的端对端数据保护方法步骤。
该计算机设备700可以是终端或服务器。该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。
该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种基于硬件的端对端数据保护方法。
该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。
该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种基于硬件的端对端数据保护方法。
该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的 部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现以下步骤:
接收主机端下发的用户数据;
NVMe控制器硬件产生检错纠错的保护信息;
将检错纠错的保护信息同用户数据一同存储;
检错纠错的保护信息对用户数据进行循环冗余校验;
判断校验是否通过;
若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
若否,则根据保护信息携带的奇偶校验数据对出错的用户数据进行纠错;
判断纠错是否成功;
若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
若否,进入所述的向主机端上报错误信息步骤;
剥离用户数据携带的保护信息,并将用户数据写入存储器中;
向主机端上报错误信息。
在本申请中,所述的接收主机端下发的用户数据步骤之后,还包括以下步骤:
NVMe控制器根据初始化参数选择保护模式;
判断是否选择的是检错纠错的保护模式;
若是,则进入所述的NVMe控制器硬件产生检错纠错的保护信息的步骤;
若否,则进入检错保护模式;
NVMe控制器硬件产生检错的保护信息;
将检错的保护信息同用户数据一同存储;
检错的保护信息对用户数据进行循环冗余校验;
判断校验是否通过;
若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
若否,则进入所述的向主机端上报错误信息步骤。
在本申请中,所述的将检错纠错的保护信息同用户数据一同存储步骤中,保护信息和用户数据一同存储于DDR或者独立的缓存区域中。
在本申请中,所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤,所述存储器为Nand flash。
应当理解,在本申请实施例中,处理器720可以是中央处理单元(Central Processing Unit,CPU),该处理器720还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域技术人员可以理解,图4中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请中各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的 形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其他的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述仅以实施例来进一步说明本申请的技术内容,以便于读者更容易理解,但不代表本申请的实施方式仅限于此,任何依本申请所做的技术延伸或再创造,均受本申请的保护。本申请的保护范围以权利要求书为准。

Claims (16)

  1. 一种基于硬件的端对端数据保护方法,其特征在于,所述方法包括:
    接收主机端下发的用户数据;
    NVMe控制器硬件产生检错纠错的保护信息;
    将检错纠错的保护信息同用户数据一同存储;
    检错纠错的保护信息对用户数据进行循环冗余校验;
    判断校验是否通过;
    若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
    若否,则根据保护信息携带的奇偶校验数据对出错的用户数据进行纠错;
    判断纠错是否成功;
    若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
    若否,进入所述的向主机端上报错误信息步骤;
    剥离用户数据携带的保护信息,并将用户数据写入存储器中;
    向主机端上报错误信息。
  2. 根据权利要求1所述的一种基于硬件的端对端数据保护方法,其特征在于,所述的接收主机端下发的用户数据步骤之后,还包括以下步骤:
    NVMe控制器根据初始化参数选择保护模式;
    判断是否选择的是检错纠错的保护模式;
    若是,则进入所述的NVMe控制器硬件产生检错纠错的保护信息的步骤;
    若否,则进入检错保护模式;
    NVMe控制器硬件产生检错的保护信息;
    将检错的保护信息同用户数据一同存储;
    检错的保护信息对用户数据进行循环冗余校验;
    判断校验是否通过;
    若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
    若否,则进入所述的向主机端上报错误信息步骤。
  3. 根据权利要求1所述的一种基于硬件的端对端数据保护方法,其特征在于,所述的将检错纠错的保护信息同用户数据一同存储步骤中,保护信息和用户数据一同存储于DDR或者独立的缓存区域中。
  4. 根据权利要求1所述的一种基于硬件的端对端数据保护方法,其特征在于,所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤,所述存储器为Nand flash。
  5. 一种基于硬件的端对端数据保护装置,其特征在于,所述装置包括接收单元、第一生成单元、第一存储单元、第一校验单元、第一判断单元、纠错单元、第二判断单元、剥离单元以及报错单元;
    所述接收单元,用于接收主机端下发的用户数据;
    所述第一生成单元,用于NVMe控制器硬件产生检错纠错的保护信息;
    所述第一存储单元,用于将检错纠错的保护信息同用户数据一同存储;
    所述第一校验单元,用于检错纠错的保护信息对用户数据进行循环冗余校验;
    所述第一判断单元,用于判断校验是否通过;
    所述纠错单元,用于根据保护信息携带的奇偶校验数据对出错的用户数据进行纠错;
    所述第二判断单元,用于判断纠错是否成功;
    所述剥离单元,用于剥离用户数据携带的保护信息,并将用户数 据写入存储器中;
    所述报错单元,用于向主机端上报错误信息。
  6. 根据权利要求5所述的一种基于硬件的端对端数据保护装置,其特征在于,所述装置还包括选择单元、第三判断单元以及第二生成单元、第二存储单元、第二校验单元以及第四判断单元;
    所述选择单元,用于NVMe控制器根据初始化参数选择保护模式;
    所述第三判断单元,用于判断是否选择的是检错纠错的保护模式;
    所述第二生成单元,用于NVMe控制器硬件产生检错的保护信息;
    所述第二存储单元,用于将检错的保护信息同用户数据一同存储;
    所述第二校验单元,用于检错的保护信息对用户数据进行循环冗余校验;
    所述第四判断单元,用于判断校验是否通过。
  7. 根据权利要求5所述的一种基于硬件的端对端数据保护装置,其特征在于,所述的将检错纠错的保护信息同用户数据一同存储中,保护信息和用户数据一同存储于DDR或者独立的缓存区域中。
  8. 根据权利要求5所述的一种基于硬件的端对端数据保护装置,其特征在于,所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中,所述存储器为Nand flash。
  9. 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:
    接收主机端下发的用户数据;
    NVMe控制器硬件产生检错纠错的保护信息;
    将检错纠错的保护信息同用户数据一同存储;
    检错纠错的保护信息对用户数据进行循环冗余校验;
    判断校验是否通过;
    若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
    若否,则根据保护信息携带的奇偶校验数据对出错的用户数据进行纠错;
    判断纠错是否成功;
    若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
    若否,进入所述的向主机端上报错误信息步骤;
    剥离用户数据携带的保护信息,并将用户数据写入存储器中;
    向主机端上报错误信息。
  10. 根据权利要求9所述的计算机设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:
    NVMe控制器根据初始化参数选择保护模式;
    判断是否选择的是检错纠错的保护模式;
    若是,则进入所述的NVMe控制器硬件产生检错纠错的保护信息的步骤;
    若否,则进入检错保护模式;
    NVMe控制器硬件产生检错的保护信息;
    将检错的保护信息同用户数据一同存储;
    检错的保护信息对用户数据进行循环冗余校验;
    判断校验是否通过;
    若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
    若否,则进入所述的向主机端上报错误信息步骤。
  11. 根据权利要求9所述的计算机设备,其特征在于,所述的将检错纠错的保护信息同用户数据一同存储中,保护信息和用户数据一同存储于DDR或者独立的缓存区域中。
  12. 根据权利要求9所述的计算机设备,其特征在于,所述的剥离用户 数据携带的保护信息,并将用户数据写入存储器中,所述存储器为Nand flash。
  13. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序包括程序指令,其特征在于,所述程序指令被处理器执行时实现如下步骤:
    接收主机端下发的用户数据;
    NVMe控制器硬件产生检错纠错的保护信息;
    将检错纠错的保护信息同用户数据一同存储;
    检错纠错的保护信息对用户数据进行循环冗余校验;
    判断校验是否通过;
    若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
    若否,则根据保护信息携带的奇偶校验数据对出错的用户数据进行纠错;
    判断纠错是否成功;
    若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
    若否,进入所述的向主机端上报错误信息步骤;
    剥离用户数据携带的保护信息,并将用户数据写入存储器中;
    向主机端上报错误信息。
  14. 根据权利要求13所述的计算机可读存储介质,其特征在于,所述程序指令被处理器执行时还实现如下步骤:
    NVMe控制器根据初始化参数选择保护模式;
    判断是否选择的是检错纠错的保护模式;
    若是,则进入所述的NVMe控制器硬件产生检错纠错的保护信息的步骤;
    若否,则进入检错保护模式;
    NVMe控制器硬件产生检错的保护信息;
    将检错的保护信息同用户数据一同存储;
    检错的保护信息对用户数据进行循环冗余校验;
    判断校验是否通过;
    若是,则进入所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中步骤;
    若否,则进入所述的向主机端上报错误信息步骤。
  15. 根据权利要求13所述的计算机可读存储介质,其特征在于,所述的将检错纠错的保护信息同用户数据一同存储中,保护信息和用户数据一同存储于DDR或者独立的缓存区域中。
  16. 根据权利要求13所述的计算机可读存储介质,其特征在于,所述的剥离用户数据携带的保护信息,并将用户数据写入存储器中,所述存储器为Nand flash。
PCT/CN2020/076774 2019-03-25 2020-02-26 基于硬件的端对端数据保护方法、装置及计算机设备 WO2020192343A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910229570.0 2019-03-25
CN201910229570.0A CN109992444A (zh) 2019-03-25 2019-03-25 一种基于硬件的端对端数据保护方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
WO2020192343A1 true WO2020192343A1 (zh) 2020-10-01

Family

ID=67131448

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/076774 WO2020192343A1 (zh) 2019-03-25 2020-02-26 基于硬件的端对端数据保护方法、装置及计算机设备

Country Status (2)

Country Link
CN (1) CN109992444A (zh)
WO (1) WO2020192343A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992444A (zh) * 2019-03-25 2019-07-09 深圳忆联信息系统有限公司 一种基于硬件的端对端数据保护方法、装置、计算机设备及存储介质
CN111625199B (zh) * 2020-05-28 2023-07-04 深圳忆联信息系统有限公司 提升固态硬盘数据通路可靠性的方法、装置、计算机设备及存储介质
CN112558884B (zh) * 2020-12-23 2023-03-14 湖南国科微电子股份有限公司 数据保护方法以及基于NVMe的存储设备
CN115567167B (zh) * 2022-12-06 2023-03-31 芯动微电子科技(珠海)有限公司 一种总线传输数据纠错方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178675A (zh) * 2007-12-14 2008-05-14 华为技术有限公司 校验数据的方法和装置
US20150332780A1 (en) * 2014-05-13 2015-11-19 Sejeong Jang Storage device, operating method of storage device and method of accessing storage device
CN106445724A (zh) * 2015-08-11 2017-02-22 Hgst荷兰公司 与受保护数据分开存储奇偶校验数据
CN107229417A (zh) * 2016-03-25 2017-10-03 三星电子株式会社 数据存储设备及其操作方法
CN109992444A (zh) * 2019-03-25 2019-07-09 深圳忆联信息系统有限公司 一种基于硬件的端对端数据保护方法、装置、计算机设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567132B (zh) * 2011-12-30 2014-12-03 记忆科技(深圳)有限公司 端对端芯片数据通路保护装置及其方法
CN104008069B (zh) * 2013-02-22 2018-06-15 中兴通讯股份有限公司 一种数据保护方法、装置及设备
US11042300B2 (en) * 2015-03-31 2021-06-22 Toshiba Memory Corporation Command load balancing for NVME dual port operations
US10025664B2 (en) * 2015-12-22 2018-07-17 Western Digital Technologies, Inc. Selective buffer protection
CN108958963A (zh) * 2018-06-01 2018-12-07 杭州电子科技大学 一种基于ldpc和循环冗余校验码的nand flash差错控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178675A (zh) * 2007-12-14 2008-05-14 华为技术有限公司 校验数据的方法和装置
US20150332780A1 (en) * 2014-05-13 2015-11-19 Sejeong Jang Storage device, operating method of storage device and method of accessing storage device
CN106445724A (zh) * 2015-08-11 2017-02-22 Hgst荷兰公司 与受保护数据分开存储奇偶校验数据
CN107229417A (zh) * 2016-03-25 2017-10-03 三星电子株式会社 数据存储设备及其操作方法
CN109992444A (zh) * 2019-03-25 2019-07-09 深圳忆联信息系统有限公司 一种基于硬件的端对端数据保护方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN109992444A (zh) 2019-07-09

Similar Documents

Publication Publication Date Title
WO2020192343A1 (zh) 基于硬件的端对端数据保护方法、装置及计算机设备
US8473816B2 (en) Data verification using checksum sidefile
US9268643B2 (en) Querying and repairing data
KR101369573B1 (ko) 고체상태 소자들의 객체 지향 메모리
US7725805B2 (en) Method and information apparatus for improving data reliability
US9191030B2 (en) Memory controller, data storage device, and memory controlling method
US11340986B1 (en) Host-assisted storage device error correction
WO2019210844A1 (zh) 存储设备异常检测方法及装置、分布式存储系统
US8566689B2 (en) Data integrity units in nonvolatile memory
WO2015153645A1 (en) Memory migration in presence of live memory traffic
CN111143111B (zh) Ssd映射表保护机制验证方法、装置、计算机设备及存储介质
CN111464258B (zh) 一种数据校验方法、装置、计算设备及介质
US10095867B2 (en) Antivirus scan during a data scrub operation
US10534683B2 (en) Communicating outstanding maintenance tasks to improve disk data integrity
CN110955916A (zh) 一种数据完整性保护方法、系统及相关设备
CN112579329A (zh) 快速处理uecc的方法及其存储设备
CN111625199A (zh) 提升固态硬盘数据通路可靠性的方法、装置、计算机设备及存储介质
US11606104B1 (en) Data integrity protection
CN116932275B (zh) 一种数据刷洗控制方法、ddr控制器和片上系统
US20220377054A1 (en) Data storage device data recovery using remote network storage
CN107451035B (zh) 用于计算机装置的错误状态数据提供方法
CN118113321A (zh) Fpga设备升级方法、电子设备和计算机可读存储介质
CN115185733A (zh) 基于hmb的ssd映射表异常处理的方法、装置、计算机设备及存储介质
CN116466882A (zh) 基于hmb的ssd性能提升方法、装置、设备及介质
JP2010079371A (ja) 記憶装置及び電子機器

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20777086

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 16.11.2021)

122 Ep: pct application non-entry in european phase

Ref document number: 20777086

Country of ref document: EP

Kind code of ref document: A1