虚拟存储器支持的压缩控制表面的制作方法

文档序号:11142385阅读:409来源:国知局
虚拟存储器支持的压缩控制表面的制造方法与工艺

在现代计算机系统中,集成电路芯片的向外部存储器的数据业务量开启或关闭是主要的性能瓶颈,且消耗所耗散的系统能量的显著部分。因此,存储器带宽要求可能限制系统的热设计点(TDP)且抑制性能缩放。通过使用高速缓存层级,避免了大量这种存储器业务量,这是由于可以发现最近使用的数据接近于处理器(例如,中央处理单元(CPU)或图形处理单元(GPU))。然而,甚至关于无限高速缓存,强制性高速缓存未命中引起存储器业务量。

当前系统仅可以压缩来自某些高速缓存的数据,并且经压缩的数据未由CPU和GPU以统一方式处置。例如,如果GPU可以压缩渲染目标的部分,并且如果CPU稍后想要读取该渲染目标,则整个渲染目标需要被解压缩并发送到CPU中的高速缓存。

先前的方法依赖于用于具体类型的数据的具体压缩处置。这由于压缩的性质——不同类型的数据以不同方式服从各种压缩方法——而是必然的。然而,先前的方法还具体且分别处置压缩控制,从而使得(在设计和证实有效方面)难以在系统中的新位置处引入压缩。

附图说明

关于以下附图描述一些实施例:

图1是一个实施例的压缩控制的描绘;

图2是一个实施例的TLB布局;

图3是一个实施例的示意性描绘;

图4是根据一个实施例的存储器读取的流程图;

图5是根据一个实施例的存储器写入的流程图;

图6是一个实施例的系统描绘;以及

图7是一个实施例的正视图。

具体实施方式

目的地为存储器的数据(即,在高速缓存层级中的某级别处驱逐的数据)在被发送到存储器之前被拦截且受到压缩。当压缩成功时,存储器带宽要求被降低,从而在一些实施例中潜在地导致更高的性能和/或能量效率。

利用压缩控制数据来增强作为虚拟存储器系统的一部分的现有数据结构和硬件机构(即,翻译后备缓冲器(TLB))。可以在操作系统中(例如在页表中以及在其它地方)增强数据结构。以一种简单形式存在的压缩控制数据可以针对每页表和TLB项包括以下各项:(i)具有每可压缩单元单个位的位向量(在下文中描述),其发信号通知对应单元是否被压缩;以及(ii)编解码器路由信息,即,哪个压缩器的标识被用于压缩数据。如果以隐式地标识要使用的编解码器的方式使用某些数据,则不需要编解码器路由信息。

被称为压缩控制的常见单个机构可以用于信号压缩。在该机构就位的情况下,可以通过在适当位置处引入新的编解码器来处置新压缩类型。关于常见压缩控制,还容易在共享存储器系统中维持压缩,例如其中在CPU和GPU之间共享数据。在该情况下,压缩控制伴随有地址映射,并且仅所访问的数据需要是未压缩的。在一些实施例中,不存在在与另一个实体共享数据之前对所有数据进行解压缩的需要,如在当前架构中那样。

以下描述的存储器页大小和存储器行大小不是限制性的,并且,还可以使用其它大小。附加地,假定压缩工作在整数数目的存储器事务(存储器行)上,例如,2:N、4:N或8:N压缩(在一般情况下,M:N),意味着两个、四个或八个存储器行分别可以被压缩成更少的存储器行。M个存储器行可以被视为可压缩单元。

对于简单情况,2:N压缩,针对每两个存储器行的一个位发信号通知该可压缩单元是否确实被压缩(缩小至50%)。对于4:N压缩,四个存储器行可以被压缩成1、2、3或4个存储器行,例如其中4意味着未压缩。因而,对于4:N压缩,针对每四个存储器行使用2个位以发信号通知压缩程度。类似地,对于M:N压缩,使用log2M个位以发信号通知针对每M个存储器行的压缩程度。

页中的存储器行的总数为L(例如,对于1kB页和64B存储器行,L=1024/64=16)。现在,每页表项(PTE)或TLB项的压缩控制位的所要求的数目为:

假定1千字节页、64字节存储器行和8:N压缩,则位的数目为((1024/64)/8)x3=6。对于4千字节页和64字节存储器行和4:N压缩,位的数目=((4096/64)/4)x2=32,等等。

除告知存储器页中的数据是否被压缩以及被压缩到什么程度的压缩控制之外,还存在指明用于经压缩的数据的特定编码器/解码器(编解码器)的需要。此处的假定为:相同编解码器用于整个所映射的页。针对每页表和TLB项使用单个小标识符。如果存在四种类型的编解码器(例如,颜色、深度、视频、无),则log24=2个位是指示哪个编解码器被使用所必需的。

在一个实施例中,当数据被分配时,路由信息被设立一次。在分配处,已知哪种类型的数据将要被存储在缓冲器中。另一个选项是:让用户指定与特定缓冲器或者甚至特定存储器页相关联的编解码器。如果用于缓冲器的编解码器在缓冲器的使用期限期间改变,则首先利用旧的编解码器对数据进行解压缩,并且然后使用新的编解码器对其进行压缩。

仅在以下系统中需要路由信息:在该系统中,以在其中访问数据的上下文没有显式地指示特定编解码器的方式在不同子系统之间共享数据。其中路由信息不必要的情形的示例是静态纹理,其仅由GPU中的采样器访问。因而不存在指示编解码器的需要,这是由于所有静态纹理数据仅由采样器访问。

压缩控制数据的高效位置直接处于TLB中。其它选项包括将数据存储在芯片上的另一个硬件单元中。对于包含所有存储器映射的页表同样成立,从而使其成为压缩控制的最合适位置。然而,再一次,另一个选项是将压缩控制存储在分离的缓冲器中。

图1是针对4千字节的存储器页大小和64字节的存储器行大小的示例压缩控制表面。关于2:N压缩,需要16个位以发信号通知压缩状态(即,128个字节是否已经被压缩小至64个字节),并且在该示例中,3个位用于编解码器路由,从而允许23=8个不同编解码器。

图2是具有8个项的TLB布局的示例。TLB可以被扩展有标题为压缩控制和路由的最右列。如图1中所示,压缩控制是指示可压缩单元是否被压缩的位向量,而路由信息指示当该数据未经压缩时要使用哪个编解码器。

图3示出了具有访问由虚拟地址14给定的存储器12的CPU和/或GPU 10的示例系统。虚拟地址被分割成虚拟页编号16和偏移18,其中页编号用于寻找TLB 20中的对应物理页编号。当被找到时,物理页编号22与偏移18一起形成被发送到高速缓存系统26的物理地址24。

在从存储器检索到数据之前,如果压缩控制表面指示对应数据确实被压缩,则在编解码器28中对数据进行解压缩。类似地,在写入数据之前,编解码器28可以尝试压缩数据并以经压缩形式写出数据(如果压缩成功的话;否则,其将退回到写入未经压缩的数据)。在压缩控制位中记录压缩算法在所得的存储器行数目的方面的成功。

图4和5的序列适用于分别使用压缩控制表面的存储器读取和存储器写入。它们可以以硬件、软件和/或固件实现。在软件和固件实施例中,它们可以使用存储在一个或多个非瞬变计算机可读介质中的计算机实现指令。例如,序列可以是中央处理单元或图形处理单元或二者的一部分。

图4中示出的序列30可以用于存储器读取。接收虚拟地址,如在框32中指示的那样。然后,将虚拟地址分割成虚拟页编号和偏移,如在框34中指示的那样。使用该信息以寻找物理地址并将它发送到高速缓存,如在框36中指示的那样。

然后,对访问控制表面进行访问,如在框38中指示的那样。如果如在菱形40中所确定的那样,访问控制表面指示数据被压缩,则可以使用在控制表面中指示的编解码器来对数据进行解压缩,如在框42中指示的那样。

