CN114415940A - 减少嵌入式系统存储介质读取干扰的方法 - Google Patents
减少嵌入式系统存储介质读取干扰的方法 Download PDFInfo
- Publication number
- CN114415940A CN114415940A CN202111546668.2A CN202111546668A CN114415940A CN 114415940 A CN114415940 A CN 114415940A CN 202111546668 A CN202111546668 A CN 202111546668A CN 114415940 A CN114415940 A CN 114415940A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- read
- node
- cache node
- 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
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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种减少嵌入式系统存储介质读取干扰的方法,方法包括:使用MCU芯片的ram内存对需要高频读取的业务数据进行缓存,并采用嵌入式文件系统存储数据,其中每个缓存节点具有特定的数据结构;数据缓存过程中:通过缓存链表管理所有缓存节点,并动态分配缓存节点;通过嵌入式文件系统的读接口完成缓存数据的初始化、读取、更新和校验;通过嵌入式文件系统的写接口对缓存数据进行更新;通过管理缓存节点的读次数,动态释放当前访问频率低的缓存节点。实现提高业务数据访问速度的同时,降低对Nandflash数据单元的读取干扰,提高系统稳定性。
Description
技术领域
本发明涉及存储器数据缓存技术领域,更具体地,涉及一种减少嵌入式系统存储介质读取干扰的方法。
背景技术
嵌入式系统一般基于Nandflash作为存储介质设计嵌入式文件系统,然后在文件系统上存储业务数据。根据各个业务不同特点,有些业务可能会频繁访问某些数据,而这些数据并不连续。在每次读取Nandflash的某页数据时,由于FN(Fowler-Nordheim)隧穿效应,都会对同一个块内的其它页上的数据产生轻微影响,也就是Read Disturb-读取干扰;随着读取次数增多,积累的干扰超过ECC纠错阈值时,那么数据就无法正常读回;例如在SLCNandflash中,对一个块读1KK次会出现读干扰问题,在MLC Nandflsh中,100K甚至20K读取就可能出现读取干扰问题。通常业界使用硬件电路缓存的方式减少对Nandflash的读取次数,从而降低读取干扰;或者监测存储单元受到的干扰程度,当干扰程度达到某个阈值时,将受干扰存储单元的数据重新写一遍,但这些方法通常都需要专用的硬件电路配合,成本较高。
发明内容
本发明的目的是提出一种减少嵌入式系统存储介质读取干扰的方法,实现提高业务数据访问速度的同时,降低对Nandflash数据单元的读取干扰,提高系统稳定性。
为实现上述目的,本发明提出了一种减少嵌入式系统存储介质读取干扰的方法,所述式系统包括MCU芯片,所述方法包括:
使用所述MCU芯片的ram内存对需要高频读取的业务数据进行缓存,并采用嵌入式文件系统存储数据,其中每个缓存节点具有特定的数据结构;
数据缓存过程中:
通过缓存链表管理所有缓存节点,并动态分配缓存节点;
通过所述嵌入式文件系统的读接口完成缓存数据的初始化、读取、更新和校验;
通过所述嵌入式文件系统的写接口对缓存数据进行更新;
通过管理缓存节点的读次数,动态释放当前访问频率低的缓存节点。
可选地,每个缓存节点的数据结构的参数均包括:文件唯一标识fileID、读取起始地址startAddr、读取长度len、缓存数据*data、crc16校验值、指向下一节点的指针*pNext以及该缓存节点的读次数readNum;
其中,第一个缓存节点被定义为一个全局变量Head,类型为记录节点,所述第一个数据缓存节点的数据结构中的fileID、*data及*pNext均被被初始化为Null,该缓存节点的readNum被初始化为0。
可选地,所述通过所述嵌入式文件系统的读接口完成缓存数据的初始化、读取、更新和校验,包括:
当首次调用所述嵌入式文件系统的读接口时,根据所述读接口传入的参数,将第一个数据缓存节点数据结构中的各个参数进行初始化,包括:
使用文件起始簇号初始化fileID;
使用要读取的偏移地址初始化startAddr;
使用要读取的数据长度初始化len,同时动态分配len字节长度的内存缓存读到的数据;
计算从fileID到缓存数据的CRC16校验值;
将该缓存节点的readNum设置为1。
可选地,所述通过管理缓存节点的读次数,动态释放当前访问频率低的缓存节点,包括:
当非首次调用文件系统的读接口时,根据所读数据的文件标识、起始地址、读取长度,判断所要读取的数据是否在已有的缓存链表中:
若所读数据完全在已有的缓存链表中,则判断缓存校验值,若校验值正确,直接返回缓存中的数据并将缓存节点的readNum加1,否则,重新从所述嵌入式文件系统读取数据,并更新该缓存节点的数据项,最后返回缓存中的数据并将该缓存节点的readNum加1。
可选地,所述判断所要读取的数据是否在已有的缓存链表中,还包括:
若所读数据和已有缓存链表中的数据地址有重叠,则将该缓存节点记录的缓存数据和将要读的数据地址范围合并,重新计算该缓存节点的起始地址和数据长度的参数值,并重新分配内存,保存新的缓存数据,最后返回所读的数据,并将该缓存节点的readNum加1。
可选地,所述判断所要读取的数据是否在已有的缓存链表中,还包括:
若所读数据和已有缓存链表中的数据地址没有重叠,则新分配一个缓存节点,并将上一缓存节点中的*pNext指向当前节点,并正确初始化当前缓存节点中的数据项,最后返回缓存中的数据。
可选地,还包括:
若系统没有足够内存可以分配,选取若干readNum值最小的缓存节点,随机删除其中一个缓存节点,再进行分配内存;
若分配内存依然失败,则不缓存该条数据,直接从文件系统读取数据;
若有足够的内存,则新建缓存节点,保存当前读取的数据。
可选地,还包括:
当有缓存节点的readNum的计数到达设定的溢出值时,则重新设置所有缓存节点的readNum值。
可选地,还包括:
在删除文件时,遍历所述缓存链表,删除该文件对应的所有缓存节点;
在写文件时,遍历所述缓存链表,判断所写数据是否和所述缓存链表里面的数据地址有重叠,若有,则更新数据地址重叠的缓存节点,最后将数据写入文件。
可选地,所述MCU芯片为安全加密芯片,集成有CRC16算法校验模块。
本发明的有益效果在于:
本发明使用链表管理缓存节点,动态分配缓存节点,通过管理缓存节点的读次数,动态释放当前访问频率低的缓存节点,最大化利用MCU的ram内存资源,适用于对分散、频繁读取的业务数据进行缓存,能够极大的降低需要高频读写的业务数据对存储介质造成的读干扰,有效降低由于读干扰对存储数据造成的损害,可以基于已有的嵌入式系统通过软件实现,具有灵活性高、安全可靠、成本低、易推广的特点。
本发明的系统具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施方式中将是显而易见的,或者将在并入本文中的附图和随后的具体实施方式中进行详细陈述,这些附图和具体实施方式共同用于解释本发明的特定原理。
附图说明
通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,在本发明示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本发明的一种减少嵌入式系统存储介质读取干扰的方法中涉及的嵌入式系统和业务系统框图。
图2示出了根据本发明的一个实施例的一种减少嵌入式系统存储介质读取干扰的方法中读文件的流程图。
图3示出了根据本发明的一个实施例的一种减少嵌入式系统存储介质读取干扰的方法中写文件的流程图。
图4示出了根据本发明的一个实施例的一种减少嵌入式系统存储介质读取干扰的方法中删除文件的流程图。
具体实施方式
图1示出了根据本发明的一种减少嵌入式系统存储介质读取干扰的方法中涉及的嵌入式系统和业务系统框图,本发明使用嵌入式MCU的内部ram作为缓存,选择需要高频访问且分散不连续的业务数据进行缓存,使用软件方法对缓存数据进行读取、动态更新和校验,降低对nandflash的直接访问频率,以达到减少对nandflash读取干扰的目的,同时还保证了缓存数据的完整性和安全性,提高了对业务数据的访问速度。
下面将参照附图更详细地描述本发明。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
本实施例提供一种减少嵌入式系统存储介质读取干扰的方法,式系统包括MCU芯片,方法包括:
使用MCU芯片的ram内存对需要高频读取的业务数据进行缓存,并采用嵌入式文件系统存储数据,其中每个缓存节点具有特定的数据结构;
数据缓存过程中:
通过缓存链表管理所有缓存节点,并动态分配缓存节点;
通过嵌入式文件系统的读接口完成缓存数据的初始化、读取、更新和校验;
通过嵌入式文件系统的写接口对缓存数据进行更新;
通过管理缓存节点的读次数,动态释放当前访问频率低的缓存节点。
在一个具体应用场景中,使用嵌入式MCU的堆空间缓存业务数据,缓存空间动态分配,每条缓存有特定数据格式,所有缓存使用链表链接起来。在文件系统的读接口完成缓存数据的初始化、读取、更新、校验。在文件系统的写接口对缓存进行更新,本实施例采用fat32嵌入式文件系统存储数据。
本实施例中,每个缓存节点的数据结构的参数均包括:文件唯一标识fileID、读取起始地址startAddr、读取长度len、缓存数据*data、crc16校验值、指向下一节点的指针*pNext以及该缓存节点的读次数readNum;
其中,第一个缓存节点被定义为一个全局变量Head,类型为记录节点,第一个数据缓存节点的数据结构中的fileID、*data及*pNext均被被初始化为Null,该缓存节点的readNum被初始化为0。
在上述具体应用场景中,缓存数据结构定义为:
定义第一个数据缓存节点,该节点是一个全局变量Head,类型为RECORDNODE,并将fileID、data、pNext初始化为NULL,将readNum初始化为0。
本实施例中,通过嵌入式文件系统的读接口完成缓存数据的初始化、读取、更新和校验,包括:
当首次调用嵌入式文件系统的读接口时,根据读接口传入的参数,将第一个数据缓存节点数据结构中的各个参数进行初始化,包括:
使用文件起始簇号初始化fileID;
使用要读取的偏移地址初始化startAddr;
使用要读取的数据长度初始化len,同时动态分配len字节长度的内存缓存读到的数据;
计算从fileID到缓存数据的CRC16校验值;
将该缓存节点的readNum设置为1。
在上述具体应用场景中,上电后,第一次调用文件系统读接口时,根据读接口传入的参数,将Head各个参数进行初始化:使用文件起始簇号初始化fileID,使用要读取的偏移地址初始化startAddr,使用要读取的数据长度初始化len,同时动态分配len字节长度的内存缓存读到的数据,计算从fileID到data的CRC16校验值,最后将该条记录的读写次数readNum设置为1。
本实施例中,通过管理缓存节点的读次数,动态释放当前访问频率低的缓存节点,包括:
当非首次调用文件系统的读接口时,根据所读数据的文件标识、起始地址、读取长度,判断所要读取的数据是否在已有的缓存链表中:
若所读数据完全在已有的缓存链表中,则判断缓存校验值,若校验值正确,直接返回缓存中的数据并将缓存节点的readNum加1,否则,重新从嵌入式文件系统读取数据,并更新该缓存节点的数据项,最后返回缓存中的数据并将该缓存节点的readNum加1。
若所读数据和已有缓存链表中的数据地址有重叠,则将该缓存节点记录的缓存数据和将要读的数据地址范围合并,重新计算该缓存节点的起始地址和数据长度的参数值,并重新分配内存,保存新的缓存数据,最后返回所读的数据,并将该缓存节点的readNum加1。
若所读数据和已有缓存链表中的数据地址没有重叠,则新分配一个缓存节点,并将上一缓存节点中的*pNext指向当前节点,并正确初始化当前缓存节点中的数据项,最后返回缓存中的数据。
若系统没有足够内存可以分配,选取若干readNum值最小的缓存节点,随机删除其中一个缓存节点,再进行分配内存;
若分配内存依然失败,则不缓存该条数据,直接从文件系统读取数据。
若有足够的内存,则新建缓存节点,保存当前读取的数据。
当有缓存节点的readNum的计数到达设定的溢出值时,则重新设置所有缓存节点的readNum值。
在上述具体应用场景中,如图2所示,当再次调用文件系统读接口时,根据所读文件标识、起始地址、读取长度,判断所要读取的数据是否在已有的缓存链表中,可分为以下三种情况:
1)如果所读数据完全在已有的缓存链表中,判断缓存校验值,如果校验值正确,直接返回缓存中的数据并将readNum加1,否则,重新从文件系统读取数据,并更新该缓存节点的数据项,最后返回缓存中的数据并将readNum加1。
2)如果所读数据和已有的某条缓存的数据地址有重叠,则将该条缓存记录的数据和将要读的数据地址范围合并,重新计算该条缓存的起始地址和数据长度,并重新分配内存,保存新的缓存数据,最后返回所读的数据,并将readNum加1。
3)如果所读数据和已有缓存链表里面数据地址没有重叠,则新分配一条缓存节点,并将上一节点的pNext指向当前节点。并正确初始化当前缓存节点中的数据项,最后返回缓存中的数据。
在进行上述2)、3)情况的步骤中,如果系统没有足够内存可以分配,选取若干条(这里选取总记录条数的10%)readNum值最小的缓存节点,随机删除其中一条,再进行分配内存;如果分配内存依然失败,则不缓存该条数据,直接从文件系统读取数据。如果有足够的内存,则新建缓存节点,保存当前读取的数据。当有缓存节点的readNum计数到达溢出值65535时(可根据业务特点,取其他溢出值),调整所有缓存节点的readNum值,调整方法为:readNum当前值最小的重新设置为1,次小的设置为2,依此类推。
本实施例中,还包括:
如图3所示,在写文件时,遍历缓存链表,判断所写数据是否和缓存链表里面的数据地址有重叠,若有,则更新数据地址重叠的缓存节点,最后将数据写入文件;
如图4所示,在删除文件时,遍历缓存链表,删除该文件对应的所有缓存节点。
本实施例中,MCU芯片为安全加密芯片,集成有CRC16算法校验模块。
具体地,本发明所使用的MCU为安全加密芯片,由硬件产生真随机数,保证随机数质量;由硬件实现CRC16算法,速度快,保证缓存数据校验速度。
综上,本发明的减少嵌入式系统存储介质读取干扰的方法具有以下优点:
1、本发明使用链表管理缓存节点,动态分配缓存节点,能够最大化利用MCU的ram内存资源,适用于对分散、频繁读取的业务数据进行缓存,降低读干扰对存储数据造成的损害。
2、通过管理缓存节点的读次数,动态释放当前访问频率低的缓存节点:计数溢出后,重新整理缓存读次数的机制,可避免前期频繁访问,而当前很少读取的节点常驻内存,为新的频繁读取的数据腾出缓存空间;在内存不足的情况下,新建节点由于readNum计数为1,但该节点可能是会频繁访问的节点,应尽量避免下次新建节点时把该节点删除,本发明采用从n个计数最小的节点随机删除的机制,使得该节点被删除的几率只有1/n。从而降低了错误删除读次数为1、但会频繁访问的节点的风险。
3、使用简单,修改量少,仅利用现有系统的ram内存资源、随机数和CRC16校验的硬件模块,在嵌入式fat32文件系统读写和删除接口进行改造,实现对高频读写数据的缓存;该缓存方案可很容易移植到基于其他嵌入式文件系统和其他存储介质的嵌入式系统。具有灵活性高、安全可靠、成本低、易推广的特点,为有高频读写业务数据的嵌入式系统的长期安全稳定运行提供了一种可靠方法。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
Claims (10)
1.一种减少嵌入式系统存储介质读取干扰的方法,所述式系统包括MCU芯片,其特征在于,所述方法包括:
使用所述MCU芯片的ram内存对需要高频读取的业务数据进行缓存,并采用嵌入式文件系统存储数据,其中每个缓存节点具有特定的数据结构;
数据缓存过程中:
通过缓存链表管理所有缓存节点,并动态分配缓存节点;
通过所述嵌入式文件系统的读接口完成缓存数据的初始化、读取、更新和校验;
通过所述嵌入式文件系统的写接口对缓存数据进行更新;
通过管理缓存节点的读次数,动态释放当前访问频率低的缓存节点。
2.根据权利要求1所述的减少嵌入式系统存储介质读取干扰的方法,其特征在于,每个缓存节点的数据结构的参数均包括:文件唯一标识fileID、读取起始地址startAddr、读取长度len、缓存数据*data、crc16校验值、指向下一节点的指针*pNext以及该缓存节点的读次数readNum;
其中,第一个缓存节点被定义为一个全局变量Head,类型为记录节点,所述第一个数据缓存节点的数据结构中的fileID、*data及*pNext均被被初始化为Null,该缓存节点的readNum被初始化为0。
3.根据权利要求2所述的减少嵌入式系统存储介质读取干扰的方法,其特征在于,所述通过所述嵌入式文件系统的读接口完成缓存数据的初始化、读取、更新和校验,包括:
当首次调用所述嵌入式文件系统的读接口时,根据所述读接口传入的参数,将第一个数据缓存节点数据结构中的各个参数进行初始化,包括:
使用文件起始簇号初始化fileID;
使用要读取的偏移地址初始化startAddr;
使用要读取的数据长度初始化len,同时动态分配len字节长度的内存缓存读到的数据;
计算从fileID到缓存数据的CRC16校验值;
将该缓存节点的readNum设置为1。
4.根据权利要求3所述的减少嵌入式系统存储介质读取干扰的方法,其特征在于,所述通过管理缓存节点的读次数,动态释放当前访问频率低的缓存节点,包括:
当非首次调用文件系统的读接口时,根据所读数据的文件标识、起始地址、读取长度,判断所要读取的数据是否在已有的缓存链表中:
若所读数据完全在已有的缓存链表中,则判断缓存校验值,若校验值正确,直接返回缓存中的数据并将缓存节点的readNum加1,否则,重新从所述嵌入式文件系统读取数据,并更新该缓存节点的数据项,最后返回缓存中的数据并将该缓存节点的readNum加1。
5.根据权利要求4所述的减少嵌入式系统存储介质读取干扰的方法,其特征在于,所述判断所要读取的数据是否在已有的缓存链表中,还包括:
若所读数据和已有缓存链表中的数据地址有重叠,则将该缓存节点记录的缓存数据和将要读的数据地址范围合并,重新计算该缓存节点的起始地址和数据长度的参数值,并重新分配内存,保存新的缓存数据,最后返回所读的数据,并将该缓存节点的readNum加1。
6.根据权利要求4所述的减少嵌入式系统存储介质读取干扰的方法,其特征在于,所述判断所要读取的数据是否在已有的缓存链表中,还包括:
若所读数据和已有缓存链表中的数据地址没有重叠,则新分配一个缓存节点,并将上一缓存节点中的*pNext指向当前节点,并正确初始化当前缓存节点中的数据项,最后返回缓存中的数据。
7.根据权利要求5或6所述的减少嵌入式系统存储介质读取干扰的方法,其特征在于,还包括:
若系统没有足够内存可以分配,选取若干readNum值最小的缓存节点,随机删除其中一个缓存节点,再进行分配内存;
若分配内存依然失败,则不缓存该条数据,直接从文件系统读取数据;
若有足够的内存,则新建缓存节点,保存当前读取的数据。
8.根据权利要求7所述的减少嵌入式系统存储介质读取干扰的方法,其特征在于,还包括:
当有缓存节点的readNum的计数到达设定的溢出值时,则重新设置所有缓存节点的readNum值。
9.根据权利要求1所述的减少嵌入式系统存储介质读取干扰的方法,其特征在于,还包括:
在删除文件时,遍历所述缓存链表,删除该文件对应的所有缓存节点;
在写文件时,遍历所述缓存链表,判断所写数据是否和所述缓存链表里面的数据地址有重叠,若有,则更新数据地址重叠的缓存节点,最后将数据写入文件。
10.根据权利要求1所述的减少嵌入式系统存储介质读取干扰的方法,其特征在于,所述MCU芯片为安全加密芯片,集成有CRC16算法校验模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111546668.2A CN114415940B (zh) | 2021-12-16 | 2021-12-16 | 减少嵌入式系统存储介质读取干扰的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111546668.2A CN114415940B (zh) | 2021-12-16 | 2021-12-16 | 减少嵌入式系统存储介质读取干扰的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114415940A true CN114415940A (zh) | 2022-04-29 |
CN114415940B CN114415940B (zh) | 2023-08-29 |
Family
ID=81268251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111546668.2A Active CN114415940B (zh) | 2021-12-16 | 2021-12-16 | 减少嵌入式系统存储介质读取干扰的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114415940B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102157202A (zh) * | 2008-01-22 | 2011-08-17 | 群联电子股份有限公司 | 防止非易失性存储器发生读取干扰的方法及其控制器 |
US20140136883A1 (en) * | 2012-11-15 | 2014-05-15 | Lsi Corporation | Read disturb effect determination |
CN104714757A (zh) * | 2013-12-17 | 2015-06-17 | 京瓷办公信息系统株式会社 | 更新装置和电子设备 |
US20180182465A1 (en) * | 2016-12-22 | 2018-06-28 | Seagate Technology Llc | Read Disturb Detection Based on Dynamic Bit Error Rate Estimation |
CN108717420A (zh) * | 2018-04-20 | 2018-10-30 | 北京鲸鲨软件科技有限公司 | 一种分布式文件系统中提高小文件读取效率的方法 |
CN109388594A (zh) * | 2017-08-11 | 2019-02-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN113419715A (zh) * | 2021-06-17 | 2021-09-21 | 吕锦柏 | 一种基于链表的动态内存管理方法和设备 |
-
2021
- 2021-12-16 CN CN202111546668.2A patent/CN114415940B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102157202A (zh) * | 2008-01-22 | 2011-08-17 | 群联电子股份有限公司 | 防止非易失性存储器发生读取干扰的方法及其控制器 |
US20140136883A1 (en) * | 2012-11-15 | 2014-05-15 | Lsi Corporation | Read disturb effect determination |
CN104714757A (zh) * | 2013-12-17 | 2015-06-17 | 京瓷办公信息系统株式会社 | 更新装置和电子设备 |
US20180182465A1 (en) * | 2016-12-22 | 2018-06-28 | Seagate Technology Llc | Read Disturb Detection Based on Dynamic Bit Error Rate Estimation |
CN109388594A (zh) * | 2017-08-11 | 2019-02-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108717420A (zh) * | 2018-04-20 | 2018-10-30 | 北京鲸鲨软件科技有限公司 | 一种分布式文件系统中提高小文件读取效率的方法 |
CN113419715A (zh) * | 2021-06-17 | 2021-09-21 | 吕锦柏 | 一种基于链表的动态内存管理方法和设备 |
Non-Patent Citations (2)
Title |
---|
WANG XIAOHU .ET AL: ""Resistive Random Access Memory for Future Information Processing System"", 《IEEE》, vol. 105, no. 9 * |
吴梦雨: ""基于NAND Flash的错误特性分析"", 《信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114415940B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10732857B2 (en) | Techniques for reducing memory write operations using coalescing memory buffers and difference information | |
US7747813B2 (en) | Multi-memory device system and method for managing a lifetime thereof | |
US10223010B2 (en) | Dynamic storage device provisioning | |
US9405675B1 (en) | System and method for managing execution of internal commands and host commands in a solid-state memory | |
US5832493A (en) | Flash file management system | |
US8180955B2 (en) | Computing systems and methods for managing flash memory device | |
US7809900B2 (en) | System, method, and computer program product for delaying an operation that reduces a lifetime of memory | |
US7904764B2 (en) | Memory lifetime gauging system, method and computer program product | |
US8174912B2 (en) | Systems and methods for circular buffering control in a memory device | |
US10048876B2 (en) | Method for providing nonvolatile storage write bandwidth using a caching namespace | |
US10372382B2 (en) | Methods and apparatus for read disturb detection based on logical domain | |
WO2014074449A2 (en) | Wear leveling in flash memory devices with trim commands | |
US20080126685A1 (en) | System, method, and computer program product for reducing memory write operations using an instruction set | |
US20190171564A1 (en) | Selection of mass storage device streams for garbage collection based on logical saturation | |
US10108350B2 (en) | Method for providing nonvolatile storage write bandwidth using a caching namespace | |
CN110795031A (zh) | 一种基于全闪存储的数据重删方法、装置和系统 | |
CN114415940B (zh) | 减少嵌入式系统存储介质读取干扰的方法 | |
CN111580757A (zh) | 数据写入方法、系统和固态硬盘 | |
CN107562654B (zh) | Io命令处理方法与装置 | |
CN111625477B (zh) | 访问擦除块的读请求的处理方法与装置 | |
CN112433959A (zh) | 实现数据存储处理的方法、装置、计算机存储介质及终端 | |
KR101939361B1 (ko) | 비휘발성 메모리를 이용한 로깅 방법 | |
CN111737199B (zh) | 一种嵌入式抗掉电文件系统的操作方法 | |
JP4131579B2 (ja) | データ管理システムおよびデータ管理方法 | |
CN113611353A (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 |