片上系统中的动态存储器利用的制作方法

文档序号:11333747阅读:295来源:国知局
片上系统中的动态存储器利用的制造方法与工艺



背景技术:

便携式计算设备(“pcd”)正成为个人和专业人员的必需品。这些设备可以包括蜂窝电话、便携数字助理(“pda”)、便携游戏控制台、掌上电脑和其它便携式电子设备。pcd通常包含集成电路或片上系统(“soc”),其包括被设计为协同工作以向用户递送功能的许多组件。例如,soc可以包含任何数量的主组件,例如,调制解调器、显示器、中央处理单元(“cpu”)、图形处理单元(“gpu”)等,其向和/或从soc上的存储器组件读取和/或写入数据和/或指令。数据和指令通常可以被称为“事务”,并且通过已知为总线的线路集合在设备之间发送。

值得注意地是,在主组件和诸如双倍数据速率(“ddr”)存储器设备的存储器组件之间的读写事务消耗了soc的有价值的电量资源。此外,多个事务互相争用总线带宽,并且当总线上的事务业务拥塞时,针对服务关键事务(例如,某些调制解调器处理任务)的高得不可接受的等待时间水平可能导致系统崩溃。

现有技术的解决方案采用通过主组件的静态压缩和解压缩方法,以尝试减少ddr限制事务业务,并且通过扩展来降低总线上的电耗。然而,现有技术的解决方案遭受由多个主处理器共享存储器空间导致的存储器争用问题、低效存储器利用、不必要的大存储器子系统的高电耗、以及主组件的复杂的软件/硬件设计和编程。

通过响应于读和写事务而动态地压缩和解压缩存储器子系统内的数据和指令,主组件和共享存储器设备之间的往返事务业务可以优于现有技术解决方案,使得存储器争用问题被最小化。此外,经由更好地优化带宽分配,事务的等待时间可以相比现有技术的解决方案而得以改进。此外,与现有技术的解决方案相比,与总线和存储器设备大小相关联的电耗可以被最小化。此外,与现有技术的解决方案相比,与压缩和解压缩要求相关的软件和硬件编程考虑可以当不能全部被缓解时被相对简化。因此,本领域需要通过在存储器子系统内的动态压缩和解压缩来优化存储器利用的系统和方法。具体地说,本领域需要一种系统和方法,该系统和方法基于运行时(run-time)qos参数来动态地执行响应于事务请求的关于是压缩还是解压缩数据的决定。



技术实现要素:

本文公开了用于动态地管理片上系统(“soc”)中的存储器组件的容量利用的方法和系统的各种实施例。在示例性实施例中,指示服务质量(“qos”)水平的soc的一个或多个参数被监测。包含在存储器子系统内的存储器控制器接收从第一主组件通过总线发送的第一事务请求。第一事务请求可以是例如一名本领域普通技术人员将理解的写请求。存储器控制器可以确定针对与第一事务请求相关联的数据的主存储器地址。主存储器地址可以位于存储器组件的第一数据存储体内。接下来,可以将与第一事务请求相关联的数据的格式确定为压缩或解压缩。不是以数据存在所用的格式简单地将数据写入主存储器地址,存储器控制器可以确定转换数据的格式。可以根据所监测的参数进行转换的确定。随后,数据可以以其所转换的格式存储在位于存储器组件的第二数据存储体内的重新链接的存储器地址处。然后可以释放主存储器地址,用于存储与后续的事务请求相关联的数据。

在示例性实施例的不同方面,存储器控制器可以接收从第二主组件通过总线发送的第二事务请求。如一名本领域普通技术人员将理解地,对于在重新链接的存储器处存储的数据,第二事务请求可以是读请求。取决于所监测的参数,存储器控制器可以以数据存储在所重新链接的存储器地址处所用的格式将数据返回给第二主组件,或者可以在返回数据之前转换数据的格式。

附图说明

在附图中,除非另有说明,否则,相同的附图标记指贯穿各种视图的相同部件。对于具有诸如“102a”或“102b”的字母字符名称的附图标记,字母字符名称可以区分相同的附图中存在的两个相似的部分或元件。当想要一附图标记涵盖所有附图中具有相同的附图标记的所有部分时,可以省略用于附图标记的字母字符名称。