图5中示出的写入序列50通过如在框52中指示的那样接收虚拟地址、如在框54中指示的那样分割虚拟地址以及在框56中指示的那样寻找物理地址而开始。然后,如在框58中指示的那样,尝试压缩。如果压缩成功,则与被用于压缩的编解码器一起,将压缩的成功记录在控制表面中,并且然后写入数据,如在框60中指示的那样。

本文描述的图形处理技术可以被实现在各种硬件架构中。例如,图形功能可以集成在芯片集内。可替换地,可以使用分立的图形处理器。作为又一个实施例,图形功能可以由通用处理器实现,通用处理器包括多核处理器。

图6图示了系统700的实施例。在实施例中,系统700可以是媒体系统,尽管系统700不限于该上下文。例如,系统700可以被并入到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(MID)、消息传递设备、数据通信设备等等。

在实施例中,系统700包括耦合到显示器720的平台702。平台702可以从诸如(一个或多个)内容服务设备730或(一个或多个)内容递送设备740之类的内容设备或者其它类似内容源接收内容。包括一个或多个导航特征的导航控制器750可以用于与例如平台702和/或显示器720交互。这些组件中的每一个在下文中被更详细描述。

在实施例中,平台702可以包括芯片集705、处理器710、存储器712、存储装置714、图形子系统715、应用716和/或无线电装置718的任何组合。芯片集705可以提供处理器710、存储器712、存储装置714、图形子系统715、应用716和/或无线电装置718之间的相互通信。例如,芯片集705可以包括能够提供与存储装置714的相互通信的存储适配器(未描绘)。

处理器710可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或任何其它微处理器或中央处理单元(CPU)。在实施例中,处理器710可以包括(一个或多个)双核处理器、(一个或多个)双核移动处理器等等。处理器可以与存储器712一起实现图4和5的序列。

存储器712可以被实现为易失性存储器设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。

存储装置714可以被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、带驱动器、内部存储设备、附连存储设备、闪速存储器、电池备份SDRAM(同步DRAM)和/或网络可访问存储设备。在实施例中,存储装置714可以包括例如在包括多个硬盘驱动器时增加用于有价值的数字媒体的存储性能增强保护的技术。

图形子系统715可以执行诸如静止或视频之类的图像的处理以用于显示。图形子系统715可以是例如图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可以被用于通信耦合图形子系统715和显示器720。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术中的任一个。图形子系统715可以集成到处理器710或芯片集705中。图形子系统715可以是通信耦合到芯片集705的独立卡。

本文描述的图形和/或视频处理技术可以被实现在各种硬件架构中。例如,图形和/或视频功能可以集成在芯片集内。可替换地,可以使用分立的图形和/或视频处理器。作为又一个实施例,图形和/或视频功能可以由通用处理器实现,该通用处理器包括多核处理器。在另外的实施例中,功能可以被实现在消费者电子设备中。

无线电装置718可以包括能够使用各种合适无线通信技术发射和接收信号的一个或多个无线电装置。这样的技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨这样的网络的通信中,无线电装置718可以依照任何版本中的一个或多个适用的标准来进行操作。

在实施例中,显示器720可以包括任何电视类型的监视器或显示器。显示器720可以包括例如计算机显示屏、触摸屏显示器、视频监视器、电视类设备和/或电视。显示器720可以是数字的和/或模拟的。在实施例中,显示器720可以是全息显示器。而且,显示器720可以是可接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像和/或对象。例如,这样的投影可以是用于移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用716的控制之下,平台702可以在显示器720上显示用户界面722。

在实施例中,(一个或多个)内容服务设备730可以由任何全国、国际和/或独立服务托管且因而对平台702来说经由例如互联网可访问。(一个或多个)内容服务设备730可以耦合到平台702和/或显示器720。平台702和/或(一个或多个)内容服务设备730可以耦合到网络760以向网络760且从网络760传送(例如,发送和/或接收)媒体信息。(一个或多个)内容递送设备740也可以耦合到平台702和/或显示器720。

