CN104838368B - 用于对具有相异存储器类型的计算设备的性能进行管理的系统和方法 - Google Patents
用于对具有相异存储器类型的计算设备的性能进行管理的系统和方法 Download PDFInfo
- Publication number
- CN104838368B CN104838368B CN201380064007.3A CN201380064007A CN104838368B CN 104838368 B CN104838368 B CN 104838368B CN 201380064007 A CN201380064007 A CN 201380064007A CN 104838368 B CN104838368 B CN 104838368B
- Authority
- CN
- China
- Prior art keywords
- intertexture
- storage devices
- dissimilar
- storage device
- bandwidth ratio
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1647—Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Power Sources (AREA)
Abstract
提供了用于对具有相异存储器类型的计算设备的性能进行管理的系统和方法。示例性的实施例包括一种用于对相异存储设备进行交织的方法。所述方法涉及确定交织带宽比率,所述交织带宽比率包括用于两个或多个相异存储设备的带宽的比率。根据交织带宽比率来对相异存储设备进行交织。根据交织带宽比率向相异存储设备分发来自从一个或多个处理单元的存储地址请求。
Description
优先权和相关申请声明
本申请基于35U.S.C.119(e)要求享有于2012年12月10日递交的、已转让的临时申请序列号No.61/735,352(代理人案号No.123065P1)、名称为“System and Method forManaging 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是示出了便携式计算设备中的存储通道优化模块的示例性实现的框图。
具体实施方式
本文使用词语“示例性的”来表示“用作示例、实例或说明”。本文中被描述为“示例性的”任何方面不一定解释为比其它方面优选或有利。
在本描述中,术语“应用”还可以包括具有可执行内容的文件,例如:对象代码、脚本、字节代码、标记语言文件和补丁。此外,本文提到的“应用”还可以包括本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
术语“内容”还可以包括具有可执行内容的文件,例如:对象代码、脚本、字节代码、标记语言文件和补丁。此外,本文提到的“内容”还可以包括本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
如本描述中所使用的,术语“组件”、“数据库”、“模块”、“系统”等旨在指代计算机相关的实体,硬件、固件、硬件和软件的组合、软件或者执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。通过说明的方式,在计算设备上运行的应用和计算设备两者都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程内,并且组件可以集中在一个计算机上和/或分布在两个或多个计算机之间。此外,可以通过其上存储有各种数据结构的各种计算机可读介质来执行这些组件。组件可以通过本地的和/或远程的过程的方式,例如根据具有一个或多个数据分组的信号(例如,来自与本地系统、分布式系统中另一个组件进行交互的一个组件的数据,和/或通过信号的方式越过诸如互联网之类的网络与其它系统进行交互的一个组件的数据)来进行通信。
在本描述中,术语“通信设备”、“无线设备”、“无线电话”、“无线通信设备”和“无线手持装置”可互换地使用。随着第三代(“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)存储设备,其可以被常规地优化用于分立模式中,以便由GPU106进行专门的使用。在这方面,数字的值根据诸如存储地址位大小(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可以耦合到多核CPU402A。
图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外部的。
在特定的方面中,本文所描述的方法步骤中的一个或多个方法步骤可以作为计算机程序指令存储在存储器404A中,例如上面结合如图1中所示出的存储通道优化模块102所描述的模块。
可以由多核CPU 402A与存储通道优化模块102组合或合作来执行这些指令,以执行本文所描述的方法。此外,PCD 800的多核CPU 402A、存储通道优化模块102和存储器404A或者其组合,可以充当为用于执行本文所描述的方法步骤中的一个或多个方法步骤的单元。
在本说明书中所描述的过程或过程流程中的某些步骤自然地先于其它步骤,以便本发明如所描述的来运行。然而,如果这种次序或顺序不改变本发明的功能,则本发明并不受限于所描述的步骤的顺序。也就是说,要认识到,在不脱离本发明的范围和精神的情况下,可以先于、后于或者并行于(基本上同时与)其它步骤来执行一些步骤。在一些实例中,在不脱离本发明的情况下,可以省略或者不执行某些步骤。此外,诸如“此后”、“然后”、“接下来”之类的词语并非旨在对步骤的次序进行限制。这些词语仅用于通过对示例性方法的描述来指导读者。
另外,基于例如本说明书中的流程图和相关联的描述,编程领域中普通技术人员能够毫无困难地编写计算机代码或者标识适当的硬件和/或电路来实现所公开的发明。
因此,对于充分的理解如何实施和使用本发明,特定的程序代码指令集或详细的硬件设备的公开内容并不被视为是必需的。在上面描述中并且结合可以说明各种过程流程的图更详细地解释了所要求保护的计算机实现的过程的创造性的功能。
在一个或多个示例性的方面中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一条或多条指令或代码存储在计算机可读介质上或者在计算机可读介质上进行传输。计算机可读介质包括计算机存储介质和通信介质两者,通信介质包括促进计算机程序从一个地方传送到另一地方的任何介质。存储介质可以是可由计算机存取的任何可用介质。通过举例而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备,或者可用于携带或存储具有指令或数据结构形式的期望的程序代码并且可以由计算机存取的任何其它介质。
此外,任何连接被适当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字用户线(“DSL”)或诸如红外、无线电以及微波之类的无线技术从网站、服务器或其它远程源来传输的,则同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电以及微波之类的无线技术被包括在介质的定义中。
如本文所使用的,磁盘和光盘包括压缩光盘(“CD”)、激光光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述的组合也应当被包括在计算机可读介质的范围内。
对于本发明所属领域的普通技术人员来说,在不脱离本发明的精神和范围的情况下,用于对相异存储设备进行管理的方法200和系统100的替代的实施例将变得显而易见。因此,虽然已经详细地说明和描述了精选的方面,但是应当理解,在不脱离如由所附权利要求书所定义的本发明的精神和范围的情况下,可以在其中做出各种替换和变更。
Claims (20)
1.一种用于对相异存储设备进行交织的方法,所述方法包括:
确定交织带宽比率,所述交织带宽比率等于用于所述相异存储设备中的两个或多个相异存储设备的带宽的比率;
根据所述交织带宽比率来对所述相异存储设备进行交织,所述交织包括基于所确定的交织带宽比率来生成并保持用于所述两个或多个相异存储设备的虚拟地址映射表格;
从一个或多个处理单元接收存储地址请求;以及
根据所述交织带宽比率以及所述虚拟地址映射表格向所交织的所述相异存储设备直接分发所述存储地址请求。
2.根据权利要求1所述的方法,其中,所述一个或多个处理单元包括中央处理单元和图形处理单元。
3.根据权利要求1所述的方法,其中,所述相异存储设备包括第一类型的动态随机存取存储器(DRAM)和第二类型的DRAM。
4.根据权利要求3所述的方法,其中,所述第一类型的DRAM包括双倍数据速率存储器,并且所述第二类型的DRAM包括图形双倍数据速率存储器。
5.根据权利要求1所述的方法,其中,所述相异存储设备包括低功率双倍数据速率(LPDDR)存储器和宽I/O存储器。
6.一种用于对相异存储设备进行交织的系统,包括:
用于确定交织带宽比率的单元,所述交织带宽比率等于用于所述相异存储设备中的两个或多个相异存储设备的带宽的比率;
用于根据所述交织带宽比率来对所述相异存储设备进行交织的单元,所述交织包括基于所确定的交织带宽比率来生成并保持用于所述两个或多个相异存储设备的虚拟地址映射表格;
用于从一个或多个处理单元接收存储地址请求的单元;以及
用于根据所述交织带宽比率以及所述虚拟地址映射表格向所交织的所述相异存储设备直接分发所述存储地址请求的单元,其中,所述用于确定的单元、所述用于交织的单元、所述用于接收的单元以及所述用于分发的单元包括硬件。
7.根据权利要求6所述的系统,其中,所述一个或多个处理单元包括中央处理单元和图形处理单元。
8.根据权利要求6所述的系统,其中,所述相异存储设备包括第一类型的动态随机存取存储器(DRAM)和第二类型的DRAM。
9.根据权利要求8所述的系统,其中,所述第一类型的DRAM包括双倍数据速率存储器,并且所述第二类型的DRAM包括图形双倍数据速率存储器。
10.根据权利要求6所述的系统,其中,所述相异存储设备包括低功率双倍数据速率(LPDDR)存储器和宽I/O存储器。
11.一种用于对计算机系统中的存储设备进行管理的存储系统,所述存储系统包括:
第一类型的存储设备,其被分配给第一客户端;
第二类型的存储设备,其被分配给第二客户端;以及
与所述第一类型的存储设备和所述第二类型的存储设备以及所述第一客户端和所述第二客户端进行通信的存储通道优化模块,所述存储通道优化模块能够操作于统一操作模式下以通过以下操作来对所述第一类型的存储设备和所述第二类型的存储设备进行交织:
确定交织带宽比率,所述交织带宽比率等于用于所述第一类型的存储设备和所述第二类型的存储设备的带宽的比率;
根据所述交织带宽比率来对所述第一类型的存储设备和所述第二类型的存储设备进行交织,所述交织包括基于所确定的交织带宽比率来生成并保持用于所述第一类型的存储设备和所述第二类型的存储设备的虚拟地址映射表格;
从所述第一客户端和所述第二客户端接收存储地址请求;以及
根据所述交织带宽比率以及所述虚拟地址映射表格向所交织的所述第一类型的存储设备和所述第二类型的存储设备直接分发所述存储地址请求。
12.根据权利要求11所述的存储系统,其中,所述第一客户端包括中央处理单元,并且所述第二客户端包括图形处理单元。
13.根据权利要求11所述的存储系统,其中,所述第一类型的存储设备包括双倍数据速率存储器,并且所述第二类型的存储设备包括图形双倍数据速率存储器。
14.根据权利要求11所述的存储系统,其中,所述第一类型的存储设备包括低功率双倍数据速率(LPDDR)存储器,并且所述第二类型的存储设备包括宽I/O存储器。
15.根据权利要求11所述的存储系统,其中,所述存储通道优化模块还能够操作于分立操作模式下,在所述分立操作模式下,所述第一类型的存储设备对特定于所述第一客户端的数据进行管理,并且所述第二类型的存储设备对特定于所述第二客户端的数据进行管理。
16.一种用于对相异存储设备进行交织的系统,所述系统包括:
用于确定交织带宽比率的单元,所述交织带宽比率等于用于所述相异存储设备中的两个或多个相异存储设备的带宽的比率;
用于根据所述交织带宽比率来对所述相异存储设备进行交织的单元,所述交织包括基于所确定的交织带宽比率来生成并保持用于所述两个或多个相异存储设备的虚拟地址映射表格;
用于从一个或多个处理单元接收存储地址请求的单元;以及
用于根据所述交织带宽比率以及所述虚拟地址映射表格向所交织的所述相异存储设备直接分发所述存储地址请求的单元,其中,所述用于确定的单元、所述用于交织的单元、所述用于接收的单元以及所述用于分发的单元包括非暂时性计算机可读介质。
17.根据权利要求16所述的系统,其中,所述一个或多个处理单元包括中央处理单元和图形处理单元。
18.根据权利要求16所述的系统,其中,所述相异存储设备包括第一类型的动态随机存取存储器(DRAM)和第二类型的DRAM。
19.根据权利要求18所述的系统,其中,所述第一类型的DRAM包括双倍数据速率存储器,并且所述第二类型的DRAM包括图形双倍数据速率存储器。
20.根据权利要求16所述的系统,其中,所述相异存储设备包括低功率双倍数据速率(LPDDR)存储器和宽I/O存储器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261735352P | 2012-12-10 | 2012-12-10 | |
US61/735,352 | 2012-12-10 | ||
US13/726,537 US8959298B2 (en) | 2012-12-10 | 2012-12-24 | System and method for managing performance of a computing device having dissimilar memory types |
US13/726,537 | 2012-12-24 | ||
PCT/US2013/067843 WO2014092876A1 (en) | 2012-12-10 | 2013-10-31 | System and method for managing performance of a computing device having dissimilar memory types |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104838368A CN104838368A (zh) | 2015-08-12 |
CN104838368B true CN104838368B (zh) | 2017-04-26 |
Family
ID=50882301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380064007.3A Active CN104838368B (zh) | 2012-12-10 | 2013-10-31 | 用于对具有相异存储器类型的计算设备的性能进行管理的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8959298B2 (zh) |
EP (1) | EP2929446B1 (zh) |
CN (1) | CN104838368B (zh) |
TW (1) | TWI492053B (zh) |
WO (1) | WO2014092876A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256531B2 (en) | 2012-06-19 | 2016-02-09 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear addresss remapping logic |
US9092327B2 (en) | 2012-12-10 | 2015-07-28 | Qualcomm Incorporated | System and method for allocating memory to dissimilar memory devices using quality of service |
US9110795B2 (en) | 2012-12-10 | 2015-08-18 | Qualcomm Incorporated | System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components |
CN104954796B (zh) * | 2014-03-28 | 2019-06-11 | 联咏科技股份有限公司 | 视频处理装置与其视频处理电路 |
US9823846B2 (en) * | 2014-08-20 | 2017-11-21 | Qualcomm Incorporated | Systems and methods for expanding memory for a system on chip |
CN105373491A (zh) * | 2014-08-26 | 2016-03-02 | 扬智科技股份有限公司 | 多通道存储器 |
CN106155912A (zh) * | 2015-04-14 | 2016-11-23 | 扬智科技股份有限公司 | 多通道存储器与其存储器存取方法 |
KR20180058456A (ko) | 2016-11-24 | 2018-06-01 | 삼성전자주식회사 | 메모리를 관리하는 방법 및 장치. |
US20220114115A1 (en) * | 2021-12-21 | 2022-04-14 | Intel Corporation | Interleaving of heterogeneous memory targets |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341486A (en) | 1988-10-27 | 1994-08-23 | Unisys Corporation | Automatically variable memory interleaving system |
US7120727B2 (en) | 2003-06-19 | 2006-10-10 | Micron Technology, Inc. | Reconfigurable memory module and method |
US7484065B2 (en) | 2004-04-20 | 2009-01-27 | Hewlett-Packard Development Company, L.P. | Selective memory allocation |
US7716669B2 (en) | 2004-04-30 | 2010-05-11 | Microsoft Corporation | Concurrent system applications in a multimedia console |
US7477257B2 (en) | 2005-12-15 | 2009-01-13 | Nvidia Corporation | Apparatus, system, and method for graphics memory hub |
US20070180203A1 (en) | 2006-02-01 | 2007-08-02 | Madhusudhan Ramgarajan | Optimizing system performance in flexible interleaving memory mode |
US7707379B2 (en) | 2006-07-13 | 2010-04-27 | International Business Machines Corporation | Dynamic latency map for memory optimization |
US7620793B1 (en) * | 2006-08-28 | 2009-11-17 | Nvidia Corporation | Mapping memory partitions to virtual memory pages |
US7768518B2 (en) | 2006-09-27 | 2010-08-03 | Intel Corporation | Enabling multiple instruction stream/multiple data stream extensions on microprocessors |
US20080250212A1 (en) | 2007-04-09 | 2008-10-09 | Ati Technologies Ulc | Method and apparatus for accessing memory using programmable memory accessing interleaving ratio information |
US8271827B2 (en) | 2007-12-10 | 2012-09-18 | Qimonda | Memory system with extended memory density capability |
US8289333B2 (en) | 2008-03-04 | 2012-10-16 | Apple Inc. | Multi-context graphics processing |
US8099539B2 (en) | 2008-03-10 | 2012-01-17 | Lsi Corporation | Method and system of a shared bus architecture |
US8397241B2 (en) | 2008-11-13 | 2013-03-12 | Intel Corporation | Language level support for shared virtual memory |
US8266389B2 (en) | 2009-04-29 | 2012-09-11 | Advanced Micro Devices, Inc. | Hierarchical memory arbitration technique for disparate sources |
US8451281B2 (en) | 2009-06-23 | 2013-05-28 | Intel Corporation | Shared virtual memory between a host and discrete graphics device in a computing system |
US8407516B2 (en) | 2009-12-23 | 2013-03-26 | Intel Corporation | Controlling memory redundancy in a system |
US8669990B2 (en) | 2009-12-31 | 2014-03-11 | Intel Corporation | Sharing resources between a CPU and GPU |
US20110242427A1 (en) * | 2010-04-01 | 2011-10-06 | Timothy Ramsdale | Method and System for Providing 1080P Video With 32-Bit Mobile DDR Memory |
US20110320751A1 (en) | 2010-06-25 | 2011-12-29 | Qualcomm Incorporated | Dynamic Interleaving Of Multi-Channel Memory |
US20120054455A1 (en) | 2010-08-31 | 2012-03-01 | Qualcomm Incorporated | Non-Uniform Interleaving Scheme In Multiple Channel DRAM System |
US8314807B2 (en) | 2010-09-16 | 2012-11-20 | Apple Inc. | Memory controller with QoS-aware scheduling |
WO2012083211A1 (en) | 2010-12-17 | 2012-06-21 | Everspin Technologies, Inc. | Memory controller and method for interleaving dram and mram accesses |
US8854387B2 (en) | 2010-12-22 | 2014-10-07 | Advanced Micro Devices, Inc. | Bundle-based CPU/GPU memory controller coordination mechanism |
US10241908B2 (en) * | 2011-04-26 | 2019-03-26 | Seagate Technology Llc | Techniques for dynamically determining allocations and providing variable over-provisioning for non-volatile storage |
US9092327B2 (en) | 2012-12-10 | 2015-07-28 | Qualcomm Incorporated | System and method for allocating memory to dissimilar memory devices using quality of service |
US9110795B2 (en) | 2012-12-10 | 2015-08-18 | Qualcomm Incorporated | System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components |
-
2012
- 2012-12-24 US US13/726,537 patent/US8959298B2/en active Active
-
2013
- 2013-10-31 EP EP13795331.1A patent/EP2929446B1/en active Active
- 2013-10-31 CN CN201380064007.3A patent/CN104838368B/zh active Active
- 2013-10-31 WO PCT/US2013/067843 patent/WO2014092876A1/en active Application Filing
- 2013-11-18 TW TW102141942A patent/TWI492053B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP2929446A1 (en) | 2015-10-14 |
US8959298B2 (en) | 2015-02-17 |
TW201435588A (zh) | 2014-09-16 |
TWI492053B (zh) | 2015-07-11 |
EP2929446B1 (en) | 2017-12-06 |
WO2014092876A1 (en) | 2014-06-19 |
US20140164689A1 (en) | 2014-06-12 |
CN104838368A (zh) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104838368B (zh) | 用于对具有相异存储器类型的计算设备的性能进行管理的系统和方法 | |
CN104854572B (zh) | 用于对具有不对称存储组件的存储子系统中的存储进行动态地分配的系统和方法 | |
CN104871143B (zh) | 用于使用服务质量来向相异存储设备分配存储的系统和方法 | |
CN105452986B (zh) | 用于具有选择性功率或性能优化的内存通道交织的系统和方法 | |
CN105556421B (zh) | 使用动态存储i/o调整大小来节约存储功率的系统和方法 | |
CN107533442A (zh) | 用于对异构系统存储器中的存储器功率消耗进行优化的系统和方法 | |
CN102981990B (zh) | 采用Android平台终端设备的数据传输方法及装置 | |
CN109313609A (zh) | 用于奇数模存储器通道交织的系统和方法 | |
CN105612501A (zh) | 用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的系统和方法 | |
CN104205234A (zh) | 用于存储器电路测试引擎的通用地址加扰器 | |
CN106575273A (zh) | 用于扩展片上系统的存储器的系统和方法 | |
CN105378843A (zh) | 具有位单元和逻辑单元划分的单片式三维(3d)随机存取存储器(ram)阵列架构 | |
KR20130087853A (ko) | 파워 컨트롤 시스템 및 그 동작 방법 | |
CN103685341B (zh) | 云存储数据中心及云存储数据的提供方法 | |
CN104702593A (zh) | 电子凭证联机和脱机一体化的验证系统以及验证方法 | |
CN107851074A (zh) | 多个接口对存储器空间的并发访问 | |
CN104054049A (zh) | 减少由cpu执行以便复制源数据从而实现对源数据的并行处理的读/写操作的数量 | |
CN104079325B (zh) | 一种信息共享的方法和电子设备 | |
CN103294407A (zh) | 存储装置和数据读写方法 | |
CN108604213A (zh) | 用于个别地配置共享公共命令存取总线的动态随机存取存储器的系统和方法 | |
CN107111560A (zh) | 用于在非统一存储器架构中提供改进的延迟的系统和方法 | |
CN202995918U (zh) | 一种互联网支付终端 | |
CN205827396U (zh) | 一种增强型统一读写器 | |
CN103309871A (zh) | 文件读写方法和电子设备 | |
CN221040012U (zh) | 一种多屏异显示异触摸异声音的数字娱乐机主板 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |