带宽自适应存储器压缩的制作方法

文档序号:6360975阅读:127来源:国知局
专利名称:带宽自适应存储器压缩的制作方法
技术领域
本发明涉及计算机存储器和与存储器相关的带宽利用率。
发明背景
主存储器压缩方案的一个典型目标是降低对主存储器的片外访问的带宽要求。在任意这类方案中,存储控制器需了解对于给定数据请求其必须读取全尺寸的块或缩小尺寸的块(如果块被压缩)。
存在多种存储器压缩方式。许多方案使用可能大的片上数据结构来存储(或高速缓存)“压缩或未压缩”状态的不同主存储器块。这些片上结构在主存储器访问前被查询以确定应使用完全或缩小的存储器请求尺寸。如果大量存储器可压缩,那么这需要大的片上结构。
另一个解决方案是对主存储器本身中压缩/未压缩状态的块以及相关数据进行编码。例如,可提供额外数据位以对状态进行编码或数据可通过反转ECC位而标记。首先, 假设数据被压缩而访问数据且如果返回的数据指示其未被压缩,那么剩余的数据被访问。 这种方式导致访问未压缩数据的不良延时,因为其要求在发出第二请求前存储器请求等待第一(假定压缩)数据返回。发明概要
因此,在本发明的实施方案中,提供一种方法,其包括根据在访问存储器时是否存在带宽受限条件而以压缩访问模式和全(未压缩)访问模式从存储器检索数据。可基于例如存储总线利用率或根据存储器访问请求队列的深度确定带宽受限条件的存在。
在另一个实施方案中,一种装置包括宽带受限确定逻辑,其响应于一个或多个存储系统系统条件以确定是否存在带宽受限运行条件并且供应其指示。存储器访问控制逻辑响应于带宽受限确定逻辑,以在通过带宽确定逻辑确定带宽受限运行条件存在时以压缩模式从存储器检索数据,以及在通过带宽确定逻辑确定带宽受限运行条件不存在时从以全 (未压缩)访问模式从存储器检索数据。在压缩模式中,数据通过最初访问每个被请求数据块的缩小尺寸的数据块而被检索。如果这种初始缩小尺寸块不含全尺寸块的压缩数据, 那么请求第二缩小尺寸的数据块,其中一起取得的第一请求和第二请求形成全尺寸的数据块。在全访问模式中,针对每个被请求数据块检索全尺寸的数据块。
在另一个实施方案中,提供一种方法,其包括确定存储系统是否以带宽受限模式运行。响应于存储系统以带宽受限模式运行,存储控制器以压缩访问模式从存储器访问数据。响应于存储系统未以带宽受限模式运行,存储控制器以未压缩访问模式从存储器访问数据数据。
附图简述
本领域技术人员通过参考附图可更好地了解本发明以及明白其许多目标、特征和优点。
图I示出根据本发明的实施方案的并入带宽自适应存储控制器的系统的方框图。示出图I的带宽自适应存储控制器的部分的示例性高级方框图。
图3示出本发明的实施方案的高级流程图。
在不同附图中使用相同参考符号表示类似或相同项目。
具体实施方式
参考

