用以跟踪存储器存取的存储页管理装置及方法

文档序号:6417408阅读:182来源:国知局
专利名称:用以跟踪存储器存取的存储页管理装置及方法
技术领域
本发明涉及一种存储器管理装置及方法,且特别涉及一种可跟踪存储器存取情形以提高选中率及减少存储器存取延迟的存储页管理装置及方法。
在当今多工的电脑作业系统中,每一存储器主控电路(memory master)的连续多个存取动作大都在存储器中的某一个地址区域,因此如何使存储器主控电路的存取存储器的耗费时间(overhead)降至最少以及减少存取的延迟时间(latency),变成目前最重要的课题。
现有的同步动态随机存取存储器(Synchronous Dynamic Random AccessMemory,简称SDRAM)最多有4个副区块(sub-bank),因为每个副区块仅可开启一个存储页,也就是最多可以开启4个存储页,因此现有的存储器控制器针对每个存储区块(bank)设计固定的控制电路来分别管理DRAM的存储页,例如最多可以同时开启2个存储页或4个存储页,则要有4组控制电路。
因此现有做法的缺点为1.若某个存储区块上并没有插上SDRAM,或是插上SDRAM,但此SDRAM只有两个副区块,此时因为未被用到的控制电路不能被其他存储区块使用,未被用到的控制电路就浪费了。
2.假如在系统中使用的是虚拟通道SDRAM(Virtual Channel SDRAM,简称VC-SDRAM),因为VC-SDRAM最多可以同时开启16个通道,因此若只做4组控制电路,则有12个通道无法使用。相应地,假如做16组控制电路,则控制电路会占用太大的面积,不符合经济效益要求,且因为电路太大造成延迟太大,故不适用于高速的系统中,另外,若使用SDRAM,则至少有12组控制电路会被浪费。
因此针对上述问题以及其他目的,本发明提出一种用以跟踪存储器存取的存储页管理装置,利用最久未使用(Least Recently Used,简称LRU)的演算法,不论系统使用何种存储器,例如EDO DRAM、SDRAM、或是VC-SDRAM,皆可共用,具有弹性的最大优点。
本发明提出的用以跟踪存储器存取的存储页管理装置包括一页暂存电路、一对比电路、一利用率暂存电路、及一确认电路。
在页暂存电路中具有多个储存单元,用以供储存多个存储页的地址数据,其中每一该储存单元存放一个存储页的地址数据。
该对比电路连接至该页暂存电路,用以接受一存取地址,并根据该存取地址与该页暂存电路的数据的对比结果,输出一选中信号,当该存取地址选中该页暂存电路中储存的这些存储页的地址数据之一时,该选中信号为作用。
该利用率暂存电路连接至该页暂存电路,用以控制这些储存单元的使用情形。该确认电路连接至该页暂存电路,用以判断这些储存单元的数据是否有效。
依照本发明之一较佳实施例,该页暂存电路包括一数据储存表、一锁存电路、及一选择电路,这些储存单元位于该数据储存表中,该锁存电路连接至该对比电路,用以将该对比电路输出的该选中信号锁存住,该选择电路连接至该锁存电路、该利用率暂存电路、该确认电路、及该数据储存表,用以根据锁存住的该选中信号及该利用率暂存电路与该确认电路的输出信号选择该数据储存表的这些储存单元之中之一个。
另外,在存储页管理装置之中还具有多个确认比特,每一确认比特分别对应于这些储存单元之一,当该确认比特为设定时,储存于对应的该储存单元的数据才是有效的。并且该对比电路根据这些确认比特判断这些储存单元的数据是否为有效,该对比电路亦负责更新这些确认比特的值。
该存储页管理装置中亦具有多个利用率数据,每一利用率数据对应于这些储存单元之一,用以代表这些储存单元的利用率。该利用率暂存电路根据这些利用率数据控制这些储存单元的使用情形,并负责更新这些利用率数据。
依照本发明之一较佳实施例,其中这些利用率数据可以用数字代表对应的该储存单元的利用率,当该利用率数据的值越大,代表对应的该储存单元越久未被使用。
该存储页管理装置于操作时,当该存取地址未选中这些储存单元中储存的这些存储页的地址数据时,将该存取地址储存至对应于一最大利用率值的该储存单元。并且,当对应于该最大利用率数据值的该储存单元的确认比特为有效时,在将该存取地址储存至对应于该最大利用率值的该储存单元的前,根据该储存单元的地址数据产生一还原地址,用以还原对应之一存储页的状态。
依照本发明的另一作法,该存储页管理装置接受一存取地址,并输出一页选中信号及一区块选中信号,而该存储页管理装置包括一页暂存电路、一对比电路、一利用率暂存电路,及一确认电路。
其中该页暂存电路具有多个储存单元,用以供储存多个存储页的地址数据,其中每一该储存单元存放一个存储页的地址数据,每一该地址数据包括一区块地址数据及一页地址数据。
该对比电路连接至该页暂存电路,用以接受一存取地址,并根据该存取地址与该页暂存电路的数据的对比结果,输出该页选中信号及该区块选中信号,当该存取地址选中该页暂存电路中储存的这些存储页的地址数据之一的区块地址数据时,该区块选中信号为作用,当该存取地址选中该页暂存电路中储存的这些存储页的地址数据之一的该区块地址数据及该页地址数据时,该区块选中信号及该页选中信号同时作用。
该利用率暂存电路连接至该页暂存电路,用以控制这些储存单元的使用情形,当该存取地址未选中这些存储页的地址数据时,依据该利用率暂存电路由这些储存单元中找出一最久未使用的储存单元,并将该存地址存入该最久未使用的储存单元。
该确认电路连接至该页暂存电路,用以判断这些储存单元的数据是否有效。
依照本发明之一较佳实施例,当该存取地址选中该页暂存电路中储存的这些存储页的地址数据之一的区块地址数据但未选中该页地址数据时,则根据该存取地址更新该页地址数据。
依照上述的本发明的存储页管理装置,本发明提出一种用以跟踪存储器存取的存储页管理方法,包括下列步骤提供多个储存单元,用以储存多个存储页的地址数据;接受一存取地址;将该存取地址与这些储存单元的地址数据对比;当该存取地址选中这些储存单元之一的地址数据时,送出一选中信号;当该存取地址未选中这些储存单元之一的地址数据时,由这些储存单元找出一最久未使用的储存单元,将该存取地址存入该最久未使用的储存单元;以及当该存取地址未选中这些储存单元之一的地址数据且该最久未使用的储存单元已储存有效的地址数据时,在将该存取地址存入该最久未使用的储存单元的前,根据该最久未使用的储存单元原先储存的地址数据产生一还原地址信号,用以还原对应之一存储页的状态。
依照上述本发明所提出的用以跟踪存储器存取的存储页管理装置,可经由跟踪存储器主控电路的存取动作,除了可以增加页选中率及数据可供存储器主控电路分享之外,并且可以预先判断下一个流水线存取(pipelined access)是否需要预充电,用以在进行现行的存取时,即先送预充电(precharge)命令给另一个存储区块,预先对另一个存储区块进行预充电,可以减少存取的延迟时间。
为让本发明之上述和其他目的、特征、和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。


