存储表替换方法

文档序号:6499910阅读:136来源:国知局
存储表替换方法
【专利摘要】本发明提供了一种存储表替换方法,所述存储表替换方法通过索引表存储存储表中存储单元的循迹地址,同时通过相关表中的每一行记录所述索引表中以该行作为索引目标的索引行/索引单元数量及一定数量的索引行地址/索引单元的单元地址,由此,当产生一行新的信息时,便可根据相关表中的记录选取存储表中的一行进行替换,从而可方便地对存储表中的信息进行替换,提高存储表的利用效率。
【专利说明】存储表替换方法
【技术领域】
[0001]本发明涉及集成电路及计算机领域,特别涉及一种存储表替换方法。
【背景技术】
[0002]为了保持处理器的高速工作,现有技术中常采用缓存来实现。缓存是指可以进行高速信息交换的存储器件,它先于内存与处理器交换信息,因此速率很快。缓存的工作原理是:当处理器要读取一个信息时,首先从缓存中查找,找到就立即读取并送给处理器处理;没有找到,就用相对慢的速率从内存中读取并送给处理器处理,同时把这个信息所在的信息块调入缓存中。由此,可以使得以后对整块信息的读取都从缓存中进行,不必再调用内存。这样的读取机制使处理器读取连续信息时缓存命中率非常高。
[0003]通过上述的读取机制(当然,并不限于上述的读取机制),能够很清楚的看到这样一个问题:在存储器件(包括但不限于缓存)中,存在一个信息替换的过程。因为存储器件都有一个存储容量的限制问题,即其存储容量为一特定的有限值,当所述存储器件已存满或者待存储信息所需的存储空间大于存储器件的剩余存储容量时,就需要将待存储信息覆盖部分已存储信息,或者说需要删除部分已存储信息,以释放一定量的存储空间以存储待存储信息。
[0004]本发明提供了 一种信息替换的方法,即针对存储信息的存储表提供一种替换的方法,以有效利用存储表/存储器件的存储空间。

【发明内容】

[0005]本发明的目的在于提供一种存储表替换方法,以实现对存储表中的信息进行替换,提高存储表的利用效率。
[0006]为此,本发明提供了一种存储表替换方法,所述存储表替换方法包括:
[0007]提供一存储表、一索引表和一相关表,所述存储表包括多个阵列排布的存储单兀,每行存储单元存储一行信息;所述索引表存储所述存储表中存储单元的循迹地址;所述相关表和存储表具有相同的行数,所述相关表中的每一行记录所述索引表中以该行作为索引目标的索引行数量及一定数量的索引行地址;
[0008]当产生一行新的信息时,根据相关表中的记录选取存储表中的一行进行替换。
[0009]可选的,在所述的存储表替换方法中,根据相关表中的记录选取存储表中的一行进行替换包括:
[0010]选取记录的索引行数量为零的轨道进行替换。
[0011]可选的,在所述的存储表替换方法中,所述相关表中的每一行还记录存储表相应行的地址标记。
[0012]可选的,在所述的存储表替换方法中,根据相关表中的记录选取存储表中的一行进行替换包括:
[0013]选取记录的索引行数量不为零,但是所述相关表记录有所有索引行的行地址的行进行替换。
[0014]可选的,在所述的存储表替换方法中,进行替换时,将该被替换行记录的索引行中对应索弓I单元的循迹地址替换为所述地址标记。
[0015]可选的,在所述的存储表替换方法中,还提供一链表,当所述相关表中的每一行不够记录所有以该行作为索引目标的索引行的行地址时,利用所述链表补充记录索引行的行地址。
[0016]本发明还提供一种存储表替换方法,所述存储表替换方法包括:
[0017]提供一存储表和一相关表,所述存储表包括多个阵列排布的存储单兀,每行存储单元存储一行信息;所述索引表存储所述存储表中存储单元的循迹地址;所述相关表和存储表具有相同的行数,所述相关表中的每一行记录以该行作为索引目标的索引单元数量及一定数量的索引单元的单元地址;所述单元地址包括行地址和列地址;
[0018]当产生一行新的信息时,根据相关表中的记录选取存储表中的一行进行替换。
[0019]可选的,在所述的存储表替换方法中,根据相关表中的记录选取存储表中的一行进行替换包括:
[0020]选取记录的索引单元数量为零的行进行替换。
[0021]可选的,在所述的存储表替换方法中,所述相关表中的每一行还记录存储表相应行的地址标记。
[0022]可选的,在所述的存储表替换方法中,根据相关表中的记录选取存储表中的一行进行替换包括:
[0023]选取记录的索引单元数量不为零,但是所述相关表记录有所有索引单元的单元地址的行进行替换。
[0024]可选的,在所述的存储表替换方法中,进行替换时,将被替换行记录的索引单元中的循迹地址替换为所述地址标记。
[0025]可选的,在所述的存储表替换方法中,还提供一链表,当所述相关表中的每一行不够记录所有以该行作为索引目标的索引单元的单元地址时,利用所述链表补充记录索引单元的单元地址。
[0026]在本发明提供的存储表替换方法中,通过索引表存储存储表中存储单元的循迹地址,同时通过相关表中的每一行记录所述索引表中以该行作为索引目标的索引行/索引单元数量及一定数量的索引行地址/索引单元的单元地址,由此,当产生一行新的信息时,便可根据相关表中的记录选取存储表中的一行进行替换,从而可方便地对存储表中的信息进行替换,提高存储表的利用效率。
【专利附图】

