首页> 中国专利> 用于对具有不对称存储组件的存储子系统中的存储进行动态地分配的系统和方法

用于对具有不对称存储组件的存储子系统中的存储进行动态地分配的系统和方法

摘要

提供了用于对存储子系统进行动态地分配的系统和方法。示例性的实施例包括一种用于对便携式计算设备中的存储子系统进行动态地分配的方法。该方法涉及对存储子系统的第一部分进行完全交织,其中,存储子系统具有含有不对称存储容量的存储组件。根据交织带宽比率来对存储子系统的第二剩余部分进行部分交织。将存储子系统的第一部分分配给一个或多个高性能存储客户端。将第二剩余部分分配给一个或多个相对较低性能存储客户端。

著录项

  • 公开/公告号CN104854572A

    专利类型发明专利

  • 公开/公告日2015-08-19

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN201380064073.0

  • 发明设计人 R·A·斯图尔特;D·T·全;

    申请日2013-11-04

  • 分类号G06F13/16(20060101);G06F12/06(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人张扬;王英

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 10:26:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-05

    授权

    授权

  • 2015-10-14

    实质审查的生效 IPC(主分类):G06F13/16 申请日:20131104

    实质审查的生效

  • 2015-08-19

    公开

    公开

说明书

优先权和相关申请声明

本申请是于2012年12月24日递交的、名称为“System and Method for  Managing Performance of a Computing Device Having Dissimilar Memory  Types”(代理人案号No.123065U1)的共同待决的美国专利申请序列号No. 13/726,537的部分继续专利申请,其中,美国专利申请序列号No.13/726,537 基于35 U.S.C.119(e)要求享有于2012年12月10日递交的、已转让的临 时申请序列号No.61/735,352(代理人案号No.123065P1)、名称为“System  and Method for Managing Performance of a Computing Device Having  Dissimilar Memory Types”的美国临时专利申请的优先权,故此以引用方式 将这些申请的全部内容均并入本文。

背景技术

在计算机系统和设备中,特别在诸如蜂窝电话、便携式数字助理 (PDA)、便携式游戏控制台、掌上型计算机、平板计算机以及其它便携式 电子设备之类的便携式计算设备(PCD)中,系统性能和功率要求正在变 得日益地高要求。这种设备可以包括被优化用于特定目的的两种或更多种 类型的处理单元。例如,一个或多个中央处理单元(CPU)可以用于通用 的系统级性能或其它目的,而图形处理单元(GPU)可以被专门地设计用 于操作计算机图形以输出到显示设备。随着每个处理器要求更多的性能, 存在着对被设计为实现每个处理器的特定目的的更快和更专用的存储设备 的需求。存储架构通常被优化用于特定的应用。CPU可能要求具有可接受 的系统级性能的高密度存储器,而GPU可能要求具有比CPU显著更高的 性能的相对较低密度的存储器。

因此,诸如PCD之类的单个计算机设备可以包括两个或多个相异存储 设备,其中每个专用存储设备被优化用于其专用目的并且与特定的处理单 元配对并专用于该特定的处理单元。在这种常规的架构(被称为“分立” 架构)中,每个专用处理单元经由多个物理/控制层(其中每个具有相应的 存储通道)物理地耦合到不同类型的存储设备。每个专用处理器单元以出 于其预定目的而优化的不同的数据速率来物理地存取相应的存储设备。例 如,在一个示例性的配置中,通用CPU可以以优化的数据带宽(例如, 17Gb/s)来物理地存取第一类型的动态随机存取存储器(DRAM)设备。较 高性能、专用的GPU可以以较高的数据带宽(例如,34Gb/s)来物理地存 取第二类型的DRAM设备。虽然分立架构单独地优化CPU和GPU的性能, 但是存在多个重大缺点。

为了获得较高的性能,GPU专用存储器必须被调整大小并且被配置为 处理所有潜在的使用情况、显示分辨率和系统设置。此外,因为只有GPU 能够以较高的数据带宽来物理地存取GPU专用存储器,所以这种较高的性 能是“局部化的”。虽然CPU可以存取GPU专用存储器并且GPU可以存 取CPU专用存储器,但是分立架构经由GPU和CPU之间的物理互连总线 (例如,外围组件高速互连(PCIE))、以减小的数据带宽来提供这种存取, 该数据带宽通常小于用于任一类型存储设备的优化的带宽。即使GPU和 CPU之间的物理互连总线没有运行为性能“瓶颈”,但是分立架构不允许 GPU或CPU利用两种不同类型的存储设备的经组合的、总的可用带宽。各 个存储设备的存储空间被放置在单独的、存储地址连续块中。换句话说, 整个存储映射将第一类型的存储设备放置在一个连续块中,并且将第二类 型的存储设备单独地放置在不同的连续块中。不同存储设备的存储端口之 间不存在硬件协调来支持驻留在相同的连续块中的物理存取。

因此,虽然存在对计算机系统中更专用的存储设备的增加的需求,以 提供计算机设备中越来越多的系统和功率性能,但是在本领域中仍然存在 对用于对相异存储设备进行管理的提高的系统和方法的需求。

发明内容

示例性的实施例包括一种用于对便携式计算设备中的存储子系统进行 动态地分配的方法。该方法涉及对存储子系统的第一部分进行完全交织, 其中,存储子系统具有含有不对称存储容量的存储组件。根据交织带宽比 率来对存储子系统的第二剩余部分进行部分交织。将存储子系统的第一部 分分配给一个或多个高性能存储客户端。将第二剩余部分分配给一个或多 个相对较低性能存储客户端。

附图说明

在附图中,类似的附图标记指代贯穿各种视图中的类似部件,除非另 外指示。对于具有诸如“102A”或“102B”等字母符号标示的附图标记, 字母符号标示可以对出现在相同附图中的两个类似部件或要素进行区分。 当旨在用附图标记来包含所有附图中具有相同附图标记的所有部件时,可 以省略用于附图标记的字母符号标示。

图1是用于对相异存储设备进行管理的系统的实施例的框图。

图2是一种由图1中的存储通道优化模块执行的、用于对相异存储设 备进行管理的方法的实施例的流程图。

图3是示出了用于各种类型的相异存储设备的交织带宽比率的示例性 表格。

图4是示出了图1的存储通道优化模块的组件的框图。

图5是示出了基于各种交织带宽比率的存储通道地址重映射的示例性 表格。

图6是示出了图4的通道重映射模块的实施例的通用操作、架构和功 能的组合的流程/框图。

图7是示出了一种用于创建跨越相异存储设备的多个逻辑区域的交织 方法的实施例的图。

图8是示出了便携式计算设备中的存储通道优化模块的示例性实现的 框图。

图9是示出了包括存储通道优化模块的系统的另一实施例的框图,其 中存储通道优化模块耦合到具有含有不对称存储容量的存储组件的单一存 储子系统。

图10是示出了用于将单一存储子系统中的存储动态地分配到高性能区 域和低性能区域的、图9的通道重映射模块的实施例的框图。

图11是示出了用于对高性能区域和低性能区域进行配置和调整的通道 重映射模块的架构、操作和/或功能的经组合的框/流程图。

图12是示出了一种用于在图9的系统中对存储进行动态地分配的方法 的实施例的流程图。

具体实施方式

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

在本描述中,术语“应用”还可以包括具有可执行内容的文件,例如: 对象代码、脚本、字节代码、标记语言文件和补丁。此外,本文提到的“应 用”还可以包括本质上不可执行的文件,例如可能需要打开的文档或需要 存取的其它数据文件。

术语“内容”还可以包括具有可执行内容的文件,例如:对象代码、 脚本、字节代码、标记语言文件和补丁。此外,本文提到的“内容”还可 以包括本质上不可执行的文件,例如可能需要打开的文档或需要存取的其 它数据文件。

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

在本描述中,术语“通信设备”、“无线设备”、“无线电话”、“无线通 信设备”和“无线手持装置”可互换地使用。随着第三代(“3G”)无线技 术和第四代(“4G”)的出现,更大的带宽可用性已经实现了具有更多种类 的无线能力的更多便携式计算设备。因此,便携式计算设备可以包括蜂窝 电话、寻呼机、PDA、智能电话、导航设备或具有无线连接或链路的手持 计算机。

图1示出了包括存储管理架构的系统100,在具有用于对不同类型的两 个或多个存储设备、或者具有不同数据带宽的相似类型存储设备(被称为 “相异存储设备”)进行存取的两个或多个专用处理单元的任何适当的计算 设备中,可以实现该架构。计算设备可以包括个人计算机、工作站、服务 器、便携式计算设备(PCD)(例如,蜂窝电话、便携式数字助理(PDA)、 便携式游戏控制台、掌上型计算机,或者平板计算机)以及具有两个或多 个相异存储设备的任何其它计算设备。如在下面更详细描述的,存储管理 架构被配置为选择性地提供两种操作模式:统一模式和分立模式。在分立 模式中,存储管理架构如上面所描述的以常规的方式操作成“分立架构”, 其中,每个专用处理单元对出于其预定目的而优化的相应存储设备进行存 取。例如,专用的通用中央处理单元(CPU)可以以优化的数据带宽来存 取第一类型的存储设备,并且较高性能的专用图形处理单元(GPU)可以 以较高的数据带宽来存取第二类型的存储设备。在统一模式中,存储管理 架构被配置为对相异存储设备进行统一并且使得专用处理单元能够选择性 地存取(单独地或组合地)相异存储设备或者其部分设备的组合带宽。

如图1的实施例中所示出的,系统100包括:存储通道优化模块102, 其电连接到两种不同类型的动态随机存取存储器(DRAM)设备104a和104b 以及可以对DRAM设备104a和104b进行存取的两个或多个专用处理单元 (例如,CPU 108和GPU 106)。GPU 106经由电连接110耦合到存储通道 优化模块102。CPU 108经由电连接112耦合到存储通道优化模块102。存 储通道优化模块102还包括用于耦合到DRAM设备104a和104b的多个硬 件连接。取决于存储设备的类型,硬件连接可以改变。在图1的示例中, DRAM 104a支持分别连接到物理/控制连接116a、116b、116c和116d的四 个通道114a、114b、114c和114d。DRAM 104b支持分别连接到物理/控制 连接120a和120b的两个通道118a和118b。应当意识到,取决于存储设备 的类型(包括存储地址的大小(例如,32位、64位等)),物理/控制连接的 数量和配置可以改变。

图2示出了一种由存储通道优化模块102执行的、用于通过对相异存 储设备(例如,DRAM设备104a和104b)进行交织来实现统一操作模式 的方法200。在框202处,存储通道优化模块102确定交织带宽比率,该交 织带宽比率包括用于DRAM设备104a和104b的数据带宽的比率。可以在 计算设备的启动时确定该数据带宽。

在一个实施例中,可以通过存取诸如图1中所示出的表格300之类的 数据结构来确定交织带宽比率。表格300标识用于实现两个DRAM设备 104a和104b的相异存储设备的各种类型组合的交织带宽比率。列302列出 针对DRAM设备104a的各种配置。行304列出针对DRAM设备104b的 各种配置。在这方面,每个数字的数据字段标识针对相应配置行/列配置的 交织带宽比率。例如,表格300的上面部分中的第一数据字段以黑色高亮 并且列出2.00的交织带宽比率,其与用于DRAM设备104a的12.8GB/s的 带宽和用于DRAM设备104b的6.4GB/s的数据带宽相对应。在图3中, DRAM设备104a和104b被优化用于移动计算系统中。DRAM设备104b 包括低功率双倍数据速率(LPDDR)存储设备,其可以被常规地优化用于 分立模式中,以便由CPU 108进行专门的使用。DRAM设备104a包括宽 I/O(宽IO)存储设备,其可以被常规地优化用于分立模式中,以便由GPU  106进行专门的使用。在这方面,数字的值根据诸如存储地址位大小(x64、 x128、x256、x512)、时钟速度(MHz)和数据带宽(GB/s)之类不同的性 能参数来标识用于DRAM设备104a和104b的交织带宽比率。存储通道优 化模块102可以执行查找来获得与DRAM设备104a和104b相关联的交织 带宽比率。在图2中的框202处,存储通道优化模块102还可以确定数字 的数据带宽(例如,根据表格300或者直接根据DRAM设备104a和104b) 并且然后使用该数据来计算交织带宽比率。

应当意识到,取决于其中实现系统100的计算设备、系统应用等的特 定类型,存储设备的类型和性能参数可以改变。在本描述中仅使用图3中 所示出的示例类型和性能参数,来描述由移动系统中的存储通道优化模块 102执行的示例性的交织方法。适合于通道优化模块102的其它随机存取存 储器技术的一些示例包括:NOR FLASH、EEPROM、EPROM、DDR-NVM、 PSRAM、SRAM、PROM和ROM。本领域普通技术人员将很容易意识到, 可以执行各种替代的交织方案和方法。

再次参考图2,在框204处,存储通道优化模块102根据框202中所确 定的交织带宽比率来对DRAM设备104a和104b进行交织。交织过程将去 往分别用于DRAM设备104a和104b的存储通道114a、114b、114c、114d 以及118a和118b中的每个通道的业务与特定通道的可用带宽进行匹配。例 如,如果DRAM设备104a具有34GB/s的数据带宽并且DRAM设备104b 具有17GB/s的数据带宽,则交织带宽比率是2:1。这意味着DRAM设备104a 的数据速率与DRAM设备104b的数据速率的两倍一样快。

如图4中所示出的,存储通道优化模块102可以包括:一个或多个通 道重映射模块400,其用于根据交织带宽比率来配置和保持用于DRAM设 备104a和104b的虚拟地址映射表格,以及根据交织带宽比率来向DRAM 设备104a和104b分发业务。图5中示出了示例性的地址映射表格500。地 址映射表格500包括地址块(其可以是任意大小)的列表502,其具有基于 交织带宽比率的、相应的通道和/或存储设备分配。例如,在图5中,列504 示出了基于1:1的交织带宽比率的、DRAM设备104a(“宽io2”)和DRAM 设备104b(“lpddr3e”)之间的交替的分配。偶数的地址块(N、N+2、N+4、 N+6等)被分配给宽io2,并且奇数的地址块(N+1、N+3、N+5等)被分 配给lpddr3e。

列506示出了针对2:1的交织带宽比率的另一分配。在DRAM设备104a (“宽io2”)具有两倍于DRAM设备104b(“lpddr3e”)的速率的情况下, 针对被分配给lpddr3e的每一个地址块,两个连续的地址块被分配给宽io2。 例如,地址块N和N+1被分配给宽io2。块N+2被分配给lpddr3e。块N+3 和N+4被分配给宽io2,等等。列508示出了针对1:2的交织带宽比率的另 一分配,其中,由于DRAM设备104b(“lpddr3e”)的速度是DRAM设备 104a(“宽io2”)的两倍,所以分配方案是相反的。

再次参考图2的流程图,在框206处,GPU 106和CPU 108可以通过 向存储通道优化模块102发送存储地址请求来以常规的方式存取交织的存 储器。如图6中所示出的,业务可以作为请求606、608、610、612、614、 616等(与地址块N、N+1、N+2、N+3、N+4、N+5等(图5)相对应)的 输入流而由通道重映射逻辑单元600来接收。通道重映射逻辑单元600被 配置为:根据交织带宽比率和包含在地址映射表格500中的适当的分配方 案(例如,列504、506、508等),来向DRAM设备104a和104b分发业 务(框208-图2)。

接着上面2:1交织带宽比率的示例,通道重映射逻辑单元600对请求 606、608、610、612、614和616进行引导,如图6中所示出的。可以将分 别针对地址块N、N+1、N+3和N+4的请求606、608、612和614引导到 DRAM设备104a。可以将分别针对地址块N+2和N+5的请求610和616 引导到DRAM设备104b。以此方式,可以将来自GPU 106和CPU 108的 输入业务与用于DRAM设备104a的存储通道114和/或用于DRAM设备 104b的存储通道118中的任意存储通道上的可用带宽进行最优地匹配。这 种统一操作模式使得GPU 106和CPU 108能够单独地和/或共同地存取相异 存储设备的组合带宽,而不是受限于常规的分立操作模式的“局部化的” 高性能操作。

如上面所提到的,存储通道优化模块102可以被配置为:基于各种期 望的使用场景、系统设置等来选择性地启用要么统一模式要么分立模式。 此外,应当意识到,可以对相异存储设备的部分进行交织,而不是对全部 的存储设备进行交织。图7示出了可以由存储通道优化模块102实现以便 创建多个“逻辑的”设备或区域的多层交织技术。接着上面使用2:1交织带 宽比率的示例,DRAM设备104a可以包括:一对0.5GB存储设备702和 704,其具有被常规地优化用于GPU 106的34GB/s的高性能带宽。DRAM 设备104b可以包括:1GB存储设备706和2GB存储设备708,其均具有被 常规地优化用于CPU 108的17GB/s的较低带宽。多层交织技术可以创建两 个交织区域710和712以及未交织区域714。区域710可以是4路交织的, 以提供在102GB/s的组合带宽的组合的1.5GB。区域712可以是2路交织 的,以提供在34GB/s的组合的1.5GB。区域714可以是未交织的,以提供 在17GB/s的1GB。由于交织区域710和712的内容可以被明确地指定用于 可清除的或可迁移的数据结构和缓冲区,而未交织区域714的内容可以被 指定用于处理(例如内核操作和/或其它低存储过程),因此与系统100的存 储管理架构相结合的多层交织技术可以有助于在交织和未交织部分之间进 行转换。

如上面所提到的,存储通道优化模块102可以并入到任何期望的计算 系统中。图8示出了并入示例性的便携式计算设备(PCD)800中的存储通 道优化模块102。存储器优化模块102可以包括片上系统(SoC)或者嵌入 式系统,该片上系统(SoC)或者嵌入式系统可以是单独地制造并且并入到 用于便携式计算设备800的设计中的。

如所示出的,PCD 800包括含有多核CPU 402A的片上系统322。多核 CPU 402A可以包括第零核410、第一核412和第N核414。这些核中的一 个核可以包括例如GPU 106,其它核中的一个或多个核包括CPU 108。根 据替代的示例性实施例,CPU 402还可以包括单核类型的那些CPU并且不 是具有多核的CPU,在这种情况下,CPU 108和GPU 106可以是如系统100 中所示出的专用处理器。

显示控制器328和触摸屏控制器330可以耦合到GPU 106。相应地, 在片上系统322外部的触摸屏显示器108可以耦合到显示控制器328和触 摸屏控制器330。

图8还示出了视频编码器334(例如,逐行倒相(PAL)编码器、顺序 传送彩色与存储(SECAM)编码器或者国家电视系统委员会(NTSC)编 码器)耦合到多核CPU 402A。此外,视频放大器336耦合到视频编码器 334和触摸屏幕显示器108。此外,视频端口338耦合到视频放大器336。 如图8中所示出的,通用串行总线(USB)控制器340耦合到多核CPU 402A。 此外,USB端口342耦合到USB控制器340。存储器404A和用户身份模 块(SIM)卡346也可以耦合到多核CPU 402A。存储器404A可以包括两 个或多个相异存储设备(例如,DRAM设备104a和104b),如上面所描述 的。存储通道优化模块102可以耦合到CPU 402A(包括例如CPU 108和 GPU 106),并且存储器404A可以包括两个或多个相异存储设备。存储通 道优化模块102可以被并入作为单独的片上系统(SoC)或者作为SoC 322 的组件。

此外,如图8中所示出的,数字照相机348可以耦合到多核CPU 402A。 在示例性的方面中,数字照相机348是电荷耦合器件(CCD)照相机或者 互补式金属氧化物半导体(CMOS)照相机。

如图8中进一步示出的,立体声音频编码器-解码器(编解码器)350 可以耦合到多核CPU 402A。此外,音频放大器352可以耦合到立体声音频 编解码器350。在示例性的方面中,第一立体声扬声器354和第二立体声扬 声器356耦合到音频放大器352。图8示出了话筒放大器358也可以耦合到 立体声音频编解码器350。另外,话筒360可以耦合到话筒放大器358。在 特定的方面中,频率调制(FM)无线电调谐器362可以耦合到立体声音频 编解码器350。此外,FM天线364耦合到FM无线电调谐器362。此外, 立体声耳机366可以耦合到立体声音频编解码器350。

图8还示出了射频(RF)收发机368可以耦合到多核CPU 402A。RF 切换器370可以耦合到RF收发机368和RF天线372。如图8中所示出的, 键盘204可以耦合到多核CPU 402A。此外,具有话筒的单声道头戴装置 376可以耦合到多核CPU 402A。此外,振荡器设备378可以耦合到多核CPU  402A。

图8还示出了电源380可以耦合到片上系统322。在特定的方面中,电 源380是直流(DC)电源,其向需要电量的PCD 800的各种组件提供电量。 此外,在特定的方面中,电源是可再充电的DC电池或者是从连接到AC电 源的交流(AC)至DC变压器获得的DC电源。

图8还指示PCD 800还可以包括网卡388,网卡388可以用于接入数 据网络(例如,局域网、个域网或者任何其它网络)。网卡388可以是蓝牙 网卡、WiFi网卡、个域网(PAN)卡、个域网超低功率技术(PeANUT) 网卡或者本领域公知的任何其它网卡。此外,网卡388可以并入到芯片中, 即,网卡388可能是芯片中的完全解决方案,并且可能不是单独的网卡388。

如图8中所描述的,触摸屏显示器108、视频端口338、USB端口342、 照相机348、第一立体声扬声器354、第二立体声扬声器356、话筒360、 FM天线364、立体声耳机366、RF切换器370、RF天线372、键盘374、 单声道头戴装置376、振荡器378以及电源380可以是在片上系统322外部 的。

图9示出了一种用于通用地实现上面所描述的通道重映射解决方案以 便对存储子系统中的存储进行动态地分配的系统900的另一实施例。存储 子系统可以包括不对称存储子系统902,不对称存储子系统902包括具有含 有不对称存储容量(例如,分别为容量A和容量B)的两个或多个嵌入式 存储组件(例如,存储组件904a和904b)的单一存储设备。本领域普通技 术人员将意识到,不对称存储容量或者不对称组件大小调整,是指连接到 一个通道的存储容量不同于连接到第二通道的存储容量的情形。例如,在 不对称存储子系统902中,存储组件904a可以具有1GB容量组件,并且存 储组件904b可以具有2GB组件。

存储子系统中的不对称组件大小调整可以出现在各种情形中。原始设 备制造商(OEM)或者硬件和/或软件的其它相关供应商可以强令对不对称 组件大小调整的使用,以达到例如成本目标、性能/成本折衷等。虽然不对 称组件大小调整可以提供某些成本的或其它的优势,但是它是以存储性能 为代价的。如本领域所公知的以及上面所描述的,通过交织存储器的使用 可以提高操作的存储性能。然而,在利用不对称组件大小调整来配置的常 规存储系统中,可能要求将系统存储组织配置为未交织存储器而没有任何 性能提高,或者进行部分地交织以达到一些性能提高。

在采用部分交织的存储配置的现有解决方案中,针对对存储带宽敏感 的用途,存在着指导完全交织的存储分配的需求。该问题要求更复杂和昂 贵的软件解决方案。例如,指导分配可能要求辅助存储分配器或者存储池 分配器。为了支持不同的技术平台和/或操作系统,可能出现额外的复杂性 和花费。由于这些复杂性,因此现有系统可能避免在不对称组件配置中进 行交织,替代地,使用传统的单个存储分配器。因此,可能需要交织存储 器或者会从交织存储器获益的应用遭受性能下降。

解决这些问题的另一方法就是采用两个存储分配器。一个存储分配器 被配置为向高性能交织池分配存储,并且另一存储分配器向相对较低性能 的未交织池分配。这些方法存在许多缺点。

例如,性能应用必须意识到高性能存储分配器以便通过完全交织池进 行分配。其它应用必须通过标准的存储分配器(诸如举例来说,如本领域 所公知的存储分配函数(即,malloc()))进行分配。存储分配函数的实现 仅具有两种方式之一来聚集和分发存储。它要么从未交织池中拉取(如上 面所描述的,此方式是浪费的),要么从相对较低性能、未交织池并且从交 织池中拉取(使用算法来判断从哪个池中拉取)。这种情形针对使用标准存 储分配器的应用提供不一致的性能。判断使用标准存储分配器的应用将从 哪个池接收存储的过程是非确定性的。为了解决这一问题,存储分配器可 以提供定制的接口。定制的解决方案可以被配置为例如:针对由每个应用 作出的每个分配,对每个分配是从什么性能池作出的历史进行跟踪和维护, 并且然后在整个供电周期对该数据进行存储。然而,诸如这些定制的解决 方案是复杂并且昂贵的。

此外,只有已经被专门配置为使用替代的分配器的应用可以使用高性 能池。因为由于物理存储配置的本质,较高性能存储池往往是最大的存储 池,所以这是非常浪费的方法。可以进行优化以减小浪费,例如,将处理 器映像(image)放置到高性能存储中,或者其它手动调整的优化,但是最 终,动态可分配的存储中的大多数存储对于其预定的共享使用是不可用的。 在这种方法的一种修改中,一些现有系统引入“划出区(carveout)”的观 念,其中高性能存储被预先分配给具有高性能要求的已知应用。然而,对 于不通过高性能池进行直接和专门分配的存储用户来说,所有公知的现有 解决方案遭受存储分配低效率或者不一致性能。

应当意识到,图9中所示出的系统900可以提供解决上面所描述的问 题中的一个或多个问题的独特的解决方案,用于对具有含有不对称容量的 存储组件904a和904b的不对称存储系统902中的存储性能进行优化。例 如,可以利用标准存储分配来实现系统900,同时仍然向具有不同性能等级 的存储池提供统一性能存储。如下面更详细描述的,在其它实施例中,系 统900可以被配置为:在交织存储池差不多变得可用于标准分配器的情况 下,通过例如重映射交织带宽比率来调整与两个或多个存储池相关联的性 能。

通常,系统900包括存储通道优化模块102,并且利用上面参考图1- 图8所描述的通道重映射方法来向两个或多个存储区域或划分动态地分配 存储。如图9的实施例中所示出的,系统900包括:存储通道优化模块102, 其电连接到不对称存储系统902以及可以对不对称存储系统902进行存取 的任意数量的处理单元。应当意识到,处理单元可以包括专用处理单元(例 如,CPU 108和GPU 106)或者其它可编程处理器906。GPU 106经由电连 接110耦合到存储通道优化模块102。CPU 108经由电连接112耦合到存储 通道优化模块102。可编程处理器906经由连接910耦合到存储通道优化模 块102。专用处理单元、可编程处理器906和应用912通常可以被称为不对 称存储系统902和/或存储通道优化模块102的“客户端”。

可编程处理器906可以包括用于例如包括视频应用、音频应用或者任 意其它应用912的专用和/或通用应用的数字信号处理器(DSP)。专用处理 单元和/或可编程处理器906可以支持异构计算平台,其中该异构计算平台 被配置为支持异构系统架构(HSA),例如由HSA基金会公布的HSA标准 中所公开的。故此通过引用方式将当前的标准、AMD I/O虚拟化技术 (IOMMU)规范(公开号No.48882,修订2.00,2011年3月24日颁布) 的全部内容并入本文。

如本领域所公知的,HSA创建了改进的处理器设计,其向应用912揭 示了主流可编程计算单元的益处和能力。利用HSA,应用912能够在单个 统一地址空间中创建数据结构,并且能够在最适合于给定任务的硬件上并 行地发起工作项目。在计算单元之间共享数据如发送指针一样简单。多个 计算任务能够工作在相同的连贯存储区域上,按需要使用屏障(barrier)和 原子存储器操作来保持数据同步。

如下面更详细描述的,在一个实施例中,通过将用于客户端的存储动 态地分配到两个或多个存储区域(例如,高性能区域1001和低性能区域 1003-图10),系统900可以提供HSA背景下的有利的存储系统配置。

再次参考图9,存储通道优化模块102还包括用于耦合到不对称存储系 统902的多个硬件连接。取决于存储设备的类型,硬件连接可以改变。在 一个实施例中,存储设备包括具有不对称组件大小调整的双倍数据速率 (DDR)存储设备,尽管其它类型和配置可能是合适的。在图9的示例中, 不对称存储系统902支持分别连接到物理/控制连接116a、116b、116c和116d 的四个通道114a、114b、114c和114d。通道114a和114b可以与存储组件 904a相关联,并且通道114c和114d可以与存储组件904b相关联。应当意 识到,取决于存储设备的类型(包括存储地址的大小(例如,32位、64位 等)),物理/控制连接的数量和配置可以改变。

系统900中的存储通道优化模块102可以包括:一个或多个通道重映 射模块400,其用于配置和保持虚拟地址映射表格;相关联的存储控制器 402,其用于将存储动态地分配到两个或多个存储区域。

如图10的实施例中所示出的,存储区域可以包括第一高性能存储区域 1001和第二相对较低性能存储区域1003。高性能存储区域1001可以包括 不对称存储系统902的完全交织部分。通道重映射模块400可以将高性能 存储区域1001分配给应用912或者其它客户端。在这方面,应用912、GPU  106、CPU 108和可编程处理器906中的一个或多个可以被配置为使用定制 的应用程序接口(API),该API通过高性能存储区域1001进行分配。可以 针对相应客户端的期望的高性能存储使用要求,对高性能存储区域1001进 行专门地调整大小。不对称存储系统902中的存储器的剩余部分可以包括 低性能区域1003。附图标记1005表示高性能存储区域1001和低性能存储 区域1003之间的地址范围的边界。

在图10的实施例中,存储分配模块1002对高性能存储区域1001和低 性能存储区域1003之间的地址范围进行配置和引导。可以对高性能存储区 域1001进行完全交织以便向相对较高带宽客户端提供最佳的性能。根据不 对称存储系统902中的交织和未交织存储块的相对部分,可以利用例如最 佳的交织带宽比率来对低性能存储区域1003进行存储带宽交织。可以以上 面针对图1-图8所描述的方式或者其它方式来确定交织带宽比率并且动态 地分配存储。本领域普通技术人员将意识到,这种方法可以使得存储通道 优化模块102能够更佳地利用可用的系统存储器,由于更多的存储可用于 存储的标准客户端,通道重映射模块400可以确保所分配的存储中的一致 性能。

高性能存储区域1001和低性能存储区域1003的大小在系统900的操 作期间可以保持固定。在其它实施例中,存储边界1005在系统900的操作 期间可以进行动态地调整。例如,当存储区域1001或1003中的一个区域 的所有存储地址已经被分配(或者接近预先确定的阈值)并且另一区域具 有可用的地址时,存储区域调整模块1006可以调整存储边界1005以增加 用尽的存储区域的大小。存储区域调整模块1006可以使用例如常规的阈值 技术或具有滞后的阈值和/或阈值技术,来确定对存储区域1001和1003进 行修正的需要。在另一实施例中,存储区域性能模块1004可以被配置为对 高性能存储区域1001和/或低性能存储区域1003的性能进行监测。基于所 监测到的性能,存储区域调整模块1006可以被配置为确定针对调整的需要。

在对调整存储边界1005的需要进行确定后,可以利用修正的区域边界 来配置通道重映射模块400。可以例如以系统设计级来配置修正的存储边 界。在其它实施例中,可以通过确定修正的交织带宽比率来调整存储边界 1005,以确保跨越存储区域1001和1003中的一个或两者的性能等级。例 如,取决于低性能存储区域1003正在增长还是缩减,系统900的性能可以 提高或降低。如本领域所公知的,低性能存储区域1003的性能通常随着区 域的大小增长而增加,因为它将包括更大部分的完全交织的存储。

图11示出了用于在系统900的操作期间、对高性能存储区域1001和 低性能存储区域1003进行调整的通道重映射模块400的实施例。在步骤 1102处,存储分配模块1002可以利用相应的存储边界区域1005a来初始地 配置第一状态1000a中的高性能存储区域1001和低性能存储区域1003。在 该示例中,高性能存储区域1001包括比低性能存储区域1003更大的部分。 在系统900的操作期间,存储区域性能模块1004对两个存储区域的性能进 行监测(步骤1104和1106)。如果基于所监测到的性能,存在对存储边界 1005进行调整的需要(步骤1108),则在步骤1110处,存储区域调整模块 1006可以触发修正的存储边界1005b。修正的存储边界1005b对应于第二 状态1000b,其中减小高性能存储区域1001的大小并且增加低性能存储区 域1003的大小。应当意识到,可以增加或减小存储区域1001或1003的大 小以容纳各种期望的性能情形。

图12示出了一种用于对系统900中的存储进行动态地分配的方法的实 施例。在框1202处,对存储子系统的第一部分进行完全交织。在框1204 处,根据交织带宽比率来对存储子系统的第二剩余部分进行部分交织。在 框1206处,第一部分被分配给高性能存储客户端。在框1208处,第二部 分被分配给相对较低性能存储客户端。可以由存储通道优化模块102、通道 重映射模块400和/或存储分配模块1002(图1、图4、图9、图10和图11)、 以上面所描述的方式来执行交织和/或存储分配。在框1210处,可以由例如 存储区域性能模块1004(图10和图11)根据预先定义的性能阈值、操作 的条件或者可用的存储地址来对第一部分和/或第二部分的性能进行监测。 在判定框1212处,存储区域调整模块1006(图10和图11)判断是否要调 整存储区域边界。如果不需要调整,流程返回到框1210。如果确定要调整 存储区域边界,则在框1214处,通道重映射模块和/或存储通道优化模块 102确定用于第二部分的修正的交织带宽比率。在框1216处,根据修正的 带宽比率,经由存储通道优化模块102、通道重映射模块400和/或存储分 配模块1002中的一个或多个模块来调整存储区域边界。

应当意识到,本文所描述的方法步骤中的一个或多个方法步骤可以作 为计算机程序指令存储在存储器中,例如上面所描述的模块。可以由任意 适当的处理器与相应的模块组合或合作来执行这些指令,以执行本文所描 述的方法。

在本说明书中所描述的过程或过程流程中的某些步骤自然地先于其它 步骤,以便本发明如所描述的来运行。然而,如果这种次序或顺序不改变 本发明的功能,则本发明并不受限于所描述的步骤的顺序。也就是说,要 认识到,在不脱离本发明的范围和精神的情况下,可以先于、后于或者并 行于(基本上同时与)其它步骤来执行一些步骤。在一些实例中,在不脱 离本发明的情况下,可以省略或者不执行某些步骤。此外,诸如“此后”、 “然后”、“接下来”之类的词语并非旨在对步骤的次序进行限制。这些词 语仅用于通过对示例性方法的描述来指导读者。

另外,基于例如本说明书中的流程图和相关联的描述,编程领域中普 通技术人员能够毫无困难地编写计算机代码或者标识适当的硬件和/或电路 来实现所公开的发明。

因此,对于充分的理解如何实施和使用本发明,特定的程序代码指令 集或详细的硬件设备的公开内容并不被视为是必需的。在上面描述中并且 结合可以说明各种过程流程的图更详细地解释了所要求保护的计算机实现 的过程的创造性的功能。

在一个或多个示例性的方面中,所描述的功能可以在硬件、软件、固 件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一条或 多条指令或代码存储在计算机可读介质上或者在计算机可读介质上进行传 输。计算机可读介质包括计算机存储介质和通信介质两者,通信介质包括 促进计算机程序从一个地方传送到另一地方的任何介质。存储介质可以是 可由计算机存取的任何可用介质。通过举例而非限制性的方式,这种计算 机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、 磁盘存储或其它磁存储设备,或者可用于携带或存储具有指令或数据结构 形式的期望的程序代码并且可以由计算机存取的任何其它介质。

此外,任何连接被适当地称为计算机可读介质。例如,如果软件是使 用同轴电缆、光纤电缆、双绞线、数字用户线(“DSL”)或诸如红外、无线 电以及微波之类的无线技术从网站、服务器或其它远程源来传输的,则同 轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电以及微波之类的无 线技术被包括在介质的定义中。

如本文所使用的,磁盘和光盘包括压缩光盘(“CD”)、激光光盘、光 盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘,其中磁盘通常磁性地复 制数据,而光盘则利用激光来光学地复制数据。上述的组合也应当被包括 在计算机可读介质的范围内。

对于本发明所属领域的普通技术人员来说,在不脱离本发明的精神和 范围的情况下,替代的实施例将变得显而易见。因此,虽然已经详细地说 明和描述了精选的方面,但是应当理解,在不脱离如由所附权利要求书所 定义的本发明的精神和范围的情况下,可以在其中做出各种替换和变更。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号