CN1647048A - 用以跟踪内存存取的存储页管理装置及方法 - Google Patents
用以跟踪内存存取的存储页管理装置及方法 Download PDFInfo
- Publication number
- CN1647048A CN1647048A CNA038078708A CN03807870A CN1647048A CN 1647048 A CN1647048 A CN 1647048A CN A038078708 A CNA038078708 A CN A038078708A CN 03807870 A CN03807870 A CN 03807870A CN 1647048 A CN1647048 A CN 1647048A
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- storage element
- access
- address
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Dram (AREA)
Abstract
一种用以跟踪内存存取的存储页管理装置,用以跟踪一具有N个存储页的内存单元的存取历史数据,包括一管理装置用以管理该N个存储页,而该管理装置更进一步包括一页暂存电路、一利用率暂存电路。其中该页暂存电路用以储存K个储存单元,其中每一该储存单元存放着对应N个存储页其中之一页的地址数据;该利用率暂存电路,耦接至该页暂存电路,用以监视该储存单元的使用情形;其中该页缓存器的储存单元的数目K少于系统存储页的数目N。
Description
技术领域
本发明涉及一种内存管理装置及方法,且特别涉及一种可跟踪内存存取情形以提升命中率及减少内存存取延迟的存储页管理装置及方法。
背景技术
在今日多任务的计算机操作系统中,每一内存主控电路(memory master)的连续数个存取动作大都在内存中的某一个地址区域,因此如何使内存主控电路的存取内存的耗费时间(overhead)降至最少以及减少存取的延迟时间(latency),变成目前最重要的课题。
常见的同步动态随机存取内存(Synchronous Dynamic Random AccessMemory,简称SDRAM)最多有4个副区块(sub-bank),因为每个副区块仅可开启一个存储页,也就是最多可以开启4个存储页,因此常见的内存控制器针对每个存储区块(bank)设计固定的控制电路来分别管理DRAM的存储页,例如最多可以同时开启2个存储页或4个存储页,则要有4组控制电路。
换句话说,用以跟踪内存存取的常见的存储页管理装置中,包括一具有多个存储页的内存,以及一具有及多个储存单元的页暂存电路,用以供储存多个存储页的地址数据,其中每一该储存单元存放一个存储页的地址数据,而且页缓存器的储存单元数目会等于系统存储页的数目。
例如常见的系统内存有4条DIMM,其中每条DIMM有2个Bank,每个Bank有4个Sub-bank,每一Sub-bank可对应1个Memory Page,因此系统内存总共会有32个Memory Page。因此现有技术会有32个储存单元,亦即32个缓存器。因此系统内存越大,存储页越多,则所需的缓存器就愈多,因此芯片组的面积有就会越来越大!使得芯片的成本难以下降。
因此现有做法的缺点为:
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,皆可共享,具有弹性的最大优点。
本发明提出的用以跟踪内存存取的存储页管理装置包括一页暂存电路、一比较电路、一利用率暂存电路、及一确认电路。
在页暂存电路中具有多个储存单元,用以供储存多个存储页的地址数据,其中每一该储存单元存放一个存储页的地址数据。
该比较电路耦接至该页暂存电路,用以接受一存取地址,并根据该存取地址与该页暂存电路的数据的比较结果,输出一命中信号,当该存取地址命中该页暂存电路中储存的该存储页的地址数据之一时,激活(activated)该命中信号。
该利用率暂存电路耦接至该页暂存电路,用以控制该储存单元的使用情形。该确认电路耦接至该页暂存电路,用以判断该储存单元的数据是否有效。
依照本发明的一较佳实施例,该页暂存电路包括一数据储存表、一锁存电路、及一选择电路,该储存单元位于该数据储存表中,该锁存电路耦接至该比较电路,用以将该比较电路输出的该命中信号锁存住,该选择电路耦接至该锁存电路、该利用率暂存电路、该确认电路、及该数据储存表,用以根据锁存住的该命中信号及该利用率暂存电路与该确认电路的输出信号选择该数据储存表的该储存单元之中的一个。
另外,在存储页管理装置的中更具有多个确认位,每一确认位分别对应至该储存单元之一,当该确认位为设定时,储存于对应的该储存单元的数据才是有效的。并且该比较电路根据该确认位判断该储存单元的数据是否为有效,该比较电路亦负责更新该确认位的值。
该存储页管理装置中亦具有多个利用率数据,每一利用率数据对应至该储存单元之一,用以代表该储存单元的利用率。该利用率暂存电路根据该利用率数据控制该储存单元的使用情形,并负责更新该利用率数据。
依照本发明的一较佳实施例,其中该利用率数据可以用数字代表对应的该储存单元的利用率,当该利用率数据之值越大,代表对应的该储存单元越久未被使用。
该存储页管理装置于工作时,当该存取地址未命中该储存单元中储存的该存储页的地址数据时,将该存取地址储存至对应至一最大利用率值的该储存单元。并且,当对应至该最大利用率数据值的该储存单元的确认位为有效时,在将该存取地址储存至对应至该最大利用率值的该储存单元之前,根据该储存单元的地址数据产生一复原地址,用以复原对应的一存储页的状态。
依照本发明的另一作法,该存储页管理装置接受一存取地址,并输出一页命中信号及一区块命中信号,而该存储页管理装置包括一页暂存电路、一比较电路、一利用率暂存电路、及一确认电路。
其中该页暂存电路具有多个储存单元,用以供储存多个存储页的地址数据,其中每一该储存单元存放一个存储页的地址数据,每一该地址数据包括一区块地址数据及一页地址数据。
该比较电路耦接至该页暂存电路,用以接受一存取地址,并根据该存取地址与该页暂存电路的数据的比较结果,输出该页命中信号及该区块命中信号,当该存取地址命中该页暂存电路中储存的该存储页的地址数据之一的区块地址数据时,激活该区块命中信号,当该存取地址命中该页暂存电路中储存的该存储页的地址数据之一的该区块地址数据及该页地址数据时,同时激活该区块命中信号及该页命中信号。
该利用率暂存电路耦接至该页暂存电路,用以控制该储存单元的使用情形,当该存取地址未命中该存储页的地址数据时,依据该利用率暂存电路由该储存单元中找出一最久未使用的储存单元,并将该存地址存入该最久未使用的储存单元。
该确认电路耦接至该页暂存电路,用以判断该储存单元的数据是否有效。
依照本发明的一较佳实施例,当该存取地址命中该页暂存电路中储存的该存储页的地址数据之一的区块地址数据但未命中该页地址数据时,则根据该存取地址更新该页地址数据。
依照上述的本发明的存储页管理装置,本发明提出一种用以跟踪内存存取的存储页管理方法,包括下列步骤:
提供多个储存单元,用以储存多个存储页的地址数据;
接受一存取地址;
将该存取地址与该储存单元的地址数据比较;
当该存取地址命中该储存单元之一的地址数据时,送出一命中信号;
当该存取地址未命中该储存单元之一的地址数据时,由该储存单元找出一最久未使用的储存单元,将该存取地址存入该最久未使用的储存单元;以及
当该存取地址未命中该储存单元之一的地址数据且该最久未使用的储存单元已储存有效的地址数据时,在将该存取地址存入该最久未使用的储存单元之前,根据该最久未使用的储存单元原先储存的地址数据产生一复原地址信号,用以复原对应的一存储页的状态。
依照上述本发明所提出的用以跟踪内存存取的存储页管理装置,可经由跟踪内存主控电路的存取动作,除了可以增加页命中率及数据可供内存主控电路分享之外,并且可以预先判断下一个管线式存取(pipelined access)是否需要预充电,用以在进行现行的存取时,即先送预充电(precharge)命令给另一个存储区块,预先对另一个存储区块进行预充电,可以减少存取的延迟时间。
本发明的优点之一为降低生产成本。利用本发明的方法及电路来控制相同的内存,本发明的系统电路中仅需比现有技术少的缓存器数目,例如一半,即16个缓存器,则在芯片的电路布局(Layout)上可以节省16个缓存器的布局(layout)面积,因此同一片晶片(Wafer)可以切出比现有技术更多的芯片,成本也就随之降低。
附图说明
图1是本发明的用以跟踪内存存取的存储页管理装置的方块图;
图2是本发明的存储页管理装置中使用的数据储存表的示意图;
图3是本发明的存储页管理装置的比较电路的较详细的方块图;
图4是本发明的存储页管理装置的页暂存电路的较详细的方块图;
图5A是本发明的存储页管理装置的利用率暂存电路的较详细的电路图;
图5B是本发明的存储页管理装置的确认电路的较详细的电路图;
图6是本发明的存储页管理装置的工作流程图;
图7A至图7G是本发明的存储页管理装置的数据表的工作过程的示意图;
图8A至图8D及图9A至图9B是本发明的存储页管理装置于不同工作情形下的时序图。
其中,附图标记说明:
100存储页管理装置 110比较电路
120页暂存电路 125数据储存表
130利用率暂存电路 140确认电路
310页比较电路 320区块比较电路
330、340、及350 NAND门
410锁存电路 412联线
420选择电路
具体实施方式
为让本发明的上述和其它目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合附图详细说明如下。
为了实现跟踪每一内存主控电路的功能,于系统内存控制器内建数据储存表(page table),如此可让系统内存控制器根据内存主控电路存取内存的过程,记录开启的存储页及存储区块的信息,然后在随后的存取时,可与数据储存表的内容比较,如此可以提升页命中率(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的区块或副区块(sub-bank)的地址数据。储存栏SEG为用来储存VC-SDRAM的节段(segment)的地址数据。储存栏PAG为SDRAM的存储页的地址数据。储存栏LRU为该储存单元被参考到的利用率(utilization)的等级数据。储存栏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的储存单元H,然后将地址值存入其中,其VLD值原来已经是设定的,无需再设定,最后,将其所属的LRU值设为0,并将所有小于7的LRU值加一。因为储存单元H的VLD值原来已经是设定的,因此在更新为新的地址值之前,需按照原来的地址值,将已开启的存储页关闭,例如,送出预充电命令来进行预充电的动作。
请参照第7F图,当再次对内存进行存取时,假设其送出的存储页的地址值为“40”。与数据表中的现有数据比较后,确定命中数据表中的储存单元D的地址数据,因此不需改变其地址值及VLD值,只需更新相关的LRU值,即将其LRU值由原来的4改设为0,并将所有LRU值小于4的其它储存单元,例如储存单元A、B、C、及H,所属的LRU值加一。
请参照第7F图,当CPU再次对内存进行存取时,假设其送出的存储页的地址值为“22”,假设其与地址值为“20”的存储页在同一个存储区块。因此将地址值“22”与数据表中的储存单元B的地址数据比较后,发现为区块命中(bankhit)。因为在同一个存储区块中,在同一时间内,只能开启一个存储页。因此保留其VLD值不变,但将其地址更新为新的地址值“22”,并且更新相关的LRU值,即其原来的LRU值为4,故将其所属的LRU值设为0,并将所有小于4的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,其为区块未命中的存取情形,并且数据表中的储存单元皆已存放数据。在此情形时,必须由数据表中找出最久未使用(Least RecentlyUsed,简称LRU)的储存单元来存放新的数据,例如LRU值为7的储存单元。如图所示,由比较电路110比较内存存取的地址,确定未命中任何一个储存单元的数据,故信号ONPAG及BKHIT皆未变化,在周期T1之后,由信号PGCMP将信号锁存住,并且找出LRU值最大的储存单元,例如LRU值为7的储存单元,假设所选择到的储存单元A。在以新的值取代所选择到的储存单元的原有的数据前,必须先根据原来的存储区块数据对SDRAM做预充电(precharge)的动作,用以关闭原先的存储区块及副区块(sub-bank)。这可以使用扫描正反器(flipflop)来达成,在信号PGCMP出现时的时钟信号的上升缘时,即周期T7的上升缘,将所选择到的储存单元的原来的数据锁存住,以产生信号LPGBK及LPGSB的存储区块及次区块的预充电命令。然后,在周期T6之后,配合信号PGUPD,将信号PAG_A及BNK_A送出的数据写入数据表中所选择到的储存单元。并且在周期T8之后,更新相关的LRU值,即将所选择到的储存单元的LRU值设为0,并且将其它所有储存单元的LRU值加一。
对于以上所提到的信号LPGBK及LPGSB,假设系统中具有八个存储区块,则以八位宽的信号LPGBK[0:7]来表示,其中每一位对应至一个存储区块,且信号LPGBK[0]代表系统的第一个存储区块。并且,假设每一个存储区块中具有两个次区块,则以两个位的信号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,并且在周期T4,经信号LRU_A将其LRU值设为0,信号VLD_A则保持为设定。接着,在周期T4出现的信号PGCMP,为对SDRAM的存取,经比较电路110比较之后,确定未命中任何一个储存单元的数据,因为EDO/FPDRAM的不使用时,不能保持开启的存储页,因此仍用储存单元A来存放此次存取的数据。在周期T5之后,信号PGFLH变为高电位,使信号VLD_A变为低电位,用来关闭EDO/FP DRAM,然后,在周期T8,配合信号PGUPD,将信号PAG_A及BNK_A的SDRAM的地址信息存入储存单元A,并且开启所需的存储页,同时将信号VLD_A恢复为高电位,用以将其VLD值设定为有效,其LRU值则维持为0。
请照图9B,其为命中SDRAM的存储区块而且要由EDO/FPDRAM切换至SDRAM的存取情形。如图所示,假设前一次存取是存取EDO/FP DRAM的数据,在周期T1时,根据前一次的存取,配合信号PGUPD,将信号PAG_A及BNK_A的地址数据存入储存单元A,并且在周期T4,经信号LRU_A将其LRU值设为0,同时信号LRU_B亦随之变化,例如将储存单元B的LRU值加一,信号VLD_A则保持为设定。接着,在周期T4出现的信号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时,因为其使用自动预充电命令,故不需要更新其相关的储存信息。
由以上的叙述可知,本发明为一种用以跟踪内存存取的存储页管理装置,用以跟踪一具有N个存储页的内存单元的存取历史数据,包括一管理装置用以管理该N个存储页。该管理装置更进一步包括页暂存电路、一利用率暂存电路。其中该页暂存电路,用以储存K个储存单元,其中每一该储存单元存放着对应N个存储页其中之一页的地址数据;该利用率暂存电路,耦接至该页暂存电路,用以监视该储存单元的使用情形;其中该页缓存器的储存单元的数目K少于系统存储页的数目N。
进一步地,该管理装置更进一步包括一比较电路,耦接至该页暂存电路,用以接受一存取地址,并根据该存取地址与该页暂存电路的数据的比较结果,输出一命中信号(hit signal),当该存取地址命中(hit)该页暂存电路中储存的该存储页的地址数据之一时,激活(activated)该命中信号。
更进一步地该管理装置还包括一确认电路(validity-checking unit),耦接至该页暂存电路,用以判断该储存单元的储存数据是否有效。
在方法上,本发明为一种用以跟踪内存存取的存储页管理方法,用以跟踪一具有N个存储页的内存单元的存取历史数据,包括下列步骤:
(1)提供一页缓存器(page regiater),该存储页具有K个储存单元,用以储存多个存储页的地址数据,并提供一内存,该内存具有N个存储页,其中该页缓存器的储存单元数目K少于系统存储页的数目N;
(2)接受一存取地址;
将该存取地址与该储存单元的地址数据比较;
当该存取地址命中该储存单元之一的地址数据时,送出一命中信号;
当该存取地址未命中该储存单元之一的地址数据时,由该储存单元找出一最久未使用的储存单元,将该存取地址存入该最久未使用的储存单元;以及
(3)当该存取地址未命中该储存单元之一的地址数据且该最久未使明的储存单元已储存有效的地址数据时,在将该存取地址存入该最久未使用的储存单元之前,根据该最久未使用的储存单元原先储存的地址数据产生一复原地址信号,用以复原对应的一存储页的状态。
依照以上所叙述用以跟踪内存存取的存储页管理装置,具有下列的优点,经由跟踪内存主控电路的每一个存取动作,不只可以增加页命中率及数据可供内存主控电路分享,并且可以预先判断下一个管线式存取(pipelined access)是否需要预充电,如此可在进行现行的存取时,即先送预充电命令给另一个存储区块,用以预先对另一个存储区块进行预充电,可以减少存取的延迟时间。
本发明的另一优点为降低生产成本。以现有技术为例,系统内存有4条DIMM,其中每条DIMM有2个Bank,每个Bank有4个Sub-bank,每一Sub-bank可对应1个Memory Page,因此系统内存总共会有32个Memory Page。因此现有技术会有32个储存单元,例如32个缓存器。
而利用本发明的方法及电路,系统电路中仅需比现有技术更少的缓存器数目,例如一半,亦即16个缓存器,则在芯片的电路布局(Layout)上可以节省16个缓存器的layout面积,因此同一片晶片(Wafer)可以切出比现有技术更为多的芯片(chip)来,所以芯片成本就可以有效地降低。
虽然本发明已以较佳实施例公开如上,然其并非用以限定本发明,任何本领域的技术人员,在不脱离本发明的精神和范围内,当可作一些变动与修改,因此本发明的保护范围当以权利要求为准。
Claims (10)
1.一种用以跟踪内存存取的存储页管理装置,用以跟踪一具有N个存储页的内存单元的存取历史数据,包括:
一管理装置用以管理该N个存储页,更进一步包括:
一页暂存电路用以储存K个储存单元,其中每一该储存单元存放着对映N个存储页其中之一页的地址数据;以及
一利用率暂存电路,耦接至该页暂存电路,用以监视是该储存单元的使用情形;
其中该页缓存器的储存单元的数目K少于系统存储页的数目N。
2.如权利要求1所述的用以跟踪内存存取的存储页管理装置,其中该管理装置更进一步包括一比较电路,耦接至该页暂存电路,用以接受一存取地址,并根据该存取地址与该页暂存电路的数据的比较结果,输出一命中信号(hitsignal),当该存取地址命中(hit)该页暂存电路中储存知该存储页的地址数据之一时,激活(activated)该命中信号。
3.如权利要求2所述的用以跟踪内存存取的存储页管理装置,其中该管理装置还包括一确认电路(validity-checking unit),耦接至该页暂存电路,用以判断该储存单元的储存数据是否有效。
4.一种用以跟踪内存存取的存储页管理系统,用以跟踪一内存单元的存取历史数据,包括:
一内存,该内存具有N个存储页;
一用以管理该N个存储页的管理装置,该管理装置具有
一包括K个储存单元的页暂存电路以及,其中每一该储存单元存放一个存储页的地址数据;
一利用率暂存电路,该利用率暂存电路耦接至该页暂存电路,用以控制该储存单元的使用情形;
其中页缓存器的储存单元的数目K少于系统存储页的数目N。
5.如权利要求4所述的用以跟踪内存存取的存储页管理装置,其中该管理装置还包括一比较电路,耦接至该页暂存电路,用以接受一存取地址,并根据该存取地址与该页暂存电路的数据的比较结果,输出一命中信号(hitsignal),当该存取地址命中(hit)该页暂存电路中储存的该存储页的地址数据之一时,激活(activated)该命中信号。
6.如权利要求5所述的用以跟踪内存存取的存储页管理装置,其中该管理装置还包括一确认电路(validity-checking unit),耦接至该页暂存电路,用以判断该储存单元的储存数据是否有效。
7.一种用以跟踪一具有N个存储页的内存存取的存储页管理装置,该存储页管理装置包括:
一用以管理该N个存储页的管理装置,该管理装置具有
一包括K个储存单元的页暂存电路,其中每一该储存单元存放一个存储页的地址数据;
其中页缓存器的储存单元的数目K少于系统存储页的数目N。
8.如权利要求7所述的用以跟踪内存存取的存储页管理装置,其中该管理装置还包括一比较电路,耦接至该页暂存电路,用以接受一存取地址,并根据该存取地址与该页暂存电路的数据的比较结果,输出一命中信号(hitsignal),当该存取地址命中(hit)该页暂存电路中储存的该存储页的地址数据之一时,激活(activated)该命中信号。
9.如权利要求8所述的用以跟踪内存存取的存储页管理装置,其中该管理装置还包括一确认电路(validity-checking unit),耦接至该页暂存电路,用以判断该储存单元的储存数据是否有效。
10.一种用以跟踪内存存取的内存存取管理方法,用以跟踪一具有N个存储页的内存单元的存取历史数据,包括下列步骤:
(1)提供一数据储存表(page table),该存储页具有K个储存单元,用以储存多个存储页的地址数据,并提供一内存,该内存具有N个存储页,其中该页缓存器的储存单元数目K少于系统存储页的数目N;
(2)接受一存取地址;
将该存取地址与该一请求储存单元的地址数据比较;
当该存取地址命中该储存单元之一的地址数据时,送出一命中信号;
当该存取地址未命中该储存单元之一的地址数据时,由该储存单元找出一最久未使用的储存单元,将该存取地址存入该最久未使用的储存单元;以及
(3)当该存取地址未命中该储存单元之一的地址数据且该最久未使明的储存单元已储存有效的地址数据时,在将该存取地址存入该最久未使用的储存单元之前,根据该最久未使用的储存单元原先储存的地址数据产生一复原地址信号,用以复原对应的一存储页的状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/115,780 | 2002-04-03 | ||
US10/115,780 US6571323B2 (en) | 1999-03-05 | 2002-04-03 | Memory-access management method and system for synchronous dynamic Random-Access memory or the like |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1647048A true CN1647048A (zh) | 2005-07-27 |
CN1278241C CN1278241C (zh) | 2006-10-04 |
Family
ID=28673839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038078708A Expired - Lifetime CN1278241C (zh) | 2002-04-03 | 2003-03-27 | 用以跟踪内存存取的存储页管理装置及方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US6571323B2 (zh) |
CN (1) | CN1278241C (zh) |
AU (1) | AU2003218867A1 (zh) |
DE (1) | DE10392462T5 (zh) |
GB (1) | GB2402523A (zh) |
TW (1) | TWI294077B (zh) |
WO (1) | WO2003083661A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661431B (zh) * | 2008-08-29 | 2011-11-09 | 群联电子股份有限公司 | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 |
CN103597450A (zh) * | 2011-05-20 | 2014-02-19 | 高通股份有限公司 | 具有存储在存储器页的一部分中的元数据的存储器 |
CN106527964A (zh) * | 2015-09-11 | 2017-03-22 | 联发科技股份有限公司 | 存储装置及用于访问存储装置的控制方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892821B2 (en) * | 2003-12-10 | 2014-11-18 | International Business Machines Corporation | Method and system for thread-based memory speculation in a memory subsystem of a data processing system |
US7587547B2 (en) * | 2006-03-30 | 2009-09-08 | Intel Corporation | Dynamic update adaptive idle timer |
KR20120068765A (ko) * | 2009-07-17 | 2012-06-27 | 가부시끼가이샤 도시바 | 메모리 관리 장치 |
US8458519B2 (en) | 2010-01-07 | 2013-06-04 | International Business Machines Corporation | Diagnostic data set component |
CN101777027B (zh) * | 2010-01-21 | 2012-06-06 | 龙芯中科技术有限公司 | 基于动静态混合调度策略的访存操作管理装置及其方法 |
US8892828B2 (en) | 2011-11-18 | 2014-11-18 | Micron Technology, Inc. | Apparatuses and methods for storing validity masks and operating apparatuses |
CN102662713B (zh) * | 2012-04-12 | 2014-04-16 | 腾讯科技(深圳)有限公司 | 提高应用程序运行速度的方法、装置及终端 |
WO2015183303A1 (en) | 2014-05-30 | 2015-12-03 | Hewlett-Packard Development Company, L.P. | Memory access signal detection |
US20170168957A1 (en) * | 2015-12-10 | 2017-06-15 | Ati Technologies Ulc | Aware Cache Replacement Policy |
JP2019204150A (ja) * | 2018-05-21 | 2019-11-28 | 日本電信電話株式会社 | 通信用入出力装置 |
TWI671632B (zh) | 2018-10-24 | 2019-09-11 | 財團法人工業技術研究院 | 記憶體裝置及其復新資訊同步方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5584014A (en) * | 1994-12-20 | 1996-12-10 | Sun Microsystems, Inc. | Apparatus and method to preserve data in a set associative memory device |
US5781922A (en) * | 1996-11-19 | 1998-07-14 | International Business Machines Corporation | Page boundary caches |
US6069638A (en) * | 1997-06-25 | 2000-05-30 | Micron Electronics, Inc. | System for accelerated graphics port address remapping interface to main memory |
US6286075B1 (en) * | 1998-11-16 | 2001-09-04 | Infineon Technologies Ag | Method of speeding up access to a memory page using a number of M page tag registers to track a state of physical pages in a memory device having N memory banks where N is greater than M |
TW416032B (en) * | 1999-03-05 | 2000-12-21 | Via Tech Inc | Memory pages management device and method for tracking memory access |
CN1119748C (zh) * | 1999-11-18 | 2003-08-27 | 威盛电子股份有限公司 | 用以跟踪存储器存取的存储页管理装置及方法 |
-
2002
- 2002-04-03 US US10/115,780 patent/US6571323B2/en not_active Expired - Lifetime
-
2003
- 2003-02-11 US US10/365,011 patent/US20030120881A1/en not_active Abandoned
- 2003-03-10 TW TW092105082A patent/TWI294077B/zh not_active IP Right Cessation
- 2003-03-27 AU AU2003218867A patent/AU2003218867A1/en not_active Abandoned
- 2003-03-27 CN CNB038078708A patent/CN1278241C/zh not_active Expired - Lifetime
- 2003-03-27 GB GB0421904A patent/GB2402523A/en not_active Withdrawn
- 2003-03-27 DE DE10392462T patent/DE10392462T5/de not_active Ceased
- 2003-03-27 WO PCT/CN2003/000223 patent/WO2003083661A1/en not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661431B (zh) * | 2008-08-29 | 2011-11-09 | 群联电子股份有限公司 | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 |
CN103597450A (zh) * | 2011-05-20 | 2014-02-19 | 高通股份有限公司 | 具有存储在存储器页的一部分中的元数据的存储器 |
CN103597450B (zh) * | 2011-05-20 | 2018-03-27 | 高通股份有限公司 | 具有存储在存储器页的一部分中的元数据的存储器 |
CN106527964A (zh) * | 2015-09-11 | 2017-03-22 | 联发科技股份有限公司 | 存储装置及用于访问存储装置的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20020108015A1 (en) | 2002-08-08 |
CN1278241C (zh) | 2006-10-04 |
DE10392462T5 (de) | 2007-05-03 |
US20030120881A1 (en) | 2003-06-26 |
TWI294077B (en) | 2008-03-01 |
GB2402523A (en) | 2004-12-08 |
US6571323B2 (en) | 2003-05-27 |
WO2003083661A1 (en) | 2003-10-09 |
TW200305077A (en) | 2003-10-16 |
AU2003218867A1 (en) | 2003-10-13 |
GB0421904D0 (en) | 2004-11-03 |
WO2003083661A8 (en) | 2004-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1278241C (zh) | 用以跟踪内存存取的存储页管理装置及方法 | |
US11748258B2 (en) | Method for managing a memory apparatus | |
US7996642B1 (en) | Digital locked loop on channel tagged memory requests for memory optimization | |
US10831377B2 (en) | Extended line width memory-side cache systems and methods | |
CN1088215C (zh) | 不按顺序执行读写指令的存储器控制器 | |
CN1652253A (zh) | 存储卡和半导体器件 | |
CN1822217A (zh) | 将数据存储在非易失性高速缓冲存储器中的设备和方法 | |
US9612975B2 (en) | Page cache device and method for efficient mapping | |
US20080162611A1 (en) | Methods and apparatus for marking objects for garbage collection in an object-based memory system | |
JP2013030254A (ja) | 半導体記憶装置、情報処理装置 | |
CN1896972A (zh) | 用于虚实地址变换及读写高速缓冲存储器的方法及装置 | |
WO2016138785A1 (zh) | 一种运行进程的方法及装置 | |
GB2533808A (en) | An apparatus and method for issuing access requests to a memory controller | |
US8671257B2 (en) | Memory system having multiple channels and method of generating read commands for compaction in memory system | |
CN108694133A (zh) | 用于即时高速缓存关联性的装置、方法和系统 | |
US8219757B2 (en) | Apparatus and method for low touch cache management | |
CN108664217B (zh) | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 | |
CN1287444C (zh) | 一种用于访问系统芯片外sdram的控制器及其实现方法 | |
CN1119748C (zh) | 用以跟踪存储器存取的存储页管理装置及方法 | |
US8484411B1 (en) | System and method for improving access efficiency to a dynamic random access memory | |
CN102662861B (zh) | 末级高速缓存插入策略软件控制方法 | |
CN114610655B (zh) | 连续数据访问处理装置和芯片 | |
Jang et al. | Achieving low write latency through new stealth program operation supporting early write completion in NAND flash memory | |
Park et al. | Offline deduplication for solid state disk using a lightweight hash algorithm | |
Shin | Dynamic active log pool for improving worst-case performance of memory cards |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20061004 |
|
CX01 | Expiry of patent term |