内存地址的重新映射方法

文档序号:6439656阅读:1199来源:国知局
专利名称:内存地址的重新映射方法
技术领域
本发明涉及一种内存地址的重新映射(Remapping)方法,尤其涉及一种应用在各种内存系统的内存地址的重新映射方法,以此提高内存存取(MemoryAccess)的效率。
背景技术
现有技术计算机系统中,北桥芯片通过主总线与处理器连接,又通过内存总线与内存模块连接,北桥芯片还会通过不同的总线与其它各类组件连接,如AGP显示模块和南桥芯片等。此外,其它各种设备(如PCI设备,即外设扩展接口设备)连接于南桥芯片。当处理器或其它设备发出读取周期或写入周期至内存模块时,读取周期或写入周期需要经过内存总线才可到达内存模块。
另一方面,在计算机系统的内存模块中,内存库(Memory Bank),以下简称库(Bank),为一个逻辑单元,而且,库的大小决定于处理器。例如,一个32位的处理器每次可要求库提供一32位的信息。一个库中的一页(Page)表示每次在内存模块中从行地址(Row Address)存取的位量,而页的大小取决于列地址(Column Address)的数量。此外,每个库均具有一个行缓冲区(RowBuffer),该行缓冲区用以保持着一页的数据。而且在现有技术上,在一个库中每次只能打开一页。
内存存取时将会有三种可能性,以下将加以描述。一个内存存取通常包括有激活步骤(Activation Step)、命令步骤(如读取命令和写入命令等)以及预充电步骤(Precharge Step)。激活步骤通常用来打开内存中所需求的库和页;读取/写入命令步骤通常是令内存控制器使能,并从内存中读出数据或将数据写入内存;而预充电步骤主要关闭上述激活步骤所打开的库和页。
有关于内存存取时的三种可能性,包括有1.页命中(Page-hit)
在全部的库中目前内存存取的页等于上次内存存取的页,其中预充电步骤和行的激活步骤只需在初次的内存存取时执行,接着的内存存取只需执行列的激活步骤即可,所以页命中时的内存存取便能被充分管道化运算(Pipeline),同时,由于带宽的完整应用及内存定位(Memory Localization),所以内存存取时的延迟十分短。
2.库失效与页失效(Bank-miss and Page-miss)目前内存存取的页与全部已打开的页并不相同,同时目前内存存取的页所在的库,与上次激活步骤所打开的页所在的库也不相同。由于库失效与页失效时的内存存取可以平行方式处理,因此其对应的操作也可得以充分管道化运算。
3.库命中与页失效(Bank-hit and Page-miss)目前内存存取的页与全部库中全部已打开的页并不相同,但目前内存存取的页所在的库等于上次内存存取的页所在的库。库命中与页失效时的内存存取将引起行缓冲区的冲突,而且,还需要执行激活步骤和预充电步骤以初始化每个内存存取。因此,库命中与页失效时的内存存取未能被充分管道化运算,与页命中或库失效与页失效时的内存存取相比而言,其延迟非常严重。并仅利用部分的内存带宽而已。
现有技术中库失效与页失效时,如

