CN104871143B - 用于使用服务质量来向相异存储设备分配存储的系统和方法 - Google Patents
用于使用服务质量来向相异存储设备分配存储的系统和方法 Download PDFInfo
- Publication number
- CN104871143B CN104871143B CN201380064062.2A CN201380064062A CN104871143B CN 104871143 B CN104871143 B CN 104871143B CN 201380064062 A CN201380064062 A CN 201380064062A CN 104871143 B CN104871143 B CN 104871143B
- Authority
- CN
- China
- Prior art keywords
- storage
- memory
- qos
- dram
- intertexture
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 197
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000015654 memory Effects 0.000 claims abstract description 107
- 238000005457 optimization Methods 0.000 claims description 52
- 238000012544 monitoring process Methods 0.000 claims description 26
- 238000009826 distribution Methods 0.000 claims description 19
- 230000006399 behavior Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000014759 maintenance of location Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 241001553178 Arachis glabrata Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 229910052738 indium Inorganic materials 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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
- 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/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
Abstract
提供了用于向相异存储设备分配存储的系统和方法。示例性的实施例包括一种用于向相异存储设备分配存储的方法。确定交织带宽比率,该交织带宽比率包括用于两个或多个相异存储设备的带宽的比率。根据交织带宽比率来对相异存储设备进行交织,以定义具有不同性能等级的两个或多个存储区域。基于服务质量(QoS)来向存储区域分配存储地址请求。
Description
优先权和相关申请声明
本申请是于2012年12月24日递交的、名称为“System and Method for ManagingPerformance of a Computing Device Having Dissimilar Memory Types”(代理人案号No.123065U1)的共同待决的美国专利申请序列号No.13/726,537的部分继续专利申请,其中,美国专利申请序列号No.13/726,537基于35U.S.C.119(e)要求享有于2012年12月10日递交的、已转让的临时申请序列号No.61/735,352(代理人案号No.123065P1)、名称为“System and Method for Managing Performance of a Computing Device HavingDissimilar 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利用两种不同类型的存储设备的经组合的、总的可用带宽。各个存储设备的存储空间被放置在单独的、存储地址连续块中。换句话说,整个存储映射将第一类型的存储设备放置在一个连续块中,并且将第二类型的存储设备单独地放置在不同的连续块中。不同存储设备的存储端口之间不存在硬件协调来支持驻留在相同的连续块中的物理存取。
因此,虽然存在对计算机系统中更专用的存储设备的增加的需求,以提供计算机设备中越来越多的系统和功率性能,但是在本领域中仍然存在对用于对相异存储设备进行管理的提高的系统和方法的需求。
发明内容
提供了用于向相异存储设备分配存储的系统和方法。示例性的实施例包括一种用于向相异存储设备分配存储的方法。确定交织带宽比率,该交织带宽比率包括用于两个或多个相异存储设备的带宽的比率。根据交织带宽比率来对相异存储设备进行交织,以定义具有不同性能等级的两个或多个存储区域。基于服务质量(QoS)来向存储区域分配存储地址请求。
附图说明
在附图中,类似的附图标记指代贯穿各种视图中的类似部件,除非另外指示。对于具有诸如“102A”或“102B”等字母符号标示的附图标记,字母符号标示可以对出现在相同附图中的两个类似部件或要素进行区分。当旨在用附图标记来包含所有附图中具有相同附图标记的所有部件时,可以省略用于附图标记的字母符号标示。
图1是用于对相异存储设备进行管理的系统的实施例的框图。
图2是一种由图1中的存储通道优化模块执行的、用于对相异存储设备进行管理的方法的实施例的流程图。
图3是示出了用于各种类型的相异存储设备的交织带宽比率的示例性表格。
图4是示出了图1的存储通道优化模块的组件的框图。
图5是示出了基于各种交织带宽比率的存储通道地址重映射的示例性表格。
图6是示出了图4的通道重映射模块的实施例的通用操作、架构和功能的组合的流程/框图。
图7是示出了一种用于创建跨越相异存储设备的多个逻辑区域的交织方法的实施例的图。
图8是示出了便携式计算设备中的存储通道优化模块的示例性实现的框图。
图9是示出了一种包括耦合到高级操作系统(HLOS)的、用于向相异存储设备分配存储的存储通道优化模块的系统的另一实施例的框图。
图10是示出了用于经由HLOS所提供的QoS来向统一存储空间中的区域分配存储的、图9的系统的架构和操作的实施例的框图。
图11是示出了用于经由与存储通道优化模块相关联的QoS监测模块来向统一存储空间中的区域分配存储的另一实施例的框图。
图12是示出了一种用于基于QoS服务来向相异存储设备动态地分配存储的方法的实施例的流程图。
图13示出了经由与HLOS API相关联的存储分配函数来向逻辑区域分配存储的图7的示图。
具体实施方式
本文使用词语“示例性的”来表示“用作示例、实例或说明”。本文中被描述为“示例性的”任何方面不一定解释为比其它方面优选或有利。
在本描述中,术语“应用”还可以包括具有可执行内容的文件,例如:对象代码、脚本、字节代码、标记语言文件和补丁。此外,本文提到的“应用”还可以包括本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
术语“内容”还可以包括具有可执行内容的文件,例如:对象代码、脚本、字节代码、标记语言文件和补丁。此外,本文提到的“内容”还可以包括本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
如本描述中所使用的,术语“组件”、“数据库”、“模块”、“系统”等旨在指代计算机相关的实体,硬件、固件、硬件和软件的组合、软件或者执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。通过说明的方式,在计算设备上运行的应用和计算设备两者都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程内,并且组件可以集中在一个计算机上和/或分布在两个或多个计算机之间。此外,可以通过其上存储有各种数据结构的各种计算机可读介质来执行这些组件。组件可以通过本地的和/或远程的过程的方式,例如根据具有一个或多个数据分组的信号(例如,来自与本地系统、分布式系统中另一个组件进行交互的一个组件的数据,和/或通过信号的方式越过诸如互联网之类的网络与其它系统进行交互的一个组件的数据)来进行通信。
在本描述中,术语“通信设备”、“无线设备”、“无线电话”、“无线通信设备”和“无线手持装置”可互换地使用。随着第三代(“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外部的。
图9-图13示出了用于在高级操作系统(HLOS)环境中对上面结合图1-图8所描述的重映射和交织解决方案的方面进行利用的系统和方法的各种替代的实施例。应当意识到,HLOS环境可以提供异构计算平台或者异构系统架构(HSA),例如由HSA基金会公布的HSA标准中所公开的。故此通过引用方式将当前的标准、AMD I/O虚拟化技术(IOMMU)规范(公开号No.48882,修订2.00,2011年3月24日颁布)的全部内容并入本文。
如本领域所公知的,基于HSA的系统可以被配置为提供对系统存储器的统一视图。HSA允许开发方通过例如使用主流编程语言、从开发方的硬件规范中抽离、并且将特定于硬件的编码留给由硬件供应商执行,来以较高的抽象级进行编程。然而,针对在具有相异存储器类型或设备的系统中有效地实现HSA,不存在公知的解决方案。
应当意识到,下面结合图9-图13所描述的系统和方案通常提供用于在包括例如上面所描述的相异存储器类型或设备的系统中支持HSA和/或HLOS的独特的和期望的解决方案。下面所描述的系统和方法可以通过去除对平台中的所有存储器要统一的现有需求,来提供高性能、较低的功率和较低的成本。此外,硬件开发方可以具有对例如遵循HSA标准的计算设备中的高成本和无效益成本存储设备和/或类型两者进行组合的灵活性。
图9示出了包括与存储通道优化模块102和一个或多个应用906进行通信的HLOS902、用于向相异存储设备动态地分配存储的系统900。存储通道优化模块102通常可以以上面所描述的方式被配置和操作。存储通道优化模块102电连接到两个或多个相异存储器类型或设备(例如,DRAM104a和104b)以及可以对相异存储设备进行存取的任意数量的处理单元。应当意识到,处理单元可以包括专用处理单元(例如,CPU 108和GPU 106)或者其它可编程处理器。GPU 106经由电连接110耦合到存储通道优化模块102。CPU 108经由电连接112耦合到存储通道优化模块102。一个或多个可编程处理器(未示出)可以经由相应的连接耦合到存储通道优化模块102。对相异存储设备进行存取的专用处理单元、可编程处理器以及任意应用906通常可以被称为HLOS 902和/或存储通道优化模块102的“客户端”。
可编程处理器可以包括用于例如包括视频应用、音频应用或者任意其它应用906的专用和/或通用应用的数字信号处理器(DSP)。如上面所提到的,专用处理单元、应用906、HLOS 902和/或可编程处理器可以支持被配置为支持异构系统架构(HSA)的异构计算平台。应当意识到,HSA创建了改进的处理器设计,其向应用906揭示了主流可编程计算单元的益处和能力。利用HSA,应用906能够在单个统一地址空间中创建数据结构,并且能够在最适合于给定任务的硬件上并行地发起工作项目。在计算单元之间共享数据如发送指针一样简单。多个计算任务能够工作在相同的连贯存储区域上,按需要使用屏障(barrier)和原子存储器操作来保持数据同步。
如上面更详细描述的,存储通道优化模块102还包括用于耦合到DRAM 104a和104b的多个硬件连接。取决于存储设备的类型,硬件连接可以改变。在一个实施例中,相异存储设备包括双倍数据速率(DDR)存储设备,其提供连接到存储通道优化模块102上的物理/控制连接的相应通道。应当意识到,取决于存储设备的类型(包括存储地址的大小(例如,32位、64位等)),物理/控制连接的数量和配置可以改变。
HLOS 902包括服务质量(QoS)监测模块904。QoS监测模块904通过保证和/或匹配应用存储要求来向应用906提供QoS服务。QoS服务可以是基于经由例如与QoS监测模块904相关联的应用程序接口(API)1002向HLOS 902提供的程序员声明的QoS的。在其它实施例中,HLOS 902可以基于对应用906(例如,进程、线程等)的存储存取行为和/或性能进行监测来确定估计的QoS。进一步的示例性QoS值可以是存储带宽和/或延迟要求或者其它存储性能度量,以用于在平台存储器上要分配的数据,使得进行数据存取的应用能够满足期望的性能和质量。
如图10的实施例中所示出的,HLOS 902支持对由统一地址空间1000寻址的相异存储设备的交织的存储存取。统一地址空间1000可以包括一个或多个逻辑存储区域(例如,存储区域1004、1006和1008)。应当意识到,可以使用上面所描述的并且在图7中示出的多层交织技术来配置统一地址空间1000以及存储区域1004、1006和1008,以创建多个“逻辑的”设备或存储区域。例如,重访上面图7的示例,可以采用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的存储管理架构相结合的多层交织技术可以有助于在交织和未交织部分之间进行转换。出于图10的目的,存储区域1004、1006和1008可以与来自图7的区域710、712和714相对应。存储区域1004、1006和1008可以具有不同的密度和/或性能等级。
与存储通道优化模块102相集成的HLOS 902提供有效的存储分配方案。应当意识到,HLOS 902和/或存储通道优化模块102可以在整个设备中向具有不同的存储性能要求的不同应用工作负载分配存储。HLOS 902被配置为对具有不同性能要求的存储器组件的分配/解除分配进行恰当管理,以便有效使用硬件平台。
QoS监测模块904可以允许来自存储区域1004、1006和1008中的一个或多个存储区域的、经动态地分配的和空闲的虚拟存储器。在一个实施例中,QoS监测模块904可以将较高性能的区域分配给与应用906相关联的任务/线程,其可以请求或者以其它方式接收较高的性能。QoS监测模块904可以将较低性能的区域分配给未请求较高性能的任务/线程。此外,QoS监测模块904可以动态地控制存储分配,以便从例如第一请求的区域类型回退到第二或第三选择。
QoS监测模块904还可以被配置为:基于来自过程的凭证以及该过程存在于该区域中会如何令人期望,来对来自较高性能区域的过程进行审核以及迁移或清除。可以对过程进行审核并且将其从可能被删除、断电等的区域迁移或清除,从而在睡眠模式期间提供了系统功率降低。QoS监测模块130可以定期地监测应用906,并且基于所监测到的性能,来评估和推荐对区域划分配置的修改。
QoS监测模块904可以被配置为:在为应用代码分配存储时,提供QoS请求或者提示。应当意识到,可以由QoS监测模块904来对各种QoS或相关参数进行监测,并且这些QoS或相关参数可以指示例如所分配的区域上的性能等级或者存取性质(例如,流式高吞吐量大连续、小块中离散的随机存取等)
QoS监测模块904可以转换(translate)QoS参数并且将它们映射到特定的存储器类型或存储区域。例如,随机存取可以使用较低的存储存取延迟以便对应用代码的有效实现,而可能期望流式高吞吐量的应用代码使用高存储带宽。QoS参数可以包括直接的实时值,诸如举例来说,“存储存取延迟<x nsec”。在HLOS 902包括API 1002的图10的实施例中,QoS参数可以是针对存储分配库的可选参数。
QoS监测模块904可以被配置为对内核中的存储管理模块进行增强,以便对不同类型的异构存储器的动态使用保持跟踪。增强的存储管理模块可以基于QoS提示来确定向存储区域1004、1006和1008中的一个存储区域适当分配所请求的存储。
应当意识到,不需要使用QoS值。在缺少任何QoS值的情况下,QoS监测模块904可以基于初始的运行时性能来确定适当的存储区域以用于对应用所请求的存储的分配。如果例如基于当前的存储区域分配对应用906的运行时性能有影响,则可以将存储区域1004、1006和1008从一个区域动态地转移到另一区域。在缺少QoS参数的情况下,QoS监测模块904可以通过对存取是相对大的连续块还是随机存取的进行跟踪,来对进程和/或线程的存储存取性能保持跟踪。可以使用每个存取突发之间的时间间隙来估计QoS参数。
QoS监测模块904还可以被配置为:在特定进程/线程处于待决/等待阶段时,将用于特定进程/线程的所分配的存储交换到最佳地匹配所估计的QoS的相关存储区域。可以在运行状态期间避免将所分配的存储交换到不同的区域,以对在活动的执行期间的开销进行折衷。
在实现估计的QoS的实施例中,QoS监测模块904可以被配置为与当前所分配的存储区域进行匹配。QoS监测模块904可以针对存储存取行为中的未来变化来监测线程/进程。可以按需要改变监测过程的频率。替代地,QoS监测模块904可以基于系统900上的总体活动来消除进一步的监测,以减小监测过程的开销。
应当意识到,可以实现以下各种硬件结构:这些硬件结构被配置为提取进程/线程的存储存取行为/模式,以便确定估计的QoS来将存储分配映射到适当的存储区域。此外,当特定进程/线程内的不同分配可能被分配到不同的存储区域(其中QoS满足更广的范围)时,存储区域分配可以是进一步粒度化的。例如,相比于快速随机存取但低带宽的存储器,一些组件通过需要高吞吐量,可以更好地适合于能够承受较高延迟的高带宽流式数据。
图11示出了一种用于将上面所描述的QoS服务中的一个或多个QoS服务与存储通道优化模块102进行集成的系统1100的另一实施例。对于容纳可能与HLOS 902所提供的QoS解决方案不兼容的传统应用906而言,这种方法可能是令人期望的。在该实施例中,存储通道优化模块102还包括QoS监测模块904,QoS监测模块904操作地耦合到上面所描述的通道重映射模块400。
图12示出了一种用于根据上面所描述的交织和重映射方法在系统900(图9)或者系统1100(图11)中动态地分配存储的方法1200。在框1202处,确定交织带宽比率。如上面所描述的,交织带宽比率可以包括用于两个或多个相异存储器类型或设备的带宽的比率。在框1204处,根据在框1202处所确定的交织带宽比率,来对相异存储器类型或设备进行交织。可以实现上面所描述的交织方法或者其它交织方法中的任意一种,以定义两个或多个存储区域(例如,区域1004、1006和1008),其中每个存储区域具有不同的性能等级和/或密度等级。在框1206处,HLOS 902和/或存储通道优化模块102可以从应用906(或者其它客户端)接收存储地址请求。作为响应,基于声明的QoS(例如,经由API 1002)或者估计的QoS来向适当的存储区域分配存储。
在图13中所示出的实施例中,可以使用与API 1002相对应的“malloc”(即,存储分配)函数来实现声明的QoS。接着上面使用2:1交织带宽比率的示例(图7),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。应当意识到,QoS可以应用于存储分配函数的所有不同变型,并且该“malloc”仅用作一个可能的示例。
第一malloc函数1302可以用于对与例如4路交织的存储区域710相关联的第一QoS进行声明。第二malloc函数1304可以用于对与例如2路交织的区域712相关联的第二QoS进行声明。第三malloc函数1306可以用于对与例如未交织的区域1306相关联的第三QoS进行声明。
应当意识到,本文所描述的方法步骤中的一个或多个方法步骤可以作为计算机程序指令存储在存储器中,例如上面所描述的模块。可以由任意适当的处理器与相应的模块组合或合作来执行这些指令,以执行本文所描述的方法。
在本说明书中所描述的过程或过程流程中的某些步骤自然地先于其它步骤,以便本发明如所描述的来运行。然而,如果这种次序或顺序不改变本发明的功能,则本发明并不受限于所描述的步骤的顺序。也就是说,要认识到,在不脱离本发明的范围和精神的情况下,可以先于、后于或者并行于(基本上同时与)其它步骤来执行一些步骤。在一些实例中,在不脱离本发明的情况下,可以省略或者不执行某些步骤。此外,诸如“此后”、“然后”、“接下来”之类的词语并非旨在对步骤的次序进行限制。这些词语仅用于通过对示例性方法的描述来指导读者。
另外,基于例如本说明书中的流程图和相关联的描述,编程领域中普通技术人员能够毫无困难地编写计算机代码或者标识适当的硬件和/或电路来实现所公开的发明。
因此,对于充分的理解如何实施和使用本发明,特定的程序代码指令集或详细的硬件设备的公开内容并不被视为是必需的。在上面描述中并且结合可以说明各种过程流程的图更详细地解释了所要求保护的计算机实现的过程的创造性的功能。
在一个或多个示例性的方面中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一条或多条指令或代码存储在计算机可读介质上或者在计算机可读介质上进行传输。计算机可读介质包括计算机存储介质和通信介质两者,通信介质包括促进计算机程序从一个地方传送到另一地方的任何介质。存储介质可以是可由计算机存取的任何可用介质。通过举例而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备,或者可用于携带或存储具有指令或数据结构形式的期望的程序代码并且可以由计算机存取的任何其它介质。
此外,任何连接被适当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字用户线(“DSL”)或诸如红外、无线电以及微波之类的无线技术从网站、服务器或其它远程源来传输的,则同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电以及微波之类的无线技术被包括在介质的定义中。
如本文所使用的,磁盘和光盘包括压缩光盘(“CD”)、激光光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述的组合也应当被包括在计算机可读介质的范围内。
对于本发明所属领域的普通技术人员来说,在不脱离本发明的精神和范围的情况下,替代的实施例将变得显而易见。因此,虽然已经详细地说明和描述了精选的方面,但是应当理解,在不脱离如由所附权利要求书所定义的本发明的精神和范围的情况下,可以在其中做出各种替换和变更。
Claims (14)
1.一种用于向相异存储设备分配存储的方法,所述方法包括:
确定交织带宽比率,所述交织带宽比率包括用于两个或多个相异存储设备的带宽的比率;
根据所述交织带宽比率来对所述相异存储设备进行交织,并且定义具有不同性能等级的两个或多个存储区域;
基于估计的服务质量(QoS)来向所述存储区域分配存储地址请求,其中,所述估计的QoS是基于监测所述存储区域中的一个或多个存储区域上的当前存储存取行为和/或性能来确定的;以及
基于所述估计的QoS来推荐对存储区域的区域划分配置的修改。
2.根据权利要求1所述的方法,其中,所述相异存储设备包括第一类型的动态随机存取存储器(DRAM)和第二类型的DRAM。
3.根据权利要求2所述的方法,其中,所述第一类型的DRAM或所述第二类型的DRAM中的一个或多个DRAM包括双倍数据速率(DDR)存储器。
4.根据权利要求1所述的方法,其中,所述基于所述估计的QoS来向所述存储区域分配所述存储地址请求包括:高级操作系统(HLOS)接收所述存储地址请求。
5.一种用于向相异存储设备分配存储的系统,所述系统包括:
用于确定交织带宽比率的单元,所述交织带宽比率包括用于两个或多个相异存储设备的带宽的比率;
用于根据所述交织带宽比率来对所述相异存储设备进行交织,并且定义具有不同性能等级的两个或多个存储区域的单元;
用于根据估计的服务质量(QoS)来向所述存储区域分配存储地址请求的单元,其中,所述估计的QoS是基于监测所述存储区域中的一个或多个存储区域上的当前存储存取行为和/或性能来确定的;以及
用于基于所述估计的QoS来推荐对存储区域的区域划分配置的修改的单元;
其中,所述用于确定交织带宽比率的单元、所述用于对所述相异存储设备进行交织的单元以及所述用于向所述存储区域分配存储地址请求的单元包括硬件。
6.根据权利要求5所述的系统,其中,所述相异存储设备包括第一类型的动态随机存取存储器(DRAM)和第二类型的DRAM。
7.根据权利要求6所述的系统,其中,所述第一类型的DRAM或所述第二类型的DRAM中的一个或多个DRAM包括双倍数据速率(DDR)存储器。
8.根据权利要求5所述的系统,其中,所述用于分配的单元包括高级操作系统(HLOS)和存储通道优化模块中的一个。
9.一种用于对计算机系统中的存储设备进行管理的存储系统,所述存储系统包括:
第一类型的存储设备;
第二类型的存储设备;
与所述第一类型的存储设备和所述第二类型的存储设备进行通信的存储通道优化模块,所述存储通道优化模块能够在统一操作模式下操作用于通过以下操作来对所述第一类型的存储设备和所述第二类型的存储设备进行交织:
确定交织带宽比率,所述交织带宽比率包括用于所述第一类型的存储设备和所述第二类型的存储设备的带宽的比率;
根据所述交织带宽比率来对所述第一类型的存储设备和所述第二类型的存储设备进行交织,并且定义具有不同性能等级的两个或多个存储区域;以及
与所述存储通道优化模块进行通信的高级操作系统(HLOS),其用于基于估计的QoS来向所述存储区域中的一个存储区域分配来自一个或多个应用的存储地址请求,其中,所述估计的QoS是由所述存储通道优化模块基于监测所述存储区域中的一个或多个存储区域上的当前存储存取行为和/或性能来估计的;
其中,所述存储通道优化模块还操作用于基于所述估计的QoS来推荐对存储区域的区域划分配置的修改。
10.根据权利要求9所述的存储系统,其中,所述第一类型的存储设备包括第一类型的双倍数据速率(DDR)存储器,并且所述第二类型的存储设备包括第二类型的DDR存储器。
11.一种用于向相异存储设备分配存储的系统,所述系统包括:
用于确定交织带宽比率的单元,所述交织带宽比率包括用于两个或多个相异存储设备的带宽的比率;
用于根据所述交织带宽比率来对所述相异存储设备进行交织,并且定义具有不同性能等级的两个或多个存储区域的单元;
用于基于估计的服务质量(QoS)来向所述存储区域分配存储地址请求的单元,其中,所述估计的QoS是基于监测所述存储区域中的一个或多个存储区域上的当前存储存取行为和/或性能来确定的;以及
用于基于所述估计的QoS来推荐对存储区域的区域划分配置的修改的单元。
12.根据权利要求11所述的系统,其中,所述相异存储设备包括第一类型的动态随机存取存储器(DRAM)和第二类型的DRAM。
13.根据权利要求12所述的系统,其中,所述第一类型的DRAM或所述第二类型的DRAM中的一个或多个DRAM包括双倍数据速率(DDR)存储器。
14.根据权利要求11所述的系统,其中,所述用于基于所述估计的QoS来向所述存储区域分配所述存储地址请求的单元包括:
用于接收所述存储地址请求的单元。
Applications Claiming Priority (7)
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 | ||
US13/781,366 | 2013-02-28 | ||
US13/781,366 US9092327B2 (en) | 2012-12-10 | 2013-02-28 | System and method for allocating memory to dissimilar memory devices using quality of service |
PCT/US2013/068217 WO2014092883A1 (en) | 2012-12-10 | 2013-11-04 | System and method for allocating memory to dissimilar memory devices using quality of service |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104871143A CN104871143A (zh) | 2015-08-26 |
CN104871143B true CN104871143B (zh) | 2018-04-24 |
Family
ID=50882302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380064062.2A Active CN104871143B (zh) | 2012-12-10 | 2013-11-04 | 用于使用服务质量来向相异存储设备分配存储的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9092327B2 (zh) |
EP (1) | EP2929440A1 (zh) |
JP (1) | JP5916970B2 (zh) |
KR (1) | KR101613826B1 (zh) |
CN (1) | CN104871143B (zh) |
BR (1) | BR112015013487B1 (zh) |
TW (1) | TWI534620B (zh) |
WO (1) | WO2014092883A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959298B2 (en) | 2012-12-10 | 2015-02-17 | Qualcomm Incorporated | System and method for managing performance of a computing device having dissimilar memory types |
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 |
US9092327B2 (en) | 2012-12-10 | 2015-07-28 | Qualcomm Incorporated | System and method for allocating memory to dissimilar memory devices using quality of service |
US9606916B2 (en) * | 2013-09-13 | 2017-03-28 | Samsung Electronics Co., Ltd. | Semiconductor devices including application processor connected to high-bandwidth memory and low-bandwidth memory, and channel interleaving method thereof |
US20150261662A1 (en) * | 2014-03-12 | 2015-09-17 | Advanced Micro Devices, Inc. | Address-partitioned multi-class physical memory system |
CN110177279B (zh) * | 2014-03-28 | 2021-10-08 | 联咏科技股份有限公司 | 视频处理装置与其视频处理电路 |
US9910767B2 (en) * | 2014-12-15 | 2018-03-06 | Toshiba Memory Corporation | Leveraging instruction RAM as a data RAM extension during use of a modified Harvard architecture processor |
US10491667B1 (en) * | 2015-03-16 | 2019-11-26 | Amazon Technologies, Inc. | Customized memory modules in multi-tenant service provider systems |
KR20170005561A (ko) | 2015-07-06 | 2017-01-16 | 현대자동차주식회사 | 히트석션 언더커버 |
US20170108911A1 (en) * | 2015-10-16 | 2017-04-20 | Qualcomm Incorporated | System and method for page-by-page memory channel interleaving |
US20170109090A1 (en) * | 2015-10-16 | 2017-04-20 | Qualcomm Incorporated | System and method for page-by-page memory channel interleaving |
US20170162235A1 (en) * | 2015-12-02 | 2017-06-08 | Qualcomm Incorporated | System and method for memory management using dynamic partial channel interleaving |
US20180032429A1 (en) * | 2016-07-29 | 2018-02-01 | Intel Corporation | Techniques to allocate regions of a multi-level, multi-technology system memory to appropriate memory access initiators |
US10289847B2 (en) * | 2016-07-29 | 2019-05-14 | Qualcomm Incorporated | Updating virtual memory addresses of target application functionalities for an updated version of application binary code |
US10055158B2 (en) * | 2016-09-22 | 2018-08-21 | Qualcomm Incorporated | Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems |
CN107704213B (zh) * | 2017-11-02 | 2021-08-31 | 郑州云海信息技术有限公司 | 一种存储阵列的自动化服务质量管理方法及装置 |
KR102387977B1 (ko) | 2017-11-29 | 2022-04-19 | 삼성전자주식회사 | 적어도 두 개의 채널들을 통해 시스템 온 칩과 통신하는 메모리 장치, 이를 포함하는 전자 장치, 그리고 전자 장치의 동작 방법 |
KR102482896B1 (ko) | 2017-12-28 | 2022-12-30 | 삼성전자주식회사 | 이종 휘발성 메모리 칩들을 포함하는 메모리 장치 및 이를 포함하는 전자 장치 |
KR102149153B1 (ko) * | 2018-10-08 | 2020-08-28 | 울산과학기술원 | 이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치 |
KR102257325B1 (ko) * | 2018-12-10 | 2021-05-27 | 한국과학기술원 | 다중 서비스 요청 및 맥락인지 기반의 IoT 카메라 가상화 장치 및 방법 |
US11726910B2 (en) * | 2019-03-13 | 2023-08-15 | Intel Corporation | Dynamic control of memory bandwidth allocation for a processor |
US11011223B2 (en) * | 2019-08-27 | 2021-05-18 | Micron Technology, Inc. | Memory sub-system grading and allocation |
US11782835B2 (en) | 2020-11-30 | 2023-10-10 | Electronics And Telecommunications Research Institute | Host apparatus, heterogeneous system architecture device, and heterogeneous system based on unified virtual memory |
US11749332B2 (en) * | 2021-02-11 | 2023-09-05 | Qualcomm Incorporated | Effective DRAM interleaving for asymmetric size channels or ranks while supporting improved partial array self-refresh |
US11789649B2 (en) | 2021-04-22 | 2023-10-17 | Nvidia Corporation | Combined on-package and off-package memory system |
US11632337B1 (en) * | 2021-10-11 | 2023-04-18 | Cisco Technology, Inc. | Compute express link over ethernet in composable data centers |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426552A (zh) * | 2011-10-31 | 2012-04-25 | 成都市华为赛门铁克科技有限公司 | 存储系统服务质量控制方法、装置和系统 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341486A (en) | 1988-10-27 | 1994-08-23 | Unisys Corporation | Automatically variable memory interleaving system |
US5924117A (en) | 1996-12-16 | 1999-07-13 | International Business Machines Corporation | Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto |
US20020065922A1 (en) * | 2000-11-30 | 2002-05-30 | Vijnan Shastri | Method and apparatus for selection and redirection of an existing client-server connection to an alternate data server hosted on a data packet network (DPN) based on performance comparisons |
US20020075844A1 (en) * | 2000-12-15 | 2002-06-20 | Hagen W. Alexander | Integrating public and private network resources for optimized broadband wireless access and method |
US7120727B2 (en) | 2003-06-19 | 2006-10-10 | Micron Technology, Inc. | Reconfigurable memory module and method |
US8407433B2 (en) | 2007-06-25 | 2013-03-26 | Sonics, Inc. | Interconnect implementing internal controls |
EP1733537A1 (en) | 2004-03-10 | 2006-12-20 | Qualcomm, Incorporated | High data rate interface apparatus 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 |
US7680830B1 (en) * | 2005-05-31 | 2010-03-16 | Symantec Operating Corporation | System and method for policy-based data lifecycle management |
US20070083482A1 (en) * | 2005-10-08 | 2007-04-12 | Unmesh Rathi | Multiple quality of service file system |
US7477257B2 (en) | 2005-12-15 | 2009-01-13 | Nvidia Corporation | Apparatus, system, and method for graphics memory hub |
US7793059B2 (en) * | 2006-01-18 | 2010-09-07 | Apple Inc. | Interleaving policies for flash memory |
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 |
US8531471B2 (en) | 2008-11-13 | 2013-09-10 | Intel Corporation | Shared virtual memory |
KR20100100395A (ko) | 2009-03-06 | 2010-09-15 | 삼성전자주식회사 | 복수의 프로세서를 포함하는 메모리 시스템 |
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 |
US20120066444A1 (en) | 2010-09-14 | 2012-03-15 | Advanced Micro Devices, Inc. | Resolution Enhancement of Video Stream Based on Spatial and Temporal Correlation |
US8314807B2 (en) | 2010-09-16 | 2012-11-20 | Apple Inc. | Memory controller with QoS-aware scheduling |
CN103354939B (zh) | 2010-12-17 | 2016-03-16 | 艾沃思宾技术公司 | 用于使dram和mram访问交错的存储器控制器和方法 |
US8854387B2 (en) | 2010-12-22 | 2014-10-07 | Advanced Micro Devices, Inc. | Bundle-based CPU/GPU memory controller coordination mechanism |
KR101467941B1 (ko) | 2011-04-26 | 2014-12-02 | 엘에스아이 코포레이션 | 비휘발성 저장부에 대한 가변 오버프로비저닝 |
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 |
US8959298B2 (en) | 2012-12-10 | 2015-02-17 | Qualcomm Incorporated | System and method for managing performance of a computing device having dissimilar memory types |
-
2013
- 2013-02-28 US US13/781,366 patent/US9092327B2/en active Active
- 2013-11-04 BR BR112015013487-4A patent/BR112015013487B1/pt active IP Right Grant
- 2013-11-04 CN CN201380064062.2A patent/CN104871143B/zh active Active
- 2013-11-04 EP EP13802138.1A patent/EP2929440A1/en not_active Ceased
- 2013-11-04 WO PCT/US2013/068217 patent/WO2014092883A1/en active Application Filing
- 2013-11-04 JP JP2015546477A patent/JP5916970B2/ja active Active
- 2013-11-04 KR KR1020157017668A patent/KR101613826B1/ko active IP Right Grant
- 2013-11-18 TW TW102141943A patent/TWI534620B/zh active
-
2015
- 2015-06-19 US US14/744,831 patent/US10067865B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426552A (zh) * | 2011-10-31 | 2012-04-25 | 成都市华为赛门铁克科技有限公司 | 存储系统服务质量控制方法、装置和系统 |
Non-Patent Citations (2)
Title |
---|
AVSS:可适应性虚拟存储系统;柯剑等;《计算机研究与发展》;20091231(第S1期);第1-2小节 * |
一种异构磁盘系统的数据分配方法;周敬利等;《小型微型计算机系统》;20041130;第25卷(第11期);第3小节 * |
Also Published As
Publication number | Publication date |
---|---|
JP5916970B2 (ja) | 2016-05-11 |
BR112015013487B1 (pt) | 2023-01-31 |
BR112015013487A2 (pt) | 2017-07-11 |
US20140164690A1 (en) | 2014-06-12 |
KR20150095725A (ko) | 2015-08-21 |
TW201439760A (zh) | 2014-10-16 |
KR101613826B1 (ko) | 2016-04-19 |
WO2014092883A1 (en) | 2014-06-19 |
JP2016503911A (ja) | 2016-02-08 |
TWI534620B (zh) | 2016-05-21 |
EP2929440A1 (en) | 2015-10-14 |
US20150286565A1 (en) | 2015-10-08 |
US9092327B2 (en) | 2015-07-28 |
US10067865B2 (en) | 2018-09-04 |
CN104871143A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104871143B (zh) | 用于使用服务质量来向相异存储设备分配存储的系统和方法 | |
CN104854572B (zh) | 用于对具有不对称存储组件的存储子系统中的存储进行动态地分配的系统和方法 | |
CN104838368B (zh) | 用于对具有相异存储器类型的计算设备的性能进行管理的系统和方法 | |
CN105452986B (zh) | 用于具有选择性功率或性能优化的内存通道交织的系统和方法 | |
CN105978704B (zh) | 用于创建新的云资源指令集体系结构的系统和方法 | |
CN108292270A (zh) | 用于使用动态局部信道交错的存储管理的系统和方法 | |
CN104111897B (zh) | 一种数据处理方法、装置及计算机系统 | |
CN105144106A (zh) | 异类存储器的动态管理 | |
CN103946826A (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
CN102981990B (zh) | 采用Android平台终端设备的数据传输方法及装置 | |
CN103744719B (zh) | 锁管理方法及系统、锁管理系统的配置方法及装置 | |
CN107533442A (zh) | 用于对异构系统存储器中的存储器功率消耗进行优化的系统和方法 | |
CN104115129A (zh) | 用于从处理器到存储器子系统智能刷新数据的系统和方法 | |
CN105612501A (zh) | 用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的系统和方法 | |
CN109313609A (zh) | 用于奇数模存储器通道交织的系统和方法 | |
CN107436798A (zh) | 一种基于numa节点的进程访问方法及装置 | |
CN108052569A (zh) | 数据库访问方法、装置、计算机可读存储介质和计算设备 | |
CN104298474A (zh) | 一种基于服务端与外部缓存系统的外接式计算设备加速方法与实现该方法的设备 | |
CN108713193A (zh) | 混合并行串行存储器系统中的多序列冲突减少 | |
CN103294407A (zh) | 存储装置和数据读写方法 | |
CN104462546B (zh) | 一种数据访问存储及进程间数据共享系统 | |
CN106648637A (zh) | 一种虚拟桌面的创建方法及系统 | |
CN104216758B (zh) | 一种读写操作性能优化方法以及装置 | |
CN118519944A (zh) | 计算高速链路(cxl)dram刀片式存储器 | |
CN107329709A (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 |