图1,示出并入本发明的实施方案的计算机系统的方框图。计算机系统包括处理器,诸如,例如中央处理单元(CPU)和/或图形处理单元(GPU) 101。系统包括带宽自适应存储控制器105和存储器107。在运行条件下,当存储器请求速率低至足够使得存在许多可用存储器带宽,使用主存储器压缩来节省带宽将具有最小的性能好处。此外,在运行条件下,当主存储器请求速率高至足以被存储器带宽限制时,存储器请求所经历的延时也非常高(因为排队延迟)。在替代实施方案中,处理器(在示例性实施方案中示作CPU和/或 GPU)可体现为其它处理器,诸如数字信号处理器、微控制器和类似处理器。图I的计算机系统可体现为手持设备、PDA、笔记本、台式计算机、服务器或需要处理器和存储器的任意其它系统。
因此,一个实施方案对主存储器本身中的压缩/未压缩状态块以及相关数据进行编码。编码可例如用额外数据位实现或数据可通过反转ECC位或通过一些其它适当机制而标记为压缩。当存储控制器检测到其未处于带宽受限运行状态时,其总是访问全、未压缩尺寸的数据。因此,访问压缩或未压缩数据的延时实际上是相同的。另一方面,如果存储控制器检测到其处于带宽限制模式,那么其将首先假设数据被压缩而访问数据;且如果返回的数据指示其未被压缩,那么访问剩余的数据。所述方法形成访问未压缩数据的更大延时但是在数据被压缩的情况下节省带宽。所述额外带宽可用于其它请求,可能缩短排队延迟使得总体延时影响可被缓解。在带宽受限情况下增大存储控制器的有效带宽会产生来自主存储器压缩的大多数性能好处。
参考图2,示出带宽受限存储控制器的部分的方框图。存储控制器需确定存储总线 109是否带宽受限以及使用带宽确定逻辑201。在一个实施方案中,带宽确定逻辑201监测存储总线的使用并且检测何时存储总线的使用时间短于一些最近运行窗内的可配置时间段。使用率可以是在时间窗内取得的样本的平均值。总线利用率可直接从总线或从存储器访问控制逻辑205中的控制逻辑监测。带宽确定逻辑可包括可编程阈值寄存器202以指定使用率,高于所述使用率,存储总线被视作带宽受限以及低于所述使用率,存储总线被视作带宽未受限。时间窗也可以是可编程的。带宽确定逻辑201提供带宽受限条件存在的指示 206给存储器访问控制逻辑205。存储器访问控制逻辑205包括提供适当控制信号和接口逻辑以从主存储器107检索数据的已知功能。
或者,带宽确定逻辑201监测请求队列203以确定带宽受限条件的存在。请求队列203将至主存储器107的存储器访问请求排队。队列的深度指示存储总线使用率。队列越深,总线利用率越高且存储总线越可能以带宽受限条件运行。在估计带宽确定时,特定实施方案在请求队列和/或总线使用率监测时不区分读和写。在其它实施方案中,特别是使用存储器接口上的单向信令的实施方案,读数据接口可与写数据接口分开。在这样一种系统中,总线带宽监测或队列深度监测可能只需查看读取。
与总线监测实施方案相同,区分带宽受限条件和非带宽受限条件的队列深度的阈值水平可在阈值寄存器202中编程。队列的深度可在预定或可编程时间窗内平均。一些实施方案可利用两种方式来提供带宽受限运行条件是否存在的附加保证。
在本描述中,数据块Datal代表对应于压缩数据块的尺寸的缩小尺寸的数据块。 数据块Datal和Data2的组合代表全尺寸、非压缩数据块。当带宽自适应存储控制器以非带宽受限模式运行时,例如,当队列深度低于阈值水平且带宽确定逻辑201提供所述指示至存储器访问控制逻辑205时,存储器访问控制逻辑在一个实施方案中具有其被设定来指示其中全尺寸、非压缩数据块(Datal和Data2)被访问的全访问模式的块尺寸指示器207。 当存储控制器访问全尺寸块(即,存储控制器未处于带宽受限状态)时,检验所得全尺寸块看其压缩或未压缩。如果块未压缩,那么从主存储器返回的全尺寸块(datal+data2)被返回给请求者。如果另一方面,块被压缩,那么从主存储器返回的全尺寸的数据块的“datal” 部分被解压缩并且返回给请求者,而从主存储器返回的data2部分被丢弃。
当带宽自适应存储控制器以非带宽受限模式运行时,例如,当队列深度高于阈值水平且块尺寸指示器207被设定来指示压缩块尺寸且存储控制器以其中缩小尺寸的数据块(例如,仅Datal)响应于存储器请求的执行而被访问的压缩访问模式运行。压缩检查逻辑209检查ECC位(或其它压缩标签)以确定缩小尺寸的被检索块是否实际被压缩以及缩小尺寸块是否存储在Datal暂时存储器213上。如果块实际未压缩,那么压缩检查块通过将请求放入Data2请求队列215中而传达访问全尺寸块的其余部分的需要。存储器请求由来自Data2请求队列的存储器访问控制逻辑205服务。这些请求为固定尺寸,而不管当前块尺寸设定。从主存储器检索到的Data2数据值被传送回压缩检查逻辑以与来自Datal暂时存储器(例如,未示出的另一个存储器中)的相关数据合并以形成完整未压缩结果。应注意, 虽然Data2请求队列215在图2中被示为单独的请求队列,但是在一些实施方案中其可并入请求队列203。
应注意,本文所述的方法试图限制保存用主存储器中的数据(其免去对用于保持或缓存这些指示压缩状态的标签的大型片上结构的需要)存储的“压缩/非压缩”标签信息的延时负面效应,同时在存储器压缩最有利时使主存储器压缩的带宽节省性能好处最大化。
图3示出与图I和图2所示的实施方案相关的示例性流程图。在301中,带宽确定逻辑201确定存储系统是否以带宽受限模式运行。如果不是,那么在303中以未压缩模式(全尺寸块)检索数据。当存储控制器访问全尺寸块时,在315中检验所得全尺寸块看其压缩或未压缩。如果315中的检查指示块未压缩,那么在319中从主存储器返回的全尺寸块(datal+data2)被返回给请求者且流程返回至301。另一方面,如果块被压缩,那么在321 中从主存储器返回的全尺寸的数据块的“datal”部分被解压缩并且返回给请求者,而从主存储器返回的data2部分被丢弃且系统返回301等待下一存储器访问。如果系统以带宽受限模式运行(301中的是),那么存储控制器在305中以压缩模式运行并且检索缩小尺寸的存储器块。在检索块后,存储控制器读取与存储器块相关的标签信息,例如,在309中检验 ECC位以确定块是否实际压缩。如果被压缩,那么在310中存储控制器将datal块解压缩并且将解压缩块返回给请求者并且返回301进行下一存储器访问。如果块未压缩,那么存储控制器需执行另一存储器访问以在311中检索形成全尺寸未压缩块所需的剩余的数据,在 319中将全尺寸块返回给请求者及随后返回至301进行下一存储器访问。应注意,在图3的流程中,可针对任意特定读请求读取多个数据块。应注意,读请求可能请求多个数据块,其中一些被压缩。在实施方案中,当处于带宽受限模式时,对于数个全尺寸块的请求,首先存储控制器针对每个被请求块读取第一缩小尺寸块(Datal)且随后针对每个非压缩块读取视情况的第二缩小尺寸块(Data2)。
在实施方案中,当以带宽受限模式运行时,可能且可能需要在第一访问指示块未压缩时在缩小尺寸的数据块(Datal)的第一访问与(视情况的)第二缩小尺寸的数据块 (Data2)的第二访问之间发出其它不相关的存储器请求。因此,例如,当在一个请求进入第二缩小尺寸块的请求队列215之前一个或多个请求进入请求队列203时,可在请求队列215 中的请求发出前发出一个或多个请求。
虽然在描述本发明的实施方案时已大致假定电路和物理结构,但是应了解在现代半导体设计和制作中,物理结构和电路可体现为适用于后续设计、模拟、测试或制作步骤的计算机可读描述形式。提供为示例构造中的分立组件的结构和功能可实施为组合结构或组件。如本文所述,本发明的不同实施方案预计包括电路、电路系统、相关方法和其上编码有这些电路、系统和方法的(例如,HDL、Verilog,⑶SII数据)的计算机可读介质。计算机可读介质包括有形计算机可读介质,例如,光盘、磁带或其它磁性、光学或电子存储介质。除其上编码有电路、系统和方法的计算机可读介质外,电脑可读介质可存储指令以及可用于实施本发明的数据。本文所述的结构可使用在处理器上执行的软件、在硬件上执行的固件或通过软件、固件和硬件的组合实施。
本文说明的本发明描述是说明性的,并且不旨在限制如下文权利要求所规定的本发明的范围。例如,虽然在图2中示出不同的单独块来说明存储控制器的功能,但是实际实施方式可不同地分布功能且一些功能可存在于除存储控制器以外的位置上。可基于本文说明的描述对本文所公开的实施方案进行变化和修改,而不脱离如下文权利要求所规定的本发明的范围。
权利要求
1.一种方法,其包括确定存储系统是否以带宽受限条件运行;响应于所述以所述带宽受限条件运行的存储系统,以压缩访问模式从存储器访问数据;以及响应于所述未以所述带宽受限条件运行的存储系统,以未压缩访问模式从所述存储器访问数据。
2.根据权利要求I所述的方法,其进一步包括根据存储总线上的通信量高于预定阈值而确定所述带宽受限条件存在。
3.根据权利要求I所述的方法,其进一步包括根据存储器访问请求队列的深度高于预定阈值而确定所述带宽受限条件存在。
4.根据权利要求I所述的方法,其中以所述压缩访问模式检索数据包括响应于数据块的每个请求而从所述存储器检索缩小尺寸的数据块且其中以所述未压缩访问模式检索数据包括响应于数据块的每个请求而从所述存储器检索全尺寸数据块。
5.根据权利要求4所述的方法,其进一步包括在检索所述缩小尺寸的数据块后,查看所述缩小尺寸的数据块是否压缩自用所述缩小尺寸的数据块检索的信息且如果未压缩,那么从所述存储器检索剩余的数据以形成全尺寸块。
6.根据权利要求5所述的方法,其进一步包括发出与所述缩小尺寸的数据块不相关的存储器请求且在检索所述缩小尺寸的数据块与所述剩余的数据之间检索不相关数据以形成所述全尺寸的数据块。
7.根据权利要求I所述的方法,其进一步包括存储有关所述存储器中的数据块在所述存储器中压缩或未压缩的信息。
8.一种装置,其包括带宽受限确定逻辑,其响应于一个或多个存储系统条件以确定是否存在带宽受限运行条件且供应其指示;和存储器访问控制逻辑,其响应于所述带宽受限确定逻辑,以在通过所述带宽受限确定逻辑确定所述带宽受限运行条件存在时以压缩模式从所述存储器检索数据,以及在通过所述带宽受限确定逻辑确定所述带宽受限运行条件不存在时以全访问模式从所述存储器检索数据。
9.根据权利要求8所述的装置,其中所述存储器访问控制逻辑通过访问每个被请求数据块的缩小尺寸的数据块而以压缩模式检索存储器中的所述数据。
10.根据权利要求8所述的装置,其中包括所述带宽受限确定逻辑和所述存储器访问控制逻辑的存储控制器,其被配置来在检索后查看所述缩小尺寸的数据块是否实际压缩, 且如果所述检查指示所述缩小尺寸的数据块未压缩,那么访问形成全尺寸的数据块的剩余的数据。
11.根据权利要求10所述的装置,其中所述存储控制器被配置来根据耦合至所述存储器的存储总线的使用率确定所述带宽受限运行条件的存在。
12.根据权利要求8所述的装置,其中所述存储器访问控制逻辑被配置来通过访问每个被请求数据块的全尺寸的数据块而以所述全访问模式访问存储器中的数据。
13.根据权利要求8所述的装置,其进一步包括含有存储总线请求的请求队列且其中所述带宽确定逻辑可运行以根据所述请求队列的深度确定所述带宽受限运行条件的存在。
14.根据权利要求8所述的装置,其进一步包括存储控制器,其包括所述存储器访问控制逻辑和所述带宽确定逻辑;和中央处理单元和图形处理单元中的至少一个,其耦合至所述存储控制器。
全文摘要
如果已确定存储总线带宽受限,那么以压缩模式从系统存储器检索数据且如果存储总线未带宽受限,那么以未压缩模式从系统存储器检索数据。可基于存储总线利用率或根据存储器访问请求队列的深度确定带宽受限条件的存在。
文档编号G06F13/16GK102947812SQ201180030329
公开日2013年2月27日 申请日期2011年6月21日 优先权日2010年6月22日
发明者詹姆斯·迈克尔·奥康纳 申请人:超威半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1