图1所示,目前内存存取的页在A库的A页10,而后续的内存存取的页在B库的B页20,由于目前与后续的内存存取之间出现库失效与页失效的情况,所以如图2所示,可在目前与后续的内存存取中应用充分地管道化运算,其中后续的内存存取40的激活步骤60可在目前的内存存取30的激活步骤50完成后开始,而目前的内存存取30的写入命令70和后续的内存存取40的读取命令80几乎可在同一期间同时执行,接着目前与后续的内存存取分别执行预充电步骤90或关闭。
另一方面,现有技术页命中时的内存存取同样可被充分管道化运算,这是由于目前与后续的内存存取均是存取同一页的原因。
但是,由于每次在一个库中只能打开一页,所以当目前的内存要求于某一库的A页的读取周期或写入周期,而后续的内存要求于同一库的B页的读取周期或写入周期时,后续的内存要求开始前A页必需先进行预充电步骤或关闭。
现有技术中库命中和页失效时,如图3所示,目前的内存存取的页在E库的C页105,而后续的内存存取的页在E库的D页110。如图4所示,由于目前的内存存取115与后续的内存存取120在同一库的两个不同页,所以目前的内存存取115中数个步骤(如激活步骤125、读取命令步骤130和预充电步骤135)将依序首先完成,然后,后续的内存存取120的数个步骤(如激活步骤140、读取命令步骤145和预充电步骤150)才依序执行。所以,行缓冲区的冲突增加,带宽的利用也将下降,内存存取将产生长时间的延迟。
在现有技术的计算机结构中,设计有至少一高速缓存(以下简称缓存),用以储存计算机系统常用的数据,以此提高处理器或其它设备发出的读取命令或写入命令于执行时的命中率,因为处理器或其它设备与缓存之间的存取比内存模块与处理器或其它设备之间的存取快速。
但是,由于缓存的储存容量有限,所以当缓存中已经存满数据但有其它数据需要存进缓存时,缓存内至少一批数据便需要存储至内存模块,如DDR(双倍数据速率)内存模块和Rambus(总线式)内存模块等,取决于应用那一种内存系统。当至少一批数据从缓存存储至内存模块时,首先需要解释及获得目标内存地址(Target Memory Address),该目标内存地址属于内存模块中众多的内存地址之一,而且该目标内存地址表示出从缓存存储至内存模块的至少一批数据的目标位置。因此,需要对缓存地址执行转换步骤以获得目标内存地址,其中该缓存地址对应该至少一批数据,而目标内存地址与缓存地址具有相同的内容(以下简称为地址内容),即缓存地址所包括的全部位与目标内存地址所包括的全部位相同,但缓存地址对地址内容的定义及表示与目标内存地址对地址内容的定义及表示并不相同。简单来说,无论是应用那一种内存系统(如DDR内存系统和Rambus内存系统等),当数据从缓存存储至内存模块时,缓存地址的地址内容与目标内存地址的地址内容相同。
如图5所示,根据现有技术缓存地址170的定义,现有技术缓存地址170的地址内容分成数部分,分别包括有块地址(Block Address)175和块偏移量(Block Offset)180,其中块地址175又包括标志位(Tag)185和组索引(SetIndex)190。
如图6所示,根据现有技术DDR内存地址200的定义,现有技术DDR内存地址200的地址内容分成数部分,分别包括有页索引(Page Index)205和页偏移量(Page Offset)210,其中页索引205又包括高页索引(High PageIndex)215、DIMM地址220、面地址(Side Address)225和库索引(BankIndex)230。有关于高页索引215、DIMM地址220、面地址225和库索引230的定义和操作未详细说明,因为其为本领域技术人员所公知。
如图7所示,根据现有技术Rambus内存地址250的定义,现有技术Rambus内存地址250的地址内容分成数部分,分别包括有页索引255和页偏移量260,其中页索引255又包括行地址(Row Address)265、库地址(Bank Address)270和设备地址(Device Address)275,而页偏移量260又包括列(Column)280、通道(Channel)285和偏移量(Offset)290。有关于行地址265、库地址270、设备地址275、列280、通道285和偏移量290的定义和操作在此并未详细说明,因为其为本领域技术人员所公知。
另一方面,根据不同的设计,缓存中至少具有一组(Set),而该至少一组中又包含数个不同的标志位(Tag),所以数个缓存地址可能具有相同的组,但每个缓存地址内的标志位并不相同,使得储存在每个缓存位置的数据将只对应唯一的缓存地址。
然而,当数据从缓存存储至内存模块时,应用现有技术的页交错方法(Page Interleaving Method)获得的效果并不佳。例如,如图8所示,如果在DDR内存系统中应用现有技术的页交错方法时,根据现有技术目标DDR内存地址的目标DIMM地址、目标面地址和目标库索引,至少一批数据将从缓存存储至DDR内存模块中的目标位置,其中现有技术缓存地址170中的组索引190内数个对应位将被重新定义为现有技术目标DIMM地址、目标面地址和目标库索引中的位,而现有技术目标DIMM地址、目标面地址和目标库索引表示出该至少一批数据存储至DDR内存模块中的目标位置。
如果数据A目前从缓存存储至DDR内存模块,而数据B于稍后从缓存存储至DDR内存模块,并且数据A对应的缓存地址中的组索引等于数据B对应的缓存地址中的组索引时,应用现有技术的页交错方法将使得数据A和数据B被分配进DDR内存模块中同一库但不同的页中。因此,根据上述有关于库命中与页失效的叙述,当存取数据A和数据B时,行缓冲区将发生冲突而延迟变长,所以行缓冲区的冲突上升,同时减少了带宽的应用。
在另一例子中,如果在Rambus内存系统中应用现有技术的页交错方法时,如图9所示,根据现有技术目标Rambus内存地址的现有技术目标库地址和现有技术目标设备地址,至少一批数据从缓存存储至Rambus内存模块中的目标位置,其中现有技术缓存地址170中的组索引190内的数个对应位将被重新定义为现有技术目标库地址和目标设备地址中的位,而该现有技术目标库地址和目标设备地址表示出至少一批数据存储至Rambus内存模块中的目标位置。
同样地,当数据A目前从缓存存储至Rambus内存模块,而稍后数据B将从缓存转存至Rambus内存模块,如果数据A对应的缓存地址中的组索引等于数据B对应的缓存地址中的组索引时,应用现有技术的页交错方法将使得数据A和数据B被分配进Rambus内存模块中同一库但不同的页中。因此,根据上述有关于库命中与页失效的叙述,当存取数据A和数据B时,行缓冲区将发生冲突而延迟变长。
综上可知,所述现有技术的内存地址的映射方法,在实际使用上,显然存在不便与缺陷,所以有必要加以改进。

