存储器控制方法和存储器控制装置转让专利

申请号 : CN201010167374.4

文献号 : CN101882061B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 丸山志津子小泉伸和

申请人 : 富士通株式会社

摘要 :

本发明提供了一种存储器控制方法和存储器控制装置,该方法执行对具有多个存储区的存储器的先入先出存取控制,该方法包括:当选择写入位置以向存储器写入数据时,选择具有至少一个以上存储区的存储块中的存储区地址和多个冗余块中的由写入切换位所表示的冗余块的存储区地址作为写入位置,冗余块是针对存储块冗余设置的并具有至少一个以上存储区,写入切换位表示任一个冗余块;以及当选择读取位置以读取通过数据写入而写入到存储器的数据时,选择存储块的存储区地址和由表示通过选择写入位置而选择的冗余块的读取切换位所表示的冗余块的存储区地址作为读取位置,其中,多个冗余块具有相同数量的存储区并且被设置为冗余块中的存储区地址是连续的。

权利要求 :

1.一种存储器控制方法,所述方法对具有多个存储区的存储器执行先入先出存取控制,所述方法包括以下步骤:当选择写入位置以向所述存储器写入数据时,选择具有至少一个以上存储区的存储块中的存储区地址和多个冗余块中的由写入切换位所表示的冗余块的存储区地址,作为写入位置,所述冗余块是针对所述存储块冗余设置的并且具有至少一个以上存储区,所述写入切换位表示所述多个冗余块中的任一个冗余块;和当选择读取位置以读取通过数据写入而写入到所述存储器的数据时,选择所述存储块的存储区地址和由表示通过选择所述写入位置而选择的冗余块的读取切换位所表示的冗余块的存储区地址,作为读取位置,其中,所述多个冗余块具有相同数量的存储区,所述多个冗余块被设置为所述冗余块中的存储区地址是连续的。

2.根据权利要求1所述的存储器控制方法,其中,每次写入数据时,在所述冗余块之间进行切换以包括被选择为所述写入位置的地址。

3.根据权利要求1所述的存储器控制方法,其中,所述多个冗余块被设置在所述存储器的端部。

4.一种对具有多个存储区的存储器执行先入先出存取控制的存储器控制装置,该存储器控制装置包括:写入位置选择部,当向所述存储器写入数据时,该写入位置选择部选择具有至少一个以上存储区的存储块中的存储区地址和多个冗余块中的由写入切换位所表示的冗余块中的存储区地址,作为写入位置,所述冗余块是针对所述存储块而冗余设置的,并且具有所述存储器的存储区中的至少一个以上存储区,所述写入切换位表示多个冗余块中的任一个冗余块;和读取位置选择部,当读取通过向所述存储器写入数据而写入的数据时,该读取位置选择部选择所述存储块的存储区地址和由表示通过选择所述写入位置而选择的冗余块的读取切换位所表示的冗余块的存储区地址,作为读取位置,其中,所述多个冗余块具有相同数量的存储区,并且所述多个冗余块被设置为在所述冗余块中具有连续的存储区地址。

5.根据权利要求4所述的存储器控制装置,其中,每次写入数据时,在所述冗余块之间进行切换以包括被选择为所述写入位置的地址。

6.根据权利要求4所述的存储器控制装置,其中,所述多个冗余块被设置在所述存储器的端部。

说明书 :

存储器控制方法和存储器控制装置

技术领域

[0001] 本发明涉及存储器的存取控制。

背景技术