图1是以用于实现动态存储器利用(“dmu”)系统和方法的无线电话的形式示出便携式计算设备(“pcd”)的示例性非限制性方面的功能框图;

图2是示出了用于存储器子系统上的处理器中的动态存储器利用(“dmu”)解决方案的片上系统的示例性实施例的功能框图;

图3a是示出用于响应于指定了压缩存储格式或解压缩存储格式的双倍数据速率存储器限制写事务请求来执行动态存储器利用(“dmu”)的示例性方法的逻辑流程图;

图3b是示出用于响应于指定了压缩返回数据格式或解压缩返回数据格式的双倍数据速率存储器限制读事务请求来执行动态存储器利用(“dmu”)的示例性方法的逻辑流程图;

图3c是示出用于响应于具有未被指定的存储格式的双倍数据速率存储器限制写事务请求来执行动态存储器利用(“dmu”)的示例性方法的逻辑流程图;和

图3d是示出用于响应于具有未被指定的返回数据格式的双倍数据速率存储器限制读事务请求来执行动态存储器利用(“dmu”)的示例性方法的逻辑流程图。

具体实施方式

词语“示例性”在本文中用于表示用作示例、实例或说明。本文中描述为“示例性”的任何方面不一定被解释为排除、优选于或优于其它方面。

在本说明书中,术语“应用”还可以包括具有可执行内容的文件,诸如:目标代码、脚本、字节码、标记语言文件和补丁。此外,本文中提及的“应用”还可以包括本质上不可执行的文件,诸如可能需要打开的文档或需要访问的其它数据文件。

在本说明书中,对双倍数据速率“ddr”存储器组件的引用将被理解为设想用于长期数据存储的更广泛类别的易失性随机存取存储器(“ram”)中的任何一个,并且不会限制本文公开的解决方案的特定类型或一代的ram。

如本说明书中所使用地,术语“组件”、“数据库”、“模块”、“系统”、“控制器”等旨在表示计算机相关的实体,即,硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是在处理器上运行的处理过程、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,运行在计算设备上的应用和计算设备都可以是组件。一个或多个组件可以驻留在执行的处理过程和/或线程内,并且组件可以被本地位于在一个计算机上和/或分布在两个或更多个计算机之间。此外,这些组件可以从其上存储有各种数据结构的各种计算机可读介质执行。组件可以诸如根据具有一个或多个数据分组的信号(该一个或多个数据分组例如是来自在本地系统、分布式系统中、和/或在诸如与其它系统的互联网之类的网络上与另一组件通过所述信号交互的一个组件的数据),通过本地和/或远程处理过程进行通信。

在本说明书中,术语“中央处理单元(‘cpu’)”、“数字信号处理器(‘dsp’)”、“图形处理单元(‘gpu’)”和“芯片”可互换使用。此外,cpu、dsp、gpu或芯片可以由通常称为“核”的一个或多个不同的处理组件组成。

在本说明书中,使用术语“引擎”、“处理引擎”、“主处理引擎”、“主组件”等来指片上系统(“soc”)内的任何组件,其经由总线生成去往存储器子系统的事务请求。因此,主组件可以指但不限于指cpu、dsp、gpu、调制解调器、控制器、显示器、照相机等。

在本说明书中,术语“回写”和“刷新”是指关于基于存在于与一个或多个主组件相关联的经紧密耦合的存储器中的数据和/或指令的较新版本来更新在ddr中实例化的数据和/或指令的处理过程。一名本领域普通技术人员将理解,在到处理组件的经紧密耦合的存储器(诸如低级高速缓存存储器)中实例化的数据可以具有与在ddr中的存储器地址相关联的虚拟存储器地址。ddr存储器地址可以与ddr中的某个数据存储体相关联,用于以压缩或解压缩格式存储数据,如本领域普通技术人员将理解地。基于虚拟存储器地址和在高速缓存中存储的数据的“脏”比特的存在,存储器控制器可以寻求更新ddr,如本领域普通技术人员将理解地。术语“脏比特”将被理解为与高速缓存中的虚拟存储器页相关联的比特,其指示存储在存储器页中的数据是已由主组件从其原始状态重新生成或修改,但尚未写回ddr的。

在本说明书中,术语“总线”是指数据从处理引擎发送到存储器组件或位于soc上或位于soc之外的其它设备所通过的线缆的集合。应当理解,总线由两部分组成:地址总线和数据总线,其中,数据总线传送实际数据,并且地址总线传送指定数据在存储器组件中的位置的信息。术语“宽度”或“总线宽度”或“带宽”是指可以通过给定总线每周期发送的数据的量,即,“块大小”。例如,16字节总线可以一次发送16个字节的数据,而32字节总线可以每周期发射32个字节的数据。此外,“总线速度”是指关于可以通过给定总线每秒传送数据块的次数。类似地,“总线周期”或“周期”是指通过给定总线对一个数据块的传输。

在本说明书中,术语“便携式计算设备”(“pcd”)用于描述在诸如电池的有限容量电源上工作的任何设备。虽然靠电池工作的pcd已经使用了数十年,但可充电电池的技术进步加上第三代(“3g”)和第四代(“4g”)无线技术的出现已经使得许多pcd具有多种功能。因此,pcd可以是蜂窝电话、卫星电话、寻呼机、pda、智能电话、导航设备、智能本或读取器、媒体播放器、上述设备的组合、具有无线连接的膝上型计算机等等。

在当前的系统和方法中,在pcd中同时运行的主组件创造需要访问ddr存储器组件中的分散区域的混合读写事务请求流。当压缩数据和解压缩数据是通过总线发送、并由存储器控制器编排到ddr组件以及从ddr组件编排出时,每个事务消耗电量和总线带宽。因此,寻求访问ddr中的共享区域中的数据的事务请求的队列可能不仅消耗不必要的量的电量,而且还会产生存储器争用以及有效地增加事务延迟的总线业务拥塞。类似地,如本领域普通技术人员将理解的那样,当使用过多的带宽和电量容量来服务于绑定到ddr的事务请求时,pcd的用户所经历的服务质量(“qos”)可能会受到影响。

如一名本领域普通技术人员将理解地,共享存储器多处理器系统中的主处理组件使用存储器子系统来交换信息并执行同步。因此,与就同时访问共享存储器子系统进行竞争的多个主处理器相关联的存储器竞争可能导致qos受损。现有技术解决方案通过简单地增加与主处理组件唯一相关联的经紧密耦合的存储器组件的大小来应对存储器竞争,使得主处理组件避免空闲或不能保持关键功能。然而,值得注意地是,简单地增加经紧密耦合的存储器组件的数量和大小会增加总体电耗并且占据soc上的宝贵空间,而不必要地降低公共总线上的事务业务量以及对于公共存储器子系统的限制。

当发生存储器竞争时,用于服务给定事务的平均等待时间增加并且qos受损。有利地,动态存储器利用(“dmu”)解决方案的实施例减少了存储器竞争,减少了存储器子系统的ddr存储器和存储器控制器的电耗,并且优化了ddr存储器利用,使得从非易失性存储器加载活动的电量和时间消耗被最小化。

dmu实施例在总线的存储器子系统侧采用对数据和指令的动态压缩和解压缩(与在总线的主处理器侧采用的静态压缩方法和解压缩方法相反)。位于存储器子系统上的存储器控制器基于指示诸如但不限于事务等待时间值、电耗水平、温度水平、工作负荷优先级、电池电量可用性、ddr存储器大小等之类的qos水平的任何数量的经监测的参数,选择性地执行压缩方法和/或解压缩方法。尽管主处理组件可以生成例如包括要存储在ddr的压缩数据区域中的压缩数据的写事务请求,但dmu实施例中的存储器控制器可以选择解压缩数据,将其存储在ddr的解压缩数据区域中,以及释放压缩数据存储器地址以备将来使用。

有利地是,由于对数据和事务的压缩和解压缩发生在dmu实施例中的事务请求的存储器子系统侧,所以压缩要求和解压缩要求对于主组件是透明的,从而简化与那些主组件相关联的软件和硬件编程-也即,主处理组件不必“担心”跟上ddr中的数据格式或存储格式并因此可以在其知道的地址处简单地请求数据。在dmu实施例中,要压缩数据或解压缩数据的动态决定是由重新链接器组件(其可以包括在存储器控制器内)来执行的,该重新链接器组件以动态方式链接数据以使存储器地址链接处理过程对编译器-链接器组件是透明的。

与时间共享相反,dmu实施例使得与不同的主组件相关联的码和数据能够动态地共享相同的存储器位置。因此,dmu解决方案的实施例优化了ddr外部存储器利用,以缓解对于从非易失性存储器进行加载的需要,从而优化soc的总体电耗以及与事务请求相关联的等待时间。

图1是以用于实现动态存储器利用(“dmu”)系统和方法的无线电话的形式示出便携式计算设备(“pcd”)100的示例性非限制性方面的功能框图。如图所示,pcd100包括片上系统102,其包括耦合在一起的多核心中央处理单元(“cpu”)110和模拟信号处理器126。如一名本领域普通技术人员所理解地,cpu110可以包括第零核222、第一核224和第n核230。此外,代替cpu110,也可以采用如一名本领域普通技术人员所理解的数字信号处理器(“dsp”)。

通常,存储器子系统112尤其包括存储器控制器215、重新链接器模块220、编解码器引擎225和ddr存储器115(在图1的图中统称为存储器子系统112)。通常,存储器子系统112及其一些组件可以由硬件和/或固件形成,并且可以负责基于一个或多个运行时变量来动态地执行对在ddr存储器115中存储的数据和指令的压缩方法和解压缩方法。运行时变量可以由监测器模块114监测并被中继到存储器子系统112。有利地,通过在存储器子系统112中执行动态压缩和解压缩,dmu解决方案优化了存储器容量利用(从而缓解从非易失性存储器加载数据的需要,该从非易失性存储器加载数据是耗时且耗电的工作),使得总线205上的数据业务(图1中未示出)最小化,以及降低soc上的电耗。

如图1所示,显示器控制器128和触摸屏控制器130耦合到数字信号处理器110。片上系统102外部的触摸屏显示器132耦合到显示器控制器128和触摸屏控制器130。pcd100可以进一步包括:视频编码器134,例如,逐行倒相(“pal”)编码器、顺序与存储彩色电视系统(“secam”)编码器、国家电视系统委员会(“ntsc”)编码器或任何其它类型的视频编码器134。视频编码器134耦合到多核cpu110。视频放大器136耦合到视频编码器134和触摸屏显示器132。视频端口138耦合到视频放大器136。

如图1所示,通用串行总线(“usb”)控制器140耦合到cpu110。此外,usb端口142耦合到usb控制器140。存储器子系统112可以包括pop存储器、掩模rom/引导rom、引导otp存储器、ddr存储器115(参见随后的附图),也可以耦合到cpu110和/或包括其自己的专用处理器。订户身份模块(“sim”)卡146也可以耦合到cpu110。此外,如图1所示,数码相机148可以耦合到cpu110。在示例性方面,数码相机148是电荷耦合器件(“ccd”)相机或互补金属氧化物半导体(“cmos”)相机。

如图1进一步所示,立体声音频codec150可以耦合到模拟信号处理器126。此外,音频放大器152可以耦合到立体声音频codec150。在示例性方面,第一立体声扬声器154和第二立体声扬声器156耦合到音频放大器152。图1示出麦克风放大器158还可以耦合到立体声音频codec150。此外,麦克风160可以耦合到麦克风放大器158。在特定的方面,频率调制(“fm”)无线电调谐器162可以是耦合到立体声音频codec150。此外,fm天线164耦合到fm无线电调谐器162。此外,立体声头戴耳机166可以耦合到立体声音频codec150。

图1还指示射频(“rf”)收发机168可以耦合到模拟信号处理器126。rf开关170可以耦合到rf收发机168和rf天线172。如图1所示,键盘174可以耦合到模拟信号处理器126。此外,具有麦克风的单声道耳机176可以耦合到模拟信号处理器126。此外,振动器设备178可以耦合到模拟信号处理器126。图1还示出了电源188(例如,电池)通过电量管理集成电路(“pmic”)180耦合到片上系统102。在特定的方面,电源188包括可再充电dc电池或从连接到交流(“ac”)电源的ac至dc变压器得到的dc电源。

