存储器微块化推测性返回的制作方法

文档序号:6567729阅读:175来源:国知局
专利名称:存储器微块化推测性返回的制作方法
技术领域
本发明涉及计算机系统;更具体而言,本发明涉及存储器访问控制。
背景技术
对视频存储器的主存储器进行访问的图形控制器是实现统一存 储器架构(UMA)的计算机系统的特色。然而,UMA图形系统的存 储器效率可能由于CPU高速缓存线大小的需求而受到限制。例如, 用于图形的理想存储器访问大小可以是4到16字节,因为图形控制 器能够一次对一个或几个像素或者纹理元素(texel)进行操作。然而, 常常针对64字节的CPU高速缓存线大小来优化存储器架构,以使得 CPU存储器效率最优化。其结果是,平均起来,从存储器中读出的 相当大量的数据可能从未被图形存储器使用过。分立式图形控制器的 制造商通过使用更为狭窄的存储器通道而在取出(fetch)过程中使得 该问题最小化。然而,该解决方案不能用于基于UMA的集成图形控 帝ll器。


将通过举例的方式来图示本发明,但是并不局限于附图中的特 征,在附图中,相同的参考标记表示类似的元件,并且在附图中 图1是计算机系统的一个实施例的框图; 图2示出了存储器控制器的一个实施例; 图3示出了逻辑虚拟地址的一个实施例; 图4示出了存储器控制器的另一个实施例; 图5A和5B示出了性能上的改善;以及 图6是计算机系统的另一个实施例的框图。
具体实施例方式
要描述的是对于存储器事务(transaction)的推测性返回 (speculative return)。在以下对于本发明的详细描述中,阐述了多个 具体细节,以便提供对本发明的透彻理解。然而,本领域技术人员要 理解的是,没有这些具体细节,本发明也是可以实现的。在其他实例 中,以框图的形式示出了已知的结构和装置,而不是给出细节,以便 避免本发明变得不清楚。
在说明书中提到的"一个实施例"或者"实施例"意思是结合该 实施例所描述的特定特征、结构、或者特点包含在本发明的至少一个 实施例中。说明书中各个地方出现的短语"在一个实施例中"并非都 一定指的是同一实施例。
图1是计算机系统100的一个实施例的框图。计算机系统100包 括中央处理单元(CPU) 102,其耦合到接口 105。在一个实施例中, CPU 102是来自加利福尼亚Santa Clara的Intel公司的Pentium 系列 的处理器,Pentium IV处理器。可替换地,也可以使用其他CPU。 例如,可以使用多个处理内核来实现CPU102。在另一个实施例中, 计算机系统100可以包括多个CPU 102。
在另一个实施例中,芯片组107也耦合到接口 105。芯片组107 包括存储器控制组件110。存储器控制组件110可以包括耦合到系统 主存储器115的存储器控制器112。系统主存储器115存储数据和由 CPU 102或者系统100中包含的任何其他器件所执行的指令序列。在 一个实施例中,系统主存储器115包括动态随机存取存储器 (DRAM);然而,系统主存储器115可以使用其他存储器类型来实 现。还可以将其他器件耦合到接口 105,例如多个CPU和/或多个系 统存储器。
存储器控制组件110可以通过接口耦合到输入/输出(I/O)控制 组件140。 I/O控制组件140提供通往计算机系统100中的I/O器件 的接口 。1/0控制组件140可以支持I/O总线(例如外设部件互连(PCI) Express、加速图形端口 (AGP)、通用串行总线(USB)、少针脚型接
口 (lowpincount, LPC)总线、或者其他类型的I/0总线(未示出)) 上的标准I/0操作。
根据一个实施例,图形控制器160与芯片组107进行通信,并且 图形控制器160被实现为提供视频图形至耦合到计算机系统100的显 示器(未示出)。图形控制器160访问用于视频存储器的主存储器115。 如上所述,支持图形系统和CPU的存储器器件的存储器效率受到限 制,因为用于图形的存储器访问大小经常理想地为4到16字节,而 存储器架构是针对64字节的CPU线大小进行优化以使CPU效率最 优化的。
根据一个实施例,存储器控制组件110降低了图形器件的存储器 请求大小,同时保持了 64字节的存储器事务。标准存储器通道,例 如基于DDRDRAM技术的存储器通道,具有某种m比特的物理宽度。 存储器事务由T次传送(transfer)组成,其总逻辑宽度为M=m*T/8 个字节。在每次事务中的字节被认为是具有连续的地址。在随后的讨 论中,术语宽度表示逻辑宽度。
微块化(micro-tiling)将M字节宽度的通道划分为S个子通道, 每个子通道宽度为N-M/S字节,其中,在每个子通道上传送N字节 的数据。为每个子通道提供地址,其中,某一数量(0的独立地址 比特可能不同于给予其他子通道的地址中的对应比特。在每个子通道 上传送的数据被认为是表示毗邻的地址范围。然而,在每个子通道上 的数据块并非一定来自于毗邻的地址范围。每个子通道包括通道的总 存储单元的子集。
图2示出了支持微块化(micro-tiling)的存储器控制组件110的 一个实施例。在一个实施例中,多通道存储器子系统每个通道具有一 个微块化存储器控制器。因此,如图2所示,存储器控制组件110包 括两个存储器控制器112 (存储器控制器1和2),分别用于这两个通 道的每一个。每个通道包括S个子通道,每个子通道宽度为N字节。 于是,每个通道宽度为]VNNfS字节。
在该图中,对存储器读出或写入的请求被示为2X2的正方形阵 列,其可以表示像素或者纹理元素的2X2阵列。对于在分配给子通道之前的请求进行了图示。在子通道分配之后,将请求编号为0—S-1, 以指示子通道分配。对于耦合到存储器控制组件110的请求者205的 N字节返回是在读出事务的情况下发生的。
存储器控制组件110包括通道分配逻辑210,其耦合到存储器控 制器112。通道分配210经由存储器控制器112将从请求者205接收 的每个请求分配至存储器通道240。更进一步地,每个存储器控制器 112包括子通道分配215、重排序缓冲器220和事务汇集器(assembler) 230。因此,如图2所示,将请求分配给存储器控制器1或者存储器 控制器2。
子通道分配215将每个请求分配给在存储器通道240中的子通 道。重排序缓冲器220收集请求,以使得事务汇集器230尝试汇集对 于每个存储器240的子通道的存储器访问。根据一个实施例,每个子 通道具有相等的N字节宽度。
在图2所示的系统的操作期间,将进入到存储器控制器(1或2) 的请求分配给子通道并且将其放置在重排序缓冲器220中,该请求是 地址A处的对于N字节数据块进行读出或者写入的请求。在一个实 施例中,采用以下处理定义同一性子通道分配(Identity Subchannel Assignment) s:将该请求地址A向右偏移P^log2(N)个比特,得到新 的整数值A (例如,A=A P);并且s是A的Q二log2(S)个最低有效 比特(例如,s=A&((l Q)-l))。
存储器控制器通过从重排序缓冲器220选择S个读出请求(分别 用于每个子通道)来形成存储器读出事务。存储器控制器通过从重排 序缓冲器220选择S个写入请求(分别用于每个子通道)来形成存储 器写入事务。由共享地址线所表示的地址部分与在该事务中所有的子 通道请求相同。
图3示出了对物理地址中的地址比特的解释的一个实施例。图3 中所示的对于共享和独立地址比特的选择以及子通道选择比特是为 了图示说明目的,因为可以随意地将在P个子通道数据地址比特之上 的地址比特划分为共享和独立的地址比特以及子通道选择比特。独立 地址比特在子通道之间是不同的,并且未必是毗邻的。发送到子通道 的地址比特是该子通道的共享地址比特和独立地址比特。
图4示出了存储器控制组件110的一个实施例,其从4个16字 节的请求汇集成64字节的事务,图中仅示出了单个通道。图4所示 出的重排序缓冲器220被实现为用于每个子通道的重排序队列。然 而,在其他实施例中,重排序缓冲器220可以通过其他机制实现。
在该实施例中,事务汇集器230从16B的请求(分别用于每个 子通道)构建64B的存储器请求。形成该存储器请求的所有16B请 求都具有相同的共享地址比特。因此,汇集器230查询该队列,根据 请求是否具有共同的共享地址来找到能够被汇集到单个事务中的请 求。
注意,在图4所示的实施例中,汇集器230不能找到用于子通道 lc的请求。当尝试形成事务时,存储器控制器可能不能为每个子通 道找到请求以使得所有子通道都具有相同的共享地址段(例如,使得 每个共享地址比特的值在所有请求之间都相同)。发生这种事件的子 通道可以称为是"空"子通道。
根据一个实施例,如果子通道不能用在相应队列中的请求进行填 充,则结果是不执行去往/来自该子通道的传送。在这种实施例中, 如果子通道不能用请求进行填充,则读出任意存储单元并且将结果抛 弃。在替换实施例中,每个子通道包括附加控制线,其用于在不存在 对于该通道的相应请求时,减小(powerdown)子通道的功率。
在另一实施例中,执行推测性读出并将其返回到请求者,而不是 抛弃所取得的数据。推测性返回涉及在其他未使用的(otherwise unused)子通道上读出N字节的数据块,并且像对任何其他读出请求 那样,将该数据返回到某个请求者。因此,存储器控制器可以选择在 其他"空"(otherwise "empty")子通道上读出具有与在同一存储器 事务中在其他子通道上被访问的数据相同的共享地址比特的任意对 齐的(any aligned) N比特数据块,并且使得该数据可由某个请求者 使用。
根据一个实施例,通过为与该"空"子通道相关联的独立地址线 分配相邻子通道的独立地址比特,来在事务汇集器230上实现推测性
返回,其结果是返回2个N字节数据块,其具有相同的共享和独立 地址比特。尽管以上所述的是复制独立地址线,其他实施例也可以实 施其他机制来选择被推测性返回的数据块。
作为一个实例参考图4,不能找到用于子通道lc的请求。因此 子通道lc是"空"子通道。在所公开的实施例中,事务汇集器230 将子通道ld的独立地址比特分配给子通道lc,并且将子通道lc的数 据返回给与子通道ld相关联的请求者。因此,推测性返回通过执行 推测性子通道读出并将结果返回至请求者,提高了有效存储器利用。 如果请求者稍后需要该数据,则其可以已经/仍然被保持在例如高速 缓存中。
微块化存储器子通道能够访问在由共享地址比特和I个独立地址 比特所确定的某个地址范围之内的不毗邻的存储器地址。因此,与将 I个地址信号复制到每个子通道的成本进行权衡,对于I的明智选择 能够提供独立子通道的增强的并行性和带宽效率。
图5A和5B示出了微块化的性能改善。每个图示出了在分块地 址空间(tiled address space)中的三角形的光栅化(rasterization),每 个小正方形表示4字节像素或者纹理元素。图5A示出了当每个请求 是64字节时,在标准存储器系统中的过读取(overfetch)。每个4X4 像素块表示64字节的对齐的存储器块。该三角形包围了 57个像素。 采用标准存储器子系统,这57个像素在11个(64字节)存储器块 中。因此,为了访问这57个像素,需要访问可能不被使用的额外的 119个像素的代价数据(worth of data)(例如,得到32%的效率)。
图5B示出了在每个请求是16字节并且所有这些请求都可以由 微块化汇集器用来构建不带有未使用的子通道的64字节存储器事务 的情况下的过读取。在该情况下,三角形接触23个2X2像素阵列, 结果是访问35个额外的代价数据(例如,得到62%的效率)。微块 化的有效性取决于汇集器构建完全填充的存储器事务的能力。
图6示出了计算机系统100的另一实施例。在该实施例中,与独 立的存储器控制组件和I/O控制组件不同,芯片组107包括单个控制 集线器(control hub) 620。从而,存储器控制器112被包含在CPU 102
中,存储器115耦合到CPU 102。在这样的实施例中,图形控制器160 耦合到控制集线器620,并且经由CPU 102访问主存储器115。
然而,在阅读了以上描述之后,本发明的很多替换和修改对于本 领域技术人员而言毫无疑问地变得显而易见,要理解的是,通过图示 说明所示出和描述的任何特定实施例并非意欲被认为是限制性的。因 此,对于各种实施例的细节的参考并非意欲限制权利要求的范围,在 权利要求中仅仅阐述了被认为是对本发明而言是必要的那些特征。
权利要求
1、一种存储器控制器,包括分配逻辑,其接收访问存储器通道的请求,并且分配所述请求以访问在所述通道之中的两个或更多子通道之一;以及事务汇集器,其将所述请求与一个或多个附加请求进行组合,以访问在所述通道之中的所述两个或更多子通道,并且便于从无可用子通道请求的子通道推测性返回数据。
2、 如权利要求1所述的存储器控制器,其中,每个所述子通道 请求包含独立地址部分和共享地址部分。
3、 如权利要求2所述的存储器控制器,其中,子通道请求的所 述独立地址部分与子通道相关联。
4、 如权利要求3所述的存储器控制器,其中,所述事务汇集器 通过选择将要与所述的无可用请求的子通道相关联的独立地址部分, 来便于从所述的无可用请求的子通道推测性返回数据。
5、 如权利要求4所述的存储器控制器,其中,从所述的无可用请求的子通道中所推测性读取的数据被返回至请求者。
6、 如权利要求1所述的存储器控制器,还包括重排序缓冲器,其存储所述请求。
7、 如权利要求6所述的存储器控制器,其中,所述重排序缓冲器包括与所述两个或更多子通道中每一个相关联的队列。
8、 如权利要求7所述的存储器控制器,其中,每个队列存储要 传送至相关联的子通道的请求。
9、 一种方法,包括在存储器控制器处,接收访问耦合至所述存储器控制器的存储器 通道的请求;将每个所述请求分配给相关联的、所述存储器通道之中的、可独 立寻址的子通道;将所述请求与一个或多个附加请求进行组合,以访问在所述通道 之中的两个或更多的可独立寻址的子通道;以及从子通道推测性地返回数据,对于该子通道而言请求不可用。
10、 如权利要求9所述的方法,其中,从无可用请求的子通道推 测性地返回数据的过程包括选择将要与所述的无可用请求的子通道 相关联的独立地址部分。
11、 如权利要求9所述的方法,还包括在将每个所述请求分配 给子通道之后,将所述请求存储在重排序缓冲器中。
12、 如权利要求9所述的方法,还包括在汇集了所述请求之后, 将所述请求转发至所述相关联的子通道。
13、 如权利要求10所述的方法,还包括将从所述的无可用请 求的子通道中所推测性返回的数据返回至请求者。
14、 一种系统,包括存储器器件,其具有一个或多个通道;以及芯片组,其耦合至所述存储器器件,具有存储器控制器,用于接 收访问一个或多个存储器通道中的一个的请求,分配所述请求以访问 在所述通道之中的两个或更多可独立寻址的子通道中的一个,将所述 请求与一个或多个附加请求进行组合,以访问在所述通道之中的所述 两个或更多可独立寻址的子通道,并且便于从无可用请求的子通道推测性返回数据。
15、 如权利要求14所述的系统,其中包括 分配逻辑,用于分配所述请求以访问所述子通道;以及事务汇集器,用于组合所述请求,并且便于所述的数据的推测性 返回。
16、 如权利要求15所述的系统,其中,所述存储器控制器还包 括重排序缓冲器,用于存储所述子通道请求。
17、 如权利要求16所述的系统,其中,所述重排序缓冲器包括 与所述两个或更多子通道中每一个相关联的队列。
18、 如权利要求16所述的系统,其中,所述事务汇集器通过选 择将要与所述的无可用请求的子通道相关联的独立地址部分,来便于 从所述的无可用请求的子通道推测性返回数据。
19、 如权利要求14所述的系统,还包括耦合至所述存储器器件 和所述存储器控制器的请求者,其中,从所述的无可用请求的子通道 中所推测性读取的数据被返回至所述请求者。
20、 如权利要求14所述的系统,其中,所述芯片组包括第二存 储器控制器,用于接收访问一个或多个存储器通道中的一个的请求, 分配所述请求以访问在所述通道之中的两个或更多可独立寻址的子 通道中的一个。
全文摘要
根据一个实施例,公开了一种存储器控制器。该存储器控制器包括分配逻辑和事务汇集器。该分配逻辑接收访问存储器通道的请求,并且分配所述请求以访问在所述通道之中的两个或更多的可独立寻址的子通道中的一个。该事务汇集器将所述请求与一个或多个附加请求进行组合,以访问在所述通道之中的所述两个或更多的可独立寻址的子通道,并且便于从无可用子通道请求的子通道推测性返回数据。
文档编号G06F13/16GK101208672SQ200680020377
公开日2008年6月25日 申请日期2006年6月23日 优先权日2005年6月23日
发明者J·秋山, W·克利福德 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1