[0002] FIFO(先入先出)是众所周知的控制RAM(随机存取存储器)的方法。接下来描述对RAM的FIFO存取控制。图8示意性地示出FIFO存取控制。
[0003] 如图8所示,根据FIFO存取控制,初始,将第一至第十数据项按该顺序写入RAM的地址0~9中。接着,在已写入的数据项被覆写之前,读取第一至第十数据项。之后,按顺序写入第一至第十数据项。
[0004] 接下来描述FIFO存取控制的存取时序。图9示出常规RAM的控制时序。顺带提及的是,图9中将数据写入一个地址的间隔为20个时钟。而且,从每个地址读取数据占用一个时钟;接连读出数据。
[0005] 如图9所示,每次按20个时钟的间隔对RAM输入“写入使能”时,写入指针顺序地指向RAM的地址0~9,并且将10个数据项写入地址0~9。在操作期间,写入一个数据项占用20个时钟,这意味着将数据项写入地址0~9要占用200个时钟。而且,在将数据项写入RAM的最后一个地址9之后局部执行对已写入数据项的读取。在操作期间,读出一个数据项占用1个时钟,这意味着从地址0~9中读出数据项占用10个时钟。顺带提及的是,读取指针指向顶部地址,从该地址读取数据。因此,当没有向RAM输入“读取使能”时,读取指针保持在地址0。
[0006] 然而,问题是根据以上的FIFO存取控制方式,可以读取数据的时间段或者说可读取时间段较短。写入指针在指向最后一个地址9之后,指向第一个地址0。接着,数据被覆写。因此,必需在向最后一个地址9写入数据之后且在向第一个地址0写入数据之前,读取数据。
[0007] 为了解决可读取时间段短的问题,普遍采用另一种存取控制方法:将RAM的部分地址用作冗余块。图10是示意性地示出将部分RAM地址用作冗余块的存取控制的图。顺带提及的是,在图10中,与图8中示出的RAM相比,多了两个地址。然而,假定将10个数据项写入RAM。图11示出当将部分RAM地址用作冗余块时的存取控制时序。
[0008] 如图10所示,根据使用冗余块的存取控制,首先,将10个数据项顺序地写入12个地址中的地址0~9。接着,读取出已写入的10个数据项。之后,将10个数据项顺序地写入地址10、11以及0到7。也就是说,在任何情况下,将已写入第10个数据项的地址之后的两个地址的块留出用作冗余块。以此方式,设置冗余块用于读取或写入数据,因而延长了从第10个数据项被写入至下一个数据项覆写第1个数据项之间的时段。更具体地讲,如图11所示,与以上存取控制方式相比,可读取时间段的延长量等于构成冗余的地址的数量。
[0009] 接下来描述与使用冗余块的存取控制相关的结构。图12示出将部分地址用作冗余块的RAM的控制结构。
[0010] 如图12所示,设置写入使能生成部、写入地址生成部、读取使能生成部和读取地址生成部来控制RAM。在RAM中,如上所述,设置了存储区0~11,每个存储区的容量为10位(bit)。而且,在RAM周围设置了用于临时保存写入数据的10位触发器和用于临时保存读取数据的10位触发器。
[0011] 写入使能生成部生成针对RAM的1位“写入使能”。在写入使能生成部和RAM之间,设置1位触发器以临时保存“写入使能”。写入地址生成部生成4位写入地址作为RAM的写入指针。在写入地址生成部和RAM之间,设置4位触发器以临时保存写入地址。读取使能生成部生成针对RAM的1位“读取使能”。在读取使能生成部和RAM之间,设置1位触发器以临时保存“读取使能”。读取地址生成部生成4位读取地址作为RAM的读取指针。在读取地址生成部和RAM之间,设置4位触发器以临时保存读取地址。
[0012] 接下来描述读取地址生成部的操作。图13示出常规的读取地址生成部的操作。
[0013] 如图13所示,首先,读取地址生成部确定“预读取使能”是否为“1”(S901),该“预读取使能”指由读取使能生成部生成且有待输入到RAM中的“读取使能”。
[0014] 当“预读取使能”为1时(S901:是),读取地址生成部确定读取地址是否为“11”(S902)。
[0015] 当读取地址为“11”时(S902:是),读取地址生成部将0赋值给“下一个读取地址”,该地址是有待触发器保存的读取地址(S903)。
[0016] 另一方面,当读取地址不是“11”时(S902:否),读取地址生成部将通过把读取地址加1获得的值赋值给“下一个读取地址”(S904)。
[0017] 以此方式,根据将部分RAM地址用作冗余块的常规控制方法,每次读出数据时,都对“下一个读取地址”加1。
[0018] [专利文件1]日本特开No.2002-278831
[0019] [专利文件2]日本特开No.2003-288268
[0020] 然而,根据以上使用冗余块的存取控制方法,因为每次读取数据时都会改变“下一个读取地址”,所以RAM地址与要写入的数据项的顺序之间不存在关联。因此,临时保存读取地址的触发器需要一直保存读取地址。因此,问题是不可以将触发器用作保存其它操作的值的触发器。

发明内容