发明内容
鉴于上述现有技术中,内存存取时将有三种可能性页命中、库失效和页失效、以及库命中和页失效。随着计算机结构的发展,为了提高计算机系统的功能,以及解决因内存存取时出现库命中和页失效所引起减少带宽应用的问题,如何完整并同时应用多个库及各个库中行缓冲区的数据定位变得越来越重要。所以,本发明提供一种内存地址的重新映射方法,以此提高页命中率和带宽的应用,从而实现提高工作效率及降低内存存取时延迟的目的。
本发明的主要目的在于提供一种内存地址的重新映射方法。为了减少在内存存取中(如出现库命中和页失效的内存存取及其内存存取时间)出现长时间延迟的次数,实施内存地址的重新映射方法时应用一个线性运算器(LinearOperator),如XOR(逻辑异或运算)运算器,对二输入执行线性运算以获得线性输出,其中该二输入分别从缓存地址中选出,而所获得的线性输出被指派作为目标内存地址中的目标位置地址,该目标内存地址表示出从缓存转存至内存时的目标位置。而且,本发明的内存地址的重新映射方法还包括了代换步骤,该代换步骤从缓存地址中的标志位选出数个关键转换位以取代线性输出中数个较为稳定的位,以此提高内存存取时的页命中率及带宽的应用。
根据以上所述的目的,本发明提供了一种内存地址的重新映射方法,特别有关于应用在各种内存系统,如DDR内存系统和Rambus内存系统(又称RDRAM系统)等的内存地址的重新映射方法,以此提高内存的存取效率。内存地址的重新映射方法至少包括提供具有标志位、组合标志位、组索引和块偏移量的缓存地址;提供线性运算器;对第一线性运算输入和第二线性运算输入执行线性运算以获得第一输出,其中第一线性运算输入根据内存地址(如DDR内存地址和Rambus内存地址)中位置地址内数个位的对应位置和数量,从缓存地址的组索引中选出的数个位,同时,第二线性运算输入根据位置地址内的位的数量,从缓存地址的标志位和组合标志位中选出的数个位;执行代换步骤,至少包括从标志位中选出数个关键转换位(Key Transition Bit)以取代第一输出中数个第一输出位,以此获得第二输出,其中这些第一输出位比第一输出中其它第一输出位更为稳定,而且在标志位中关键转换位具有比高阶位更频繁地转变的特性;以及指派第二输出作为数个内存地址中的目标内存地址的目标位置地址,其中数据从缓存储存至对应目标内存地址的目标位置。
而且,当本发明应用于DDR内存系统时,内存地址为DDR内存地址,目标内存地址为目标DDR内存地址,在每个DDR内存地址中的位置地址至少包括有DIMM地址、面地址和库索引,而目标DDR内存地址中的目标位置地址至少包括有目标DIMM地址、目标面地址和目标库索引。当本发明应用于Rambus内存系统时,内存地址为Rambus内存地址,目标内存地址为目标Rambus内存地址,在每个Rambus内存地址中的位置地址至少包括有库地址和设备地址,而目标Rambus内存地址中的目标位置地址至少包括有目标库地址和目标设备地址。另外,线性运算器可为XOR运算器,应用XOR运算器时的线性运算便为XOR运算。
此外,当本发明应用于Rambus内存系统时,本发明的内存地址的重新映射方法还包括有代换步骤,该代换步骤包括有从标志位中选出一个代换位来取代一个稳定位(位于目标内存地址的目标位置地址中的目标库地址内),以此获得输出,其中该代换位在标志位中具有比其它高阶位更稳定的特性,而数据便根据输出的结果从缓存中储存至目标位置。因此,数据便可分配至不同内存库的页内,而且通过应用本发明,不仅是内存的页命中率获得提高,而且可以比现有技术方法更长时间保存内存地址的定置。
附图简要说明下面结合附图,通过对本发明的较佳实施例的详细描述,将使本发明的技术方案及其它有益效果显而易见。
附图中,图1是现有技术库失效与页失效时的内存存取的示意图;图2是根据图1中库失效与页失效时,目前与后续的内存存取之间的时间关系的示意图;图3是现有技术库命中与页失效时的内存存取的示意图;图4是根据图3中库命中与页失效时,目前与后续的内存存取之间的时间关系的示意图;图5是现有技术缓存中缓存地址的定义的示意图;图6是现有技术DDR内存模块中DDR内存地址的定义的示意图;图7是现有技术Rambus内存地址的定义的示意图;图8是根据图5和图6的现有技术缓存地址和现有技术DDR内存地址之间的关系示意图;图9是根据图5和图7的现有技术缓存地址和现有技术Rambus内存地址之间的关系示意图;图10是根据本发明的内存地址的重新映射方法的一实施例的示意图;图11是根据图10的内存地址的重新映射方法的一实施例应用于DDR内存系统时各输入与输出的列表;图12是根据本发明的内存地址的重新映射方法的另一较佳实施例应用于DDR内存系统时的示意图;图13是根据图12的内存地址的重新映射方法的另一较佳实施例应用在DDR内存系统时各输入与输出的列表;以及图14是本发明的内存地址的重新映射方法的另一较佳实施例应用于Rambus内存系统时的示意图。
具体实施例方式
下文,将详细描述本发明。
为了提高内存存取的效率,本发明提供了一种内存地址的重新映射方法,适用于数种情况下的内存存取情况1.一数据传输于耦合北桥芯片和内存模块的内存总线时;以及情况2.一具有至少一CPU的计算机系统的数据传输时,其中该至少一CPU连接于至少一主内存总线,而该至少一主内存总线耦合至少一主内存模块。
而且,在本发明的内存地址的重新映射方法中,将缓存地址中现有技术标志位分为标志位485和组合标志位(Associative Tag)495,如图10所示。
当任一缓存地址的标志位的位和组合标志位的位不等于其它缓存地址的标志位的位和组合标志位的位时,即可应用和实施本发明的内存地址的重新映射方法于具有不同操作和结构的各种内存系统中,例如应用于SDRAM系统、DDR内存系统和Rambus内存系统等。
由于不同的内存系统中内存地址具有不同的定义及表示,所以为了方便描述本发明应用于各种内存系统时的操作原理,而将表示出数据在内存模块中储存的位置的数个位称为“位置地址”。例如,如果本发明应用于DDR内存系统时,因为DIMM地址、面地址及库索引表示出数据在DDR内存中的储存的位置,所以DDR内存地址中的DIMM地址、面地址及库索引在以下的描述中统称为“位置地址”。在另一例子中,如果本发明应用于Rambus内存系统时,因为库地址和设备地址表示出数据在Rambus内存中的储存的位置,所以Rambus内存地址中的库地址和设备地址在以下的描述中也统称为“位置地址”。
当数据从缓存转存至内存模块中的目标位置,且应用本发明的内存地址的重新映射方法时,利用线性运算器(如XOR运算器、加法运算器和减法运算器等)对二输入进行线性运算以获得线性输出,其中两个输入中的一个输入根据内存地址的位置地址中的位数量及位位置,从对应该数据的缓存地址的组索引中选出的数个位,而两个输入中的另一个输入则根据内存地址的位置地址中的位数量,从缓存地址的标志位及组合标志位中选出的数个位。线性运算后将可获得线性输出,并指派该线性输出作为目标内存地址的目标位置地址中数个位,其中该目标内存地址表示内存模块中的目标位置。
本发明的一实施例,如图10所示,分别提供缓存地址470和数个DDR内存地址中的一个DDR内存地址500,其中位于缓存地址470的数据需要转存至数个DDR内存地址中的目标DDR内存地址570,而块偏移量480记录了缓存地址470的其它相关数据,页偏移量510和页索引505中的高页索引515还记录了DDR内存地址500的其它相关数据。
在图10中,利用XOR运算器400执行XOR运算以获得线性输出。首先,例如在DDR内存地址500中DIMM地址520、面地址525和库索引530共有3个位,则根据DIMM地址520、面地址525和库索引530的全部位的位置与数量,在缓存地址470的块地址475的组索引490内选出数个位,如3个位“1,1,0”作为XOR运算器400的一个输入。
然后,由于DDR内存地址500中DIMM地址520、面地址525和库索引530共有3个位,所以根据DIMM地址520、面地址525和库索引530的全部位的数量,在缓存地址470的标志位485和组合标志位495中从组合标志位495的较低阶起选出数个位,如3个位“1,1,1”作为XOR运算器400的另一个输入。
对“1,1,0”和“1,1,1”执行XOR运算后,基于逻辑运算的原理可获得XOR运算器400的线性输出,为了将数据从缓存转存至DDR内存模块,该线性输出一“0,0,1”被指派至对应的目标DDR内存地址570的目标页索引535内的目标DIMM地址550、目标面地址555和目标库索引560,而目标DDR内存地址570的页偏移量540和高页索引545储存有关于目标DDR内存地址570的其它数据。
换言之,当本发明的内存地址的重新映射方法应用于DDR内存系统时,根据DDR内存地址500中DIMM地址520、面地址525和库索引530的位数量及位置,在缓存地址470的组索引490中选出数个位作为XOR运算器输入,又根据DDR内存地址500中DIMM地址520、面地址525和库索引530的位数量,在缓存地址470的标志位485和组合标志位495中选出数个位作为另一XOR运算器输入。完成XOR运算之后,可获得线性输出,将该线性输出指派为目标位置地址的数个位,该目标位置地址包括有目标DIMM地址550、目标面地址555和目标库索引560。
图10中的实施例应用在DDR内存系统时各输入与输出的列表,如图11所示,输入XOR运算器400的两个输入分别为具有11个第一输入项的第一输入队列和具有11个第二输入项的第二输入队列,其中输入XOR运算器400的两个输入的选出方法如前所述,11个第一输入项中的任一项选自于标志位485和组合标志位495,11个第二输入项中的任一项选自于组索引490,并且当DDR内存地址500中的DIMM地址520、面地址525和库索引530内共有3个位时,任一第一输入项和任一第二输入项均由3个字节组成。
在每次XOR运算中,一个第一输入项和一个第二输入项分别输入XOR运算器400,然后即可获得XOR运算器400的一个第一输出项,所以当11个第一输入项和11个第二输入项计算完后即可依序获得各个第一输出项,而且各个第一输出项组成第一输出队列。例如,第一输入项“1,1,1”和第二输入项“1,1,0”分别输入XOR运算器400,即可获得第一输出项“0,0,1”。从图11图中可明显发现,大多数的第一输出项和其它的第一输出项互不相同。所以如上所述,在XOR运算及指派运算结果至对应的目标DIMM地址、对应的目标面地址和对应的目标库索引后,各缓存地址中的数据将会根据具有不同库索引的各个DDR内存地址而被转存至DDR内存模块中不同库的页中。此外,由于线性运算后同一页的地址仍然在同一页,所以内存参考的定置得以保留。
然而,XOR运算后在第一输出队列中仍有数个具有相同位(如“0,0,1”)的第一输出项。为了获得更多具有不同位的第一输出项,本发明提供了内存地址的重新映射方法的一较佳实施例。
本发明的另一较佳实施例应用在DDR内存系统时,如图12所示,首先提供缓存地址470和DDR内存地址500。为了图10中所示的线性运算后在第一输出队列内获得更多具有不同位的输出项,如图12中应用于DDR内存系统的内存地址的重新映射方法的较佳实施例还包括有对线性运算后产生的各个第一输出项执行代换步骤。
在一些常常进行内存存取的情况(如基准测试运算等),标志位485中的位、组合标志位495中的位以及组索引490中的位常在目前及后续存取中具有相同的转换行为,所以经过统计及估算后,从标志位485中选出具有频繁变换的性质的数个位称作“关键转换位”405。而且,因为缓存取代的特性,使得标志位485中较低阶的位较常改变,于是从标志位485中较低阶的位开始挑选关键转换位405将较为恰当。接着,利用该关键转换位405去取代各输出中较稳定的位,以此在执行代换步骤后在输出队列中获得更多具有不同位的输出项目。因此,在线性运算后,可获得更多具有不同的目标DIMM地址550、目标面地址555和目标库索引560的目标DDR内存地址570,即可实现将缓存中的数据分配至不同库的页内的目的。
例如,在图12中,首先执行如图10所示的线性运算,以获得图11所示的列表,其中具有数个相同的第一输出项一“0,0,1”。根据统计结果,得知各第一输出项中最低阶的位常为“1”,即意味着各第一输出项中最低阶的位比第一输出项内其它位稳定。为了在第一输出队列获得互不相同的第一输出项,根据之前挑选关键转换位405的描述,可挑选出关键转换位405来取代该稳定的位-“1”。
本发明的另一较佳实施例应用在DDR内存系统时各输入与输出的列表,如图13所示,输入XOR运算器400的两个输入分别为具有11个第一输入项的第一输入队列和具有11个第二输入项的第二输入队列,其中输入XOR运算器400的两个输入的选出方法如前所述,11个第一输入项中的任一项选自于标志位485和组合标志位495,11个第二输入项中的任一项选自于组索引490,并且当DDR内存地址500中的DIMM地址520、面地址525和库索引530内具有3个位时,任一第一输入项和任一第二输入项均由3个字节组成。
为了在输出队列中获得更多互不相同的输出项,可以从第一输入队列中各第一输入项选出关键转换位405来取代各第一输出项内的稳定位,然后便可获得数个第二输出项及由这些第二输出项组成的第二输出队列。其中,可明显发现各个第二输出项与后续的第二输出项并不相同,所以缓存内的数据即可有效地分配至不同库中的页内。
此外,本发明的内存地址的重新映射方法并不是只能应用于DDR内存系统中,还可应用于其它内存系统内,如Rambus内存系统。
本发明的另一较佳实施例应用于Rambus内存系统时,如图14所示,首先分别提供缓存地址470和数个Rambus内存地址中的一个Rambus内存地址600,其中缓存地址470中的数据需要转存至数个Rambus内存地址中的目标Rambus内存地址650,而块偏移量480记录了缓存地址470的其它相关数据,页索引605中的行地址615和页偏移量610中的列630、通道635和偏移量640记录了Rambus内存地址600的其它相关数据,目标页索引655中的行地址665和页偏移量660中的列680、通道685和偏移量690也记录了目标Rambus内存地址650的其它相关数据目标。
应用本发明的内存地址的重新映射方法于Rambus内存系统时,根据Rambus内存地址600的库地址620和设备地址625内全部位的数量及位置,在缓存地址470的组索引490中选出数个位作为一个XOR运算输入,再根据Rambus内存地址600的库地址620和设备地址625内全部位的数量,在缓存地址470的标志位485和组合标志位495中选出数个位作为另一XOR运算输入。执行XOR运算后,获得并指派线性输出作为目标位置地址的位,其中该目标位置地址包括有目标库地址670和目标设备地址675。
为了获得更多具有不同位的互不相同的输出,可利用关键转换位405执行代换步骤,本发明应用于Rambus内存系统中的相关操作步骤与本发明应用于DDR内存系统时相似。此外,当本发明应用于Rambus内存系统时,在执行代换步骤时不仅可利用关键转换位405执行代换步骤,还可利用选自于缓存地址470的标志位485内的一个代换位410来取代目标库地址670中最低阶的位,其中该代换位410在标志位485中具有比其它低阶的位更稳定的特性。因此,缓存中的数据便可有效地分配至不同库的页内。
此外,本发明的应用并未限制于上述的实施例中,且本发明还可应用于各种内存系统内,以此提高页命中率及带宽应用。
本发明的优点为提供一种内存地址的重新映射方法,且特别有关于一种可应用于各种内存系统(如DDR内存系统和Rambus内存系统等)的内存地址的重新映射方法,以此提高内存存取的效率,以及减少处理器和组件至内存模块的存取时间。与现有技术设计相比,本发明提供了一种有效地分配数据至不同库的页内的方法,使得页命中率增加而内存存取的延迟得以减少。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术方案和技术构思作出其它各种相应的改变和变形,而所有这些改变和变形都应属于本发明后附的权利要求的保护范围。
权利要求
1.一种内存地址的重新映射方法,应用在具有数个内存地址的一内存系统,而且一数据可从一缓存储存至该内存系统的一内存模块中的一目标位置,其中每一该内存地址具有一位置地址,该内存地址的重新映射方法至少包括提供对应至该数据的一缓存地址,其中该缓存地址至少包括有一标志位、一组合标志位、一组索引和一块偏移量;提供一线性运算器;对一第一线性运算输入和一第二线性运算输入执行一线性运算以获得一第一输出,其中该第一线性运算输入根据这些内存地址的一内存地址中该位置地址内数个位的对应位置和数量,从该组索引中选出的数个第一输入位,同时,该第二线性运算输入根据该位置地址内这些位的数量,从该标志位和该组合标志位中选出的数个第二输入位;执行一代换步骤,至少包括从该标志位中选出数个关键转换位以取代该第一输出中数个第一输出位的部分,以此获得一第二输出,其中该第一输出中这些第一输出位的该部分比该第一输出中其它第一输出位更为稳定,而这些关键转换位根据该第一输出中这些第一输出位的数个位置从该标志位中选出,而且在该标志位中这些关键转换位比高阶于这些关键转换位的其它位具有更频繁地转变的特性;以及指派该第二输出作为这些内存地址的一目标内存地址的一目标位置地址,其中该数据从该缓存储存至对应该目标内存地址的该目标位置。
2.根据权利要求1所述的内存地址的重新映射方法,其特征在于,所述位置地址内这些位的数量等于该第一输出内数个第一输出位的数量。
3.根据权利要求1所述的内存地址的重新映射方法,其特征在于,所述内存系统为一DDR内存系统时,这些内存地址为数个DDR内存地址,该目标内存地址为一目标DDR内存地址,在每一这些DDR内存地址中的该位置地址至少包括有一DIMM地址、一面地址和一库索引,而该目标DDR内存地址中的该目标位置地址至少包括有一目标DIMM地址、一目标面地址和一目标库索引。
4.根据权利要求1所述的内存地址的重新映射方法,其特征在于,所述内存系统为一Rambus内存系统时,这些内存地址为数个Rambus内存地址,该目标内存地址为一目标Rambus内存地址,在每一这些Rambus内存地址中的该位置地址至少包括有一库地址和一设备地址,而该目标Rambus内存地址中的该目标位置地址至少包括有一目标库地址和一目标设备地址。
5.根据权利要求1所述的内存地址的重新映射方法,其特征在于,所述线性运算器为一XOR运算器,而该线性运算为一XOR运算。
全文摘要
一种内存地址的重新映射(Remapping)方法,至少包括提供缓存地址及线性运算器;对第一线性运算输入和第二线性运算输入执行线性运算以获得第一输出,该第一线性运算输入根据内存地址中的位置地址(LocationAddress)的位数量及位置,从缓存地址中的组索引选出来的数个位,而第二线性运算输入根据内存地址中的位置地址的位数量,从缓存地址中的标志位和组合标志位选出来的数个位;执行代换步骤,通过数个关键转换位(Key Transition Bit)取代第一输出中数个位以获得第二输出;指派第二输出为数个内存地址中的目标内存地址的目标位置地址,其中数据从缓存储存至该目标内存地址所对应的目标位置。
文档编号G06F12/06GK1517882SQ0310272
公开日2004年8月4日 申请日期2003年1月16日 优先权日2003年1月16日
发明者李明宪, 平德林, 刘恕民, 陈灿辉 申请人:矽统科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1