cpu110还可以耦合到一个或多个内部片上热传感器157a以及一个或多个外部片外热传感器157b。片上热传感器157a可以包括:一个或多个与绝对温度(“ptat”)成比例的温度传感器,其是基于垂直pnp结构的,并且通常专用于互补金属氧化物半导体(“cmos”)超大规模集成(“vlsi”)电路。片外热传感器157b可以包括一个或多个热敏电阻。热传感器157可以产生用模拟-数字转换器(“adc”)控制器(未示出)转换成数字信号的电压降。然而,可以采用其它类型的热传感器157。

触摸屏显示器132、视频端口138、usb端口142、相机148、第一立体声扬声器154、第二立体声扬声器156、麦克风160、fm天线164、立体声耳机166、rf开关170、rf天线172、键盘174、单声道耳机176、振动器178、热传感器157b、pmic180和电源188在片上系统102外部。然而,应当理解,在图1中的pcd100的示例性实施例中,这些设备中的一个或多个被描绘为在片上系统102的外部,而在其它示例性实施例中,可以位于芯片102上。

在特定的方面,本文描述的方法步骤中的一个或多个可以通过在存储器子系统112中存储的、或者如来自存储器控制器215、重新链接器模块220和/或编解码器引擎225(参见图2)的可执行指令和参数,来实现。此外,存储器控制器215、重新链接器模块220、编解码器引擎225、ddr115、存储在其中的指令、或上述各项的组合可以用作执行本文所描述的一个或多个方法步骤的单元。

图2是示出用于存储器子系统112上的处理器中的动态存储器利用(“dmu”)解决方案的片上系统102的示例性实施例的功能框图。在执行各种工作负荷时,主组件201生成用于更新或返回在ddr115中存储的数据和指令的事务请求。如一名本领域普通技术人员将理解地,事务请求通过总线205被指引到存储器控制器215,其编排请求并管理ddr115图像。

例如,写事务请求可以包括处于压缩格式并与ddr115的压缩存储器区域(例如,数据存储体b)中的存储器地址“x”相关联的数据。进一步的示例是,在现有技术的解决方案中,示例性写事务请求中的压缩数据可以在传输之前由主组件(例如,201a)生成并压缩,从而消耗主组件201a的电量和处理容量。有利地,dmu解决方案的实施例可以允许主组件201a简单地将未压缩的数据发送给存储器子系统112,从而避免用以在传输之前压缩数据的电耗和处理容量使用,即使数据是与ddr115中的压缩数据存储器位置相关联的也是如此。

如图2所示,ddr存储器115被描绘为包括两个存储器区域:被指定用于存储解压缩数据的数据存储体a和被指定用于存储压缩数据的数据存储体b。可以包括其自身的处理器的存储器控制器215接收由主组件201生成的事务请求。存储器控制器215还与正跟踪对于性能或qos的一个或多个指示符的监测器模块114进行通信。例如,监测器模块114可能正跟踪通过总线205发送的事务的平均延迟值。

基于由监测器模块114跟踪的性能指示符,存储器控制器215可以在逐事务的基础上动态地确定是压缩还是解压缩在总线205上到达的与写事务相关联的数据或指令。类似地,基于由监测器模块114跟踪的性能指示符,存储器控制器215可以基于在逐事务的基础上动态地确定是否压缩或解压缩在总线205上返回给主组件201的与读事务相关联的数据或指令。有利地,通过在事务的存储器子系统112侧动态地确定数据是否应被压缩或解压缩,dmu解决方案可以减轻总线205上的拥塞,改善平均事务等待时间,优化存储器容量利用,以及最小化soc102上的电耗。

作为示例,可以在存储器控制器215处接收具有被压缩并与ddr115的数据存储体b中的存储器地址“x”相关联的数据的写事务请求。基于由监测器模块114监测的一个或多个性能指示符,存储器控制器215可以确定数据应该被写入数据存储体b中的存储器地址“x”。然而,利用不同的性能指示符,存储器控制器215可以当数据被解压缩并写入数据存储体a中的未充分利用的存储器地址“x1”以便存储器地址“x”可用于其它目的时,确定soc102的总体效率将被改进。在这种情况下,存储器控制器215可以与重新链接器模块220一起工作以确定存储器地址“x1”并释放存储器地址“x”供将来使用。编解码器引擎225可以解压缩写事务请求中的数据,并使得其保存在数据存储体a中的存储器地址“x1”处。这样,dmu解决方案可以改善ddr115的存储器容量利用并缓解任何关于由多个主处理器201寻求访问数据存储体b中的地址“x”导致的存储器竞争的可能性。

