存储集线器和存储排序的方法

文档序号:6655793阅读:182来源:国知局
专利名称:存储集线器和存储排序的方法
技术领域
本发明涉及计算机系统,尤其涉及具有将数个存储设备与处理 器或其它访问存储器的设备相连的存储集线器的计算机系统。
背景技术
计算机系统使用如动态随机存取存储器("DRAM")的存储设 备,来保存能被处理器存取的数据。这些存储设备通常被作为计算 机系统的系统存储器。在典型的计算机系统中,处理器通过处理器 总线和存储控制器与系统存储器通信。处理器发出存储请求,其中 包含存储命令,比如读取命令,以及存储地址,存储地址指定要读 取的数据或命令的位置。存储控制器使用命令和地址来生成合适的 命令信号,同时生成应用到系统存储器的行和列地址。响应于这个 命令和地址,数据在系统存储器和处理器之间传送。存储控制器经 常是系统控制器的一部分,系统控制器还包括总线桥电路,其用来将 处理器总线连接到如PCI总线的扩展总线。
尽管存储设备的操作速度在持续的增加,但增加的操作速度依 然跟不上处理器操作速度的改进。连接处理器和存储设备的存储控 制器的速度改进甚至更慢。相对慢速的存储控制器和存储设备限制 了处理器和存储设备之间的数据带宽。
除了处理器和存储设备之间的带宽限制之外,计算机系统的性
能还受制于从系统存储设备读取数据的时间延迟问题。更确切的 说,当存储设备读取命令发送给一个系统存储设备时,比如同步
DRAM ("SDRAM")设备时,读取的数据只有在几个时钟周期的延 迟后才从SDRAM设备输出。因此,虽然SDRAM设备能够高速同步 输出帧数据,初始提供数据的延迟会极大减慢使用这种SDRAM设 备的计算机系统的操作速度。
缓解存储延迟问题的一个方法是通过存储集线器使用与处理器 相连的多个存储设备。在存储集线器体系结构中,系统控制器或者 存储控制器和多个存储模块相连,每个存储模块包含与多个存储设 备相连的一个存储集线器。存储集线器有效地在控制器和存储设备 间传输存储请求和响应。使用这种结构的计算机系统能够拥有更高 的带宽,因为在一个存储设备响应先前的存储访问的同时,处理器 可以访问另一个存储设备。例如,处理器输出写数据到系统中的一 个存储设备的同时,系统中的另一个存储设备在准备提供读数据给 处理器。
尽管使用存储集线器的计算机系统也许能提供更好的性能,但 它们经常由于多种原因无法以最优速度操作。例如,尽管存储集线 器可以为计算机系统提供更好的存储带宽,其依然会遭受如上所述 的那种延迟问题。更具体的,尽管处理器可以与一个存储设备通信 的同时另一个存储设备也在准备传输数据,但有时需要先从一个存 储设备接收数据,然后从另一存储设备读出的数据才能被使用。在 需要从一存储设备先接收数据,然后从另一存储设备读出的数据才 能用的情况下,延迟问题同样会减慢这样的计算机系统的操作速 度。
用来减少存储设备延迟的一种技术是预取数据,即在执行的程 序请求此数据之前从系统存储器中读取它。通常根据先前预取数据 的模式来选择当前要预取的数据。数据预取的模式也许只是简单的 从中取得数据的地址序列,这样在执行的程序需要数据之前,能够 从地址序列中随后的地址中地取得数据。这种模式被称作"步进" (stride)模式,当然可能更复杂。
更进一步,尽管存储集线器能够为计算机系统提供更大的存储 带宽,他们依然会遭受吞吐量问题。例如,在数据能够从某行存储 单元读取之前,阵列中的数据线通常要通过平衡阵列数据线来预充 电。然后连接该行的存储单元和相应的列数据线打开该特定的行。 然后,连接在各列的数据线间的相应感应放大器响应于相应存储单 元中存储的数据来响应电压改变。该行一旦打开,就可以通过连接 数据线和数据读取通路来从打开行的各列读出数据。因此,打开一 行,也被称作一页要耗费一定数量的时间,在存储吞吐上施加了限 制。
最后,有关是否预取数据(以及预取哪些数据)、以及是否要预 充电或打开一行和是否缓存访问的数据的最优决定,可能会随着时 间改变,并随连接到存储集线器的处理器执行的应用程序功能的不同 而改变。
因此需要一种计算机体系结构,其不仅能提供存储集线器结构 的优势,还可以将延迟减到最小,并且/或将这种系统普遍存在的吞 吐量问题减到最小,从而提供高带宽、高吞吐量和低延迟的存储设 备。这样一个系统也希望允许存储集线器的操作随时间而改变。