在实施例中,(一个或多个)内容服务设备730可以包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的互联网启用的设备或器具、以及能够单向地或双向地经由网络760或直接地在内容提供商和平台702和/显示器720之间传送内容的任何其它类似设备。将领会到,内容可以经由网络760而向内容提供商和系统700中的任何一个组件且从内容提供商和系统700中的任何一个组件单向地和/或双向地传送。内容的示例可以包括任何媒体信息,其包括例如视频、音乐、医疗和游戏信息等等。

(一个或多个)内容服务设备730接收内容,诸如有线电视节目编排,包括媒体信息、数字信息和/或其它内容。内容提供商的示例可以包括任何有线或卫星电视或无线电或互联网内容提供商。所提供的示例不意在限制适用的实施例。

在实施例中,平台702可以从具有一个或多个导航特征的导航控制器750接收控制信号。控制器750的导航特征可以用于例如与用户界面722交互。在实施例中,导航控制器750可以是指点设备,其可以为允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件组件(具体地,人机接口设备)。许多系统(诸如图形用户界面(GUI),以及电视和监视器)允许用户使用身体手势来控制数据并将数据提供给计算机或电视。

控制器750的导航特征的移动可以通过指针、光标、聚焦环或者在显示器上显示的其它视觉指示符的移动而在显示器(例如显示器720)上回波。例如,在软件应用716的控制之下,位于导航控制器750上的导航特征可以被映射到例如在用户界面722上显示的虚拟导航特征。在实施例中,控制器750可以不是分离的组件,而是集成到平台702和/或显示器720中。然而,实施例不限于这些元素或者不被限制在本文描述或示出的上下文中。

在实施例中,驱动器(未示出)可以包括使得用户能够在初始启动之后、例如在被启用时利用按钮的触摸来即时开启和关闭平台702(像电视)的技术。程序逻辑可以允许平台702在平台被“关闭”时将内容流送给媒体适配器或(一个或多个)其它内容服务设备730或(一个或多个)内容递送设备740。附加地,芯片集705可以包括用于例如5.1环绕声音频和/或高清晰度7.1环绕声音频的硬件和/或软件支持。驱动器可以包括用于集成图形平台的图形驱动器。在实施例中,图形驱动器可以包括外围组件互连(PCT)高速图形卡。

在各种实施例中,在系统700中示出的组件中的任何一个或多个可以被集成。例如,平台702和(一个或多个)内容服务设备730可以被集成,或者平台702和(一个或多个)内容递送设备740可以被集成,或者例如平台702、(一个或多个)内容服务设备730和(一个或多个)内容递送设备740可以被集成。在各种实施例中,平台702和显示器720可以是集成单元。显示器720和(一个或多个)内容服务设备730可以被集成,或者例如显示器720和(一个或多个)内容递送设备740可以被集成。这些示例不意在进行范围限制。

在各种实施例中,系统700可以被实现为无线系统、有线系统或二者的组合。当被实现为无线系统时,系统700可以包括适合于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括无线频谱的部分,诸如RF频谱等等。当被实现为有线系统时,系统700可以包括适合于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与对应有线通信介质相连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可以包括导线、线缆、金属引线、印刷电路板(PCB)、底板、开关结构、半导体材料、双绞线、同轴线缆、光纤等等。