作为另一示例,可以在存储器控制器215处接收读事务请求,其寻求存储在数据存储体b中的存储器地址“x”处的压缩数据。通过与重新链接器模块220一起工作以识别所请求的数据被未压缩地存储在数据存储体a中的存储器地址“x1”处,存储器控制器215可以使得编解码器引擎225在返回该数据给进行请求的主组件之前检索该数据并压缩该数据。以这种方式,重新链接的处理过程对于主组件可以是透明的。

图3a是示出用于响应于指定了压缩存储格式或解压缩存储格式的双倍数据速率存储器限制写事务请求来执行动态存储器利用(“dmu”)的示例性方法300a的逻辑流程图。在框305处开始,dmu解决方案监测芯片102上的一个或多个关于服务质量(“qos”)的运行时参数或指示符。可以设想,所监测的运行时参数可以是如下各项中的但是不限于如下各项的一个或多个:平均事务等待时间、电耗、电池容量、处理器工作负荷水平、工作温度、存储器竞争频率、存储器容量利用率等。在框310处,可以通过总线205在存储器控制器215处接收事务请求。

接下来,在决定框315处,存储器控制器215可以确定事务请求是读请求还是写请求。如一名本领域普通技术人员将理解地,读请求可以由主组件201生成,寻求在ddr115中存储的某些数据被返回。类似地,如一名本领域普通技术人员将理解地,写请求可以由主组件201生成,寻求更新在ddr115内的存储器地址处存储的某些数据。

如果在决定框315确定该请求是读请求,则在“读”分支后去往图3b的框405,否则在“写”分支后去往决定框320。在决定框320处,事务请求中的数据的数据格式被确定。如果写事务请求中的数据被压缩,则在“压缩的”分支后去往决定框340,否则在“解压缩的”分支后去往决定框325。在决定框325处,由写事务请求所规定的存储格式被确定。类似地,如果从决定框320后去往“压缩”分支,则在决定框340处,由写事务请求所规定的存储格式被确定。对于决定框325和340,由写事务请求所规定的存储格式可以是压缩的、解压缩的或未被指定的中的一种。如果写请求中的数据的存储格式是未被指定的,则方法300a继续到图3c的框505。

返回到决定框325,如果存储格式被规定为解压缩的,则在“解压缩的”分支后去往框330,并且解压缩数据被写入ddr存储器115的解压缩存储存储体中的存储器地址“x”。然而,如果在框325处,存储格式被规定为压缩的,则在“压缩的”分支后去往框335,并且解压缩的数据被压缩并被写入如由重新链接器模块220确定的ddr存储器115中的压缩数据存储体中的存储器地址“x1”。在将压缩数据写入存储器地址“x1”之后,解压缩存储器存储体中的“x”处的地址可以被释放以供将来由进行请求的主组件201或其它主组件201使用。值得注意地是,框325处的决定可以由存储器控制器215基于在框305处监测的运行时qos指示来进行。

返回到决定框340,如果存储格式被规定为压缩的,则在“压缩的”分支后去往框350,并且压缩数据被写入ddr存储器115的压缩存储存储体中的存储器地址“x”。然而,如果在框340处存储格式被规定为解压缩的,则在“解压缩的”分支后去往框345,并且压缩数据被解压缩并被写入如由重新链接器模块220确定的ddr存储器115中的解压缩数据存储体中的存储器地址“x1”。在将解压缩数据写入存储器地址“x1”之后,压缩存储器存储体中的“x”处的地址可以被释放以供将来由进行请求的主组件201或其它主组件201使用。值得注意地是,框340处的决定可以由存储器控制器215基于在框305处监测的运行时qos指示来进行。

返回到决定框315,如果事务请求是读请求,则在“读”分支后去往图3b的框405。图3b是示出用于响应于指定了压缩返回数据格式或解压缩返回数据格式的双倍数据速率存储器限制读事务请求来执行动态存储器利用(“dmu”)的示例性方法300b的逻辑流程图。在决定框405处,存储器控制器215可以确定进行请求的主组件201是需要以解压缩格式还是以压缩格式返回的所请求的数据。如果没有指定用于返回数据的格式,则方法300b在“未被指定的”分支后去往图3d的框605,否则从决定框405后跟着“压缩的”或“解压缩的”分支。

