CN101452422A - 一种芯片的数据读写方法、相应装置和系统 - Google Patents

一种芯片的数据读写方法、相应装置和系统 Download PDF

Info

Publication number
CN101452422A
CN101452422A CNA2007101783988A CN200710178398A CN101452422A CN 101452422 A CN101452422 A CN 101452422A CN A2007101783988 A CNA2007101783988 A CN A2007101783988A CN 200710178398 A CN200710178398 A CN 200710178398A CN 101452422 A CN101452422 A CN 101452422A
Authority
CN
China
Prior art keywords
data
chip
node
binary tree
read
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
Application number
CNA2007101783988A
Other languages
English (en)
Other versions
CN101452422B (zh
Inventor
王舒翀
冯增华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datang Semiconductor Design Co Ltd
Original Assignee
Datang Mobile Communications Equipment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN2007101783988A priority Critical patent/CN101452422B/zh
Publication of CN101452422A publication Critical patent/CN101452422A/zh
Application granted granted Critical
Publication of CN101452422B publication Critical patent/CN101452422B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种芯片的数据读写方法、相应装置和系统,能够解决现有技术读写效率低和影响芯片使用寿命的问题。本发明提供的技术方案在执行读写操作时,以芯片中的一个资源块在块二叉树中对应的所有节点为操作单位,不仅能够提高读写效率,也能够减少对芯片的操作次数,从而能够提高芯片的使用寿命。同时,当要读取的数据部分在缓存中且部分在芯片中时,则分别读取,这样就无需先将缓存中的数据写入芯片,从而能够进一步提高数据的读取效率。

Description

一种芯片的数据读写方法、相应装置和系统
技术领域
本发明涉及计算机领域,尤其涉及芯片的数据读写技术。
背景技术
终端中有大量的数据需要在非易失闪存(NvRAM,Non-Volatile RandomAccess Memory)芯片中进行写入和读取,这些数据包括厂商进行自动生产测试的数据、终端出厂时的缺省配置数据、用户更改的配置数据、终端应用使用的数据等。
在终端运行过程中,会频繁的读写NvRAM芯片上的数据,而每次读写的数据量大小也有很大差异。目前终端上的NvRAM芯片基本上有NOR(NotOR,或非门)和NAND(Not AND,与非门)两类,对两类闪存芯片的数据写入操作之前都需要先进行擦除操作,此外,NOR类型的NvRAM芯片与NAND类型的NvRAM芯片相比,具有以下特点:
1、NOR类型的NvRAM芯片的数据读取速度比NAND类型的NvRAM芯片的数据读取速度稍快一些;
2、NOR类型的NvRAM芯片的数据写入速度比NAND类型的NvRAM芯片的数据写入速度慢很多;
3、NOR类型的NvRAM芯片5s的数据擦除速度比NAND类型的NvRAM芯片的4ms的数据擦除速度慢很多;
4、NOR类型的NvRAM芯片的擦除单元比NAND类型的NvRAM芯片的擦除单元更大,相应的擦除电路更复杂。
考虑到芯片容量、生产成本、电路设计、内存技术驱动程序等方面的因素,不同厂商会选择不同的闪存芯片。如果选择了NOR类型的闪存芯片,则需要考虑NOR类型NvRAM芯片的擦除或写入的时间较长的因素。
现有技术应用比较普遍的方案是将芯片的擦除和写入操作放在后台线程处理,即后台线程调度时,首先将要读取或写入的数据加入到缓存中的单向链表中。当写入数据时,需针对NOR类型NvRAM芯片的特点,先擦除数据预写入的资源块(Block)中存储的内容,再将缓存中的单向链表中的每个节点中的数据逐一写入芯片中。当读取数据时,首先在缓存中的单向链表中遍历查找,若缓存中的某个节点包含所需读取的数据,则从缓存中读取,否则,则将缓存中的数据写入芯片后,再从NvRAM芯片中进行读取。
上述现行方案中,主要存在以下缺点:
在写入数据时,因为NvRAM芯片的写入操作只能在空的或已擦除的Block中进行,所以每将缓存中的一个节点写入芯片前,都需要先擦除其所要写入的NvRAM芯片上的Block中的内容,然后再将数据写入到空的或已擦除的Block中。当缓存中的节点较多时,就需要擦除Block多次,例如:拷贝USIM卡上N条电话条目至终端上,首先将N个节点加入到缓存中的单向链表,后台线程调度时,每向NOR类型NvRAM芯片中写入一个节点都要擦除要写入数据的Block一次。由于NOR类型NvRAM芯片中的Block一般为64~128KB,执行一个写入或擦除操作的时间为5s,比较耗时。如果N=200,则整个拷贝时间约为16.7分钟,并且需要擦除Block200次。显然,这样不但非常耗时,写入效率低,而且对芯片擦除次数过多,会影响芯片的使用寿命。另外,如果数据的写入时间过长,缓存中的数据还没有全部写入到芯片中,如果在这个过程中系统出现异常或断电,就会造成缓存中的数据丢失。
在读取数据时,当需要读取的数据部分在缓存中,部分在NvRAM芯片中时,也即需要读取的数据的地址范围超出缓存中某个节点的地址范围,按照现行的方案,需要先将缓存中的数据写入到NvRAM芯片中,再从NvRAM芯片中读取需要的数据。例如:缓存中的节点A保存的数据的地址范围是0×00001000—0×00001100,需要读取数据的地址范围是0×00001050—0×00001150,要读取的数据不能全部从缓存中的节点A中读取到,则需要先将缓存中的节点A保存的数据写入NvRAM芯片中对应地址范围的Block中,相应地,就需要预先擦除对应地址范围的Block中的内容,在将缓存中的节点A保存的数据写入NvRAM芯片后,再从NvRAM芯片中读取需要的数据。可见,这样无形中增加了擦写芯片的时间,读取效率低。
总之,现有的数据读写方法运行效率低,并且影响芯片的使用寿命。
发明内容
本发明提供了一种芯片的数据读写方法、相应装置和系统,能够解决现有的数据读写方法运行效率低,并且影响芯片使用寿命的问题。
本发明实施例通过如下技术方案实现:
本发明实施例提供了一种芯片的数据写入方法,该数据写入方法包括:
从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定缓存中;以及,根据所述块二叉树的根节点及其左子树上的所有节点中存储的数据信息,从缓存中找到相应的数据;
利用从缓存中找到的相应数据将读取到指定缓存中的数据更新,并将更新后得到的数据写入到所述芯片中。
本发明实施例还提供了一种芯片的数据读取方法,该数据读取方法包括:
根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;
遍历块二叉树的每个节点中存储的数据信息,若所述多个数据块的数据信息全部能在块二叉树的节点中读取到,则从缓存中读取数据;若所述多个数据块的数据信息全部不能在块二叉树的节点中读取到,则从芯片中读取数据;若所述多个数据块的数据信息部分能在块二叉树的节点中读取到,则读取芯片中的数据,并根据能在块二叉树的节点中读取到的数据信息,从缓存中找到相应的数据,并利用从缓存中找到的相应数据将从芯片中读取到的数据更新。
本发明实施例还提供了一种芯片的数据写入装置,该数据写入装置包括:芯片数据读取单元、更新数据获取单元以及数据更新及写入单元;
其中,芯片数据读取单元,用于从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定缓存中;
更新数据获取单元,用于根据所述块二叉树的根节点及其左子树上的所有节点中存储的数据信息,从缓存中找到相应的数据;
数据更新及写入单元,用于利用从缓存中找到的相应数据将读取到指定缓存中的数据更新,并将更新后得到的数据写入到所述芯片中。
本发明实施例还提供了一种芯片的数据读取装置,该数据读取装置包括:数据切割单元、遍历单元、第一读取单元、第二读取单元以及第三读取单元;
其中,数据切割单元,用于根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;
遍历单元,用于遍历块二叉树的每个节点中存储的数据信息;
第一读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完全包含所述多个数据块的数据信息时,则从缓存中读取数据;
第二读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完全不包含所述多个数据块的数据信息时,则从芯片中读取数据;
第三读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点部分包含所述多个数据块的数据信息时,则读取芯片中的数据,并根据能在块二叉树的节点中读取到的数据信息,从缓存中找到相应的数据,并利用从缓存中找到的相应数据将从芯片中读取到的数据更新。
本发明实施例还提供了一种芯片的数据读写系统,该数据读写系统包括:数据写入装置和数据读取装置;
其中,数据写入装置,用于从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定缓存中;以及,根据所述块二叉树的根节点及其左子树上的所有节点中存储的数据信息,从缓存中找到相应的数据;利用从缓存中找到的相应数据将读取到指定缓存中的数据更新,并将更新后得到的数据写入到所述芯片中;
数据读取装置,用于根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;遍历块二叉树的每个节点中存储的数据信息,若所述多个数据块的数据信息全部能在块二叉树的节点中读取到,则从缓存中读取数据;若所述多个数据块的数据信息全部不能在块二叉树的节点中读取到,则从芯片中读取数据;若所述多个数据块的数据信息部分能在块二叉树的节点中读取到,则读取芯片中的数据,并根据能在块二叉树的节点中读取到的数据信息,从缓存中找到相应的数据,并利用从缓存中找到的相应数据将从芯片中读取到的数据更新。
通过上述技术方案,本发明实施例在执行读写操作时,以芯片中的一个Block在块二叉树中对应的所有节点为操作单位,不仅能够提高读写效率,而且也能够减少对芯片的操作次数,从而能够提高芯片的使用寿命。
附图说明
图1为本发明第一实施例的一种芯片的数据写入方法流程图;
图2为本发明实施例的Block二叉树结构示意图;
图3为本发明实施例缓存和芯片的数据存储关系示意图;
图4为本发明第一实施例的数据写入过程示意图;
图5为本发明第二实施例的一种芯片的数据读取方法流程图;
图6为本发明第三实施例的一种芯片的数据写入装置示意图;
图7为本发明第四实施例的一种芯片的数据读取装置示意图;
图8为本发明第五实施例的一种芯片的数据读写系统示意图。
具体实施方式
本发明实施例提供了一种芯片的数据读写方法、相应装置和系统,能够提高数据的读写效率和芯片的使用寿命,下面结合说明书附图和具体实施例对本发明技术方案进行详细阐述。
本发明第一实施例提供了一种芯片的数据写入方法,在执行第一实施例时,将缓存中的数据结构定义为块(Block)二叉树结构。
该Block二叉树结构如图2所示,包括以下特征:
1、Block二叉树的每个节点,用于存储信息,该信息包括:数据信息(即数据起始地址和数据长度)、并选择性地包括指向左子树的指针和/或指向右子树的指针;
2、Block二叉树的最大深度即为NvRAM芯片中的资源块(BIock)的数目,块二叉树的实际深度为当前缓存中数据对应于芯片中资源块的数目;
3、Block二叉树的根节点用于存储第一次写入缓存中数据的数据信息;
4、Block二叉树的任意一个节点及该节点的右子树上的节点分别对应非易失闪存芯片中的不同BIock,例如,根节点Block_1_node a与NvRAM芯片的Block1对应,根节点的右子树上的节点BIock_2_node a与Block2对应,依次类推,根节点右子树的右子树上的节点Block_3_node a与Block3对应......;
5、块二叉树的任意一个节点及该节点的左子树上的节点对应非易失闪存芯片中的同一个Block,例如,根节点Block_1_node a及其左子树上的所有节点(Block_1_node b、Block_1_node c......)都对应NvRAM芯片中的Block1;
6、每个节点只保存数据的数据信息(数据起始地址和数据长度),而不保存具体数据。
对于上述特征1,当用于存储信息的节点为根节点或右子树上的子节点时,则存储于该节点的信息包括:数据信息、并包括指向左子树的指针和/或指向右子树的指针;当用于存储信息的节点为左子树上的子节点时,则存储于该节点的信息包括:数据信息和指向左子树的指针。
对于上述特征4,对Block_1_node a、Block_2_node a、Block_3_nodea......的区分,仅用于区分NvRAM芯片中不同的Block,和芯片中的Block顺序无关。
对于上述特征5,对Block_1_node a、Block_1_node b、Block_1_nodec......的区分,仅用于区分向NvRAM芯片写入数据时的操作次序,和数据的存储次序无关。
对于上述特征6,具体数据保存在缓存中,如图3所示,缓存中包括:具体数据、用来存储Block二叉树的空间、以及用来存储从芯片中读取到的数据的指定缓存A,该指定缓存A为缓存中的一个空白区域。
Block二叉树中每个节点可以定义如下:
typedef struct_MAN_NVRAM_DATA_NODE_
{
void       *buf_ptr;    //缓存中数据的起始地址
UINT32        addr;     //缓存中数据在写入NvRAM芯片时所在的芯片中的起始地址
UINT32     length;    //缓存中的数据长度
struct  _MAN_NVRAM_DATA_NODE_  Ieft_ptr;/左子树,在同一个Block上/
struct  _MAN_NVRAM_DATA_NODE_  right_ptr;/右子树,在另一个Block上/
}MAN_NVRAM_DATA_NODE
第一实施例的具体实现过程,如图1所示,包括如下内容:
S101、根据NvRAM芯片中的各个资源块对应的地址范围,对输入数据的地址范围进行切割,得到对应不同地址范围的N个数据块,并将得到的对应不同地址范围的N个数据块的数据信息,存储到块二叉树中与各个资源块对应的节点上。
其中1<=N<=NvRAM芯片中Block数目。
例如:NvRAM芯片的地址范围为0×00000000—0×0007FFFF,芯片中总共有4个Block,每个Block的大小为128k,即Block1的地址范围是0×00000000—0×0001FFFF,Block2的地址范围是0×00020000—0×0003FFFF,Block3的地址范围是0×00040000—0×0005FFFF,Block4的地址范围是0×00060000—0×0007FFFF。第一次写入数据的地址范围是0×00010000—0×00020100,该地址范围在Block1和Block2的地址范围间,则将写入的数据分成2个数据块,数据块1对应Block1,其地址范围为0×00010000—0×0001FFFF,数据块2对应Block2,其地址范围为0×00020000—0×00020100,则将数据块1对应的数据信息存储到与Block1对应的块二叉树的根节点Block_1_node a中,将数据块2对应的数据信息存储到Block2对应的块二叉树的根节点的右子树上的子节点Block_2_node a中。之后若再有数据写入,也按照此方法进行分割,并将分割后得到的对应不同地址范围的数据块对应的数据信息,按照各个数据块对应的地址范围存储到对应的Block二叉树中,例如,第二次写入数据的地址范围依然是0×00010000—0×00020100,则按照上述方法对该写入的数据方法进行分割,得到地址范围为0×00010000—0×0001FFFF的数据块1,和地址范围为0×00020000—0×00020100的数据块2,将数据块1对应的数据信息存储到Block_1_nodeb中,将数据块2对应的数据信息存储到Block_2_node b中。
S102、将NvRAM芯片中与所述Block二叉树的根节点对应的Block中的数据读取到指定缓存中;以及根据根节点中存储的数据信息,从缓存中找到相应的数据,并利用找到的数据将读取到指定缓存中的数据更新,并将更新后得到的数据写入到NvRAM芯片中。
如图4所示,该步骤具体过程如下:
当后台线程调度时,首先将Block1上的数据全部读取到指定缓存A中,如图3所示,然后根据Block1对应的节点Block_1_node a,以及Block_1_node a的所有左子树上的节点Block_1_node b、Block_1_nodec......上存储的数据信息中记载的数据起始地址和数据长度,从缓存中找到具体数据,再利用找到的具体数据依次将读取到指定缓存A中的数据更新,也就是说,利用找到的具体数据,将读取到指定缓存A中与找到的具体数据的地址范围相同部分的数据替换掉,最后再将更新后的数据写入芯片。
S103、删除所述根节点及其所有左子树,更新Block二叉树,得到新的块二叉树及其根节点。
S104、判断整个Block二叉树中所有节点存储的数据信息对应的数据是否全部写入芯片中,若没有全部写入芯片中,则执行S102,若全部写入芯片中,则结束操作。
通过上述方法能够提高数据的写入效率,同样还是以拷贝USIM卡上N条电话条目至终端为例,NvRAM芯片有4个Block,每个Block的大小为128K,当N=200时,最优情况下,此200条电话本记录全部在同一个Block上,则拷贝时间将缩小为5s左右(因为写入/擦除一个Block的时间就为5s),与现有技术的方法相比效率提高了200倍;最坏情况下,也就是说此200条电话本记录分布在4个Block上,则拷贝时间也仅为20s,与现有技术的方法相比效率也提高了50倍。
本发明第二实施例提供了一种芯片的数据读取方法,在执行该实施例之前,将缓存中的数据结构存储为块(Block)二叉树结构。该过程与本发明第一实施例中的相关描述一致,此处不再详细描述。
本发明第二实施例的实现过程如图5所示,包括如下内容:
S201、根据NvRAM芯片中的各个资源块对应的地址范围,对需要读取的数据的地址范围进行切割,得到对应不同地址范围的N个数据块。
其中1<=N<=NvRAM芯片中Block数目。
依然以NvRAM芯片的地址范围为0×00000000—0×0007FFFF,总共有4个Block,每个Block的大小为128k为例进行说明,Block1的地址范围是0×00000000—0×0001FFFF,Block2的地址范围是0×00020000—0×0003FFFF,Block3的地址范围是0×00040000—0×0005FFFF,Block4的地址范围是0×00060000—0×0007FFFF。需要读取数据的地址范围是0×00010000—0×00020100,该地址范围在Block1和Block2的地址范围间,将需要读取的数据分成2个数据块,数据块1对应Block1,其地址范围为0×00010000—0×0001FFFF,数据块2对应Block2,其地址范围为0×00020000—0×00020100,则从与Block1对应的根节点Block_1_node a以及Block_1_node a的所有左子树上的节点中读取数据块1的数据信息,从与Block2对应的根节点的右子树上的节点Block_2_node a以及BIock_2_nodea的所有左子树上的节点中读取数据块2的数据信息。
S202、遍历块二叉树每个节点中存储的数据信息,判断N个数据块的数据信息是否能在块二叉树的节点中读取到,若N个数据块的数据信息全部能在块二叉树的节点中读取到,则执行S203;若N个数据块的数据信息全部不能在块二叉树的节点中读取到,则执行S204;若N个数据块的数据信息部分能在块二叉树的节点中读取到,则执行S205。
S203、从缓存中读取数据;
S204、从芯片中读取数据;
S205、读取芯片中的全部数据,根据能在块二叉树的节点中读取到的数据信息记载的数据起始地址和数据长度,从缓存中找到具体数据,并利用找到的具体数据将从芯片中读取到的数据更新,也就是说,利用找到的具体数据将从芯片中读取到的与找到的具体数据的地址范围相同部分的数据替换掉。
本发明第三实施例提供了一种芯片的数据写入装置,如图6所示,该数据写入装置包括:芯片数据读取单元、更新数据获取单元、数据更新及写入单元;该数据写入装置可以进一步包括:删除单元;该数据写入装置还可以进一步包括:数据切割单元和数据信息存储单元;该数据写入装置也可以进一步包括:块二叉树构造单元;
其中,芯片数据读取单元,用于从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定缓存中;
更新数据获取单元,用于根据所述块二叉树的根节点及其左子树上的所有节点中存储的数据信息,从缓存中找到相应的数据;
数据更新及写入单元,用于利用从缓存中找到的相应数据将读取到指定缓存中的数据更新,并将更新后得到的数据写入到所述芯片中。
该数据写入装置进一步包括的删除单元,用于当芯片数据读取单元和更新数据获取单元得到数据后,删除所述根节点及其左子树,得到新的块二叉树及其根节点。
该数据写入装置进一步包括的块二叉树构造单元,用于在缓存中构造块二叉树,并使构造的块二叉树满足条件:块二叉树的根节点,用于存储信息,该信息包括:数据信息,并包括指向左子树的指针和/或指向右子树的指针;块二叉树的子节点,用于存储信息,该信息包括:数据信息,并可选地包括指向左子树的指针和/或指向右子树的指针;块二叉树的最大深度为芯片中的资源块的数目,块二叉树的实际深度为当前缓存中数据对应于芯片中资源块的数目;块二叉树的任意一个节点及该节点的左子树上的节点对应芯片中的同一个资源块;块二叉树的任意一个节点及该节点的右子树上的节点分别对应芯片中的不同资源块。
该数据写入装置进一步包括的数据切割单元,用于根据芯片中的各个资源块对应的地址范围,对输入数据的地址范围进行切割,得到对应不同地址范围的多个数据块;该数据写入装置进一步包括的数据信息存储单元,用于将得到的对应不同地址范围的多个数据块的数据信息,存储到块二叉树中与各个资源块对应的节点上。
本发明第四实施例提供了一种芯片的数据读取装置,如图7所示,该数据读取装置包括:数据切割单元、遍历单元、第一读取单元、第二读取单元、第三读取单元。
在实施该装置之前,利用块二叉树构造单元将缓存中的数据结构存储为块二叉树结构,所述的块二叉树构造单元,用于在缓存中构造块二叉树,并使构造的块二叉树满足条件:块二叉树的根节点,用于存储信息,该信息包括:数据信息,并包括指向左子树的指针和/或指向右子树的指针;块二叉树的子节点,用于存储信息,该信息包括:数据信息,并可选地包括指向左子树的指针和/或指向右子树的指针;块二叉树的最大深度为芯片中的资源块的数目,块二叉树的实际深度为当前缓存中数据对应于芯片中资源块的数目;块二叉树的任意一个节点及该节点的左子树上的节点对应芯片中的同一个资源块;块二叉树的任意一个节点及该节点的右子树上的节点分别对应芯片中的不同资源块。
该数据读取装置中的数据切割单元,用于根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;
遍历单元,用于遍历块二叉树的每个节点中存储的数据信息;
第一读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完全包含所述多个数据块的数据信息时,则从缓存中读取数据;
第二读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完全不包含所述多个数据块的数据信息时,则从芯片中读取数据;
第三读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点部分包含所述多个数据块的数据信息时,则读取芯片中的数据,根据能在块二叉树的节点中读取到的数据信息,从缓存中找到相应的数据,并利用从缓存中找到的相应数据将从芯片中读取到的数据更新。
本发明第五实施例提供了一种芯片的数据读写系统,如图8所示,该数据读写系统包括:数据写入装置、数据读取装置;该数据读写系统还可以进一步包括:块二叉树构造装置;
其中,数据写入装置,用于从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定缓存中;以及,根据所述块二叉树的根节点及其左子树上的所有节点中存储的数据信息,从缓存中找到相应的数据;利用从缓存中找到的相应数据将读取到指定缓存中的数据更新,并将更新后得到的数据写入到所述芯片中;
该数据写入装置所包括的单元以及各个单元的功能,与第三实施例中所述的单元以及各个单元的功能相同,此处不再详细描述。
数据读取装置,用于根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;遍历块二叉树的每个节点中存储的数据信息,若所述多个数据块的数据信息全部能在块二叉树的节点中读取到,则从缓存中读取数据;若所述多个数据块的数据信息全部不能在块二叉树的节点中读取到,则从芯片中读取数据;若所述多个数据块的数据信息部分能在块二叉树的节点中读取到,则读取芯片中的数据,根据能在块二叉树的节点中读取到的数据信息,从缓存中找到相应的数据,并利用从缓存中找到的相应数据将从芯片中读取到的数据更新。
该数据读取装置所包括的单元以及各个单元的功能,与第四实施例中所述的单元以及各个单元的功能相同,此处不再详细描述。
该数据读写系统进一步包括的二叉树构造装置,用于在缓存中构造块二叉树,并使构造的块二叉树满足条件:块二叉树的根节点,用于存储信息,该信息包括:数据信息,并包括指向左子树的指针和/或指向右子树的指针;块二叉树的子节点,用于存储信息,该信息包括:数据信息,并可选地包括指向左子树的指针和/或指向右子树的指针;块二叉树的最大深度为芯片中的资源块的数目,块二叉树的实际深度为当前缓存中数据对应于芯片中资源块的数目;块二叉树的任意一个节点及该节点的左子树上的节点对应芯片中的同一个资源块;块二叉树的任意一个节点及该节点的右子树上的节点分别对应芯片中的不同资源块;
所述数据写入装置还用于,根据芯片中的各个资源块对应的地址范围,对输入数据的地址范围进行切割,得到对应不同地址范围的多个数据块,并将得到的对应不同地址范围的多个数据块的数据信息,存储到块二叉树中与各个资源块对应的节点上。
本发明实施例提供的技术方案,在执行读写操作时,以对应芯片中同一个资源块的块二叉树上的所有节点为操作单位,不仅能够提高读写效率,也能够减少对芯片的操作次数,从而能够提高芯片的使用寿命。
另外,当要读取的数据部分在缓存中且部分在芯片中时,采取分别读取的方案,即从芯片中读取数据,并利用块二叉树节点中存储的数据信息,从缓存中找到具体数据,利用找到的具体数据将从芯片中读取到的数据更新,这样就无需先将缓存中的数据写入芯片,进一步提高数据的读取效率。
另外,通过本发明技术方案缩短了数据的写入时间,如果数据的写入时间过长,缓存中的数据还没有全部写入NvRAM芯片,在这个过程中系统出现异常或断电问题,则缓存中还未完全写入芯片中的其他数据就会丢失,通过本发明提供的技术方案就能够避免缓存中数据丢失的问题。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (14)

1、一种芯片的数据写入方法,其特征在于,该数据写入方法包括:
从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定缓存中;以及,根据所述块二叉树的根节点及其左子树上的所有节点中存储的数据信息,从缓存中找到相应的数据;
利用从缓存中找到的相应数据将读取到指定缓存中的数据更新,并将更新后得到的数据写入到所述芯片中。
2、如权利要求1所述的数据写入方法,其特征在于,该数据写入方法还包括:
删除所述根节点及其左子树,得到新的块二叉树及其根节点。
3、如权利要求1所述的数据写入方法,其特征在于,该数据写入方法还包括:
根据芯片中的各个资源块对应的地址范围,对输入数据的地址范围进行切割,得到对应不同地址范围的多个数据块,并将得到的对应不同地址范围的多个数据块的数据信息,存储到块二叉树中与各个资源块对应的节点上。
4、如权利要求1、2或3所述的数据写入方法,其特征在于,所述数据信息包括:数据起始地址和数据长度。
5、如权利要求4所述的数据写入方法,其特征在于,该数据写入方法还包括:在缓存中构造块二叉树,所述块二叉树满足如下条件:
块二叉树的根节点,用于存储信息,所述信息包括:数据信息,并包括指向左子树的指针和/或指向右子树的指针;
块二叉树的子节点,用于存储信息,所述信息包括:数据信息,并可选地包括指向左子树的指针和/或指向右子树的指针;
块二叉树的最大深度为芯片中的资源块的数目,块二叉树的实际深度为当前缓存中数据对应于芯片中资源块的数目;
块二叉树的任意一个节点及所述节点的左子树上的节点对应芯片中的同一个资源块;
块二叉树的任意一个节点及所述节点的右子树上的节点分别对应芯片中的不同资源块。
6、一种芯片的数据读取方法,其特征在于,该数据读取方法包括:
根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;
遍历块二叉树的每个节点中存储的数据信息,若所述多个数据块的数据信息全部能在块二叉树的节点中读取到,则从缓存中读取数据;若所述多个数据块的数据信息全部不能在块二叉树的节点中读取到,则从芯片中读取数据;若所述多个数据块的数据信息部分能在块二叉树的节点中读取到,则读取芯片中的数据,并根据能在块二叉树的节点中读取到的数据信息,从缓存中找到相应的数据,并利用从缓存中找到的相应数据将从芯片中读取到的数据更新。
7、如权利要求6所述的数据读取方法,其特征在于,所述数据信息包括:数据起始地址和数据长度。
8、一种芯片的数据写入装置,其特征在于,该数据写入装置包括:
芯片数据读取单元,用于从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定缓存中;
更新数据获取单元,用于根据所述块二叉树的根节点及其左子树上的所有节点中存储的数据信息,从缓存中找到相应的数据;
数据更新及写入单元,用于利用从缓存中找到的相应数据将读取到指定缓存中的数据更新,并将更新后得到的数据写入到所述芯片中。
9、如权利要求8所述的数据写入装置,其特征在于,该数据写入装置还包括:
删除单元,用于当芯片数据读取单元和更新数据获取单元得到数据后,删除所述根节点及其左子树,得到新的块二叉树及其根节点。
10、如权利要求8所述的数据写入装置,其特征在于,该数据写入装置还包括:
数据切割单元,用于根据芯片中的各个资源块对应的地址范围,对输入数据的地址范围进行切割,得到对应不同地址范围的多个数据块;
数据信息存储单元,用于将得到的对应不同地址范围的多个数据块的数据信息,存储到块二叉树中与各个资源块对应的节点上。
11、如权利要求8所述的数据写入装置,其特征在于,该数据写入装置还包括:
块二叉树构造单元,用于在缓存中构造块二叉树,并使构造的块二叉树满足条件:块二叉树的根节点,用于存储信息,所述信息包括:数据信息,并包括指向左子树的指针和/或指向右子树的指针;块二叉树的子节点,用于存储信息,所述信息包括:数据信息,并可选地包括指向左子树的指针和/或指向右子树的指针;块二叉树的最大深度为芯片中的资源块的数目,块二叉树的实际深度为当前缓存中数据对应于芯片中资源块的数目;块二叉树的任意一个节点及所述节点的左子树上的节点对应芯片中的同一个资源块;块二叉树的任意一个节点及所述节点的右子树上的节点分别对应芯片中的不同资源块。
12、一种芯片的数据读取装置,其特征在于,该数据读取装置包括:
数据切割单元,用于根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;
遍历单元,用于遍历块二叉树的每个节点中存储的数据信息;
第一读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完全包含所述多个数据块的数据信息时,则从缓存中读取数据;
第二读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完全不包含所述多个数据块的数据信息时,则从芯片中读取数据;
第三读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点部分包含所述多个数据块的数据信息时,则读取芯片中的数据,并根据能在块二叉树的节点中读取到的数据信息,从缓存中找到相应的数据,并利用从缓存中找到的相应数据将从芯片中读取到的数据更新。
13、一种芯片的数据读写系统,其特征在于,该数据读写系统包括:
数据写入装置,用于从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定缓存中;以及,根据所述块二叉树的根节点及其左子树上的所有节点中存储的数据信息,从缓存中找到相应的数据;利用从缓存中找到的相应数据将读取到指定缓存中的数据更新,并将更新后得到的数据写入到所述芯片中;
数据读取装置,用于根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;遍历块二叉树的每个节点中存储的数据信息,若所述多个数据块的数据信息全部能在块二叉树的节点中读取到,则从缓存中读取数据;若所述多个数据块的数据信息全部不能在块二叉树的节点中读取到,则从芯片中读取数据;若所述多个数据块的数据信息部分能在块二叉树的节点中读取到,则读取芯片中的数据,并根据能在块二叉树的节点中读取到的数据信息,从缓存中找到相应的数据,并利用从缓存中找到的相应数据将从芯片中读取到的数据更新。
14、如权利要求13所述的数据读写系统,其特征在于,
该数据读写系统还包括:块二叉树构造装置,用于在缓存中构造块二叉树,并使构造的块二叉树满足条件:块二叉树的根节点,用于存储信息,所述信息包括:数据信息,并包括指向左子树的指针和/或指向右子树的指针;块二叉树的子节点,用于存储信息,所述信息包括:数据信息,并可选地包括指向左子树的指针和/或指向右子树的指针;块二叉树的最大深度为芯片中的资源块的数目,块二叉树的实际深度为当前缓存中数据对应于芯片中资源块的数目;块二叉树的任意一个节点及所述节点的左子树上的节点对应芯片中的同一个资源块;块二叉树的任意一个节点及所述节点的右子树上的节点分别对应芯片中的不同资源块;
所述数据写入装置,还用于根据芯片中的各个资源块对应的地址范围,对输入数据的地址范围进行切割,得到对应不同地址范围的多个数据块,并将得到的对应不同地址范围的多个数据块的数据信息,存储到块二叉树中与各个资源块对应的节点上。
CN2007101783988A 2007-11-29 2007-11-29 一种芯片的数据读写方法、相应装置和系统 Active CN101452422B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101783988A CN101452422B (zh) 2007-11-29 2007-11-29 一种芯片的数据读写方法、相应装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101783988A CN101452422B (zh) 2007-11-29 2007-11-29 一种芯片的数据读写方法、相应装置和系统

Publications (2)

Publication Number Publication Date
CN101452422A true CN101452422A (zh) 2009-06-10
CN101452422B CN101452422B (zh) 2011-03-30

Family

ID=40734664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101783988A Active CN101452422B (zh) 2007-11-29 2007-11-29 一种芯片的数据读写方法、相应装置和系统

Country Status (1)

Country Link
CN (1) CN101452422B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103660583A (zh) * 2012-09-11 2014-03-26 珠海天威技术开发有限公司 耗材芯片数据重写装置及其工作方法
CN105843775A (zh) * 2016-04-06 2016-08-10 中国科学院计算技术研究所 片上数据划分读写方法、系统及其装置
CN106649131A (zh) * 2016-12-29 2017-05-10 郑州云海信息技术有限公司 一种固态硬盘及其逻辑地址范围冲突监控方法、系统
CN106873917A (zh) * 2017-02-24 2017-06-20 深圳市中博睿存信息技术有限公司 一种基于磁盘的对象存储系统
CN106959969A (zh) * 2016-01-12 2017-07-18 恒生电子股份有限公司 一种数据处理方法及装置
CN108241654A (zh) * 2016-12-23 2018-07-03 航天星图科技(北京)有限公司 一种分布式系统中的数据读写方法
CN112527196A (zh) * 2020-12-07 2021-03-19 成都佰维存储科技有限公司 Cache读写方法、装置、计算机可读存储介质及电子设备
CN113407111A (zh) * 2020-03-17 2021-09-17 慧荣科技股份有限公司 闪存控制器、闪存控制器的方法及记忆装置
CN117056255A (zh) * 2023-10-12 2023-11-14 沐曦集成电路(上海)有限公司 一种原子操作装置、方法、设备及介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1238792C (zh) * 2002-12-18 2006-01-25 华为技术有限公司 一种数据库访问方法及实现该方法的客户机/服务器系统
CN100428226C (zh) * 2003-12-27 2008-10-22 海信集团有限公司 实现类内存数据库存取和检索的方法
CN100477658C (zh) * 2005-06-08 2009-04-08 武汉虹信通信技术有限责任公司 通信服务器并发处理大数据量的方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103660583B (zh) * 2012-09-11 2016-05-18 珠海天威技术开发有限公司 耗材芯片数据重写装置及其工作方法
CN103660583A (zh) * 2012-09-11 2014-03-26 珠海天威技术开发有限公司 耗材芯片数据重写装置及其工作方法
CN106959969B (zh) * 2016-01-12 2020-07-17 恒生电子股份有限公司 一种数据处理方法及装置
CN106959969A (zh) * 2016-01-12 2017-07-18 恒生电子股份有限公司 一种数据处理方法及装置
CN105843775A (zh) * 2016-04-06 2016-08-10 中国科学院计算技术研究所 片上数据划分读写方法、系统及其装置
WO2017173755A1 (zh) * 2016-04-06 2017-10-12 中国科学院计算技术研究所 片上数据划分读写方法、系统及其装置
US10496597B2 (en) 2016-04-06 2019-12-03 Institute Of Computing Technology, Chinese Academy Of Sciences On-chip data partitioning read-write method, system, and device
CN108241654A (zh) * 2016-12-23 2018-07-03 航天星图科技(北京)有限公司 一种分布式系统中的数据读写方法
CN106649131A (zh) * 2016-12-29 2017-05-10 郑州云海信息技术有限公司 一种固态硬盘及其逻辑地址范围冲突监控方法、系统
CN106649131B (zh) * 2016-12-29 2019-12-31 苏州浪潮智能科技有限公司 一种固态硬盘及其逻辑地址范围冲突监控方法、系统
CN106873917A (zh) * 2017-02-24 2017-06-20 深圳市中博睿存信息技术有限公司 一种基于磁盘的对象存储系统
CN113407111A (zh) * 2020-03-17 2021-09-17 慧荣科技股份有限公司 闪存控制器、闪存控制器的方法及记忆装置
CN113407111B (zh) * 2020-03-17 2024-03-29 慧荣科技股份有限公司 闪存控制器、闪存控制器的方法及记忆装置
CN112527196A (zh) * 2020-12-07 2021-03-19 成都佰维存储科技有限公司 Cache读写方法、装置、计算机可读存储介质及电子设备
CN112527196B (zh) * 2020-12-07 2023-02-14 成都佰维存储科技有限公司 Cache读写方法、装置、计算机可读存储介质及电子设备
CN117056255A (zh) * 2023-10-12 2023-11-14 沐曦集成电路(上海)有限公司 一种原子操作装置、方法、设备及介质
CN117056255B (zh) * 2023-10-12 2024-02-27 沐曦集成电路(上海)有限公司 一种原子操作装置、方法、设备及介质

Also Published As

Publication number Publication date
CN101452422B (zh) 2011-03-30

Similar Documents

Publication Publication Date Title
CN101452422B (zh) 一种芯片的数据读写方法、相应装置和系统
CN100424655C (zh) 快闪存储器管理方法
KR100843543B1 (ko) 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
CN101593157B (zh) 非线性闪存的坏块管理方法及装置
US8037112B2 (en) Efficient access of flash databases
CN103164490B (zh) 一种不固定长度数据的高效存储实现方法和装置
CN102508784B (zh) 视频监控设备中闪存卡的数据存储方法及其系统
CN102508788B (zh) Ssd及ssd垃圾回收方法和装置
CN102737715B (zh) 用于nor闪存的数据掉电保护方法
CN108431783B (zh) 访问请求处理方法、装置及计算机系统
CN100456264C (zh) 一种磁盘空间管理方法及系统
CN105740163A (zh) 一种Nand Flash坏块管理方法
CN101419571A (zh) 基于Hash算法的在NOR FLASH中存储配置参数的方法
CN103577574A (zh) 一种基于nand flash的高可靠线性文件系统
CN101241471A (zh) 快闪存储器系统及其垃圾收集方法
CN104461750A (zh) 一种NAND flash的访问方法和装置
CN108431784B (zh) 访问请求处理方法、装置及计算机系统
CN110134645B (zh) 文件系统存储管理方法、读取方法、管理装置和读取装置
CN103279366A (zh) 固态硬盘及掉电后基于固态硬盘快速开机的方法
CN114089915B (zh) 基于flash存储器的文件追加写操作方法及装置
CN103853669A (zh) 一种基于NOR Flash的存储管理方法
CN111241090A (zh) 存储系统中管理数据索引的方法和装置
CN102323907A (zh) 嵌入式arm处理器对nandflash数据存储和删除方法
CN107430546A (zh) 一种文件更新方法及存储设备
CN102650972A (zh) 数据存储方法、装置及系统

Legal Events

Date Code Title Description
ASS Succession or assignment of patent right

Owner name: LIANXIN SCIENCE CO., LTD.

Free format text: FORMER OWNER: DATANG MOBILE COMMUNICATION APPARATUS CO., LTD.

Effective date: 20090508

C06 Publication
C41 Transfer of patent application or patent right or utility model
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20090508

Address after: 4 building, 41 building, 333 Qinjiang Road, Shanghai, zip code: 200233

Applicant after: Lian core technology Co., Ltd.

Co-applicant after: Datang Mobile Communication Equipment Co., Ltd.

Co-applicant after: Datang Mobile Communication Equipment Co., Ltd., Shanghai

Address before: No. 29, Xueyuan Road, Beijing, Haidian District

Applicant before: Datang Mobile Communications Equipment Co

Co-applicant before: Datang Mobile Communication Equipment Co., Ltd., Shanghai

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Free format text: FORMER OWNER: DATANG MOBILE COMMUNICATION EQUIPMENT CO., LTD. DATANG MOBILE COMMUNICATION EQUIPMENTCO., LTD., SHANGHAI

Effective date: 20120217

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120217

Address after: 201206 Pudong New Area Mingyue Road, Shanghai, No. 1258

Patentee after: Leadcore Technology Co., Ltd.

Address before: 201206 Pudong New Area Mingyue Road, Shanghai, No. 1258

Co-patentee before: Datang Mobile Communication Equipment Co., Ltd.

Patentee before: Leadcore Technology Co., Ltd.

Co-patentee before: Datang Mobile Communication Equipment Co., Ltd., Shanghai

ASS Succession or assignment of patent right

Owner name: DATANG SEMICONDUCTOR DESIGN CO., LTD.

Free format text: FORMER OWNER: LEADCORE TECHNOLOGY CO., LTD.

Effective date: 20141029

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 201206 PUDONG NEW AREA, SHANGHAI TO: 100094 HAIDIAN, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20141029

Address after: 100094, No. 6 Yongjia North Road, Beijing, 5, 3, northwest side of Haidian District

Patentee after: Datang Semiconductor Design Co., Ltd.

Address before: 201206 Pudong New Area Mingyue Road, Shanghai, No. 1258

Patentee before: Leadcore Technology Co., Ltd.