用于最大化dram存储器带宽的方法和系统的制作方法

文档序号:6752730阅读:333来源:国知局
专利名称:用于最大化dram存储器带宽的方法和系统的制作方法
技术领域
发明的实施例涉及动态随机存取存储器(DRAM)领域,并特别涉及将DRAM存储器的带宽最大化。
背景技术
信息可以存储在不同类型的存储器中。动态随机存取存储器(DRAM)芯片要比同样的静态随机存取存储器(SRAM)芯片便宜。但是,在每一次访问之后进行另一次访问之前,需要对DRAM进行刷新。因此,在该DRAM中的存储体被访问之后,系统必须等待直到该存储体被刷新并且因此在对该相同的存储体进行另一次访问之前可以再次使用。这样就降低了带宽使用和信息处理速率。一种解决方案是复制该DRAM中所有存储体中的条目。但是,这样就消除了使用DRAM代替SRAM的价格优势。


下面的附图用来说明本发明的实施例,参照该附图和下面的描述可以更好的理解本发明。其中图1的方框图描述了实现本发明系统的一个实施例。
图2描述了根据本发明的缓冲器的一个实施例。
图3的流程图说明了本发明方法的一个实施例。
图4是用来执行本发明实施例的计算机系统的方框图。
具体实施例方式
本发明描述了用于最大化DRAM存储器带宽的系统和方法的实施例。在下面的描述中,陈述了多个具体细节。然而应该理解的是,可以不需要这些具体的细节而实现本发明的实施例。在其它实例中,为了能够清楚的理解本说明,没有详细示出公知的电路、结构和技术。
在整个说明中,涉及的“一个实施例”或“实施例”意味着在本发明的至少一个实施例中包括与该实施例相关的特定性质、结构或特征。因此,在整个说明的各个地方中所出现的词组“在一个实施例中”或“在实施例中”并非必须都指的是相同的实施例。而且,在一个或多个实施例中,该特定性质、结构或特征可以任何适当的方式组合。
参照图1,所示的方框图描述了根据本发明的一个实施例的系统100。本领域的普通技术人员会知道,该系统100可以包括多于图1中所示的多个组件。然而,为了公开用于实现本发明的说明性实施例,并不是所有这些普通的常规组件都必须示出。系统100包含存储器116。在本发明的一个实施例中,存储器116是动态随机存取存储器(DRAM)。存储体116具有多个存储体。
系统100具有多个缓冲器。缓冲器的数目是基于存储器116中的存储体的数目而定的。在本发明的一个实施例中,缓冲器的数目等于存储器中存储体的数目。在本发明的一个实施例中,每一缓冲器对应于存储器中一个不同的存储体。例如,如果存储器116具有四个存储体,系统100可以具有四个缓冲器106、108、110和112。
系统100具有调度表114,以根据所要访问的存储体来调度存储器的访问。系统100具有选择器104。在本发明的一个实施例中,该选择器是多路分配器(demux)。选择器104根据至少部分数据单元选择存储数据单元120的缓冲器。在本发明的一个实施例中,选择器选择对应于所要被访问的存储体的缓冲器。在本发明的一个实施例中,数据单元120是地址。
在本发明的一个实施例中,系统100具有标识授予单元102,其从请求单元118接收数据单元120,并为该数据单元120确定一个标识号(ID)122。在一个实施例中,该请求单元是处理器或其它计算装置。该ID授予单元102将该ID 122发送回给该请求单元118,并将数据单元120和该ID 122发送给该选择器104。该选择器104然后将该数据单元120和该ID 122发送给对应于所要访问的存储体的缓冲器。
在本发明的一个实施例中,选择器104通过查找所选择的缓冲器,确定该数据单元是否已经存储在所选择的缓冲器中。如果没有找到匹配,就将该数据单元存储到该缓冲器中。如果找到匹配,就不必存储该数据单元,并且将该数据单元的ID附加到包括该数据单元的缓冲器中的条目。于是,一个数据单元可以与多个不同的ID相关联。
缓冲器存储数据单元,直到检索到该数据单元来访问存储器。调度表114确定从缓冲器检索数据单元的顺序。在本发明的一个实施例中,调度表对存储器的访问进行调度安排,以使得顺序访问不同的存储体。在本发明的一个实施例中,调度表为每一缓冲器中的每一条目调度一个存储器的访问。缓冲器中的每一条目包括数据单元和一个或多个ID。因此,如果多个条目附加到缓冲器条目,那么一个被调度的访问就满足多于一个的请求。在本发明的一个实施例中,在使用该数据单元120访问存储器116之后,从存储器116检索的数据121被发送到请求单元118。
图2所示为根据本发明的缓冲器的一个实施例。缓冲器116具有一个或多个条目。每一条目具有多个字段。一个字段中存储该数据单元120。在本发明的一个实施例中,数据单元120是地址。另一个字段存储该ID 122。第三字段存储第二ID 124。另一字段可以进一步存储ID和其它信息。
图3所示的流程图为本发明方法的一个实施例。首先,在300,从请求单元接收数据单元。在本发明的一个实施例中,该数据单元包括地址。在本发明的一个实施例中,产生ID以标识该请求者或该数据单元的源。该ID可以被发送回到该请求单元。
然后,在302,根据至少部分数据单元计算索引。然后,在304,选择缓冲器并根据该索引将该数据单元存储到其中。在本发明的一个实施例中,该索引对应于所要被访问的存储器中的存储体。然后,在306,将数据单元存储到所选择的缓冲器中。在本发明的一个实施例中,将该数据单元与标识该数据单元的源的ID一起存储起来。在本发明的一个实施例中,查找所选择的缓冲器,以确定是否存在包括该数据单元的条目。如果没有找到匹配,然后就将该数据单元存储到所选择的缓冲器中。如果找到匹配,那么就不需要存储该数据单元,并且将该数据单元的ID附加到包括该数据单元的条目。
然后,在308,根据该索引调度存储体的访问。在本发明的一个实施例中,调度该存储体的访问,使得对存储器在不同的存储体进行顺序访问。接着,在310,从所选择的缓冲器读出该数据单元,其中可以从该数据单元计算出该索引。在本发明的一个实施例中,从所选择的缓冲器读出该数据单元和一个或多个标识该数据单元的ID。然后,在312,按照调度访问该存储体,以在该存储体中查找匹配该数据单元的条目。
图4所示为计算机系统400的方框图,其可以用来实现本发明的实施例。该计算机系统400包括处理器402,其通过总线410与随机存取存储器(RAM)404、只读存储器(ROM)406、以及大容量存储装置408耦合。大容量存储装置408代表持久数据存储装置,诸如软盘驱动、硬盘驱动(例如磁性、光学、磁光或其它)、或流动式磁带驱动。处理器402可以用普通目的的处理器、特定目的的处理器、或专门编程的逻辑装置来实施。
显示装置412通过总线410与处理器402耦合,并为计算机系统400提供图形输出。键盘414和光标控制单元416与总线410耦合,以便将信息和命令选择通信给处理器402。输入/输出(I/O)接口418也通过总线410与处理器402耦合,该输入/输出(I/O)接口418可以用来控制连接到计算机系统400的电子装置(打印机、其它计算机等)和向其传输数据。
在本发明的一个实施例中,请求单元118是请求访问存储器116中的一个存储体的处理器402。在本发明的一个实施例中,存储器116是随机存取存储器404,其通过总线410与处理器402耦合。
应该注意到,图4的结构仅仅只是用于说明目的,与本发明的实施例一起使用的计算机并不限于这种具体结构。
如本领域的熟练技术人员会理解的是,用于实现本发明方法的实施例的内容例如计算机程序指令可以以任何机器可读媒体的形式提供,该机器可读媒体可以存储可被系统100访问的数据,将其作为存储器的一部分或者对存储器的补充,其包括盒式磁盘、磁带、闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等,但并不限于此。关于这一点,设置系统100使其以本领域熟知的方式与这种机器可读媒体通信。
本领域的技术人员进一步应该理解的是,用于实现本发明方法的实施例的内容可以从能够存储内容并将该内容传送给该系统100的任何外部装置被提供给系统100。例如,在一个实施例中,系统100可以与网络连接,并且该内容可以存储在该网络中的任何装置上。
现在将要描述本发明方法的一个说明性示范实施例。出于描述目的的考虑,存储器116具有四个存储体,并且系统100具有四个缓冲器106、108、110和112。每一个缓冲器对应于不同的存储体。该实例使用了散列方法,其中地址的两位最低有效位(lsb)确定将访问哪一个存储体。使用相同的散列方法以确定将该地址存储在哪一个缓冲器中。例如,如果两位lsb是00,那么将该地址存储在第一缓冲器106中,并且访问第一存储体。如果两位lsb是01,该将地址存储在第二缓冲器108中,并且访问第二存储体。如果两位lsb是10,将该地址存储在第三缓冲器110中,并且访问第三存储体。如果两位lsb是11,将该地址存储在第四缓冲器112中,并且访问第四存储体。
假设第一请求单元请求地址010011。由于该地址的两位lsb是11,该地址将被存储在最后一个缓冲器中。产生标识该请求的ID,例如ID000。查找最后一个缓冲器,以确定地址010011是否已经被存储在该最后一个缓冲器中。假设这四个缓冲器都是空的。因此就不会找到匹配该地址的条目。于是,将地址010011和ID 000存储到最后一个缓冲器中。
假设第二请求是地址011111。由于该地址的两位lsb是11,该地址将被存储在最后一个缓冲器中。产生标识该请求的ID 001。查找最后一个缓冲器,以确定地址011111是否已经被存储在最后一个缓冲器中。没有找到匹配,于是将地址011111和ID 001存储到最后一个缓冲器中。
假设第三请求是地址000001。由于该地址的两位lsb是01,该地址将被存储在第二缓冲器中。产生标识该请求的ID 010。查找第二缓冲器,以确定地址000001是否已经被存储在第二缓冲器中。没有找到匹配,于是将地址000001和ID 010存储到第二缓冲器中。
假设第四请求是地址011111。由于该地址的两位lsb是11,该地址将被存储在最后一个缓冲器中。产生标识该请求的ID 011。查找最后一个缓冲器,以确定地址011111是否已经被存储在最后一个缓冲器中。找到匹配,这是因为在第二请求之后已经将地址011111存储在最后一个缓冲器中。因此,就不需要存储地址011111,并且将ID 011附加到最后一个缓冲器中的第二条目。于是,最后一个缓冲器中的第二条目将包括地址011111、ID 001和ID 011。
假设第五请求是地址000010。由于该地址的两位lsb是10,该地址将被存储在第三缓冲器中。产生标识该请求的ID 100。查找第三缓冲器,以确定地址000010是否已经被存储在第三缓冲器中。没有找到匹配,于是将地址000010和ID 100存储到第三缓冲器中。
调度表根据其中存储有地址的缓冲器调度这五个请求。该调度表会调度这些请求,以使得对不同的存储体进行顺序访问。这就将存储器的访问带宽最大化,因为存储体在它能够被再次访问之前可能需要时间从存储器访问恢复。该调度表会调度这些请求,以使得对每一缓冲器中每一条目仅进行一次存储器访问。因此,如果该缓冲器条目附加有多个ID,那么一次访问可以满足多于一个的请求。
在这一实例中,该调度表会(根据第一请求)使用最后一个缓冲器中的第一条目调度第一存储器访问。从最后一个缓冲器中检索地址010011和ID 000,并访问最后一个存储体以查找地址010011。该调度表会(根据第三请求)使用第二缓冲器中的第一条目调度第二存储器访问。从第二缓冲器中检索地址000001和ID 010,并访问第二存储体以查找地址000001。该调度表会(根据第二和第四请求)使用最后一个缓冲器中的第二条目调度第三存储器访问。从最后一个缓冲器中检索地址011111和ID 001和011,并访问该最后一个存储体以查找地址011111。该调度表会(根据第五请求)使用第三缓冲器中的第一条目调度第四存储器访问。从第三缓冲器中检索地址000010和ID 100,并访问该第三存储体以查找地址000010。
第三请求在第二请求之前被调度,这是因为第二请求与第一请求一样访问相同的存储体。通过在第二请求之前调度第三请求,最后一个存储体就会在另一存储体被访问以满足第三请求的时候有时间进行刷新并从第一存储器访问中恢复。而且,由于第二和第四请求是相同的地址,所以调度表可以将它们一起调度,使得一次存储器访问同时满足两个请求。
虽然已经根据几个实施例描述了本发明,但是本领域的技术人员会意识到本发明并不限于所描述的实施例,而且在所附权利要求的精神和范围之内可以作出修改和替换。本说明因此只是说明性的,而不是限制性的。
权利要求
1.一种方法,包括接收数据单元;根据该数据单元的至少一部分计算索引;根据该索引选择存储该数据单元的缓冲器;将该数据单元存储在所选择的缓冲器中;根据该索引调度存储体访问;从所选择的缓冲器中读出计算该索引的数据单元;和按照调度访问该存储体,以在存储体中查找匹配该数据单元的条目。
2.权利要求1的方法,其中该数据单元包括地址。
3.权利要求1的方法,进一步包括产生该数据单元的标识号,并且其中在所选择的缓冲器中存储该数据单元包括将该标识号与该数据单元一起存储在所选择的缓冲器中。
4.权利要求3的方法,其中接收数据单元进一步包括从请求单元接收数据单元,并进一步包括将该数据单元的标识号发送到该请求单元。
5.权利要求1的方法,进一步包括在所选择的缓冲器中查找匹配该数据单元的条目,并且其中在所选择的缓冲器中存储该数据单元包括如果没有找到匹配,就将该数据单元存储在所选择的缓冲器中。
6.一种设备,包括存储多个数据单元的多个缓冲器,缓冲器的数目是基于存储器中的存储体的数目而定的;与多个缓冲器耦合以便根据数据单元的至少一部分选择存储数据单元的缓冲器的选择器;和与多个缓冲器耦合以便根据其中存储有数据单元的缓冲器调度对一个存储体的访问的逻辑。
7.权利要求6的设备,其中每一个缓冲器对应于存储器中不同的存储体。
8.权利要求7的设备,其中与多个缓冲器耦合以调度存储器访问的逻辑进一步包括与多个缓冲器耦合的逻辑,该逻辑根据其中存储有数据单元的相对应的缓冲器调度对存储器中存储体的访问。
9.权利要求6的设备,进一步包括与选择器耦合以便为多个数据单元的每一个产生标识号的逻辑,该标识号和相对应的数据单元一起存储在所选择的缓冲器中。
10.权利要求6的设备,其中调度存储器访问的逻辑包括对不同的存储体的顺序访问进行调度的逻辑。
11.权利要求6的设备,进一步包括与多个缓冲器耦合以便确定该缓冲器中是否已经存储有数据单元的逻辑,并且如果该数据单元已经被存储在该缓冲器中就将包括该数据单元的条目与标识号附加在一起。
12.权利要求11的设备,其中调度存储器访问的逻辑包括为缓冲器中每一条目调度一个存储器访问的逻辑,其中缓冲器中的每一条目包括数据单元和一个或多个标识号。
13.一种方法,包括接收第一数据单元;在多个缓冲器之一中存储该第一数据单元,缓冲器的数目等于存储器中的存储体的数目;接收第二数据单元;在其中存储有第一数据单元的同一缓冲器中存储该第二数据单元;接收第三数据单元;在多个缓冲器中与存储该第一数据单元的缓冲器不同的一个缓冲器中存储该第三数据单元;和调度该存储体中对应于其中分别存储有第一、第二和第三数据单元的缓冲器的第一、第二和第三查找,在第二查找之前调度第三查找。
14.权利要求13的方法,进一步包括为每一个数据单元产生标识号,和将该标识号与该数据单元一起存储在缓冲器中。
15.权利要求14的方法,进一步包括查找其中存储每一个数据单元的缓冲器,以确定该数据单元是否已经存储在该缓冲器中。
16.权利要求15的方法,进一步包括如果数据单元已经存储在缓冲器中,就将该数据单元的标识号附加到缓冲器中包括该数据单元的条目。
17.权利要求13的方法,进一步包括从缓冲器中读出第一数据单元,并在对应于该缓冲器的存储体中查找包括第一数据单元的条目。
18.权利要求17的方法,进一步包括从缓冲器中读出第三数据单元,并在对应于该缓冲器的存储体中查找包括该第三数据单元的条目。
19.权利要求18的方法,进一步包括从缓冲器中读出第二数据单元,并在存储器中查找包括第三数据单元的条目之后,在对应于该缓冲器的存储体中查找包括第二数据单元的条目。
20.权利要求13的方法,进一步包括接收第四数据单元,该第四数据单元是第二数据单元的拷贝。
21.权利要求20的方法,进一步包括将第四数据单元的标识附加到缓冲器中包括第二数据单元的条目中。
22.权利要求21的方法,进一步包括为第二和第四数据单元调度存储体中的一个查找。
23.一种系统,包括存储器;通过总线与该存储器耦合的处理器;存储多个数据单元的多个缓冲器,该缓冲器的数目是基于存储器中存储体的数目而定的;和与该存储器和多个缓冲器耦合的逻辑,该逻辑包括选择器,根据该数据单元的至少一部分选择多个缓冲器中的一个,以存储该数据单元;和调度表,根据其中存储有该数据单元的缓冲器,通过处理器调度一个存储体的访问。
24.权利要求23的系统,其中每一个缓冲器对应于存储器中不同的存储体。
25.权利要求23的系统,其中调度一个存储体访问的调度表包括调度不同存储体的顺序访问的调度表。
26.一种制造的物品,包括可被机器访问的媒体,其包括的内容使得当其被机器访问时,使得该机器做如下操作接收数据单元;根据该数据单元的至少一部分计算索引;根据该索引选择存储该数据单元的缓冲器;将该数据单元存储在所选择的缓冲器中;根据该索引调度存储体访问;从所选择的缓冲器中读出计算该索引的数据单元;和按照调度访问该存储体,以在存储体中查找包括该数据单元的条目。
27.权利要求26的制造物品,进一步包括可被机器访问的媒体,其包括的内容使得当其被机器访问时,使该机器产生数据单元的标识号。
28.权利要求27的制造物品,其中可被机器访问的媒体包括的内容使得当其被机器访问时,将数据单元存储在所选择的缓冲器,其包括可被机器访问的媒体,该媒体包括的内容使得当其被机器访问时,使得该机器将该标识号与该数据单元一起存储在所选择的缓冲器中。
全文摘要
本发明提供一种用于最大化DRAM存储器带宽的系统和方法。该系统包括存储多个数据单元的多个缓冲器,与该缓冲器耦合的选择器,用于选择缓冲器将数据单元存储于其中,以及与该缓冲器耦合的逻辑,以根据其中存储有数据单元的缓冲器调度相对应的多个存储体之一的一个访问。该系统接收数据单元,根据数据单元的至少一部分计算索引,根据该索引选择缓冲器以便在其中存储该数据单元,将该数据单元存储在所选择的缓冲器中,根据该索引调度存储体访问,从所选择的缓冲器中读出数据单元,并访问该存储体。
文档编号G11C11/408GK1723506SQ03810811
公开日2006年1月18日 申请日期2003年3月13日 优先权日2002年3月21日
发明者S·库鲁帕蒂 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1