[0021] 本发明的目的是提供这样的存储器控制方法和存储器控制装置,所述方法和装置可以实现将触发器用于原来的用途且用于另一类型的逻辑。
[0022] 根据本发明的一个方面,该存储器控制方法包括:
[0023] 当选择写入位置以向所述存储器写入数据时,选择具有至少一个以上存储区的存储块中的存储区地址和多个冗余块中的由写入切换位所表示的冗余块的存储区地址,作为写入位置,所述冗余块是针对所述存储块冗余设置的并且具有至少一个以上存储区,所述写入切换位表示所述多个冗余块中的任一个冗余块;和当选择读取位置以读取通过数据写入而写入到所述存储器的数据时,选择所述存储块的存储区地址和由表示通过选择所述写入位置而选择的冗余块的读取切换位所表示的冗余块的存储区地址,作为读取位置,其中,所述多个冗余块具有相同数量的存储区,所述多个冗余块被设置为所述冗余块中的存储区地址是连续的。
[0024] 一种对具有多个存储区的存储器执行先入先出存取控制的存储器控制装置,该存储器控制装置包括:写入位置选择部,当向所述存储器写入数据时,该写入位置选择部选择具有至少一个以上存储区的存储块中的存储区地址和多个冗余块中的由写入切换位所表示的冗余块中的存储区地址,作为写入位置,所述冗余块是针对所述存储块而冗余设置的,并且具有所述存储器的存储区中的至少一个以上存储区,所述写入切换位表示多个冗余块中的任一个冗余块;和读取位置选择部,当读取通过向所述存储器写入数据而写入的数据时,该读取位置选择部选择所述存储块的存储区地址和由表示通过选择所述写入位置而选择的冗余块的读取切换位所表示的冗余块的存储区地址,作为读取位置,其中,所述多个冗余块具有相同数量的存储区,并且所述多个冗余块被设置为在所述冗余块中具有连续的存储区地址。
[0025] 通过在权利要求书中具体指出的要素和组合来实现和达到本发明的目的和优点。
[0026] 要理解前面的总体描述和接下来的详细描述都是示例性的和说明性的,而不构成对所要求保护的本发明的限制。

附图说明

[0027] 图1是示出根据本发明实施方式的集成电路结构的图。
[0028] 图2是示意性示出RAM的结构和存取控制的图。
[0029] 图3是示出控制部的结构的图。
[0030] 图4是示出RAM和控制部的结构的图。
[0031] 图5是示出写入地址生成部的操作的图。
[0032] 图6是示出读取地址生成部的操作的图。
[0033] 图7是示出控制部对RAM的控制时序的图。
[0034] 图8是示意性示出FIFO存取控制的图。
[0035] 图9是示出常规RAM的控制时序的图。
[0036] 图10是示意性示出将部分RAM地址用作冗余块的存取控制的图。
[0037] 图11是示出当将部分RAM地址用作冗余块时的存取控制时序的图。
[0038] 图12是示出将部分地址用作冗余块的RAM的控制结构的图。
[0039] 图13是示出常规读取地址生成部的操作的图。

具体实施方式

