CN104199619A - 一种在nand中处理数据的方法及装置 - Google Patents
一种在nand中处理数据的方法及装置 Download PDFInfo
- Publication number
- CN104199619A CN104199619A CN201410406166.3A CN201410406166A CN104199619A CN 104199619 A CN104199619 A CN 104199619A CN 201410406166 A CN201410406166 A CN 201410406166A CN 104199619 A CN104199619 A CN 104199619A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- nand
- piece
- sector
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及通信电子技术领域,尤其涉及一种在NAND中处理数据的方法及装置。用于解决现有技术中由于在对NAND进行读写的操作过程中需要产生大量中断或者唤醒等操作,使得CPU处理数据的效率低下的问题。该方法包括:在接收到文件系统的读写请求后;将扇区链中的数据按照预先设置的方式对应到虚拟的页链表中;虚拟页链表按照一定的动态对应,确定出每一个虚拟页所对应的NAND中真正的物理页;将所述页链表中的数据依次写入NAND的块中,待一个页链表完成之后唤醒阻塞的请求线程。可见该方法可以提高CPU处理数据的效率。
Description
技术领域
本发明涉及通信电子技术领域,尤其涉及一种在NAND中处理数据的方法及装置。
背景技术
随着科技的发展,以及日常生活的需要,智能手机、笔记本电脑、相机等电子设备已经深入人们的家庭中。而随着这些电子设备的频繁使用,人们对于其的存储能力也有着越来越高的需求,目前为了满足用户对存储能力的需求,大多数电子设备中都在使用非易失存储介质(NAND)进行数据的存储。因此,对NAND进行读写操作则成为存储数据时需要频繁进行的操作。在现有技术中对NAND的读写操作如下:
首先,用户在软件应用层发出对NAND的读写操作命令,接收到该命令后系统中断当前正在进行的线程,并向MTD发出以一页为数据处理单位对NAND进行读写处理的请求,当完成一页的读写处理后中断唤醒处于等待状态的线程,此时完成一页数据的读写操作;当需要进行下一页数据的读写操作时,还需要中断当前正在进行的线程,然后完成一页的读写操作,最后中断唤醒处于等待状态的线程。
由此可见,目前这种以页为单位的数据处理方式,在完成对NAND的读写操作时要进行很多次的中断、唤醒等操作,如果遇到大数据量需要处理时将会造成大量的中断,因此而增加了CPU的压力,降低数据处理的速度以及效率。
发明内容
本发明涉及通信电子技术领域,尤其涉及一种在NAND中处理数据的方法及装置。用于解决现有技术中由于在对NAND进行读写的操作过程中需要产生大量中断或者唤醒等操作,使得CPU处理数据的效率低下的问题。
一种在NAND中处理数据的方法,所述方法包括:
在接收到文件系统的读写请求后唤醒请求处理线程;
将扇区链中的数据按照预先设置的方式映射到页链表的页中;
按照一定的动态对应方式,确定出每一页所对应的NAND的块;
将所述页链表中的数据依次写入NAND的块中后,唤醒处于中断状态的线程。
一种在NAND中处理数据的装置,所述装置包括:
唤醒模块,用于在接收到文件系统的读写请求后唤醒等待的请求线程;
映射模块,用于将扇区链中的数据按照预先设置的方式映射到页链表的页中;
确定模块,用于按照一定的动态对应方式,确定出每一页所对应的NAND的块;
写入模块,用于将所述页链表中的数据依次写入NAND的块中后,中断唤醒处于阻塞状态的请求线程。
可见,使用本发明实施例提供的方法需要首先将扇区链的读写请求对应转化成页链表的请求,当需要对NAND进行读写操作时将页链表中的数据依次全部写入到NAND的对应块中,该方法只需在将页链表中的数据写入NAND的对应块中之后产生一次读写完成中断,然后在所有数据都写完之后再唤醒处于阻塞状态的请求处理线程,可见该方法不需要产生多次中断因此可大大降低CPU的功耗,提高数据存储的效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种在NAND中处理数据的方法流程图;
图2为本发明实施例提供的具体的一种在NAND中处理数据的方法流程图;
图3为本发明实施例提供的扇区链表、页链表以及块之间的关联图;
图4为本发明实施例提供的一种在NAND中处理数据的装置结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。
使用本发明实施例提供的方法需要首先将扇区链中的所有对扇区的操作都对应转化为页链表中页的操作,当需要对NAND进行读写操作时将页链表中的数据依次全部写入到NAND的对应块中,该方法只需在将页链表中的数据写入NAND的对应块中之后产生一次读写完成中断,然后靠完成中断唤醒处于阻塞状态的请求处理线程,可见该方法不需要产生多次中断因此可大大降低CPU的功耗,提高数据存储的效率。如图1所示,具体过程如下:
步骤11,在接收到文件系统的读写请求后唤醒请求处理线程;
步骤12,将扇区链中的数据按照预先设置的方式映射到页链表的页中;
步骤13,按照一定的动态对应方式,确定出每一页所对应的NAND的块;
步骤14,将所述页链表中的数据依次写入NAND的块中后,唤醒处于中断状态的线程。
其中,所述将扇区链中的数据按照预先设置的方式对应到虚拟页链表的相应的页中包括:
将所述扇区链中的各个扇区所保存的数据按照预先设置的对应关系,存放到与扇区对应的页中。
具体的,所述预先设置的地址查找方式包括:
根据分区的物理偏移,大小,以及物理页所对应的块是否为坏块等一些参考来确定每个虚拟页所对应的物理页。
具体的,所述按照一定的动态对应方式,确定出每一页所对应的NAND的块包括:
根据分区物理地址偏移及大小确定出页所对应的待写入数据的块地址;判断该待读写入数据的块是否为坏块,如果是则在计算出的页地址的基础之上加一个块的页数量,从而重新计算出每个虚拟页所对应的物理页地址,并根据该物理页地址确定出新的待写入数据的NAND的块。
以下以具体实施例介绍:
本发明实施例提供一种在NAND中处理数据的方法,如图2所示,具体过程如下:
步骤21,接收到文件系统发来的读写请求后,唤醒处于等待状态的请求处理线程;
步骤22,将扇区链中的数据按照预先设置的方式映射到页链表的相应的页中;
具体的,本步骤中将所述扇区链中的各个扇区所保存的数据按照预先设置的对应关系,存放到与扇区对应的页中。
扇区链中包含一个或多个地址连续大小相等的扇区,每个扇区都有唯一对应的扇区标识;页表链中包括一个或多个地址连续或者不连续、且大小相等的页,每个页都有唯一对应的页标识;
将扇区链中的连续地址的一个或多个扇区中的内容放到与该扇区对应的页中,例如图3所示,每个扇区的扇区标识分别为Sector0、Sector1、Sector2……Sectorn;每个页的页标识分别为Page0、Page1、Page2……;
根据扇区与页的大小关系,确定将哪几个扇区放入到一个页中,例如,一个Sector0、Sector1、Sector2、Sector3的大小都为512byte,一页Page0的大小为4Kb,则将Sector0、Sector1、Sector2、Sector3中的数据放入到Page0所指示的页中,按照这种方式依次将扇区链表中所有的内容放入到页链表中。
步骤23,按照一定的动态对应方式,确定出每一页所对应的NAND中的物理页;
其中每一页所对应的NAND中的物理页是指,页链表中的页为虚拟页,例如虚拟页Page0对应的NAND中的物理页Page0,对应的块为Block0;
步骤24,判断待写入数据的块是否为坏块,如果是执行步骤25,否则执行步骤26;例如当需要将Page256中的数据写入其对应的Block中之前(假如一个块中有256个页,以下解释均按此假设),先判断该对应的Block是否为坏块,如果是执行步骤25,否则执行步骤26;
步骤25,则在计算出的页地址的基础之上加一个块中页的数量,将待写入的数据写入下一块中;
具体的根据分区物理地址偏移及大小,还有待读写数据的块是否为坏块,如果待读写数据的块是坏块则在计算出的页地址的基础之上加一个块的页数量,从而计算出每个虚拟页所对应的物理页地址,例如正常情况下Page256所对应的块应为Blockn,如果Blockn是坏块则应将Page256的数据存入Blockn+1中,如图3所示;具体的过程为:
本步骤中在需要在page256的地址基础之上再加一个块长的大小,此时获得虚拟页Page256所对应的真实物理页的地址为Page512(加了一个块的大小),如果page512所在的块不是坏块,则将Page中的数据存入该Blockn+1中;
步骤26,将待写入的数据写入块中。即将Pagen中的数据写入其所对应的块中。
如果在完成步骤26后PageList中还存在待写入NAND块中的数据时,重复步骤23至步骤26,直到将所有数据都写入块中以后,中断唤醒处于阻塞状态的请求处理线程。此时对于NAND的一次读写操作完成。
如图4所示,本发明实施例提供一种在NAND中处理数据的装置,所述装置包括:
唤醒模块41,用于在接收到文件系统的读写请求后,唤醒等待的请求处理线程
映射模块42,用于将扇区链中的数据按照预先设置的方式映射到页链表的页中;
确定模块43,用于按照一定的动态对应方式,确定出每一页所对应的NAND的块;
写入模块44,用于将所述页链表中的数据依次写入NAND的块中后,中断唤醒处于阻塞状态的请求线程。
所述映射模块42具体用于:
将所述扇区链中的各个扇区所保存的数据按照预先设置的对应关系,存放到与扇区对应的页中。
所述确定模块43具体用于:
根据分区物理地址偏移及大小确定出页所对应的待写入数据的块地址;
判断该待读写入数据的块是否为坏块,如果是则在计算出的页地址的基础之上加一个块的页数量,从而重新计算出每个虚拟页所对应的物理页地址,并根据该物理页地址确定出新的待写入数据的NAND的块。
综上所述,有益效果:
本发明的设计思想就是设计一种一次处理连续多个页,即PageList中的数据量的设计方法,使数据处理不受页结构的限制,即不是每存储一页数据时就必须进行一次中断处理,使用本发明实施例提供的方法能成倍的增加数据的吞吐量,减少数据处理的阻塞时间,减少完成中断的产生,提高CPU的性能,同时也提高了NAND驱动的效率。
本发明提供的方法从文件系统接口为基点,将其拿到的以NAND逻辑扇区为数据请求单位的文件读写请求,,通过具体算法处理转化成以PageList为数据单位的数据请求,驱动层对PageList进行分析、处理。增加数据的吞吐量,减少数据处理的阻塞时间,减少NAND读写完成的中断产生,提高CPU的性能,同时也提高了NAND驱动的效率。
使用本发明实施例提供的方法需要首先将扇区链中的所有数据都存入页链表中,当需要对NAND进行读写操作时将页链表中的数据依次全部写入到NAND的对应块中,该方法只需在将页链表中的数据写入NAND的对应块中之后产生一次读写完成中断,然后再唤醒处于阻塞状态的请求处理线程,进行下一次的读写请求,可见该方法不需要产生多次中断因此可大大降低CPU的功耗,提高数据存储的效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种在NAND中处理数据的方法,其特征在于,所述方法包括:
在接收到文件系统的读写请求后唤醒请求处理线程;
将扇区链中的数据按照预先设置的方式映射到页链表的页中;
按照一定的动态对应方式,确定出每一页所对应的NAND的块;
将所述页链表中的数据依次写入NAND的块中后,唤醒处于中断状态的线程。
2.如权利要求1所述的方法,其特征在于,所述将扇区链中的数据按照预先设置的方式映射到页链表的页中包括:
将所述扇区链中的各个扇区所保存的数据按照预先设置的对应关系,存放到与扇区对应的虚拟页中。
3.如权利要求1所述的方法,其特征在于,所述按照一定的动态对应方式,确定出每一页所对应的NAND的块包括:
根据分区物理地址偏移及大小确定出页所对应的待写入数据的块地址;
判断该待读写入数据的块是否为坏块,如果是则在计算出的页地址的基础之上加一个块的页数量,从而重新计算出每个虚拟页所对应的物理页地址,并根据该物理页地址确定出新的待写入数据的NAND的块。
4.一种在NAND中处理数据的装置,其特征在于,所述装置包括:
唤醒模块,用于在接收到文件系统的读写请求后唤醒等待的请求线程;
映射模块,用于将扇区链中的数据按照预先设置的方式映射到页链表的页中;
确定模块,用于按照一定的动态对应方式,确定出每一页所对应的NAND的块;
写入模块,用于将所述页链表中的数据依次写入NAND的块中后,中断唤醒处于阻塞状态的请求线程。
5.如权利要求4所述的装置,其特征在于,所述映射模块具体用于:
将所述扇区链中的各个扇区所保存的数据按照预先设置的对应关系,存放到与扇区对应的页中。
6.如权利要求4所述的装置,其特征在于,所述确定模块具体用于:
根据分区物理地址偏移及大小确定出页所对应的待写入数据的块地址;
判断该待读写入数据的块是否为坏块,如果是则在计算出的页地址的基础之上加一个块的页数量,从而重新计算出每个虚拟页所对应的物理页地址,并根据该物理页地址确定出新的待写入数据的NAND的块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410406166.3A CN104199619A (zh) | 2014-08-18 | 2014-08-18 | 一种在nand中处理数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410406166.3A CN104199619A (zh) | 2014-08-18 | 2014-08-18 | 一种在nand中处理数据的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104199619A true CN104199619A (zh) | 2014-12-10 |
Family
ID=52084917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410406166.3A Pending CN104199619A (zh) | 2014-08-18 | 2014-08-18 | 一种在nand中处理数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104199619A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343800A (zh) * | 2018-09-30 | 2019-02-15 | 深圳市得微电子有限责任公司 | 存储设备管理方法、装置及可读存储介质 |
CN113311989A (zh) * | 2020-02-26 | 2021-08-27 | 北京君正集成电路股份有限公司 | 一种基于并行使用的双片nand flash坏块管理方法 |
CN113391755A (zh) * | 2020-02-26 | 2021-09-14 | 北京君正集成电路股份有限公司 | 一种并行双片nand flash中物理擦除块动态关联的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
CN101923448A (zh) * | 2010-02-08 | 2010-12-22 | 安凯(广州)微电子技术有限公司 | 一种nand闪存的转换层读写方法 |
US20140075104A1 (en) * | 2012-09-11 | 2014-03-13 | International Business Machines Corporation | Simulating non-volatile memory in virtual distributed switches |
-
2014
- 2014-08-18 CN CN201410406166.3A patent/CN104199619A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
CN101923448A (zh) * | 2010-02-08 | 2010-12-22 | 安凯(广州)微电子技术有限公司 | 一种nand闪存的转换层读写方法 |
US20140075104A1 (en) * | 2012-09-11 | 2014-03-13 | International Business Machines Corporation | Simulating non-volatile memory in virtual distributed switches |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343800A (zh) * | 2018-09-30 | 2019-02-15 | 深圳市得微电子有限责任公司 | 存储设备管理方法、装置及可读存储介质 |
CN109343800B (zh) * | 2018-09-30 | 2021-11-12 | 深圳市得一微电子有限责任公司 | 存储设备管理方法、装置及可读存储介质 |
CN113311989A (zh) * | 2020-02-26 | 2021-08-27 | 北京君正集成电路股份有限公司 | 一种基于并行使用的双片nand flash坏块管理方法 |
CN113391755A (zh) * | 2020-02-26 | 2021-09-14 | 北京君正集成电路股份有限公司 | 一种并行双片nand flash中物理擦除块动态关联的方法 |
CN113391755B (zh) * | 2020-02-26 | 2023-09-22 | 北京君正集成电路股份有限公司 | 一种并行双片nand flash中物理擦除块动态关联的方法 |
CN113311989B (zh) * | 2020-02-26 | 2023-09-22 | 北京君正集成电路股份有限公司 | 一种基于并行使用的双片nand flash坏块管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102096639B (zh) | 用于修剪在非易失性闪速介质上的数据的方法 | |
CN109800180A (zh) | 用于地址映射的方法和存储器系统 | |
CN104346290A (zh) | 存储装置、计算机系统及其操作方法 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
US9569381B2 (en) | Scheduler for memory | |
CN111240601B (zh) | 一种分区空间的超级块确定方法、装置、设备及存储介质 | |
KR20210089853A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
CN113625973B (zh) | 数据写入方法、装置、电子设备及计算机可读存储介质 | |
CN105393228A (zh) | 读写闪存中数据的方法、装置及用户设备 | |
CN100377086C (zh) | 嵌入式系统中直接从文件系统运行程序的实现方法 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
CN105278875A (zh) | 一种混合异构nand固态硬盘 | |
CN111897485A (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
CN115756312A (zh) | 数据访问系统、数据访问方法和存储介质 | |
CN115113799A (zh) | 主机命令的执行方法及装置 | |
CN104199619A (zh) | 一种在nand中处理数据的方法及装置 | |
US20140258247A1 (en) | Electronic apparatus for data access and data access method therefor | |
KR20220050407A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
US11630601B2 (en) | Memory and apparatus for performing access control with aid of multi-phase memory-mapped queue | |
US9727453B2 (en) | Multi-level table deltas | |
KR20220127076A (ko) | 컨트롤러 및 컨트롤러의 동작 방법 | |
CN102169464A (zh) | 一种用于非易失性存储器的缓存方法、装置及智能卡 | |
CN107924350A (zh) | 电子设备及其数据压缩方法 | |
CN103176813A (zh) | 于休眠机制的方法及其计算机系统 | |
US20200042459A1 (en) | Storage device providing a virtual memory region, electronic system including the same, and method of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141210 |
|
WD01 | Invention patent application deemed withdrawn after publication |