如果主组件201以解压缩格式请求返回数据,则该方法从决定框405继续到决定框410。在决定框410处,存储器控制器215和/或重新链接器模块220可以确定数据实际上是以解压缩格式还是以压缩格式来存储。如果所请求的数据是以解压缩存储的,则可以在“解压缩的”分支后去往框415,并且在ddr115的解压缩存储存储体中的地址“x”处存储的数据可以被返回到生成了读请求的主组件201。否则,从决定框410后跟着“压缩的”分支去往框420,并且在压缩存储器地址“x1”中存储的数据被获取。接下来,在决定框425处,存储器控制器可以确定压缩数据是应该由编解码器引擎225在存储器子系统112内解压缩还是被返回到存储器子系统112之外的未充分利用的编解码器引擎。关于是在子系统112上还是在子系统112外进行解压缩的决定可以基于一个或多个所监测的qos指示符来确定的。如果存储器控制器215选择通过编解码器引擎225解压缩数据,则从决定框425后跟着“是”分支去往框430,并且数据由编解码器引擎225解压缩并返回给进行请求的主组件201。否则,从决定框425后跟着“否”分支去往到框435,并在存储器地址“x1”处存储的压缩数据被返回给位于存储器子系统112之外的用于解压缩的处理器或编解码器引擎。

返回到决定框405,如果主组件201以压缩格式请求返回数据,则该方法从决定框405继续到决定框440。在决定框440,存储器控制器215和/或重新链接器模块220可以确定数据实际上是以解压缩格式还是以压缩格式存储。如果所请求的数据是以压缩存储的,则可以在“压缩的”分支后去往框445,并且在ddr115的压缩存储存储体中的地址“x”处存储的数据可以被返回到生成了读请求的主组件201。否则,从决定框440后跟着“解压缩的”分支去往框450,并且在解压缩存储器地址“x1”中存储的数据被获取。接下来,在决定框455,存储器控制器可以确定解压缩数据是应当由编解码器引擎225在存储器子系统112内压缩,还是被返回到存储器子系统112之外的未充分利用的编解码器引擎。关于是在子系统112上还是在子系统112外进行压缩可以基于一个或多个监测的qos指示符来确定。如果存储器控制器215选择通过编解码器引擎225压缩数据,则从决定框455后跟着“是”分支去往框460,并且数据由编解码器引擎225压缩并被返回到进行请求的主组件201。否则,从决定框455后跟着“否”分支去往框465,并且在存储器地址“x1”处存储的解压缩数据被返回到位于存储器子系统112之外的用于压缩的处理器或编解码器引擎。

返回到图3a的决定框325、340,如果没有指定用于写请求的存储格式,则在“未被指定的”分支后去往图3c的框505。图3c是示出用于响应于具有未被指定的存储格式的双倍数据速率存储器限制写事务请求来执行动态存储器利用(“dmu”)的示例性方法300c的逻辑流程图。在与图3a的决定框320相同的决定框505中,存储器控制器215可以确定写请求中的数据的格式。如果数据被解压缩,则可以从决定框505后跟着“解压缩的”分支去往决定框510,否则从决定框505后跟着“压缩的”分支去往决定框525。

在来自决定框505的“解压缩的”分支之后,在决定框510处,存储器控制器215和/或重新链接器模块220可以确定是以解压缩格式还是以压缩格式存储数据。该确定可以基于由监测器模块114监测的一个或多个运行时指示符的值。如果该确定是要以解压缩格式存储解压缩数据,则在“是”分支后去往框515,并且数据被写入到ddr115的解压缩存储区域中的存储器地址“x”。否则,从决定框510后跟着“否”分支去往框520。在框520处,数据由编解码器引擎225压缩并被写入ddr115的压缩存储区域中的如由重新链接器模块220确定的存储器地址“x1”。随后,解压缩存储区域中的存储器地址“x”可以被释放以供将来由主组件201或其它主组件201使用。

返回到决定框505,“压缩的”分支导向决定框525。在决定框525,存储器控制器215和/或重新链接器模块220可以确定是以压缩格式还是以解压缩格式存储数据。该确定可以基于由监测器模块114监测的一个或多个运行时指示符的值。如果该确定是要以压缩格式存储压缩数据,则在“是”分支后去往框530,并且数据被写入ddr115的压缩存储区域中的存储器地址“x”。否则,从决定框525后跟着“否”分支去往框535。在框535处,数据由编解码器引擎225解压缩并被写入ddr115的解压缩存储区域中的如由重新链接器模块220确定的存储器地址“x1”。随后,压缩存储区域中的存储器地址“x”可以被释放以供将来由主组件201或其它主组件201使用。

返回到图3b的决定框405,如果用于读请求的返回数据格式未被指定,则在“未被指定的”分支后去往图3d的框605。图3d是示出用于响应于具有未被指定的返回数据格式的双倍数据速率存储器限制读事务请求来执行动态存储器利用(“dmu”)的示例性方法300d的逻辑流程图。在决定框605处,存储器控制器215可以确定读请求中的数据的存储格式。如果数据以解压缩格式存储在ddr215中,那么可以从决定框605后跟着“解压缩的”分支去往决定框610,否则,从决定框605后跟着“压缩的”分支去往决定框625。

在来自决定框605的“解压缩的”分支之后,在决定框610处,存储器控制器215和/或重新链接器模块220可以确定是以解压缩格式还是以压缩格式将数据返回给进行请求的组件201。该确定可以基于由监测器模块114监测的一个或多个运行时指示符的值。如果该确定是要以解压缩格式返回解压缩数据,则在“是”后去往框615,并且数据是从ddr115的解压缩存储区域中的存储器地址“x”被获取的并被返回到进行请求的主组件201。否则,从决定框610后跟着“否”分支去往框620。在框620处,数据是由编解码器引擎225压缩并以压缩格式返回给进行请求的主组件201。可以设想,某些dmu实施例可以将解压缩数据返回给子系统外的处理器或编解码器引擎进行压缩。

返回到决定框605,“压缩”分支通向决定框625。在决定框625处,存储器控制器215和/或重新链接器模块220可以确定是以解压缩格式还是以压缩格式将数据返回给进行请求的组件201。该确定可以基于由监测器模块114监测的一个或多个运行时指示符的值。如果该确定是要以压缩格式返回压缩数据,则在“是”分支后去往框630,并且数据是从ddr115的压缩存储区域中的存储器地址“x”被获取的并被返回给进行请求的主组件201。否则,从决定框625后跟着“否”分支去往框635。在框635处,数据是由编解码器引擎225解压缩并以解压缩格式被返回给进行请求的主组件201。可以设想,某些dmu实施例可以将压缩数据返回给子系统外的处理器或编解码器引擎进行解压缩。

在本说明书中描述的处理过程或处理过程流程中的某些步骤自然地先于本发明的其它步骤,以如所描述地进行。然而,本发明不限于所描述的步骤的顺序,如果这样的顺序或序列不会改变本发明的功能的话。也就是说,认识到在不脱离本发明的范围和精神的情况下,可以在其它步骤之前、之后或与其并行(基本上同时)执行一些步骤。在一些情况下,可以在不脱离本发明的情况下省略或不执行某些步骤。此外,诸如“此后”、“然后”、“下一”等等的词语不旨在限制步骤的顺序。这些词语简单地用于指导读者通读示例性方法的描述。

另外,一名普通的编程技术人员能够编写计算机代码或识别合适的硬件和/或电路,以基于例如本说明书中的流程图和相关联的描述,毫无困难地实现所公开的发明。因此,对于一组特定的程序代码指令或详细的硬件设备或者软件指令和数据结构的公开不被认为是对于充分理解如何制作和使用本发明所必需的。所要求保护的由计算机实现的处理过程的发明功能是在上面的描述中详细地并结合可以示出各种处理流程的附图来解释的。

在一个或多个示例性实施例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,这些功能可以作为一个或多个指令或代码在计算机可读设备上存储或传送。计算机可读设备包括计算机存储介质和通信介质,包括有助于将计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是可以由计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、或可用于以指令或数据结构的形式携带或存储所需的程序代码并且可以由计算机访问任何其它介质。

因此,尽管已经详细地示出和描述了所选的方面,但是将理解地是,在不脱离如所附权利要求限定的本发明的精神和范围的情况下,可以在本文进行各种替换和变更。

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