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

文档序号:6613926阅读:231来源:国知局
专利名称:一种芯片的数据读写方法、相应装置和系统的制作方法
技术领域
本发明涉及计算机领域,尤其涉及芯片的数据读写技术。
背景技术
终端中有大量的数据需要在非易失闪存(NvRAM, Non-Volatile Random Access Memory)芯片中进行写入和读取,这些数据包括厂商进行自动生产测 试的数据、终端出厂时的缺省配置数据、用户更改的配置数据、终端应用使用 的数据等。
在终端运行过程中,会频繁的读写NvRAM芯片上的数据,而每次读写的 数据量大小也有很大差异。目前终端上的NvRAM芯片基本上有NOR (Not R,或非门)和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分钟,并且需要擦除Block 200次。显然,这样不但非常耗时, 写入效率低,而且对芯片擦除次数过多,会影响芯片的使用寿命。另外,如果 数据的写入时间过长,緩存中的数据还没有全部写入到芯片中,如果在这个过 程中系统出现异常或断电,就会造成緩存中的数据丢失。
在读取数据时,当需要读取的数据部分在緩存中,部分在NvRAM芯片中 时,也即需要读取的数据的地址范围超出緩存中某个节点的地址范围,按照现 行的方案,需要先将緩存中的数据写入到NvRAM芯片中,再从NvRAM芯片 中读取需要的数据。例如緩存中的节点A保存的数据的地址范围是 0x00001000—0x00001100 ,需要读取数据的地址范围是0x00001050—0x00001150,要读取的数据不能全部从緩存中的节点A中读取 到,则需要先将緩存中的节点A保存的数据写入NvRAM芯片中对应地址范围 的Block中,相应地,就需要预先擦除对应地址范围的Block中的内容,在将 緩存中的节点A保存的数据写入NvRAM芯片后,再从NvRAM芯片中读取需 要的数据。可见,这样无形中增加了擦写芯片的时间,读取效率低。 总之,现有的数据读写方法运行效率低,并且影响芯片的使用寿命。