平台702可以建立一个或多个逻辑或物理信道以传送信息。该信息可以包括媒体信息和控制信息。媒体信息可以指代表示意在用于用户的内容的任何数据。内容的示例可以包括例如来自语音对话、视频会议、流送视频、电子邮件(“电邮”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音对话的数据可以是例如话音信息、沉默时段、背景噪声、舒适噪声、音调等等。控制信息可以指代表示意在用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于使媒体信息路由通过系统,或者指示节点以预定方式处理媒体信息。然而,实施例不限于这些元素或者不被限制在图6中示出或描述的上下文中。

如上文所述,系统700可以以变化的物理样式或形状因子体现。图7图示了其中可以体现系统700的小形状因子设备800的实施例。在实施例中,例如,设备800可以被实现为具有无线能力的移动计算设备。移动计算设备可以指代具有处理系统和移动电源或电力供给(诸如例如一个或多个电池)的任何设备。

如上文所述,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(MID)、消息传递设备、数据通信设备等等。

移动计算设备的示例还可以包括被布置为由人穿戴的计算机,诸如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂章计算机、鞋子计算机、衣物计算机以及其它可穿戴计算机。在实施例中,例如,移动计算设备可以被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管作为示例可以利用被实现为智能电话的移动计算设备来描述一些实施例,但是可以领会到,也可以使用其它无线移动计算设备实现其它实施例。实施例不被限制在该上下文中。

以下条款和/或示例涉及进一步的实施例:

一个示例实施例可以是一种方法,包括:记录压缩是否成功,并且如果是,则将用于数据的压缩的编解码器记录在控制表面中,以及向存储器写入数据。所述方法还可以包括通过访问控制表面来读取数据。所述方法还可以包括针对每可压缩单元使用单个位来指示单元是否被压缩。所述方法还可以包括针对中央处理单元和图形处理单元二者使用相同的控制表面编码。所述方法还可以包括针对每项提供(L/M)xlog2M个压缩控制位,其中L是页中的存储器行的总数并且M是可压缩单元中的存储器行的数目。所述方法还可以包括通过包括颜色、深度或视频编解码器中的一个或多个的类型来在所述表面中对编解码器进行编码。所述方法还可以包括将表面存储在翻译后备缓冲器上。

另一个示例实施例可以是存储指令的一个或多个非瞬变计算机可读介质,所述指令由处理器执行以执行包括下述操作的序列:记录压缩是否成功,并且如果是,则将用于数据的压缩的编解码器记录在控制表面中,并且向存储器写入数据。该介质可以进一步存储包括下述操作的序列:通过访问控制表面来读取数据。该介质可以进一步存储包括下述操作的序列:针对每可压缩单元使用单个位来指示单元是否被压缩。该介质可以进一步存储包括下述操作的序列:针对中央处理单元和图形处理单元二者使用相同的控制表面编码。该介质可以进一步存储包括下述操作的序列:针对每项提供(L/M)xlog2M个压缩控制位,其中L是页中的存储器行的总数并且M是可压缩单元中的存储器行的数目。该介质可以进一步存储包括下述操作的序列:通过包括颜色、深度或视频编解码器中的一个或多个的类型来在所述表面中对编解码器进行编码。该介质可以进一步存储包括下述操作的序列:将表面存储在翻译后备缓冲器上。

在另一个示例实施例中可以是一种装置,包括:处理器,执行下述操作:记录压缩是否成功,并且如果是,则将用于数据的压缩的编解码器记录在控制表面中,并且向存储器写入数据;以及耦合到所述处理器的存储器。所述装置可以包括:所述处理器通过访问控制表面来读取数据。所述装置可以包括:所述处理器针对每可压缩单元使用单个位来指示单元是否被压缩。所述装置可以包括:所述处理器针对中央处理单元和图形处理单元二者使用相同的控制表面编码。所述装置可以包括:所述处理器针对每项提供(L/M)xlog2M个压缩控制位,其中L是页中的存储器行的总数并且M是可压缩单元中的存储器行的数目。所述装置可以包括:所述处理器通过包括颜色、深度或视频编解码器中的一个或多个的类型来在所述表面中对编解码器进行编码。所述装置可以包括:所述处理器将表面存储在翻译后备缓冲器上。所述装置可以包括通信耦合到处理器的显示器。所述装置可以包括耦合到处理器的电池。

遍及本说明书对“一个实施例”或“实施例”的引用意指:结合该实施例描述的特定特征、结构或特性被包括在本公开内所涵盖的至少一个实现方式中。因而,短语“一个实施例”或“在实施例中”的出现不一定指代相同的实施例。此外,该特定特征、结构或特性可以以除所图示的特定实施例外的其它合适形式而建立,并且所有这样的形式可以是在本申请的权利要求内所涵盖的。

尽管已经描述了有限数目的实施例,但是本领域技术人员将领会到从这些实施例的许多修改和变形。意图是,随附权利要求覆盖如落在本公开的真实精神和范围内的所有这样的修改和变形。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1