发明内容
根据本发明的一方面,提供了一种存储模块和方法,其包括多 个存储器设备和存储集线器。存储集线器包含链接接口,比如光学 输入/输出端口 ,其接收对至少一个存储器设备的存储单元的访问请 求。存储集线器还包含连接存储器设备的一个存储器设备接口,此 存储器设备接口用于将存储请求发送到存储器设备,以访问至少一 个存储器设备的存储单元,并响应至少一些存储请求来接收读数 据。存储集线器还包含连接到存储器设备接口的性能计数器,该性 能计数器用来跟踪一组度量中的至少一个,这组度量包括页面命中 率、预取命中率和高速缓存命中率。存储集线器还包括存储排序器, 其连接到链接接口和存储器设备接口 。存储排序器响应于从链接接 口接收的存储请求,将存储器请求发送到存储器设备接口。存储排序
器还用响应于性能计数器来动态调整操作性。例如,性能计数器跟 踪页面命中率,存储排序器可能响应于跟踪的页面命中率改变存储 器设备的打开页面数,或者切换到自动预充电模式。或者,性能计 数器可以跟踪预取命中百分比,存储排序器可能根据跟踪的预取命 中百分比来允许或禁止预取,或者调整预取请求的数量。再例如, 性能计数器可以跟踪高速缓存命中率,存储排序器可能根据跟踪的 高速缓存命中率来禁止高速缓存。