[0040] 下文中,将会参照附图描述本发明的实施方式。
[0041] 下面将描述本实施方式的集成电路的结构。图1示出根据本实施方式的集成电路的结构。
[0042] 如图1所示,本实施方式的集成电路1包括处理电路11、RAM 12(存储器)和控制部13(存储器控制装置)。处理电路11使用RAM 12执行预定处理。RAM 12临时存储处理电路11的预定处理的数据。控制部13执行对RAM 12的先入先出存取控制。
[0043] 接下来描述RAM的示意性结构及存取控制。图2示出RAM的示意性结构及存取控制。
[0044] 如图2所示,RAM 12包括用地址0~11表示的存储区,每个存储区具有10位的容量。在RAM 12中,用作冗余块1的地址0和1、用作冗余块2的地址2和3、用作固定块的地址4至11都受控制部13的控制。每次写入和读取的一个处理过程完成时在冗余块1和2之间发生切换。冗余块1和2是写入第一和第二数据项且从中读取数据项的块。固定块是写入第三至第十数据项的块。
[0045] 在RAM 12中,首先,将第一和第二数据项写入冗余块1;将第三至第十数据项写入固定块。在读取出所写入的数据项之后,用冗余块2代替冗余块1;将第一和第二数据项写入冗余块2,并且将第三至第十数据项写入固定块。顺带提及的是,冗余块可以不具有两个存储区:每个冗余块具有至少一个块及相同数量的存储区。优选的是有多个冗余块。冗余块可以位于RAM地址的任意位置处。然而,期望的是冗余块布置在RAM 12的开始地址或结尾地址,即RAM任一端的连续地址。
[0046] 接下来描述控制部的结构。图3示出控制部的结构。
[0047] 如图3所示,控制部13包括写入使能生成部131、写入地址生成部132(写入位置选择部)、写入切换位生成部133(写入位置选择部)、读取使能生成部134、读取地址生成部135(读取位置选择部)和读取切换位生成部136(读取位置选择部)。
[0048] 写入使能生成部131生成针对RAM 12的1位“写入使能”。写入地址生成部132生成4位写入地址作为RAM 12的写入指针。写入切换位生成部133生成写入切换位,以在将数据写入RAM 12时交替使用冗余块1和2。读取使能生成部134生成针对RAM 12的1位“读取使能”。读取地址生成部135生成4位读取地址作为RAM 12的读取指针。读取切换位生成部136生成读取切换位,以在从RAM 12读取数据时交替使用冗余块1和2。顺带提及的是,在写入数据的过程中,当写入切换位为0时使用冗余块1;当写入切换位为1时使用冗余块2。在读取数据的过程中,当读取切换位为0时使用冗余块1;当读取切换位为1时使用冗余块2。读取切换位生成部136生成读取切换位,该读取切换位使得能够在读取数据的过程中使用在写入数据过程中使用的冗余块。
[0049] 接下来描述RAM和控制部的结构。图4示出RAM和控制部的结构。
[0050] 如图4所示,在写入使能生成部131和RAM 12之间,设置有1位触发器131a以临时保存“写入使能”。在写入地址生成部132和RAM 12之间,设置有4位触发器132a以临时保存写入地址。在写入切换位生成部133和写入地址生成部132之间,设置有1位触发器133a以临时保存写入切换位。在读取使能生成部134和RAM 12之间,设置有1位触发器134a以临时保存“读取使能”。在读取地址生成部135和RAM 12之间,设置有4位触发器135a以临时保存读取地址。在读取切换位生成部136和读取地址生成部135之间,设置有触发器136a以临时保存读取切换位。在向RAM 12输入写入数据的输入路径上,设置有10位触发器137以临时保存向RAM 12写入的写入数据。在从RAM 12输出读取数据的输出路径上,设置有10位触发器138以临时保存从RAM 12读取的读取数据。
[0051] 在读取地址生成部135和触发器135a之间,设置有选择器139。选择器139在从读取使能生成部134接收到“预读取使能”之后从读取地址生成部135选择信号。当选择器139没有接收到“预读取使能”时,选择器139从处理电路11选择信号。假定来自处理电路11的信号是4位数据。将来自触发器135a的信号输出到RAM 12和处理电路11。
[0052] 接下来描述写入地址生成部的操作。图5示出写入地址生成部的操作。
[0053] 如图5所示,首先,写入地址生成部132确定“预写入使能”是否为1(S101),该“预写入使能”是指有待输入到触发器131a中的“写入使能”。
[0054] 当“预写入使能”为1时(S101:是),写入地址生成部132确定写入切换位是否为0(S102)。
[0055] 当写入切换位为0时(S102:是),写入地址生成部132确定是否将表示要写入RAM12的数据项的顺序的数据序号是否小于2(S103)。顺带提及的是,数据序号的初始数据为
0;数据序号落在0至9的范围内。
[0056] 当数据序号小于2时(S103:是),写入地址生成部132将数据序号的值赋值给“下一个写入地址”,即有待输入到触发器132a的写入地址(S104)。接着,写入地址生成部132输出“下一个写入地址”(S105),并且再次确定“预写入使能”是否为1(S101)。
[0057] 另一方面,当数据序号不小于2时(S103:否),写入地址生成部132将通过把数据序号的值加2而获得的值赋值给“下一个写入地址”(S106)。写入地址生成部132接着输出“下一个写入地址”(S105),并且再次确定“预写入使能”是否为1(S101)。
[0058] 当在步骤S102写入切换位不为0时(S102:否),写入地址生成部132将通过把数据序号的值与2相加而获得的值赋值给“下一个写入地址”(S106)。
[0059] 当在步骤S101中“预写入使能”不为1时(S101:否),写入地址生成部132再次确定“预写入使能”是否为1(S101)。
[0060] 接下来描述读取地址生成部的操作。图6示出读取地址生成部的操作。
[0061] 如图6所示,读取地址生成部135确定“预读取使能”是否为1(S201),该“预读取使能”指有待输入到触发器134a中的“读取使能”。
[0062] 当“预读取使能”为1时(S201:是),读取地址生成部135确定读取切换位是否为0(S202)。
[0063] 当读取切换位为0时(S202:是),读取地址生成部135确定表示要写入RAM 12的数据项的顺序的数据序号是否小于2(S203)。
[0064] 当数据序号小于2时(S203:是),读取地址生成部135将数据序号的值赋值给“下一个读取地址”,即有待输入到触发器135a的读取地址(S204)。接着,读取地址生成部135输出“下一个读取地址”(S205),并且再次确定“预读取使能”是否为1(S201)。
[0065] 另一方面,当数据序号不小于2时(S203:否),读取地址生成部135将通过把数据序号的值与2相加而获得的值赋值给“下一个读取地址”(S206)。读取地址生成部135接着输出“下一个读取地址”(S205),并且再次确定“预读取使能”是否为1(S201)。
[0066] 当在步骤S202读取切换位不为0时(S202:否),读取地址生成部135将通过把数据序号的值与2相加而获得的值赋值给“下一个读取地址”(S206)。
[0067] 当在步骤S201“预读取使能”不为1时(S201:否),读取地址生成部135再次确定“预读取使能”是否为1(S201)。
[0068] 如上所述,相比于固定块,交替地使用多个冗余块。因而,可读取时间段扩展了与构成冗余的地址数量相同的量;RAM的地址与数据存取的次序相关联。而且,冗余块被连续地布置成位于RAM的开始或结尾地址处。因而,可以减少写入地址生成部132和读取地址生成部135的处理阶段。也就是说,作为电路,写入地址生成部132和读取地址生成部135可以制造成小尺寸。
[0069] 接下来描述根据本实施方式的读取指针的保存时间。图7示出控制部对RAM的控制时序。
[0070] 由于上述RAM地址与存取次序之间的关联性,读取地址生成部135可以基于读取切换位和数据序号确定“下一个读取地址”。也就是说,因为读取地址生成部135可以不依赖于读取地址而确定“下一个读取地址”,所以不需要触发器135a持续地保存读取地址。如图7所示,触发器135a仅在读取数据的时间段保存作为读取指针的读取地址。也就是说,即使在不读取数据时,触发器135a也可以由另一种逻辑重用。
[0071] 顺带提及的是,如图7所示,根据本实施方式,对于一次写入访问过程,在20个时钟的间隔内写入使能生成部131输出“写入使能”共10次。从给定写入访问过程到下次写入访问过程的时段内,到写入指针指向固定块为止,读取使能生成部134生成“读取使能”。对于一次读取访问过程,在1个时钟的间隔内10次输出“读取使能”。也就是说,在小于或等于一次写入访问过程的时间段中局部执行读取访问过程。
[0072] 在集成电路中,触发器相对较贵。因而,将触发器用于另一种逻辑和原来的用途有助于降低成本。而且,随着RAM地址的数量增加,触发器135a的位数量也会增加;将触发器135a用于另一种逻辑和原来的用途可减小电路的尺寸。
[0073] 此外,根据例如FPGA(现场可编程门阵列)的高级设计,触发器的数量是事先在内部逻辑可以改变的集成电路中确定的。而且,根据高级设计,由硬件描述语言生成的逻辑被优化为电路。例如,作为电路的优化,对于在使用触发器时具有不同时序的不同类型的逻辑,同一触发器自动被分配。因此,根据本发明,在高级设计的集成电路中,可以有效地使用有限数量的触发器。
[0074] 本文描述的所有示例和条件语言都用于教导目的,以帮助读者理解本发明和由发明者贡献的以促进本领域的思想,并被理解为是不限于这些具体描述的示例和条件,在说明书中的这类示例的组织也不涉及表示本发明的优劣。尽管已详细地描述了本发明的实施方式,但是应当理解,在不脱离本发明的精神和范围的情况下,可以对此做出各种变化、替代物和改变。