发明内容
本发明提供了一种芯片的数据读写方法、相应装置和系统,能够解决现有 的数据读写方法运行效率低,并且影响芯片使用寿命的问题。 本发明实施例通过如下技术方案实现
本发明实施例4是供了一种芯片的数据写入方法,该凝:据写入方法包括 从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的 数据读取到指定緩存中;以及,根据所述块二叉树的根节点及其左子树上的所
有节点中存储的数据信息,从緩存中找到相应的数据;
利用从緩存中找到的相应数据将读取到指定緩存中的数据更新,并将更新 后得到的凄t据写入到所述芯片中。
本发明实施例还提供了 一种芯片的数据读取方法,该数据读取方法包括
根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进 行切割,得到对应不同地址范围的多个凝:据块;
遍历块二叉树的每个节点中存储的数据信息,若所述多个数据块的数据信 息全部能在块二叉树的节点中读取到,则从緩存中读取数据;若所述多个数据 块的数据信息全部不能在块二叉树的节点中读取到,则从芯片中读取数据;若 所述多个数据块的数据信息部分能在块二叉树的节点中读取到,则读取芯片中 的数据,并根据能在块二叉树的节点中读取到的数据信息,从緩存中找到相应 的数据,并利用从緩存中找到的相应数据将从芯片中读取到的数据更新。
9本发明实施例还提供了 一种芯片的数据写入装置,该数据写入装置包括 芯片数据读取单元、更新数据获取单元以及数据更新及写入单元;
其中,芯片数据读取单元,用于从芯片中找到与块二叉树的根节点对应的 资源块,并将该资源块中存储的数据读取到指定緩存中;
更新数据获取单元,用于根据所述块二叉树的根节点及其左子树上的所有 节点中存储的数据信息,从緩存中找到相应的数据;
数据更新及写入单元,用于利用从緩存中找到的相应数据将读取到指定緩 存中的数据更新,并将更新后得到的数据写入到所述芯片中。
本发明实施例还提供了 一种芯片的数据读取装置,该数据读取装置包括 数据切割单元、遍历单元、第一读取单元、第二读取单元以及第三读取单元;
其中,数据切割单元,用于根据芯片中的各个资源块对应的地址范围,对 需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;
遍历单元,用于遍历块二叉树的每个节点中存储的数据信息;
第 一读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完
全包含所述多个数据块的数据信息时,则从緩存中读取数据;
第二读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完 全不包含所述多个数据块的数据信息时,则从芯片中读取数据;
第三读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点部 分包含所述多个数据块的数据信息时,则读取芯片中的数据,并根据能在块二 叉树的节点中读取到的数据信息,从緩存中找到相应的数据,并利用从緩存中 找到的相应数据将从芯片中读取到的数据更新。
本发明实施例还提供了 一种芯片的数据读写系统,该数据读写系统包括 数据写入装置和数据读取装置;
其中,数据写入装置,用于从芯片中找到与块二叉树的根节点对应的资源
块,并将该资源块中存储的数据读取到指定緩存中;以及,根据所述块二叉树 的根节点及其左子树上的所有节点中存储的数据信息,从緩存中找到相应的数据;利用从緩存中找到的相应数据将读取到指定緩存中的数据更新,并将更新 后得到的数据写入到所述芯片中;
数据读取装置,用于根据芯片中的各个资源块对应的地址范围,对需要读 取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;遍历块二 叉树的每个节点中存储的数据信息,若所述多个数据块的数据信息全部能在块 二叉树的节点中读^i到,则从緩存中读取数据;若所述多个数据块的数据信息 全部不能在块二叉树的节点中读取到,则从芯片中读取数据;若所述多个数据 块的数据信息部分能在块二叉树的节点中读取到,则读取芯片中的数据,并根 据能在块二叉树的节点中读取到的数据信息,从緩存中找到相应的数据,并利 用从緩存中找到的相应数据将从芯片中读取到的数据更新。
通过上述技术方案,本发明实施例在执行读写操作时,以芯片中的一个 Block在块二叉树中对应的所有节点为操作单位,不仅能够提高读写效率,而 且也能够减少对芯片的操作次数,从而能够提高芯片的使用寿命。


图1为本发明第一实施例的一种芯片的数据写入方法流程图2为本发明实施例的Block 二叉树结构示意图3为本发明实施例緩存和芯片的数据存储关系示意图4为本发明第一实施例的数据写入过程示意图5为本发明第二实施例的一种芯片的数据读取方法流程图6为本发明第三实施例的一种芯片的凄t据写入装置示意图7为本发明第四实施例的 一种芯片的数据读取装置示意图8为本发明第五实施例的 一 种芯片的凄史据读写系统示意图。
具体实施例方式
本发明实施例提供了一种芯片的数据读写方法、相应装置和系统,能够提
ii高数据的读写效率和芯片的使用寿命,下面结合说明书附图和具体实施例对本 发明技术方案进行详细阐述。
本发明第 一 实施例提供了 一种芯片的数据写入方法,在执行第 一 实施例
时,将緩存中的数据结构定义为块(Block) 二叉树结构。 该Block 二叉树结构如图2所示,包括以下特征
1、 Block二叉树的每个节点,用于存储信息,该信息包括数据信息(即 数据起始地址和数据长度)、并选择性地包括指向左子树的指针和/或指向右子 树的指针;
2、 Block 二叉树的最大深度即为NvRAM芯片中的资源块(Block)的数 目,块二叉树的实际深度为当前緩存中数据对应于芯片中资源块的数目;
3、 Block二叉树的根节点用于存储第一次写入緩存中数据的数据信息;
4、 Block二叉树的任意一个节点及该节点的右子树上的节点分别对应非易 失闪存芯片中的不同Block,例如,根节点Block—1_node a与NvRAM芯片的 Block 1对应,根节点的右子树上的节点Block_2—node a与Block 2对应,依 次类推,根节点右子树的右子树上的节点Block—3—node a与Block 3对 应……;
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—node a......的区分,仅用于区分NvRAM芯片中不同的Block,和芯片中的Block顺
序无关。
对于上述特征5,对Block—1—node a、 Block一1—node b、 Block—1—node c......的区分,仅用于区分向NvRAM芯片写入数据时的操作次序,和数据的
存储次序无关。
对于上述特征6,具体数据保存在緩存中,如图3所示,緩存中包括具 体数据、用来存储Block 二叉树的空间、以及用来存储从芯片中读取到的数据 的指定緩存A,该指定緩存A为緩存中的一个空白区域。
Block 二叉树中每个节点可以定义如下
typedef struct —MAN—NVRAM_DATA—NODE—
kbuf—ptr;〃緩存中数据的起始地址 addr; 〃緩存中数据在写入NvRAM芯片时所在的芯片
void
UINT32 中的起始地址
UINT32
struct 个Block上*/
struct
length;〃緩存中的数据长度 .MAN—NVRAM—DATA_NODE— *left—ptr; /*左子树,在同一
_MAN—NVRAM—DATA—NODE— 、ight—ptr;"右子树,在另一
个Block上*/
}MAN—NVRAM—DATA—NODE
第一实施例的具体实现过程,如图1所示,包括如下内容 S101、根据NvRAM芯片中的各个资源块对应的地址范围,对输入数据的 地址范围进行切割,得到对应不同地址范围的N个数据块,并将得到的对应不 同地址范围的N个数据块的数据信息,存储到块二叉树中与各个资源块对应的 节点上。其中1<= N <=NvRAM芯片中Block数目。
例如NVRAM芯片的地址范围为0x00000000—Ox0007FFFF,芯片中总 共有4个Block,每个Block的大小为128k,即Block 1的地址范围是 0x00000000—0x0001 FFFF , Block 2 的地址范围是 0x00020000—0x0003FFFF , Block 3 的地址范围是 0x00040000—0x0005FFFF , Block 4 的地址范围是 0x00060000—0x0007FFFF 。 第 一 次写入数据的地址范围是 0x00010000—0x00020100,该地址范围在Block1和Block2的地址范围间, 则将写入的数据分成2个数据块,数据块1对应Block 1,其地址范围为 0x00010000—0x0001 FFFF ,数据块2对应Block 2,其地址范围为 0x00020000—0x00020100,则将数据块1对应的数据信息存储到与Block1 对应的块二叉树的根节点Block—1一node a中,将数据块2对应的数据信息存 储到Block2对应的块二叉树的根节点的右子树上的子节点Block_2_node a 中。之后若再有数据写入,也按照此方法进行分割,并将分割后得到的对应不 同地址范围的数据块对应的数据信息,按照各个数据块对应的地址范围存储到 对应的Block 二叉树中,例如,第二次写入数据的地址范围依然是 0x00010000—0x00020100,则按照上述方法对该写入的数据方法进行分割, 得到地址范围为0x00010000—0x0001 FFFF的数据块1,和地址范围为 0x00020000—0x00020100的数据块2,将数据块1对应的数据信息存储到 Block—1_node b中,将数据块2对应的数据信息存储到Block—2—node b中。
S102、将NvRAM芯片中与所述Block二叉树的根节点对应的Block中的 数据读取到指定緩存中;以及根据根节点中存储的数据信息,从緩存中找到相 应的数据,并利用找到的数据将读取到指定緩存中的数据更新,并将更新后得 到的数据写入到NvRAM芯片中。
如图4所示,该步骤具体过程如下
当后台线程调度时,首先将Block 1上的数据全部读取到指定緩存A中,如图3所示,然后根据Block 1对应的节点Block—1—node a,以及 Block—1—node a的所有左子树上的节点Block—1—node b、 Block—1—node c......上存储的数据信息中记载的数据起始地址和数据长度,从緩存中找到具
体数据,再利用找到的具体数据依次将读取到指定緩存A中的数据更新,也就 是说,利用找到的具体数据,将读取到指定緩存A中与找到的具体数据的地址 范围相同部分的数据替换掉,最后再将更新后的数据写入芯片。
5103、 删除所述根节点及其所有左子树,更新Block 二叉树,得到新的块 二叉树及其根节点。
5104、 判断整个Block 二叉树中所有节点存储的数据信息对应的数据是否 全部写入芯片中,若没有全部写入芯片中,则执行S102,若全部写入芯片中, 则结束操作。
通过上述方法能够提高数据的写入效率,同样还是以拷贝USIM卡上N条 电话条目至终端为例,NvRAM芯片有4个Block,每个Block的大小为128K, 当N-200时,最优情况下,此200条电话本记录全部在同一个Block上,则 拷贝时间将缩小为5s左右(因为写入A察除一个Block的时间就为5s),与现 有技术的方法相比效率提高了 200倍;最坏情况下,也就是说此200条电话 本记录分布在4个Block上,则拷贝时间也仅为20s,与现有技术的方法相比 效率也提高了 50倍。
本发明第二实施例提供了 一种芯片的数据读取方法,在执行该实施例之 前,将緩存中的数据结构存储为块(Block) 二叉树结构。该过程与本发明第 一实施例中的相关描述一致,此处不再详细描述。
本发明第二实施例的实现过程如图5所示,包括如下内容
S201、根据NvRAM芯片中的各个资源块对应的地址范围,对需要读取的 数据的地址范围进行切割,得到对应不同地址范围的N个数据块。
其中1<= n <=NvRAM芯片中Block数目。
依然以NvRAM芯片的地址范围为0x00000000—0x0007FFFF,总共有4
15个Block,每个Block的大小为128k为例进行说明,Block 1的地址范围是 0x00000000—0x0001FFFF , Block 2 的地址范围是 0x00020000—0x0003FFFF , Block 3 的地址范围是 0x00040000—0x0005FFFF , Block 4 的地址范围是 0x00060000—0x0007FFFF 。 需要读取数据的地址范围是 0x00010000—0x00020100,该地址范围在Block 1和Block 2的地址范围间, 将需要读取的数据分成2个数据块,数据块1对应Block1,其地址范围为 0x00010000—0x0001FFFF,数据块2对应Block 2,其地址范围为 0x00020000—0x00020100,则从与Block1对应的根节点Block_1—node a以 及Block_1—node a的所有左子树上的节点中读取数据块1的数据信息,从与 Block2对应的根节点的右子树上的节点Block—2—node a以及Block—2_node a的所有左子树上的节点中读取数据块2的数据信息。
5202、 遍历块二叉树每个节点中存储的数据信息,判断N个数据块的数 据信息是否能在块二叉树的节点中读取到,若N个数据块的数据信息全部能在 块二叉树的节点中读取到,则执行S203;若N个数据块的数据信息全部不能 在块二叉树的节点中读取到,则执行S204;若N个数据块的数据信息部分能 在块二叉树的节点中读取到,则执行S205。
5203、 从緩存中读取数据;
5204、 从芯片中读取数据;
5205、 读取芯片中的全部数据,根据能在块二叉树的节点中读取到的数 据信息记载的数据起始地址和数据长度,从緩存中找到具体数据,并利用找到 的具体数据将从芯片中读取到的数据更新,也就是说,利用找到的具体数据将 从芯片中读取到的与找到的具体数据的地址范围相同部分的数据替换掉。
本发明第三实施例提供了一种芯片的数据写入装置,如图6所示,该数据 写入装置包括芯片数据读取单元、更新数据获取单元、数据更新及写入单元; 该数括数据切割单元和^t据信息存储单元;该数据写入装置也可以进一步包括 块二叉树构造单元;
其中,芯片数据读取单元,用于从芯片中找到与块二叉树的根节点对应的 资源块,并将该资源块中存储的数据读取到指定緩存中;
更新数据获取单元,用于根据所述块二叉树的根节点及其左子树上的所有 节点中存储的数据信息,从緩存中找到相应的数据;
数据更新及写入单元,用于利用从緩存中找到的相应数据将读取到指定緩 存中的数据更新,并将更新后得到的数据写入到所述芯片中。
该数据写入装置进一步包括的删除单元,用于当芯片数据读取单元和更新 数据获取单元得到数据后,删除所述根节点及其左子树,得到新的块二叉树及 其根节点。
该数据写入装置进一步包括的块二叉树构造单元,用于在緩存中构造块二 叉树,并使构造的块二叉树满足条件块二叉树的根节点,用于存储信息,该 信息包括数据信息,并包括指向左子树的指针和/或指向右子树的指针;块二 叉树的子节点,用于存储信息,该信息包括数据信息,并可选地包括指向左 子树的指针和/或指向右子树的指针;块二叉树的最大深度为芯片中的资源块的 数目,块二叉树的实际深度为当前緩存中数据对应于芯片中资源块的数目;块 二叉树的任意一个节点及该节点的左子树上的节点对应芯片中的同一个资源 块;块二叉树的任意一个节点及该节点的右子树上的节点分别对应芯片中的不 同资源块。
该数据写入装置进一步包括的数据切割单元,用于才艮据芯片中的各个资源 块对应的地址范围,对输入数据的地址范围进行切割,得到对应不同地址范围 的多个数据块;该数据写入装置进一步包括的数据信息存储单元,用于将得到 的对应不同地址范围的多个数据块的数据信息,存储到块二叉树中与各个资源 块对应的节点上。
本发明第四实施例提供了一种芯片的数据读取装置,如图7所示,该数据读取装置包括数据切割单元、遍历单元、第一读取单元、第二读取单元、第 三读取单元。
在实施该装置之前,利用块二叉树构造单元将緩存中的数据结构存储为块 二叉树结构,所述的块二叉树构造单元,用于在緩存中构造块二叉树,并使构 造的块二叉树满足条件块二叉树的根节点,用于存储信息,该信息包括数 据信息,并包括指向左子树的指针和/或指向右子树的指针;块二叉树的子节点, 用于存储信息,该信息包括数据信息,并可选地包括指向左子树的指针和/ 或指向右子树的指针;块二叉树的最大深度为芯片中的资源块的数目,块二叉 树的实际深度为当前緩存中数据对应于芯片中资源块的数目;块二叉树的任意 一个节点及该节点的左子树上的节点对应芯片中的同一个资源块;块二叉树的 任意 一个节点及该节点的右子树上的节点分别对应芯片中的不同资源块。
该数据读取装置中的数据切割单元,用于根据芯片中的各个资源块对应的 地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多 个数据块;
遍历单元,用于遍历块二叉树的每个节点中存储的数据信息;
第 一读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完
全包含所述多个数据块的数据信息时,则从緩存中读取数据;
第二读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完
全不包含所述多个数据块的数据信息时,则从芯片中读取数据;
第三读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点部
分包含所述多个数据块的数据信息时,则读取芯片中的数据,根据能在块二叉
树的节点中读取到的数据信息,从緩存中找到相应的邀:据,并利用从緩存中找
到的相应数据将从芯片中读取到的数据更新。
本发明第五实施例提供了一种芯片的数据读写系统,如图8所示,该数据
读写系统包括数据写入装置、数据读取装置;该数据读写系统还可以进一步
包括块二叉树构造装置;其中,数据写入装置,用于从芯片中找到与块二叉树的根节点对应的资源
块,并将该资源块中存储的数据读取到指定緩存中;以及,根据所述块二叉树 的根节点及其左子树上的所有节点中存储的数据信息,从緩存中找到相应的数 据;利用从緩存中找到的相应数据将读取到指定緩存中的数据更新,并将更新 后得到的数据写入到所述芯片中;
该数据写入装置所包括的单元以及各个单元的功能,与第三实施例中所述 的单元以及各个单元的功能相同,此处不再详细描述。
数据读取装置,用于根据芯片中的各个资源块对应的地址范围,对需要读 取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;遍历块二 叉树的每个节点中存储的数据信息,若所述多个数据块的数据信息全部能在块 二叉树的节点中读取到,则从緩存中读取数据;若所述多个数据块的数据信息 全部不能在块二叉树的节点中读取到,则从芯片中读取数据;若所述多个数据 块的数据信息部分能在块二叉树的节点中读取到,则读取芯片中的数据,根据 能在块二叉树的节点中读取到的数据信息,从緩存中找到相应的数据,并利用 从緩存中找到的相应数据将从芯片中读取到的数据更新。
该数据读取装置所包括的单元以及各个单元的功能,与第四实施例中所述 的单元以及各个单元的功能相同,此处不再详细描述。
该数据读写系统进一步包括的二叉树构造装置,用于在緩存中构造块二叉 树,并使构造的块二叉树满足条件块二叉树的根节点,用于存储信息,该信 息包括数据信息,并包括指向左子树的指针和/或指向右子树的指针;块二叉 树的子节点,用于存储信息,该信息包括数据信息,并可选地包括指向左子 树的指针和/或指向右子树的指针;块二叉树的最大深度为芯片中的资源块的数 目,块二叉树的实际深度为当前緩存中数据对应于芯片中资源块的数目;块二 叉树的任意一个节点及该节点的左子树上的节点对应芯片中的同一个资源块; 块二叉树的任意一个节点及该节点的右子树上的节点分别对应芯片中的不同 资源块;所述数据写入装置还用于,根据芯片中的各个资源块对应的地址范围,对 输入数据的地址范围进行切割,得到对应不同地址范围的多个数据块,并将得 到的对应不同地址范围的多个数据块的数据信息,存储到块二叉树中与各个资 源块对应的节点上。
本发明实施例提供的技术方案,在执行读写操作时,以对应芯片中同一个 资源块的块二叉树上的所有节点为操作单位,不仅能够提高读写效率,也能够 减少对芯片的操作次数,从而能够提高芯片的使用寿命。
另外,当要读取的数据部分在緩存中且部分在芯片中时,采取分别读取的
方案,即从芯片中读取数据,并利用块二叉树节点中存储的数据信息,从緩存 中找到具体数据,利用找到的具体数据将从芯片中读取到的数据更新,这样就 无需先将緩存中的数据写入芯片,进一步提高数据的读取效率。
另外,通过本发明技术方案缩短了数据的写入时间,如果数据的写入时间
过长,緩存中的数据还没有全部写入NvRAM芯片,在这个过程中系统出现异 常或断电问题,则緩存中还未完全写入芯片中的其他数据就会丢失,通过本发 明提供的技术方案就能够避免緩存中数据丟失的问题。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种芯片的数据写入方法,其特征在于,该数据写入方法包括从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定缓存中;以及,根据所述块二叉树的根节点及其左子树上的所有节点中存储的数据信息,从缓存中找到相应的数据;利用从缓存中找到的相应数据将读取到指定缓存中的数据更新,并将更新后得到的数据写入到所述芯片中。
2、 如权利要求1所述的数据写入方法,其特征在于,该数据写入方法还 包括删除所述根节点及其左子树,得到新的块二叉树及其一艮节点。
3、 如权利要求1所述的数据写入方法,其特征在于,该数据写入方法还 包括根据芯片中的各个资源块对应的地址范围,对输入数据的地址范围进行切 割,得到对应不同地址范围的多个数据块,并将得到的对应不同地址范围的多 个数据块的数据信息,存储到块二叉树中与各个资源块对应的节点上。
4、 如权利要求1、 2或3所述的数据写入方法,其特征在于,所述数据信 息包括数据起始地址和数据长度。
5、 如权利要求4所述的数据写入方法,其特征在于,该数据写入方法还 包括在緩存中构造块二叉树,所述块二叉树满足如下条件块二叉树的根节点,用于存储信息,所述信息包括数据信息,并包括指 向左子树的指针和/或指向右子树的指针;块二叉树的子节点,用于存储信息,所述信息包括数据信息,并可选地 包括指向左子树的指针和/或指向右子树的指针;块二叉树的最大深度为芯片中的资源块的数目,块二叉树的实际深度为当 前緩存中数据对应于芯片中资源块的数目;块二叉树的任意一个节点及所述节点的左子树上的节点对应芯片中的同一个资源块;块二叉树的任意一个节点及所述节点的右子树上的节点分別对应芯片中 的不同资源块。
6、 一种芯片的数据读取方法,其特征在于,该数据读取方法包括 根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;遍历块二叉树的每个节点中存储的数据信息,若所述多个数据块的数据信 息全部能在块二叉树的节点中读取到,则从緩存中读取数据;若所述多个数据 块的数据信息全部不能在块二叉树的节点中读取到,则从芯片中读取数据;若 所述多个数据块的数据信息部分能在块二叉树的节点中读取到,则读取芯片中 的数据,并根据能在块二叉树的节点中读取到的数据信息,从緩存中找到相应 的数据,并利用从緩存中找到的相应数据将从芯片中读取到的数据更新。
7、 如权利要求6所述的数据读取方法,其特征在于,所述数据信息包括 数据起始地址和数据长度。
8、 一种芯片的数据写入装置,其特征在于,该数据写入装置包括 芯片数据读取单元,用于从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定緩存中;更新数据获取单元,用于根据所述块二叉树的根节点及其左子树上的所有 节点中存储的数据信息,从緩存中找到相应的数据;数据更新及写入单元,用于利用从緩存中找到的相应数据将读取到指定緩 存中的数据更新,并将更新后得到的数据写入到所述芯片中。
9、 如权利要求8所述的数据写入装置,其特征在于,该数据写入装置还 包括删除单元,用于当芯片数据读取单元和更新数据获取单元得到数据后,删 除所述根节点及其左子树,得到新的块二叉树及其根节点。
10、 如权利要求8所述的数据写入装置,其特征在于,该数据写入装置还包括数据切割单元,用于根据芯片中的各个资源块对应的地址范围,对输入数 据的地址范围进行切割,得到对应不同地址范围的多个数据块;数据信息存储单元,用于将得到的对应不同地址范围的多个数据块的数据 信息,存储到块二叉树中与各个资源块对应的节点上。
11、 如权利要求8所述的数据写入装置,其特征在于,该数据写入装置还 包括块二叉树构造单元,用于在緩存中构造块二叉树,并使构造的块二叉树满 足条件块二叉树的根节点,用于存储信息,所述信息包括数据信息,并包 括指向左子树的指针和/或指向右子树的指针;块二叉树的子节点,用于存储信 息,所述信息包括数据信息,并可选地包括指向左子树的指针和/或指向右子 树的指针;块二叉树的最大深度为芯片中的资源块的数目,块二叉树的实际深 度为当前緩存中数据对应于芯片中资源块的数目;块二叉树的任意一个节点及 所述节点的左子树上的节点对应芯片中的同一个资源块;块二叉树的任意一个 节点及所述节点的右子树上的节点分别对应芯片中的不同资源块。
12、 一种芯片的凄t据读取装置,其特征在于,该数据读取装置包括 数据切割单元,用于根据芯片中的各个资源块对应的地址范围,对需要读取数据的地址范围进行切割,得到对应不同地址范围的多个数据块; 遍历单元,用于遍历块二叉树的每个节点中存储的数据信息; 第 一读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完全包含所述多个数据块的数据信息时,则从緩存中读取数据;第二读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点完全不包含所述多个数据块的数据信息时,则从芯片中读取数据;第三读取单元,用于当所述遍历单元遍历的结果为所述块二叉树的节点部分包含所述多个数据块的数据信息时,则读取芯片中的数据,并根据能在块二叉树的节点中读取到的数据信息,从緩存中找到相应的数据,并利用从緩存中找到的相应数据将从芯片中读取到的数据更新。
13、 一种芯片的数据读写系统,其特征在于,该凝:据读写系统包括 数据写入装置,用于从芯片中找到与块二叉树的根节点对应的资源块,并将该资源块中存储的数据读取到指定緩存中;以及,根据所述块二叉树的根节 点及其左子树上的所有节点中存储的数据信息,从緩存中找到相应的数据;利 用从緩存中找到的相应数据将读取到指定緩存中的数据更新,并将更新后得到 的数据写入到所述芯片中;数据读取装置,用于根据芯片中的各个资源块对应的地址范围,对需要读 取数据的地址范围进行切割,得到对应不同地址范围的多个数据块;遍历块二 叉树的每个节点中存储的数据信息,若所述多个数据块的数据信息全部能在块 二叉树的节点中读取到,则从緩存中读取数据;若所述多个数据块的数据信息 全部不能在块二叉树的节点中读取到,则从芯片中读取数据;若所述多个数据 块的数据信息部分能在块二叉树的节点中读取到,则读取芯片中的数据,并根 据能在块二叉树的节点中读取到的数据信息,从緩存中找到相应的数据,并利 用从緩存中找到的相应数据将从芯片中读取到的数据更新。
14、 如权利要求13所述的数据读写系统,其特征在于, 该数据读写系统还包括块二叉树构造装置,用于在緩存中构造块二叉树,并使构造的块二叉树满足条件块二叉树的根节点,用于存储信息,所述信息 包括数据信息,并包括指向左子树的指针和/或指向右子树的指针;块二叉树 的子节点,用于存储信息,所述信息包括数据信息,并可选地包括指向左子 树的指针和/或指向右子树的指针;块二叉树的最大深度为芯片中的资源块的数 目,块二叉树的实际深度为当前緩存中数据对应于芯片中资源块的数目;块二 叉树的任意一个节点及所述节点的左子树上的节点对应芯片中的同一个资源 块;块二叉树的任意一个节点及所述节点的右子树上的节点分别对应芯片中的 不同资源块;所述数据写入装置,还用于根据芯片中的各个资源块对应的地址范围,对输入数据的地址范围进行切割,得到对应不同地址范围的多个数据块,并将得 到的对应不同地址范围的多个数据块的数据信息,存储到块二叉树中与各个资 源块对应的节点上。
全文摘要
本发明公开了一种芯片的数据读写方法、相应装置和系统,能够解决现有技术读写效率低和影响芯片使用寿命的问题。本发明提供的技术方案在执行读写操作时,以芯片中的一个资源块在块二叉树中对应的所有节点为操作单位,不仅能够提高读写效率,也能够减少对芯片的操作次数,从而能够提高芯片的使用寿命。同时,当要读取的数据部分在缓存中且部分在芯片中时,则分别读取,这样就无需先将缓存中的数据写入芯片,从而能够进一步提高数据的读取效率。
文档编号G06F12/08GK101452422SQ200710178398
公开日2009年6月10日 申请日期2007年11月29日 优先权日2007年11月29日
发明者冯增华, 王舒翀 申请人:大唐移动通信设备有限公司;上海大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1