图1是本发明的用以跟踪存储器存取的存储页管理装置的方块图。
图2是本发明的存储页管理装置中使用的数据储存表的示意图。
图3是本发明的存储页管理装置的对比电路的较详细的方块图。
图4是本发明的存储页管理装置的页暂存电路的较详细的方块图。
图5A是本发明的存储页管理装置的利用率暂存电路的较详细的电路图。
图5B是本发明的存储页管理装置的确认电路的较详细的电路图。
图6是本发明的存储页管理装置的操作流程图。
图7A至图7G是本发明的存储页管理装置的数据表的操作过程的示意图。
图8A至图8D及图9A至图9B是本发明的存储页管理装置于不同操作情形下的时序图。
为了达到跟踪每一存储器主控电路的功能,于系统存储器控制器内建数据储存表(page tabel),如此可让系统存储器控制器根据存储器主控电路存取存储器的过程,记录开启的存储页及存储区块的资讯,然后在随后的存取时,可与数据储存表的内容比较,如此可以提高页选中率(page hit rate)以及促进数据分享,亦可减少耗费时间。
请参照图1,其表示依照本发明一较佳实施例之一种用以跟踪存储器存取的存储页管理装置的示意图。
如图所示,存储页管理装置100可接受地址数据的信号DA[27:11]、SEGIN[1:0]、及BANK[9:0],再与内部储存的数据对比,然后送出选中信号,其中信号DA[27:11]、SEGIN[1:0]、及BANK[9:0]可以是由存储器主控电路(master)(未示出)所送出的地址信号并经解码电路(示示出)所得到,另外,选中信号可以包括页选中(page hit)信号ONPAG、区块选中(bank hit)信号BKHIT、及节选中(segment hit)信号SEGHIT。存储页管理装置100送出的选中信号可供存储器控制电路控制存储器时的参考,例如根据地址信号所得到的选中信号为不作用,则表示其存取的地址是在存储器的关闭的存储页,因此在进行存取存储器的数据前,必须送出相关的命令给存储器,例如预充电(precharge)及启动(activate)命令,用来关闭已开启的存储页及开启所需的存储页。
存储页管理装置100中主要包括对比电路110、页暂存电路120、利用率暂存电路130、及确认电路140。
于页暂存电路120中具有数据储存表125,于数据储存表125中,具有多个储存单元,可供储存关于跟踪存储器存取的相关数据。数据储存表125可使用图2的表格来表示。以表格中的每一个横列(row)为一个储存单元,在此以8个储存单元(A~H)为例。在每一个列,即每个储存单元中储存关于存储器存取的数据。其中储存栏BKVC为用来储存VC-SDRAM的地址数据。储存栏BNK为用来储存SDRAM或VC-SDRAM的区块或副区块(sub-bank)的地址数据。储存栏SEG为用来储存VC-SDRAM的节段(segment)的地址数据。储存栏PAG为用来储存SDRAM或VC-SDRAM的存储页的地址数据。储存栏LRU为该储存单元被参考到的利用率(uti1ization)的等级数据。储存栏VLD代表该储存单元的数据是否为有效的(valid)。当然,已知此技术者可知道,在数据储存表125中,并不限定于储存上述数据,还可按实际需要,储存关于存储器存取控制所需的其他数据。另外,数据储存表125中的各个栏位,亦可视实际电路设计而定,设计在不同的电路方块中,例如,储存栏LRU可设计于利用率暂存电路130中,而储存栏VLD可设计在确认电路140之中。
请参照图3,其表示对比电路110的较详细的方块图。如图所示,对比电路110包括页对比电路310、区块对比电路320、以及与非(NAND)门330、340、及350。其中页对比电路310将输入的信号DA[27:11]及信号SEGIN[1:0]与地址数据311~318对比,然后输出信号PAGHIT[7:0]及SEGHIT[7:0],如前所述,地址数据311~318可以是储存在数据储存表125中的数据PAG、SEG、及BKVC,并且以“PAG A”代表储存单元A的PAG值,其他数据的标示亦参照此方式。区块对比电路320将信号BANKIN[9:0]与地址数据321~328对比,然后输出的信号BKHIT_[H:A]_、PGHIT_[H:A]_、及SGHIT_[H:A]_,如前所述,地址数据321~328可以是储存在数据储存表125中的数据BNK及VLD。在此实施例中,信号BKHIT_[H:A]_、PGHIT_[H:A]_、及SGHIT_[H:A]_是以低电位表示该信号为作用。因此,信号BKHIT_[H:A]_、PGHIT_[H:A]_、及SGHIT_[H:A]_再经NAND闸330、340、及350以产生选中信号BKHIT、ONPAG、及SEGHIT,这三个选中信号亦是以低电位代表其为作用。
请参照图4,其表示页暂存电路120的较详细的方块图。如图所示,于页暂存电路120中除了具有储存存储器操作所需的地址数据的数据储存表125之外,尚包括锁存电路410及选择电路420。锁存(latch)电路410可将对比电路110送出的信号及其他电路(示示出)送来的信号锁存住,由锁存电路410锁存住的信号经连线412送至选择电路420,连线412具有对应于锁存电路410的输入信号的多条信号线,用以将锁存住的信号送至选择电路420。选择电路420则根据锁存电路410、利用率暂存电路130、及确认电路140送来的信号产生信号SEL,用来选择数据储存表125中的储存单元。然后,依据其他的输入信号,例如信号BANK、LDA[27:11]、SEGMENT、及VCSDRAM,针对被选择到的储存单元进行数据更新。如前所述,数据储存表125中储存地址数据431~438,并且,这些地址数据可供对比电路110操作时使用。
请参照图5A,其表示利用率暂存电路130的较详细的电路图。如图所示,利用率暂存电路130是用来更新LRU的值。其构想为,将对应于所选择到的储存单元的LRU值设为0,亦即代表其数据为最近使用过。并且将比所选择到的储存单元的原来的LRU值小的LRU值都加一,用以使其他的LRU值都比被选择到的LRU值大。其关键为每一个储存单元的LRU值必须是唯一的,以具有八个储存单元的LRU值为例,每一个储存单元的LRU值必须是0至7之中之一个,并且是唯一的,即所有的LRU值的总和必须等于28,亦即指定至每一项目的LRU值的0至7的值的总和。否则此装置的操作即会出现问题。更新LRU的值是在接收到比较信号PGCMP或更新信号PGUPD之一个周期之后进行,一个周期的延迟时间可供计算新的LRU值。当其选中存储区块时,则在对比之后,确定其为选中某个储存单元的地址数据,故在信号PGCMP之一个周期之后进行LRU值的更新,相对的,在其他未选中任何储存单元的情况时,则在更新储存单元的数据时,更新其LRU值,故在信号PGUPD之一个周期之后进行LRU值的更新。在此装置最初开始操作时,亦需将每个储存单元的LRU值启始化,以供其后的选择动作。
请参照图5B,其表示确认电路140的较详细的电路图。如图所示,确认电路140可以依据输入的信号输出对应于每一储存单元的确认比特,用以确认对应的储存单元的储存值是否为有效的数据。例如,当其确认比特为设定(set)(如设为1)时,表示其对应的储存单元的储存值为有效的存储页地址,可从对比电路110用来与输入的地址信号作对比。而当确认比特为未设定(reset)(如设为0)时,则其对应的储存单元为尚未储存有效数据或是所储存的数据为无效的。
依照以上所叙述的本发明的存储页管理装置100,在操作时主要包括下述几个主要的步骤第一,在开始时,将数据储存表的每一储存单元的内容设定为预设值(例如,将地址数据设成0),以避免任何的不确定数据影响正确的比较。
第二,将现行的存储器存取的地址与数据储存表的内容比较,以决定要更新或是取代数据储存表的内容。
第三,结束最久未使用(Least Recently Used,简称LRU)与确认比特,以决定那一个储存单元要更新或是被取代。
请参照图6,其表示依照本发明的实施例的存储页管理装置的操作流程图。
如图所示,开始之后,在步骤610,接受存储器主控电路送出的存取地址。
在步骤612,将得到的存取地址与数据表的地址值对比,判断是否选中某个储存单元的地址值。
假如得到的存取地址选中某个储存单元的地址值,则至步骤614,送出选中信号,再到步骤628,更新相关的LRU值,亦即将选中的储存单元的LRU值设为0,并将比其原LRU值小的各个储存单元的LRU值分别加一,然后至结束的步骤,完成现行存取地址的处理。
假如得到的存取地址未选中任何一个储存单元的地址值,则至步骤620,在数据表中找出具有最大的LRU值的储存单元。
在步骤622,判断所找出的具有最大的LRU值的储存单元的VLD值是否为有效。
假如所找出的具有最大的LRU值的储存单元的VLD值为有效,表示该储存单元已经储存有效的地址数据,则至步骤624,根据该储存单元储存的地址值产生还原地址,用以关闭已开启的对应的存储页,然后至步骤626。
假如所找到的具有最大的LRU值的储存单元的VLD值为无效,表示该储存单元尚未储存有效的地址数据,则直接至步骤626。
在步骤626,将刚接收到的现行存取地址放入所找到的具有最大的LRU值的储存单元中。
在步骤628,更新相关的LRU值,亦即将所找到的具有最大的LRU值的储存单元的LRU值设为0,而其他的储存单元的LRU值则分别加一。然后至结束的步骤,完成现行存取地址的处理。
为了更清楚描述以上所述的操作原则,以下将配合图说明其操作过程。
请参照图7A至图7G,其所表示为数据表的操作的示意图。为了使解释更简洁易懂,图示中的数据表并未包括所有的项目,如仅以地址值代表存储页及存储区块的地址。虽然如此,现有此技术者仍应能够了解,其操作原理仍是一致的。
请参照图7A,其所表示为数据表的启始数据。所有储存单元的地址值皆设定为预设值,如图所示所有的地址值皆设定为0,使其在操作时,能够避免因数据表中存在不确定的地址值而影响正确的对比。因为所有的地址值都是没用的,因此所有的储存单元的VLD值皆设定为无效的,如图所示皆设为0。每一储存单元的LRU则设定为唯一的LRU值,如图所示,储存单元A~H分别设定为7~0。
请参照图7B所表示,当存储器主控电路对存储器进行第一次存取时,假设其送出的存储页的地址值为“10”,因为此时所有的储存单元皆未使用,所以选择表中LRU值为最大的储存单元A,将地址存入其中的地址值栏,并设定其VLD值,即由0改变为1,然后将所属的LRU值设为0,并将数据表中的其他储存单元的小于7的LRU值皆加一,即将储存单元B~H的LRU值皆加一。
请参照图7C所表示,当存储器主控电路对存储器进行第二次存取时,假设其送出的存储页的地址值为“20”。与数据表中的现有数据对比,并未选中数据表的任何一笔数据。因此找出数据表中LRU值最大的储存单元,即LRU值为7的储存单元B,然后将地址值存入其中,并设定其所属的VLD值,例如,从原来的0改变1,再将其所属的LRU值设为0,并将所有小于7的LRU值加一。
请参照图7D所表示,当对存储器进行过数次存取之后,数据表中的所有储存单元的数据皆为有效的,数据表最后的地址值、LRU值、及VLD值如图所示。
请参照图7E,当再次对存储器进行存取时,假设其送出的存储页的地址值为“90”。与数据表中的现有数据对比,并未选中数据表中的任何一笔数据,因此找出数据表中LRU值最大的储存单元,即LRU值为7的储存单元A,然后将地址值存入其中,其VLD值原来已经是设定的,无需再设定,最后,将其所属的LRU值设为0,并将所有小于7的LRU值加一。因为储存单元A的VLD值原来已经是设定的,因此在更新为新的地址值的前,需按照原来的地址值,将已开启的存储页关闭,例如,送出预充电命令来进行预充电的动作。
请参照图7F,当再次对存储器进行存取时,假设其送出的存储页的地址值为“40”。与数据表中的现有数据对比后,确定选中数据表中的储存单元D的地址数据,因此不需改变其地址值及VLD值,只需更新相关的LRU值,即将其LRU值由原来的5改设为0,并将所有LRU值小于5的其他储存单元,例如储存单元A、D、F、G及H,所属的LRU值加一。
请参照图7F,当CPU再次对存储器进行存取时,假设其送出的存储页的地址值为“22”,假设其与地址值为“20”的存储页在同一个存储区块。因此将地址值“22”与数据表中的储存单元B的地址数据对比后,发现为区块选中(bank hit)。因为在同一个存储区块中,在同一时间内,只能开启一个存储页。因此保留其VLD值不变,但将其地址更新为新的地址值“22”,并且更新相关的LRU值,即其原来的LRU值为7,故将其所属的LRU值设为0,并将所有小于7的LRU值加一。其中,在开启新的存储页的前,必须依照原有的地址值将同一存储区块中的已开启的存储页关闭。
请参照图8A至图8D及图9A至图9B,其所表示为本发明的存储页管理装置100于不同操作情形下的时序图。其中,所有电路的操作皆参考共同的时脉信号DCLK,因此于时序图中将以时脉信号DCLK为基准来解释。
请参照图8A所表示,其为页选中的存取(或是VC-SDRAM的节选中(segment-hit)),因为其存储区块及已启动的列地址的资讯已储存在数据表的储存单元内,因此无需更动其地址内容,只需更新其LRU值,例如设为0。如图所示,假设所选中的为储存单元A的数据,当存取地址送出之后,经过对比电路110的对比之后,在周期T0之后,将其输出信号ONPAG及BKHIT变为高电位,表示页选中及区块选中,然后,在周期T7之后,PGCMP变为高电位,用以将对比电路110送出的信号锁存住,做为数据更新的用。在周期T9之后的信号LRU_A的变化,是将储存单元A所属的LRU值设为0。
请参照8B所表示,其为区块选中但存储页未选中(page-miss)的存取情形。因为在SDRAM之一个存储区块中,在同一时间内,只允许启动一个列(即开启一个存储页),因此根据配合存取动作所送出的地址所选择到的储存单元,其中所存放对应于同一的存储块的存储页的地址需要更新为此次存取的地址。如图所示,在周期T0之后,由对比电路110送出的信号,只有信号BKHIT变为高电位。此时,依照数据表的地址数据关闭已开启的存储页。然后,信号PGCMP在周期T5之后变为高电位,用以将对比电路110送出的信号锁存住,以选择所选中的储存单元,以及用来更新所选择到的储存单元的存储页资讯。在周期T7之后,更新相关的LRU值,并且在周期T10之后,配合信号PGUPD及PAG_A来更新存储页的资讯,并且开启所需的新的存储页。
当进行存储器的存取时,其地址与数据表的数据对比后,其结果为区块未选中(bank-miss)的情况时,则必须由数据表中找一个储存单元来存放最近使用过的数据,在此情形下,可分成两种情况来讨论,分别配合图叙述如下。
请参照图8C所表示,其为区块未选中的存取情形,并且在数据表中仍有未使用的储存单元。由对比电路110对比存储器存取的地址,确定未选中任何一个储存单元的数据,故信号ONPAG及BKHIT皆未变化,在周期T1之后,由信号PGCMP将信号锁存住,再选择VLD值为未设定的储存单元,依照前面所述的操作方式,必须选择LRU值最大的储存单元,例如LRU值为7的储存单元,在此假设所选择到的是储存单元A。然后,在周期T4之后,配合信号PGUPD,将信号PAG_A及BNK_A的地址数据写入储存单元A,同时由信号VLD_A设定其VLD值,再经过一个周期后,经由信号LRU_A将其LRU值设为0,同时亦将其他有关的储存单元的LRU值更新,即将小于7的LRU值皆加一。
请参照图8D所表示,其为区块未选中的存取情形,并且数据表中的储存单元皆已存放数据。在此情形时,必须由数据表中找出最久未使用(LeastRecently Used,简称LRU)的储存单元来存放新的数据,例如LRU值为7的储存单元。如图所示,由对比电路110对比存储器存取的地址,确定未选中任何一个储存单元的数据,故信号ONPAG及BKHIT皆未变化,在周期T1之后,由信号PGCMP将信号锁存住,并且找出LRU值最大的储存单元,例如LRU值为7的储存单元,假设所选择到的储存单元A。在以新的值取代所选择到的储存单元的原有的数据前,必须先根据原来的存储区块数据对SDRAM做预充电(precharge)的动作,用以关闭原先的存储区块及副区块(sub-bank)。这可以使用扫描正反器(flip flop)来达到,在信号PGCMP出现时的时脉信号之上升缘时,即周期T7之上升缘,将所选择到的储存单元的原来的数据锁存住,以产生信号LPGBK及LPGSB的存储区块及次区块的预充电命令。然后,在周期T6之后,配合信号PGUPD,将信号PAG_A及BNK_A送出的数据写入数据表中所选择到的储存单元。并且在周期T8之后,更新相关的LRU值,即将所选择到的储存单元的LRU值设为0,并且将其他所有储存单元的LRU值加一。
对于以上所提到的信号LPGBK及LPGSB,假设系统中具有八个存储区块,则以八比特宽的信号LPGBK
来表示,其中每一比特对应于一个存储区块,且信号LPGBK
代表系统的第一个存储区块。并且,假设每一个存储区块中具有四个次区块,则以两个比特的信号LPGSB[1:0]来表示。当使用VC-SDRAM时,假如所选到的储存单元已有数据,亦需产生还原(restore)资讯(RXPAG[27:11],RXSEG[1:0])以供还原周期(restore cycle)。
因为在电脑系统中可能同时使用不同型式的存储器,因此必须考虑配合不同的存储器的控制方式,在控制方式上予以配合。例如在电脑系统中同时使用EDO/FP DRAM及SDRAM时,EDO/FP DRAM的8比特宽的信号CAS#[7:0]是与SDRMAM一起使用的。另外在执行DRAM更新(refresh)的前,所有的存储区块必须在闲怠(idle)状态,即经过预充电。页更新信号PGFLH即是用来将确认比特设为无效(即将对应的VLD值设为0),用以做为存储器更新周期及由EDO/FP DRAM切换至SDRAM时的用。接下来将配合时序图讨论由EDO/FP DRAM切换至SDRAM的情形。
请参照图9A,其所表示为区块未选中而且要由EDO/FP DRAM切换至SDRAM时的存取情形。如图所示,假设前一次存取是存取EDO/FP DRAM的数据,在周期T1时,根据前一次的存取,配合信号PGUPD,将信号PAG_A及BNK_A的地址数据存入储存单元A,并且在周期T3,经信号LRU_A将其LRU值设为0,信号VLD_A则保持为设定。接着,在周期T4出现的信号PGCMP,为对SDRAM的存取,经对比电路110对比之后,确定未选中任何一个储存单元的数据,因为EDO/FP DRAM的不使用时,不能保持开启的存储页,因此仍用储存单元A来存放此次存取的数据。在周期T5之后,信号PGFLH变为高电位,之后在周期T6时使信号VLD_A变为低电位,用来关闭EDO/FP DRAM,然后,在周期T7,配合信号PGUPD,将信号PAG_A及BNK_A的SDRAM的地址资讯存入储存单元A,并且开启所需的存储页,同时在周期T8时将信号VLD_A恢复为高电位,用以将其VLD值设定为有效,其LRU值则维持为0。
请照图9B,其所表示为选中SDRAM的存储区块而且要由EDO/FPDRAM切换至SDRAM的存取情形。如图所示,假设前一次存取是存取EDO/FP DRAM的数据,在周期T1时,根据前一次的存取,配合信号PGUPD,将信号PGA及BNK_A的地址数据存入储存单元A,并且在周期T3,经信号LRU_A将其LRU值设为0,同时信号LRU_B亦随之变化,例如将储存单元B的LRU值加一,信号VLD_A则保持为设定。接着,在周期T3出现的信号PGCMP,为对SDRAM的存取,经对比电路110对比之后,确定其选中储存单元B的数据,因此在周期T5之后,直接更新相关的LRU值,即由信号LRU_B将储存单元B的LRU值设为0,而比储存单元B的原来的LRU值小的LRU值则加一,例如,经由信号LRU_A将储存单元A的LRU值由0改变为1。并且,在周期T5之后,信号PGFLH变为高电位,使信号VLD_A变为低电位,用以关闭EDO/FP DRAM。
至于在存储器的更新周期,则与前面叙述的情况有所不同,必须将所有的储存单元的VLD值设为无效,因为所有的存储区块都必须进行预充电。在存储器更新之后,则按前面所叙述的原则操作。另外,当使用VC-SDRAM时,因为其使用自动预充电命令,故不需要更新其相关的储存资讯。
依照以上所叙述用以跟踪存储器存取的存储页管理装置,具有下列的优点,经由跟踪存储器主控电路的每一个存取动作,不只可以增加页选中率及数据可供存储器主控电路分享,并且可以预先判断下一个流水线存取(pipelined access)是否需要预充电,如此可在进行现行的存取时,即先送预充电命令给另一个存储区块,用以预先对另一个存储区块进行预充电,可以减少存取的延迟时间。
虽然本发明已以较佳实施例公开如上,然其并非用以限定本发明,任何本技术领域人员,在不脱离本发明的精神和范围内,当可作少许的更动与修改,因此本发明的保护范围当由后附的权利要求确定。
权利要求
1.一种用以跟踪存储器存取的存储页管理装置,包括一页暂存电路,具有多个储存单元,用以供储存多个存储页的地址数据,其中每一该储存单元存放一个存储页的地址数据;一对比电路,连接至该页暂存电路,用以接受一存取地址,并根据该存取地址与该页暂存电路的数据的对比结果,输出一选中信号,当该存取地址选中该页暂存电路中储存的这些存储页的地址数据之一时,该选中信号为作用;一利用率暂存电路,连接至该页暂存电路,用以控制这些储存单元的使用情形;以及一确认电路,连接至该页暂存电路,用以判断这些储存单元的数据是否有效。
2.如权利要求1所述的用以跟踪存储器存取的存储页管理装置,其中该页暂存电路包括一数据储存表、一锁存电路、及一选择电路,这些储存单元位于该数据储存表中,该锁存电路连接至该对比电路,用以将该对比电路输出的该选中信号锁存住,该选择电路连接至该锁存电路、该利用率暂存电路、该确认电路、及该数据储存表,用以根据锁存住的该选中信号及该利用率暂存电路与该确认电路的输出信号选择该数据储存表的这些储存单元之中之一个。
3.如权利要求1所述的用以跟踪存储器存取的存储页管理装置,其中还具有多个确认比特,每一确认比特分别对应于这些储存单元之一,当该确认比特为设定时,储存于对应的该储存单元的数据才是有效的。
4.如权利要求3所述的用以跟踪存储器存取的存储页管理装置,其中该对比电路根据这些确认比特判断这些储存单元的数据是否为有效,该对比电路亦负责更新这些确认比特的值。
5.如权利要求4所述的用以跟踪存储器存取的存储页管理装置,其中还具有多个利用率数据,每一利用率数据对应于这些储存单元之一,用以代表这些储存单元的利用率,该利用率暂存电路根据这些利用率数据控制这些储存单元的使用情形,并负责更新这些利用率数据。
6.如权利要求5所述的用以跟踪存储器存取的存储页管理装置,其中这些利用率数据以数字代表利用率,该利用率数据的值越大,代表对应的该储存单元越久未被使用。
7.如权利要求6所述的用以跟踪存储器存取的存储页管理装置,当该存取地址未选中这些储存单元中储存的这些存储页的地址数据时,将该存取地址储存至对应于一最大利用率值的该储存单元。
8.如权利要求7所述的用以跟踪存储器存取的存储页管理装置,当对应于该最大利用率数据值的该储存单元的确认比特为有效时,在将该存取地址储存至对应于该最大利用率值的该储存单元的前,根据该储存单元的地址数据产生一还原地址,用以还原对应之一存储页的状态。
9.一种用以跟踪存储器存取的存储页管理装置,用以接受一存取地址,并输出一页选中信号及一区块选中信号,该存储页管理装置包括一页暂存电路,具有多个储存单元,用以供储存多个存储页的地址数据,其中每一该储存单元存放一个存储页的地址数据,每一该地址数据包括一区块地址数据及一页地址数据;一对比电路;连接至该页暂存电路,用以接受一存取地址,并根据该存取地址与该页暂存电路的数据的对比结果,输出该页选中信号及该区块选中信号,当该存取地址选中该页暂存电路中储存的这些存储页的地址数据之一的区块地址数据时,该区块选中信号为作用,当该存取地址选中该页暂存电路中储存的这些存储页的地址数据之一的该区块地址数据及该页地址数据时,该区块选中信号及该页选中信号同时作用;一利用率暂存电路,连接至该页暂存电路,用以控制这些储存单元的使用情形,当该存取地址未选中这些存储页的地址数据时,依据该利用率暂存电路由这些储存单元中找出一最久未使用的储存单元,并将该存地址存入该最久未使用的储存单元;以及一确认电路,连接至该页暂存电路,用以判断这些储存单元的数据是否有效。
10.如权利要求9所述的用以跟踪存储器存取的存储页管理装置,当该存取地址选中该页暂存电路中储存的这些存储页的地址数据之一的区块地址数据但未选中该页地址数据时,则根据该存取地址更新该页地址数据。
11.一种用以跟踪存储器存取的存储页管理方法,包括下列步骤提供多个储存单元,用以储存多个存储页的地址数据;接受一存取地址;将该存取地址与这些储存单元的地址数据对比;当该存取地址选中这些储存单元之一的地址数据时,送出一选中信号;当该存取地址未选中这些储存单元之一的地址数据时,由这些储存单元找出一最久未使用的储存单元,将该存取地址存入该最久未使用的储存单元;以及当该存取地址未选中这些储存单元之一的地址数据且该最久未使用的储存单元已储存有效的地址数据时,在将该存取地址存入该最久未使用的储存单元的前,根据该最久未使用的储存单元原先储存的地址数据产生一还原地址信号,用以还原对应之一存储页的状态。
全文摘要
一种存储页管理装置及方法,用于跟踪存储器主控电路对存储器的存取,于此存储页管理装置中包括页暂存电路、对比电路、利用率暂存电路、及确认电路,其中页暂存电路具有多个储存单元,用以供储存多个存储页的地址数据,对比电路连接至该页暂存电路,接受一存取地址,并将之与这些储存的地址数据对比,以产生一选中信号,用以做为控制存储器的参考,利用率暂存电路及确认电路则可供管理这些储存单元的参考。
文档编号G06F12/00GK1297195SQ9912482
公开日2001年5月30日 申请日期1999年11月18日 优先权日1999年11月18日
发明者赖瑾, 高智国, 陈佳欣 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1