图1是根据本发明的一个实施例的计算机系统框图,其中存储 器模块中的每个都包含存储集线器;
图2是图1中的计算机系统使用的存储集线器的框图,它包含根 据本发明一个例子的性能计数器;
图3是图1中的计算机系统使用的存储集线器的框图,它包含根 据本发明一个例子的预读缓冲器。
具体实施例方式
图1示出的是根据本发明一个例子的计算机系统100。计算机系 统100包括处理器104,用于执行不同的计算功能,比如执行特定的 软件来执行特定的计算或任务。处理器104包括处理器总线106,通 常处理器总线106包括地址总线、控制总线和数据总线。处理器总线 106通常与高速缓存存储器108相连,像前面所提到的,高速缓存存 储器108通常是静态随机存取存储器("SRAM")。最后,处理器总 线106和系统控制器110相连,系统控制器有时被称为"北桥"或者 "存储控制器"。
系统控制器110作为通信通路,为处理器104提供与多种其它部 件的连接。具体而言,系统控制器no包含图形端口,图形端口通 常与图形控制器112相连,而图形控制器112进而和视频终端U4相 连。系统控制器110也和一个或多个输入设备118相连,比如键盘和 鼠标,来允许操作员与计算机系统110进行交互。通常,计算机系
统100还包括一个或多个输出设备120,比如打印机,其通过系统控 制器110和处理器104相连。 一个或多个数据存储设备124也常常通 过系统控制器IIO与处理器104相连,来允许处理器104从内部或外 部存储介质(未示出)存储或获取数据。典型的存储设备124例子包 含硬盘、软盘、磁带和光盘只读存储器(CD—ROMs)。
系统控制器110和多个存储器模块130a,b.,.n相连,这些存储器 模块作为计算机系统110的系统存储器。这些存储器模块130经常通 过高速链接134与系统控制器IIO相连,该高速链接134可以是光学 或电子通信通路,或者一些其它类型的通信通路。当此高速通信链 接134用光学通信通路实现时,这个光学通信通路例如可以是一条 或多条光纤。在这种情况下,系统控制器110和存储器模块会包含 光学输入/输出端口,或是独立的输入和输出端口与此光学通信通路 相连。图中存储器模块130以多分支方式与系统控制器110相连,其 中单个的高速链接134连接所有的存储器模块130。但是,应该理解 的时,也可以使用其它的拓扑结构,比如点到点的连接方式,其中使 用单独的高速链接(未示出)将各个存储器模块130与系统控制器 110相连。也可以使用交换机拓扑结构,其中系统控制器110通过交 换机(未示出)选择性的连接各个存储器模块130。其它可能的拓扑 结构对于本领域的技术人员是显而易见。
存储器模块130中的每一个都包含存储集线器140,以控制对32 个存储器设备148的访问,这些存储器设备在图1中的例子中是同步 动态随机存取存储器设备("SDRAM")。但是,可能会使用少些或 多些的存储器设备148,当然也可能使用不同于SDRAM设备的其它 存储器设备。图1所示的例子中,存储集线器140通过高速链接134 与超过4个独立的存储通道149通信。在这个例子中,虽然图l没有 示出,提供了4个存储集线控制器128,每个从一个存储通道149接 收数据。但是在其它例子中可以使用少些或多些数目的存储通道。 存储集线器140通过总线系统150与每个系统存储设备148相连,总 线系统150通常包含控制总线、地址总线和数据总线。
图2是根据本发明实施例的存储集线器200。存储集线器200可
以用来替换图1中的存储集线器140。图2中的存储集线器200连接 4个存储器设备240a-d,在本例中存储器设备是传统的SDRAM设 备。在另一种实施例中,存储集线器200与4个不同的存储器设备库 相连,而不只是与4个不同的存储器设备240a-d连接,每个库通常 有多个存储器设备。但是,作为例子,本说明书只参考与4个存储 器设备240a-d相连的存储集线器200。应该理解,对存储集线器200
作必要的修改就可以适应多个存储器库是落入本领域的普通技术人 员的知识范围内的。
存储集线器200还包括链接接口 210a-d和212a-d以分别将存储 器集线器200位于其上的存储器模块分别连接到第一高速数据链接 200和第二高速数据链接222。如前文在图1中讨论的那样,高速数 据链接220、 222可以使用光学或电子通信通路或其它种类的通信通 路实现。链接接口 210a-d、 212a-d是传统的,包含从/向高速数据链 接220、 222传输数据、命令和地址信息的电路。本领域公知的此电 路包含发送和接收逻辑。应该理解,本领域的普通技术人员都有足够 的知识来改变链接接口 210a-d、 212a-d以用于特定类型通信通路, 此种对210a-d、 212a-d链接接口的改变可在不脱离本发明的范围的 情况下实现。例如,当高速数据链接220、 222以光学通信通路实现 时,链接接口 210a-d、 212a-d就要包括光学输入/输出端口,其可将 通过光学通信通路传送的光学信号转换成电信号。
链接接口 210a-d、 212a-d通过多个总线和信号线与交换机260 相连,这些总线和信号线被表示成总线214。总线214是传统的,包 括写数据总线和读数据总线,尽管也可以用单个双向数据总线作为 替代来通过链接接口 210a-d、 212a-d实现双向的数据传输。本领域 的普通技术人员可以理解总线214是作为例子提出的,总线214可 以包括少些或多些信号线,比如进一步包括请求线和探测(snoop) 线,这些用来维护高速缓存一致性。
链接接口 210a-d、 212a-d包括允许存储集线器200以不同的配置 连接到系统存储器的电路。例如,如图1显示的多分支连接,可以 实现成通过链接接口 210a-d或212a-d连接各存储器模块和存储集线
控制器128。或者也可以实现成点对点或菊花链形式的配置来依次连 接存储器模块。例如,链接接口 210a-d可以用来连接第一存储器模 块,链接接口 212a-d可以用来链接第二存储器模块。因此处理器或 者系统控制器通过一组链接接口连接一个存储器模块,而通过另一 组链接接口连接到另一个存储器模块。在本发明的实施例中,存储 器模块中的存储集线器200通过点对点的方式与处理器相连,因此 没有其它设备连接在处理器104和存储集线器200之间。这种连接模 式在处理器104和存储集线器200之间提供了更好的信号连接,原因 有几个方面,包括相对低的电容,相对少的线路间断来反射信号, 以及相对短的信号通路。
交换机260进一步连接4个存储器接口 270a-d,这些接口进而各 自连接系统存储器设备240a-d。通过为每个系统存储器设备240a-d 提供单独且独立的存储器接口 270a-d,存储集线器200就避免了总线 或存储器库冲突,这种冲突经常在单一通道存储体系结构中发生。 交换机260通过多个总线和信号线与各存储器接口相连,这些总线 和信号线被表示为总线274。总线274包括写数据总线、读数据总线 和请求线。但是,应该理解,使用单个的双向数据总线来替代单独写 数据总线和读数据总线也是可以。此外,总线274进一步可以包含比 先前描述更多或更少数量的信号线。
在本发明的一个实施例中,各存储器接口 270a-d特别用于与之 连接的系统存储器设备240a-d。具体而言,各存储器接口 270a-d特 别用于提供和接收分别由其与之连接的系统存储器设备240a-d接收 和生成的特定信号。同时,存储器接口 270a-d能够和以不同的时钟 频率操作的系统存储器设备240a-d共同操作。结果,存储器接口 270a-d将处理器104与存储集线器230和连接到存储集线器200的存 储器设备240a-d之间的接口可能出现的变化隔离幵。
连接链接接口 210a-d、 212a-d和存储器接口 270a-d的交换机260 可以是任意传统的或以后发展的交换机。例如,交换机260可以是 交叉(cross-bar)交换机,它能同时将链接接口 210a-d、 212a-d和存储 器接口 270a-d以不同的方式相互连接。交换机260还可以是一组多
路复用交换机,它无法提供与交叉交换机一样的连接性,但是依然
可以部分或全部将链接接口 210a-d、 212a-d与每个存储器接口 270a-d连接起来。交换机260也可以包含仲裁逻辑(未示出)来决定 哪个存储器访问应该得到比其它访问更高的优先级。执行此功能的 总线仲裁对于本领域的技术人员来说很熟悉。
进一步参考图2,每个存储器接口 270a-d包括各自的存储控制器 280、各自的写缓冲器282和各自的缓冲存储器单元284。存储控制 器280执行传统存储控制器的功能,提供控制、地址和数据信号给与 之连接的系统存储器设备240a-d,从与之连接的系统存储器设备 240a-d接收数据信号。写缓冲器282和缓冲存储器单元284是普通的 缓冲器和缓冲存储器部件,包括标签存储器、数据存储器、比较器, 和本领域熟知的类似部件。写缓冲器282和缓冲存储器单元284中使 用的存储器设备可能是DRAM设备、静态随机存取存储器("SRAM") 设备或其它类型的存储器设备,或者是这三种设备的组合。并且, 这些存储器设备中任意一个或其全部,以及缓冲存储器单元284中 用到的其它部件一样,可以是内嵌或独立的设备。
每个存储器接口 270a-d中的写缓冲器282用来在服务读请求的 同时保存写请求。在此类系统中,处理器104可以发送一个写请求 到系统存储器设备240a-d,即使所指向的存储器设备正在忙于服务 上一个写请求或读请求。使用这种方法,能够不按顺序执行存储器 请求,因为先到达的写请求可以被保存在写缓冲器282中,而后到 达的读请求可以正在被服务。缓冲写请求的能力允许读请求优先被 服务,从而大大减少了读取存储器的延迟,因为读请求可以被赋予 更高的优先级而不管它们到达的时间顺序。例如,夹杂着读请求的 一系列写请求可以保存到写缓冲器282中,使读请求以流水线的方 式被服务,然后再以流水线的方式服务保存的写请求。结果,把写 请求发送给存储器设备270a-d,然后把读请求发送给存储器设备 270a-d,这之间为交替写和读请求所需的漫长的处理时间可以被避 免。
在每个存储器接口 270a-d中使用缓冲存储器单元284使得在数
据在最近刚被读或写到存储器设备240a-d时,处理器104可以从相 应的系统存储器设备240a-d直接接收读命令的数据响应,而不用等 待存储器设备240a-d来提供此数据。缓冲存储器单元284因此减少 了系统存储器设备240a-d的读延迟,使计算机系统的存储带宽最大 化。类似的,处理器140可以将写数据保存到缓冲存储器单元284, 然后执行其它功能,与此同时在同一存储器接口 270a-d中的存储控 制器280将缓冲存储器设备单元284的写数据转存到与之相连的系统 存储器设备240a-d中。
存储集线器200还包含内置的自测(BIST)和诊断引擎2卯,其 通过诊断总线292与交换机260相连。诊断引擎290进而与维护总线 296相连,维护总线296可以是系统管理总线(SMBus)或是一个根 据联合测试行动组(JTAG)和IEEE 1M9.1标准制定的维护总线。 SMBus和JTAG标准为本领域的普通技术人员所了解。维护总线296 通常为用户提供对诊断引擎290的访问,以执行存储器通道和链接 的诊断。例如,用户可以通过维护总线296连接将单独的PC主机来 进行测试探测,或者监视存储器系统的操作。通过使用维护总线296 来访问诊断测试结果,如前所述的关于测试探测的使用的相关问题 就可以避免。应该理解,维护总线296可以被修改成不遵循传统的总 线标准,而不背离本发明的范围。还应该理解,在采用此标准维护总 线的地方,诊断引擎290应该适于维护总线296的标准。例如,在使 用维护总线的地方,诊断引擎应该含有遵循JTAG总线标准的维护总 线接口。
存储集线器200还包括DMA引擎286,其通过总线288连接交 换机260。 DMA引擎286使得存储集线器200能够从系统存储器中 一个位置移动成块的数据到系统存储器的另一个位置上,而不用处 理器104的干预。总线288包含数条传统总线线路和信号线,比如地 址、控制和数据总线,以及类似的部件,来处理系统存储器内的数 据传输。为本领域的普通技术人员所熟知的传统DMA操作可以由 DMA引擎286实现。合适的DMA引擎的更多细节说明可以在共同 指定、共同未决的2003年7月22日提交的美国专利申请号10/625,132
找到,其标题是APPARATUS AND METHOD FOR DIRECT MEMORY ACCESS IN A HUB-BASED MEMORY SYSTEM (基于集 线器的存储器系统设备和直接访问存储器的方法),其通过引用在此 并入。如在上述的专利申请中详细说明的一样,DMA引擎286可以 读取系统存储器中的链接列表来执行无处理器干预的DMA存储器操 作,这样就解放了处理器104和系统总线执行存储器操作的带宽限 制。DMA引擎286还可以包含例如在多通道为每个系统存储器设备 240a-d进行DMA操作的电路。这种多通道DMA引擎在本领域为人 熟知,可以使用传统的技术实现。
诊断引擎290和DMA引擎286优选地为存储集线器200中的嵌 入式电路。但是,包含单独与存储集线器200相连的诊断引擎和分 开的DMA设备也在本发明的范围之内。
本发明的实施例提供与一个或多个存储控制器280通信的监视 部件。性能监视部件允许存储控制器280动态调整从存储单元240发 送和接收数据的方法。在图2展示的例子中,提供与存储控制器280 通信的至少一个性能计数器300,下面会详细说明。
性能计数器300跟踪一个或多个与存储访问的和存储集线器200 的性能相关的度量,例如包括本发明的例子中的页面命中率、预取命 中百分比,和高速缓存命中率或百分比。
如上所述,减少存储设备延迟的一个方法是预取数据。图3展 示的是具有预取高速缓存的图1存储集线器140的例子,其在共同指 定的共同未决的2003年6月20日提交的美国专利申请有进一歩说 明,此申请号为10/601,252,标题是MEMORY HUB AND ACCESS METHOD HAVING INTERNAL PREFETCH BUFFERS (存储集线器 和拥有内部预取高速缓存的访问方法),其通过引用在此并入。如上 述专利申请所描述的,存储集线器140包含与高速链接134连接的链 接接口152。链接接口 152可能包含各种传统接口电路,比如先进先 出缓冲器(未示出)来接收和保存通过高速链接134传递的存储器请 求。然后存储器请求可以被保存在链接接口中,直到它们能被存储 集线器140处理。
由链接接口 152接收到的存储器请求首先通过被传送到存储排
序器160而被处理,此存储排序器包含在图2中的一个或多个存储控 制器270a-d中,与一个或多个性能计数器300通信。存储排序器160 将存储器请求由系统控制器110 (图1)的输出格式转换成能够被存 储器设备148使用的存储器请求格式。这种重新格式化后的请求信 号通常包含存储器命令信号和行和列的寻址信号,此存储器命令信 号从由存储集线器140接收到的存储器请求中包括的存储器命令中 得到,寻址信号从由存储集线器140接收到的存储器请求中包括的地 址得出。如果存储器请求是写存储器请求,被重新格式化后的请求 信号通常会包含写数据信号,此写数据信号从由存储集线器140接 收到的存储器请求中包含的写数据得出。例如,如果存储器设备148 是传统的DRAM设备,存储排序器160会输出行地址信号,行地址 选通(strobe)("RAS")信号,活动的低写/活动的高读信号("W"R"), 列地址信号和列地址选通("CAS")信号。重新格式化的存储器请求 优选地以被存储器设备148使用的顺序从排序器160输出。
存储排序器160将重新格式化后的存储器请求应用到存储器设 备接口166上。存储器设设备接口 166和链接接口 152类似,可以包 含FIFO缓冲器(未示出),当存储器请求从链接接口 152处收到时, 用于接收和保存一个或多个存储器请求。
当存储器设备接口 166保存多个存储器请求直到它们能被存储 器设备148处理时,存储器设备接口 166可能对存储器请求重新排序 以便它们以其它的顺序应用到存储器设备148中。例如,存储器请 求可能以某种方式保存到接口 166中,使得某种类型的请求,比如 读请求,比其它类型的请求,比如写请求,更早被处理。
如前面所解释的,使用存储集线器的一个劣势是它们有时会增 加延迟。又如前面所解释的,传统上为减少存储器的读延迟而使用 的预取方法不是十分适合使用存储集线器的存储器系统。相反,图3 中展示的存储集线器MO通过在存储集线器140中包含一个预取系统 170提供相对低的读延迟,这个预取系统170可以正确的预测在程序 的执行过程中哪些数据将会被需要,然后预取这些数据,把它们保
存到一个或多个作为预取系统170 —部分的缓冲器中。预取系统170 包含多个预取缓冲器176,它们的个数可以依靠操作条件而变化,下 面的说明和前面提到的专利申请对此有更详细的解释。简单的说, 预取缓冲器176从存储器设备接口 166接收预取数据。这些数据被保 存在预取缓冲器176中,这样它们在随之的存储器访问可用。这些 数据然后通过多路复用交换机178连接到链接接口 152。
预取系统170还包含历史逻辑180,其从链接接口 152接收存储 器请求。历史逻辑180使用传统的算法分析存储器请求,来察觉一 种模式或步长以期预测未来的存储器请求。尽管可以预取存储器设 备148中任意地址的数据,但这些数据优选地只从存储器设备148中 那些当前活动或"打开"的行中预取,这样预取行为就不需要存储器 设备148中的一行存储单元预先充电。例如, 一个或多个性能计数 器300跟踪页面命中数或百分比。存储排序器160根据由一个或多个 性能计数器300提供的信息调整活动或"打开"的页面数,如图2所 示。在本发明的一个例子中,当由至少一个性能计数器300跟踪的 页面命中数和/或页面命中百分比低于某个阈值时,打开页面数被存 储排序器160减少。类似的,当页面命中数或页面命中百分比超过 某个阈值时,打开的页面数增加。当然,本发明的其他例子使用了调 整打开页面数的其他方法。
存储排序器160可能还根据由一个或多个性能计数器300提供的 信息选择性地开启或禁止预取功能,这些信息比如为页面命中率、预 取命中百分比以及类似的信息。但是预取也可能始终开启。在一例 子中,当预取命中数和/或页面命中率下降到低于某个阈值时,存储 排序器300便禁止预取功能。或者,排序器160可能会根据导致从预 取缓冲器176而不是存储器设备148中读取数据的存储器请求百分比 来开启或禁止预取功能。
当含有存储集线器140的存储器模块130接收到读存储器请求 时,它首先决定请求中要求的数据或指令是否保存在预取缓冲器176 中。这个决定通过将存储器请求和标签逻辑186相连得出。标签逻 辑186从对应每个预取建议的历史逻辑180处接收预取地址。或者,
标签逻辑186从对应于连接到存储器设备接口 166的每个预取请求的 存储排序器160接收预取地址。也可以使用其它方式使标签逻辑186 决定存储器读请求要求的数据是否被保存在预取缓冲器176中。不 管如何,标签逻辑186都会将保存预取地址以提供曾经被保存在预 取缓冲器176中的数据记录。标签逻辑186使用传统技术比较从链接 接口 152接收到的每次存储器请求地址和保存在标签逻辑186中的预 取地址,来决定存储器请求要求的数据是否保存在预取缓冲器176 中。
如果标签逻辑186确定存储器请求要求的数据没有保存在预取 缓冲器176中,它就发送一个低HIT/MISS^命中/落空"信号给存储 排序器160。如果标签逻辑186认定存储器请求要求的数据保存在预 取缓冲器176中,它就发送一个HH7MISS"言号给存储排序器160。 在一例子中,高和/或低HIT/MISSM言号的发生被一个或多个性能计数 器300记录下来,以跟踪总体存储器请求数中的命中数。
在一个例子中,图3所示的性能计数器300跟踪页面命中率随时 间的变化。页面命中率然后被传送给存储排序器160,以调整打开的 页面数和/或切换至自动预充电模式,这时请求的线会自动预充电。 在另一个例子中,预取命中百分比被性能计数器300跟踪,以调整预 取功能是否开启和/或调整要发出的预取请求数。在一个例子中,至 少一个性能计数器300跟踪高速缓存命中率,就是对高速缓存284a-d 的请求,其中请求的数据保存在高速缓存中。例如,如果高速缓存 命中率太低,就可以禁止高速缓存。
在一个例子中,使用可编程调整的阈值来确立是否使用自动预 充电模式、页面模式的打开页面数、预取请求数和是否高速缓存。在 一个例子中, 一个或多个性能计数器300的监视时间可编程调整。 在不同的例子中,对存储器总线的监视可以是数秒、数小时或数 天,以获取结果或重置计数器。由前文所述可知,尽管为了说明的 原因,在此列举了数个本发明的特定实施例,但可进行不同修改而 脱离本发明的精神和范围。相应的,本发明唯一由附加的权力要求 限定。
权利要求
1、一种存储器模块,包括多个存储器设备;以及存储集线器,其包括链接接口,其接收访问至少一个所述存储器设备中的存储器单元的存储器请求;连接到所述存储器设备的存储器设备接口,该存储器设备接口用于将存储器请求发送给所述存储器设备,以访问至少一个所述存储器设备中的存储器单元,以及接收响应于至少一些所述存储器请求的读数据。连接到该存储器设备接口的性能计数器,该性能计数器用于跟踪至少一个性能度量;以及连接到该链接接口和该存储器设备接口的存储排序器,该存储排序器用于响应于从该链接接口接收的存储器请求,将存储器请求发送给该存储器设备接口,该存储排序器还用于响应于该性能计数器跟踪的该性能度量,动态地调整操作性。
2、 根据权利要求1的存储器模块,其中所述链接接口包括光学 输入/输出端口。
3、 根据权利要求1的存储器模块,其中所述性能计数器跟踪的 该性能度量包括从页面命中率、预取命中和高速缓存命中率的组中 选取的至少一个性能度量。
4、 根据权利要求3的存储器模块,其中所述性能计数器跟踪页 面命中率,而且所述存储排序器用于改变所述存储器设备中打开页 面的数量。
5、 根据权利要求3的存储器模块,其中所述性能计数器跟踪页 面命中率,而且所述存储排序器用于切换到自动预充电模式。
6、 根据权利要求3的存储器模块,其中所述性能计数器跟踪预取命中百分比,而且所述存储排序器用于开启或禁止预取功能。
7、 根据权利要求3的存储器模块,其中所述性能计数器跟踪预 取命中百分比,而且所述存储排序器用于确定预取请求的数量。
8、 根据权利要求3的存储器模块,其中所述性能计数器跟踪高 速缓存命中率,而且所述存储排序器用于禁止该高速缓存。
9、 根据权利要求1的存储器模块,其中所述存储器设备包括动 态随机存取存储器设备。
10、 一种存储集线器,包括链接接口 ,其接收访问至少一个存储器设备中的存储器单元的 存储器请求。连接到所述存储器设备的存储器设备接口,该存储器设备接口 用于将存储器请求发送给所述存储器设备,以访问至少一个所述存 储器设备中的存储器单元,以及接收响应于至少一些所述存储器请 求的读数据。连接到该存储器设备接口的性能计数器,该性能计数器用于跟 踪至少一个性能度量;以及连接到该链接接口和该存储器设备接口的存储排序器,该存储 排序器用于响应于从该链接接口接收的存储器请求,将存储器请求发 送给该存储器设备接口 ,该存储排序器还用来响应于该性能计数器 跟踪的该性能度量动态地调整操作性。
11、 根据权利要求10的存储集线器,其中所述链接接口包括光 学输入/输出端口。
12、 根据权利要求10的存储集线器,其中所述性能计数器跟踪 的该性能度量包括从页面命中率、预取命中和高速缓存命中率的组中 的选取的至少一个性能度量。
13、 根据权利要求12的存储集线器,其中所述性能计数器跟踪 页面命中率,而且所述存储排序器用于改变所述存储器设备中打开 页面的数量。
14、 根据权利要求12的存储集线器,其中所述性能计数器跟踪 页面命中率,而且所述存储排序器用于切换到自动预充电模式。
15、 根据权利要求12的存储集线器,其中所述性能计数器跟踪 预取命中百分比,而且所述存储排序器用于开启或禁止预取功能。
16、 根据权利要求12的存储集线器,其中所述性能计数器跟踪 预取命中百分比,而且所述存储排序器用于确定预取请求的数量。
17、 根据权利要求12的存储集线器,其中所述性能计数器跟踪 高速缓存命中率,而且所述存储排序器用于禁止该高速缓存。
18、 一种计算机系统,包括 中央处理单元("CPU");连接到该CPU的系统控制器,该系统控制器具有输入端口和输 出端口;通过该系统控制器连接到该CPU的输入设备; 通过该系统控制器连接到该CPU的输出设备; 通过该系统控制器连接到该CPU的存储设备; 多个存储器模块,每个所述存储器模块包括多个存储器设备;以及存储集线器,其包括 链接接口,其接收访问至少一个所述存储器设备中的存储器单元的存储器请求;连接到所述存储器设备的存储器设备接口 ,该存储器设备 接口用于将存储器请求发送给所述存储器设备,以访问至少一个所 述存储器设备中的存储器单元,以及接收响应于至少一些存储器请 求的读数据;连接到该存储器设备接口的性能计数器,该性能计数器用 于跟踪至少一个性能度量;以及连接到该链接接口和该存储器设备接口的存储排序器,该 存储排序器用于响应于从该链接接口接收的存储器请求,将存储器请 求发送给该存储器设备接口,该存储排序器还用于响应于该性能计 数器跟踪的性能度量动态地调整操作性。
19、 根据权利要求18的计算机系统,其中所述链接接口包括光 学输入/输出端口。
20、 根据权利要求18的计算机系统,其中所述性能计数器跟踪 的所述性能度量包括从页面命中率、预取命中和高速缓存命中率的组 中选取的至少一个性能度量。
21、 根据权利要求20的计算机系统,其中所述性能计数器跟踪 页面命中率,而且所述存储排序器用于改变所述存储器设备中打幵 页面的数量。
22、 根据权利要求20的计算机系统,其中所述性能计数器跟踪 页面命中率,而且所述存储排序器用于切换到自动预充电模式。
23、 根据权利要求20的计算机系统,其中所述性能计数器跟踪 预取命中百分比,而且所述存储排序器用于开启或禁止预取功能。
24、 根据权利要求20的计算机系统,其中所述性能计数器跟踪 预取命中百分比,而且所述存储排序器用于确定预取请求的数量。
25、 根据权利要求20的计算机系统,其中所述性能计数器跟踪 缓存命中率,而且所述存储排序器用于禁止该高速缓存。
26、 根据权利要求18的计算机系统,其中所述存储器设备包括 动态随机存取存储器设备。
27、 从存储器模块读取数据的方法,包括 接收访问安装在存储器模块上的存储器设备的存储器请求; 响应于所述接收到的存储器请求,将所述存储器请求发送给所述存储器设备,至少一些所述存储器请求是读数据的存储器请求; 接收读响应于所述读存储器请求的读数据; 跟踪至少一个性能度量;以及根据所述跟踪的性能度量调整存储排序器的操作性。
28、 根据权利要求27的方法,其中所述跟踪至少一个性能度量 的动作包括跟踪从包括页面命中率、预取命中和高速缓存命中率的组 中选取的至少一个性能度量。
29、 根据权利要求28的方法,其中根据所述跟踪的度量调整存 储排序器的操作性的动作包括如果所述跟踪的度量超过一个阈电平, 则调整存储排序器的操作性。
30、 根据权利要求29的方法,还包括将所述阈电平编程至执行 所述跟踪的性能计数器中。
31、 根据权利要求28的方法,其中所述根据跟踪的度量调整存 储排序器的操作性的动作包括如果所述跟踪的度量低于一个阈电平,则调整存储排序器的操作性。
32、 根据权利要求31的方法,还包括将所述阈电平编程至执行 所述跟踪的性能计数器中。
33、 根据权利要求28的方法,其中所述接收存储器请求以访问 安装在所述存储器模块上的存储器设备的动作包括接收对应于所述 存储器请求的光学信号。
34、 根据权利要求28的方法,其中所述跟踪的性能度量包括页 面命中率,而且根据所述跟踪的性能度量调整存储排序器的操作性 的动作包括调整所述存储排序器的操作性以改变所述存储器设备中 打开页面的数量。
35、 根据权利要求28的方法,其中所述跟踪的性能度量包括页 面命中率,而且根据所述跟踪的性能度量调整存储排序器的操作性 的动作包括调整所述存储排序器的操作性以切换到自动预充电模 式。
36、 根据权利要求28的方法,其中所述跟踪的性能度量包括预 取命中百分比,而且根据所述跟踪的性能度量调整存储排序器的操 作性的动作包括调整所述存储排序器的操作性以开启或禁止预取功
37、 根据权利要求28的方法,其中所述跟踪的性能度量包括预 取命中百分比,而且根据所述跟踪的性能度量调整存储排序器的操 作性的动作包括调整所述存储排序器的操作性以确定预取请求数。
38、 根据权利要求28的方法,其中所述跟踪的性能度量包括高 速缓存命中率,而且根据所述跟踪的性能度量调整存储排序器的操 作性的动作包括调整存储排序器的操作性以禁止该高速缓存。
全文摘要
一种存储器模块,包含连接数个存储器设备的存储集线器。该存储集线器包括至少一个性能计数器来记录一个或多个系统度量,比如,页面命中率、预取命中率和/或高速缓存命中率。该性能计数器和存储排序器通信,该存储排序器根据性能计数器跟踪的系统度量来调整其操作。
文档编号G06F12/08GK101390060SQ200580015411
公开日2009年3月18日 申请日期2005年5月4日 优先权日2004年5月14日
发明者约瑟夫·M·杰德洛 申请人:米克伦技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1