【附图说明】
[0027]图1是本发明实施例一的存储表替换方法的实现方式示意图;
[0028]图2是本发明实施例一的存储表替换方法的实现方式另一示意图;
[0029]图3是本发明实施例二的存储表替换方法的实现方式示意图;
[0030]图4是本发明实施例三的存储表替换方法的实现方式示意图。
【具体实施方式】[0031]以下结合附图和具体实施例对本发明提出的存储表替换方法作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
[0032]【实施例一】
[0033]在本实施例提供的存储表的替换方法中,具体包括:提供一存储表、一索引表和一相关表,所述存储表包括多个阵列排布的存储单元,每行存储单元存储一行信息;所述索引表中的索引单元存储了所述存储表中存储单元的循迹地址;所述循迹地址包括行地址和列地址;所述相关表和存储表具有相同的行数,所述相关表中的每一行记录所述索引表中以该行作为索引目标的索引行数量及一定数量的索引行地址;
[0034]当有一行新的信息需要存储/记录时,根据相关表中的记录选取存储表中的一行进行替换。
[0035]具体的,请参考图1,其为本发明实施例一的存储表替换方法的实现方式示意图。如图1所示,其中,索引表10、存储表11及相关表12示意性的示出了替换前的存储状态;索引表10’、存储表11’及相关表12’示意性的示出了替换后的存储状态。
[0036]在此,所述存储表11仅示意性的示出了 6行存储单元,其中,每行的行地址分别为行地址O、行地址1、行地址2、行地址3、行地址4及行地址5,即在此,同时给予每行存储单元一个不同于其他行存储单元的行地址。为便于说明,分别将存储表11中行地址为行地址
O、行地址1、行地址2、行地址3、行地址4和行地址5的行称为第O行、第I行、第2行、第3行、第4行和第5行。在本实施例中,未示出每行存储单元的数量,其中,每行存储单元的数量可以为一个或者多个,本申请对此并不作限定。
[0037]所述相关表12与所述存储表11具有相同的行数,因此,在本实施例中,所述相关表12同样不出了 6行存储单兀,其中,每行的行地址与所述存储表11的相同/ 对应,即所述相关表每行的行地址分别为行地址O、行地址1、行地址2、行地址3、行地址4及行地址5。同样地,为便于说明,分别将相关表12中行地址为行地址O、行地址1、行地址2、行地址3、行地址4和行地址5的行称为第O行、第I行、第2行、第3行、第4行和第5行。具体的,所述相关表12中的每一行记录所述索引表10中以(所述存储表11的)该行(即与所述相关表12的相应行,或者说行地址相同的行)作为索引目标的索引行数量及一定数量的索引行的行地址。在本实施例中,所述相关表12中“COUNT”标记的一列(即所述相关表12的每行中都有一个“COUNT”标记的存储单元)存储单元用以存储索引行数量;在本实施例中,所述相关表12的每行有两列记录了索引行的行地址(即所述相关表12的每行中都有两个存储单元用以存储/记录索引行的行地址),在此,分别通过“S0URCE1”及“S0URCE2”予以标记。在本申请的其他实施例中,所述相关表12也可以利用更少或者更多列记录索引行的行地址,例如,通过一列记录索引行的行地址、或者通过三列、四列等记录索引行的行地址。
[0038]当有一行新的信息需要存储/记录时,根据相关表12中的记录选取存储表11中的一行进行替换。例如,假设所述相关表12中的第O行所记录的索引行数量为0,则此时,即可选择所述第O行进 行替换,即将所述存储表11中的第一行中的信息替换成新的信息。
[0039]若相关表12中的每一行所记录的索引行数量均不为0,则可以选取记录的索引行数量不为零但所述相关表12记录有所有索引行行地址(即“COUNT”的值与存储了有效索引行行地址的“S0URCE1”、“S0URCE2”的个数相等)的(所述存储表11的)相应行进行替换。如图1所示,为便于说明,图中“S0URCE1”、“S0URCE2”对应列中的“X”表示记录了对应的索引行行地址,空白则表示对应的“SOURCEI”、“S0URCE2”没有存储有效的索引行行地址。以本实施例所列出的情况为例,所述相关表12中第O行所记录的索引行数量为1、但没有记录对应的索引行行地址;第I行所记录的索引行数量为3 ;第2行所记录的索引行数量为2且记录了所有对应的索引行行地址;第3行所记录的索引行数量为I且记录了对应的索引行行地址;第4行所记录的索引行数量为4、第5行所记录的索引行数量为5,此时,所述相关表12中的每一行所记录的索引行数量均不为O。
[0040]请继续参考图1,在本实施例中示出了,位于索引表10第2行第5列的索引单元13中的内容指向了存储表11的第3行。在此,相关表第3行所记录的索引行数量为1,因此有且仅有一个索引行(即,索引行2)指向存储表11中的第3行,具体地,指向存储表11中的第3行第I列,即(3,I)。因此,所述相关表12中第3行中记录了索引行数量“COUNT”为1、索引行行地址“S0URCE1”为2 (即,索引表10中的第2行,或第2个索引行)。
[0041]此时,当有一行新的信息需要存储/记录时,可以选取存储表11中的第3行进行替换,并相应的根据相关表12第3行中“S0URCE1”中记录的索引行号2在索引表的第2行中查找以存储表11的第3行为索引目标的索引单元,并对该索引单元的内容(即该索引单元内存储的循迹地址)进行更新,从而防止发生指向错误的危险。
[0042]相对地,虽然相关表第I行所记录的索引行数量也为1,但由于没有记录对应的索引行行地址,因此不能选取存储表11中的第I行进行替换。
[0043]具体的,所述相关表12进一步包括标记为“PC”的一列,所述“PC”列记录存储表11相应行的地址标记,即所述相关表12的每一行还记录所述存储表11的相应行的地址标记,所述地址标记即为标注所述存储表11的相应行的一种标记。例如,可以将所述存储表11的行中存储的信息位于其他存储表中的地址作为对应于该行的地址标记,这样,一旦存储表11中的该行信息被替换,依然能够根据该地址标记从其他存储表中找到相应信息,从而保证索引单元的指向是正确的。
[0044]在本实施例中,所述存储表11的第O行的地址标记为pc3、第I行的地址标记为pc20、第2行的地址标记为pell、第3行的地址标记为pc1、第4行的地址标记为pc5、第5行的地址标记为pc8,其中,所述地址标记可以任意设定,本申请对此并不做限定,仅需满足标示出存储表11中的相应的行在另一个存储表中的地址即可。
[0045]由此,上述对于存储表11中行地址3所指向的行的替换可以进一步进行如下操作:在存储表11的第3行替换成新的信息之后/同时,即存储表11变成存储表11’时,依据相关表12中“SOURCEI”所存储的行地址2寻找到索引表10中的第2行,之后在该行中查找,并可以发现第5个索引单元中存储的循迹地址指向存储表11的第3行,接着,根据相关表12中第3行所存储地址标记pci将所述索引表中第2行第5个索引单元中存储的循迹地址(3,I)改成pel,由此,即可防止循迹地址发生指向错误的危险。
[0046]在存储表11的第3行被替换时,还需要检查索引表10的相应行(即,第3行)。在本实施例中,替换前的索引表10的第3行第4列中的索引单元15中存储了循迹地址(5,7),即指向了存储表的第5行第7列存储单元。由于存储表11的第3行被替换了,因此对相关表12中对应行(第5行)的“COUNT”减一,同时在该行中找到记录了对应索引行地址(即“ 3 ”)的“ SOURCE I ”,并将该“ SOURCE I ”中的值清除。[0047]经过上述替换之后,所述索引表10即变成索引表10’,即第2行第5列索引单元中存储的循迹地址(3,I)改成了 pci ;存储表11变成了存储表11’,即第3行中所存储的信息被替换了,变成了新的信息;相关表12变成了相关表12’,即第3行中的内容根据存储表11’中的信息更新而更新,此时可以看出,存储表11’中行地址3所指向的行中没有存储单元指向,因为相关表12’中行地址3的“COUNT”为O。之后,根据索引表中内容的变更相应更新相关表12’中对应的“COUNT”的值。例如,当因索引表中索引单元内容变更使得有且仅有I个索引行含有指向存储表第3行的索引单元时,相关表12’中行地址3的“COUNT”被相应更改为I。
[0048]由上可见,通过索引表10中的索引单元存储存储表11中存储单元的循迹地址,同时通过相关表12中的每一行记录所述索引表10中以该行作为索引目标的索引行数量及一定数量的索引行地址,由此,当产生一行新的信息时,便可根据相关表12中的记录选取存储表11中的一行进行替换,从而可方便地对存储表11中的信息进行替换,提高存储表11的利用效率。
[0049]此外,可以在将所述新的一行信息存储/记录到存储表11’中的同时,建立该行信息与其他行信息之间的索引关系。请参考图2,其为本发明实施例一的存储表替换方法的实现方式另一示意图。由于在将新的信息存储/记录到存储表11’的第3行时,发现被存储的信息中有指向第O行信息的索引关系,并在索引表10’中记录所述索引关系。如图2所示,索引表10’中第3行第2列的索引单元14的索引目标为存储表11’中第O行第3列的存储单元(0,3)。
[0050]因此,需要对相关表12’做相应更新。由于以存储表11’第O行为索引目标的索引行的增加了,因此对相关表12’第O行中的“COUNT”的值增一,即“COUNT”的值等于‘2’,同时将相应索引行的行地址‘3’存储在“SOURCEI”中。
[0051]此外,当索引表10’中存储的索引关系因其他任何原因发生变化时,都可以按上述方法更新相关表12’,在此不再赘述。
[0052]【实施例二】
[0053]在本实施例中,所述相关表12中的每一行记录所述索引表10中以该行作为索引目标的索引行数量及一定数量的索引行地址。在本申请的其他实施例中,所述相关表中的每一行不是记录所述索引表中以该行作为索引目标的索引行数量及一定数量的索引行地址;而是记录以该行作为索引目标的索引单元数量及一定数量的索引单元的单元地址;所述单元地址包括行地址和列地址。
[0054]请参考图3,其为本发明实施例二的存储表替换方法的实现方式示意图。在此种情况下,所述索引表及存储表均不变,也就是说,以前述对于存储表11中第3行的内容进行替换的例子为例,所述索引表中的第2行第5列索引单元仍旧存储循迹地址(3,1),其也仍旧指向所述存储表的第3行。在此,所述相关表中所记录的内容需要发生改变,首先,由于只有一个存储单元指向存储表的第3行,则所述相关表中的行地址3所指向的行所存储的“ COUNT ”仍为I,但是,所存储的“ SOURCE I ”将变成(2,5 ),即记录索引表中指向存储表第3行的索引单元在索引表中单元地址(2,5)。经过上述变化之后,原有的“依据相关表12中“S0URCE1”所存储的行地址2寻找到索引表10中的第2行,之后在该行中查找,并可以发现第5个索引单元中存储的循迹地址指向存储表11的第3行,接着,根据相关表12中所存储地址标记pci将所述索引表中第2行第5个索引单元中存储的循迹地址(3,I)改成pel”的过程可以得到简化,此时,可以根据所述相关表记录的索引表单元地址(2,5)直接从所述索引表中找到其所存储的信息,即找到索引表的第2行第5列,从而将所述索引表第2行第5列索引单元内存储的循迹地址(3,1)改成pci。
[0055]除此之外,对于所述存储表的替换,均可参考所述相关表存储索引行行地址的情况。即:根据相关表中的记录选取存储表中的一行进行替换包括:选取记录的索引单元数量为零的行进行替换;所述相关表中的每一行还记录存储表相应行的地址标记;根据相关表中的记录选取存储表中的一行进行替换包括:选取记录的索引单元数量不为零,但是所述相关表记录有所有索引单元的单元地址的行进行替换;进行替换时,将被替换行记录的索引单元中的循迹地址替换为所述地址标记。
[0056]【实施例三】
[0057]本实施例三在实施例一或实施例二的基础上,还提供一链表,若所述相关表存储的是索引行的行地 址时,当所述相关表中的每一行不够记录所有以该行作为索引目标的索引行的行地址时,利用所述链表补充记录索引行的行地址;同样的,若所述相关表存储的是索引单元的单元地址时,当所述相关表中的每一行不够记录所有以该行作为索引目标的索引单元的单元地址时,利用所述链表补充记录索引单元的单元地址。
[0058]具体的,请参考图4,其为本发明实施例三的存储表替换方法的实现方式示意图。在此,所述图4中仅示出了相关表22及链表23,关于所述索引表及存储表的实现方式可以参考图1或图3,本实施例不再赘述。在本实施例中,通过增加所述链表23,能够补充所述相关表22中对于索引行的行地址或者索引单元的单元地址的记录(鉴于记录索引行的行地址与记录索引单元的单元地址的处理情况相同,在本实施例接下去的描述中,仅以索引行的行地址为例)。
[0059]请继续参考图3,所述相关表22中所记录的索引行的数量分别为:第O行的“COUNT”为2、第I行的“COUNT”为3、第2行的“COUNT”为2、第3行的“COUNT”为1、第4行的“COUNT”为4、第5行“COUNT”为5,也就是说,第O行需要记录的行地址为2个、第I行需要记录的行地址为3个、第2行需要记录的行地址为2个、第3行需要记录的行地址为I个、第4行需要记录的行地址为4个、第5行需要记录的行地址为5个。同时,每行只有两个存储单元用来记录行地址,在此分别通过“S0URCE1”及“S0URCE2”予以表示(其中,每行只有一定数量的存储单元用以记录行地址能够避免存储空间的浪费)。此时,第I行、第4行及第5行中对于行地址的记录便可通过链表23予以补充记录,即通过链表23,第I行能够将3个行地址记录完全、第4行能够将4个行地址记录完全、第5行能够将5个行地址记录完全。
[0060]在所述相关表22通过链表23的补充,将索引表中以该行作为索引目标的索引行的行地址记录完全之后,所述存储表中的每一行都可以被替换,而不会发生指向错误。
[0061]上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
【权利要求】
1.一种存储表替换方法,其特征在于,包括: 提供一存储表、一索引表和一相关表,所述存储表包括多个阵列排布的存储单兀,每行存储单元存储一行信息;所述索引表存储所述存储表中存储单元的循迹地址;所述相关表和存储表具有相同的行数,所述相关表中的每一行记录所述索引表中以该行作为索引目标的索引行数量及一定数量的索引行地址; 当产生一行新的信息时,根据相关表中的记录选取存储表中的一行进行替换。
2.如权利要求1所述的存储表替换方法,其特征在于,根据相关表中的记录选取存储表中的一行进行替换包括: 选取记录的索引行数量为零的轨道进行替换。
3.如权利要求1所述的存储表替换方法,其特征在于,所述相关表中的每一行还记录存储表相应行的地址标记。
4.如权利要求3所述的存储表替换方法,其特征在于,根据相关表中的记录选取存储表中的一行进行替换包括: 选取记录的索引行数量不为零,但是所述相关表记录有所有索引行的行地址的行进行替换。
5.如权利要求4所述的存储表替换方法,其特征在于,进行替换时,将该被替换行记录的索引行中对应索引 单元的循迹地址替换为所述地址标记。
6.如权利要求1飞中的任一项所述的存储表替换方法,其特征在于,还提供一链表,当所述相关表中的每一行不够记录所有以该行作为索引目标的索引行的行地址时,利用所述链表补充记录索引行的行地址。
7.—种存储表替换方法,其特征在于,包括: 提供一存储表和一相关表,所述存储表包括多个阵列排布的存储单兀,每行存储单兀存储一行信息;所述索引表存储所述存储表中存储单元的循迹地址;所述相关表和存储表具有相同的行数,所述相关表中的每一行记录以该行作为索引目标的索引单元数量及一定数量的索引单元的单元地址;所述单元地址包括行地址和列地址; 当产生一行新的信息时,根据相关表中的记录选取存储表中的一行进行替换。
8.如权利要求7所述的存储表替换方法,其特征在于,根据相关表中的记录选取存储表中的一行进行替换包括: 选取记录的索引单元数量为零的行进行替换。
9.如权利要求7所述的存储表替换方法,其特征在于,所述相关表中的每一行还记录存储表相应行的地址标记。
10.如权利要求9所述的存储表替换方法,其特征在于,根据相关表中的记录选取存储表中的一行进行替换包括: 选取记录的索引单元数量不为零,但是所述相关表记录有所有索引单元的单元地址的行进行替换。
11.如权利要求10所述的存储表替换方法,其特征在于,进行替换时,将被替换行记录的索引单元中的循迹地址替换为所述地址标记。
12.如权利要求7~11中的任一项所述的存储表替换方法,其特征在于,还提供一链表,当所述相关表中的每一行不够记录所有以该行作为索引目标的索引单元的单元地址时,利用所述链表补充 记录索引单元的单元地址。
【文档编号】G06F12/10GK103984647SQ201310050837
【公开日】2014年8月13日 申请日期:2013年2月8日 优先权日:2013年2月8日
【发明者】林正浩 申请人:上海芯豪微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1