CN102855194B - 数据存储方法和存储器 - Google Patents
数据存储方法和存储器 Download PDFInfo
- Publication number
- CN102855194B CN102855194B CN201210281042.8A CN201210281042A CN102855194B CN 102855194 B CN102855194 B CN 102855194B CN 201210281042 A CN201210281042 A CN 201210281042A CN 102855194 B CN102855194 B CN 102855194B
- Authority
- CN
- China
- Prior art keywords
- data
- compose buffer
- entry
- address information
- level
- 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.)
- Active
Links
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种数据存储方法和存储器。其中,所述方法包括:接收待存储的数据源数据,所述数据源数据中携带有源地址信息;根据预先设置的选择方式,选出与所述数据源数据对应的第一级写缓冲区;将所述源地址信息与所述第一级写缓冲区中的当前第一地址信息进行比较;如果二者匹配,则将所述数据源数据写合并至所述第一级写缓冲区中;否则,将所述第一级写缓冲区内的数据转移至第二级写缓冲区的相应合并条目中,再将所述数据源数据写合并至所述第一级写缓冲区,将所述第一地址信息更新为源地址信息。通过本发明实施例,能够提高存储器对写入数据的处理速度,进而提高数据处理效率。
Description
技术领域
本发明涉及数据处理技术领域,更具体地说,涉及一种数据存储方法和存储器。
背景技术
存储器用于存放数据和程序,是计算机的重要组成部件。存储器的多级层次结构使得存储操作需要先将数据放到较低一级存储层次上,即:写缓冲区(write buffer)。现有技术中,写缓冲区的一种实现方式为:合并写缓冲区(combining write buffer)。
对于合并写缓冲区,当写缓冲区为空时,将要写入写缓冲区的数据和地址放到写缓冲区里,写操作即结束;如果写缓冲区里已有先写入的数据和地址,则查看地址,判断待写入的新数据的地址是否与缓冲区中已有数据的某一项地址相匹配。如果匹配,新数据就合并到地址匹配项对应的数据区中,因此,该过程称为“写合并”,此处匹配是指地址连续。
表1采用了写合并,将连续地址上的四组数据存储合并到写缓冲区的一个合并条目中。其中,写地址包括:100、108、116及124,该四个地址为连续的地址。
写地址 | V | 数据区 | V | 数据区 | V | 数据区 | V | 数据区 |
100 | 1 | 数据[100] | 1 | 数据[108] | 1 | 数据[116] | 1 | 数据[124] |
0 | 0 | 0 | 0 | |||||
0 | 0 | 0 | 0 | |||||
0 | 0 | 0 | 0 |
表1
可以发现,合并写缓冲区的每条合并条目中包含多个数据区,由于写入的数据不一定是地址连续的,所以每个合并条目(entry)容易产生由于没有数据写入而出现的空字,即空的数据区。如下面表2所示,其中数据[100]和数据[108]的写地址为100,而数据[172]的写地址为172,因此,这两组数据的地址是不连续的,根据现有方案在进行写合并时使得缓冲区内存在空数据区导致存储空间利用率低。
写地址 | V | 数据区 | V | 数据区 | V | 数据区 | V | 数据区 |
100 | 1 | 数据[100] | 1 | 数据[108] | 0 | 0 | ||
172 | 1 | 数据[172] | 0 | 0 | 0 | |||
0 | 0 | 0 | 0 | |||||
0 | 0 | 0 | 0 |
表2
此外,当出现多个数据源申请写数据时,现有合并写缓冲区一次只能处理一个数据源写入的数据,并对该数据源的写入申请进行回复,其它数据源的写入申请只能等待之前的数据源写数据完毕之后才能得到回复。因此,存储器的处理速度慢,处理效率低。
发明内容
有鉴于此,本发明实施例提供一种数据存储方法和存储器,能够提高存储器对写入数据的处理速度,进而提高数据处理效率。
本发明实施例提供一种数据存储方法,包括:
接收待存储的数据源数据,所述数据源数据中携带有源地址信息;
根据预先设置的选择方式,选出与所述数据源数据对应的第一级写缓冲区;
将所述源地址信息与所述第一级写缓冲区中的当前第一地址信息进行比较;如果二者匹配,则将所述数据源数据写合并至所述第一级写缓冲区中;
否则,将所述第一级写缓冲区内的数据转移至第二级写缓冲区的相应合并条目中,再将所述数据源数据写合并至所述第一级写缓冲区,将所述第一地址信息更新为源地址信息。
优选的,所述将所述第一级写缓冲区内的数据转移至第二级写缓冲区的相应合并条目中,包括:
将所述第一地址信息与所述第二级写缓冲区中各条合并条目对应的地址信息进行比较;如果所述第二级写缓冲区中存在与所述第一地址信息相匹配的第一合并条目,则将所述第一级写缓冲区内的数据写入所述第一合并条目;否则,按照预置规则,将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中数据区为空的合并条目中,并将所述第二级写缓冲区中该合并条目对应的地址信息更新为所述第一地址信息。
优选的,将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中数据区为空的合并条目中,包括:
将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中编号最小或编号最大、且数据区为空的合并条目中,其中,所述第二级写缓冲区中各合并条目分别分配有连续的编号。
优选的,所述方法还包括:
将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据写合并至记录板单元的合并条目中并输出,其中,所述标识信息用于标识所述第二级写缓冲区中的合并条目,且地址连续的合并条目的标识信息相同。
优选的,将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据写合并至记录板单元的合并条目中,包括:
将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据按照地址信息的先后次序进行排序,依照从右到左的方式,写合并至所述记录板单元的合并条目中。
一种存储器,包括:
数据接收单元,用于接收待存储的数据源数据,所述数据源数据中携带有源地址信息;
选择单元,用于根据预先设置的选择方式,选出与所述数据源数据对应的第一级写缓冲区;
第一地址比较单元,用于将所述源地址信息与所述第一级写缓冲区中的当前第一地址信息进行比较,如果二者匹配,则触发第一写合并控制单元;否则,触发第二写合并控制单元;
所述第一写合并控制单元,用于将所述数据源数据写合并至所述第一级写缓冲区中;
第二写合并控制单元,用于将所述第一级写缓冲区内的数据转移至第二级写缓冲区的相应合并条目中,再将所述数据源数据写合并至所述第一级写缓冲区,将所述第一地址信息更新为源地址信息。
优选的,所述第二写合并控制单元,包括:
第二地址比较子单元,用于将所述第一地址信息与所述第二级写缓冲区中各条合并条目对应的地址信息进行比较,如果所述第二级写缓冲区中存在地址匹配的第一合并条目,则触发第一控制子单元;否则,触发第二控制子单元;
所述第一控制子单元,用于将所述第一级写缓冲区内的数据写入所述第一合并条目;
所述第二控制子单元,用于按照预置规则,将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中数据区为空的合并条目中,并将所述第二级写缓冲区中该合并条目对应的地址信息更新为所述第一地址信息。
优选的,还包括:
编号分配单元,用于为所述第二级写缓冲区中各合并条目分别分配连续的编号信息;
则所述第二控制子单元,具体用于将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中编号最小或编号最大、且数据区为空的合并条目中。
优选的,还包括:
标识信息分配单元,用于为所述第二级写缓冲区中地址连续的合并条目分配相同的标识信息;
记录板控制单元,用于将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据写合并至记录板单元的合并条目中;
输出控制单元,用于将所述记录板单元的合并条目中的数据输出。
优选的,所述记录板控制单元,通过将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据按照地址信息的先后次序进行排序,依照从右到左的方式,写合并至所述记录板单元的合并条目中。
本发明实施例中,将存储器的写缓冲区细化分为与数据源对应的多个第一级写缓冲区和一个第二级写缓冲区,由于每个数据源对应一个第一级写缓冲区,因此,数据源写入存储器的申请能得到存储器的快速回复,存储器对写入数据的处理速度以及处理效率可以显著提高;
此外,通过在第二级写缓冲区通过具体设置合并条目的数目,实现细划分其合并条目的宽度,增加第二级写缓冲区内条目合并的灵活性,避免由于每条合并条目容易产生空字而导致的存储空间利用率低的缺陷。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储方法流程示意图;
图2为本发明实施例提供的另一种数据存储方法流程示意图;
图3为本发明实施例中第一级写缓冲区的结构示意图;
图4为本发明实施例中第二级写缓冲区中一条合并条目的结构示意图4;
图5为本发明实施例中将第一级写缓冲区写第二级写缓冲区时的示意图;
图6为本发明实施例中将第二级写缓冲区中的数据写入下一级存储器时的示意图;
图7为本发明提供的一种存储器结构示意图;
图8为本发明提供的另一种存储器结构示意图;
图9为本发明提供的又一种存储器结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本发明提供的一种数据存储方法进行说明,所述存储器被划分为多个第一级写缓冲区和一个第二级写缓冲区,所述第一级写缓冲区包括唯一一条合并条目,所述第二级写缓冲区包括多条合并条目,如图1所示,所述方法包括:
步骤101、接收待存储的数据源数据,所述数据源数据中携带有源地址信息;
该步骤中,多个数据源申请写本级存储器;
步骤102、根据预先设置的选择方式,选出与所述数据源数据对应的第一级写缓冲区;
该实施例中,每个数据源对应一个第一级写缓冲区,因此,数据源可直接写入与该数据源对应的第一级写缓冲区;其中,预先设置的选择方式是指数据源与第一级写缓冲区之间存在一一对应的关系;
步骤103、将所述源地址信息与所述第一级写缓冲区中的当前第一地址信息进行比较,如果二者匹配,则转入步骤104;否则,转入步骤105;
步骤104、将所述数据源数据写合并至所述第一级写缓冲区中;
步骤105、将所述第一级写缓冲区内的数据转移至第二级写缓冲区的相应合并条目中,再将所述数据源数据写合并至所述第一级写缓冲区,将所述第一地址信息更新为源地址信息;
该步骤中,当数据源数据携带的源地址信息与对应所述数据源的第一级写缓冲区中合并条目的当前的地址信息(即第一地址信息)不匹配时,需要先将该第一级写缓冲区中的已有的数据转移至第二级写缓冲区的相应合并条目中,再将数据源数据写合并至该第一级写缓冲区。同时,用数据源数据携带的源地址信息更新该第一级写缓冲区当前的第一地址信息。
本发明实施例中,将存储器的写缓冲区细化分为与数据源对应的多个第一级写缓冲区和一个第二级写缓冲区,由于每个数据源对应一个第一级写缓冲区,所以数据源写入存储器的申请能得到存储器的快速回复。此外,通过在第二级写缓冲区通过具体设置合并条目的数目,实现细划分其合并条目的宽度,增加第二级写缓冲区内条目合并的灵活性,避免由于每条合并条目容易产生空字而导致的存储空间利用率低的缺陷。
上述实施例中,所述将对应所述数据源的第一级写缓冲区内的数据转移至第二级写缓冲区的相应合并条目中,包括:
将所述第一地址信息与所述第二级写缓冲区中各条合并条目对应的地址信息进行比较;如果所述第二级写缓冲区中存在与所述第一地址信息相匹配的第一合并条目,则将所述第一级写缓冲区内的数据写入所述第一合并条目;否则,按照预置规则,将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中数据区为空的合并条目中,并将所述第二级写缓冲区中该合并条目对应的地址信息更新为所述第一地址信息。
需要说明的是,此处地址信息相匹配可以包括两种情形:地址信息完全相同,或者,地址信息连续。当多个数据源的数据分别写入相应的第一级写缓冲区内之后,多个第一级写缓冲区内的数据也可依次排序写入第二级写缓冲区,并在第二级写缓冲区内进行写合并。具体实施时,可为每个第一级写缓冲区分配唯一标示该缓冲区的标识信息,例如编号,可以为多个第一级写缓冲区分别分配连续的编号,由此,可按照编号依次排序的顺序,将多个第一级写缓冲区内的数据依次写入第二级写缓冲区。
上述实施例中,所述将所述第一级写缓冲区内的数据写入所述第二级写缓冲区中数据区为空的合并条目中,该实现方式可以为:
将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中编号最小或编号最大、且数据区为空的合并条目中,其中,所述第二级写缓冲区中各合并条目分别分配有连续的编号。
该实施例中,为所述第二级写缓冲区中的多个合并条目分别分配有连续的编号,根据编号,可以方便标识所述第二级写缓冲区中特定的合并条目。
在另一个实施例中,如图2所示,所述数据存储方法在包括上述步骤101至步骤105所述内容之外,还可以包括以下步骤:
步骤106、将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据写合并至记录板单元的合并条目中并输出,其中,所述标识信息用于标识所述第二级写缓冲区中的合并条目,且地址连续的合并条目的标识信息相同。
具体实施时,将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据写合并至记录板单元的合并条目中,其实现方式可以为:
将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据按照地址信息的先后次序进行排序,依照从右到左的方式,写合并至所述记录板单元的合并条目中。
该实施例中,写下一级存储器时,在第二级写缓冲区已合并条目的基础上通过记录板单元进行第二次再合并合并条目,通过存储总线的传输写到下一级存储器,减少了写下一级存储器的次数,充分利用存储总线。
为了便于对上述匹配算法的理解,下面通过具体的实例对整体方案进行详细的介绍说明。
如图3所示,为本发明实施例中第一级写缓冲区的结构示意图,第一级写缓冲区包括唯一一条合并条目,每条合并条目的数据区可以包括八个32位(bit)字(word,1word=32bit),每个字节(byte,1byte=8bit)有一位写脏位“D”,写脏位“D”代表对应的字节已经写入数据。每条合并条目有一个八字对齐的写地址(8-word align address),该写地址标识着对应写入数据的地址信息。
如图4所示,为本发明实施例中第二级写缓冲区中一条合并条目的结构示意图,第二级写缓冲区中可包括多条合并条目,具体的可共有16条相同结构的合并条目。每条合并条目的数据区可以包括八个32位字,每个字节有一位写脏位“D”。此外,可以为每四个字分配一位有效位“V(Value)”,该有效位“V”用于指明四个字是否已经写入,当四个字写入时,V值为1;否则,V值为0。每条合并条目共用一个八字对齐的地址(8-word align address)和一个四位的标记(tag)。整个第二级写缓冲区有一个四位的写指针,一个四位的读指针。
可以理解的是,本发明实施例中,第二级写缓冲区中的每个合并条目中包含一个数据区,同现有技术中具有某一写地址的合并条目包含多个数据区的技术方案相比,第二级写缓冲区中的每个合并条目的宽度减少,因此,第二级写缓冲区中每个合并条目中出现空字的几率可以相应降低。
可见,通过细划分第二级写缓冲区中合并条目的宽度,增加第二级写缓冲区内条目合并的灵活性,避免由于每条合并条目容易产生空字而导致的存储空间利用率低的缺陷。
本发明实施例中,数据源写本级存储器时,首先写第一级写缓冲区,如果数据源地址和第一级写缓冲区地址相匹配,则写合并到第一级写缓冲区中。如果数据源地址和第一级写缓冲区地址不匹配,则先要将第一级写缓冲区的数据写入第二级写缓冲区中,然后再将数据源数据写入第一级写缓冲区中,同时用数据源的“写地址”项更新第一级写缓冲区的当前“写地址”项。
第一级写缓冲区在写第二级写缓冲区时,先将第一级写缓冲区的“写地址”项同时与第二级写缓冲区中16条“写地址”项比较,若第一级写缓冲区的“写地址”项同第二级写缓冲区的某一条“写地址”项相匹配,则将第一级写缓冲区的数据写入此条条目地址对应的数据区;若第一级写缓冲区的“写地址”项同第二级写缓冲区的16条“写地址”项都不匹配,则将第一级写缓冲区的数据写入到16条合并条目中编号最小或编号最大、且有效位“V”的值为0的合并条目中,同时更新此合并条目标记为当前的写指针值。然后再将写指针值加1。
下面详细说明第一级写缓冲区写第二级写缓冲区的过程。如图5所示,为第一级写缓冲区写第二级写缓冲区的实例图。第二级写缓冲区中每条合并条目的“写地址”是一个八字对齐的地址。当合并条目的三十二字对齐的地址相同时,它们的标记是相同的,因此相同标记的合并条目最多应会有四条合并条目。编号为0、4、5、7的合并条目,它们的标记都为0。编号为1、3、9的合并条目,它们的标记都为1。编号为2、6、8的合并条目,它们的标记都为2。
如图5箭头所示情况(1),第一级写缓冲区的“写地址”项为140,当和第二级写缓冲区的16条“写地址”项比较时,和编号为6的合并条目相匹配,则可以将第一级写缓冲区的数据写入第二级写缓冲区中编号为6的合并条目对应的数据区。
如图5箭头所示情况(2),其中斜体字表示第一级写缓冲区写第二级写缓冲区之前编号为9的合并条目各项为空,第一级写缓冲区的“写地址”项为180,当和第二级写缓冲区的16条“写地址”项比较时,发现没有合并条目相匹配,但“写地址”项180和编码1、3的合并条目的“写地址”是三十二字对齐的,所以将第一级写缓冲区的数据写入到16条合并条目中编号最小的合并条目且有效位“V”的值为0的合并条目中,即编号为9的合并条目中,同时将编号为9的合并条目中的“标记”项置1,“写地址”项置180。
如图5箭头所示情况(3),其中“—”表示第一级写缓冲区写第二级写缓冲区之前合并条目各项为空,第一级写缓冲区的“写地址”项为196,当和第二级写缓冲区的16条“写地址”项比较时,发现没有合并条目相匹配,且和16条合并条目的“写地址”也非三十二字对齐,因此,将第一级写缓冲区的数据写入到16条合并条目中编号最小的合并条目且有效位“V”的值为0的合并条目中,即编号为10的合并条目中,同时将“标记”项置3,即当前写指针的值为3,“写地址”项置196,再将写指针值加1。
该实施例中,写指针的数值范围为0~15,初始化时写指针值为0,写指针的值为当前16条合并条目中“标记”项最大的值加1。当写指针的值为15时,再增加1则写指针的值返回为0。
标记的数值范围为0~15,初始化时标记的值为0,当标记的值为15时,再增加1则标记的值返回为0。
当需要将第二级写缓冲区中的数据写入下一级存储器时,需要将第二级写缓冲区中相应合并条目中的数据写合并至记录板单元中。如图6所示,当前读指针的值为0,和16条合并条目的标记相比较,将16条合并条目中标记为0的合并条目的编号按照合并条目中“写地址”项的值排序依由小到大,用从右到左的方式放入记录板中单元。
记录板单元包括唯一一条合并条目,该合并条目的数据宽度依据所述第二级写缓冲区中合并条目所能合并的最大数据宽度而设定。当存储总线支持32字的一次写出,则记录板记录的数据最多可为三十二字的数据。
该实施例中,读指针的数值范围为0~15,初始化时读指针值为0,当读指针的值为15时,再增加1则读指针的值返回为0。
需要指出的是,本发明实施例中,合并条目最多可包括的字的位数可根据实际应用进行设定,对此,本发明实施例不做具体限定。
相应上述数据存储方法实施例,本发明还提供了一种存储器,所述存储器被划分为多个第一级写缓冲区和一个第二级写缓冲区,所述第一级写缓冲区包括唯一一条合并条目,所述第二级写缓冲区包括多条合并条目,如图7所示,所述存储器可以包括:
数据接收单元701,用于接收待存储的数据源数据,所述数据源数据中携带有源地址信息;
选择单元702,用于根据预先设置的选择方式,选出与所述数据源数据对应的第一级写缓冲区;
第一地址比较单元703,用于将所述源地址信息与所述第一级写缓冲区中的当前第一地址信息进行比较,如果二者匹配,则触发第一写合并控制单元704;否则,触发第二写合并控制单元705;
所述第一写合并控制单元704,用于将所述数据源数据写合并至所述第一级写缓冲区中;
第二写合并控制单元705,用于将所述第一级写缓冲区内的数据转移至第二级写缓冲区的相应合并条目中,再将所述数据源数据写合并至所述第一级写缓冲区,将所述第一地址信息更新为源地址信息。
本发明实施例中,将存储器的写缓冲区细化分为与数据源对应的多个第一级写缓冲区和一个第二级写缓冲区,由于每个数据源对应一个第一级写缓冲区,所以数据源写入存储器的申请能得到存储器的快速回复;此外,通过在第二级写缓冲区通过具体设置合并条目的数目,实现细划分其合并条目的宽度,增加第二级写缓冲区内条目合并的灵活性,避免由于每条合并条目容易产生空字而导致的存储空间利用率低的缺陷。
其中,所述第二写合并控制单元,可以包括:
第二地址比较子单元,用于将所述第一地址信息与所述第二级写缓冲区中各条合并条目对应的地址信息进行比较,如果所述第二级写缓冲区中存在地址匹配的第一合并条目,则触发第一控制子单元;否则,触发第二控制子单元;
所述第一控制子单元,用于将所述第一级写缓冲区内的数据写入所述第一合并条目;
所述第二控制子单元,用于按照预置规则,将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中数据区为空的合并条目中,并将所述第二级写缓冲区中该合并条目对应的地址信息更新为所述第一地址信息。
在本发明提供的另一种实施例中,如图8所示,存储器还可以包括:
编号分配单元706,用于为所述第二级写缓冲区中各合并条目分别分配连续的编号信息;
则所述第二控制子单元,用于将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中编号最小或编号最大、且数据区为空的合并条目中。
在本发明提供的又一种实施例中,如图9所示,存储器还可以包括:
标识信息分配单元707,用于为所述第二级写缓冲区中地址连续的合并条目分配相同的标识信息;
记录板控制单元708,用于将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据写合并至记录板单元的合并条目中;
输出控制单元709,用于将所述记录板单元的合并条目中的数据输出。
具体实施至,所述记录板单元可以包括唯一一条合并条目,该合并条目的数据宽度依据所述第二级写缓冲区中合并条目所能合并的最大数据宽度而设定。
上述实施例中,所述记录板控制单元,通过将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据按照地址信息的先后次序进行排序,依照从右到左的方式,写合并至所述记录板单元的合并条目中。
对于装置实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此,本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
接收待存储的数据源数据,所述数据源数据中携带有源地址信息;
根据预先设置的选择方式,选出与所述数据源数据对应的第一级写缓冲区,其中,预先设置的选择方式为根据所述数据源与所述第一级写缓冲区之间存在一一对应的关系进行选择;
将所述源地址信息与所述第一级写缓冲区中的当前第一地址信息进行比较;如果二者匹配,则将所述数据源数据写合并至所述第一级写缓冲区中,其中,所述源地址信息与所述第一级写缓冲区中的当前第一地址信息匹配为所述源地址信息与所述第一级写缓冲区中的当前第一地址信息完全相同或者地址信息连续;
否则,将所述第一级写缓冲区内的数据转移至第二级写缓冲区的相应合并条目中,再将所述数据源数据写合并至所述第一级写缓冲区,将所述第一地址信息更新为源地址信息。
2.根据权利要求1所述的数据存储方法,其特征在于,所述将所述第一级写缓冲区内的数据转移至第二级写缓冲区的相应合并条目中,包括:
将所述第一地址信息与所述第二级写缓冲区中各条合并条目对应的地址信息进行比较;如果所述第二级写缓冲区中存在与所述第一地址信息相匹配的第一合并条目,则将所述第一级写缓冲区内的数据写入所述第一合并条目;否则,按照预置规则,将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中数据区为空的合并条目中,并将所述第二级写缓冲区中该合并条目对应的地址信息更新为所述第一地址信息。
3.根据权利要求2所述的数据存储方法,其特征在于,将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中数据区为空的合并条目中,包括:
将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中编号最小或编号最大、且数据区为空的合并条目中,其中,所述第二级写缓冲区中各合并条目分别分配有连续的编号。
4.根据权利要求1-3中任一项所述的数据存储方法,其特征在于,所述方法还包括:
将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据写合并至记录板单元的合并条目中并输出,其中,所述标识信息用于标识所述第二级写缓冲区中的合并条目,且地址连续的合并条目的标识信息相同。
5.根据权利要求4所述的数据存储方法,其特征在于,将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据写合并至记录板单元的合并条目中,包括:
将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据按照地址信息的先后次序进行排序,依照从右到左的方式,写合并至所述记录板单元的合并条目中。
6.一种存储器,其特征在于,包括:
数据接收单元,用于接收待存储的数据源数据,所述数据源数据中携带有源地址信息;
选择单元,用于根据预先设置的选择方式,选出与所述数据源数据对应的第一级写缓冲区,其中,预先设置的选择方式为根据所述数据源与所述第一级写缓冲区之间存在一一对应的关系进行选择;
第一地址比较单元,用于将所述源地址信息与所述第一级写缓冲区中的当前第一地址信息进行比较,如果二者匹配,则触发第一写合并控制单元;否则,触发第二写合并控制单元,其中,所述源地址信息与所述第一级写缓冲区中的当前第一地址信息匹配为所述源地址信息与所述第一级写缓冲区中的当前第一地址信息完全相同或者地址信息连续;
所述第一写合并控制单元,用于将所述数据源数据写合并至所述第一级写缓冲区中;
第二写合并控制单元,用于将所述第一级写缓冲区内的数据转移至第二级写缓冲区的相应合并条目中,再将所述数据源数据写合并至所述第一级写缓冲区,将所述第一地址信息更新为源地址信息。
7.根据权利要求6所述的存储器,其特征在于,所述第二写合并控制单元,包括:
第二地址比较子单元,用于将所述第一地址信息与所述第二级写缓冲区中各条合并条目对应的地址信息进行比较,如果所述第二级写缓冲区中存在地址匹配的第一合并条目,则触发第一控制子单元;否则,触发第二控制子单元;
所述第一控制子单元,用于将所述第一级写缓冲区内的数据写入所述第一合并条目;
所述第二控制子单元,用于按照预置规则,将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中数据区为空的合并条目中,并将所述第二级写缓冲区中该合并条目对应的地址信息更新为所述第一地址信息。
8.根据权利要求7所述的存储器,其特征在于,还包括:
编号分配单元,用于为所述第二级写缓冲区中各合并条目分别分配连续的编号信息;
则所述第二控制子单元,具体用于将所述第一级写缓冲区内的数据转移至所述第二级写缓冲区中编号最小或编号最大、且数据区为空的合并条目中。
9.根据权利要求6-8中任一项所述的存储器,其特征在于,还包括:
标识信息分配单元,用于为所述第二级写缓冲区中地址连续的合并条目分配相同的标识信息;
记录板控制单元,用于将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据写合并至记录板单元的合并条目中;
输出控制单元,用于将所述记录板单元的合并条目中的数据输出。
10.根据权利要求9所述的存储器,其特征在于,所述记录板控制单元,通过将所述第二级写缓冲区中具有相同标识信息的合并条目中的数据按照地址信息的先后次序进行排序,依照从右到左的方式,写合并至所述记录板单元的合并条目中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210281042.8A CN102855194B (zh) | 2012-08-08 | 2012-08-08 | 数据存储方法和存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210281042.8A CN102855194B (zh) | 2012-08-08 | 2012-08-08 | 数据存储方法和存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102855194A CN102855194A (zh) | 2013-01-02 |
CN102855194B true CN102855194B (zh) | 2015-05-13 |
Family
ID=47401795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210281042.8A Active CN102855194B (zh) | 2012-08-08 | 2012-08-08 | 数据存储方法和存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102855194B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008069B (zh) * | 2013-02-22 | 2018-06-15 | 中兴通讯股份有限公司 | 一种数据保护方法、装置及设备 |
EP2933733A4 (en) * | 2013-12-31 | 2016-05-11 | Huawei Tech Co Ltd | DATA PROCESSING METHOD AND DEVICE IN A DISTRIBUTED FILE STORAGE SYSTEM |
EP4054140A4 (en) * | 2019-11-22 | 2022-11-16 | Huawei Technologies Co., Ltd. | METHOD OF PROCESSING A NON-BUFFER DATA WRITE REQUEST, BUFFER AND NODE |
CN113743569B (zh) * | 2020-05-29 | 2024-07-05 | 上海新氦类脑智能科技有限公司 | 脉冲信号发送方法、装置及存储介质 |
CN117215475A (zh) * | 2022-05-31 | 2023-12-12 | 上海寒武纪信息科技有限公司 | 数据存储、访问、运算方法及相关产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739353A (zh) * | 2008-11-06 | 2010-06-16 | 瑞昱半导体股份有限公司 | 可调适缓冲装置及其方法 |
CN102045258A (zh) * | 2010-12-22 | 2011-05-04 | 北京星网锐捷网络技术有限公司 | 数据缓存管理方法及装置 |
CN101393537B (zh) * | 2008-09-18 | 2012-06-27 | 北京中星微电子有限公司 | 一种NandFlash缓冲管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8255623B2 (en) * | 2007-09-24 | 2012-08-28 | Nvidia Corporation | Ordered storage structure providing enhanced access to stored items |
-
2012
- 2012-08-08 CN CN201210281042.8A patent/CN102855194B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101393537B (zh) * | 2008-09-18 | 2012-06-27 | 北京中星微电子有限公司 | 一种NandFlash缓冲管理方法 |
CN101739353A (zh) * | 2008-11-06 | 2010-06-16 | 瑞昱半导体股份有限公司 | 可调适缓冲装置及其方法 |
CN102045258A (zh) * | 2010-12-22 | 2011-05-04 | 北京星网锐捷网络技术有限公司 | 数据缓存管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102855194A (zh) | 2013-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101582052B (zh) | 存储器模组及于存储器模组中实现平均磨损的方法 | |
CN102855194B (zh) | 数据存储方法和存储器 | |
CN101777026B (zh) | 一种存储管理方法、硬盘及存储系统 | |
CN102024046B (zh) | 数据重复性校验方法和装置及系统 | |
CN101740110B (zh) | 一种Nand Flash擦除均衡的方法及装置 | |
CN103383672B (zh) | 高速缓存控制以减少事务回滚 | |
CN102428455A (zh) | 快闪存储器数据存储装置中的数据分条 | |
CN104685498A (zh) | 聚合/分组操作的硬件实现方式:散列表方法 | |
CN103049389B (zh) | Nand闪存控制器及其写入控制方法 | |
CN105468542A (zh) | 地址分配方法及装置 | |
CN104731717A (zh) | 存储器装置及存储器管理方法 | |
CN103729303A (zh) | 一种Flash的数据写入和读取方法 | |
US9436751B1 (en) | System and method for live migration of guest | |
CN104813293B (zh) | 使用动态分配的脏掩码空间的存储器管理 | |
CN107315694A (zh) | 一种缓存一致性管理方法及节点控制器 | |
CN104142979B (zh) | 一种实现rfid标签存储管理的索引方法 | |
CN105988939A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN102959548A (zh) | 数据存储方法、查找方法及装置 | |
CN103473185A (zh) | 缓存写入的方法、缓存装置和存储系统 | |
CN107678686B (zh) | 基于硬件实现闪存的ftl功能的方法及其数据存储装置 | |
CN105260332A (zh) | 一种对cpld数据包进行有序存储的方法及系统 | |
CN103268292A (zh) | 一种延长非易失外存寿命的方法及高速长寿外存系统 | |
CA2415018C (en) | Adaptive parallel data clustering when loading a data structure containing data clustered along one or more dimensions | |
CN104809031A (zh) | 操作存储器的方法及存储器装置 | |
CN107037986A (zh) | 一种延长可擦写芯片寿命的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |